aimeat 1.3.2 → 1.3.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 (49) hide show
  1. package/README.md +209 -95
  2. package/dist/src/auth/jwt.d.ts +4 -0
  3. package/dist/src/auth/jwt.d.ts.map +1 -1
  4. package/dist/src/auth/jwt.js +5 -0
  5. package/dist/src/auth/jwt.js.map +1 -1
  6. package/dist/src/auth/node-keys.d.ts.map +1 -1
  7. package/dist/src/auth/node-keys.js +4 -1
  8. package/dist/src/auth/node-keys.js.map +1 -1
  9. package/dist/src/mcp/apps.d.ts.map +1 -1
  10. package/dist/src/mcp/apps.js +35 -12
  11. package/dist/src/mcp/apps.js.map +1 -1
  12. package/dist/src/mcp/core.d.ts.map +1 -1
  13. package/dist/src/mcp/core.js +38 -2
  14. package/dist/src/mcp/core.js.map +1 -1
  15. package/dist/src/mcp/cortex.d.ts.map +1 -1
  16. package/dist/src/mcp/cortex.js +37 -6
  17. package/dist/src/mcp/cortex.js.map +1 -1
  18. package/dist/src/mcp/extensions.d.ts.map +1 -1
  19. package/dist/src/mcp/extensions.js +37 -3
  20. package/dist/src/mcp/extensions.js.map +1 -1
  21. package/dist/src/routes/apps.d.ts.map +1 -1
  22. package/dist/src/routes/apps.js +25 -3
  23. package/dist/src/routes/apps.js.map +1 -1
  24. package/dist/src/routes/extensions.d.ts.map +1 -1
  25. package/dist/src/routes/extensions.js +3 -1
  26. package/dist/src/routes/extensions.js.map +1 -1
  27. package/dist/src/routes/storage-files.d.ts.map +1 -1
  28. package/dist/src/routes/storage-files.js +26 -1
  29. package/dist/src/routes/storage-files.js.map +1 -1
  30. package/dist/src/routes/upload.d.ts +22 -0
  31. package/dist/src/routes/upload.d.ts.map +1 -0
  32. package/dist/src/routes/upload.js +219 -0
  33. package/dist/src/routes/upload.js.map +1 -0
  34. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  35. package/dist/src/server-bootstrap/routes-loader.js +3 -0
  36. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  37. package/dist/src/server.d.ts.map +1 -1
  38. package/dist/src/server.js +11 -3
  39. package/dist/src/server.js.map +1 -1
  40. package/dist/src/services/upload-token.d.ts +37 -0
  41. package/dist/src/services/upload-token.d.ts.map +1 -0
  42. package/dist/src/services/upload-token.js +98 -0
  43. package/dist/src/services/upload-token.js.map +1 -0
  44. package/dist/src/services/upload-zip.d.ts +31 -0
  45. package/dist/src/services/upload-zip.d.ts.map +1 -0
  46. package/dist/src/services/upload-zip.js +236 -0
  47. package/dist/src/services/upload-zip.js.map +1 -0
  48. package/dist/static/app-catalog.html +170 -16
  49. package/package.json +2 -2
