@monoes/monomindcli 2.7.4 → 2.7.5

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 (89) hide show
  1. package/bin/cli.js +17 -1
  2. package/dist/src/commands/doctor-project-checks.d.ts +3 -0
  3. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  4. package/dist/src/commands/doctor-project-checks.js +81 -8
  5. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  6. package/dist/src/commands/doctor.d.ts.map +1 -1
  7. package/dist/src/commands/doctor.js +16 -2
  8. package/dist/src/commands/doctor.js.map +1 -1
  9. package/dist/src/commands/memory-crud.d.ts.map +1 -1
  10. package/dist/src/commands/memory-crud.js +15 -5
  11. package/dist/src/commands/memory-crud.js.map +1 -1
  12. package/dist/src/commands/security-misc.d.ts.map +1 -1
  13. package/dist/src/commands/security-misc.js +7 -2
  14. package/dist/src/commands/security-misc.js.map +1 -1
  15. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  16. package/dist/src/init/helpers-generator.js +5 -0
  17. package/dist/src/init/helpers-generator.js.map +1 -1
  18. package/dist/src/mcp-client.d.ts.map +1 -1
  19. package/dist/src/mcp-client.js +0 -2
  20. package/dist/src/mcp-client.js.map +1 -1
  21. package/dist/src/mcp-tools/agent-tools.js +1 -1
  22. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  23. package/dist/src/mcp-tools/embeddings-tools.d.ts +2 -0
  24. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -1
  25. package/dist/src/mcp-tools/embeddings-tools.js +11 -1
  26. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  27. package/dist/src/mcp-tools/guidance-tools.js +17 -17
  28. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  29. package/dist/src/mcp-tools/hive-mind-tools.d.ts +2 -0
  30. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
  31. package/dist/src/mcp-tools/hive-mind-tools.js +14 -2
  32. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  33. package/dist/src/mcp-tools/index.d.ts +0 -1
  34. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  35. package/dist/src/mcp-tools/index.js +0 -1
  36. package/dist/src/mcp-tools/index.js.map +1 -1
  37. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  38. package/dist/src/mcp-tools/monograph-tools.js +1 -2
  39. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  40. package/dist/src/mcp-tools/neural-tools.js +1 -1
  41. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  42. package/dist/src/mcp-tools/swarm-tools.js +2 -2
  43. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  44. package/dist/src/mcp-tools/transfer-tools.d.ts +2 -0
  45. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
  46. package/dist/src/mcp-tools/transfer-tools.js +11 -1
  47. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  48. package/dist/src/ui/dashboard.html +44 -618
  49. package/dist/src/ui/server.mjs +0 -275
  50. package/dist/src/utils/cosine-similarity.d.ts +2 -2
  51. package/dist/src/utils/cosine-similarity.js +2 -2
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +1 -1
  54. package/dist/src/mcp-tools/coherence/causal-infer.d.ts +0 -15
  55. package/dist/src/mcp-tools/coherence/causal-infer.d.ts.map +0 -1
  56. package/dist/src/mcp-tools/coherence/causal-infer.js +0 -333
  57. package/dist/src/mcp-tools/coherence/causal-infer.js.map +0 -1
  58. package/dist/src/mcp-tools/coherence/coherence-check.d.ts +0 -15
  59. package/dist/src/mcp-tools/coherence/coherence-check.d.ts.map +0 -1
  60. package/dist/src/mcp-tools/coherence/coherence-check.js +0 -188
  61. package/dist/src/mcp-tools/coherence/coherence-check.js.map +0 -1
  62. package/dist/src/mcp-tools/coherence/consensus-verify.d.ts +0 -14
  63. package/dist/src/mcp-tools/coherence/consensus-verify.d.ts.map +0 -1
  64. package/dist/src/mcp-tools/coherence/consensus-verify.js +0 -305
  65. package/dist/src/mcp-tools/coherence/consensus-verify.js.map +0 -1
  66. package/dist/src/mcp-tools/coherence/memory-gate.d.ts +0 -16
  67. package/dist/src/mcp-tools/coherence/memory-gate.d.ts.map +0 -1
  68. package/dist/src/mcp-tools/coherence/memory-gate.js +0 -279
  69. package/dist/src/mcp-tools/coherence/memory-gate.js.map +0 -1
  70. package/dist/src/mcp-tools/coherence/quantum-topology.d.ts +0 -15
  71. package/dist/src/mcp-tools/coherence/quantum-topology.d.ts.map +0 -1
  72. package/dist/src/mcp-tools/coherence/quantum-topology.js +0 -400
  73. package/dist/src/mcp-tools/coherence/quantum-topology.js.map +0 -1
  74. package/dist/src/mcp-tools/coherence/spectral-analyze.d.ts +0 -14
  75. package/dist/src/mcp-tools/coherence/spectral-analyze.d.ts.map +0 -1
  76. package/dist/src/mcp-tools/coherence/spectral-analyze.js +0 -312
  77. package/dist/src/mcp-tools/coherence/spectral-analyze.js.map +0 -1
  78. package/dist/src/mcp-tools/coherence/types.d.ts +0 -430
  79. package/dist/src/mcp-tools/coherence/types.d.ts.map +0 -1
  80. package/dist/src/mcp-tools/coherence/types.js +0 -144
  81. package/dist/src/mcp-tools/coherence/types.js.map +0 -1
  82. package/dist/src/mcp-tools/coherence-tools.d.ts +0 -9
  83. package/dist/src/mcp-tools/coherence-tools.d.ts.map +0 -1
  84. package/dist/src/mcp-tools/coherence-tools.js +0 -25
  85. package/dist/src/mcp-tools/coherence-tools.js.map +0 -1
  86. package/dist/src/mcp-tools/daa-tools.d.ts +0 -13
  87. package/dist/src/mcp-tools/daa-tools.d.ts.map +0 -1
  88. package/dist/src/mcp-tools/daa-tools.js +0 -553
  89. package/dist/src/mcp-tools/daa-tools.js.map +0 -1
