aimeat 2.0.0 → 2.2.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 (722) hide show
  1. package/dist/.env.example +9 -4
  2. package/dist/locales/en.json +63 -1
  3. package/dist/locales/fi.json +63 -1
  4. package/dist/public/components/LinkPreview.js +101 -0
  5. package/dist/public/components/NotificationBell.js +18 -1
  6. package/dist/public/cortex-bundled/aimeat-charts.js +158 -10
  7. package/dist/public/cortex-bundled/aimeat-charts.yaml +1 -1
  8. package/dist/public/cortex-bundled/aimeat-dag.js +515 -173
  9. package/dist/public/cortex-bundled/aimeat-dag.yaml +1 -1
  10. package/dist/public/cortex-bundled/aimeat-i18n.js +6 -1
  11. package/dist/public/cortex-bundled/aimeat-i18n.yaml +1 -1
  12. package/dist/public/cortex-bundled/aimeat-surface.js +577 -0
  13. package/dist/public/cortex-bundled/aimeat-surface.yaml +107 -0
  14. package/dist/public/cortex-bundled/aimeat-viewport.js +405 -0
  15. package/dist/public/cortex-bundled/aimeat-viewport.yaml +100 -0
  16. package/dist/public/css/theme.css +57 -7
  17. package/dist/public/css/views/admin.css +8 -1
  18. package/dist/public/css/views/app-grant.css +18 -0
  19. package/dist/public/css/views/inbox.css +47 -1
  20. package/dist/public/css/views/portfolio.css +46 -0
  21. package/dist/public/css/views/profile.css +38 -4
  22. package/dist/public/js/services/apps.js +19 -3
  23. package/dist/public/js/services/messages-ai-prompts.js +38 -0
  24. package/dist/public/js/services/messages.js +26 -4
  25. package/dist/public/js/services/notebook.js +76 -0
  26. package/dist/public/js/services/unfurl.js +43 -0
  27. package/dist/public/lib/VENDORED.md +6 -3
  28. package/dist/public/lib/aimeat-daisyui-bridge.css +39 -2
  29. package/dist/public/lib/aimeat-theme.css +538 -0
  30. package/dist/public/lib/fonts/LICENSE.md +11 -4
  31. package/dist/public/lib/fonts/fraunces-var-latin-ext.woff2 +0 -0
  32. package/dist/public/lib/fonts/fraunces-var-latin.woff2 +0 -0
  33. package/dist/public/lib/fonts/inter-var-latin-ext.woff2 +0 -0
  34. package/dist/public/lib/fonts/inter-var-latin.woff2 +0 -0
  35. package/dist/public/lib/fonts/jetbrains-mono-var-latin-ext.woff2 +0 -0
  36. package/dist/public/lib/fonts/jetbrains-mono-var-latin.woff2 +0 -0
  37. package/dist/public/lib/fonts/space-grotesk-var-latin-ext.woff2 +0 -0
  38. package/dist/public/lib/fonts/space-grotesk-var-latin.woff2 +0 -0
  39. package/dist/public/lib/samples/LICENSE.md +11 -0
  40. package/dist/public/lib/samples/bass/A1.mp3 +0 -0
  41. package/dist/public/lib/samples/bass/B2.mp3 +0 -0
  42. package/dist/public/lib/samples/bass/D2.mp3 +0 -0
  43. package/dist/public/lib/samples/bass/E1.mp3 +0 -0
  44. package/dist/public/lib/samples/bass/E3.mp3 +0 -0
  45. package/dist/public/lib/samples/bass/G2.mp3 +0 -0
  46. package/dist/public/lib/samples/epiano/C2.mp3 +0 -0
  47. package/dist/public/lib/samples/epiano/C3.mp3 +0 -0
  48. package/dist/public/lib/samples/epiano/C4.mp3 +0 -0
  49. package/dist/public/lib/samples/epiano/C5.mp3 +0 -0
  50. package/dist/public/lib/samples/epiano/C6.mp3 +0 -0
  51. package/dist/public/lib/samples/epiano/G2.mp3 +0 -0
  52. package/dist/public/lib/samples/epiano/G3.mp3 +0 -0
  53. package/dist/public/lib/samples/epiano/G4.mp3 +0 -0
  54. package/dist/public/lib/samples/epiano/G5.mp3 +0 -0
  55. package/dist/public/lib/samples/guitar-steel/A2.mp3 +0 -0
  56. package/dist/public/lib/samples/guitar-steel/A4.mp3 +0 -0
  57. package/dist/public/lib/samples/guitar-steel/B3.mp3 +0 -0
  58. package/dist/public/lib/samples/guitar-steel/D3.mp3 +0 -0
  59. package/dist/public/lib/samples/guitar-steel/E2.mp3 +0 -0
  60. package/dist/public/lib/samples/guitar-steel/E4.mp3 +0 -0
  61. package/dist/public/lib/samples/guitar-steel/E5.mp3 +0 -0
  62. package/dist/public/lib/samples/guitar-steel/G3.mp3 +0 -0
  63. package/dist/public/lib/samples/organ/C2.mp3 +0 -0
  64. package/dist/public/lib/samples/organ/C3.mp3 +0 -0
  65. package/dist/public/lib/samples/organ/C4.mp3 +0 -0
  66. package/dist/public/lib/samples/organ/C5.mp3 +0 -0
  67. package/dist/public/lib/samples/organ/C6.mp3 +0 -0
  68. package/dist/public/lib/samples/organ/G2.mp3 +0 -0
  69. package/dist/public/lib/samples/organ/G3.mp3 +0 -0
  70. package/dist/public/lib/samples/organ/G4.mp3 +0 -0
  71. package/dist/public/lib/samples/organ/G5.mp3 +0 -0
  72. package/dist/public/lib/samples/strings/C2.mp3 +0 -0
  73. package/dist/public/lib/samples/strings/C3.mp3 +0 -0
  74. package/dist/public/lib/samples/strings/C4.mp3 +0 -0
  75. package/dist/public/lib/samples/strings/C5.mp3 +0 -0
  76. package/dist/public/lib/samples/strings/C6.mp3 +0 -0
  77. package/dist/public/lib/samples/strings/G2.mp3 +0 -0
  78. package/dist/public/lib/samples/strings/G3.mp3 +0 -0
  79. package/dist/public/lib/samples/strings/G4.mp3 +0 -0
  80. package/dist/public/lib/samples/strings/G5.mp3 +0 -0
  81. package/dist/public/lib/samples/theme-check.html +92 -0
  82. package/dist/public/lib/samples/themes-boot.js +20 -0
  83. package/dist/public/lib/samples/themes.html +154 -0
  84. package/dist/public/lib/samples/themes.js +60 -0
  85. package/dist/public/lib/samples/trumpet/A3.mp3 +0 -0
  86. package/dist/public/lib/samples/trumpet/A4.mp3 +0 -0
  87. package/dist/public/lib/samples/trumpet/A5.mp3 +0 -0
  88. package/dist/public/lib/samples/trumpet/C4.mp3 +0 -0
  89. package/dist/public/lib/samples/trumpet/C5.mp3 +0 -0
  90. package/dist/public/lib/samples/trumpet/E3.mp3 +0 -0
  91. package/dist/public/lib/samples/trumpet/E4.mp3 +0 -0
  92. package/dist/public/lib/samples/trumpet/E5.mp3 +0 -0
  93. package/dist/public/spa.html +2 -0
  94. package/dist/public/views/app-grant.js +24 -4
  95. package/dist/public/views/portfolio.js +61 -6
  96. package/dist/public/views/profile/access-tab/connected-apps.js +81 -5
  97. package/dist/public/views/profile/apps-tab.js +18 -1
  98. package/dist/public/views/profile/extensions-tab.maturity.js +4 -1
  99. package/dist/public/views/profile/inbox-tab/ai-actions.js +86 -0
  100. package/dist/public/views/profile/inbox-tab/components.js +141 -10
  101. package/dist/public/views/profile/inbox-tab/helpers.js +26 -0
  102. package/dist/public/views/profile/inbox-tab/panels.js +18 -3
  103. package/dist/public/views/profile/inbox-tab/use-thread-ux.js +47 -3
  104. package/dist/public/views/profile/inbox-tab.js +46 -49
  105. package/dist/public/views/profile/landing-page.cards.js +7 -0
  106. package/dist/public/views/profile/landing-page.js +12 -1
  107. package/dist/public/views/profile/libraries-tab.js +10 -2
  108. package/dist/public/views/profile/skills-tab.js +1 -1
  109. package/dist/public/views/profile/wallet-tab.js +64 -0
  110. package/dist/public/views/public-workspace-viewer.js +1 -1
  111. package/dist/public/views/start.js +2 -1
  112. package/dist/scripts/build-sdk-libs.d.ts +16 -0
  113. package/dist/scripts/build-sdk-libs.d.ts.map +1 -0
  114. package/dist/scripts/build-sdk-libs.js +112 -0
  115. package/dist/scripts/build-sdk-libs.js.map +1 -0
  116. package/dist/scripts/check-openapi.d.ts +2 -0
  117. package/dist/scripts/check-openapi.d.ts.map +1 -0
  118. package/dist/scripts/check-openapi.js +139 -0
  119. package/dist/scripts/check-openapi.js.map +1 -0
  120. package/dist/scripts/embed-viewport.d.ts +23 -0
  121. package/dist/scripts/embed-viewport.d.ts.map +1 -0
  122. package/dist/scripts/embed-viewport.js +116 -0
  123. package/dist/scripts/embed-viewport.js.map +1 -0
  124. package/dist/src/auth/sse-domain-scopes.d.ts +50 -0
  125. package/dist/src/auth/sse-domain-scopes.d.ts.map +1 -0
  126. package/dist/src/auth/sse-domain-scopes.js +111 -0
  127. package/dist/src/auth/sse-domain-scopes.js.map +1 -0
  128. package/dist/src/cli/connect/auth.d.ts +15 -0
  129. package/dist/src/cli/connect/auth.d.ts.map +1 -1
  130. package/dist/src/cli/connect/auth.js +25 -6
  131. package/dist/src/cli/connect/auth.js.map +1 -1
  132. package/dist/src/cli/connect/keychain.d.ts +9 -0
  133. package/dist/src/cli/connect/keychain.d.ts.map +1 -1
  134. package/dist/src/cli/connect/keychain.js +21 -8
  135. package/dist/src/cli/connect/keychain.js.map +1 -1
  136. package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts.map +1 -1
  137. package/dist/src/cli/connect/mcp/tools/agent-tasks.js +4 -1
  138. package/dist/src/cli/connect/mcp/tools/agent-tasks.js.map +1 -1
  139. package/dist/src/cli/connect/mcp/tools/core.d.ts.map +1 -1
  140. package/dist/src/cli/connect/mcp/tools/core.js +14 -3
  141. package/dist/src/cli/connect/mcp/tools/core.js.map +1 -1
  142. package/dist/src/cli/connect/mcp/tools/exchange.d.ts +18 -0
  143. package/dist/src/cli/connect/mcp/tools/exchange.d.ts.map +1 -0
  144. package/dist/src/cli/connect/mcp/tools/exchange.js +170 -0
  145. package/dist/src/cli/connect/mcp/tools/exchange.js.map +1 -0
  146. package/dist/src/cli/connect/mcp/tools/index.d.ts.map +1 -1
  147. package/dist/src/cli/connect/mcp/tools/index.js +2 -0
  148. package/dist/src/cli/connect/mcp/tools/index.js.map +1 -1
  149. package/dist/src/cli/connect/mcp/tools/workspaces.d.ts +3 -0
  150. package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
  151. package/dist/src/cli/connect/mcp/tools/workspaces.js +4 -2
  152. package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
  153. package/dist/src/cli/connect/tool-call-defs-core.d.ts.map +1 -1
  154. package/dist/src/cli/connect/tool-call-defs-core.js +13 -1
  155. package/dist/src/cli/connect/tool-call-defs-core.js.map +1 -1
  156. package/dist/src/cli/connect/tool-call-defs-exchange.d.ts +3 -0
  157. package/dist/src/cli/connect/tool-call-defs-exchange.d.ts.map +1 -0
  158. package/dist/src/cli/connect/tool-call-defs-exchange.js +146 -0
  159. package/dist/src/cli/connect/tool-call-defs-exchange.js.map +1 -0
  160. package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
  161. package/dist/src/cli/connect/tool-call.js +2 -0
  162. package/dist/src/cli/connect/tool-call.js.map +1 -1
  163. package/dist/src/commerce/__tests__/x402-registry.test.d.ts +2 -0
  164. package/dist/src/commerce/__tests__/x402-registry.test.d.ts.map +1 -0
  165. package/dist/src/commerce/__tests__/x402-registry.test.js +105 -0
  166. package/dist/src/commerce/__tests__/x402-registry.test.js.map +1 -0
  167. package/dist/src/commerce/evm-address.d.ts +21 -0
  168. package/dist/src/commerce/evm-address.d.ts.map +1 -0
  169. package/dist/src/commerce/evm-address.js +94 -0
  170. package/dist/src/commerce/evm-address.js.map +1 -0
  171. package/dist/src/commerce/money.d.ts +18 -5
  172. package/dist/src/commerce/money.d.ts.map +1 -1
  173. package/dist/src/commerce/money.js +27 -6
  174. package/dist/src/commerce/money.js.map +1 -1
  175. package/dist/src/commerce/session-service.d.ts +14 -0
  176. package/dist/src/commerce/session-service.d.ts.map +1 -1
  177. package/dist/src/commerce/session-service.js +1 -1
  178. package/dist/src/commerce/session-service.js.map +1 -1
  179. package/dist/src/commerce/x402-facilitator.d.ts +64 -13
  180. package/dist/src/commerce/x402-facilitator.d.ts.map +1 -1
  181. package/dist/src/commerce/x402-facilitator.js +71 -19
  182. package/dist/src/commerce/x402-facilitator.js.map +1 -1
  183. package/dist/src/commerce/x402-handler.d.ts +13 -7
  184. package/dist/src/commerce/x402-handler.d.ts.map +1 -1
  185. package/dist/src/commerce/x402-handler.js +23 -10
  186. package/dist/src/commerce/x402-handler.js.map +1 -1
  187. package/dist/src/commerce/x402.d.ts +11 -6
  188. package/dist/src/commerce/x402.d.ts.map +1 -1
  189. package/dist/src/commerce/x402.js +10 -7
  190. package/dist/src/commerce/x402.js.map +1 -1
  191. package/dist/src/config-types.d.ts +12 -0
  192. package/dist/src/config-types.d.ts.map +1 -1
  193. package/dist/src/config.d.ts.map +1 -1
  194. package/dist/src/config.js +8 -0
  195. package/dist/src/config.js.map +1 -1
  196. package/dist/src/data/app-templates/shells.d.ts +15 -3
  197. package/dist/src/data/app-templates/shells.d.ts.map +1 -1
  198. package/dist/src/data/app-templates/shells.js +97 -12
  199. package/dist/src/data/app-templates/shells.js.map +1 -1
  200. package/dist/src/data/app-templates.js +2 -2
  201. package/dist/src/data/app-templates.js.map +1 -1
  202. package/dist/src/data/appdev-pitfalls.d.ts +2 -0
  203. package/dist/src/data/appdev-pitfalls.d.ts.map +1 -1
  204. package/dist/src/data/appdev-pitfalls.js +24 -1
  205. package/dist/src/data/appdev-pitfalls.js.map +1 -1
  206. package/dist/src/data/library-packs/cortex.d.ts.map +1 -1
  207. package/dist/src/data/library-packs/cortex.js +108 -5
  208. package/dist/src/data/library-packs/cortex.js.map +1 -1
  209. package/dist/src/data/library-packs/sdk.d.ts.map +1 -1
  210. package/dist/src/data/library-packs/sdk.js +32 -8
  211. package/dist/src/data/library-packs/sdk.js.map +1 -1
  212. package/dist/src/data/library-packs/vendored.d.ts.map +1 -1
  213. package/dist/src/data/library-packs/vendored.js +83 -6
  214. package/dist/src/data/library-packs/vendored.js.map +1 -1
  215. package/dist/src/generated/api-types.d.ts +2039 -24
  216. package/dist/src/generated/api-types.d.ts.map +1 -1
  217. package/dist/src/mcp/agent-tasks.d.ts +4 -0
  218. package/dist/src/mcp/agent-tasks.d.ts.map +1 -1
  219. package/dist/src/mcp/agent-tasks.js +20 -2
  220. package/dist/src/mcp/agent-tasks.js.map +1 -1
  221. package/dist/src/mcp/annotations.d.ts.map +1 -1
  222. package/dist/src/mcp/annotations.js +20 -0
  223. package/dist/src/mcp/annotations.js.map +1 -1
  224. package/dist/src/mcp/apps.d.ts.map +1 -1
  225. package/dist/src/mcp/apps.js +8 -4
  226. package/dist/src/mcp/apps.js.map +1 -1
  227. package/dist/src/mcp/capabilities.d.ts +7 -1
  228. package/dist/src/mcp/capabilities.d.ts.map +1 -1
  229. package/dist/src/mcp/capabilities.js +5 -2
  230. package/dist/src/mcp/capabilities.js.map +1 -1
  231. package/dist/src/mcp/catalog/definitions/commerce.d.ts.map +1 -1
  232. package/dist/src/mcp/catalog/definitions/commerce.js +4 -2
  233. package/dist/src/mcp/catalog/definitions/commerce.js.map +1 -1
  234. package/dist/src/mcp/catalog/definitions/discovery-work-boards.d.ts.map +1 -1
  235. package/dist/src/mcp/catalog/definitions/discovery-work-boards.js +4 -3
  236. package/dist/src/mcp/catalog/definitions/discovery-work-boards.js.map +1 -1
  237. package/dist/src/mcp/catalog/definitions/exchange.d.ts +18 -0
  238. package/dist/src/mcp/catalog/definitions/exchange.d.ts.map +1 -0
  239. package/dist/src/mcp/catalog/definitions/exchange.js +182 -0
  240. package/dist/src/mcp/catalog/definitions/exchange.js.map +1 -0
  241. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js +1 -1
  242. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
  243. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
  244. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +3 -2
  245. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
  246. package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
  247. package/dist/src/mcp/catalog/definitions.js +2 -0
  248. package/dist/src/mcp/catalog/definitions.js.map +1 -1
  249. package/dist/src/mcp/catalog/output-schemas.d.ts +6 -1
  250. package/dist/src/mcp/catalog/output-schemas.d.ts.map +1 -1
  251. package/dist/src/mcp/catalog/output-schemas.js +6 -1
  252. package/dist/src/mcp/catalog/output-schemas.js.map +1 -1
  253. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  254. package/dist/src/mcp/catalog/scopes.js +22 -0
  255. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  256. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  257. package/dist/src/mcp/catalog/surfaces.js +14 -0
  258. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  259. package/dist/src/mcp/commerce.d.ts.map +1 -1
  260. package/dist/src/mcp/commerce.js +15 -3
  261. package/dist/src/mcp/commerce.js.map +1 -1
  262. package/dist/src/mcp/core-storage.d.ts +23 -0
  263. package/dist/src/mcp/core-storage.d.ts.map +1 -0
  264. package/dist/src/mcp/core-storage.js +157 -0
  265. package/dist/src/mcp/core-storage.js.map +1 -0
  266. package/dist/src/mcp/core.d.ts +16 -0
  267. package/dist/src/mcp/core.d.ts.map +1 -1
  268. package/dist/src/mcp/core.js +75 -119
  269. package/dist/src/mcp/core.js.map +1 -1
  270. package/dist/src/mcp/dm-messages.d.ts +4 -0
  271. package/dist/src/mcp/dm-messages.d.ts.map +1 -1
  272. package/dist/src/mcp/dm-messages.js +43 -2
  273. package/dist/src/mcp/dm-messages.js.map +1 -1
  274. package/dist/src/mcp/exchange-run.d.ts +5 -0
  275. package/dist/src/mcp/exchange-run.d.ts.map +1 -0
  276. package/dist/src/mcp/exchange-run.js +226 -0
  277. package/dist/src/mcp/exchange-run.js.map +1 -0
  278. package/dist/src/mcp/exchange.d.ts +5 -0
  279. package/dist/src/mcp/exchange.d.ts.map +1 -0
  280. package/dist/src/mcp/exchange.js +352 -0
  281. package/dist/src/mcp/exchange.js.map +1 -0
  282. package/dist/src/mcp/extensions.d.ts.map +1 -1
  283. package/dist/src/mcp/extensions.js +17 -2
  284. package/dist/src/mcp/extensions.js.map +1 -1
  285. package/dist/src/mcp/index.d.ts +5 -0
  286. package/dist/src/mcp/index.d.ts.map +1 -1
  287. package/dist/src/mcp/index.js +26 -3
  288. package/dist/src/mcp/index.js.map +1 -1
  289. package/dist/src/mcp/memory-namespace-hints.d.ts +33 -0
  290. package/dist/src/mcp/memory-namespace-hints.d.ts.map +1 -0
  291. package/dist/src/mcp/memory-namespace-hints.js +60 -0
  292. package/dist/src/mcp/memory-namespace-hints.js.map +1 -0
  293. package/dist/src/mcp/workspaces.d.ts +5 -0
  294. package/dist/src/mcp/workspaces.d.ts.map +1 -1
  295. package/dist/src/mcp/workspaces.js +5 -3
  296. package/dist/src/mcp/workspaces.js.map +1 -1
  297. package/dist/src/models/agent-task-schemas.d.ts +25 -3
  298. package/dist/src/models/agent-task-schemas.d.ts.map +1 -1
  299. package/dist/src/models/agent-task-schemas.js +16 -0
  300. package/dist/src/models/agent-task-schemas.js.map +1 -1
  301. package/dist/src/models/app-tool-schemas.d.ts +573 -2
  302. package/dist/src/models/app-tool-schemas.d.ts.map +1 -1
  303. package/dist/src/models/app-tool-schemas.js +73 -2
  304. package/dist/src/models/app-tool-schemas.js.map +1 -1
  305. package/dist/src/models/odps-schemas.d.ts +305 -0
  306. package/dist/src/models/odps-schemas.d.ts.map +1 -0
  307. package/dist/src/models/odps-schemas.js +182 -0
  308. package/dist/src/models/odps-schemas.js.map +1 -0
  309. package/dist/src/models/offer-schemas.d.ts +359 -4
  310. package/dist/src/models/offer-schemas.d.ts.map +1 -1
  311. package/dist/src/models/offer-schemas.js +37 -0
  312. package/dist/src/models/offer-schemas.js.map +1 -1
  313. package/dist/src/models/schemas.d.ts +7 -3
  314. package/dist/src/models/schemas.d.ts.map +1 -1
  315. package/dist/src/models/schemas.js +13 -1
  316. package/dist/src/models/schemas.js.map +1 -1
  317. package/dist/src/models/webhook-schemas.d.ts +8 -8
  318. package/dist/src/routes/agent-tasks/create-read.d.ts +4 -0
  319. package/dist/src/routes/agent-tasks/create-read.d.ts.map +1 -1
  320. package/dist/src/routes/agent-tasks/create-read.js +20 -1
  321. package/dist/src/routes/agent-tasks/create-read.js.map +1 -1
  322. package/dist/src/routes/agent-tasks/lifecycle.d.ts.map +1 -1
  323. package/dist/src/routes/agent-tasks/lifecycle.js +10 -0
  324. package/dist/src/routes/agent-tasks/lifecycle.js.map +1 -1
  325. package/dist/src/routes/agents/device-auth.d.ts +4 -0
  326. package/dist/src/routes/agents/device-auth.d.ts.map +1 -1
  327. package/dist/src/routes/agents/device-auth.js +19 -4
  328. package/dist/src/routes/agents/device-auth.js.map +1 -1
  329. package/dist/src/routes/agents/offers.d.ts +2 -0
  330. package/dist/src/routes/agents/offers.d.ts.map +1 -1
  331. package/dist/src/routes/agents/offers.js +0 -0
  332. package/dist/src/routes/agents/offers.js.map +1 -1
  333. package/dist/src/routes/app-grants.d.ts +12 -0
  334. package/dist/src/routes/app-grants.d.ts.map +1 -1
  335. package/dist/src/routes/app-grants.js +90 -27
  336. package/dist/src/routes/app-grants.js.map +1 -1
  337. package/dist/src/routes/apps/drafts.d.ts +3 -0
  338. package/dist/src/routes/apps/drafts.d.ts.map +1 -1
  339. package/dist/src/routes/apps/drafts.js +63 -1
  340. package/dist/src/routes/apps/drafts.js.map +1 -1
  341. package/dist/src/routes/apps/fork-manage.d.ts.map +1 -1
  342. package/dist/src/routes/apps/fork-manage.js +24 -1
  343. package/dist/src/routes/apps/fork-manage.js.map +1 -1
  344. package/dist/src/routes/apps/publish.d.ts +4 -0
  345. package/dist/src/routes/apps/publish.d.ts.map +1 -1
  346. package/dist/src/routes/apps/publish.js +44 -3
  347. package/dist/src/routes/apps/publish.js.map +1 -1
  348. package/dist/src/routes/apps-cost.d.ts +25 -0
  349. package/dist/src/routes/apps-cost.d.ts.map +1 -0
  350. package/dist/src/routes/apps-cost.js +107 -0
  351. package/dist/src/routes/apps-cost.js.map +1 -0
  352. package/dist/src/routes/commerce.d.ts.map +1 -1
  353. package/dist/src/routes/commerce.js +122 -2
  354. package/dist/src/routes/commerce.js.map +1 -1
  355. package/dist/src/routes/exchange-market.d.ts +32 -0
  356. package/dist/src/routes/exchange-market.d.ts.map +1 -0
  357. package/dist/src/routes/exchange-market.js +580 -0
  358. package/dist/src/routes/exchange-market.js.map +1 -0
  359. package/dist/src/routes/exchange.d.ts +33 -0
  360. package/dist/src/routes/exchange.d.ts.map +1 -0
  361. package/dist/src/routes/exchange.js +398 -0
  362. package/dist/src/routes/exchange.js.map +1 -0
  363. package/dist/src/routes/extensions/actions.d.ts.map +1 -1
  364. package/dist/src/routes/extensions/actions.js +18 -0
  365. package/dist/src/routes/extensions/actions.js.map +1 -1
  366. package/dist/src/routes/extensions/crud.d.ts.map +1 -1
  367. package/dist/src/routes/extensions/crud.js +36 -3
  368. package/dist/src/routes/extensions/crud.js.map +1 -1
  369. package/dist/src/routes/extensions/entitlement-gate.d.ts +33 -0
  370. package/dist/src/routes/extensions/entitlement-gate.d.ts.map +1 -0
  371. package/dist/src/routes/extensions/entitlement-gate.js +156 -0
  372. package/dist/src/routes/extensions/entitlement-gate.js.map +1 -0
  373. package/dist/src/routes/extensions/manifest.d.ts +15 -0
  374. package/dist/src/routes/extensions/manifest.d.ts.map +1 -1
  375. package/dist/src/routes/extensions/manifest.js +101 -2
  376. package/dist/src/routes/extensions/manifest.js.map +1 -1
  377. package/dist/src/routes/extensions/pacing.d.ts +31 -0
  378. package/dist/src/routes/extensions/pacing.d.ts.map +1 -0
  379. package/dist/src/routes/extensions/pacing.js +73 -0
  380. package/dist/src/routes/extensions/pacing.js.map +1 -0
  381. package/dist/src/routes/extensions/paywall.d.ts.map +1 -1
  382. package/dist/src/routes/extensions/paywall.js +20 -11
  383. package/dist/src/routes/extensions/paywall.js.map +1 -1
  384. package/dist/src/routes/federation-sync/messaging.d.ts.map +1 -1
  385. package/dist/src/routes/federation-sync/messaging.js +3 -1
  386. package/dist/src/routes/federation-sync/messaging.js.map +1 -1
  387. package/dist/src/routes/ghii/recovery.d.ts +2 -0
  388. package/dist/src/routes/ghii/recovery.d.ts.map +1 -1
  389. package/dist/src/routes/ghii/recovery.js +7 -0
  390. package/dist/src/routes/ghii/recovery.js.map +1 -1
  391. package/dist/src/routes/ghii/register-login.d.ts +4 -0
  392. package/dist/src/routes/ghii/register-login.d.ts.map +1 -1
  393. package/dist/src/routes/ghii/register-login.js +45 -22
  394. package/dist/src/routes/ghii/register-login.js.map +1 -1
  395. package/dist/src/routes/ghii/web-verify.d.ts +5 -0
  396. package/dist/src/routes/ghii/web-verify.d.ts.map +1 -1
  397. package/dist/src/routes/ghii/web-verify.js +24 -3
  398. package/dist/src/routes/ghii/web-verify.js.map +1 -1
  399. package/dist/src/routes/libs/sdk-serve.d.ts +11 -0
  400. package/dist/src/routes/libs/sdk-serve.d.ts.map +1 -0
  401. package/dist/src/routes/libs/sdk-serve.js +53 -0
  402. package/dist/src/routes/libs/sdk-serve.js.map +1 -0
  403. package/dist/src/routes/libs.d.ts +7 -1
  404. package/dist/src/routes/libs.d.ts.map +1 -1
  405. package/dist/src/routes/libs.js +65 -146
  406. package/dist/src/routes/libs.js.map +1 -1
  407. package/dist/src/routes/memory/crud.d.ts.map +1 -1
  408. package/dist/src/routes/memory/crud.js +10 -0
  409. package/dist/src/routes/memory/crud.js.map +1 -1
  410. package/dist/src/routes/messages.d.ts +3 -0
  411. package/dist/src/routes/messages.d.ts.map +1 -1
  412. package/dist/src/routes/messages.js +9 -0
  413. package/dist/src/routes/messages.js.map +1 -1
  414. package/dist/src/routes/notifications.d.ts +6 -3
  415. package/dist/src/routes/notifications.d.ts.map +1 -1
  416. package/dist/src/routes/notifications.js +32 -3
  417. package/dist/src/routes/notifications.js.map +1 -1
  418. package/dist/src/routes/organisms/crud.d.ts +3 -0
  419. package/dist/src/routes/organisms/crud.d.ts.map +1 -1
  420. package/dist/src/routes/organisms/crud.js +5 -2
  421. package/dist/src/routes/organisms/crud.js.map +1 -1
  422. package/dist/src/routes/organisms/workspace-access.d.ts.map +1 -1
  423. package/dist/src/routes/organisms/workspace-access.js +38 -20
  424. package/dist/src/routes/organisms/workspace-access.js.map +1 -1
  425. package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
  426. package/dist/src/routes/organisms/workspace-read.js +7 -2
  427. package/dist/src/routes/organisms/workspace-read.js.map +1 -1
  428. package/dist/src/routes/public-stats.d.ts +7 -0
  429. package/dist/src/routes/public-stats.d.ts.map +1 -1
  430. package/dist/src/routes/public-stats.js +28 -7
  431. package/dist/src/routes/public-stats.js.map +1 -1
  432. package/dist/src/routes/sse.d.ts +7 -0
  433. package/dist/src/routes/sse.d.ts.map +1 -1
  434. package/dist/src/routes/sse.js +36 -6
  435. package/dist/src/routes/sse.js.map +1 -1
  436. package/dist/src/routes/storage-files.d.ts +11 -0
  437. package/dist/src/routes/storage-files.d.ts.map +1 -1
  438. package/dist/src/routes/storage-files.js +58 -51
  439. package/dist/src/routes/storage-files.js.map +1 -1
  440. package/dist/src/routes/subdomains.d.ts +4 -0
  441. package/dist/src/routes/subdomains.d.ts.map +1 -1
  442. package/dist/src/routes/subdomains.js +42 -5
  443. package/dist/src/routes/subdomains.js.map +1 -1
  444. package/dist/src/routes/unfurl.d.ts +27 -0
  445. package/dist/src/routes/unfurl.d.ts.map +1 -0
  446. package/dist/src/routes/unfurl.js +180 -0
  447. package/dist/src/routes/unfurl.js.map +1 -0
  448. package/dist/src/routes/upload.d.ts +13 -0
  449. package/dist/src/routes/upload.d.ts.map +1 -1
  450. package/dist/src/routes/upload.js +115 -28
  451. package/dist/src/routes/upload.js.map +1 -1
  452. package/dist/src/routes/webmcp.d.ts +3 -0
  453. package/dist/src/routes/webmcp.d.ts.map +1 -1
  454. package/dist/src/routes/webmcp.js +59 -0
  455. package/dist/src/routes/webmcp.js.map +1 -1
  456. package/dist/src/schemas/knowledge-package.d.ts +1 -1
  457. package/dist/src/server-bootstrap/routes-loader.d.ts +1 -0
  458. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  459. package/dist/src/server-bootstrap/routes-loader.js +8 -0
  460. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  461. package/dist/src/server-bootstrap/static-files.d.ts +4 -0
  462. package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
  463. package/dist/src/server-bootstrap/static-files.js +11 -0
  464. package/dist/src/server-bootstrap/static-files.js.map +1 -1
  465. package/dist/src/services/agent-face.d.ts +10 -2
  466. package/dist/src/services/agent-face.d.ts.map +1 -1
  467. package/dist/src/services/agent-face.js +10 -4
  468. package/dist/src/services/agent-face.js.map +1 -1
  469. package/dist/src/services/app-tool-interfaces.d.ts +37 -0
  470. package/dist/src/services/app-tool-interfaces.d.ts.map +1 -0
  471. package/dist/src/services/app-tool-interfaces.js +101 -0
  472. package/dist/src/services/app-tool-interfaces.js.map +1 -0
  473. package/dist/src/services/build-app-prompt.d.ts +22 -0
  474. package/dist/src/services/build-app-prompt.d.ts.map +1 -1
  475. package/dist/src/services/build-app-prompt.js +108 -11
  476. package/dist/src/services/build-app-prompt.js.map +1 -1
  477. package/dist/src/services/call-timing.d.ts +51 -0
  478. package/dist/src/services/call-timing.d.ts.map +1 -0
  479. package/dist/src/services/call-timing.js +91 -0
  480. package/dist/src/services/call-timing.js.map +1 -0
  481. package/dist/src/services/capability-invoke.d.ts +2 -0
  482. package/dist/src/services/capability-invoke.d.ts.map +1 -1
  483. package/dist/src/services/capability-invoke.js +10 -0
  484. package/dist/src/services/capability-invoke.js.map +1 -1
  485. package/dist/src/services/config-schema.d.ts.map +1 -1
  486. package/dist/src/services/config-schema.js +6 -0
  487. package/dist/src/services/config-schema.js.map +1 -1
  488. package/dist/src/services/contacts.d.ts +25 -1
  489. package/dist/src/services/contacts.d.ts.map +1 -1
  490. package/dist/src/services/contacts.js +30 -0
  491. package/dist/src/services/contacts.js.map +1 -1
  492. package/dist/src/services/draft-token.d.ts +22 -2
  493. package/dist/src/services/draft-token.d.ts.map +1 -1
  494. package/dist/src/services/draft-token.js +52 -3
  495. package/dist/src/services/draft-token.js.map +1 -1
  496. package/dist/src/services/entitlement-money.d.ts +55 -0
  497. package/dist/src/services/entitlement-money.d.ts.map +1 -0
  498. package/dist/src/services/entitlement-money.js +68 -0
  499. package/dist/src/services/entitlement-money.js.map +1 -0
  500. package/dist/src/services/exchange-market.d.ts +280 -0
  501. package/dist/src/services/exchange-market.d.ts.map +1 -0
  502. package/dist/src/services/exchange-market.js +276 -0
  503. package/dist/src/services/exchange-market.js.map +1 -0
  504. package/dist/src/services/exchange-odps.d.ts +58 -0
  505. package/dist/src/services/exchange-odps.d.ts.map +1 -0
  506. package/dist/src/services/exchange-odps.js +400 -0
  507. package/dist/src/services/exchange-odps.js.map +1 -0
  508. package/dist/src/services/exchange-projection.d.ts +61 -0
  509. package/dist/src/services/exchange-projection.d.ts.map +1 -0
  510. package/dist/src/services/exchange-projection.js +504 -0
  511. package/dist/src/services/exchange-projection.js.map +1 -0
  512. package/dist/src/services/exchange-proposals.d.ts +47 -0
  513. package/dist/src/services/exchange-proposals.d.ts.map +1 -0
  514. package/dist/src/services/exchange-proposals.js +73 -0
  515. package/dist/src/services/exchange-proposals.js.map +1 -0
  516. package/dist/src/services/exchange-work.d.ts +30 -0
  517. package/dist/src/services/exchange-work.d.ts.map +1 -0
  518. package/dist/src/services/exchange-work.js +43 -0
  519. package/dist/src/services/exchange-work.js.map +1 -0
  520. package/dist/src/services/extension-files.d.ts +64 -0
  521. package/dist/src/services/extension-files.d.ts.map +1 -0
  522. package/dist/src/services/extension-files.js +88 -0
  523. package/dist/src/services/extension-files.js.map +1 -0
  524. package/dist/src/services/extension-runtime.d.ts +33 -0
  525. package/dist/src/services/extension-runtime.d.ts.map +1 -1
  526. package/dist/src/services/extension-runtime.js +52 -0
  527. package/dist/src/services/extension-runtime.js.map +1 -1
  528. package/dist/src/services/file-refs.d.ts +105 -0
  529. package/dist/src/services/file-refs.d.ts.map +1 -0
  530. package/dist/src/services/file-refs.js +106 -0
  531. package/dist/src/services/file-refs.js.map +1 -0
  532. package/dist/src/services/message-send.d.ts.map +1 -1
  533. package/dist/src/services/message-send.js +4 -1
  534. package/dist/src/services/message-send.js.map +1 -1
  535. package/dist/src/services/metered-entitlements.d.ts +210 -0
  536. package/dist/src/services/metered-entitlements.d.ts.map +1 -0
  537. package/dist/src/services/metered-entitlements.js +268 -0
  538. package/dist/src/services/metered-entitlements.js.map +1 -0
  539. package/dist/src/services/notify.d.ts +7 -0
  540. package/dist/src/services/notify.d.ts.map +1 -1
  541. package/dist/src/services/notify.js +35 -0
  542. package/dist/src/services/notify.js.map +1 -1
  543. package/dist/src/services/owner-memory.d.ts +30 -1
  544. package/dist/src/services/owner-memory.d.ts.map +1 -1
  545. package/dist/src/services/owner-memory.js +31 -14
  546. package/dist/src/services/owner-memory.js.map +1 -1
  547. package/dist/src/services/owner-provisioning.d.ts +5 -0
  548. package/dist/src/services/owner-provisioning.d.ts.map +1 -1
  549. package/dist/src/services/owner-provisioning.js +20 -2
  550. package/dist/src/services/owner-provisioning.js.map +1 -1
  551. package/dist/src/services/task-files.d.ts +51 -0
  552. package/dist/src/services/task-files.d.ts.map +1 -0
  553. package/dist/src/services/task-files.js +58 -0
  554. package/dist/src/services/task-files.js.map +1 -0
  555. package/dist/src/services/upload-token.d.ts +29 -0
  556. package/dist/src/services/upload-token.d.ts.map +1 -1
  557. package/dist/src/services/upload-token.js +37 -0
  558. package/dist/src/services/upload-token.js.map +1 -1
  559. package/dist/src/services/upload-zip.d.ts +2 -0
  560. package/dist/src/services/upload-zip.d.ts.map +1 -1
  561. package/dist/src/services/upload-zip.js +5 -1
  562. package/dist/src/services/upload-zip.js.map +1 -1
  563. package/dist/src/services/workspace-meta.d.ts +15 -0
  564. package/dist/src/services/workspace-meta.d.ts.map +1 -1
  565. package/dist/src/services/workspace-meta.js +17 -0
  566. package/dist/src/services/workspace-meta.js.map +1 -1
  567. package/dist/src/services/workspace-provision.d.ts +3 -0
  568. package/dist/src/services/workspace-provision.d.ts.map +1 -1
  569. package/dist/src/services/workspace-provision.js +5 -3
  570. package/dist/src/services/workspace-provision.js.map +1 -1
  571. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts +1 -0
  572. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts.map +1 -1
  573. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js +10 -0
  574. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -1
  575. package/dist/src/storage/providers/postgres-kysely/methods/apps.d.ts +1 -0
  576. package/dist/src/storage/providers/postgres-kysely/methods/apps.d.ts.map +1 -1
  577. package/dist/src/storage/providers/postgres-kysely/methods/apps.js +2 -0
  578. package/dist/src/storage/providers/postgres-kysely/methods/apps.js.map +1 -1
  579. package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts +1 -0
  580. package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts.map +1 -1
  581. package/dist/src/storage/providers/postgres-kysely/methods/identity.js +4 -0
  582. package/dist/src/storage/providers/postgres-kysely/methods/identity.js.map +1 -1
  583. package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts +2 -0
  584. package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts.map +1 -1
  585. package/dist/src/storage/providers/postgres-kysely/methods/memory.js +12 -1
  586. package/dist/src/storage/providers/postgres-kysely/methods/memory.js.map +1 -1
  587. package/dist/src/storage/providers/postgres-kysely/methods/organisms.d.ts.map +1 -1
  588. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js +5 -1
  589. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -1
  590. package/dist/src/storage/providers/postgres-kysely/migrations/0011_unique_verified_email.sql +25 -0
  591. package/dist/src/storage/providers/postgres-kysely/migrations/0012_unique_live_app_grant.sql +29 -0
  592. package/dist/src/storage/providers/sqlite/methods/apps.d.ts +4 -0
  593. package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
  594. package/dist/src/storage/providers/sqlite/methods/apps.js +9 -0
  595. package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
  596. package/dist/src/storage/providers/sqlite/methods/governance.d.ts +1 -0
  597. package/dist/src/storage/providers/sqlite/methods/governance.d.ts.map +1 -1
  598. package/dist/src/storage/providers/sqlite/methods/governance.js +4 -1
  599. package/dist/src/storage/providers/sqlite/methods/governance.js.map +1 -1
  600. package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts +1 -0
  601. package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts.map +1 -1
  602. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js +4 -0
  603. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js.map +1 -1
  604. package/dist/src/storage/providers/sqlite/methods/owner.d.ts +5 -0
  605. package/dist/src/storage/providers/sqlite/methods/owner.d.ts.map +1 -1
  606. package/dist/src/storage/providers/sqlite/methods/owner.js +8 -0
  607. package/dist/src/storage/providers/sqlite/methods/owner.js.map +1 -1
  608. package/dist/src/storage/providers/sqlite/schema.d.ts +3 -0
  609. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  610. package/dist/src/storage/providers/sqlite/schema.js +40 -0
  611. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  612. package/dist/src/storage/repositories/app-grant.repository.d.ts +9 -1
  613. package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -1
  614. package/dist/src/storage/repositories/app.repository.d.ts +0 -0
  615. package/dist/src/storage/repositories/app.repository.d.ts.map +1 -1
  616. package/dist/src/storage/repositories/identity.repository.d.ts +6 -0
  617. package/dist/src/storage/repositories/identity.repository.d.ts.map +1 -1
  618. package/dist/src/storage/repositories/memory.repository.d.ts +14 -0
  619. package/dist/src/storage/repositories/memory.repository.d.ts.map +1 -1
  620. package/dist/src/storage/repositories-impl/memory-repository.d.ts +8 -1
  621. package/dist/src/storage/repositories-impl/memory-repository.d.ts.map +1 -1
  622. package/dist/src/storage/repositories-impl/memory-repository.js +15 -4
  623. package/dist/src/storage/repositories-impl/memory-repository.js.map +1 -1
  624. package/dist/src/storage/types/agents-messaging.d.ts +19 -0
  625. package/dist/src/storage/types/agents-messaging.d.ts.map +1 -1
  626. package/dist/src/storage/types/agents-messaging.js.map +1 -1
  627. package/dist/src/storage/types/apps.d.ts +1 -0
  628. package/dist/src/storage/types/apps.d.ts.map +1 -1
  629. package/dist/src/storage/types/organisms-federation.d.ts +50 -0
  630. package/dist/src/storage/types/organisms-federation.d.ts.map +1 -1
  631. package/dist/src/utils/app-badge.d.ts.map +1 -1
  632. package/dist/src/utils/app-badge.js +7 -3
  633. package/dist/src/utils/app-badge.js.map +1 -1
  634. package/dist/src/utils/app-mobile-lint.d.ts +17 -0
  635. package/dist/src/utils/app-mobile-lint.d.ts.map +1 -0
  636. package/dist/src/utils/app-mobile-lint.js +40 -0
  637. package/dist/src/utils/app-mobile-lint.js.map +1 -0
  638. package/dist/static/app-catalog/_template.html +18 -82
  639. package/dist/static/app-catalog/js/apps-io.js +51 -165
  640. package/dist/static/app-catalog/js/cortex.js +3 -1
  641. package/dist/static/app-catalog/js/cost.js +100 -0
  642. package/dist/static/app-catalog/js/db.js +23 -93
  643. package/dist/static/app-catalog/js/detail.js +568 -59
  644. package/dist/static/app-catalog/js/favorites.js +71 -0
  645. package/dist/static/app-catalog/js/i18n-data.js +369 -19
  646. package/dist/static/app-catalog/js/main.js +50 -139
  647. package/dist/static/app-catalog/js/migrate.js +88 -0
  648. package/dist/static/app-catalog/js/monetize.js +205 -17
  649. package/dist/static/app-catalog/js/odps.js +489 -0
  650. package/dist/static/app-catalog/js/promote.js +70 -0
  651. package/dist/static/app-catalog/js/render.js +29 -139
  652. package/dist/static/app-catalog/js/server-io.js +126 -223
  653. package/dist/static/app-catalog/js/settings.js +11 -204
  654. package/dist/static/app-catalog/js/workcopy.js +198 -0
  655. package/dist/static/app-catalog/styles/app-catalog.css +100 -0
  656. package/dist/static/app-catalog.html +2220 -1029
  657. package/dist/static/sdk-libs/_core/config.js +52 -0
  658. package/dist/static/sdk-libs/_core/http.js +52 -0
  659. package/dist/static/sdk-libs/_core/namespace.js +33 -0
  660. package/dist/static/sdk-libs/_core/sdk-globals.d.ts +50 -0
  661. package/dist/static/sdk-libs/_core/session.js +66 -0
  662. package/dist/static/sdk-libs/agentface/index.js +102 -0
  663. package/dist/static/sdk-libs/agents/index.js +305 -0
  664. package/dist/static/sdk-libs/ai/index.js +153 -0
  665. package/dist/static/sdk-libs/audio/core.js +111 -0
  666. package/dist/static/sdk-libs/audio/index.js +380 -0
  667. package/dist/static/sdk-libs/audio/instruments.js +369 -0
  668. package/dist/static/sdk-libs/auth/cluster.js +97 -0
  669. package/dist/static/sdk-libs/auth/config.js +46 -0
  670. package/dist/static/sdk-libs/auth/crypto.js +166 -0
  671. package/dist/static/sdk-libs/auth/events.js +27 -0
  672. package/dist/static/sdk-libs/auth/i18n.js +64 -0
  673. package/dist/static/sdk-libs/auth/index.js +61 -0
  674. package/dist/static/sdk-libs/auth/locale.js +151 -0
  675. package/dist/static/sdk-libs/auth/modal.js +554 -0
  676. package/dist/static/sdk-libs/auth/palette.js +172 -0
  677. package/dist/static/sdk-libs/auth/pill.js +198 -0
  678. package/dist/static/sdk-libs/auth/session.js +792 -0
  679. package/dist/static/sdk-libs/auth/signup.js +232 -0
  680. package/dist/static/sdk-libs/auth/theme.js +137 -0
  681. package/dist/static/sdk-libs/capabilities/index.js +179 -0
  682. package/dist/static/sdk-libs/commerce/index.js +243 -0
  683. package/dist/static/sdk-libs/data/index.js +250 -0
  684. package/dist/static/sdk-libs/dist/aimeat-agentface.js +91 -0
  685. package/dist/static/sdk-libs/dist/aimeat-agents.js +348 -0
  686. package/dist/static/sdk-libs/dist/aimeat-ai.js +168 -0
  687. package/dist/static/sdk-libs/dist/aimeat-audio.js +979 -0
  688. package/dist/static/sdk-libs/dist/aimeat-auth.js +2232 -0
  689. package/dist/static/sdk-libs/dist/aimeat-capabilities.js +177 -0
  690. package/dist/static/sdk-libs/dist/aimeat-commerce.js +265 -0
  691. package/dist/static/sdk-libs/dist/aimeat-data.js +247 -0
  692. package/dist/static/sdk-libs/dist/aimeat-editor.js +299 -0
  693. package/dist/static/sdk-libs/dist/aimeat-header.js +270 -0
  694. package/dist/static/sdk-libs/dist/aimeat-intake.js +94 -0
  695. package/dist/static/sdk-libs/dist/aimeat-live.js +317 -0
  696. package/dist/static/sdk-libs/dist/aimeat-markdown.js +633 -0
  697. package/dist/static/sdk-libs/dist/aimeat-organism.js +394 -0
  698. package/dist/static/sdk-libs/dist/aimeat-portfolio-standalone.js +90 -0
  699. package/dist/static/sdk-libs/dist/aimeat-social.js +157 -0
  700. package/dist/static/sdk-libs/dist/aimeat-speech.js +300 -0
  701. package/dist/static/sdk-libs/dist/aimeat-storage.js +210 -0
  702. package/dist/static/sdk-libs/dist/aimeat-tunnel.js +383 -0
  703. package/dist/static/sdk-libs/dist/aimeat-wallet.js +118 -0
  704. package/dist/static/sdk-libs/dist/aimeat-webmcp.js +187 -0
  705. package/dist/static/sdk-libs/dist/aimeat-work.js +213 -0
  706. package/dist/static/sdk-libs/dist/aimeat-workflows.js +147 -0
  707. package/dist/static/sdk-libs/editor/index.js +229 -0
  708. package/dist/static/sdk-libs/header/index.js +249 -0
  709. package/dist/static/sdk-libs/intake/index.js +75 -0
  710. package/dist/static/sdk-libs/live/index.js +223 -0
  711. package/dist/static/sdk-libs/markdown/index.js +570 -0
  712. package/dist/static/sdk-libs/organism/index.js +381 -0
  713. package/dist/static/sdk-libs/portfolio-standalone/index.js +78 -0
  714. package/dist/static/sdk-libs/social/index.js +140 -0
  715. package/dist/static/sdk-libs/speech/index.js +321 -0
  716. package/dist/static/sdk-libs/storage/index.js +189 -0
  717. package/dist/static/sdk-libs/tunnel/index.js +428 -0
  718. package/dist/static/sdk-libs/wallet/index.js +115 -0
  719. package/dist/static/sdk-libs/webmcp/index.js +185 -0
  720. package/dist/static/sdk-libs/work/index.js +191 -0
  721. package/dist/static/sdk-libs/workflows/index.js +113 -0
  722. package/package.json +10 -3
