@adhd/agent-mcp 1.1.4 → 2.0.1
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/0006_composed_prompts_cache.sql +24 -0
- package/drizzle/meta/0006_snapshot.json +651 -0
- package/drizzle/meta/_journal.json +8 -1
- package/package.json +8 -2
- package/src/__tests__/integration/harness.d.ts.map +1 -1
- package/src/__tests__/integration/harness.js +10 -8
- package/src/__tests__/integration/harness.js.map +1 -1
- package/src/clients/stdio-client.d.ts.map +1 -1
- package/src/clients/stdio-client.js +2 -1
- package/src/clients/stdio-client.js.map +1 -1
- package/src/config.d.ts +114 -0
- package/src/config.d.ts.map +1 -0
- package/src/config.js +287 -0
- package/src/config.js.map +1 -0
- package/src/db/client.d.ts.map +1 -1
- package/src/db/client.js +2 -3
- package/src/db/client.js.map +1 -1
- package/src/db/schema.d.ts +242 -0
- package/src/db/schema.d.ts.map +1 -1
- package/src/db/schema.js +38 -1
- package/src/db/schema.js.map +1 -1
- package/src/engine/orchestrator.d.ts.map +1 -1
- package/src/engine/orchestrator.js +3 -2
- package/src/engine/orchestrator.js.map +1 -1
- package/src/engine/policy.d.ts +24 -0
- package/src/engine/policy.d.ts.map +1 -1
- package/src/engine/policy.js +73 -6
- package/src/engine/policy.js.map +1 -1
- package/src/engine/prompt-resolver.d.ts +89 -0
- package/src/engine/prompt-resolver.d.ts.map +1 -0
- package/src/engine/prompt-resolver.js +96 -0
- package/src/engine/prompt-resolver.js.map +1 -0
- package/src/engine/queue.d.ts.map +1 -1
- package/src/engine/queue.js +2 -2
- package/src/engine/queue.js.map +1 -1
- package/src/index.d.ts +47 -3
- package/src/index.d.ts.map +1 -1
- package/src/index.js +151 -20
- package/src/index.js.map +1 -1
- package/src/logger.d.ts.map +1 -1
- package/src/logger.js +2 -1
- package/src/logger.js.map +1 -1
- package/src/plugins/loader.d.ts +19 -6
- package/src/plugins/loader.d.ts.map +1 -1
- package/src/plugins/loader.js +23 -13
- package/src/plugins/loader.js.map +1 -1
- package/src/providers/anthropic.d.ts +5 -5
- package/src/providers/anthropic.d.ts.map +1 -1
- package/src/providers/anthropic.js +53 -188
- package/src/providers/anthropic.js.map +1 -1
- package/src/providers/claudecli.d.ts +92 -5
- package/src/providers/claudecli.d.ts.map +1 -1
- package/src/providers/claudecli.js +224 -47
- package/src/providers/claudecli.js.map +1 -1
- package/src/providers/factory.d.ts +1 -1
- package/src/providers/factory.d.ts.map +1 -1
- package/src/providers/factory.js +6 -9
- package/src/providers/factory.js.map +1 -1
- package/src/providers/index.d.ts +1 -1
- package/src/providers/index.d.ts.map +1 -1
- package/src/providers/index.js +1 -1
- package/src/providers/index.js.map +1 -1
- package/src/providers/openai.d.ts +4 -2
- package/src/providers/openai.d.ts.map +1 -1
- package/src/providers/openai.js +29 -18
- package/src/providers/openai.js.map +1 -1
- package/src/providers/types.d.ts +1 -1
- package/src/server.d.ts +8 -0
- package/src/server.d.ts.map +1 -1
- package/src/server.js +19 -12
- package/src/server.js.map +1 -1
- package/src/store/agent-store.d.ts +13 -0
- package/src/store/agent-store.d.ts.map +1 -1
- package/src/store/agent-store.js +16 -3
- package/src/store/agent-store.js.map +1 -1
- package/src/store/composed-prompt-store.d.ts +24 -0
- package/src/store/composed-prompt-store.d.ts.map +1 -0
- package/src/store/composed-prompt-store.js +75 -0
- package/src/store/composed-prompt-store.js.map +1 -0
- package/src/store/index.d.ts +1 -0
- package/src/store/index.d.ts.map +1 -1
- package/src/store/index.js +1 -0
- package/src/store/index.js.map +1 -1
- package/src/store/session-store.d.ts +8 -0
- package/src/store/session-store.d.ts.map +1 -1
- package/src/store/session-store.js +3 -2
- package/src/store/session-store.js.map +1 -1
- package/src/streaming/sse-server.d.ts +2 -2
- package/src/streaming/sse-server.d.ts.map +1 -1
- package/src/streaming/sse-server.js +4 -4
- package/src/streaming/sse-server.js.map +1 -1
- package/src/tools/session.d.ts +12 -0
- package/src/tools/session.d.ts.map +1 -1
- package/src/tools/session.js +33 -1
- package/src/tools/session.js.map +1 -1
- package/src/tools/task.d.ts.map +1 -1
- package/src/tools/task.js +2 -2
- package/src/tools/task.js.map +1 -1
- package/src/tools/usage.d.ts.map +1 -1
- package/src/tools/usage.js +10 -3
- package/src/tools/usage.js.map +1 -1
- package/src/utils/load-env.d.ts +16 -0
- package/src/utils/load-env.d.ts.map +1 -0
- package/src/utils/load-env.js +27 -0
- package/src/utils/load-env.js.map +1 -0
- package/src/validation/agent.d.ts +150 -62
- package/src/validation/agent.d.ts.map +1 -1
- package/src/validation/agent.js +152 -37
- package/src/validation/agent.js.map +1 -1
- package/src/validation/errors.d.ts +1 -0
- package/src/validation/errors.d.ts.map +1 -1
- package/src/validation/errors.js +2 -0
- package/src/validation/errors.js.map +1 -1
- package/src/validation/execution.d.ts +13 -20
- package/src/validation/execution.d.ts.map +1 -1
- package/src/providers/lmstudio.d.ts +0 -8
- package/src/providers/lmstudio.d.ts.map +0 -1
- package/src/providers/lmstudio.js +0 -15
- package/src/providers/lmstudio.js.map +0 -1
package/src/plugins/loader.d.ts
CHANGED
|
@@ -16,16 +16,23 @@ export type PluginEntry = z.infer<typeof pluginEntrySchema>;
|
|
|
16
16
|
/**
|
|
17
17
|
* Returns the path to the active agent-mcp config file, or `null` if none is
|
|
18
18
|
* found. Search order:
|
|
19
|
-
* 1. `
|
|
19
|
+
* 1. `configPathOverride` (when provided directly — used by tests)
|
|
20
|
+
* or `ADHD_AGENT_CONFIG` singleton value — absolute path to any JSON file
|
|
20
21
|
* 2. `{cwd}/agent-mcp.config.json` — project-local (next to package.json)
|
|
21
22
|
* 3. `{HOME}/.agent-mcp/config.json` — global user config
|
|
23
|
+
*
|
|
24
|
+
* @param configPathOverride — explicit path that takes priority over the
|
|
25
|
+
* singleton value; pass `null` to force "no explicit path" (skip the env
|
|
26
|
+
* lookup) without passing an actual file path.
|
|
22
27
|
*/
|
|
23
|
-
export declare function findConfigFile(): string | null;
|
|
28
|
+
export declare function findConfigFile(configPathOverride?: string | null): string | null;
|
|
24
29
|
/**
|
|
25
30
|
* Reads, parses, and validates the agent-mcp config file. Returns
|
|
26
31
|
* `{ plugins: [] }` on any failure so the caller can always destructure safely.
|
|
32
|
+
*
|
|
33
|
+
* @param configPathOverride — forwarded to `findConfigFile`; used in tests.
|
|
27
34
|
*/
|
|
28
|
-
export declare function loadConfigFile(): AgentMcpConfigFile;
|
|
35
|
+
export declare function loadConfigFile(configPathOverride?: string | null): AgentMcpConfigFile;
|
|
29
36
|
/**
|
|
30
37
|
* Resolves a module specifier to a `file://` URL string for `import()`.
|
|
31
38
|
*
|
|
@@ -40,13 +47,19 @@ export declare function resolveSpecifier(specifier: string): Promise<string>;
|
|
|
40
47
|
*
|
|
41
48
|
* Processing order:
|
|
42
49
|
* 1. Plugins from the agent-mcp config file (with optional validated `config` blocks).
|
|
43
|
-
* 2. Specifiers from `
|
|
44
|
-
* options — legacy shorthand for simple activations or CI environments).
|
|
50
|
+
* 2. Specifiers from `ADHD_AGENT_PLUGINS` (comma-separated, no per-plugin options).
|
|
45
51
|
*
|
|
46
52
|
* All failures (bad config file, unresolvable module, failed schema validation,
|
|
47
53
|
* factory errors) are logged at `error` level and skipped — a broken plugin
|
|
48
54
|
* never prevents the server from starting.
|
|
55
|
+
*
|
|
56
|
+
* @param overrides — explicit values for testability; production code omits this.
|
|
57
|
+
* `configPath` — forwarded to `findConfigFile`
|
|
58
|
+
* `pluginEntries` — explicit module list (replaces `config.plugins.entries`)
|
|
49
59
|
*/
|
|
50
|
-
export declare function loadExternalPlugins(hooks: IHookRegistry, db: unknown
|
|
60
|
+
export declare function loadExternalPlugins(hooks: IHookRegistry, db: unknown, overrides?: {
|
|
61
|
+
configPath?: string | null;
|
|
62
|
+
pluginEntries?: string[];
|
|
63
|
+
}): Promise<void>;
|
|
51
64
|
export {};
|
|
52
65
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/plugins/loader.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/plugins/loader.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,aAAa,EAAwC,MAAM,uBAAuB,CAAC;AAIjG,QAAA,MAAM,iBAAiB;;;iBAKrB,CAAC;AAEH,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB;;;;;iBAEnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AA0B5D;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAsBhF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,CA6BrF;AAID;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BzE;AA6ED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACrC,KAAK,EAAE,aAAa,EACpB,EAAE,EAAE,OAAO,EACX,SAAS,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACrE,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
package/src/plugins/loader.js
CHANGED
|
@@ -33,6 +33,7 @@ import { homedir } from "node:os";
|
|
|
33
33
|
import { pathToFileURL } from "node:url";
|
|
34
34
|
import { z } from "zod";
|
|
35
35
|
import { logger } from "../logger.js";
|
|
36
|
+
import { config } from "../config.js";
|
|
36
37
|
// ── Config file schema ────────────────────────────────────────────────────────
|
|
37
38
|
const pluginEntrySchema = z.object({
|
|
38
39
|
/** npm package name or absolute file path */
|
|
@@ -48,12 +49,19 @@ export const agentMcpConfigFileSchema = z.object({
|
|
|
48
49
|
/**
|
|
49
50
|
* Returns the path to the active agent-mcp config file, or `null` if none is
|
|
50
51
|
* found. Search order:
|
|
51
|
-
* 1. `
|
|
52
|
+
* 1. `configPathOverride` (when provided directly — used by tests)
|
|
53
|
+
* or `ADHD_AGENT_CONFIG` singleton value — absolute path to any JSON file
|
|
52
54
|
* 2. `{cwd}/agent-mcp.config.json` — project-local (next to package.json)
|
|
53
55
|
* 3. `{HOME}/.agent-mcp/config.json` — global user config
|
|
56
|
+
*
|
|
57
|
+
* @param configPathOverride — explicit path that takes priority over the
|
|
58
|
+
* singleton value; pass `null` to force "no explicit path" (skip the env
|
|
59
|
+
* lookup) without passing an actual file path.
|
|
54
60
|
*/
|
|
55
|
-
export function findConfigFile() {
|
|
56
|
-
const explicit =
|
|
61
|
+
export function findConfigFile(configPathOverride) {
|
|
62
|
+
const explicit = configPathOverride !== undefined
|
|
63
|
+
? configPathOverride
|
|
64
|
+
: config.plugins.configPath;
|
|
57
65
|
if (explicit) {
|
|
58
66
|
if (!existsSync(explicit)) {
|
|
59
67
|
logger.warn({ path: explicit }, "AGENT_MCP_CONFIG points to a file that does not exist — ignoring");
|
|
@@ -72,9 +80,11 @@ export function findConfigFile() {
|
|
|
72
80
|
/**
|
|
73
81
|
* Reads, parses, and validates the agent-mcp config file. Returns
|
|
74
82
|
* `{ plugins: [] }` on any failure so the caller can always destructure safely.
|
|
83
|
+
*
|
|
84
|
+
* @param configPathOverride — forwarded to `findConfigFile`; used in tests.
|
|
75
85
|
*/
|
|
76
|
-
export function loadConfigFile() {
|
|
77
|
-
const configPath = findConfigFile();
|
|
86
|
+
export function loadConfigFile(configPathOverride) {
|
|
87
|
+
const configPath = findConfigFile(configPathOverride);
|
|
78
88
|
if (!configPath)
|
|
79
89
|
return { plugins: [] };
|
|
80
90
|
let raw;
|
|
@@ -188,19 +198,19 @@ async function loadOnePlugin(hooks, db, entry) {
|
|
|
188
198
|
*
|
|
189
199
|
* Processing order:
|
|
190
200
|
* 1. Plugins from the agent-mcp config file (with optional validated `config` blocks).
|
|
191
|
-
* 2. Specifiers from `
|
|
192
|
-
* options — legacy shorthand for simple activations or CI environments).
|
|
201
|
+
* 2. Specifiers from `ADHD_AGENT_PLUGINS` (comma-separated, no per-plugin options).
|
|
193
202
|
*
|
|
194
203
|
* All failures (bad config file, unresolvable module, failed schema validation,
|
|
195
204
|
* factory errors) are logged at `error` level and skipped — a broken plugin
|
|
196
205
|
* never prevents the server from starting.
|
|
206
|
+
*
|
|
207
|
+
* @param overrides — explicit values for testability; production code omits this.
|
|
208
|
+
* `configPath` — forwarded to `findConfigFile`
|
|
209
|
+
* `pluginEntries` — explicit module list (replaces `config.plugins.entries`)
|
|
197
210
|
*/
|
|
198
|
-
export async function loadExternalPlugins(hooks, db) {
|
|
199
|
-
const configFile = loadConfigFile();
|
|
200
|
-
const legacyEntries = (
|
|
201
|
-
.split(",")
|
|
202
|
-
.map(s => s.trim())
|
|
203
|
-
.filter(Boolean)
|
|
211
|
+
export async function loadExternalPlugins(hooks, db, overrides) {
|
|
212
|
+
const configFile = loadConfigFile(overrides?.configPath);
|
|
213
|
+
const legacyEntries = (overrides?.pluginEntries ?? config.plugins.entries)
|
|
204
214
|
.map(module => ({ module, config: {} }));
|
|
205
215
|
const allEntries = [...configFile.plugins, ...legacyEntries];
|
|
206
216
|
if (allEntries.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/plugins/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,iFAAiF;AAEjF,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,6CAA6C;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAmC,CAAC;IAC9D,8EAA8E;IAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACnE,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7D,CAAC,CAAC;AA2BH,iFAAiF;AAEjF
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/plugins/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { ProviderConfig } from "../validation/index.js";
|
|
2
2
|
import type { LLMProvider, ProviderChatRequest, ProviderChatResponse } from "./types.js";
|
|
3
3
|
export declare class AnthropicProvider implements LLMProvider {
|
|
4
|
-
private client;
|
|
5
|
-
private readonly
|
|
6
|
-
/** True when the
|
|
7
|
-
private
|
|
8
|
-
constructor(
|
|
4
|
+
private readonly client;
|
|
5
|
+
private readonly providerConfig;
|
|
6
|
+
/** True when the resolved secret is a sk-ant-oat… OAuth token. */
|
|
7
|
+
private readonly useOauthIdentity;
|
|
8
|
+
constructor(providerConfig: Extract<ProviderConfig, {
|
|
9
9
|
type: "anthropic";
|
|
10
10
|
}>);
|
|
11
11
|
chat(request: ProviderChatRequest): Promise<ProviderChatResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;AAKhF,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AAsJpB,qBAAa,iBAAkB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiD;IAChF,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAE/B,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IA+BpE,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA0H1E"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import Anthropic from "@anthropic-ai/sdk";
|
|
2
|
-
import { execFile } from "child_process";
|
|
3
|
-
import { promisify } from "util";
|
|
4
2
|
import pRetry from "p-retry";
|
|
5
|
-
const execFileAsync = promisify(execFile);
|
|
6
3
|
import { generateId } from "../utils/ids.js";
|
|
7
4
|
import { nowIso } from "../utils/timestamps.js";
|
|
8
5
|
import { resolveToolCallName } from "../clients/tool-naming.js";
|
|
9
6
|
import { ToolError } from "../validation/errors.js";
|
|
10
7
|
import { logger } from "../logger.js";
|
|
8
|
+
import { config } from "../config.js";
|
|
11
9
|
// ─── Model max-output token table ────────────────────────────────────────────
|
|
12
10
|
// Maps model-name prefix → documented max output tokens (standard sync API,
|
|
13
11
|
// no beta headers). Checked longest-prefix-first so "claude-opus-4-5" (64k)
|
|
14
12
|
// wins over "claude-opus-4" (128k). Source: docs.anthropic.com/models/overview.
|
|
15
|
-
//
|
|
13
|
+
// config.server.defaultMaxTokens is used as the fallback for unknown / future models.
|
|
16
14
|
const MODEL_MAX_TOKENS = [
|
|
17
15
|
// Claude 5 (GA 2026-06)
|
|
18
16
|
["claude-fable-5", 128_000],
|
|
@@ -38,115 +36,31 @@ const MODEL_MAX_TOKENS = [
|
|
|
38
36
|
["claude-3-haiku", 4_096],
|
|
39
37
|
];
|
|
40
38
|
function defaultMaxTokens(model) {
|
|
41
|
-
const envOverride = process.env["AGENT_MCP_DEFAULT_MAX_TOKENS"];
|
|
42
|
-
if (envOverride)
|
|
43
|
-
return parseInt(envOverride, 10);
|
|
44
39
|
for (const [prefix, maxTokens] of MODEL_MAX_TOKENS) {
|
|
45
40
|
if (model.startsWith(prefix))
|
|
46
41
|
return maxTokens;
|
|
47
42
|
}
|
|
48
|
-
|
|
43
|
+
// Unknown / future model — fall back to the global default
|
|
44
|
+
return config.server.defaultMaxTokens;
|
|
49
45
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
async function readKeychainCreds() {
|
|
57
|
-
const { stdout } = await execFileAsync("security", ["find-generic-password", "-s", KEYCHAIN_SERVICE, "-w"], { encoding: "utf8" });
|
|
58
|
-
const parsed = JSON.parse(stdout.trim());
|
|
59
|
-
return parsed.claudeAiOauth;
|
|
60
|
-
}
|
|
61
|
-
async function writeKeychainCreds(creds) {
|
|
62
|
-
// Read the full existing keychain entry so we preserve any other fields
|
|
63
|
-
const { stdout } = await execFileAsync("security", ["find-generic-password", "-s", KEYCHAIN_SERVICE, "-w"], { encoding: "utf8" });
|
|
64
|
-
const existing = JSON.parse(stdout.trim());
|
|
65
|
-
existing["claudeAiOauth"] = creds;
|
|
66
|
-
// -U updates the existing entry in place
|
|
67
|
-
await execFileAsync("security", [
|
|
68
|
-
"add-generic-password",
|
|
69
|
-
"-U",
|
|
70
|
-
"-s", KEYCHAIN_SERVICE,
|
|
71
|
-
"-a", KEYCHAIN_SERVICE,
|
|
72
|
-
"-w", JSON.stringify(existing),
|
|
73
|
-
], { encoding: "utf8" });
|
|
74
|
-
}
|
|
75
|
-
async function refreshOauthToken(refreshToken) {
|
|
76
|
-
// ⚠️ UNVERIFIED PATH — refresh confirmed blocked (HTTP 429) while the access token
|
|
77
|
-
// is still valid; the endpoint appears to enforce "no early refresh" as an OAuth
|
|
78
|
-
// policy. This function will only be called when the token is within
|
|
79
|
-
// REFRESH_BUFFER_MS of expiry (see getAccessToken below), which is the correct
|
|
80
|
-
// window. To confirm it actually works end-to-end:
|
|
81
|
-
//
|
|
82
|
-
// 1. Check the current expiry:
|
|
83
|
-
// security find-generic-password -s "Claude Code-credentials" -w \
|
|
84
|
-
// | python3 -c "import sys,json,time; d=json.load(sys.stdin);
|
|
85
|
-
// exp=d['claudeAiOauth']['expiresAt']/1000;
|
|
86
|
-
// print(time.strftime('%Y-%m-%d %H:%M:%S UTC', time.gmtime(exp)),
|
|
87
|
-
// f'({round((exp-time.time())/60,1)} min remaining)')"
|
|
88
|
-
//
|
|
89
|
-
// 2. Wait until ≤5 min remain (or temporarily lower REFRESH_BUFFER_MS to
|
|
90
|
-
// something large like 7*60*60*1000 to force the code path immediately).
|
|
91
|
-
//
|
|
92
|
-
// 3. Call getAccessToken() and confirm a new token is returned.
|
|
93
|
-
//
|
|
94
|
-
// If this ever returns a 429 in production it means the token expired and the
|
|
95
|
-
// refresh endpoint itself is down — the fallback in getAccessToken() will use
|
|
96
|
-
// the stored (expired) token and let the SDK surface a 401.
|
|
97
|
-
const body = new URLSearchParams({
|
|
98
|
-
grant_type: "refresh_token",
|
|
99
|
-
refresh_token: refreshToken,
|
|
100
|
-
client_id: OAUTH_CLIENT_ID,
|
|
101
|
-
});
|
|
102
|
-
const res = await fetch(OAUTH_TOKEN_URL, {
|
|
103
|
-
method: "POST",
|
|
104
|
-
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
105
|
-
body: body.toString(),
|
|
106
|
-
});
|
|
107
|
-
const rawBody = await res.text();
|
|
108
|
-
let json = {};
|
|
109
|
-
try {
|
|
110
|
-
json = JSON.parse(rawBody);
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
throw new Error(`OAuth refresh failed: response was not JSON\n` +
|
|
114
|
-
` status: ${res.status} ${res.statusText}\n` +
|
|
115
|
-
` body: ${rawBody}`);
|
|
116
|
-
}
|
|
117
|
-
if (!res.ok || !json.access_token) {
|
|
118
|
-
throw new Error(`OAuth refresh failed\n` +
|
|
119
|
-
` status: ${res.status} ${res.statusText}\n` +
|
|
120
|
-
` body: ${rawBody}`);
|
|
46
|
+
function buildAnthropicClient(secret, timeoutMs) {
|
|
47
|
+
if (secret.startsWith("sk-ant-api")) {
|
|
48
|
+
return {
|
|
49
|
+
client: new Anthropic({ apiKey: secret, timeout: timeoutMs }),
|
|
50
|
+
useOauthIdentity: false,
|
|
51
|
+
};
|
|
121
52
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
53
|
+
// OAuth / subscription token — requires the oauth-2025-04-20 beta header and
|
|
54
|
+
// the Claude Code identity block in the system prompt (see below).
|
|
55
|
+
const isOauth = secret.startsWith("sk-ant-oat");
|
|
56
|
+
return {
|
|
57
|
+
client: new Anthropic({
|
|
58
|
+
authToken: secret,
|
|
59
|
+
timeout: timeoutMs,
|
|
60
|
+
...(isOauth ? { defaultHeaders: { "anthropic-beta": "oauth-2025-04-20" } } : {}),
|
|
61
|
+
}),
|
|
62
|
+
useOauthIdentity: isOauth,
|
|
126
63
|
};
|
|
127
|
-
// Persist rotated credentials back to the keychain so Claude Code stays in sync
|
|
128
|
-
await writeKeychainCreds(fresh);
|
|
129
|
-
return fresh;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Returns a fresh access token, refreshing via OAuth if the stored one is
|
|
133
|
-
* within REFRESH_BUFFER_MS of expiry. Falls back to the stored token on
|
|
134
|
-
* refresh failure (it may still be valid).
|
|
135
|
-
*/
|
|
136
|
-
async function getAccessToken() {
|
|
137
|
-
const creds = await readKeychainCreds();
|
|
138
|
-
if (Date.now() < creds.expiresAt - REFRESH_BUFFER_MS) {
|
|
139
|
-
return creds.accessToken; // still good
|
|
140
|
-
}
|
|
141
|
-
// Token is expired or nearly so — refresh
|
|
142
|
-
try {
|
|
143
|
-
const fresh = await refreshOauthToken(creds.refreshToken);
|
|
144
|
-
return fresh.accessToken;
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
// Refresh failed — fall back to stored token and let the SDK surface the 401
|
|
148
|
-
return creds.accessToken;
|
|
149
|
-
}
|
|
150
64
|
}
|
|
151
65
|
function toAnthropicTools(tools) {
|
|
152
66
|
if (!tools)
|
|
@@ -218,85 +132,31 @@ function toAnthropicMessages(messages) {
|
|
|
218
132
|
const CLAUDE_CODE_IDENTITY = "You are Claude Code, Anthropic's official CLI for Claude.";
|
|
219
133
|
export class AnthropicProvider {
|
|
220
134
|
client;
|
|
221
|
-
|
|
222
|
-
/** True when the
|
|
223
|
-
|
|
224
|
-
constructor(
|
|
225
|
-
this.
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
if (apiKey) {
|
|
240
|
-
this.client = new Anthropic({ apiKey, timeout: config.timeoutMs });
|
|
241
|
-
}
|
|
242
|
-
else if (authToken) {
|
|
243
|
-
// OAuth tokens (sk-ant-oat…) require the oauth-2025-04-20 beta header;
|
|
244
|
-
// without it the Messages API returns 429. API keys (sk-ant-api…) do not.
|
|
245
|
-
const isOauth = authToken.startsWith("sk-ant-oat");
|
|
246
|
-
this._useOauthIdentity = isOauth;
|
|
247
|
-
this.client = new Anthropic({
|
|
248
|
-
authToken,
|
|
249
|
-
timeout: config.timeoutMs,
|
|
250
|
-
...(isOauth ? { defaultHeaders: { "anthropic-beta": "oauth-2025-04-20" } } : {}),
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
// No credentials found via env — SDK will throw a clear AuthenticationError
|
|
255
|
-
// DEBT-005: pass timeoutMs so SDK timeout aligns with our AbortSignal.
|
|
256
|
-
// Less critical than OpenAI: Anthropic uses .stream() which bypasses the
|
|
257
|
-
// SDK's synchronous 10-minute limit, but we align for consistency.
|
|
258
|
-
this.client = new Anthropic({ timeout: config.timeoutMs });
|
|
135
|
+
providerConfig;
|
|
136
|
+
/** True when the resolved secret is a sk-ant-oat… OAuth token. */
|
|
137
|
+
useOauthIdentity;
|
|
138
|
+
constructor(providerConfig) {
|
|
139
|
+
this.providerConfig = providerConfig;
|
|
140
|
+
// Resolve the single unified secret via config (§3 / §3c)
|
|
141
|
+
const resolved = config.getProviderConfig({
|
|
142
|
+
provider: "anthropic",
|
|
143
|
+
secret: providerConfig.env?.secret,
|
|
144
|
+
model: providerConfig.env?.model,
|
|
145
|
+
inlineModel: providerConfig.model,
|
|
146
|
+
});
|
|
147
|
+
if (!resolved.secret) {
|
|
148
|
+
// No secret found and we're not a localhost server (anthropic has no localhost exemption)
|
|
149
|
+
throw new ToolError("PROVIDER_AUTH_ERROR", `Anthropic requires a credential. ` +
|
|
150
|
+
`Set ADHD_AGENT_ANTHROPIC_SECRET in your ~/.adhd/.env ` +
|
|
151
|
+
`(run \`claude setup-token\` to obtain an OAuth access token, ` +
|
|
152
|
+
`or use your console.anthropic.com API key).`);
|
|
259
153
|
}
|
|
154
|
+
const { client, useOauthIdentity } = buildAnthropicClient(resolved.secret, providerConfig.timeoutMs);
|
|
155
|
+
this.client = client;
|
|
156
|
+
this.useOauthIdentity = useOauthIdentity;
|
|
260
157
|
}
|
|
261
158
|
async chat(request) {
|
|
262
|
-
|
|
263
|
-
// long-running servers never hold a stale client across token expiry.
|
|
264
|
-
if (this.config.useClaudeOauth) {
|
|
265
|
-
try {
|
|
266
|
-
const authToken = await getAccessToken();
|
|
267
|
-
// Subscription OAuth tokens always require the beta header + Claude Code identity in system prompt
|
|
268
|
-
this._useOauthIdentity = true;
|
|
269
|
-
this.client = new Anthropic({
|
|
270
|
-
authToken,
|
|
271
|
-
timeout: this.config.timeoutMs,
|
|
272
|
-
defaultHeaders: { "anthropic-beta": "oauth-2025-04-20" },
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
catch (keychainErr) {
|
|
276
|
-
const keychainMsg = keychainErr instanceof Error ? keychainErr.message : String(keychainErr);
|
|
277
|
-
logger.warn({ keychainMsg }, "AnthropicProvider: keychain read failed, trying env var fallbacks");
|
|
278
|
-
const apiKey = process.env["ANTHROPIC_API_KEY"] || undefined;
|
|
279
|
-
const authToken = process.env["ANTHROPIC_AUTH_TOKEN"] || undefined;
|
|
280
|
-
if (apiKey) {
|
|
281
|
-
this._useOauthIdentity = false;
|
|
282
|
-
this.client = new Anthropic({ apiKey, timeout: this.config.timeoutMs });
|
|
283
|
-
}
|
|
284
|
-
else if (authToken) {
|
|
285
|
-
const isOauth = authToken.startsWith("sk-ant-oat");
|
|
286
|
-
this._useOauthIdentity = isOauth;
|
|
287
|
-
this.client = new Anthropic({
|
|
288
|
-
authToken,
|
|
289
|
-
timeout: this.config.timeoutMs,
|
|
290
|
-
...(isOauth ? { defaultHeaders: { "anthropic-beta": "oauth-2025-04-20" } } : {}),
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
throw new ToolError("PROVIDER_AUTH_ERROR", `Anthropic keychain read failed: ${keychainMsg}. ` +
|
|
295
|
-
`Set ANTHROPIC_AUTH_TOKEN (run \`claude setup-token\` to obtain an OAuth access token) or use authTokenEnv in the provider config`);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
const retryConfig = this.config.retryConfig;
|
|
159
|
+
const retryConfig = this.providerConfig.retryConfig;
|
|
300
160
|
const systemMessages = request.messages.filter(m => m.role === "system");
|
|
301
161
|
const systemPrompt = systemMessages.map(m => m.content || "").join("\n") || undefined;
|
|
302
162
|
const run = async () => {
|
|
@@ -307,7 +167,7 @@ export class AnthropicProvider {
|
|
|
307
167
|
// has its own system prompt fails unless the identity is its own block.
|
|
308
168
|
// (Proven by bisect: array form → 200; identity+prompt joined string → 429.)
|
|
309
169
|
// API-key mode keeps the plain string.
|
|
310
|
-
const effectiveSystem = this.
|
|
170
|
+
const effectiveSystem = this.useOauthIdentity
|
|
311
171
|
? [
|
|
312
172
|
{ type: "text", text: CLAUDE_CODE_IDENTITY },
|
|
313
173
|
...(systemPrompt
|
|
@@ -315,14 +175,18 @@ export class AnthropicProvider {
|
|
|
315
175
|
: []),
|
|
316
176
|
]
|
|
317
177
|
: systemPrompt;
|
|
178
|
+
const effectiveModel = this.providerConfig.model ?? "";
|
|
179
|
+
if (!effectiveModel) {
|
|
180
|
+
logger.warn("AnthropicProvider: no model configured; API will likely reject");
|
|
181
|
+
}
|
|
318
182
|
// Use streaming to avoid the SDK's synchronous "Streaming is required
|
|
319
183
|
// for operations that may take longer than 10 minutes" throw that fires
|
|
320
184
|
// when max_tokens is large (e.g. 64k on haiku-4-5) with messages.create().
|
|
321
185
|
const stream = this.client.messages.stream({
|
|
322
|
-
model:
|
|
186
|
+
model: effectiveModel,
|
|
323
187
|
system: effectiveSystem,
|
|
324
|
-
temperature: this.
|
|
325
|
-
max_tokens: this.
|
|
188
|
+
temperature: this.providerConfig.temperature,
|
|
189
|
+
max_tokens: this.providerConfig.maxTokens ?? defaultMaxTokens(effectiveModel),
|
|
326
190
|
messages: toAnthropicMessages(request.messages),
|
|
327
191
|
tools: toAnthropicTools(request.tools),
|
|
328
192
|
}, { signal: request.signal });
|
|
@@ -365,7 +229,7 @@ export class AnthropicProvider {
|
|
|
365
229
|
inputTokens: sdkUsage.input_tokens,
|
|
366
230
|
outputTokens: sdkUsage.output_tokens,
|
|
367
231
|
stopReason: normalisedStopReason,
|
|
368
|
-
maxTokens: this.
|
|
232
|
+
maxTokens: this.providerConfig.maxTokens ?? defaultMaxTokens(effectiveModel),
|
|
369
233
|
cacheReadTokens: sdkUsage.cache_read_input_tokens ?? undefined,
|
|
370
234
|
cacheCreationTokens: sdkUsage.cache_creation_input_tokens ?? undefined,
|
|
371
235
|
},
|
|
@@ -384,7 +248,8 @@ export class AnthropicProvider {
|
|
|
384
248
|
// Don't retry auth failures — credentials won't change between attempts
|
|
385
249
|
if ("status" in error && error.status === 401) {
|
|
386
250
|
throw new ToolError("PROVIDER_AUTH_ERROR", `Anthropic authentication failed. ` +
|
|
387
|
-
`
|
|
251
|
+
`Check ADHD_AGENT_ANTHROPIC_SECRET in your ~/.adhd/.env ` +
|
|
252
|
+
`(run \`claude setup-token\` to obtain a fresh OAuth access token).`);
|
|
388
253
|
}
|
|
389
254
|
},
|
|
390
255
|
});
|
|
@@ -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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"}
|