aimeat 2.2.0 → 2.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 (1057) hide show
  1. package/README.md +110 -84
  2. package/dist/.env.example +47 -11
  3. package/dist/locales/en.json +251 -371
  4. package/dist/locales/fi.json +255 -375
  5. package/dist/public/components/ContactCard.js +30 -5
  6. package/dist/public/components/ContactPicker.js +3 -2
  7. package/dist/public/components/ImageDeliverable.js +2 -1
  8. package/dist/public/components/JsonView.js +1 -0
  9. package/dist/public/components/LinkPreview.js +1 -1
  10. package/dist/public/components/NotificationBell.js +6 -4
  11. package/dist/public/components/UsageChart.js +2 -1
  12. package/dist/public/css/theme.css +1516 -1432
  13. package/dist/public/css/views/app-grant.css +95 -36
  14. package/dist/public/css/views/help.css +28 -0
  15. package/dist/public/css/views/landing.css +20 -0
  16. package/dist/public/css/views/members.css +40 -10
  17. package/dist/public/css/views/portal-dev.css +64 -45
  18. package/dist/public/css/views/profile.css +8 -0
  19. package/dist/public/js/api.js +1 -0
  20. package/dist/public/js/app-sandbox.js +1 -0
  21. package/dist/public/js/components/auth-image.js +3 -1
  22. package/dist/public/js/i18n.js +3 -1
  23. package/dist/public/js/presence-store.js +3 -1
  24. package/dist/public/js/recents.js +2 -0
  25. package/dist/public/js/services/agent-activity.js +2 -1
  26. package/dist/public/js/services/agent-directives.js +2 -1
  27. package/dist/public/js/services/agent-integration.js +2 -1
  28. package/dist/public/js/services/agent-messages.js +2 -1
  29. package/dist/public/js/services/agent-tasks.js +2 -1
  30. package/dist/public/js/services/agents.js +3 -2
  31. package/dist/public/js/services/calibrator.js +2 -1
  32. package/dist/public/js/services/consent.js +2 -1
  33. package/dist/public/js/services/contacts.js +2 -1
  34. package/dist/public/js/services/cortex.js +5 -4
  35. package/dist/public/js/services/ecosystem.js +2 -1
  36. package/dist/public/js/services/knowledge.js +2 -1
  37. package/dist/public/js/services/ledger.js +2 -1
  38. package/dist/public/js/services/living.js +10 -9
  39. package/dist/public/js/services/memory.js +2 -1
  40. package/dist/public/js/services/messages.js +53 -8
  41. package/dist/public/js/services/nodes.js +3 -2
  42. package/dist/public/js/services/notebook-plan.js +2 -1
  43. package/dist/public/js/services/notebook.js +6 -5
  44. package/dist/public/js/services/offers.js +6 -5
  45. package/dist/public/js/services/organisms.js +26 -25
  46. package/dist/public/js/services/organisms.prompts.js +3 -2
  47. package/dist/public/js/services/organisms.shared.js +2 -1
  48. package/dist/public/js/services/organisms.workspace-gen.js +3 -2
  49. package/dist/public/js/services/packages.js +1 -0
  50. package/dist/public/js/services/schedules.js +2 -1
  51. package/dist/public/js/services/security.js +3 -2
  52. package/dist/public/js/services/skills.js +1 -0
  53. package/dist/public/js/services/tracked-responses.js +4 -3
  54. package/dist/public/js/services/unfurl.js +4 -4
  55. package/dist/public/js/services/work.js +2 -1
  56. package/dist/public/js/site.js +74 -0
  57. package/dist/public/js/swallowed.js +69 -0
  58. package/dist/public/js/theme.js +2 -1
  59. package/dist/public/js/utils.js +3 -1
  60. package/dist/public/lib/VENDORED.md +1 -0
  61. package/dist/public/lib/aimeat-game/board.css +262 -0
  62. package/dist/public/lib/aimeat-game/progress.css +406 -0
  63. package/dist/public/lib/aimeat-game/shell.css +388 -0
  64. package/dist/public/lib/aimeat-game.css +394 -0
  65. package/dist/public/lib/pdfjs@6/pdf.min.mjs +29 -0
  66. package/dist/public/lib/pdfjs@6/pdf.worker.min.mjs +29 -0
  67. package/dist/public/privacy.fi.html +1 -1
  68. package/dist/public/privacy.html +1 -1
  69. package/dist/public/spa.html +885 -793
  70. package/dist/public/sw.js +4 -2
  71. package/dist/public/views/admin/agent-integration-tab.js +7 -6
  72. package/dist/public/views/admin/ai-usage-tab.js +2 -1
  73. package/dist/public/views/admin/cortex-tab.js +2 -1
  74. package/dist/public/views/admin/economy-tab.js +0 -1
  75. package/dist/public/views/admin/email-tab.js +4 -2
  76. package/dist/public/views/admin/federation-tab.js +3 -2
  77. package/dist/public/views/admin/feedback-tab.js +2 -1
  78. package/dist/public/views/admin/knowledge-tab.js +2 -1
  79. package/dist/public/views/admin/messages-tab.js +2 -1
  80. package/dist/public/views/admin/msm-tab.js +2 -1
  81. package/dist/public/views/admin/packages-tab.js +3 -2
  82. package/dist/public/views/admin/portal-tab.js +7 -2
  83. package/dist/public/views/admin/push-tab.js +9 -4
  84. package/dist/public/views/admin/stats-tab.js +2 -1
  85. package/dist/public/views/admin/usage-tab.js +4 -3
  86. package/dist/public/views/admin.js +6 -4
  87. package/dist/public/views/agent-solo.js +4 -3
  88. package/dist/public/views/app-grant.js +105 -32
  89. package/dist/public/views/business.js +139 -55
  90. package/dist/public/views/command-palette.js +5 -3
  91. package/dist/public/views/companies.js +3 -2
  92. package/dist/public/views/doc-solo.js +2 -1
  93. package/dist/public/views/help.js +95 -15
  94. package/dist/public/views/how-it-works.js +41 -8
  95. package/dist/public/views/invite-accept.js +3 -2
  96. package/dist/public/views/landing-activity.js +3 -2
  97. package/dist/public/views/landing-node-totals.js +2 -1
  98. package/dist/public/views/landing.js +75 -152
  99. package/dist/public/views/members.js +29 -2
  100. package/dist/public/views/my-company.js +9 -7
  101. package/dist/public/views/my-company.payments.js +2 -1
  102. package/dist/public/views/portal-classic.js +2 -1
  103. package/dist/public/views/portal-dev.js +64 -35
  104. package/dist/public/views/portal-dev.panels.js +39 -2
  105. package/dist/public/views/portal-dev.upload.js +25 -196
  106. package/dist/public/views/portal.components.js +4 -3
  107. package/dist/public/views/portfolio.js +5 -4
  108. package/dist/public/views/profile/access-tab/access-tokens.js +2 -1
  109. package/dist/public/views/profile/access-tab/agent-defaults.js +3 -1
  110. package/dist/public/views/profile/access-tab/connected-apps.js +72 -3
  111. package/dist/public/views/profile/access-tab/sharing-groups.js +4 -1
  112. package/dist/public/views/profile/access-tab.js +3 -1
  113. package/dist/public/views/profile/agents/agent-card.js +6 -5
  114. package/dist/public/views/profile/agents/tab-activity.js +10 -8
  115. package/dist/public/views/profile/agents/tab-agent-config.js +3 -1
  116. package/dist/public/views/profile/agents/tab-contracts.js +2 -1
  117. package/dist/public/views/profile/agents/tab-data-access.js +10 -7
  118. package/dist/public/views/profile/agents/tab-helpers.js +5 -0
  119. package/dist/public/views/profile/agents/tab-integration.js +12 -9
  120. package/dist/public/views/profile/agents/tab-messages.js +6 -4
  121. package/dist/public/views/profile/agents/tab-quality.js +3 -2
  122. package/dist/public/views/profile/agents/tab-usage.js +5 -3
  123. package/dist/public/views/profile/agents/task-item.js +12 -7
  124. package/dist/public/views/profile/agents-activity-subtab.js +5 -2
  125. package/dist/public/views/profile/agents-capabilities-subtab.js +4 -2
  126. package/dist/public/views/profile/agents-messages-subtab.js +5 -2
  127. package/dist/public/views/profile/agents-services-subtab.js +1 -0
  128. package/dist/public/views/profile/agents-tab.js +11 -7
  129. package/dist/public/views/profile/appdev-tab.js +3 -2
  130. package/dist/public/views/profile/apps-tab.js +10 -8
  131. package/dist/public/views/profile/boards-tab.js +5 -4
  132. package/dist/public/views/profile/calibrator-batch.helpers.js +3 -2
  133. package/dist/public/views/profile/calibrator-batch.js +3 -1
  134. package/dist/public/views/profile/calibrator-llm-editor.js +3 -2
  135. package/dist/public/views/profile/calibrator-tab.js +5 -4
  136. package/dist/public/views/profile/capabilities-tab.js +2 -1
  137. package/dist/public/views/profile/chat-sessions-tab.js +6 -3
  138. package/dist/public/views/profile/contacts-tab.js +2 -1
  139. package/dist/public/views/profile/data-wallet-tab.js +5 -4
  140. package/dist/public/views/profile/discover-tab.js +4 -1
  141. package/dist/public/views/profile/ecosystem-tab.automation.js +13 -9
  142. package/dist/public/views/profile/ecosystem-tab.cards.js +3 -2
  143. package/dist/public/views/profile/ecosystem-tab.js +10 -7
  144. package/dist/public/views/profile/email-tab.js +2 -1
  145. package/dist/public/views/profile/extensions-tab.js +7 -6
  146. package/dist/public/views/profile/extensions-tab.maturity.js +2 -1
  147. package/dist/public/views/profile/extensions-tab.prompts.js +24 -0
  148. package/dist/public/views/profile/federation-tab.js +2 -1
  149. package/dist/public/views/profile/inbox-tab/components.js +13 -10
  150. package/dist/public/views/profile/inbox-tab/helpers.js +15 -1
  151. package/dist/public/views/profile/inbox-tab/use-thread-ux.js +1 -1
  152. package/dist/public/views/profile/inbox-tab.js +33 -30
  153. package/dist/public/views/profile/inline-panels.js +5 -4
  154. package/dist/public/views/profile/knowledge-tab.js +15 -13
  155. package/dist/public/views/profile/landing-page.cards.js +14 -9
  156. package/dist/public/views/profile/landing-page.helpers.js +5 -2
  157. package/dist/public/views/profile/landing-page.js +11 -7
  158. package/dist/public/views/profile/landing-page.modals.js +8 -5
  159. package/dist/public/views/profile/living-tab.js +3 -2
  160. package/dist/public/views/profile/mcp-tab.js +4 -2
  161. package/dist/public/views/profile/memory-tab/browse-view.js +3 -2
  162. package/dist/public/views/profile/memory-tab/components.js +4 -3
  163. package/dist/public/views/profile/memory-tab/entries-view.js +3 -2
  164. package/dist/public/views/profile/memory-tab.js +18 -16
  165. package/dist/public/views/profile/nodes-tab.js +2 -1
  166. package/dist/public/views/profile/notebook-card.js +4 -3
  167. package/dist/public/views/profile/notebook-tab.js +7 -5
  168. package/dist/public/views/profile/notifications-tab.js +9 -5
  169. package/dist/public/views/profile/offers-tab.js +5 -4
  170. package/dist/public/views/profile/openrouter-settings.js +5 -4
  171. package/dist/public/views/profile/organisms/activity-panel.js +2 -1
  172. package/dist/public/views/profile/organisms/agents.js +2 -1
  173. package/dist/public/views/profile/organisms/document.js +13 -12
  174. package/dist/public/views/profile/organisms/helpers.js +2 -1
  175. package/dist/public/views/profile/organisms/home.js +7 -6
  176. package/dist/public/views/profile/organisms/invite-panel.js +1 -1
  177. package/dist/public/views/profile/organisms/members.js +7 -6
  178. package/dist/public/views/profile/organisms/mindmap.js +1 -1
  179. package/dist/public/views/profile/organisms/panels.js +4 -3
  180. package/dist/public/views/profile/organisms/participants-panel.js +11 -10
  181. package/dist/public/views/profile/organisms/readme-panel.js +1 -0
  182. package/dist/public/views/profile/organisms/sources-panel.js +2 -1
  183. package/dist/public/views/profile/organisms/workspace/doc-space.js +2 -1
  184. package/dist/public/views/profile/organisms/workspace/model.js +1 -0
  185. package/dist/public/views/profile/organisms/workspace-apps.js +4 -2
  186. package/dist/public/views/profile/organisms/workspace-comments.js +3 -2
  187. package/dist/public/views/profile/organisms/workspace-list.js +5 -4
  188. package/dist/public/views/profile/organisms/workspace.js +19 -16
  189. package/dist/public/views/profile/organisms-tab.js +20 -12
  190. package/dist/public/views/profile/packages-tab.js +6 -4
  191. package/dist/public/views/profile/portfolio-tab.js +1 -1
  192. package/dist/public/views/profile/scheduler-calendar.js +2 -1
  193. package/dist/public/views/profile/scheduler-tab.js +2 -1
  194. package/dist/public/views/profile/security-tab.js +2 -1
  195. package/dist/public/views/profile/services-tab.js +4 -3
  196. package/dist/public/views/profile/wallet-tab.js +90 -84
  197. package/dist/public/views/profile/work-tab.js +3 -2
  198. package/dist/public/views/profile/workflows-form.js +2 -1
  199. package/dist/public/views/profile/workflows-tab.js +3 -2
  200. package/dist/public/views/public-workspace-viewer.js +7 -4
  201. package/dist/scripts/build-sdk-libs.d.ts.map +1 -1
  202. package/dist/scripts/build-sdk-libs.js +4 -0
  203. package/dist/scripts/build-sdk-libs.js.map +1 -1
  204. package/dist/scripts/check-silent-catch.d.ts +2 -0
  205. package/dist/scripts/check-silent-catch.d.ts.map +1 -0
  206. package/dist/scripts/check-silent-catch.js +159 -0
  207. package/dist/scripts/check-silent-catch.js.map +1 -0
  208. package/dist/src/auth/jwt.d.ts +2 -0
  209. package/dist/src/auth/jwt.d.ts.map +1 -1
  210. package/dist/src/auth/jwt.js +15 -3
  211. package/dist/src/auth/jwt.js.map +1 -1
  212. package/dist/src/auth/keypair.d.ts.map +1 -1
  213. package/dist/src/auth/keypair.js +3 -0
  214. package/dist/src/auth/keypair.js.map +1 -1
  215. package/dist/src/auth/middleware.d.ts +2 -0
  216. package/dist/src/auth/middleware.d.ts.map +1 -1
  217. package/dist/src/auth/middleware.js +33 -14
  218. package/dist/src/auth/middleware.js.map +1 -1
  219. package/dist/src/auth/node-keys.d.ts.map +1 -1
  220. package/dist/src/auth/node-keys.js +59 -16
  221. package/dist/src/auth/node-keys.js.map +1 -1
  222. package/dist/src/cli/config-import.d.ts.map +1 -1
  223. package/dist/src/cli/config-import.js +3 -1
  224. package/dist/src/cli/config-import.js.map +1 -1
  225. package/dist/src/cli/connect/auth.d.ts.map +1 -1
  226. package/dist/src/cli/connect/auth.js +1 -0
  227. package/dist/src/cli/connect/auth.js.map +1 -1
  228. package/dist/src/cli/connect/config.d.ts.map +1 -1
  229. package/dist/src/cli/connect/config.js +3 -1
  230. package/dist/src/cli/connect/config.js.map +1 -1
  231. package/dist/src/cli/connect/keychain.d.ts.map +1 -1
  232. package/dist/src/cli/connect/keychain.js +6 -2
  233. package/dist/src/cli/connect/keychain.js.map +1 -1
  234. package/dist/src/cli/connect/mcp/local-server.d.ts.map +1 -1
  235. package/dist/src/cli/connect/mcp/local-server.js +9 -2
  236. package/dist/src/cli/connect/mcp/local-server.js.map +1 -1
  237. package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
  238. package/dist/src/cli/connect/mcp/tools/workspaces.js +2 -0
  239. package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
  240. package/dist/src/cli/connect/task-runner.d.ts.map +1 -1
  241. package/dist/src/cli/connect/task-runner.js +11 -4
  242. package/dist/src/cli/connect/task-runner.js.map +1 -1
  243. package/dist/src/cli/connect/tool-call-helpers.d.ts.map +1 -1
  244. package/dist/src/cli/connect/tool-call-helpers.js +1 -0
  245. package/dist/src/cli/connect/tool-call-helpers.js.map +1 -1
  246. package/dist/src/cli/connect/tunnel-client.d.ts.map +1 -1
  247. package/dist/src/cli/connect/tunnel-client.js +26 -8
  248. package/dist/src/cli/connect/tunnel-client.js.map +1 -1
  249. package/dist/src/cli/federation-join.d.ts.map +1 -1
  250. package/dist/src/cli/federation-join.js +7 -3
  251. package/dist/src/cli/federation-join.js.map +1 -1
  252. package/dist/src/cli/init-wizard/presets.d.ts.map +1 -1
  253. package/dist/src/cli/init-wizard/presets.js +21 -0
  254. package/dist/src/cli/init-wizard/presets.js.map +1 -1
  255. package/dist/src/cli/init-wizard/steps-advanced.d.ts.map +1 -1
  256. package/dist/src/cli/init-wizard/steps-advanced.js +2 -0
  257. package/dist/src/cli/init-wizard/steps-advanced.js.map +1 -1
  258. package/dist/src/cli/init-wizard/steps-operator.d.ts.map +1 -1
  259. package/dist/src/cli/init-wizard/steps-operator.js +10 -0
  260. package/dist/src/cli/init-wizard/steps-operator.js.map +1 -1
  261. package/dist/src/commerce/invoice-handler.d.ts +5 -0
  262. package/dist/src/commerce/invoice-handler.d.ts.map +1 -0
  263. package/dist/src/commerce/invoice-handler.js +41 -0
  264. package/dist/src/commerce/invoice-handler.js.map +1 -0
  265. package/dist/src/commerce/payable-book.d.ts +31 -0
  266. package/dist/src/commerce/payable-book.d.ts.map +1 -0
  267. package/dist/src/commerce/payable-book.js +27 -0
  268. package/dist/src/commerce/payable-book.js.map +1 -0
  269. package/dist/src/commerce/payment-handlers.d.ts.map +1 -1
  270. package/dist/src/commerce/payment-handlers.js +8 -4
  271. package/dist/src/commerce/payment-handlers.js.map +1 -1
  272. package/dist/src/commerce/sellable-resolvers.d.ts +6 -6
  273. package/dist/src/commerce/sellable-resolvers.d.ts.map +1 -1
  274. package/dist/src/commerce/sellable-resolvers.js +17 -4
  275. package/dist/src/commerce/sellable-resolvers.js.map +1 -1
  276. package/dist/src/commerce/session-service.js +2 -2
  277. package/dist/src/commerce/session-service.js.map +1 -1
  278. package/dist/src/commerce/stripe-handler.d.ts +33 -0
  279. package/dist/src/commerce/stripe-handler.d.ts.map +1 -0
  280. package/dist/src/commerce/stripe-handler.js +108 -0
  281. package/dist/src/commerce/stripe-handler.js.map +1 -0
  282. package/dist/src/commerce/types.d.ts +10 -12
  283. package/dist/src/commerce/types.d.ts.map +1 -1
  284. package/dist/src/commerce/x402-facilitator.d.ts.map +1 -1
  285. package/dist/src/commerce/x402-facilitator.js +1 -0
  286. package/dist/src/commerce/x402-facilitator.js.map +1 -1
  287. package/dist/src/config-types.d.ts +66 -0
  288. package/dist/src/config-types.d.ts.map +1 -1
  289. package/dist/src/config.d.ts.map +1 -1
  290. package/dist/src/config.js +62 -1
  291. package/dist/src/config.js.map +1 -1
  292. package/dist/src/data/library-packs/sdk.d.ts +4 -0
  293. package/dist/src/data/library-packs/sdk.d.ts.map +1 -1
  294. package/dist/src/data/library-packs/sdk.js +46 -0
  295. package/dist/src/data/library-packs/sdk.js.map +1 -1
  296. package/dist/src/data/library-packs/vendored.d.ts.map +1 -1
  297. package/dist/src/data/library-packs/vendored.js +88 -0
  298. package/dist/src/data/library-packs/vendored.js.map +1 -1
  299. package/dist/src/generated/api-types.d.ts +472 -26
  300. package/dist/src/generated/api-types.d.ts.map +1 -1
  301. package/dist/src/index-connect.d.ts.map +1 -1
  302. package/dist/src/index-connect.js +4 -1
  303. package/dist/src/index-connect.js.map +1 -1
  304. package/dist/src/index-start.d.ts.map +1 -1
  305. package/dist/src/index-start.js +10 -6
  306. package/dist/src/index-start.js.map +1 -1
  307. package/dist/src/mcp/app-template-proposals.d.ts.map +1 -1
  308. package/dist/src/mcp/app-template-proposals.js +2 -1
  309. package/dist/src/mcp/app-template-proposals.js.map +1 -1
  310. package/dist/src/mcp/apps.d.ts.map +1 -1
  311. package/dist/src/mcp/apps.js +4 -3
  312. package/dist/src/mcp/apps.js.map +1 -1
  313. package/dist/src/mcp/capabilities.d.ts.map +1 -1
  314. package/dist/src/mcp/capabilities.js +3 -2
  315. package/dist/src/mcp/capabilities.js.map +1 -1
  316. package/dist/src/mcp/catalog/scopes.d.ts +0 -1
  317. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  318. package/dist/src/mcp/catalog/scopes.js +2 -11
  319. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  320. package/dist/src/mcp/catalog/surfaces.d.ts +1 -7
  321. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  322. package/dist/src/mcp/catalog/surfaces.js +10 -16
  323. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  324. package/dist/src/mcp/commerce.d.ts.map +1 -1
  325. package/dist/src/mcp/commerce.js +35 -3
  326. package/dist/src/mcp/commerce.js.map +1 -1
  327. package/dist/src/mcp/core.d.ts.map +1 -1
  328. package/dist/src/mcp/core.js +3 -2
  329. package/dist/src/mcp/core.js.map +1 -1
  330. package/dist/src/mcp/exchange-run.d.ts +28 -0
  331. package/dist/src/mcp/exchange-run.d.ts.map +1 -1
  332. package/dist/src/mcp/exchange-run.js +58 -37
  333. package/dist/src/mcp/exchange-run.js.map +1 -1
  334. package/dist/src/mcp/exchange.d.ts.map +1 -1
  335. package/dist/src/mcp/exchange.js +9 -7
  336. package/dist/src/mcp/exchange.js.map +1 -1
  337. package/dist/src/mcp/extensions.d.ts.map +1 -1
  338. package/dist/src/mcp/extensions.js +60 -106
  339. package/dist/src/mcp/extensions.js.map +1 -1
  340. package/dist/src/mcp/index.d.ts.map +1 -1
  341. package/dist/src/mcp/index.js +1 -5
  342. package/dist/src/mcp/index.js.map +1 -1
  343. package/dist/src/mcp/knowledge.d.ts.map +1 -1
  344. package/dist/src/mcp/knowledge.js +1 -0
  345. package/dist/src/mcp/knowledge.js.map +1 -1
  346. package/dist/src/mcp/oauth.d.ts +3 -0
  347. package/dist/src/mcp/oauth.d.ts.map +1 -1
  348. package/dist/src/mcp/oauth.js +13 -8
  349. package/dist/src/mcp/oauth.js.map +1 -1
  350. package/dist/src/mcp/workspaces.d.ts.map +1 -1
  351. package/dist/src/mcp/workspaces.js +7 -4
  352. package/dist/src/mcp/workspaces.js.map +1 -1
  353. package/dist/src/middleware/cors.d.ts.map +1 -1
  354. package/dist/src/middleware/cors.js +3 -1
  355. package/dist/src/middleware/cors.js.map +1 -1
  356. package/dist/src/middleware/subdomain.d.ts +4 -0
  357. package/dist/src/middleware/subdomain.d.ts.map +1 -1
  358. package/dist/src/middleware/subdomain.js +23 -2
  359. package/dist/src/middleware/subdomain.js.map +1 -1
  360. package/dist/src/models/app-tool-schemas.d.ts +35 -0
  361. package/dist/src/models/app-tool-schemas.d.ts.map +1 -1
  362. package/dist/src/models/app-tool-schemas.js +44 -0
  363. package/dist/src/models/app-tool-schemas.js.map +1 -1
  364. package/dist/src/routes/admin-config.d.ts.map +1 -1
  365. package/dist/src/routes/admin-config.js +4 -1
  366. package/dist/src/routes/admin-config.js.map +1 -1
  367. package/dist/src/routes/admin-extensions.d.ts.map +1 -1
  368. package/dist/src/routes/admin-extensions.js +2 -1
  369. package/dist/src/routes/admin-extensions.js.map +1 -1
  370. package/dist/src/routes/admin-monitoring.js +14 -5
  371. package/dist/src/routes/admin-monitoring.js.map +1 -1
  372. package/dist/src/routes/admin-security.d.ts.map +1 -1
  373. package/dist/src/routes/admin-security.js +4 -1
  374. package/dist/src/routes/admin-security.js.map +1 -1
  375. package/dist/src/routes/admin.d.ts.map +1 -1
  376. package/dist/src/routes/admin.js +6 -4
  377. package/dist/src/routes/admin.js.map +1 -1
  378. package/dist/src/routes/agent-activity.d.ts.map +1 -1
  379. package/dist/src/routes/agent-activity.js +4 -1
  380. package/dist/src/routes/agent-activity.js.map +1 -1
  381. package/dist/src/routes/agent-directives.d.ts +3 -10
  382. package/dist/src/routes/agent-directives.d.ts.map +1 -1
  383. package/dist/src/routes/agent-directives.js +7 -12
  384. package/dist/src/routes/agent-directives.js.map +1 -1
  385. package/dist/src/routes/agent-integration.d.ts.map +1 -1
  386. package/dist/src/routes/agent-integration.js +3 -1
  387. package/dist/src/routes/agent-integration.js.map +1 -1
  388. package/dist/src/routes/agent-messages.d.ts.map +1 -1
  389. package/dist/src/routes/agent-messages.js +5 -2
  390. package/dist/src/routes/agent-messages.js.map +1 -1
  391. package/dist/src/routes/agent-onboarding.d.ts.map +1 -1
  392. package/dist/src/routes/agent-onboarding.js +19 -6
  393. package/dist/src/routes/agent-onboarding.js.map +1 -1
  394. package/dist/src/routes/agent-skills-discovery.d.ts.map +1 -1
  395. package/dist/src/routes/agent-skills-discovery.js +2 -1
  396. package/dist/src/routes/agent-skills-discovery.js.map +1 -1
  397. package/dist/src/routes/agent-tasks/completion.js +1 -1
  398. package/dist/src/routes/agent-tasks/completion.js.map +1 -1
  399. package/dist/src/routes/agent-tasks/create-read.js +3 -1
  400. package/dist/src/routes/agent-tasks/create-read.js.map +1 -1
  401. package/dist/src/routes/agent-tasks/lifecycle.d.ts.map +1 -1
  402. package/dist/src/routes/agent-tasks/lifecycle.js +28 -9
  403. package/dist/src/routes/agent-tasks/lifecycle.js.map +1 -1
  404. package/dist/src/routes/agents/management.d.ts.map +1 -1
  405. package/dist/src/routes/agents/management.js +4 -1
  406. package/dist/src/routes/agents/management.js.map +1 -1
  407. package/dist/src/routes/agents/offers.d.ts.map +1 -1
  408. package/dist/src/routes/agents/offers.js +0 -0
  409. package/dist/src/routes/agents/offers.js.map +1 -1
  410. package/dist/src/routes/agents/profile-metadata.d.ts.map +1 -1
  411. package/dist/src/routes/agents/profile-metadata.js +2 -1
  412. package/dist/src/routes/agents/profile-metadata.js.map +1 -1
  413. package/dist/src/routes/app-grants.d.ts +7 -0
  414. package/dist/src/routes/app-grants.d.ts.map +1 -1
  415. package/dist/src/routes/app-grants.js +69 -4
  416. package/dist/src/routes/app-grants.js.map +1 -1
  417. package/dist/src/routes/appdev-overview.d.ts.map +1 -1
  418. package/dist/src/routes/appdev-overview.js +2 -1
  419. package/dist/src/routes/appdev-overview.js.map +1 -1
  420. package/dist/src/routes/apps/catalogue-admin.d.ts.map +1 -1
  421. package/dist/src/routes/apps/catalogue-admin.js +2 -1
  422. package/dist/src/routes/apps/catalogue-admin.js.map +1 -1
  423. package/dist/src/routes/apps/drafts.d.ts.map +1 -1
  424. package/dist/src/routes/apps/drafts.js +2 -1
  425. package/dist/src/routes/apps/drafts.js.map +1 -1
  426. package/dist/src/routes/apps/fork-manage.d.ts.map +1 -1
  427. package/dist/src/routes/apps/fork-manage.js +6 -3
  428. package/dist/src/routes/apps/fork-manage.js.map +1 -1
  429. package/dist/src/routes/apps/helpers.d.ts.map +1 -1
  430. package/dist/src/routes/apps/helpers.js +5 -1
  431. package/dist/src/routes/apps/helpers.js.map +1 -1
  432. package/dist/src/routes/apps/publish.d.ts.map +1 -1
  433. package/dist/src/routes/apps/publish.js +8 -3
  434. package/dist/src/routes/apps/publish.js.map +1 -1
  435. package/dist/src/routes/apps/read.d.ts.map +1 -1
  436. package/dist/src/routes/apps/read.js +2 -1
  437. package/dist/src/routes/apps/read.js.map +1 -1
  438. package/dist/src/routes/auth.d.ts.map +1 -1
  439. package/dist/src/routes/auth.js +2 -1
  440. package/dist/src/routes/auth.js.map +1 -1
  441. package/dist/src/routes/boards.js +1 -1
  442. package/dist/src/routes/boards.js.map +1 -1
  443. package/dist/src/routes/bootstrap.d.ts.map +1 -1
  444. package/dist/src/routes/bootstrap.js +8 -3
  445. package/dist/src/routes/bootstrap.js.map +1 -1
  446. package/dist/src/routes/capabilities.d.ts.map +1 -1
  447. package/dist/src/routes/capabilities.js +4 -3
  448. package/dist/src/routes/capabilities.js.map +1 -1
  449. package/dist/src/routes/commerce-acp.js +1 -1
  450. package/dist/src/routes/commerce-acp.js.map +1 -1
  451. package/dist/src/routes/commerce-ucp.d.ts +2 -3
  452. package/dist/src/routes/commerce-ucp.d.ts.map +1 -1
  453. package/dist/src/routes/commerce-ucp.js +6 -12
  454. package/dist/src/routes/commerce-ucp.js.map +1 -1
  455. package/dist/src/routes/commerce.d.ts +7 -1
  456. package/dist/src/routes/commerce.d.ts.map +1 -1
  457. package/dist/src/routes/commerce.js +65 -15
  458. package/dist/src/routes/commerce.js.map +1 -1
  459. package/dist/src/routes/csm.d.ts.map +1 -1
  460. package/dist/src/routes/csm.js +3 -1
  461. package/dist/src/routes/csm.js.map +1 -1
  462. package/dist/src/routes/ecosystem-apps.d.ts.map +1 -1
  463. package/dist/src/routes/ecosystem-apps.js +7 -6
  464. package/dist/src/routes/ecosystem-apps.js.map +1 -1
  465. package/dist/src/routes/exchange-market.d.ts.map +1 -1
  466. package/dist/src/routes/exchange-market.js +10 -6
  467. package/dist/src/routes/exchange-market.js.map +1 -1
  468. package/dist/src/routes/exchange.d.ts +10 -1
  469. package/dist/src/routes/exchange.d.ts.map +1 -1
  470. package/dist/src/routes/exchange.js +344 -9
  471. package/dist/src/routes/exchange.js.map +1 -1
  472. package/dist/src/routes/extensions/actions.d.ts +2 -0
  473. package/dist/src/routes/extensions/actions.d.ts.map +1 -1
  474. package/dist/src/routes/extensions/actions.js +47 -8
  475. package/dist/src/routes/extensions/actions.js.map +1 -1
  476. package/dist/src/routes/extensions/entitlement-gate.d.ts +44 -7
  477. package/dist/src/routes/extensions/entitlement-gate.d.ts.map +1 -1
  478. package/dist/src/routes/extensions/entitlement-gate.js +21 -142
  479. package/dist/src/routes/extensions/entitlement-gate.js.map +1 -1
  480. package/dist/src/routes/extensions/internal-pass.d.ts +23 -0
  481. package/dist/src/routes/extensions/internal-pass.d.ts.map +1 -0
  482. package/dist/src/routes/extensions/internal-pass.js +70 -0
  483. package/dist/src/routes/extensions/internal-pass.js.map +1 -0
  484. package/dist/src/routes/extensions/manifest.d.ts +4 -0
  485. package/dist/src/routes/extensions/manifest.d.ts.map +1 -1
  486. package/dist/src/routes/extensions/manifest.js +68 -4
  487. package/dist/src/routes/extensions/manifest.js.map +1 -1
  488. package/dist/src/routes/extensions/metered-response.d.ts +37 -0
  489. package/dist/src/routes/extensions/metered-response.d.ts.map +1 -0
  490. package/dist/src/routes/extensions/metered-response.js +60 -0
  491. package/dist/src/routes/extensions/metered-response.js.map +1 -0
  492. package/dist/src/routes/extensions/pacing.d.ts +31 -0
  493. package/dist/src/routes/extensions/pacing.d.ts.map +1 -1
  494. package/dist/src/routes/extensions/pacing.js +5 -33
  495. package/dist/src/routes/extensions/pacing.js.map +1 -1
  496. package/dist/src/routes/extensions/paywall.d.ts +16 -0
  497. package/dist/src/routes/extensions/paywall.d.ts.map +1 -1
  498. package/dist/src/routes/extensions/paywall.js +157 -8
  499. package/dist/src/routes/extensions/paywall.js.map +1 -1
  500. package/dist/src/routes/extensions/priced-binding.d.ts +50 -0
  501. package/dist/src/routes/extensions/priced-binding.d.ts.map +1 -0
  502. package/dist/src/routes/extensions/priced-binding.js +46 -0
  503. package/dist/src/routes/extensions/priced-binding.js.map +1 -0
  504. package/dist/src/routes/federation-genesis.d.ts.map +1 -1
  505. package/dist/src/routes/federation-genesis.js +14 -5
  506. package/dist/src/routes/federation-genesis.js.map +1 -1
  507. package/dist/src/routes/federation-peer/introduce.d.ts.map +1 -1
  508. package/dist/src/routes/federation-peer/introduce.js +3 -1
  509. package/dist/src/routes/federation-peer/introduce.js.map +1 -1
  510. package/dist/src/routes/federation-peer/lifecycle.d.ts.map +1 -1
  511. package/dist/src/routes/federation-peer/lifecycle.js +3 -2
  512. package/dist/src/routes/federation-peer/lifecycle.js.map +1 -1
  513. package/dist/src/routes/federation-peer/peers.d.ts.map +1 -1
  514. package/dist/src/routes/federation-peer/peers.js +5 -3
  515. package/dist/src/routes/federation-peer/peers.js.map +1 -1
  516. package/dist/src/routes/federation-peer/policy-book.d.ts.map +1 -1
  517. package/dist/src/routes/federation-peer/policy-book.js +2 -1
  518. package/dist/src/routes/federation-peer/policy-book.js.map +1 -1
  519. package/dist/src/routes/federation-peer/promotion.d.ts.map +1 -1
  520. package/dist/src/routes/federation-peer/promotion.js +4 -1
  521. package/dist/src/routes/federation-peer/promotion.js.map +1 -1
  522. package/dist/src/routes/federation-settlements.js +2 -2
  523. package/dist/src/routes/federation-settlements.js.map +1 -1
  524. package/dist/src/routes/federation-sync/catalogue-trust.js +5 -3
  525. package/dist/src/routes/federation-sync/catalogue-trust.js.map +1 -1
  526. package/dist/src/routes/federation-sync/messaging.js +5 -3
  527. package/dist/src/routes/federation-sync/messaging.js.map +1 -1
  528. package/dist/src/routes/federation-sync/routing.d.ts.map +1 -1
  529. package/dist/src/routes/federation-sync/routing.js +7 -5
  530. package/dist/src/routes/federation-sync/routing.js.map +1 -1
  531. package/dist/src/routes/flags.d.ts.map +1 -1
  532. package/dist/src/routes/flags.js +3 -1
  533. package/dist/src/routes/flags.js.map +1 -1
  534. package/dist/src/routes/ghii/register-login.js +1 -1
  535. package/dist/src/routes/ghii/register-login.js.map +1 -1
  536. package/dist/src/routes/instances/install.d.ts.map +1 -1
  537. package/dist/src/routes/instances/install.js +2 -1
  538. package/dist/src/routes/instances/install.js.map +1 -1
  539. package/dist/src/routes/instances/manage.d.ts.map +1 -1
  540. package/dist/src/routes/instances/manage.js +2 -1
  541. package/dist/src/routes/instances/manage.js.map +1 -1
  542. package/dist/src/routes/knowledge/packages-core.d.ts.map +1 -1
  543. package/dist/src/routes/knowledge/packages-core.js +2 -1
  544. package/dist/src/routes/knowledge/packages-core.js.map +1 -1
  545. package/dist/src/routes/knowledge/sharing.d.ts.map +1 -1
  546. package/dist/src/routes/knowledge/sharing.js +2 -1
  547. package/dist/src/routes/knowledge/sharing.js.map +1 -1
  548. package/dist/src/routes/library-packs.d.ts.map +1 -1
  549. package/dist/src/routes/library-packs.js +10 -3
  550. package/dist/src/routes/library-packs.js.map +1 -1
  551. package/dist/src/routes/libs.d.ts +9 -0
  552. package/dist/src/routes/libs.d.ts.map +1 -1
  553. package/dist/src/routes/libs.js +11 -2
  554. package/dist/src/routes/libs.js.map +1 -1
  555. package/dist/src/routes/matches.d.ts.map +1 -1
  556. package/dist/src/routes/matches.js +7 -3
  557. package/dist/src/routes/matches.js.map +1 -1
  558. package/dist/src/routes/memory/bulk.d.ts.map +1 -1
  559. package/dist/src/routes/memory/bulk.js +3 -1
  560. package/dist/src/routes/memory/bulk.js.map +1 -1
  561. package/dist/src/routes/memory/crud.d.ts.map +1 -1
  562. package/dist/src/routes/memory/crud.js +4 -2
  563. package/dist/src/routes/memory/crud.js.map +1 -1
  564. package/dist/src/routes/memory/federation.d.ts.map +1 -1
  565. package/dist/src/routes/memory/federation.js +5 -0
  566. package/dist/src/routes/memory/federation.js.map +1 -1
  567. package/dist/src/routes/memory/key.d.ts.map +1 -1
  568. package/dist/src/routes/memory/key.js +9 -4
  569. package/dist/src/routes/memory/key.js.map +1 -1
  570. package/dist/src/routes/messages.d.ts.map +1 -1
  571. package/dist/src/routes/messages.js +2 -1
  572. package/dist/src/routes/messages.js.map +1 -1
  573. package/dist/src/routes/msm.d.ts.map +1 -1
  574. package/dist/src/routes/msm.js +3 -1
  575. package/dist/src/routes/msm.js.map +1 -1
  576. package/dist/src/routes/oauth-login.d.ts.map +1 -1
  577. package/dist/src/routes/oauth-login.js +1 -0
  578. package/dist/src/routes/oauth-login.js.map +1 -1
  579. package/dist/src/routes/openrouter.js +2 -2
  580. package/dist/src/routes/openrouter.js.map +1 -1
  581. package/dist/src/routes/organisms/crud.d.ts.map +1 -1
  582. package/dist/src/routes/organisms/crud.js +3 -2
  583. package/dist/src/routes/organisms/crud.js.map +1 -1
  584. package/dist/src/routes/organisms/gates.d.ts.map +1 -1
  585. package/dist/src/routes/organisms/gates.js +3 -2
  586. package/dist/src/routes/organisms/gates.js.map +1 -1
  587. package/dist/src/routes/organisms/intake.d.ts.map +1 -1
  588. package/dist/src/routes/organisms/intake.js +13 -1
  589. package/dist/src/routes/organisms/intake.js.map +1 -1
  590. package/dist/src/routes/organisms/shared.d.ts.map +1 -1
  591. package/dist/src/routes/organisms/shared.js +7 -3
  592. package/dist/src/routes/organisms/shared.js.map +1 -1
  593. package/dist/src/routes/organisms/workspace-ops.d.ts.map +1 -1
  594. package/dist/src/routes/organisms/workspace-ops.js +6 -5
  595. package/dist/src/routes/organisms/workspace-ops.js.map +1 -1
  596. package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
  597. package/dist/src/routes/organisms/workspace-read.js +4 -2
  598. package/dist/src/routes/organisms/workspace-read.js.map +1 -1
  599. package/dist/src/routes/owners.d.ts.map +1 -1
  600. package/dist/src/routes/owners.js +37 -12
  601. package/dist/src/routes/owners.js.map +1 -1
  602. package/dist/src/routes/personal.js +3 -1
  603. package/dist/src/routes/personal.js.map +1 -1
  604. package/dist/src/routes/portal.d.ts +6 -1
  605. package/dist/src/routes/portal.d.ts.map +1 -1
  606. package/dist/src/routes/portal.js +75 -10
  607. package/dist/src/routes/portal.js.map +1 -1
  608. package/dist/src/routes/portfolio.d.ts.map +1 -1
  609. package/dist/src/routes/portfolio.js +5 -1
  610. package/dist/src/routes/portfolio.js.map +1 -1
  611. package/dist/src/routes/prompts.d.ts.map +1 -1
  612. package/dist/src/routes/prompts.js +36 -2
  613. package/dist/src/routes/prompts.js.map +1 -1
  614. package/dist/src/routes/public-events.d.ts.map +1 -1
  615. package/dist/src/routes/public-events.js +4 -1
  616. package/dist/src/routes/public-events.js.map +1 -1
  617. package/dist/src/routes/public-stats.d.ts.map +1 -1
  618. package/dist/src/routes/public-stats.js +29 -10
  619. package/dist/src/routes/public-stats.js.map +1 -1
  620. package/dist/src/routes/schedules.d.ts +3 -0
  621. package/dist/src/routes/schedules.d.ts.map +1 -1
  622. package/dist/src/routes/schedules.js +14 -1
  623. package/dist/src/routes/schedules.js.map +1 -1
  624. package/dist/src/routes/stats.d.ts.map +1 -1
  625. package/dist/src/routes/stats.js +5 -1
  626. package/dist/src/routes/stats.js.map +1 -1
  627. package/dist/src/routes/storage-files.d.ts +4 -0
  628. package/dist/src/routes/storage-files.d.ts.map +1 -1
  629. package/dist/src/routes/storage-files.js +11 -0
  630. package/dist/src/routes/storage-files.js.map +1 -1
  631. package/dist/src/routes/subdomains.d.ts +9 -0
  632. package/dist/src/routes/subdomains.d.ts.map +1 -1
  633. package/dist/src/routes/subdomains.js +66 -5
  634. package/dist/src/routes/subdomains.js.map +1 -1
  635. package/dist/src/routes/unfurl.d.ts.map +1 -1
  636. package/dist/src/routes/unfurl.js +13 -3
  637. package/dist/src/routes/unfurl.js.map +1 -1
  638. package/dist/src/routes/upload.d.ts +11 -0
  639. package/dist/src/routes/upload.d.ts.map +1 -1
  640. package/dist/src/routes/upload.js +99 -9
  641. package/dist/src/routes/upload.js.map +1 -1
  642. package/dist/src/routes/wallet.d.ts +3 -0
  643. package/dist/src/routes/wallet.d.ts.map +1 -1
  644. package/dist/src/routes/wallet.js +6 -1
  645. package/dist/src/routes/wallet.js.map +1 -1
  646. package/dist/src/routes/webmcp.d.ts +8 -0
  647. package/dist/src/routes/webmcp.d.ts.map +1 -1
  648. package/dist/src/routes/webmcp.js +96 -49
  649. package/dist/src/routes/webmcp.js.map +1 -1
  650. package/dist/src/routes/wellknown.d.ts.map +1 -1
  651. package/dist/src/routes/wellknown.js +1 -0
  652. package/dist/src/routes/wellknown.js.map +1 -1
  653. package/dist/src/server-bootstrap/config-init.d.ts.map +1 -1
  654. package/dist/src/server-bootstrap/config-init.js +2 -0
  655. package/dist/src/server-bootstrap/config-init.js.map +1 -1
  656. package/dist/src/server-bootstrap/routes-loader.d.ts +4 -2
  657. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  658. package/dist/src/server-bootstrap/routes-loader.js +11 -22
  659. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  660. package/dist/src/server-bootstrap/service-init.js +3 -1
  661. package/dist/src/server-bootstrap/service-init.js.map +1 -1
  662. package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
  663. package/dist/src/server-bootstrap/static-files.js +3 -1
  664. package/dist/src/server-bootstrap/static-files.js.map +1 -1
  665. package/dist/src/services/agent-statistics.d.ts.map +1 -1
  666. package/dist/src/services/agent-statistics.js +4 -1
  667. package/dist/src/services/agent-statistics.js.map +1 -1
  668. package/dist/src/services/app-agent-deploy.d.ts.map +1 -1
  669. package/dist/src/services/app-agent-deploy.js +4 -1
  670. package/dist/src/services/app-agent-deploy.js.map +1 -1
  671. package/dist/src/services/app-agent-surface.d.ts +78 -0
  672. package/dist/src/services/app-agent-surface.d.ts.map +1 -0
  673. package/dist/src/services/app-agent-surface.js +74 -0
  674. package/dist/src/services/app-agent-surface.js.map +1 -0
  675. package/dist/src/services/app-tool-names.d.ts +15 -0
  676. package/dist/src/services/app-tool-names.d.ts.map +1 -0
  677. package/dist/src/services/app-tool-names.js +24 -0
  678. package/dist/src/services/app-tool-names.js.map +1 -0
  679. package/dist/src/services/appdev-overview.d.ts.map +1 -1
  680. package/dist/src/services/appdev-overview.js +3 -2
  681. package/dist/src/services/appdev-overview.js.map +1 -1
  682. package/dist/src/services/attachment-duplication.js +3 -3
  683. package/dist/src/services/attachment-duplication.js.map +1 -1
  684. package/dist/src/services/build-extension-prompt.d.ts +40 -0
  685. package/dist/src/services/build-extension-prompt.d.ts.map +1 -0
  686. package/dist/src/services/build-extension-prompt.js +253 -0
  687. package/dist/src/services/build-extension-prompt.js.map +1 -0
  688. package/dist/src/services/cache-cleanup.d.ts.map +1 -1
  689. package/dist/src/services/cache-cleanup.js +2 -1
  690. package/dist/src/services/cache-cleanup.js.map +1 -1
  691. package/dist/src/services/call-timing.d.ts.map +1 -1
  692. package/dist/src/services/call-timing.js +2 -1
  693. package/dist/src/services/call-timing.js.map +1 -1
  694. package/dist/src/services/capability-invoke.d.ts +6 -1
  695. package/dist/src/services/capability-invoke.d.ts.map +1 -1
  696. package/dist/src/services/capability-invoke.js +14 -2
  697. package/dist/src/services/capability-invoke.js.map +1 -1
  698. package/dist/src/services/catalogue-sync.d.ts.map +1 -1
  699. package/dist/src/services/catalogue-sync.js +1 -0
  700. package/dist/src/services/catalogue-sync.js.map +1 -1
  701. package/dist/src/services/component-registrar.d.ts.map +1 -1
  702. package/dist/src/services/component-registrar.js +22 -6
  703. package/dist/src/services/component-registrar.js.map +1 -1
  704. package/dist/src/services/config-loader.d.ts.map +1 -1
  705. package/dist/src/services/config-loader.js +6 -1
  706. package/dist/src/services/config-loader.js.map +1 -1
  707. package/dist/src/services/config-schema.d.ts.map +1 -1
  708. package/dist/src/services/config-schema.js +1 -0
  709. package/dist/src/services/config-schema.js.map +1 -1
  710. package/dist/src/services/connect-tunnel.d.ts.map +1 -1
  711. package/dist/src/services/connect-tunnel.js +17 -6
  712. package/dist/src/services/connect-tunnel.js.map +1 -1
  713. package/dist/src/services/consent.d.ts.map +1 -1
  714. package/dist/src/services/consent.js +3 -1
  715. package/dist/src/services/consent.js.map +1 -1
  716. package/dist/src/services/consul-config.d.ts.map +1 -1
  717. package/dist/src/services/consul-config.js +7 -2
  718. package/dist/src/services/consul-config.js.map +1 -1
  719. package/dist/src/services/contacts.js +4 -2
  720. package/dist/src/services/contacts.js.map +1 -1
  721. package/dist/src/services/core-jobs.js +1 -1
  722. package/dist/src/services/core-jobs.js.map +1 -1
  723. package/dist/src/services/db/agent-messages-overview-db-service.d.ts.map +1 -1
  724. package/dist/src/services/db/agent-messages-overview-db-service.js +2 -1
  725. package/dist/src/services/db/agent-messages-overview-db-service.js.map +1 -1
  726. package/dist/src/services/db/agent-quality-overview-db-service.d.ts.map +1 -1
  727. package/dist/src/services/db/agent-quality-overview-db-service.js +2 -1
  728. package/dist/src/services/db/agent-quality-overview-db-service.js.map +1 -1
  729. package/dist/src/services/db/messages-inbox-db-service.d.ts.map +1 -1
  730. package/dist/src/services/db/messages-inbox-db-service.js +3 -2
  731. package/dist/src/services/db/messages-inbox-db-service.js.map +1 -1
  732. package/dist/src/services/db/messaging-db-service.d.ts.map +1 -1
  733. package/dist/src/services/db/messaging-db-service.js +3 -2
  734. package/dist/src/services/db/messaging-db-service.js.map +1 -1
  735. package/dist/src/services/db/wallet-tab-db-service.d.ts +3 -3
  736. package/dist/src/services/doc-images.d.ts.map +1 -1
  737. package/dist/src/services/doc-images.js +7 -4
  738. package/dist/src/services/doc-images.js.map +1 -1
  739. package/dist/src/services/ecosystem-automation-notify.d.ts.map +1 -1
  740. package/dist/src/services/ecosystem-automation-notify.js +10 -4
  741. package/dist/src/services/ecosystem-automation-notify.js.map +1 -1
  742. package/dist/src/services/ecosystem-automation.d.ts.map +1 -1
  743. package/dist/src/services/ecosystem-automation.js +3 -2
  744. package/dist/src/services/ecosystem-automation.js.map +1 -1
  745. package/dist/src/services/ecosystem-events.js +1 -1
  746. package/dist/src/services/ecosystem-events.js.map +1 -1
  747. package/dist/src/services/entitlement-merge.d.ts +50 -0
  748. package/dist/src/services/entitlement-merge.d.ts.map +1 -0
  749. package/dist/src/services/entitlement-merge.js +116 -0
  750. package/dist/src/services/entitlement-merge.js.map +1 -0
  751. package/dist/src/services/entitlement-money.d.ts.map +1 -1
  752. package/dist/src/services/entitlement-money.js +4 -1
  753. package/dist/src/services/entitlement-money.js.map +1 -1
  754. package/dist/src/services/exchange-market.d.ts +47 -2
  755. package/dist/src/services/exchange-market.d.ts.map +1 -1
  756. package/dist/src/services/exchange-market.js +80 -9
  757. package/dist/src/services/exchange-market.js.map +1 -1
  758. package/dist/src/services/exchange-projection.d.ts +8 -2
  759. package/dist/src/services/exchange-projection.d.ts.map +1 -1
  760. package/dist/src/services/exchange-projection.js +146 -21
  761. package/dist/src/services/exchange-projection.js.map +1 -1
  762. package/dist/src/services/exchange-proposals.d.ts.map +1 -1
  763. package/dist/src/services/exchange-proposals.js +4 -2
  764. package/dist/src/services/exchange-proposals.js.map +1 -1
  765. package/dist/src/services/extension-purchase.d.ts +36 -0
  766. package/dist/src/services/extension-purchase.d.ts.map +1 -0
  767. package/dist/src/services/extension-purchase.js +110 -0
  768. package/dist/src/services/extension-purchase.js.map +1 -0
  769. package/dist/src/services/extension-runtime.d.ts +23 -1
  770. package/dist/src/services/extension-runtime.d.ts.map +1 -1
  771. package/dist/src/services/extension-runtime.js +21 -4
  772. package/dist/src/services/extension-runtime.js.map +1 -1
  773. package/dist/src/services/extension-secrets.d.ts +8 -0
  774. package/dist/src/services/extension-secrets.d.ts.map +1 -1
  775. package/dist/src/services/extension-secrets.js +14 -0
  776. package/dist/src/services/extension-secrets.js.map +1 -1
  777. package/dist/src/services/federation-availability.d.ts.map +1 -1
  778. package/dist/src/services/federation-availability.js +1 -0
  779. package/dist/src/services/federation-availability.js.map +1 -1
  780. package/dist/src/services/federation-book.js +15 -7
  781. package/dist/src/services/federation-book.js.map +1 -1
  782. package/dist/src/services/federation-helpers.d.ts.map +1 -1
  783. package/dist/src/services/federation-helpers.js +1 -0
  784. package/dist/src/services/federation-helpers.js.map +1 -1
  785. package/dist/src/services/federation.d.ts.map +1 -1
  786. package/dist/src/services/federation.js +8 -6
  787. package/dist/src/services/federation.js.map +1 -1
  788. package/dist/src/services/gate-expiry.d.ts.map +1 -1
  789. package/dist/src/services/gate-expiry.js +2 -1
  790. package/dist/src/services/gate-expiry.js.map +1 -1
  791. package/dist/src/services/genesis-sync.d.ts.map +1 -1
  792. package/dist/src/services/genesis-sync.js +9 -4
  793. package/dist/src/services/genesis-sync.js.map +1 -1
  794. package/dist/src/services/handbooks/commerce.d.ts +13 -0
  795. package/dist/src/services/handbooks/commerce.d.ts.map +1 -0
  796. package/dist/src/services/handbooks/commerce.js +60 -0
  797. package/dist/src/services/handbooks/commerce.js.map +1 -0
  798. package/dist/src/services/handbooks/index.d.ts +1 -0
  799. package/dist/src/services/handbooks/index.d.ts.map +1 -1
  800. package/dist/src/services/handbooks/index.js +2 -2
  801. package/dist/src/services/handbooks/index.js.map +1 -1
  802. package/dist/src/services/hooks.d.ts.map +1 -1
  803. package/dist/src/services/hooks.js +2 -0
  804. package/dist/src/services/hooks.js.map +1 -1
  805. package/dist/src/services/invitations.d.ts.map +1 -1
  806. package/dist/src/services/invitations.js +2 -0
  807. package/dist/src/services/invitations.js.map +1 -1
  808. package/dist/src/services/living-author.d.ts.map +1 -1
  809. package/dist/src/services/living-author.js +4 -1
  810. package/dist/src/services/living-author.js.map +1 -1
  811. package/dist/src/services/living-pulse.js +18 -6
  812. package/dist/src/services/living-pulse.js.map +1 -1
  813. package/dist/src/services/mailbox-notification.d.ts.map +1 -1
  814. package/dist/src/services/mailbox-notification.js +1 -0
  815. package/dist/src/services/mailbox-notification.js.map +1 -1
  816. package/dist/src/services/match-notification.d.ts.map +1 -1
  817. package/dist/src/services/match-notification.js +2 -1
  818. package/dist/src/services/match-notification.js.map +1 -1
  819. package/dist/src/services/matching.d.ts.map +1 -1
  820. package/dist/src/services/matching.js +5 -2
  821. package/dist/src/services/matching.js.map +1 -1
  822. package/dist/src/services/memory-replication.d.ts.map +1 -1
  823. package/dist/src/services/memory-replication.js +3 -1
  824. package/dist/src/services/memory-replication.js.map +1 -1
  825. package/dist/src/services/message-broadcast.d.ts.map +1 -1
  826. package/dist/src/services/message-broadcast.js +2 -1
  827. package/dist/src/services/message-broadcast.js.map +1 -1
  828. package/dist/src/services/message-delivery.d.ts.map +1 -1
  829. package/dist/src/services/message-delivery.js +9 -4
  830. package/dist/src/services/message-delivery.js.map +1 -1
  831. package/dist/src/services/metered-access.d.ts +148 -0
  832. package/dist/src/services/metered-access.d.ts.map +1 -0
  833. package/dist/src/services/metered-access.js +128 -0
  834. package/dist/src/services/metered-access.js.map +1 -0
  835. package/dist/src/services/metered-entitlements.d.ts +140 -5
  836. package/dist/src/services/metered-entitlements.d.ts.map +1 -1
  837. package/dist/src/services/metered-entitlements.js +247 -30
  838. package/dist/src/services/metered-entitlements.js.map +1 -1
  839. package/dist/src/services/metered-settlement.d.ts +45 -0
  840. package/dist/src/services/metered-settlement.d.ts.map +1 -0
  841. package/dist/src/services/metered-settlement.js +117 -0
  842. package/dist/src/services/metered-settlement.js.map +1 -0
  843. package/dist/src/services/network-policy.d.ts.map +1 -1
  844. package/dist/src/services/network-policy.js +6 -2
  845. package/dist/src/services/network-policy.js.map +1 -1
  846. package/dist/src/services/notebook-classify.d.ts.map +1 -1
  847. package/dist/src/services/notebook-classify.js +7 -2
  848. package/dist/src/services/notebook-classify.js.map +1 -1
  849. package/dist/src/services/notebook-plan.d.ts.map +1 -1
  850. package/dist/src/services/notebook-plan.js +4 -1
  851. package/dist/src/services/notebook-plan.js.map +1 -1
  852. package/dist/src/services/notify.d.ts.map +1 -1
  853. package/dist/src/services/notify.js +6 -3
  854. package/dist/src/services/notify.js.map +1 -1
  855. package/dist/src/services/openrouter.d.ts.map +1 -1
  856. package/dist/src/services/openrouter.js +1 -0
  857. package/dist/src/services/openrouter.js.map +1 -1
  858. package/dist/src/services/organism-export.d.ts.map +1 -1
  859. package/dist/src/services/organism-export.js +4 -1
  860. package/dist/src/services/organism-export.js.map +1 -1
  861. package/dist/src/services/organism-import.d.ts.map +1 -1
  862. package/dist/src/services/organism-import.js +5 -1
  863. package/dist/src/services/organism-import.js.map +1 -1
  864. package/dist/src/services/perf-trace.js +3 -1
  865. package/dist/src/services/perf-trace.js.map +1 -1
  866. package/dist/src/services/personal-tunnel.js +14 -8
  867. package/dist/src/services/personal-tunnel.js.map +1 -1
  868. package/dist/src/services/presence.d.ts.map +1 -1
  869. package/dist/src/services/presence.js +11 -5
  870. package/dist/src/services/presence.js.map +1 -1
  871. package/dist/src/services/protected-resource.d.ts +60 -0
  872. package/dist/src/services/protected-resource.d.ts.map +1 -0
  873. package/dist/src/services/protected-resource.js +137 -0
  874. package/dist/src/services/protected-resource.js.map +1 -0
  875. package/dist/src/services/realtime-manager.d.ts.map +1 -1
  876. package/dist/src/services/realtime-manager.js +8 -5
  877. package/dist/src/services/realtime-manager.js.map +1 -1
  878. package/dist/src/services/safe-zip.d.ts.map +1 -1
  879. package/dist/src/services/safe-zip.js +4 -1
  880. package/dist/src/services/safe-zip.js.map +1 -1
  881. package/dist/src/services/scheduler-extension-job.js +2 -2
  882. package/dist/src/services/scheduler-extension-job.js.map +1 -1
  883. package/dist/src/services/scheduler.js +13 -7
  884. package/dist/src/services/scheduler.js.map +1 -1
  885. package/dist/src/services/security-incident.d.ts.map +1 -1
  886. package/dist/src/services/security-incident.js +7 -2
  887. package/dist/src/services/security-incident.js.map +1 -1
  888. package/dist/src/services/site-sync.d.ts.map +1 -1
  889. package/dist/src/services/site-sync.js +1 -0
  890. package/dist/src/services/site-sync.js.map +1 -1
  891. package/dist/src/services/site.d.ts +1 -1
  892. package/dist/src/services/site.d.ts.map +1 -1
  893. package/dist/src/services/site.js +29 -8
  894. package/dist/src/services/site.js.map +1 -1
  895. package/dist/src/services/structure-overview.d.ts.map +1 -1
  896. package/dist/src/services/structure-overview.js +4 -1
  897. package/dist/src/services/structure-overview.js.map +1 -1
  898. package/dist/src/services/structure-snapshot.d.ts.map +1 -1
  899. package/dist/src/services/structure-snapshot.js +3 -2
  900. package/dist/src/services/structure-snapshot.js.map +1 -1
  901. package/dist/src/services/sync-scheduler.js +3 -2
  902. package/dist/src/services/sync-scheduler.js.map +1 -1
  903. package/dist/src/services/tracked-response.js +1 -1
  904. package/dist/src/services/tracked-response.js.map +1 -1
  905. package/dist/src/services/trust-broadcast.d.ts.map +1 -1
  906. package/dist/src/services/trust-broadcast.js +1 -0
  907. package/dist/src/services/trust-broadcast.js.map +1 -1
  908. package/dist/src/services/upload-zip.d.ts +7 -0
  909. package/dist/src/services/upload-zip.d.ts.map +1 -1
  910. package/dist/src/services/upload-zip.js +19 -85
  911. package/dist/src/services/upload-zip.js.map +1 -1
  912. package/dist/src/services/web-bot-auth.d.ts.map +1 -1
  913. package/dist/src/services/web-bot-auth.js +1 -0
  914. package/dist/src/services/web-bot-auth.js.map +1 -1
  915. package/dist/src/services/workflow/engine-steps.d.ts.map +1 -1
  916. package/dist/src/services/workflow/engine-steps.js +12 -6
  917. package/dist/src/services/workflow/engine-steps.js.map +1 -1
  918. package/dist/src/services/workspace-export.d.ts.map +1 -1
  919. package/dist/src/services/workspace-export.js +5 -2
  920. package/dist/src/services/workspace-export.js.map +1 -1
  921. package/dist/src/services/workspace-import.d.ts.map +1 -1
  922. package/dist/src/services/workspace-import.js +2 -1
  923. package/dist/src/services/workspace-import.js.map +1 -1
  924. package/dist/src/services/workspace-versions.d.ts.map +1 -1
  925. package/dist/src/services/workspace-versions.js +0 -0
  926. package/dist/src/services/workspace-versions.js.map +1 -1
  927. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +5 -0
  928. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -1
  929. package/dist/src/storage/providers/postgres-kysely/helpers.d.ts +11 -0
  930. package/dist/src/storage/providers/postgres-kysely/helpers.d.ts.map +1 -1
  931. package/dist/src/storage/providers/postgres-kysely/helpers.js +14 -0
  932. package/dist/src/storage/providers/postgres-kysely/helpers.js.map +1 -1
  933. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts +1 -1
  934. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts.map +1 -1
  935. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js +6 -0
  936. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -1
  937. package/dist/src/storage/providers/postgres-kysely/methods/capabilities.js +3 -3
  938. package/dist/src/storage/providers/postgres-kysely/methods/capabilities.js.map +1 -1
  939. package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.js +3 -3
  940. package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.js.map +1 -1
  941. package/dist/src/storage/providers/postgres-kysely/methods/federation.d.ts.map +1 -1
  942. package/dist/src/storage/providers/postgres-kysely/methods/federation.js +12 -10
  943. package/dist/src/storage/providers/postgres-kysely/methods/federation.js.map +1 -1
  944. package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts.map +1 -1
  945. package/dist/src/storage/providers/postgres-kysely/methods/identity.js +26 -12
  946. package/dist/src/storage/providers/postgres-kysely/methods/identity.js.map +1 -1
  947. package/dist/src/storage/providers/postgres-kysely/methods/marketplace.js +5 -5
  948. package/dist/src/storage/providers/postgres-kysely/methods/marketplace.js.map +1 -1
  949. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.d.ts +9 -0
  950. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.d.ts.map +1 -1
  951. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.js +31 -27
  952. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.js.map +1 -1
  953. package/dist/src/storage/providers/postgres-kysely/methods/organisms.d.ts.map +1 -1
  954. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js +10 -14
  955. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -1
  956. package/dist/src/storage/providers/postgres-kysely/methods/otk.js +3 -3
  957. package/dist/src/storage/providers/postgres-kysely/methods/otk.js.map +1 -1
  958. package/dist/src/storage/providers/postgres-kysely/methods/packages.d.ts.map +1 -1
  959. package/dist/src/storage/providers/postgres-kysely/methods/packages.js +4 -14
  960. package/dist/src/storage/providers/postgres-kysely/methods/packages.js.map +1 -1
  961. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.d.ts.map +1 -1
  962. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.js +11 -10
  963. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.js.map +1 -1
  964. package/dist/src/storage/providers/postgres-kysely/methods/wallet.d.ts.map +1 -1
  965. package/dist/src/storage/providers/postgres-kysely/methods/wallet.js +3 -1
  966. package/dist/src/storage/providers/postgres-kysely/methods/wallet.js.map +1 -1
  967. package/dist/src/storage/providers/postgres-kysely/migrate.d.ts.map +1 -1
  968. package/dist/src/storage/providers/postgres-kysely/migrate.js +3 -0
  969. package/dist/src/storage/providers/postgres-kysely/migrate.js.map +1 -1
  970. package/dist/src/storage/providers/postgres-kysely/migrations/0013_ghii_password_lockout.sql +12 -0
  971. package/dist/src/storage/providers/postgres-kysely/migrations/0014_transaction_initiator.sql +6 -0
  972. package/dist/src/storage/providers/postgres-kysely/migrations/0015_app_grant_spend_cap.sql +5 -0
  973. package/dist/src/storage/providers/sqlite/methods/apps.d.ts +1 -1
  974. package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
  975. package/dist/src/storage/providers/sqlite/methods/apps.js +12 -2
  976. package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
  977. package/dist/src/storage/providers/sqlite/methods/community.d.ts.map +1 -1
  978. package/dist/src/storage/providers/sqlite/methods/community.js +6 -1
  979. package/dist/src/storage/providers/sqlite/methods/community.js.map +1 -1
  980. package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts.map +1 -1
  981. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js +9 -2
  982. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js.map +1 -1
  983. package/dist/src/storage/providers/sqlite/methods/work.d.ts.map +1 -1
  984. package/dist/src/storage/providers/sqlite/methods/work.js +4 -2
  985. package/dist/src/storage/providers/sqlite/methods/work.js.map +1 -1
  986. package/dist/src/storage/providers/sqlite/repos/community.d.ts.map +1 -1
  987. package/dist/src/storage/providers/sqlite/repos/community.js +6 -1
  988. package/dist/src/storage/providers/sqlite/repos/community.js.map +1 -1
  989. package/dist/src/storage/providers/sqlite/repos/identity.d.ts +3 -0
  990. package/dist/src/storage/providers/sqlite/repos/identity.d.ts.map +1 -1
  991. package/dist/src/storage/providers/sqlite/repos/identity.js +13 -4
  992. package/dist/src/storage/providers/sqlite/repos/identity.js.map +1 -1
  993. package/dist/src/storage/providers/sqlite/repos/work.d.ts.map +1 -1
  994. package/dist/src/storage/providers/sqlite/repos/work.js +4 -2
  995. package/dist/src/storage/providers/sqlite/repos/work.js.map +1 -1
  996. package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts.map +1 -1
  997. package/dist/src/storage/providers/sqlite/schema-tables-1.js +1 -0
  998. package/dist/src/storage/providers/sqlite/schema-tables-1.js.map +1 -1
  999. package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts.map +1 -1
  1000. package/dist/src/storage/providers/sqlite/schema-tables-2.js +2 -0
  1001. package/dist/src/storage/providers/sqlite/schema-tables-2.js.map +1 -1
  1002. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  1003. package/dist/src/storage/providers/sqlite/schema.js +14 -1
  1004. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  1005. package/dist/src/storage/repositories/app-grant.repository.d.ts +1 -1
  1006. package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -1
  1007. package/dist/src/storage/types/auth.d.ts +9 -0
  1008. package/dist/src/storage/types/auth.d.ts.map +1 -1
  1009. package/dist/src/storage/types/commerce.d.ts +13 -0
  1010. package/dist/src/storage/types/commerce.d.ts.map +1 -1
  1011. package/dist/src/utils/app-agent-discovery.d.ts +31 -0
  1012. package/dist/src/utils/app-agent-discovery.d.ts.map +1 -0
  1013. package/dist/src/utils/app-agent-discovery.js +96 -0
  1014. package/dist/src/utils/app-agent-discovery.js.map +1 -0
  1015. package/dist/src/utils/app-protect.d.ts.map +1 -1
  1016. package/dist/src/utils/app-protect.js +1 -0
  1017. package/dist/src/utils/app-protect.js.map +1 -1
  1018. package/dist/src/utils/env-validator.d.ts.map +1 -1
  1019. package/dist/src/utils/env-validator.js +5 -1
  1020. package/dist/src/utils/env-validator.js.map +1 -1
  1021. package/dist/src/utils/gaii.d.ts +50 -0
  1022. package/dist/src/utils/gaii.d.ts.map +1 -1
  1023. package/dist/src/utils/gaii.js +66 -0
  1024. package/dist/src/utils/gaii.js.map +1 -1
  1025. package/dist/src/utils/url-validator.d.ts.map +1 -1
  1026. package/dist/src/utils/url-validator.js +4 -1
  1027. package/dist/src/utils/url-validator.js.map +1 -1
  1028. package/dist/src/utils/version.d.ts.map +1 -1
  1029. package/dist/src/utils/version.js +1 -0
  1030. package/dist/src/utils/version.js.map +1 -1
  1031. package/dist/static/sdk-libs/auth/session.js +7 -3
  1032. package/dist/static/sdk-libs/dist/aimeat-auth.js +1 -1
  1033. package/dist/static/sdk-libs/dist/aimeat-exchange.js +675 -0
  1034. package/dist/static/sdk-libs/dist/aimeat-game.js +1555 -0
  1035. package/dist/static/sdk-libs/dist/aimeat-webmcp.js +46 -0
  1036. package/dist/static/sdk-libs/exchange/browse.js +81 -0
  1037. package/dist/static/sdk-libs/exchange/client.js +131 -0
  1038. package/dist/static/sdk-libs/exchange/contracts.js +228 -0
  1039. package/dist/static/sdk-libs/exchange/demand.js +106 -0
  1040. package/dist/static/sdk-libs/exchange/earnings.js +39 -0
  1041. package/dist/static/sdk-libs/exchange/format.js +51 -0
  1042. package/dist/static/sdk-libs/exchange/index.js +70 -0
  1043. package/dist/static/sdk-libs/exchange/odps-completeness.js +177 -0
  1044. package/dist/static/sdk-libs/exchange/sell.js +253 -0
  1045. package/dist/static/sdk-libs/game/board.js +331 -0
  1046. package/dist/static/sdk-libs/game/dom.js +223 -0
  1047. package/dist/static/sdk-libs/game/i18n.js +201 -0
  1048. package/dist/static/sdk-libs/game/index.js +72 -0
  1049. package/dist/static/sdk-libs/game/markers.js +150 -0
  1050. package/dist/static/sdk-libs/game/menu.js +260 -0
  1051. package/dist/static/sdk-libs/game/overlay.js +193 -0
  1052. package/dist/static/sdk-libs/game/progress.js +280 -0
  1053. package/dist/static/sdk-libs/game/score.js +134 -0
  1054. package/dist/static/sdk-libs/game/screen.js +120 -0
  1055. package/dist/static/sdk-libs/game/units.js +55 -0
  1056. package/dist/static/sdk-libs/webmcp/index.js +63 -0
  1057. package/package.json +2 -1
