diff --git a/packages/cli/src/__tests__/runtime-host-run-command.test.ts b/packages/cli/src/__tests__/runtime-host-run-command.test.ts index 7f5dc70c83..2f2d731813 100644 --- a/packages/cli/src/__tests__/runtime-host-run-command.test.ts +++ b/packages/cli/src/__tests__/runtime-host-run-command.test.ts @@ -672,6 +672,7 @@ describe('Runtime Host maka run adapter', () => { const prepareStarted = deferred(); const fixture = runFixture({ graph: true, + strictTurnStopInput: true, prepareGate: prepareGate.promise, onPrepareStarted: () => prepareStarted.resolve(), }); @@ -868,6 +869,7 @@ function runFixture(input: { onGraphStop?: () => void; initialMessages?: StoredMessage[]; finalMessages?: StoredMessage[]; + strictTurnStopInput?: boolean; }) { const switches: string[] = []; const moves: string[] = []; @@ -1008,6 +1010,13 @@ function runFixture(input: { return { rootSessionId: requestInput.rootSessionId, graphId: 'graph-1' }; } if (operation === 'turn.stop') { + if (input.strictTurnStopInput) { + const allowed = new Set(['sessionId', 'turnId', 'runId']); + const unexpected = Object.keys(requestInput).filter((key) => !allowed.has(key)); + if (unexpected.length > 0) { + throw new Error(`Unknown turn.stop input field: ${unexpected.join(', ')}`); + } + } exactTurnStops.push({ sessionId: String(requestInput.sessionId), turnId: String(requestInput.turnId), diff --git a/packages/cli/src/runtime-host-run-command.ts b/packages/cli/src/runtime-host-run-command.ts index 62f8536e42..4ac8e4e635 100644 --- a/packages/cli/src/runtime-host-run-command.ts +++ b/packages/cli/src/runtime-host-run-command.ts @@ -464,7 +464,11 @@ class RuntimeHostRunRuntime implements MakaRunRuntime { } async #stopTurn(turn: { sessionId: string; turnId: string; runId: string }): Promise { - await this.#connection.request('turn.stop', turn); + await this.#connection.request('turn.stop', { + sessionId: turn.sessionId, + turnId: turn.turnId, + runId: turn.runId, + }); } async #stopGraph(sessionId: string): Promise {