@adhd/agent-mcp 1.1.4 → 2.0.0

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 (119) hide show
  1. package/drizzle/0006_composed_prompts_cache.sql +24 -0
  2. package/drizzle/meta/0006_snapshot.json +651 -0
  3. package/drizzle/meta/_journal.json +8 -1
  4. package/package.json +5 -1
  5. package/src/__tests__/integration/harness.d.ts.map +1 -1
  6. package/src/__tests__/integration/harness.js +10 -8
  7. package/src/__tests__/integration/harness.js.map +1 -1
  8. package/src/clients/stdio-client.d.ts.map +1 -1
  9. package/src/clients/stdio-client.js +2 -1
  10. package/src/clients/stdio-client.js.map +1 -1
  11. package/src/config.d.ts +114 -0
  12. package/src/config.d.ts.map +1 -0
  13. package/src/config.js +287 -0
  14. package/src/config.js.map +1 -0
  15. package/src/db/client.d.ts.map +1 -1
  16. package/src/db/client.js +2 -3
  17. package/src/db/client.js.map +1 -1
  18. package/src/db/schema.d.ts +242 -0
  19. package/src/db/schema.d.ts.map +1 -1
  20. package/src/db/schema.js +38 -1
  21. package/src/db/schema.js.map +1 -1
  22. package/src/engine/orchestrator.d.ts.map +1 -1
  23. package/src/engine/orchestrator.js +3 -2
  24. package/src/engine/orchestrator.js.map +1 -1
  25. package/src/engine/policy.d.ts +24 -0
  26. package/src/engine/policy.d.ts.map +1 -1
  27. package/src/engine/policy.js +73 -6
  28. package/src/engine/policy.js.map +1 -1
  29. package/src/engine/prompt-resolver.d.ts +89 -0
  30. package/src/engine/prompt-resolver.d.ts.map +1 -0
  31. package/src/engine/prompt-resolver.js +96 -0
  32. package/src/engine/prompt-resolver.js.map +1 -0
  33. package/src/engine/queue.d.ts.map +1 -1
  34. package/src/engine/queue.js +2 -2
  35. package/src/engine/queue.js.map +1 -1
  36. package/src/index.d.ts +31 -3
  37. package/src/index.d.ts.map +1 -1
  38. package/src/index.js +131 -20
  39. package/src/index.js.map +1 -1
  40. package/src/logger.d.ts.map +1 -1
  41. package/src/logger.js +2 -1
  42. package/src/logger.js.map +1 -1
  43. package/src/plugins/loader.d.ts +19 -6
  44. package/src/plugins/loader.d.ts.map +1 -1
  45. package/src/plugins/loader.js +23 -13
  46. package/src/plugins/loader.js.map +1 -1
  47. package/src/providers/anthropic.d.ts +5 -5
  48. package/src/providers/anthropic.d.ts.map +1 -1
  49. package/src/providers/anthropic.js +53 -188
  50. package/src/providers/anthropic.js.map +1 -1
  51. package/src/providers/claudecli.d.ts +92 -5
  52. package/src/providers/claudecli.d.ts.map +1 -1
  53. package/src/providers/claudecli.js +224 -47
  54. package/src/providers/claudecli.js.map +1 -1
  55. package/src/providers/factory.d.ts +1 -1
  56. package/src/providers/factory.d.ts.map +1 -1
  57. package/src/providers/factory.js +6 -9
  58. package/src/providers/factory.js.map +1 -1
  59. package/src/providers/index.d.ts +1 -1
  60. package/src/providers/index.d.ts.map +1 -1
  61. package/src/providers/index.js +1 -1
  62. package/src/providers/index.js.map +1 -1
  63. package/src/providers/openai.d.ts +4 -2
  64. package/src/providers/openai.d.ts.map +1 -1
  65. package/src/providers/openai.js +29 -18
  66. package/src/providers/openai.js.map +1 -1
  67. package/src/providers/types.d.ts +1 -1
  68. package/src/server.d.ts +8 -0
  69. package/src/server.d.ts.map +1 -1
  70. package/src/server.js +19 -12
  71. package/src/server.js.map +1 -1
  72. package/src/store/agent-store.d.ts +13 -0
  73. package/src/store/agent-store.d.ts.map +1 -1
  74. package/src/store/agent-store.js +16 -3
  75. package/src/store/agent-store.js.map +1 -1
  76. package/src/store/composed-prompt-store.d.ts +24 -0
  77. package/src/store/composed-prompt-store.d.ts.map +1 -0
  78. package/src/store/composed-prompt-store.js +75 -0
  79. package/src/store/composed-prompt-store.js.map +1 -0
  80. package/src/store/index.d.ts +1 -0
  81. package/src/store/index.d.ts.map +1 -1
  82. package/src/store/index.js +1 -0
  83. package/src/store/index.js.map +1 -1
  84. package/src/store/session-store.d.ts +8 -0
  85. package/src/store/session-store.d.ts.map +1 -1
  86. package/src/store/session-store.js +3 -2
  87. package/src/store/session-store.js.map +1 -1
  88. package/src/streaming/sse-server.d.ts +2 -2
  89. package/src/streaming/sse-server.d.ts.map +1 -1
  90. package/src/streaming/sse-server.js +4 -4
  91. package/src/streaming/sse-server.js.map +1 -1
  92. package/src/tools/session.d.ts +12 -0
  93. package/src/tools/session.d.ts.map +1 -1
  94. package/src/tools/session.js +33 -1
  95. package/src/tools/session.js.map +1 -1
  96. package/src/tools/task.d.ts.map +1 -1
  97. package/src/tools/task.js +2 -2
  98. package/src/tools/task.js.map +1 -1
  99. package/src/tools/usage.d.ts.map +1 -1
  100. package/src/tools/usage.js +10 -3
  101. package/src/tools/usage.js.map +1 -1
  102. package/src/utils/load-env.d.ts +16 -0
  103. package/src/utils/load-env.d.ts.map +1 -0
  104. package/src/utils/load-env.js +27 -0
  105. package/src/utils/load-env.js.map +1 -0
  106. package/src/validation/agent.d.ts +150 -62
  107. package/src/validation/agent.d.ts.map +1 -1
  108. package/src/validation/agent.js +152 -37
  109. package/src/validation/agent.js.map +1 -1
  110. package/src/validation/errors.d.ts +1 -0
  111. package/src/validation/errors.d.ts.map +1 -1
  112. package/src/validation/errors.js +2 -0
  113. package/src/validation/errors.js.map +1 -1
  114. package/src/validation/execution.d.ts +13 -20
  115. package/src/validation/execution.d.ts.map +1 -1
  116. package/src/providers/lmstudio.d.ts +0 -8
  117. package/src/providers/lmstudio.d.ts.map +0 -1
  118. package/src/providers/lmstudio.js +0 -15
  119. package/src/providers/lmstudio.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAgEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAK/B,CAAC;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,eAAO,MAAM,sBAAsB;;iBAKjC,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmBhC,CAAC;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIjC,CAAC;AAcH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGjC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;iBASjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,+CAA0B,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAoIH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAI/B,CAAC;AAUH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAiD,CAAC;AAEzF,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,eAAO,MAAM,sBAAsB;;iBAKjC,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0BhC,CAAC;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM7D,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEtC,CAAC;AAmCH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM0C,CAAC;AAe9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKyD,CAAC;AAE7F,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;iBASjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,+CAA0B,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { mcpServerConfigSchema } from "./mcp.js";