@@ -21,6 +21,7 @@ import { Markdown } from '/components/Markdown.js';
21
21
  import { getAutomationRecipe } from '/js/services/ecosystem.js';
22
22
  import { listOrganisms, currentGhii } from '/js/services/organisms.js';
23
23
  import { keyFp, OUTBOUND_EVENTS, resolveOrganismName } from './ecosystem-tab.helpers.js';
24
+ import { swallowed } from '/js/swallowed.js';
24
25
 
25
26
  /**
26
27
  * One "Data this app wrote" entry: collapsed row (key + visibility chip + timeAgo) that expands to
@@ -90,8 +91,8 @@ export function EcoAskInClaude({ app }) {
90
91
  const load = async () => {
91
92
  const ownerName = (currentGhii().split('@')[0]) || '';
92
93
  const [recipeResp, orgResp] = await Promise.all([
93
- getAutomationRecipe(app.app).catch(() => null),
94
- (ownerName ? listOrganisms({ member: ownerName }) : Promise.resolve(null)).catch(() => null),
94
+ getAutomationRecipe(app.app).catch(err => { swallowed('ecosystem-tab.cards: ownerName', err); return null; }),
95
+ (ownerName ? listOrganisms({ member: ownerName }) : Promise.resolve(null)).catch(err => { swallowed('ecosystem-tab.cards: ownerName', err); return null; }),
95
96
  ]);
96
97
  setRecipe(recipeResp);
97
98
  setOrgs(orgResp?.data?.organisms || []);
@@ -124,6 +124,7 @@ import { listEcosystemApps, listAppData, listPending, approve, revoke, listSubsc
124
124
  import { ECO_PRESETS } from './ecosystem-tab.helpers.js';
125
125
  import { EcoAutomationSection } from './ecosystem-tab.automation.js';
126
126
  import { EcoDataEntry, EcoSetupGuide, EcoAskInClaude, EcoTechDetails } from './ecosystem-tab.cards.js';
127
+ import { swallowed } from '/js/swallowed.js';
127
128
 
128
129
  export default function EcosystemTab({ onStats, showToast }) {
129
130
  const [apps, setApps] = useState([]);
@@ -142,8 +143,9 @@ export default function EcosystemTab({ onStats, showToast }) {
142
143
  try {
143
144
  const items = await listAppData(app);
144
145
  setAppData(d => ({ ...d, [geai]: items }));
145
- } catch {
146
+ } catch (err) {
146
147
  // Leave the cached value (if any); a transient failure shouldn't blank the section.
148
+ swallowed('ecosystem-tab: loadAppData', err);
147
149
  }
148
150
  };
149
151
 
@@ -157,7 +159,8 @@ export default function EcosystemTab({ onStats, showToast }) {
157
159
  const [a, p, s] = await Promise.all([listEcosystemApps(), listPending(), listSubscriptions()]);
158
160
  setApps(a); setPending(p); setSubs(s);
159
161
  onStats?.({ ecosystem: a.length });
160
- } catch {
162
+ } catch (err) {
163
+ swallowed('ecosystem-tab: loadData', err);
161
164
  showToast?.(t('profile.ecosystem.loadError'), 'error');
162
165
  } finally {
163
166
  setLoading(false);
@@ -198,26 +201,26 @@ export default function EcosystemTab({ onStats, showToast }) {
198
201
  await approve(userCode, { action: 'approve', scopes: ECO_PRESETS[preset] });
199
202
  showToast?.(t('profile.ecosystem.approved'), 'success');
200
203
  await loadData();
201
- } catch { showToast?.(t('profile.ecosystem.approveError'), 'error'); }
204
+ } catch (err) { swallowed('ecosystem-tab', err); showToast?.(t('profile.ecosystem.approveError'), 'error'); }
202
205
  }
203
206
  async function onDeny(userCode) {
204
207
  try { await approve(userCode, { action: 'deny' }); await loadData(); }
205
- catch { showToast?.(t('profile.ecosystem.approveError'), 'error'); }
208
+ catch (err) { swallowed('ecosystem-tab', err); showToast?.(t('profile.ecosystem.approveError'), 'error'); }
206
209
  }
207
210
  async function onRevokeConfirm() {
208
211
  const app = revokeApp;
209
212
  setRevokeApp(null); setRevokeInput('');
210
213
  try { await revoke(app); showToast?.(t('profile.ecosystem.revoked'), 'success'); await loadData(); }
211
- catch { showToast?.(t('profile.ecosystem.revokeError'), 'error'); }
214
+ catch (err) { swallowed('ecosystem-tab', err); showToast?.(t('profile.ecosystem.revokeError'), 'error'); }
212
215
  }
213
216
  async function onSubscribe(app) {
214
217
  const event = subForm[app]?.event || 'memory.write';
215
218
  try { await subscribe(app, event); setSubForm(f => ({ ...f, [app]: {} })); await loadData(); }
216
- catch { showToast?.(t('profile.ecosystem.subError'), 'error'); }
219
+ catch (err) { swallowed('ecosystem-tab', err); showToast?.(t('profile.ecosystem.subError'), 'error'); }
217
220
  }
218
221
  async function onUnsubscribe(app, event) {
219
222
  try { await unsubscribe(app, event); await loadData(); }
220
- catch { showToast?.(t('profile.ecosystem.subError'), 'error'); }
223
+ catch (err) { swallowed('ecosystem-tab', err); showToast?.(t('profile.ecosystem.subError'), 'error'); }
221
224
  }
222
225
 
223
226
  if (loading) return html`<div class="pf-eco"><${Spinner} /></div>`;
@@ -15,6 +15,7 @@ import { t } from '/js/i18n.js';
15
15
  import { Spinner, GlassCard } from './shared.js';
16
16
  import { apiPost } from '/js/api.js';
17
17
  import { getProfile } from '/js/services/auth.js';
18
+ import { swallowed } from '/js/swallowed.js';
18
19
 
19
20
  export default function EmailTab({ session, showToast }) {
20
21
  const [loading, setLoading] = useState(true);
@@ -41,7 +42,7 @@ export default function EmailTab({ session, showToast }) {
41
42
  setStep('verified');
42
43
  }
43
44
  }
44
- } catch { /* ignore */ }
45
+ } catch (err) { swallowed('email-tab: loadData', err); }
45
46
  setLoading(false);
