aimeat 1.2.6 → 1.3.0

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 (128) hide show
  1. package/dist/.env.example +4 -0
  2. package/dist/locales/en.json +74 -2
  3. package/dist/locales/fi.json +74 -2
  4. package/dist/public/css/views/capabilities.css +211 -0
  5. package/dist/public/llms-template.txt +152 -89
  6. package/dist/public/spa.html +1 -0
  7. package/dist/public/views/admin/capabilities-tab.js +114 -0
  8. package/dist/public/views/admin.js +2 -0
  9. package/dist/public/views/aimeat-os.js +194 -34
  10. package/dist/public/views/profile/capabilities-tab.js +252 -0
  11. package/dist/public/views/profile/extensions-tab.js +404 -50
  12. package/dist/public/views/profile/landing-page.js +2 -0
  13. package/dist/public/views/profile.js +2 -0
  14. package/dist/src/config.d.ts +11 -0
  15. package/dist/src/config.d.ts.map +1 -1
  16. package/dist/src/config.js +11 -0
  17. package/dist/src/config.js.map +1 -1
  18. package/dist/src/mcp/apps.d.ts +18 -0
  19. package/dist/src/mcp/apps.d.ts.map +1 -0
  20. package/dist/src/mcp/apps.js +241 -0
  21. package/dist/src/mcp/apps.js.map +1 -0
  22. package/dist/src/mcp/capabilities.d.ts +12 -0
  23. package/dist/src/mcp/capabilities.d.ts.map +1 -0
  24. package/dist/src/mcp/capabilities.js +187 -0
  25. package/dist/src/mcp/capabilities.js.map +1 -0
  26. package/dist/src/mcp/cortex.d.ts +17 -0
  27. package/dist/src/mcp/cortex.d.ts.map +1 -0
  28. package/dist/src/mcp/cortex.js +237 -0
  29. package/dist/src/mcp/cortex.js.map +1 -0
  30. package/dist/src/mcp/extensions.d.ts +4 -3
  31. package/dist/src/mcp/extensions.d.ts.map +1 -1
  32. package/dist/src/mcp/extensions.js +233 -3
  33. package/dist/src/mcp/extensions.js.map +1 -1
  34. package/dist/src/mcp/index.d.ts.map +1 -1
  35. package/dist/src/mcp/index.js +6 -0
  36. package/dist/src/mcp/index.js.map +1 -1
  37. package/dist/src/routes/admin-capabilities.d.ts +11 -0
  38. package/dist/src/routes/admin-capabilities.d.ts.map +1 -0
  39. package/dist/src/routes/admin-capabilities.js +54 -0
  40. package/dist/src/routes/admin-capabilities.js.map +1 -0
  41. package/dist/src/routes/capabilities.d.ts +11 -0
  42. package/dist/src/routes/capabilities.d.ts.map +1 -0
  43. package/dist/src/routes/capabilities.js +289 -0
  44. package/dist/src/routes/capabilities.js.map +1 -0
  45. package/dist/src/routes/cortex.d.ts.map +1 -1
  46. package/dist/src/routes/cortex.js +2 -0
  47. package/dist/src/routes/cortex.js.map +1 -1
  48. package/dist/src/routes/extensions.d.ts.map +1 -1
  49. package/dist/src/routes/extensions.js +9 -0
  50. package/dist/src/routes/extensions.js.map +1 -1
  51. package/dist/src/routes/lib-capabilities.d.ts +9 -0
  52. package/dist/src/routes/lib-capabilities.d.ts.map +1 -0
  53. package/dist/src/routes/lib-capabilities.js +190 -0
  54. package/dist/src/routes/lib-capabilities.js.map +1 -0
  55. package/dist/src/routes/libs.d.ts.map +1 -1
  56. package/dist/src/routes/libs.js +13 -0
  57. package/dist/src/routes/libs.js.map +1 -1
  58. package/dist/src/routes/verification.d.ts +10 -1
  59. package/dist/src/routes/verification.d.ts.map +1 -1
  60. package/dist/src/routes/verification.js +174 -24
  61. package/dist/src/routes/verification.js.map +1 -1
  62. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  63. package/dist/src/server-bootstrap/routes-loader.js +35 -2
  64. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  65. package/dist/src/services/capability-aggregator.d.ts +8 -0
  66. package/dist/src/services/capability-aggregator.d.ts.map +1 -0
  67. package/dist/src/services/capability-aggregator.js +239 -0
  68. package/dist/src/services/capability-aggregator.js.map +1 -0
  69. package/dist/src/services/capability-invoke.d.ts +20 -0
  70. package/dist/src/services/capability-invoke.d.ts.map +1 -0
  71. package/dist/src/services/capability-invoke.js +95 -0
  72. package/dist/src/services/capability-invoke.js.map +1 -0
  73. package/dist/src/services/config-schema.d.ts.map +1 -1
  74. package/dist/src/services/config-schema.js +4 -0
  75. package/dist/src/services/config-schema.js.map +1 -1
  76. package/dist/src/services/core-jobs.d.ts.map +1 -1
  77. package/dist/src/services/core-jobs.js +16 -0
  78. package/dist/src/services/core-jobs.js.map +1 -1
  79. package/dist/src/services/did-document.d.ts +25 -0
  80. package/dist/src/services/did-document.d.ts.map +1 -0
  81. package/dist/src/services/did-document.js +31 -0
  82. package/dist/src/services/did-document.js.map +1 -0
  83. package/dist/src/services/eudiw.d.ts +11 -1
  84. package/dist/src/services/eudiw.d.ts.map +1 -1
  85. package/dist/src/services/eudiw.js +43 -48
  86. package/dist/src/services/eudiw.js.map +1 -1
  87. package/dist/src/services/extension-runtime.d.ts.map +1 -1
  88. package/dist/src/services/extension-runtime.js +8 -5
  89. package/dist/src/services/extension-runtime.js.map +1 -1
  90. package/dist/src/services/job-seeding.d.ts.map +1 -1
  91. package/dist/src/services/job-seeding.js +4 -0
  92. package/dist/src/services/job-seeding.js.map +1 -1
  93. package/dist/src/services/oidc-client.d.ts +32 -0
  94. package/dist/src/services/oidc-client.d.ts.map +1 -0
  95. package/dist/src/services/oidc-client.js +67 -0
  96. package/dist/src/services/oidc-client.js.map +1 -0
  97. package/dist/src/services/sd-jwt.d.ts +21 -0
  98. package/dist/src/services/sd-jwt.d.ts.map +1 -0
  99. package/dist/src/services/sd-jwt.js +87 -0
  100. package/dist/src/services/sd-jwt.js.map +1 -0
  101. package/dist/src/services/vc-issuer.d.ts +20 -1
  102. package/dist/src/services/vc-issuer.d.ts.map +1 -1
  103. package/dist/src/services/vc-issuer.js +75 -15
  104. package/dist/src/services/vc-issuer.js.map +1 -1
  105. package/dist/src/storage/interface.d.ts +118 -1
  106. package/dist/src/storage/interface.d.ts.map +1 -1
  107. package/dist/src/storage/providers/mongodb/index.d.ts +37 -1
  108. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  109. package/dist/src/storage/providers/mongodb/index.js +282 -0
  110. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  111. package/dist/src/storage/providers/sqlite/index.d.ts +37 -1
  112. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  113. package/dist/src/storage/providers/sqlite/index.js +241 -0
  114. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  115. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  116. package/dist/src/storage/providers/sqlite/schema.js +77 -0
  117. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  118. package/dist/src/storage/repositories/capability.repository.d.ts +35 -0
  119. package/dist/src/storage/repositories/capability.repository.d.ts.map +1 -0
  120. package/dist/src/storage/repositories/capability.repository.js +2 -0
  121. package/dist/src/storage/repositories/capability.repository.js.map +1 -0
  122. package/dist/src/storage/repositories/index.d.ts +1 -0
  123. package/dist/src/storage/repositories/index.d.ts.map +1 -1
  124. package/dist/src/storage/repositories/node.repository.d.ts +5 -1
  125. package/dist/src/storage/repositories/node.repository.d.ts.map +1 -1
  126. package/dist/static/app-catalog.html +156 -29
  127. package/package.json +6 -1
  128. package/prisma/schema.prisma +86 -0
