@adhd/agent-mcp 1.1.3 → 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.
- package/drizzle/0006_composed_prompts_cache.sql +24 -0
- package/drizzle/meta/0006_snapshot.json +651 -0
- package/drizzle/meta/_journal.json +8 -1
- package/package.json +5 -1
- package/src/__tests__/integration/harness.d.ts.map +1 -1
- package/src/__tests__/integration/harness.js +10 -8
- package/src/__tests__/integration/harness.js.map +1 -1
- package/src/clients/stdio-client.d.ts.map +1 -1
- package/src/clients/stdio-client.js +2 -1
- package/src/clients/stdio-client.js.map +1 -1
- package/src/config.d.ts +114 -0
- package/src/config.d.ts.map +1 -0
- package/src/config.js +287 -0
- package/src/config.js.map +1 -0
- package/src/db/client.d.ts.map +1 -1
- package/src/db/client.js +2 -3
- package/src/db/client.js.map +1 -1
- package/src/db/schema.d.ts +242 -0
- package/src/db/schema.d.ts.map +1 -1
- package/src/db/schema.js +38 -1
- package/src/db/schema.js.map +1 -1
- package/src/engine/hooks.d.ts +21 -6
- package/src/engine/hooks.d.ts.map +1 -1
- package/src/engine/hooks.js +47 -6
- package/src/engine/hooks.js.map +1 -1
- package/src/engine/orchestrator.d.ts.map +1 -1
- package/src/engine/orchestrator.js +3 -2
- package/src/engine/orchestrator.js.map +1 -1
- package/src/engine/policy.d.ts +24 -0
- package/src/engine/policy.d.ts.map +1 -1
- package/src/engine/policy.js +73 -6
- package/src/engine/policy.js.map +1 -1
- package/src/engine/prompt-resolver.d.ts +89 -0
- package/src/engine/prompt-resolver.d.ts.map +1 -0
- package/src/engine/prompt-resolver.js +96 -0
- package/src/engine/prompt-resolver.js.map +1 -0
- package/src/engine/queue.d.ts.map +1 -1
- package/src/engine/queue.js +2 -2
- package/src/engine/queue.js.map +1 -1
- package/src/index.d.ts +31 -3
- package/src/index.d.ts.map +1 -1
- package/src/index.js +131 -20
- package/src/index.js.map +1 -1
- package/src/logger.d.ts.map +1 -1
- package/src/logger.js +2 -1
- package/src/logger.js.map +1 -1
- package/src/plugins/loader.d.ts +19 -6
- package/src/plugins/loader.d.ts.map +1 -1
- package/src/plugins/loader.js +23 -13
- package/src/plugins/loader.js.map +1 -1
- package/src/providers/anthropic.d.ts +5 -5
- package/src/providers/anthropic.d.ts.map +1 -1
- package/src/providers/anthropic.js +53 -188
- package/src/providers/anthropic.js.map +1 -1
- package/src/providers/claudecli.d.ts +92 -5
- package/src/providers/claudecli.d.ts.map +1 -1
- package/src/providers/claudecli.js +224 -47
- package/src/providers/claudecli.js.map +1 -1
- package/src/providers/factory.d.ts +1 -1
- package/src/providers/factory.d.ts.map +1 -1
- package/src/providers/factory.js +6 -9
- package/src/providers/factory.js.map +1 -1
- package/src/providers/index.d.ts +1 -1
- package/src/providers/index.d.ts.map +1 -1
- package/src/providers/index.js +1 -1
- package/src/providers/index.js.map +1 -1
- package/src/providers/openai.d.ts +4 -2
- package/src/providers/openai.d.ts.map +1 -1
- package/src/providers/openai.js +29 -18
- package/src/providers/openai.js.map +1 -1
- package/src/providers/types.d.ts +1 -1
- package/src/server.d.ts +8 -0
- package/src/server.d.ts.map +1 -1
- package/src/server.js +19 -12
- package/src/server.js.map +1 -1
- package/src/store/agent-store.d.ts +13 -0
- package/src/store/agent-store.d.ts.map +1 -1
- package/src/store/agent-store.js +16 -3
- package/src/store/agent-store.js.map +1 -1
- package/src/store/composed-prompt-store.d.ts +24 -0
- package/src/store/composed-prompt-store.d.ts.map +1 -0
- package/src/store/composed-prompt-store.js +75 -0
- package/src/store/composed-prompt-store.js.map +1 -0
- package/src/store/index.d.ts +1 -0
- package/src/store/index.d.ts.map +1 -1
- package/src/store/index.js +1 -0
- package/src/store/index.js.map +1 -1
- package/src/store/session-store.d.ts +8 -0
- package/src/store/session-store.d.ts.map +1 -1
- package/src/store/session-store.js +3 -2
- package/src/store/session-store.js.map +1 -1
- package/src/streaming/sse-server.d.ts +2 -2
- package/src/streaming/sse-server.d.ts.map +1 -1
- package/src/streaming/sse-server.js +4 -4
- package/src/streaming/sse-server.js.map +1 -1
- package/src/tools/session.d.ts +12 -0
- package/src/tools/session.d.ts.map +1 -1
- package/src/tools/session.js +33 -1
- package/src/tools/session.js.map +1 -1
- package/src/tools/task.d.ts.map +1 -1
- package/src/tools/task.js +2 -2
- package/src/tools/task.js.map +1 -1
- package/src/tools/usage.d.ts.map +1 -1
- package/src/tools/usage.js +10 -3
- package/src/tools/usage.js.map +1 -1
- package/src/utils/load-env.d.ts +16 -0
- package/src/utils/load-env.d.ts.map +1 -0
- package/src/utils/load-env.js +27 -0
- package/src/utils/load-env.js.map +1 -0
- package/src/validation/agent.d.ts +150 -62
- package/src/validation/agent.d.ts.map +1 -1
- package/src/validation/agent.js +152 -37
- package/src/validation/agent.js.map +1 -1
- package/src/validation/errors.d.ts +1 -0
- package/src/validation/errors.d.ts.map +1 -1
- package/src/validation/errors.js +2 -0
- package/src/validation/errors.js.map +1 -1
- package/src/validation/execution.d.ts +13 -20
- package/src/validation/execution.d.ts.map +1 -1
- package/src/providers/lmstudio.d.ts +0 -8
- package/src/providers/lmstudio.d.ts.map +0 -1
- package/src/providers/lmstudio.js +0 -15
- package/src/providers/lmstudio.js.map +0 -1
|
@@ -7,10 +7,12 @@ export declare const retryConfigSchema: z.ZodObject<{
|
|
|
7
7
|
}, z.core.$strip>;
|
|
8
8
|
export declare const providerConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
9
9
|
type: z.ZodLiteral<"anthropic">;
|
|
10
|
-
model: z.ZodString
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
model: z.ZodOptional<z.ZodString>;
|
|
11
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
12
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
13
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
14
|
+
model: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, z.core.$strip>>;
|
|
14
16
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
15
17
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
16
18
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
@@ -22,8 +24,12 @@ export declare const providerConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
22
24
|
}, z.core.$strip>>;
|
|
23
25
|
}, z.core.$strip>, z.ZodObject<{
|
|
24
26
|
type: z.ZodLiteral<"openai">;
|
|
25
|
-
model: z.ZodString
|
|
26
|
-
|
|
27
|
+
model: z.ZodOptional<z.ZodString>;
|
|
28
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
29
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
30
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
31
|
+
model: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strip>>;
|
|
27
33
|
baseURL: z.ZodOptional<z.ZodString>;
|
|
28
34
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
29
35
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -35,9 +41,38 @@ export declare const providerConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
35
41
|
factor: z.ZodDefault<z.ZodNumber>;
|
|
36
42
|
}, z.core.$strip>>;
|
|
37
43
|
}, z.core.$strip>, z.ZodObject<{
|
|
38
|
-
type: z.ZodLiteral<"
|
|
39
|
-
model: z.ZodString
|
|
40
|
-
|
|
44
|
+
type: z.ZodLiteral<"claudecli">;
|
|
45
|
+
model: z.ZodOptional<z.ZodString>;
|
|
46
|
+
claudePath: z.ZodOptional<z.ZodString>;
|
|
47
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
allowedBuiltinTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
49
|
+
systemPromptIsAgentSpec: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
+
}, z.core.$strip>], "type">;
|
|
51
|
+
export declare const providerConfigStoredSchema: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
52
|
+
type: z.ZodLiteral<"anthropic">;
|
|
53
|
+
model: z.ZodOptional<z.ZodString>;
|
|
54
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
55
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
56
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
57
|
+
model: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, z.core.$strip>>;
|
|
59
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
61
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
retryConfig: z.ZodOptional<z.ZodObject<{
|
|
63
|
+
retries: z.ZodDefault<z.ZodNumber>;
|
|
64
|
+
minTimeout: z.ZodDefault<z.ZodNumber>;
|
|
65
|
+
maxTimeout: z.ZodDefault<z.ZodNumber>;
|
|
66
|
+
factor: z.ZodDefault<z.ZodNumber>;
|
|
67
|
+
}, z.core.$strip>>;
|
|
68
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
69
|
+
type: z.ZodLiteral<"openai">;
|
|
70
|
+
model: z.ZodOptional<z.ZodString>;
|
|
71
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
72
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
73
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
74
|
+
model: z.ZodOptional<z.ZodString>;
|
|
75
|
+
}, z.core.$strip>>;
|
|
41
76
|
baseURL: z.ZodOptional<z.ZodString>;
|
|
42
77
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
43
78
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -54,7 +89,8 @@ export declare const providerConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
54
89
|
claudePath: z.ZodOptional<z.ZodString>;
|
|
55
90
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
56
91
|
allowedBuiltinTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
57
|
-
|
|
92
|
+
systemPromptIsAgentSpec: z.ZodOptional<z.ZodBoolean>;
|
|
93
|
+
}, z.core.$strip>], "type">>;
|
|
58
94
|
export type { ProviderConfig } from "@adhd/agent-mcp-types";
|
|
59
95
|
export declare const agentPermissionsSchema: z.ZodObject<{
|
|
60
96
|
allowedAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -66,10 +102,12 @@ export declare const agentDefinitionSchema: z.ZodObject<{
|
|
|
66
102
|
version: z.ZodNumber;
|
|
67
103
|
provider: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
68
104
|
type: z.ZodLiteral<"anthropic">;
|
|
69
|
-
model: z.ZodString
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
105
|
+
model: z.ZodOptional<z.ZodString>;
|
|
106
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
107
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
108
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
109
|
+
model: z.ZodOptional<z.ZodString>;
|
|
110
|
+
}, z.core.$strip>>;
|
|
73
111
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
74
112
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
75
113
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
@@ -81,22 +119,12 @@ export declare const agentDefinitionSchema: z.ZodObject<{
|
|
|
81
119
|
}, z.core.$strip>>;
|
|
82
120
|
}, z.core.$strip>, z.ZodObject<{
|
|
83
121
|
type: z.ZodLiteral<"openai">;
|
|
84
|
-
model: z.ZodString
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
90
|
-
retryConfig: z.ZodOptional<z.ZodObject<{
|
|
91
|
-
retries: z.ZodDefault<z.ZodNumber>;
|
|
92
|
-
minTimeout: z.ZodDefault<z.ZodNumber>;
|
|
93
|
-
maxTimeout: z.ZodDefault<z.ZodNumber>;
|
|
94
|
-
factor: z.ZodDefault<z.ZodNumber>;
|
|
122
|
+
model: z.ZodOptional<z.ZodString>;
|
|
123
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
124
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
125
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
126
|
+
model: z.ZodOptional<z.ZodString>;
|
|
95
127
|
}, z.core.$strip>>;
|
|
96
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
97
|
-
type: z.ZodLiteral<"lmstudio">;
|
|
98
|
-
model: z.ZodString;
|
|
99
|
-
apiKeyEnv: z.ZodOptional<z.ZodString>;
|
|
100
128
|
baseURL: z.ZodOptional<z.ZodString>;
|
|
101
129
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
102
130
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -113,8 +141,9 @@ export declare const agentDefinitionSchema: z.ZodObject<{
|
|
|
113
141
|
claudePath: z.ZodOptional<z.ZodString>;
|
|
114
142
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
115
143
|
allowedBuiltinTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
144
|
+
systemPromptIsAgentSpec: z.ZodOptional<z.ZodBoolean>;
|
|
116
145
|
}, z.core.$strip>], "type">;
|
|
117
|
-
systemPrompt: z.ZodString
|
|
146
|
+
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
118
147
|
mcpServers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
119
148
|
transport: z.ZodLiteral<"stdio">;
|
|
120
149
|
command: z.ZodString;
|
|
@@ -141,15 +170,43 @@ export declare const agentDefinitionSchema: z.ZodObject<{
|
|
|
141
170
|
updatedAt: z.ZodString;
|
|
142
171
|
}, z.core.$strip>;
|
|
143
172
|
export type { AgentDefinition } from "@adhd/agent-mcp-types";
|
|
144
|
-
export declare const
|
|
173
|
+
export declare const agentDefinitionStoredSchema: z.ZodObject<{
|
|
145
174
|
name: z.ZodString;
|
|
146
175
|
description: z.ZodOptional<z.ZodString>;
|
|
147
|
-
|
|
176
|
+
version: z.ZodNumber;
|
|
177
|
+
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
178
|
+
mcpServers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
179
|
+
transport: z.ZodLiteral<"stdio">;
|
|
180
|
+
command: z.ZodString;
|
|
181
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
182
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
183
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
184
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
185
|
+
transport: z.ZodLiteral<"http">;
|
|
186
|
+
url: z.ZodString;
|
|
187
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
188
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
189
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
190
|
+
transport: z.ZodLiteral<"sse">;
|
|
191
|
+
url: z.ZodString;
|
|
192
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
193
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
194
|
+
}, z.core.$strip>], "transport">>>;
|
|
195
|
+
permissions: z.ZodDefault<z.ZodObject<{
|
|
196
|
+
allowedAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
197
|
+
}, z.core.$strip>>;
|
|
198
|
+
maxToolLoops: z.ZodOptional<z.ZodNumber>;
|
|
199
|
+
allowHumanInput: z.ZodOptional<z.ZodBoolean>;
|
|
200
|
+
createdAt: z.ZodString;
|
|
201
|
+
updatedAt: z.ZodString;
|
|
202
|
+
provider: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
148
203
|
type: z.ZodLiteral<"anthropic">;
|
|
149
|
-
model: z.ZodString
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
204
|
+
model: z.ZodOptional<z.ZodString>;
|
|
205
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
206
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
207
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
208
|
+
model: z.ZodOptional<z.ZodString>;
|
|
209
|
+
}, z.core.$strip>>;
|
|
153
210
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
154
211
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
155
212
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
@@ -161,8 +218,12 @@ export declare const agentCreateInputSchema: z.ZodObject<{
|
|
|
161
218
|
}, z.core.$strip>>;
|
|
162
219
|
}, z.core.$strip>, z.ZodObject<{
|
|
163
220
|
type: z.ZodLiteral<"openai">;
|
|
164
|
-
model: z.ZodString
|
|
165
|
-
|
|
221
|
+
model: z.ZodOptional<z.ZodString>;
|
|
222
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
223
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
224
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
225
|
+
model: z.ZodOptional<z.ZodString>;
|
|
226
|
+
}, z.core.$strip>>;
|
|
166
227
|
baseURL: z.ZodOptional<z.ZodString>;
|
|
167
228
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
168
229
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -174,9 +235,43 @@ export declare const agentCreateInputSchema: z.ZodObject<{
|
|
|
174
235
|
factor: z.ZodDefault<z.ZodNumber>;
|
|
175
236
|
}, z.core.$strip>>;
|
|
176
237
|
}, z.core.$strip>, z.ZodObject<{
|
|
177
|
-
type: z.ZodLiteral<"
|
|
178
|
-
model: z.ZodString
|
|
179
|
-
|
|
238
|
+
type: z.ZodLiteral<"claudecli">;
|
|
239
|
+
model: z.ZodOptional<z.ZodString>;
|
|
240
|
+
claudePath: z.ZodOptional<z.ZodString>;
|
|
241
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
242
|
+
allowedBuiltinTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
243
|
+
systemPromptIsAgentSpec: z.ZodOptional<z.ZodBoolean>;
|
|
244
|
+
}, z.core.$strip>], "type">>;
|
|
245
|
+
}, z.core.$strip>;
|
|
246
|
+
export declare const agentCreateInputSchema: z.ZodObject<{
|
|
247
|
+
maxToolLoops: z.ZodOptional<z.ZodNumber>;
|
|
248
|
+
name: z.ZodString;
|
|
249
|
+
description: z.ZodOptional<z.ZodString>;
|
|
250
|
+
provider: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
251
|
+
type: z.ZodLiteral<"anthropic">;
|
|
252
|
+
model: z.ZodOptional<z.ZodString>;
|
|
253
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
254
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
255
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
256
|
+
model: z.ZodOptional<z.ZodString>;
|
|
257
|
+
}, z.core.$strip>>;
|
|
258
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
259
|
+
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
260
|
+
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
261
|
+
retryConfig: z.ZodOptional<z.ZodObject<{
|
|
262
|
+
retries: z.ZodDefault<z.ZodNumber>;
|
|
263
|
+
minTimeout: z.ZodDefault<z.ZodNumber>;
|
|
264
|
+
maxTimeout: z.ZodDefault<z.ZodNumber>;
|
|
265
|
+
factor: z.ZodDefault<z.ZodNumber>;
|
|
266
|
+
}, z.core.$strip>>;
|
|
267
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
268
|
+
type: z.ZodLiteral<"openai">;
|
|
269
|
+
model: z.ZodOptional<z.ZodString>;
|
|
270
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
271
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
272
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
273
|
+
model: z.ZodOptional<z.ZodString>;
|
|
274
|
+
}, z.core.$strip>>;
|
|
180
275
|
baseURL: z.ZodOptional<z.ZodString>;
|
|
181
276
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
182
277
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -193,8 +288,9 @@ export declare const agentCreateInputSchema: z.ZodObject<{
|
|
|
193
288
|
claudePath: z.ZodOptional<z.ZodString>;
|
|
194
289
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
195
290
|
allowedBuiltinTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
291
|
+
systemPromptIsAgentSpec: z.ZodOptional<z.ZodBoolean>;
|
|
196
292
|
}, z.core.$strip>], "type">;
|
|
197
|
-
systemPrompt: z.ZodString
|
|
293
|
+
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
198
294
|
mcpServers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
199
295
|
transport: z.ZodLiteral<"stdio">;
|
|
200
296
|
command: z.ZodString;
|
|
@@ -215,7 +311,6 @@ export declare const agentCreateInputSchema: z.ZodObject<{
|
|
|
215
311
|
permissions: z.ZodDefault<z.ZodObject<{
|
|
216
312
|
allowedAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
217
313
|
}, z.core.$strip>>;
|
|
218
|
-
maxToolLoops: z.ZodOptional<z.ZodNumber>;
|
|
219
314
|
allowHumanInput: z.ZodOptional<z.ZodBoolean>;
|
|
220
315
|
}, z.core.$strip>;
|
|
221
316
|
export declare const agentUpdateInputSchema: z.ZodObject<{
|
|
@@ -224,10 +319,12 @@ export declare const agentUpdateInputSchema: z.ZodObject<{
|
|
|
224
319
|
description: z.ZodOptional<z.ZodString>;
|
|
225
320
|
provider: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
226
321
|
type: z.ZodLiteral<"anthropic">;
|
|
227
|
-
model: z.ZodString
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
322
|
+
model: z.ZodOptional<z.ZodString>;
|
|
323
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
324
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
325
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
326
|
+
model: z.ZodOptional<z.ZodString>;
|
|
327
|
+
}, z.core.$strip>>;
|
|
231
328
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
232
329
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
233
330
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
@@ -239,22 +336,12 @@ export declare const agentUpdateInputSchema: z.ZodObject<{
|
|
|
239
336
|
}, z.core.$strip>>;
|
|
240
337
|
}, z.core.$strip>, z.ZodObject<{
|
|
241
338
|
type: z.ZodLiteral<"openai">;
|
|
242
|
-
model: z.ZodString
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
248
|
-
retryConfig: z.ZodOptional<z.ZodObject<{
|
|
249
|
-
retries: z.ZodDefault<z.ZodNumber>;
|
|
250
|
-
minTimeout: z.ZodDefault<z.ZodNumber>;
|
|
251
|
-
maxTimeout: z.ZodDefault<z.ZodNumber>;
|
|
252
|
-
factor: z.ZodDefault<z.ZodNumber>;
|
|
339
|
+
model: z.ZodOptional<z.ZodString>;
|
|
340
|
+
env: z.ZodOptional<z.ZodObject<{
|
|
341
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
342
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
343
|
+
model: z.ZodOptional<z.ZodString>;
|
|
253
344
|
}, z.core.$strip>>;
|
|
254
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
255
|
-
type: z.ZodLiteral<"lmstudio">;
|
|
256
|
-
model: z.ZodString;
|
|
257
|
-
apiKeyEnv: z.ZodOptional<z.ZodString>;
|
|
258
345
|
baseURL: z.ZodOptional<z.ZodString>;
|
|
259
346
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
260
347
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -271,6 +358,7 @@ export declare const agentUpdateInputSchema: z.ZodObject<{
|
|
|
271
358
|
claudePath: z.ZodOptional<z.ZodString>;
|
|
272
359
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
273
360
|
allowedBuiltinTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
361
|
+
systemPromptIsAgentSpec: z.ZodOptional<z.ZodBoolean>;
|
|
274
362
|
}, z.core.$strip>], "type">>;
|
|
275
363
|
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
276
364
|
mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -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;
|
|
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"}
|
package/src/validation/agent.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
*
|
|
62
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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;
|
|
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
|
|
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"}
|
package/src/validation/errors.js
CHANGED