@@ -0,0 +1,219 @@
1
+ /**
2
+ * @file upload.ts
3
+ * @description Presigned upload endpoint. Receives raw file bodies at PUT /v1/upload/:token,
4
+ * validates the token, enforces size limits, and delegates processing based on upload type
5
+ * (app, storage, extension, cortex).
6
+ * @structure
7
+ * - uploadRouter() — Express router factory with single PUT endpoint
8
+ * - handleAppUpload() — process HTML app uploads
9
+ * - handleStorageUpload() — process generic file uploads
10
+ * - handleExtensionUpload() — process extension ZIP uploads
11
+ * - handleCortexUpload() — process cortex ZIP uploads
12
+ * @usage
13
+ * import { uploadRouter } from '../routes/upload.js';
14
+ * app.use(uploadRouter(config, storage));
15
+ * @version-history
16
+ * v1.0.0 — 2026-05-02 — Initial implementation
17
+ */
18
+ import { Router } from 'express';
19
+ import { verifyUploadToken, UploadTokenError } from '../services/upload-token.js';
20
+ import { parseExtensionZip, parseCortexZip } from '../services/upload-zip.js';
21
+ import { parseGAII } from '../utils/gaii.js';
22
+ import { logger } from '../utils/logger.js';
23
+ import { emitResourceListChanged } from '../mcp/index.js';
24
+ export function uploadRouter(config, storage) {
25
+ const router = Router();
26
+ router.put('/v1/upload/:token', async (req, res) => {
27
+ const token = req.params.token;
28
+ // Verify token
29
+ let verified;
30
+ try {
31
+ verified = await verifyUploadToken(token);
32
+ }
33
+ catch (err) {
34
+ if (err instanceof UploadTokenError) {
35
+ const status = err.code === 'TOKEN_EXPIRED' ? 410
36
+ : err.code === 'TOKEN_USED' ? 409
37
+ : 401;
38
+ res.status(status).json({ success: false, error: err.code, message: err.message });
39
+ return;
40
+ }
41
+ res.status(401).json({ success: false, error: 'TOKEN_INVALID', message: 'Invalid upload token' });
42
+ return;
43
+ }
44
+ // Collect raw body (streaming with size enforcement)
45
+ const chunks = [];
46
+ let totalSize = 0;
47
+ try {
48
+ for await (const chunk of req) {
49
+ totalSize += chunk.length;
50
+ if (totalSize > verified.maxBytes) {
51
+ res.status(413).json({
52
+ success: false,
53
+ error: 'FILE_TOO_LARGE',
54
+ message: `Upload exceeds limit of ${verified.maxBytes} bytes`,
55
+ });
56
+ return;
57
+ }
58
+ chunks.push(chunk);
59
+ }
60
+ }
61
+ catch {
62
+ res.status(400).json({ success: false, error: 'STREAM_ERROR', message: 'Failed to read request body' });
63
+ return;
64
+ }
65
+ const data = Buffer.concat(chunks);
66
+ if (data.length === 0) {
67
+ res.status(400).json({ success: false, error: 'EMPTY_BODY', message: 'No file data received' });
68
+ return;
69
+ }
70
+ try {
71
+ switch (verified.utype) {
72
+ case 'app':
73
+ await handleAppUpload(res, config, storage, verified.sub, verified.meta, data);
74
+ return;
75
+ case 'storage':
76
+ await handleStorageUpload(res, storage, verified.sub, verified.meta, data);
77
+ return;
78
+ case 'extension':
79
+ await handleExtensionUpload(res, config, storage, verified.sub, data);
80
+ return;
81
+ case 'cortex':
82
+ await handleCortexUpload(res, config, storage, verified.sub, data);
83
+ return;
84
+ default:
85
+ res.status(400).json({ success: false, error: 'INVALID_TYPE', message: `Unknown upload type` });
86
+ }
87
+ }
88
+ catch (err) {
89
+ logger.error('Upload processing failed', { error: err.message, type: verified.utype });
90
+ res.status(500).json({ success: false, error: 'PROCESSING_FAILED', message: err.message });
91
+ }
92
+ });
93
+ return router;
94
+ }
95
+ // ── Handler: App ──
96
+ async function handleAppUpload(res, config, storage, sub, meta, data) {
97
+ const parsed = parseGAII(sub);
98
+ const ownerGaii = parsed ? `${parsed.owner}@${parsed.node}` : sub;
99
+ const ownerName = parsed?.owner ?? sub;
100
+ const filename = meta.filename;
101
+ const existingVersion = await storage.getLatestVersionNumber(ownerGaii, filename);
102
+ const newVersion = existingVersion + 1;
103
+ const isUpdate = existingVersion > 0;
104
+ const manifest = {
105
+ name: meta.name,
106
+ description: meta.description ?? '',
107
+ version: meta.version ?? `1.0.${newVersion - 1}`,
108
+ category: meta.category ?? 'tool',
109
+ tags: meta.tags ?? [],
110
+ authorDisplay: ownerName,
111
+ usesCortex: [],
112
+ };
113
+ if (meta.icon)
114
+ manifest.icon = meta.icon;
115
+ await storage.createApp({
116
+ ownerGaii,
117
+ ownerName,
118
+ filename,
119
+ versionNumber: newVersion,
120
+ manifest,
121
+ mimeType: 'text/html',
122
+ size: data.length,
123
+ data,
124
+ createdAt: new Date().toISOString(),
125
+ });
126
+ const downloadUrl = `/v1/apps/${encodeURIComponent(ownerName)}/${encodeURIComponent(filename)}`;
127
+ logger.info(`App ${isUpdate ? 'updated' : 'published'} via upload: ${filename} v${newVersion}`, { by: sub });
128
+ emitResourceListChanged(sub);
129
+ res.json({
130
+ success: true,
131
+ type: 'app',
132
+ filename,
133
+ version_number: newVersion,
134
+ name: manifest.name,
135
+ size: data.length,
136
+ is_update: isUpdate,
137
+ download_url: downloadUrl,
138
+ inline_url: `${downloadUrl}?mode=inline`,
139
+ });
140
+ }
141
+ // ── Handler: Storage ──
142
+ async function handleStorageUpload(res, storage, sub, meta, data) {
143
+ const key = meta.key;
144
+ const visibility = meta.visibility ?? 'private';
145
+ const mimeType = meta.mime_type ?? 'application/octet-stream';
146
+ const file = await storage.createStorageFile({
147
+ key,
148
+ ownerGaii: sub,
149
+ visibility,
150
+ mimeType,
151
+ size: data.length,
152
+ data,
153
+ createdAt: new Date().toISOString(),
154
+ });
155
+ emitResourceListChanged(sub);
156
+ res.json({
157
+ success: true,
158
+ type: 'storage',
159
+ key: file.key,
160
+ size: file.size,
161
+ mime_type: mimeType,
162
+ visibility,
163
+ });
164
+ }
165
+ // ── Handler: Extension ──
166
+ async function handleExtensionUpload(res, config, storage, sub, data) {
167
+ const result = await parseExtensionZip(data, config);
168
+ if (!result.ok) {
169
+ res.status(400).json({ success: false, error: 'VALIDATION_FAILED', message: result.error });
170
+ return;
171
+ }
172
+ const record = result.record;
173
+ record.installedBy = parseGAII(sub)?.owner ?? 'upload';
174
+ record.installedAt = new Date().toISOString();
175
+ const existing = await storage.getExtension(record.name);
176
+ if (existing) {
177
+ res.status(409).json({ success: false, error: 'ALREADY_EXISTS', message: `Extension "${record.name}" is already installed` });
178
+ return;
179
+ }
180
+ const created = await storage.createExtension(record);
181
+ logger.info(`Extension installed via upload: ${created.name}`, { version: created.version, by: sub });
182
+ emitResourceListChanged(sub);
183
+ res.json({
184
+ success: true,
185
+ type: 'extension',
186
+ name: created.name,
187
+ version: created.version,
188
+ status: created.status,
189
+ actions: created.actions.map(a => ({ id: a.id, method: a.method, path: a.path })),
190
+ });
191
+ }
192
+ // ── Handler: Cortex ──
193
+ async function handleCortexUpload(res, config, storage, sub, data) {
194
+ const parsed = parseGAII(sub);
195
+ const ownerName = parsed?.owner ?? sub;
196
+ const result = await parseCortexZip(data, config, ownerName);
197
+ if (!result.ok) {
198
+ res.status(400).json({ success: false, error: 'VALIDATION_FAILED', message: result.error });
199
+ return;
200
+ }
201
+ if (result.libs) {
202
+ for (const [filename, content] of Object.entries(result.libs)) {
203
+ await storage.setCortexLibFile(result.extension.name, filename, content);
204
+ }
205
+ }
206
+ const record = await storage.createCortexExtension(result.extension);
207
+ logger.info(`Cortex installed via upload: ${record.name}`, { version: record.version, by: sub });
208
+ emitResourceListChanged(sub);
209
+ res.json({
210
+ success: true,
211
+ type: 'cortex',
212
+ name: record.name,
213
+ namespace: record.namespace,
214
+ version: record.version,
215
+ status: record.status,
216
+ component_count: record.components.length,
217
+ });
218
+ }
219
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/routes/upload.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes-loader.d.ts","sourceRoot":"","sources":["../../../src/server-bootstrap/routes-loader.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA8F1D,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC;IACvC,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,gBAAgB,CAAC;QAC5B,GAAG,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;KACxC,CAAC;IACF,UAAU,EAAE,gBAAgB,CAAC;IAC7B,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,0BAA0B,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC9D,SAAS,EAAE,SAAS,CAAC;IACrB,wBAAwB,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,GACvB,iBAAiB,CA6QnB"}
1
+ {"version":3,"file":"routes-loader.d.ts","sourceRoot":"","sources":["../../../src/server-bootstrap/routes-loader.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA+F1D,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC;IACvC,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,gBAAgB,CAAC;QAC5B,GAAG,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;KACxC,CAAC;IACF,UAAU,EAAE,gBAAgB,CAAC;IAC7B,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,0BAA0B,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC9D,SAAS,EAAE,SAAS,CAAC;IACrB,wBAAwB,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,GACvB,iBAAiB,CAgRnB"}
@@ -67,6 +67,7 @@ import { generatorAutopilotRouter } from '../routes/generator-autopilot.js';
67
67
  import { foundryRouter } from '../routes/foundry.js';
68
68
  import { calibratorRouter } from '../routes/calibrator.js';
69
69
  import { openrouterRouter } from '../routes/openrouter.js';
70
+ import { uploadRouter } from '../routes/upload.js';
70
71
  // Services needed during route mounting
71
72
  import { createPushService } from '../services/push.js';
72
73
  import { createEudiwService } from '../services/eudiw.js';
@@ -98,6 +99,8 @@ export function mountRoutes(app, config, storage, opts) {
98
99
  const metricsRegistry = config.metricsEnabled
99
100
  ? createMetricsRegistry(config)
100
101
  : undefined;
102
+ // Presigned upload endpoint (raw body — no JSON parsing needed)
103
+ app.use(uploadRouter(config, storage));
101
104
  // Mount routes
102
105
  app.use(setupRouter(config, storage, invalidateHasOwnersCache));
103
106
  app.use(bootstrapRouter(config, storage, tunnelManager ?? undefined));
@@ -1 +1 @@
1
- {"version":3,"file":"routes-loader.js","sourceRoot":"","sources":["../../../src/server-bootstrap/routes-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes-loader.js","sourceRoot":"","sources":["../../../src/server-bootstrap/routes-loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAQtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AASpD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IACrB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA0I7G"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAQtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AASpD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IACrB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAgJ7G"}
@@ -28,9 +28,17 @@ export async function createServer(config, configSources) {
28
28
  }
29
29
  // Compress all responses (gzip/deflate based on Accept-Encoding)
30
30
  app.use(compression());
31
- // Global body parsing middleware
32
- app.use(express.json({ limit: '15mb' }));
33
- app.use(express.urlencoded({ extended: false, limit: '1mb' }));
31
+ // Global body parsing middleware (skip for presigned upload — it reads raw body)
32
+ app.use((req, res, next) => {
33
+ if (req.path.startsWith('/v1/upload/'))
34
+ return next();
35
+ express.json({ limit: '15mb' })(req, res, next);
36
+ });
37
+ app.use((req, res, next) => {
38
+ if (req.path.startsWith('/v1/upload/'))
39
+ return next();
40
+ express.urlencoded({ extended: false, limit: '1mb' })(req, res, next);
41
+ });
34
42
  app.use(express.text({ limit: '1mb', type: ['text/yaml', 'application/x-yaml'] }));
35
43
  // Static file serving (public, locales, PWA)
36
44
  setupStaticFiles(app, config);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @file upload-token.ts
3
+ * @description Presigned upload token generation and verification. Tokens are single-use,
4
+ * time-limited JWTs that authorize a single file upload to PUT /v1/upload/:token.
5
+ * Uses the existing node JWT signing infrastructure (no separate key management).
6
+ * @structure
7
+ * - generateUploadToken() — creates a signed upload JWT with metadata
8
+ * - verifyUploadToken() — validates signature, expiry, and single-use
9
+ * - UploadTokenError — typed error with code field
10
+ * @usage
11
+ * import { generateUploadToken, verifyUploadToken } from '../services/upload-token.js';
12
+ * @version-history
13
+ * v1.0.0 — 2026-05-02 — Initial implementation
14
+ */
15
+ export declare function initUploadTokenKeys(privateKey: CryptoKey, publicKey: CryptoKey): void;
16
+ export interface UploadTokenPayload {
17
+ sub: string;
18
+ utype: 'app' | 'storage' | 'extension' | 'cortex';
19
+ meta: Record<string, unknown>;
20
+ maxBytes: number;
21
+ contentType: string;
22
+ }
23
+ export interface VerifiedUploadToken {
24
+ sub: string;
25
+ utype: 'app' | 'storage' | 'extension' | 'cortex';
26
+ meta: Record<string, unknown>;
27
+ maxBytes: number;
28
+ contentType: string;
29
+ }
30
+ export type UploadTokenErrorCode = 'TOKEN_EXPIRED' | 'TOKEN_USED' | 'TOKEN_INVALID';
31
+ export declare class UploadTokenError extends Error {
32
+ readonly code: UploadTokenErrorCode;
33
+ constructor(code: UploadTokenErrorCode, message: string);
34
+ }
35
+ export declare function generateUploadToken(payload: UploadTokenPayload, ttlSeconds?: number): Promise<string>;
36
+ export declare function verifyUploadToken(token: string): Promise<VerifiedUploadToken>;
37
+ //# sourceMappingURL=upload-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-token.d.ts","sourceRoot":"","sources":["../../../src/services/upload-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAWrF;AAID,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,YAAY,GAAG,eAAe,CAAC;AAEpF,qBAAa,gBAAiB,SAAQ,KAAK;IACvC,SAAgB,IAAI,EAAE,oBAAoB,CAAC;gBAC/B,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAK1D;AAID,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAejH;AAQD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmCnF"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @file upload-token.ts
3
+ * @description Presigned upload token generation and verification. Tokens are single-use,
4
+ * time-limited JWTs that authorize a single file upload to PUT /v1/upload/:token.
5
+ * Uses the existing node JWT signing infrastructure (no separate key management).
6
+ * @structure
7
+ * - generateUploadToken() — creates a signed upload JWT with metadata
8
+ * - verifyUploadToken() — validates signature, expiry, and single-use
9
+ * - UploadTokenError — typed error with code field
10
+ * @usage
11
+ * import { generateUploadToken, verifyUploadToken } from '../services/upload-token.js';
12
+ * @version-history
13
+ * v1.0.0 — 2026-05-02 — Initial implementation
14
+ */
15
+ import { SignJWT, jwtVerify } from 'jose';
16
+ import { createHash } from 'node:crypto';
17
+ // ── Key management (initialized from jwt.ts node keys) ──
18
+ let _privateKey = null;
19
+ let _publicKey = null;
20
+ // Single-use tracking: token hash -> expiry timestamp
21
+ const usedTokens = new Map();
22
+ let _cleanupInterval = null;
23
+ export function initUploadTokenKeys(privateKey, publicKey) {
24
+ _privateKey = privateKey;
25
+ _publicKey = publicKey;
26
+ if (_cleanupInterval)
27
+ clearInterval(_cleanupInterval);
28
+ _cleanupInterval = setInterval(() => {
29
+ const now = Math.floor(Date.now() / 1000);
30
+ for (const [hash, exp] of usedTokens) {
31
+ if (exp < now)
32
+ usedTokens.delete(hash);
33
+ }
34
+ }, 5 * 60 * 1000);
35
+ }
36
+ export class UploadTokenError extends Error {
37
+ code;
38
+ constructor(code, message) {
39
+ super(message);
40
+ this.name = 'UploadTokenError';
41
+ this.code = code;
42
+ }
43
+ }
44
+ // ── Token generation ──
45
+ export async function generateUploadToken(payload, ttlSeconds = 3600) {
46
+ if (!_privateKey)
47
+ throw new Error('Upload token keys not initialized');
48
+ return new SignJWT({
49
+ typ: 'upload',
50
+ utype: payload.utype,
51
+ meta: payload.meta,
52
+ maxBytes: payload.maxBytes,
53
+ contentType: payload.contentType,
54
+ })
55
+ .setProtectedHeader({ alg: 'EdDSA', typ: 'JWT' })
56
+ .setSubject(payload.sub)
57
+ .setIssuedAt()
58
+ .setExpirationTime(`${ttlSeconds}s`)
59
+ .sign(_privateKey);
60
+ }
61
+ // ── Token verification ──
62
+ function hashToken(token) {
63
+ return createHash('sha256').update(token).digest('hex');
64
+ }
65
+ export async function verifyUploadToken(token) {
66
+ if (!_publicKey)
67
+ throw new Error('Upload token keys not initialized');
68
+ // Single-use check
69
+ const hash = hashToken(token);
70
+ if (usedTokens.has(hash)) {
71
+ throw new UploadTokenError('TOKEN_USED', 'Upload token has already been used (single-use)');
72
+ }
73
+ let payload;
74
+ try {
75
+ const result = await jwtVerify(token, _publicKey, { algorithms: ['EdDSA'] });
76
+ payload = result.payload;
77
+ }
78
+ catch (err) {
79
+ const msg = err.message;
80
+ if (msg.includes('expired') || msg.includes('exp')) {
81
+ throw new UploadTokenError('TOKEN_EXPIRED', 'Upload token has expired (60 min TTL)');
82
+ }
83
+ throw new UploadTokenError('TOKEN_INVALID', `Invalid upload token: ${msg}`);
84
+ }
85
+ if (payload.typ !== 'upload') {
86
+ throw new UploadTokenError('TOKEN_INVALID', 'Token is not an upload token');
87
+ }
88
+ // Mark as used (store until token expiry for dedup)
89
+ usedTokens.set(hash, payload.exp);
90
+ return {
91
+ sub: payload.sub,
92
+ utype: payload.utype,
93
+ meta: payload.meta,
94
+ maxBytes: payload.maxBytes,
95
+ contentType: payload.contentType,
96
+ };
97
+ }
98
+ //# sourceMappingURL=upload-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-token.js","sourceRoot":"","sources":["../../../src/services/upload-token.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @file upload-zip.ts
3
+ * @description ZIP parsing for extension and cortex uploads via presigned URL.
4
+ * Validates ZIP structure, extracts manifest + scripts/libs, applies security checks
5
+ * (magic bytes, zip bomb detection, path traversal prevention).
6
+ * @structure
7
+ * - parseExtensionZip() — ZIP buffer -> ExtensionRecord
8
+ * - parseCortexZip() — ZIP buffer -> CortexExtensionRecord + libs
9
+ * - extractZipEntries() — internal secure ZIP extraction
10
+ * @usage
11
+ * import { parseExtensionZip, parseCortexZip } from '../services/upload-zip.js';
12
+ * @version-history
13
+ * v1.0.0 — 2026-05-02 — Initial implementation
14
+ */
15
+ import type { AimeatConfig } from '../config.js';
16
+ import type { ExtensionRecord, CortexExtensionRecord } from '../storage/interface.js';
17
+ interface ExtensionZipResult {
18
+ ok: boolean;
19
+ error?: string;
20
+ record?: ExtensionRecord;
21
+ }
22
+ export declare function parseExtensionZip(buffer: Buffer, config: AimeatConfig): Promise<ExtensionZipResult>;
23
+ interface CortexZipResult {
24
+ ok: boolean;
25
+ error?: string;
26
+ extension?: CortexExtensionRecord;
27
+ libs?: Record<string, string>;
28
+ }
29
+ export declare function parseCortexZip(buffer: Buffer, config: AimeatConfig, ownerName: string): Promise<CortexZipResult>;
30
+ export {};
31
+ //# sourceMappingURL=upload-zip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-zip.d.ts","sourceRoot":"","sources":["../../../src/services/upload-zip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAUtF,UAAU,kBAAkB;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgIzG;AAID,UAAU,eAAe;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,wBAAsB,cAAc,CAChC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GACxD,OAAO,CAAC,eAAe,CAAC,CAkD1B"}