46
47
  }
47
48
 
@@ -45,8 +45,9 @@ import { useMaturityLedger, maturityBadge } from './extensions-tab.maturity.js';
45
45
  import * as cortexService from '/js/services/cortex.js';
46
46
  import * as v8Ext from '/js/services/extensions.js';
47
47
  import { getNodeUrl, getSession } from '/js/services/auth.js';
48
- import { buildCortexPrompt, buildServerExtensionPrompt } from './extensions-tab.prompts.js';
48
+ import { buildCortexPrompt, fetchServerExtensionPrompt } from './extensions-tab.prompts.js';
49
49
  import { COMP_ICONS, COMP_TAG_CLASSES, BUNDLED } from './extensions-tab.constants.js';
50
+ import { swallowed } from '/js/swallowed.js';
50
51
 
51
52
  export default function ExtensionsTab({ session, showToast }) {
52
53
  const { confirm, ConfirmUI } = useConfirm();
@@ -86,7 +87,7 @@ export default function ExtensionsTab({ session, showToast }) {
86
87
  try {
87
88
  const resp = await cortexService.listExtensions();
88
89
  setExtensions(resp?.extensions || []);
89
- } catch { setExtensions([]); }
90
+ } catch (err) { swallowed('extensions-tab', err); setExtensions([]); }
90
91
  }