3
+ import { config } from "../config.js";
3
4
  // Retry configuration for LLM provider calls
4
5
  export const retryConfigSchema = z.object({
5
6
  retries: z.number().int().nonnegative().default(3),
@@ -7,43 +8,47 @@ export const retryConfigSchema = z.object({
7
8
  maxTimeout: z.number().int().positive().default(30_000),
8
9
  factor: z.number().positive().default(2),
9
10
  });
10
- // Provider config discriminated union on "type"
11
+ // ── Provider env block (§3) ───────────────────────────────────────────────────
12
+ // Each field holds an ADHD_AGENT_*-prefixed env-var NAME (not the secret value).
13
+ // Enforced at agent_create / agent_update time by the isEnvNameAllowed guard.
14
+ const providerEnvBlockSchema = z
15
+ .object({
16
+ /** Env-var name whose value is the secret (API key or OAuth token). */
17
+ secret: z.string().optional(),
18
+ /** Env-var name whose value is the provider base URL. */
19
+ base_url: z.string().optional(),
20
+ /** Env-var name whose value is the model id. */
21
+ model: z.string().optional(),
22
+ })
23
+ .optional();
24
+ // NOTE (DEBT-014): the ADHD_AGENT_-prefix guard is intentionally NOT applied on this
25
+ // base block. It runs ONLY on agent_create / agent_update INPUT (see envNameGuard
26
+ // below) — never on the READ path, or legacy stored rows whose secret name predates
27
+ // the prefix scheme would fail to parse (and even agent_delete, which reads the row,
28
+ // would break).
29
+ // ── Base-URL schema (§3) ──────────────────────────────────────────────────────
30
+ // Transform-free so the schema is representable in JSON Schema (z.toJSONSchema is
31
+ // used to build every MCP tool inputSchema — a `.transform()` here makes tools/list
32
+ // throw "Transforms cannot be represented in JSON Schema"). The /v1 normalisation
33
+ // (no path → append /v1; explicit path respected) is applied at RUNTIME in
34
+ // config.getProviderConfig → normalizeBaseUrl, for both inline and env-sourced URLs.
35
+ const baseUrlSchema = z.string().url().optional();
36
+ // ── Provider config schemas ───────────────────────────────────────────────────
11
37
  const anthropicProviderSchema = z.object({
12
38
  type: z.literal("anthropic"),
13
- model: z.string(),
14
- apiKeyEnv: z.string().optional(),
15
- authTokenEnv: z.string().optional(),
16
- /** Read OAuth token from the macOS keychain (Claude Code credentials). Auto-refreshes. */
17
- useClaudeOauth: z.boolean().optional(),
39
+ model: z.string().optional(),
40
+ env: providerEnvBlockSchema,
18
41
  temperature: z.number().min(0).max(1).optional(),
19
42
  maxTokens: z.number().int().positive().optional(),
20
43
  timeoutMs: z.number().int().positive().optional(),
21
44
  retryConfig: retryConfigSchema.optional(),
22
45
  });
23
- // OpenAI-compatible servers require /vN in the base URL — the SDK appends
24
- // /chat/completions directly, so http://host:1234 → 404 every time.
25
- const versionedBaseUrlSchema = z
26
- .string()
27
- .url()
28
- .refine((url) => /\/v\d+\/?$/.test(url), {
29
- message: 'baseURL must include the API version path (e.g. "http://localhost:1234/v1")',
30
- })
31
- .optional();
32
46
  const openaiProviderSchema = z.object({
33
47
  type: z.literal("openai"),
34
- model: z.string(),
35
- apiKeyEnv: z.string().optional(),
36
- baseURL: versionedBaseUrlSchema,
37
- temperature: z.number().min(0).max(1).optional(),
38
- maxTokens: z.number().int().positive().optional(),
39
- timeoutMs: z.number().int().positive().optional(),
40
- retryConfig: retryConfigSchema.optional(),
41
- });
42
- const lmstudioProviderSchema = z.object({
43
- type: z.literal("lmstudio"),
44
- model: z.string(),
45
- apiKeyEnv: z.string().optional(),
46
- baseURL: versionedBaseUrlSchema,
48
+ model: z.string().optional(),
49
+ env: providerEnvBlockSchema,
50
+ /** Inline literal base URL — /v1-normalised at runtime in getProviderConfig. */
51
+ baseURL: baseUrlSchema,
47
52
  temperature: z.number().min(0).max(1).optional(),
48
53
  maxTokens: z.number().int().positive().optional(),
49
54
  timeoutMs: z.number().int().positive().optional(),
@@ -58,18 +63,82 @@ const claudecliProviderSchema = z.object({
58
63
  timeoutMs: z.number().int().positive().optional(),
59
64
  /**
60
65
  * Claude Code built-in tool names that are permitted in the subprocess.
61
- * All built-ins not listed here are passed to --disallowedTools.
62
- * MCP tools (from mcpServers) are always available regardless of this list.
66
+ *
67
+ * This is the LEGACY / transition-window allowlist. When ClaudeCliProvider is
68
+ * constructed with a `compiledTools` array derived from the AGENT_TOOL registry
69
+ * model (`compileAgent({ platform: "claude_code" }).tools`), this field is
70
+ * superseded — the compiled tool list is the single source of truth.
71
+ *
72
+ * [inv:no-third-tool-model]: do NOT use this field as a competing third
73
+ * tool-permission model alongside AGENT_TOOL / compiled.tools.
74
+ *
75
+ * All built-ins not in the effective allowed set are passed to --disallowedTools.
76
+ * MCP tools (from mcpServers) are always available regardless of this field.
63
77
  * Omit the field (or pass []) to block all built-ins.
78
+ * Ignored when `systemPromptIsAgentSpec` is true.
64
79
  */
65
80
  allowedBuiltinTools: z.array(z.string()).optional(),
81
+ /**
82
+ * When true, treat `systemPrompt` as a Claude Code agent markdown file
83
+ * (frontmatter + body) and let Claude internally parse its `tools:` header,
84
+ * which then takes precedence over the built-in --disallowedTools enumeration.
85
+ */
86
+ systemPromptIsAgentSpec: z.boolean().optional(),
66
87
  });
88
+ // ── Legacy normalize-on-load shim (§9.1) ─────────────────────────────────────
89
+ // Stored rows that pre-date this change may contain:
90
+ // • type: "lmstudio" → coerce to type: "openai"
91
+ // • apiKeyEnv / authTokenEnv → map to env.secret
92
+ // • useClaudeOauth → drop (keychain path removed §3b)
93
+ // This runs transparently on every schema.parse() call so the real
94
+ // ~/.adhd/agent-mcp/agents.db keeps parsing without a migration.
95
+ function legacyShim(raw) {
96
+ if (!raw || typeof raw !== "object")
97
+ return raw;
98
+ let r = { ...raw };
99
+ // lmstudio → openai (lmstudio is just an OpenAI-compatible local server)
100
+ if (r["type"] === "lmstudio") {
101
+ r = { ...r, type: "openai" };
102
+ }
103
+ // apiKeyEnv / authTokenEnv → env.secret (unified credential field)
104
+ const apiKeyEnv = r["apiKeyEnv"];
105
+ const authTokenEnv = r["authTokenEnv"];
106
+ if (apiKeyEnv || authTokenEnv) {
107
+ const existingEnv = typeof r["env"] === "object" && r["env"]
108
+ ? { ...r["env"] }
109
+ : {};
110
+ r = {
111
+ ...r,
112
+ env: {
113
+ ...existingEnv,
114
+ // keep explicit env.secret if already present
115
+ secret: existingEnv["secret"] ?? apiKeyEnv ?? authTokenEnv,
116
+ },
117
+ };
118
+ delete r["apiKeyEnv"];
119
+ delete r["authTokenEnv"];
120
+ }
121
+ // useClaudeOauth → removed in §3b (keychain subsystem deleted)
122
+ delete r["useClaudeOauth"];
123
+ // _useOauthIdentity was internal state, not stored — drop if present
124
+ delete r["_useOauthIdentity"];
125
+ return r;
126
+ }
127
+ // Transform-free discriminated union — safe for z.toJSONSchema (MCP tool inputSchema).
67
128
  export const providerConfigSchema = z.discriminatedUnion("type", [
68
129
  anthropicProviderSchema,
69
130
  openaiProviderSchema,
70
- lmstudioProviderSchema,
71
131
  claudecliProviderSchema,
72
132
  ]);
133
+ // Stored-row variant: applies the legacy normalize-on-load shim (§9.1) BEFORE
134
+ // validation so pre-change agents.db rows keep parsing. Used ONLY on the READ path
135
+ // (agent-store / session snapshot). NEVER pass this to z.toJSONSchema as a tool
136
+ // inputSchema — doing so would let the shim silently coerce caller inputs
137
+ // (lmstudio→openai, apiKeyEnv→env.secret) before validation runs, which would
138
+ // bypass the env-name guard for callers supplying the pre-rename field names.
139
+ // Note: in Zod v4 z.preprocess does NOT throw in z.toJSONSchema (unlike .transform());
140
+ // the separation here is semantic, not a crash-prevention measure.
141
+ export const providerConfigStoredSchema = z.preprocess(legacyShim, providerConfigSchema);
73
142
  // Agent permissions
74
143
  export const agentPermissionsSchema = z.object({
75
144
  // If undefined → unrestricted (any agent can be called).
@@ -83,7 +152,14 @@ export const agentDefinitionSchema = z.object({
83
152
  description: z.string().optional(),
84
153
  version: z.number().int().positive(),
85
154
  provider: providerConfigSchema,
86
- systemPrompt: z.string(),
155
+ /**
156
+ * COMPUTED COMPAT SHIM — never user-authored after Plan 6 wave 3 (agent-store-retire).
157
+ *
158
+ * Populated at session start from `compileAgent().content`. The `AgentStore`
159
+ * is now a thin compiled-agent cache; this field holds the resolved system
160
+ * prompt populated from compiler/registry output, not a user-supplied blob.
161
+ */
162
+ systemPrompt: z.optional(z.string()),
87
163
  // Full standard MCP server configs embedded in the agent definition.
88
164
  // Keys are server names; values are standard McpServerConfig objects.
89
165
  mcpServers: z.record(z.string(), mcpServerConfigSchema).default({}),
@@ -98,27 +174,66 @@ export const agentDefinitionSchema = z.object({
98
174
  createdAt: z.string().datetime(),
99
175
  updatedAt: z.string().datetime(),
100
176
  });
177
+ // Stored-row variant of the agent definition — applies the legacy provider shim on
178
+ // read (via providerConfigStoredSchema). Used by agent-store / session-store when
179
+ // parsing persisted rows; NEVER fed to z.toJSONSchema. New-shape writes validate
180
+ // against agentDefinitionSchema (and the transform-free agentCreateInputSchema).
181
+ export const agentDefinitionStoredSchema = agentDefinitionSchema.extend({
182
+ provider: providerConfigStoredSchema,
183
+ });
101
184
  // --- Tool input/output schemas ---
102
- export const agentCreateInputSchema = agentDefinitionSchema.omit({
185
+ // ── Env-name guard (INPUT-only, §6 / DEBT-014) ────────────────────────────────
186
+ // Stops a caller from pointing an agent at an arbitrary host secret at create/update
187
+ // time. Applied via .superRefine on the input schemas ONLY (refinements are
188
+ // representable in JSON Schema, unlike transforms). Never on the read path.
189
+ //
190
+ // `providerPath` is the path from the superRefine root to the `provider` key so
191
+ // that ctx.addIssue reports the correct field location. For agentCreateInputSchema
192
+ // (root IS the agent) it is ["provider"]; for agentUpdateInputSchema (root is
193
+ // { name, patch }) it must be ["patch", "provider"].
194
+ function envNameGuard(provider, ctx, providerPath = ["provider"]) {
195
+ // `env` exists only on the openai/anthropic members of the union (not claudecli).
196
+ if (!provider || !("env" in provider) || !provider.env)
197
+ return;
198
+ for (const [field, name] of Object.entries(provider.env)) {
199
+ if (!name)
200
+ continue;
201
+ if (!config.isEnvNameAllowed(name)) {
202
+ ctx.addIssue({
203
+ code: z.ZodIssueCode.custom,
204
+ path: [...providerPath, "env", field],
205
+ message: `env.${field}: "${name}" is not an allowed env-var name. ` +
206
+ `Only ADHD_AGENT_-prefixed names are permitted by default ` +
207
+ `(add to ADHD_AGENT_ENV_ALLOWLIST to opt in).`,
208
+ });
209
+ }
210
+ }
211
+ }
212
+ export const agentCreateInputSchema = agentDefinitionSchema
213
+ .omit({
103
214
  version: true,
104
215
  createdAt: true,
105
216
  updatedAt: true,
106
- });
217
+ })
218
+ .superRefine((val, ctx) => envNameGuard(val.provider, ctx, ["provider"]));
107
219
  // Patch schema for agent_update — intentionally no .default() on any field
108
220
  // so that absent fields stay undefined and don't overwrite stored values.
109
221
  const agentPatchSchema = z.object({
110
222
  description: z.string().optional(),
111
223
  provider: providerConfigSchema.optional(),
112
- systemPrompt: z.string().optional(),
224
+ // COMPUTED COMPAT SHIM — populated from compiler output, not user-authored.
225
+ systemPrompt: z.optional(z.string()),
113
226
  mcpServers: z.record(z.string(), mcpServerConfigSchema).optional(),
114
227
  permissions: agentPermissionsSchema.optional(),
115
228
  maxToolLoops: z.number().int().positive().optional(),
116
229
  allowHumanInput: z.boolean().optional(),
117
230
  });
118
- export const agentUpdateInputSchema = z.object({
231
+ export const agentUpdateInputSchema = z
232
+ .object({
119
233
  name: z.string().min(1),
120
234
  patch: agentPatchSchema,
121
- });
235
+ })
236
+ .superRefine((val, ctx) => envNameGuard(val.patch.provider, ctx, ["patch", "provider"]));
122
237
  export const agentReadInputSchema = z.object({
123
238
  name: z.string().min(1),
124
239
  });
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CACzC,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,0FAA0F;IAC1F,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,0EAA0E;AAC1E,oEAAoE;AACpE,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,EAAE;KACR,GAAG,EAAE;KACL,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACvC,OAAO,EAAE,6EAA6E;CACvF,CAAC;KACD,QAAQ,EAAE,CAAC;AAEd,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,8GAA8G;IAC9G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,2EAA2E;IAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD;;;;;OAKG;IACH,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,uBAAuB;IACvB,oBAAoB;IACpB,sBAAsB;IACtB,uBAAuB;CACxB,CAAC,CAAC;AAIH,oBAAoB;AACpB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,yDAAyD;IACzD,4CAA4C;IAC5C,mDAAmD;IACnD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAIH,iCAAiC;AACjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,oBAAoB;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,qEAAqE;IACrE,sEAAsE;IACtE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,WAAW,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD;;;;OAIG;IACH,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH,oCAAoC;AAEpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,IAAI,CAAC;IAC/D,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,2EAA2E;AAC3E,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IAClE,WAAW,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,gBAAgB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB;;;;;OAKG;IACH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/agent.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare const errorCodeSchema: z.ZodEnum<{
19
19
  MCP_CLIENT_ERROR: "MCP_CLIENT_ERROR";
20
20
  VALIDATION_ERROR: "VALIDATION_ERROR";
21
21
  BUDGET_EXCEEDED: "BUDGET_EXCEEDED";
22
+ COMPOSED_PROMPT_NOT_FOUND: "COMPOSED_PROMPT_NOT_FOUND";
22
23
  }>;
23
24
  import type { AgentMcpErrorCode } from "@adhd/agent-mcp-types";
24
25
  export type { AgentMcpErrorCode };
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;EAiC1B,CAAC;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAE1C,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEZ,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAMrE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EAoC1B,CAAC;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAE1C,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEZ,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAMrE"}
@@ -26,6 +26,8 @@ export const errorCodeSchema = z.enum([
26
26
  "VALIDATION_ERROR",
27
27
  // Budget enforcement
28
28
  "BUDGET_EXCEEDED",
29
+ // Composed-prompt cache
30
+ "COMPOSED_PROMPT_NOT_FOUND",
29
31
  ]);
30
32
  export class ToolError extends Error {
31
33
  code;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,aAAa;IACb,sBAAsB;IACtB,iBAAiB;IACjB,2BAA2B;IAE3B,UAAU;IACV,mBAAmB;IACnB,gBAAgB;IAEhB,OAAO;IACP,gBAAgB;IAChB,sBAAsB;IACtB,oBAAoB;IAEpB,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;IAEzB,UAAU;IACV,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,uBAAuB;IACvB,yBAAyB;IACzB,kBAAkB;IAElB,aAAa;IACb,kBAAkB;IAElB,qBAAqB;IACrB,iBAAiB;CAClB,CAAC,CAAC;AAMH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAoB;IACxB,IAAI,CAAW;IAExB,YAAY,IAAuB,EAAE,OAAe,EAAE,IAAc;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,aAAa;IACb,sBAAsB;IACtB,iBAAiB;IACjB,2BAA2B;IAE3B,UAAU;IACV,mBAAmB;IACnB,gBAAgB;IAEhB,OAAO;IACP,gBAAgB;IAChB,sBAAsB;IACtB,oBAAoB;IAEpB,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;IAEzB,UAAU;IACV,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,uBAAuB;IACvB,yBAAyB;IACzB,kBAAkB;IAElB,aAAa;IACb,kBAAkB;IAElB,qBAAqB;IACrB,iBAAiB;IAEjB,wBAAwB;IACxB,2BAA2B;CAC5B,CAAC,CAAC;AAMH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAoB;IACxB,IAAI,CAAW;IAExB,YAAY,IAAuB,EAAE,OAAe,EAAE,IAAc;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -9,10 +9,12 @@ export declare const executionContextSchema: z.ZodObject<{
9
9
  version: z.ZodNumber;
10
10
  provider: z.ZodDiscriminatedUnion<[z.ZodObject<{
11
11
  type: z.ZodLiteral<"anthropic">;
12
- model: z.ZodString;
13
- apiKeyEnv: z.ZodOptional<z.ZodString>;
14
- authTokenEnv: z.ZodOptional<z.ZodString>;
15
- useClaudeOauth: z.ZodOptional<z.ZodBoolean>;
12
+ model: z.ZodOptional<z.ZodString>;
13
+ env: z.ZodOptional<z.ZodObject<{
14
+ secret: z.ZodOptional<z.ZodString>;
15
+ base_url: z.ZodOptional<z.ZodString>;
16
+ model: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$strip>>;
16
18
  temperature: z.ZodOptional<z.ZodNumber>;
17
19
  maxTokens: z.ZodOptional<z.ZodNumber>;
18
20
  timeoutMs: z.ZodOptional<z.ZodNumber>;
@@ -24,22 +26,12 @@ export declare const executionContextSchema: z.ZodObject<{
24
26
  }, z.core.$strip>>;
25
27
  }, z.core.$strip>, z.ZodObject<{
26
28
  type: z.ZodLiteral<"openai">;
27
- model: z.ZodString;
28
- apiKeyEnv: z.ZodOptional<z.ZodString>;
29
- baseURL: z.ZodOptional<z.ZodString>;
30
- temperature: z.ZodOptional<z.ZodNumber>;
31
- maxTokens: z.ZodOptional<z.ZodNumber>;
32
- timeoutMs: z.ZodOptional<z.ZodNumber>;
33
- retryConfig: z.ZodOptional<z.ZodObject<{
34
- retries: z.ZodDefault<z.ZodNumber>;
35
- minTimeout: z.ZodDefault<z.ZodNumber>;
36
- maxTimeout: z.ZodDefault<z.ZodNumber>;
37
- factor: z.ZodDefault<z.ZodNumber>;
29
+ model: z.ZodOptional<z.ZodString>;
30
+ env: z.ZodOptional<z.ZodObject<{
31
+ secret: z.ZodOptional<z.ZodString>;
32
+ base_url: z.ZodOptional<z.ZodString>;
33
+ model: z.ZodOptional<z.ZodString>;
38
34
  }, z.core.$strip>>;
39
- }, z.core.$strip>, z.ZodObject<{
40
- type: z.ZodLiteral<"lmstudio">;
41
- model: z.ZodString;
42
- apiKeyEnv: z.ZodOptional<z.ZodString>;
43
35
  baseURL: z.ZodOptional<z.ZodString>;
44
36
  temperature: z.ZodOptional<z.ZodNumber>;
45
37
  maxTokens: z.ZodOptional<z.ZodNumber>;
@@ -56,8 +48,9 @@ export declare const executionContextSchema: z.ZodObject<{
56
48
  claudePath: z.ZodOptional<z.ZodString>;
57
49
  timeoutMs: z.ZodOptional<z.ZodNumber>;
58
50
  allowedBuiltinTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
51
+ systemPromptIsAgentSpec: z.ZodOptional<z.ZodBoolean>;
59
52
  }, z.core.$strip>], "type">;
60
- systemPrompt: z.ZodString;
53
+ systemPrompt: z.ZodOptional<z.ZodString>;
61
54
  mcpServers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
62
55
  transport: z.ZodLiteral<"stdio">;
63
56
  command: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BjC,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BjC,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { ProviderConfig } from "../validation/index.js";
2
- import { OpenAIProvider } from "./openai.js";
3
- export declare class LMStudioProvider extends OpenAIProvider {
4
- constructor(config: Extract<ProviderConfig, {
5
- type: "lmstudio";
6
- }>);
7
- }
8
- //# sourceMappingURL=lmstudio.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lmstudio.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/lmstudio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,gBAAiB,SAAQ,cAAc;gBACpC,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;CAWpE"}
@@ -1,15 +0,0 @@
1
- import { OpenAIProvider } from "./openai.js";
2
- export class LMStudioProvider extends OpenAIProvider {
3
- constructor(config) {
4
- // LM Studio speaks the OpenAI API — reuse OpenAIProvider with a cast.
5
- // The local server doesn't require an API key, so we default to a
6
- // placeholder value to avoid OpenAI SDK complaints.
7
- super({
8
- ...config,
9
- type: "openai",
10
- baseURL: config.baseURL ?? process.env["LMSTUDIO_BASE_URL"] ?? "http://localhost:1234/v1",
11
- apiKeyEnv: config.apiKeyEnv ?? "LMSTUDIO_API_KEY",
12
- });
13
- }
14
- }
15
- //# sourceMappingURL=lmstudio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lmstudio.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/lmstudio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAChD,YAAY,MAAqD;QAC7D,sEAAsE;QACtE,kEAAkE;QAClE,oDAAoD;QACpD,KAAK,CAAC;YACF,GAAG,MAAM;YACT,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,0BAA0B;YACzF,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,kBAAkB;SACpD,CAAC,CAAC;IACP,CAAC;CACJ"}