@anastops/mcp-server 0.1.0 → 1.1.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/dist/formatters.d.ts.map +1 -1
- package/dist/formatters.js +12 -3
- package/dist/formatters.js.map +1 -1
- package/dist/handlers/agent-handlers.d.ts +8 -0
- package/dist/handlers/agent-handlers.d.ts.map +1 -0
- package/dist/handlers/agent-handlers.js +184 -0
- package/dist/handlers/agent-handlers.js.map +1 -0
- package/dist/handlers/artifact-handlers.d.ts +8 -0
- package/dist/handlers/artifact-handlers.d.ts.map +1 -0
- package/dist/handlers/artifact-handlers.js +122 -0
- package/dist/handlers/artifact-handlers.js.map +1 -0
- package/dist/handlers/cost-handlers.d.ts +8 -0
- package/dist/handlers/cost-handlers.d.ts.map +1 -0
- package/dist/handlers/cost-handlers.js +140 -0
- package/dist/handlers/cost-handlers.js.map +1 -0
- package/dist/handlers/handlers.agent.d.ts +10 -0
- package/dist/handlers/handlers.agent.d.ts.map +1 -0
- package/dist/handlers/handlers.agent.js +99 -0
- package/dist/handlers/handlers.agent.js.map +1 -0
- package/dist/handlers/handlers.base.d.ts +83 -0
- package/dist/handlers/handlers.base.d.ts.map +1 -0
- package/dist/handlers/handlers.base.js +351 -0
- package/dist/handlers/handlers.base.js.map +1 -0
- package/dist/handlers/handlers.lock.d.ts +8 -0
- package/dist/handlers/handlers.lock.d.ts.map +1 -0
- package/dist/handlers/handlers.lock.js +111 -0
- package/dist/handlers/handlers.lock.js.map +1 -0
- package/dist/handlers/handlers.memory.d.ts +11 -0
- package/dist/handlers/handlers.memory.d.ts.map +1 -0
- package/dist/handlers/handlers.memory.js +122 -0
- package/dist/handlers/handlers.memory.js.map +1 -0
- package/dist/handlers/handlers.monitoring.d.ts +8 -0
- package/dist/handlers/handlers.monitoring.d.ts.map +1 -0
- package/dist/handlers/handlers.monitoring.js +99 -0
- package/dist/handlers/handlers.monitoring.js.map +1 -0
- package/dist/handlers/handlers.orchestration.d.ts +9 -0
- package/dist/handlers/handlers.orchestration.d.ts.map +1 -0
- package/dist/handlers/handlers.orchestration.js +128 -0
- package/dist/handlers/handlers.orchestration.js.map +1 -0
- package/dist/handlers/handlers.session.d.ts +18 -0
- package/dist/handlers/handlers.session.d.ts.map +1 -0
- package/dist/handlers/handlers.session.js +286 -0
- package/dist/handlers/handlers.session.js.map +1 -0
- package/dist/handlers/handlers.task.d.ts +15 -0
- package/dist/handlers/handlers.task.d.ts.map +1 -0
- package/dist/handlers/handlers.task.js +762 -0
- package/dist/handlers/handlers.task.js.map +1 -0
- package/dist/handlers/handlers.utility.d.ts +10 -0
- package/dist/handlers/handlers.utility.d.ts.map +1 -0
- package/dist/handlers/handlers.utility.js +59 -0
- package/dist/handlers/handlers.utility.js.map +1 -0
- package/dist/handlers/index.d.ts +18 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +209 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/lock-handlers.d.ts +8 -0
- package/dist/handlers/lock-handlers.d.ts.map +1 -0
- package/dist/handlers/lock-handlers.js +154 -0
- package/dist/handlers/lock-handlers.js.map +1 -0
- package/dist/handlers/memory-handlers.d.ts +8 -0
- package/dist/handlers/memory-handlers.d.ts.map +1 -0
- package/dist/handlers/memory-handlers.js +76 -0
- package/dist/handlers/memory-handlers.js.map +1 -0
- package/dist/handlers/orchestration-handlers.d.ts +8 -0
- package/dist/handlers/orchestration-handlers.d.ts.map +1 -0
- package/dist/handlers/orchestration-handlers.js +113 -0
- package/dist/handlers/orchestration-handlers.js.map +1 -0
- package/dist/handlers/session-handlers.d.ts +8 -0
- package/dist/handlers/session-handlers.d.ts.map +1 -0
- package/dist/handlers/session-handlers.js +558 -0
- package/dist/handlers/session-handlers.js.map +1 -0
- package/dist/handlers/task-handlers.d.ts +8 -0
- package/dist/handlers/task-handlers.d.ts.map +1 -0
- package/dist/handlers/task-handlers.js +677 -0
- package/dist/handlers/task-handlers.js.map +1 -0
- package/dist/handlers/tool-definitions.d.ts +2626 -0
- package/dist/handlers/tool-definitions.d.ts.map +1 -0
- package/dist/handlers/tool-definitions.js +641 -0
- package/dist/handlers/tool-definitions.js.map +1 -0
- package/dist/handlers/types.d.ts +90 -0
- package/dist/handlers/types.d.ts.map +1 -0
- package/dist/handlers/types.js +5 -0
- package/dist/handlers/types.js.map +1 -0
- package/dist/handlers/utility-handlers.d.ts +8 -0
- package/dist/handlers/utility-handlers.d.ts.map +1 -0
- package/dist/handlers/utility-handlers.js +113 -0
- package/dist/handlers/utility-handlers.js.map +1 -0
- package/dist/handlers/utils.d.ts +30 -0
- package/dist/handlers/utils.d.ts.map +1 -0
- package/dist/handlers/utils.js +95 -0
- package/dist/handlers/utils.js.map +1 -0
- package/dist/handlers.d.ts +17 -2260
- package/dist/handlers.d.ts.map +1 -1
- package/dist/handlers.js +17 -1836
- package/dist/handlers.js.map +1 -1
- package/dist/index.js +41 -7
- package/dist/index.js.map +1 -1
- package/dist/persistence.d.ts +18 -1
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +159 -99
- package/dist/persistence.js.map +1 -1
- package/dist/schemas.d.ts +299 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +334 -0
- package/dist/schemas.js.map +1 -0
- package/package.json +11 -8
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod validation schemas for MCP tool inputs
|
|
3
|
+
*
|
|
4
|
+
* SECURITY: All user input must be validated before processing.
|
|
5
|
+
* These schemas enforce type safety and prevent injection attacks.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
export declare const sessionSpawnSchema: z.ZodObject<{
|
|
9
|
+
objective: z.ZodString;
|
|
10
|
+
context_files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
11
|
+
parent_session: z.ZodOptional<z.ZodString>;
|
|
12
|
+
concurrency: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
auto_execute: z.ZodOptional<z.ZodBoolean>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export declare const sessionStatusSchema: z.ZodObject<{
|
|
16
|
+
session_id: z.ZodString;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export declare const sessionListSchema: z.ZodObject<{
|
|
19
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
20
|
+
active: "active";
|
|
21
|
+
completed: "completed";
|
|
22
|
+
archived: "archived";
|
|
23
|
+
}>>;
|
|
24
|
+
include_forks: z.ZodOptional<z.ZodBoolean>;
|
|
25
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
table: "table";
|
|
28
|
+
json: "json";
|
|
29
|
+
}>>;
|
|
30
|
+
}, z.core.$strip>;
|
|
31
|
+
export declare const sessionForkSchema: z.ZodObject<{
|
|
32
|
+
session_id: z.ZodString;
|
|
33
|
+
fork_point: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export declare const sessionArchiveSchema: z.ZodObject<{
|
|
37
|
+
session_id: z.ZodString;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
export declare const sessionReportSchema: z.ZodObject<{
|
|
40
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
41
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
42
|
+
active: "active";
|
|
43
|
+
completed: "completed";
|
|
44
|
+
archived: "archived";
|
|
45
|
+
}>>;
|
|
46
|
+
include_output: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
include_artifacts: z.ZodOptional<z.ZodBoolean>;
|
|
48
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
export declare const sessionPurgeSchema: z.ZodObject<{
|
|
51
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
52
|
+
session_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
53
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
54
|
+
active: "active";
|
|
55
|
+
completed: "completed";
|
|
56
|
+
archived: "archived";
|
|
57
|
+
}>>;
|
|
58
|
+
older_than_days: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
confirm: z.ZodBoolean;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
export declare const sessionQueueConfigSchema: z.ZodObject<{
|
|
62
|
+
session_id: z.ZodString;
|
|
63
|
+
concurrency: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
auto_execute: z.ZodOptional<z.ZodBoolean>;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
export declare const queueStatusSchema: z.ZodObject<{
|
|
67
|
+
session_id: z.ZodString;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
export declare const agentCreateSchema: z.ZodObject<{
|
|
70
|
+
session_id: z.ZodString;
|
|
71
|
+
role: z.ZodEnum<{
|
|
72
|
+
orchestrator: "orchestrator";
|
|
73
|
+
planner: "planner";
|
|
74
|
+
implementer: "implementer";
|
|
75
|
+
reviewer: "reviewer";
|
|
76
|
+
tester: "tester";
|
|
77
|
+
debugger: "debugger";
|
|
78
|
+
documenter: "documenter";
|
|
79
|
+
specialist: "specialist";
|
|
80
|
+
}>;
|
|
81
|
+
name: z.ZodOptional<z.ZodString>;
|
|
82
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
83
|
+
model: z.ZodOptional<z.ZodString>;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
export declare const agentDeploySchema: z.ZodObject<{
|
|
86
|
+
agent_id: z.ZodString;
|
|
87
|
+
task_id: z.ZodString;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
export declare const agentStatusSchema: z.ZodObject<{
|
|
90
|
+
agent_id: z.ZodString;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
export declare const agentListSchema: z.ZodObject<{
|
|
93
|
+
session_id: z.ZodString;
|
|
94
|
+
status: z.ZodOptional<z.ZodString>;
|
|
95
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
96
|
+
table: "table";
|
|
97
|
+
json: "json";
|
|
98
|
+
}>>;
|
|
99
|
+
}, z.core.$strip>;
|
|
100
|
+
export declare const agentRetireSchema: z.ZodObject<{
|
|
101
|
+
agent_id: z.ZodString;
|
|
102
|
+
}, z.core.$strip>;
|
|
103
|
+
export declare const taskCreateSchema: z.ZodObject<{
|
|
104
|
+
session_id: z.ZodString;
|
|
105
|
+
type: z.ZodString;
|
|
106
|
+
description: z.ZodString;
|
|
107
|
+
prompt: z.ZodString;
|
|
108
|
+
context_files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
109
|
+
force_provider: z.ZodOptional<z.ZodString>;
|
|
110
|
+
force_tier: z.ZodOptional<z.ZodNumber>;
|
|
111
|
+
agent: z.ZodOptional<z.ZodString>;
|
|
112
|
+
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
113
|
+
}, z.core.$strip>;
|
|
114
|
+
export declare const taskBatchCreateSchema: z.ZodObject<{
|
|
115
|
+
session_id: z.ZodString;
|
|
116
|
+
tasks: z.ZodArray<z.ZodObject<{
|
|
117
|
+
type: z.ZodString;
|
|
118
|
+
description: z.ZodString;
|
|
119
|
+
prompt: z.ZodString;
|
|
120
|
+
context_files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
121
|
+
force_provider: z.ZodOptional<z.ZodString>;
|
|
122
|
+
force_tier: z.ZodOptional<z.ZodNumber>;
|
|
123
|
+
agent: z.ZodOptional<z.ZodString>;
|
|
124
|
+
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
125
|
+
}, z.core.$strip>>;
|
|
126
|
+
}, z.core.$strip>;
|
|
127
|
+
export declare const taskBatchExecuteSchema: z.ZodObject<{
|
|
128
|
+
task_ids: z.ZodArray<z.ZodString>;
|
|
129
|
+
parallel: z.ZodOptional<z.ZodBoolean>;
|
|
130
|
+
wait: z.ZodOptional<z.ZodBoolean>;
|
|
131
|
+
}, z.core.$strip>;
|
|
132
|
+
export declare const taskQueueSchema: z.ZodObject<{
|
|
133
|
+
task_id: z.ZodString;
|
|
134
|
+
}, z.core.$strip>;
|
|
135
|
+
export declare const taskStatusSchema: z.ZodObject<{
|
|
136
|
+
task_id: z.ZodString;
|
|
137
|
+
}, z.core.$strip>;
|
|
138
|
+
export declare const taskCompleteSchema: z.ZodObject<{
|
|
139
|
+
task_id: z.ZodString;
|
|
140
|
+
content: z.ZodString;
|
|
141
|
+
artifacts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
142
|
+
}, z.core.$strip>;
|
|
143
|
+
export declare const taskListSchema: z.ZodObject<{
|
|
144
|
+
session_id: z.ZodString;
|
|
145
|
+
status: z.ZodOptional<z.ZodString>;
|
|
146
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
147
|
+
table: "table";
|
|
148
|
+
json: "json";
|
|
149
|
+
}>>;
|
|
150
|
+
}, z.core.$strip>;
|
|
151
|
+
export declare const taskExecuteSchema: z.ZodObject<{
|
|
152
|
+
task_id: z.ZodString;
|
|
153
|
+
wait: z.ZodOptional<z.ZodBoolean>;
|
|
154
|
+
}, z.core.$strip>;
|
|
155
|
+
export declare const taskCancelSchema: z.ZodObject<{
|
|
156
|
+
task_id: z.ZodString;
|
|
157
|
+
}, z.core.$strip>;
|
|
158
|
+
export declare const taskRetrySchema: z.ZodObject<{
|
|
159
|
+
task_id: z.ZodString;
|
|
160
|
+
}, z.core.$strip>;
|
|
161
|
+
export declare const lockAcquireSchema: z.ZodObject<{
|
|
162
|
+
session_id: z.ZodString;
|
|
163
|
+
file_path: z.ZodString;
|
|
164
|
+
ttl: z.ZodOptional<z.ZodNumber>;
|
|
165
|
+
}, z.core.$strip>;
|
|
166
|
+
export declare const lockReleaseSchema: z.ZodObject<{
|
|
167
|
+
session_id: z.ZodString;
|
|
168
|
+
file_path: z.ZodString;
|
|
169
|
+
}, z.core.$strip>;
|
|
170
|
+
export declare const lockStatusSchema: z.ZodObject<{
|
|
171
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
172
|
+
file_path: z.ZodOptional<z.ZodString>;
|
|
173
|
+
}, z.core.$strip>;
|
|
174
|
+
export declare const sessionCostSchema: z.ZodObject<{
|
|
175
|
+
session_id: z.ZodString;
|
|
176
|
+
}, z.core.$strip>;
|
|
177
|
+
export declare const sessionMetricsSchema: z.ZodObject<{
|
|
178
|
+
session_id: z.ZodString;
|
|
179
|
+
}, z.core.$strip>;
|
|
180
|
+
export declare const sessionThrottleSchema: z.ZodObject<{
|
|
181
|
+
session_id: z.ZodString;
|
|
182
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
183
|
+
}, z.core.$strip>;
|
|
184
|
+
export declare const memoryStoreSchema: z.ZodObject<{
|
|
185
|
+
key: z.ZodString;
|
|
186
|
+
value: z.ZodUnknown;
|
|
187
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
188
|
+
}, z.core.$strip>;
|
|
189
|
+
export declare const memoryRetrieveSchema: z.ZodObject<{
|
|
190
|
+
key: z.ZodString;
|
|
191
|
+
}, z.core.$strip>;
|
|
192
|
+
export declare const artifactSaveSchema: z.ZodObject<{
|
|
193
|
+
session_id: z.ZodString;
|
|
194
|
+
type: z.ZodEnum<{
|
|
195
|
+
code: "code";
|
|
196
|
+
document: "document";
|
|
197
|
+
data: "data";
|
|
198
|
+
config: "config";
|
|
199
|
+
test: "test";
|
|
200
|
+
other: "other";
|
|
201
|
+
}>;
|
|
202
|
+
name: z.ZodString;
|
|
203
|
+
content: z.ZodString;
|
|
204
|
+
}, z.core.$strip>;
|
|
205
|
+
export declare const artifactGetSchema: z.ZodObject<{
|
|
206
|
+
artifact_id: z.ZodString;
|
|
207
|
+
}, z.core.$strip>;
|
|
208
|
+
export declare const artifactListSchema: z.ZodObject<{
|
|
209
|
+
session_id: z.ZodString;
|
|
210
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
211
|
+
code: "code";
|
|
212
|
+
document: "document";
|
|
213
|
+
data: "data";
|
|
214
|
+
config: "config";
|
|
215
|
+
test: "test";
|
|
216
|
+
other: "other";
|
|
217
|
+
}>>;
|
|
218
|
+
}, z.core.$strip>;
|
|
219
|
+
export declare const contextOptimizeSchema: z.ZodObject<{
|
|
220
|
+
session_id: z.ZodString;
|
|
221
|
+
objective: z.ZodString;
|
|
222
|
+
phase: z.ZodEnum<{
|
|
223
|
+
completed: "completed";
|
|
224
|
+
planning: "planning";
|
|
225
|
+
implementation: "implementation";
|
|
226
|
+
verification: "verification";
|
|
227
|
+
}>;
|
|
228
|
+
progress: z.ZodNumber;
|
|
229
|
+
messages: z.ZodArray<z.ZodObject<{
|
|
230
|
+
role: z.ZodEnum<{
|
|
231
|
+
user: "user";
|
|
232
|
+
assistant: "assistant";
|
|
233
|
+
system: "system";
|
|
234
|
+
}>;
|
|
235
|
+
content: z.ZodString;
|
|
236
|
+
tokens: z.ZodNumber;
|
|
237
|
+
}, z.core.$strip>>;
|
|
238
|
+
}, z.core.$strip>;
|
|
239
|
+
export declare const dispatchSchema: z.ZodObject<{
|
|
240
|
+
session_id: z.ZodString;
|
|
241
|
+
prompt: z.ZodString;
|
|
242
|
+
type: z.ZodOptional<z.ZodString>;
|
|
243
|
+
force_provider: z.ZodOptional<z.ZodString>;
|
|
244
|
+
force_tier: z.ZodOptional<z.ZodNumber>;
|
|
245
|
+
}, z.core.$strip>;
|
|
246
|
+
export declare const routeSchema: z.ZodObject<{
|
|
247
|
+
type: z.ZodString;
|
|
248
|
+
description: z.ZodString;
|
|
249
|
+
}, z.core.$strip>;
|
|
250
|
+
export declare const broadcastSchema: z.ZodObject<{
|
|
251
|
+
session_id: z.ZodString;
|
|
252
|
+
message: z.ZodString;
|
|
253
|
+
message_type: z.ZodOptional<z.ZodEnum<{
|
|
254
|
+
error: "error";
|
|
255
|
+
progress: "progress";
|
|
256
|
+
info: "info";
|
|
257
|
+
warning: "warning";
|
|
258
|
+
complete: "complete";
|
|
259
|
+
}>>;
|
|
260
|
+
}, z.core.$strip>;
|
|
261
|
+
export declare const aggregateSchema: z.ZodObject<{
|
|
262
|
+
task_ids: z.ZodArray<z.ZodString>;
|
|
263
|
+
strategy: z.ZodOptional<z.ZodEnum<{
|
|
264
|
+
concat: "concat";
|
|
265
|
+
merge: "merge";
|
|
266
|
+
first: "first";
|
|
267
|
+
last: "last";
|
|
268
|
+
vote: "vote";
|
|
269
|
+
}>>;
|
|
270
|
+
}, z.core.$strip>;
|
|
271
|
+
export declare const healthCheckSchema: z.ZodObject<{
|
|
272
|
+
include_providers: z.ZodOptional<z.ZodBoolean>;
|
|
273
|
+
}, z.core.$strip>;
|
|
274
|
+
export declare const providerListSchema: z.ZodObject<{
|
|
275
|
+
filter_healthy: z.ZodOptional<z.ZodBoolean>;
|
|
276
|
+
include_capabilities: z.ZodOptional<z.ZodBoolean>;
|
|
277
|
+
}, z.core.$strip>;
|
|
278
|
+
export declare const metricsGetSchema: z.ZodObject<{
|
|
279
|
+
metric_type: z.ZodOptional<z.ZodEnum<{
|
|
280
|
+
tokens: "tokens";
|
|
281
|
+
routing: "routing";
|
|
282
|
+
costs: "costs";
|
|
283
|
+
all: "all";
|
|
284
|
+
}>>;
|
|
285
|
+
}, z.core.$strip>;
|
|
286
|
+
export declare const configGetSchema: z.ZodObject<{
|
|
287
|
+
key: z.ZodString;
|
|
288
|
+
}, z.core.$strip>;
|
|
289
|
+
export declare const configSetSchema: z.ZodObject<{
|
|
290
|
+
key: z.ZodString;
|
|
291
|
+
value: z.ZodUnknown;
|
|
292
|
+
}, z.core.$strip>;
|
|
293
|
+
export declare const toolSchemas: Record<string, z.ZodSchema>;
|
|
294
|
+
/**
|
|
295
|
+
* Validate tool input against its schema
|
|
296
|
+
* @throws ZodError if validation fails
|
|
297
|
+
*/
|
|
298
|
+
export declare function validateToolInput(toolName: string, args: unknown): Record<string, unknown>;
|
|
299
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmCxB,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;iBAK5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAM9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;iBAM7B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;iBAe5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAcH,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAU3B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,eAAO,MAAM,eAAe;;iBAE1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;iBAE3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;iBAIzB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;iBAE3B,CAAC;AAEH,eAAO,MAAM,eAAe;;iBAE1B,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAGH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;iBAG7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAchC,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;iBAMzB,CAAC;AAEH,eAAO,MAAM,WAAW;;;iBAGtB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;iBAG1B,CAAC;AAGH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;iBAE3B,CAAC;AAEH,eAAO,MAAM,eAAe;;iBAE1B,CAAC;AAEH,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAGH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CA8CnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1F"}
|
package/dist/schemas.js
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod validation schemas for MCP tool inputs
|
|
3
|
+
*
|
|
4
|
+
* SECURITY: All user input must be validated before processing.
|
|
5
|
+
* These schemas enforce type safety and prevent injection attacks.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
// Common validators
|
|
9
|
+
const sessionIdSchema = z
|
|
10
|
+
.string()
|
|
11
|
+
.min(1)
|
|
12
|
+
.max(64)
|
|
13
|
+
.regex(/^[a-zA-Z0-9_-]+$/, 'Invalid session ID format');
|
|
14
|
+
const taskIdSchema = z
|
|
15
|
+
.string()
|
|
16
|
+
.min(1)
|
|
17
|
+
.max(64)
|
|
18
|
+
.regex(/^[a-zA-Z0-9_-]+$/, 'Invalid task ID format');
|
|
19
|
+
const agentIdSchema = z
|
|
20
|
+
.string()
|
|
21
|
+
.min(1)
|
|
22
|
+
.max(64)
|
|
23
|
+
.regex(/^[a-zA-Z0-9_-]+$/, 'Invalid agent ID format');
|
|
24
|
+
const artifactIdSchema = z
|
|
25
|
+
.string()
|
|
26
|
+
.min(1)
|
|
27
|
+
.max(64)
|
|
28
|
+
.regex(/^[a-zA-Z0-9_-]+$/, 'Invalid artifact ID format');
|
|
29
|
+
// Limit string lengths to prevent DoS via memory exhaustion
|
|
30
|
+
const shortStringSchema = z.string().max(500);
|
|
31
|
+
const mediumStringSchema = z.string().max(5000);
|
|
32
|
+
const longStringSchema = z.string().max(100000); // 100KB max for prompts/content
|
|
33
|
+
const pathSchema = z
|
|
34
|
+
.string()
|
|
35
|
+
.max(1000)
|
|
36
|
+
// eslint-disable-next-line no-control-regex -- Required to validate path characters
|
|
37
|
+
.regex(/^[^<>:"|?*\x00-\x1F]+$/, 'Invalid path characters');
|
|
38
|
+
// Session tools schemas
|
|
39
|
+
export const sessionSpawnSchema = z.object({
|
|
40
|
+
objective: mediumStringSchema,
|
|
41
|
+
context_files: z.array(pathSchema).max(100).optional(),
|
|
42
|
+
parent_session: sessionIdSchema.optional(),
|
|
43
|
+
concurrency: z.number().int().min(1).max(10).optional(),
|
|
44
|
+
auto_execute: z.boolean().optional(),
|
|
45
|
+
});
|
|
46
|
+
export const sessionStatusSchema = z.object({
|
|
47
|
+
session_id: sessionIdSchema,
|
|
48
|
+
});
|
|
49
|
+
export const sessionListSchema = z.object({
|
|
50
|
+
status: z.enum(['active', 'completed', 'archived']).optional(),
|
|
51
|
+
include_forks: z.boolean().optional(),
|
|
52
|
+
limit: z.number().int().min(1).max(1000).optional(),
|
|
53
|
+
format: z.enum(['table', 'json']).optional(),
|
|
54
|
+
});
|
|
55
|
+
export const sessionForkSchema = z.object({
|
|
56
|
+
session_id: sessionIdSchema,
|
|
57
|
+
fork_point: z.number().int().min(0).optional(),
|
|
58
|
+
reason: mediumStringSchema.optional(),
|
|
59
|
+
});
|
|
60
|
+
export const sessionArchiveSchema = z.object({
|
|
61
|
+
session_id: sessionIdSchema,
|
|
62
|
+
});
|
|
63
|
+
export const sessionReportSchema = z.object({
|
|
64
|
+
session_id: sessionIdSchema.optional(),
|
|
65
|
+
status: z.enum(['active', 'completed', 'archived']).optional(),
|
|
66
|
+
include_output: z.boolean().optional(),
|
|
67
|
+
include_artifacts: z.boolean().optional(),
|
|
68
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
69
|
+
});
|
|
70
|
+
export const sessionPurgeSchema = z.object({
|
|
71
|
+
session_id: sessionIdSchema.optional(),
|
|
72
|
+
session_ids: z.array(sessionIdSchema).max(100).optional(),
|
|
73
|
+
status: z.enum(['active', 'completed', 'archived']).optional(),
|
|
74
|
+
older_than_days: z.number().int().min(0).max(3650).optional(),
|
|
75
|
+
confirm: z.boolean(),
|
|
76
|
+
});
|
|
77
|
+
export const sessionQueueConfigSchema = z.object({
|
|
78
|
+
session_id: sessionIdSchema,
|
|
79
|
+
concurrency: z.number().int().min(1).max(10).optional(),
|
|
80
|
+
auto_execute: z.boolean().optional(),
|
|
81
|
+
});
|
|
82
|
+
export const queueStatusSchema = z.object({
|
|
83
|
+
session_id: sessionIdSchema,
|
|
84
|
+
});
|
|
85
|
+
// Agent tools schemas
|
|
86
|
+
export const agentCreateSchema = z.object({
|
|
87
|
+
session_id: sessionIdSchema,
|
|
88
|
+
role: z.enum([
|
|
89
|
+
'orchestrator',
|
|
90
|
+
'planner',
|
|
91
|
+
'implementer',
|
|
92
|
+
'reviewer',
|
|
93
|
+
'tester',
|
|
94
|
+
'debugger',
|
|
95
|
+
'documenter',
|
|
96
|
+
'specialist',
|
|
97
|
+
]),
|
|
98
|
+
name: shortStringSchema.optional(),
|
|
99
|
+
provider: shortStringSchema.optional(),
|
|
100
|
+
model: shortStringSchema.optional(),
|
|
101
|
+
});
|
|
102
|
+
export const agentDeploySchema = z.object({
|
|
103
|
+
agent_id: agentIdSchema,
|
|
104
|
+
task_id: taskIdSchema,
|
|
105
|
+
});
|
|
106
|
+
export const agentStatusSchema = z.object({
|
|
107
|
+
agent_id: agentIdSchema,
|
|
108
|
+
});
|
|
109
|
+
export const agentListSchema = z.object({
|
|
110
|
+
session_id: sessionIdSchema,
|
|
111
|
+
status: shortStringSchema.optional(),
|
|
112
|
+
format: z.enum(['table', 'json']).optional(),
|
|
113
|
+
});
|
|
114
|
+
export const agentRetireSchema = z.object({
|
|
115
|
+
agent_id: agentIdSchema,
|
|
116
|
+
});
|
|
117
|
+
// Task tools schemas
|
|
118
|
+
const taskDefinitionSchema = z.object({
|
|
119
|
+
type: shortStringSchema,
|
|
120
|
+
description: mediumStringSchema,
|
|
121
|
+
prompt: longStringSchema,
|
|
122
|
+
context_files: z.array(pathSchema).max(100).optional(),
|
|
123
|
+
force_provider: shortStringSchema.optional(),
|
|
124
|
+
force_tier: z.number().int().min(1).max(5).optional(),
|
|
125
|
+
agent: shortStringSchema.optional(),
|
|
126
|
+
skills: z.array(shortStringSchema).max(50).optional(),
|
|
127
|
+
});
|
|
128
|
+
export const taskCreateSchema = z.object({
|
|
129
|
+
session_id: sessionIdSchema,
|
|
130
|
+
type: shortStringSchema,
|
|
131
|
+
description: mediumStringSchema,
|
|
132
|
+
prompt: longStringSchema,
|
|
133
|
+
context_files: z.array(pathSchema).max(100).optional(),
|
|
134
|
+
force_provider: shortStringSchema.optional(),
|
|
135
|
+
force_tier: z.number().int().min(1).max(5).optional(),
|
|
136
|
+
agent: shortStringSchema.optional(),
|
|
137
|
+
skills: z.array(shortStringSchema).max(50).optional(),
|
|
138
|
+
});
|
|
139
|
+
export const taskBatchCreateSchema = z.object({
|
|
140
|
+
session_id: sessionIdSchema,
|
|
141
|
+
tasks: z.array(taskDefinitionSchema).min(1).max(50),
|
|
142
|
+
});
|
|
143
|
+
export const taskBatchExecuteSchema = z.object({
|
|
144
|
+
task_ids: z.array(taskIdSchema).min(1).max(50),
|
|
145
|
+
parallel: z.boolean().optional(),
|
|
146
|
+
wait: z.boolean().optional(),
|
|
147
|
+
});
|
|
148
|
+
export const taskQueueSchema = z.object({
|
|
149
|
+
task_id: taskIdSchema,
|
|
150
|
+
});
|
|
151
|
+
export const taskStatusSchema = z.object({
|
|
152
|
+
task_id: taskIdSchema,
|
|
153
|
+
});
|
|
154
|
+
export const taskCompleteSchema = z.object({
|
|
155
|
+
task_id: taskIdSchema,
|
|
156
|
+
content: longStringSchema,
|
|
157
|
+
artifacts: z.array(shortStringSchema).max(100).optional(),
|
|
158
|
+
});
|
|
159
|
+
export const taskListSchema = z.object({
|
|
160
|
+
session_id: sessionIdSchema,
|
|
161
|
+
status: shortStringSchema.optional(),
|
|
162
|
+
format: z.enum(['table', 'json']).optional(),
|
|
163
|
+
});
|
|
164
|
+
export const taskExecuteSchema = z.object({
|
|
165
|
+
task_id: taskIdSchema,
|
|
166
|
+
wait: z.boolean().optional(),
|
|
167
|
+
});
|
|
168
|
+
export const taskCancelSchema = z.object({
|
|
169
|
+
task_id: taskIdSchema,
|
|
170
|
+
});
|
|
171
|
+
export const taskRetrySchema = z.object({
|
|
172
|
+
task_id: taskIdSchema,
|
|
173
|
+
});
|
|
174
|
+
// Lock tools schemas
|
|
175
|
+
export const lockAcquireSchema = z.object({
|
|
176
|
+
session_id: sessionIdSchema,
|
|
177
|
+
file_path: pathSchema,
|
|
178
|
+
ttl: z.number().int().min(1000).max(3600000).optional(), // 1s to 1h
|
|
179
|
+
});
|
|
180
|
+
export const lockReleaseSchema = z.object({
|
|
181
|
+
session_id: sessionIdSchema,
|
|
182
|
+
file_path: pathSchema,
|
|
183
|
+
});
|
|
184
|
+
export const lockStatusSchema = z.object({
|
|
185
|
+
session_id: sessionIdSchema.optional(),
|
|
186
|
+
file_path: pathSchema.optional(),
|
|
187
|
+
});
|
|
188
|
+
// Cost monitoring schemas
|
|
189
|
+
export const sessionCostSchema = z.object({
|
|
190
|
+
session_id: sessionIdSchema,
|
|
191
|
+
});
|
|
192
|
+
export const sessionMetricsSchema = z.object({
|
|
193
|
+
session_id: sessionIdSchema,
|
|
194
|
+
});
|
|
195
|
+
export const sessionThrottleSchema = z.object({
|
|
196
|
+
session_id: sessionIdSchema,
|
|
197
|
+
provider: shortStringSchema.optional(),
|
|
198
|
+
});
|
|
199
|
+
// Memory tools schemas
|
|
200
|
+
export const memoryStoreSchema = z.object({
|
|
201
|
+
key: shortStringSchema,
|
|
202
|
+
value: z.unknown(),
|
|
203
|
+
session_id: sessionIdSchema.optional(),
|
|
204
|
+
});
|
|
205
|
+
export const memoryRetrieveSchema = z.object({
|
|
206
|
+
key: shortStringSchema,
|
|
207
|
+
});
|
|
208
|
+
export const artifactSaveSchema = z.object({
|
|
209
|
+
session_id: sessionIdSchema,
|
|
210
|
+
type: z.enum(['code', 'document', 'data', 'config', 'test', 'other']),
|
|
211
|
+
name: shortStringSchema,
|
|
212
|
+
content: longStringSchema,
|
|
213
|
+
});
|
|
214
|
+
export const artifactGetSchema = z.object({
|
|
215
|
+
artifact_id: artifactIdSchema,
|
|
216
|
+
});
|
|
217
|
+
export const artifactListSchema = z.object({
|
|
218
|
+
session_id: sessionIdSchema,
|
|
219
|
+
type: z.enum(['code', 'document', 'data', 'config', 'test', 'other']).optional(),
|
|
220
|
+
});
|
|
221
|
+
export const contextOptimizeSchema = z.object({
|
|
222
|
+
session_id: sessionIdSchema,
|
|
223
|
+
objective: mediumStringSchema,
|
|
224
|
+
phase: z.enum(['planning', 'implementation', 'verification', 'completed']),
|
|
225
|
+
progress: z.number().min(0).max(100),
|
|
226
|
+
messages: z
|
|
227
|
+
.array(z.object({
|
|
228
|
+
role: z.enum(['user', 'assistant', 'system']),
|
|
229
|
+
content: longStringSchema,
|
|
230
|
+
tokens: z.number().int().min(0),
|
|
231
|
+
}))
|
|
232
|
+
.max(1000),
|
|
233
|
+
});
|
|
234
|
+
// Orchestration tools schemas
|
|
235
|
+
export const dispatchSchema = z.object({
|
|
236
|
+
session_id: sessionIdSchema,
|
|
237
|
+
prompt: longStringSchema,
|
|
238
|
+
type: shortStringSchema.optional(),
|
|
239
|
+
force_provider: shortStringSchema.optional(),
|
|
240
|
+
force_tier: z.number().int().min(1).max(5).optional(),
|
|
241
|
+
});
|
|
242
|
+
export const routeSchema = z.object({
|
|
243
|
+
type: shortStringSchema,
|
|
244
|
+
description: mediumStringSchema,
|
|
245
|
+
});
|
|
246
|
+
export const broadcastSchema = z.object({
|
|
247
|
+
session_id: sessionIdSchema,
|
|
248
|
+
message: mediumStringSchema,
|
|
249
|
+
message_type: z.enum(['info', 'warning', 'error', 'progress', 'complete']).optional(),
|
|
250
|
+
});
|
|
251
|
+
export const aggregateSchema = z.object({
|
|
252
|
+
task_ids: z.array(taskIdSchema).min(1).max(100),
|
|
253
|
+
strategy: z.enum(['concat', 'merge', 'first', 'last', 'vote']).optional(),
|
|
254
|
+
});
|
|
255
|
+
// Utility tools schemas
|
|
256
|
+
export const healthCheckSchema = z.object({
|
|
257
|
+
include_providers: z.boolean().optional(),
|
|
258
|
+
});
|
|
259
|
+
export const providerListSchema = z.object({
|
|
260
|
+
filter_healthy: z.boolean().optional(),
|
|
261
|
+
include_capabilities: z.boolean().optional(),
|
|
262
|
+
});
|
|
263
|
+
export const metricsGetSchema = z.object({
|
|
264
|
+
metric_type: z.enum(['routing', 'tokens', 'costs', 'all']).optional(),
|
|
265
|
+
});
|
|
266
|
+
export const configGetSchema = z.object({
|
|
267
|
+
key: shortStringSchema,
|
|
268
|
+
});
|
|
269
|
+
export const configSetSchema = z.object({
|
|
270
|
+
key: shortStringSchema,
|
|
271
|
+
value: z.unknown(),
|
|
272
|
+
});
|
|
273
|
+
// Schema registry for tool validation
|
|
274
|
+
export const toolSchemas = {
|
|
275
|
+
session_spawn: sessionSpawnSchema,
|
|
276
|
+
session_status: sessionStatusSchema,
|
|
277
|
+
session_list: sessionListSchema,
|
|
278
|
+
session_fork: sessionForkSchema,
|
|
279
|
+
session_archive: sessionArchiveSchema,
|
|
280
|
+
session_report: sessionReportSchema,
|
|
281
|
+
session_purge: sessionPurgeSchema,
|
|
282
|
+
session_queue_config: sessionQueueConfigSchema,
|
|
283
|
+
queue_status: queueStatusSchema,
|
|
284
|
+
agent_create: agentCreateSchema,
|
|
285
|
+
agent_deploy: agentDeploySchema,
|
|
286
|
+
agent_status: agentStatusSchema,
|
|
287
|
+
agent_list: agentListSchema,
|
|
288
|
+
agent_retire: agentRetireSchema,
|
|
289
|
+
task_create: taskCreateSchema,
|
|
290
|
+
task_batch_create: taskBatchCreateSchema,
|
|
291
|
+
task_batch_execute: taskBatchExecuteSchema,
|
|
292
|
+
task_queue: taskQueueSchema,
|
|
293
|
+
task_status: taskStatusSchema,
|
|
294
|
+
task_complete: taskCompleteSchema,
|
|
295
|
+
task_list: taskListSchema,
|
|
296
|
+
task_execute: taskExecuteSchema,
|
|
297
|
+
task_cancel: taskCancelSchema,
|
|
298
|
+
task_retry: taskRetrySchema,
|
|
299
|
+
lock_acquire: lockAcquireSchema,
|
|
300
|
+
lock_release: lockReleaseSchema,
|
|
301
|
+
lock_status: lockStatusSchema,
|
|
302
|
+
session_cost: sessionCostSchema,
|
|
303
|
+
session_metrics: sessionMetricsSchema,
|
|
304
|
+
session_throttle: sessionThrottleSchema,
|
|
305
|
+
memory_store: memoryStoreSchema,
|
|
306
|
+
memory_retrieve: memoryRetrieveSchema,
|
|
307
|
+
artifact_save: artifactSaveSchema,
|
|
308
|
+
artifact_get: artifactGetSchema,
|
|
309
|
+
artifact_list: artifactListSchema,
|
|
310
|
+
context_optimize: contextOptimizeSchema,
|
|
311
|
+
dispatch: dispatchSchema,
|
|
312
|
+
route: routeSchema,
|
|
313
|
+
broadcast: broadcastSchema,
|
|
314
|
+
aggregate: aggregateSchema,
|
|
315
|
+
health_check: healthCheckSchema,
|
|
316
|
+
provider_list: providerListSchema,
|
|
317
|
+
metrics_get: metricsGetSchema,
|
|
318
|
+
config_get: configGetSchema,
|
|
319
|
+
config_set: configSetSchema,
|
|
320
|
+
};
|
|
321
|
+
/**
|
|
322
|
+
* Validate tool input against its schema
|
|
323
|
+
* @throws ZodError if validation fails
|
|
324
|
+
*/
|
|
325
|
+
export function validateToolInput(toolName, args) {
|
|
326
|
+
const schema = toolSchemas[toolName];
|
|
327
|
+
if (!schema) {
|
|
328
|
+
// Tools without schemas pass through (backwards compatibility)
|
|
329
|
+
// In production, all tools should have schemas
|
|
330
|
+
return args;
|
|
331
|
+
}
|
|
332
|
+
return schema.parse(args);
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|