@@ -1,553 +0,0 @@
1
- /**
2
- * DAA (Decentralized Autonomous Agents) MCP Tools for CLI
3
- *
4
- * V2 Compatibility - DAA agent management tools
5
- *
6
- * ⚠️ IMPORTANT: These tools provide LOCAL STATE MANAGEMENT.
7
- * - Agent coordination is tracked locally
8
- * - No distributed network communication
9
- * - Useful for workflow orchestration and state tracking
10
- */
11
- import { getProjectCwd } from './types.js';
12
- import { existsSync, readFileSync, writeFileSync, renameSync, mkdirSync, statSync } from 'node:fs';
13
- import { join } from 'node:path';
14
- // Storage paths
15
- const STORAGE_DIR = '.monomind';
16
- const DAA_DIR = 'daa';
17
- const DAA_FILE = 'store.json';
18
- function getDAADir() {
19
- return join(getProjectCwd(), STORAGE_DIR, DAA_DIR);
20
- }
21
- function getDAAPath() {
22
- return join(getDAADir(), DAA_FILE);
23
- }
24
- function ensureDAADir() {
25
- const dir = getDAADir();
26
- if (!existsSync(dir)) {
27
- mkdirSync(dir, { recursive: true });
28
- }
29
- }
30
- function loadDAAStore() {
31
- try {
32
- const path = getDAAPath();
33
- if (existsSync(path)) {
34
- // Cap on disk read so a planted multi-GB store.json can't OOM the daemon
35
- // on first MCP call.
36
- const stat = statSync(path);
37
- if (stat.size > 25 * 1024 * 1024) {
38
- return { agents: {}, workflows: {}, knowledge: {}, version: '3.0.0' };
39
- }
40
- return JSON.parse(readFileSync(path, 'utf-8'));
41
- }
42
- }
43
- catch (e) {
44
- if (process.env.DEBUG || process.env.MONOMIND_DEBUG)
45
- console.error('[daa-tools] failed to load DAA store, using empty store:', e);
46
- }
47
- return { agents: {}, workflows: {}, knowledge: {}, version: '3.0.0' };
48
- }
49
- function saveDAAStore(store) {
50
- ensureDAADir();
51
- // Unique tmp filename so concurrent daa_* MCP calls cannot collide on the
52
- // same .tmp path mid-write.
53
- const tmpPath = `${getDAAPath()}.${process.pid}.${Date.now()}.tmp`;
54
- writeFileSync(tmpPath, JSON.stringify(store, null, 2), 'utf-8');
55
- renameSync(tmpPath, getDAAPath());
56
- }
57
- export const daaTools = [
58
- {
59
- name: 'daa_agent_create',
60
- description: 'Create a decentralized autonomous agent',
61
- category: 'daa',
62
- inputSchema: {
63
- type: 'object',
64
- properties: {
65
- id: { type: 'string', description: 'Agent ID' },
66
- name: { type: 'string', description: 'Agent name' },
67
- type: { type: 'string', description: 'Agent type' },
68
- cognitivePattern: { type: 'string', enum: ['convergent', 'divergent', 'lateral', 'systems', 'critical', 'adaptive'], description: 'Cognitive pattern' },
69
- learningRate: { type: 'number', description: 'Learning rate (0-1)' },
70
- enableMemory: { type: 'boolean', description: 'Enable persistent memory' },
71
- capabilities: { type: 'array', items: { type: 'string' }, description: 'Agent capabilities' },
72
- },
73
- required: ['id'],
74
- },
75
- handler: async (input) => {
76
- const store = loadDAAStore();
77
- // Cap all string inputs before storing to disk and before they flow into
78
- // bridgeStoreEntry → generateEmbedding (hash fallback is O(n)).
79
- const MAX_DAA_ID_LEN = 256;
80
- const MAX_DAA_NAME_LEN = 512;
81
- const MAX_DAA_TYPE_LEN = 128;
82
- const MAX_DAA_CAPABILITIES = 50;
83
- const MAX_DAA_CAPABILITY_LEN = 128;
84
- const MAX_DAA_AGENTS = 10_000;
85
- const rawId = input.id;
86
- const id = typeof rawId === 'string' && rawId.length > MAX_DAA_ID_LEN
87
- ? rawId.slice(0, MAX_DAA_ID_LEN) : rawId;
88
- if (Object.keys(store.agents ?? {}).length >= MAX_DAA_AGENTS && !Object.hasOwn(store.agents, id)) {
89
- return { success: false, error: `Agent store full (max ${MAX_DAA_AGENTS})` };
90
- }
91
- const rawName = input.name || `DAA-${id}`;
92
- const agentName = typeof rawName === 'string' && rawName.length > MAX_DAA_NAME_LEN
93
- ? rawName.slice(0, MAX_DAA_NAME_LEN) : rawName;
94
- const rawType = input.type || 'autonomous';
95
- const agentType = typeof rawType === 'string' && rawType.length > MAX_DAA_TYPE_LEN
96
- ? rawType.slice(0, MAX_DAA_TYPE_LEN) : rawType;
97
- const rawCaps = input.capabilities || ['reasoning', 'learning'];
98
- const capabilities = Array.isArray(rawCaps)
99
- ? rawCaps
100
- .slice(0, MAX_DAA_CAPABILITIES)
101
- .map(c => typeof c === 'string' && c.length > MAX_DAA_CAPABILITY_LEN ? c.slice(0, MAX_DAA_CAPABILITY_LEN) : c)
102
- : ['reasoning', 'learning'];
103
- const agent = {
104
- id,
105
- name: agentName,
106
- type: agentType,
107
- status: 'active',
108
- cognitivePattern: input.cognitivePattern || 'adaptive',
109
- learningRate: input.learningRate || 0.01,
110
- memory: input.enableMemory ?? true,
111
- capabilities,
112
- metrics: {
113
- tasksCompleted: 0,
114
- successRate: 1.0,
115
- adaptations: 0,
116
- },
117
- createdAt: new Date().toISOString(),
118
- lastActivity: new Date().toISOString(),
119
- };
120
- if (['__proto__', 'constructor', 'prototype'].includes(id)) {
121
- return { success: false, error: 'Forbidden agent ID' };
122
- }
123
- store.agents[id] = agent;
124
- saveDAAStore(store);
125
- // Store agent in memory backend for searchable agent registry
126
- try {
127
- const bridge = await import('../memory/memory-bridge.js');
128
- await bridge.bridgeStoreEntry({
129
- key: `daa-agent-${id}`,
130
- value: JSON.stringify({ id: agent.id, name: agent.name, type: agent.type, cognitivePattern: agent.cognitivePattern }),
131
- namespace: 'daa-agents',
132
- tags: [agent.type, agent.cognitivePattern],
133
- });
134
- }
135
- catch { /* memory backend unavailable */ }
136
- return {
137
- success: true,
138
- agent: {
139
- id: agent.id,
140
- name: agent.name,
141
- type: agent.type,
142
- status: agent.status,
143
- cognitivePattern: agent.cognitivePattern,
144
- capabilities: agent.capabilities,
145
- },
146
- createdAt: agent.createdAt,
147
- };
148
- },
149
- },
150
- {
151
- name: 'daa_agent_adapt',
152
- description: 'Trigger agent adaptation based on feedback',
153
- category: 'daa',
154
- inputSchema: {
155
- type: 'object',
156
- properties: {
157
- agentId: { type: 'string', description: 'Agent ID' },
158
- feedback: { type: 'string', description: 'Feedback message' },
159
- performanceScore: { type: 'number', description: 'Performance score (0-1)' },
160
- suggestions: { type: 'array', items: { type: 'string' }, description: 'Improvement suggestions' },
161
- },
162
- required: ['agentId'],
163
- },
164
- handler: async (input) => {
165
- const agentId = input.agentId;
166
- if (typeof agentId !== 'string' || ['__proto__', 'constructor', 'prototype'].includes(agentId)) {
167
- return { success: false, error: 'Invalid agent id' };
168
- }
169
- const store = loadDAAStore();
170
- const agent = Object.hasOwn(store.agents, agentId) ? store.agents[agentId] : undefined;
171
- if (!agent) {
172
- return { success: false, error: 'Agent not found' };
173
- }
174
- const performanceScore = input.performanceScore || 0.8;
175
- // Update agent metrics
176
- agent.metrics.adaptations++;
177
- agent.metrics.successRate = (agent.metrics.successRate + performanceScore) / 2;
178
- agent.lastActivity = new Date().toISOString();
179
- agent.status = 'active';
180
- saveDAAStore(store);
181
- // Store adaptation feedback in memory backend for pattern learning (backward compat: JSON store above)
182
- let _storedIn = 'json-store';
183
- try {
184
- const bridge = await import('../memory/memory-bridge.js');
185
- await bridge.bridgeRecordFeedback({
186
- taskType: agentId,
187
- action: `adapt-${agentId}-${agent.metrics.adaptations}`,
188
- outcome: performanceScore >= 0.5 ? 'success' : 'failure',
189
- confidence: performanceScore,
190
- metadata: { agentId, adaptations: agent.metrics.adaptations },
191
- });
192
- _storedIn = 'lancedb';
193
- }
194
- catch { /* memory backend unavailable */ }
195
- return {
196
- success: true,
197
- agentId,
198
- adaptation: {
199
- feedback: input.feedback,
200
- performanceScore,
201
- adaptations: agent.metrics.adaptations,
202
- newSuccessRate: agent.metrics.successRate,
203
- },
204
- status: agent.status,
205
- _storedIn,
206
- };
207
- },
208
- },
209
- {
210
- name: 'daa_workflow_create',
211
- description: 'Create an autonomous workflow',
212
- category: 'daa',
213
- inputSchema: {
214
- type: 'object',
215
- properties: {
216
- id: { type: 'string', description: 'Workflow ID' },
217
- name: { type: 'string', description: 'Workflow name' },
218
- steps: { type: 'array', items: { type: 'object' }, description: 'Workflow steps' },
219
- strategy: { type: 'string', enum: ['parallel', 'sequential', 'adaptive'], description: 'Execution strategy' },
220
- dependencies: { type: 'object', description: 'Step dependencies' },
221
- },
222
- required: ['id', 'name'],
223
- },
224
- handler: async (input) => {
225
- const id = input.id;
226
- // Reject prototype-pollution keys: writing to store.workflows['__proto__']
227
- // mutates Object.prototype for the process.
228
- if (typeof id !== 'string' || id.length === 0 || id.length > 256 ||
229
- ['__proto__', 'constructor', 'prototype'].includes(id)) {
230
- return { success: false, error: 'Invalid workflow id' };
231
- }
232
- const MAX_DAA_WF_NAME_LEN = 512;
233
- const MAX_DAA_WF_STEPS = 500;
234
- const store = loadDAAStore();
235
- const rawWfName = input.name;
236
- const wfName = typeof rawWfName === 'string' && rawWfName.length > MAX_DAA_WF_NAME_LEN
237
- ? rawWfName.slice(0, MAX_DAA_WF_NAME_LEN) : rawWfName;
238
- const rawSteps = input.steps || [];
239
- const cappedSteps = Array.isArray(rawSteps) ? rawSteps.slice(0, MAX_DAA_WF_STEPS) : [];
240
- const workflow = {
241
- id,
242
- name: wfName,
243
- status: 'pending',
244
- steps: cappedSteps.map((s, i) => ({
245
- name: typeof s === 'string' ? s : `Step ${i + 1}`,
246
- status: 'pending',
247
- })),
248
- strategy: input.strategy || 'adaptive',
249
- createdAt: new Date().toISOString(),
250
- };
251
- store.workflows[id] = workflow;
252
- saveDAAStore(store);
253
- return {
254
- success: true,
255
- workflowId: id,
256
- name: workflow.name,
257
- steps: workflow.steps.length,
258
- strategy: workflow.strategy,
259
- createdAt: workflow.createdAt,
260
- };
261
- },
262
- },
263
- {
264
- name: 'daa_workflow_execute',
265
- description: 'Execute a DAA workflow',
266
- category: 'daa',
267
- inputSchema: {
268
- type: 'object',
269
- properties: {
270
- workflowId: { type: 'string', description: 'Workflow ID' },
271
- agentIds: { type: 'array', items: { type: 'string' }, description: 'Agent IDs to use' },
272
- parallelExecution: { type: 'boolean', description: 'Enable parallel execution' },
273
- },
274
- required: ['workflowId'],
275
- },
276
- handler: async (input) => {
277
- const workflowId = input.workflowId;
278
- if (typeof workflowId !== 'string' || ['__proto__', 'constructor', 'prototype'].includes(workflowId)) {
279
- return { success: false, error: 'Invalid workflow id' };
280
- }
281
- const store = loadDAAStore();
282
- const workflow = Object.hasOwn(store.workflows, workflowId) ? store.workflows[workflowId] : undefined;
283
- if (!workflow) {
284
- return { success: false, error: 'Workflow not found' };
285
- }
286
- workflow.status = 'running';
287
- saveDAAStore(store);
288
- // Store workflow state in memory backend for tracking
289
- try {
290
- const bridge = await import('../memory/memory-bridge.js');
291
- await bridge.bridgeStoreEntry({
292
- key: `workflow-${workflowId}`,
293
- value: JSON.stringify({
294
- id: workflowId, status: 'running',
295
- steps: workflow.steps.length, strategy: workflow.strategy,
296
- startedAt: new Date().toISOString(),
297
- }),
298
- namespace: 'daa-workflows',
299
- });
300
- }
301
- catch { /* memory backend unavailable */ }
302
- return {
303
- success: true,
304
- workflowId,
305
- status: workflow.status,
306
- steps: workflow.steps,
307
- startedAt: new Date().toISOString(),
308
- _note: 'Steps are tracked but not auto-executed. Use agent tools to execute each step.',
309
- };
310
- },
311
- },
312
- {
313
- name: 'daa_knowledge_share',
314
- description: 'Share knowledge between agents',
315
- category: 'daa',
316
- inputSchema: {
317
- type: 'object',
318
- properties: {
319
- sourceAgentId: { type: 'string', description: 'Source agent ID' },
320
- targetAgentIds: { type: 'array', items: { type: 'string' }, description: 'Target agent IDs' },
321
- knowledgeDomain: { type: 'string', description: 'Knowledge domain' },
322
- knowledgeContent: { type: 'object', description: 'Knowledge to share' },
323
- },
324
- required: ['sourceAgentId', 'targetAgentIds'],
325
- },
326
- handler: async (input) => {
327
- const store = loadDAAStore();
328
- const sourceId = input.sourceAgentId;
329
- // Cap targetIds to prevent a large array from inflating the JSON store
330
- // entry and the memory backend tags blob. 100 target agents is already very
331
- // generous for any realistic swarm configuration.
332
- const MAX_TARGET_IDS = 100;
333
- const MAX_TARGET_ID_LEN = 256;
334
- const rawTargetIds = input.targetAgentIds;
335
- const targetIds = Array.isArray(rawTargetIds)
336
- ? rawTargetIds
337
- .slice(0, MAX_TARGET_IDS)
338
- .map(id => (typeof id === 'string' && id.length > MAX_TARGET_ID_LEN ? id.slice(0, MAX_TARGET_ID_LEN) : id))
339
- : [];
340
- const domain = input.knowledgeDomain || 'general';
341
- const knowledgeId = `knowledge-${Date.now()}`;
342
- const knowledgeEntry = {
343
- domain,
344
- content: input.knowledgeContent || {},
345
- sharedBy: sourceId,
346
- targetAgents: targetIds,
347
- timestamp: new Date().toISOString(),
348
- };
349
- // Primary: store in memory backend for vector-searchable knowledge
350
- let _storedIn = 'json-store';
351
- try {
352
- const bridge = await import('../memory/memory-bridge.js');
353
- await bridge.bridgeStoreEntry({
354
- key: knowledgeId,
355
- value: JSON.stringify(knowledgeEntry),
356
- namespace: 'daa-knowledge',
357
- tags: [domain, sourceId, ...targetIds],
358
- });
359
- _storedIn = 'lancedb';
360
- }
361
- catch { /* memory backend unavailable */ }
362
- // Backward compat: always persist in JSON store (cap at 1000 entries)
363
- if (Object.keys(store.knowledge).length >= 1000) {
364
- const oldest = Object.keys(store.knowledge)[0];
365
- if (oldest)
366
- delete store.knowledge[oldest];
367
- }
368
- store.knowledge[knowledgeId] = knowledgeEntry;
369
- saveDAAStore(store);
370
- return {
371
- success: true,
372
- knowledgeId,
373
- sourceAgent: sourceId,
374
- targetAgents: targetIds,
375
- domain,
376
- sharedAt: knowledgeEntry.timestamp,
377
- _storedIn,
378
- _note: _storedIn === 'lancedb'
379
- ? 'Knowledge stored in memory backend (vector-searchable) and JSON store. Target agents can retrieve via daa_learning_status or memory search.'
380
- : 'Knowledge stored in shared JSON registry. Target agents can retrieve via daa_learning_status. No cross-agent memory transfer occurs.',
381
- };
382
- },
383
- },
384
- {
385
- name: 'daa_learning_status',
386
- description: 'Get learning status for DAA agents',
387
- category: 'daa',
388
- inputSchema: {
389
- type: 'object',
390
- properties: {
391
- agentId: { type: 'string', description: 'Specific agent ID' },
392
- detailed: { type: 'boolean', description: 'Include detailed metrics' },
393
- },
394
- },
395
- handler: async (input) => {
396
- const store = loadDAAStore();
397
- const agentId = input.agentId;
398
- if (agentId) {
399
- if (typeof agentId !== 'string' || ['__proto__', 'constructor', 'prototype'].includes(agentId)) {
400
- return { success: false, error: 'Invalid agent id' };
401
- }
402
- const agent = Object.hasOwn(store.agents, agentId) ? store.agents[agentId] : undefined;
403
- if (!agent) {
404
- return { success: false, error: 'Agent not found' };
405
- }
406
- return {
407
- success: true,
408
- agent: {
409
- id: agent.id,
410
- status: agent.status,
411
- cognitivePattern: agent.cognitivePattern,
412
- learningRate: agent.learningRate,
413
- metrics: agent.metrics,
414
- },
415
- };
416
- }
417
- const agents = Object.values(store.agents);
418
- return {
419
- success: true,
420
- summary: {
421
- total: agents.length,
422
- active: agents.filter(a => a.status === 'active').length,
423
- learning: agents.filter(a => a.status === 'learning').length,
424
- avgSuccessRate: agents.length > 0
425
- ? agents.reduce((sum, a) => sum + a.metrics.successRate, 0) / agents.length
426
- : 0,
427
- totalAdaptations: agents.reduce((sum, a) => sum + a.metrics.adaptations, 0),
428
- },
429
- agents: agents.map(a => ({
430
- id: a.id,
431
- status: a.status,
432
- successRate: a.metrics.successRate,
433
- adaptations: a.metrics.adaptations,
434
- })),
435
- };
436
- },
437
- },
438
- {
439
- name: 'daa_cognitive_pattern',
440
- description: 'Analyze or change cognitive patterns',
441
- category: 'daa',
442
- inputSchema: {
443
- type: 'object',
444
- properties: {
445
- agentId: { type: 'string', description: 'Agent ID' },
446
- action: { type: 'string', enum: ['analyze', 'change'], description: 'Action' },
447
- pattern: { type: 'string', enum: ['convergent', 'divergent', 'lateral', 'systems', 'critical', 'adaptive'], description: 'New pattern' },
448
- },
449
- },
450
- handler: async (input) => {
451
- const store = loadDAAStore();
452
- const agentId = input.agentId;
453
- const action = input.action || 'analyze';
454
- if (agentId) {
455
- if (typeof agentId !== 'string' || ['__proto__', 'constructor', 'prototype'].includes(agentId)) {
456
- return { success: false, error: 'Invalid agent id' };
457
- }
458
- const agent = Object.hasOwn(store.agents, agentId) ? store.agents[agentId] : undefined;
459
- if (!agent) {
460
- return { success: false, error: 'Agent not found' };
461
- }
462
- if (action === 'analyze') {
463
- return {
464
- success: true,
465
- agentId,
466
- currentPattern: agent.cognitivePattern,
467
- learningRate: agent.learningRate,
468
- metrics: agent.metrics,
469
- _note: 'Pattern analysis requires real cognitive modeling. Current pattern and metrics shown.',
470
- };
471
- }
472
- if (action === 'change' && input.pattern) {
473
- const oldPattern = agent.cognitivePattern;
474
- agent.cognitivePattern = input.pattern;
475
- saveDAAStore(store);
476
- return {
477
- success: true,
478
- agentId,
479
- previousPattern: oldPattern,
480
- newPattern: agent.cognitivePattern,
481
- changedAt: new Date().toISOString(),
482
- };
483
- }
484
- }
485
- // Return general pattern info
486
- const patternDescriptions = {
487
- convergent: 'Focused, analytical thinking for well-defined problems',
488
- divergent: 'Creative, exploratory thinking for open-ended problems',
489
- lateral: 'Indirect, creative approach to problem solving',
490
- systems: 'Holistic thinking considering interconnections',
491
- critical: 'Analytical evaluation and logical assessment',
492
- adaptive: 'Dynamic switching between patterns as needed',
493
- };
494
- return {
495
- success: true,
496
- patterns: patternDescriptions,
497
- recommendation: 'Use "adaptive" for general-purpose agents',
498
- };
499
- },
500
- },
501
- {
502
- name: 'daa_performance_metrics',
503
- description: 'Get DAA performance metrics',
504
- category: 'daa',
505
- inputSchema: {
506
- type: 'object',
507
- properties: {
508
- category: { type: 'string', enum: ['all', 'agents', 'workflows', 'learning'], description: 'Metrics category' },
509
- timeRange: { type: 'string', description: 'Time range' },
510
- },
511
- },
512
- handler: async (input) => {
513
- const store = loadDAAStore();
514
- const category = input.category || 'all';
515
- const agents = Object.values(store.agents);
516
- const workflows = Object.values(store.workflows);
517
- const metrics = {
518
- agents: {
519
- total: agents.length,
520
- active: agents.filter(a => a.status === 'active').length,
521
- avgSuccessRate: agents.length > 0
522
- ? agents.reduce((sum, a) => sum + a.metrics.successRate, 0) / agents.length
523
- : 0,
524
- totalTasks: agents.reduce((sum, a) => sum + a.metrics.tasksCompleted, 0),
525
- },
526
- workflows: {
527
- total: workflows.length,
528
- completed: workflows.filter(w => w.status === 'completed').length,
529
- running: workflows.filter(w => w.status === 'running').length,
530
- successRate: workflows.length > 0
531
- ? workflows.filter(w => w.status === 'completed').length / workflows.length
532
- : 0,
533
- },
534
- learning: {
535
- totalAdaptations: agents.reduce((sum, a) => sum + a.metrics.adaptations, 0),
536
- knowledgeItems: Object.keys(store.knowledge).length,
537
- avgLearningRate: agents.length > 0
538
- ? agents.reduce((sum, a) => sum + a.learningRate, 0) / agents.length
539
- : 0,
540
- },
541
- };
542
- if (category === 'all') {
543
- return { success: true, metrics };
544
- }
545
- return {
546
- success: true,
547
- category,
548
- metrics: metrics[category],
549
- };
550
- },
551
- },
552
- ];
553
- //# sourceMappingURL=daa-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daa-tools.js","sourceRoot":"","sources":["../../../src/mcp-tools/daa-tools.ts"],"names":[],"mappings":"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"}