aimeat 2.1.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 (1300) hide show
  1. package/README.md +110 -84
  2. package/dist/.env.example +57 -16
  3. package/dist/locales/en.json +277 -369
  4. package/dist/locales/fi.json +281 -373
  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/cortex-bundled/aimeat-charts.js +158 -10
  13. package/dist/public/cortex-bundled/aimeat-charts.yaml +1 -1
  14. package/dist/public/cortex-bundled/aimeat-dag.js +515 -173
  15. package/dist/public/cortex-bundled/aimeat-dag.yaml +1 -1
  16. package/dist/public/cortex-bundled/aimeat-i18n.js +6 -1
  17. package/dist/public/cortex-bundled/aimeat-i18n.yaml +1 -1
  18. package/dist/public/cortex-bundled/aimeat-surface.js +577 -0
  19. package/dist/public/cortex-bundled/aimeat-surface.yaml +107 -0
  20. package/dist/public/cortex-bundled/aimeat-viewport.js +405 -0
  21. package/dist/public/cortex-bundled/aimeat-viewport.yaml +100 -0
  22. package/dist/public/css/theme.css +1516 -1432
  23. package/dist/public/css/views/app-grant.css +95 -36
  24. package/dist/public/css/views/help.css +28 -0
  25. package/dist/public/css/views/inbox.css +1 -1
  26. package/dist/public/css/views/landing.css +20 -0
  27. package/dist/public/css/views/members.css +40 -10
  28. package/dist/public/css/views/portal-dev.css +64 -45
  29. package/dist/public/css/views/profile.css +17 -0
  30. package/dist/public/js/api.js +1 -0
  31. package/dist/public/js/app-sandbox.js +1 -0
  32. package/dist/public/js/components/auth-image.js +3 -1
  33. package/dist/public/js/i18n.js +3 -1
  34. package/dist/public/js/presence-store.js +3 -1
  35. package/dist/public/js/recents.js +2 -0
  36. package/dist/public/js/services/agent-activity.js +2 -1
  37. package/dist/public/js/services/agent-directives.js +2 -1
  38. package/dist/public/js/services/agent-integration.js +2 -1
  39. package/dist/public/js/services/agent-messages.js +2 -1
  40. package/dist/public/js/services/agent-tasks.js +2 -1
  41. package/dist/public/js/services/agents.js +3 -2
  42. package/dist/public/js/services/calibrator.js +2 -1
  43. package/dist/public/js/services/consent.js +2 -1
  44. package/dist/public/js/services/contacts.js +2 -1
  45. package/dist/public/js/services/cortex.js +5 -4
  46. package/dist/public/js/services/ecosystem.js +2 -1
  47. package/dist/public/js/services/knowledge.js +2 -1
  48. package/dist/public/js/services/ledger.js +2 -1
  49. package/dist/public/js/services/living.js +10 -9
  50. package/dist/public/js/services/memory.js +2 -1
  51. package/dist/public/js/services/messages.js +53 -8
  52. package/dist/public/js/services/nodes.js +3 -2
  53. package/dist/public/js/services/notebook-plan.js +2 -1
  54. package/dist/public/js/services/notebook.js +6 -5
  55. package/dist/public/js/services/offers.js +6 -5
  56. package/dist/public/js/services/organisms.js +26 -25
  57. package/dist/public/js/services/organisms.prompts.js +3 -2
  58. package/dist/public/js/services/organisms.shared.js +2 -1
  59. package/dist/public/js/services/organisms.workspace-gen.js +3 -2
  60. package/dist/public/js/services/packages.js +1 -0
  61. package/dist/public/js/services/schedules.js +2 -1
  62. package/dist/public/js/services/security.js +3 -2
  63. package/dist/public/js/services/skills.js +1 -0
  64. package/dist/public/js/services/tracked-responses.js +4 -3
  65. package/dist/public/js/services/unfurl.js +4 -4
  66. package/dist/public/js/services/work.js +2 -1
  67. package/dist/public/js/site.js +74 -0
  68. package/dist/public/js/swallowed.js +69 -0
  69. package/dist/public/js/theme.js +2 -1
  70. package/dist/public/js/utils.js +3 -1
  71. package/dist/public/lib/VENDORED.md +7 -3
  72. package/dist/public/lib/aimeat-daisyui-bridge.css +39 -2
  73. package/dist/public/lib/aimeat-game/board.css +262 -0
  74. package/dist/public/lib/aimeat-game/progress.css +406 -0
  75. package/dist/public/lib/aimeat-game/shell.css +388 -0
  76. package/dist/public/lib/aimeat-game.css +394 -0
  77. package/dist/public/lib/aimeat-theme.css +538 -0
  78. package/dist/public/lib/fonts/LICENSE.md +11 -4
  79. package/dist/public/lib/fonts/fraunces-var-latin-ext.woff2 +0 -0
  80. package/dist/public/lib/fonts/fraunces-var-latin.woff2 +0 -0
  81. package/dist/public/lib/fonts/inter-var-latin-ext.woff2 +0 -0
  82. package/dist/public/lib/fonts/inter-var-latin.woff2 +0 -0
  83. package/dist/public/lib/fonts/jetbrains-mono-var-latin-ext.woff2 +0 -0
  84. package/dist/public/lib/fonts/jetbrains-mono-var-latin.woff2 +0 -0
  85. package/dist/public/lib/fonts/space-grotesk-var-latin-ext.woff2 +0 -0
  86. package/dist/public/lib/fonts/space-grotesk-var-latin.woff2 +0 -0
  87. package/dist/public/lib/pdfjs@6/pdf.min.mjs +29 -0
  88. package/dist/public/lib/pdfjs@6/pdf.worker.min.mjs +29 -0
  89. package/dist/public/lib/samples/theme-check.html +92 -0
  90. package/dist/public/lib/samples/themes-boot.js +20 -0
  91. package/dist/public/lib/samples/themes.html +154 -0
  92. package/dist/public/lib/samples/themes.js +60 -0
  93. package/dist/public/privacy.fi.html +1 -1
  94. package/dist/public/privacy.html +1 -1
  95. package/dist/public/spa.html +885 -793
  96. package/dist/public/sw.js +4 -2
  97. package/dist/public/views/admin/agent-integration-tab.js +7 -6
  98. package/dist/public/views/admin/ai-usage-tab.js +2 -1
  99. package/dist/public/views/admin/cortex-tab.js +2 -1
  100. package/dist/public/views/admin/economy-tab.js +0 -1
  101. package/dist/public/views/admin/email-tab.js +4 -2
  102. package/dist/public/views/admin/federation-tab.js +3 -2
  103. package/dist/public/views/admin/feedback-tab.js +2 -1
  104. package/dist/public/views/admin/knowledge-tab.js +2 -1
  105. package/dist/public/views/admin/messages-tab.js +2 -1
  106. package/dist/public/views/admin/msm-tab.js +2 -1
  107. package/dist/public/views/admin/packages-tab.js +3 -2
  108. package/dist/public/views/admin/portal-tab.js +7 -2
  109. package/dist/public/views/admin/push-tab.js +9 -4
  110. package/dist/public/views/admin/stats-tab.js +2 -1
  111. package/dist/public/views/admin/usage-tab.js +4 -3
  112. package/dist/public/views/admin.js +6 -4
  113. package/dist/public/views/agent-solo.js +4 -3
  114. package/dist/public/views/app-grant.js +105 -32
  115. package/dist/public/views/business.js +139 -55
  116. package/dist/public/views/command-palette.js +5 -3
  117. package/dist/public/views/companies.js +3 -2
  118. package/dist/public/views/doc-solo.js +2 -1
  119. package/dist/public/views/help.js +95 -15
  120. package/dist/public/views/how-it-works.js +41 -8
  121. package/dist/public/views/invite-accept.js +3 -2
  122. package/dist/public/views/landing-activity.js +3 -2
  123. package/dist/public/views/landing-node-totals.js +2 -1
  124. package/dist/public/views/landing.js +75 -152
  125. package/dist/public/views/members.js +29 -2
  126. package/dist/public/views/my-company.js +9 -7
  127. package/dist/public/views/my-company.payments.js +2 -1
  128. package/dist/public/views/portal-classic.js +2 -1
  129. package/dist/public/views/portal-dev.js +64 -35
  130. package/dist/public/views/portal-dev.panels.js +39 -2
  131. package/dist/public/views/portal-dev.upload.js +25 -196
  132. package/dist/public/views/portal.components.js +4 -3
  133. package/dist/public/views/portfolio.js +5 -4
  134. package/dist/public/views/profile/access-tab/access-tokens.js +2 -1
  135. package/dist/public/views/profile/access-tab/agent-defaults.js +3 -1
  136. package/dist/public/views/profile/access-tab/connected-apps.js +152 -7
  137. package/dist/public/views/profile/access-tab/sharing-groups.js +4 -1
  138. package/dist/public/views/profile/access-tab.js +3 -1
  139. package/dist/public/views/profile/agents/agent-card.js +6 -5
  140. package/dist/public/views/profile/agents/tab-activity.js +10 -8
  141. package/dist/public/views/profile/agents/tab-agent-config.js +3 -1
  142. package/dist/public/views/profile/agents/tab-contracts.js +2 -1
  143. package/dist/public/views/profile/agents/tab-data-access.js +10 -7
  144. package/dist/public/views/profile/agents/tab-helpers.js +5 -0
  145. package/dist/public/views/profile/agents/tab-integration.js +12 -9
  146. package/dist/public/views/profile/agents/tab-messages.js +6 -4
  147. package/dist/public/views/profile/agents/tab-quality.js +3 -2
  148. package/dist/public/views/profile/agents/tab-usage.js +5 -3
  149. package/dist/public/views/profile/agents/task-item.js +12 -7
  150. package/dist/public/views/profile/agents-activity-subtab.js +5 -2
  151. package/dist/public/views/profile/agents-capabilities-subtab.js +4 -2
  152. package/dist/public/views/profile/agents-messages-subtab.js +5 -2
  153. package/dist/public/views/profile/agents-services-subtab.js +1 -0
  154. package/dist/public/views/profile/agents-tab.js +11 -7
  155. package/dist/public/views/profile/appdev-tab.js +3 -2
  156. package/dist/public/views/profile/apps-tab.js +10 -8
  157. package/dist/public/views/profile/boards-tab.js +5 -4
  158. package/dist/public/views/profile/calibrator-batch.helpers.js +3 -2
  159. package/dist/public/views/profile/calibrator-batch.js +3 -1
  160. package/dist/public/views/profile/calibrator-llm-editor.js +3 -2
  161. package/dist/public/views/profile/calibrator-tab.js +5 -4
  162. package/dist/public/views/profile/capabilities-tab.js +2 -1
  163. package/dist/public/views/profile/chat-sessions-tab.js +6 -3
  164. package/dist/public/views/profile/contacts-tab.js +2 -1
  165. package/dist/public/views/profile/data-wallet-tab.js +5 -4
  166. package/dist/public/views/profile/discover-tab.js +4 -1
  167. package/dist/public/views/profile/ecosystem-tab.automation.js +13 -9
  168. package/dist/public/views/profile/ecosystem-tab.cards.js +3 -2
  169. package/dist/public/views/profile/ecosystem-tab.js +10 -7
  170. package/dist/public/views/profile/email-tab.js +2 -1
  171. package/dist/public/views/profile/extensions-tab.js +7 -6
  172. package/dist/public/views/profile/extensions-tab.maturity.js +6 -2
  173. package/dist/public/views/profile/extensions-tab.prompts.js +24 -0
  174. package/dist/public/views/profile/federation-tab.js +2 -1
  175. package/dist/public/views/profile/inbox-tab/components.js +30 -11
  176. package/dist/public/views/profile/inbox-tab/helpers.js +15 -1
  177. package/dist/public/views/profile/inbox-tab/use-thread-ux.js +30 -3
  178. package/dist/public/views/profile/inbox-tab.js +33 -30
  179. package/dist/public/views/profile/inline-panels.js +5 -4
  180. package/dist/public/views/profile/knowledge-tab.js +15 -13
  181. package/dist/public/views/profile/landing-page.cards.js +14 -9
  182. package/dist/public/views/profile/landing-page.helpers.js +5 -2
  183. package/dist/public/views/profile/landing-page.js +11 -7
  184. package/dist/public/views/profile/landing-page.modals.js +8 -5
  185. package/dist/public/views/profile/libraries-tab.js +10 -2
  186. package/dist/public/views/profile/living-tab.js +3 -2
  187. package/dist/public/views/profile/mcp-tab.js +4 -2
  188. package/dist/public/views/profile/memory-tab/browse-view.js +3 -2
  189. package/dist/public/views/profile/memory-tab/components.js +4 -3
  190. package/dist/public/views/profile/memory-tab/entries-view.js +3 -2
  191. package/dist/public/views/profile/memory-tab.js +18 -16
  192. package/dist/public/views/profile/nodes-tab.js +2 -1
  193. package/dist/public/views/profile/notebook-card.js +4 -3
  194. package/dist/public/views/profile/notebook-tab.js +7 -5
  195. package/dist/public/views/profile/notifications-tab.js +9 -5
  196. package/dist/public/views/profile/offers-tab.js +5 -4
  197. package/dist/public/views/profile/openrouter-settings.js +5 -4
  198. package/dist/public/views/profile/organisms/activity-panel.js +2 -1
  199. package/dist/public/views/profile/organisms/agents.js +2 -1
  200. package/dist/public/views/profile/organisms/document.js +13 -12
  201. package/dist/public/views/profile/organisms/helpers.js +2 -1
  202. package/dist/public/views/profile/organisms/home.js +7 -6
  203. package/dist/public/views/profile/organisms/invite-panel.js +1 -1
  204. package/dist/public/views/profile/organisms/members.js +7 -6
  205. package/dist/public/views/profile/organisms/mindmap.js +1 -1
  206. package/dist/public/views/profile/organisms/panels.js +4 -3
  207. package/dist/public/views/profile/organisms/participants-panel.js +11 -10
  208. package/dist/public/views/profile/organisms/readme-panel.js +1 -0
  209. package/dist/public/views/profile/organisms/sources-panel.js +2 -1
  210. package/dist/public/views/profile/organisms/workspace/doc-space.js +2 -1
  211. package/dist/public/views/profile/organisms/workspace/model.js +1 -0
  212. package/dist/public/views/profile/organisms/workspace-apps.js +4 -2
  213. package/dist/public/views/profile/organisms/workspace-comments.js +3 -2
  214. package/dist/public/views/profile/organisms/workspace-list.js +5 -4
  215. package/dist/public/views/profile/organisms/workspace.js +19 -16
  216. package/dist/public/views/profile/organisms-tab.js +20 -12
  217. package/dist/public/views/profile/packages-tab.js +6 -4
  218. package/dist/public/views/profile/portfolio-tab.js +1 -1
  219. package/dist/public/views/profile/scheduler-calendar.js +2 -1
  220. package/dist/public/views/profile/scheduler-tab.js +2 -1
  221. package/dist/public/views/profile/security-tab.js +2 -1
  222. package/dist/public/views/profile/services-tab.js +4 -3
  223. package/dist/public/views/profile/wallet-tab.js +106 -36
  224. package/dist/public/views/profile/work-tab.js +3 -2
  225. package/dist/public/views/profile/workflows-form.js +2 -1
  226. package/dist/public/views/profile/workflows-tab.js +3 -2
  227. package/dist/public/views/public-workspace-viewer.js +7 -4
  228. package/dist/scripts/build-sdk-libs.d.ts.map +1 -1
  229. package/dist/scripts/build-sdk-libs.js +4 -0
  230. package/dist/scripts/build-sdk-libs.js.map +1 -1
  231. package/dist/scripts/check-openapi.d.ts +2 -0
  232. package/dist/scripts/check-openapi.d.ts.map +1 -0
  233. package/dist/scripts/check-openapi.js +139 -0
  234. package/dist/scripts/check-openapi.js.map +1 -0
  235. package/dist/scripts/check-silent-catch.d.ts +2 -0
  236. package/dist/scripts/check-silent-catch.d.ts.map +1 -0
  237. package/dist/scripts/check-silent-catch.js +159 -0
  238. package/dist/scripts/check-silent-catch.js.map +1 -0
  239. package/dist/scripts/embed-viewport.d.ts +23 -0
  240. package/dist/scripts/embed-viewport.d.ts.map +1 -0
  241. package/dist/scripts/embed-viewport.js +116 -0
  242. package/dist/scripts/embed-viewport.js.map +1 -0
  243. package/dist/src/auth/jwt.d.ts +2 -0
  244. package/dist/src/auth/jwt.d.ts.map +1 -1
  245. package/dist/src/auth/jwt.js +15 -3
  246. package/dist/src/auth/jwt.js.map +1 -1
  247. package/dist/src/auth/keypair.d.ts.map +1 -1
  248. package/dist/src/auth/keypair.js +3 -0
  249. package/dist/src/auth/keypair.js.map +1 -1
  250. package/dist/src/auth/middleware.d.ts +2 -0
  251. package/dist/src/auth/middleware.d.ts.map +1 -1
  252. package/dist/src/auth/middleware.js +33 -14
  253. package/dist/src/auth/middleware.js.map +1 -1
  254. package/dist/src/auth/node-keys.d.ts.map +1 -1
  255. package/dist/src/auth/node-keys.js +59 -16
  256. package/dist/src/auth/node-keys.js.map +1 -1
  257. package/dist/src/auth/sse-domain-scopes.d.ts +50 -0
  258. package/dist/src/auth/sse-domain-scopes.d.ts.map +1 -0
  259. package/dist/src/auth/sse-domain-scopes.js +111 -0
  260. package/dist/src/auth/sse-domain-scopes.js.map +1 -0
  261. package/dist/src/cli/config-import.d.ts.map +1 -1
  262. package/dist/src/cli/config-import.js +3 -1
  263. package/dist/src/cli/config-import.js.map +1 -1
  264. package/dist/src/cli/connect/auth.d.ts.map +1 -1
  265. package/dist/src/cli/connect/auth.js +1 -0
  266. package/dist/src/cli/connect/auth.js.map +1 -1
  267. package/dist/src/cli/connect/config.d.ts.map +1 -1
  268. package/dist/src/cli/connect/config.js +3 -1
  269. package/dist/src/cli/connect/config.js.map +1 -1
  270. package/dist/src/cli/connect/keychain.d.ts.map +1 -1
  271. package/dist/src/cli/connect/keychain.js +6 -2
  272. package/dist/src/cli/connect/keychain.js.map +1 -1
  273. package/dist/src/cli/connect/mcp/local-server.d.ts.map +1 -1
  274. package/dist/src/cli/connect/mcp/local-server.js +9 -2
  275. package/dist/src/cli/connect/mcp/local-server.js.map +1 -1
  276. package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts.map +1 -1
  277. package/dist/src/cli/connect/mcp/tools/agent-tasks.js +4 -1
  278. package/dist/src/cli/connect/mcp/tools/agent-tasks.js.map +1 -1
  279. package/dist/src/cli/connect/mcp/tools/core.d.ts.map +1 -1
  280. package/dist/src/cli/connect/mcp/tools/core.js +14 -3
  281. package/dist/src/cli/connect/mcp/tools/core.js.map +1 -1
  282. package/dist/src/cli/connect/mcp/tools/workspaces.d.ts +3 -0
  283. package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
  284. package/dist/src/cli/connect/mcp/tools/workspaces.js +6 -2
  285. package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
  286. package/dist/src/cli/connect/task-runner.d.ts.map +1 -1
  287. package/dist/src/cli/connect/task-runner.js +11 -4
  288. package/dist/src/cli/connect/task-runner.js.map +1 -1
  289. package/dist/src/cli/connect/tool-call-defs-core.d.ts.map +1 -1
  290. package/dist/src/cli/connect/tool-call-defs-core.js +13 -1
  291. package/dist/src/cli/connect/tool-call-defs-core.js.map +1 -1
  292. package/dist/src/cli/connect/tool-call-helpers.d.ts.map +1 -1
  293. package/dist/src/cli/connect/tool-call-helpers.js +1 -0
  294. package/dist/src/cli/connect/tool-call-helpers.js.map +1 -1
  295. package/dist/src/cli/connect/tunnel-client.d.ts.map +1 -1
  296. package/dist/src/cli/connect/tunnel-client.js +26 -8
  297. package/dist/src/cli/connect/tunnel-client.js.map +1 -1
  298. package/dist/src/cli/federation-join.d.ts.map +1 -1
  299. package/dist/src/cli/federation-join.js +7 -3
  300. package/dist/src/cli/federation-join.js.map +1 -1
  301. package/dist/src/cli/init-wizard/presets.d.ts.map +1 -1
  302. package/dist/src/cli/init-wizard/presets.js +21 -0
  303. package/dist/src/cli/init-wizard/presets.js.map +1 -1
  304. package/dist/src/cli/init-wizard/steps-advanced.d.ts.map +1 -1
  305. package/dist/src/cli/init-wizard/steps-advanced.js +2 -0
  306. package/dist/src/cli/init-wizard/steps-advanced.js.map +1 -1
  307. package/dist/src/cli/init-wizard/steps-operator.d.ts.map +1 -1
  308. package/dist/src/cli/init-wizard/steps-operator.js +10 -0
  309. package/dist/src/cli/init-wizard/steps-operator.js.map +1 -1
  310. package/dist/src/commerce/__tests__/x402-registry.test.d.ts +2 -0
  311. package/dist/src/commerce/__tests__/x402-registry.test.d.ts.map +1 -0
  312. package/dist/src/commerce/__tests__/x402-registry.test.js +105 -0
  313. package/dist/src/commerce/__tests__/x402-registry.test.js.map +1 -0
  314. package/dist/src/commerce/evm-address.d.ts +21 -0
  315. package/dist/src/commerce/evm-address.d.ts.map +1 -0
  316. package/dist/src/commerce/evm-address.js +94 -0
  317. package/dist/src/commerce/evm-address.js.map +1 -0
  318. package/dist/src/commerce/invoice-handler.d.ts +5 -0
  319. package/dist/src/commerce/invoice-handler.d.ts.map +1 -0
  320. package/dist/src/commerce/invoice-handler.js +41 -0
  321. package/dist/src/commerce/invoice-handler.js.map +1 -0
  322. package/dist/src/commerce/money.d.ts +18 -5
  323. package/dist/src/commerce/money.d.ts.map +1 -1
  324. package/dist/src/commerce/money.js +27 -6
  325. package/dist/src/commerce/money.js.map +1 -1
  326. package/dist/src/commerce/payable-book.d.ts +31 -0
  327. package/dist/src/commerce/payable-book.d.ts.map +1 -0
  328. package/dist/src/commerce/payable-book.js +27 -0
  329. package/dist/src/commerce/payable-book.js.map +1 -0
  330. package/dist/src/commerce/payment-handlers.d.ts.map +1 -1
  331. package/dist/src/commerce/payment-handlers.js +8 -4
  332. package/dist/src/commerce/payment-handlers.js.map +1 -1
  333. package/dist/src/commerce/sellable-resolvers.d.ts +6 -6
  334. package/dist/src/commerce/sellable-resolvers.d.ts.map +1 -1
  335. package/dist/src/commerce/sellable-resolvers.js +17 -4
  336. package/dist/src/commerce/sellable-resolvers.js.map +1 -1
  337. package/dist/src/commerce/session-service.js +2 -2
  338. package/dist/src/commerce/session-service.js.map +1 -1
  339. package/dist/src/commerce/stripe-handler.d.ts +33 -0
  340. package/dist/src/commerce/stripe-handler.d.ts.map +1 -0
  341. package/dist/src/commerce/stripe-handler.js +108 -0
  342. package/dist/src/commerce/stripe-handler.js.map +1 -0
  343. package/dist/src/commerce/types.d.ts +10 -12
  344. package/dist/src/commerce/types.d.ts.map +1 -1
  345. package/dist/src/commerce/x402-facilitator.d.ts +64 -13
  346. package/dist/src/commerce/x402-facilitator.d.ts.map +1 -1
  347. package/dist/src/commerce/x402-facilitator.js +72 -19
  348. package/dist/src/commerce/x402-facilitator.js.map +1 -1
  349. package/dist/src/commerce/x402-handler.d.ts +13 -7
  350. package/dist/src/commerce/x402-handler.d.ts.map +1 -1
  351. package/dist/src/commerce/x402-handler.js +23 -10
  352. package/dist/src/commerce/x402-handler.js.map +1 -1
  353. package/dist/src/commerce/x402.d.ts +11 -6
  354. package/dist/src/commerce/x402.d.ts.map +1 -1
  355. package/dist/src/commerce/x402.js +10 -7
  356. package/dist/src/commerce/x402.js.map +1 -1
  357. package/dist/src/config-types.d.ts +78 -0
  358. package/dist/src/config-types.d.ts.map +1 -1
  359. package/dist/src/config.d.ts.map +1 -1
  360. package/dist/src/config.js +70 -1
  361. package/dist/src/config.js.map +1 -1
  362. package/dist/src/data/app-templates/shells.d.ts +11 -3
  363. package/dist/src/data/app-templates/shells.d.ts.map +1 -1
  364. package/dist/src/data/app-templates/shells.js +87 -6
  365. package/dist/src/data/app-templates/shells.js.map +1 -1
  366. package/dist/src/data/app-templates.js +2 -2
  367. package/dist/src/data/app-templates.js.map +1 -1
  368. package/dist/src/data/library-packs/cortex.d.ts.map +1 -1
  369. package/dist/src/data/library-packs/cortex.js +108 -5
  370. package/dist/src/data/library-packs/cortex.js.map +1 -1
  371. package/dist/src/data/library-packs/sdk.d.ts +4 -0
  372. package/dist/src/data/library-packs/sdk.d.ts.map +1 -1
  373. package/dist/src/data/library-packs/sdk.js +78 -8
  374. package/dist/src/data/library-packs/sdk.js.map +1 -1
  375. package/dist/src/data/library-packs/vendored.d.ts.map +1 -1
  376. package/dist/src/data/library-packs/vendored.js +171 -6
  377. package/dist/src/data/library-packs/vendored.js.map +1 -1
  378. package/dist/src/generated/api-types.d.ts +949 -44
  379. package/dist/src/generated/api-types.d.ts.map +1 -1
  380. package/dist/src/index-connect.d.ts.map +1 -1
  381. package/dist/src/index-connect.js +4 -1
  382. package/dist/src/index-connect.js.map +1 -1
  383. package/dist/src/index-start.d.ts.map +1 -1
  384. package/dist/src/index-start.js +10 -6
  385. package/dist/src/index-start.js.map +1 -1
  386. package/dist/src/mcp/agent-tasks.d.ts +4 -0
  387. package/dist/src/mcp/agent-tasks.d.ts.map +1 -1
  388. package/dist/src/mcp/agent-tasks.js +20 -2
  389. package/dist/src/mcp/agent-tasks.js.map +1 -1
  390. package/dist/src/mcp/app-template-proposals.d.ts.map +1 -1
  391. package/dist/src/mcp/app-template-proposals.js +2 -1
  392. package/dist/src/mcp/app-template-proposals.js.map +1 -1
  393. package/dist/src/mcp/apps.d.ts.map +1 -1
  394. package/dist/src/mcp/apps.js +4 -3
  395. package/dist/src/mcp/apps.js.map +1 -1
  396. package/dist/src/mcp/capabilities.d.ts +7 -1
  397. package/dist/src/mcp/capabilities.d.ts.map +1 -1
  398. package/dist/src/mcp/capabilities.js +8 -4
  399. package/dist/src/mcp/capabilities.js.map +1 -1
  400. package/dist/src/mcp/catalog/definitions/commerce.d.ts.map +1 -1
  401. package/dist/src/mcp/catalog/definitions/commerce.js +4 -2
  402. package/dist/src/mcp/catalog/definitions/commerce.js.map +1 -1
  403. package/dist/src/mcp/catalog/definitions/discovery-work-boards.d.ts.map +1 -1
  404. package/dist/src/mcp/catalog/definitions/discovery-work-boards.js +4 -3
  405. package/dist/src/mcp/catalog/definitions/discovery-work-boards.js.map +1 -1
  406. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js +1 -1
  407. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
  408. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
  409. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +3 -2
  410. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
  411. package/dist/src/mcp/catalog/output-schemas.d.ts +6 -1
  412. package/dist/src/mcp/catalog/output-schemas.d.ts.map +1 -1
  413. package/dist/src/mcp/catalog/output-schemas.js +6 -1
  414. package/dist/src/mcp/catalog/output-schemas.js.map +1 -1
  415. package/dist/src/mcp/catalog/scopes.d.ts +0 -1
  416. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  417. package/dist/src/mcp/catalog/scopes.js +2 -11
  418. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  419. package/dist/src/mcp/catalog/surfaces.d.ts +1 -7
  420. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  421. package/dist/src/mcp/catalog/surfaces.js +10 -16
  422. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  423. package/dist/src/mcp/commerce.d.ts.map +1 -1
  424. package/dist/src/mcp/commerce.js +50 -6
  425. package/dist/src/mcp/commerce.js.map +1 -1
  426. package/dist/src/mcp/core-storage.d.ts +23 -0
  427. package/dist/src/mcp/core-storage.d.ts.map +1 -0
  428. package/dist/src/mcp/core-storage.js +157 -0
  429. package/dist/src/mcp/core-storage.js.map +1 -0
  430. package/dist/src/mcp/core.d.ts +16 -0
  431. package/dist/src/mcp/core.d.ts.map +1 -1
  432. package/dist/src/mcp/core.js +78 -121
  433. package/dist/src/mcp/core.js.map +1 -1
  434. package/dist/src/mcp/dm-messages.d.ts +4 -0
  435. package/dist/src/mcp/dm-messages.d.ts.map +1 -1
  436. package/dist/src/mcp/dm-messages.js +43 -2
  437. package/dist/src/mcp/dm-messages.js.map +1 -1
  438. package/dist/src/mcp/exchange-run.d.ts +28 -0
  439. package/dist/src/mcp/exchange-run.d.ts.map +1 -1
  440. package/dist/src/mcp/exchange-run.js +58 -37
  441. package/dist/src/mcp/exchange-run.js.map +1 -1
  442. package/dist/src/mcp/exchange.d.ts.map +1 -1
  443. package/dist/src/mcp/exchange.js +12 -9
  444. package/dist/src/mcp/exchange.js.map +1 -1
  445. package/dist/src/mcp/extensions.d.ts.map +1 -1
  446. package/dist/src/mcp/extensions.js +66 -108
  447. package/dist/src/mcp/extensions.js.map +1 -1
  448. package/dist/src/mcp/index.d.ts +5 -0
  449. package/dist/src/mcp/index.d.ts.map +1 -1
  450. package/dist/src/mcp/index.js +24 -9
  451. package/dist/src/mcp/index.js.map +1 -1
  452. package/dist/src/mcp/knowledge.d.ts.map +1 -1
  453. package/dist/src/mcp/knowledge.js +1 -0
  454. package/dist/src/mcp/knowledge.js.map +1 -1
  455. package/dist/src/mcp/memory-namespace-hints.d.ts +33 -0
  456. package/dist/src/mcp/memory-namespace-hints.d.ts.map +1 -0
  457. package/dist/src/mcp/memory-namespace-hints.js +60 -0
  458. package/dist/src/mcp/memory-namespace-hints.js.map +1 -0
  459. package/dist/src/mcp/oauth.d.ts +3 -0
  460. package/dist/src/mcp/oauth.d.ts.map +1 -1
  461. package/dist/src/mcp/oauth.js +13 -8
  462. package/dist/src/mcp/oauth.js.map +1 -1
  463. package/dist/src/mcp/workspaces.d.ts +5 -0
  464. package/dist/src/mcp/workspaces.d.ts.map +1 -1
  465. package/dist/src/mcp/workspaces.js +12 -7
  466. package/dist/src/mcp/workspaces.js.map +1 -1
  467. package/dist/src/middleware/cors.d.ts.map +1 -1
  468. package/dist/src/middleware/cors.js +3 -1
  469. package/dist/src/middleware/cors.js.map +1 -1
  470. package/dist/src/middleware/subdomain.d.ts +4 -0
  471. package/dist/src/middleware/subdomain.d.ts.map +1 -1
  472. package/dist/src/middleware/subdomain.js +23 -2
  473. package/dist/src/middleware/subdomain.js.map +1 -1
  474. package/dist/src/models/agent-task-schemas.d.ts +25 -3
  475. package/dist/src/models/agent-task-schemas.d.ts.map +1 -1
  476. package/dist/src/models/agent-task-schemas.js +16 -0
  477. package/dist/src/models/agent-task-schemas.js.map +1 -1
  478. package/dist/src/models/app-tool-schemas.d.ts +553 -1
  479. package/dist/src/models/app-tool-schemas.d.ts.map +1 -1
  480. package/dist/src/models/app-tool-schemas.js +97 -1
  481. package/dist/src/models/app-tool-schemas.js.map +1 -1
  482. package/dist/src/models/odps-schemas.d.ts +305 -0
  483. package/dist/src/models/odps-schemas.d.ts.map +1 -0
  484. package/dist/src/models/odps-schemas.js +182 -0
  485. package/dist/src/models/odps-schemas.js.map +1 -0
  486. package/dist/src/models/offer-schemas.d.ts +357 -2
  487. package/dist/src/models/offer-schemas.d.ts.map +1 -1
  488. package/dist/src/models/offer-schemas.js +37 -0
  489. package/dist/src/models/offer-schemas.js.map +1 -1
  490. package/dist/src/models/schemas.d.ts +6 -3
  491. package/dist/src/models/schemas.d.ts.map +1 -1
  492. package/dist/src/models/schemas.js +10 -1
  493. package/dist/src/models/schemas.js.map +1 -1
  494. package/dist/src/models/webhook-schemas.d.ts +8 -8
  495. package/dist/src/routes/admin-config.d.ts.map +1 -1
  496. package/dist/src/routes/admin-config.js +4 -1
  497. package/dist/src/routes/admin-config.js.map +1 -1
  498. package/dist/src/routes/admin-extensions.d.ts.map +1 -1
  499. package/dist/src/routes/admin-extensions.js +2 -1
  500. package/dist/src/routes/admin-extensions.js.map +1 -1
  501. package/dist/src/routes/admin-monitoring.js +14 -5
  502. package/dist/src/routes/admin-monitoring.js.map +1 -1
  503. package/dist/src/routes/admin-security.d.ts.map +1 -1
  504. package/dist/src/routes/admin-security.js +4 -1
  505. package/dist/src/routes/admin-security.js.map +1 -1
  506. package/dist/src/routes/admin.d.ts.map +1 -1
  507. package/dist/src/routes/admin.js +6 -4
  508. package/dist/src/routes/admin.js.map +1 -1
  509. package/dist/src/routes/agent-activity.d.ts.map +1 -1
  510. package/dist/src/routes/agent-activity.js +4 -1
  511. package/dist/src/routes/agent-activity.js.map +1 -1
  512. package/dist/src/routes/agent-directives.d.ts +3 -10
  513. package/dist/src/routes/agent-directives.d.ts.map +1 -1
  514. package/dist/src/routes/agent-directives.js +7 -12
  515. package/dist/src/routes/agent-directives.js.map +1 -1
  516. package/dist/src/routes/agent-integration.d.ts.map +1 -1
  517. package/dist/src/routes/agent-integration.js +3 -1
  518. package/dist/src/routes/agent-integration.js.map +1 -1
  519. package/dist/src/routes/agent-messages.d.ts.map +1 -1
  520. package/dist/src/routes/agent-messages.js +5 -2
  521. package/dist/src/routes/agent-messages.js.map +1 -1
  522. package/dist/src/routes/agent-onboarding.d.ts.map +1 -1
  523. package/dist/src/routes/agent-onboarding.js +19 -6
  524. package/dist/src/routes/agent-onboarding.js.map +1 -1
  525. package/dist/src/routes/agent-skills-discovery.d.ts.map +1 -1
  526. package/dist/src/routes/agent-skills-discovery.js +2 -1
  527. package/dist/src/routes/agent-skills-discovery.js.map +1 -1
  528. package/dist/src/routes/agent-tasks/completion.js +1 -1
  529. package/dist/src/routes/agent-tasks/completion.js.map +1 -1
  530. package/dist/src/routes/agent-tasks/create-read.d.ts +4 -0
  531. package/dist/src/routes/agent-tasks/create-read.d.ts.map +1 -1
  532. package/dist/src/routes/agent-tasks/create-read.js +23 -2
  533. package/dist/src/routes/agent-tasks/create-read.js.map +1 -1
  534. package/dist/src/routes/agent-tasks/lifecycle.d.ts.map +1 -1
  535. package/dist/src/routes/agent-tasks/lifecycle.js +38 -9
  536. package/dist/src/routes/agent-tasks/lifecycle.js.map +1 -1
  537. package/dist/src/routes/agents/management.d.ts.map +1 -1
  538. package/dist/src/routes/agents/management.js +4 -1
  539. package/dist/src/routes/agents/management.js.map +1 -1
  540. package/dist/src/routes/agents/offers.d.ts +2 -0
  541. package/dist/src/routes/agents/offers.d.ts.map +1 -1
  542. package/dist/src/routes/agents/offers.js +0 -0
  543. package/dist/src/routes/agents/offers.js.map +1 -1
  544. package/dist/src/routes/agents/profile-metadata.d.ts.map +1 -1
  545. package/dist/src/routes/agents/profile-metadata.js +2 -1
  546. package/dist/src/routes/agents/profile-metadata.js.map +1 -1
  547. package/dist/src/routes/app-grants.d.ts +13 -0
  548. package/dist/src/routes/app-grants.d.ts.map +1 -1
  549. package/dist/src/routes/app-grants.js +124 -29
  550. package/dist/src/routes/app-grants.js.map +1 -1
  551. package/dist/src/routes/appdev-overview.d.ts.map +1 -1
  552. package/dist/src/routes/appdev-overview.js +2 -1
  553. package/dist/src/routes/appdev-overview.js.map +1 -1
  554. package/dist/src/routes/apps/catalogue-admin.d.ts.map +1 -1
  555. package/dist/src/routes/apps/catalogue-admin.js +2 -1
  556. package/dist/src/routes/apps/catalogue-admin.js.map +1 -1
  557. package/dist/src/routes/apps/drafts.d.ts +3 -0
  558. package/dist/src/routes/apps/drafts.d.ts.map +1 -1
  559. package/dist/src/routes/apps/drafts.js +65 -2
  560. package/dist/src/routes/apps/drafts.js.map +1 -1
  561. package/dist/src/routes/apps/fork-manage.d.ts.map +1 -1
  562. package/dist/src/routes/apps/fork-manage.js +6 -3
  563. package/dist/src/routes/apps/fork-manage.js.map +1 -1
  564. package/dist/src/routes/apps/helpers.d.ts.map +1 -1
  565. package/dist/src/routes/apps/helpers.js +5 -1
  566. package/dist/src/routes/apps/helpers.js.map +1 -1
  567. package/dist/src/routes/apps/publish.d.ts +2 -0
  568. package/dist/src/routes/apps/publish.d.ts.map +1 -1
  569. package/dist/src/routes/apps/publish.js +25 -5
  570. package/dist/src/routes/apps/publish.js.map +1 -1
  571. package/dist/src/routes/apps/read.d.ts.map +1 -1
  572. package/dist/src/routes/apps/read.js +2 -1
  573. package/dist/src/routes/apps/read.js.map +1 -1
  574. package/dist/src/routes/auth.d.ts.map +1 -1
  575. package/dist/src/routes/auth.js +2 -1
  576. package/dist/src/routes/auth.js.map +1 -1
  577. package/dist/src/routes/boards.js +1 -1
  578. package/dist/src/routes/boards.js.map +1 -1
  579. package/dist/src/routes/bootstrap.d.ts.map +1 -1
  580. package/dist/src/routes/bootstrap.js +8 -3
  581. package/dist/src/routes/bootstrap.js.map +1 -1
  582. package/dist/src/routes/capabilities.d.ts.map +1 -1
  583. package/dist/src/routes/capabilities.js +4 -3
  584. package/dist/src/routes/capabilities.js.map +1 -1
  585. package/dist/src/routes/commerce-acp.js +1 -1
  586. package/dist/src/routes/commerce-acp.js.map +1 -1
  587. package/dist/src/routes/commerce-ucp.d.ts +2 -3
  588. package/dist/src/routes/commerce-ucp.d.ts.map +1 -1
  589. package/dist/src/routes/commerce-ucp.js +6 -12
  590. package/dist/src/routes/commerce-ucp.js.map +1 -1
  591. package/dist/src/routes/commerce.d.ts +7 -1
  592. package/dist/src/routes/commerce.d.ts.map +1 -1
  593. package/dist/src/routes/commerce.js +175 -5
  594. package/dist/src/routes/commerce.js.map +1 -1
  595. package/dist/src/routes/csm.d.ts.map +1 -1
  596. package/dist/src/routes/csm.js +3 -1
  597. package/dist/src/routes/csm.js.map +1 -1
  598. package/dist/src/routes/ecosystem-apps.d.ts.map +1 -1
  599. package/dist/src/routes/ecosystem-apps.js +7 -6
  600. package/dist/src/routes/ecosystem-apps.js.map +1 -1
  601. package/dist/src/routes/exchange-market.d.ts +6 -2
  602. package/dist/src/routes/exchange-market.d.ts.map +1 -1
  603. package/dist/src/routes/exchange-market.js +163 -33
  604. package/dist/src/routes/exchange-market.js.map +1 -1
  605. package/dist/src/routes/exchange.d.ts +10 -1
  606. package/dist/src/routes/exchange.d.ts.map +1 -1
  607. package/dist/src/routes/exchange.js +349 -11
  608. package/dist/src/routes/exchange.js.map +1 -1
  609. package/dist/src/routes/extensions/actions.d.ts +2 -0
  610. package/dist/src/routes/extensions/actions.d.ts.map +1 -1
  611. package/dist/src/routes/extensions/actions.js +65 -8
  612. package/dist/src/routes/extensions/actions.js.map +1 -1
  613. package/dist/src/routes/extensions/crud.d.ts.map +1 -1
  614. package/dist/src/routes/extensions/crud.js +36 -3
  615. package/dist/src/routes/extensions/crud.js.map +1 -1
  616. package/dist/src/routes/extensions/entitlement-gate.d.ts +44 -7
  617. package/dist/src/routes/extensions/entitlement-gate.d.ts.map +1 -1
  618. package/dist/src/routes/extensions/entitlement-gate.js +22 -130
  619. package/dist/src/routes/extensions/entitlement-gate.js.map +1 -1
  620. package/dist/src/routes/extensions/internal-pass.d.ts +23 -0
  621. package/dist/src/routes/extensions/internal-pass.d.ts.map +1 -0
  622. package/dist/src/routes/extensions/internal-pass.js +70 -0
  623. package/dist/src/routes/extensions/internal-pass.js.map +1 -0
  624. package/dist/src/routes/extensions/manifest.d.ts +10 -0
  625. package/dist/src/routes/extensions/manifest.d.ts.map +1 -1
  626. package/dist/src/routes/extensions/manifest.js +136 -5
  627. package/dist/src/routes/extensions/manifest.js.map +1 -1
  628. package/dist/src/routes/extensions/metered-response.d.ts +37 -0
  629. package/dist/src/routes/extensions/metered-response.d.ts.map +1 -0
  630. package/dist/src/routes/extensions/metered-response.js +60 -0
  631. package/dist/src/routes/extensions/metered-response.js.map +1 -0
  632. package/dist/src/routes/extensions/pacing.d.ts +62 -0
  633. package/dist/src/routes/extensions/pacing.d.ts.map +1 -0
  634. package/dist/src/routes/extensions/pacing.js +45 -0
  635. package/dist/src/routes/extensions/pacing.js.map +1 -0
  636. package/dist/src/routes/extensions/paywall.d.ts +16 -0
  637. package/dist/src/routes/extensions/paywall.d.ts.map +1 -1
  638. package/dist/src/routes/extensions/paywall.js +170 -21
  639. package/dist/src/routes/extensions/paywall.js.map +1 -1
  640. package/dist/src/routes/extensions/priced-binding.d.ts +50 -0
  641. package/dist/src/routes/extensions/priced-binding.d.ts.map +1 -0
  642. package/dist/src/routes/extensions/priced-binding.js +46 -0
  643. package/dist/src/routes/extensions/priced-binding.js.map +1 -0
  644. package/dist/src/routes/federation-genesis.d.ts.map +1 -1
  645. package/dist/src/routes/federation-genesis.js +14 -5
  646. package/dist/src/routes/federation-genesis.js.map +1 -1
  647. package/dist/src/routes/federation-peer/introduce.d.ts.map +1 -1
  648. package/dist/src/routes/federation-peer/introduce.js +3 -1
  649. package/dist/src/routes/federation-peer/introduce.js.map +1 -1
  650. package/dist/src/routes/federation-peer/lifecycle.d.ts.map +1 -1
  651. package/dist/src/routes/federation-peer/lifecycle.js +3 -2
  652. package/dist/src/routes/federation-peer/lifecycle.js.map +1 -1
  653. package/dist/src/routes/federation-peer/peers.d.ts.map +1 -1
  654. package/dist/src/routes/federation-peer/peers.js +5 -3
  655. package/dist/src/routes/federation-peer/peers.js.map +1 -1
  656. package/dist/src/routes/federation-peer/policy-book.d.ts.map +1 -1
  657. package/dist/src/routes/federation-peer/policy-book.js +2 -1
  658. package/dist/src/routes/federation-peer/policy-book.js.map +1 -1
  659. package/dist/src/routes/federation-peer/promotion.d.ts.map +1 -1
  660. package/dist/src/routes/federation-peer/promotion.js +4 -1
  661. package/dist/src/routes/federation-peer/promotion.js.map +1 -1
  662. package/dist/src/routes/federation-settlements.js +2 -2
  663. package/dist/src/routes/federation-settlements.js.map +1 -1
  664. package/dist/src/routes/federation-sync/catalogue-trust.js +5 -3
  665. package/dist/src/routes/federation-sync/catalogue-trust.js.map +1 -1
  666. package/dist/src/routes/federation-sync/messaging.js +5 -3
  667. package/dist/src/routes/federation-sync/messaging.js.map +1 -1
  668. package/dist/src/routes/federation-sync/routing.d.ts.map +1 -1
  669. package/dist/src/routes/federation-sync/routing.js +7 -5
  670. package/dist/src/routes/federation-sync/routing.js.map +1 -1
  671. package/dist/src/routes/flags.d.ts.map +1 -1
  672. package/dist/src/routes/flags.js +3 -1
  673. package/dist/src/routes/flags.js.map +1 -1
  674. package/dist/src/routes/ghii/register-login.js +1 -1
  675. package/dist/src/routes/ghii/register-login.js.map +1 -1
  676. package/dist/src/routes/instances/install.d.ts.map +1 -1
  677. package/dist/src/routes/instances/install.js +2 -1
  678. package/dist/src/routes/instances/install.js.map +1 -1
  679. package/dist/src/routes/instances/manage.d.ts.map +1 -1
  680. package/dist/src/routes/instances/manage.js +2 -1
  681. package/dist/src/routes/instances/manage.js.map +1 -1
  682. package/dist/src/routes/knowledge/packages-core.d.ts.map +1 -1
  683. package/dist/src/routes/knowledge/packages-core.js +2 -1
  684. package/dist/src/routes/knowledge/packages-core.js.map +1 -1
  685. package/dist/src/routes/knowledge/sharing.d.ts.map +1 -1
  686. package/dist/src/routes/knowledge/sharing.js +2 -1
  687. package/dist/src/routes/knowledge/sharing.js.map +1 -1
  688. package/dist/src/routes/library-packs.d.ts.map +1 -1
  689. package/dist/src/routes/library-packs.js +10 -3
  690. package/dist/src/routes/library-packs.js.map +1 -1
  691. package/dist/src/routes/libs.d.ts +9 -0
  692. package/dist/src/routes/libs.d.ts.map +1 -1
  693. package/dist/src/routes/libs.js +11 -2
  694. package/dist/src/routes/libs.js.map +1 -1
  695. package/dist/src/routes/matches.d.ts.map +1 -1
  696. package/dist/src/routes/matches.js +7 -3
  697. package/dist/src/routes/matches.js.map +1 -1
  698. package/dist/src/routes/memory/bulk.d.ts.map +1 -1
  699. package/dist/src/routes/memory/bulk.js +3 -1
  700. package/dist/src/routes/memory/bulk.js.map +1 -1
  701. package/dist/src/routes/memory/crud.d.ts.map +1 -1
  702. package/dist/src/routes/memory/crud.js +14 -2
  703. package/dist/src/routes/memory/crud.js.map +1 -1
  704. package/dist/src/routes/memory/federation.d.ts.map +1 -1
  705. package/dist/src/routes/memory/federation.js +5 -0
  706. package/dist/src/routes/memory/federation.js.map +1 -1
  707. package/dist/src/routes/memory/key.d.ts.map +1 -1
  708. package/dist/src/routes/memory/key.js +9 -4
  709. package/dist/src/routes/memory/key.js.map +1 -1
  710. package/dist/src/routes/messages.d.ts.map +1 -1
  711. package/dist/src/routes/messages.js +2 -1
  712. package/dist/src/routes/messages.js.map +1 -1
  713. package/dist/src/routes/msm.d.ts.map +1 -1
  714. package/dist/src/routes/msm.js +3 -1
  715. package/dist/src/routes/msm.js.map +1 -1
  716. package/dist/src/routes/oauth-login.d.ts.map +1 -1
  717. package/dist/src/routes/oauth-login.js +1 -0
  718. package/dist/src/routes/oauth-login.js.map +1 -1
  719. package/dist/src/routes/openrouter.js +2 -2
  720. package/dist/src/routes/openrouter.js.map +1 -1
  721. package/dist/src/routes/organisms/crud.d.ts +3 -0
  722. package/dist/src/routes/organisms/crud.d.ts.map +1 -1
  723. package/dist/src/routes/organisms/crud.js +8 -4
  724. package/dist/src/routes/organisms/crud.js.map +1 -1
  725. package/dist/src/routes/organisms/gates.d.ts.map +1 -1
  726. package/dist/src/routes/organisms/gates.js +3 -2
  727. package/dist/src/routes/organisms/gates.js.map +1 -1
  728. package/dist/src/routes/organisms/intake.d.ts.map +1 -1
  729. package/dist/src/routes/organisms/intake.js +13 -1
  730. package/dist/src/routes/organisms/intake.js.map +1 -1
  731. package/dist/src/routes/organisms/shared.d.ts.map +1 -1
  732. package/dist/src/routes/organisms/shared.js +7 -3
  733. package/dist/src/routes/organisms/shared.js.map +1 -1
  734. package/dist/src/routes/organisms/workspace-ops.d.ts.map +1 -1
  735. package/dist/src/routes/organisms/workspace-ops.js +6 -5
  736. package/dist/src/routes/organisms/workspace-ops.js.map +1 -1
  737. package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
  738. package/dist/src/routes/organisms/workspace-read.js +11 -4
  739. package/dist/src/routes/organisms/workspace-read.js.map +1 -1
  740. package/dist/src/routes/owners.d.ts.map +1 -1
  741. package/dist/src/routes/owners.js +37 -12
  742. package/dist/src/routes/owners.js.map +1 -1
  743. package/dist/src/routes/personal.js +3 -1
  744. package/dist/src/routes/personal.js.map +1 -1
  745. package/dist/src/routes/portal.d.ts +6 -1
  746. package/dist/src/routes/portal.d.ts.map +1 -1
  747. package/dist/src/routes/portal.js +75 -10
  748. package/dist/src/routes/portal.js.map +1 -1
  749. package/dist/src/routes/portfolio.d.ts.map +1 -1
  750. package/dist/src/routes/portfolio.js +5 -1
  751. package/dist/src/routes/portfolio.js.map +1 -1
  752. package/dist/src/routes/prompts.d.ts.map +1 -1
  753. package/dist/src/routes/prompts.js +36 -2
  754. package/dist/src/routes/prompts.js.map +1 -1
  755. package/dist/src/routes/public-events.d.ts.map +1 -1
  756. package/dist/src/routes/public-events.js +4 -1
  757. package/dist/src/routes/public-events.js.map +1 -1
  758. package/dist/src/routes/public-stats.d.ts +7 -0
  759. package/dist/src/routes/public-stats.d.ts.map +1 -1
  760. package/dist/src/routes/public-stats.js +57 -17
  761. package/dist/src/routes/public-stats.js.map +1 -1
  762. package/dist/src/routes/schedules.d.ts +3 -0
  763. package/dist/src/routes/schedules.d.ts.map +1 -1
  764. package/dist/src/routes/schedules.js +14 -1
  765. package/dist/src/routes/schedules.js.map +1 -1
  766. package/dist/src/routes/sse.d.ts +7 -0
  767. package/dist/src/routes/sse.d.ts.map +1 -1
  768. package/dist/src/routes/sse.js +36 -6
  769. package/dist/src/routes/sse.js.map +1 -1
  770. package/dist/src/routes/stats.d.ts.map +1 -1
  771. package/dist/src/routes/stats.js +5 -1
  772. package/dist/src/routes/stats.js.map +1 -1
  773. package/dist/src/routes/storage-files.d.ts +15 -0
  774. package/dist/src/routes/storage-files.d.ts.map +1 -1
  775. package/dist/src/routes/storage-files.js +69 -51
  776. package/dist/src/routes/storage-files.js.map +1 -1
  777. package/dist/src/routes/subdomains.d.ts +13 -0
  778. package/dist/src/routes/subdomains.d.ts.map +1 -1
  779. package/dist/src/routes/subdomains.js +106 -8
  780. package/dist/src/routes/subdomains.js.map +1 -1
  781. package/dist/src/routes/unfurl.d.ts.map +1 -1
  782. package/dist/src/routes/unfurl.js +13 -3
  783. package/dist/src/routes/unfurl.js.map +1 -1
  784. package/dist/src/routes/upload.d.ts +22 -0
  785. package/dist/src/routes/upload.d.ts.map +1 -1
  786. package/dist/src/routes/upload.js +204 -34
  787. package/dist/src/routes/upload.js.map +1 -1
  788. package/dist/src/routes/wallet.d.ts +3 -0
  789. package/dist/src/routes/wallet.d.ts.map +1 -1
  790. package/dist/src/routes/wallet.js +6 -1
  791. package/dist/src/routes/wallet.js.map +1 -1
  792. package/dist/src/routes/webmcp.d.ts +8 -0
  793. package/dist/src/routes/webmcp.d.ts.map +1 -1
  794. package/dist/src/routes/webmcp.js +97 -46
  795. package/dist/src/routes/webmcp.js.map +1 -1
  796. package/dist/src/routes/wellknown.d.ts.map +1 -1
  797. package/dist/src/routes/wellknown.js +1 -0
  798. package/dist/src/routes/wellknown.js.map +1 -1
  799. package/dist/src/schemas/knowledge-package.d.ts +1 -1
  800. package/dist/src/server-bootstrap/config-init.d.ts.map +1 -1
  801. package/dist/src/server-bootstrap/config-init.js +2 -0
  802. package/dist/src/server-bootstrap/config-init.js.map +1 -1
  803. package/dist/src/server-bootstrap/routes-loader.d.ts +4 -2
  804. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  805. package/dist/src/server-bootstrap/routes-loader.js +11 -22
  806. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  807. package/dist/src/server-bootstrap/service-init.js +3 -1
  808. package/dist/src/server-bootstrap/service-init.js.map +1 -1
  809. package/dist/src/server-bootstrap/static-files.d.ts +4 -0
  810. package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
  811. package/dist/src/server-bootstrap/static-files.js +14 -1
  812. package/dist/src/server-bootstrap/static-files.js.map +1 -1
  813. package/dist/src/services/agent-statistics.d.ts.map +1 -1
  814. package/dist/src/services/agent-statistics.js +4 -1
  815. package/dist/src/services/agent-statistics.js.map +1 -1
  816. package/dist/src/services/app-agent-deploy.d.ts.map +1 -1
  817. package/dist/src/services/app-agent-deploy.js +4 -1
  818. package/dist/src/services/app-agent-deploy.js.map +1 -1
  819. package/dist/src/services/app-agent-surface.d.ts +78 -0
  820. package/dist/src/services/app-agent-surface.d.ts.map +1 -0
  821. package/dist/src/services/app-agent-surface.js +74 -0
  822. package/dist/src/services/app-agent-surface.js.map +1 -0
  823. package/dist/src/services/app-tool-names.d.ts +15 -0
  824. package/dist/src/services/app-tool-names.d.ts.map +1 -0
  825. package/dist/src/services/app-tool-names.js +24 -0
  826. package/dist/src/services/app-tool-names.js.map +1 -0
  827. package/dist/src/services/appdev-overview.d.ts.map +1 -1
  828. package/dist/src/services/appdev-overview.js +3 -2
  829. package/dist/src/services/appdev-overview.js.map +1 -1
  830. package/dist/src/services/attachment-duplication.js +3 -3
  831. package/dist/src/services/attachment-duplication.js.map +1 -1
  832. package/dist/src/services/build-app-prompt.d.ts +19 -0
  833. package/dist/src/services/build-app-prompt.d.ts.map +1 -1
  834. package/dist/src/services/build-app-prompt.js +97 -11
  835. package/dist/src/services/build-app-prompt.js.map +1 -1
  836. package/dist/src/services/build-extension-prompt.d.ts +40 -0
  837. package/dist/src/services/build-extension-prompt.d.ts.map +1 -0
  838. package/dist/src/services/build-extension-prompt.js +253 -0
  839. package/dist/src/services/build-extension-prompt.js.map +1 -0
  840. package/dist/src/services/cache-cleanup.d.ts.map +1 -1
  841. package/dist/src/services/cache-cleanup.js +2 -1
  842. package/dist/src/services/cache-cleanup.js.map +1 -1
  843. package/dist/src/services/call-timing.d.ts +51 -0
  844. package/dist/src/services/call-timing.d.ts.map +1 -0
  845. package/dist/src/services/call-timing.js +92 -0
  846. package/dist/src/services/call-timing.js.map +1 -0
  847. package/dist/src/services/capability-invoke.d.ts +8 -1
  848. package/dist/src/services/capability-invoke.d.ts.map +1 -1
  849. package/dist/src/services/capability-invoke.js +24 -2
  850. package/dist/src/services/capability-invoke.js.map +1 -1
  851. package/dist/src/services/catalogue-sync.d.ts.map +1 -1
  852. package/dist/src/services/catalogue-sync.js +1 -0
  853. package/dist/src/services/catalogue-sync.js.map +1 -1
  854. package/dist/src/services/component-registrar.d.ts.map +1 -1
  855. package/dist/src/services/component-registrar.js +22 -6
  856. package/dist/src/services/component-registrar.js.map +1 -1
  857. package/dist/src/services/config-loader.d.ts.map +1 -1
  858. package/dist/src/services/config-loader.js +6 -1
  859. package/dist/src/services/config-loader.js.map +1 -1
  860. package/dist/src/services/config-schema.d.ts.map +1 -1
  861. package/dist/src/services/config-schema.js +7 -0
  862. package/dist/src/services/config-schema.js.map +1 -1
  863. package/dist/src/services/connect-tunnel.d.ts.map +1 -1
  864. package/dist/src/services/connect-tunnel.js +17 -6
  865. package/dist/src/services/connect-tunnel.js.map +1 -1
  866. package/dist/src/services/consent.d.ts.map +1 -1
  867. package/dist/src/services/consent.js +3 -1
  868. package/dist/src/services/consent.js.map +1 -1
  869. package/dist/src/services/consul-config.d.ts.map +1 -1
  870. package/dist/src/services/consul-config.js +7 -2
  871. package/dist/src/services/consul-config.js.map +1 -1
  872. package/dist/src/services/contacts.js +4 -2
  873. package/dist/src/services/contacts.js.map +1 -1
  874. package/dist/src/services/core-jobs.js +1 -1
  875. package/dist/src/services/core-jobs.js.map +1 -1
  876. package/dist/src/services/db/agent-messages-overview-db-service.d.ts.map +1 -1
  877. package/dist/src/services/db/agent-messages-overview-db-service.js +2 -1
  878. package/dist/src/services/db/agent-messages-overview-db-service.js.map +1 -1
  879. package/dist/src/services/db/agent-quality-overview-db-service.d.ts.map +1 -1
  880. package/dist/src/services/db/agent-quality-overview-db-service.js +2 -1
  881. package/dist/src/services/db/agent-quality-overview-db-service.js.map +1 -1
  882. package/dist/src/services/db/messages-inbox-db-service.d.ts.map +1 -1
  883. package/dist/src/services/db/messages-inbox-db-service.js +3 -2
  884. package/dist/src/services/db/messages-inbox-db-service.js.map +1 -1
  885. package/dist/src/services/db/messaging-db-service.d.ts.map +1 -1
  886. package/dist/src/services/db/messaging-db-service.js +3 -2
  887. package/dist/src/services/db/messaging-db-service.js.map +1 -1
  888. package/dist/src/services/db/wallet-tab-db-service.d.ts +3 -3
  889. package/dist/src/services/doc-images.d.ts.map +1 -1
  890. package/dist/src/services/doc-images.js +7 -4
  891. package/dist/src/services/doc-images.js.map +1 -1
  892. package/dist/src/services/draft-token.d.ts +22 -2
  893. package/dist/src/services/draft-token.d.ts.map +1 -1
  894. package/dist/src/services/draft-token.js +52 -3
  895. package/dist/src/services/draft-token.js.map +1 -1
  896. package/dist/src/services/ecosystem-automation-notify.d.ts.map +1 -1
  897. package/dist/src/services/ecosystem-automation-notify.js +10 -4
  898. package/dist/src/services/ecosystem-automation-notify.js.map +1 -1
  899. package/dist/src/services/ecosystem-automation.d.ts.map +1 -1
  900. package/dist/src/services/ecosystem-automation.js +3 -2
  901. package/dist/src/services/ecosystem-automation.js.map +1 -1
  902. package/dist/src/services/ecosystem-events.js +1 -1
  903. package/dist/src/services/ecosystem-events.js.map +1 -1
  904. package/dist/src/services/entitlement-merge.d.ts +50 -0
  905. package/dist/src/services/entitlement-merge.d.ts.map +1 -0
  906. package/dist/src/services/entitlement-merge.js +116 -0
  907. package/dist/src/services/entitlement-merge.js.map +1 -0
  908. package/dist/src/services/entitlement-money.d.ts.map +1 -1
  909. package/dist/src/services/entitlement-money.js +4 -1
  910. package/dist/src/services/entitlement-money.js.map +1 -1
  911. package/dist/src/services/exchange-market.d.ts +88 -10
  912. package/dist/src/services/exchange-market.d.ts.map +1 -1
  913. package/dist/src/services/exchange-market.js +104 -11
  914. package/dist/src/services/exchange-market.js.map +1 -1
  915. package/dist/src/services/exchange-odps.d.ts +58 -0
  916. package/dist/src/services/exchange-odps.d.ts.map +1 -0
  917. package/dist/src/services/exchange-odps.js +400 -0
  918. package/dist/src/services/exchange-odps.js.map +1 -0
  919. package/dist/src/services/exchange-projection.d.ts +67 -0
  920. package/dist/src/services/exchange-projection.d.ts.map +1 -0
  921. package/dist/src/services/exchange-projection.js +629 -0
  922. package/dist/src/services/exchange-projection.js.map +1 -0
  923. package/dist/src/services/exchange-proposals.d.ts.map +1 -1
  924. package/dist/src/services/exchange-proposals.js +6 -2
  925. package/dist/src/services/exchange-proposals.js.map +1 -1
  926. package/dist/src/services/extension-files.d.ts +64 -0
  927. package/dist/src/services/extension-files.d.ts.map +1 -0
  928. package/dist/src/services/extension-files.js +88 -0
  929. package/dist/src/services/extension-files.js.map +1 -0
  930. package/dist/src/services/extension-purchase.d.ts +36 -0
  931. package/dist/src/services/extension-purchase.d.ts.map +1 -0
  932. package/dist/src/services/extension-purchase.js +110 -0
  933. package/dist/src/services/extension-purchase.js.map +1 -0
  934. package/dist/src/services/extension-runtime.d.ts +56 -1
  935. package/dist/src/services/extension-runtime.d.ts.map +1 -1
  936. package/dist/src/services/extension-runtime.js +73 -4
  937. package/dist/src/services/extension-runtime.js.map +1 -1
  938. package/dist/src/services/extension-secrets.d.ts +8 -0
  939. package/dist/src/services/extension-secrets.d.ts.map +1 -1
  940. package/dist/src/services/extension-secrets.js +14 -0
  941. package/dist/src/services/extension-secrets.js.map +1 -1
  942. package/dist/src/services/federation-availability.d.ts.map +1 -1
  943. package/dist/src/services/federation-availability.js +1 -0
  944. package/dist/src/services/federation-availability.js.map +1 -1
  945. package/dist/src/services/federation-book.js +15 -7
  946. package/dist/src/services/federation-book.js.map +1 -1
  947. package/dist/src/services/federation-helpers.d.ts.map +1 -1
  948. package/dist/src/services/federation-helpers.js +1 -0
  949. package/dist/src/services/federation-helpers.js.map +1 -1
  950. package/dist/src/services/federation.d.ts.map +1 -1
  951. package/dist/src/services/federation.js +8 -6
  952. package/dist/src/services/federation.js.map +1 -1
  953. package/dist/src/services/file-refs.d.ts +105 -0
  954. package/dist/src/services/file-refs.d.ts.map +1 -0
  955. package/dist/src/services/file-refs.js +106 -0
  956. package/dist/src/services/file-refs.js.map +1 -0
  957. package/dist/src/services/gate-expiry.d.ts.map +1 -1
  958. package/dist/src/services/gate-expiry.js +2 -1
  959. package/dist/src/services/gate-expiry.js.map +1 -1
  960. package/dist/src/services/genesis-sync.d.ts.map +1 -1
  961. package/dist/src/services/genesis-sync.js +9 -4
  962. package/dist/src/services/genesis-sync.js.map +1 -1
  963. package/dist/src/services/handbooks/commerce.d.ts +13 -0
  964. package/dist/src/services/handbooks/commerce.d.ts.map +1 -0
  965. package/dist/src/services/handbooks/commerce.js +60 -0
  966. package/dist/src/services/handbooks/commerce.js.map +1 -0
  967. package/dist/src/services/handbooks/index.d.ts +1 -0
  968. package/dist/src/services/handbooks/index.d.ts.map +1 -1
  969. package/dist/src/services/handbooks/index.js +2 -2
  970. package/dist/src/services/handbooks/index.js.map +1 -1
  971. package/dist/src/services/hooks.d.ts.map +1 -1
  972. package/dist/src/services/hooks.js +2 -0
  973. package/dist/src/services/hooks.js.map +1 -1
  974. package/dist/src/services/invitations.d.ts.map +1 -1
  975. package/dist/src/services/invitations.js +2 -0
  976. package/dist/src/services/invitations.js.map +1 -1
  977. package/dist/src/services/living-author.d.ts.map +1 -1
  978. package/dist/src/services/living-author.js +4 -1
  979. package/dist/src/services/living-author.js.map +1 -1
  980. package/dist/src/services/living-pulse.js +18 -6
  981. package/dist/src/services/living-pulse.js.map +1 -1
  982. package/dist/src/services/mailbox-notification.d.ts.map +1 -1
  983. package/dist/src/services/mailbox-notification.js +1 -0
  984. package/dist/src/services/mailbox-notification.js.map +1 -1
  985. package/dist/src/services/match-notification.d.ts.map +1 -1
  986. package/dist/src/services/match-notification.js +2 -1
  987. package/dist/src/services/match-notification.js.map +1 -1
  988. package/dist/src/services/matching.d.ts.map +1 -1
  989. package/dist/src/services/matching.js +5 -2
  990. package/dist/src/services/matching.js.map +1 -1
  991. package/dist/src/services/memory-replication.d.ts.map +1 -1
  992. package/dist/src/services/memory-replication.js +3 -1
  993. package/dist/src/services/memory-replication.js.map +1 -1
  994. package/dist/src/services/message-broadcast.d.ts.map +1 -1
  995. package/dist/src/services/message-broadcast.js +2 -1
  996. package/dist/src/services/message-broadcast.js.map +1 -1
  997. package/dist/src/services/message-delivery.d.ts.map +1 -1
  998. package/dist/src/services/message-delivery.js +9 -4
  999. package/dist/src/services/message-delivery.js.map +1 -1
  1000. package/dist/src/services/metered-access.d.ts +148 -0
  1001. package/dist/src/services/metered-access.d.ts.map +1 -0
  1002. package/dist/src/services/metered-access.js +128 -0
  1003. package/dist/src/services/metered-access.js.map +1 -0
  1004. package/dist/src/services/metered-entitlements.d.ts +147 -5
  1005. package/dist/src/services/metered-entitlements.d.ts.map +1 -1
  1006. package/dist/src/services/metered-entitlements.js +251 -30
  1007. package/dist/src/services/metered-entitlements.js.map +1 -1
  1008. package/dist/src/services/metered-settlement.d.ts +45 -0
  1009. package/dist/src/services/metered-settlement.d.ts.map +1 -0
  1010. package/dist/src/services/metered-settlement.js +117 -0
  1011. package/dist/src/services/metered-settlement.js.map +1 -0
  1012. package/dist/src/services/network-policy.d.ts.map +1 -1
  1013. package/dist/src/services/network-policy.js +6 -2
  1014. package/dist/src/services/network-policy.js.map +1 -1
  1015. package/dist/src/services/notebook-classify.d.ts.map +1 -1
  1016. package/dist/src/services/notebook-classify.js +7 -2
  1017. package/dist/src/services/notebook-classify.js.map +1 -1
  1018. package/dist/src/services/notebook-plan.d.ts.map +1 -1
  1019. package/dist/src/services/notebook-plan.js +4 -1
  1020. package/dist/src/services/notebook-plan.js.map +1 -1
  1021. package/dist/src/services/notify.d.ts.map +1 -1
  1022. package/dist/src/services/notify.js +6 -3
  1023. package/dist/src/services/notify.js.map +1 -1
  1024. package/dist/src/services/openrouter.d.ts.map +1 -1
  1025. package/dist/src/services/openrouter.js +1 -0
  1026. package/dist/src/services/openrouter.js.map +1 -1
  1027. package/dist/src/services/organism-export.d.ts.map +1 -1
  1028. package/dist/src/services/organism-export.js +4 -1
  1029. package/dist/src/services/organism-export.js.map +1 -1
  1030. package/dist/src/services/organism-import.d.ts.map +1 -1
  1031. package/dist/src/services/organism-import.js +5 -1
  1032. package/dist/src/services/organism-import.js.map +1 -1
  1033. package/dist/src/services/owner-memory.d.ts +14 -1
  1034. package/dist/src/services/owner-memory.d.ts.map +1 -1
  1035. package/dist/src/services/owner-memory.js +8 -14
  1036. package/dist/src/services/owner-memory.js.map +1 -1
  1037. package/dist/src/services/perf-trace.js +3 -1
  1038. package/dist/src/services/perf-trace.js.map +1 -1
  1039. package/dist/src/services/personal-tunnel.js +14 -8
  1040. package/dist/src/services/personal-tunnel.js.map +1 -1
  1041. package/dist/src/services/presence.d.ts.map +1 -1
  1042. package/dist/src/services/presence.js +11 -5
  1043. package/dist/src/services/presence.js.map +1 -1
  1044. package/dist/src/services/protected-resource.d.ts +60 -0
  1045. package/dist/src/services/protected-resource.d.ts.map +1 -0
  1046. package/dist/src/services/protected-resource.js +137 -0
  1047. package/dist/src/services/protected-resource.js.map +1 -0
  1048. package/dist/src/services/realtime-manager.d.ts.map +1 -1
  1049. package/dist/src/services/realtime-manager.js +8 -5
  1050. package/dist/src/services/realtime-manager.js.map +1 -1
  1051. package/dist/src/services/safe-zip.d.ts.map +1 -1
  1052. package/dist/src/services/safe-zip.js +4 -1
  1053. package/dist/src/services/safe-zip.js.map +1 -1
  1054. package/dist/src/services/scheduler-extension-job.js +2 -2
  1055. package/dist/src/services/scheduler-extension-job.js.map +1 -1
  1056. package/dist/src/services/scheduler.js +13 -7
  1057. package/dist/src/services/scheduler.js.map +1 -1
  1058. package/dist/src/services/security-incident.d.ts.map +1 -1
  1059. package/dist/src/services/security-incident.js +7 -2
  1060. package/dist/src/services/security-incident.js.map +1 -1
  1061. package/dist/src/services/site-sync.d.ts.map +1 -1
  1062. package/dist/src/services/site-sync.js +1 -0
  1063. package/dist/src/services/site-sync.js.map +1 -1
  1064. package/dist/src/services/site.d.ts +1 -1
  1065. package/dist/src/services/site.d.ts.map +1 -1
  1066. package/dist/src/services/site.js +29 -8
  1067. package/dist/src/services/site.js.map +1 -1
  1068. package/dist/src/services/structure-overview.d.ts.map +1 -1
  1069. package/dist/src/services/structure-overview.js +4 -1
  1070. package/dist/src/services/structure-overview.js.map +1 -1
  1071. package/dist/src/services/structure-snapshot.d.ts.map +1 -1
  1072. package/dist/src/services/structure-snapshot.js +3 -2
  1073. package/dist/src/services/structure-snapshot.js.map +1 -1
  1074. package/dist/src/services/sync-scheduler.js +3 -2
  1075. package/dist/src/services/sync-scheduler.js.map +1 -1
  1076. package/dist/src/services/task-files.d.ts +51 -0
  1077. package/dist/src/services/task-files.d.ts.map +1 -0
  1078. package/dist/src/services/task-files.js +58 -0
  1079. package/dist/src/services/task-files.js.map +1 -0
  1080. package/dist/src/services/tracked-response.js +1 -1
  1081. package/dist/src/services/tracked-response.js.map +1 -1
  1082. package/dist/src/services/trust-broadcast.d.ts.map +1 -1
  1083. package/dist/src/services/trust-broadcast.js +1 -0
  1084. package/dist/src/services/trust-broadcast.js.map +1 -1
  1085. package/dist/src/services/upload-token.d.ts +29 -0
  1086. package/dist/src/services/upload-token.d.ts.map +1 -1
  1087. package/dist/src/services/upload-token.js +37 -0
  1088. package/dist/src/services/upload-token.js.map +1 -1
  1089. package/dist/src/services/upload-zip.d.ts +9 -0
  1090. package/dist/src/services/upload-zip.d.ts.map +1 -1
  1091. package/dist/src/services/upload-zip.js +19 -81
  1092. package/dist/src/services/upload-zip.js.map +1 -1
  1093. package/dist/src/services/web-bot-auth.d.ts.map +1 -1
  1094. package/dist/src/services/web-bot-auth.js +1 -0
  1095. package/dist/src/services/web-bot-auth.js.map +1 -1
  1096. package/dist/src/services/workflow/engine-steps.d.ts.map +1 -1
  1097. package/dist/src/services/workflow/engine-steps.js +12 -6
  1098. package/dist/src/services/workflow/engine-steps.js.map +1 -1
  1099. package/dist/src/services/workspace-export.d.ts.map +1 -1
  1100. package/dist/src/services/workspace-export.js +5 -2
  1101. package/dist/src/services/workspace-export.js.map +1 -1
  1102. package/dist/src/services/workspace-import.d.ts.map +1 -1
  1103. package/dist/src/services/workspace-import.js +2 -1
  1104. package/dist/src/services/workspace-import.js.map +1 -1
  1105. package/dist/src/services/workspace-meta.d.ts +15 -0
  1106. package/dist/src/services/workspace-meta.d.ts.map +1 -1
  1107. package/dist/src/services/workspace-meta.js +17 -0
  1108. package/dist/src/services/workspace-meta.js.map +1 -1
  1109. package/dist/src/services/workspace-provision.d.ts +3 -0
  1110. package/dist/src/services/workspace-provision.d.ts.map +1 -1
  1111. package/dist/src/services/workspace-provision.js +5 -3
  1112. package/dist/src/services/workspace-provision.js.map +1 -1
  1113. package/dist/src/services/workspace-versions.d.ts.map +1 -1
  1114. package/dist/src/services/workspace-versions.js +0 -0
  1115. package/dist/src/services/workspace-versions.js.map +1 -1
  1116. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +5 -0
  1117. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -1
  1118. package/dist/src/storage/providers/postgres-kysely/helpers.d.ts +11 -0
  1119. package/dist/src/storage/providers/postgres-kysely/helpers.d.ts.map +1 -1
  1120. package/dist/src/storage/providers/postgres-kysely/helpers.js +14 -0
  1121. package/dist/src/storage/providers/postgres-kysely/helpers.js.map +1 -1
  1122. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts +2 -1
  1123. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts.map +1 -1
  1124. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js +16 -0
  1125. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -1
  1126. package/dist/src/storage/providers/postgres-kysely/methods/capabilities.js +3 -3
  1127. package/dist/src/storage/providers/postgres-kysely/methods/capabilities.js.map +1 -1
  1128. package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.js +3 -3
  1129. package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.js.map +1 -1
  1130. package/dist/src/storage/providers/postgres-kysely/methods/federation.d.ts.map +1 -1
  1131. package/dist/src/storage/providers/postgres-kysely/methods/federation.js +12 -10
  1132. package/dist/src/storage/providers/postgres-kysely/methods/federation.js.map +1 -1
  1133. package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts.map +1 -1
  1134. package/dist/src/storage/providers/postgres-kysely/methods/identity.js +26 -12
  1135. package/dist/src/storage/providers/postgres-kysely/methods/identity.js.map +1 -1
  1136. package/dist/src/storage/providers/postgres-kysely/methods/marketplace.js +5 -5
  1137. package/dist/src/storage/providers/postgres-kysely/methods/marketplace.js.map +1 -1
  1138. package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts +2 -0
  1139. package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts.map +1 -1
  1140. package/dist/src/storage/providers/postgres-kysely/methods/memory.js +12 -1
  1141. package/dist/src/storage/providers/postgres-kysely/methods/memory.js.map +1 -1
  1142. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.d.ts +9 -0
  1143. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.d.ts.map +1 -1
  1144. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.js +31 -27
  1145. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.js.map +1 -1
  1146. package/dist/src/storage/providers/postgres-kysely/methods/organisms.d.ts.map +1 -1
  1147. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js +15 -15
  1148. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -1
  1149. package/dist/src/storage/providers/postgres-kysely/methods/otk.js +3 -3
  1150. package/dist/src/storage/providers/postgres-kysely/methods/otk.js.map +1 -1
  1151. package/dist/src/storage/providers/postgres-kysely/methods/packages.d.ts.map +1 -1
  1152. package/dist/src/storage/providers/postgres-kysely/methods/packages.js +4 -14
  1153. package/dist/src/storage/providers/postgres-kysely/methods/packages.js.map +1 -1
  1154. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.d.ts.map +1 -1
  1155. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.js +11 -10
  1156. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.js.map +1 -1
  1157. package/dist/src/storage/providers/postgres-kysely/methods/wallet.d.ts.map +1 -1
  1158. package/dist/src/storage/providers/postgres-kysely/methods/wallet.js +3 -1
  1159. package/dist/src/storage/providers/postgres-kysely/methods/wallet.js.map +1 -1
  1160. package/dist/src/storage/providers/postgres-kysely/migrate.d.ts.map +1 -1
  1161. package/dist/src/storage/providers/postgres-kysely/migrate.js +3 -0
  1162. package/dist/src/storage/providers/postgres-kysely/migrate.js.map +1 -1
  1163. package/dist/src/storage/providers/postgres-kysely/migrations/0012_unique_live_app_grant.sql +29 -0
  1164. package/dist/src/storage/providers/postgres-kysely/migrations/0013_ghii_password_lockout.sql +12 -0
  1165. package/dist/src/storage/providers/postgres-kysely/migrations/0014_transaction_initiator.sql +6 -0
  1166. package/dist/src/storage/providers/postgres-kysely/migrations/0015_app_grant_spend_cap.sql +5 -0
  1167. package/dist/src/storage/providers/sqlite/methods/apps.d.ts +4 -1
  1168. package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
  1169. package/dist/src/storage/providers/sqlite/methods/apps.js +19 -2
  1170. package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
  1171. package/dist/src/storage/providers/sqlite/methods/community.d.ts.map +1 -1
  1172. package/dist/src/storage/providers/sqlite/methods/community.js +6 -1
  1173. package/dist/src/storage/providers/sqlite/methods/community.js.map +1 -1
  1174. package/dist/src/storage/providers/sqlite/methods/governance.d.ts +1 -0
  1175. package/dist/src/storage/providers/sqlite/methods/governance.d.ts.map +1 -1
  1176. package/dist/src/storage/providers/sqlite/methods/governance.js +4 -1
  1177. package/dist/src/storage/providers/sqlite/methods/governance.js.map +1 -1
  1178. package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts.map +1 -1
  1179. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js +9 -2
  1180. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js.map +1 -1
  1181. package/dist/src/storage/providers/sqlite/methods/owner.d.ts +5 -0
  1182. package/dist/src/storage/providers/sqlite/methods/owner.d.ts.map +1 -1
  1183. package/dist/src/storage/providers/sqlite/methods/owner.js +8 -0
  1184. package/dist/src/storage/providers/sqlite/methods/owner.js.map +1 -1
  1185. package/dist/src/storage/providers/sqlite/methods/work.d.ts.map +1 -1
  1186. package/dist/src/storage/providers/sqlite/methods/work.js +4 -2
  1187. package/dist/src/storage/providers/sqlite/methods/work.js.map +1 -1
  1188. package/dist/src/storage/providers/sqlite/repos/community.d.ts.map +1 -1
  1189. package/dist/src/storage/providers/sqlite/repos/community.js +6 -1
  1190. package/dist/src/storage/providers/sqlite/repos/community.js.map +1 -1
  1191. package/dist/src/storage/providers/sqlite/repos/identity.d.ts +3 -0
  1192. package/dist/src/storage/providers/sqlite/repos/identity.d.ts.map +1 -1
  1193. package/dist/src/storage/providers/sqlite/repos/identity.js +13 -4
  1194. package/dist/src/storage/providers/sqlite/repos/identity.js.map +1 -1
  1195. package/dist/src/storage/providers/sqlite/repos/work.d.ts.map +1 -1
  1196. package/dist/src/storage/providers/sqlite/repos/work.js +4 -2
  1197. package/dist/src/storage/providers/sqlite/repos/work.js.map +1 -1
  1198. package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts.map +1 -1
  1199. package/dist/src/storage/providers/sqlite/schema-tables-1.js +1 -0
  1200. package/dist/src/storage/providers/sqlite/schema-tables-1.js.map +1 -1
  1201. package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts.map +1 -1
  1202. package/dist/src/storage/providers/sqlite/schema-tables-2.js +2 -0
  1203. package/dist/src/storage/providers/sqlite/schema-tables-2.js.map +1 -1
  1204. package/dist/src/storage/providers/sqlite/schema.d.ts +3 -0
  1205. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  1206. package/dist/src/storage/providers/sqlite/schema.js +34 -1
  1207. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  1208. package/dist/src/storage/repositories/app-grant.repository.d.ts +10 -2
  1209. package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -1
  1210. package/dist/src/storage/repositories/memory.repository.d.ts +14 -0
  1211. package/dist/src/storage/repositories/memory.repository.d.ts.map +1 -1
  1212. package/dist/src/storage/repositories-impl/memory-repository.d.ts +8 -1
  1213. package/dist/src/storage/repositories-impl/memory-repository.d.ts.map +1 -1
  1214. package/dist/src/storage/repositories-impl/memory-repository.js +15 -4
  1215. package/dist/src/storage/repositories-impl/memory-repository.js.map +1 -1
  1216. package/dist/src/storage/types/agents-messaging.d.ts +19 -0
  1217. package/dist/src/storage/types/agents-messaging.d.ts.map +1 -1
  1218. package/dist/src/storage/types/agents-messaging.js.map +1 -1
  1219. package/dist/src/storage/types/auth.d.ts +9 -0
  1220. package/dist/src/storage/types/auth.d.ts.map +1 -1
  1221. package/dist/src/storage/types/commerce.d.ts +13 -0
  1222. package/dist/src/storage/types/commerce.d.ts.map +1 -1
  1223. package/dist/src/storage/types/organisms-federation.d.ts +29 -0
  1224. package/dist/src/storage/types/organisms-federation.d.ts.map +1 -1
  1225. package/dist/src/utils/app-agent-discovery.d.ts +31 -0
  1226. package/dist/src/utils/app-agent-discovery.d.ts.map +1 -0
  1227. package/dist/src/utils/app-agent-discovery.js +96 -0
  1228. package/dist/src/utils/app-agent-discovery.js.map +1 -0
  1229. package/dist/src/utils/app-badge.d.ts.map +1 -1
  1230. package/dist/src/utils/app-badge.js +7 -3
  1231. package/dist/src/utils/app-badge.js.map +1 -1
  1232. package/dist/src/utils/app-protect.d.ts.map +1 -1
  1233. package/dist/src/utils/app-protect.js +1 -0
  1234. package/dist/src/utils/app-protect.js.map +1 -1
  1235. package/dist/src/utils/env-validator.d.ts.map +1 -1
  1236. package/dist/src/utils/env-validator.js +5 -1
  1237. package/dist/src/utils/env-validator.js.map +1 -1
  1238. package/dist/src/utils/gaii.d.ts +50 -0
  1239. package/dist/src/utils/gaii.d.ts.map +1 -1
  1240. package/dist/src/utils/gaii.js +66 -0
  1241. package/dist/src/utils/gaii.js.map +1 -1
  1242. package/dist/src/utils/url-validator.d.ts.map +1 -1
  1243. package/dist/src/utils/url-validator.js +4 -1
  1244. package/dist/src/utils/url-validator.js.map +1 -1
  1245. package/dist/src/utils/version.d.ts.map +1 -1
  1246. package/dist/src/utils/version.js +1 -0
  1247. package/dist/src/utils/version.js.map +1 -1
  1248. package/dist/static/app-catalog/_template.html +6 -5
  1249. package/dist/static/app-catalog/js/cortex.js +3 -1
  1250. package/dist/static/app-catalog/js/detail.js +411 -36
  1251. package/dist/static/app-catalog/js/i18n-data.js +279 -3
  1252. package/dist/static/app-catalog/js/main.js +28 -37
  1253. package/dist/static/app-catalog/js/monetize.js +204 -16
  1254. package/dist/static/app-catalog/js/odps.js +489 -0
  1255. package/dist/static/app-catalog/js/render.js +3 -0
  1256. package/dist/static/app-catalog/js/workcopy.js +198 -0
  1257. package/dist/static/app-catalog/styles/app-catalog.css +60 -0
  1258. package/dist/static/app-catalog.html +1450 -137
  1259. package/dist/static/sdk-libs/agents/index.js +45 -7
  1260. package/dist/static/sdk-libs/auth/cluster.js +97 -0
  1261. package/dist/static/sdk-libs/auth/index.js +25 -1
  1262. package/dist/static/sdk-libs/auth/locale.js +151 -0
  1263. package/dist/static/sdk-libs/auth/modal.js +11 -2
  1264. package/dist/static/sdk-libs/auth/palette.js +172 -0
  1265. package/dist/static/sdk-libs/auth/pill.js +37 -6
  1266. package/dist/static/sdk-libs/auth/session.js +7 -3
  1267. package/dist/static/sdk-libs/auth/theme.js +61 -20
  1268. package/dist/static/sdk-libs/data/index.js +70 -8
  1269. package/dist/static/sdk-libs/dist/aimeat-agents.js +41 -8
  1270. package/dist/static/sdk-libs/dist/aimeat-auth.js +423 -22
  1271. package/dist/static/sdk-libs/dist/aimeat-data.js +50 -8
  1272. package/dist/static/sdk-libs/dist/aimeat-exchange.js +675 -0
  1273. package/dist/static/sdk-libs/dist/aimeat-game.js +1555 -0
  1274. package/dist/static/sdk-libs/dist/aimeat-live.js +54 -2
  1275. package/dist/static/sdk-libs/dist/aimeat-markdown.js +32 -1
  1276. package/dist/static/sdk-libs/dist/aimeat-webmcp.js +46 -0
  1277. package/dist/static/sdk-libs/exchange/browse.js +81 -0
  1278. package/dist/static/sdk-libs/exchange/client.js +131 -0
  1279. package/dist/static/sdk-libs/exchange/contracts.js +228 -0
  1280. package/dist/static/sdk-libs/exchange/demand.js +106 -0
  1281. package/dist/static/sdk-libs/exchange/earnings.js +39 -0
  1282. package/dist/static/sdk-libs/exchange/format.js +51 -0
  1283. package/dist/static/sdk-libs/exchange/index.js +70 -0
  1284. package/dist/static/sdk-libs/exchange/odps-completeness.js +177 -0
  1285. package/dist/static/sdk-libs/exchange/sell.js +253 -0
  1286. package/dist/static/sdk-libs/game/board.js +331 -0
  1287. package/dist/static/sdk-libs/game/dom.js +223 -0
  1288. package/dist/static/sdk-libs/game/i18n.js +201 -0
  1289. package/dist/static/sdk-libs/game/index.js +72 -0
  1290. package/dist/static/sdk-libs/game/markers.js +150 -0
  1291. package/dist/static/sdk-libs/game/menu.js +260 -0
  1292. package/dist/static/sdk-libs/game/overlay.js +193 -0
  1293. package/dist/static/sdk-libs/game/progress.js +280 -0
  1294. package/dist/static/sdk-libs/game/score.js +134 -0
  1295. package/dist/static/sdk-libs/game/screen.js +120 -0
  1296. package/dist/static/sdk-libs/game/units.js +55 -0
  1297. package/dist/static/sdk-libs/live/index.js +71 -4
  1298. package/dist/static/sdk-libs/markdown/index.js +49 -1
  1299. package/dist/static/sdk-libs/webmcp/index.js +63 -0
  1300. package/package.json +7 -2
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @file src/commerce/__tests__/x402-registry.test.ts
3
+ * @description Unit tests for the currency-aware x402 network registry (TARGET-042). These guard THE
4
+ * rule the whole EURC extension hangs on: ADVERTISE ONLY WHAT CAN SETTLE. A currency reaches a
5
+ * buyer only when the configured network has a real asset for it, so the decisive case here is the
6
+ * NEGATIVE one — a network whose entry lacks a currency must not offer that currency, and must not
7
+ * be able to build requirements for it. Also pins each shipped asset's address, decimals and
8
+ * EIP-712 domain: those four values were verified against the live contracts (by recomputing each
9
+ * DOMAIN_SEPARATOR) and against the public facilitator, and a silent edit to any of them would
10
+ * invalidate every buyer signature.
11
+ * @usage cd aimeat && pnpm exec vitest run src/commerce/__tests__/x402-registry.test.ts
12
+ * @version-history
13
+ * v1.0.0 — 2026-07-25 — Initial registry + advertising-gate tests (TARGET-042, EURC)
14
+ */
15
+ import { describe, it, expect } from 'vitest';
16
+ import { X402_NETWORKS, getX402Network, getX402Asset, x402SettlementCurrencies, buildExactRequirements, } from '../x402-facilitator.js';
17
+ import { microsToTokenRaw } from '../money.js';
18
+ /** A synthetic network that can settle dollars but NOT euros — the shape the gate must refuse. */
19
+ const USD_ONLY = {
20
+ id: 'usd-only-testnet',
21
+ assets: { USD: { address: `0x${'1'.repeat(40)}`, symbol: 'USDC', decimals: 6, extra: { name: 'USDC', version: '2' } } },
22
+ };
23
+ describe('the advertising gate: a currency with no asset is never offered', () => {
24
+ it('omits EUR from a network that has no EUR asset', () => {
25
+ expect(x402SettlementCurrencies(USD_ONLY)).toEqual(['USD']);
26
+ expect(x402SettlementCurrencies(USD_ONLY)).not.toContain('EUR');
27
+ });
28
+ it('resolves no asset for the missing pair, so nothing downstream can build requirements', () => {
29
+ expect(getX402Asset(USD_ONLY, 'EUR')).toBeUndefined();
30
+ expect(getX402Asset(USD_ONLY, 'USD')).toBeDefined();
31
+ });
32
+ it('advertises nothing at all for an unknown network (a misconfigured node promises no rail)', () => {
33
+ expect(getX402Network('no-such-network')).toBeUndefined();
34
+ expect(x402SettlementCurrencies(undefined)).toEqual([]);
35
+ expect(getX402Asset(undefined, 'USD')).toBeUndefined();
36
+ });
37
+ it('never resolves an asset for a non-money currency', () => {
38
+ expect(getX402Asset(getX402Network('base-sepolia'), 'morsel')).toBeUndefined();
39
+ expect(getX402Asset(getX402Network('base-sepolia'), 'GBP')).toBeUndefined();
40
+ });
41
+ });
42
+ describe('the shipped networks settle both money currencies', () => {
43
+ it.each(['base-sepolia', 'base'])('%s offers exactly USD and EUR', (id) => {
44
+ expect(x402SettlementCurrencies(getX402Network(id))).toEqual(['EUR', 'USD']);
45
+ });
46
+ /**
47
+ * Verified 2026-07-25 against the live contracts: addresses from Circle's documentation, then
48
+ * `name`/`version`/`decimals` read on-chain and PROVEN by recomputing each contract's own
49
+ * DOMAIN_SEPARATOR from (name, version, chainId, address). The public x402.org facilitator
50
+ * validated a real EIP-3009 signature against each, and rejected a deliberately wrong domain name
51
+ * with `invalid_exact_evm_token_name_mismatch` — so these values are load-bearing, not cosmetic.
52
+ */
53
+ it.each([
54
+ ['base-sepolia', 'USD', '0x036CbD53842c5426634e7929541eC2318f3dCF7e', 'USDC', 'USDC'],
55
+ ['base-sepolia', 'EUR', '0x808456652fdb597867f38412077A9182bf77359F', 'EURC', 'EURC'],
56
+ ['base', 'USD', '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', 'USDC', 'USD Coin'],
57
+ ['base', 'EUR', '0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42', 'EURC', 'EURC'],
58
+ ])('%s/%s pins the verified asset + EIP-712 domain', (network, currency, address, symbol, domainName) => {
59
+ const asset = getX402Asset(getX402Network(network), currency);
60
+ expect(asset.address).toBe(address);
61
+ expect(asset.symbol).toBe(symbol);
62
+ expect(asset.decimals).toBe(6);
63
+ expect(asset.extra).toEqual({ name: domainName, version: '2' });
64
+ });
65
+ it('gives every asset its own contract — no currency settles in another currency’s token', () => {
66
+ const addresses = Object.values(X402_NETWORKS).flatMap((n) => Object.values(n.assets).map((a) => a.address));
67
+ expect(new Set(addresses).size).toBe(addresses.length);
68
+ });
69
+ });
70
+ describe('buildExactRequirements carries the session currency’s own asset', () => {
71
+ const common = { payTo: `0x${'b'.repeat(40)}`, amountMicros: 1_500_000, resource: 'https://node.invalid/s/1', description: 'checkout' };
72
+ it('prices a EUR sale in EURC and a USD sale in USDC on the same network', () => {
73
+ const network = getX402Network('base-sepolia');
74
+ const eur = buildExactRequirements({ network, asset: getX402Asset(network, 'EUR'), ...common });
75
+ const usd = buildExactRequirements({ network, asset: getX402Asset(network, 'USD'), ...common });
76
+ expect(eur.asset).toBe('0x808456652fdb597867f38412077A9182bf77359F');
77
+ expect(eur.extra).toEqual({ name: 'EURC', version: '2' });
78
+ expect(usd.asset).toBe('0x036CbD53842c5426634e7929541eC2318f3dCF7e');
79
+ expect(usd.extra).toEqual({ name: 'USDC', version: '2' });
80
+ // Same network, same price, same payee — only the instrument differs (model 2).
81
+ expect(eur.network).toBe(usd.network);
82
+ expect(eur.maxAmountRequired).toBe(usd.maxAmountRequired);
83
+ expect(eur.payTo).toBe(usd.payTo);
84
+ });
85
+ it('maps 1.50 of a 6-decimal token 1:1 from micros', () => {
86
+ const network = getX402Network('base-sepolia');
87
+ const reqs = buildExactRequirements({ network, asset: getX402Asset(network, 'EUR'), ...common });
88
+ expect(reqs.maxAmountRequired).toBe('1500000'); // 1.50 EUR → 1.50 EURC
89
+ });
90
+ });
91
+ describe('micros → token atomic units honours the token’s own decimals', () => {
92
+ it('is the identity for the 6-decimal tokens actually shipped', () => {
93
+ expect(microsToTokenRaw(1_500_000, 6)).toBe('1500000');
94
+ expect(microsToTokenRaw(2000, 6)).toBe('2000'); // the sub-cent agent price survives
95
+ });
96
+ it('scales up exactly for an 18-decimal token, beyond safe-integer range', () => {
97
+ expect(microsToTokenRaw(1_500_000, 18)).toBe('1500000000000000000'); // 1.50 × 10^18
98
+ expect(Number(microsToTokenRaw(1_500_000, 18))).toBeGreaterThan(Number.MAX_SAFE_INTEGER);
99
+ });
100
+ it('rounds UP when scaling down, so the seller is never handed less than the price', () => {
101
+ expect(microsToTokenRaw(1_500_000, 2)).toBe('150'); // exact
102
+ expect(microsToTokenRaw(2000, 2)).toBe('1'); // 0.002 → 0.01, never 0
103
+ });
104
+ });
105
+ //# sourceMappingURL=x402-registry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402-registry.test.js","sourceRoot":"","sources":["../../../../src/commerce/__tests__/x402-registry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** 0x + 40 hex characters. Shape only — says nothing about whether the address means anything. */
2
+ export declare function isEvmAddressShape(value: string): boolean;
3
+ /** The EIP-55 mixed-case form: capitalisation derived from keccak-256 of the lowercase hex body. */
4
+ export declare function toChecksumAddress(value: string): string;
5
+ /**
6
+ * True when the input carries a checksum (it is mixed case) and that checksum does not match.
7
+ * All-lowercase / all-uppercase input carries no checksum, so it is not "wrong" — just unverifiable.
8
+ */
9
+ export declare function checksumIsWrong(value: string): boolean;
10
+ /** The settlement token this address IS, when it is one of ours. A payout address must never be a token. */
11
+ export declare function settlementAssetMatch(value: string): {
12
+ network: string;
13
+ currency: string;
14
+ } | null;
15
+ /**
16
+ * Ask the chain whether the address holds contract code. `true` = definitely a contract (block the
17
+ * save), `false` = an externally-owned account, `null` = could not tell, which must never block:
18
+ * an RPC outage is not a reason to stop a seller configuring their own payouts.
19
+ */
20
+ export declare function probeIsContract(rpcUrl: string, address: string): Promise<boolean | null>;
21
+ //# sourceMappingURL=evm-address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-address.d.ts","sourceRoot":"","sources":["../../../src/commerce/evm-address.ts"],"names":[],"mappings":"AAiCA,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAItD;AAED,4GAA4G;AAC5G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQhG;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAiB9F"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @file src/commerce/evm-address.ts
3
+ * @description Guards for the ONE value a seller types by hand in the whole stablecoin flow: the
4
+ * address their USDC settles to. Getting it wrong is not a validation nicety — an EIP-3009 transfer
5
+ * to the wrong target is irreversible, and the two ways to get it wrong are both easy:
6
+ *
7
+ * 1. A TYPO. 40 hex characters carry no meaning a human can proof-read. EIP-55 encodes a checksum
8
+ * in the CAPITALISATION of the hex, so a mixed-case address that fails the checksum is almost
9
+ * certainly mistyped or truncated. (An all-lowercase or all-uppercase address carries no
10
+ * checksum at all, so it is accepted and normalised rather than rejected.)
11
+ * 2. PASTING THE TOKEN CONTRACT instead of a wallet. The USDC/EURC contract addresses are the
12
+ * values a seller most plausibly has on their clipboard while setting this up — they appear in
13
+ * every x402 doc, and in our own network registry. Funds sent there are gone.
14
+ *
15
+ * The optional on-chain probe answers the remaining question — is this a contract or an account the
16
+ * seller can hold a key for — but only when the operator configured an RPC. It is best-effort by
17
+ * design: a save must not depend on a third party being reachable, so an unreachable RPC lets the
18
+ * save through while a definite "this is a contract" answer blocks it.
19
+ * @structure isEvmAddressShape · toChecksumAddress · checksumIsWrong · settlementAssetMatch ·
20
+ * probeIsContract
21
+ * @usage
22
+ * const bad = settlementAssetMatch(addr); // → { network, currency } when it is a token
23
+ * if (checksumIsWrong(addr)) return 400;
24
+ * const stored = toChecksumAddress(addr);
25
+ * @version-history
26
+ * v1.0.0 — 2026-07-25 — Initial guards after a real misconfiguration: the USDC Base-Sepolia contract
27
+ * address was saved as a payout address, and the shape-only check accepted it silently.
28
+ */
29
+ import { keccak_256 } from '@noble/hashes/sha3.js';
30
+ import { X402_NETWORKS } from './x402-facilitator.js';
31
+ import { safeFetch } from '../utils/url-validator.js';
32
+ import { logger } from '../utils/logger.js';
33
+ /** 0x + 40 hex characters. Shape only — says nothing about whether the address means anything. */
34
+ export function isEvmAddressShape(value) {
35
+ return /^0x[a-fA-F0-9]{40}$/.test(value);
36
+ }
37
+ /** The EIP-55 mixed-case form: capitalisation derived from keccak-256 of the lowercase hex body. */
38
+ export function toChecksumAddress(value) {
39
+ const body = value.slice(2).toLowerCase();
40
+ const hash = Buffer.from(keccak_256(new TextEncoder().encode(body))).toString('hex');
41
+ let out = '0x';
42
+ for (let i = 0; i < body.length; i++) {
43
+ out += parseInt(hash[i], 16) >= 8 ? body[i].toUpperCase() : body[i];
44
+ }
45
+ return out;
46
+ }
47
+ /**
48
+ * True when the input carries a checksum (it is mixed case) and that checksum does not match.
49
+ * All-lowercase / all-uppercase input carries no checksum, so it is not "wrong" — just unverifiable.
50
+ */
51
+ export function checksumIsWrong(value) {
52
+ const body = value.slice(2);
53
+ const mixedCase = body !== body.toLowerCase() && body !== body.toUpperCase();
54
+ return mixedCase && toChecksumAddress(value) !== value;
55
+ }
56
+ /** The settlement token this address IS, when it is one of ours. A payout address must never be a token. */
57
+ export function settlementAssetMatch(value) {
58
+ const needle = value.toLowerCase();
59
+ for (const [networkId, network] of Object.entries(X402_NETWORKS)) {
60
+ for (const [currency, asset] of Object.entries(network.assets)) {
61
+ if (asset && asset.address.toLowerCase() === needle)
62
+ return { network: networkId, currency };
63
+ }
64
+ }
65
+ return null;
66
+ }
67
+ /**
68
+ * Ask the chain whether the address holds contract code. `true` = definitely a contract (block the
69
+ * save), `false` = an externally-owned account, `null` = could not tell, which must never block:
70
+ * an RPC outage is not a reason to stop a seller configuring their own payouts.
71
+ */
72
+ export async function probeIsContract(rpcUrl, address) {
73
+ if (!rpcUrl)
74
+ return null;
75
+ try {
76
+ const res = await safeFetch(rpcUrl, {
77
+ method: 'POST',
78
+ headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
79
+ body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'eth_getCode', params: [address, 'latest'] }),
80
+ signal: AbortSignal.timeout(6000),
81
+ });
82
+ if (!res.ok)
83
+ return null;
84
+ const body = await res.json();
85
+ if (typeof body.result !== 'string')
86
+ return null;
87
+ return body.result !== '0x' && body.result !== '0x0';
88
+ }
89
+ catch (err) {
90
+ logger.warn('[payout] on-chain address probe unavailable; saving without it', { error: String(err) });
91
+ return null;
92
+ }
93
+ }
94
+ //# sourceMappingURL=evm-address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-address.js","sourceRoot":"","sources":["../../../src/commerce/evm-address.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { PaymentHandler } from './types.js';
2
+ /** Reverse-DNS id advertised in the /.well-known/ucp payment_handlers list. */
3
+ export declare const INVOICE_HANDLER_ID = "io.aimeat.invoice";
4
+ export declare function invoicePaymentHandler(): PaymentHandler;
5
+ //# sourceMappingURL=invoice-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice-handler.d.ts","sourceRoot":"","sources":["../../../src/commerce/invoice-handler.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,wBAAgB,qBAAqB,IAAI,cAAc,CAsBtD"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @file src/commerce/invoice-handler.ts
3
+ * @description The manual-invoice PaymentHandler: completes a MONEY checkout without any payment
4
+ * service provider by booking what the buyer owes and letting the seller collect it out of band
5
+ * (invoice, bank transfer, an existing customer agreement). Nothing is captured online, so the
6
+ * node holds no funds and needs no credentials — this is the rail for B2B selling and for anyone
7
+ * who bills separately but wants the order, the receipt and the obligation recorded here.
8
+ *
9
+ * collect mints a tracking code, payout books a PENDING payable entry, refund is a no-op because
10
+ * nothing was ever captured.
11
+ * @structure INVOICE_HANDLER_ID · invoicePaymentHandler
12
+ * @usage registerPaymentHandler(invoicePaymentHandler());
13
+ * @version-history
14
+ * v1.0.0 — 2026-07-28 — Promoted into core from the removed ee/ module (single edition).
15
+ */
16
+ import { randomUUID } from 'node:crypto';
17
+ import { bookPayable } from './payable-book.js';
18
+ import { MONEY_CURRENCIES } from './money.js';
19
+ /** Reverse-DNS id advertised in the /.well-known/ucp payment_handlers list. */
20
+ export const INVOICE_HANDLER_ID = 'io.aimeat.invoice';
21
+ export function invoicePaymentHandler() {
22
+ return {
23
+ id: INVOICE_HANDLER_ID,
24
+ title: 'Manual invoice (settle offline)',
25
+ currencies: [...MONEY_CURRENCIES],
26
+ async collect(_ctx, { reference }) {
27
+ // No external processing: the obligation is the settlement. The tracking code ties the order,
28
+ // the receipt and the payable entry together.
29
+ return { trackingCode: `inv_${reference}_${randomUUID().slice(0, 8)}` };
30
+ },
31
+ async payout(ctx, { toGhii, amount, currency, buyerGhii, trackingCode, reference }) {
32
+ await bookPayable(ctx, toGhii, trackingCode, {
33
+ amount, currency, buyerGhii, reference, method: 'invoice', status: 'pending',
34
+ });
35
+ },
36
+ async refund() {
37
+ // Nothing was captured externally, so there is nothing to reverse.
38
+ },
39
+ };
40
+ }
41
+ //# sourceMappingURL=invoice-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice-handler.js","sourceRoot":"","sources":["../../../src/commerce/invoice-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAEtD,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,iCAAiC;QACxC,UAAU,EAAE,CAAC,GAAG,gBAAgB,CAAC;QAEjC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE;YAC/B,8FAA8F;YAC9F,8CAA8C;YAC9C,OAAO,EAAE,YAAY,EAAE,OAAO,SAAS,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1E,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAChF,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE;gBAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;aAC7E,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM;YACV,mEAAmE;QACrE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -12,14 +12,16 @@
12
12
  * ROUNDING POLICY for both ledgers (fee always ceils, cut always floors) — they operate on one