@@ -7,6 +7,12 @@
7
7
  * Extracted from inbox-tab.js to satisfy max-file-lines.
8
8
  * @usage import { useThreadAutoScroll, useMobileComposerKeyboard } from './inbox-tab/use-thread-ux.js';
9
9
  * @version-history
10
+ * v1.4.0 — 2026-07-21 — useThreadAutoScroll: on OPEN, keep re-pinning to the bottom for ~2.5s while late
11
+ * content (images, link previews, long histories) grows the thread, instead of a single jump that left
12
+ * a big thread stuck partway up. Re-pins only on real height growth; aborts the moment the reader
13
+ * scrolls up.
14
+ * v1.3.0 — 2026-07-21 — Add useLinkPreviewToggle: persisted global on/off for the message link-preview
15
+ * cards (default ON); the ThreadPanel head button flips it.
10
16
  * v1.2.0 — 2026-07-19 — useThreadAutoScroll now suppresses the one-time new-message jump while the
11
17
  * composer is focused (near-bottom follow still applies). This lets the inbox reload the open thread
12
18
  * on EVERY 'messages' live-update — so incoming messages render immediately even while you're typing
@@ -17,7 +23,22 @@
17
23
  * visualViewport bottom) as `--inbox-avail` instead of the `dvh − keyboard` double-count that collapsed