91
92
 
92
93
  function onSrvManifestChange(text) {
@@ -104,7 +105,7 @@ export default function ExtensionsTab({ session, showToast }) {
104
105
  return entries.length > 0 ? entries : prev;
105
106
  });
106
107
  }
107
- } catch { /* ignore parse errors */ }
108
+ } catch (err) { swallowed('extensions-tab: onSrvManifestChange', err); }
108
109
  }
109
110
 
110
111
  async function handleSrvInstall() {
@@ -134,7 +135,7 @@ export default function ExtensionsTab({ session, showToast }) {
134
135
  }
135
136
 
136
137
  async function loadServerExtensions() {
137
- try { setSrvExts(await v8Ext.listV8Extensions()); } catch { setSrvExts([]); }
138
+ try { setSrvExts(await v8Ext.listV8Extensions()); } catch (err) { swallowed('extensions-tab', err); setSrvExts([]); }
138
139
  }
139
140
 
140
141
  async function loadSrvDetail(name) {
@@ -144,7 +145,7 @@ export default function ExtensionsTab({ session, showToast }) {
144
145
  try {
145
146
  const ext = await v8Ext.getV8Extension(name);
146
147
  setSrvDetail(ext);
147
- try { setSrvInstances(await v8Ext.listInstances(name)); } catch { setSrvInstances([]); }
148
+ try { setSrvInstances(await v8Ext.listInstances(name)); } catch (err) { swallowed('extensions-tab', err); setSrvInstances([]); }
148
149
  } catch(e) { setSrvDetail({ error: e.message }); }
149
150
  }
150
151
 
@@ -610,7 +611,7 @@ export default function ExtensionsTab({ session, showToast }) {
610
611
  <div class="section-title">${t('profile.v8ext.title')}</div>
611
612
  <div class="section-desc">${t('profile.v8ext.desc')}</div>
612
613
  <div class="ext-hero-actions">
613
- <button class="btn-primary" onClick=${() => { const p = buildServerExtensionPrompt(getSession() || {}); copyToClipboard(p); showToast(t('profile.extensions.promptCopied')); }}>${'\u{1F916}'} Create with AI</button>
614
+ <button class="btn-primary" onClick=${async () => { const p = await fetchServerExtensionPrompt(getSession() || {}); copyToClipboard(p); showToast(t('profile.extensions.promptCopied')); }}>${'\u{1F916}'} Create with AI</button>
614
615
  <button class="btn-outline" onClick=${() => setShowSrvInstall(true)}>+ Add</button>
615
616
  </div>
616
617
  ${hasSrv ? html`
@@ -10,6 +10,7 @@
10
10
  * v1.0.0 — 2026-07-18 — initial: surface tier + proof ledger on the Cortex Libraries cards.
11
11
  */
12
12
  import { useState, useEffect } from 'preact/hooks';
13
+ import { swallowed } from '/js/swallowed.js';
13
14
 
14
15
  /** Fetch the node's library-pack tier/proof ledger once, keyed by pack id (public endpoint). */
15
16
  export function useMaturityLedger() {
@@ -19,7 +20,7 @@ export function useMaturityLedger() {
19
20
  const map = {};
20
21
  for (const p of (d.data?.packs || [])) if (p.modelTier) map[p.id] = p;
21
22
  setLedger(map);
22
- }).catch(() => { /* older node without the endpoint — cards just omit the badge */ });
23
+ }).catch(err => { swallowed('extensions-tab.maturity: useMaturityLedger', err); });
23
24
  }, []);
24
25
  return ledger;
25
26
  }
@@ -143,6 +143,30 @@ To install: go to Profile > Extensions > + Add > paste the YAML manifest > add J
143
143
  }
144
144
 
145
145
  /* ── Server Extension scaffolding prompt builder ── */
146
+ /**
147
+ * The canonical extension prompt, from the node. GET /v1/prompts/build-extension is the single
148
+ * source of truth (services/build-extension-prompt.ts) so this tab, an agentic coder, the
149
+ * aimeat-extension-builder skill and llms.txt all read the same text.
150
+ *
151
+ * buildServerExtensionPrompt below is the OFFLINE FALLBACK only. It is deliberately shorter and
152
+ * older; improve the guidance in the node service, never here.
153
+ */
154
+ export async function fetchServerExtensionPrompt(sess) {
155
+ const owner = sess?.owner || '';
156
+ try {
157
+ const res = await fetch(`${getNodeUrl()}/v1/prompts/build-extension?format=txt`
158
+ + (owner ? `&owner=${encodeURIComponent(owner)}` : ''));
159
+ if (res.ok) {
160
+ const text = await res.text();
161
+ if (text && text.length > 400) return text;
162
+ }
163
+ // The fallback IS the handling: offline, or a node too old to serve this route, must still
164
+ // yield a usable prompt rather than an error toast.
165
+ // eslint-disable-next-line aimeat/no-silent-catch -- see the two lines above
166
+ } catch { /* fall through to the bundled copy */ }
167
+ return buildServerExtensionPrompt(sess || {});
168
+ }
169
+
146
170
  export function buildServerExtensionPrompt(sess) {
147
171
  const url = getNodeUrl();
148
172
  const owner = sess?.owner || 'user';
@@ -19,6 +19,7 @@ import { escHtml } from '/js/utils.js';
19
19
  import { Spinner } from './shared.js';
20
20
  import { StatusDot } from '/components/StatusDot.js';
21
21
  import { listPeers } from '/js/services/federation.js';
22
+ import { swallowed } from '/js/swallowed.js';
22
23
 
23
24
  export default function FederationTab() {
24
25
  const [federation, setFederation] = useState(null);
@@ -31,7 +32,7 @@ export default function FederationTab() {
31
32
  try {
32
33
  const peers = await listPeers();
33
34
  setFederation(peers);
34
- } catch { setFederation([]); }
35
+ } catch (err) { swallowed('federation-tab', err); setFederation([]); }
35
36
  }
36
37
 
37
38
  // Live update listener
@@ -44,6 +44,7 @@ import { minidenticon } from '/lib/minidenticons.min.js';
44
44
  import * as schedules from '/js/services/schedules.js';
45
45
  import { MODES } from '/js/services/messages-ai-prompts.js';
46
46
  import { loadToastUI, prepareBody, quoteSnippet, statusTick, timeShort, trackStateLabel, ATTACH_ICO, attachKind, IFORM_OTHER } from './helpers.js';
47
+ import { swallowed } from '/js/swallowed.js';
47
48
 
48
49
  export function Avatar({ seed, size = 36 }) {
49
50
  const svg = minidenticon(typeof seed === 'string' && seed ? seed : 'user');
@@ -327,7 +328,7 @@ export function MessageBubble({ msg, mine, urlMap, starred, onStar, onTrack, onP
327
328
  * the draft doesn't leak between threads. */
328
329
  export function Composer({ recipient, sendLabel, sending, onSend, initialText = '', draftKey = '', focusNonce = 0 }) {
329
330
  // Restore an in-progress draft for this conversation/compose (localStorage), or the passed initialText.
330
- const readDraft = () => { try { return draftKey ? (localStorage.getItem(draftKey) || '') : ''; } catch { return ''; } };
331
+ const readDraft = () => { try { return draftKey ? (localStorage.getItem(draftKey) || '') : ''; } catch { return ''; } }; // eslint-disable-line aimeat/no-silent-catch -- a browser API refusing here IS the answer
331
332
  const seeded = initialText || readDraft(); // an explicit suggested reply wins; else restore a draft
332
333
  // 'rich' = Toast UI (desktop); 'simple' = a plain auto-growing textarea (mobile chat input, no toolbar/
333
334
  // preview — a phone keyboard + heavy WYSIWYG toolbar is miserable); 'markdown' = the textarea+preview
@@ -348,10 +349,10 @@ export function Composer({ recipient, sendLabel, sending, onSend, initialText =
348
349
  if (!draftKey) return;
349
350
  if (saveTimer.current) clearTimeout(saveTimer.current);
350
351
  saveTimer.current = setTimeout(() => {
351
- try { if (text && text.trim()) localStorage.setItem(draftKey, text); else localStorage.removeItem(draftKey); } catch { /* quota */ }
352
+ try { if (text && text.trim()) localStorage.setItem(draftKey, text); else localStorage.removeItem(draftKey); } catch { /* quota */ } // eslint-disable-line aimeat/no-silent-catch -- quota
352
353
  }, 400);
353
354
  };
354
- const clearDraft = () => { try { if (draftKey) localStorage.removeItem(draftKey); } catch { /* noop */ } };
355
+ const clearDraft = () => { try { if (draftKey) localStorage.removeItem(draftKey); } catch { /* noop */ } }; // eslint-disable-line aimeat/no-silent-catch -- noop
355
356
 
356
357
  // A pasted / dropped image is added to the SAME file-attachment queue as the 📎 button (uploaded to
357
358
  // storage + rendered as an image on the bubble) — never base64-inlined into the body, which would
@@ -385,7 +386,7 @@ export function Composer({ recipient, sendLabel, sending, onSend, initialText =
385
386
  if (mode !== 'rich') return undefined;
386
387
  let inst = null, cancelled = false;
387
388
  (async () => {
388
- const Editor = await loadToastUI().catch(() => null);
389
+ const Editor = await loadToastUI().catch(err => { swallowed('components: handleImagePaste', err); return null; });
389
390
  if (cancelled) return;
390
391
  if (!Editor) { setMode('markdown'); return; }
391
392
  if (!containerRef.current) return;
@@ -413,7 +414,7 @@ export function Composer({ recipient, sendLabel, sending, onSend, initialText =
413
414
  })();
414
415
  return () => {
415
416
  cancelled = true;
416
- if (inst) { try { inst.destroy(); } catch { /* noop */ } }
417
+ if (inst) { try { inst.destroy(); } catch (err) { swallowed('components: handleImagePaste', err); } }
417
418
  editorRef.current = null;
418
419
  };
419
420
  // Create the editor once when mode becomes 'rich': `seeded` is intentionally read only at
@@ -426,7 +427,7 @@ export function Composer({ recipient, sendLabel, sending, onSend, initialText =
426
427
  // Seed the rich editor with an initial draft (e.g. a Tracked Response suggested reply) once it mounts.
427
428
  useEffect(() => {
428
429
  if (mode === 'rich' && initialText && editorRef.current) {
429
- try { editorRef.current.setMarkdown(initialText); } catch { /* noop */ }
430
+ try { editorRef.current.setMarkdown(initialText); } catch (err) { swallowed('components: handleImagePaste', err); }
430
431
  }
431
432
  }, [mode, initialText]);
432
433
 
@@ -439,7 +440,7 @@ export function Composer({ recipient, sendLabel, sending, onSend, initialText =
439
440
  try {
440
441
  if (mode === 'rich' && editorRef.current?.focus) editorRef.current.focus();
441
442
  else if (taRef.current) taRef.current.focus();
442
- } catch { /* noop */ }
443
+ } catch (err) { swallowed('components: handleImagePaste', err); }
443
444
  }, 60);
444
445
  return () => clearTimeout(id);
445
446
  // Only focusNonce is the trigger; mode/refs are read at fire time.
@@ -452,7 +453,7 @@ export function Composer({ recipient, sendLabel, sending, onSend, initialText =
452
453
  useEffect(() => {
453
454
  if (mode !== 'rich' || !editorRef.current?.setHeight) return;
454
455
  const tall = typeof window !== 'undefined' ? Math.round(window.innerHeight * 0.6) : 400;
455
- try { editorRef.current.setHeight(expanded ? tall + 'px' : '160px'); } catch { /* noop */ }
456
+ try { editorRef.current.setHeight(expanded ? tall + 'px' : '160px'); } catch (err) { swallowed('components: handleImagePaste', err); }
456
457
  }, [expanded, mode]);
457
458
 
458
459
  // Auto-grow the simple (mobile) textarea to fit its content, capped so it never eats the thread. When
@@ -469,7 +470,7 @@ export function Composer({ recipient, sendLabel, sending, onSend, initialText =
469
470
 
470
471
  const getText = () => (mode === 'rich' && editorRef.current) ? editorRef.current.getMarkdown() : md;
471
472
  const reset = () => {
472
- try { editorRef.current?.setMarkdown(''); } catch { /* noop */ }
473
+ try { editorRef.current?.setMarkdown(''); } catch (err) { swallowed('components: reset', err); }
473
474
  setMd(''); setFiles([]); if (fileRef.current) fileRef.current.value = '';
474
475
  if (mode === 'simple' && taRef.current) taRef.current.style.height = 'auto';
475
476
  clearDraft(); // a sent message is no longer a draft
@@ -563,7 +564,7 @@ export function SchedulePanel({ agentName, onClose, showToast }) {
563
564
  const [busy, setBusy] = useState(false);
564
565
  const load = useCallback(async () => {
565
566
  try { const r = await schedules.listAgentSchedules(agentName); setJobs(r?.data?.managed || []); }
566
- catch { setJobs([]); }
567
+ catch (err) { swallowed('components', err); setJobs([]); }
567
568
  }, [agentName]);
568
569
  useEffect(() => { setJobs(null); load(); }, [load]);
569
570
  const create = async () => {
@@ -612,6 +613,7 @@ export function ReplyWithAiPopover({ title, build, onClose, showToast }) {
612
613
  else { const ta = document.createElement('textarea'); ta.value = text; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); ta.remove(); }
613
614
  setCopied(true); setTimeout(() => setCopied(false), 1800);
614
615
  showToast?.(t('inbox.ai.copied'));
616
+ // eslint-disable-next-line aimeat/no-silent-catch -- a browser API refusing here IS the answer
615
617
  } catch { showToast?.(t('inbox.failed'), true); }
616
618
  };
617
619
  return html`
@@ -658,6 +660,7 @@ export function ConversationToNotebookPopover({ title, promptText, runServerSumm
658
660
  else { const ta = document.createElement('textarea'); ta.value = promptText; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); ta.remove(); }
659
661
  setCopied(true); setTimeout(() => setCopied(false), 1800);
660
662
  showToast?.(t('inbox.ai.copied'));
663
+ // eslint-disable-next-line aimeat/no-silent-catch -- a browser API refusing here IS the answer
661
664
  } catch { showToast?.(t('inbox.failed'), true); }
662
665
  };
663
666
 
@@ -5,12 +5,26 @@
5
5
  * pixel defense), tracked-state labels, attachment classification, the interactive-answer summary +
6
6
  * poll tally, and the lazy Toast UI editor loader. Extracted from inbox-tab.js to satisfy max-file-lines.
7
7
  * @version-history
8
+ * v1.3.0 — 2026-07-27 — sendFailure(): pick the toast text for a failed send, preferring the thrown
9
+ * reason (attachment too large, out of quota) over the generic "could not send".
8
10
  * v1.2.0 — 2026-07-21 — resolveThreadAttachmentUrls(): resolve non-inline attachment URLs for a loaded
9
11
  * thread (reusing the previous conversation's cache), extracted from inbox-tab loadThread.
10
12
  * v1.1.0 — 2026-07-17 — quoteSnippet(): one-line plain-text excerpt of a message body for reply-quotes.
11
13
  * v1.0.0 — 2026-07-13 — Extracted from inbox-tab.js (max-file-lines)
12
14
  */
13
15
  import { t, getLocale } from '/js/i18n.js';
16
+ import { swallowed } from '/js/swallowed.js';
17
+
18
+ /**
19
+ * Toast text for a failed send. An attachment upload throws for reasons the sender can act on: the file
20
+ * is over this node's per-file limit, or the account is out of storage quota. The generic "could not
21
+ * send" hid every one of them, so an oversized video read as a dead button, with nothing in the console
22
+ * either. Prefer the thrown message; keep the generic line for errors that carry none of their own.
23
+ */
24
+ export function sendFailure(err) {
25
+ const msg = String(err?.message || '').trim();
26
+ return msg && msg !== 'Failed to fetch' ? msg : t('inbox.failed');
27
+ }
14
28
 
15
29
  /**
16
30
  * Resolve presigned URLs for a thread's non-inline attachments, reusing already-resolved URLs from the
@@ -30,7 +44,7 @@ export async function resolveThreadAttachmentUrls(msgs, conversationId, prevCach
30
44
  const key = (a.mode === 'duplicate' && a.localKey) ? a.localKey
31
45
  : (m.direction === 'outbound' && a.storageKey) ? a.storageKey : null;
32
46
  if (!key) return;
33
- const u = await resolveUrl(key).catch(() => null);
47
+ const u = await resolveUrl(key).catch(err => { swallowed('helpers: key', err); return null; });
34
48
  if (u) map[uk] = u;
35
49
  })));
36
50
  return { convId: conversationId, map };
@@ -34,7 +34,7 @@ export function useLinkPreviewToggle() {
34
34
  try { return localStorage.getItem(LINK_PREVIEWS_KEY) !== 'off'; } catch { return true; }
35
35
  });
36
36
  const toggleLinkPreviews = () => setShow((v) => {
37
- try { localStorage.setItem(LINK_PREVIEWS_KEY, v ? 'off' : 'on'); } catch { /* quota */ }
37
+ try { localStorage.setItem(LINK_PREVIEWS_KEY, v ? 'off' : 'on'); } catch { /* quota */ } // eslint-disable-line aimeat/no-silent-catch -- quota
38
38
  return !v;
39
39
  });
