aimeat 1.4.8 → 1.5.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 (123) hide show
  1. package/dist/locales/en.json +60 -4
  2. package/dist/locales/fi.json +60 -4
  3. package/dist/public/css/views/profile.css +37 -0
  4. package/dist/public/js/services/admin.js +5 -0
  5. package/dist/public/js/services/boards.js +6 -3
  6. package/dist/public/js/services/memory.js +10 -0
  7. package/dist/public/views/admin/federation-tab.js +93 -7
  8. package/dist/public/views/admin/ghii-tab.js +2 -0
  9. package/dist/public/views/admin.js +1 -1
  10. package/dist/public/views/profile/access-tab.js +160 -58
  11. package/dist/public/views/profile/agents-tab.js +13 -1
  12. package/dist/public/views/profile/boards-tab.js +12 -0
  13. package/dist/public/views/profile/data-wallet-tab.js +29 -2
  14. package/dist/public/views/profile/knowledge-tab.js +64 -2
  15. package/dist/public/views/profile/landing-page.js +9 -6
  16. package/dist/public/views/profile/memory-tab.js +92 -4
  17. package/dist/src/auth/jwt.d.ts +6 -0
  18. package/dist/src/auth/jwt.d.ts.map +1 -1
  19. package/dist/src/auth/jwt.js +6 -0
  20. package/dist/src/auth/jwt.js.map +1 -1
  21. package/dist/src/auth/middleware.d.ts +7 -0
  22. package/dist/src/auth/middleware.d.ts.map +1 -1
  23. package/dist/src/auth/middleware.js +20 -0
  24. package/dist/src/auth/middleware.js.map +1 -1
  25. package/dist/src/middleware/federation-proxy.d.ts +35 -0
  26. package/dist/src/middleware/federation-proxy.d.ts.map +1 -0
  27. package/dist/src/middleware/federation-proxy.js +92 -0
  28. package/dist/src/middleware/federation-proxy.js.map +1 -0
  29. package/dist/src/routes/actions.d.ts.map +1 -1
  30. package/dist/src/routes/actions.js +7 -2
  31. package/dist/src/routes/actions.js.map +1 -1
  32. package/dist/src/routes/admin-agents.d.ts.map +1 -1
  33. package/dist/src/routes/admin-agents.js +1 -0
  34. package/dist/src/routes/admin-agents.js.map +1 -1
  35. package/dist/src/routes/admin-features.d.ts.map +1 -1
  36. package/dist/src/routes/admin-features.js +2 -0
  37. package/dist/src/routes/admin-features.js.map +1 -1
  38. package/dist/src/routes/agents.d.ts.map +1 -1
  39. package/dist/src/routes/agents.js +36 -3
  40. package/dist/src/routes/agents.js.map +1 -1
  41. package/dist/src/routes/boards.d.ts.map +1 -1
  42. package/dist/src/routes/boards.js +12 -5
  43. package/dist/src/routes/boards.js.map +1 -1
  44. package/dist/src/routes/federation-auth.d.ts +15 -0
  45. package/dist/src/routes/federation-auth.d.ts.map +1 -0
  46. package/dist/src/routes/federation-auth.js +182 -0
  47. package/dist/src/routes/federation-auth.js.map +1 -0
  48. package/dist/src/routes/federation-genesis.d.ts +2 -1
  49. package/dist/src/routes/federation-genesis.d.ts.map +1 -1
  50. package/dist/src/routes/federation-genesis.js +58 -2
  51. package/dist/src/routes/federation-genesis.js.map +1 -1
  52. package/dist/src/routes/federation-peer.d.ts.map +1 -1
  53. package/dist/src/routes/federation-peer.js +79 -2
  54. package/dist/src/routes/federation-peer.js.map +1 -1
  55. package/dist/src/routes/federation-sync.d.ts.map +1 -1
  56. package/dist/src/routes/federation-sync.js +14 -1
  57. package/dist/src/routes/federation-sync.js.map +1 -1
  58. package/dist/src/routes/federation.d.ts +2 -1
  59. package/dist/src/routes/federation.d.ts.map +1 -1
  60. package/dist/src/routes/federation.js +4 -2
  61. package/dist/src/routes/federation.js.map +1 -1
  62. package/dist/src/routes/ghii.d.ts +2 -1
  63. package/dist/src/routes/ghii.d.ts.map +1 -1
  64. package/dist/src/routes/ghii.js +88 -4
  65. package/dist/src/routes/ghii.js.map +1 -1
  66. package/dist/src/routes/libs.js +42 -10
  67. package/dist/src/routes/libs.js.map +1 -1
  68. package/dist/src/routes/memory.d.ts.map +1 -1
  69. package/dist/src/routes/memory.js +162 -0
  70. package/dist/src/routes/memory.js.map +1 -1
  71. package/dist/src/server-bootstrap/routes-loader.d.ts +2 -0
  72. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  73. package/dist/src/server-bootstrap/routes-loader.js +7 -4
  74. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  75. package/dist/src/server-bootstrap/service-init.d.ts +2 -0
  76. package/dist/src/server-bootstrap/service-init.d.ts.map +1 -1
  77. package/dist/src/server-bootstrap/service-init.js +8 -1
  78. package/dist/src/server-bootstrap/service-init.js.map +1 -1
  79. package/dist/src/server.d.ts.map +1 -1
  80. package/dist/src/server.js +1 -0
  81. package/dist/src/server.js.map +1 -1
  82. package/dist/src/services/federation.d.ts +6 -6
  83. package/dist/src/services/federation.d.ts.map +1 -1
  84. package/dist/src/services/federation.js +53 -1
  85. package/dist/src/services/federation.js.map +1 -1
  86. package/dist/src/services/memory-replication.d.ts.map +1 -1
  87. package/dist/src/services/memory-replication.js +3 -0
  88. package/dist/src/services/memory-replication.js.map +1 -1
  89. package/dist/src/storage/interface.d.ts +9 -1
  90. package/dist/src/storage/interface.d.ts.map +1 -1
  91. package/dist/src/storage/providers/mongodb/index.d.ts +2 -1
  92. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  93. package/dist/src/storage/providers/mongodb/index.js +31 -10
  94. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  95. package/dist/src/storage/providers/sqlite/index.d.ts +2 -1
  96. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  97. package/dist/src/storage/providers/sqlite/index.js +47 -19
  98. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  99. package/dist/src/storage/providers/sqlite/repos/action.d.ts.map +1 -1
  100. package/dist/src/storage/providers/sqlite/repos/action.js +5 -4
  101. package/dist/src/storage/providers/sqlite/repos/action.js.map +1 -1
  102. package/dist/src/storage/providers/sqlite/repos/agent.d.ts.map +1 -1
  103. package/dist/src/storage/providers/sqlite/repos/agent.js +5 -4
  104. package/dist/src/storage/providers/sqlite/repos/agent.js.map +1 -1
  105. package/dist/src/storage/providers/sqlite/repos/board.d.ts.map +1 -1
  106. package/dist/src/storage/providers/sqlite/repos/board.js +3 -2
  107. package/dist/src/storage/providers/sqlite/repos/board.js.map +1 -1
  108. package/dist/src/storage/providers/sqlite/repos/storage-file.d.ts.map +1 -1
  109. package/dist/src/storage/providers/sqlite/repos/storage-file.js +4 -2
  110. package/dist/src/storage/providers/sqlite/repos/storage-file.js.map +1 -1
  111. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  112. package/dist/src/storage/providers/sqlite/schema.js +10 -0
  113. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  114. package/dist/src/storage/repositories/board.repository.d.ts +1 -1
  115. package/dist/src/storage/repositories/board.repository.d.ts.map +1 -1
  116. package/dist/src/storage/repositories/federation.repository.d.ts +1 -0
  117. package/dist/src/storage/repositories/federation.repository.d.ts.map +1 -1
  118. package/dist/src/utils/service-summary.d.ts +65 -0
  119. package/dist/src/utils/service-summary.d.ts.map +1 -0
  120. package/dist/src/utils/service-summary.js +100 -0
  121. package/dist/src/utils/service-summary.js.map +1 -0
  122. package/package.json +3 -1
  123. package/prisma/schema.prisma +14 -6
