@adhd/agent-mcp 0.0.1 → 0.0.3

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 (64) 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 +133 -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
  62. package/drizzle/0000_nifty_sasquatch.sql +0 -55
  63. package/drizzle/meta/0000_snapshot.json +0 -387
  64. package/drizzle/meta/_journal.json +0 -13
@@ -0,0 +1,331 @@
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 { spawn, execFile } from "child_process";
37
+ import readline from "readline";
38
+ import { promisify } from "util";
39
+ import { writeFile, unlink } from "fs/promises";
40
+ import { tmpdir } from "os";
41
+ import { join } from "path";
42
+ const execFileAsync = promisify(execFile);
43
+ import { generateId } from "../utils/ids.js";
44
+ import { nowIso } from "../utils/timestamps.js";
45
+ // ─── history encoding (for multi-task sessions) ───────────────────────────────
46
+ /**
47
+ * Encodes prior session messages as a text block prepended to the current prompt.
48
+ * Only needed when the session has history from prior tasks — within a single task,
49
+ * Claude Code handles its own context via the stream-json tool loop.
50
+ *
51
+ * If there is only one non-system message, it is returned verbatim.
52
+ */
53
+ function buildUserMessage(messages) {
54
+ const nonSystem = messages.filter(m => m.role !== "system");
55
+ if (nonSystem.length === 0)
56
+ return "";
57
+ if (nonSystem.length === 1)
58
+ return nonSystem[0].content ?? "";
59
+ const history = nonSystem.slice(0, -1);
60
+ const last = nonSystem[nonSystem.length - 1];
61
+ const lines = ["[Conversation history]"];
62
+ for (const msg of history) {
63
+ const label = msg.role === "user" ? "User" :
64
+ msg.role === "assistant" ? "Assistant" :
65
+ msg.role === "tool" ? "Tool result" : "System";
66
+ const body = msg.content ??
67
+ (msg.toolCalls ? `[called tools: ${msg.toolCalls.map(tc => tc.tool).join(", ")}]` : "");
68
+ lines.push(`${label}: ${body}`);
69
+ }
70
+ lines.push("", "[Current message]", last.content ?? "");
71
+ return lines.join("\n");
72
+ }
73
+ // ─── built-in tool list ───────────────────────────────────────────────────────
74
+ /**
75
+ * Complete list of Claude Code built-in tool names (as of Claude Code 1.x).
76
+ * All of these are disallowed by default for claudecli agents; only tools
77
+ * listed in the agent's `allowedBuiltinTools` are permitted. MCP tools
78
+ * (loaded via --mcp-config) are unaffected by this list.
79
+ */
80
+ const CLAUDE_CODE_BUILTIN_TOOLS = [
81
+ "Bash",
82
+ "Edit",
83
+ "MultiEdit",
84
+ "Read",
85
+ "Write",
86
+ "Glob",
87
+ "Grep",
88
+ "LS",
89
+ "WebFetch",
90
+ "WebSearch",
91
+ "TodoRead",
92
+ "TodoWrite",
93
+ "NotebookRead",
94
+ "NotebookEdit",
95
+ "Task",
96
+ ];
97
+ // ─── provider ────────────────────────────────────────────────────────────────
98
+ export class ClaudeCliProvider {
99
+ config;
100
+ mcpServers;
101
+ constructor(config, mcpServers = {}) {
102
+ this.config = config;
103
+ this.mcpServers = mcpServers;
104
+ }
105
+ /**
106
+ * Build the subprocess environment. Inherits the parent process env and,
107
+ * on macOS, tries to inject ANTHROPIC_AUTH_TOKEN from the Claude Code keychain.
108
+ * This is required when --bare is set, because --bare skips the settings
109
+ * discovery that normally loads Claude Code's auth configuration.
110
+ */
111
+ async buildSubprocessEnv() {
112
+ const env = { ...process.env };
113
+ // If an explicit auth token env var is already present, nothing to do
114
+ if (env["ANTHROPIC_AUTH_TOKEN"] || env["ANTHROPIC_API_KEY"]) {
115
+ return env;
116
+ }
117
+ // Try macOS keychain — same store as useClaudeOauth in AnthropicProvider
118
+ try {
119
+ const { stdout } = await execFileAsync("security", ["find-generic-password", "-s", "Claude Code-credentials", "-w"], { encoding: "utf8" });
120
+ const parsed = JSON.parse(stdout.trim());
121
+ const token = parsed.claudeAiOauth?.accessToken;
122
+ if (token)
123
+ env["ANTHROPIC_AUTH_TOKEN"] = token;
124
+ }
125
+ catch {
126
+ // Keychain unavailable or not macOS — inherit env as-is and let
127
+ // Claude Code surface its own auth error if credentials are missing
128
+ }
129
+ return env;
130
+ }
131
+ /**
132
+ * Write the agent's McpServerConfig map to a temp JSON file in the format
133
+ * Claude Code's --mcp-config flag expects. Inline JSON strings are not parsed
134
+ * by the CLI — a file path is required.
135
+ *
136
+ * Maps our `transport` field to Claude Code's `type`. The caller is responsible
137
+ * for deleting the file (use the finally block in chat()).
138
+ *
139
+ * Returns undefined if there are no servers to configure.
140
+ */
141
+ async writeMcpConfigFile() {
142
+ const entries = Object.entries(this.mcpServers);
143
+ if (entries.length === 0)
144
+ return undefined;
145
+ const mapped = {};
146
+ for (const [name, cfg] of entries) {
147
+ if (cfg.transport === "stdio") {
148
+ const entry = {
149
+ type: "stdio",
150
+ command: cfg.command,
151
+ };
152
+ if (cfg.args?.length)
153
+ entry.args = cfg.args;
154
+ if (cfg.env && Object.keys(cfg.env).length)
155
+ entry.env = cfg.env;
156
+ mapped[name] = entry;
157
+ }
158
+ else if (cfg.transport === "http" || cfg.transport === "sse") {
159
+ const entry = {
160
+ type: cfg.transport,
161
+ url: cfg.url,
162
+ };
163
+ if (cfg.headers && Object.keys(cfg.headers).length)
164
+ entry.headers = cfg.headers;
165
+ mapped[name] = entry;
166
+ }
167
+ }
168
+ const filePath = join(tmpdir(), `agent-mcp-claudecli-${Date.now()}.json`);
169
+ await writeFile(filePath, JSON.stringify({ mcpServers: mapped }), "utf8");
170
+ return filePath;
171
+ }
172
+ async chat(request) {
173
+ const claudePath = this.config.claudePath ?? "claude";
174
+ const systemMessages = request.messages.filter(m => m.role === "system");
175
+ const systemPrompt = systemMessages.map(m => m.content ?? "").join("\n") || undefined;
176
+ const userMessage = buildUserMessage(request.messages);
177
+ // Write MCP config to a temp file.
178
+ // Note: --bare blocks ALL MCP loading including explicit --mcp-config, so
179
+ // we do NOT use --bare. CLAUDE.md will be injected but --system-prompt
180
+ // replaces the full default system prompt, keeping the agent's identity.
181
+ const mcpConfigPath = await this.writeMcpConfigFile();
182
+ // Compute the disallowed built-in list: everything in CLAUDE_CODE_BUILTIN_TOOLS
183
+ // that is NOT listed in the agent's allowedBuiltinTools allowlist.
184
+ const allowed = new Set(this.config.allowedBuiltinTools ?? []);
185
+ const disallowed = CLAUDE_CODE_BUILTIN_TOOLS.filter(t => !allowed.has(t));
186
+ const args = [
187
+ "-p",
188
+ "--dangerously-skip-permissions", // no interactive permission prompts
189
+ "--input-format", "stream-json",
190
+ "--output-format", "stream-json",
191
+ "--verbose",
192
+ ];
193
+ // Block every built-in that the agent definition doesn't explicitly allow.
194
+ // --disallowedTools accepts individual tool names as separate flag pairs.
195
+ // MCP tools are not affected — they're loaded via --mcp-config separately.
196
+ for (const tool of disallowed) {
197
+ args.push("--disallowedTools", tool);
198
+ }
199
+ if (systemPrompt)
200
+ args.push("--system-prompt", systemPrompt);
201
+ if (this.config.model)
202
+ args.push("--model", this.config.model);
203
+ if (mcpConfigPath) {
204
+ // --strict-mcp-config prevents auto-discovered .mcp.json from loading
205
+ // alongside our explicit config (avoids double-spawning agent-mcp)
206
+ args.push("--mcp-config", mcpConfigPath, "--strict-mcp-config");
207
+ }
208
+ const subEnv = await this.buildSubprocessEnv();
209
+ const proc = spawn(claudePath, args, {
210
+ stdio: ["pipe", "pipe", "pipe"],
211
+ env: subEnv,
212
+ });
213
+ const rl = readline.createInterface({
214
+ input: proc.stdout,
215
+ crlfDelay: Infinity,
216
+ });
217
+ // Kill subprocess on abort/timeout
218
+ const onAbort = () => { proc.kill("SIGTERM"); };
219
+ request.signal?.addEventListener("abort", onAbort, { once: true });
220
+ try {
221
+ // Write initial user message as first stream-json line
222
+ proc.stdin.write(JSON.stringify({
223
+ type: "user",
224
+ message: { role: "user", content: userMessage },
225
+ }) + "\n");
226
+ let procError;
227
+ proc.on("error", (err) => { procError = err; });
228
+ let finalResult = "";
229
+ for await (const line of rl) {
230
+ if (request.signal?.aborted) {
231
+ throw new Error("PROVIDER_ERROR: request aborted");
232
+ }
233
+ if (procError) {
234
+ throw new Error(`PROVIDER_ERROR: claude CLI error: ${procError.message}`);
235
+ }
236
+ let event;
237
+ try {
238
+ event = JSON.parse(line);
239
+ }
240
+ catch {
241
+ continue; // skip non-JSON lines (e.g. blank lines, debug output)
242
+ }
243
+ // ── Final result ─────────────────────────────────────────────
244
+ if (event.type === "result") {
245
+ const r = event;
246
+ if (r.is_error) {
247
+ throw new Error(`PROVIDER_ERROR: claude CLI returned error: ${r.result ?? "(no message)"}`);
248
+ }
249
+ finalResult = r.result ?? "";
250
+ break;
251
+ }
252
+ // ── Tool calls ───────────────────────────────────────────────
253
+ if (event.type === "assistant") {
254
+ const assistantEvent = event;
255
+ const toolUseBlocks = (assistantEvent.message?.content ?? []).filter((b) => b.type === "tool_use");
256
+ for (const block of toolUseBlocks) {
257
+ let toolResultText;
258
+ let isError = false;
259
+ if (request.executeTool) {
260
+ // Claude Code prefixes MCP tool names with "mcp__":
261
+ // mcp__agent-mcp__task → agent-mcp__task → server=agent-mcp, tool=task
262
+ let qualifiedName = block.name;
263
+ if (qualifiedName.startsWith("mcp__")) {
264
+ qualifiedName = qualifiedName.slice(5);
265
+ }
266
+ const sepIdx = qualifiedName.indexOf("__");
267
+ if (sepIdx === -1) {
268
+ toolResultText = `Invalid tool name (missing server prefix): ${block.name}`;
269
+ isError = true;
270
+ }
271
+ else {
272
+ const server = qualifiedName.slice(0, sepIdx);
273
+ const tool = qualifiedName.slice(sepIdx + 2);
274
+ try {
275
+ const { result, isError: err } = await request.executeTool(server, tool, block.input);
276
+ toolResultText = typeof result === "string"
277
+ ? result
278
+ : JSON.stringify(result);
279
+ isError = err;
280
+ }
281
+ catch (err) {
282
+ toolResultText = err instanceof Error ? err.message : String(err);
283
+ isError = true;
284
+ }
285
+ }
286
+ }
287
+ else {
288
+ toolResultText = "Tool execution not available (no executeTool callback)";
289
+ isError = true;
290
+ }
291
+ // ⚠️ tool_result injection — see module-level warning about
292
+ // the suspected Claude Code crash on this path.
293
+ proc.stdin.write(JSON.stringify({
294
+ type: "user",
295
+ message: {
296
+ role: "user",
297
+ content: [{
298
+ type: "tool_result",
299
+ tool_use_id: block.id,
300
+ content: [{ type: "text", text: toolResultText }],
301
+ is_error: isError,
302
+ }],
303
+ },
304
+ }) + "\n");
305
+ }
306
+ }
307
+ }
308
+ proc.stdin.end();
309
+ const message = {
310
+ id: generateId(),
311
+ sessionId: "",
312
+ role: "assistant",
313
+ content: finalResult,
314
+ createdAt: nowIso(),
315
+ };
316
+ return { message, stopReason: "completed" };
317
+ }
318
+ finally {
319
+ request.signal?.removeEventListener("abort", onAbort);
320
+ rl.close();
321
+ if (proc.exitCode === null && !proc.killed) {
322
+ proc.kill("SIGTERM");
323
+ }
324
+ // Clean up the temp MCP config file
325
+ if (mcpConfigPath) {
326
+ unlink(mcpConfigPath).catch(() => { });
327
+ }
328
+ }
329
+ }
330
+ }
331
+ //# sourceMappingURL=claudecli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudecli.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/claudecli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAoDhD,iFAAiF;AAEjF;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,QAAmB;IACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAE9D,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAa,CAAC,wBAAwB,CAAC,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GACP,GAAG,CAAC,IAAI,KAAK,MAAM,CAAM,CAAC,CAAC,MAAM,CAAC,CAAC;YACnC,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACxC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxD,MAAM,IAAI,GACN,GAAG,CAAC,OAAO;YACX,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG;IAC9B,MAAM;IACN,MAAM;IACN,WAAW;IACX,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,IAAI;IACJ,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,cAAc;IACd,cAAc;IACd,MAAM;CACA,CAAC;AAEX,gFAAgF;AAEhF,MAAM,OAAO,iBAAiB;IACT,MAAM,CAAkB;IACxB,UAAU,CAAkC;IAE7D,YAAY,MAAuB,EAAE,aAA8C,EAAE;QACjF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,kBAAkB;QAC5B,MAAM,GAAG,GAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElD,sEAAsE;QACtE,IAAI,GAAG,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1D,OAAO,GAAG,CAAC;QACf,CAAC;QAED,yEAAyE;QACzE,IAAI,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAClC,UAAU,EACV,CAAC,uBAAuB,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAChE,EAAE,QAAQ,EAAE,MAAM,EAAE,CACvB,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAEtC,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC;YAChD,IAAI,KAAK;gBAAE,GAAG,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACL,gEAAgE;YAChE,oEAAoE;QACxE,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,kBAAkB;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAE3C,MAAM,MAAM,GAAmC,EAAE,CAAC;QAElD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAwB;oBAC/B,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,GAAG,CAAC,OAAO;iBACvB,CAAC;gBACF,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM;oBAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBAC7C,IAAI,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;oBAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC7D,MAAM,KAAK,GAAuB;oBAC9B,IAAI,EAAE,GAAG,CAAC,SAAS;oBACnB,GAAG,EAAE,GAAG,CAAC,GAAG;iBACf,CAAC;gBACF,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM;oBAAE,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBAChF,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA4B;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC;QAEtD,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;QACtF,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvD,mCAAmC;QACnC,0EAA0E;QAC1E,uEAAuE;QACvE,yEAAyE;QACzE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEtD,gFAAgF;QAChF,mEAAmE;QACnE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,MAAM,IAAI,GAAa;YACnB,IAAI;YACJ,gCAAgC,EAAE,oCAAoC;YACtE,gBAAgB,EAAE,aAAa;YAC/B,iBAAiB,EAAE,aAAa;YAChC,WAAW;SACd,CAAC;QAEF,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,YAAY;YAAS,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;YAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,aAAa,EAAE,CAAC;YAChB,sEAAsE;YACtE,mEAAmE;YACnE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE/C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAChC,KAAK,EAAE,IAAI,CAAC,MAAO;YACnB,SAAS,EAAE,QAAQ;SACtB,CAAC,CAAC;QAEH,mCAAmC;QACnC,MAAM,OAAO,GAAG,GAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC;YACD,uDAAuD;YACvD,IAAI,CAAC,KAAM,CAAC,KAAK,CACb,IAAI,CAAC,SAAS,CAAC;gBACX,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;aAClD,CAAC,GAAG,IAAI,CACZ,CAAC;YAEF,IAAI,SAA4B,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC1B,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACvD,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBAED,IAAI,KAAwB,CAAC;gBAC7B,IAAI,CAAC;oBACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;gBAClD,CAAC;gBAAC,MAAM,CAAC;oBACL,SAAS,CAAC,uDAAuD;gBACrE,CAAC;gBAED,gEAAgE;gBAChE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,MAAM,CAAC,GAAG,KAAgC,CAAC;oBAC3C,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;wBACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC,CAAC;oBAChG,CAAC;oBACD,WAAW,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;oBAC7B,MAAM;gBACV,CAAC;gBAED,gEAAgE;gBAChE,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC7B,MAAM,cAAc,GAAG,KAAmC,CAAC;oBAC3D,MAAM,aAAa,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CACxD,CAAC;oBAEF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;wBAChC,IAAI,cAAsB,CAAC;wBAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;wBAEpB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;4BACtB,oDAAoD;4BACpD,yEAAyE;4BACzE,IAAI,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;4BAC/B,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gCACpC,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC3C,CAAC;4BACD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC3C,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gCAChB,cAAc,GAAG,8CAA8C,KAAK,CAAC,IAAI,EAAE,CAAC;gCAC5E,OAAO,GAAG,IAAI,CAAC;4BACnB,CAAC;iCAAM,CAAC;gCACJ,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gCAC9C,MAAM,IAAI,GAAK,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCAC/C,IAAI,CAAC;oCACD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,CACtD,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAC5B,CAAC;oCACF,cAAc,GAAG,OAAO,MAAM,KAAK,QAAQ;wCACvC,CAAC,CAAC,MAAM;wCACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oCAC7B,OAAO,GAAG,GAAG,CAAC;gCAClB,CAAC;gCAAC,OAAO,GAAG,EAAE,CAAC;oCACX,cAAc,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oCAClE,OAAO,GAAG,IAAI,CAAC;gCACnB,CAAC;4BACL,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACJ,cAAc,GAAG,wDAAwD,CAAC;4BAC1E,OAAO,GAAG,IAAI,CAAC;wBACnB,CAAC;wBAED,6DAA6D;wBAC7D,oDAAoD;wBACpD,IAAI,CAAC,KAAM,CAAC,KAAK,CACb,IAAI,CAAC,SAAS,CAAC;4BACX,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACL,IAAI,EAAE,MAAM;gCACZ,OAAO,EAAE,CAAC;wCACN,IAAI,EAAE,aAAa;wCACnB,WAAW,EAAE,KAAK,CAAC,EAAE;wCACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;wCACjD,QAAQ,EAAE,OAAO;qCACpB,CAAC;6BACL;yBACJ,CAAC,GAAG,IAAI,CACZ,CAAC;oBACN,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,CAAC,KAAM,CAAC,GAAG,EAAE,CAAC;YAElB,MAAM,OAAO,GAAY;gBACrB,EAAE,EAAE,UAAU,EAAE;gBAChB,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,WAAW;gBACpB,SAAS,EAAE,MAAM,EAAE;aACtB,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QAChD,CAAC;gBAAS,CAAC;YACP,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;YACD,oCAAoC;YACpC,IAAI,aAAa,EAAE,CAAC;gBAChB,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAqB,CAAC,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
@@ -1,7 +1,10 @@
1
- import type { ProviderConfig } from "../validation/index.js";
1
+ import type { McpServerConfig, ProviderConfig } from "../validation/index.js";
2
2
  import type { LLMProvider } from "./types.js";