@@ -0,0 +1,187 @@
1
+ import { z } from 'zod';
2
+ import { randomUUID, createHash } from 'node:crypto';
3
+ export function registerCapabilitiesTools(mcp, storage, config, getAgentGaii, _emitResourceUpdated, _emitResourceListChanged) {
4
+ mcp.tool('aimeat_capabilities_list', 'List and search capabilities on this AIMEAT node. Returns id, name, summary, callable, authRequired, cost, tags for each.', {
5
+ search: z.string().optional().describe('Full-text search on name and summary'),
6
+ tags: z.array(z.string()).optional().describe('Filter by tags'),
7
+ callable: z.boolean().optional().describe('Filter callable capabilities only'),
8
+ authRequired: z.string().optional().describe('Filter by auth level: none, anonymous, registered'),
9
+ source_type: z.string().optional().describe('Filter by source type: extension, action, cortex, manual'),
10
+ }, async (args) => {
11
+ const result = await storage.listCapabilities({
12
+ ...args,
13
+ sourceType: args.source_type,
14
+ visibility: 'public',
15
+ status: 'active',
16
+ });
17
+ const summary = result.capabilities.map(c => ({
18
+ id: c.id, name: c.name, summary: c.summary,
19
+ callable: c.callable, authRequired: c.authRequired,
20
+ cost: c.cost, tags: c.tags, source: c.source.type,
21
+ }));
22
+ return { content: [{ type: 'text', text: JSON.stringify({ capabilities: summary, total: result.total }, null, 2) }] };
23
+ });
24
+ mcp.tool('aimeat_capabilities_get', 'Get full detail of a capability including input/output schemas, examples, usage instructions, dependencies, and trust signals.', {
25
+ id: z.string().describe('Capability ID'),
26
+ }, async ({ id }) => {
27
+ const cap = await storage.getCapability(id);
28
+ if (!cap)
29
+ return { content: [{ type: 'text', text: `Capability not found: ${id}` }], isError: true };
30
+ return { content: [{ type: 'text', text: JSON.stringify(cap, null, 2) }] };
31
+ });
32
+ mcp.tool('aimeat_capabilities_invoke', 'Invoke a callable capability. Extensions and manual webhooks return results immediately. Cortex capabilities are browser-only and will return an error with usage instructions.', {
33
+ id: z.string().describe('Capability ID to invoke'),
34
+ input: z.record(z.string(), z.unknown()).optional().describe('Input data for the capability'),
35
+ mode: z.enum(['normal', 'raw']).optional().describe('normal = normalized result, raw = original response'),
36
+ }, async (args) => {
37
+ const cap = await storage.getCapability(args.id);
38
+ if (!cap)
39
+ return { content: [{ type: 'text', text: `Capability not found: ${args.id}` }], isError: true };
40
+ if (cap.source.type === 'cortex') {
41
+ return { content: [{ type: 'text', text: `This capability is browser-only. Use it in an AIMEAT app: ${cap.usage}` }], isError: true };
42
+ }
43
+ if (!cap.callable) {
44
+ return { content: [{ type: 'text', text: `This capability is not directly callable. ${cap.usage}` }], isError: true };
45
+ }
46
+ try {
47
+ const { invokeCapability } = await import('../services/capability-invoke.js');
48
+ const result = await invokeCapability(config, storage, cap, args.input || {}, getAgentGaii(), '', args.mode || 'normal');
49
+ storage.incrementCapabilityStats(cap.id, { success: 1, error: 0, totalMs: result.duration_ms }).catch(() => { });
50
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
51
+ }
52
+ catch (err) {
53
+ storage.incrementCapabilityStats(cap.id, { success: 0, error: 1, totalMs: 0, lastError: err.message }).catch(() => { });
54
+ return { content: [{ type: 'text', text: `Invoke failed: ${err.message}` }], isError: true };
55
+ }
56
+ });
57
+ // ── CRUD Tools ──
58
+ mcp.tool('aimeat_capabilities_create', 'Create a new manual capability on this AIMEAT node. Returns the created capability record.', {
59
+ id: z.string().optional().describe('Custom capability ID (auto-generated UUID if omitted)'),
60
+ name: z.string().describe('Human-readable capability name'),
61
+ summary: z.string().describe('Brief description of what this capability does'),
62
+ callable: z.boolean().optional().describe('Whether this capability can be invoked directly'),
63
+ visibility: z.enum(['private', 'public']).optional().describe('Visibility: private (default) or public'),
64
+ tags: z.array(z.string()).optional().describe('Tags for discovery and filtering'),
65
+ inputSchema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema for input validation'),
66
+ outputSchema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema for output format'),
67
+ usage: z.string().optional().describe('Usage instructions for consumers'),
68
+ whenToUse: z.string().optional().describe('Guidance on when this capability is appropriate'),
69
+ }, async (args) => {
70
+ const now = new Date().toISOString();
71
+ const ownerGhii = getAgentGaii();
72
+ const schemaHash = createHash('sha256')
73
+ .update(JSON.stringify(args.inputSchema ?? {}) + JSON.stringify(args.outputSchema ?? {}))
74
+ .digest('hex').slice(0, 16);
75
+ const record = {
76
+ id: args.id || randomUUID(),
77
+ name: args.name,
78
+ summary: args.summary,
79
+ ownerGhii,
80
+ visibility: args.visibility || 'private',
81
+ scope: 'local',
82
+ status: 'active',
83
+ rejectionReason: null,
84
+ deprecationMessage: null,
85
+ replacedBy: null,
86
+ source: { type: 'manual', ref: 'manual', version: '1.0.0' },
87
+ authRequired: 'registered',
88
+ callable: args.callable ?? false,
89
+ inputSchema: args.inputSchema ?? null,
90
+ outputSchema: args.outputSchema ?? null,
91
+ exports: null,
92
+ usage: args.usage || '',
93
+ whenToUse: args.whenToUse || '',
94
+ whenNotToUse: '',
95
+ examples: [],
96
+ dependencies: [],
97
+ schemaHash,
98
+ webhookUrl: null,
99
+ cost: null,
100
+ trustRequired: null,
101
+ trust: { operatorReviewed: false, reviewedAt: null, vouchCount: 0, publisherTrustScore: 0, codeAudited: false, auditNotes: null },
102
+ redactedFields: [],
103
+ operatorOverride: null,
104
+ stats: { totalInvocations: 0, successCount: 0, errorCount: 0, lastInvokedAt: null, avgResponseMs: 0, lastError: null },
105
+ tags: args.tags || [],
106
+ createdAt: now,
107
+ updatedAt: now,
108
+ };
109
+ try {
110
+ const created = await storage.createCapability(record);
111
+ return { content: [{ type: 'text', text: JSON.stringify(created, null, 2) }] };
112
+ }
113
+ catch (err) {
114
+ if (err.message?.includes('UNIQUE') || err.message?.includes('duplicate')) {
115
+ return { content: [{ type: 'text', text: `Capability '${record.id}' already exists` }], isError: true };
116
+ }
117
+ return { content: [{ type: 'text', text: `Create failed: ${err.message}` }], isError: true };
118
+ }
119
+ });
120
+ mcp.tool('aimeat_capabilities_update', 'Update an existing capability that you own. Only provided fields are updated.', {
121
+ id: z.string().describe('Capability ID to update'),
122
+ name: z.string().optional().describe('Updated capability name'),
123
+ summary: z.string().optional().describe('Updated summary'),
124
+ tags: z.array(z.string()).optional().describe('Updated tags'),
125
+ visibility: z.enum(['private', 'public']).optional().describe('Updated visibility'),
126
+ usage: z.string().optional().describe('Updated usage instructions'),
127
+ whenToUse: z.string().optional().describe('Updated guidance on when to use'),
128
+ whenNotToUse: z.string().optional().describe('Updated guidance on when NOT to use'),
129
+ }, async (args) => {
130
+ const cap = await storage.getCapability(args.id);
131
+ if (!cap)
132
+ return { content: [{ type: 'text', text: `Capability not found: ${args.id}` }], isError: true };
133
+ const callerGhii = getAgentGaii();
134
+ if (cap.ownerGhii !== callerGhii) {
135
+ return { content: [{ type: 'text', text: 'Forbidden: not the owner of this capability' }], isError: true };
136
+ }
137
+ const updates = { updatedAt: new Date().toISOString() };
138
+ if (args.name !== undefined)
139
+ updates.name = args.name;
140
+ if (args.summary !== undefined)
141
+ updates.summary = args.summary;
142
+ if (args.tags !== undefined)
143
+ updates.tags = args.tags;
144
+ if (args.visibility !== undefined)
145
+ updates.visibility = args.visibility;
146
+ if (args.usage !== undefined)
147
+ updates.usage = args.usage;
148
+ if (args.whenToUse !== undefined)
149
+ updates.whenToUse = args.whenToUse;
150
+ if (args.whenNotToUse !== undefined)
151
+ updates.whenNotToUse = args.whenNotToUse;
152
+ const updated = await storage.updateCapability(args.id, updates);
153
+ return { content: [{ type: 'text', text: JSON.stringify(updated, null, 2) }] };
154
+ });
155
+ mcp.tool('aimeat_capabilities_delete', 'Delete a manual capability that you own. Only manual capabilities can be deleted; auto-aggregated capabilities are removed when their source is removed.', {
156
+ id: z.string().describe('Capability ID to delete'),
157
+ }, async ({ id }) => {
158
+ const cap = await storage.getCapability(id);
159
+ if (!cap)
160
+ return { content: [{ type: 'text', text: `Capability not found: ${id}` }], isError: true };
161
+ const callerGhii = getAgentGaii();
162
+ if (cap.ownerGhii !== callerGhii) {
163
+ return { content: [{ type: 'text', text: 'Forbidden: not the owner of this capability' }], isError: true };
164
+ }
165
+ if (cap.source.type !== 'manual') {
166
+ return { content: [{ type: 'text', text: 'Only manual capabilities can be deleted. Auto-aggregated capabilities are removed when their source is removed.' }], isError: true };
167
+ }
168
+ await storage.deleteCapability(id);
169
+ return { content: [{ type: 'text', text: JSON.stringify({ deleted: true, id }, null, 2) }] };
170
+ });
171
+ mcp.tool('aimeat_capabilities_vouch', 'Vouch for a capability to increase its trust signal. You cannot vouch for your own capabilities.', {
172
+ id: z.string().describe('Capability ID to vouch for'),
173
+ comment: z.string().optional().describe('Optional comment explaining why you vouch for this capability'),
174
+ }, async ({ id, comment: _comment }) => {
175
+ const cap = await storage.getCapability(id);
176
+ if (!cap)
177
+ return { content: [{ type: 'text', text: `Capability not found: ${id}` }], isError: true };
178
+ const callerGhii = getAgentGaii();
179
+ if (cap.ownerGhii === callerGhii) {
180
+ return { content: [{ type: 'text', text: 'Cannot vouch for your own capability' }], isError: true };
181
+ }
182
+ await storage.incrementVouchCount(id);
183
+ const updated = await storage.getCapability(id);
184
+ return { content: [{ type: 'text', text: JSON.stringify({ vouchCount: updated?.trust.vouchCount ?? 0 }, null, 2) }] };
185
+ });
186
+ }
187
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/mcp/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @file cortex.ts
3
+ * @description MCP cortex lifecycle tools. Provides 5 tools for cortex extension management:
4
+ * list, install, activate, deactivate, and delete cortex extensions via the MCP protocol.
5
+ * @structure
6
+ * - registerCortexTools() - registers all cortex tools on an McpServer instance
7
+ * @usage
8
+ * import { registerCortexTools } from './cortex.js';
9
+ * registerCortexTools(mcp, storage, config, getAgentGaii, emitResourceUpdated, emitResourceListChanged);
10
+ * @version-history
11
+ * v1.0.0 - 2026-05-02 - Initial creation: 5 tools for cortex lifecycle management via MCP
12
+ */
13
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
14
+ import type { AimeatConfig } from '../config.js';
15
+ import type { Storage } from '../storage/interface.js';
16
+ export declare function registerCortexTools(mcp: McpServer, storage: Storage, config: AimeatConfig, getAgentGaii: () => string, emitResourceUpdated: (agentGaii: string, uri: string) => void, emitResourceListChanged: (agentGaii: string) => void): void;
17
+ //# sourceMappingURL=cortex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cortex.d.ts","sourceRoot":"","sources":["../../../src/mcp/cortex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAMvD,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,MAAM,EAC1B,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC7D,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACrD,IAAI,CAqRN"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * @file cortex.ts
3
+ * @description MCP cortex lifecycle tools. Provides 5 tools for cortex extension management:
4
+ * list, install, activate, deactivate, and delete cortex extensions via the MCP protocol.
5
+ * @structure
6
+ * - registerCortexTools() - registers all cortex tools on an McpServer instance
7
+ * @usage
8
+ * import { registerCortexTools } from './cortex.js';
9
+ * registerCortexTools(mcp, storage, config, getAgentGaii, emitResourceUpdated, emitResourceListChanged);
10
+ * @version-history
11
+ * v1.0.0 - 2026-05-02 - Initial creation: 5 tools for cortex lifecycle management via MCP
12
+ */
13
+ import { z } from 'zod';
14
+ import { parseCortexManifest } from '../services/cortex-manifest.js';
15
+ import { runCapabilityAggregation } from '../services/capability-aggregator.js';
16
+ import { parseGAII } from '../utils/gaii.js';
17
+ import { logger } from '../utils/logger.js';
18
+ export function registerCortexTools(mcp, storage, config, getAgentGaii, emitResourceUpdated, emitResourceListChanged) {
19
+ // ── Tool 1: aimeat_cortex_list ──
20
+ mcp.tool('aimeat_cortex_list', 'List all installed cortex extensions with their status and metadata', {}, async () => {
21
+ const extensions = await storage.listCortexExtensions({});
22
+ return {
23
+ content: [{
24
+ type: 'text',
25
+ text: JSON.stringify(extensions.map(ext => ({
26
+ name: ext.name,
27
+ version: ext.version,
28
+ description: ext.description,
29
+ status: ext.status,
30
+ visibility: ext.visibility,
31
+ tags: ext.tags,
32
+ namespace: ext.namespace,
33
+ author: ext.author,
34
+ installed_at: ext.installedAt,
35
+ activated_at: ext.activatedAt,
36
+ })), null, 2),
37
+ }],
38
+ };
39
+ });
40
+ // ── Tool 2: aimeat_cortex_install ──
41
+ mcp.tool('aimeat_cortex_install', 'Install a cortex extension from a YAML manifest and optional lib files', {
42
+ manifest: z.string().describe('YAML manifest string for the cortex extension'),
43
+ libs: z.record(z.string(), z.string()).optional().describe('Map of filename to JavaScript source code for lib files'),
44
+ }, async ({ manifest, libs }) => {
45
+ const agentGaii = getAgentGaii();
46
+ const parsed = parseGAII(agentGaii);
47
+ const ownerName = parsed?.owner ?? agentGaii;
48
+ // Validate manifest is provided
49
+ if (!manifest || typeof manifest !== 'string') {
50
+ return { content: [{ type: 'text', text: 'manifest is required and must be a YAML string' }], isError: true };
51
+ }
52
+ // Manifest size limit
53
+ const manifestSizeKb = Buffer.byteLength(manifest, 'utf-8') / 1024;
54
+ if (manifestSizeKb > config.cortexMaxLibSizeKb) {
55
+ return { content: [{ type: 'text', text: `Manifest size ${Math.round(manifestSizeKb)}KB exceeds limit of ${config.cortexMaxLibSizeKb}KB` }], isError: true };
56
+ }
57
+ // Check install limit
58
+ const existing = await storage.listCortexExtensions();
59
+ if (existing.length >= config.cortexMaxInstalled) {
60
+ return { content: [{ type: 'text', text: `Maximum ${config.cortexMaxInstalled} cortex extensions allowed. Uninstall unused extensions first.` }], isError: true };
61
+ }
62
+ // Validate lib sizes
63
+ if (libs) {
64
+ for (const [filename, content] of Object.entries(libs)) {
65
+ if (typeof content !== 'string') {
66
+ return { content: [{ type: 'text', text: `libs["${filename}"] must be a string` }], isError: true };
67
+ }
68
+ const sizeKb = Buffer.byteLength(content, 'utf8') / 1024;
69
+ if (sizeKb > config.cortexMaxLibSizeKb) {
70
+ return { content: [{ type: 'text', text: `Lib "${filename}" is ${sizeKb.toFixed(1)}KB, max is ${config.cortexMaxLibSizeKb}KB` }], isError: true };
71
+ }
72
+ }
73
+ }
74
+ // Parse and validate manifest
75
+ const result = parseCortexManifest(manifest, ownerName, libs);
76
+ if (!result.ok || !result.extension) {
77
+ return {
78
+ content: [{
79
+ type: 'text',
80
+ text: JSON.stringify({
81
+ error: 'Manifest validation failed',
82
+ errors: result.errors,
83
+ warnings: result.warnings,
84
+ }, null, 2),
85
+ }],
86
+ isError: true,
87
+ };
88
+ }
89
+ const ext = result.extension;
90
+ // Store lib files
91
+ if (libs) {
92
+ for (const [filename, content] of Object.entries(libs)) {
93
+ await storage.setCortexLibFile(ext.name, filename, content);
94
+ }
95
+ }
96
+ try {
97
+ const record = await storage.createCortexExtension(ext);
98
+ emitResourceListChanged(agentGaii);
99
+ return {
100
+ content: [{
101
+ type: 'text',
102
+ text: JSON.stringify({
103
+ name: record.name,
104
+ namespace: record.namespace,
105
+ version: record.version,
106
+ status: record.status,
107
+ installed_at: record.installedAt,
108
+ installed_by: record.installedBy,
109
+ component_count: record.components.length,
110
+ warnings: result.warnings,
111
+ }, null, 2),
112
+ }],
113
+ };
114
+ }
115
+ catch (e) {
116
+ const msg = e.message;
117
+ if (msg.includes('already exists')) {
118
+ return { content: [{ type: 'text', text: `Extension "${ext.name}" is already installed` }], isError: true };
119
+ }
120
+ throw e;
121
+ }
122
+ });
123
+ // ── Tool 3: aimeat_cortex_activate ──
124
+ mcp.tool('aimeat_cortex_activate', 'Activate an installed cortex extension, making it available for use', {
125
+ name: z.string().describe('Name of the cortex extension to activate'),
126
+ }, async ({ name }) => {
127
+ const agentGaii = getAgentGaii();
128
+ const ext = await storage.getCortexExtension(name);
129
+ if (!ext) {
130
+ return { content: [{ type: 'text', text: `Cortex extension not found: ${name}` }], isError: true };
131
+ }
132
+ // Idempotent - already active
133
+ if (ext.status === 'active') {
134
+ return {
135
+ content: [{
136
+ type: 'text',
137
+ text: JSON.stringify({
138
+ name: ext.name,
139
+ status: 'active',
140
+ activated_at: ext.activatedAt,
141
+ message: 'Extension is already active',
142
+ }, null, 2),
143
+ }],
144
+ };
145
+ }
146
+ const now = new Date().toISOString();
147
+ await storage.updateCortexExtension(name, {
148
+ status: 'active',
149
+ activatedAt: now,
150
+ });
151
+ // Trigger capability aggregation
152
+ runCapabilityAggregation(config, storage).catch(err => logger.error('Capability aggregation failed after cortex activation', { error: String(err) }));
153
+ emitResourceListChanged(agentGaii);
154
+ return {
155
+ content: [{
156
+ type: 'text',
157
+ text: JSON.stringify({
158
+ name: ext.name,
159
+ status: 'active',
160
+ activated_at: now,
161
+ }, null, 2),
162
+ }],
163
+ };
164
+ });
165
+ // ── Tool 4: aimeat_cortex_deactivate ──
166
+ mcp.tool('aimeat_cortex_deactivate', 'Deactivate a cortex extension without uninstalling it', {
167
+ name: z.string().describe('Name of the cortex extension to deactivate'),
168
+ }, async ({ name }) => {
169
+ const agentGaii = getAgentGaii();
170
+ const ext = await storage.getCortexExtension(name);
171
+ if (!ext) {
172
+ return { content: [{ type: 'text', text: `Cortex extension not found: ${name}` }], isError: true };
173
+ }
174
+ // Idempotent - already inactive
175
+ if (ext.status === 'inactive') {
176
+ return {
177
+ content: [{
178
+ type: 'text',
179
+ text: JSON.stringify({
180
+ name: ext.name,
181
+ status: 'inactive',
182
+ message: 'Extension is already inactive',
183
+ }, null, 2),
184
+ }],
185
+ };
186
+ }
187
+ await storage.updateCortexExtension(name, {
188
+ status: 'inactive',
189
+ activatedAt: undefined,
190
+ });
191
+ emitResourceListChanged(agentGaii);
192
+ return {
193
+ content: [{
194
+ type: 'text',
195
+ text: JSON.stringify({
196
+ name: ext.name,
197
+ status: 'inactive',
198
+ }, null, 2),
199
+ }],
200
+ };
201
+ });
202
+ // ── Tool 5: aimeat_cortex_delete ──
203
+ mcp.tool('aimeat_cortex_delete', 'Delete (uninstall) a cortex extension, deactivating it first if active', {
204
+ name: z.string().describe('Name of the cortex extension to delete'),
205
+ }, async ({ name }) => {
206
+ const agentGaii = getAgentGaii();
207
+ const ext = await storage.getCortexExtension(name);
208
+ if (!ext) {
209
+ return { content: [{ type: 'text', text: `Cortex extension not found: ${name}` }], isError: true };
210
+ }
211
+ // Deactivate first if active
212
+ if (ext.status === 'active') {
213
+ await storage.updateCortexExtension(name, {
214
+ status: 'inactive',
215
+ activatedAt: undefined,
216
+ });
217
+ }
218
+ // Remove lib files
219
+ for (const comp of ext.components) {
220
+ if (comp.type === 'lib') {
221
+ await storage.deleteCortexLibFile(name, comp.filename);
222
+ }
223
+ }
224
+ await storage.deleteCortexExtension(name);
225
+ emitResourceListChanged(agentGaii);
226
+ return {
227
+ content: [{
228
+ type: 'text',
229
+ text: JSON.stringify({
230
+ deleted: true,
231
+ name,
232
+ }, null, 2),
233
+ }],
234
+ };
235
+ });
236
+ }
237
+ //# sourceMappingURL=cortex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cortex.js","sourceRoot":"","sources":["../../../src/mcp/cortex.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @file extensions.ts
3
- * @description MCP extension tools and resource registrations. Provides 2 tools for extension
4
- * management (list active extensions, invoke an extension action) and 1 resource template
5
- * for reading extension details via the MCP resource protocol.
3
+ * @description MCP extension tools and resource registrations. Provides 7 tools for extension
4
+ * lifecycle management (list, invoke, install, activate, deactivate, delete, get) and 1
5
+ * resource template for reading extension details via the MCP resource protocol.
6
6
  * @structure
7
7
  * - registerExtensionsTools() — registers all extension tools and resources on an McpServer instance
8
8
  * @usage
@@ -10,6 +10,7 @@
10
10
  * registerExtensionsTools(mcp, storage, config, getAgentGaii, emitResourceUpdated, emitResourceListChanged);
11
11
  * @version-history
12
12
  * v1.0.0 — 2026-03-21 — Initial creation: 2 tools + 1 resource for extension management via MCP
13
+ * v1.1.0 — 2026-05-02 — Add 5 lifecycle tools: install, activate, deactivate, delete, get
13
14
  */
14
15
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
15
16
  import type { AimeatConfig } from '../config.js';
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/mcp/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAGtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAMvD,wBAAgB,uBAAuB,CACnC,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,MAAM,EAC1B,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC7D,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACrD,IAAI,CA0SN"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/mcp/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAItF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,yBAAyB,CAAC;AAMxE,wBAAgB,uBAAuB,CACnC,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,MAAM,EAC1B,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC7D,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACrD,IAAI,CAskBN"}