@@ -122,6 +122,7 @@ export class MongoStorage {
122
122
  morselBalance: agent.morselBalance,
123
123
  allowedOrigins: agent.allowedOrigins ?? [],
124
124
  defaultScopes: agent.defaultScopes ?? ['*'],
125
+ federate: agent.federate ?? false,
125
126
  createdAt: new Date(agent.createdAt),
126
127
  lastSeen: new Date(agent.lastSeen),
127
128
  },
@@ -531,6 +532,7 @@ export class MongoStorage {
531
532
  tags: action.tags,
532
533
  webhookUrl: action.webhookUrl ?? null,
533
534
  semantic: action.semantic ?? null,
535
+ federate: action.federate ?? false,
534
536
  createdAt: new Date(action.createdAt),
535
537
  updatedAt: new Date(action.updatedAt),
536
538
  },
@@ -731,6 +733,7 @@ export class MongoStorage {
731
733
  visibility: board.visibility,
732
734
  ownerGaii: board.ownerGaii,
733
735
  allowedGaiis: board.allowedGaiis,
736
+ federate: board.federate ?? false,
734
737
  createdAt: new Date(board.createdAt),
735
738
  },
736
739
  });
@@ -751,10 +754,13 @@ export class MongoStorage {
751
754
  const rows = await this.prisma.board.findMany({ where });
752
755
  return rows.map((r) => this.toBoardRecord(r));
753
756
  }