40
40
  return { showLinkPreviews, toggleLinkPreviews };
@@ -14,6 +14,7 @@
14
14
  * (./inbox-tab/use-thread-ux.js)
15
15
  * @usage Lazy-loaded profile tab; registered in profile.js TABS as id `messages`.
16
16
  * @version-history
17
+ * v1.26.0 -- 2026-07-27 -- Failed sends toast the thrown REASON (helpers.sendFailure); the flat generic line hid every actionable attachment error.
17
18
  * v1.25.0 -- 2026-07-21 -- Thread history is no longer capped at the newest 50: threads open showing
18
19
  * their FULL history by default (getConversation(all)); a header "Show last 50 / all" toggle
19
20
  * (threadAll) collapses/expands. loadThread's attachment-URL resolution extracted to
@@ -135,12 +136,13 @@ import { apiGet } from '/js/api.js';
135
136
  import { getSession } from '/js/services/auth.js';
136
137
  import { TrackResponseModal } from './track-response-modal.js';
137
138
  import { peerLabel } from '/js/services/messages-ai-prompts.js';
138
- import { peerName, ownerKeyOf, isAgentPeer, buildAnswerSummary, resolveThreadAttachmentUrls } from './inbox-tab/helpers.js';
139
+ import { peerName, ownerKeyOf, isAgentPeer, buildAnswerSummary, resolveThreadAttachmentUrls, sendFailure } from './inbox-tab/helpers.js';
139
140
  import { Composer, PollBuilder, MarkdownViewer, ReplyWithAiPopover, ConversationToNotebookPopover } from './inbox-tab/components.js';