18
24
  * the messenger on Android Chrome; drop the composer scrollIntoView(center) that left a dead gap.
19
25
  */
20
- import { useEffect, useRef } from 'preact/hooks';
26
+ import { useEffect, useRef, useState } from 'preact/hooks';
27
+
28
+ const LINK_PREVIEWS_KEY = 'aimeat.inbox.linkPreviews';
29
+
30
+ /** Persisted global toggle for the link-preview cards (default ON). Returns the flag + a toggler that
31
+ * writes the choice to localStorage. Per-card dismissal is owned separately by /components/LinkPreview.js. */
32
+ export function useLinkPreviewToggle() {
33
+ const [showLinkPreviews, setShow] = useState(() => {
34
+ try { return localStorage.getItem(LINK_PREVIEWS_KEY) !== 'off'; } catch { return true; }
35
+ });
36
+ const toggleLinkPreviews = () => setShow((v) => {
37
+ try { localStorage.setItem(LINK_PREVIEWS_KEY, v ? 'off' : 'on'); } catch { /* quota */ }
38
+ return !v;
39
+ });
40
+ return { showLinkPreviews, toggleLinkPreviews };
41
+ }
21
42
 
22
43
  /** Auto-scroll policy for the open thread: jump to the latest message when a thread is OPENED, follow
23
44
  * when the reader is already near the bottom, and when a genuinely NEW message arrives (last message
@@ -30,7 +51,7 @@ export function useThreadAutoScroll(msgsRef, mode, thread, activeConv) {
30
51
  const lastMsgIdRef = useRef(null);
31
52
  useEffect(() => {
32
53
  const el = msgsRef.current;
33
- if (mode !== 'thread' || !el || thread.length === 0) return;
54
+ if (mode !== 'thread' || !el || thread.length === 0) return undefined;
34
55
  const convKey = activeConv?.peerGhii ?? activeConv?.id ?? null;
35
56
  const lastId = thread[thread.length - 1]?.id ?? null;
36
57
  const isNewOpen = lastScrolledConvRef.current !== convKey;
@@ -41,9 +62,32 @@ export function useThreadAutoScroll(msgsRef, mode, thread, activeConv) {
41
62
  // focused (near-bottom follow still applies: if you were already at the bottom you keep following).
42
63
  const ae = typeof document !== 'undefined' ? document.activeElement : null;
43
64
  const composing = ae instanceof HTMLElement && !!ae.closest('.inbox-composer');
44
- if (isNewOpen || nearBottom || (hasNewMsg && !composing)) el.scrollTop = el.scrollHeight;
45
65
  lastScrolledConvRef.current = convKey;
46
66
  lastMsgIdRef.current = lastId;
67
+
68
+ if (isNewOpen) {
69
+ // Opening a thread: jump to the newest message, then KEEP re-pinning to the bottom for a short
70
+ // window. The final bottom isn't known yet at this point — late content grows the thread (images,
71
+ // link-preview cards, markdown) AND the pane's own height changes as the composer/keyboard settle,
72
+ // either of which opens a gap the single jump can't catch (and the effect won't re-fire — urlMap
73
+ // isn't a dep). So each frame: if a gap has opened, re-pin. `expected` tracks our own set so a real
74
+ // user scroll (which moves away from it) aborts the loop instead of being fought.
75
+ el.scrollTop = el.scrollHeight;
76
+ let raf = 0, expected = el.scrollTop, aborted = false;
77
+ const deadline = performance.now() + 2500;
78
+ const onScroll = () => { if (Math.abs(el.scrollTop - expected) > 40) aborted = true; };
79
+ el.addEventListener('scroll', onScroll, { passive: true });
80
+ const stop = () => { cancelAnimationFrame(raf); el.removeEventListener('scroll', onScroll); };
81
+ const step = (now) => {
82
+ if (aborted) { stop(); return; }
83
+ if (el.scrollHeight - el.scrollTop - el.clientHeight > 4) { el.scrollTop = el.scrollHeight; expected = el.scrollTop; }
84
+ if (now < deadline) raf = requestAnimationFrame(step); else stop();
85
+ };
86
+ raf = requestAnimationFrame(step);
87
+ return stop; // cancel the pin loop if the thread changes / unmounts
88
+ }
89
+ if (nearBottom || (hasNewMsg && !composing)) el.scrollTop = el.scrollHeight;
90
+ return undefined;
47
91
  // msgsRef is a stable ref object — the content deps below are the real triggers.
48
92
  // eslint-disable-next-line react-hooks/exhaustive-deps
49
93
  }, [thread, mode, activeConv]);
@@ -14,6 +14,13 @@
14
14
  * (./inbox-tab/use-thread-ux.js)
15
15
  * @usage Lazy-loaded profile tab; registered in profile.js TABS as id `messages`.
16
16
  * @version-history
17
+ * v1.25.0 -- 2026-07-21 -- Thread history is no longer capped at the newest 50: threads open showing
18
+ * their FULL history by default (getConversation(all)); a header "Show last 50 / all" toggle
19
+ * (threadAll) collapses/expands. loadThread's attachment-URL resolution extracted to
20
+ * helpers.resolveThreadAttachmentUrls.
21
+ * v1.24.0 -- 2026-07-19 -- Conversation → Notebook (📓 on the thread head next to ✨): summarize the
22
+ * whole thread — with its images — and park it into the Notebook for filing/enrichment. Three modes:
23
+ * server-side AI summary (owner's OpenRouter key, vision-aware), copy-prompt (own chat), or raw.
17
24
  * v1.23.1 -- 2026-07-19 -- Fix "badge shows N new but the open thread never updates": a 'messages'
18
25
  * live-update now ALWAYS reloads the open thread (dropped the isComposingInThread guard that skipped
19
26
  * the whole reload while an editable was focused, so incoming messages stayed invisible until
@@ -127,11 +134,12 @@ import { firstLine } from './notebook-helpers.js';
127
134
  import { apiGet } from '/js/api.js';
128
135
  import { getSession } from '/js/services/auth.js';
129
136
  import { TrackResponseModal } from './track-response-modal.js';
130
- import { buildConversationReplyPrompt, buildMessageReplyPrompt, peerLabel } from '/js/services/messages-ai-prompts.js';
131
- import { peerName, ownerKeyOf, isAgentPeer, buildAnswerSummary } from './inbox-tab/helpers.js';
132
- import { Composer, PollBuilder, MarkdownViewer, ReplyWithAiPopover } from './inbox-tab/components.js';
137
+ import { peerLabel } from '/js/services/messages-ai-prompts.js';
138
+ import { peerName, ownerKeyOf, isAgentPeer, buildAnswerSummary, resolveThreadAttachmentUrls } from './inbox-tab/helpers.js';
139
+ import { Composer, PollBuilder, MarkdownViewer, ReplyWithAiPopover, ConversationToNotebookPopover } from './inbox-tab/components.js';
140
+ import { buildConversationReplyProps, buildMessageReplyProps, buildConversationNotebookProps } from './inbox-tab/ai-actions.js';
133
141
  import { ListPanel, ThreadPanel, TrackedPanel, ResultsPanel } from './inbox-tab/panels.js';
134
- import { useThreadAutoScroll, useMobileComposerKeyboard } from './inbox-tab/use-thread-ux.js';
142
+ import { useThreadAutoScroll, useMobileComposerKeyboard, useLinkPreviewToggle } from './inbox-tab/use-thread-ux.js';
135
143
  import { ContactPicker } from '/components/ContactPicker.js';
136
144
 
137
145
  export default function InboxTab({ showToast }) {
@@ -140,8 +148,9 @@ export default function InboxTab({ showToast }) {
140
148
  const [activeConv, setActiveConv] = useState(null); // { conversationId, peerGhii }
141
149
  const [thread, setThread] = useState([]);
142
150
  const [urlMap, setUrlMap] = useState({});
143
- const [mdViewer, setMdViewer] = useState(null); // { url, name } — open markdown attachment viewer
151
+ const { showLinkPreviews, toggleLinkPreviews } = useLinkPreviewToggle(); const [mdViewer, setMdViewer] = useState(null); // link-preview toggle (persisted) + markdown viewer state
144
152
  const [aiReply, setAiReply] = useState(null); // { title, build } — Reply with AI popover (TARGET-031)
153
+ const [nbConv, setNbConv] = useState(null); // { title, promptText, runServerSummary, parkConversation } — Conversation → Notebook popover
145
154
  const [peerNames, setPeerNames] = useState({}); // id (GHII/GAII or owner@node) → resolved display name
146
155
  const peerNamesRef = useRef({}); // dedup bookkeeping: an id present here was already looked up
147
156
  const [composeSubject, setComposeSubject] = useState(''); // optional subject → opens a new topic thread
@@ -324,34 +333,25 @@ export default function InboxTab({ showToast }) {
324
333
  // markRead=true ONLY when the user opens the conversation. Marking read POSTs a receipt which itself
325
334
  // emits a 'messages' change → SSE → live refresh; doing it on every live refresh creates a
326
335
  // self-sustaining request loop. So live refreshes reload the thread WITHOUT marking read.
336
+ // Per-conversation "show all vs newest 50" mode. Defaults to ALL (show the full history on open so
337
+ // nothing looks lost); the header toggle collapses to the newest 50. A ref (read at call time) keeps
338
+ // loadThread []-memoized; the state drives the button. Re-defaults to ALL whenever a thread opens.
339
+ const [threadAll, setThreadAll] = useState(true);
340
+ const threadAllRef = useRef(true); threadAllRef.current = threadAll;
327
341
  const loadThread = useCallback(async (conv, markRead = false) => {
328
342
  if (!conv) return;
329
- const msgs = (await messages.getConversation(conv.conversationId, conv.viaAgent).catch(() => [])).slice().reverse();
343
+ // threadAllRef: false = newest 50 (fast default); true = the FULL history (header "All messages" toggle).
344
+ const msgs = (await messages.getConversation(conv.conversationId, conv.viaAgent, threadAllRef.current).catch(() => [])).slice().reverse();
330
345
  setThread(msgs);
331
- // REUSE already-resolved attachment URLs for the SAME conversation: a refresh / new message must NOT
332
- // re-resolve (and thus re-download via a fresh presigned URL) every existing image. Only fetch URLs
333
- // for attachments we haven't resolved yet. A different conversation starts a fresh cache.
334
- const sameConv = urlCacheRef.current.convId === conv.conversationId;
335
- const prev = sameConv ? urlCacheRef.current.map : {};
336
- const map = {};
337
- await Promise.all(msgs.flatMap(m => (m.attachments || [])
338
- .filter(a => !a.inline)
339
- .map(async a => {
340
- // Key by messageId::attachmentId — per-message ids (at0, at1…) repeat, so a flat a.id map made every message's `at0` share one image.
341
- const uk = `${m.id}::${a.id}`;
342
- if (prev[uk]) { map[uk] = prev[uk]; return; } // cached → browser won't re-fetch
343
- // Inbound: only the recipient's duplicated local copy is fetchable. Outbound: resolve the original.
344
- const key = (a.mode === 'duplicate' && a.localKey) ? a.localKey
345
- : (m.direction === 'outbound' && a.storageKey) ? a.storageKey : null;
346
- if (!key) return;
347
- const u = await messages.attachmentUrl(key).catch(() => null);
348
- if (u) map[uk] = u;
349
- })));
350
- urlCacheRef.current = { convId: conv.conversationId, map };
351
- setUrlMap(map);
346
+ // Reuse already-resolved attachment URLs for the same conversation (a refresh must not re-download
347
+ // every image); a different conversation starts a fresh cache.
348
+ const cache = await resolveThreadAttachmentUrls(msgs, conv.conversationId, urlCacheRef.current, messages.attachmentUrl);
349
+ urlCacheRef.current = cache;
350
+ setUrlMap(cache.map);
352
351
  // Agent-owned ("via <agent>") threads are read-only for the owner — don't post a read receipt as them.
353
352
  if (markRead && !conv.viaAgent) await messages.markConversationRead(conv.conversationId).catch(() => {});
354
353
  }, []);
354
+ const toggleThreadAll = () => setThreadAll(v => { const nv = !v; threadAllRef.current = nv; if (activeConv) loadThread(activeConv); return nv; });
355
355
 
356
356
  // Mount: one composite call seeds all six sections (requests/conversations/important/tracked/agents/groups).
357
357
  useEffect(() => { loadOverview(); }, [loadOverview]);
@@ -458,6 +458,7 @@ export default function InboxTab({ showToast }) {
458
458
 
459
459
  const openConversation = async (conv) => {
460
460
  setActiveConv(conv); setMode('thread');
461
+ setThreadAll(true); threadAllRef.current = true; // each thread opens showing its FULL history
461
462
  setDraftPrefill(''); setReplyingTrId(null); setReplyQuote(null); // don't leak a suggested reply / quote across threads
462
463
  await loadThread(conv, true); // mark read only on explicit open (avoids a refresh loop)
463
464
  loadLists();
@@ -488,19 +489,11 @@ export default function InboxTab({ showToast }) {
488
489
  // "Display name (handle)" for an id, falling back to the bare handle when we have no display name.
489
490
  const peerDisplay = (id) => peerLabel(id, peerNames[id]);
490
491
 
491
- // Reply with AI (TARGET-031): hand the whole open conversation, or one message, to the popover which
492
- // renders a copy-paste prompt (any AI chat) or an MCP instruction prompt (aimeat_dm_thread → draft →
493
- // aimeat_dm_send after approval). `build(mode)` closes over the current thread/message + peer.
494
- const openConversationAi = () => {
495
- if (!activeConv) return;
496
- const src = { peerGhii: activeConv.peerGhii, subject: activeConv.subject, conversationId: activeConv.conversationId, thread, peerName: peerNames[activeConv.peerGhii] };
497
- setAiReply({ title: `${t('inbox.ai.replyTo')} ${peerDisplay(activeConv.peerGhii)}`, build: (mode) => buildConversationReplyPrompt(src, mode) });
498
- };
499
- const openMessageAi = (msg) => {
500
- if (!activeConv) return;
501
- const src = { peerGhii: activeConv.peerGhii, subject: activeConv.subject, conversationId: activeConv.conversationId, message: msg, peerName: peerNames[activeConv.peerGhii] };
502
- setAiReply({ title: t('inbox.ai.replyToMessage'), build: (mode) => buildMessageReplyPrompt(src, mode) });
503
- };
492
+ // Thread-head AI actions — Reply with AI (TARGET-031) and Conversation Notebook (summarize the whole
493
+ // thread + images, park it for filing/enrichment). Config assembly lives in ./inbox-tab/ai-actions.js.
494
+ const openConversationAi = () => { if (activeConv) setAiReply(buildConversationReplyProps({ activeConv, thread, peerName: peerNames[activeConv.peerGhii], peerDisplayName: peerDisplay(activeConv.peerGhii) })); };
495
+ const openMessageAi = (msg) => { if (activeConv) setAiReply(buildMessageReplyProps({ activeConv, msg, peerName: peerNames[activeConv.peerGhii] })); };
496
+ const openConversationNotebook = () => { if (activeConv) setNbConv(buildConversationNotebookProps({ activeConv, thread, urlMap, peerName: peerNames[activeConv.peerGhii], title: `${t('inbox.notebook.toNotebook')} — ${peerDisplay(activeConv.peerGhii)}` })); };
504
497
 
505
498
  // ↩ Reply on a bubble: pin the quote AND focus the composer (bump a nonce the Composer watches). Kept
506
499
  // separate from the raw setter so cancelling the quote (✕) doesn't re-pop the keyboard.
@@ -573,21 +566,21 @@ export default function InboxTab({ showToast }) {
573
566
  if (tr.state === 'awaiting-approval') await startSuggestedReply(tr);
574
567
  };
575
568
 
576
- // Open a specific thread when arriving from a notification deep-link (sessionStorage hint set by
577
- // the notification bell). 'requests' just lands on the inbox (requests show at the top of the list).
569
+ // Open a specific thread from a notification deep-link (sessionStorage hint set by the bell).
570
+ // 'requests' lands on the inbox list; 'req:<id>' (a "wants to message you" request notif) opens the
571
+ // thread once accepted, else falls back to the list (sender still pending accept/block).
578
572
  const consumeDeepLink = useCallback(async () => {
579
573
  let target = null;
580
574
  try { target = sessionStorage.getItem('aimeat.inbox.open'); } catch { /* noop */ }