13
13
  * integer amount of either unit at a time, which is policy sharing, not unit mixing.
14
14
  * @structure MONEY_SCALE · MONEY_UNIT · MONEY_CURRENCIES · isMoneyCurrency ·
15
- * isSupportedMoneyCurrency · microsToStripeMinor · stripeMinorToMicros · microsToUsdcRaw ·
16
- * usdcRawToMicros · integerMicros · percentFee · percentCut · roundToMoneyScale ·
17
- * formatMoneyMajor
15
+ * isSupportedMoneyCurrency · microsToStripeMinor · stripeMinorToMicros · microsToTokenRaw ·
16
+ * microsToUsdcRaw · usdcRawToMicros · integerMicros · percentFee · percentCut ·
17
+ * roundToMoneyScale · formatMoneyMajor
18
18
  * @usage
19
19
  * import { isMoneyCurrency, microsToStripeMinor, percentFee } from './money.js';
20
20
  * if (isMoneyCurrency(session.currency)) stripeAmount = microsToStripeMinor(micros); // → cents
21
21
  * const fee = percentFee(gross, commerceFeePercent(config));
22
22
  * @version-history
23
+ * v1.2.0 — 2026-07-25 — microsToTokenRaw: decimals-aware micros → token atomic units, so a second
24
+ * settlement asset (EURC) crosses the chokepoint on its own precision (TARGET-042)
23
25
  * v1.1.0 — 2026-07-14 — Chokepoint completion: currency allowlist, Stripe-minor + USDC-raw