754
- async updateBoardVisibility(id, visibility) {
757
+ async updateBoardVisibility(id, visibility, federate) {
755
758
  this.ensureReady();
756
759
  try {
757
- const row = await this.prisma.board.update({ where: { boardId: id }, data: { visibility } });
760
+ const data = { visibility };
761
+ if (federate !== undefined)
762
+ data.federate = federate;
763
+ const row = await this.prisma.board.update({ where: { boardId: id }, data });
758
764
  return this.toBoardRecord(row);
759
765
  }
760
766
  catch {
@@ -1143,6 +1149,7 @@ export class MongoStorage {
1143
1149
  size: file.size,
1144
1150
  data: file.data,
1145
1151
  tags: file.tags || [],
1152
+ federate: file.federate ?? false,
1146
1153
  createdAt: new Date(file.createdAt),
1147
1154
  },
1148
1155
  });
@@ -1155,16 +1162,16 @@ export class MongoStorage {
1155
1162
  });
1156
1163
  if (!row)
1157
1164
  return null;
1158
- return { key: row.key, ownerGaii: row.ownerGaii, visibility: row.visibility, mimeType: row.mimeType, size: row.size, data: Buffer.from(row.data), tags: row.tags || [], createdAt: row.createdAt.toISOString() };
1165
+ return { key: row.key, ownerGaii: row.ownerGaii, visibility: row.visibility, mimeType: row.mimeType, size: row.size, data: Buffer.from(row.data), tags: row.tags || [], federate: row.federate ?? false, createdAt: row.createdAt.toISOString() };
1159
1166
  }
1160
1167
  async listStorageFiles(ownerGaii) {
1161
1168
  this.ensureReady();
1162
1169
  const rows = await this.prisma.storageFile.findMany({
1163
1170
  where: { ownerGaii },
1164
- select: { key: true, ownerGaii: true, visibility: true, mimeType: true, size: true, tags: true, createdAt: true },
1171
+ select: { key: true, ownerGaii: true, visibility: true, mimeType: true, size: true, tags: true, federate: true, createdAt: true },
1165
1172
  });
1166
1173
  return rows.map((r) => ({
1167
- key: r.key, ownerGaii: r.ownerGaii, visibility: r.visibility, mimeType: r.mimeType, size: r.size, data: Buffer.alloc(0), tags: r.tags || [], createdAt: r.createdAt.toISOString(),
1174
+ key: r.key, ownerGaii: r.ownerGaii, visibility: r.visibility, mimeType: r.mimeType, size: r.size, data: Buffer.alloc(0), tags: r.tags || [], federate: r.federate ?? false, createdAt: r.createdAt.toISOString(),
1168
1175
  }));
1169
1176
  }
