@getpaseo/server 0.1.63 → 0.1.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server/client/daemon-client-transport-types.d.ts +2 -0
- package/dist/server/client/daemon-client-transport-types.d.ts.map +1 -1
- package/dist/server/client/daemon-client-websocket-transport.d.ts +2 -1
- package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -1
- package/dist/server/client/daemon-client-websocket-transport.js +4 -4
- package/dist/server/client/daemon-client-websocket-transport.js.map +1 -1
- package/dist/server/client/daemon-client.d.ts +30 -20
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +206 -98
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/client/terminal-stream-router.d.ts +24 -0
- package/dist/server/client/terminal-stream-router.d.ts.map +1 -0
- package/dist/server/client/terminal-stream-router.js +100 -0
- package/dist/server/client/terminal-stream-router.js.map +1 -0
- package/dist/server/server/agent/activity-curator.d.ts +6 -3
- package/dist/server/server/agent/activity-curator.d.ts.map +1 -1
- package/dist/server/server/agent/activity-curator.js +45 -138
- package/dist/server/server/agent/activity-curator.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +3 -14
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +75 -140
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.d.ts +0 -5
- package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.js +3 -93
- package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +15 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.d.ts +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.js +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -1
- package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -1
- package/dist/server/server/agent/agent-timeline-store.js +29 -32
- package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
- package/dist/server/server/agent/foreground-run-state.d.ts +50 -0
- package/dist/server/server/agent/foreground-run-state.d.ts.map +1 -0
- package/dist/server/server/agent/foreground-run-state.js +162 -0
- package/dist/server/server/agent/foreground-run-state.js.map +1 -0
- package/dist/server/server/agent/mcp-server.d.ts +5 -3
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +110 -99
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-shared.js +7 -1
- package/dist/server/server/agent/mcp-shared.js.map +1 -1
- package/dist/server/server/agent/prompt-attachments.d.ts +4 -3
- package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -1
- package/dist/server/server/agent/prompt-attachments.js +43 -4
- package/dist/server/server/agent/prompt-attachments.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +7 -0
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts +38 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.js +257 -140
- package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/sidechain-tracker.js +1 -1
- package/dist/server/server/agent/providers/claude/sidechain-tracker.js.map +1 -1
- package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/tool-call-mapper.js +68 -198
- package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +52 -102
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js +125 -141
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +36 -6
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +374 -219
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +6 -2
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.js +294 -113
- package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +1 -1
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +94 -2
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -1
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +24 -115
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts +102 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +416 -158
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/provider-runner.d.ts +27 -0
- package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -0
- package/dist/server/server/agent/providers/provider-runner.js +80 -0
- package/dist/server/server/agent/providers/provider-runner.js.map +1 -0
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +6 -3
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +2 -0
- package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts.map +1 -1
- package/dist/server/server/agent/providers/tool-call-mapper-utils.js +31 -0
- package/dist/server/server/agent/providers/tool-call-mapper-utils.js.map +1 -1
- package/dist/server/server/agent/timeline-projection.d.ts +21 -5
- package/dist/server/server/agent/timeline-projection.d.ts.map +1 -1
- package/dist/server/server/agent/timeline-projection.js +59 -9
- package/dist/server/server/agent/timeline-projection.js.map +1 -1
- package/dist/server/server/auth.d.ts +25 -0
- package/dist/server/server/auth.d.ts.map +1 -0
- package/dist/server/server/auth.js +93 -0
- package/dist/server/server/auth.js.map +1 -0
- package/dist/server/server/bootstrap.d.ts +3 -1
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +87 -30
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +11 -0
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/exports.d.ts +7 -1
- package/dist/server/server/exports.d.ts.map +1 -1
- package/dist/server/server/exports.js +6 -1
- package/dist/server/server/exports.js.map +1 -1
- package/dist/server/server/file-explorer/service.d.ts +10 -0
- package/dist/server/server/file-explorer/service.d.ts.map +1 -1
- package/dist/server/server/file-explorer/service.js +38 -4
- package/dist/server/server/file-explorer/service.js.map +1 -1
- package/dist/server/server/index.js +9 -6
- package/dist/server/server/index.js.map +1 -1
- package/dist/server/server/logger.d.ts.map +1 -1
- package/dist/server/server/logger.js +15 -1
- package/dist/server/server/logger.js.map +1 -1
- package/dist/server/server/pagination/cursor.d.ts +16 -0
- package/dist/server/server/pagination/cursor.d.ts.map +1 -0
- package/dist/server/server/pagination/cursor.js +62 -0
- package/dist/server/server/pagination/cursor.js.map +1 -0
- package/dist/server/server/pagination/sortable-pager.d.ts +24 -0
- package/dist/server/server/pagination/sortable-pager.d.ts.map +1 -0
- package/dist/server/server/pagination/sortable-pager.js +68 -0
- package/dist/server/server/pagination/sortable-pager.js.map +1 -0
- package/dist/server/server/paseo-worktree-archive-service.d.ts +3 -1
- package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -1
- package/dist/server/server/paseo-worktree-archive-service.js +61 -53
- package/dist/server/server/paseo-worktree-archive-service.js.map +1 -1
- package/dist/server/server/paseo-worktree-service.d.ts +13 -0
- package/dist/server/server/paseo-worktree-service.d.ts.map +1 -1
- package/dist/server/server/paseo-worktree-service.js +72 -3
- package/dist/server/server/paseo-worktree-service.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +25 -0
- package/dist/server/server/persisted-config.d.ts.map +1 -1
- package/dist/server/server/persisted-config.js +9 -0
- package/dist/server/server/persisted-config.js.map +1 -1
- package/dist/server/server/relay-transport.d.ts.map +1 -1
- package/dist/server/server/relay-transport.js +16 -4
- package/dist/server/server/relay-transport.js.map +1 -1
- package/dist/server/server/resolve-worktree-creation-intent.d.ts +0 -10
- package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -1
- package/dist/server/server/resolve-worktree-creation-intent.js +1 -45
- package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -1
- package/dist/server/server/script-status-projection.d.ts +6 -1
- package/dist/server/server/script-status-projection.d.ts.map +1 -1
- package/dist/server/server/script-status-projection.js +12 -3
- package/dist/server/server/script-status-projection.js.map +1 -1
- package/dist/server/server/session.d.ts +19 -51
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +354 -1069
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts +4 -2
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +65 -12
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-directory.d.ts +69 -0
- package/dist/server/server/workspace-directory.d.ts.map +1 -0
- package/dist/server/server/workspace-directory.js +229 -0
- package/dist/server/server/workspace-directory.js.map +1 -0
- package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
- package/dist/server/server/worktree-bootstrap.js +6 -2
- package/dist/server/server/worktree-bootstrap.js.map +1 -1
- package/dist/server/server/worktree-core.d.ts +2 -0
- package/dist/server/server/worktree-core.d.ts.map +1 -1
- package/dist/server/server/worktree-core.js.map +1 -1
- package/dist/server/server/worktree-errors.d.ts +1 -1
- package/dist/server/server/worktree-errors.d.ts.map +1 -1
- package/dist/server/server/worktree-errors.js +1 -4
- package/dist/server/server/worktree-errors.js.map +1 -1
- package/dist/server/server/worktree-session.d.ts +47 -20
- package/dist/server/server/worktree-session.d.ts.map +1 -1
- package/dist/server/server/worktree-session.js +68 -25
- package/dist/server/server/worktree-session.js.map +1 -1
- package/dist/server/shared/binary-frames/file-transfer.d.ts +56 -0
- package/dist/server/shared/binary-frames/file-transfer.d.ts.map +1 -0
- package/dist/server/shared/binary-frames/file-transfer.js +108 -0
- package/dist/server/shared/binary-frames/file-transfer.js.map +1 -0
- package/dist/server/shared/binary-frames/index.d.ts +3 -0
- package/dist/server/shared/binary-frames/index.d.ts.map +1 -0
- package/dist/server/shared/binary-frames/index.js +3 -0
- package/dist/server/shared/binary-frames/index.js.map +1 -0
- package/dist/server/shared/{terminal-stream-protocol.d.ts → binary-frames/terminal.d.ts} +2 -2
- package/dist/server/shared/binary-frames/terminal.d.ts.map +1 -0
- package/dist/server/shared/{terminal-stream-protocol.js → binary-frames/terminal.js} +2 -2
- package/dist/server/shared/binary-frames/terminal.js.map +1 -0
- package/dist/server/shared/client-capabilities.d.ts +5 -0
- package/dist/server/shared/client-capabilities.d.ts.map +1 -0
- package/dist/server/shared/client-capabilities.js +4 -0
- package/dist/server/shared/client-capabilities.js.map +1 -0
- package/dist/server/shared/connection-offer.d.ts +8 -0
- package/dist/server/shared/connection-offer.d.ts.map +1 -1
- package/dist/server/shared/connection-offer.js +35 -0
- package/dist/server/shared/connection-offer.js.map +1 -1
- package/dist/server/shared/daemon-endpoints.d.ts +16 -1
- package/dist/server/shared/daemon-endpoints.d.ts.map +1 -1
- package/dist/server/shared/daemon-endpoints.js +65 -6
- package/dist/server/shared/daemon-endpoints.js.map +1 -1
- package/dist/server/shared/host-connection-schema.d.ts +23 -0
- package/dist/server/shared/host-connection-schema.d.ts.map +1 -0
- package/dist/server/shared/host-connection-schema.js +9 -0
- package/dist/server/shared/host-connection-schema.js.map +1 -0
- package/dist/server/shared/messages.d.ts +3242 -535
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +73 -34
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/terminal/terminal-manager-factory.d.ts +7 -0
- package/dist/server/terminal/terminal-manager-factory.d.ts.map +1 -0
- package/dist/server/terminal/terminal-manager-factory.js +13 -0
- package/dist/server/terminal/terminal-manager-factory.js.map +1 -0
- package/dist/server/terminal/terminal-manager.d.ts +7 -1
- package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager.js +14 -1
- package/dist/server/terminal/terminal-manager.js.map +1 -1
- package/dist/server/terminal/terminal-session-controller.d.ts +63 -0
- package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -0
- package/dist/server/terminal/terminal-session-controller.js +615 -0
- package/dist/server/terminal/terminal-session-controller.js.map +1 -0
- package/dist/server/terminal/terminal-ts-loader.mjs +20 -0
- package/dist/server/terminal/terminal-worker-process.d.ts +2 -0
- package/dist/server/terminal/terminal-worker-process.d.ts.map +1 -0
- package/dist/server/terminal/terminal-worker-process.js +221 -0
- package/dist/server/terminal/terminal-worker-process.js.map +1 -0
- package/dist/server/terminal/terminal-worker-protocol.d.ts +113 -0
- package/dist/server/terminal/terminal-worker-protocol.d.ts.map +1 -0
- package/dist/server/terminal/terminal-worker-protocol.js +2 -0
- package/dist/server/terminal/terminal-worker-protocol.js.map +1 -0
- package/dist/server/terminal/terminal.d.ts +7 -0
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +22 -9
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/terminal/worker-terminal-manager.d.ts +19 -0
- package/dist/server/terminal/worker-terminal-manager.d.ts.map +1 -0
- package/dist/server/terminal/worker-terminal-manager.js +466 -0
- package/dist/server/terminal/worker-terminal-manager.js.map +1 -0
- package/dist/server/utils/directory-suggestions.d.ts.map +1 -1
- package/dist/server/utils/directory-suggestions.js +10 -1
- package/dist/server/utils/directory-suggestions.js.map +1 -1
- package/dist/server/utils/process-tree.d.ts +25 -0
- package/dist/server/utils/process-tree.d.ts.map +1 -0
- package/dist/server/utils/process-tree.js +96 -0
- package/dist/server/utils/process-tree.js.map +1 -0
- package/dist/server/utils/windows-command.d.ts.map +1 -1
- package/dist/server/utils/windows-command.js +5 -1
- package/dist/server/utils/windows-command.js.map +1 -1
- package/dist/server/utils/worktree-metadata.d.ts +44 -0
- package/dist/server/utils/worktree-metadata.d.ts.map +1 -1
- package/dist/server/utils/worktree-metadata.js +58 -0
- package/dist/server/utils/worktree-metadata.js.map +1 -1
- package/dist/server/utils/worktree.d.ts +14 -2
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +22 -13
- package/dist/server/utils/worktree.js.map +1 -1
- package/package.json +5 -4
- package/dist/server/shared/terminal-stream-protocol.d.ts.map +0 -1
- package/dist/server/shared/terminal-stream-protocol.js.map +0 -1
|
@@ -13,176 +13,53 @@ const ClaudeRawToolCallSchema = z
|
|
|
13
13
|
status: ClaudeToolCallStatusSchema,
|
|
14
14
|
})
|
|
15
15
|
.passthrough();
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
status: raw.status,
|
|
24
|
-
}));
|
|
25
|
-
const ClaudeShellToolNameSchema = z.union([
|
|
26
|
-
z.literal("Bash"),
|
|
27
|
-
z.literal("bash"),
|
|
28
|
-
z.literal("shell"),
|
|
29
|
-
z.literal("exec_command"),
|
|
30
|
-
]);
|
|
31
|
-
const ClaudeReadToolNameSchema = z.union([
|
|
32
|
-
z.literal("Read"),
|
|
33
|
-
z.literal("read"),
|
|
34
|
-
z.literal("read_file"),
|
|
35
|
-
z.literal("view_file"),
|
|
36
|
-
]);
|
|
37
|
-
const ClaudeWriteToolNameSchema = z.union([
|
|
38
|
-
z.literal("Write"),
|
|
39
|
-
z.literal("write"),
|
|
40
|
-
z.literal("write_file"),
|
|
41
|
-
z.literal("create_file"),
|
|
42
|
-
]);
|
|
43
|
-
const ClaudeEditToolNameSchema = z.union([
|
|
44
|
-
z.literal("Edit"),
|
|
45
|
-
z.literal("MultiEdit"),
|
|
46
|
-
z.literal("multi_edit"),
|
|
47
|
-
z.literal("edit"),
|
|
48
|
-
z.literal("apply_patch"),
|
|
49
|
-
z.literal("apply_diff"),
|
|
50
|
-
z.literal("str_replace_editor"),
|
|
51
|
-
]);
|
|
52
|
-
const ClaudeSearchToolNameSchema = z.union([
|
|
53
|
-
z.literal("WebSearch"),
|
|
54
|
-
z.literal("web_search"),
|
|
55
|
-
z.literal("search"),
|
|
56
|
-
z.literal("Grep"),
|
|
57
|
-
z.literal("grep"),
|
|
58
|
-
z.literal("Glob"),
|
|
59
|
-
z.literal("glob"),
|
|
60
|
-
]);
|
|
61
|
-
const ClaudeFetchToolNameSchema = z.union([
|
|
62
|
-
z.literal("WebFetch"),
|
|
63
|
-
z.literal("web_fetch"),
|
|
64
|
-
z.literal("WebFetchTool"),
|
|
65
|
-
z.literal("web_fetch_tool"),
|
|
66
|
-
z.literal("webfetch"),
|
|
67
|
-
]);
|
|
68
|
-
const ClaudeSpeakToolNameSchema = z
|
|
69
|
-
.string()
|
|
70
|
-
.min(1)
|
|
71
|
-
.refine((name) => isSpeakToolName(name.trim()));
|
|
72
|
-
const ClaudeToolKindSchema = z.enum([
|
|
73
|
-
"shell",
|
|
74
|
-
"read",
|
|
75
|
-
"write",
|
|
16
|
+
const SHELL_NAMES = new Set(["Bash", "bash", "shell", "exec_command"]);
|
|
17
|
+
const READ_NAMES = new Set(["Read", "read", "read_file", "view_file"]);
|
|
18
|
+
const WRITE_NAMES = new Set(["Write", "write", "write_file", "create_file"]);
|
|
19
|
+
const EDIT_NAMES = new Set([
|
|
20
|
+
"Edit",
|
|
21
|
+
"MultiEdit",
|
|
22
|
+
"multi_edit",
|
|
76
23
|
"edit",
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"unknown",
|
|
24
|
+
"apply_patch",
|
|
25
|
+
"apply_diff",
|
|
26
|
+
"str_replace_editor",
|
|
81
27
|
]);
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
toolKind: ClaudeToolKindSchema,
|
|
91
|
-
});
|
|
92
|
-
const ClaudeToolCallPass2InputSchema = ClaudeToolCallPass2BaseSchema.omit({
|
|
93
|
-
toolKind: true,
|
|
94
|
-
});
|
|
95
|
-
const ClaudeToolCallPass2EnvelopeSchema = z.union([
|
|
96
|
-
ClaudeToolCallPass2InputSchema.extend({
|
|
97
|
-
name: ClaudeShellToolNameSchema,
|
|
98
|
-
}).transform((normalized) => ({
|
|
99
|
-
...normalized,
|
|
100
|
-
name: normalized.name.trim(),
|
|
101
|
-
toolKind: "shell",
|
|
102
|
-
})),
|
|
103
|
-
ClaudeToolCallPass2InputSchema.extend({
|
|
104
|
-
name: ClaudeReadToolNameSchema,
|
|
105
|
-
}).transform((normalized) => ({
|
|
106
|
-
...normalized,
|
|
107
|
-
name: normalized.name.trim(),
|
|
108
|
-
toolKind: "read",
|
|
109
|
-
})),
|
|
110
|
-
ClaudeToolCallPass2InputSchema.extend({
|
|
111
|
-
name: ClaudeWriteToolNameSchema,
|
|
112
|
-
}).transform((normalized) => ({
|
|
113
|
-
...normalized,
|
|
114
|
-
name: normalized.name.trim(),
|
|
115
|
-
toolKind: "write",
|
|
116
|
-
})),
|
|
117
|
-
ClaudeToolCallPass2InputSchema.extend({
|
|
118
|
-
name: ClaudeEditToolNameSchema,
|
|
119
|
-
}).transform((normalized) => ({
|
|
120
|
-
...normalized,
|
|
121
|
-
name: normalized.name.trim(),
|
|
122
|
-
toolKind: "edit",
|
|
123
|
-
})),
|
|
124
|
-
ClaudeToolCallPass2InputSchema.extend({
|
|
125
|
-
name: ClaudeSearchToolNameSchema,
|
|
126
|
-
}).transform((normalized) => ({
|
|
127
|
-
...normalized,
|
|
128
|
-
name: normalized.name.trim(),
|
|
129
|
-
toolKind: "search",
|
|
130
|
-
})),
|
|
131
|
-
ClaudeToolCallPass2InputSchema.extend({
|
|
132
|
-
name: ClaudeFetchToolNameSchema,
|
|
133
|
-
}).transform((normalized) => ({
|
|
134
|
-
...normalized,
|
|
135
|
-
name: normalized.name.trim(),
|
|
136
|
-
toolKind: "fetch",
|
|
137
|
-
})),
|
|
138
|
-
ClaudeToolCallPass2InputSchema.extend({
|
|
139
|
-
name: ClaudeSpeakToolNameSchema,
|
|
140
|
-
}).transform((normalized) => ({
|
|
141
|
-
...normalized,
|
|
142
|
-
name: "speak",
|
|
143
|
-
toolKind: "speak",
|
|
144
|
-
})),
|
|
145
|
-
ClaudeToolCallPass2InputSchema.transform((normalized) => ({
|
|
146
|
-
...normalized,
|
|
147
|
-
name: normalized.name.trim(),
|
|
148
|
-
toolKind: "unknown",
|
|
149
|
-
})),
|
|
28
|
+
const SEARCH_NAMES = new Set([
|
|
29
|
+
"WebSearch",
|
|
30
|
+
"web_search",
|
|
31
|
+
"search",
|
|
32
|
+
"Grep",
|
|
33
|
+
"grep",
|
|
34
|
+
"Glob",
|
|
35
|
+
"glob",
|
|
150
36
|
]);
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
toolKind: z.literal("read"),
|
|
158
|
-
name: ClaudeReadToolNameSchema,
|
|
159
|
-
}),
|
|
160
|
-
ClaudeToolCallPass2BaseSchema.extend({
|
|
161
|
-
toolKind: z.literal("write"),
|
|
162
|
-
name: ClaudeWriteToolNameSchema,
|
|
163
|
-
}),
|
|
164
|
-
ClaudeToolCallPass2BaseSchema.extend({
|
|
165
|
-
toolKind: z.literal("edit"),
|
|
166
|
-
name: ClaudeEditToolNameSchema,
|
|
167
|
-
}),
|
|
168
|
-
ClaudeToolCallPass2BaseSchema.extend({
|
|
169
|
-
toolKind: z.literal("search"),
|
|
170
|
-
name: ClaudeSearchToolNameSchema,
|
|
171
|
-
}),
|
|
172
|
-
ClaudeToolCallPass2BaseSchema.extend({
|
|
173
|
-
toolKind: z.literal("fetch"),
|
|
174
|
-
name: ClaudeFetchToolNameSchema,
|
|
175
|
-
}),
|
|
176
|
-
ClaudeToolCallPass2BaseSchema.extend({
|
|
177
|
-
toolKind: z.literal("speak"),
|
|
178
|
-
name: z.literal("speak"),
|
|
179
|
-
}),
|
|
180
|
-
ClaudeToolCallPass2BaseSchema.extend({
|
|
181
|
-
toolKind: z.literal("unknown"),
|
|
182
|
-
}),
|
|
37
|
+
const FETCH_NAMES = new Set([
|
|
38
|
+
"WebFetch",
|
|
39
|
+
"web_fetch",
|
|
40
|
+
"WebFetchTool",
|
|
41
|
+
"web_fetch_tool",
|
|
42
|
+
"webfetch",
|
|
183
43
|
]);
|
|
184
|
-
function
|
|
185
|
-
|
|
44
|
+
function resolveClaudeToolKind(name) {
|
|
45
|
+
if (SHELL_NAMES.has(name))
|
|
46
|
+
return "shell";
|
|
47
|
+
if (READ_NAMES.has(name))
|
|
48
|
+
return "read";
|
|
49
|
+
if (WRITE_NAMES.has(name))
|
|
50
|
+
return "write";
|
|
51
|
+
if (EDIT_NAMES.has(name))
|
|
52
|
+
return "edit";
|
|
53
|
+
if (SEARCH_NAMES.has(name))
|
|
54
|
+
return "search";
|
|
55
|
+
if (FETCH_NAMES.has(name))
|
|
56
|
+
return "fetch";
|
|
57
|
+
if (isSpeakToolName(name))
|
|
58
|
+
return "speak";
|
|
59
|
+
return "unknown";
|
|
60
|
+
}
|
|
61
|
+
function resolveDetailName(toolKind, name) {
|
|
62
|
+
switch (toolKind) {
|
|
186
63
|
case "shell":
|
|
187
64
|
return "shell";
|
|
188
65
|
case "read":
|
|
@@ -193,57 +70,50 @@ function resolveDetailName(normalized) {
|
|
|
193
70
|
return "apply_patch";
|
|
194
71
|
case "search":
|
|
195
72
|
case "fetch":
|
|
196
|
-
return
|
|
73
|
+
return name;
|
|
197
74
|
case "speak":
|
|
198
75
|
return "speak";
|
|
199
76
|
default:
|
|
200
|
-
return
|
|
77
|
+
return name;
|
|
201
78
|
}
|
|
202
79
|
}
|
|
203
|
-
function
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
80
|
+
function mapClaudeToolCall(params, status, error) {
|
|
81
|
+
const parsed = ClaudeRawToolCallSchema.safeParse({ ...params, status, error });
|
|
82
|
+
if (!parsed.success) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
const raw = parsed.data;
|
|
86
|
+
const callId = typeof raw.callId === "string" && raw.callId.trim().length > 0 ? raw.callId : null;
|
|
87
|
+
if (callId === null) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const trimmedName = raw.name.trim();
|
|
91
|
+
const toolKind = resolveClaudeToolKind(trimmedName);
|
|
92
|
+
const name = toolKind === "speak" ? "speak" : trimmedName;
|
|
93
|
+
const input = raw.input ?? null;
|
|
94
|
+
const output = raw.output ?? null;
|
|
95
|
+
const detail = deriveClaudeToolDetail(resolveDetailName(toolKind, name), input, output);
|
|
96
|
+
if (raw.status === "failed") {
|
|
208
97
|
return {
|
|
209
98
|
type: "tool_call",
|
|
210
|
-
callId
|
|
99
|
+
callId,
|
|
211
100
|
name,
|
|
212
101
|
detail,
|
|
213
102
|
status: "failed",
|
|
214
|
-
error:
|
|
215
|
-
...(
|
|
103
|
+
error: raw.error ?? { message: "Tool call failed" },
|
|
104
|
+
...(raw.metadata ? { metadata: raw.metadata } : {}),
|
|
216
105
|
};
|
|
217
106
|
}
|
|
218
107
|
return {
|
|
219
108
|
type: "tool_call",
|
|
220
|
-
callId
|
|
109
|
+
callId,
|
|
221
110
|
name,
|
|
222
111
|
detail,
|
|
223
|
-
status:
|
|
112
|
+
status: raw.status,
|
|
224
113
|
error: null,
|
|
225
|
-
...(
|
|
114
|
+
...(raw.metadata ? { metadata: raw.metadata } : {}),
|
|
226
115
|
};
|
|
227
116
|
}
|
|
228
|
-
function mapClaudeToolCall(params, status, error) {
|
|
229
|
-
const pass1 = ClaudeToolCallPass1Schema.safeParse({
|
|
230
|
-
...params,
|
|
231
|
-
status,
|
|
232
|
-
error,
|
|
233
|
-
});
|
|
234
|
-
if (!pass1.success) {
|
|
235
|
-
return null;
|
|
236
|
-
}
|
|
237
|
-
const pass2Envelope = ClaudeToolCallPass2EnvelopeSchema.safeParse(pass1.data);
|
|
238
|
-
if (!pass2Envelope.success) {
|
|
239
|
-
return null;
|
|
240
|
-
}
|
|
241
|
-
const pass2 = ClaudeToolCallPass2Schema.safeParse(pass2Envelope.data);
|
|
242
|
-
if (!pass2.success) {
|
|
243
|
-
return null;
|
|
244
|
-
}
|
|
245
|
-
return toToolCallTimelineItem(pass2.data);
|
|
246
|
-
}
|
|
247
117
|
export function mapClaudeRunningToolCall(params) {
|
|
248
118
|
return mapClaudeToolCall(params, "running", null);
|
|
249
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-mapper.js","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/claude/tool-call-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAUtE,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-call-mapper.js","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/claude/tool-call-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,EACL,KAAK,eAAe,EASpB,KAAK,UAAU,EAMhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,EACL,KAAK,eAAe,EASpB,KAAK,UAAU,EAMhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAuBnC,OAAO,KAAK,EAEV,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAGlB,oBAAoB,EAKpB,sBAAsB,EAItB,YAAY,EACZ,kBAAkB,EAGlB,iBAAiB,EAGjB,iBAAiB,EACjB,0BAA0B,EAE1B,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAWtC,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAkED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,UAAU,wBAAwB;IAChC,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;KAAE,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC;CAC7B;AAsVD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAyCtE;AA+hBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,gBAAgB,CAgC1E;AAID,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,YAAY,uBAAuB;IAE5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA+C;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEhC,OAAO,EAAE,wBAAwB;IAOvC,aAAa,CACjB,MAAM,EAAE,kBAAkB,EAC1B,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,YAAY,CAAC;IAWlB,aAAa,CACjB,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACvC,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,YAAY,CAAC;IAsBlB,UAAU,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAKxE,mBAAmB,CACvB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAgBhC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,aAAa,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAyCtD,OAAO,CAAC,YAAY;CAMrB;AAizFD,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACxD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA+CD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,GACzE,iBAAiB,EAAE,CAmDrB"}
|
|
@@ -10,6 +10,7 @@ import { getClaudeModels, normalizeClaudeRuntimeModelId } from "./claude/claude-
|
|
|
10
10
|
import { parsePartialJsonObject } from "./claude/partial-json.js";
|
|
11
11
|
import { ClaudeSidechainTracker } from "./claude/sidechain-tracker.js";
|
|
12
12
|
import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
|
|
13
|
+
import { appendOrReplaceGrowingAssistantMessage, runProviderTurn } from "./provider-runner.js";
|
|
13
14
|
import { renderPromptAttachmentAsText } from "../prompt-attachments.js";
|
|
14
15
|
import { createProviderEnv, createProviderEnvSpec, } from "../provider-launch-config.js";
|
|
15
16
|
import { findExecutable, isCommandAvailable } from "../../../utils/executable.js";
|
|
@@ -1219,77 +1220,14 @@ class ClaudeAgentSession {
|
|
|
1219
1220
|
return { ...info };
|
|
1220
1221
|
}
|
|
1221
1222
|
async run(prompt, options) {
|
|
1222
|
-
const
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
let rejectCompletion;
|
|
1230
|
-
const processEvent = (event) => {
|
|
1231
|
-
if (settled) {
|
|
1232
|
-
return;
|
|
1233
|
-
}
|
|
1234
|
-
const eventTurnId = event.turnId;
|
|
1235
|
-
if (turnId && eventTurnId && eventTurnId !== turnId) {
|
|
1236
|
-
return;
|
|
1237
|
-
}
|
|
1238
|
-
if (event.type === "timeline") {
|
|
1239
|
-
timeline.push(event.item);
|
|
1240
|
-
if (event.item.type === "assistant_message") {
|
|
1241
|
-
if (!finalText) {
|
|
1242
|
-
finalText = event.item.text;
|
|
1243
|
-
}
|
|
1244
|
-
else if (event.item.text.startsWith(finalText)) {
|
|
1245
|
-
finalText = event.item.text;
|
|
1246
|
-
}
|
|
1247
|
-
else {
|
|
1248
|
-
finalText += event.item.text;
|
|
1249
|
-
}
|
|
1250
|
-
}
|
|
1251
|
-
return;
|
|
1252
|
-
}
|
|
1253
|
-
if (event.type === "turn_completed") {
|
|
1254
|
-
usage = event.usage;
|
|
1255
|
-
settled = true;
|
|
1256
|
-
resolveCompletion();
|
|
1257
|
-
return;
|
|
1258
|
-
}
|
|
1259
|
-
if (event.type === "turn_failed") {
|
|
1260
|
-
settled = true;
|
|
1261
|
-
rejectCompletion(new Error(event.error));
|
|
1262
|
-
return;
|
|
1263
|
-
}
|
|
1264
|
-
if (event.type === "turn_canceled") {
|
|
1265
|
-
settled = true;
|
|
1266
|
-
resolveCompletion();
|
|
1267
|
-
}
|
|
1268
|
-
};
|
|
1269
|
-
const completion = new Promise((resolve, reject) => {
|
|
1270
|
-
resolveCompletion = resolve;
|
|
1271
|
-
rejectCompletion = reject;
|
|
1223
|
+
const result = await runProviderTurn({
|
|
1224
|
+
prompt,
|
|
1225
|
+
runOptions: options,
|
|
1226
|
+
startTurn: (p, o) => this.startTurn(p, o),
|
|
1227
|
+
subscribe: (callback) => this.subscribe(callback),
|
|
1228
|
+
getSessionId: () => this.claudeSessionId ?? "",
|
|
1229
|
+
reduceFinalText: appendOrReplaceGrowingAssistantMessage,
|
|
1272
1230
|
});
|
|
1273
|
-
const unsubscribe = this.subscribe((event) => {
|
|
1274
|
-
if (!turnId) {
|
|
1275
|
-
bufferedEvents.push(event);
|
|
1276
|
-
return;
|
|
1277
|
-
}
|
|
1278
|
-
processEvent(event);
|
|
1279
|
-
});
|
|
1280
|
-
try {
|
|
1281
|
-
const result = await this.startTurn(prompt, options);
|
|
1282
|
-
turnId = result.turnId;
|
|
1283
|
-
for (const event of bufferedEvents) {
|
|
1284
|
-
processEvent(event);
|
|
1285
|
-
}
|
|
1286
|
-
if (!settled) {
|
|
1287
|
-
await completion;
|
|
1288
|
-
}
|
|
1289
|
-
}
|
|
1290
|
-
finally {
|
|
1291
|
-
unsubscribe();
|
|
1292
|
-
}
|
|
1293
1231
|
this.cachedRuntimeInfo = {
|
|
1294
1232
|
provider: "claude",
|
|
1295
1233
|
sessionId: this.claudeSessionId,
|
|
@@ -1299,12 +1237,7 @@ class ClaudeAgentSession {
|
|
|
1299
1237
|
if (!this.claudeSessionId) {
|
|
1300
1238
|
throw new Error("Session ID not set after run completed");
|
|
1301
1239
|
}
|
|
1302
|
-
return
|
|
1303
|
-
sessionId: this.claudeSessionId,
|
|
1304
|
-
finalText,
|
|
1305
|
-
usage,
|
|
1306
|
-
timeline,
|
|
1307
|
-
};
|
|
1240
|
+
return result;
|
|
1308
1241
|
}
|
|
1309
1242
|
async startTurn(prompt, _options) {
|
|
1310
1243
|
if (this.closed) {
|
|
@@ -1748,9 +1681,6 @@ class ClaudeAgentSession {
|
|
|
1748
1681
|
this.input = null;
|
|
1749
1682
|
this.queryPumpPromise = null;
|
|
1750
1683
|
this.queryRestartNeeded = false;
|
|
1751
|
-
// Reset session identity for explicit restarts so the new query starts
|
|
1752
|
-
// a fresh session rather than resuming the previous one.
|
|
1753
|
-
this.claudeSessionId = null;
|
|
1754
1684
|
oldInput?.end();
|
|
1755
1685
|
oldQuery.close?.();
|
|
1756
1686
|
try {
|
|
@@ -1760,10 +1690,8 @@ class ClaudeAgentSession {
|
|
|
1760
1690
|
/* ignore */
|
|
1761
1691
|
}
|
|
1762
1692
|
}
|
|
1763
|
-
//
|
|
1764
|
-
//
|
|
1765
|
-
// resume: sessionId and the new query auto-resumes the previous session.
|
|
1766
|
-
// For explicit restarts above, claudeSessionId was already cleared.
|
|
1693
|
+
// Preserve claudeSessionId across query recreation so buildOptions() passes
|
|
1694
|
+
// resume: sessionId and the new query continues the existing conversation.
|
|
1767
1695
|
this.persistence = null;
|
|
1768
1696
|
const input = createAsyncMessageInput();
|
|
1769
1697
|
const options = await this.buildOptions();
|
|
@@ -1913,11 +1841,8 @@ class ClaudeAgentSession {
|
|
|
1913
1841
|
},
|
|
1914
1842
|
});
|
|
1915
1843
|
}
|
|
1916
|
-
else
|
|
1917
|
-
content.push({
|
|
1918
|
-
type: "text",
|
|
1919
|
-
text: renderPromptAttachmentAsText(chunk),
|
|
1920
|
-
});
|
|
1844
|
+
else {
|
|
1845
|
+
content.push({ type: "text", text: renderPromptAttachmentAsText(chunk) });
|
|
1921
1846
|
}
|
|
1922
1847
|
}
|
|
1923
1848
|
}
|
|
@@ -2317,7 +2242,6 @@ class ClaudeAgentSession {
|
|
|
2317
2242
|
this.query = null;
|
|
2318
2243
|
this.input = null;
|
|
2319
2244
|
}
|
|
2320
|
-
this.claudeSessionId = null;
|
|
2321
2245
|
this.persistence = null;
|
|
2322
2246
|
this.persistedHistory = [];
|
|
2323
2247
|
this.historyPending = false;
|
|
@@ -2350,12 +2274,19 @@ class ClaudeAgentSession {
|
|
|
2350
2274
|
return this.sidechainTracker.handleMessage(message, parentToolUseId);
|
|
2351
2275
|
}
|
|
2352
2276
|
const events = [];
|
|
2353
|
-
const
|
|
2354
|
-
if (
|
|
2277
|
+
const sessionCapture = this.captureSessionIdFromMessage(message);
|
|
2278
|
+
if (sessionCapture.notice) {
|
|
2279
|
+
events.push({
|
|
2280
|
+
type: "timeline",
|
|
2281
|
+
provider: "claude",
|
|
2282
|
+
item: sessionCapture.notice,
|
|
2283
|
+
});
|
|
2284
|
+
}
|
|
2285
|
+
if (sessionCapture.threadStartedSessionId) {
|
|
2355
2286
|
events.push({
|
|
2356
2287
|
type: "thread_started",
|
|
2357
2288
|
provider: "claude",
|
|
2358
|
-
sessionId:
|
|
2289
|
+
sessionId: sessionCapture.threadStartedSessionId,
|
|
2359
2290
|
});
|
|
2360
2291
|
}
|
|
2361
2292
|
switch (message.type) {
|
|
@@ -2388,12 +2319,19 @@ class ClaudeAgentSession {
|
|
|
2388
2319
|
}
|
|
2389
2320
|
appendSystemMessageEvents(message, events) {
|
|
2390
2321
|
if (message.subtype === "init") {
|
|
2391
|
-
const
|
|
2392
|
-
if (
|
|
2322
|
+
const sessionUpdate = this.handleSystemMessage(message);
|
|
2323
|
+
if (sessionUpdate.notice) {
|
|
2324
|
+
events.push({
|
|
2325
|
+
type: "timeline",
|
|
2326
|
+
provider: "claude",
|
|
2327
|
+
item: sessionUpdate.notice,
|
|
2328
|
+
});
|
|
2329
|
+
}
|
|
2330
|
+
if (sessionUpdate.threadStartedSessionId) {
|
|
2393
2331
|
events.push({
|
|
2394
2332
|
type: "thread_started",
|
|
2395
2333
|
provider: "claude",
|
|
2396
|
-
sessionId:
|
|
2334
|
+
sessionId: sessionUpdate.threadStartedSessionId,
|
|
2397
2335
|
});
|
|
2398
2336
|
}
|
|
2399
2337
|
return;
|
|
@@ -2529,39 +2467,50 @@ class ClaudeAgentSession {
|
|
|
2529
2467
|
: "Claude run failed";
|
|
2530
2468
|
events.push(this.buildTurnFailedEvent(errorMessage));
|
|
2531
2469
|
}
|
|
2470
|
+
createClaudeSessionChangedNotice(oldSessionId, newSessionId) {
|
|
2471
|
+
return {
|
|
2472
|
+
type: "assistant_message",
|
|
2473
|
+
text: `Claude switched to a new session: ${oldSessionId} -> ${newSessionId}`,
|
|
2474
|
+
};
|
|
2475
|
+
}
|
|
2532
2476
|
captureSessionIdFromMessage(message) {
|
|
2533
2477
|
const msg = message;
|
|
2534
2478
|
const sessionId = extractSessionIdRaw(msg).trim();
|
|
2535
2479
|
if (!sessionId) {
|
|
2536
|
-
return null;
|
|
2480
|
+
return { threadStartedSessionId: null, notice: null };
|
|
2537
2481
|
}
|
|
2538
2482
|
if (this.claudeSessionId === null) {
|
|
2539
2483
|
this.claudeSessionId = sessionId;
|
|
2540
2484
|
this.persistence = null;
|
|
2541
|
-
return sessionId;
|
|
2485
|
+
return { threadStartedSessionId: sessionId, notice: null };
|
|
2542
2486
|
}
|
|
2543
2487
|
if (this.claudeSessionId === sessionId) {
|
|
2544
|
-
return null;
|
|
2488
|
+
return { threadStartedSessionId: null, notice: null };
|
|
2545
2489
|
}
|
|
2490
|
+
const oldSessionId = this.claudeSessionId;
|
|
2546
2491
|
// Session ID changed mid-stream (e.g. a hook caused Claude to restart
|
|
2547
2492
|
// with a new session). Accept the new ID and continue — the turn should
|
|
2548
2493
|
// not be failed just because the underlying subprocess cycled.
|
|
2549
2494
|
this.logger.warn({ existingSessionId: this.claudeSessionId, newSessionId: sessionId }, "Claude session ID changed in message; accepting new session");
|
|
2550
2495
|
this.claudeSessionId = sessionId;
|
|
2551
2496
|
this.persistence = null;
|
|
2552
|
-
return
|
|
2497
|
+
return {
|
|
2498
|
+
threadStartedSessionId: sessionId,
|
|
2499
|
+
notice: this.createClaudeSessionChangedNotice(oldSessionId, sessionId),
|
|
2500
|
+
};
|
|
2553
2501
|
}
|
|
2554
2502
|
handleSystemMessage(message) {
|
|
2555
2503
|
if (message.subtype !== "init") {
|
|
2556
|
-
return null;
|
|
2504
|
+
return { threadStartedSessionId: null, notice: null };
|
|
2557
2505
|
}
|
|
2558
2506
|
const msg = message;
|
|
2559
2507
|
const newSessionId = extractSessionIdRaw(msg).trim();
|
|
2560
2508
|
if (!newSessionId) {
|
|
2561
|
-
return null;
|
|
2509
|
+
return { threadStartedSessionId: null, notice: null };
|
|
2562
2510
|
}
|
|
2563
2511
|
const existingSessionId = this.claudeSessionId;
|
|
2564
2512
|
let threadStartedSessionId = null;
|
|
2513
|
+
let notice = null;
|
|
2565
2514
|
if (existingSessionId === null) {
|
|
2566
2515
|
this.claudeSessionId = newSessionId;
|
|
2567
2516
|
threadStartedSessionId = newSessionId;
|
|
@@ -2576,6 +2525,7 @@ class ClaudeAgentSession {
|
|
|
2576
2525
|
this.logger.warn({ existingSessionId, newSessionId }, "Claude session ID changed in init message; accepting new session");
|
|
2577
2526
|
this.claudeSessionId = newSessionId;
|
|
2578
2527
|
threadStartedSessionId = newSessionId;
|
|
2528
|
+
notice = this.createClaudeSessionChangedNotice(existingSessionId, newSessionId);
|
|
2579
2529
|
}
|
|
2580
2530
|
this.availableModes = DEFAULT_MODES;
|
|
2581
2531
|
this.currentMode = message.permissionMode;
|
|
@@ -2595,7 +2545,7 @@ class ClaudeAgentSession {
|
|
|
2595
2545
|
this.lastRuntimeModel = message.model;
|
|
2596
2546
|
this.cachedRuntimeInfo = null;
|
|
2597
2547
|
}
|
|
2598
|
-
return threadStartedSessionId;
|
|
2548
|
+
return { threadStartedSessionId, notice };
|
|
2599
2549
|
}
|
|
2600
2550
|
readMissingResumedConversationError(message) {
|
|
2601
2551
|
if (message.type !== "result" || message.subtype !== "error_during_execution") {
|