@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,311 @@
1
+ import { getPolicy, listPolicies, resolvePolicy, executeGates, } from '@defai.digital/guard';
2
+ import { createSessionStore, } from '@defai.digital/session-domain';
3
+ import { LIMIT_GUARD_POLICIES } from '@defai.digital/contracts';
4
+ // Lazy-initialized session store for guard operations
5
+ let sessionStore = null;
6
+ function getSessionStore() {
7
+ if (sessionStore === null) {
8
+ sessionStore = createSessionStore();
9
+ }
10
+ return sessionStore;
11
+ }
12
+ /**
13
+ * Guard check tool definition
14
+ */
15
+ export const guardCheckTool = {
16
+ name: 'guard_check',
17
+ description: 'Run governance gates on changed paths against a policy',
18
+ idempotent: true,
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ policyId: {
23
+ type: 'string',
24
+ description: 'Policy ID (e.g., "bugfix", "rebuild", "provider-refactor")',
25
+ },
26
+ changedPaths: {
27
+ type: 'array',
28
+ description: 'List of file paths that were changed',
29
+ items: { type: 'string' },
30
+ },
31
+ target: {
32
+ type: 'string',
33
+ description: 'Target identifier (e.g., provider name for provider-refactor)',
34
+ },
35
+ },
36
+ required: ['policyId', 'changedPaths'],
37
+ },
38
+ outputSchema: {
39
+ type: 'object',
40
+ properties: {
41
+ status: {
42
+ type: 'string',
43
+ description: 'Overall result status (PASS, FAIL, WARN)',
44
+ enum: ['PASS', 'FAIL', 'WARN'],
45
+ },
46
+ policyId: { type: 'string', description: 'Policy that was checked' },
47
+ target: { type: 'string', description: 'Target that was checked' },
48
+ gates: {
49
+ type: 'array',
50
+ description: 'Individual gate results',
51
+ items: {
52
+ type: 'object',
53
+ properties: {
54
+ gate: { type: 'string' },
55
+ status: { type: 'string', enum: ['PASS', 'FAIL', 'WARN'] },
56
+ message: { type: 'string' },
57
+ },
58
+ },
59
+ },
60
+ summary: { type: 'string', description: 'Human-readable summary' },
61
+ suggestions: {
62
+ type: 'array',
63
+ description: 'Suggested actions for failures',
64
+ items: { type: 'string' },
65
+ },
66
+ timestamp: { type: 'string', description: 'Timestamp of check' },
67
+ },
68
+ required: ['status', 'policyId', 'target', 'gates', 'summary', 'suggestions', 'timestamp'],
69
+ },
70
+ };
71
+ /**
72
+ * Guard list tool definition
73
+ */
74
+ export const guardListTool = {
75
+ name: 'guard_list',
76
+ description: 'List available governance policies',
77
+ idempotent: true,
78
+ inputSchema: {
79
+ type: 'object',
80
+ properties: {
81
+ limit: {
82
+ type: 'number',
83
+ description: 'Maximum number of policies to return',
84
+ default: LIMIT_GUARD_POLICIES,
85
+ },
86
+ },
87
+ },
88
+ outputSchema: {
89
+ type: 'object',
90
+ properties: {
91
+ policies: {
92
+ type: 'array',
93
+ description: 'List of policy summaries',
94
+ items: {
95
+ type: 'object',
96
+ properties: {
97
+ policyId: { type: 'string' },
98
+ allowedPaths: { type: 'array', items: { type: 'string' } },
99
+ forbiddenPaths: { type: 'array', items: { type: 'string' } },
100
+ gates: { type: 'array', items: { type: 'string' } },
101
+ changeRadiusLimit: { type: 'number' },
102
+ },
103
+ },
104
+ },
105
+ total: { type: 'number', description: 'Total number of policies' },
106
+ },
107
+ required: ['policies', 'total'],
108
+ },
109
+ };
110
+ /**
111
+ * Guard apply tool definition
112
+ */
113
+ export const guardApplyTool = {
114
+ name: 'guard_apply',
115
+ description: 'Apply a governance policy to a session',
116
+ idempotent: true,
117
+ inputSchema: {
118
+ type: 'object',
119
+ properties: {
120
+ sessionId: {
121
+ type: 'string',
122
+ description: 'Session ID to apply the policy to',
123
+ },
124
+ policyId: {
125
+ type: 'string',
126
+ description: 'Policy ID to apply',
127
+ },
128
+ },
129
+ required: ['sessionId', 'policyId'],
130
+ },
131
+ outputSchema: {
132
+ type: 'object',
133
+ properties: {
134
+ applied: { type: 'boolean', description: 'Whether the policy was applied' },
135
+ sessionId: { type: 'string', description: 'Session ID' },
136
+ policyId: { type: 'string', description: 'Applied policy ID' },
137
+ message: { type: 'string', description: 'Result message' },
138
+ },
139
+ required: ['applied', 'sessionId', 'policyId', 'message'],
140
+ },
141
+ };
142
+ /**
143
+ * Handler for guard_check tool
144
+ */
145
+ export const handleGuardCheck = async (args) => {
146
+ const policyId = args.policyId;
147
+ const changedPaths = args.changedPaths;
148
+ const target = args.target ?? '';
149
+ try {
150
+ // Resolve policy to governance context
151
+ const context = resolvePolicy(policyId, target);
152
+ // Execute gates with provided changed paths
153
+ const result = await executeGates(context, changedPaths);
154
+ return {
155
+ content: [
156
+ {
157
+ type: 'text',
158
+ text: JSON.stringify(result, null, 2),
159
+ },
160
+ ],
161
+ };
162
+ }
163
+ catch (error) {
164
+ const message = error instanceof Error ? error.message : 'Unknown error';
165
+ return {
166
+ content: [
167
+ {
168
+ type: 'text',
169
+ text: JSON.stringify({
170
+ error: 'GUARD_CHECK_FAILED',
171
+ message,
172
+ policyId,
173
+ }),
174
+ },
175
+ ],
176
+ isError: true,
177
+ };
178
+ }
179
+ };
180
+ /**
181
+ * Handler for guard_list tool
182
+ */
183
+ export const handleGuardList = async (args) => {
184
+ const limit = args.limit ?? 20;
185
+ try {
186
+ // listPolicies returns string[] of policy IDs
187
+ const policyIds = listPolicies();
188
+ const policySummaries = policyIds.slice(0, limit).map((policyId) => {
189
+ const policy = getPolicy(policyId);
190
+ if (policy === undefined) {
191
+ return {
192
+ policyId,
193
+ allowedPaths: [],
194
+ forbiddenPaths: [],
195
+ gates: [],
196
+ changeRadiusLimit: 0,
197
+ };
198
+ }
199
+ return {
200
+ policyId: policy.policyId,
201
+ allowedPaths: policy.allowedPaths,
202
+ forbiddenPaths: policy.forbiddenPaths,
203
+ gates: policy.gates,
204
+ changeRadiusLimit: policy.changeRadiusLimit,
205
+ };
206
+ });
207
+ return {
208
+ content: [
209
+ {
210
+ type: 'text',
211
+ text: JSON.stringify({
212
+ policies: policySummaries,
213
+ total: policyIds.length,
214
+ }, null, 2),
215
+ },
216
+ ],
217
+ };
218
+ }
219
+ catch (error) {
220
+ const message = error instanceof Error ? error.message : 'Unknown error';
221
+ return {
222
+ content: [
223
+ {
224
+ type: 'text',
225
+ text: JSON.stringify({
226
+ error: 'GUARD_LIST_FAILED',
227
+ message,
228
+ }),
229
+ },
230
+ ],
231
+ isError: true,
232
+ };
233
+ }
234
+ };
235
+ /**
236
+ * Handler for guard_apply tool
237
+ *
238
+ * Applies a governance policy to a session, enabling policy-based
239
+ * validation of agent actions within that session.
240
+ */
241
+ export const handleGuardApply = async (args) => {
242
+ const sessionId = args.sessionId;
243
+ const policyId = args.policyId;
244
+ // Validate the policy exists
245
+ const policy = getPolicy(policyId);
246
+ if (policy === undefined) {
247
+ return {
248
+ content: [
249
+ {
250
+ type: 'text',
251
+ text: JSON.stringify({
252
+ error: 'POLICY_NOT_FOUND',
253
+ message: `Policy "${policyId}" not found`,
254
+ availablePolicies: listPolicies(),
255
+ }),
256
+ },
257
+ ],
258
+ isError: true,
259
+ };
260
+ }
261
+ // Get session store and apply policy
262
+ const store = getSessionStore();
263
+ const session = await store.get(sessionId);
264
+ if (session === undefined) {
265
+ return {
266
+ content: [
267
+ {
268
+ type: 'text',
269
+ text: JSON.stringify({
270
+ error: 'SESSION_NOT_FOUND',
271
+ message: `Session "${sessionId}" not found`,
272
+ }),
273
+ },
274
+ ],
275
+ isError: true,
276
+ };
277
+ }
278
+ try {
279
+ // Apply the policy to the session
280
+ const updatedSession = await store.applyPolicy(sessionId, policyId);
281
+ return {
282
+ content: [
283
+ {
284
+ type: 'text',
285
+ text: JSON.stringify({
286
+ applied: true,
287
+ sessionId,
288
+ policyId,
289
+ appliedPolicies: updatedSession.appliedPolicies,
290
+ message: `Policy '${policyId}' applied to session '${sessionId}'`,
291
+ }),
292
+ },
293
+ ],
294
+ };
295
+ }
296
+ catch (error) {
297
+ return {
298
+ content: [
299
+ {
300
+ type: 'text',
301
+ text: JSON.stringify({
302
+ error: 'POLICY_APPLY_FAILED',
303
+ message: error instanceof Error ? error.message : 'Unknown error',
304
+ }),
305
+ },
306
+ ],
307
+ isError: true,
308
+ };
309
+ }
310
+ };
311
+ //# sourceMappingURL=guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/tools/guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { MCPTool, ToolHandler } from '../types.js';
2
+ export { workflowRunTool, workflowListTool, workflowDescribeTool, handleWorkflowRun, handleWorkflowList, handleWorkflowDescribe, } from './workflow.js';
3
+ export { traceListTool, traceGetTool, traceAnalyzeTool, handleTraceList, handleTraceGet, handleTraceAnalyze, } from './trace.js';
4
+ export { memoryStoreTool, memoryRetrieveTool, memorySearchTool, memoryListTool, memoryDeleteTool, handleMemoryStore, handleMemoryRetrieve, handleMemorySearch, handleMemoryList, handleMemoryDelete, } from './memory.js';
5
+ export { guardCheckTool, guardListTool, guardApplyTool, handleGuardCheck, handleGuardList, handleGuardApply, } from './guard.js';
6
+ export { agentListTool, agentRunTool, agentGetTool, agentRegisterTool, agentRemoveTool, agentRecommendTool, agentCapabilitiesTool, handleAgentList, handleAgentRun, handleAgentGet, handleAgentRegister, handleAgentRemove, handleAgentRecommend, handleAgentCapabilities, } from './agent.js';
7
+ export { abilityListTool, abilityInjectTool, handleAbilityList, handleAbilityInject, } from './ability.js';
8
+ export { sessionCreateTool, sessionStatusTool, sessionCompleteTool, sessionListTool, sessionJoinTool, sessionLeaveTool, sessionFailTool, handleSessionCreate, handleSessionStatus, handleSessionComplete, handleSessionList, handleSessionJoin, handleSessionLeave, handleSessionFail, } from './session.js';
9
+ export { configGetTool, configSetTool, configShowTool, handleConfigGet, handleConfigSet, handleConfigShow, } from './config.js';
10
+ export { reviewAnalyzeTool, reviewListTool, handleReviewAnalyze, handleReviewList, } from './review.js';
11
+ export { fileWriteTool, directoryCreateTool, fileExistsTool, handleFileWrite, handleDirectoryCreate, handleFileExists, FILE_SYSTEM_TOOLS, FILE_SYSTEM_HANDLERS, } from './file-system.js';
12
+ export { scaffoldContractTool, scaffoldDomainTool, scaffoldGuardTool, handleScaffoldContract, handleScaffoldDomain, handleScaffoldGuard, SCAFFOLD_TOOLS, SCAFFOLD_HANDLERS, } from './scaffold.js';
13
+ export { discussTool, discussQuickTool, handleDiscuss, handleDiscussQuick, DISCUSS_TOOLS, DISCUSS_HANDLERS, } from './discuss.js';
14
+ /**
15
+ * All available tools (44 total)
16
+ *
17
+ * Removed tools:
18
+ * - design_* (5): LLM generates OpenAPI/Zod/diagrams natively
19
+ * - task_*, queue_* (7): Advanced orchestration, most users don't need
20
+ * - metrics_*, timer_*, telemetry_* (7): Observability, not core function
21
+ * - memory_export, memory_import, memory_stats, memory_bulk_delete, memory_clear (5): Rare admin ops
22
+ * - ability_get, ability_register, ability_remove (3): Use CLI for setup, not runtime
23
+ * - bugfix_* (3): Replaced by review_analyze --focus correctness
24
+ * - refactor_* (3): Replaced by review_analyze --focus maintainability
25
+ */
26
+ export declare const ALL_TOOLS: MCPTool[];
27
+ /**
28
+ * Tool handlers wrapped with input validation (INV-MCP-001)
29
+ *
30
+ * All handlers are wrapped to enforce input validation BEFORE execution.
31
+ * Handlers with schemas in INPUT_SCHEMAS get Zod validation.
32
+ * Handlers without schemas pass through unchanged (with a warning logged).
33
+ */
34
+ export declare const TOOL_HANDLERS: Record<string, ToolHandler>;
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAKxD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAC;AA6HtB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,EAAE,OAAO,EAwD9B,CAAC;AAgEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAGrD,CAAC"}
@@ -0,0 +1,178 @@
1
+ import { wrapHandlersWithInputValidation } from '../validation.js';
2
+ import { INPUT_SCHEMAS } from '../schema-registry.js';
3
+ // Workflow tools
4
+ export { workflowRunTool, workflowListTool, workflowDescribeTool, handleWorkflowRun, handleWorkflowList, handleWorkflowDescribe, } from './workflow.js';
5
+ // Trace tools
6
+ export { traceListTool, traceGetTool, traceAnalyzeTool, handleTraceList, handleTraceGet, handleTraceAnalyze, } from './trace.js';
7
+ // Memory tools (core only - admin tools removed)
8
+ export { memoryStoreTool, memoryRetrieveTool, memorySearchTool, memoryListTool, memoryDeleteTool, handleMemoryStore, handleMemoryRetrieve, handleMemorySearch, handleMemoryList, handleMemoryDelete, } from './memory.js';
9
+ // Guard tools
10
+ export { guardCheckTool, guardListTool, guardApplyTool, handleGuardCheck, handleGuardList, handleGuardApply, } from './guard.js';
11
+ // Agent tools
12
+ export { agentListTool, agentRunTool, agentGetTool, agentRegisterTool, agentRemoveTool, agentRecommendTool, agentCapabilitiesTool, handleAgentList, handleAgentRun, handleAgentGet, handleAgentRegister, handleAgentRemove, handleAgentRecommend, handleAgentCapabilities, } from './agent.js';
13
+ // Ability tools (core only - admin tools moved to CLI)
14
+ export { abilityListTool, abilityInjectTool, handleAbilityList, handleAbilityInject, } from './ability.js';
15
+ // Session tools
16
+ export { sessionCreateTool, sessionStatusTool, sessionCompleteTool, sessionListTool, sessionJoinTool, sessionLeaveTool, sessionFailTool, handleSessionCreate, handleSessionStatus, handleSessionComplete, handleSessionList, handleSessionJoin, handleSessionLeave, handleSessionFail, } from './session.js';
17
+ // Config tools
18
+ export { configGetTool, configSetTool, configShowTool, handleConfigGet, handleConfigSet, handleConfigShow, } from './config.js';
19
+ // Review tools (replaces bugfix and refactor)
20
+ export { reviewAnalyzeTool, reviewListTool, handleReviewAnalyze, handleReviewList, } from './review.js';
21
+ // File System tools
22
+ export { fileWriteTool, directoryCreateTool, fileExistsTool, handleFileWrite, handleDirectoryCreate, handleFileExists, FILE_SYSTEM_TOOLS, FILE_SYSTEM_HANDLERS, } from './file-system.js';
23
+ // Scaffold tools
24
+ export { scaffoldContractTool, scaffoldDomainTool, scaffoldGuardTool, handleScaffoldContract, handleScaffoldDomain, handleScaffoldGuard, SCAFFOLD_TOOLS, SCAFFOLD_HANDLERS, } from './scaffold.js';
25
+ // Discuss tools
26
+ export { discussTool, discussQuickTool, handleDiscuss, handleDiscussQuick, DISCUSS_TOOLS, DISCUSS_HANDLERS, } from './discuss.js';
27
+ // Re-export for convenience
28
+ import { workflowRunTool, workflowListTool, workflowDescribeTool, handleWorkflowRun, handleWorkflowList, handleWorkflowDescribe, } from './workflow.js';
29
+ import { traceListTool, traceGetTool, traceAnalyzeTool, handleTraceList, handleTraceGet, handleTraceAnalyze, } from './trace.js';
30
+ import { memoryStoreTool, memoryRetrieveTool, memorySearchTool, memoryListTool, memoryDeleteTool, handleMemoryStore, handleMemoryRetrieve, handleMemorySearch, handleMemoryList, handleMemoryDelete, } from './memory.js';
31
+ import { guardCheckTool, guardListTool, guardApplyTool, handleGuardCheck, handleGuardList, handleGuardApply, } from './guard.js';
32
+ import { agentListTool, agentRunTool, agentGetTool, agentRegisterTool, agentRemoveTool, agentRecommendTool, agentCapabilitiesTool, handleAgentList, handleAgentRun, handleAgentGet, handleAgentRegister, handleAgentRemove, handleAgentRecommend, handleAgentCapabilities, } from './agent.js';
33
+ import { abilityListTool, abilityInjectTool, handleAbilityList, handleAbilityInject, } from './ability.js';
34
+ import { sessionCreateTool, sessionStatusTool, sessionCompleteTool, sessionListTool, sessionJoinTool, sessionLeaveTool, sessionFailTool, handleSessionCreate, handleSessionStatus, handleSessionComplete, handleSessionList, handleSessionJoin, handleSessionLeave, handleSessionFail, } from './session.js';
35
+ import { configGetTool, configSetTool, configShowTool, handleConfigGet, handleConfigSet, handleConfigShow, } from './config.js';
36
+ import { reviewAnalyzeTool, reviewListTool, handleReviewAnalyze, handleReviewList, } from './review.js';
37
+ import { fileWriteTool, directoryCreateTool, fileExistsTool, handleFileWrite, handleDirectoryCreate, handleFileExists, } from './file-system.js';
38
+ import { scaffoldContractTool, scaffoldDomainTool, scaffoldGuardTool, handleScaffoldContract, handleScaffoldDomain, handleScaffoldGuard, } from './scaffold.js';
39
+ import { discussTool, discussQuickTool, handleDiscuss, handleDiscussQuick, } from './discuss.js';
40
+ /**
41
+ * All available tools (44 total)
42
+ *
43
+ * Removed tools:
44
+ * - design_* (5): LLM generates OpenAPI/Zod/diagrams natively
45
+ * - task_*, queue_* (7): Advanced orchestration, most users don't need
46
+ * - metrics_*, timer_*, telemetry_* (7): Observability, not core function
47
+ * - memory_export, memory_import, memory_stats, memory_bulk_delete, memory_clear (5): Rare admin ops
48
+ * - ability_get, ability_register, ability_remove (3): Use CLI for setup, not runtime
49
+ * - bugfix_* (3): Replaced by review_analyze --focus correctness
50
+ * - refactor_* (3): Replaced by review_analyze --focus maintainability
51
+ */
52
+ export const ALL_TOOLS = [
53
+ // Workflow tools (3)
54
+ workflowRunTool,
55
+ workflowListTool,
56
+ workflowDescribeTool,
57
+ // Trace tools (3)
58
+ traceListTool,
59
+ traceGetTool,
60
+ traceAnalyzeTool,
61
+ // Memory tools (5) - core only
62
+ memoryStoreTool,
63
+ memoryRetrieveTool,
64
+ memorySearchTool,
65
+ memoryListTool,
66
+ memoryDeleteTool,
67
+ // Guard tools (3)
68
+ guardCheckTool,
69
+ guardListTool,
70
+ guardApplyTool,
71
+ // Agent tools (7) - includes recommend and capabilities
72
+ agentListTool,
73
+ agentRunTool,
74
+ agentGetTool,
75
+ agentRegisterTool,
76
+ agentRemoveTool,
77
+ agentRecommendTool,
78
+ agentCapabilitiesTool,
79
+ // Ability tools (2) - core only
80
+ abilityListTool,
81
+ abilityInjectTool,
82
+ // Session tools (7)
83
+ sessionCreateTool,
84
+ sessionStatusTool,
85
+ sessionCompleteTool,
86
+ sessionListTool,
87
+ sessionJoinTool,
88
+ sessionLeaveTool,
89
+ sessionFailTool,
90
+ // Config tools (3)
91
+ configGetTool,
92
+ configSetTool,
93
+ configShowTool,
94
+ // Review tools (2) - replaces bugfix and refactor
95
+ reviewAnalyzeTool,
96
+ reviewListTool,
97
+ // File System tools (3)
98
+ fileWriteTool,
99
+ directoryCreateTool,
100
+ fileExistsTool,
101
+ // Scaffold tools (3)
102
+ scaffoldContractTool,
103
+ scaffoldDomainTool,
104
+ scaffoldGuardTool,
105
+ // Discuss tools (2)
106
+ discussTool,
107
+ discussQuickTool,
108
+ ];
109
+ /**
110
+ * Raw tool handlers by name (44 handlers)
111
+ * These are the unwrapped handlers - use TOOL_HANDLERS for production
112
+ */
113
+ const RAW_HANDLERS = {
114
+ // Workflow handlers (3)
115
+ workflow_run: handleWorkflowRun,
116
+ workflow_list: handleWorkflowList,
117
+ workflow_describe: handleWorkflowDescribe,
118
+ // Trace handlers (3)
119
+ trace_list: handleTraceList,
120
+ trace_get: handleTraceGet,
121
+ trace_analyze: handleTraceAnalyze,
122
+ // Memory handlers (5) - core only
123
+ memory_store: handleMemoryStore,
124
+ memory_retrieve: handleMemoryRetrieve,
125
+ memory_search: handleMemorySearch,
126
+ memory_list: handleMemoryList,
127
+ memory_delete: handleMemoryDelete,
128
+ // Guard handlers (3)
129
+ guard_check: handleGuardCheck,
130
+ guard_list: handleGuardList,
131
+ guard_apply: handleGuardApply,
132
+ // Agent handlers (7) - includes recommend and capabilities
133
+ agent_list: handleAgentList,
134
+ agent_run: handleAgentRun,
135
+ agent_get: handleAgentGet,
136
+ agent_register: handleAgentRegister,
137
+ agent_remove: handleAgentRemove,
138
+ agent_recommend: handleAgentRecommend,
139
+ agent_capabilities: handleAgentCapabilities,
140
+ // Ability handlers (2) - core only
141
+ ability_list: handleAbilityList,
142
+ ability_inject: handleAbilityInject,
143
+ // Session handlers (7)
144
+ session_create: handleSessionCreate,
145
+ session_status: handleSessionStatus,
146
+ session_complete: handleSessionComplete,
147
+ session_list: handleSessionList,
148
+ session_join: handleSessionJoin,
149
+ session_leave: handleSessionLeave,
150
+ session_fail: handleSessionFail,
151
+ // Config handlers (3)
152
+ config_get: handleConfigGet,
153
+ config_set: handleConfigSet,
154
+ config_show: handleConfigShow,
155
+ // Review handlers (2) - replaces bugfix and refactor
156
+ review_analyze: handleReviewAnalyze,
157
+ review_list: handleReviewList,
158
+ // File System handlers (3)
159
+ file_write: handleFileWrite,
160
+ directory_create: handleDirectoryCreate,
161
+ file_exists: handleFileExists,
162
+ // Scaffold handlers (3)
163
+ scaffold_contract: handleScaffoldContract,
164
+ scaffold_domain: handleScaffoldDomain,
165
+ scaffold_guard: handleScaffoldGuard,
166
+ // Discuss handlers (2)
167
+ discuss: handleDiscuss,
168
+ discuss_quick: handleDiscussQuick,
169
+ };
170
+ /**
171
+ * Tool handlers wrapped with input validation (INV-MCP-001)
172
+ *
173
+ * All handlers are wrapped to enforce input validation BEFORE execution.
174
+ * Handlers with schemas in INPUT_SCHEMAS get Zod validation.
175
+ * Handlers without schemas pass through unchanged (with a warning logged).
176
+ */
177
+ export const TOOL_HANDLERS = wrapHandlersWithInputValidation(RAW_HANDLERS, INPUT_SCHEMAS);
178
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import type { MCPTool, ToolHandler } from '../types.js';
2
+ /**
3
+ * Memory store tool definition
4
+ * INV-MCP-004: Idempotent - storing same key/value is safe to retry
5
+ */
6
+ export declare const memoryStoreTool: MCPTool;
7
+ /**
8
+ * Memory retrieve tool definition
9
+ * INV-MCP-004: Idempotent - read-only operation
10
+ */
11
+ export declare const memoryRetrieveTool: MCPTool;
12
+ /**
13
+ * Memory search tool definition
14
+ * INV-MCP-004: Idempotent - read-only operation
15
+ */
16
+ export declare const memorySearchTool: MCPTool;
17
+ /**
18
+ * Memory list tool definition
19
+ * INV-MCP-004: Idempotent - read-only operation
20
+ */
21
+ export declare const memoryListTool: MCPTool;
22
+ /**
23
+ * Memory delete tool definition
24
+ * INV-MCP-004: Idempotent - deleting non-existent key returns deleted=false
25
+ * INV-MCP-002: Side effects - removes key from memory store
26
+ */
27
+ export declare const memoryDeleteTool: MCPTool;
28
+ /**
29
+ * Handler for memory_store tool
30
+ */
31
+ export declare const handleMemoryStore: ToolHandler;
32
+ /**
33
+ * Handler for memory_retrieve tool
34
+ */
35
+ export declare const handleMemoryRetrieve: ToolHandler;
36
+ /**
37
+ * Handler for memory_search tool
38
+ */
39
+ export declare const handleMemorySearch: ToolHandler;
40
+ /**
41
+ * Handler for memory_list tool
42
+ * INV-MCP-MEM-001: Keys returned in storage order (oldest first)
43
+ * INV-MCP-MEM-002: Namespace filter is exact match
44
+ * INV-MCP-MEM-003: Prefix filter is case-sensitive
45
+ */
46
+ export declare const handleMemoryList: ToolHandler;
47
+ /**
48
+ * Handler for memory_delete tool
49
+ * INV-MCP-MEM-004: Delete is idempotent (deleting non-existent key returns deleted=false)
50
+ * INV-MCP-MEM-005: Delete emits trace event with key info
51
+ */
52
+ export declare const handleMemoryDelete: ToolHandler;
53
+ /**
54
+ * Memory export tool definition
55
+ * INV-MCP-004: Idempotent - read-only operation
56
+ */
57
+ export declare const memoryExportTool: MCPTool;
58
+ /**
59
+ * Memory import tool definition
60
+ * INV-MCP-004: Non-idempotent without overwrite flag
61
+ * INV-MCP-002: Side effects - writes entries to memory store
62
+ */
63
+ export declare const memoryImportTool: MCPTool;
64
+ /**
65
+ * Memory stats tool definition
66
+ * INV-MCP-004: Idempotent - read-only operation
67
+ */
68
+ export declare const memoryStatsTool: MCPTool;
69
+ /**
70
+ * Memory bulk delete tool definition
71
+ * INV-MCP-004: Idempotent - deleting non-existent keys is safe
72
+ * INV-MCP-002: Side effects - removes multiple keys from memory store
73
+ */
74
+ export declare const memoryBulkDeleteTool: MCPTool;
75
+ /**
76
+ * Memory clear tool definition
77
+ * INV-MCP-004: Idempotent - clearing empty namespace returns cleared=0
78
+ * INV-MCP-002: Side effects - removes all entries in namespace
79
+ */
80
+ export declare const memoryClearTool: MCPTool;
81
+ /**
82
+ * Handler for memory_export tool
83
+ */
84
+ export declare const handleMemoryExport: ToolHandler;
85
+ /**
86
+ * Handler for memory_import tool
87
+ */
88
+ export declare const handleMemoryImport: ToolHandler;
89
+ /**
90
+ * Handler for memory_stats tool
91
+ */
92
+ export declare const handleMemoryStats: ToolHandler;
93
+ /**
94
+ * Handler for memory_bulk_delete tool
95
+ */
96
+ export declare const handleMemoryBulkDelete: ToolHandler;
97
+ /**
98
+ * Handler for memory_clear tool
99
+ */
100
+ export declare const handleMemoryClear: ToolHandler;
101
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGxD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,OAuB7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAkBhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAuB9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OAsB5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAkB9B,CAAC;AAKF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAsC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAwClC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAiDhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAkD9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,WA4BhC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAsB9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAgC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,OAkB7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAsBlC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,OAkB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAuDhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WA2ChC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAkD/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAqDpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WA+C/B,CAAC"}