581
575
  if (!target) return;
582
576
  try { sessionStorage.removeItem('aimeat.inbox.open'); } catch { /* noop */ }
583
577
  if (target === 'requests') { await loadLists(); return; }
578
+ const fromRequest = target.startsWith('req:'); if (fromRequest) target = target.slice(4);
584
579
  const convs = await messages.listConversations().catch(() => []);
585
580
  const conv = convs.find(c => c.conversationId === target);
586
- if (conv) openConversation(conv);
587
- // openConversation is a non-memoized handler invoked imperatively here with its `conv` argument; it
588
- // uses only stable setters/refs, so no stale-closure risk. Keeping it out of deps preserves
589
- // consumeDeepLink's stability (loadLists is a []-useCallback) so the two subscribing effects below
590
- // don't re-run every render.
581
+ if (conv) openConversation(conv); else if (fromRequest) await loadLists();
582
+ // openConversation uses only stable setters/refs (no stale-closure risk); keeping it out of deps
583
+ // keeps consumeDeepLink stable (loadLists is a []-useCallback) so the two effects below don't re-run.
591
584
  // eslint-disable-next-line react-hooks/exhaustive-deps
592
585
  }, [loadLists]);
593
586
  useEffect(() => { consumeDeepLink(); }, [consumeDeepLink]);