24
26
  * round-trips, percent fee/cut rounding policy, major-unit scale rounding (TARGET-033 phase 7c)
25
27
  * v1.0.0 — 2026-07-14 — Initial 6-decimal micro-unit money representation (TARGET-033 phase 7b)
@@ -45,8 +47,19 @@ export declare function microsToStripeMinor(micros: number): number;
45
47
  /** Convert a Stripe minor-unit (cent) amount back to micro-units. Exact for integer cents. */
46
48
  export declare function stripeMinorToMicros(minor: number): number;
47
49
  /**
48
- * Convert micro-units to USDC raw units (the x402 stablecoin rail). USDC also carries 6 decimals,
49
- * so the conversion is the identity on integers the function exists so the settlement rail still
50
+ * Convert micro-units to a settlement token's ATOMIC units, honouring that token's own decimals
51
+ * (the x402 stablecoin rail). Returns a decimal STRING because an 18-decimal token overflows the
52
+ * safe-integer range — x402 carries `maxAmountRequired` as a string for exactly this reason.
53
+ *
54
+ * Every asset AIMEAT settles today (USDC and EURC, on both Base networks) carries 6 decimals, so
55
+ * this is the identity in practice; the branches exist so a token with a different precision is
56
+ * CONVERTED rather than mispriced by orders of magnitude. Scaling DOWN (a sub-6-decimal token)
57
+ * rounds up, the only direction that never hands the seller less than the price.
58
+ */
59
+ export declare function microsToTokenRaw(micros: number, decimals: number): string;
60
+ /**
61
+ * Convert micro-units to USDC raw units (the 6-decimal special case of {@link microsToTokenRaw}).
62
+ * The conversion is the identity on integers — the function exists so the settlement rail still
50
63
  * crosses the chokepoint (and keeps working if MONEY_SCALE ever diverges from the rail's).
51
64
  */
