@adhd/agent-mcp 0.0.1 → 0.0.2

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.
Files changed (61) hide show
  1. package/package.json +2 -1
  2. package/src/engine/hooks.d.ts +7 -0
  3. package/src/engine/hooks.d.ts.map +1 -0
  4. package/src/engine/hooks.js +26 -0
  5. package/src/engine/hooks.js.map +1 -0
  6. package/src/engine/orchestrator.d.ts +2 -0
  7. package/src/engine/orchestrator.d.ts.map +1 -1
  8. package/src/engine/orchestrator.js +50 -1
  9. package/src/engine/orchestrator.js.map +1 -1
  10. package/src/index.js +6 -2
  11. package/src/index.js.map +1 -1
  12. package/src/providers/anthropic.d.ts +1 -1
  13. package/src/providers/anthropic.d.ts.map +1 -1
  14. package/src/providers/anthropic.js +105 -3
  15. package/src/providers/anthropic.js.map +1 -1
  16. package/src/providers/claudecli.d.ts +66 -0
  17. package/src/providers/claudecli.d.ts.map +1 -0
  18. package/src/providers/claudecli.js +331 -0
  19. package/src/providers/claudecli.js.map +1 -0
  20. package/src/providers/factory.d.ts +5 -2
  21. package/src/providers/factory.d.ts.map +1 -1
  22. package/src/providers/factory.js +7 -1
  23. package/src/providers/factory.js.map +1 -1
  24. package/src/providers/types.d.ts +14 -11
  25. package/src/providers/types.d.ts.map +1 -1
  26. package/src/server.d.ts +2 -0
  27. package/src/server.d.ts.map +1 -1
  28. package/src/server.js +95 -27
  29. package/src/server.js.map +1 -1
  30. package/src/store/agent-store.d.ts +3 -1
  31. package/src/store/agent-store.d.ts.map +1 -1
  32. package/src/store/agent-store.js +8 -5
  33. package/src/store/agent-store.js.map +1 -1
  34. package/src/store/session-store.d.ts +3 -1
  35. package/src/store/session-store.d.ts.map +1 -1
  36. package/src/store/session-store.js +6 -2
  37. package/src/store/session-store.js.map +1 -1
  38. package/src/tools/task.d.ts +7 -2
  39. package/src/tools/task.d.ts.map +1 -1
  40. package/src/tools/task.js +92 -3
  41. package/src/tools/task.js.map +1 -1
  42. package/src/validation/agent.d.ts +35 -3
  43. package/src/validation/agent.d.ts.map +1 -1
  44. package/src/validation/agent.js +19 -0
  45. package/src/validation/agent.js.map +1 -1
  46. package/src/validation/errors.d.ts +5 -3
  47. package/src/validation/errors.d.ts.map +1 -1
  48. package/src/validation/errors.js.map +1 -1
  49. package/src/validation/execution.d.ts +9 -1
  50. package/src/validation/execution.d.ts.map +1 -1
  51. package/src/validation/mcp.d.ts +1 -2
  52. package/src/validation/mcp.d.ts.map +1 -1
  53. package/src/validation/message.d.ts +1 -4
  54. package/src/validation/message.d.ts.map +1 -1
  55. package/src/validation/message.js.map +1 -1
  56. package/src/validation/session.d.ts +2 -2
  57. package/src/validation/session.d.ts.map +1 -1
  58. package/src/validation/task.d.ts +9 -6
  59. package/src/validation/task.d.ts.map +1 -1
  60. package/src/validation/task.js +8 -1
  61. package/src/validation/task.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhd/agent-mcp",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Stateful MCP-native agent runtime with provider abstraction and recursive delegation",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -23,6 +23,7 @@
23
23
  "db:migrate": "drizzle-kit migrate"
24
24
  },
