@defai.digital/mcp-server 13.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/LICENSE +214 -0
  2. package/dist/bin.d.ts +3 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +7 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/bootstrap.d.ts +89 -0
  7. package/dist/bootstrap.d.ts.map +1 -0
  8. package/dist/bootstrap.js +161 -0
  9. package/dist/bootstrap.js.map +1 -0
  10. package/dist/index.d.ts +10 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +17 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/middleware/rate-limiter.d.ts +136 -0
  15. package/dist/middleware/rate-limiter.d.ts.map +1 -0
  16. package/dist/middleware/rate-limiter.js +262 -0
  17. package/dist/middleware/rate-limiter.js.map +1 -0
  18. package/dist/prompts/agent-guide.d.ts +16 -0
  19. package/dist/prompts/agent-guide.d.ts.map +1 -0
  20. package/dist/prompts/agent-guide.js +391 -0
  21. package/dist/prompts/agent-guide.js.map +1 -0
  22. package/dist/prompts/explain-workflow.d.ts +15 -0
  23. package/dist/prompts/explain-workflow.d.ts.map +1 -0
  24. package/dist/prompts/explain-workflow.js +157 -0
  25. package/dist/prompts/explain-workflow.js.map +1 -0
  26. package/dist/prompts/index.d.ts +39 -0
  27. package/dist/prompts/index.d.ts.map +1 -0
  28. package/dist/prompts/index.js +83 -0
  29. package/dist/prompts/index.js.map +1 -0
  30. package/dist/prompts/review-changes.d.ts +15 -0
  31. package/dist/prompts/review-changes.d.ts.map +1 -0
  32. package/dist/prompts/review-changes.js +102 -0
  33. package/dist/prompts/review-changes.js.map +1 -0
  34. package/dist/prompts/troubleshoot-session.d.ts +15 -0
  35. package/dist/prompts/troubleshoot-session.d.ts.map +1 -0
  36. package/dist/prompts/troubleshoot-session.js +156 -0
  37. package/dist/prompts/troubleshoot-session.js.map +1 -0
  38. package/dist/registry-accessor.d.ts +83 -0
  39. package/dist/registry-accessor.d.ts.map +1 -0
  40. package/dist/registry-accessor.js +153 -0
  41. package/dist/registry-accessor.js.map +1 -0
  42. package/dist/resources/agents.d.ts +40 -0
  43. package/dist/resources/agents.d.ts.map +1 -0
  44. package/dist/resources/agents.js +123 -0
  45. package/dist/resources/agents.js.map +1 -0
  46. package/dist/resources/config.d.ts +57 -0
  47. package/dist/resources/config.d.ts.map +1 -0
  48. package/dist/resources/config.js +222 -0
  49. package/dist/resources/config.js.map +1 -0
  50. package/dist/resources/index.d.ts +38 -0
  51. package/dist/resources/index.d.ts.map +1 -0
  52. package/dist/resources/index.js +132 -0
  53. package/dist/resources/index.js.map +1 -0
  54. package/dist/resources/policies.d.ts +40 -0
  55. package/dist/resources/policies.d.ts.map +1 -0
  56. package/dist/resources/policies.js +122 -0
  57. package/dist/resources/policies.js.map +1 -0
  58. package/dist/resources/sessions.d.ts +30 -0
  59. package/dist/resources/sessions.d.ts.map +1 -0
  60. package/dist/resources/sessions.js +64 -0
  61. package/dist/resources/sessions.js.map +1 -0
  62. package/dist/resources/workflows.d.ts +40 -0
  63. package/dist/resources/workflows.d.ts.map +1 -0
  64. package/dist/resources/workflows.js +143 -0
  65. package/dist/resources/workflows.js.map +1 -0
  66. package/dist/schema-registry.d.ts +23 -0
  67. package/dist/schema-registry.d.ts.map +1 -0
  68. package/dist/schema-registry.js +225 -0
  69. package/dist/schema-registry.js.map +1 -0
  70. package/dist/server.d.ts +63 -0
  71. package/dist/server.d.ts.map +1 -0
  72. package/dist/server.js +393 -0
  73. package/dist/server.js.map +1 -0
  74. package/dist/session-accessor.d.ts +23 -0
  75. package/dist/session-accessor.d.ts.map +1 -0
  76. package/dist/session-accessor.js +39 -0
  77. package/dist/session-accessor.js.map +1 -0
  78. package/dist/shared-registry.d.ts +23 -0
  79. package/dist/shared-registry.d.ts.map +1 -0
  80. package/dist/shared-registry.js +235 -0
  81. package/dist/shared-registry.js.map +1 -0
  82. package/dist/stdio.d.ts +6 -0
  83. package/dist/stdio.d.ts.map +1 -0
  84. package/dist/stdio.js +152 -0
  85. package/dist/stdio.js.map +1 -0
  86. package/dist/tool-namespacing.d.ts +28 -0
  87. package/dist/tool-namespacing.d.ts.map +1 -0
  88. package/dist/tool-namespacing.js +80 -0
  89. package/dist/tool-namespacing.js.map +1 -0
  90. package/dist/tools/ability.d.ts +55 -0
  91. package/dist/tools/ability.d.ts.map +1 -0
  92. package/dist/tools/ability.js +560 -0
  93. package/dist/tools/ability.js.map +1 -0
  94. package/dist/tools/agent.d.ts +73 -0
  95. package/dist/tools/agent.d.ts.map +1 -0
  96. package/dist/tools/agent.js +895 -0
  97. package/dist/tools/agent.js.map +1 -0
  98. package/dist/tools/config.d.ts +36 -0
  99. package/dist/tools/config.d.ts.map +1 -0
  100. package/dist/tools/config.js +265 -0
  101. package/dist/tools/config.js.map +1 -0
  102. package/dist/tools/design.d.ts +42 -0
  103. package/dist/tools/design.d.ts.map +1 -0
  104. package/dist/tools/design.js +736 -0
  105. package/dist/tools/design.js.map +1 -0
  106. package/dist/tools/discuss.d.ts +40 -0
  107. package/dist/tools/discuss.d.ts.map +1 -0
  108. package/dist/tools/discuss.js +331 -0
  109. package/dist/tools/discuss.js.map +1 -0
  110. package/dist/tools/file-system.d.ts +63 -0
  111. package/dist/tools/file-system.d.ts.map +1 -0
  112. package/dist/tools/file-system.js +513 -0
  113. package/dist/tools/file-system.js.map +1 -0
  114. package/dist/tools/guard.d.ts +29 -0
  115. package/dist/tools/guard.d.ts.map +1 -0
  116. package/dist/tools/guard.js +311 -0
  117. package/dist/tools/guard.js.map +1 -0
  118. package/dist/tools/index.d.ts +35 -0
  119. package/dist/tools/index.d.ts.map +1 -0
  120. package/dist/tools/index.js +178 -0
  121. package/dist/tools/index.js.map +1 -0
  122. package/dist/tools/memory.d.ts +101 -0
  123. package/dist/tools/memory.d.ts.map +1 -0
  124. package/dist/tools/memory.js +704 -0
  125. package/dist/tools/memory.js.map +1 -0
  126. package/dist/tools/orchestration.d.ts +58 -0
  127. package/dist/tools/orchestration.d.ts.map +1 -0
  128. package/dist/tools/orchestration.js +714 -0
  129. package/dist/tools/orchestration.js.map +1 -0
  130. package/dist/tools/review.d.ts +40 -0
  131. package/dist/tools/review.d.ts.map +1 -0
  132. package/dist/tools/review.js +319 -0
  133. package/dist/tools/review.js.map +1 -0
  134. package/dist/tools/scaffold.d.ts +27 -0
  135. package/dist/tools/scaffold.d.ts.map +1 -0
  136. package/dist/tools/scaffold.js +495 -0
  137. package/dist/tools/scaffold.js.map +1 -0
  138. package/dist/tools/session.d.ts +75 -0
  139. package/dist/tools/session.d.ts.map +1 -0
  140. package/dist/tools/session.js +749 -0
  141. package/dist/tools/session.js.map +1 -0
  142. package/dist/tools/telemetry.d.ts +58 -0
  143. package/dist/tools/telemetry.d.ts.map +1 -0
  144. package/dist/tools/telemetry.js +638 -0
  145. package/dist/tools/telemetry.js.map +1 -0
  146. package/dist/tools/trace.d.ts +29 -0
  147. package/dist/tools/trace.d.ts.map +1 -0
  148. package/dist/tools/trace.js +191 -0
  149. package/dist/tools/trace.js.map +1 -0
  150. package/dist/tools/workflow.d.ts +26 -0
  151. package/dist/tools/workflow.d.ts.map +1 -0
  152. package/dist/tools/workflow.js +269 -0
  153. package/dist/tools/workflow.js.map +1 -0
  154. package/dist/trace-wrapper.d.ts +79 -0
  155. package/dist/trace-wrapper.d.ts.map +1 -0
  156. package/dist/trace-wrapper.js +151 -0
  157. package/dist/trace-wrapper.js.map +1 -0
  158. package/dist/types.d.ts +185 -0
  159. package/dist/types.d.ts.map +1 -0
  160. package/dist/types.js +11 -0
  161. package/dist/types.js.map +1 -0
  162. package/dist/utils/artifact-store.d.ts +49 -0
  163. package/dist/utils/artifact-store.d.ts.map +1 -0
  164. package/dist/utils/artifact-store.js +102 -0
  165. package/dist/utils/artifact-store.js.map +1 -0
  166. package/dist/utils/index.d.ts +6 -0
  167. package/dist/utils/index.d.ts.map +1 -0
  168. package/dist/utils/index.js +10 -0
  169. package/dist/utils/index.js.map +1 -0
  170. package/dist/utils/response.d.ts +139 -0
  171. package/dist/utils/response.d.ts.map +1 -0
  172. package/dist/utils/response.js +293 -0
  173. package/dist/utils/response.js.map +1 -0
  174. package/dist/validation.d.ts +223 -0
  175. package/dist/validation.d.ts.map +1 -0
  176. package/dist/validation.js +372 -0
  177. package/dist/validation.js.map +1 -0
  178. package/package.json +67 -0
