@adhd/agent-mcp 0.0.5 → 0.0.7
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/drizzle/0002_lumpy_silver_centurion.sql +2 -0
- package/drizzle/0003_nifty_shriek.sql +2 -0
- package/drizzle/meta/0002_snapshot.json +509 -0
- package/drizzle/meta/0003_snapshot.json +523 -0
- package/drizzle/meta/_journal.json +14 -0
- package/package.json +2 -4
- package/src/db/schema.d.ts +70 -0
- package/src/db/schema.d.ts.map +1 -1
- package/src/db/schema.js +9 -0
- package/src/db/schema.js.map +1 -1
- package/src/engine/orchestrator.d.ts.map +1 -1
- package/src/engine/orchestrator.js +34 -5
- package/src/engine/orchestrator.js.map +1 -1
- package/src/index.d.ts +2 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +4 -2
- package/src/index.js.map +1 -1
- package/src/plugins/usage-plugin.d.ts.map +1 -1
- package/src/plugins/usage-plugin.js +23 -0
- package/src/plugins/usage-plugin.js.map +1 -1
- package/src/providers/anthropic.d.ts +2 -0
- package/src/providers/anthropic.d.ts.map +1 -1
- package/src/providers/anthropic.js +108 -6
- package/src/providers/anthropic.js.map +1 -1
- package/src/providers/claudecli.d.ts.map +1 -1
- package/src/providers/claudecli.js +13 -6
- package/src/providers/claudecli.js.map +1 -1
- package/src/providers/openai.d.ts.map +1 -1
- package/src/providers/openai.js +11 -1
- package/src/providers/openai.js.map +1 -1
- package/src/store/session-store.d.ts +12 -0
- package/src/store/session-store.d.ts.map +1 -1
- package/src/store/session-store.js +40 -0
- package/src/store/session-store.js.map +1 -1
- package/src/tools/usage.d.ts.map +1 -1
- package/src/tools/usage.js +9 -0
- package/src/tools/usage.js.map +1 -1
- package/src/validation/errors.d.ts +4 -0
- package/src/validation/errors.d.ts.map +1 -1
- package/src/validation/errors.js +4 -0
- package/src/validation/errors.js.map +1 -1
- package/src/validation/task.d.ts +2 -0
- package/src/validation/task.d.ts.map +1 -1
- package/src/validation/usage.d.ts +3 -0
- package/src/validation/usage.d.ts.map +1 -1
- package/src/validation/usage.js +1 -0
- package/src/validation/usage.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,MAAM,WAAW,oBAAoB;IACjC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,CAAC;CACzB;AAQD,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACf,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA+YzE"}
|
|
@@ -2,6 +2,7 @@ import { logger } from "../logger.js";
|
|
|
2
2
|
import { ToolError } from "../validation/errors.js";
|
|
3
3
|
import { generateId } from "../utils/ids.js";
|
|
4
4
|
import { nowIso } from "../utils/timestamps.js";
|
|
5
|
+
import { windowMessages } from "../store/session-store.js";
|
|
5
6
|
/** No-op IHookRegistry used as a fallback when none is provided. */
|
|
6
7
|
const noopHooks = {
|
|
7
8
|
register: () => undefined,
|
|
@@ -12,6 +13,7 @@ export class Orchestrator {
|
|
|
12
13
|
const { executionContext, registry, provider, policy, taskStore, sessionStore, signal, taskId, hooks = noopHooks, } = input;
|
|
13
14
|
// Working copy of messages — we append to this as the loop progresses
|
|
14
15
|
const currentMessages = [...input.messages];
|
|
16
|
+
const contextLimit = parseInt(process.env["AGENT_MCP_CONTEXT_LIMIT"] ?? "0", 10);
|
|
15
17
|
try {
|
|
16
18
|
// Mark task as running
|
|
17
19
|
taskStore.updateStatus(taskId, "running");
|
|
@@ -48,8 +50,11 @@ export class Orchestrator {
|
|
|
48
50
|
// Call the LLM provider
|
|
49
51
|
let providerResponse;
|
|
50
52
|
try {
|
|
53
|
+
const messagesToSend = contextLimit > 0
|
|
54
|
+
? windowMessages(currentMessages, contextLimit)
|
|
55
|
+
: currentMessages;
|
|
51
56
|
providerResponse = await provider.chat({
|
|
52
|
-
messages:
|
|
57
|
+
messages: messagesToSend,
|
|
53
58
|
tools: tools.length > 0 ? tools : undefined,
|
|
54
59
|
signal: composedSignal,
|
|
55
60
|
// executeTool is used by providers (e.g. claudecli) that manage
|
|
@@ -71,13 +76,31 @@ export class Orchestrator {
|
|
|
71
76
|
});
|
|
72
77
|
}
|
|
73
78
|
catch (error) {
|
|
79
|
+
// Order matters — see [inv:provider-error-dispatch]:
|
|
80
|
+
// cancellation first, then timeout, then auth, then rate-limit, then generic.
|
|
81
|
+
// signal.aborted = user-initiated task cancel; composedSignal.aborted-only = timeout.
|
|
74
82
|
if (signal.aborted) {
|
|
75
|
-
throw new ToolError("PROVIDER_ERROR", "Task was cancelled
|
|
83
|
+
throw new ToolError("PROVIDER_ERROR", "Task was cancelled");
|
|
76
84
|
}
|
|
77
85
|
if (composedSignal.aborted ||
|
|
78
86
|
(error instanceof Error && (error.name === "AbortError" || error.name === "TimeoutError"))) {
|
|
79
87
|
const ms = executionContext.agentDefinition.provider.timeoutMs ?? 60_000;
|
|
80
|
-
throw new ToolError("
|
|
88
|
+
throw new ToolError("PROVIDER_TIMEOUT", `Provider call timed out after ${ms}ms. Increase timeoutMs on the agent's provider config.`);
|
|
89
|
+
}
|
|
90
|
+
if (error instanceof Error && (error.constructor.name === "AuthenticationError" ||
|
|
91
|
+
("status" in error && error.status === 401))) {
|
|
92
|
+
throw new ToolError("PROVIDER_AUTH_ERROR", `Provider authentication failed: ${error.message}. ` +
|
|
93
|
+
`Set ANTHROPIC_AUTH_TOKEN (run \`claude setup-token\` to obtain an OAuth access token) or use authTokenEnv in the provider config`);
|
|
94
|
+
}
|
|
95
|
+
if (error instanceof Error && (("status" in error && error.status === 429) ||
|
|
96
|
+
error.message?.includes("rate limit") ||
|
|
97
|
+
error.message?.includes("429"))) {
|
|
98
|
+
throw new ToolError("PROVIDER_RATE_LIMITED", `Provider rate limit exceeded: ${error.message}`);
|
|
99
|
+
}
|
|
100
|
+
if (error instanceof Error && (("code" in error && error.code === "context_length_exceeded") ||
|
|
101
|
+
error.message?.includes("context_length_exceeded") ||
|
|
102
|
+
error.message?.includes("prompt is too long"))) {
|
|
103
|
+
throw new ToolError("CONTEXT_WINDOW_EXCEEDED", `Context window exceeded. Set AGENT_MCP_CONTEXT_LIMIT to enable automatic truncation.`);
|
|
81
104
|
}
|
|
82
105
|
throw new ToolError("PROVIDER_ERROR", `Provider call failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
83
106
|
}
|
|
@@ -223,6 +246,13 @@ export class Orchestrator {
|
|
|
223
246
|
// so the next policy check sees the updated value
|
|
224
247
|
executionContext.toolCallCount++;
|
|
225
248
|
}
|
|
249
|
+
// Guard: provider signalled tool_calls but sent no tool call blocks —
|
|
250
|
+
// prevents infinite spin on a malformed response.
|
|
251
|
+
if (providerResponse.stopReason === "tool_calls" &&
|
|
252
|
+
(assistantMessage.toolCalls ?? []).length === 0) {
|
|
253
|
+
finalContent = assistantMessage.content ?? "";
|
|
254
|
+
looping = false;
|
|
255
|
+
}
|
|
226
256
|
}
|
|
227
257
|
// Task completed successfully
|
|
228
258
|
taskStore.updateStatus(taskId, "completed", {
|
|
@@ -240,8 +270,7 @@ export class Orchestrator {
|
|
|
240
270
|
}
|
|
241
271
|
catch (error) {
|
|
242
272
|
// Determine if this is a cancellation or a real failure
|
|
243
|
-
const isCancelled = signal.aborted
|
|
244
|
-
(error instanceof ToolError && error.code === "PROVIDER_ERROR" && error.message.includes("cancelled"));
|
|
273
|
+
const isCancelled = signal.aborted;
|
|
245
274
|
if (isCancelled) {
|
|
246
275
|
// Status update handled by TaskStore.cancel() in most cases;
|
|
247
276
|
// update here only if not already cancelled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
CHANGED
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/agent-mcp/src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/agent-mcp/src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAEvB,kFAAkF;AAClF,eAAO,MAAM,4BAA4B,QAGxC,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import "dotenv/config";
|
|
3
|
+
/** Default max_tokens for providers that do not set maxTokens in their config. */
|
|
4
|
+
export const AGENT_MCP_DEFAULT_MAX_TOKENS = parseInt(process.env["AGENT_MCP_DEFAULT_MAX_TOKENS"] ?? "8192", 10);
|
|
3
5
|
import { db } from "./db/client.js";
|
|
4
6
|
import { runMigrations } from "./db/migrate.js";
|
|
5
7
|
import { logger } from "./logger.js";
|
|
@@ -30,8 +32,8 @@ async function main() {
|
|
|
30
32
|
const queue = new BackgroundQueue();
|
|
31
33
|
const orchestrator = new Orchestrator();
|
|
32
34
|
const policy = new PolicyEngine({
|
|
33
|
-
serverMaxDepth: parseInt(process.env["
|
|
34
|
-
serverMaxToolLoops: parseInt(process.env["
|
|
35
|
+
serverMaxDepth: parseInt(process.env["AGENT_MCP_MAX_DEPTH"] ?? "5", 10),
|
|
36
|
+
serverMaxToolLoops: parseInt(process.env["AGENT_MCP_MAX_TOOL_LOOPS"] ?? "50", 10),
|
|
35
37
|
serverAllowedAgents: process.env["ALLOWED_AGENTS"]
|
|
36
38
|
?.split(",")
|
|
37
39
|
.map(s => s.trim())
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/ai/agent-mcp/src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,UAAU,IAAI;IACf,2DAA2D;IAC3D,aAAa,EAAE,CAAC;IAEhB,6BAA6B;IAC7B,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IAEjC,qBAAqB;IACrB,8DAA8D;IAC9D,MAAM,KAAK,GAAG,EAAS,CAAC;IACxB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAEvC,sEAAsE;IACtE,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEjC,gCAAgC;IAChC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC5B,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/ai/agent-mcp/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-plugin.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/plugins/usage-plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage-plugin.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/plugins/usage-plugin.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKxE,OAAO,KAAK,EACR,aAAa,EACb,MAAM,EAMT,MAAM,uBAAuB,CAAC;AAyB/B;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,MAAM;IAQlC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAPvB,QAAQ,CAAC,IAAI,WAAW;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;gBAK1C,EAAE,EAAE,qBAAqB,CAAC,GAAG,CAAC;IAGnD,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAQnC,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,eAAe;IA+DvB,OAAO,CAAC,UAAU;CA6BrB"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { eq, sql } from "drizzle-orm";
|
|
2
|
+
const SEVERITY = { length: 3, tool_calls: 2, stop: 1, unknown: 0 };
|
|
3
|
+
function mostSevere(a, b) {
|
|
4
|
+
const sa = SEVERITY[a ?? ""] ?? 0;
|
|
5
|
+
const sb = SEVERITY[b ?? ""] ?? 0;
|
|
6
|
+
return sa >= sb ? (a ?? "unknown") : (b ?? "unknown");
|
|
7
|
+
}
|
|
2
8
|
import { taskUsageTable } from "../db/schema.js";
|
|
3
9
|
import { logger } from "../logger.js";
|
|
4
10
|
import { nowIso } from "../utils/timestamps.js";
|
|
@@ -46,6 +52,10 @@ export class UsagePlugin {
|
|
|
46
52
|
agentName: executionContext.agentName,
|
|
47
53
|
providerType: provider.type,
|
|
48
54
|
model: ("model" in provider && provider.model) || "default",
|
|
55
|
+
mostSevereStopReason: "unknown",
|
|
56
|
+
maxTokens: ("maxTokens" in provider && typeof provider.maxTokens === "number")
|
|
57
|
+
? provider.maxTokens
|
|
58
|
+
: null,
|
|
49
59
|
});
|
|
50
60
|
}
|
|
51
61
|
catch (err) {
|
|
@@ -62,6 +72,11 @@ export class UsagePlugin {
|
|
|
62
72
|
const inputTokens = tokenUsage?.inputTokens ?? 0;
|
|
63
73
|
const outputTokens = tokenUsage?.outputTokens ?? 0;
|
|
64
74
|
const toolCalls = toolCallCount ?? 0;
|
|
75
|
+
// Update most-severe stop reason in memory before writing to DB.
|
|
76
|
+
const incoming = tokenUsage?.stopReason ?? "unknown";
|
|
77
|
+
if (acc) {
|
|
78
|
+
acc.mostSevereStopReason = mostSevere(acc.mostSevereStopReason, incoming);
|
|
79
|
+
}
|
|
65
80
|
const provider = executionContext.agentDefinition.provider;
|
|
66
81
|
// UPSERT (see [inv:incremental-write]): insert on the first model
|
|
67
82
|
// response, accumulate on every subsequent one. Durable across crash.
|
|
@@ -80,6 +95,10 @@ export class UsagePlugin {
|
|
|
80
95
|
modelCalls: 1,
|
|
81
96
|
latencyMs: 0,
|
|
82
97
|
isComplete: 0,
|
|
98
|
+
stopReason: acc?.mostSevereStopReason ?? incoming,
|
|
99
|
+
maxTokens: acc?.maxTokens ?? null,
|
|
100
|
+
cacheReadTokens: tokenUsage?.cacheReadTokens ?? null,
|
|
101
|
+
cacheCreationTokens: tokenUsage?.cacheCreationTokens ?? null,
|
|
83
102
|
createdAt: nowIso(),
|
|
84
103
|
})
|
|
85
104
|
.onConflictDoUpdate({
|
|
@@ -89,6 +108,10 @@ export class UsagePlugin {
|
|
|
89
108
|
outputTokens: sql `${taskUsageTable.outputTokens} + ${outputTokens}`,
|
|
90
109
|
toolCallCount: sql `${taskUsageTable.toolCallCount} + ${toolCalls}`,
|
|
91
110
|
modelCalls: sql `${taskUsageTable.modelCalls} + 1`,
|
|
111
|
+
stopReason: acc?.mostSevereStopReason ?? incoming,
|
|
112
|
+
cacheReadTokens: sql `COALESCE(${taskUsageTable.cacheReadTokens}, 0) + ${tokenUsage?.cacheReadTokens ?? 0}`,
|
|
113
|
+
cacheCreationTokens: sql `COALESCE(${taskUsageTable.cacheCreationTokens}, 0) + ${tokenUsage?.cacheCreationTokens ?? 0}`,
|
|
114
|
+
// maxTokens deliberately OMITTED from SET — constant per task
|
|
92
115
|
},
|
|
93
116
|
})
|
|
94
117
|
.run();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-plugin.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/plugins/usage-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"usage-plugin.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/plugins/usage-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,QAAQ,GAA2B,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC3F,SAAS,UAAU,CAAC,CAA4B,EAAE,CAA4B;IAC1E,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;AAC1D,CAAC;AAID,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAkChD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,WAAW;IAQC;IAPZ,IAAI,GAAG,OAAO,CAAC;IAEP,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE/D;IACI,0EAA0E;IAC1E,8DAA8D;IAC7C,EAA8B;QAA9B,OAAE,GAAF,EAAE,CAA4B;IAChD,CAAC;IAEJ,OAAO,CAAC,KAAoB;QACxB,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,WAAW,CAAC,OAAyB;QACzC,IAAI,CAAC;YACD,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;YACrC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC3C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,oEAAoE;gBACpE,qEAAqE;gBACrE,iDAAiD;gBACjD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;gBACtC,SAAS,EAAE,gBAAgB,CAAC,SAAS;gBACrC,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,KAAK,EAAE,CAAC,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS;gBAC3D,oBAAoB,EAAE,SAAS;gBAC/B,SAAS,EAAE,CAAC,WAAW,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC;oBAC1E,CAAC,CAAC,QAAQ,CAAC,SAAS;oBACpB,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,wCAAwC,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,OAAiC;QACrD,IAAI,CAAC;YACD,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;YAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAE1C,qEAAqE;YACrE,yCAAyC;YACzC,MAAM,WAAW,GAAG,UAAU,EAAE,WAAW,IAAI,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,UAAU,EAAE,YAAY,IAAI,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,aAAa,IAAI,CAAC,CAAC;YAErC,iEAAiE;YACjE,MAAM,QAAQ,GAAG,UAAU,EAAE,UAAU,IAAI,SAAS,CAAC;YACrD,IAAI,GAAG,EAAE,CAAC;gBACN,GAAG,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YAC9E,CAAC;YAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC;YAE3D,kEAAkE;YAClE,sEAAsE;YACtE,IAAI,CAAC,EAAE;iBACF,MAAM,CAAC,cAAc,CAAC;iBACtB,MAAM,CAAC;gBACJ,MAAM;gBACN,UAAU,EAAE,GAAG,EAAE,UAAU,IAAI,IAAI;gBACnC,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,gBAAgB,CAAC,SAAS;gBACvD,YAAY,EAAE,GAAG,EAAE,YAAY,IAAI,QAAQ,CAAC,IAAI;gBAChD,KAAK,EACD,GAAG,EAAE,KAAK;oBACV,CAAC,CAAC,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;gBAC1D,WAAW;gBACX,YAAY;gBACZ,aAAa,EAAE,SAAS;gBACxB,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,GAAG,EAAE,oBAAoB,IAAI,QAAQ;gBACjD,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI;gBACjC,eAAe,EAAE,UAAU,EAAE,eAAe,IAAI,IAAI;gBACpD,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,IAAI,IAAI;gBAC5D,SAAS,EAAE,MAAM,EAAE;aACtB,CAAC;iBACD,kBAAkB,CAAC;gBAChB,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,GAAG,EAAE;oBACD,WAAW,EAAE,GAAG,CAAA,GAAG,cAAc,CAAC,WAAW,MAAM,WAAW,EAAE;oBAChE,YAAY,EAAE,GAAG,CAAA,GAAG,cAAc,CAAC,YAAY,MAAM,YAAY,EAAE;oBACnE,aAAa,EAAE,GAAG,CAAA,GAAG,cAAc,CAAC,aAAa,MAAM,SAAS,EAAE;oBAClE,UAAU,EAAE,GAAG,CAAA,GAAG,cAAc,CAAC,UAAU,MAAM;oBACjD,UAAU,EAAE,GAAG,EAAE,oBAAoB,IAAI,QAAQ;oBACjD,eAAe,EAAE,GAAG,CAAA,YAAY,cAAc,CAAC,eAAe,UAAU,UAAU,EAAE,eAAe,IAAI,CAAC,EAAE;oBAC1G,mBAAmB,EAAE,GAAG,CAAA,YAAY,cAAc,CAAC,mBAAmB,UAAU,UAAU,EAAE,mBAAmB,IAAI,CAAC,EAAE;oBACtH,8DAA8D;iBACjE;aACJ,CAAC;iBACD,GAAG,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iDAAiD,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IAEO,UAAU,CACd,OAAwE;QAExE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAE1C,qEAAqE;YACrE,qEAAqE;YACrE,yDAAyD;YACzD,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,UAAU,GACZ,GAAG,EAAE,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,IAAI,IAAI,CAAC;YAEnE,IAAI,CAAC,EAAE;iBACF,MAAM,CAAC,cAAc,CAAC;iBACtB,GAAG,CAAC;gBACD,SAAS;gBACT,UAAU;gBACV,UAAU,EAAE,CAAC;aAChB,CAAC;iBACD,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;iBACxC,GAAG,EAAE,CAAC;YAEX,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,sCAAsC,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -3,6 +3,8 @@ import type { LLMProvider, ProviderChatRequest, ProviderChatResponse } from "./t
|
|
|
3
3
|
export declare class AnthropicProvider implements LLMProvider {
|
|
4
4
|
private client;
|
|
5
5
|
private readonly config;
|
|
6
|
+
/** True when the active client was built with a sk-ant-oat OAuth token. */
|
|
7
|
+
private _useOauthIdentity;
|
|
6
8
|
constructor(config: Extract<ProviderConfig, {
|
|
7
9
|
type: "anthropic";
|
|
8
10
|
}>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;AAIhF,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AAsPpB,qBAAa,iBAAkB,YAAW,WAAW;IACjD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IACxE,2EAA2E;IAC3E,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IAmC5D,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA8I1E"}
|
|
@@ -5,6 +5,47 @@ import pRetry from "p-retry";
|
|
|
5
5
|
const execFileAsync = promisify(execFile);
|
|
6
6
|
import { generateId } from "../utils/ids.js";
|
|
7
7
|
import { nowIso } from "../utils/timestamps.js";
|
|
8
|
+
import { ToolError } from "../validation/errors.js";
|
|
9
|
+
import { logger } from "../logger.js";
|
|
10
|
+
// ─── Model max-output token table ────────────────────────────────────────────
|
|
11
|
+
// Maps model-name prefix → documented max output tokens (standard sync API,
|
|
12
|
+
// no beta headers). Checked longest-prefix-first so "claude-opus-4-5" (64k)
|
|
13
|
+
// wins over "claude-opus-4" (128k). Source: docs.anthropic.com/models/overview.
|
|
14
|
+
// AGENT_MCP_DEFAULT_MAX_TOKENS env var overrides for unlisted / future models.
|
|
15
|
+
const MODEL_MAX_TOKENS = [
|
|
16
|
+
// Claude 5 (GA 2026-06)
|
|
17
|
+
["claude-fable-5", 128_000],
|
|
18
|
+
["claude-mythos-5", 128_000],
|
|
19
|
+
// Claude 4 — Opus (8/7/6 = 128k; 5 = 64k; 1/0 = 32k)
|
|
20
|
+
["claude-opus-4-8", 128_000],
|
|
21
|
+
["claude-opus-4-7", 128_000],
|
|
22
|
+
["claude-opus-4-6", 128_000],
|
|
23
|
+
["claude-opus-4-5", 64_000],
|
|
24
|
+
["claude-opus-4-1", 32_000],
|
|
25
|
+
["claude-opus-4-0", 32_000],
|
|
26
|
+
["claude-opus-4", 128_000], // catch future claude-opus-4-N ≥ 4-6 tier
|
|
27
|
+
// Claude 4 — Sonnet (all known variants: 64k)
|
|
28
|
+
["claude-sonnet-4", 64_000],
|
|
29
|
+
// Claude 4 — Haiku (all known variants: 64k)
|
|
30
|
+
["claude-haiku-4", 64_000],
|
|
31
|
+
// Claude 3.5 family
|
|
32
|
+
["claude-3-5-sonnet", 8_192],
|
|
33
|
+
["claude-3-5-haiku", 8_192],
|
|
34
|
+
// Claude 3 family
|
|
35
|
+
["claude-3-opus", 4_096],
|
|
36
|
+
["claude-3-sonnet", 4_096],
|
|
37
|
+
["claude-3-haiku", 4_096],
|
|
38
|
+
];
|
|
39
|
+
function defaultMaxTokens(model) {
|
|
40
|
+
const envOverride = process.env["AGENT_MCP_DEFAULT_MAX_TOKENS"];
|
|
41
|
+
if (envOverride)
|
|
42
|
+
return parseInt(envOverride, 10);
|
|
43
|
+
for (const [prefix, maxTokens] of MODEL_MAX_TOKENS) {
|
|
44
|
+
if (model.startsWith(prefix))
|
|
45
|
+
return maxTokens;
|
|
46
|
+
}
|
|
47
|
+
return 32_000; // unknown/future model — conservative but not restrictive
|
|
48
|
+
}
|
|
8
49
|
// ─── OAuth keychain helpers ───────────────────────────────────────────────────
|
|
9
50
|
const KEYCHAIN_SERVICE = "Claude Code-credentials";
|
|
10
51
|
const OAUTH_TOKEN_URL = "https://platform.claude.com/v1/oauth/token";
|
|
@@ -164,9 +205,12 @@ function toAnthropicMessages(messages) {
|
|
|
164
205
|
throw new Error(`Unsupported message role for Anthropic: ${message.role}`);
|
|
165
206
|
});
|
|
166
207
|
}
|
|
208
|
+
const CLAUDE_CODE_IDENTITY = "You are Claude Code, Anthropic's official CLI for Claude.";
|
|
167
209
|
export class AnthropicProvider {
|
|
168
210
|
client;
|
|
169
211
|
config;
|
|
212
|
+
/** True when the active client was built with a sk-ant-oat OAuth token. */
|
|
213
|
+
_useOauthIdentity = false;
|
|
170
214
|
constructor(config) {
|
|
171
215
|
this.config = config;
|
|
172
216
|
if (config.useClaudeOauth) {
|
|
@@ -186,7 +230,14 @@ export class AnthropicProvider {
|
|
|
186
230
|
this.client = new Anthropic({ apiKey });
|
|
187
231
|
}
|
|
188
232
|
else if (authToken) {
|
|
189
|
-
|
|
233
|
+
// OAuth tokens (sk-ant-oat…) require the oauth-2025-04-20 beta header;
|
|
234
|
+
// without it the Messages API returns 429. API keys (sk-ant-api…) do not.
|
|
235
|
+
const isOauth = authToken.startsWith("sk-ant-oat");
|
|
236
|
+
this._useOauthIdentity = isOauth;
|
|
237
|
+
this.client = new Anthropic({
|
|
238
|
+
authToken,
|
|
239
|
+
...(isOauth ? { defaultHeaders: { "anthropic-beta": "oauth-2025-04-20" } } : {}),
|
|
240
|
+
});
|
|
190
241
|
}
|
|
191
242
|
else {
|
|
192
243
|
// No credentials found via env — SDK will throw a clear AuthenticationError
|
|
@@ -197,21 +248,59 @@ export class AnthropicProvider {
|
|
|
197
248
|
// For useClaudeOauth mode, fetch a fresh token on every chat() call so
|
|
198
249
|
// long-running servers never hold a stale client across token expiry.
|
|
199
250
|
if (this.config.useClaudeOauth) {
|
|
200
|
-
|
|
201
|
-
|
|
251
|
+
try {
|
|
252
|
+
const authToken = await getAccessToken();
|
|
253
|
+
// Subscription OAuth tokens always require the beta header + Claude Code identity in system prompt
|
|
254
|
+
this._useOauthIdentity = true;
|
|
255
|
+
this.client = new Anthropic({
|
|
256
|
+
authToken,
|
|
257
|
+
defaultHeaders: { "anthropic-beta": "oauth-2025-04-20" },
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
catch (keychainErr) {
|
|
261
|
+
const keychainMsg = keychainErr instanceof Error ? keychainErr.message : String(keychainErr);
|
|
262
|
+
logger.warn({ keychainMsg }, "AnthropicProvider: keychain read failed, trying env var fallbacks");
|
|
263
|
+
const apiKey = process.env["ANTHROPIC_API_KEY"] || undefined;
|
|
264
|
+
const authToken = process.env["ANTHROPIC_AUTH_TOKEN"] || undefined;
|
|
265
|
+
if (apiKey) {
|
|
266
|
+
this._useOauthIdentity = false;
|
|
267
|
+
this.client = new Anthropic({ apiKey });
|
|
268
|
+
}
|
|
269
|
+
else if (authToken) {
|
|
270
|
+
const isOauth = authToken.startsWith("sk-ant-oat");
|
|
271
|
+
this._useOauthIdentity = isOauth;
|
|
272
|
+
this.client = new Anthropic({
|
|
273
|
+
authToken,
|
|
274
|
+
...(isOauth ? { defaultHeaders: { "anthropic-beta": "oauth-2025-04-20" } } : {}),
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
throw new ToolError("PROVIDER_AUTH_ERROR", `Anthropic keychain read failed: ${keychainMsg}. ` +
|
|
279
|
+
`Set ANTHROPIC_AUTH_TOKEN (run \`claude setup-token\` to obtain an OAuth access token) or use authTokenEnv in the provider config`);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
202
282
|
}
|
|
203
283
|
const retryConfig = this.config.retryConfig;
|
|
204
284
|
const systemMessages = request.messages.filter(m => m.role === "system");
|
|
205
285
|
const systemPrompt = systemMessages.map(m => m.content || "").join("\n") || undefined;
|
|
206
286
|
const run = async () => {
|
|
207
|
-
|
|
287
|
+
// sk-ant-oat OAuth tokens require the Claude Code identity in the system
|
|
288
|
+
// prompt (proven: WITH identity → 200, WITHOUT → 429). API keys do not.
|
|
289
|
+
const effectiveSystem = this._useOauthIdentity
|
|
290
|
+
? [CLAUDE_CODE_IDENTITY, systemPrompt].filter(Boolean).join("\n\n")
|
|
291
|
+
: systemPrompt;
|
|
292
|
+
// Use streaming to avoid the SDK's synchronous "Streaming is required
|
|
293
|
+
// for operations that may take longer than 10 minutes" throw that fires
|
|
294
|
+
// when max_tokens is large (e.g. 64k on haiku-4-5) with messages.create().
|
|
295
|
+
const stream = this.client.messages.stream({
|
|
208
296
|
model: this.config.model,
|
|
209
|
-
system:
|
|
297
|
+
system: effectiveSystem,
|
|
210
298
|
temperature: this.config.temperature,
|
|
211
|
-
max_tokens: this.config.maxTokens ??
|
|
299
|
+
max_tokens: this.config.maxTokens ?? defaultMaxTokens(this.config.model),
|
|
212
300
|
messages: toAnthropicMessages(request.messages),
|
|
213
301
|
tools: toAnthropicTools(request.tools),
|
|
214
302
|
}, { signal: request.signal });
|
|
303
|
+
const response = await stream.finalMessage();
|
|
215
304
|
const toolCalls = [];
|
|
216
305
|
const contentParts = [];
|
|
217
306
|
for (const block of response.content) {
|
|
@@ -240,12 +329,20 @@ export class AnthropicProvider {
|
|
|
240
329
|
createdAt: nowIso(),
|
|
241
330
|
};
|
|
242
331
|
const sdkUsage = response.usage;
|
|
332
|
+
const STOP_REASON = {
|
|
333
|
+
end_turn: "stop", max_tokens: "length", tool_use: "tool_calls",
|
|
334
|
+
};
|
|
335
|
+
const normalisedStopReason = STOP_REASON[response.stop_reason ?? ""] ?? "unknown";
|
|
243
336
|
return {
|
|
244
337
|
message,
|
|
245
338
|
stopReason: toolCalls.length > 0 ? "tool_calls" : "completed",
|
|
246
339
|
usage: {
|
|
247
340
|
inputTokens: sdkUsage.input_tokens,
|
|
248
341
|
outputTokens: sdkUsage.output_tokens,
|
|
342
|
+
stopReason: normalisedStopReason,
|
|
343
|
+
maxTokens: this.config.maxTokens ?? defaultMaxTokens(this.config.model),
|
|
344
|
+
cacheReadTokens: sdkUsage.cache_read_input_tokens ?? undefined,
|
|
345
|
+
cacheCreationTokens: sdkUsage.cache_creation_input_tokens ?? undefined,
|
|
249
346
|
},
|
|
250
347
|
};
|
|
251
348
|
};
|
|
@@ -259,6 +356,11 @@ export class AnthropicProvider {
|
|
|
259
356
|
if (request.signal?.aborted) {
|
|
260
357
|
throw error; // don't retry on cancellation
|
|
261
358
|
}
|
|
359
|
+
// Don't retry auth failures — credentials won't change between attempts
|
|
360
|
+
if ("status" in error && error.status === 401) {
|
|
361
|
+
throw new ToolError("PROVIDER_AUTH_ERROR", `Anthropic authentication failed. ` +
|
|
362
|
+
`Set ANTHROPIC_AUTH_TOKEN (run \`claude setup-token\` to obtain an OAuth access token) or use authTokenEnv in the provider config`);
|
|
363
|
+
}
|
|
262
364
|
},
|
|
263
365
|
});
|
|
264
366
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudecli.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/claudecli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAW,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"claudecli.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/claudecli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAW,MAAM,wBAAwB,CAAC;AAIvF,KAAK,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AA4GtE,qBAAa,iBAAkB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEjD,MAAM,EAAE,eAAe,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAM;IAKrF;;;;;OAKG;YACW,kBAAkB;IA8BhC;;;;;;;;;OASG;YACW,kBAAkB;IA8B1B,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA+L1E"}
|
|
@@ -42,6 +42,8 @@ import { join } from "path";
|
|
|
42
42
|
const execFileAsync = promisify(execFile);
|
|
43
43
|
import { generateId } from "../utils/ids.js";
|
|
44
44
|
import { nowIso } from "../utils/timestamps.js";
|
|
45
|
+
import { ToolError } from "../validation/errors.js";
|
|
46
|
+
import { logger } from "../logger.js";
|
|
45
47
|
// ─── history encoding (for multi-task sessions) ───────────────────────────────
|
|
46
48
|
/**
|
|
47
49
|
* Encodes prior session messages as a text block prepended to the current prompt.
|
|
@@ -112,8 +114,9 @@ export class ClaudeCliProvider {
|
|
|
112
114
|
const env = { ...process.env };
|
|
113
115
|
// If an explicit auth token env var is already present, nothing to do
|
|
114
116
|
if (env["ANTHROPIC_AUTH_TOKEN"] || env["ANTHROPIC_API_KEY"]) {
|
|
115
|
-
return env;
|
|
117
|
+
return { env };
|
|
116
118
|
}
|
|
119
|
+
let keychainError;
|
|
117
120
|
// Try macOS keychain — same store as useClaudeOauth in AnthropicProvider
|
|
118
121
|
try {
|
|
119
122
|
const { stdout } = await execFileAsync("security", ["find-generic-password", "-s", "Claude Code-credentials", "-w"], { encoding: "utf8" });
|
|
@@ -122,11 +125,11 @@ export class ClaudeCliProvider {
|
|
|
122
125
|
if (token)
|
|
123
126
|
env["ANTHROPIC_AUTH_TOKEN"] = token;
|
|
124
127
|
}
|
|
125
|
-
catch {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
catch (err) {
|
|
129
|
+
keychainError = err instanceof Error ? err.message : String(err);
|
|
130
|
+
logger.warn({ keychainError }, "claudecli: keychain read failed; subprocess will use inherited env");
|
|
128
131
|
}
|
|
129
|
-
return env;
|
|
132
|
+
return { env, keychainError };
|
|
130
133
|
}
|
|
131
134
|
/**
|
|
132
135
|
* Write the agent's McpServerConfig map to a temp JSON file in the format
|
|
@@ -205,7 +208,7 @@ export class ClaudeCliProvider {
|
|
|
205
208
|
// alongside our explicit config (avoids double-spawning agent-mcp)
|
|
206
209
|
args.push("--mcp-config", mcpConfigPath, "--strict-mcp-config");
|
|
207
210
|
}
|
|
208
|
-
const subEnv = await this.buildSubprocessEnv();
|
|
211
|
+
const { env: subEnv, keychainError } = await this.buildSubprocessEnv();
|
|
209
212
|
const proc = spawn(claudePath, args, {
|
|
210
213
|
stdio: ["pipe", "pipe", "pipe"],
|
|
211
214
|
env: subEnv,
|
|
@@ -306,6 +309,10 @@ export class ClaudeCliProvider {
|
|
|
306
309
|
}
|
|
307
310
|
}
|
|
308
311
|
proc.stdin.end();
|
|
312
|
+
if (!finalResult) {
|
|
313
|
+
throw new ToolError("PROVIDER_AUTH_ERROR", `Claude CLI returned empty result${keychainError ? `. Keychain error: ${keychainError}` : ""}. ` +
|
|
314
|
+
`Set ANTHROPIC_AUTH_TOKEN (run \`claude setup-token\` to obtain an OAuth access token) or use authTokenEnv in the provider config`);
|
|
315
|
+
}
|
|
309
316
|
const message = {
|
|
310
317
|
id: generateId(),
|
|
311
318
|
sessionId: "",
|