52
65
  export declare function microsToUsdcRaw(micros: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../../../src/commerce/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,0DAA0D;AAC1D,eAAO,MAAM,UAAU,UAAY,CAAC;AAEpC,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,yBAA0B,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,oGAAoG;AACpG,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAE5E;AAKD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIvD"}
1
+ {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../../../src/commerce/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,0DAA0D;AAC1D,eAAO,MAAM,UAAU,UAAY,CAAC;AAEpC,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,yBAA0B,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,oGAAoG;AACpG,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAE5E;AAKD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIvD"}
@@ -12,14 +12,16 @@
12
12
  * ROUNDING POLICY for both ledgers (fee always ceils, cut always floors) — they operate on one
13
13
  * integer amount of either unit at a time, which is policy sharing, not unit mixing.
14
14
  * @structure MONEY_SCALE · MONEY_UNIT · MONEY_CURRENCIES · isMoneyCurrency ·
15
- * isSupportedMoneyCurrency · microsToStripeMinor · stripeMinorToMicros · microsToUsdcRaw ·
16
- * usdcRawToMicros · integerMicros · percentFee · percentCut · roundToMoneyScale ·
17
- * formatMoneyMajor
15
+ * isSupportedMoneyCurrency · microsToStripeMinor · stripeMinorToMicros · microsToTokenRaw ·
16
+ * microsToUsdcRaw · usdcRawToMicros · integerMicros · percentFee · percentCut ·
17
+ * roundToMoneyScale · formatMoneyMajor
18
18
  * @usage
19
19
  * import { isMoneyCurrency, microsToStripeMinor, percentFee } from './money.js';
20
20
  * if (isMoneyCurrency(session.currency)) stripeAmount = microsToStripeMinor(micros); // → cents
21
21
  * const fee = percentFee(gross, commerceFeePercent(config));
22
22
  * @version-history
23
+ * v1.2.0 — 2026-07-25 — microsToTokenRaw: decimals-aware micros → token atomic units, so a second
24
+ * settlement asset (EURC) crosses the chokepoint on its own precision (TARGET-042)
23
25
  * v1.1.0 — 2026-07-14 — Chokepoint completion: currency allowlist, Stripe-minor + USDC-raw
24
26
  * round-trips, percent fee/cut rounding policy, major-unit scale rounding (TARGET-033 phase 7c)
25
27
  * v1.0.0 — 2026-07-14 — Initial 6-decimal micro-unit money representation (TARGET-033 phase 7b)
@@ -54,12 +56,31 @@ export function stripeMinorToMicros(minor) {
54
56
  return minor * MICROS_PER_STRIPE_MINOR;
55
57
  }
56
58
  /**
57
- * Convert micro-units to USDC raw units (the x402 stablecoin rail). USDC also carries 6 decimals,
58
- * so the conversion is the identity on integers the function exists so the settlement rail still
59
+ * Convert micro-units to a settlement token's ATOMIC units, honouring that token's own decimals
60
+ * (the x402 stablecoin rail). Returns a decimal STRING because an 18-decimal token overflows the
61
+ * safe-integer range — x402 carries `maxAmountRequired` as a string for exactly this reason.
62
+ *
63
+ * Every asset AIMEAT settles today (USDC and EURC, on both Base networks) carries 6 decimals, so
64
+ * this is the identity in practice; the branches exist so a token with a different precision is
65
+ * CONVERTED rather than mispriced by orders of magnitude. Scaling DOWN (a sub-6-decimal token)
66
+ * rounds up, the only direction that never hands the seller less than the price.
67
+ */
68
+ export function microsToTokenRaw(micros, decimals) {
69
+ const amount = BigInt(Math.trunc(micros));
70
+ if (decimals === MONEY_SCALE)
71
+ return amount.toString();
72
+ if (decimals > MONEY_SCALE)
73
+ return (amount * 10n ** BigInt(decimals - MONEY_SCALE)).toString();
74
+ const divisor = 10n ** BigInt(MONEY_SCALE - decimals);
75
+ return ((amount + divisor - 1n) / divisor).toString(); // ceil — never under-charge the buyer
76
+ }
77
+ /**
78
+ * Convert micro-units to USDC raw units (the 6-decimal special case of {@link microsToTokenRaw}).
79
+ * The conversion is the identity on integers — the function exists so the settlement rail still
59
80
  * crosses the chokepoint (and keeps working if MONEY_SCALE ever diverges from the rail's).
60
81
  */
61
82
  export function microsToUsdcRaw(micros) {
62
- return Math.trunc(micros);
83
+ return Number(microsToTokenRaw(micros, MONEY_SCALE));
63
84
  }
64
85
  /** Convert USDC raw units (6 decimals) back to micro-units. Identity on integers. */
65
86
  export function usdcRawToMicros(raw) {
@@ -1 +1 @@
1
- {"version":3,"file":"money.js","sourceRoot":"","sources":["../../../src/commerce/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,0DAA0D;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AAEpC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AAGxD,yFAAyF;AACzF,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,QAAQ,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAQ,gBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,+FAA+F;AAC/F,MAAM,uBAAuB,GAAG,UAAU,GAAG,GAAG,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,uBAAuB,CAAC,CAAC;AACtD,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,KAAK,GAAG,uBAAuB,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,OAAe;IACxD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,OAAe;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,sDAAsD;IACtD,OAAO,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"money.js","sourceRoot":"","sources":["../../../src/commerce/money.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @file src/commerce/payable-book.ts
3
+ * @description The seller's payable book: one memory record per settled money sale
4
+ * (`commerce.payable.{trackingCode}` under the seller's GHII) listing what they are owed or have
5
+ * received and on which rail. AIMEAT never holds the money — this is bookkeeping the receipt and
6
+ * the Wallet tab read, shared by every money handler so one sale is booked one way.
7
+ * @structure PayableEntry · bookPayable · listPayables
8
+ * @usage await bookPayable(ctx, sellerGhii, trackingCode, { amount, currency, method: 'stripe', status: 'settled' });
9
+ * @version-history
10
+ * v1.0.0 — 2026-07-28 — Extracted into core when the ee/ module was removed; both money handlers
11
+ * (Stripe, invoice) and the Wallet tab now read one shape.
12
+ */
13
+ import type { Storage } from '../storage/interface.js';
14
+ import type { PaymentContext } from './types.js';
15
+ /** One line in a seller's payable book. `settled` = the money already reached them. */
16
+ export interface PayableEntry {
17
+ amount: number;
18
+ currency: string;
19
+ reference?: string;
20
+ buyerGhii?: string;
21
+ method: string;
22
+ status: 'settled' | 'pending';
23
+ at: string;
24
+ }
25
+ /** Append one entry to the seller's payable book, creating the record on first use. */
26
+ export declare function bookPayable(ctx: PaymentContext, toGhii: string, trackingCode: string, entry: Omit<PayableEntry, 'at'>): Promise<void>;
27
+ /** Every payable entry booked for a seller, newest record first. */
28
+ export declare function listPayables(storage: Storage, sellerGhii: string, limit?: number): Promise<Array<PayableEntry & {
29
+ trackingCode: string;
30
+ }>>;
31
+ //# sourceMappingURL=payable-book.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payable-book.d.ts","sourceRoot":"","sources":["../../../src/commerce/payable-book.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;CACZ;AAID,uFAAuF;AACvF,wBAAsB,WAAW,CAC/B,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GACzF,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,oEAAoE;AACpE,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,SAAM,GAChD,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CASzD"}
@@ -0,0 +1,27 @@
1
+ const payableKey = (trackingCode) => `commerce.payable.${trackingCode}`;
2
+ /** Append one entry to the seller's payable book, creating the record on first use. */
3
+ export async function bookPayable(ctx, toGhii, trackingCode, entry) {
4
+ const key = payableKey(trackingCode);
5
+ const existing = await ctx.storage.getMemory(toGhii, key);
6
+ const value = existing?.value ?? {};
7
+ const items = Array.isArray(value.items) ? value.items : [];
8
+ items.push({ ...entry, at: new Date().toISOString() });
9
+ const now = new Date().toISOString();
10
+ await ctx.storage.setMemory({
11
+ key, ownerGaii: toGhii, value: { ...value, items }, visibility: 'owner', tags: ['commerce'],
12
+ ttlHours: null, version: (existing?.version ?? 0) + 1, createdAt: existing?.createdAt ?? now, updatedAt: now,
13
+ });
14
+ }
15
+ /** Every payable entry booked for a seller, newest record first. */
16
+ export async function listPayables(storage, sellerGhii, limit = 200) {
17
+ const { items } = await storage.listAllMemory({ prefix: 'commerce.payable.', ownerPrefix: sellerGhii, limit });
18
+ const out = [];
19
+ for (const rec of items) {
20
+ const trackingCode = rec.key.slice('commerce.payable.'.length);
21
+ const entries = rec.value?.items ?? [];
22
+ for (const e of entries)
23
+ out.push({ ...e, trackingCode });
24
+ }
25
+ return out.sort((a, b) => (b.at ?? '').localeCompare(a.at ?? ''));
26
+ }
27
+ //# sourceMappingURL=payable-book.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payable-book.js","sourceRoot":"","sources":["../../../src/commerce/payable-book.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,GAAG,CAAC,YAAoB,EAAU,EAAE,CAAC,oBAAoB,YAAY,EAAE,CAAC;AAExF,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAmB,EAAE,MAAc,EAAE,YAAoB,EAAE,KAA+B;IAE1F,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAI,QAAQ,EAAE,KAA2C,IAAI,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC;QAC3F,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,EAAE,GAAG;KAC7G,CAAC,CAAC;AACL,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAgB,EAAE,UAAkB,EAAE,KAAK,GAAG,GAAG;IAEjD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/G,MAAM,GAAG,GAAmD,EAAE,CAAC;IAC/D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAI,GAAG,CAAC,KAAgD,EAAE,KAAK,IAAI,EAAE,CAAC;QACnF,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"payment-handlers.d.ts","sourceRoot":"","sources":["../../../src/commerce/payment-handlers.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,YAAY,CAAC;AAIjE,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAExE;AAED,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,2EAA2E;AAC3E,qBAAa,YAAa,SAAQ,KAAK;IAClB,IAAI,EAAE,MAAM;IAAS,UAAU,EAAE,MAAM;gBAAvC,IAAI,EAAE,MAAM,EAAS,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG5E;AAED,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAwCrD"}
1
+ {"version":3,"file":"payment-handlers.d.ts","sourceRoot":"","sources":["../../../src/commerce/payment-handlers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,YAAY,CAAC;AAKjE,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAExE;AAED,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,2EAA2E;AAC3E,qBAAa,YAAa,SAAQ,KAAK;IAClB,IAAI,EAAE,MAAM;IAAS,UAAU,EAAE,MAAM;gBAAvC,IAAI,EAAE,MAAM,EAAS,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG5E;AAED,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAwCrD"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * @file src/commerce/payment-handlers.ts
3
3
  * @description Payment-handler registry for the commerce core (TARGET-033) + the built-in morsel
4
- * handler. Core registers `io.aimeat.morsels` at mount; the EE module's handlers (real money)
5
- * arrive through `EnterpriseProvider.getPaymentHandlers()` and land in the same registry, so the
6
- * checkout flow and the /.well-known/ucp profile treat every payment method uniformly. Handlers
4
+ * handler. Core registers every handler at mount: `io.aimeat.morsels` (this node's ledger),
5
+ * `com.stripe.spt` (cards on the SELLER's own account), `io.aimeat.invoice` (settled offline) and,
6
+ * when enabled, `com.coinbase.x402` (stablecoin). One registry, so the checkout flow and the
7
+ * /.well-known/ucp profile treat every payment method uniformly. Handlers
7
8
  * implement collect / payout / refund — the session service orchestrates the legs (including
8
9
  * commission splits and the operator-or-burn fee leg).
9
10
  * @structure registerPaymentHandler · getPaymentHandler · listPaymentHandlers ·
@@ -16,6 +17,7 @@
16
17
  * v1.0.0 — 2026-07-13 — Initial registry + morsel handler (TARGET-033 phase 1)
17
18
  */
18
19
  import { randomBytes, randomUUID } from 'node:crypto';
20
+ import { logger } from '../utils/logger.js';
19
21
  const registry = new Map();
20
22
  export function registerPaymentHandler(handler) {
21
23
  registry.set(handler.id, handler);
@@ -82,7 +84,9 @@ export function morselPaymentHandler() {
82
84
  trackingCode, timestamp: new Date().toISOString(),
83
85
  });
84
86
  }
85
- catch { /* refund must never throw — the caller already carries the primary error */ }
87
+ catch (err) {
88
+ logger.warn('refund: refund must never throw — the caller already carries the primary error', { error: String(err) });
89
+ }
86
90
  },
87
91
  };
88
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"payment-handlers.js","sourceRoot":"","sources":["../../../src/commerce/payment-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment-handlers.js","sourceRoot":"","sources":["../../../src/commerce/payment-handlers.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,9 @@
2
2
  * @file src/commerce/sellable-resolvers.ts
3
3
  * @description Sellable-resolver registry (TARGET-033 phase 4): pluggable sources of "things for
4
4
  * sale" the checkout core can price and fulfill. Core registers the `offer` resolver (agent
5
- * offers, the phase-1 behavior); the EE module registers `org-offering` (company catalogs with
6
- * commission splits) via `EnterpriseProvider.getSellableResolvers()`. A resolver returns a
7
- * Sellable optionally with a custom `distribute` callback that replaces the default
8
- * seller payout (e.g. member cut + org-wallet cut).
5
+ * offers), `app-tool` (priced tools on a published app) and `ext-call` (priced raw extension
6
+ * calls). A resolver returns a Sellable — optionally with a custom `distribute` callback that
7
+ * replaces the default single-seller payout when a sale has to be split several ways.
9
8
  * @structure SellableResolver · registerSellableResolver · getSellableResolver ·
10
9
  * resetSellableResolvers · offerSellableResolver (core 'offer' kind) ·
11
10
  * appToolSellableResolver (core 'app-tool' kind, TARGET-034 phase A) ·
@@ -15,6 +14,9 @@
15
14
  * registerSellableResolver(appToolSellableResolver());
16
15
  * const sellable = await getSellableResolver(ref.kind).resolve(storage, config, ref, buyerOwner);
17
16
  * @version-history
17
+ * v1.3.0 — 2026-07-27 — app-tool: fulfillment carries the internal pass (the checkout IS the payment,
18
+ * so the raw paywall must not charge it again — or refuse it outright), and a buyer the provider has
19
+ * GRANTED resolves at price 0 like a self-purchase.
18
20
  * v1.2.0 — 2026-07-14 — Task path (phase B): tools without an action_id binding fulfill as an
19
21
  * agent TASK (manifest `agent`, else the owner GHII) instead of being rejected
20
22
  * v1.1.0 — 2026-07-14 — app-tool resolver: priced tool calls on agent-faced apps, manifest at
@@ -33,8 +35,6 @@ export interface SellableRef {
33
35
  offer_id?: string;
34
36
  /** app-tool alias for offer_id: the tool name from the app's manifest. */
35
37
  tool?: string;
36
- /** org-offering: "creatorOwner/slug" — resolved by the EE resolver. */
37
- org?: string;
38
38
  /** app-tool: "ownerName/appId" — locates the apps.{appId}.tools manifest. */
39
39
  app?: string;
40
40
  /** app-tool: the buyer's tool input, forwarded to the capability invoke at fulfillment. */
@@ -1 +1 @@
1
- {"version":3,"file":"sellable-resolvers.d.ts","sourceRoot":"","sources":["../../../src/commerce/sellable-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1G;AAID,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAEzE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE9E;AAED,sDAAsD;AACtD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAqDxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,IAAI,gBAAgB,CA+E1D;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,gBAAgB,CA4C1D"}
1
+ {"version":3,"file":"sellable-resolvers.d.ts","sourceRoot":"","sources":["../../../src/commerce/sellable-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1G;AAID,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAEzE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE9E;AAED,sDAAsD;AACtD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAqDxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,IAAI,gBAAgB,CAkG1D;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,gBAAgB,CA4C1D"}