@@ -776,8 +769,9 @@ export default function InboxTab({ showToast }) {
776
769
  msgsRef=${msgsRef} peerDisplay=${peerDisplay} showToast=${showToast} toggleImportant=${toggleImportant}
777
770
  replyQuote=${replyQuote} setReplyQuote=${setReplyQuote} onQuoteReply=${startQuoteReply} composerFocus=${composerFocus}
778
771
  onTrackMsg=${onTrackMsg} onParkMsg=${onParkMsg} openMessageAi=${openMessageAi} submitInteractiveAnswers=${submitInteractiveAnswers}
779
- setMdViewer=${setMdViewer} openConversationAi=${openConversationAi} insertCommand=${insertCommand} setCmdFill=${setCmdFill}
780
- cancelTracked=${cancelTracked} openRecord=${openRecord} startSuggestedReply=${startSuggestedReply} doSend=${doSend} />` : null}
772
+ setMdViewer=${setMdViewer} openConversationAi=${openConversationAi} openConversationNotebook=${openConversationNotebook} insertCommand=${insertCommand} setCmdFill=${setCmdFill}
773
+ cancelTracked=${cancelTracked} openRecord=${openRecord} startSuggestedReply=${startSuggestedReply} doSend=${doSend} showLinkPreviews=${showLinkPreviews} toggleLinkPreviews=${toggleLinkPreviews}
774
+ threadAll=${threadAll} toggleThreadAll=${toggleThreadAll} />` : null}
781
775
 
