@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,560 @@
1
+ /**
2
+ * Ability MCP Tools
3
+ *
4
+ * Tools for managing abilities - reusable knowledge modules for agents.
5
+ * Uses the shared registry from registry-accessor.ts for unified ability management.
6
+ */
7
+ import { LIMIT_AGENTS, LIMIT_ABILITIES_INJECT, LIMIT_ABILITY_TOKENS, PRIORITY_DEFAULT, } from '@defai.digital/contracts';
8
+ // Import from registry-accessor to avoid circular dependencies
9
+ import { getSharedAbilityRegistry, getSharedAbilityManager, } from '../registry-accessor.js';
10
+ // ============================================================================
11
+ // Tool Definitions
12
+ // ============================================================================
13
+ /**
14
+ * Ability list tool definition
15
+ * INV-MCP-004: Idempotent - read-only operation
16
+ */
17
+ export const abilityListTool = {
18
+ name: 'ability_list',
19
+ description: 'List available abilities with optional filtering. Read-only, no side effects.',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ category: {
24
+ type: 'string',
25
+ description: 'Filter by category (e.g., "languages", "engineering")',
26
+ },
27
+ tags: {
28
+ type: 'array',
29
+ items: { type: 'string' },
30
+ description: 'Filter by tags (returns abilities matching any tag)',
31
+ },
32
+ enabled: {
33
+ type: 'boolean',
34
+ description: 'Filter by enabled status',
35
+ },
36
+ limit: {
37
+ type: 'number',
38
+ description: 'Maximum number of abilities to return',
39
+ default: LIMIT_AGENTS,
40
+ },
41
+ },
42
+ },
43
+ outputSchema: {
44
+ type: 'object',
45
+ properties: {
46
+ abilities: {
47
+ type: 'array',
48
+ description: 'List of ability summaries',
49
+ items: {
50
+ type: 'object',
51
+ properties: {
52
+ abilityId: { type: 'string' },
53
+ displayName: { type: 'string' },
54
+ description: { type: 'string' },
55
+ category: { type: 'string' },
56
+ tags: { type: 'array', items: { type: 'string' } },
57
+ priority: { type: 'number' },
58
+ enabled: { type: 'boolean' },
59
+ },
60
+ },
61
+ },
62
+ total: { type: 'number', description: 'Total number of abilities' },
63
+ },
64
+ required: ['abilities', 'total'],
65
+ },
66
+ idempotent: true,
67
+ };
68
+ /**
69
+ * Ability get tool definition
70
+ * INV-MCP-004: Idempotent - read-only operation
71
+ */
72
+ export const abilityGetTool = {
73
+ name: 'ability_get',
74
+ description: 'Get detailed information about a specific ability. Read-only, no side effects.',
75
+ inputSchema: {
76
+ type: 'object',
77
+ properties: {
78
+ abilityId: {
79
+ type: 'string',
80
+ description: 'The ID of the ability to retrieve',
81
+ },
82
+ },
83
+ required: ['abilityId'],
84
+ },
85
+ outputSchema: {
86
+ type: 'object',
87
+ properties: {
88
+ abilityId: { type: 'string' },
89
+ displayName: { type: 'string' },
90
+ version: { type: 'string' },
91
+ description: { type: 'string' },
92
+ category: { type: 'string' },
93
+ tags: { type: 'array', items: { type: 'string' } },
94
+ content: { type: 'string' },
95
+ author: { type: 'string' },
96
+ source: { type: 'string' },
97
+ requires: { type: 'array', items: { type: 'string' } },
98
+ conflicts: { type: 'array', items: { type: 'string' } },
99
+ applicableTo: { type: 'array', items: { type: 'string' } },
100
+ excludeFrom: { type: 'array', items: { type: 'string' } },
101
+ priority: { type: 'number' },
102
+ enabled: { type: 'boolean' },
103
+ },
104
+ required: ['abilityId', 'content', 'enabled'],
105
+ },
106
+ idempotent: true,
107
+ };
108
+ /**
109
+ * Ability inject tool definition
110
+ * INV-MCP-004: Idempotent - returns computed content, no state changes
111
+ */
112
+ export const abilityInjectTool = {
113
+ name: 'ability_inject',
114
+ description: 'Inject relevant abilities into a prompt based on task. Returns combined ability content for agent context. Read-only, no side effects.',
115
+ inputSchema: {
116
+ type: 'object',
117
+ properties: {
118
+ agentId: {
119
+ type: 'string',
120
+ description: 'The agent ID for applicability filtering',
121
+ },
122
+ task: {
123
+ type: 'string',
124
+ description: 'The task description to match abilities against',
125
+ },
126
+ coreAbilities: {
127
+ type: 'array',
128
+ items: { type: 'string' },
129
+ description: 'Core ability IDs to always include',
130
+ },
131
+ maxAbilities: {
132
+ type: 'number',
133
+ description: 'Maximum number of abilities to inject',
134
+ default: LIMIT_ABILITIES_INJECT,
135
+ },
136
+ maxTokens: {
137
+ type: 'number',
138
+ description: 'Maximum total tokens for injected content',
139
+ default: LIMIT_ABILITY_TOKENS,
140
+ },
141
+ includeMetadata: {
142
+ type: 'boolean',
143
+ description: 'Include ability headers in combined content',
144
+ default: false,
145
+ },
146
+ },
147
+ required: ['agentId', 'task'],
148
+ },
149
+ outputSchema: {
150
+ type: 'object',
151
+ properties: {
152
+ agentId: { type: 'string' },
153
+ injectedAbilities: { type: 'array', items: { type: 'string' } },
154
+ combinedContent: { type: 'string' },
155
+ tokenCount: { type: 'number' },
156
+ truncated: { type: 'boolean' },
157
+ },
158
+ required: ['agentId', 'injectedAbilities', 'combinedContent'],
159
+ },
160
+ idempotent: true,
161
+ };
162
+ /**
163
+ * Ability register tool definition
164
+ * INV-MCP-004: Non-idempotent - creates new ability
165
+ * INV-MCP-002: Side effects - modifies ability registry
166
+ */
167
+ export const abilityRegisterTool = {
168
+ name: 'ability_register',
169
+ description: 'Register a new ability. SIDE EFFECTS: Creates new ability in registry. Overwrites if ability already exists.',
170
+ inputSchema: {
171
+ type: 'object',
172
+ properties: {
173
+ abilityId: {
174
+ type: 'string',
175
+ description: 'Unique identifier (lowercase, dashes allowed)',
176
+ },
177
+ content: {
178
+ type: 'string',
179
+ description: 'The ability content/knowledge (max 50000 chars)',
180
+ },
181
+ displayName: {
182
+ type: 'string',
183
+ description: 'Human-readable display name',
184
+ },
185
+ description: {
186
+ type: 'string',
187
+ description: 'Brief description of the ability',
188
+ },
189
+ category: {
190
+ type: 'string',
191
+ description: 'Category for organization',
192
+ },
193
+ tags: {
194
+ type: 'array',
195
+ items: { type: 'string' },
196
+ description: 'Tags for filtering and matching',
197
+ },
198
+ priority: {
199
+ type: 'number',
200
+ description: 'Priority for load order (1-100)',
201
+ default: PRIORITY_DEFAULT,
202
+ },
203
+ enabled: {
204
+ type: 'boolean',
205
+ description: 'Whether ability is enabled',
206
+ default: true,
207
+ },
208
+ applicableTo: {
209
+ type: 'array',
210
+ items: { type: 'string' },
211
+ description: 'Agent IDs this ability applies to (* for all)',
212
+ },
213
+ excludeFrom: {
214
+ type: 'array',
215
+ items: { type: 'string' },
216
+ description: 'Agent IDs to exclude this ability from',
217
+ },
218
+ },
219
+ required: ['abilityId', 'content'],
220
+ },
221
+ outputSchema: {
222
+ type: 'object',
223
+ properties: {
224
+ registered: { type: 'boolean' },
225
+ abilityId: { type: 'string' },
226
+ message: { type: 'string' },
227
+ },
228
+ required: ['registered', 'abilityId', 'message'],
229
+ },
230
+ idempotent: false,
231
+ };
232
+ /**
233
+ * Ability remove tool definition
234
+ * INV-MCP-004: Idempotent - removing non-existent ability returns removed=false
235
+ * INV-MCP-002: Side effects - deletes ability from registry
236
+ */
237
+ export const abilityRemoveTool = {
238
+ name: 'ability_remove',
239
+ description: 'Remove an ability from the registry. SIDE EFFECTS: Deletes ability. Idempotent - removing non-existent ability returns removed=false.',
240
+ inputSchema: {
241
+ type: 'object',
242
+ properties: {
243
+ abilityId: {
244
+ type: 'string',
245
+ description: 'The ID of the ability to remove',
246
+ },
247
+ },
248
+ required: ['abilityId'],
249
+ },
250
+ outputSchema: {
251
+ type: 'object',
252
+ properties: {
253
+ removed: { type: 'boolean' },
254
+ abilityId: { type: 'string' },
255
+ message: { type: 'string' },
256
+ },
257
+ required: ['removed', 'abilityId', 'message'],
258
+ },
259
+ idempotent: true,
260
+ };
261
+ // ============================================================================
262
+ // Tool Handlers
263
+ // ============================================================================
264
+ /**
265
+ * Handler for ability_list tool
266
+ */
267
+ export const handleAbilityList = async (args) => {
268
+ const category = args.category;
269
+ const tags = args.tags;
270
+ const enabled = args.enabled;
271
+ const limit = args.limit ?? 50;
272
+ try {
273
+ const registry = await getSharedAbilityRegistry();
274
+ // Build filter
275
+ const filter = {};
276
+ if (category !== undefined)
277
+ filter.category = category;
278
+ if (tags !== undefined && tags.length > 0)
279
+ filter.tags = tags;
280
+ if (enabled !== undefined)
281
+ filter.enabled = enabled;
282
+ const abilities = await registry.list(Object.keys(filter).length > 0 ? filter : undefined);
283
+ const abilitySummaries = abilities.slice(0, limit).map((a) => ({
284
+ abilityId: a.abilityId,
285
+ displayName: a.displayName,
286
+ description: a.description,
287
+ category: a.category,
288
+ tags: a.tags,
289
+ priority: a.priority,
290
+ enabled: a.enabled,
291
+ }));
292
+ return {
293
+ content: [
294
+ {
295
+ type: 'text',
296
+ text: JSON.stringify({
297
+ abilities: abilitySummaries,
298
+ total: abilities.length,
299
+ }, null, 2),
300
+ },
301
+ ],
302
+ };
303
+ }
304
+ catch (error) {
305
+ const message = error instanceof Error ? error.message : 'Unknown error';
306
+ return {
307
+ content: [
308
+ {
309
+ type: 'text',
310
+ text: JSON.stringify({
311
+ error: 'ABILITY_LIST_FAILED',
312
+ message,
313
+ }),
314
+ },
315
+ ],
316
+ isError: true,
317
+ };
318
+ }
319
+ };
320
+ /**
321
+ * Handler for ability_get tool
322
+ */
323
+ export const handleAbilityGet = async (args) => {
324
+ const abilityId = args.abilityId;
325
+ try {
326
+ const registry = await getSharedAbilityRegistry();
327
+ const ability = await registry.get(abilityId);
328
+ if (ability === undefined) {
329
+ return {
330
+ content: [
331
+ {
332
+ type: 'text',
333
+ text: JSON.stringify({
334
+ error: 'ABILITY_NOT_FOUND',
335
+ message: `Ability "${abilityId}" not found`,
336
+ }),
337
+ },
338
+ ],
339
+ isError: true,
340
+ };
341
+ }
342
+ return {
343
+ content: [
344
+ {
345
+ type: 'text',
346
+ text: JSON.stringify({
347
+ abilityId: ability.abilityId,
348
+ displayName: ability.displayName,
349
+ version: ability.version,
350
+ description: ability.description,
351
+ category: ability.category,
352
+ tags: ability.tags,
353
+ content: ability.content,
354
+ author: ability.author,
355
+ source: ability.source,
356
+ requires: ability.requires,
357
+ conflicts: ability.conflicts,
358
+ applicableTo: ability.applicableTo,
359
+ excludeFrom: ability.excludeFrom,
360
+ priority: ability.priority,
361
+ enabled: ability.enabled,
362
+ }, null, 2),
363
+ },
364
+ ],
365
+ };
366
+ }
367
+ catch (error) {
368
+ const message = error instanceof Error ? error.message : 'Unknown error';
369
+ return {
370
+ content: [
371
+ {
372
+ type: 'text',
373
+ text: JSON.stringify({
374
+ error: 'ABILITY_GET_FAILED',
375
+ message,
376
+ }),
377
+ },
378
+ ],
379
+ isError: true,
380
+ };
381
+ }
382
+ };
383
+ /**
384
+ * Handler for ability_inject tool
385
+ */
386
+ export const handleAbilityInject = async (args) => {
387
+ const agentId = args.agentId;
388
+ const task = args.task;
389
+ const coreAbilities = args.coreAbilities;
390
+ const maxAbilities = args.maxAbilities;
391
+ const maxTokens = args.maxTokens;
392
+ const includeMetadata = args.includeMetadata ?? false;
393
+ try {
394
+ const manager = await getSharedAbilityManager();
395
+ // Build options object with only defined values
396
+ const options = {};
397
+ if (maxAbilities !== undefined)
398
+ options.maxAbilities = maxAbilities;
399
+ if (maxTokens !== undefined)
400
+ options.maxTokens = maxTokens;
401
+ options.includeMetadata = includeMetadata;
402
+ const result = await manager.injectAbilities(agentId, task, coreAbilities, options);
403
+ return {
404
+ content: [
405
+ {
406
+ type: 'text',
407
+ text: JSON.stringify({
408
+ agentId: result.agentId,
409
+ injectedAbilities: result.injectedAbilities,
410
+ combinedContent: result.combinedContent,
411
+ tokenCount: result.tokenCount,
412
+ truncated: result.truncated,
413
+ }, null, 2),
414
+ },
415
+ ],
416
+ };
417
+ }
418
+ catch (error) {
419
+ const message = error instanceof Error ? error.message : 'Unknown error';
420
+ return {
421
+ content: [
422
+ {
423
+ type: 'text',
424
+ text: JSON.stringify({
425
+ error: 'ABILITY_INJECT_FAILED',
426
+ message,
427
+ }),
428
+ },
429
+ ],
430
+ isError: true,
431
+ };
432
+ }
433
+ };
434
+ /**
435
+ * Handler for ability_register tool
436
+ */
437
+ export const handleAbilityRegister = async (args) => {
438
+ const abilityId = args.abilityId;
439
+ const content = args.content;
440
+ const displayName = args.displayName;
441
+ const description = args.description;
442
+ const category = args.category;
443
+ const tags = args.tags;
444
+ const priority = args.priority ?? 50;
445
+ const enabled = args.enabled ?? true;
446
+ const applicableTo = args.applicableTo;
447
+ const excludeFrom = args.excludeFrom;
448
+ try {
449
+ // Validate abilityId format
450
+ const abilityIdPattern = /^[a-z][a-z0-9-]*$/;
451
+ if (!abilityIdPattern.test(abilityId)) {
452
+ return {
453
+ content: [
454
+ {
455
+ type: 'text',
456
+ text: JSON.stringify({
457
+ error: 'INVALID_ABILITY_ID',
458
+ message: 'Ability ID must start with lowercase letter and contain only lowercase, digits, and dashes',
459
+ }),
460
+ },
461
+ ],
462
+ isError: true,
463
+ };
464
+ }
465
+ const registry = await getSharedAbilityRegistry();
466
+ const ability = {
467
+ abilityId,
468
+ content,
469
+ displayName,
470
+ description,
471
+ category,
472
+ tags,
473
+ priority,
474
+ enabled,
475
+ applicableTo,
476
+ excludeFrom,
477
+ };
478
+ await registry.register(ability);
479
+ return {
480
+ content: [
481
+ {
482
+ type: 'text',
483
+ text: JSON.stringify({
484
+ registered: true,
485
+ abilityId,
486
+ message: `Ability "${abilityId}" registered successfully`,
487
+ }, null, 2),
488
+ },
489
+ ],
490
+ };
491
+ }
492
+ catch (error) {
493
+ const message = error instanceof Error ? error.message : 'Unknown error';
494
+ return {
495
+ content: [
496
+ {
497
+ type: 'text',
498
+ text: JSON.stringify({
499
+ error: 'ABILITY_REGISTER_FAILED',
500
+ message,
501
+ }),
502
+ },
503
+ ],
504
+ isError: true,
505
+ };
506
+ }
507
+ };
508
+ /**
509
+ * Handler for ability_remove tool
510
+ */
511
+ export const handleAbilityRemove = async (args) => {
512
+ const abilityId = args.abilityId;
513
+ try {
514
+ const registry = await getSharedAbilityRegistry();
515
+ const exists = await registry.exists(abilityId);
516
+ if (!exists) {
517
+ return {
518
+ content: [
519
+ {
520
+ type: 'text',
521
+ text: JSON.stringify({
522
+ removed: false,
523
+ abilityId,
524
+ message: `Ability "${abilityId}" not found`,
525
+ }),
526
+ },
527
+ ],
528
+ };
529
+ }
530
+ await registry.remove(abilityId);
531
+ return {
532
+ content: [
533
+ {
534
+ type: 'text',
535
+ text: JSON.stringify({
536
+ removed: true,
537
+ abilityId,
538
+ message: `Ability "${abilityId}" removed successfully`,
539
+ }, null, 2),
540
+ },
541
+ ],
542
+ };
543
+ }
544
+ catch (error) {
545
+ const message = error instanceof Error ? error.message : 'Unknown error';
546
+ return {
547
+ content: [
548
+ {
549
+ type: 'text',
550
+ text: JSON.stringify({
551
+ error: 'ABILITY_REMOVE_FAILED',
552
+ message,
553
+ }),
554
+ },
555
+ ],
556
+ isError: true,
557
+ };
558
+ }
559
+ };
560
+ //# sourceMappingURL=ability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ability.js","sourceRoot":"","sources":["../../src/tools/ability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { MCPTool, ToolHandler } from '../types.js';
2
+ /**
3
+ * Agent list tool definition
4
+ * INV-MCP-004: Idempotent - read-only operation
5
+ */
6
+ export declare const agentListTool: MCPTool;
7
+ /**
8
+ * Agent run tool definition
9
+ * INV-MCP-004: Non-idempotent - creates new execution each call
10
+ * INV-MCP-002: Side effects - executes agent workflow, may modify state
11
+ */
12
+ export declare const agentRunTool: MCPTool;
13
+ /**
14
+ * Agent get tool definition
15
+ * INV-MCP-004: Idempotent - read-only operation
16
+ */
17
+ export declare const agentGetTool: MCPTool;
18
+ /**
19
+ * Agent register tool definition
20
+ * INV-MCP-004: Non-idempotent - creates new agent profile
21
+ * INV-MCP-002: Side effects - modifies agent registry
22
+ */
23
+ export declare const agentRegisterTool: MCPTool;
24
+ /**
25
+ * Agent remove tool definition
26
+ * INV-MCP-004: Idempotent - removing non-existent agent returns removed=false
27
+ * INV-MCP-002: Side effects - deletes agent from registry
28
+ */
29
+ export declare const agentRemoveTool: MCPTool;
30
+ /**
31
+ * Handler for agent_list tool
32
+ */
33
+ export declare const handleAgentList: ToolHandler;
34
+ /**
35
+ * Handler for agent_run tool
36
+ */
37
+ export declare const handleAgentRun: ToolHandler;
38
+ /**
39
+ * Handler for agent_get tool
40
+ */
41
+ export declare const handleAgentGet: ToolHandler;
42
+ /**
43
+ * Handler for agent_register tool
44
+ */
45
+ export declare const handleAgentRegister: ToolHandler;
46
+ /**
47
+ * Handler for agent_remove tool
48
+ */
49
+ export declare const handleAgentRemove: ToolHandler;
50
+ /**
51
+ * Agent recommend tool definition
52
+ * INV-MCP-004: Idempotent - read-only operation
53
+ * INV-AGT-SEL-001: Selection is deterministic
54
+ * INV-AGT-SEL-004: Always returns at least one result
55
+ */
56
+ export declare const agentRecommendTool: MCPTool;
57
+ /**
58
+ * Handler for agent_recommend tool
59
+ * Implements INV-AGT-SEL-001 through INV-AGT-SEL-006
60
+ * Uses AgentSelectionService domain module for proper separation
61
+ */
62
+ export declare const handleAgentRecommend: ToolHandler;
63
+ /**
64
+ * Agent capabilities tool definition
65
+ * INV-MCP-004: Idempotent - read-only operation
66
+ */
67
+ export declare const agentCapabilitiesTool: MCPTool;
68
+ /**
69
+ * Handler for agent_capabilities tool
70
+ * Uses AgentSelectionService domain module for proper separation
71
+ */
72
+ export declare const handleAgentCapabilities: ToolHandler;
73
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgBxD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,OA4C3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,OA+C1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,OAiD1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,OA8E/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,OAuB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,WA2D7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAmF5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAwE5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,WA2JjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAwD/B,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAsDhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAyDlC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAmDnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,WA+CrC,CAAC"}