25
25
  "dependencies": {
26
+ "@adhd/agent-mcp-types": "*",
26
27
  "@anthropic-ai/sdk": "0.96.0",
27
28
  "@modelcontextprotocol/sdk": "1.29.0",
28
29
  "better-sqlite3": "12.10.0",
@@ -0,0 +1,7 @@
1
+ import type { HookEvent, HookEventMap, HookHandler, IHookRegistry } from "@adhd/agent-mcp-types";
2
+ export declare class HookRegistry implements IHookRegistry {
3
+ private readonly handlers;
4
+ register<E extends HookEvent>(event: E, handler: HookHandler<E>): void;
5
+ emit<E extends HookEvent>(event: E, payload: HookEventMap[E]): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGjG,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkD;IAE3E,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAMhE,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAcnF"}
@@ -0,0 +1,26 @@
1
+ import { logger } from "../logger.js";
2
+ export class HookRegistry {
3
+ handlers = new Map();
4
+ register(event, handler) {
5
+ const list = this.handlers.get(event) ?? [];
6
+ list.push(handler);
7
+ this.handlers.set(event, list);
8
+ }
9
+ async emit(event, payload) {
10
+ const list = this.handlers.get(event);
11
+ if (!list?.length)
12
+ return;
13
+ for (const handler of list) {
14
+ try {
15
+ await handler(payload);
16
+ }
17
+ catch (err) {
18
+ // Phase 1: all hooks are observational. Errors are logged and swallowed so a
19
+ // buggy plugin never kills a task. Intercepting semantics (pre:tool_call blocking,
20
+ // pre:model_request mutation) are Phase 2.
21
+ logger.warn({ event, err }, "hook handler error (swallowed)");
22
+ }
23
+ }
24
+ }
25
+ }
26
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,OAAO,YAAY;IACN,QAAQ,GAAG,IAAI,GAAG,EAAuC,CAAC;IAE3E,QAAQ,CAAsB,KAAQ,EAAE,OAAuB;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAiC,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CAAsB,KAAQ,EAAE,OAAwB;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,OAAO;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAO,OAA0B,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,6EAA6E;gBAC7E,mFAAmF;gBACnF,2CAA2C;gBAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,gCAAgC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import type { LLMProvider } from "../providers/types.js";
2
2
  import type { ExecutionContext, Message } from "../validation/index.js";
3
+ import type { IHookRegistry } from "@adhd/agent-mcp-types";
3
4
  import type { McpClientRegistry } from "../clients/registry.js";
4
5
  import type { PolicyEngine } from "./policy.js";
5
6
  import type { TaskStore } from "../store/task-store.js";
@@ -14,6 +15,7 @@ export interface OrchestratorRunInput {
14
15
  sessionStore: SessionStore;
15
16
  signal: AbortSignal;
16
17
  taskId: string;
18
+ hooks?: IHookRegistry;
17
19
  }
18
20
  export interface OrchestratorRunResult {
19
21
  result: string;
@@ -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;AAKxE,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;AAE9D,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;CAClB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACf,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA2SzE"}
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;AAE9D,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;CA2VzE"}
@@ -2,14 +2,20 @@ 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
+ /** No-op IHookRegistry used as a fallback when none is provided. */
6
+ const noopHooks = {
7
+ register: () => undefined,
8
+ emit: async () => undefined,
9
+ };
5
10
  export class Orchestrator {
6
11
  async run(input) {
7
- const { executionContext, registry, provider, policy, taskStore, sessionStore, signal, taskId, } = input;
12
+ const { executionContext, registry, provider, policy, taskStore, sessionStore, signal, taskId, hooks = noopHooks, } = input;
8
13
  // Working copy of messages — we append to this as the loop progresses
9
14
  const currentMessages = [...input.messages];
10
15
  try {
11
16
  // Mark task as running
12
17
  taskStore.updateStatus(taskId, "running");
18
+ await hooks.emit("task:start", { executionContext, messages: currentMessages });
13
19
  let finalContent = "";
14
20
  // Tool-use loop — break on "completed" stop reason, throw on cancellation/policy
15
21
  let looping = true;
@@ -37,6 +43,8 @@ export class Orchestrator {
37
43
  agentName: executionContext.agentName,
38
44
  messageCount: currentMessages.length,
39
45
  }, "MODEL_REQUEST");
46
+ // Emit pre:model_request hook
47
+ await hooks.emit("pre:model_request", { executionContext, messages: currentMessages, tools });
40
48
  // Call the LLM provider
41
49
  let providerResponse;
42
50
  try {
@@ -44,6 +52,22 @@ export class Orchestrator {
44
52
  messages: currentMessages,
45
53
  tools: tools.length > 0 ? tools : undefined,
46
54
  signal: composedSignal,
55
+ // executeTool is used by providers (e.g. claudecli) that manage
56
+ // their own internal tool loop. Standard providers (anthropic,
57
+ // openai, lmstudio) return stopReason "tool_calls" and ignore this.
58
+ executeTool: async (server, tool, args) => {
59
+ const client = await registry.getClient(server);
60
+ try {
61
+ const result = await client.callTool(tool, args);
62
+ return { result, isError: false };
63
+ }
64
+ catch (error) {
65
+ return {
66
+ result: error instanceof Error ? error.message : String(error),
67
+ isError: true,
68
+ };
69
+ }
70
+ },
47
71
  });
48
72
  }
49
73
  catch (error) {
@@ -64,6 +88,12 @@ export class Orchestrator {
64
88
  // Persist and append the assistant message
65
89
  await sessionStore.appendMessage(executionContext.sessionId, assistantMessage);
66
90
  currentMessages.push(assistantMessage);
91
+ await hooks.emit("post:model_response", {
92
+ executionContext,
93
+ stopReason: providerResponse.stopReason,
94
+ toolCallCount: assistantMessage.toolCalls?.length ?? 0,
95
+ });
96
+ await hooks.emit("message:appended", { executionContext, message: assistantMessage });
67
97
  // Emit MODEL_RESPONSE event
68
98
  taskStore.appendEvent({
69
99
  taskId,
@@ -92,6 +122,13 @@ export class Orchestrator {
92
122
  throw new ToolError("PROVIDER_ERROR", "Task was cancelled before tool call");
93
123
  }
94
124
  const qualifiedToolName = `${toolCall.server}__${toolCall.tool}`;
125
+ // Emit pre:tool_call hook (observational in Phase 1)
126
+ await hooks.emit("pre:tool_call", {
127
+ executionContext,
128
+ toolName: qualifiedToolName,
129
+ callId: toolCall.id,
130
+ toolInput: toolCall.arguments,
131
+ });
95
132
  // Policy check before executing the tool
96
133
  policy.check({
97
134
  executionContext,
@@ -156,6 +193,14 @@ export class Orchestrator {
156
193
  tool: qualifiedToolName,
157
194
  isError,
158
195
  }, "TOOL_RESULT");
196
+ await hooks.emit("post:tool_call", {
197
+ executionContext,
198
+ toolName: qualifiedToolName,
199
+ callId: toolCall.id,
200
+ toolInput: toolCall.arguments,
201
+ result: toolResult,
202
+ isError,
203
+ });
159
204
  // Append tool result message
160
205
  const toolResultMessage = {
161
206
  id: generateId(),
@@ -172,6 +217,7 @@ export class Orchestrator {
172
217
  };
173
218
  await sessionStore.appendMessage(executionContext.sessionId, toolResultMessage);
174
219
  currentMessages.push(toolResultMessage);
220
+ await hooks.emit("message:appended", { executionContext, message: toolResultMessage });
175
221
  // Increment toolCallCount AFTER the result is appended
176
222
  // so the next policy check sees the updated value
177
223
  executionContext.toolCallCount++;
@@ -188,6 +234,7 @@ export class Orchestrator {
188
234
  payload: { result: finalContent },
189
235
  });
190
236
  logger.info({ taskId, agentName: executionContext.agentName }, "TASK_COMPLETED");
237
+ await hooks.emit("task:completed", { executionContext, result: finalContent });
191
238
  return { result: finalContent };
192
239
  }
193
240
  catch (error) {
@@ -206,6 +253,7 @@ export class Orchestrator {
206
253
  // already cancelled — ignore
207
254
  }
208
255
  taskStore.appendEvent({ taskId, type: "TASK_CANCELLED" });
256
+ void hooks.emit("task:cancelled", { executionContext });
209
257
  }
210
258
  else {
211
259
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -218,6 +266,7 @@ export class Orchestrator {
218
266
  payload: { error: errorMessage },
219
267
  });
220
268
  logger.error({ taskId, agentName: executionContext.agentName, error }, "TASK_FAILED");
269
+ void hooks.emit("task:failed", { executionContext, error: errorMessage });
221
270
  }
222
271
  throw error;
223
272
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/orchestrator.ts"],"names":[],"mappings":"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"}
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.js CHANGED
@@ -6,16 +6,19 @@ import { logger } from "./logger.js";
6
6
  import { AgentStore, SessionStore, TaskStore } from "./store/index.js";
7
7
  import { BackgroundQueue } from "./engine/queue.js";
8
8
  import { Orchestrator } from "./engine/orchestrator.js";
9
+ import { HookRegistry } from "./engine/hooks.js";
9
10
  import { PolicyEngine } from "./engine/policy.js";
10
11
  import { startServer } from "./server.js";
11
12
  async function main() {
12
13
  // Run DB migrations synchronously before advertising tools
13
14
  runMigrations();
15
+ // Instantiate hooks registry
16
+ const hooks = new HookRegistry();
14
17
  // Instantiate stores
15
18
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
19
  const dbAny = db;
17
- const agentStore = new AgentStore(dbAny);
18
- const sessionStore = new SessionStore(dbAny);
20
+ const agentStore = new AgentStore(dbAny, hooks);
21
+ const sessionStore = new SessionStore(dbAny, hooks);
19
22
  const taskStore = new TaskStore(dbAny);
20
23
  // Instantiate engine components
21
24
  const queue = new BackgroundQueue();
@@ -35,6 +38,7 @@ async function main() {
35
38
  queue,
36
39
  orchestrator,
37
40
  policy,
41
+ hooks,
38
42
  });
39
43
  const shutdown = async (signal) => {
40
44
  logger.info({ signal }, "Server shutdown");
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,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,UAAU,IAAI;IACf,2DAA2D;IAC3D,aAAa,EAAE,CAAC;IAEhB,qBAAqB;IACrB,8DAA8D;IAC9D,MAAM,KAAK,GAAG,EAAS,CAAC;IACxB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAEvC,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,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;QAC7D,kBAAkB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACvE,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC9C,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,OAAO,CAAC;KACvB,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC;QAChC,UAAU;QACV,YAAY;QACZ,SAAS;QACT,KAAK;QACL,YAAY;QACZ,MAAM;KACT,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACtC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC3C,MAAM,KAAK,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
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,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,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,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;QAC7D,kBAAkB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACvE,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC9C,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,OAAO,CAAC;KACvB,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC;QAChC,UAAU;QACV,YAAY;QACZ,SAAS;QACT,KAAK;QACL,YAAY;QACZ,MAAM;QACN,KAAK;KACR,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACtC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC3C,MAAM,KAAK,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
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 readonly client;
4
+ private client;
5
5
  private readonly config;
6
6
  constructor(config: Extract<ProviderConfig, {
7
7
  type: "anthropic";
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;AAEhF,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AAmEpB,qBAAa,iBAAkB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;gBAE5D,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IAO5D,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAyE1E"}
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;AAEhF,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AAsKpB,qBAAa,iBAAkB,YAAW,WAAW;IACjD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;gBAE5D,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IA4B5D,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAgF1E"}
@@ -1,7 +1,83 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
+ import { execFile } from "child_process";
3
+ import { promisify } from "util";
2
4
  import pRetry from "p-retry";
5
+ const execFileAsync = promisify(execFile);
3
6
  import { generateId } from "../utils/ids.js";
4
7
  import { nowIso } from "../utils/timestamps.js";
8
+ // ─── OAuth keychain helpers ───────────────────────────────────────────────────
9
+ const KEYCHAIN_SERVICE = "Claude Code-credentials";
10
+ const OAUTH_TOKEN_URL = "https://platform.claude.com/v1/oauth/token";
11
+ const OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
12
+ /** Refresh when fewer than this many ms remain on the access token. */
13
+ const REFRESH_BUFFER_MS = 5 * 60 * 1000; // 5 min
14
+ async function readKeychainCreds() {
15
+ const { stdout } = await execFileAsync("security", ["find-generic-password", "-s", KEYCHAIN_SERVICE, "-w"], { encoding: "utf8" });
16
+ const parsed = JSON.parse(stdout.trim());
17
+ return parsed.claudeAiOauth;
18
+ }
19
+ async function refreshOauthToken(refreshToken) {
20
+ // ⚠️ UNVERIFIED PATH — refresh confirmed blocked (HTTP 429) while the access token
21
+ // is still valid; the endpoint appears to enforce "no early refresh" as an OAuth
22
+ // policy. This function will only be called when the token is within
23
+ // REFRESH_BUFFER_MS of expiry (see getAccessToken below), which is the correct
24
+ // window. To confirm it actually works end-to-end:
25
+ //
26
+ // 1. Check the current expiry:
27
+ // security find-generic-password -s "Claude Code-credentials" -w \
28
+ // | python3 -c "import sys,json,time; d=json.load(sys.stdin);
29
+ // exp=d['claudeAiOauth']['expiresAt']/1000;
30
+ // print(time.strftime('%Y-%m-%d %H:%M:%S UTC', time.gmtime(exp)),
31
+ // f'({round((exp-time.time())/60,1)} min remaining)')"
32
+ //
33
+ // 2. Wait until ≤5 min remain (or temporarily lower REFRESH_BUFFER_MS to
34
+ // something large like 7*60*60*1000 to force the code path immediately).
35
+ //
36
+ // 3. Call getAccessToken() and confirm a new token is returned.
37
+ //
38
+ // If this ever returns a 429 in production it means the token expired and the
39
+ // refresh endpoint itself is down — the fallback in getAccessToken() will use
40
+ // the stored (expired) token and let the SDK surface a 401.
41
+ const body = new URLSearchParams({
42
+ grant_type: "refresh_token",
43
+ refresh_token: refreshToken,
44
+ client_id: OAUTH_CLIENT_ID,
45
+ });
46
+ const res = await fetch(OAUTH_TOKEN_URL, {
47
+ method: "POST",
48
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
49
+ body: body.toString(),
50
+ });
51
+ const json = await res.json();
52
+ if (!res.ok || !json.access_token) {
53
+ throw new Error(`OAuth refresh failed: ${JSON.stringify(json)}`);
54
+ }
55
+ return {
56
+ accessToken: json.access_token,
57
+ refreshToken: json.refresh_token ?? refreshToken, // some providers rotate it
58
+ expiresAt: Date.now() + (json.expires_in ?? 3600) * 1000,
59
+ };
60
+ }
61
+ /**
62
+ * Returns a fresh access token, refreshing via OAuth if the stored one is
63
+ * within REFRESH_BUFFER_MS of expiry. Falls back to the stored token on
64
+ * refresh failure (it may still be valid).
65
+ */
66
+ async function getAccessToken() {
67
+ const creds = await readKeychainCreds();
68
+ if (Date.now() < creds.expiresAt - REFRESH_BUFFER_MS) {
69
+ return creds.accessToken; // still good
70
+ }
71
+ // Token is expired or nearly so — refresh
72
+ try {
73
+ const fresh = await refreshOauthToken(creds.refreshToken);
74
+ return fresh.accessToken;
75
+ }
76
+ catch {
77
+ // Refresh failed — fall back to stored token and let the SDK surface the 401
78
+ return creds.accessToken;
79
+ }
80
+ }
5
81
  function toAnthropicTools(tools) {
6
82
  if (!tools)
7
83
  return undefined;
@@ -65,11 +141,37 @@ export class AnthropicProvider {
65
141
  config;
66
142
  constructor(config) {
67
143
  this.config = config;
68
- this.client = new Anthropic({
69
- apiKey: process.env[config.apiKeyEnv ?? "ANTHROPIC_API_KEY"],
70
- });
144
+ if (config.useClaudeOauth) {
145
+ // Deferred: client is built per-request in chat() after fetching a fresh token.
146
+ // Set a placeholder that will be replaced before any real call.
147
+ this.client = null;
148
+ return;
149
+ }
150
+ // Resolve credentials in priority order:
151
+ // 1. Explicit API key env var (e.g. ANTHROPIC_API_KEY)
152
+ // 2. Explicit auth token env var (e.g. ANTHROPIC_AUTH_TOKEN, for subscription users)
153
+ // 3. Neither — let SDK auto-detect from its own ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN
154
+ // env fallbacks (throws AuthenticationError if neither is set)
155
+ const apiKey = process.env[config.apiKeyEnv ?? "ANTHROPIC_API_KEY"] || undefined;
156
+ const authToken = process.env[config.authTokenEnv ?? "ANTHROPIC_AUTH_TOKEN"] || undefined;
157
+ if (apiKey) {
158
+ this.client = new Anthropic({ apiKey });
159
+ }
160
+ else if (authToken) {
161
+ this.client = new Anthropic({ authToken });
162
+ }
163
+ else {
164
+ // No credentials found via env — SDK will throw a clear AuthenticationError
165
+ this.client = new Anthropic();
166
+ }
71
167
  }
72
168
  async chat(request) {
169
+ // For useClaudeOauth mode, fetch a fresh token on every chat() call so
170
+ // long-running servers never hold a stale client across token expiry.
171
+ if (this.config.useClaudeOauth) {
172
+ const authToken = await getAccessToken();
173
+ this.client = new Anthropic({ authToken });
174
+ }
73
175
  const retryConfig = this.config.retryConfig;
74
176
  const systemMessages = request.messages.filter(m => m.role === "system");
75
177
  const systemPrompt = systemMessages.map(m => m.content || "").join("\n") || undefined;
@@ -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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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * ClaudeCliProvider — drives the local `claude` CLI (Claude Code) as an LLM
3
+ * backend using a persistent subprocess with bidirectional stream-json I/O.
4
+ *
5
+ * Auth: uses whatever credentials Claude Code already has configured
6
+ * (subscription, API key, OAuth — whatever `claude auth status` shows).
7
+ *
8
+ * Flags applied on every invocation:
9
+ * --system-prompt Replace Claude Code's default prompt with the agent's prompt
10
+ * --mcp-config <tempfile> Writes the agent's mcpServers to a temp JSON file; path passed here
11
+ * --strict-mcp-config Ignore all other MCP configs; only load what we pass
12
+ * --input-format stream-json Accept NDJSON messages on stdin
13
+ * --output-format stream-json Emit NDJSON events on stdout
14
+ * --verbose Emit full event stream including tool calls and results
15
+ *
16
+ * --disallowedTools <name> (×N) — one pair per built-in not in allowedBuiltinTools.
17
+ * All Claude Code built-ins are blocked by default; only tools explicitly listed
18
+ * in the agent definition's allowedBuiltinTools field are permitted. MCP tools
19
+ * (from --mcp-config) are unaffected.
20
+ *
21
+ * ⚠️ --tools "" is NOT used — it disables MCP tools as well as built-ins.
22
+ * ⚠️ --bare is NOT used — it blocks --mcp-config from loading entirely.
23
+ *
24
+ * Tool loop: when Claude Code emits a tool_use block, we execute it via the
25
+ * request.executeTool callback (wired by the orchestrator to the McpClientRegistry)
26
+ * and write a tool_result message back to stdin. This continues until Claude
27
+ * emits a "result" event, at which point chat() resolves with stopReason "completed".
28
+ *
29
+ * ⚠️ KNOWN ISSUE: Claude Code may crash with
30
+ * "Z is not an Object. (evaluating '"tool_use_id"in Z')"
31
+ * when a tool_result is written to stdin. This is a suspected Claude Code bug
32
+ * (github.com/anthropics/claude-code/issues/24594). If you hit this, the
33
+ * provider will throw PROVIDER_ERROR and the task will fail. Fall back to the
34
+ * anthropic provider with useClaudeOauth: true for a fully supported path.
35
+ */
36
+ import type { LLMProvider, ProviderChatRequest, ProviderChatResponse } from "./types.js";
37
+ import type { McpServerConfig, ProviderConfig } from "../validation/index.js";
38
+ type ClaudeCliConfig = Extract<ProviderConfig, {
39
+ type: "claudecli";
40
+ }>;
41
+ export declare class ClaudeCliProvider implements LLMProvider {
42
+ private readonly config;
43
+ private readonly mcpServers;
44
+ constructor(config: ClaudeCliConfig, mcpServers?: Record<string, McpServerConfig>);
45
+ /**
46
+ * Build the subprocess environment. Inherits the parent process env and,
47
+ * on macOS, tries to inject ANTHROPIC_AUTH_TOKEN from the Claude Code keychain.
48
+ * This is required when --bare is set, because --bare skips the settings
49
+ * discovery that normally loads Claude Code's auth configuration.
50
+ */
51
+ private buildSubprocessEnv;
52
+ /**
53
+ * Write the agent's McpServerConfig map to a temp JSON file in the format
54
+ * Claude Code's --mcp-config flag expects. Inline JSON strings are not parsed
55
+ * by the CLI — a file path is required.
56
+ *
57
+ * Maps our `transport` field to Claude Code's `type`. The caller is responsible
58
+ * for deleting the file (use the finally block in chat()).
59
+ *
60
+ * Returns undefined if there are no servers to configure.
61
+ */
62
+ private writeMcpConfigFile;
63
+ chat(request: ProviderChatRequest): Promise<ProviderChatResponse>;
64
+ }
65
+ export {};
66
+ //# sourceMappingURL=claudecli.d.ts.map
@@ -0,0 +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;AAEvF,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;IA4BhC;;;;;;;;;OASG;YACW,kBAAkB;IA8B1B,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAuL1E"}