@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.
- package/LICENSE +214 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +7 -0
- package/dist/bin.js.map +1 -0
- package/dist/bootstrap.d.ts +89 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +161 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/rate-limiter.d.ts +136 -0
- package/dist/middleware/rate-limiter.d.ts.map +1 -0
- package/dist/middleware/rate-limiter.js +262 -0
- package/dist/middleware/rate-limiter.js.map +1 -0
- package/dist/prompts/agent-guide.d.ts +16 -0
- package/dist/prompts/agent-guide.d.ts.map +1 -0
- package/dist/prompts/agent-guide.js +391 -0
- package/dist/prompts/agent-guide.js.map +1 -0
- package/dist/prompts/explain-workflow.d.ts +15 -0
- package/dist/prompts/explain-workflow.d.ts.map +1 -0
- package/dist/prompts/explain-workflow.js +157 -0
- package/dist/prompts/explain-workflow.js.map +1 -0
- package/dist/prompts/index.d.ts +39 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +83 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/review-changes.d.ts +15 -0
- package/dist/prompts/review-changes.d.ts.map +1 -0
- package/dist/prompts/review-changes.js +102 -0
- package/dist/prompts/review-changes.js.map +1 -0
- package/dist/prompts/troubleshoot-session.d.ts +15 -0
- package/dist/prompts/troubleshoot-session.d.ts.map +1 -0
- package/dist/prompts/troubleshoot-session.js +156 -0
- package/dist/prompts/troubleshoot-session.js.map +1 -0
- package/dist/registry-accessor.d.ts +83 -0
- package/dist/registry-accessor.d.ts.map +1 -0
- package/dist/registry-accessor.js +153 -0
- package/dist/registry-accessor.js.map +1 -0
- package/dist/resources/agents.d.ts +40 -0
- package/dist/resources/agents.d.ts.map +1 -0
- package/dist/resources/agents.js +123 -0
- package/dist/resources/agents.js.map +1 -0
- package/dist/resources/config.d.ts +57 -0
- package/dist/resources/config.d.ts.map +1 -0
- package/dist/resources/config.js +222 -0
- package/dist/resources/config.js.map +1 -0
- package/dist/resources/index.d.ts +38 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +132 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/policies.d.ts +40 -0
- package/dist/resources/policies.d.ts.map +1 -0
- package/dist/resources/policies.js +122 -0
- package/dist/resources/policies.js.map +1 -0
- package/dist/resources/sessions.d.ts +30 -0
- package/dist/resources/sessions.d.ts.map +1 -0
- package/dist/resources/sessions.js +64 -0
- package/dist/resources/sessions.js.map +1 -0
- package/dist/resources/workflows.d.ts +40 -0
- package/dist/resources/workflows.d.ts.map +1 -0
- package/dist/resources/workflows.js +143 -0
- package/dist/resources/workflows.js.map +1 -0
- package/dist/schema-registry.d.ts +23 -0
- package/dist/schema-registry.d.ts.map +1 -0
- package/dist/schema-registry.js +225 -0
- package/dist/schema-registry.js.map +1 -0
- package/dist/server.d.ts +63 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +393 -0
- package/dist/server.js.map +1 -0
- package/dist/session-accessor.d.ts +23 -0
- package/dist/session-accessor.d.ts.map +1 -0
- package/dist/session-accessor.js +39 -0
- package/dist/session-accessor.js.map +1 -0
- package/dist/shared-registry.d.ts +23 -0
- package/dist/shared-registry.d.ts.map +1 -0
- package/dist/shared-registry.js +235 -0
- package/dist/shared-registry.js.map +1 -0
- package/dist/stdio.d.ts +6 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +152 -0
- package/dist/stdio.js.map +1 -0
- package/dist/tool-namespacing.d.ts +28 -0
- package/dist/tool-namespacing.d.ts.map +1 -0
- package/dist/tool-namespacing.js +80 -0
- package/dist/tool-namespacing.js.map +1 -0
- package/dist/tools/ability.d.ts +55 -0
- package/dist/tools/ability.d.ts.map +1 -0
- package/dist/tools/ability.js +560 -0
- package/dist/tools/ability.js.map +1 -0
- package/dist/tools/agent.d.ts +73 -0
- package/dist/tools/agent.d.ts.map +1 -0
- package/dist/tools/agent.js +895 -0
- package/dist/tools/agent.js.map +1 -0
- package/dist/tools/config.d.ts +36 -0
- package/dist/tools/config.d.ts.map +1 -0
- package/dist/tools/config.js +265 -0
- package/dist/tools/config.js.map +1 -0
- package/dist/tools/design.d.ts +42 -0
- package/dist/tools/design.d.ts.map +1 -0
- package/dist/tools/design.js +736 -0
- package/dist/tools/design.js.map +1 -0
- package/dist/tools/discuss.d.ts +40 -0
- package/dist/tools/discuss.d.ts.map +1 -0
- package/dist/tools/discuss.js +331 -0
- package/dist/tools/discuss.js.map +1 -0
- package/dist/tools/file-system.d.ts +63 -0
- package/dist/tools/file-system.d.ts.map +1 -0
- package/dist/tools/file-system.js +513 -0
- package/dist/tools/file-system.js.map +1 -0
- package/dist/tools/guard.d.ts +29 -0
- package/dist/tools/guard.d.ts.map +1 -0
- package/dist/tools/guard.js +311 -0
- package/dist/tools/guard.js.map +1 -0
- package/dist/tools/index.d.ts +35 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +178 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/memory.d.ts +101 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +704 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/orchestration.d.ts +58 -0
- package/dist/tools/orchestration.d.ts.map +1 -0
- package/dist/tools/orchestration.js +714 -0
- package/dist/tools/orchestration.js.map +1 -0
- package/dist/tools/review.d.ts +40 -0
- package/dist/tools/review.d.ts.map +1 -0
- package/dist/tools/review.js +319 -0
- package/dist/tools/review.js.map +1 -0
- package/dist/tools/scaffold.d.ts +27 -0
- package/dist/tools/scaffold.d.ts.map +1 -0
- package/dist/tools/scaffold.js +495 -0
- package/dist/tools/scaffold.js.map +1 -0
- package/dist/tools/session.d.ts +75 -0
- package/dist/tools/session.d.ts.map +1 -0
- package/dist/tools/session.js +749 -0
- package/dist/tools/session.js.map +1 -0
- package/dist/tools/telemetry.d.ts +58 -0
- package/dist/tools/telemetry.d.ts.map +1 -0
- package/dist/tools/telemetry.js +638 -0
- package/dist/tools/telemetry.js.map +1 -0
- package/dist/tools/trace.d.ts +29 -0
- package/dist/tools/trace.d.ts.map +1 -0
- package/dist/tools/trace.js +191 -0
- package/dist/tools/trace.js.map +1 -0
- package/dist/tools/workflow.d.ts +26 -0
- package/dist/tools/workflow.d.ts.map +1 -0
- package/dist/tools/workflow.js +269 -0
- package/dist/tools/workflow.js.map +1 -0
- package/dist/trace-wrapper.d.ts +79 -0
- package/dist/trace-wrapper.d.ts.map +1 -0
- package/dist/trace-wrapper.js +151 -0
- package/dist/trace-wrapper.js.map +1 -0
- package/dist/types.d.ts +185 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/artifact-store.d.ts +49 -0
- package/dist/utils/artifact-store.d.ts.map +1 -0
- package/dist/utils/artifact-store.js +102 -0
- package/dist/utils/artifact-store.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/response.d.ts +139 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +293 -0
- package/dist/utils/response.js.map +1 -0
- package/dist/validation.d.ts +223 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +372 -0
- package/dist/validation.js.map +1 -0
- 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"}
|