diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/multi_turn/muse_transcript.ndjson b/apps/server/src/orchestration-v2/testkit/fixtures/multi_turn/muse_transcript.ndjson index 81b7dff010e32..2483f683a4854 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/multi_turn/muse_transcript.ndjson +++ b/apps/server/src/orchestration-v2/testkit/fixtures/multi_turn/muse_transcript.ndjson @@ -1,4 +1,4 @@ -{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.3-R5018.1","scenario":"multi_turn","metadata":{"generatedBy":"live-muse-recorder","model":"muse-spark-1.3-contributor","commandIds":[["01a11a6b-707e-7000-9bb5-4079c7772ad0","01a11a6b-707e-7001-b2f4-23db74e60097","01a11a6b-722c-7000-a73a-1d49a3a7f4c4","01a11a6b-97ec-7000-bd1b-d7afbea11045"]]}} +{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.3-R5018.1","scenario":"multi_turn","metadata":{"generatedBy":"live-muse-recorder","note":"session/setReasoningEffort request and its accepted response added by hand, matching a live Muse 1.4.13 capture","model":"muse-spark-1.3-contributor","commandIds":[["01a11a6b-707e-7000-9bb5-4079c7772ad0","01a11a6b-707e-7001-b2f4-23db74e60097","01a11a6b-722c-7000-ad96-dba5fa3e7cce","01a11a6b-722c-7000-a73a-1d49a3a7f4c4","01a11a6b-97ec-7000-bd1b-d7afbea11045"]]}} {"type":"expect_outbound","label":"host_start","frame":{"type":"host_start","args":["serve","--trust-workspace","--disable-sandbox"]}} {"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}} {"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.3"},"userAgent":"muse-build/1.4.3 (non-interactive; macos-aarch64; build 5c1bccecf3f125ff8fdc53f63558f6527ee70e56)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:4cb671082574037fc1070a136db7c0c8dc24e65e78cf3d209a10944ff9f9845f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}} @@ -7,9 +7,11 @@ {"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6b-707e-7000-9bb5-4079c7772ad0/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:30:11.238412Z","updatedAt":"2026-10-08T07:30:11.238416Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791444611408}} {"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6b-707e-7000-9bb5-4079c7772ad0/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:30:11.238412Z","updatedAt":"2026-10-08T07:30:11.238416Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:1"}}} {"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:1","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"37b19bd1-b212-4532-a0c9-a6677f303e26","sequence":5},"last":{"id":"37b19bd1-b212-4532-a0c9-a6677f303e26","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a11a6b-707e-7001-b2f4-23db74e60097","clientName":"t3_code"},"emittedAtMs":1791444611412}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":3,"method":"turn/start","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Respond with exactly: first fixture turn complete"}],"displayText":"Respond with exactly: first fixture turn complete","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4"}}} +{"type":"expect_outbound","label":"session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"method":"session/setReasoningEffort","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","reasoningEffort":"high","commandId":"01a11a6b-722c-7000-ad96-dba5fa3e7cce"}}} +{"type":"emit_inbound","label":"response:session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a11a6b-722c-7000-ad96-dba5fa3e7cce","status":"accepted"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Respond with exactly: first fixture turn complete"}],"displayText":"Respond with exactly: first fixture turn complete","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:2","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"2c530748-943b-4467-8473-da8b04c511c3","sequence":16},"last":{"id":"2c530748-943b-4467-8473-da8b04c511c3","sequence":16}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791444611661}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4","status":"accepted","turnId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4","startedNewTurn":true,"disposition":"started"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4","status":"accepted","turnId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","status":"running","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:3"},"emittedAtMs":1791444611674}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:3","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"2be0c9b5-9dc4-48f0-9b86-06aef4de31f3","sequence":18},"last":{"id":"2be0c9b5-9dc4-48f0-9b86-06aef4de31f3","sequence":18}},"turnId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4","commandId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4"},"emittedAtMs":1791444611675}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:4","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"2be0c9b5-9dc4-48f0-9b86-06aef4de31f3","sequence":18},"last":{"id":"2be0c9b5-9dc4-48f0-9b86-06aef4de31f3","sequence":18}},"item":{"itemId":"1b470279-ee8c-4c74-a298-f37184145584","kind":"userMessage","turnId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4","revision":1,"status":"completed","recordedAt":"2026-10-08T07:30:11.66263Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nRespond with exactly: first fixture turn complete","commandId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4"}},"emittedAtMs":1791444611675}} @@ -29,8 +31,8 @@ {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","status":"idle","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:16"},"emittedAtMs":1791444621046}} {"type":"emit_inbound","label":"turn/completed","frame":{"jsonrpc":"2.0","method":"turn/completed","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:16","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"688a69c5-e353-4db9-bd8c-1beb033902ba","sequence":79},"last":{"id":"688a69c5-e353-4db9-bd8c-1beb033902ba","sequence":79}},"turnId":"01a11a6b-722c-7000-a73a-1d49a3a7f4c4","terminal":"completed","durationMs":9378,"timeToFirstTokenMs":6406},"emittedAtMs":1791444621047}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:17","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"36753b8a-26ce-4935-8127-bc9191cb328b","sequence":80},"last":{"id":"36753b8a-26ce-4935-8127-bc9191cb328b","sequence":80}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791444621054}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Respond with exactly: second fixture turn complete"}],"displayText":"Respond with exactly: second fixture turn complete","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6b-97ec-7000-bd1b-d7afbea11045"}}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a11a6b-97ec-7000-bd1b-d7afbea11045","status":"accepted","turnId":"01a11a6b-97ec-7000-bd1b-d7afbea11045","startedNewTurn":true,"disposition":"started"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":5,"method":"turn/start","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Respond with exactly: second fixture turn complete"}],"displayText":"Respond with exactly: second fixture turn complete","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6b-97ec-7000-bd1b-d7afbea11045"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":5,"result":{"commandId":"01a11a6b-97ec-7000-bd1b-d7afbea11045","status":"accepted","turnId":"01a11a6b-97ec-7000-bd1b-d7afbea11045","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","status":"running","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:18"},"emittedAtMs":1791444621333}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:18","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"4aba96d5-f984-4bc0-bda4-7fb97f527686","sequence":87},"last":{"id":"4aba96d5-f984-4bc0-bda4-7fb97f527686","sequence":87}},"turnId":"01a11a6b-97ec-7000-bd1b-d7afbea11045","commandId":"01a11a6b-97ec-7000-bd1b-d7afbea11045"},"emittedAtMs":1791444621334}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:19","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"4aba96d5-f984-4bc0-bda4-7fb97f527686","sequence":87},"last":{"id":"4aba96d5-f984-4bc0-bda4-7fb97f527686","sequence":87}},"item":{"itemId":"90719a5d-d2c1-46dc-ad4d-274adda02344","kind":"userMessage","turnId":"01a11a6b-97ec-7000-bd1b-d7afbea11045","revision":1,"status":"completed","recordedAt":"2026-10-08T07:30:21.321391Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nRespond with exactly: second fixture turn complete","commandId":"01a11a6b-97ec-7000-bd1b-d7afbea11045"}},"emittedAtMs":1791444621334}} diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/muse_permission/muse_transcript.ndjson b/apps/server/src/orchestration-v2/testkit/fixtures/muse_permission/muse_transcript.ndjson index 185cea4689875..5d4de82378a61 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/muse_permission/muse_transcript.ndjson +++ b/apps/server/src/orchestration-v2/testkit/fixtures/muse_permission/muse_transcript.ndjson @@ -1,4 +1,4 @@ -{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.3-R5018.1","scenario":"muse_permission","metadata":{"generatedBy":"live-muse-recorder","model":"muse-spark-1.3-contributor","commandIds":[["01a11a6d-39bb-7000-8c93-4594c98e6a11","01a11a6d-39bb-7001-923e-425cc6129ce7","01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","01a11a6d-4759-7000-9d91-5e7fcfc6d4c4","01a11a6d-8566-7000-8ad1-6269ac187a29","01a11a6d-9084-7000-8656-8da54f8dd14b"]]}} +{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.3-R5018.1","scenario":"muse_permission","metadata":{"generatedBy":"live-muse-recorder","note":"session/setReasoningEffort request and its accepted response added by hand, matching a live Muse 1.4.13 capture","model":"muse-spark-1.3-contributor","commandIds":[["01a11a6d-39bb-7000-8c93-4594c98e6a11","01a11a6d-39bb-7001-923e-425cc6129ce7","01a11a6d-3b9f-7213-b0e3-245279652d91","01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","01a11a6d-4759-7000-9d91-5e7fcfc6d4c4","01a11a6d-8566-7000-8ad1-6269ac187a29","01a11a6d-9084-7000-8656-8da54f8dd14b"]]}} {"type":"expect_outbound","label":"host_start","frame":{"type":"host_start","args":["serve","--trust-workspace"]}} {"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}} {"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.3"},"userAgent":"muse-build/1.4.3 (non-interactive; macos-aarch64; build 5c1bccecf3f125ff8fdc53f63558f6527ee70e56)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:4cb671082574037fc1070a136db7c0c8dc24e65e78cf3d209a10944ff9f9845f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}} @@ -7,9 +7,11 @@ {"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6d-39bb-7000-8c93-4594c98e6a11/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:32:08.30084Z","updatedAt":"2026-10-08T07:32:08.300844Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"promptUnmatched","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791444728496}} {"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6d-39bb-7000-8c93-4594c98e6a11/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:32:08.30084Z","updatedAt":"2026-10-08T07:32:08.300844Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"promptUnmatched","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:1"}}} {"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:1","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"b05fb8ec-7b58-4cf7-a369-379938395230","sequence":5},"last":{"id":"b05fb8ec-7b58-4cf7-a369-379938395230","sequence":5}},"mode":"promptUnmatched","source":"approvalReconfigure","commandId":"01a11a6d-39bb-7001-923e-425cc6129ce7","clientName":"t3_code"},"emittedAtMs":1791444728501}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":3,"method":"turn/start","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Run the shell command `touch muse-approved.txt` with your shell tool, then reply DONE."}],"displayText":"Run the shell command `touch muse-approved.txt` with your shell tool, then reply DONE.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6"}}} +{"type":"expect_outbound","label":"session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"method":"session/setReasoningEffort","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","reasoningEffort":"high","commandId":"01a11a6d-3b9f-7213-b0e3-245279652d91"}}} +{"type":"emit_inbound","label":"response:session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a11a6d-3b9f-7213-b0e3-245279652d91","status":"accepted"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Run the shell command `touch muse-approved.txt` with your shell tool, then reply DONE."}],"displayText":"Run the shell command `touch muse-approved.txt` with your shell tool, then reply DONE.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:2","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"6159e84a-ae1e-4fae-ae8b-49f41ca34509","sequence":16},"last":{"id":"6159e84a-ae1e-4fae-ae8b-49f41ca34509","sequence":16}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791444728769}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","status":"accepted","turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","startedNewTurn":true,"disposition":"started"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","status":"accepted","turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","status":"running","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:3"},"emittedAtMs":1791444728783}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:3","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"09218c3a-88fd-4bc8-ab45-d1aa69bea95a","sequence":18},"last":{"id":"09218c3a-88fd-4bc8-ab45-d1aa69bea95a","sequence":18}},"turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","commandId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6"},"emittedAtMs":1791444728783}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:4","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"09218c3a-88fd-4bc8-ab45-d1aa69bea95a","sequence":18},"last":{"id":"09218c3a-88fd-4bc8-ab45-d1aa69bea95a","sequence":18}},"item":{"itemId":"dde9573b-650f-434b-ab99-60cfc820a0a5","kind":"userMessage","turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","revision":1,"status":"completed","recordedAt":"2026-10-08T07:32:08.769894Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nRun the shell command `touch muse-approved.txt` with your shell tool, then reply DONE.","commandId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6"}},"emittedAtMs":1791444728784}} @@ -18,11 +20,11 @@ {"type":"emit_inbound","label":"session/tokenUsage","frame":{"jsonrpc":"2.0","method":"session/tokenUsage","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:7","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"b1dab1f5-3c9e-4d92-b955-841a2269c23c","sequence":54},"last":{"id":"b1dab1f5-3c9e-4d92-b955-841a2269c23c","sequence":54}},"turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","modelId":"muse-spark-1.3-contributor","usage":{"inputTokens":32618,"outputTokens":315,"cachedTokens":0,"cacheWriteTokens":0,"cacheReadTokens":0,"reasoningTokens":227},"promptTokens":32618,"totalTokens":32933,"finishReason":"tool_calls","durationMs":2684,"cumulative":{"promptTokens":32618,"outputTokens":315,"totalTokens":32933,"cost":{"usd":0.0033248,"partial":false}}},"emittedAtMs":1791444731684}} {"type":"emit_inbound","label":"session/contextUsage","frame":{"jsonrpc":"2.0","method":"session/contextUsage","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:8","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"b1dab1f5-3c9e-4d92-b955-841a2269c23c","sequence":54},"last":{"id":"b1dab1f5-3c9e-4d92-b955-841a2269c23c","sequence":54}},"windowTokens":1007997,"usedTokens":32933,"pressure":"normal"},"emittedAtMs":1791444731684}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","status":"running","attention":["approvalPending"],"viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:9"},"emittedAtMs":1791444731717}} -{"type":"emit_inbound","label":"request:approval/request","frame":{"jsonrpc":"2.0","id":1,"method":"approval/request","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","taskId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","itemId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","toolCallId":"call_01a11a6d455c7076951a26454d2764d3","toolName":"bash","rawArgs":"{\"command\":\"touch muse-approved.txt\",\"description\":\"Create approval marker file\"}","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:9","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"8bdf7f13-fe90-46ae-8db5-9359d73a6d86","sequence":59},"last":{"id":"8bdf7f13-fe90-46ae-8db5-9359d73a6d86","sequence":59}},"subject":{"kind":"shell","command":"touch muse-approved.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-approved.txt"],"argvComplete":true,"resolution":{"kind":"unresolved"},"suggestedPrefix":{"argvPrefix":["touch"],"label":"Always allow in this workspace: touch ..."}}]},"currentRequirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"allow_local_prefix","label":"Always allow in this workspace: touch ...","decision":"approvedPolicyAmendment","scope":"localPersistent","rulePreview":"Always allow in this workspace: touch ..."},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false}}} +{"type":"emit_inbound","label":"request:approval/request","frame":{"jsonrpc":"2.0","id":2,"method":"approval/request","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","taskId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","itemId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","toolCallId":"call_01a11a6d455c7076951a26454d2764d3","toolName":"bash","rawArgs":"{\"command\":\"touch muse-approved.txt\",\"description\":\"Create approval marker file\"}","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:9","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"8bdf7f13-fe90-46ae-8db5-9359d73a6d86","sequence":59},"last":{"id":"8bdf7f13-fe90-46ae-8db5-9359d73a6d86","sequence":59}},"subject":{"kind":"shell","command":"touch muse-approved.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-approved.txt"],"argvComplete":true,"resolution":{"kind":"unresolved"},"suggestedPrefix":{"argvPrefix":["touch"],"label":"Always allow in this workspace: touch ..."}}]},"currentRequirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"allow_local_prefix","label":"Always allow in this workspace: touch ...","decision":"approvedPolicyAmendment","scope":"localPersistent","rulePreview":"Always allow in this workspace: touch ..."},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false}}} {"type":"emit_inbound","label":"approval/requested","frame":{"jsonrpc":"2.0","method":"approval/requested","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","taskId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","itemId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","toolCallId":"call_01a11a6d455c7076951a26454d2764d3","toolName":"bash","rawArgs":"{\"command\":\"touch muse-approved.txt\",\"description\":\"Create approval marker file\"}","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:9","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"8bdf7f13-fe90-46ae-8db5-9359d73a6d86","sequence":59},"last":{"id":"8bdf7f13-fe90-46ae-8db5-9359d73a6d86","sequence":59}},"subject":{"kind":"shell","command":"touch muse-approved.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-approved.txt"],"argvComplete":true,"resolution":{"kind":"unresolved"},"suggestedPrefix":{"argvPrefix":["touch"],"label":"Always allow in this workspace: touch ..."}}]},"currentRequirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"allow_local_prefix","label":"Always allow in this workspace: touch ...","decision":"approvedPolicyAmendment","scope":"localPersistent","rulePreview":"Always allow in this workspace: touch ..."},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false},"emittedAtMs":1791444731717}} -{"type":"expect_outbound","label":"reply:approval/request","frame":{"jsonrpc":"2.0","id":1,"result":{}}} -{"type":"expect_outbound","label":"approval/decide","frame":{"jsonrpc":"2.0","id":4,"method":"approval/decide","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","requirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"choiceId":"allow_once","commandId":"01a11a6d-4759-7000-9d91-5e7fcfc6d4c4"}}} -{"type":"emit_inbound","label":"response:approval/decide","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a11a6d-4759-7000-9d91-5e7fcfc6d4c4","status":"accepted","approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","terminal":true}}} +{"type":"expect_outbound","label":"reply:approval/request","frame":{"jsonrpc":"2.0","id":2,"result":{}}} +{"type":"expect_outbound","label":"approval/decide","frame":{"jsonrpc":"2.0","id":5,"method":"approval/decide","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","requirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"choiceId":"allow_once","commandId":"01a11a6d-4759-7000-9d91-5e7fcfc6d4c4"}}} +{"type":"emit_inbound","label":"response:approval/decide","frame":{"jsonrpc":"2.0","id":5,"result":{"commandId":"01a11a6d-4759-7000-9d91-5e7fcfc6d4c4","status":"accepted","approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","terminal":true}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","status":"running","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:11"},"emittedAtMs":1791444731874}} {"type":"emit_inbound","label":"approval/updated","frame":{"jsonrpc":"2.0","method":"approval/updated","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:10","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"605a2880-a372-46f1-ac00-9482aa5a7a3a","sequence":62},"last":{"id":"605a2880-a372-46f1-ac00-9482aa5a7a3a","sequence":62}},"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","currentRequirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"subject":{"kind":"shell","command":"touch muse-approved.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-approved.txt"],"argvComplete":true,"resolution":{"kind":"allowOnce"},"suggestedPrefix":{"argvPrefix":["touch"],"label":"Always allow in this workspace: touch ..."}}]},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"allow_local_prefix","label":"Always allow in this workspace: touch ...","decision":"approvedPolicyAmendment","scope":"localPersistent","rulePreview":"Always allow in this workspace: touch ..."},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"change":{"kind":"stageResolved","requirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"choiceId":"allow_once","decision":"approved"}},"emittedAtMs":1791444731874}} {"type":"emit_inbound","label":"approval/resolved","frame":{"jsonrpc":"2.0","method":"approval/resolved","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:11","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"a755d8ea-adbb-4b44-8b71-1e8d55788f50","sequence":63},"last":{"id":"a755d8ea-adbb-4b44-8b71-1e8d55788f50","sequence":63}},"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","itemId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","decision":"approved","policyResult":"allow","resolvedBy":"user","decidedByCommandId":"01a11a6d-4759-7000-9d91-5e7fcfc6d4c4","decidedAt":"2026-10-08T07:32:11.787107Z","stageEvidence":[{"requirementId":{"approvalId":"01a11a6d-4730-75f1-bc60-4e5df1a3cdc0","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-approved.txt"],"resolution":{"kind":"allowOnce"}}]},"emittedAtMs":1791444731874}} @@ -42,8 +44,8 @@ {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","status":"idle","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:23"},"emittedAtMs":1791444747386}} {"type":"emit_inbound","label":"turn/completed","frame":{"jsonrpc":"2.0","method":"turn/completed","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:23","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"7c29ac76-7e09-48c1-a18f-f336126e27d1","sequence":120},"last":{"id":"7c29ac76-7e09-48c1-a18f-f336126e27d1","sequence":120}},"turnId":"01a11a6d-3b9f-7000-b6ad-ab05e6b973b6","terminal":"completed","durationMs":18608,"timeToFirstTokenMs":4791},"emittedAtMs":1791444747387}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:24","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"1e4afe30-d924-444c-8665-5e763f524e70","sequence":121},"last":{"id":"1e4afe30-d924-444c-8665-5e763f524e70","sequence":121}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791444747394}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":5,"method":"turn/start","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Run the shell command `touch muse-declined.txt` with your shell tool once. If it is rejected, do not retry; reply REJECTED."}],"displayText":"Run the shell command `touch muse-declined.txt` with your shell tool once. If it is rejected, do not retry; reply REJECTED.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6d-8566-7000-8ad1-6269ac187a29"}}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":5,"result":{"commandId":"01a11a6d-8566-7000-8ad1-6269ac187a29","status":"accepted","turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","startedNewTurn":true,"disposition":"started"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":6,"method":"turn/start","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Run the shell command `touch muse-declined.txt` with your shell tool once. If it is rejected, do not retry; reply REJECTED."}],"displayText":"Run the shell command `touch muse-declined.txt` with your shell tool once. If it is rejected, do not retry; reply REJECTED.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6d-8566-7000-8ad1-6269ac187a29"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":6,"result":{"commandId":"01a11a6d-8566-7000-8ad1-6269ac187a29","status":"accepted","turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","status":"running","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:25"},"emittedAtMs":1791444747660}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:25","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"4a1cf90d-7457-448d-a2b5-d82108636b3b","sequence":128},"last":{"id":"4a1cf90d-7457-448d-a2b5-d82108636b3b","sequence":128}},"turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","commandId":"01a11a6d-8566-7000-8ad1-6269ac187a29"},"emittedAtMs":1791444747660}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:26","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"4a1cf90d-7457-448d-a2b5-d82108636b3b","sequence":128},"last":{"id":"4a1cf90d-7457-448d-a2b5-d82108636b3b","sequence":128}},"item":{"itemId":"27473708-71e0-4d3c-811c-a8bae6bbaa3b","kind":"userMessage","turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","revision":1,"status":"completed","recordedAt":"2026-10-08T07:32:27.650913Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nRun the shell command `touch muse-declined.txt` with your shell tool once. If it is rejected, do not retry; reply REJECTED.","commandId":"01a11a6d-8566-7000-8ad1-6269ac187a29"}},"emittedAtMs":1791444747660}} @@ -52,11 +54,11 @@ {"type":"emit_inbound","label":"session/tokenUsage","frame":{"jsonrpc":"2.0","method":"session/tokenUsage","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:29","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"b032c01d-eae1-437e-910c-8756aedc6084","sequence":164},"last":{"id":"b032c01d-eae1-437e-910c-8756aedc6084","sequence":164}},"turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","modelId":"muse-spark-1.3-contributor","usage":{"inputTokens":33401,"outputTokens":201,"cachedTokens":33009,"cacheWriteTokens":0,"cacheReadTokens":33009,"reasoningTokens":108},"promptTokens":33401,"totalTokens":33602,"finishReason":"tool_calls","durationMs":2522,"cumulative":{"promptTokens":99045,"outputTokens":538,"totalTokens":99583,"cacheReadTokens":65506,"cost":{"usd":0.003592512,"partial":false}}},"emittedAtMs":1791444750395}} {"type":"emit_inbound","label":"session/contextUsage","frame":{"jsonrpc":"2.0","method":"session/contextUsage","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:30","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"b032c01d-eae1-437e-910c-8756aedc6084","sequence":164},"last":{"id":"b032c01d-eae1-437e-910c-8756aedc6084","sequence":164}},"windowTokens":1007997,"usedTokens":33602,"pressure":"normal"},"emittedAtMs":1791444750395}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","status":"running","attention":["approvalPending"],"viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:31"},"emittedAtMs":1791444750459}} -{"type":"emit_inbound","label":"request:approval/request","frame":{"jsonrpc":"2.0","id":2,"method":"approval/request","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","taskId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","itemId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","toolCallId":"call_01a11a6d8ddc760a8b514b4cfbb683c7","toolName":"bash","rawArgs":"{\"command\":\"touch muse-declined.txt\",\"description\":\"Create declined marker file\"}","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:31","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"9f7ff909-115a-42d0-bcbf-d935662f47ef","sequence":169},"last":{"id":"9f7ff909-115a-42d0-bcbf-d935662f47ef","sequence":169}},"subject":{"kind":"shell","command":"touch muse-declined.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-declined.txt"],"argvComplete":true,"resolution":{"kind":"unresolved"},"suggestedPrefix":{"argvPrefix":["touch"],"label":"Always allow in this workspace: touch ..."}}]},"currentRequirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"allow_local_prefix","label":"Always allow in this workspace: touch ...","decision":"approvedPolicyAmendment","scope":"localPersistent","rulePreview":"Always allow in this workspace: touch ..."},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false}}} +{"type":"emit_inbound","label":"request:approval/request","frame":{"jsonrpc":"2.0","id":3,"method":"approval/request","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","taskId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","itemId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","toolCallId":"call_01a11a6d8ddc760a8b514b4cfbb683c7","toolName":"bash","rawArgs":"{\"command\":\"touch muse-declined.txt\",\"description\":\"Create declined marker file\"}","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:31","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"9f7ff909-115a-42d0-bcbf-d935662f47ef","sequence":169},"last":{"id":"9f7ff909-115a-42d0-bcbf-d935662f47ef","sequence":169}},"subject":{"kind":"shell","command":"touch muse-declined.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-declined.txt"],"argvComplete":true,"resolution":{"kind":"unresolved"},"suggestedPrefix":{"argvPrefix":["touch"],"label":"Always allow in this workspace: touch ..."}}]},"currentRequirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"allow_local_prefix","label":"Always allow in this workspace: touch ...","decision":"approvedPolicyAmendment","scope":"localPersistent","rulePreview":"Always allow in this workspace: touch ..."},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false}}} {"type":"emit_inbound","label":"approval/requested","frame":{"jsonrpc":"2.0","method":"approval/requested","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","taskId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","itemId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","toolCallId":"call_01a11a6d8ddc760a8b514b4cfbb683c7","toolName":"bash","rawArgs":"{\"command\":\"touch muse-declined.txt\",\"description\":\"Create declined marker file\"}","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:31","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"9f7ff909-115a-42d0-bcbf-d935662f47ef","sequence":169},"last":{"id":"9f7ff909-115a-42d0-bcbf-d935662f47ef","sequence":169}},"subject":{"kind":"shell","command":"touch muse-declined.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-declined.txt"],"argvComplete":true,"resolution":{"kind":"unresolved"},"suggestedPrefix":{"argvPrefix":["touch"],"label":"Always allow in this workspace: touch ..."}}]},"currentRequirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"allow_local_prefix","label":"Always allow in this workspace: touch ...","decision":"approvedPolicyAmendment","scope":"localPersistent","rulePreview":"Always allow in this workspace: touch ..."},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false},"emittedAtMs":1791444750459}} -{"type":"expect_outbound","label":"reply:approval/request","frame":{"jsonrpc":"2.0","id":2,"result":{}}} -{"type":"expect_outbound","label":"approval/decide","frame":{"jsonrpc":"2.0","id":6,"method":"approval/decide","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","requirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"choiceId":"abort","commandId":"01a11a6d-9084-7000-8656-8da54f8dd14b"}}} -{"type":"emit_inbound","label":"response:approval/decide","frame":{"jsonrpc":"2.0","id":6,"result":{"commandId":"01a11a6d-9084-7000-8656-8da54f8dd14b","status":"accepted","approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","terminal":true}}} +{"type":"expect_outbound","label":"reply:approval/request","frame":{"jsonrpc":"2.0","id":3,"result":{}}} +{"type":"expect_outbound","label":"approval/decide","frame":{"jsonrpc":"2.0","id":7,"method":"approval/decide","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","requirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"choiceId":"abort","commandId":"01a11a6d-9084-7000-8656-8da54f8dd14b"}}} +{"type":"emit_inbound","label":"response:approval/decide","frame":{"jsonrpc":"2.0","id":7,"result":{"commandId":"01a11a6d-9084-7000-8656-8da54f8dd14b","status":"accepted","approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","terminal":true}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","status":"running","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:32"},"emittedAtMs":1791444750695}} {"type":"emit_inbound","label":"approval/resolved","frame":{"jsonrpc":"2.0","method":"approval/resolved","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:32","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"16584418-fbd9-4cbe-8b78-9be023fd834b","sequence":172},"last":{"id":"16584418-fbd9-4cbe-8b78-9be023fd834b","sequence":172}},"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","itemId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","decision":"abort","policyResult":"deny","resolvedBy":"user","decidedByCommandId":"01a11a6d-9084-7000-8656-8da54f8dd14b","decidedAt":"2026-10-08T07:32:30.550581Z","stageEvidence":[{"requirementId":{"approvalId":"01a11a6d-9054-70c0-bf68-3ec59d37fbf8","sourceIndex":0},"position":1,"totalStages":1,"argv":["touch","muse-declined.txt"],"resolution":{"kind":"unresolved"}}]},"emittedAtMs":1791444750695}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:33","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"3b28955d-a87a-4acb-97e9-14cad87fd41f","sequence":148},"last":{"id":"f958c500-026e-448e-85ee-d63d067b97b0","sequence":178}},"item":{"itemId":"3b28955d-a87a-4acb-97e9-14cad87fd41f","kind":"reminderChild","turnId":"01a11a6d-8566-7000-8ad1-6269ac187a29","revision":2,"status":"completed","recordedAt":"2026-10-08T07:32:30.626072Z","fallbackText":"Reminder child session","childSessionId":"efd21bf1-4fd1-49a2-9c55-91b7fc099765","reminderAgentId":"skill-reminder","generationId":1,"taskId":"01a11a6d-85ed-7b91-8d91-c4ce76b6dfef"}},"emittedAtMs":1791444750695}} diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_approval/muse_transcript.ndjson b/apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_approval/muse_transcript.ndjson index 84de376486078..efff71fa01ded 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_approval/muse_transcript.ndjson +++ b/apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_approval/muse_transcript.ndjson @@ -1,4 +1,4 @@ -{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.4-R5419.1","scenario":"muse_subagent_approval","metadata":{"generatedBy":"live-muse-recorder","model":"muse-spark-1.3-contributor","commandIds":[["01a12d1d-a1b7-7000-9697-d430c2e2afd8","01a12d1d-a1b8-7000-8d6c-f1324b724cdb","01a12d1d-a348-7000-ae97-9d27b5f80bce","01a12d1d-bb8a-7000-aa1b-3fbb5c9b87a4"]]}} +{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.4-R5419.1","scenario":"muse_subagent_approval","metadata":{"generatedBy":"live-muse-recorder","note":"session/setReasoningEffort request and its accepted response added by hand, matching a live Muse 1.4.13 capture","model":"muse-spark-1.3-contributor","commandIds":[["01a12d1d-a1b7-7000-9697-d430c2e2afd8","01a12d1d-a1b8-7000-8d6c-f1324b724cdb","01a12d1d-a348-7eb6-92c4-88f615684d06","01a12d1d-a348-7000-ae97-9d27b5f80bce","01a12d1d-bb8a-7000-aa1b-3fbb5c9b87a4"]]}} {"type":"expect_outbound","label":"host_start","frame":{"type":"host_start","args":["serve","--trust-workspace"]}} {"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}} {"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.4"},"userAgent":"muse-build/1.4.4 (serve; macos-aarch64; build 1e1635eda6610b6dec0803bc76c1ceb0dbff7caa)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:7c94f153c41659cb3f1bd3c3e04438be254644cb2a97d65d48edc7449b74858a"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}} @@ -7,9 +7,11 @@ {"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","path":"~/.local/share/muse/sessions/2026/10/11/01a12d1d-a1b7-7000-9697-d430c2e2afd8/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:37:59.14136Z","updatedAt":"2026-10-11T22:37:59.141364Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"promptUnmatched","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791758279294}} {"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","path":"~/.local/share/muse/sessions/2026/10/11/01a12d1d-a1b7-7000-9697-d430c2e2afd8/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:37:59.14136Z","updatedAt":"2026-10-11T22:37:59.141364Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"promptUnmatched","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:1"}}} {"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:1","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"ed95a9db-eada-4751-a7e6-22ccc9bdabd5","sequence":5},"last":{"id":"ed95a9db-eada-4751-a7e6-22ccc9bdabd5","sequence":5}},"mode":"promptUnmatched","source":"approvalReconfigure","commandId":"01a12d1d-a1b8-7000-8d6c-f1324b724cdb","clientName":"t3_code"},"emittedAtMs":1791758279297}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":3,"method":"turn/start","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Do not run any commands yourself. Spawn one subagent whose only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written. Wait for it to finish, then reply with exactly what it said."}],"displayText":"Do not run any commands yourself. Spawn one subagent whose only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written. Wait for it to finish, then reply with exactly what it said.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a12d1d-a348-7000-ae97-9d27b5f80bce"}}} +{"type":"expect_outbound","label":"session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"method":"session/setReasoningEffort","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","reasoningEffort":"high","commandId":"01a12d1d-a348-7eb6-92c4-88f615684d06"}}} +{"type":"emit_inbound","label":"response:session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a12d1d-a348-7eb6-92c4-88f615684d06","status":"accepted"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Do not run any commands yourself. Spawn one subagent whose only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written. Wait for it to finish, then reply with exactly what it said."}],"displayText":"Do not run any commands yourself. Spawn one subagent whose only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written. Wait for it to finish, then reply with exactly what it said.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a12d1d-a348-7000-ae97-9d27b5f80bce"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:2","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"4f170229-d428-4a64-9516-7a355ff3bcdb","sequence":15},"last":{"id":"4f170229-d428-4a64-9516-7a355ff3bcdb","sequence":15}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791758279531}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","status":"accepted","turnId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","startedNewTurn":true,"disposition":"started"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","status":"accepted","turnId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","status":"running","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:3"},"emittedAtMs":1791758279541}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:3","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"429e8ecf-d532-4b14-a303-b9f832c36a51","sequence":17},"last":{"id":"429e8ecf-d532-4b14-a303-b9f832c36a51","sequence":17}},"turnId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","commandId":"01a12d1d-a348-7000-ae97-9d27b5f80bce"},"emittedAtMs":1791758279542}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:4","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"429e8ecf-d532-4b14-a303-b9f832c36a51","sequence":17},"last":{"id":"429e8ecf-d532-4b14-a303-b9f832c36a51","sequence":17}},"item":{"itemId":"a4b3de8d-842b-4065-8769-aed18e62e9fc","kind":"userMessage","turnId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","revision":1,"status":"completed","recordedAt":"2026-10-11T22:37:59.531477Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nDo not run any commands yourself. Spawn one subagent whose only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written. Wait for it to finish, then reply with exactly what it said.","commandId":"01a12d1d-a348-7000-ae97-9d27b5f80bce"}},"emittedAtMs":1791758279542}} @@ -26,11 +28,11 @@ {"type":"emit_inbound","label":"item/updated","frame":{"jsonrpc":"2.0","method":"item/updated","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:13","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"5c0c79a8-26d3-4c22-9b28-5db7d6b381e3","sequence":64},"last":{"id":"37c2eeea-dfdf-4005-9dcd-a2b34d41661b","sequence":75}},"item":{"itemId":"01a12d1d-b4d9-74e2-ae49-6a2363589cbc","kind":"subagent","turnId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","revision":2,"status":"inProgress","recordedAt":"2026-10-11T22:38:04.076035Z","fallbackText":"Subagent: Your only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written.","subagentId":"subagent-1","agentPath":"main/runner/1","depth":1,"role":"runner","objective":"Your only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written.","childSessionId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","controlStatus":"running"}},"emittedAtMs":1791758284083}} {"type":"emit_inbound","label":"item/updated","frame":{"jsonrpc":"2.0","method":"item/updated","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:14","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"5c0c79a8-26d3-4c22-9b28-5db7d6b381e3","sequence":64},"last":{"id":"14e726b0-d79e-4554-a815-7bbe641e0aea","sequence":76}},"item":{"itemId":"01a12d1d-b4d9-74e2-ae49-6a2363589cbc","kind":"subagent","turnId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","revision":3,"status":"inProgress","recordedAt":"2026-10-11T22:38:04.083535Z","fallbackText":"Subagent: Your only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written.","subagentId":"subagent-1","agentPath":"main/runner/1","depth":1,"role":"runner","objective":"Your only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written.","childSessionId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","controlStatus":"running"}},"emittedAtMs":1791758284092}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:15","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"b174ba42-e393-44c4-a5b6-d8f4aaeb395f","sequence":57},"last":{"id":"dcb97459-3c7e-47ef-945e-cf0baba791ef","sequence":79}},"item":{"itemId":"01a12d1d-b4ab-7ab0-ad39-d8c00adae105","kind":"toolCall","turnId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","revision":2,"status":"completed","recordedAt":"2026-10-11T22:38:04.228702Z","tool":"subagent_spawn","callId":"call_01a12d1db2d871bbbd31c63d91fd8182","args":"{\"command_id\":\"subagent-approval-001\",\"objective\":\"Your only task is to run this exact shell command: printf 'subagent approval fixture' > subagent-approval.txt and then reply with exactly: Written.\",\"role\":\"runner\"}","visibleOutput":"{\"status\":\"accepted\",\"subagent_id\":\"subagent-1\",\"agent_path\":\"main/runner/1\",\"task_ref\":\"task/01a12d1d-b4d9-74e2-ae49-6a2363589cbc#0\",\"advisories\":[{\"code\":\"work_stop_activation_unavailable\",\"message\":\"Work Stop activation unavailable: no authenticated Agent Tree authority for a record-derived runtime until #29453\"}]}"}},"emittedAtMs":1791758284233}} -{"type":"emit_inbound","label":"request:approval/request","frame":{"jsonrpc":"2.0","id":1,"method":"approval/request","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","turnId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","taskId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","itemId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","toolCallId":"call_01a12d1db9f675878c55d714c795a74d","toolName":"bash","rawArgs":"{\"command\":\"printf 'subagent approval fixture' > subagent-approval.txt\",\"description\":\"Write subagent approval fixture file\"}","viewCursor":"v:01a12d1d-b510-7171-ae34-b9ebb94eb11b:4","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"},"first":{"id":"4f219c37-5a1d-497b-9325-d5f5312405ed","sequence":35},"last":{"id":"4f219c37-5a1d-497b-9325-d5f5312405ed","sequence":35}},"subject":{"kind":"shell","command":"printf 'subagent approval fixture' > subagent-approval.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"position":1,"totalStages":1,"argv":["printf","subagent approval fixture"],"argvComplete":false,"resolution":{"kind":"unresolved"}}]},"currentRequirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false,"subagentOrigin":{"subagentId":"subagent-1","childSessionId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","childRunId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"}}}} +{"type":"emit_inbound","label":"request:approval/request","frame":{"jsonrpc":"2.0","id":2,"method":"approval/request","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","turnId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","taskId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","itemId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","toolCallId":"call_01a12d1db9f675878c55d714c795a74d","toolName":"bash","rawArgs":"{\"command\":\"printf 'subagent approval fixture' > subagent-approval.txt\",\"description\":\"Write subagent approval fixture file\"}","viewCursor":"v:01a12d1d-b510-7171-ae34-b9ebb94eb11b:4","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"},"first":{"id":"4f219c37-5a1d-497b-9325-d5f5312405ed","sequence":35},"last":{"id":"4f219c37-5a1d-497b-9325-d5f5312405ed","sequence":35}},"subject":{"kind":"shell","command":"printf 'subagent approval fixture' > subagent-approval.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"position":1,"totalStages":1,"argv":["printf","subagent approval fixture"],"argvComplete":false,"resolution":{"kind":"unresolved"}}]},"currentRequirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false,"subagentOrigin":{"subagentId":"subagent-1","childSessionId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","childRunId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"}}}} {"type":"emit_inbound","label":"approval/requested","frame":{"jsonrpc":"2.0","method":"approval/requested","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","turnId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","taskId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","itemId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","toolCallId":"call_01a12d1db9f675878c55d714c795a74d","toolName":"bash","rawArgs":"{\"command\":\"printf 'subagent approval fixture' > subagent-approval.txt\",\"description\":\"Write subagent approval fixture file\"}","viewCursor":"v:01a12d1d-b510-7171-ae34-b9ebb94eb11b:4","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"},"first":{"id":"4f219c37-5a1d-497b-9325-d5f5312405ed","sequence":35},"last":{"id":"4f219c37-5a1d-497b-9325-d5f5312405ed","sequence":35}},"subject":{"kind":"shell","command":"printf 'subagent approval fixture' > subagent-approval.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"position":1,"totalStages":1,"argv":["printf","subagent approval fixture"],"argvComplete":false,"resolution":{"kind":"unresolved"}}]},"currentRequirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"protectedWrite":false,"judgeEscalated":false,"subagentOrigin":{"subagentId":"subagent-1","childSessionId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","childRunId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"}},"emittedAtMs":1791758285686}} -{"type":"expect_outbound","label":"reply:approval/request","frame":{"jsonrpc":"2.0","id":1,"result":{}}} -{"type":"expect_outbound","label":"approval/decide","frame":{"jsonrpc":"2.0","id":4,"method":"approval/decide","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","requirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"choiceId":"allow_once","commandId":"01a12d1d-bb8a-7000-aa1b-3fbb5c9b87a4"}}} -{"type":"emit_inbound","label":"response:approval/decide","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a12d1d-bb8a-7000-aa1b-3fbb5c9b87a4","status":"accepted","approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","terminal":true}}} +{"type":"expect_outbound","label":"reply:approval/request","frame":{"jsonrpc":"2.0","id":2,"result":{}}} +{"type":"expect_outbound","label":"approval/decide","frame":{"jsonrpc":"2.0","id":5,"method":"approval/decide","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","requirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"choiceId":"allow_once","commandId":"01a12d1d-bb8a-7000-aa1b-3fbb5c9b87a4"}}} +{"type":"emit_inbound","label":"response:approval/decide","frame":{"jsonrpc":"2.0","id":5,"result":{"commandId":"01a12d1d-bb8a-7000-aa1b-3fbb5c9b87a4","status":"accepted","approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","terminal":true}}} {"type":"emit_inbound","label":"approval/updated","frame":{"jsonrpc":"2.0","method":"approval/updated","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-b510-7171-ae34-b9ebb94eb11b:5","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"},"first":{"id":"93bfe574-f9f8-4d13-89b5-cce8d35c9168","sequence":37},"last":{"id":"93bfe574-f9f8-4d13-89b5-cce8d35c9168","sequence":37}},"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","currentRequirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"subject":{"kind":"shell","command":"printf 'subagent approval fixture' > subagent-approval.txt","workspaceRoot":"","stages":[{"requirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"position":1,"totalStages":1,"argv":["printf","subagent approval fixture"],"argvComplete":false,"resolution":{"kind":"allowOnce"}}]},"availableChoices":[{"choiceId":"allow_once","label":"Allow once","decision":"approved","scope":"once"},{"choiceId":"abort","label":"Reject","decision":"abort","scope":"once","acceptsFeedback":true}],"change":{"kind":"stageResolved","requirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"choiceId":"allow_once","decision":"approved"},"subagentOrigin":{"subagentId":"subagent-1","childSessionId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","childRunId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"}},"emittedAtMs":1791758285788}} {"type":"emit_inbound","label":"approval/resolved","frame":{"jsonrpc":"2.0","method":"approval/resolved","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-b510-7171-ae34-b9ebb94eb11b:6","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"},"first":{"id":"a5172a02-5d0d-4362-a4b8-7f8a605d4ee2","sequence":38},"last":{"id":"a5172a02-5d0d-4362-a4b8-7f8a605d4ee2","sequence":38}},"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","itemId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","turnId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","decision":"approved","policyResult":"allow","resolvedBy":"user","decidedByCommandId":"01a12d1d-bb8a-7000-aa1b-3fbb5c9b87a4","decidedAt":"2026-10-11T22:38:05.737652Z","stageEvidence":[{"requirementId":{"approvalId":"01a12d1d-bb5f-7a13-b494-2dc27653d86d","sourceIndex":0},"position":1,"totalStages":1,"argv":["printf","subagent approval fixture"],"resolution":{"kind":"allowOnce"}}],"subagentOrigin":{"subagentId":"subagent-1","childSessionId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b","childRunId":"01a12d1d-b510-7171-ae34-b9ebb94eb11b"}},"emittedAtMs":1791758285788}} {"type":"emit_inbound","label":"session/tokenUsage","frame":{"jsonrpc":"2.0","method":"session/tokenUsage","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:16","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"57543a42-0ea0-4269-aeb3-9f5f6097935a","sequence":102},"last":{"id":"57543a42-0ea0-4269-aeb3-9f5f6097935a","sequence":102}},"turnId":"01a12d1d-a348-7000-ae97-9d27b5f80bce","modelId":"muse-spark-1.3-contributor","usage":{"inputTokens":33896,"outputTokens":208,"cachedTokens":33649,"cacheWriteTokens":0,"cacheReadTokens":33649,"reasoningTokens":74},"promptTokens":33896,"totalTokens":34104,"finishReason":"tool_calls","durationMs":2646,"cumulative":{"promptTokens":67078,"outputTokens":838,"totalTokens":67916,"cacheReadTokens":33649,"cost":{"usd":0.003577798,"partial":false}}},"emittedAtMs":1791758286989}} diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_interrupt/muse_transcript.ndjson b/apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_interrupt/muse_transcript.ndjson index 28b8095f55210..1806439670ae4 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_interrupt/muse_transcript.ndjson +++ b/apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_interrupt/muse_transcript.ndjson @@ -1,4 +1,4 @@ -{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.4-R5419.1","scenario":"muse_subagent_interrupt","metadata":{"generatedBy":"live-muse-recorder","model":"muse-spark-1.3-contributor","commandIds":[["01a12d28-7788-7000-a946-c407f380868e","01a12d28-7788-7001-a223-c10e52187cdf","01a12d28-7912-7000-993a-afd019e6ac5c","01a12d28-889c-7000-8577-23019c9d175f"]]}} +{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.4-R5419.1","scenario":"muse_subagent_interrupt","metadata":{"generatedBy":"live-muse-recorder","note":"session/setReasoningEffort request and its accepted response added by hand, matching a live Muse 1.4.13 capture","model":"muse-spark-1.3-contributor","commandIds":[["01a12d28-7788-7000-a946-c407f380868e","01a12d28-7788-7001-a223-c10e52187cdf","01a12d28-7912-7e8c-97be-0050b1942638","01a12d28-7912-7000-993a-afd019e6ac5c","01a12d28-889c-7000-8577-23019c9d175f"]]}} {"type":"expect_outbound","label":"host_start","frame":{"type":"host_start","args":["serve","--trust-workspace","--disable-sandbox"]}} {"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}} {"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.4"},"userAgent":"muse-build/1.4.4 (serve; macos-aarch64; build 1e1635eda6610b6dec0803bc76c1ceb0dbff7caa)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:7c94f153c41659cb3f1bd3c3e04438be254644cb2a97d65d48edc7449b74858a"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}} @@ -7,9 +7,11 @@ {"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","path":"~/.local/share/muse/sessions/2026/10/11/01a12d28-7788-7000-a946-c407f380868e/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:49:49.235205Z","updatedAt":"2026-10-11T22:49:49.235209Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791758989388}} {"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","path":"~/.local/share/muse/sessions/2026/10/11/01a12d28-7788-7000-a946-c407f380868e/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:49:49.235205Z","updatedAt":"2026-10-11T22:49:49.235209Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:1"}}} {"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:1","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"29d4e769-78f7-48fa-90cd-3ac9f8fa04bf","sequence":5},"last":{"id":"29d4e769-78f7-48fa-90cd-3ac9f8fa04bf","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a12d28-7788-7001-a223-c10e52187cdf","clientName":"t3_code"},"emittedAtMs":1791758989391}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":3,"method":"turn/start","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Spawn one subagent whose only task is to run the shell command `sleep 30` and then reply with exactly: Done. Wait for it to finish, then reply with exactly what it said."}],"displayText":"Spawn one subagent whose only task is to run the shell command `sleep 30` and then reply with exactly: Done. Wait for it to finish, then reply with exactly what it said.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a12d28-7912-7000-993a-afd019e6ac5c"}}} +{"type":"expect_outbound","label":"session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"method":"session/setReasoningEffort","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","reasoningEffort":"high","commandId":"01a12d28-7912-7e8c-97be-0050b1942638"}}} +{"type":"emit_inbound","label":"response:session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a12d28-7912-7e8c-97be-0050b1942638","status":"accepted"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Spawn one subagent whose only task is to run the shell command `sleep 30` and then reply with exactly: Done. Wait for it to finish, then reply with exactly what it said."}],"displayText":"Spawn one subagent whose only task is to run the shell command `sleep 30` and then reply with exactly: Done. Wait for it to finish, then reply with exactly what it said.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a12d28-7912-7000-993a-afd019e6ac5c"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:2","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"660e2cfd-318a-4d2d-87bb-0b1375d79fdf","sequence":15},"last":{"id":"660e2cfd-318a-4d2d-87bb-0b1375d79fdf","sequence":15}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791758989619}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a12d28-7912-7000-993a-afd019e6ac5c","status":"accepted","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","startedNewTurn":true,"disposition":"started"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a12d28-7912-7000-993a-afd019e6ac5c","status":"accepted","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","status":"running","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:3"},"emittedAtMs":1791758989632}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:3","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"5cb199bd-04e5-40d9-a299-8760be80e0a4","sequence":17},"last":{"id":"5cb199bd-04e5-40d9-a299-8760be80e0a4","sequence":17}},"turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","commandId":"01a12d28-7912-7000-993a-afd019e6ac5c"},"emittedAtMs":1791758989632}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:4","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"5cb199bd-04e5-40d9-a299-8760be80e0a4","sequence":17},"last":{"id":"5cb199bd-04e5-40d9-a299-8760be80e0a4","sequence":17}},"item":{"itemId":"5e234d9d-0744-4757-9629-761ea4e7f062","kind":"userMessage","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","revision":1,"status":"completed","recordedAt":"2026-10-11T22:49:49.620067Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nSpawn one subagent whose only task is to run the shell command `sleep 30` and then reply with exactly: Done. Wait for it to finish, then reply with exactly what it said.","commandId":"01a12d28-7912-7000-993a-afd019e6ac5c"}},"emittedAtMs":1791758989632}} @@ -19,11 +21,11 @@ {"type":"emit_inbound","label":"session/contextUsage","frame":{"jsonrpc":"2.0","method":"session/contextUsage","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:8","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"c94f5484-20b7-4057-a736-303e97bc097c","sequence":52},"last":{"id":"c94f5484-20b7-4057-a736-303e97bc097c","sequence":52}},"windowTokens":1007997,"usedTokens":33175,"pressure":"normal"},"emittedAtMs":1791758993485}} {"type":"emit_inbound","label":"item/started","frame":{"jsonrpc":"2.0","method":"item/started","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:9","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"291169bb-4e14-4063-8a74-10b21b31519a","sequence":54},"last":{"id":"ef165c1d-a753-412b-a439-2d631c7f4295","sequence":59}},"item":{"itemId":"01a12d28-885c-7a80-80d9-d97502d7cda8","kind":"toolCall","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","revision":1,"status":"inProgress","recordedAt":"2026-10-11T22:49:53.53056Z","tool":"subagent_spawn","callId":"call_01a12d28869676e2854a4db7899c6224","args":"{\"command_id\":\"sleep-task-001\",\"objective\":\"Run the shell command `sleep 30` and then reply with exactly: Done.\",\"role\":\"sleeper\"}"}},"emittedAtMs":1791758993534}} {"type":"emit_inbound","label":"item/started","frame":{"jsonrpc":"2.0","method":"item/started","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:10","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"cf0af6cb-7066-447c-ae6b-f280e0e21508","sequence":61},"last":{"id":"cf0af6cb-7066-447c-ae6b-f280e0e21508","sequence":61}},"item":{"itemId":"01a12d28-8885-71f3-9961-b8f4d747382b","kind":"subagent","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","revision":1,"status":"inProgress","recordedAt":"2026-10-11T22:49:53.541542Z","fallbackText":"Subagent: Run the shell command `sleep 30` and then reply with exactly: Done.","subagentId":"subagent-1","agentPath":"main/sleeper/1","depth":1,"role":"sleeper","objective":"Run the shell command `sleep 30` and then reply with exactly: Done.","controlStatus":"accepted"}},"emittedAtMs":1791758993549}} -{"type":"expect_outbound","label":"turn/interrupt","frame":{"jsonrpc":"2.0","id":4,"method":"turn/interrupt","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","commandId":"01a12d28-889c-7000-8577-23019c9d175f"}}} +{"type":"expect_outbound","label":"turn/interrupt","frame":{"jsonrpc":"2.0","id":5,"method":"turn/interrupt","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","commandId":"01a12d28-889c-7000-8577-23019c9d175f"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:11","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"2de14a04-716b-4737-ae82-bb83b95d1bdf","sequence":69},"last":{"id":"2de14a04-716b-4737-ae82-bb83b95d1bdf","sequence":69}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791758993617}} {"type":"emit_inbound","label":"item/updated","frame":{"jsonrpc":"2.0","method":"item/updated","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:12","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"cf0af6cb-7066-447c-ae6b-f280e0e21508","sequence":61},"last":{"id":"112efeb8-f3d6-4615-b805-a025a397f769","sequence":72}},"item":{"itemId":"01a12d28-8885-71f3-9961-b8f4d747382b","kind":"subagent","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","revision":2,"status":"inProgress","recordedAt":"2026-10-11T22:49:53.625833Z","fallbackText":"Subagent: Run the shell command `sleep 30` and then reply with exactly: Done.","subagentId":"subagent-1","agentPath":"main/sleeper/1","depth":1,"role":"sleeper","objective":"Run the shell command `sleep 30` and then reply with exactly: Done.","childSessionId":"01a12d28-88bb-7ba1-9b79-334fd12a99cf","controlStatus":"running"}},"emittedAtMs":1791758993632}} {"type":"emit_inbound","label":"item/updated","frame":{"jsonrpc":"2.0","method":"item/updated","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:13","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"cf0af6cb-7066-447c-ae6b-f280e0e21508","sequence":61},"last":{"id":"9f7ed71d-7e70-463d-b1ee-85efa5acd882","sequence":73}},"item":{"itemId":"01a12d28-8885-71f3-9961-b8f4d747382b","kind":"subagent","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","revision":3,"status":"inProgress","recordedAt":"2026-10-11T22:49:53.632272Z","fallbackText":"Subagent: Run the shell command `sleep 30` and then reply with exactly: Done.","subagentId":"subagent-1","agentPath":"main/sleeper/1","depth":1,"role":"sleeper","objective":"Run the shell command `sleep 30` and then reply with exactly: Done.","childSessionId":"01a12d28-88bb-7ba1-9b79-334fd12a99cf","controlStatus":"running"}},"emittedAtMs":1791758993636}} -{"type":"emit_inbound","label":"response:turn/interrupt","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a12d28-889c-7000-8577-23019c9d175f","status":"accepted","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c"}}} +{"type":"emit_inbound","label":"response:turn/interrupt","frame":{"jsonrpc":"2.0","id":5,"result":{"commandId":"01a12d28-889c-7000-8577-23019c9d175f","status":"accepted","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c"}}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:14","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"291169bb-4e14-4063-8a74-10b21b31519a","sequence":54},"last":{"id":"21520538-ad76-4a08-ac24-f09f6e89b270","sequence":76}},"item":{"itemId":"01a12d28-885c-7a80-80d9-d97502d7cda8","kind":"toolCall","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","revision":2,"status":"cancelled","recordedAt":"2026-10-11T22:49:53.766982Z","tool":"subagent_spawn","callId":"call_01a12d28869676e2854a4db7899c6224","args":"{\"command_id\":\"sleep-task-001\",\"objective\":\"Run the shell command `sleep 30` and then reply with exactly: Done.\",\"role\":\"sleeper\"}","failureReason":"tool cancelled","visibleOutput":"tool cancelled"}},"emittedAtMs":1791758993770}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:15","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"44afb415-d6e4-4d51-9002-4deb196d463a","sequence":36},"last":{"id":"1c50cd79-a3e4-47a3-ba76-6e3fc5290cf7","sequence":80}},"item":{"itemId":"44afb415-d6e4-4d51-9002-4deb196d463a","kind":"reminderChild","turnId":"01a12d28-7912-7000-993a-afd019e6ac5c","revision":2,"status":"cancelled","recordedAt":"2026-10-11T22:49:53.793821Z","fallbackText":"Reminder child session","failureReason":"main run cancelled","childSessionId":"4dd3511e-2115-4fbb-a4c4-383cbb383d63","reminderAgentId":"skill-reminder","generationId":1,"taskId":"01a12d28-7997-79d0-8a69-8ac0acf92a56"}},"emittedAtMs":1791758993800}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","status":"idle","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:16"},"emittedAtMs":1791758993815}} diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/muse_workflow/muse_transcript.ndjson b/apps/server/src/orchestration-v2/testkit/fixtures/muse_workflow/muse_transcript.ndjson index 40039e9ee78e3..a070ad5c221be 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/muse_workflow/muse_transcript.ndjson +++ b/apps/server/src/orchestration-v2/testkit/fixtures/muse_workflow/muse_transcript.ndjson @@ -1,4 +1,4 @@ -{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.6-R6000.1","scenario":"muse_workflow","metadata":{"generatedBy":"live-muse-recorder","model":"muse-spark-1.3-contributor","commandIds":[["01a12d5d-405f-7000-89a3-5aa62af6ea23","01a12d5d-4060-7000-b6cd-aaabe26f80de","01a12d5d-42c3-7000-ab94-c7f56ea457e5"]]}} +{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.6-R6000.1","scenario":"muse_workflow","metadata":{"generatedBy":"live-muse-recorder","note":"session/setReasoningEffort request and its accepted response added by hand, matching a live Muse 1.4.13 capture","model":"muse-spark-1.3-contributor","commandIds":[["01a12d5d-405f-7000-89a3-5aa62af6ea23","01a12d5d-4060-7000-b6cd-aaabe26f80de","01a12d5d-42c3-74b9-a232-261da40177a8","01a12d5d-42c3-7000-ab94-c7f56ea457e5"]]}} {"type":"expect_outbound","label":"host_start","frame":{"type":"host_start","args":["serve","--trust-workspace","--disable-sandbox"]}} {"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}} {"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.6"},"userAgent":"muse-build/1.4.6 (serve; macos-aarch64; build db2475a6bd32831a854b97282a12b867123d6520)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:eae467ab60cb9a5d5af4de616830f065e59375c987fd59269c8cc33ed2a1137f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}} @@ -8,9 +8,11 @@ {"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","path":"~/.local/share/muse/sessions/2026/10/11/01a12d5d-405f-7000-89a3-5aa62af6ea23/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T23:47:28.587276Z","updatedAt":"2026-10-11T23:47:28.587281Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:2"}}} {"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:1","sourceRange":{"stream":{"kind":"session","id":"01a12d5d-405f-7000-89a3-5aa62af6ea23"},"first":{"id":"0c13b14b-877c-4c5b-b05f-8ad250dfd381","sequence":5},"last":{"id":"0c13b14b-877c-4c5b-b05f-8ad250dfd381","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a12d5d-4060-7000-b6cd-aaabe26f80de","clientName":"t3_code"},"emittedAtMs":1791762448807}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:2","sourceRange":{"stream":{"kind":"session","id":"01a12d5d-405f-7000-89a3-5aa62af6ea23"},"first":{"id":"28b1f3f4-4448-4a21-a1a0-2df72ad1d326","sequence":6},"last":{"id":"28b1f3f4-4448-4a21-a1a0-2df72ad1d326","sequence":6}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791762448807}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":3,"method":"turn/start","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Use your workflow tool to launch a workflow with exactly TWO agents: one labeled 'ping' that replies with the word PING, and one labeled 'pong' that replies with the word PONG. Launch it and end your turn; do not wait for it."}],"displayText":"Use your workflow tool to launch a workflow with exactly TWO agents: one labeled 'ping' that replies with the word PING, and one labeled 'pong' that replies with the word PONG. Launch it and end your turn; do not wait for it.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5"}}} +{"type":"expect_outbound","label":"session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"method":"session/setReasoningEffort","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","reasoningEffort":"high","commandId":"01a12d5d-42c3-74b9-a232-261da40177a8"}}} +{"type":"emit_inbound","label":"response:session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a12d5d-42c3-74b9-a232-261da40177a8","status":"accepted"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Use your workflow tool to launch a workflow with exactly TWO agents: one labeled 'ping' that replies with the word PING, and one labeled 'pong' that replies with the word PONG. Launch it and end your turn; do not wait for it."}],"displayText":"Use your workflow tool to launch a workflow with exactly TWO agents: one labeled 'ping' that replies with the word PING, and one labeled 'pong' that replies with the word PONG. Launch it and end your turn; do not wait for it.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:3","sourceRange":{"stream":{"kind":"session","id":"01a12d5d-405f-7000-89a3-5aa62af6ea23"},"first":{"id":"3f1880e1-81a0-4f21-b536-6b4fa5cf9d12","sequence":16},"last":{"id":"3f1880e1-81a0-4f21-b536-6b4fa5cf9d12","sequence":16}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791762449097}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5","status":"accepted","turnId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5","startedNewTurn":true,"disposition":"started"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5","status":"accepted","turnId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","status":"running","viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:4"},"emittedAtMs":1791762449102}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:4","sourceRange":{"stream":{"kind":"session","id":"01a12d5d-405f-7000-89a3-5aa62af6ea23"},"first":{"id":"7a830825-f571-4781-8e4f-a4ef5e085bb7","sequence":18},"last":{"id":"7a830825-f571-4781-8e4f-a4ef5e085bb7","sequence":18}},"turnId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5","commandId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5"},"emittedAtMs":1791762449103}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:5","sourceRange":{"stream":{"kind":"session","id":"01a12d5d-405f-7000-89a3-5aa62af6ea23"},"first":{"id":"7a830825-f571-4781-8e4f-a4ef5e085bb7","sequence":18},"last":{"id":"7a830825-f571-4781-8e4f-a4ef5e085bb7","sequence":18}},"item":{"itemId":"0c1ceda9-41f7-4c3e-990e-4c53873c7ef5","kind":"userMessage","turnId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5","revision":1,"status":"completed","recordedAt":"2026-10-11T23:47:29.098117Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nUse your workflow tool to launch a workflow with exactly TWO agents: one labeled 'ping' that replies with the word PING, and one labeled 'pong' that replies with the word PONG. Launch it and end your turn; do not wait for it.","commandId":"01a12d5d-42c3-7000-ab94-c7f56ea457e5"}},"emittedAtMs":1791762449103}} diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/simple/muse_transcript.ndjson b/apps/server/src/orchestration-v2/testkit/fixtures/simple/muse_transcript.ndjson index 24a06be8595ff..e8aa5a39e4012 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/simple/muse_transcript.ndjson +++ b/apps/server/src/orchestration-v2/testkit/fixtures/simple/muse_transcript.ndjson @@ -1,4 +1,4 @@ -{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.3-R5018.1","scenario":"simple","metadata":{"generatedBy":"live-muse-recorder","model":"muse-spark-1.3-contributor","commandIds":[["01a11a6a-bbb5-7000-ad0b-0c9e728406e5","01a11a6a-bbb6-7000-b1a4-a01ea59676ef","01a11a6a-be41-7000-8db9-1d84c1b8be48"]]}} +{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.3-R5018.1","scenario":"simple","metadata":{"generatedBy":"live-muse-recorder","note":"session/setReasoningEffort request and its accepted response added by hand, matching a live Muse 1.4.13 capture","model":"muse-spark-1.3-contributor","commandIds":[["01a11a6a-bbb5-7000-ad0b-0c9e728406e5","01a11a6a-bbb6-7000-b1a4-a01ea59676ef","01a11a6a-be41-7701-acc2-befe2ac30d7e","01a11a6a-be41-7000-8db9-1d84c1b8be48"]]}} {"type":"expect_outbound","label":"host_start","frame":{"type":"host_start","args":["serve","--trust-workspace","--disable-sandbox"]}} {"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}} {"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.3"},"userAgent":"muse-build/1.4.3 (non-interactive; macos-aarch64; build 5c1bccecf3f125ff8fdc53f63558f6527ee70e56)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:4cb671082574037fc1070a136db7c0c8dc24e65e78cf3d209a10944ff9f9845f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}} @@ -7,9 +7,11 @@ {"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6a-bbb5-7000-ad0b-0c9e728406e5/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:29:25.018803Z","updatedAt":"2026-10-08T07:29:25.018807Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791444565334}} {"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6a-bbb5-7000-ad0b-0c9e728406e5/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:29:25.018803Z","updatedAt":"2026-10-08T07:29:25.018807Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a11a6a-bbb5-7000-ad0b-0c9e728406e5:1"}}} {"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","viewCursor":"v:01a11a6a-bbb5-7000-ad0b-0c9e728406e5:1","sourceRange":{"stream":{"kind":"session","id":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5"},"first":{"id":"cfd043e8-8728-493d-ba28-252ef91e8a80","sequence":5},"last":{"id":"cfd043e8-8728-493d-ba28-252ef91e8a80","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a11a6a-bbb6-7000-b1a4-a01ea59676ef","clientName":"t3_code"},"emittedAtMs":1791444565340}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":3,"method":"turn/start","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Respond with the following text: fixture simple ok"}],"displayText":"Respond with the following text: fixture simple ok","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6a-be41-7000-8db9-1d84c1b8be48"}}} +{"type":"expect_outbound","label":"session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"method":"session/setReasoningEffort","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","reasoningEffort":"high","commandId":"01a11a6a-be41-7701-acc2-befe2ac30d7e"}}} +{"type":"emit_inbound","label":"response:session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a11a6a-be41-7701-acc2-befe2ac30d7e","status":"accepted"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Respond with the following text: fixture simple ok"}],"displayText":"Respond with the following text: fixture simple ok","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6a-be41-7000-8db9-1d84c1b8be48"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","viewCursor":"v:01a11a6a-bbb5-7000-ad0b-0c9e728406e5:2","sourceRange":{"stream":{"kind":"session","id":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5"},"first":{"id":"0f64f4ea-a08c-43e1-af53-cf85cee1a11c","sequence":16},"last":{"id":"0f64f4ea-a08c-43e1-af53-cf85cee1a11c","sequence":16}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791444565612}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a11a6a-be41-7000-8db9-1d84c1b8be48","status":"accepted","turnId":"01a11a6a-be41-7000-8db9-1d84c1b8be48","startedNewTurn":true,"disposition":"started"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a11a6a-be41-7000-8db9-1d84c1b8be48","status":"accepted","turnId":"01a11a6a-be41-7000-8db9-1d84c1b8be48","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","status":"running","viewCursor":"v:01a11a6a-bbb5-7000-ad0b-0c9e728406e5:3"},"emittedAtMs":1791444565635}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","viewCursor":"v:01a11a6a-bbb5-7000-ad0b-0c9e728406e5:3","sourceRange":{"stream":{"kind":"session","id":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5"},"first":{"id":"1f33a521-7829-4cc3-97db-a3b5a6e7deaf","sequence":18},"last":{"id":"1f33a521-7829-4cc3-97db-a3b5a6e7deaf","sequence":18}},"turnId":"01a11a6a-be41-7000-8db9-1d84c1b8be48","commandId":"01a11a6a-be41-7000-8db9-1d84c1b8be48"},"emittedAtMs":1791444565635}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","viewCursor":"v:01a11a6a-bbb5-7000-ad0b-0c9e728406e5:4","sourceRange":{"stream":{"kind":"session","id":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5"},"first":{"id":"1f33a521-7829-4cc3-97db-a3b5a6e7deaf","sequence":18},"last":{"id":"1f33a521-7829-4cc3-97db-a3b5a6e7deaf","sequence":18}},"item":{"itemId":"23294b54-8e67-4896-a7f3-681119e1ddbe","kind":"userMessage","turnId":"01a11a6a-be41-7000-8db9-1d84c1b8be48","revision":1,"status":"completed","recordedAt":"2026-10-08T07:29:25.627042Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nRespond with the following text: fixture simple ok","commandId":"01a11a6a-be41-7000-8db9-1d84c1b8be48"}},"emittedAtMs":1791444565635}} diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/subagent_v2/muse_transcript.ndjson b/apps/server/src/orchestration-v2/testkit/fixtures/subagent_v2/muse_transcript.ndjson index a75f744d01473..669be2c05d34d 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/subagent_v2/muse_transcript.ndjson +++ b/apps/server/src/orchestration-v2/testkit/fixtures/subagent_v2/muse_transcript.ndjson @@ -1,4 +1,4 @@ -{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.4-R5419.1","scenario":"subagent_v2","metadata":{"generatedBy":"live-muse-recorder","model":"muse-spark-1.3-contributor","commandIds":[["01a12d17-75fa-7000-9157-e8365ce94492","01a12d17-75fa-7001-a940-79b5d7c648a4","01a12d17-7790-7000-967d-3f2246f38a60"]]}} +{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.4-R5419.1","scenario":"subagent_v2","metadata":{"generatedBy":"live-muse-recorder","note":"session/setReasoningEffort request and its accepted response added by hand, matching a live Muse 1.4.13 capture","model":"muse-spark-1.3-contributor","commandIds":[["01a12d17-75fa-7000-9157-e8365ce94492","01a12d17-75fa-7001-a940-79b5d7c648a4","01a12d17-7790-7654-ab0c-85dca25d54a0","01a12d17-7790-7000-967d-3f2246f38a60"]]}} {"type":"expect_outbound","label":"host_start","frame":{"type":"host_start","args":["serve","--trust-workspace","--disable-sandbox"]}} {"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}} {"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.4"},"userAgent":"muse-build/1.4.4 (serve; macos-aarch64; build 1e1635eda6610b6dec0803bc76c1ceb0dbff7caa)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:7c94f153c41659cb3f1bd3c3e04438be254644cb2a97d65d48edc7449b74858a"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}} @@ -7,9 +7,11 @@ {"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","path":"~/.local/share/muse/sessions/2026/10/11/01a12d17-75fa-7000-9157-e8365ce94492/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:31:14.73121Z","updatedAt":"2026-10-11T22:31:14.731214Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791757874894}} {"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","path":"~/.local/share/muse/sessions/2026/10/11/01a12d17-75fa-7000-9157-e8365ce94492/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:31:14.73121Z","updatedAt":"2026-10-11T22:31:14.731214Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a12d17-75fa-7000-9157-e8365ce94492:1"}}} {"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","viewCursor":"v:01a12d17-75fa-7000-9157-e8365ce94492:1","sourceRange":{"stream":{"kind":"session","id":"01a12d17-75fa-7000-9157-e8365ce94492"},"first":{"id":"94d1e1ed-1d3e-4cd5-91bf-a51394fc8a0a","sequence":5},"last":{"id":"94d1e1ed-1d3e-4cd5-91bf-a51394fc8a0a","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a12d17-75fa-7001-a940-79b5d7c648a4","clientName":"t3_code"},"emittedAtMs":1791757874898}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":3,"method":"turn/start","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Spawn one subagent whose only task is to reply with exactly: Hello. Wait for it to finish, then reply with exactly what it said."}],"displayText":"Spawn one subagent whose only task is to reply with exactly: Hello. Wait for it to finish, then reply with exactly what it said.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a12d17-7790-7000-967d-3f2246f38a60"}}} +{"type":"expect_outbound","label":"session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"method":"session/setReasoningEffort","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","reasoningEffort":"high","commandId":"01a12d17-7790-7654-ab0c-85dca25d54a0"}}} +{"type":"emit_inbound","label":"response:session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a12d17-7790-7654-ab0c-85dca25d54a0","status":"accepted"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Spawn one subagent whose only task is to reply with exactly: Hello. Wait for it to finish, then reply with exactly what it said."}],"displayText":"Spawn one subagent whose only task is to reply with exactly: Hello. Wait for it to finish, then reply with exactly what it said.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a12d17-7790-7000-967d-3f2246f38a60"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","viewCursor":"v:01a12d17-75fa-7000-9157-e8365ce94492:2","sourceRange":{"stream":{"kind":"session","id":"01a12d17-75fa-7000-9157-e8365ce94492"},"first":{"id":"1dc98410-05c3-4618-a431-3638055e20df","sequence":15},"last":{"id":"1dc98410-05c3-4618-a431-3638055e20df","sequence":15}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791757875120}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a12d17-7790-7000-967d-3f2246f38a60","status":"accepted","turnId":"01a12d17-7790-7000-967d-3f2246f38a60","startedNewTurn":true,"disposition":"started"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a12d17-7790-7000-967d-3f2246f38a60","status":"accepted","turnId":"01a12d17-7790-7000-967d-3f2246f38a60","startedNewTurn":true,"disposition":"started"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","status":"running","viewCursor":"v:01a12d17-75fa-7000-9157-e8365ce94492:3"},"emittedAtMs":1791757875131}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","viewCursor":"v:01a12d17-75fa-7000-9157-e8365ce94492:3","sourceRange":{"stream":{"kind":"session","id":"01a12d17-75fa-7000-9157-e8365ce94492"},"first":{"id":"766cb840-a6f1-41f2-8c7e-8c372d0470cd","sequence":17},"last":{"id":"766cb840-a6f1-41f2-8c7e-8c372d0470cd","sequence":17}},"turnId":"01a12d17-7790-7000-967d-3f2246f38a60","commandId":"01a12d17-7790-7000-967d-3f2246f38a60"},"emittedAtMs":1791757875132}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","viewCursor":"v:01a12d17-75fa-7000-9157-e8365ce94492:4","sourceRange":{"stream":{"kind":"session","id":"01a12d17-75fa-7000-9157-e8365ce94492"},"first":{"id":"766cb840-a6f1-41f2-8c7e-8c372d0470cd","sequence":17},"last":{"id":"766cb840-a6f1-41f2-8c7e-8c372d0470cd","sequence":17}},"item":{"itemId":"95c179c8-e8f8-4629-80df-e28243a234ea","kind":"userMessage","turnId":"01a12d17-7790-7000-967d-3f2246f38a60","revision":1,"status":"completed","recordedAt":"2026-10-11T22:31:15.120499Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nSpawn one subagent whose only task is to reply with exactly: Hello. Wait for it to finish, then reply with exactly what it said.","commandId":"01a12d17-7790-7000-967d-3f2246f38a60"}},"emittedAtMs":1791757875132}} diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/turn_interrupt/muse_transcript.ndjson b/apps/server/src/orchestration-v2/testkit/fixtures/turn_interrupt/muse_transcript.ndjson index 49236a5938f3c..576185212ced5 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/turn_interrupt/muse_transcript.ndjson +++ b/apps/server/src/orchestration-v2/testkit/fixtures/turn_interrupt/muse_transcript.ndjson @@ -1,4 +1,4 @@ -{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.3-R5018.1","scenario":"turn_interrupt","metadata":{"generatedBy":"live-muse-recorder","model":"muse-spark-1.3-contributor","commandIds":[["01a11a6d-2d3d-7000-8178-411fdb90bc34","01a11a6d-2d3e-7000-b0e7-f04c53ee070b","01a11a6d-2ee0-7000-be19-f20eda7ce5d5","01a11a6d-2f0b-7000-a1d4-359cf54e471a"]]}} +{"type":"transcript_start","provider":"muse","protocol":"muse.msp-jsonl","version":"1.4.3-R5018.1","scenario":"turn_interrupt","metadata":{"generatedBy":"live-muse-recorder","note":"session/setReasoningEffort request and its accepted response added by hand, matching a live Muse 1.4.13 capture","model":"muse-spark-1.3-contributor","commandIds":[["01a11a6d-2d3d-7000-8178-411fdb90bc34","01a11a6d-2d3e-7000-b0e7-f04c53ee070b","01a11a6d-2ee0-71da-99f7-a994792c6de1","01a11a6d-2ee0-7000-be19-f20eda7ce5d5","01a11a6d-2f0b-7000-a1d4-359cf54e471a"]]}} {"type":"expect_outbound","label":"host_start","frame":{"type":"host_start","args":["serve","--trust-workspace","--disable-sandbox"]}} {"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}} {"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.3"},"userAgent":"muse-build/1.4.3 (non-interactive; macos-aarch64; build 5c1bccecf3f125ff8fdc53f63558f6527ee70e56)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:4cb671082574037fc1070a136db7c0c8dc24e65e78cf3d209a10944ff9f9845f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}} @@ -7,16 +7,18 @@ {"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6d-2d3d-7000-8178-411fdb90bc34/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:32:05.094285Z","updatedAt":"2026-10-08T07:32:05.094289Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791444725265}} {"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6d-2d3d-7000-8178-411fdb90bc34/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:32:05.094285Z","updatedAt":"2026-10-08T07:32:05.094289Z","workspaceRoot":"","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:1"}}} {"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:1","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"9865268e-0a39-43a0-89d0-251a820ec8a3","sequence":5},"last":{"id":"9865268e-0a39-43a0-89d0-251a820ec8a3","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a11a6d-2d3e-7000-b0e7-f04c53ee070b","clientName":"t3_code"},"emittedAtMs":1791444725268}} -{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":3,"method":"turn/start","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Do not answer immediately. First run the local shell command `sleep 30`, then respond with exactly: interrupt fixture should not finish naturally."}],"displayText":"Do not answer immediately. First run the local shell command `sleep 30`, then respond with exactly: interrupt fixture should not finish naturally.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5"}}} +{"type":"expect_outbound","label":"session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"method":"session/setReasoningEffort","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","reasoningEffort":"high","commandId":"01a11a6d-2ee0-71da-99f7-a994792c6de1"}}} +{"type":"emit_inbound","label":"response:session/setReasoningEffort","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a11a6d-2ee0-71da-99f7-a994792c6de1","status":"accepted"}}} +{"type":"expect_outbound","label":"turn/start","frame":{"jsonrpc":"2.0","id":4,"method":"turn/start","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","input":[{"type":"text","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\n"},{"type":"text","text":"Do not answer immediately. First run the local shell command `sleep 30`, then respond with exactly: interrupt fixture should not finish naturally."}],"displayText":"Do not answer immediately. First run the local shell command `sleep 30`, then respond with exactly: interrupt fixture should not finish naturally.","workspaceRoots":[""],"ifBusy":"queue","reasoningEffort":"high","commandId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5"}}} {"type":"emit_inbound","label":"session/branchChanged","frame":{"jsonrpc":"2.0","method":"session/branchChanged","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:2","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"531b0e9e-c96d-4fa5-a6dd-5cc7d4569543","sequence":16},"last":{"id":"531b0e9e-c96d-4fa5-a6dd-5cc7d4569543","sequence":16}},"workspaceRoot":"","branch":"main","vcs":"git"},"emittedAtMs":1791444725509}} -{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":3,"result":{"commandId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","status":"accepted","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","startedNewTurn":true,"disposition":"started"}}} -{"type":"expect_outbound","label":"turn/interrupt","frame":{"jsonrpc":"2.0","id":4,"method":"turn/interrupt","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","commandId":"01a11a6d-2f0b-7000-a1d4-359cf54e471a"}}} +{"type":"emit_inbound","label":"response:turn/start","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","status":"accepted","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","startedNewTurn":true,"disposition":"started"}}} +{"type":"expect_outbound","label":"turn/interrupt","frame":{"jsonrpc":"2.0","id":5,"method":"turn/interrupt","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","commandId":"01a11a6d-2f0b-7000-a1d4-359cf54e471a"}}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","status":"running","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:3"},"emittedAtMs":1791444725522}} {"type":"emit_inbound","label":"turn/started","frame":{"jsonrpc":"2.0","method":"turn/started","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:3","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"50d1fd8c-232b-47b9-9bfa-9b543961bbc9","sequence":18},"last":{"id":"50d1fd8c-232b-47b9-9bfa-9b543961bbc9","sequence":18}},"turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","commandId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5"},"emittedAtMs":1791444725523}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:4","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"50d1fd8c-232b-47b9-9bfa-9b543961bbc9","sequence":18},"last":{"id":"50d1fd8c-232b-47b9-9bfa-9b543961bbc9","sequence":18}},"item":{"itemId":"cfa989ad-2359-4da2-9fca-562855cc0ae8","kind":"userMessage","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","revision":1,"status":"completed","recordedAt":"2026-10-08T07:32:05.510508Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nDo not answer immediately. First run the local shell command `sleep 30`, then respond with exactly: interrupt fixture should not finish naturally.","commandId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5"}},"emittedAtMs":1791444725523}} {"type":"emit_inbound","label":"item/updated","frame":{"jsonrpc":"2.0","method":"item/updated","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:5","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"5db75d92-0e52-4bce-bb81-40e254b40bc3","sequence":20},"last":{"id":"5db75d92-0e52-4bce-bb81-40e254b40bc3","sequence":20}},"item":{"itemId":"cfa989ad-2359-4da2-9fca-562855cc0ae8","kind":"userMessage","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","revision":2,"status":"completed","recordedAt":"2026-10-08T07:32:05.530992Z","text":"In case you're asked: you are running in T3 Code through the Muse Code harness, as muse-spark-1.3-contributor with high reasoning effort. No need to mention this otherwise. You can embed images, video, and audio in your response using Markdown image syntax with absolute file paths. Link every other file you cite or produce by its absolute path, as in [http.ts:42](/abs/path/http.ts:42), so the user can open it in T3 Code's files viewer.\n\n\nLink each PR you create, take over, or push to: link_pull_request, or link_pull_requests for several, full URL, every stack layer, as your next call. Host tools do not link for you. If linking fails, say so. Skip PRs you only read or review, and PRs named only as background. Call watch_pull_request when asked to monitor or babysit, or when work you were asked to do, such as a merge, still waits on checks or reviews, even after an earlier unwatch. Finish any needed branch update and push first, then watch and end your turn. Otherwise act now or hand back. Delegated children never watch, even if the brief says babysit. After PR work, a child's last line is: PR , head , checks and reviews . Links and watches persist across pushes. For PR waits, no sleep, loops, gh --watch, Monitor or ScheduleWakeup. Before handback, call unwatch_pull_request on any PR you watch.\nDo not answer immediately. First run the local shell command `sleep 30`, then respond with exactly: interrupt fixture should not finish naturally.","displayText":"Do not answer immediately. First run the local shell command `sleep 30`, then respond with exactly: interrupt fixture should not finish naturally.","commandId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5"}},"emittedAtMs":1791444725539}} {"type":"emit_inbound","label":"item/started","frame":{"jsonrpc":"2.0","method":"item/started","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:6","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"ae604001-22b9-479c-a45b-3dcfed45996c","sequence":37},"last":{"id":"ae604001-22b9-479c-a45b-3dcfed45996c","sequence":37}},"item":{"itemId":"ae604001-22b9-479c-a45b-3dcfed45996c","kind":"reminderChild","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","revision":1,"status":"inProgress","recordedAt":"2026-10-08T07:32:05.638142Z","fallbackText":"Reminder child session","childSessionId":"1f58196a-6bf6-42da-9499-8f53a439e6e1","reminderAgentId":"skill-reminder","generationId":1,"taskId":"01a11a6d-2f65-70b1-bb8f-69b33bb4fc62"}},"emittedAtMs":1791444725646}} -{"type":"emit_inbound","label":"response:turn/interrupt","frame":{"jsonrpc":"2.0","id":4,"result":{"commandId":"01a11a6d-2f0b-7000-a1d4-359cf54e471a","status":"accepted","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5"}}} +{"type":"emit_inbound","label":"response:turn/interrupt","frame":{"jsonrpc":"2.0","id":5,"result":{"commandId":"01a11a6d-2f0b-7000-a1d4-359cf54e471a","status":"accepted","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5"}}} {"type":"emit_inbound","label":"item/completed","frame":{"jsonrpc":"2.0","method":"item/completed","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:7","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"ae604001-22b9-479c-a45b-3dcfed45996c","sequence":37},"last":{"id":"3962d8d1-4608-4dda-8fdc-39a1804474aa","sequence":50}},"item":{"itemId":"ae604001-22b9-479c-a45b-3dcfed45996c","kind":"reminderChild","turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","revision":2,"status":"cancelled","recordedAt":"2026-10-08T07:32:05.727236Z","fallbackText":"Reminder child session","failureReason":"main run cancelled","childSessionId":"1f58196a-6bf6-42da-9499-8f53a439e6e1","reminderAgentId":"skill-reminder","generationId":1,"taskId":"01a11a6d-2f65-70b1-bb8f-69b33bb4fc62"}},"emittedAtMs":1791444725734}} {"type":"emit_inbound","label":"session/statusChanged","frame":{"jsonrpc":"2.0","method":"session/statusChanged","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","status":"idle","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:8"},"emittedAtMs":1791444725743}} {"type":"emit_inbound","label":"turn/completed","frame":{"jsonrpc":"2.0","method":"turn/completed","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:8","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"647bf662-6210-407f-b125-d7d2f649dacd","sequence":52},"last":{"id":"647bf662-6210-407f-b125-d7d2f649dacd","sequence":52}},"turnId":"01a11a6d-2ee0-7000-be19-f20eda7ce5d5","terminal":"cancelled","reason":"cancelled during model step","durationMs":228},"emittedAtMs":1791444725743}} diff --git a/packages/provider-muse/src/server/adapter.test.ts b/packages/provider-muse/src/server/adapter.test.ts index 76b46715c6020..c7e6fd7da37f7 100644 --- a/packages/provider-muse/src/server/adapter.test.ts +++ b/packages/provider-muse/src/server/adapter.test.ts @@ -56,6 +56,8 @@ const MUSE_PROVIDER = ProviderDriverKind.make("muse"); const INSTANCE_ID = ProviderInstanceId.make("muse_work"); const THREAD_ID = ThreadId.make("thread-muse-test"); const MODEL = "muse-spark-1.3-contributor"; +const isProtocolError = Schema.is(ProviderAdapter.ProviderAdapterProtocolError); + const museSettings = Schema.decodeSync(MuseSettings)({ enabled: true }); const runtimePolicy = ProviderAdapter.ProviderAdapterV2RuntimePolicy.make({ runtimeMode: "full-access", @@ -98,6 +100,9 @@ const makeFakeMuse = Effect.fnUntraced(function* (idPrefix = "native") { let closeGate: Promise | undefined; let onProcessExit: MuseSdkHostOptions["onProcessExit"]; let history: MuseItem[] = []; + // Muse resolves a turn's effort from turn/start, then the session default, then its own. + let sessionEffort: unknown; + const turnEfforts = new Map(); const responses = new Map< string, Array> | Record | Error> @@ -120,7 +125,14 @@ const makeFakeMuse = Effect.fnUntraced(function* (idPrefix = "native") { session: { sessionId, modelId: MODEL, activeTurnId: null }, history: { items: history }, }; + case "session/setReasoningEffort": + sessionEffort = call.params.reasoningEffort; + return {}; case "turn/start": + turnEfforts.set( + String(call.commandId), + call.params.reasoningEffort ?? sessionEffort ?? "host-default", + ); return { turnId: call.commandId }; case "turn/steer": return { turnId: call.params.expectedTurnId }; @@ -187,6 +199,12 @@ const makeFakeMuse = Effect.fnUntraced(function* (idPrefix = "native") { Effect.sync(() => { notify({ jsonrpc: "2.0", method, params: { sessionId, ...params } }); }), + startOwnTurn: (turnId: string) => + Effect.sync(() => { + turnEfforts.set(turnId, sessionEffort ?? "host-default"); + notify({ jsonrpc: "2.0", method: "turn/started", params: { sessionId, turnId } }); + }), + turnEffort: (turnId: string) => turnEfforts.get(turnId), emitHostWide: (method: string, params: Record) => Effect.sync(() => { notify({ jsonrpc: "2.0", method, params }); @@ -767,6 +785,104 @@ describe("MuseAdapterV2", () => { }).pipe(Effect.scoped, Effect.provide(testLayer)), ); + it.effect("keeps per-turn effort when an older host lacks the session setter", () => + Effect.gen(function* () { + const fake = yield* makeFakeMuse(); + fake.queueResponse( + "session/setReasoningEffort", + new MspError({ + code: -32601, + message: "Method not found", + data: { kind: "methodNotFound" }, + }), + ); + const harness = yield* makeHarness(fake); + for (const index of [1, 2]) { + const input = yield* turnInput(harness.providerThread, index); + yield* harness.runtime.startTurn(input); + const turn = yield* fake.takeCall("turn/start"); + assert.strictEqual(fake.turnEffort(turn.commandId!), "max"); + yield* fake.emit("turn/completed", { turnId: turn.commandId!, terminal: "completed" }); + yield* harness.takeEvent("turn.terminal"); + } + assert.strictEqual( + fake.calls.filter((call) => call.method === "session/setReasoningEffort").length, + 1, + ); + }).pipe(Effect.scoped, Effect.provide(testLayer)), + ); + + it.effect("surfaces session effort failures other than an unsupported method", () => + Effect.gen(function* () { + const fake = yield* makeFakeMuse(); + fake.queueResponse( + "session/setReasoningEffort", + new MspError({ + code: -32000, + message: "Setter rejected", + data: { kind: "commandRejected" }, + }), + ); + const harness = yield* makeHarness(fake); + const input = yield* turnInput(harness.providerThread, 1); + const error = yield* harness.runtime.startTurn(input).pipe(Effect.flip); + assert.ok(isProtocolError(error.cause)); + assert.match(error.cause.detail, /Setter rejected/); + assert.strictEqual( + fake.calls.some((call) => call.method === "turn/start"), + false, + ); + }).pipe(Effect.scoped, Effect.provide(testLayer)), + ); + + it.effect("runs the follow-up turns Muse starts itself at the thread's selected effort", () => + Effect.gen(function* () { + const fake = yield* makeFakeMuse(); + const offers = + yield* Queue.unbounded(); + const harness = yield* makeHarness( + fake, + INSTANCE_ID, + undefined, + undefined, + undefined, + runtimePolicy, + { continuationRequests: { offer: (request) => Queue.offer(offers, request) } }, + ); + for (const [index, effort] of ["max", "low"].entries()) { + const input = yield* turnInput(harness.providerThread, index * 2 + 1); + const selection = { + ...input.modelSelection, + options: [{ id: "reasoningEffort", value: effort }], + }; + yield* harness.runtime.startTurn({ + ...input, + modelSelection: selection, + appThread: { ...input.appThread, modelSelection: selection }, + }); + const turn = yield* fake.takeCall("turn/start"); + yield* fake.emit("turn/completed", { turnId: turn.commandId!, terminal: "completed" }); + yield* harness.takeEvent("turn.terminal"); + + const reportId = `report-${index + 1}`; + yield* fake.startOwnTurn(reportId); + const continuation = yield* Queue.take(offers); + const followUp = yield* turnInput(harness.providerThread, index * 2 + 2); + yield* continuation.dispatchIfCurrent!( + harness.runtime.startTurn({ + ...followUp, + message: { ...followUp.message, createdBy: "agent", creationSource: "provider" }, + }), + ); + const adopted = yield* harness.takeEvent("provider_turn.updated"); + assert.strictEqual(adopted.providerTurn.nativeTurnRef?.nativeId, reportId); + yield* fake.emit("turn/completed", { turnId: reportId, terminal: "completed" }); + assert.strictEqual((yield* harness.takeEvent("turn.terminal")).status, "completed"); + assert.strictEqual(fake.turnEffort(reportId), effort); + } + }).pipe(Effect.scoped, Effect.provide(testLayer)), + ); + it.effect("settles partial messages and pending approvals before a provider failure", () => Effect.gen(function* () { const fake = yield* makeFakeMuse(); diff --git a/packages/provider-muse/src/server/adapter.ts b/packages/provider-muse/src/server/adapter.ts index d4b58e806517d..5d7c580738721 100644 --- a/packages/provider-muse/src/server/adapter.ts +++ b/packages/provider-muse/src/server/adapter.ts @@ -354,6 +354,9 @@ export const makeMuseAdapterV2 = Effect.fn("makeMuseAdapterV2")(function* ( // Only idle host failures can be retried on this runtime. let relaunchable = false; let nativeSessionId: string | undefined; + // Muse starts background-work continuations itself, at the session default effort. + let sessionEffort: string | undefined; + let sessionEffortUnsupported = false; let thread: OrchestrationV2ProviderThread | undefined; let active: ActiveTurn | undefined; let lastProviderTurn: OrchestrationV2ProviderTurn | undefined; @@ -2016,6 +2019,8 @@ export const makeMuseAdapterV2 = Effect.fn("makeMuseAdapterV2")(function* ( ...session, model: result.session.modelId ?? args.modelSelection.model, }; + sessionEffort = undefined; + sessionEffortUnsupported = false; yield* emit({ type: "provider_thread.updated", driver: MUSE_PROVIDER, @@ -2103,6 +2108,21 @@ export const makeMuseAdapterV2 = Effect.fn("makeMuseAdapterV2")(function* ( }); session = { ...session, model: targetModel }; } + if (effort && effort !== sessionEffort && !sessionEffortUnsupported) { + yield* request("session/setReasoningEffort", { reasoningEffort: effort }).pipe( + Effect.catch((error) => { + if ( + error.payload instanceof MspError && + (error.payload.code === -32601 || error.payload.kind === "methodNotFound") + ) { + sessionEffortUnsupported = true; + return Effect.void; + } + return Effect.fail(error); + }), + ); + sessionEffort = effort; + } const nativeId = adopted?.nativeId ?? host.connection.mintCommandId(); const startedAt = yield* DateTime.now; const providerTurn: OrchestrationV2ProviderTurn = {