140
141
  import { buildConversationReplyProps, buildMessageReplyProps, buildConversationNotebookProps } from './inbox-tab/ai-actions.js';
141
142
  import { ListPanel, ThreadPanel, TrackedPanel, ResultsPanel } from './inbox-tab/panels.js';
142
143
  import { useThreadAutoScroll, useMobileComposerKeyboard, useLinkPreviewToggle } from './inbox-tab/use-thread-ux.js';
143
144
  import { ContactPicker } from '/components/ContactPicker.js';
145
+ import { swallowed } from '/js/swallowed.js';
144
146
 
145
147
  export default function InboxTab({ showToast }) {
146
148
  const [requests, setRequests] = useState([]);
@@ -192,10 +194,10 @@ export default function InboxTab({ showToast }) {
192
194
 
193
195
  const loadLists = useCallback(async () => {
194
196
  const [reqs, convs, impIds, trs] = await Promise.all([
195
- messages.listRequests().catch(() => []),
196
- messages.listConversations().catch(() => []),
197
- tracked.listImportantMessageIds().catch(() => []),
198
- tracked.listTrackedResponses().catch(() => []),
197
+ messages.listRequests().catch(err => { swallowed('inbox-tab: isOperator', err); return []; }),
198
+ messages.listConversations().catch(err => { swallowed('inbox-tab: isOperator', err); return []; }),
199
+ tracked.listImportantMessageIds().catch(err => { swallowed('inbox-tab: isOperator', err); return []; }),
200
+ tracked.listTrackedResponses().catch(err => { swallowed('inbox-tab: isOperator', err); return []; }),
199
201
  ]);
200
202
  setRequests(reqs);
201
203
  setConversations(convs);
@@ -208,12 +210,12 @@ export default function InboxTab({ showToast }) {
208
210
  // the 6-request fan-out. Interactive refreshes (live-update, post-send) keep using loadLists (the 4
209
211
  // lists); a composite failure falls back to the individual loaders so the inbox still populates.
210
212
  const loadOverview = useCallback(async () => {
211
- const r = await apiGet('/v1/messages/overview').catch(() => null);
213
+ const r = await apiGet('/v1/messages/overview').catch(err => { swallowed('inbox-tab: isOperator', err); return null; });
212
214
  const d = r?.data;
213
215
  if (!d) {
214
216
  loadLists();
215
- agentsSvc.listAgents().then(a => setMyAgents(a || [])).catch(() => {});
216
- apiGet('/v1/groups').then(gr => setMyGroups(gr?.data?.groups || [])).catch(() => {});
217
+ agentsSvc.listAgents().then(a => setMyAgents(a || [])).catch(err => { swallowed('inbox-tab: isOperator', err); });
218
+ apiGet('/v1/groups').then(gr => setMyGroups(gr?.data?.groups || [])).catch(err => { swallowed('inbox-tab: isOperator', err); });
217
219
  return;
218
220
  }
219
221
  setRequests(d.requests || []);
@@ -230,7 +232,7 @@ export default function InboxTab({ showToast }) {
230
232
  // requests = 5 requests) on each is the request storm. Direct-message changes ('messages') still
231
233
  // do the full refresh below.
232
234
  const loadTrackedOnly = useCallback(async () => {
233
- const trs = await tracked.listTrackedResponses().catch(() => []);
235
+ const trs = await tracked.listTrackedResponses().catch(err => { swallowed('inbox-tab: isOperator', err); return []; });
234
236
  setTrackedList(trs.filter(tr => tr.state !== 'cancelled' && !dismissedRef.current.has(tr.id)));
235
237
  }, []);
236
238
 
@@ -288,11 +290,11 @@ export default function InboxTab({ showToast }) {
288
290
  const on = !next.has(msg.id);
289
291
  if (on) next.add(msg.id); else next.delete(msg.id);
290
292
  setImportant(next);
291
- await tracked.setMessageImportant(msg.id, on).catch(() => {});
293
+ await tracked.setMessageImportant(msg.id, on).catch(err => { swallowed('inbox-tab: toggleImportant', err); });
292
294
  };
293
295
 
294
296
  const startSuggestedReply = async (tr) => {
295
- const d = await tracked.getTrackedResponseDraft(tr.id).catch(() => null);
297
+ const d = await tracked.getTrackedResponseDraft(tr.id).catch(err => { swallowed('inbox-tab: startSuggestedReply', err); return null; });
296
298
  setDraftPrefill(d?.draft?.body || awaitingDrafts[tr.id] || '');
297
299
  setReplyingTrId(tr.id);
298
300
  };
@@ -307,6 +309,7 @@ export default function InboxTab({ showToast }) {
307
309
  sessionStorage.setItem('aimeat-profile-tab', 'organisms');
308
310
  sessionStorage.setItem('aimeat.ws.openId', r.organismId);
309
311
  sessionStorage.setItem('aimeat.ws.openWs', r.workspaceId);
312
+ // eslint-disable-next-line aimeat/no-silent-catch -- noop
310
313
  } catch { /* noop */ }
311
314
  window.location.assign('/v1/profile?tab=organisms');
312
315
  };
@@ -318,7 +321,7 @@ export default function InboxTab({ showToast }) {
318
321
  let cancelled = false;
319
322
  (async () => {
320
323
  const entries = await Promise.all(awaitingForConv.map(async tr => {
321
- const d = await tracked.getTrackedResponseDraft(tr.id).catch(() => null);
324
+ const d = await tracked.getTrackedResponseDraft(tr.id).catch(err => { swallowed('inbox-tab', err); return null; });
322
325
  return [tr.id, d?.draft?.body || ''];
323
326
  }));
324
327
  if (!cancelled) setAwaitingDrafts(Object.fromEntries(entries));
@@ -341,7 +344,7 @@ export default function InboxTab({ showToast }) {
341
344
  const loadThread = useCallback(async (conv, markRead = false) => {
342
345
  if (!conv) return;
343
346
  // threadAllRef: false = newest 50 (fast default); true = the FULL history (header "All messages" toggle).
344
- const msgs = (await messages.getConversation(conv.conversationId, conv.viaAgent, threadAllRef.current).catch(() => [])).slice().reverse();
347
+ const msgs = (await messages.getConversation(conv.conversationId, conv.viaAgent, threadAllRef.current).catch(err => { swallowed('inbox-tab: msgs', err); return []; })).slice().reverse();
345
348
  setThread(msgs);
346
349
  // Reuse already-resolved attachment URLs for the same conversation (a refresh must not re-download
347
350
  // every image); a different conversation starts a fresh cache.
@@ -349,7 +352,7 @@ export default function InboxTab({ showToast }) {
349
352
  urlCacheRef.current = cache;
350
353
  setUrlMap(cache.map);
351
354
  // Agent-owned ("via <agent>") threads are read-only for the owner — don't post a read receipt as them.
352
- if (markRead && !conv.viaAgent) await messages.markConversationRead(conv.conversationId).catch(() => {});
355
+ if (markRead && !conv.viaAgent) await messages.markConversationRead(conv.conversationId).catch(err => { swallowed('inbox-tab: msgs', err); });
353
356
  }, []);
354
357
  const toggleThreadAll = () => setThreadAll(v => { const nv = !v; threadAllRef.current = nv; if (activeConv) loadThread(activeConv); return nv; });
355
358
 
@@ -369,21 +372,21 @@ export default function InboxTab({ showToast }) {
369
372
  const cmds = val && Array.isArray(val.commands) ? val.commands.filter(c => c && c.id) : [];
370
373
  if (!cancelled && cmds.length) setAgentCommands(cmds);
371
374
  })
372
- .catch(() => { /* no commands published — fine */ });
375
+ .catch(err => { swallowed('inbox-tab: toggleThreadAll', err); });
373
376
  return () => { cancelled = true; };
374
377
  }, [activePeer]);
375
378
 
376
379
  // Recent broadcasts/polls the user sent — tracked in localStorage so results stay re-accessible.
377
380
  const BC_STORE = 'aimeat.inbox.broadcasts';
378
- useEffect(() => { try { setRecentBroadcasts(JSON.parse(localStorage.getItem(BC_STORE) || '[]')); } catch { /* none */ } }, []);
381
+ useEffect(() => { try { setRecentBroadcasts(JSON.parse(localStorage.getItem(BC_STORE) || '[]')); } catch { /* none */ } }, []); // eslint-disable-line aimeat/no-silent-catch -- none
379
382
  const trackBroadcast = (entry) => setRecentBroadcasts(prev => {
380
383
  const next = [entry, ...prev.filter(b => b.id !== entry.id)].slice(0, 30);
381
- try { localStorage.setItem(BC_STORE, JSON.stringify(next)); } catch { /* quota */ }
384
+ try { localStorage.setItem(BC_STORE, JSON.stringify(next)); } catch { /* quota */ } // eslint-disable-line aimeat/no-silent-catch -- quota
382
385
  return next;
383
386
  });
384
387
  const openResults = async (id) => {
385
388
  setMode('results'); setResultsId(id); setResults(null); setActiveConv(null);
386
- setResults(await messages.getBroadcastResults(id).catch(() => null));
389
+ setResults(await messages.getBroadcastResults(id).catch(err => { swallowed('inbox-tab', err); return null; }));
387
390
  };
388
391
 
389
392
  // Inbox-link (mailto-style): /v1/profile?tab=messages&to=<id>[,<id>]&subject=<s> opens a prefilled
@@ -399,7 +402,7 @@ export default function InboxTab({ showToast }) {
399
402
  } else {
400
403
  setMode('compose'); setActiveConv(null); setTo(recips[0]); setComposeSubject(subject);
401
404
  }
402
- try { window.history.replaceState({}, '', '/v1/profile?tab=messages'); } catch { /* noop */ }
405
+ try { window.history.replaceState({}, '', '/v1/profile?tab=messages'); } catch (err) { swallowed('inbox-tab: toParam', err); }
403
406
  }, []);
404
407
 
405
408
  // Recipient suggestions for a new message: your own agents (GAIIs) + everyone you've a thread with.
@@ -473,7 +476,7 @@ export default function InboxTab({ showToast }) {
473
476
  todo.forEach(id => { peerNamesRef.current[id] = ''; }); // reserve (fallback = handle) so we look it up once
474
477
  Promise.all(todo.map(async (id) => {
475
478
  const path = String(id).includes('#') ? `/v1/agents/${encodeURIComponent(id)}` : `/v1/ghii/${encodeURIComponent(id)}`;
476
- const r = await apiGet(path).catch(() => null);
479
+ const r = await apiGet(path).catch(err => { swallowed('inbox-tab: openConversation', err); return null; });
477
480
  const dn = String(r?.data?.display_name || '').trim();
478
481
  if (dn) peerNamesRef.current[id] = dn;
479
482
  })).then(() => setPeerNames({ ...peerNamesRef.current }));
@@ -555,7 +558,7 @@ export default function InboxTab({ showToast }) {
555
558
  loadLists();
556
559
  if (id) openResults(id); else setMode('idle');
557
560
  }
558
- } catch { showToast?.(t('inbox.failed'), true); }
561
+ } catch (err) { swallowed('inbox-tab', err); showToast?.(sendFailure(err), true); }
559
562
  setSending(false);
560
563
  };
561
564
 
@@ -571,12 +574,12 @@ export default function InboxTab({ showToast }) {
571
574
  // thread once accepted, else falls back to the list (sender still pending accept/block).
572
575
  const consumeDeepLink = useCallback(async () => {
573
576
  let target = null;
574
- try { target = sessionStorage.getItem('aimeat.inbox.open'); } catch { /* noop */ }
577
+ try { target = sessionStorage.getItem('aimeat.inbox.open'); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
575
578
  if (!target) return;
576
- try { sessionStorage.removeItem('aimeat.inbox.open'); } catch { /* noop */ }
579
+ try { sessionStorage.removeItem('aimeat.inbox.open'); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
577
580
  if (target === 'requests') { await loadLists(); return; }
578
581
  const fromRequest = target.startsWith('req:'); if (fromRequest) target = target.slice(4);
579
- const convs = await messages.listConversations().catch(() => []);
582
+ const convs = await messages.listConversations().catch(err => { swallowed('inbox-tab', err); return []; });
580
583
  const conv = convs.find(c => c.conversationId === target);
581
584
  if (conv) openConversation(conv); else if (fromRequest) await loadLists();
582
585
  // openConversation uses only stable setters/refs (no stale-closure risk); keeping it out of deps
@@ -591,12 +594,12 @@ export default function InboxTab({ showToast }) {
591
594
  }, [consumeDeepLink]);
592
595
 
593
596
  const accept = async (contactId) => {
594
- await messages.acceptRequest(contactId).catch(() => {});
597
+ await messages.acceptRequest(contactId).catch(err => { swallowed('inbox-tab', err); return {}; });
595
598
  showToast?.(t('inbox.acceptedToast'));
596
599
  await loadLists();
597
600
  };
598
601
  const block = async (contactId) => {
599
- await messages.blockContact(contactId).catch(() => {});
602
+ await messages.blockContact(contactId).catch(err => { swallowed('inbox-tab', err); return {}; });
600
603
  showToast?.(t('inbox.blockedToast'));
601
604
  await loadLists();
602
605
  if (activeConv?.peerGhii === contactId) { setActiveConv(null); setThread([]); setMode('idle'); }
@@ -615,7 +618,7 @@ export default function InboxTab({ showToast }) {
615
618
  });
616
619
  if (resp?.ok === false) showToast?.(resp?.error?.message || t('inbox.failed'), true);
617
620
  else { await loadThread(activeConv); loadLists(); }
618
- } catch { showToast?.(t('inbox.failed'), true); }
621
+ } catch (err) { swallowed('inbox-tab', err); showToast?.(t('inbox.failed'), true); }
619
622
  setSending(false);
620
623
  };
621
624
 
@@ -657,7 +660,7 @@ export default function InboxTab({ showToast }) {
657
660
  setReplyQuote(null);
658
661
  // If this send fulfils a Tracked Response awaiting approval, mark it replied.
659
662
  if (replyingTrId) {
660
- await tracked.markTrackedResponseReplied(replyingTrId, resp?.data?.message?.id).catch(() => {});
663
+ await tracked.markTrackedResponseReplied(replyingTrId, resp?.data?.message?.id).catch(err => { swallowed('inbox-tab: replyTo', err); });
661
664
  setReplyingTrId(null); setDraftPrefill('');
662
665
  }
663
666
  const conv = activeConv || { conversationId: resp?.data?.message?.conversationId, peerGhii: recipient };
@@ -665,8 +668,8 @@ export default function InboxTab({ showToast }) {
665
668
  await loadThread(conv);
666
669
  loadLists();
667
670
  }
668
- } catch {
669
- showToast?.(t('inbox.failed'), true);
671
+ } catch (err) { swallowed('inbox-tab: replyTo', err);
672
+ showToast?.(sendFailure(err), true);
670
673
  }
671
674
  setSending(false);
672
675
  };
@@ -21,6 +21,7 @@ import * as memoryService from '/js/services/memory.js';
21
21
  import { listSubscriptions } from '/js/services/boards.js';
22
22
  import { listInstances, listPackages } from '/js/services/packages.js';
23
23
  import { Spinner } from './shared.js';
24
+ import { swallowed } from '/js/swallowed.js';
24
25
 
25
26
  /* ───── Panel registry ───── */
26
27
 
@@ -88,7 +89,7 @@ function AgentsPanel({ session, switchTab }) {
88
89
  try {
89
90
  const list = await listAgents(session.owner);
90
91
  setAgents(Array.isArray(list) ? list.slice(0, 5) : []);
91
- } catch { setAgents([]); }
92
+ } catch (err) { swallowed('inline-panels', err); setAgents([]); }
92
93
  setLoading(false);
93
94
  }, [session.owner]);
94
95
 
@@ -133,7 +134,7 @@ function MemoryPanel({ switchTab }) {
133
134
  try {
134
135
  const list = await memoryService.listMemories();
135
136
  setItems(Array.isArray(list) ? list.slice(0, 3) : []);
136
- } catch { setItems([]); }
137
+ } catch (err) { swallowed('inline-panels', err); setItems([]); }
137
138
  setLoading(false);
138
139
  }, []);
139
140
 
@@ -178,7 +179,7 @@ function BoardsPanel({ switchTab }) {
178
179
  try {
179
180
  const list = await listSubscriptions();
180
181
  setBoards(Array.isArray(list) ? list.slice(0, 4) : []);
181
- } catch { setBoards([]); }
182
+ } catch (err) { swallowed('inline-panels', err); setBoards([]); }
182
183
  setLoading(false);
183
184
  }, []);
184
185
 
@@ -231,7 +232,7 @@ function PackagesPanel({ switchTab }) {
231
232
  const list = pkgs.value?.data || pkgs.value || [];
232
233
  setAvailable(Array.isArray(list) ? list.slice(0, 3) : []);
233
234
  }
234
- } catch { /* ignore */ }
235
+ } catch (err) { swallowed('inline-panels: PackagesPanel', err); }
235
236
  setLoading(false);
236
237
  }, []);
237
238