782
776
  ${mode === 'tracked' ? html`<${TrackedPanel} activeTracked=${activeTracked} doneCount=${doneCount}
783
777
  openRecord=${openRecord} openTracked=${openTracked} cancelTracked=${cancelTracked} />` : null}
@@ -795,5 +789,8 @@ export default function InboxTab({ showToast }) {
795
789
  onClose=${() => setTrackMsg(null)} onDone=${loadLists} showToast=${showToast} />
796
790
  ${mdViewer && html`<${MarkdownViewer} url=${mdViewer.url} name=${mdViewer.name} onClose=${() => setMdViewer(null)} />`}
797
791
  ${aiReply && html`<${ReplyWithAiPopover} title=${aiReply.title} build=${aiReply.build} showToast=${showToast} onClose=${() => setAiReply(null)} />`}
792
+ ${nbConv && html`<${ConversationToNotebookPopover} title=${nbConv.title} promptText=${nbConv.promptText}
793
+ runServerSummary=${nbConv.runServerSummary} parkConversation=${nbConv.parkConversation}
794
+ showToast=${showToast} onClose=${() => setNbConv(null)} />`}
798
795
  </div>`;
799
796
  }
@@ -2,6 +2,9 @@
2
2
  * @file public/views/profile/landing-page.cards.js
3
3
  * @description Profile home dashboard cards, home sub-components, and the sidebar group model. Extracted from landing-page.js to satisfy max-file-lines.
4
4
  * @version-history
5
+ * 2026-07-19 — Re-add the orphaned OpenRouter Settings item (route id 'generator') to the Build & Share
6
+ * group — it lost its menu entry when the Generator feature was removed, leaving the AI-provider key
7
+ * config reachable only by deep link.
5
8
  * 2026-07-19 — AppDev tab (KB UI): learned-pitfall + template management surface, start-prompt copy, model badge
6
9
  * v1.2.0 — 2026-07-16 — Drop the per-item emoji icons from SIDEBAR_GROUPS and the Inbox nav
7
10
  * button — the sidebar renders label-only now.
@@ -591,6 +594,10 @@ export const SIDEBAR_GROUPS = [
591
594
  { id: 'skills', labelKey: 'skills.tabLabel' },
592
595
  { id: 'packages', labelKey: 'profile.tabs.packages' },
593
596
  { id: 'portfolio', labelKey: 'portfolio.tabLabel' },
597
+ /* AI-provider (OpenRouter) key + spend budget. Route id is still 'generator' — the Generator tab
598
+ * was repurposed to host only these settings when the Generator feature was removed (2026-07-18).
599
+ * Re-added to the menu 2026-07-19 after it was orphaned (reachable only by ?tab=generator). */
600
+ { id: 'generator', labelKey: 'profile.generator.openrouter.title' },
594
601
  { id: 'calibrator', labelKey: 'profile.calibrator.tabLabel' },
595
602
  /* TODO(owner 2026-06-10): "work" placement is undecided — parked at the bottom of
596
603
  * Build & Share until re-evaluated. */
@@ -15,6 +15,10 @@
15
15
  * - PresencePill + PresenceDialog — header status pill that opens the availability settings dialog
16
16
  * - LandingPage — main orchestrator (default export)
17
17
  * @version-history
18
+ * v3.12.1 — 2026-07-20 — Fix: the `aimeat-open-tab` handler force-opens (never toggles). Tapping a
19
+ * message push-notification while the Messages tab was already open toggled it CLOSED (back to
20
+ * Home) instead of switching to the new conversation; now it leaves the already-open tab in place
21
+ * and lets that tab's own listener consume the deep-link.
18
22
  * v3.12.0 — 2026-07-16 — Drop the per-item emoji icons from the sidebar (Home, Inbox, and each
19
23
  * grouped/pinned item render label-only) — cleaner, less visually noisy menu.
20
24
  * v3.11.0 — 2026-07-13 — Split into sibling modules for max-file-lines: modals →
@@ -281,7 +285,14 @@ export default function LandingPage({ tier, stats, homeUsage, homeAgents, sessio
281
285
  useEffect(() => {
282
286
  const handler = (e) => {
283
287
  const tabId = e.detail?.tabId;
284
- if (tabId) open(tabId, e.detail?.slot || 'main');
288
+ if (!tabId) return;
289
+ // Force-OPEN semantics (never toggle): a deep-link/cross-nav must land ON the tab. open()
290
+ // toggles, so calling it when that tab is already active would CLOSE it back to Home — the
291
+ // exact bug when a message notification is tapped while the Messages tab is already open. If
292
+ // it's already open, leave it; the tab's own aimeat-open-tab listener consumes the deep-link
293
+ // (e.g. inbox-tab opens the freshly-arrived conversation).
294
+ if (openViewRef.current?.tabId === tabId) return;
295
+ open(tabId, e.detail?.slot || 'main');
285
296
  };
286
297
  window.addEventListener('aimeat-open-tab', handler);
287
298
  return () => window.removeEventListener('aimeat-open-tab', handler);
@@ -32,11 +32,19 @@ const KIND_GROUPS = [
32
32
  ];
33
33
  const TIER_FILTERS = ['all', 'any', 'frontier', 'needs-doc'];
34
34
 
35
+ // The tier is an INSTRUCTION to the reader ("this API has no training-data priors, so an
36
+ // AI must fetch its doc"), not a statement that documentation is missing. The raw key
37
+ // `needs-doc` read as "docs missing" to everyone including the registry's own author, so
38
+ // the badge shows the instruction and keeps the key only as a CSS/filter value.
39
+ function tierLabel(tier) {
40
+ return t('profile.extensions.tierLabel.' + tier) || tier;
41
+ }
42
+
35
43
  function tierBadge(p) {
36
44
  if (!p.modelTier) return null;
37
45
  const measured = p.proofs && p.proofs.length;
38
46
  return html`<span class="ext-tier ext-tier-${p.modelTier}${measured ? ' ext-tier-measured' : ''}"
39
- title=${t('profile.extensions.tier.' + p.modelTier)}>${p.modelTier}</span>`;
47
+ title=${t('profile.extensions.tier.' + p.modelTier)}>${tierLabel(p.modelTier)}</span>`;
40
48
  }