1170
1177
  async deleteStorageFile(ownerGaii, key) {
@@ -1244,6 +1251,16 @@ export class MongoStorage {
1244
1251
  return null;
1245
1252
  }
1246
1253
  }
1254
+ async deletePeeringRequest(id) {
1255
+ this.ensureReady();
1256
+ try {
1257
+ await this.prisma.peeringRequest.delete({ where: { requestId: id } });
1258
+ return true;
1259
+ }
1260
+ catch {
1261
+ return false;
1262
+ }
1263
+ }
1247
1264
  // ── Chunked Uploads (kept in-memory — transient) ───────────
1248
1265
  async createChunkedUpload(record) {
1249
1266
  this.chunkedUploads.set(record.uploadId, record);
@@ -1283,19 +1300,19 @@ export class MongoStorage {
1283
1300
  return { name: row.name, displayName: row.displayName ?? undefined, publicKey: row.publicKey, roles: row.roles, createdAt: row.createdAt.toISOString() };
1284
1301
  }
1285
1302
  toAgentRecord(row) {
1286
- return { name: row.name, owner: row.owner, gaii: row.gaii, displayName: row.displayName ?? undefined, description: row.description ?? undefined, capabilities: row.capabilities, publicKey: row.publicKey, trustScore: row.trustScore, morselBalance: row.morselBalance, defaultScopes: row.defaultScopes?.length ? row.defaultScopes : undefined, allowedOrigins: row.allowedOrigins?.length ? row.allowedOrigins : undefined, createdAt: row.createdAt.toISOString(), lastSeen: row.lastSeen.toISOString() };
1303
+ return { name: row.name, owner: row.owner, gaii: row.gaii, displayName: row.displayName ?? undefined, description: row.description ?? undefined, capabilities: row.capabilities, publicKey: row.publicKey, trustScore: row.trustScore, morselBalance: row.morselBalance, defaultScopes: row.defaultScopes?.length ? row.defaultScopes : undefined, allowedOrigins: row.allowedOrigins?.length ? row.allowedOrigins : undefined, federate: row.federate ?? false, createdAt: row.createdAt.toISOString(), lastSeen: row.lastSeen.toISOString() };
1287
1304
  }
1288
1305
  toMemoryRecord(row) {
1289
1306
  return { key: row.key, ownerGaii: row.ownerGaii, value: row.value, visibility: row.visibility, tags: row.tags, ttlHours: row.ttlHours, version: row.version, createdAt: row.createdAt.toISOString(), updatedAt: row.updatedAt.toISOString(), flagCount: row.flagCount ?? undefined, allowedOrigins: row.allowedOrigins?.length ? row.allowedOrigins : undefined };
1290
1307
  }
1291
1308
  toActionRecord(row) {
1292
- return { id: row.actionId, providerGaii: row.providerGaii, displayName: row.displayName, description: row.description, category: row.category ?? undefined, inputSchema: row.inputSchema, outputSchema: row.outputSchema, pricing: { baseMorsels: row.pricingBaseMorsels, perUnit: row.pricingPerUnit }, estimatedTimeSeconds: row.estimatedTimeSeconds ?? undefined, maxInputSizeBytes: row.maxInputSizeBytes ?? undefined, tags: row.tags, webhookUrl: row.webhookUrl ?? undefined, semantic: row.semantic ?? undefined, createdAt: row.createdAt.toISOString(), updatedAt: row.updatedAt.toISOString() };
1309
+ return { id: row.actionId, providerGaii: row.providerGaii, displayName: row.displayName, description: row.description, category: row.category ?? undefined, inputSchema: row.inputSchema, outputSchema: row.outputSchema, pricing: { baseMorsels: row.pricingBaseMorsels, perUnit: row.pricingPerUnit }, estimatedTimeSeconds: row.estimatedTimeSeconds ?? undefined, maxInputSizeBytes: row.maxInputSizeBytes ?? undefined, tags: row.tags, webhookUrl: row.webhookUrl ?? undefined, semantic: row.semantic ?? undefined, federate: row.federate ?? false, createdAt: row.createdAt.toISOString(), updatedAt: row.updatedAt.toISOString() };
1293
1310
  }
1294
1311
  toWorkRecord(row) {
1295
1312
  return { trackingCode: row.trackingCode, status: row.status, actionId: row.actionId, providerGaii: row.providerGaii, requesterGaii: row.requesterGaii, input: row.input, output: row.output, cost: { basePrice: row.costBasePrice, networkFee: row.costNetworkFee, total: row.costTotal, inEscrow: row.costInEscrow }, ttlExpiresAt: row.ttlExpiresAt.toISOString(), callbackUrl: row.callbackUrl ?? undefined, rating: row.ratingScore != null ? { score: row.ratingScore, comment: row.ratingComment ?? undefined } : undefined, createdAt: row.createdAt.toISOString(), updatedAt: row.updatedAt.toISOString() };
1296
1313
  }
1297
1314
  toBoardRecord(row) {
1298
- return { id: row.boardId, name: row.name, description: row.description ?? undefined, visibility: row.visibility, ownerGaii: row.ownerGaii, allowedGaiis: row.allowedGaiis, createdAt: row.createdAt.toISOString() };
1315
+ return { id: row.boardId, name: row.name, description: row.description ?? undefined, visibility: row.visibility, ownerGaii: row.ownerGaii, allowedGaiis: row.allowedGaiis, federate: row.federate ?? false, createdAt: row.createdAt.toISOString() };
1299
1316
  }
1300
1317
  toPostRecord(row) {
1301
1318
  return { id: row.postId, boardId: row.boardId, authorGaii: row.authorGaii, title: row.title, body: row.body, category: row.category ?? undefined, tags: row.tags, ttlExpiresAt: row.ttlExpiresAt?.toISOString(), reactions: row.reactions, replyTo: row.replyTo ?? undefined, createdAt: row.createdAt.toISOString() };
@@ -3922,8 +3939,8 @@ export class MongoStorage {
3922
3939
  this.ensureReady();
3923
3940
  await this.prisma.federationPeer.upsert({
3924
3941
  where: { nodeId: peer.nodeId },
3925
- create: { nodeId: peer.nodeId, url: peer.url, publicKey: peer.publicKey, status: peer.status, addedAt: new Date(peer.addedAt), lastSeen: new Date(peer.lastSeen) },
3926
- update: { url: peer.url, publicKey: peer.publicKey, status: peer.status, lastSeen: new Date(peer.lastSeen) },
3942
+ create: { nodeId: peer.nodeId, url: peer.url, publicKey: peer.publicKey, status: peer.status, addedAt: new Date(peer.addedAt), lastSeen: new Date(peer.lastSeen), shareCatalogue: peer.shareCatalogue, replicateMemory: peer.replicateMemory, allowRouting: peer.allowRouting, peerMode: peer.peerMode || 'federation' },
3943
+ update: { url: peer.url, publicKey: peer.publicKey, status: peer.status, lastSeen: new Date(peer.lastSeen), shareCatalogue: peer.shareCatalogue, replicateMemory: peer.replicateMemory, allowRouting: peer.allowRouting, peerMode: peer.peerMode || 'federation' },
3927
3944
  });
3928
3945
  }
3929
3946
  async listFederationPeers() {
@@ -3936,6 +3953,10 @@ export class MongoStorage {
3936
3953
  status: r.status,
3937
3954
  addedAt: r.addedAt instanceof Date ? r.addedAt.toISOString() : r.addedAt,
3938
3955
  lastSeen: r.lastSeen instanceof Date ? r.lastSeen.toISOString() : r.lastSeen,
3956
+ shareCatalogue: r.shareCatalogue ?? true,
3957
+ replicateMemory: r.replicateMemory ?? true,
3958
+ allowRouting: r.allowRouting ?? true,
3959
+ peerMode: r.peerMode || 'federation',
3939
3960
  }));
3940
3961
  }
3941
3962
  async deleteFederationPeer(nodeId) {