@@ -0,0 +1,372 @@
1
+ /**
2
+ * MCP Tool Input/Output Validation
3
+ *
4
+ * Validates tool inputs and outputs against Zod schemas.
5
+ *
6
+ * Invariants:
7
+ * - INV-MCP-001: Input validation MUST occur before tool execution
8
+ * - INV-MCP-003: Standardized error codes for all failures
9
+ * - INV-MCP-005: Input isolation - inputs MUST NOT be mutated
10
+ * - INV-MCP-VAL-001: Output validation failures logged but don't break response
11
+ * - INV-MCP-VAL-002: All schemas defined in contracts package
12
+ */
13
+ // ============================================================================
14
+ // Standard Error Codes (INV-MCP-003)
15
+ // ============================================================================
16
+ /**
17
+ * Standard error codes per INV-MCP-003
18
+ * Must match StandardErrorCodes from @defai.digital/contracts
19
+ */
20
+ export const ToolErrorCodes = {
21
+ INVALID_INPUT: 'INVALID_INPUT',
22
+ INVALID_OUTPUT: 'INVALID_OUTPUT',
23
+ RESOURCE_NOT_FOUND: 'RESOURCE_NOT_FOUND',
24
+ PERMISSION_DENIED: 'PERMISSION_DENIED',
25
+ RATE_LIMITED: 'RATE_LIMITED',
26
+ INTERNAL_ERROR: 'INTERNAL_ERROR',
27
+ TIMEOUT: 'TIMEOUT',
28
+ NOT_IMPLEMENTED: 'NOT_IMPLEMENTED',
29
+ };
30
+ /**
31
+ * Creates a standardized tool error response
32
+ * INV-MCP-003: All failures MUST return standardized error codes
33
+ */
34
+ export function createToolError(code, message, toolName, details) {
35
+ const error = {
36
+ code,
37
+ message,
38
+ tool: toolName,
39
+ };
40
+ if (details !== undefined) {
41
+ error.details = details;
42
+ }
43
+ return {
44
+ content: [
45
+ {
46
+ type: 'text',
47
+ text: JSON.stringify(error),
48
+ },
49
+ ],
50
+ isError: true,
51
+ };
52
+ }
53
+ /**
54
+ * Creates an INVALID_INPUT error
55
+ * INV-MCP-003: Standardized error codes
56
+ */
57
+ export function createInputError(toolName, message, details) {
58
+ return createToolError(ToolErrorCodes.INVALID_INPUT, message, toolName, details);
59
+ }
60
+ /**
61
+ * Creates an INTERNAL_ERROR error
62
+ * INV-MCP-003: Standardized error codes
63
+ */
64
+ export function createInternalError(toolName, message, details) {
65
+ return createToolError(ToolErrorCodes.INTERNAL_ERROR, message, toolName, details);
66
+ }
67
+ /**
68
+ * Creates a RESOURCE_NOT_FOUND error
69
+ * INV-MCP-003: Standardized error codes
70
+ */
71
+ export function createNotFoundError(toolName, message, details) {
72
+ return createToolError(ToolErrorCodes.RESOURCE_NOT_FOUND, message, toolName, details);
73
+ }
74
+ /**
75
+ * Creates a NOT_IMPLEMENTED error
76
+ * INV-MCP-003: Standardized error codes
77
+ */
78
+ export function createNotImplementedError(toolName, message) {
79
+ return createToolError(ToolErrorCodes.NOT_IMPLEMENTED, message, toolName);
80
+ }
81
+ // ============================================================================
82
+ // Input Isolation (INV-MCP-005)
83
+ // ============================================================================
84
+ /**
85
+ * Deep freezes an object to prevent mutation
86
+ * INV-MCP-005: Tools MUST NOT modify their input objects
87
+ *
88
+ * Handles circular references by tracking visited objects
89
+ */
90
+ export function deepFreeze(obj, visited = new WeakSet()) {
91
+ if (obj === null || typeof obj !== 'object') {
92
+ return obj;
93
+ }
94
+ // Check for circular reference
95
+ if (visited.has(obj)) {
96
+ return obj; // Already frozen or in process of being frozen
97
+ }
98
+ // Mark as visited before recursing to handle circular refs
99
+ visited.add(obj);
100
+ // Freeze arrays
101
+ if (Array.isArray(obj)) {
102
+ obj.forEach((item) => deepFreeze(item, visited));
103
+ return Object.freeze(obj);
104
+ }
105
+ // Freeze object properties recursively
106
+ const propNames = Object.getOwnPropertyNames(obj);
107
+ for (const name of propNames) {
108
+ const value = obj[name];
109
+ if (value !== null && typeof value === 'object') {
110
+ deepFreeze(value, visited);
111
+ }
112
+ }
113
+ return Object.freeze(obj);
114
+ }
115
+ /**
116
+ * Default console logger
117
+ */
118
+ const defaultLogger = {
119
+ warn: (message, context) => {
120
+ console.warn(`[MCP-VALIDATION] ${message}`, context ?? '');
121
+ },
122
+ };
123
+ let currentLogger = defaultLogger;
124
+ /**
125
+ * Sets the validation logger
126
+ */
127
+ export function setValidationLogger(logger) {
128
+ currentLogger = logger;
129
+ }
130
+ // ============================================================================
131
+ // Validation Functions
132
+ // ============================================================================
133
+ /**
134
+ * Validates output against a Zod schema
135
+ *
136
+ * INV-MCP-VAL-001: Logs failures but returns original data
137
+ */
138
+ export function validateOutput(schema, toolName, output) {
139
+ const result = schema.safeParse(output);
140
+ if (result.success) {
141
+ return { valid: true, data: result.data };
142
+ }
143
+ // INV-MCP-VAL-001: Log but don't fail
144
+ const errors = result.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`);
145
+ currentLogger.warn(`Output validation failed for ${toolName}`, {
146
+ errors,
147
+ output,
148
+ });
149
+ return { valid: false, data: output, errors };
150
+ }
151
+ /**
152
+ * Parses JSON from tool result content
153
+ */
154
+ export function parseToolResultContent(result) {
155
+ if (result.content.length === 0) {
156
+ return undefined;
157
+ }
158
+ const firstContent = result.content[0];
159
+ if (firstContent?.text === undefined) {
160
+ return undefined;
161
+ }
162
+ try {
163
+ return JSON.parse(firstContent.text);
164
+ }
165
+ catch {
166
+ return undefined;
167
+ }
168
+ }
169
+ // ============================================================================
170
+ // Validation Wrapper
171
+ // ============================================================================
172
+ /**
173
+ * Wraps a tool handler with output validation
174
+ *
175
+ * INV-MCP-VAL-001: Validation failures logged but response still returned
176
+ */
177
+ export function withValidation(handler, outputSchema, toolName) {
178
+ return async (args) => {
179
+ const result = await handler(args);
180
+ // Parse and validate output
181
+ const parsed = parseToolResultContent(result);
182
+ if (parsed !== undefined) {
183
+ validateOutput(outputSchema, toolName, parsed);
184
+ }
185
+ // Always return original result (INV-MCP-VAL-001)
186
+ return result;
187
+ };
188
+ }
189
+ /**
190
+ * Wraps all handlers with validation using a schema registry
191
+ */
192
+ export function wrapHandlersWithValidation(handlers, schemas) {
193
+ const wrapped = {};
194
+ for (const [name, handler] of Object.entries(handlers)) {
195
+ const schema = schemas[name];
196
+ if (schema !== undefined) {
197
+ wrapped[name] = withValidation(handler, schema, name);
198
+ }
199
+ else {
200
+ // No schema defined - pass through unchanged
201
+ wrapped[name] = handler;
202
+ }
203
+ }
204
+ return wrapped;
205
+ }
206
+ /**
207
+ * Creates an INVALID_INPUT error response for schema validation failures
208
+ * INV-MCP-001: Validation failures return INVALID_INPUT error
209
+ * INV-MCP-003: Uses standardized error code
210
+ */
211
+ export function createInvalidInputError(toolName, errors) {
212
+ return createToolError(ToolErrorCodes.INVALID_INPUT, `Input validation failed for ${toolName}`, toolName, { validationErrors: errors });
213
+ }
214
+ /**
215
+ * Validates input against a Zod schema
216
+ * INV-MCP-001: Input validation MUST occur before tool execution
217
+ *
218
+ * @returns validated data or null if validation fails
219
+ */
220
+ export function validateInput(schema, data) {
221
+ const result = schema.safeParse(data);
222
+ if (result.success) {
223
+ return { success: true, data: result.data };
224
+ }
225
+ const errors = result.error.errors.map((e) => `${e.path.length > 0 ? e.path.join('.') + ': ' : ''}${e.message}`);
226
+ return { success: false, errors };
227
+ }
228
+ /**
229
+ * Wraps a tool handler with input validation and isolation
230
+ * INV-MCP-001: Input validation MUST occur before tool execution
231
+ * INV-MCP-005: Input isolation - inputs MUST NOT be mutated
232
+ */
233
+ export function withInputValidation(handler, inputSchema, toolName) {
234
+ return async (args) => {
235
+ // INV-MCP-001: Validate input BEFORE execution
236
+ const validation = validateInput(inputSchema, args);
237
+ if (!validation.success) {
238
+ currentLogger.warn(`Input validation failed for ${toolName}`, {
239
+ errors: validation.errors,
240
+ input: args,
241
+ });
242
+ return createInvalidInputError(toolName, validation.errors);
243
+ }
244
+ // INV-MCP-005: Freeze input to prevent mutation
245
+ const frozenInput = deepFreeze(validation.data);
246
+ // Execute with validated and frozen data
247
+ return handler(frozenInput);
248
+ };
249
+ }
250
+ /**
251
+ * Wraps a tool handler with both input and output validation
252
+ * INV-MCP-001: Input validation before execution
253
+ * INV-MCP-005: Input isolation - inputs MUST NOT be mutated
254
+ * INV-MCP-VAL-001: Output validation after execution
255
+ */
256
+ export function withFullValidation(handler, inputSchema, outputSchema, toolName) {
257
+ return async (args) => {
258
+ // INV-MCP-001: Validate input BEFORE execution
259
+ const inputValidation = validateInput(inputSchema, args);
260
+ if (!inputValidation.success) {
261
+ currentLogger.warn(`Input validation failed for ${toolName}`, {
262
+ errors: inputValidation.errors,
263
+ input: args,
264
+ });
265
+ return createInvalidInputError(toolName, inputValidation.errors);
266
+ }
267
+ // INV-MCP-005: Freeze input to prevent mutation
268
+ const frozenInput = deepFreeze(inputValidation.data);
269
+ // Execute with validated and frozen data
270
+ const result = await handler(frozenInput);
271
+ // INV-MCP-VAL-001: Validate output (log but don't fail)
272
+ const parsed = parseToolResultContent(result);
273
+ if (parsed !== undefined) {
274
+ validateOutput(outputSchema, toolName, parsed);
275
+ }
276
+ return result;
277
+ };
278
+ }
279
+ /**
280
+ * Wraps all handlers with input validation using a schema registry
281
+ */
282
+ export function wrapHandlersWithInputValidation(handlers, inputSchemas) {
283
+ const wrapped = {};
284
+ for (const [name, handler] of Object.entries(handlers)) {
285
+ const schema = inputSchemas[name];
286
+ if (schema !== undefined) {
287
+ wrapped[name] = withInputValidation(handler, schema, name);
288
+ }
289
+ else {
290
+ // No schema defined - pass through unchanged (but log warning)
291
+ currentLogger.warn(`No input schema defined for tool: ${name}`);
292
+ wrapped[name] = handler;
293
+ }
294
+ }
295
+ return wrapped;
296
+ }
297
+ /**
298
+ * Wraps all handlers with both input and output validation
299
+ */
300
+ export function wrapHandlersWithFullValidation(handlers, inputSchemas, outputSchemas) {
301
+ const wrapped = {};
302
+ for (const [name, handler] of Object.entries(handlers)) {
303
+ const inputSchema = inputSchemas[name];
304
+ const outputSchema = outputSchemas[name];
305
+ if (inputSchema !== undefined && outputSchema !== undefined) {
306
+ wrapped[name] = withFullValidation(handler, inputSchema, outputSchema, name);
307
+ }
308
+ else if (inputSchema !== undefined) {
309
+ wrapped[name] = withInputValidation(handler, inputSchema, name);
310
+ }
311
+ else if (outputSchema !== undefined) {
312
+ wrapped[name] = withValidation(handler, outputSchema, name);
313
+ }
314
+ else {
315
+ wrapped[name] = handler;
316
+ }
317
+ }
318
+ return wrapped;
319
+ }
320
+ /**
321
+ * Creates a type-safe tool handler
322
+ * Input is already validated by withInputValidation wrapper
323
+ *
324
+ * INV-MCP-001: Input has been validated before this handler is called
325
+ * INV-MCP-005: Input is frozen and MUST NOT be mutated
326
+ *
327
+ * @example
328
+ * ```typescript
329
+ * export const handleMemoryStore = createTypedHandler<MemoryStoreInput>((input) => {
330
+ * const { key, value, namespace } = input;
331
+ * // Type-safe access without casts!
332
+ * });
333
+ * ```
334
+ */
335
+ export function createTypedHandler(handler) {
336
+ // The wrapper will validate input before calling this
337
+ // We trust the input is validated and typed
338
+ return (args) => handler(args);
339
+ }
340
+ /**
341
+ * Extracts typed input from validated args
342
+ * Use when you can't use createTypedHandler pattern
343
+ *
344
+ * INV-MCP-001: Only use AFTER validation wrapper has run
345
+ *
346
+ * @example
347
+ * ```typescript
348
+ * export const handleTool: ToolHandler = (args) => {
349
+ * const input = getValidatedInput<MyInputType>(args);
350
+ * // Now input is properly typed
351
+ * };
352
+ * ```
353
+ */
354
+ export function getValidatedInput(args) {
355
+ // Input has been validated by wrapper - safe to cast
356
+ return args;
357
+ }
358
+ /**
359
+ * Creates a success response with JSON content
360
+ * INV-MCP-003: Consistent response format
361
+ */
362
+ export function createSuccessResponse(data) {
363
+ return {
364
+ content: [
365
+ {
366
+ type: 'text',
367
+ text: JSON.stringify(data, null, 2),
368
+ },
369
+ ],
370
+ };
371
+ }
372
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@defai.digital/mcp-server",
3
+ "version": "13.0.3",
4
+ "type": "module",
5
+ "description": "MCP (Model Context Protocol) server for AutomatosX - Exposes AI orchestration tools via MCP",
6
+ "license": "Apache-2.0",
7
+ "author": "DEFAI Private Limited",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/defai-digital/automatosx.git",
11
+ "directory": "packages/mcp-server"
12
+ },
13
+ "homepage": "https://github.com/defai-digital/automatosx#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/defai-digital/automatosx/issues"
16
+ },
17
+ "keywords": [
18
+ "mcp",
19
+ "model-context-protocol",
20
+ "automatosx",
21
+ "ai",
22
+ "llm",
23
+ "server"
24
+ ],
25
+ "main": "./dist/index.js",
26
+ "types": "./dist/index.d.ts",
27
+ "bin": {
28
+ "automatosx-mcp": "./dist/bin.js"
29
+ },
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "import": "./dist/index.js"
34
+ }
35
+ },
36
+ "files": [
37
+ "dist"
38
+ ],
39
+ "engines": {
40
+ "node": ">=20.0.0"
41
+ },
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "dependencies": {
46
+ "@modelcontextprotocol/sdk": "^1.0.0",
47
+ "hono": "^4.0.0",
48
+ "zod": "^3.22.4",
49
+ "@defai.digital/ability-domain": "13.0.3",
50
+ "@defai.digital/config-domain": "13.0.3",
51
+ "@defai.digital/agent-domain": "13.0.3",
52
+ "@defai.digital/contracts": "13.0.3",
53
+ "@defai.digital/discussion-domain": "13.0.3",
54
+ "@defai.digital/guard": "13.0.3",
55
+ "@defai.digital/provider-adapters": "13.0.3",
56
+ "@defai.digital/review-domain": "13.0.3",
57
+ "@defai.digital/memory-domain": "13.0.3",
58
+ "@defai.digital/routing-engine": "13.0.3",
59
+ "@defai.digital/trace-domain": "13.0.3",
60
+ "@defai.digital/session-domain": "13.0.3",
61
+ "@defai.digital/workflow-engine": "13.0.3"
62
+ },
63
+ "scripts": {
64
+ "build": "tsc --build",
65
+ "clean": "rm -rf dist *.tsbuildinfo"
66
+ }
67
+ }