3
3
  /**
4
4
  * Creates an LLM provider from a ProviderConfig discriminated union.
5
+ *
6
+ * @param mcpServers - The agent's MCP server configs. Only used by ClaudeCliProvider
7
+ * to build the --mcp-config inline JSON passed to the claude subprocess.
5
8
  */
6
- export declare function createProvider(config: ProviderConfig): LLMProvider;
9
+ export declare function createProvider(config: ProviderConfig, mcpServers?: Record<string, McpServerConfig>): LLMProvider;
7
10
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,CAalE"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,cAAc,EACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAC7C,WAAW,CAeb"}
@@ -1,13 +1,19 @@
1
1
  import { AnthropicProvider } from "./anthropic.js";
2
+ import { ClaudeCliProvider } from "./claudecli.js";
2
3
  import { LMStudioProvider } from "./lmstudio.js";
3
4
  import { OpenAIProvider } from "./openai.js";
4
5
  /**
5
6
  * Creates an LLM provider from a ProviderConfig discriminated union.
7
+ *
8
+ * @param mcpServers - The agent's MCP server configs. Only used by ClaudeCliProvider
9
+ * to build the --mcp-config inline JSON passed to the claude subprocess.
6
10
  */
7
- export function createProvider(config) {
11
+ export function createProvider(config, mcpServers) {
8
12
  switch (config.type) {
9
13
  case "anthropic":
10
14
  return new AnthropicProvider(config);
15
+ case "claudecli":
16
+ return new ClaudeCliProvider(config, mcpServers ?? {});
11
17
  case "openai":
12
18
  return new OpenAIProvider(config);
13
19
  case "lmstudio":
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACjD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACZ,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzC,KAAK,QAAQ;YACT,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,UAAU;YACX,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,UAAU,GAAU,MAAM,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0BAA2B,UAA+B,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC1B,MAAsB,EACtB,UAA4C;IAE5C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACZ,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzC,KAAK,WAAW;YACZ,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;QAC3D,KAAK,QAAQ;YACT,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,UAAU;YACX,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,UAAU,GAAU,MAAM,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0BAA2B,UAA+B,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1,15 +1,6 @@
1
1
  import type { Message } from "../validation/index.js";
2
- /**
3
- * A tool definition passed to the LLM — describes a single MCP tool.
4
- * The name is encoded as `<server>__<tool>` for disambiguation.
5
- */
6
- export interface ToolDefinition {
7
- /** Fully-qualified name: "<server>__<toolName>" */
8
- name: string;
9
- description: string;
10
- /** JSON Schema object for the tool's input parameters */
11
- inputSchema: Record<string, unknown>;
12
- }
2
+ import type { ToolDefinition } from "@adhd/agent-mcp-types";
3
+ export type { ToolDefinition };
13
4
  export interface ProviderChatRequest {
14
5
  messages: Message[];
15
6
  tools?: ToolDefinition[];
@@ -21,6 +12,18 @@ export interface ProviderChatRequest {
21
12
  * Providers must NOT reapply their own timeout internally.
22
13
  */
23
14
  signal?: AbortSignal;
15
+ /**
16
+ * Callback for providers that run their own internal tool loop (e.g. claudecli).
17
+ * The orchestrator builds this from the per-task McpClientRegistry so the
18
+ * provider can execute MCP tools without owning the registry itself.
19
+ *
20
+ * Providers that return stopReason "tool_calls" (anthropic, openai, lmstudio)
21
+ * do NOT use this — the orchestrator handles tool execution for them.
22
+ */
23
+ executeTool?: (server: string, tool: string, args: unknown) => Promise<{
24
+ result: unknown;
25
+ isError: boolean;
26
+ }>;
24
27
  }
25
28
  export interface ProviderChatResponse {
26
29
  message: Message;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,WAAW,GAAG,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACrE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,KACZ,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,WAAW,GAAG,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACrE"}
package/src/server.d.ts CHANGED
@@ -6,6 +6,7 @@ import type { TaskStore } from "./store/task-store.js";
6
6
  import { BackgroundQueue } from "./engine/queue.js";
7
7
  import { Orchestrator } from "./engine/orchestrator.js";
8
8
  import type { PolicyEngine } from "./engine/policy.js";
9
+ import type { IHookRegistry } from "@adhd/agent-mcp-types";
9
10
  export interface ServerDeps {
10
11
  agentStore: AgentStore;
11
12
  sessionStore: SessionStore;
@@ -13,6 +14,7 @@ export interface ServerDeps {
13
14
  queue: BackgroundQueue;
14
15
  policy: PolicyEngine;
15
16
  orchestrator: Orchestrator;
17
+ hooks: IHookRegistry;
16
18
  selfUrl?: string;
17
19
  }
18
20
  export declare function createServer(deps: ServerDeps): Server;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/agent-mcp/src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4BvD,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AA2OD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAmRrD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IACzD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;CAC5B,CAAC,CAsED"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/agent-mcp/src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA2B3D,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAiTD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAuRrD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IACzD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;CAC5B,CAAC,CAsED"}