41
49
 
42
50
  function statusBadge(p) {
@@ -157,7 +165,7 @@ export default function LibrariesTab() {
157
165
  <div class="lib-tier-filters">
158
166
  ${TIER_FILTERS.map(tf => html`
159
167
  <button class=${'btn-ghost lib-tier-btn' + (tier === tf ? ' lib-tier-active' : '')}
160
- onClick=${() => setTier(tf)}>${tf === 'all' ? t('librariesTab.tierAll') : tf}</button>`)}
168
+ onClick=${() => setTier(tf)}>${tf === 'all' ? t('librariesTab.tierAll') : tierLabel(tf)}</button>`)}
161
169
  </div>
162
170
  <label class="lib-measured-toggle">
163
171
  <input type="checkbox" checked=${measuredOnly} onChange=${e => setMeasuredOnly(e.target.checked)} />
@@ -91,7 +91,7 @@ export default function SkillsTab({ showToast }) {
91
91
  setEditorMd(full?.fileContents?.['SKILL.md'] ?? SKILL_TEMPLATE);
92
92
  setEditorVisibility(skill.visibility === 'public' ? 'public' : skill.visibility === 'members' ? 'members' : 'owner');
93
93
  setEditorOpen(true);
94
- window.scrollTo({ top: 0, behavior: 'smooth' });
94
+ (document.querySelector('.page-content') || window).scrollTo({ top: 0, behavior: 'smooth' });
95
95
  } catch (err) {
96
96
  showToast(t('skills.loadFailed') + ': ' + err.message, true);
97
97
  }
@@ -3,6 +3,11 @@
3
3
  * @description Profile tab for morsel wallet: balance overview, lifetime stats,
4
4
  * morsel request form, and transaction history with expandable details.
5
5
  * @version-history
6
+ * v1.5.1 — 2026-07-25 — The x402 chip reports every currency → token pair the node can settle
7
+ * (USD → USDC, EUR → EURC) instead of a single hardcoded token (TARGET-042).
8
+ * v1.5.0 — 2026-07-25 — Payout rails: an x402 USDC payout-address section beside the Stripe one, so a
9
+ * seller can set the address a stablecoin sale settles to and tell the two rails apart (Stripe moves
10
+ * fiat through a provider; x402 settles USDC on-chain to an address the seller controls).
6
11
  * v1.0.0 — 2026-03-16 — Initial wallet tab
7
12
  * v1.1.0 — 2026-03-17 — Replace inline styles with CSS classes
8
13
  * v1.2.0 — 2026-05-22 — Show info message for federated users instead of infinite spinner
@@ -83,6 +88,64 @@ function PspSection() {
83
88
  </div>`;
84
89
  }
85
90
 
91
+ /* "Stablecoin payouts (x402)" — the seller's on-chain payout address.
92
+ * A different rail from Stripe, and the difference matters at sale time: Stripe settles EUR/USD to a
93
+ * connected account through a provider that holds the funds; x402 settles a stablecoin on-chain
94
+ * straight to this address, non-custodially, with the node holding no key. The token follows the
95
+ * price (USD → USDC, EUR → EURC) and ONE address receives them all, so the chip reports the pairs
96
+ * the node can actually settle rather than naming a single token. A money sale over x402 without an
97
+ * address fails with SELLER_NO_X402_ADDRESS, which is exactly what this section prevents. */
98
+ function X402Section() {
99
+ const [state, setState] = useState(null);
100
+ const [addr, setAddr] = useState('');
101
+ const [busy, setBusy] = useState(false);
102
+ const [msg, setMsg] = useState('');
103
+ const load = useCallback(() => {
104
+ apiGet('/v1/commerce/payout').then(r => setState(r.data ?? null)).catch(() => setState(false));
105
+ }, []);
106
+ useEffect(() => { load(); }, [load]);
107
+ useEffect(() => {
108
+ const handler = () => load();
109
+ window.addEventListener('aimeat-live-update', handler);
110
+ return () => window.removeEventListener('aimeat-live-update', handler);
111
+ }, [load]);
112
+ if (state === null || state === false) return null;
113
+ const x = state.x402 || {};
114
+ if (!x.enabled) return null; // the operator has not enabled the rail on this node
115
+ const valid = /^0x[a-fA-F0-9]{40}$/.test(addr.trim());
116
+ async function save() {
117
+ setBusy(true); setMsg('');
118
+ try { await apiPut('/v1/commerce/payout/x402', { address: addr.trim() }); setAddr(''); setMsg(t('profile.wallet.x402Saved')); load(); }
119
+ catch (e) { setMsg(e.message || 'Save failed'); }
120
+ finally { setBusy(false); }
121
+ }
122
+ async function remove() {
123
+ setBusy(true); setMsg('');
124
+ try { await apiDelete('/v1/commerce/payout/x402'); setMsg(t('profile.wallet.x402Removed')); load(); }
125
+ catch (e) { setMsg(e.message || 'Remove failed'); }
126
+ finally { setBusy(false); }
127
+ }
128
+ return html`
129
+ <div class="section-title mt-2">${t('profile.wallet.x402Title')}</div>
130
+ <div class="section-desc">${t('profile.wallet.x402Desc')}</div>
131
+ <div class="card wallet-psp">
132
+ <div class="wallet-rail-row">
133
+ ${x.configured
134
+ ? html`<span class="pf-psp-chip pf-psp-chip--ok">${t('profile.wallet.x402Configured')} <code>${x.address}</code></span>`
135
+ : html`<span class="pf-psp-chip pf-psp-chip--warn">${t('profile.wallet.x402Missing')}</span>`}
136
+ <span class="pf-psp-chip">${(x.assets || []).map(a => `${a.currency} → ${a.symbol}`).join(' · ')} · ${x.network}${x.testnet ? ` · ${t('profile.wallet.x402Testnet')}` : ''}</span>
137
+ </div>
138
+ <div class="wallet-psp-row">
139
+ <input class="input-field input-sm wallet-psp-input" type="text" spellcheck="false" placeholder="0x…"
140
+ value=${addr} onInput=${(e) => setAddr(e.target.value)} />
141
+ <button class="btn-primary btn-sm" disabled=${busy || !valid} onClick=${save}>${t('profile.wallet.x402Save')}</button>
142
+ ${x.configured && html`<button class="btn-ghost btn-sm" disabled=${busy} onClick=${remove}>${t('profile.wallet.x402Remove')}</button>`}
143
+ </div>
144
+ ${addr.trim() && !valid && html`<span class="text-meta">${t('profile.wallet.x402Invalid')}</span>`}
145
+ ${msg && html`<span class="text-meta">${msg}</span>`}
146
+ </div>`;
147
+ }
148
+
86
149
  /* "Money purchases & sales" — real-money (EUR/USD) checkout activity, separate from morsels.
87
150
  * Purchases come from the buyer's checkout sessions, sales from received orders; both filtered to
88
151
  * money currencies (minor units → major). Renders nothing when there is no money activity. */
@@ -247,6 +310,7 @@ export default function WalletTab({ session, showToast, onStats }) {
247
310
 
248
311
  <!-- Selling & payment provider (individual seller's own Stripe key; EE nodes only) -->
249
312
  <${PspSection} />
313
+ <${X402Section} />
250
314
 
251
315
  <!-- Real-money (EUR/USD) purchases & sales, separate from the morsel ledger -->
252
316
  <${MoneyActivity} initial=${moneyInitial} />
@@ -146,7 +146,7 @@ export default function PublicWorkspaceViewer() {
146
146
  const el = document.getElementById(anchorId(d));
147
147
  if (el) { el.scrollIntoView({ behavior: 'smooth', block: 'start' }); return; }
148
148
  // Isolated single-page view: the picked page renders on the next tick; jump back to the top.
149
- setTimeout(() => window.scrollTo({ top: 0, behavior: 'smooth' }), 0);
149
+ setTimeout(() => (document.querySelector('.page-content') || window).scrollTo({ top: 0, behavior: 'smooth' }), 0);
150
150
  }, []);
151
151
 
152
152
  // On first load of the whole-space view, if a page was deep-linked, scroll to it.
@@ -159,7 +159,8 @@ export default function StartView() {
159
159
  const [idx, setIdx] = useState(0);
160
160
  const [answers, setAnswers] = useState({});
161
161
 
162
- useEffect(() => { window.scrollTo(0, 0); }, [phase, idx]);
162
+ // App-shell: .page-content owns the scroll (window no longer scrolls). Reset it to the top on step change.
163
+ useEffect(() => { (document.querySelector('.page-content') || window).scrollTo(0, 0); }, [phase, idx]);
163
164
 
164
165
  // Mark the body while this view is mounted so start.css's print rules (which blank everything
165
166
  // except .st-print-area) apply only on this page — view CSS is preloaded globally in spa.html,
@@ -0,0 +1,16 @@
1
+ /** One served library = a public name (aimeat-<name>.js) + its ESM entry under sdk-libs/. */
2
+ interface SdkLib {
3
+ /** The served basename, minus the `aimeat-` prefix and `.js` suffix (e.g. `speech`). */
4
+ name: string;
5
+ /** The entry source, relative to src/static/sdk-libs/ (e.g. `speech/index.js`). */
6
+ entry: string;
7
+ }
8
+ /**
9
+ * The migrated libraries. Phase 0 ships the pilot only; later phases append their entries here
10
+ * (and the drift guard makes sure every committed bundle stays in sync with its sources).
11
+ */
12
+ export declare const SDK_LIBS: SdkLib[];
13
+ /** Build every library to its committed dist bundle (pure disk write). */
14
+ export declare function buildSdkLibs(): Promise<void>;
15
+ export {};
16
+ //# sourceMappingURL=build-sdk-libs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-sdk-libs.d.ts","sourceRoot":"","sources":["../../scripts/build-sdk-libs.ts"],"names":[],"mappings":"AA0BA,6FAA6F;AAC7F,UAAU,MAAM;IACd,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,EAwB5B,CAAC;AA0BF,0EAA0E;AAC1E,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAKlD"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @file build-sdk-libs.ts
3
+ * @description Build step for the served browser SDK libraries. Bundles each componentized,
4
+ * JSDoc-typed ESM source under src/static/sdk-libs/ (one entry per library, sharing _core/)
5
+ * with esbuild into a classic IIFE, and writes it to src/static/sdk-libs/dist/aimeat-<name>.js.
6
+ * These generated bundles are committed (same model as src/static/app-catalog.html) and served
7
+ * verbatim at /v1/libs/aimeat-<name>.js with a tiny per-node config prelude prepended at serve
8
+ * time — replacing the old "JavaScript authored inside a TypeScript template string" approach.
9
+ * @structure
10
+ * - SDK_LIBS → the per-library entry registry (name → source entry)
11
+ * - bundleLib() → esbuild one entry → IIFE text (with generated-file banner)
12
+ * - buildSdkLibs() → write every dist/aimeat-<name>.js
13
+ * - checkSdkLibs() → --check: fail (non-zero) if any committed bundle is stale vs its sources
14
+ * @usage pnpm build:sdk · pnpm check:sdk (also run by `pnpm dev`)
15
+ * @version-history
16
+ * v1.0.0 — 2026-07-19 — Initial: esbuild IIFE bundler + drift check for the SDK-libs migration (Phase 0, pilot: speech).
17
+ */
18
+ import * as esbuild from 'esbuild';
19
+ import { readFileSync, writeFileSync, mkdirSync } from 'node:fs';
20
+ import { join, dirname } from 'node:path';
21
+ import { fileURLToPath } from 'node:url';
22
+ const __dirname = dirname(fileURLToPath(import.meta.url));
23
+ const SRC_DIR = join(__dirname, '..', 'src', 'static', 'sdk-libs');
24
+ const OUT_DIR = join(SRC_DIR, 'dist');
25
+ /**
26
+ * The migrated libraries. Phase 0 ships the pilot only; later phases append their entries here
27
+ * (and the drift guard makes sure every committed bundle stays in sync with its sources).
28
+ */
29
+ export const SDK_LIBS = [
30
+ { name: 'speech', entry: 'speech/index.js' },
31
+ { name: 'data', entry: 'data/index.js' },
32
+ { name: 'wallet', entry: 'wallet/index.js' },
33
+ { name: 'ai', entry: 'ai/index.js' },
34
+ { name: 'capabilities', entry: 'capabilities/index.js' },
35
+ { name: 'agents', entry: 'agents/index.js' },
36
+ { name: 'agentface', entry: 'agentface/index.js' },
37
+ { name: 'intake', entry: 'intake/index.js' },
38
+ { name: 'organism', entry: 'organism/index.js' },
39
+ { name: 'workflows', entry: 'workflows/index.js' },
40
+ { name: 'portfolio-standalone', entry: 'portfolio-standalone/index.js' },
41
+ { name: 'header', entry: 'header/index.js' },
42
+ { name: 'editor', entry: 'editor/index.js' },
43
+ { name: 'live', entry: 'live/index.js' },
44
+ { name: 'storage', entry: 'storage/index.js' },
45
+ { name: 'social', entry: 'social/index.js' },
46
+ { name: 'work', entry: 'work/index.js' },
47
+ { name: 'commerce', entry: 'commerce/index.js' },
48
+ { name: 'webmcp', entry: 'webmcp/index.js' },
49
+ { name: 'markdown', entry: 'markdown/index.js' },
50
+ { name: 'audio', entry: 'audio/index.js' },
51
+ { name: 'tunnel', entry: 'tunnel/index.js' },
52
+ { name: 'auth', entry: 'auth/index.js' },
53
+ ];
54
+ function banner(name) {
55
+ return (`// GENERATED FILE — do not edit directly. Source: src/static/sdk-libs/${name}/ (+ _core/).\n` +
56
+ `// Rebuild: pnpm build:sdk · Served at /v1/libs/aimeat-${name}.js (with a per-node config prelude).\n`);
57
+ }
58
+ /** Bundle one library entry to a self-contained classic IIFE (deterministic — no timestamps). */
59
+ async function bundleLib(lib) {
60
+ const result = await esbuild.build({
61
+ entryPoints: [join(SRC_DIR, lib.entry)],
62
+ bundle: true,
63
+ format: 'iife',
64
+ target: 'es2020',
65
+ platform: 'browser',
66
+ charset: 'utf8',
67
+ legalComments: 'none',
68
+ write: false,
69
+ logLevel: 'silent',
70
+ });
71
+ if (!result.outputFiles?.length)
72
+ throw new Error(`esbuild produced no output for ${lib.name}`);
73
+ return banner(lib.name) + result.outputFiles[0].text;
74
+ }
75
+ /** Build every library to its committed dist bundle (pure disk write). */
76
+ export async function buildSdkLibs() {
77
+ mkdirSync(OUT_DIR, { recursive: true });
78
+ for (const lib of SDK_LIBS) {
79
+ writeFileSync(join(OUT_DIR, `aimeat-${lib.name}.js`), await bundleLib(lib), 'utf-8');
80
+ }
81
+ }
82
+ /** --check: fail (non-zero) if any committed dist bundle is stale vs its sources, without writing. */
83
+ async function checkSdkLibs() {
84
+ let stale = false;
85
+ for (const lib of SDK_LIBS) {
86
+ const fresh = await bundleLib(lib);
87
+ const outFile = join(OUT_DIR, `aimeat-${lib.name}.js`);
88
+ let onDisk = '';
89
+ try {
90
+ onDisk = readFileSync(outFile, 'utf-8');
91
+ }
92
+ catch {
93
+ onDisk = '';
94
+ }
95
+ if (fresh !== onDisk) {
96
+ console.error(`✗ src/static/sdk-libs/dist/aimeat-${lib.name}.js is STALE vs src/static/sdk-libs/${lib.name}/ sources.`);
97
+ stale = true;
98
+ }
99
+ }
100
+ if (stale) {
101
+ console.error(' Run `pnpm build:sdk` and commit the regenerated bundle(s).');
102
+ process.exit(1);
103
+ }
104
+ console.log(`✓ ${SDK_LIBS.length} SDK lib bundle(s) in sync with their sources`);
105
+ }
106
+ // Run when invoked directly (tsx scripts/build-sdk-libs.ts [--check]).
107
+ if (import.meta.url === `file://${process.argv[1]}` || process.argv[1]?.endsWith('build-sdk-libs.ts')) {
108
+ const check = process.argv.includes('--check');
109
+ (check ? checkSdkLibs() : buildSdkLibs().then(() => console.log(`✓ ${SDK_LIBS.length} SDK lib(s) built → src/static/sdk-libs/dist/`)))
110
+ .catch((err) => { console.error('✗ SDK libs build failed:', err.message); process.exit(1); });
111
+ }
112
+ //# sourceMappingURL=build-sdk-libs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-sdk-libs.js","sourceRoot":"","sources":["../../scripts/build-sdk-libs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=check-openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-openapi.d.ts","sourceRoot":"","sources":["../../scripts/check-openapi.ts"],"names":[],"mappings":""}