@getpaseo/server 0.1.3 → 0.1.4
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-relay-e2ee-transport.d.ts +8 -0
- package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts.map +1 -0
- package/dist/server/client/daemon-client-relay-e2ee-transport.js +161 -0
- package/dist/server/client/daemon-client-relay-e2ee-transport.js.map +1 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.d.ts +43 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.d.ts.map +1 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.js +130 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.js.map +1 -0
- package/dist/server/client/daemon-client-transport-types.d.ts +34 -0
- package/dist/server/client/daemon-client-transport-types.d.ts.map +1 -0
- package/dist/server/client/daemon-client-transport-types.js +2 -0
- package/dist/server/client/daemon-client-transport-types.js.map +1 -0
- package/dist/server/client/daemon-client-transport-utils.d.ts +9 -0
- package/dist/server/client/daemon-client-transport-utils.d.ts.map +1 -0
- package/dist/server/client/daemon-client-transport-utils.js +121 -0
- package/dist/server/client/daemon-client-transport-utils.js.map +1 -0
- package/dist/server/client/daemon-client-transport.d.ts +5 -0
- package/dist/server/client/daemon-client-transport.d.ts.map +1 -0
- package/dist/server/client/daemon-client-transport.js +4 -0
- package/dist/server/client/daemon-client-transport.js.map +1 -0
- package/dist/server/client/daemon-client-websocket-transport.d.ts +7 -0
- package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -0
- package/dist/server/client/daemon-client-websocket-transport.js +64 -0
- package/dist/server/client/daemon-client-websocket-transport.js.map +1 -0
- package/dist/server/client/daemon-client.d.ts +44 -32
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +463 -774
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +45 -0
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +197 -9
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +4 -4
- 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 +120 -6
- package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts +7 -0
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +83 -9
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- 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 +25 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/stt-manager.d.ts +3 -2
- package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
- package/dist/server/server/agent/stt-manager.js +5 -3
- package/dist/server/server/agent/stt-manager.js.map +1 -1
- package/dist/server/server/agent/timeline-projection.d.ts +19 -0
- package/dist/server/server/agent/timeline-projection.d.ts.map +1 -0
- package/dist/server/server/agent/timeline-projection.js +142 -0
- package/dist/server/server/agent/timeline-projection.js.map +1 -0
- package/dist/server/server/agent/tts-manager.d.ts +3 -2
- package/dist/server/server/agent/tts-manager.d.ts.map +1 -1
- package/dist/server/server/agent/tts-manager.js +5 -3
- package/dist/server/server/agent/tts-manager.js.map +1 -1
- package/dist/server/server/agent-attention-policy.d.ts +20 -0
- package/dist/server/server/agent-attention-policy.d.ts.map +1 -0
- package/dist/server/server/agent-attention-policy.js +40 -0
- package/dist/server/server/agent-attention-policy.js.map +1 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +13 -18
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/dictation/dictation-stream-manager.d.ts +10 -2
- package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
- package/dist/server/server/dictation/dictation-stream-manager.js +81 -14
- package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
- package/dist/server/server/exports.d.ts +1 -1
- package/dist/server/server/exports.d.ts.map +1 -1
- package/dist/server/server/persisted-config.d.ts +4 -4
- package/dist/server/server/relay-transport.d.ts +3 -2
- package/dist/server/server/relay-transport.d.ts.map +1 -1
- package/dist/server/server/relay-transport.js +21 -5
- package/dist/server/server/relay-transport.js.map +1 -1
- package/dist/server/server/session.d.ts +32 -8
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +499 -79
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/speech/provider-resolver.d.ts +3 -0
- package/dist/server/server/speech/provider-resolver.d.ts.map +1 -0
- package/dist/server/server/speech/provider-resolver.js +7 -0
- package/dist/server/server/speech/provider-resolver.js.map +1 -0
- package/dist/server/server/speech/providers/local/runtime.d.ts +1 -0
- package/dist/server/server/speech/providers/local/runtime.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/runtime.js +4 -3
- package/dist/server/server/speech/providers/local/runtime.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +3 -66
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
- package/dist/server/server/speech/speech-runtime.d.ts +26 -3
- package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
- package/dist/server/server/speech/speech-runtime.js +466 -112
- package/dist/server/server/speech/speech-runtime.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts +23 -7
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +288 -64
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/shared/binary-mux.d.ts +31 -0
- package/dist/server/shared/binary-mux.d.ts.map +1 -0
- package/dist/server/shared/binary-mux.js +101 -0
- package/dist/server/shared/binary-mux.js.map +1 -0
- package/dist/server/shared/messages.d.ts +4655 -3615
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +184 -26
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/shared/terminal-key-input.d.ts +9 -0
- package/dist/server/shared/terminal-key-input.d.ts.map +1 -0
- package/dist/server/shared/terminal-key-input.js +132 -0
- package/dist/server/shared/terminal-key-input.js.map +1 -0
- package/dist/server/terminal/terminal.d.ts +17 -0
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +89 -0
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts +4 -0
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +92 -0
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +33 -4
- package/dist/server/utils/worktree.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { isSpeakToolName } from "../../tool-name-normalization.js";
|
|
2
3
|
import { deriveClaudeToolDetail } from "./tool-call-detail-parser.js";
|
|
3
4
|
const ClaudeToolCallStatusSchema = z.enum([
|
|
4
5
|
"running",
|
|
@@ -28,6 +29,51 @@ const ClaudeToolCallPass1Schema = ClaudeRawToolCallSchema.transform((raw) => ({
|
|
|
28
29
|
error: raw.error ?? null,
|
|
29
30
|
status: raw.status,
|
|
30
31
|
}));
|
|
32
|
+
const ClaudeShellToolNameSchema = z.union([
|
|
33
|
+
z.literal("Bash"),
|
|
34
|
+
z.literal("bash"),
|
|
35
|
+
z.literal("shell"),
|
|
36
|
+
z.literal("exec_command"),
|
|
37
|
+
]);
|
|
38
|
+
const ClaudeReadToolNameSchema = z.union([
|
|
39
|
+
z.literal("Read"),
|
|
40
|
+
z.literal("read"),
|
|
41
|
+
z.literal("read_file"),
|
|
42
|
+
z.literal("view_file"),
|
|
43
|
+
]);
|
|
44
|
+
const ClaudeWriteToolNameSchema = z.union([
|
|
45
|
+
z.literal("Write"),
|
|
46
|
+
z.literal("write"),
|
|
47
|
+
z.literal("write_file"),
|
|
48
|
+
z.literal("create_file"),
|
|
49
|
+
]);
|
|
50
|
+
const ClaudeEditToolNameSchema = z.union([
|
|
51
|
+
z.literal("Edit"),
|
|
52
|
+
z.literal("MultiEdit"),
|
|
53
|
+
z.literal("multi_edit"),
|
|
54
|
+
z.literal("edit"),
|
|
55
|
+
z.literal("apply_patch"),
|
|
56
|
+
z.literal("apply_diff"),
|
|
57
|
+
z.literal("str_replace_editor"),
|
|
58
|
+
]);
|
|
59
|
+
const ClaudeSearchToolNameSchema = z.union([
|
|
60
|
+
z.literal("WebSearch"),
|
|
61
|
+
z.literal("web_search"),
|
|
62
|
+
z.literal("search"),
|
|
63
|
+
]);
|
|
64
|
+
const ClaudeSpeakToolNameSchema = z
|
|
65
|
+
.string()
|
|
66
|
+
.min(1)
|
|
67
|
+
.refine((name) => isSpeakToolName(name.trim()));
|
|
68
|
+
const ClaudeToolKindSchema = z.enum([
|
|
69
|
+
"shell",
|
|
70
|
+
"read",
|
|
71
|
+
"write",
|
|
72
|
+
"edit",
|
|
73
|
+
"search",
|
|
74
|
+
"speak",
|
|
75
|
+
"unknown",
|
|
76
|
+
]);
|
|
31
77
|
const ClaudeToolCallPass2BaseSchema = z.object({
|
|
32
78
|
callId: z.string().min(1),
|
|
33
79
|
name: z.string().min(1),
|
|
@@ -36,37 +82,105 @@ const ClaudeToolCallPass2BaseSchema = z.object({
|
|
|
36
82
|
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
37
83
|
error: z.unknown().nullable(),
|
|
38
84
|
status: ClaudeToolCallStatusSchema,
|
|
39
|
-
toolKind:
|
|
85
|
+
toolKind: ClaudeToolKindSchema,
|
|
40
86
|
});
|
|
41
87
|
const ClaudeToolCallPass2InputSchema = ClaudeToolCallPass2BaseSchema.omit({
|
|
42
88
|
toolKind: true,
|
|
43
89
|
});
|
|
44
90
|
const ClaudeToolCallPass2EnvelopeSchema = z.union([
|
|
45
91
|
ClaudeToolCallPass2InputSchema.extend({
|
|
46
|
-
name:
|
|
92
|
+
name: ClaudeShellToolNameSchema,
|
|
93
|
+
}).transform((normalized) => ({
|
|
94
|
+
...normalized,
|
|
95
|
+
name: normalized.name.trim(),
|
|
96
|
+
toolKind: "shell",
|
|
97
|
+
})),
|
|
98
|
+
ClaudeToolCallPass2InputSchema.extend({
|
|
99
|
+
name: ClaudeReadToolNameSchema,
|
|
100
|
+
}).transform((normalized) => ({
|
|
101
|
+
...normalized,
|
|
102
|
+
name: normalized.name.trim(),
|
|
103
|
+
toolKind: "read",
|
|
104
|
+
})),
|
|
105
|
+
ClaudeToolCallPass2InputSchema.extend({
|
|
106
|
+
name: ClaudeWriteToolNameSchema,
|
|
107
|
+
}).transform((normalized) => ({
|
|
108
|
+
...normalized,
|
|
109
|
+
name: normalized.name.trim(),
|
|
110
|
+
toolKind: "write",
|
|
111
|
+
})),
|
|
112
|
+
ClaudeToolCallPass2InputSchema.extend({
|
|
113
|
+
name: ClaudeEditToolNameSchema,
|
|
114
|
+
}).transform((normalized) => ({
|
|
115
|
+
...normalized,
|
|
116
|
+
name: normalized.name.trim(),
|
|
117
|
+
toolKind: "edit",
|
|
118
|
+
})),
|
|
119
|
+
ClaudeToolCallPass2InputSchema.extend({
|
|
120
|
+
name: ClaudeSearchToolNameSchema,
|
|
47
121
|
}).transform((normalized) => ({
|
|
48
122
|
...normalized,
|
|
49
123
|
name: normalized.name.trim(),
|
|
124
|
+
toolKind: "search",
|
|
125
|
+
})),
|
|
126
|
+
ClaudeToolCallPass2InputSchema.extend({
|
|
127
|
+
name: ClaudeSpeakToolNameSchema,
|
|
128
|
+
}).transform((normalized) => ({
|
|
129
|
+
...normalized,
|
|
130
|
+
name: "speak",
|
|
50
131
|
toolKind: "speak",
|
|
51
132
|
})),
|
|
52
133
|
ClaudeToolCallPass2InputSchema.transform((normalized) => ({
|
|
53
134
|
...normalized,
|
|
54
135
|
name: normalized.name.trim(),
|
|
55
|
-
toolKind: "
|
|
136
|
+
toolKind: "unknown",
|
|
56
137
|
})),
|
|
57
138
|
]);
|
|
58
139
|
const ClaudeToolCallPass2Schema = z.discriminatedUnion("toolKind", [
|
|
140
|
+
ClaudeToolCallPass2BaseSchema.extend({
|
|
141
|
+
toolKind: z.literal("shell"),
|
|
142
|
+
name: ClaudeShellToolNameSchema,
|
|
143
|
+
}),
|
|
144
|
+
ClaudeToolCallPass2BaseSchema.extend({
|
|
145
|
+
toolKind: z.literal("read"),
|
|
146
|
+
name: ClaudeReadToolNameSchema,
|
|
147
|
+
}),
|
|
148
|
+
ClaudeToolCallPass2BaseSchema.extend({
|
|
149
|
+
toolKind: z.literal("write"),
|
|
150
|
+
name: ClaudeWriteToolNameSchema,
|
|
151
|
+
}),
|
|
152
|
+
ClaudeToolCallPass2BaseSchema.extend({
|
|
153
|
+
toolKind: z.literal("edit"),
|
|
154
|
+
name: ClaudeEditToolNameSchema,
|
|
155
|
+
}),
|
|
156
|
+
ClaudeToolCallPass2BaseSchema.extend({
|
|
157
|
+
toolKind: z.literal("search"),
|
|
158
|
+
name: ClaudeSearchToolNameSchema,
|
|
159
|
+
}),
|
|
59
160
|
ClaudeToolCallPass2BaseSchema.extend({
|
|
60
161
|
toolKind: z.literal("speak"),
|
|
61
|
-
name: z.literal("
|
|
162
|
+
name: z.literal("speak"),
|
|
62
163
|
}),
|
|
63
164
|
ClaudeToolCallPass2BaseSchema.extend({
|
|
64
|
-
toolKind: z.literal("
|
|
165
|
+
toolKind: z.literal("unknown"),
|
|
65
166
|
}),
|
|
66
167
|
]);
|
|
67
168
|
function toToolCallTimelineItem(normalized) {
|
|
68
169
|
const name = normalized.toolKind === "speak" ? "speak" : normalized.name;
|
|
69
|
-
const
|
|
170
|
+
const detailName = normalized.toolKind === "shell"
|
|
171
|
+
? "shell"
|
|
172
|
+
: normalized.toolKind === "read"
|
|
173
|
+
? "read_file"
|
|
174
|
+
: normalized.toolKind === "write"
|
|
175
|
+
? "write_file"
|
|
176
|
+
: normalized.toolKind === "edit"
|
|
177
|
+
? "apply_patch"
|
|
178
|
+
: normalized.toolKind === "search"
|
|
179
|
+
? "search"
|
|
180
|
+
: normalized.toolKind === "speak"
|
|
181
|
+
? "speak"
|
|
182
|
+
: normalized.name;
|
|
183
|
+
const detail = deriveClaudeToolDetail(detailName, normalized.input, normalized.output);
|
|
70
184
|
if (normalized.status === "failed") {
|
|
71
185
|
return {
|
|
72
186
|
type: "tool_call",
|
|
@@ -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,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAUtE,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC;IACxC,SAAS;IACT,WAAW;IACX,QAAQ;IACR,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,MAAM,EAAE,0BAA0B;CACnC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,EACJ,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC5D,CAAC,CAAC,GAAG,CAAC,MAAM;QACZ,CAAC,CAAC,IAAI;IACV,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;IACrB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI;IAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;IACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM;CACnB,CAAC,CAAC,CAAC;AAEJ,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,0BAA0B;IAClC,QAAQ,EAAE,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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"}
|
|
@@ -2,6 +2,13 @@ import { type AgentDefinition } from "@anthropic-ai/claude-agent-sdk";
|
|
|
2
2
|
import type { Logger } from "pino";
|
|
3
3
|
import type { AgentCapabilityFlags, AgentClient, AgentModelDefinition, AgentPersistenceHandle, AgentSession, AgentSessionConfig, AgentTimelineItem, ListModelsOptions, ListPersistedAgentsOptions, PersistedAgentDescriptor } from "../agent-sdk-types.js";
|
|
4
4
|
import { type ProviderRuntimeSettings } from "../provider-launch-config.js";
|
|
5
|
+
type NormalizeClaudeRuntimeModelIdOptions = {
|
|
6
|
+
runtimeModelId: string;
|
|
7
|
+
supportedModelIds: ReadonlySet<string> | null;
|
|
8
|
+
configuredModelId?: string | null;
|
|
9
|
+
currentModelId?: string | null;
|
|
10
|
+
};
|
|
11
|
+
export declare function normalizeClaudeRuntimeModelId(options: NormalizeClaudeRuntimeModelIdOptions): string;
|
|
5
12
|
export type ClaudeContentChunk = {
|
|
6
13
|
type: string;
|
|
7
14
|
[key: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,eAAe,EAerB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQnC,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EAIX,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;
|
|
1
|
+
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,eAAe,EAerB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQnC,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EAIX,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;AA8BtC,KAAK,oCAAoC,GAAG;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC9C,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAqBF,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oCAAoC,GAC5C,MAAM,CAwDR;AAyCD,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAItE,KAAK,wBAAwB,GAAG;IAC9B,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;CAC3C,CAAC;AAkDF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAgCtE;AA2KD,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAY;IACvC,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,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA0B;gBAE/C,OAAO,EAAE,wBAAwB;IAW7C,OAAO,CAAC,oBAAoB;IA2BtB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAUhE,aAAa,CACjB,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACtC,OAAO,CAAC,YAAY,CAAC;IAiBlB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAwCxE,mBAAmB,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAuB9F,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAQrC,OAAO,CAAC,YAAY;CAMrB;AAioDD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,GACzE,iBAAiB,EAAE,CAoDrB"}
|
|
@@ -22,6 +22,65 @@ function normalizeClaudeModelLabel(model) {
|
|
|
22
22
|
}
|
|
23
23
|
return fallback;
|
|
24
24
|
}
|
|
25
|
+
function normalizeModelIdCandidate(modelId) {
|
|
26
|
+
if (typeof modelId !== "string") {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const trimmed = modelId.trim();
|
|
30
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
31
|
+
}
|
|
32
|
+
function pickSupportedModelId(supportedModelIds, candidate) {
|
|
33
|
+
const normalizedCandidate = normalizeModelIdCandidate(candidate);
|
|
34
|
+
if (!normalizedCandidate) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return supportedModelIds.has(normalizedCandidate) ? normalizedCandidate : null;
|
|
38
|
+
}
|
|
39
|
+
export function normalizeClaudeRuntimeModelId(options) {
|
|
40
|
+
const runtimeModel = options.runtimeModelId.trim();
|
|
41
|
+
if (!runtimeModel) {
|
|
42
|
+
return runtimeModel;
|
|
43
|
+
}
|
|
44
|
+
const supportedModelIds = options.supportedModelIds;
|
|
45
|
+
if (!supportedModelIds || supportedModelIds.size === 0) {
|
|
46
|
+
return runtimeModel;
|
|
47
|
+
}
|
|
48
|
+
const lowerRuntimeModel = runtimeModel.toLowerCase();
|
|
49
|
+
if (lowerRuntimeModel.includes("sonnet")) {
|
|
50
|
+
const explicitSonnet = pickSupportedModelId(supportedModelIds, "sonnet");
|
|
51
|
+
if (explicitSonnet) {
|
|
52
|
+
return explicitSonnet;
|
|
53
|
+
}
|
|
54
|
+
const defaultAlias = pickSupportedModelId(supportedModelIds, "default");
|
|
55
|
+
if (defaultAlias) {
|
|
56
|
+
return defaultAlias;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (lowerRuntimeModel.includes("opus")) {
|
|
60
|
+
const alias = pickSupportedModelId(supportedModelIds, "opus");
|
|
61
|
+
if (alias) {
|
|
62
|
+
return alias;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (lowerRuntimeModel.includes("haiku")) {
|
|
66
|
+
const alias = pickSupportedModelId(supportedModelIds, "haiku");
|
|
67
|
+
if (alias) {
|
|
68
|
+
return alias;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (supportedModelIds.has(runtimeModel)) {
|
|
72
|
+
return runtimeModel;
|
|
73
|
+
}
|
|
74
|
+
const configuredModelId = pickSupportedModelId(supportedModelIds, options.configuredModelId);
|
|
75
|
+
if (configuredModelId) {
|
|
76
|
+
return configuredModelId;
|
|
77
|
+
}
|
|
78
|
+
const currentModelId = pickSupportedModelId(supportedModelIds, options.currentModelId);
|
|
79
|
+
if (currentModelId) {
|
|
80
|
+
return currentModelId;
|
|
81
|
+
}
|
|
82
|
+
return runtimeModel;
|
|
83
|
+
}
|
|
25
84
|
const CLAUDE_CAPABILITIES = {
|
|
26
85
|
supportsStreaming: true,
|
|
27
86
|
supportsSessionPersistence: true,
|
|
@@ -407,6 +466,7 @@ class ClaudeAgentSession {
|
|
|
407
466
|
this.activeTurnPromise = null;
|
|
408
467
|
this.cachedRuntimeInfo = null;
|
|
409
468
|
this.lastOptionsModel = null;
|
|
469
|
+
this.selectableModelIds = null;
|
|
410
470
|
this.activeSidechains = new Map();
|
|
411
471
|
this.compacting = false;
|
|
412
472
|
this.queryRestartNeeded = false;
|
|
@@ -607,13 +667,6 @@ class ClaudeAgentSession {
|
|
|
607
667
|
queue.end();
|
|
608
668
|
};
|
|
609
669
|
this.cancelCurrentTurn = requestCancel;
|
|
610
|
-
if (this.historyPending && this.persistedHistory.length > 0) {
|
|
611
|
-
for (const item of this.persistedHistory) {
|
|
612
|
-
queue.push({ type: "timeline", item, provider: "claude" });
|
|
613
|
-
}
|
|
614
|
-
this.historyPending = false;
|
|
615
|
-
this.persistedHistory = [];
|
|
616
|
-
}
|
|
617
670
|
// Start forwarding events and track the promise so future turns can wait for completion
|
|
618
671
|
const forwardPromise = this.forwardPromptEvents(sdkMessage, queue, turnId);
|
|
619
672
|
this.activeTurnPromise = forwardPromise;
|
|
@@ -828,6 +881,20 @@ class ClaudeAgentSession {
|
|
|
828
881
|
usage,
|
|
829
882
|
};
|
|
830
883
|
}
|
|
884
|
+
async primeSelectableModelIds(query) {
|
|
885
|
+
try {
|
|
886
|
+
const models = await query.supportedModels();
|
|
887
|
+
const ids = models
|
|
888
|
+
.map((model) => model.value?.trim())
|
|
889
|
+
.filter((id) => typeof id === "string" && id.length > 0);
|
|
890
|
+
this.selectableModelIds = new Set(ids);
|
|
891
|
+
this.logger.debug({ modelIds: ids }, "Primed Claude selectable model IDs");
|
|
892
|
+
}
|
|
893
|
+
catch (error) {
|
|
894
|
+
this.selectableModelIds = null;
|
|
895
|
+
this.logger.warn({ err: error }, "Failed to prime Claude selectable model IDs");
|
|
896
|
+
}
|
|
897
|
+
}
|
|
831
898
|
async ensureQuery() {
|
|
832
899
|
if (this.query && !this.queryRestartNeeded) {
|
|
833
900
|
return this.query;
|
|
@@ -847,6 +914,7 @@ class ClaudeAgentSession {
|
|
|
847
914
|
this.logger.debug({ options }, "claude query");
|
|
848
915
|
this.input = input;
|
|
849
916
|
this.query = query({ prompt: input, options });
|
|
917
|
+
await this.primeSelectableModelIds(this.query);
|
|
850
918
|
await this.query.setPermissionMode(this.currentMode);
|
|
851
919
|
return this.query;
|
|
852
920
|
}
|
|
@@ -1271,8 +1339,14 @@ class ClaudeAgentSession {
|
|
|
1271
1339
|
this.persistence = null;
|
|
1272
1340
|
// Capture actual model from SDK init message (not just the configured model)
|
|
1273
1341
|
if (message.model) {
|
|
1274
|
-
|
|
1275
|
-
|
|
1342
|
+
const normalizedModel = normalizeClaudeRuntimeModelId({
|
|
1343
|
+
runtimeModelId: message.model,
|
|
1344
|
+
supportedModelIds: this.selectableModelIds,
|
|
1345
|
+
configuredModelId: this.config.model ?? null,
|
|
1346
|
+
currentModelId: this.lastOptionsModel,
|
|
1347
|
+
});
|
|
1348
|
+
this.logger.debug({ model: message.model, normalizedModel }, "Captured model from SDK init");
|
|
1349
|
+
this.lastOptionsModel = normalizedModel;
|
|
1276
1350
|
// Invalidate cached runtime info so it picks up the new model
|
|
1277
1351
|
this.cachedRuntimeInfo = null;
|
|
1278
1352
|
}
|