aimeat 1.40.1 → 2.1.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 (1816) hide show
  1. package/README.md +24 -15
  2. package/dist/.env.example +528 -495
  3. package/dist/locales/en.json +349 -298
  4. package/dist/locales/fi.json +349 -298
  5. package/dist/public/components/ContactPicker.js +145 -0
  6. package/dist/public/components/EmptyState.js +22 -7
  7. package/dist/public/components/LinkPreview.js +101 -0
  8. package/dist/public/components/NotificationBell.js +110 -8
  9. package/dist/public/cortex-bundled/aimeat-dag.js +553 -0
  10. package/dist/public/cortex-bundled/aimeat-dag.yaml +77 -0
  11. package/dist/public/cortex-bundled/aimeat-flow.js +225 -0
  12. package/dist/public/cortex-bundled/aimeat-flow.yaml +101 -0
  13. package/dist/public/cortex-bundled/aimeat-ui-motion.js +323 -0
  14. package/dist/public/cortex-bundled/aimeat-ui-motion.yaml +86 -0
  15. package/dist/public/css/components/contact-picker.css +26 -0
  16. package/dist/public/css/theme.css +109 -9
  17. package/dist/public/css/views/admin.css +59 -2
  18. package/dist/public/css/views/agents-detail.css +78 -14
  19. package/dist/public/css/views/app-grant.css +18 -0
  20. package/dist/public/css/views/capabilities.css +2 -0
  21. package/dist/public/css/views/companies.css +0 -1
  22. package/dist/public/css/views/inbox.css +188 -7
  23. package/dist/public/css/views/landing.css +2 -0
  24. package/dist/public/css/views/members.css +0 -1
  25. package/dist/public/css/views/my-company.css +5 -5
  26. package/dist/public/css/views/offers.css +0 -3
  27. package/dist/public/css/views/portal-dev.css +49 -0
  28. package/dist/public/css/views/portfolio.css +46 -0
  29. package/dist/public/css/views/profile.css +200 -17
  30. package/dist/public/css/views/public-knowledge-viewer.css +0 -17
  31. package/dist/public/css/views/scheduler.css +37 -1
  32. package/dist/public/css/views/workflows.css +1 -1
  33. package/dist/public/js/services/admin.js +10 -0
  34. package/dist/public/js/services/agent-activity.js +15 -0
  35. package/dist/public/js/services/agent-directives.js +14 -0
  36. package/dist/public/js/services/agent-integration.js +15 -0
  37. package/dist/public/js/services/agent-messages.js +14 -0
  38. package/dist/public/js/services/agent-tasks.js +14 -0
  39. package/dist/public/js/services/appdev.js +67 -0
  40. package/dist/public/js/services/apps.js +47 -3
  41. package/dist/public/js/services/calibrator.js +14 -1
  42. package/dist/public/js/services/consent.js +17 -0
  43. package/dist/public/js/services/contacts.js +47 -0
  44. package/dist/public/js/services/ecosystem.js +14 -0
  45. package/dist/public/js/services/generator.js +71 -35
  46. package/dist/public/js/services/knowledge.js +14 -0
  47. package/dist/public/js/services/ledger.js +18 -0
  48. package/dist/public/js/services/living.js +14 -0
  49. package/dist/public/js/services/messages-ai-prompts.js +38 -0
  50. package/dist/public/js/services/messages.js +33 -5
  51. package/dist/public/js/services/notebook.js +76 -0
  52. package/dist/public/js/services/organisms.js +48 -4
  53. package/dist/public/js/services/schedules.js +19 -2
  54. package/dist/public/js/services/security.js +14 -0
  55. package/dist/public/js/services/unfurl.js +43 -0
  56. package/dist/public/js/services/work.js +14 -0
  57. package/dist/public/lib/VENDORED.md +77 -0
  58. package/dist/public/lib/drawflow@0.min.css +1 -0
  59. package/dist/public/lib/drawflow@0.min.js +1 -0
  60. package/dist/public/lib/fonts/LICENSE.md +13 -0
  61. package/dist/public/lib/fonts/baloo2-latin-ext.woff2 +0 -0
  62. package/dist/public/lib/fonts/baloo2-latin.woff2 +0 -0
  63. package/dist/public/lib/fonts/bangers-latin-ext.woff2 +0 -0
  64. package/dist/public/lib/fonts/bangers-latin.woff2 +0 -0
  65. package/dist/public/lib/fonts.css +51 -0
  66. package/dist/public/lib/p5@1.min.js +2 -0
  67. package/dist/public/lib/phaser@3.min.js +1 -0
  68. package/dist/public/lib/pixi-unsafe-eval@8.min.js +22 -0
  69. package/dist/public/lib/pixi@8.min.js +2329 -0
  70. package/dist/public/lib/realtime.js +120 -3
  71. package/dist/public/lib/samples/LICENSE.md +31 -8
  72. package/dist/public/lib/samples/bass/A1.mp3 +0 -0
  73. package/dist/public/lib/samples/bass/B2.mp3 +0 -0
  74. package/dist/public/lib/samples/bass/D2.mp3 +0 -0
  75. package/dist/public/lib/samples/bass/E1.mp3 +0 -0
  76. package/dist/public/lib/samples/bass/E3.mp3 +0 -0
  77. package/dist/public/lib/samples/bass/G2.mp3 +0 -0
  78. package/dist/public/lib/samples/drums/clap.mp3 +0 -0
  79. package/dist/public/lib/samples/drums/cowbell.mp3 +0 -0
  80. package/dist/public/lib/samples/drums/crash.mp3 +0 -0
  81. package/dist/public/lib/samples/drums/hihat-open.mp3 +0 -0
  82. package/dist/public/lib/samples/drums/hihat.mp3 +0 -0
  83. package/dist/public/lib/samples/drums/kick.mp3 +0 -0
  84. package/dist/public/lib/samples/drums/ride.mp3 +0 -0
  85. package/dist/public/lib/samples/drums/snare.mp3 +0 -0
  86. package/dist/public/lib/samples/drums/tom-high.mp3 +0 -0
  87. package/dist/public/lib/samples/drums/tom-low.mp3 +0 -0
  88. package/dist/public/lib/samples/drums/tom-mid.mp3 +0 -0
  89. package/dist/public/lib/samples/epiano/C2.mp3 +0 -0
  90. package/dist/public/lib/samples/epiano/C3.mp3 +0 -0
  91. package/dist/public/lib/samples/epiano/C4.mp3 +0 -0
  92. package/dist/public/lib/samples/epiano/C5.mp3 +0 -0
  93. package/dist/public/lib/samples/epiano/C6.mp3 +0 -0
  94. package/dist/public/lib/samples/epiano/G2.mp3 +0 -0
  95. package/dist/public/lib/samples/epiano/G3.mp3 +0 -0
  96. package/dist/public/lib/samples/epiano/G4.mp3 +0 -0
  97. package/dist/public/lib/samples/epiano/G5.mp3 +0 -0
  98. package/dist/public/lib/samples/flute/A4.mp3 +0 -0
  99. package/dist/public/lib/samples/flute/A5.mp3 +0 -0
  100. package/dist/public/lib/samples/flute/C4.mp3 +0 -0
  101. package/dist/public/lib/samples/flute/C5.mp3 +0 -0
  102. package/dist/public/lib/samples/flute/C6.mp3 +0 -0
  103. package/dist/public/lib/samples/flute/E4.mp3 +0 -0
  104. package/dist/public/lib/samples/flute/E5.mp3 +0 -0
  105. package/dist/public/lib/samples/guitar/A2.mp3 +0 -0
  106. package/dist/public/lib/samples/guitar/A4.mp3 +0 -0
  107. package/dist/public/lib/samples/guitar/B3.mp3 +0 -0
  108. package/dist/public/lib/samples/guitar/D3.mp3 +0 -0
  109. package/dist/public/lib/samples/guitar/E2.mp3 +0 -0
  110. package/dist/public/lib/samples/guitar/E4.mp3 +0 -0
  111. package/dist/public/lib/samples/guitar/E5.mp3 +0 -0
  112. package/dist/public/lib/samples/guitar/G3.mp3 +0 -0
  113. package/dist/public/lib/samples/guitar-el/A2.mp3 +0 -0
  114. package/dist/public/lib/samples/guitar-el/A4.mp3 +0 -0
  115. package/dist/public/lib/samples/guitar-el/B3.mp3 +0 -0
  116. package/dist/public/lib/samples/guitar-el/D3.mp3 +0 -0
  117. package/dist/public/lib/samples/guitar-el/E2.mp3 +0 -0
  118. package/dist/public/lib/samples/guitar-el/E4.mp3 +0 -0
  119. package/dist/public/lib/samples/guitar-el/E5.mp3 +0 -0
  120. package/dist/public/lib/samples/guitar-el/G3.mp3 +0 -0
  121. package/dist/public/lib/samples/guitar-steel/A2.mp3 +0 -0
  122. package/dist/public/lib/samples/guitar-steel/A4.mp3 +0 -0
  123. package/dist/public/lib/samples/guitar-steel/B3.mp3 +0 -0
  124. package/dist/public/lib/samples/guitar-steel/D3.mp3 +0 -0
  125. package/dist/public/lib/samples/guitar-steel/E2.mp3 +0 -0
  126. package/dist/public/lib/samples/guitar-steel/E4.mp3 +0 -0
  127. package/dist/public/lib/samples/guitar-steel/E5.mp3 +0 -0
  128. package/dist/public/lib/samples/guitar-steel/G3.mp3 +0 -0
  129. package/dist/public/lib/samples/organ/C2.mp3 +0 -0
  130. package/dist/public/lib/samples/organ/C3.mp3 +0 -0
  131. package/dist/public/lib/samples/organ/C4.mp3 +0 -0
  132. package/dist/public/lib/samples/organ/C5.mp3 +0 -0
  133. package/dist/public/lib/samples/organ/C6.mp3 +0 -0
  134. package/dist/public/lib/samples/organ/G2.mp3 +0 -0
  135. package/dist/public/lib/samples/organ/G3.mp3 +0 -0
  136. package/dist/public/lib/samples/organ/G4.mp3 +0 -0
  137. package/dist/public/lib/samples/organ/G5.mp3 +0 -0
  138. package/dist/public/lib/samples/strings/C2.mp3 +0 -0
  139. package/dist/public/lib/samples/strings/C3.mp3 +0 -0
  140. package/dist/public/lib/samples/strings/C4.mp3 +0 -0
  141. package/dist/public/lib/samples/strings/C5.mp3 +0 -0
  142. package/dist/public/lib/samples/strings/C6.mp3 +0 -0
  143. package/dist/public/lib/samples/strings/G2.mp3 +0 -0
  144. package/dist/public/lib/samples/strings/G3.mp3 +0 -0
  145. package/dist/public/lib/samples/strings/G4.mp3 +0 -0
  146. package/dist/public/lib/samples/strings/G5.mp3 +0 -0
  147. package/dist/public/lib/samples/trumpet/A3.mp3 +0 -0
  148. package/dist/public/lib/samples/trumpet/A4.mp3 +0 -0
  149. package/dist/public/lib/samples/trumpet/A5.mp3 +0 -0
  150. package/dist/public/lib/samples/trumpet/C4.mp3 +0 -0
  151. package/dist/public/lib/samples/trumpet/C5.mp3 +0 -0
  152. package/dist/public/lib/samples/trumpet/E3.mp3 +0 -0
  153. package/dist/public/lib/samples/trumpet/E4.mp3 +0 -0
  154. package/dist/public/lib/samples/trumpet/E5.mp3 +0 -0
  155. package/dist/public/llms-template.txt +42 -21
  156. package/dist/public/spa.html +42 -34
  157. package/dist/public/style-testbed.html +0 -2
  158. package/dist/public/sw.js +23 -4
  159. package/dist/public/views/_template.js +21 -8
  160. package/dist/public/views/admin/cortex-tab.js +2 -2
  161. package/dist/public/views/admin/database-tab.js +140 -0
  162. package/dist/public/views/admin/feedback-tab.js +162 -0
  163. package/dist/public/views/admin/owners-tab.js +19 -29
  164. package/dist/public/views/admin/push-tab.js +2 -2
  165. package/dist/public/views/admin/services-tab.js +4 -4
  166. package/dist/public/views/admin/shared.js +9 -3
  167. package/dist/public/views/admin/sharing-groups-tab.js +13 -25
  168. package/dist/public/views/admin/stats-tab.js +33 -33
  169. package/dist/public/views/admin.js +52 -49
  170. package/dist/public/views/app-grant.js +24 -4
  171. package/dist/public/views/companies.js +9 -7
  172. package/dist/public/views/help.js +2 -1
  173. package/dist/public/views/invite-accept.js +64 -19
  174. package/dist/public/views/landing.js +41 -8
  175. package/dist/public/views/members.js +4 -2
  176. package/dist/public/views/my-company.js +27 -77
  177. package/dist/public/views/my-company.payments.js +177 -0
  178. package/dist/public/views/portal-classic.js +0 -4
  179. package/dist/public/views/portal-dev.js +11 -0
  180. package/dist/public/views/portal-dev.panels.js +52 -58
  181. package/dist/public/views/portal.components.js +18 -36
  182. package/dist/public/views/portal.prompts.js +9 -10
  183. package/dist/public/views/portfolio.js +61 -6
  184. package/dist/public/views/profile/access-tab/access-tokens.js +3 -3
  185. package/dist/public/views/profile/access-tab/agent-defaults.js +3 -3
  186. package/dist/public/views/profile/access-tab/connected-apps.js +5 -3
  187. package/dist/public/views/profile/access-tab/sharing-groups.js +8 -7
  188. package/dist/public/views/profile/access-tab.js +26 -10
  189. package/dist/public/views/profile/agents/agent-card.js +16 -5
  190. package/dist/public/views/profile/agents/tab-activity.js +27 -9
  191. package/dist/public/views/profile/agents/tab-agent-config.js +4 -1
  192. package/dist/public/views/profile/agents/tab-contracts.js +11 -3
  193. package/dist/public/views/profile/agents/tab-data-access.js +36 -20
  194. package/dist/public/views/profile/agents/tab-directives.js +2 -1
  195. package/dist/public/views/profile/agents/tab-integration.js +46 -23
  196. package/dist/public/views/profile/agents/tab-messages.js +37 -6
  197. package/dist/public/views/profile/agents/tab-quality.js +32 -8
  198. package/dist/public/views/profile/agents/tab-schedules.js +15 -10
  199. package/dist/public/views/profile/agents/tab-usage.js +19 -8
  200. package/dist/public/views/profile/agents-capabilities-subtab.js +3 -3
  201. package/dist/public/views/profile/agents-tab.js +11 -1
  202. package/dist/public/views/profile/appdev-tab.js +275 -0
  203. package/dist/public/views/profile/apps-tab.js +248 -2
  204. package/dist/public/views/profile/calibrator-batch.js +2 -2
  205. package/dist/public/views/profile/calibrator-tab.js +69 -37
  206. package/dist/public/views/profile/capabilities-tab.js +24 -13
  207. package/dist/public/views/profile/contacts-tab.js +139 -0
  208. package/dist/public/views/profile/data-wallet-tab.js +37 -18
  209. package/dist/public/views/profile/discover-tab.js +2 -1
  210. package/dist/public/views/profile/ecosystem-tab.automation.js +21 -7
  211. package/dist/public/views/profile/extensions-tab.js +4 -2
  212. package/dist/public/views/profile/extensions-tab.maturity.js +40 -0
  213. package/dist/public/views/profile/generator-dashboard/DebugPanel.js +16 -9
  214. package/dist/public/views/profile/generator-dashboard/use-dashboard-core.js +46 -26
  215. package/dist/public/views/profile/generator-dashboard/use-edit-mode.js +29 -25
  216. package/dist/public/views/profile/generator-dashboard/use-test-execution.js +14 -14
  217. package/dist/public/views/profile/generator-detail.ai.js +21 -0
  218. package/dist/public/views/profile/generator-detail.js +59 -26
  219. package/dist/public/views/profile/generator-detail.results.js +1 -1
  220. package/dist/public/views/profile/generator-settings.js +51 -47
  221. package/dist/public/views/profile/generator-tab.js +28 -7
  222. package/dist/public/views/profile/inbox-tab/ai-actions.js +86 -0
  223. package/dist/public/views/profile/inbox-tab/components.js +229 -14
  224. package/dist/public/views/profile/inbox-tab/helpers.js +38 -0
  225. package/dist/public/views/profile/inbox-tab/panels.js +51 -6
  226. package/dist/public/views/profile/inbox-tab/use-thread-ux.js +121 -0
  227. package/dist/public/views/profile/inbox-tab.js +134 -90
  228. package/dist/public/views/profile/knowledge-tab.helpers.js +20 -0
  229. package/dist/public/views/profile/knowledge-tab.js +31 -28
  230. package/dist/public/views/profile/landing-page.cards.js +66 -46
  231. package/dist/public/views/profile/landing-page.js +18 -6
  232. package/dist/public/views/profile/landing-page.modals.js +5 -2
  233. package/dist/public/views/profile/libraries-tab.js +196 -0
  234. package/dist/public/views/profile/living-tab.js +11 -0
  235. package/dist/public/views/profile/memory-tab.js +45 -4
  236. package/dist/public/views/profile/node-stats-tab.js +29 -24
  237. package/dist/public/views/profile/notebook-card.js +1 -1
  238. package/dist/public/views/profile/notebook-tab.js +20 -1
  239. package/dist/public/views/profile/offers-tab.js +2 -1
  240. package/dist/public/views/profile/openrouter-settings.js +613 -0
  241. package/dist/public/views/profile/organisms/invite-panel.js +254 -0
  242. package/dist/public/views/profile/organisms/members.js +110 -177
  243. package/dist/public/views/profile/organisms/participants-panel.js +6 -2
  244. package/dist/public/views/profile/organisms/skills-panel.js +2 -1
  245. package/dist/public/views/profile/organisms/workspace/generator.js +1 -1
  246. package/dist/public/views/profile/organisms-tab.js +24 -16
  247. package/dist/public/views/profile/packages-tab.js +28 -38
  248. package/dist/public/views/profile/scheduler-calendar.js +72 -4
  249. package/dist/public/views/profile/scheduler-tab.js +16 -5
  250. package/dist/public/views/profile/security-tab.js +44 -44
  251. package/dist/public/views/profile/skills-tab.js +4 -3
  252. package/dist/public/views/profile/wallet-tab.js +34 -7
  253. package/dist/public/views/profile/work-tab.js +10 -1
  254. package/dist/public/views/profile/workflows-tab.js +3 -2
  255. package/dist/public/views/profile.js +38 -44
  256. package/dist/public/views/public-knowledge-viewer.js +6 -7
  257. package/dist/public/views/public-workspace-viewer.js +1 -1
  258. package/dist/public/views/start-flows.js +16 -0
  259. package/dist/public/views/start.js +2 -1
  260. package/dist/scripts/aeb-ledger.d.ts +2 -0
  261. package/dist/scripts/aeb-ledger.d.ts.map +1 -0
  262. package/dist/scripts/aeb-ledger.js +28 -0
  263. package/dist/scripts/aeb-ledger.js.map +1 -0
  264. package/dist/scripts/aeb-prove.d.ts +2 -0
  265. package/dist/scripts/aeb-prove.d.ts.map +1 -0
  266. package/dist/scripts/aeb-prove.js +124 -0
  267. package/dist/scripts/aeb-prove.js.map +1 -0
  268. package/dist/scripts/archive-stale-versions.js +1 -59
  269. package/dist/scripts/archive-stale-versions.js.map +1 -1
  270. package/dist/scripts/audit-mcp-tools.d.ts +1 -0
  271. package/dist/scripts/audit-mcp-tools.d.ts.map +1 -1
  272. package/dist/scripts/audit-mcp-tools.js +25 -0
  273. package/dist/scripts/audit-mcp-tools.js.map +1 -1
  274. package/dist/scripts/build-sdk-libs.d.ts +16 -0
  275. package/dist/scripts/build-sdk-libs.d.ts.map +1 -0
  276. package/dist/scripts/build-sdk-libs.js +112 -0
  277. package/dist/scripts/build-sdk-libs.js.map +1 -0
  278. package/dist/scripts/consent-audit-prune.js +5 -58
  279. package/dist/scripts/consent-audit-prune.js.map +1 -1
  280. package/dist/scripts/db-reset.d.ts +3 -3
  281. package/dist/scripts/db-reset.js +21 -62
  282. package/dist/scripts/db-reset.js.map +1 -1
  283. package/dist/scripts/kill-port.js +25 -5
  284. package/dist/scripts/kill-port.js.map +1 -1
  285. package/dist/scripts/kill-test-servers.d.ts +3 -0
  286. package/dist/scripts/kill-test-servers.d.ts.map +1 -0
  287. package/dist/scripts/kill-test-servers.js +84 -0
  288. package/dist/scripts/kill-test-servers.js.map +1 -0
  289. package/dist/scripts/migrate-to-postgres-kysely.d.ts +2 -0
  290. package/dist/scripts/migrate-to-postgres-kysely.d.ts.map +1 -0
  291. package/dist/scripts/migrate-to-postgres-kysely.js +194 -0
  292. package/dist/scripts/migrate-to-postgres-kysely.js.map +1 -0
  293. package/dist/scripts/reassign-apps.js +1 -1
  294. package/dist/scripts/telemetry-prune.d.ts +2 -1
  295. package/dist/scripts/telemetry-prune.d.ts.map +1 -1
  296. package/dist/scripts/telemetry-prune.js +7 -58
  297. package/dist/scripts/telemetry-prune.js.map +1 -1
  298. package/dist/src/auth/middleware.d.ts +9 -0
  299. package/dist/src/auth/middleware.d.ts.map +1 -1
  300. package/dist/src/auth/middleware.js +31 -0
  301. package/dist/src/auth/middleware.js.map +1 -1
  302. package/dist/src/cli/config-import.js +2 -2
  303. package/dist/src/cli/config-import.js.map +1 -1
  304. package/dist/src/cli/connect/auth.d.ts +15 -0
  305. package/dist/src/cli/connect/auth.d.ts.map +1 -1
  306. package/dist/src/cli/connect/auth.js +25 -6
  307. package/dist/src/cli/connect/auth.js.map +1 -1
  308. package/dist/src/cli/connect/keychain.d.ts +9 -0
  309. package/dist/src/cli/connect/keychain.d.ts.map +1 -1
  310. package/dist/src/cli/connect/keychain.js +21 -8
  311. package/dist/src/cli/connect/keychain.js.map +1 -1
  312. package/dist/src/cli/connect/mcp/tools/agent-management.d.ts +2 -0
  313. package/dist/src/cli/connect/mcp/tools/agent-management.d.ts.map +1 -1
  314. package/dist/src/cli/connect/mcp/tools/agent-management.js +8 -0
  315. package/dist/src/cli/connect/mcp/tools/agent-management.js.map +1 -1
  316. package/dist/src/cli/connect/mcp/tools/appdev.d.ts +17 -0
  317. package/dist/src/cli/connect/mcp/tools/appdev.d.ts.map +1 -0
  318. package/dist/src/cli/connect/mcp/tools/appdev.js +123 -0
  319. package/dist/src/cli/connect/mcp/tools/appdev.js.map +1 -0
  320. package/dist/src/cli/connect/mcp/tools/apps.d.ts +3 -1
  321. package/dist/src/cli/connect/mcp/tools/apps.d.ts.map +1 -1
  322. package/dist/src/cli/connect/mcp/tools/apps.js +49 -1
  323. package/dist/src/cli/connect/mcp/tools/apps.js.map +1 -1
  324. package/dist/src/cli/connect/mcp/tools/commerce.d.ts +16 -0
  325. package/dist/src/cli/connect/mcp/tools/commerce.d.ts.map +1 -0
  326. package/dist/src/cli/connect/mcp/tools/commerce.js +102 -0
  327. package/dist/src/cli/connect/mcp/tools/commerce.js.map +1 -0
  328. package/dist/src/cli/connect/mcp/tools/contacts.d.ts +13 -0
  329. package/dist/src/cli/connect/mcp/tools/contacts.d.ts.map +1 -0
  330. package/dist/src/cli/connect/mcp/tools/contacts.js +35 -0
  331. package/dist/src/cli/connect/mcp/tools/contacts.js.map +1 -0
  332. package/dist/src/cli/connect/mcp/tools/dm-messages.d.ts +3 -0
  333. package/dist/src/cli/connect/mcp/tools/dm-messages.d.ts.map +1 -1
  334. package/dist/src/cli/connect/mcp/tools/dm-messages.js +24 -0
  335. package/dist/src/cli/connect/mcp/tools/dm-messages.js.map +1 -1
  336. package/dist/src/cli/connect/mcp/tools/exchange.d.ts +18 -0
  337. package/dist/src/cli/connect/mcp/tools/exchange.d.ts.map +1 -0
  338. package/dist/src/cli/connect/mcp/tools/exchange.js +170 -0
  339. package/dist/src/cli/connect/mcp/tools/exchange.js.map +1 -0
  340. package/dist/src/cli/connect/mcp/tools/feedback.d.ts +14 -0
  341. package/dist/src/cli/connect/mcp/tools/feedback.d.ts.map +1 -0
  342. package/dist/src/cli/connect/mcp/tools/feedback.js +29 -0
  343. package/dist/src/cli/connect/mcp/tools/feedback.js.map +1 -0
  344. package/dist/src/cli/connect/mcp/tools/index.d.ts.map +1 -1
  345. package/dist/src/cli/connect/mcp/tools/index.js +12 -0
  346. package/dist/src/cli/connect/mcp/tools/index.js.map +1 -1
  347. package/dist/src/cli/connect/mcp/tools/onboarding.d.ts.map +1 -1
  348. package/dist/src/cli/connect/mcp/tools/onboarding.js +4 -1
  349. package/dist/src/cli/connect/mcp/tools/onboarding.js.map +1 -1
  350. package/dist/src/cli/connect/mcp/tools/operator.d.ts +18 -0
  351. package/dist/src/cli/connect/mcp/tools/operator.d.ts.map +1 -0
  352. package/dist/src/cli/connect/mcp/tools/operator.js +65 -0
  353. package/dist/src/cli/connect/mcp/tools/operator.js.map +1 -0
  354. package/dist/src/cli/connect/mcp/tools/organisms.d.ts +2 -0
  355. package/dist/src/cli/connect/mcp/tools/organisms.d.ts.map +1 -1
  356. package/dist/src/cli/connect/mcp/tools/organisms.js +101 -2
  357. package/dist/src/cli/connect/mcp/tools/organisms.js.map +1 -1
  358. package/dist/src/cli/connect/mcp/tools/workflows.d.ts +1 -0
  359. package/dist/src/cli/connect/mcp/tools/workflows.d.ts.map +1 -1
  360. package/dist/src/cli/connect/mcp/tools/workflows.js +13 -0
  361. package/dist/src/cli/connect/mcp/tools/workflows.js.map +1 -1
  362. package/dist/src/cli/connect/tool-call-defs-agent.d.ts +6 -0
  363. package/dist/src/cli/connect/tool-call-defs-agent.d.ts.map +1 -1
  364. package/dist/src/cli/connect/tool-call-defs-agent.js +126 -0
  365. package/dist/src/cli/connect/tool-call-defs-agent.js.map +1 -1
  366. package/dist/src/cli/connect/tool-call-defs-apps.d.ts +4 -0
  367. package/dist/src/cli/connect/tool-call-defs-apps.d.ts.map +1 -1
  368. package/dist/src/cli/connect/tool-call-defs-apps.js +379 -1
  369. package/dist/src/cli/connect/tool-call-defs-apps.js.map +1 -1
  370. package/dist/src/cli/connect/tool-call-defs-exchange.d.ts +3 -0
  371. package/dist/src/cli/connect/tool-call-defs-exchange.d.ts.map +1 -0
  372. package/dist/src/cli/connect/tool-call-defs-exchange.js +146 -0
  373. package/dist/src/cli/connect/tool-call-defs-exchange.js.map +1 -0
  374. package/dist/src/cli/connect/tool-call-defs-organism.d.ts.map +1 -1
  375. package/dist/src/cli/connect/tool-call-defs-organism.js +46 -1
  376. package/dist/src/cli/connect/tool-call-defs-organism.js.map +1 -1
  377. package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
  378. package/dist/src/cli/connect/tool-call.js +2 -0
  379. package/dist/src/cli/connect/tool-call.js.map +1 -1
  380. package/dist/src/cli/init-wizard/generate.js +2 -2
  381. package/dist/src/cli/init-wizard/generate.js.map +1 -1
  382. package/dist/src/cli/init-wizard/helpers.d.ts +1 -1
  383. package/dist/src/cli/init-wizard/helpers.d.ts.map +1 -1
  384. package/dist/src/cli/init-wizard/helpers.js +2 -5
  385. package/dist/src/cli/init-wizard/helpers.js.map +1 -1
  386. package/dist/src/cli/init-wizard/presets.d.ts.map +1 -1
  387. package/dist/src/cli/init-wizard/presets.js +0 -1
  388. package/dist/src/cli/init-wizard/presets.js.map +1 -1
  389. package/dist/src/cli/init-wizard/steps-core.d.ts.map +1 -1
  390. package/dist/src/cli/init-wizard/steps-core.js +7 -11
  391. package/dist/src/cli/init-wizard/steps-core.js.map +1 -1
  392. package/dist/src/commerce/sellable-resolvers.d.ts +11 -1
  393. package/dist/src/commerce/sellable-resolvers.d.ts.map +1 -1
  394. package/dist/src/commerce/sellable-resolvers.js +55 -0
  395. package/dist/src/commerce/sellable-resolvers.js.map +1 -1
  396. package/dist/src/commerce/session-service.d.ts +14 -0
  397. package/dist/src/commerce/session-service.d.ts.map +1 -1
  398. package/dist/src/commerce/session-service.js +1 -1
  399. package/dist/src/commerce/session-service.js.map +1 -1
  400. package/dist/src/commerce/test-money-handler.d.ts +5 -0
  401. package/dist/src/commerce/test-money-handler.d.ts.map +1 -0
  402. package/dist/src/commerce/test-money-handler.js +27 -0
  403. package/dist/src/commerce/test-money-handler.js.map +1 -0
  404. package/dist/src/commerce/x402-facilitator.d.ts +113 -0
  405. package/dist/src/commerce/x402-facilitator.d.ts.map +1 -0
  406. package/dist/src/commerce/x402-facilitator.js +143 -0
  407. package/dist/src/commerce/x402-facilitator.js.map +1 -0
  408. package/dist/src/commerce/x402-handler.d.ts +35 -0
  409. package/dist/src/commerce/x402-handler.d.ts.map +1 -0
  410. package/dist/src/commerce/x402-handler.js +54 -0
  411. package/dist/src/commerce/x402-handler.js.map +1 -0
  412. package/dist/src/commerce/x402.d.ts +32 -8
  413. package/dist/src/commerce/x402.d.ts.map +1 -1
  414. package/dist/src/commerce/x402.js +41 -9
  415. package/dist/src/commerce/x402.js.map +1 -1
  416. package/dist/src/config-types.d.ts +21 -2
  417. package/dist/src/config-types.d.ts.map +1 -1
  418. package/dist/src/config.d.ts.map +1 -1
  419. package/dist/src/config.js +27 -5
  420. package/dist/src/config.js.map +1 -1
  421. package/dist/src/data/app-templates/components.d.ts +13 -1
  422. package/dist/src/data/app-templates/components.d.ts.map +1 -1
  423. package/dist/src/data/app-templates/components.js +149 -1
  424. package/dist/src/data/app-templates/components.js.map +1 -1
  425. package/dist/src/data/app-templates/shells.d.ts +7 -3
  426. package/dist/src/data/app-templates/shells.d.ts.map +1 -1
  427. package/dist/src/data/app-templates/shells.js +10 -6
  428. package/dist/src/data/app-templates/shells.js.map +1 -1
  429. package/dist/src/data/app-templates.d.ts +13 -0
  430. package/dist/src/data/app-templates.d.ts.map +1 -1
  431. package/dist/src/data/app-templates.js +39 -1
  432. package/dist/src/data/app-templates.js.map +1 -1
  433. package/dist/src/data/appdev-pitfalls.d.ts +58 -0
  434. package/dist/src/data/appdev-pitfalls.d.ts.map +1 -0
  435. package/dist/src/data/appdev-pitfalls.js +365 -0
  436. package/dist/src/data/appdev-pitfalls.js.map +1 -0
  437. package/dist/src/data/builtin-skills.d.ts +6 -0
  438. package/dist/src/data/builtin-skills.d.ts.map +1 -1
  439. package/dist/src/data/builtin-skills.js +151 -0
  440. package/dist/src/data/builtin-skills.js.map +1 -1
  441. package/dist/src/data/library-packs/cortex.d.ts +18 -0
  442. package/dist/src/data/library-packs/cortex.d.ts.map +1 -0
  443. package/dist/src/data/library-packs/cortex.js +339 -0
  444. package/dist/src/data/library-packs/cortex.js.map +1 -0
  445. package/dist/src/data/library-packs/sdk.d.ts +16 -0
  446. package/dist/src/data/library-packs/sdk.d.ts.map +1 -0
  447. package/dist/src/data/library-packs/sdk.js +439 -0
  448. package/dist/src/data/library-packs/sdk.js.map +1 -0
  449. package/dist/src/data/library-packs/vendored.d.ts +21 -0
  450. package/dist/src/data/library-packs/vendored.d.ts.map +1 -0
  451. package/dist/src/data/library-packs/vendored.js +381 -0
  452. package/dist/src/data/library-packs/vendored.js.map +1 -0
  453. package/dist/src/data/library-packs.d.ts +151 -0
  454. package/dist/src/data/library-packs.d.ts.map +1 -0
  455. package/dist/src/data/library-packs.js +169 -0
  456. package/dist/src/data/library-packs.js.map +1 -0
  457. package/dist/src/generated/api-types.d.ts +30401 -17751
  458. package/dist/src/generated/api-types.d.ts.map +1 -1
  459. package/dist/src/index-help.d.ts +1 -1
  460. package/dist/src/index-help.d.ts.map +1 -1
  461. package/dist/src/index-help.js +3 -3
  462. package/dist/src/mcp/agent-onboarding.d.ts.map +1 -1
  463. package/dist/src/mcp/agent-onboarding.js +8 -2
  464. package/dist/src/mcp/agent-onboarding.js.map +1 -1
  465. package/dist/src/mcp/annotations.d.ts +1 -0
  466. package/dist/src/mcp/annotations.d.ts.map +1 -1
  467. package/dist/src/mcp/annotations.js +44 -0
  468. package/dist/src/mcp/annotations.js.map +1 -1
  469. package/dist/src/mcp/app-template-proposals.d.ts +17 -0
  470. package/dist/src/mcp/app-template-proposals.d.ts.map +1 -0
  471. package/dist/src/mcp/app-template-proposals.js +94 -0
  472. package/dist/src/mcp/app-template-proposals.js.map +1 -0
  473. package/dist/src/mcp/appdev-pitfalls.d.ts +22 -0
  474. package/dist/src/mcp/appdev-pitfalls.d.ts.map +1 -0
  475. package/dist/src/mcp/appdev-pitfalls.js +208 -0
  476. package/dist/src/mcp/appdev-pitfalls.js.map +1 -0
  477. package/dist/src/mcp/appdev-proofs.d.ts +21 -0
  478. package/dist/src/mcp/appdev-proofs.d.ts.map +1 -0
  479. package/dist/src/mcp/appdev-proofs.js +103 -0
  480. package/dist/src/mcp/appdev-proofs.js.map +1 -0
  481. package/dist/src/mcp/appdev-research.d.ts +17 -0
  482. package/dist/src/mcp/appdev-research.d.ts.map +1 -0
  483. package/dist/src/mcp/appdev-research.js +27 -0
  484. package/dist/src/mcp/appdev-research.js.map +1 -0
  485. package/dist/src/mcp/apps.d.ts +6 -0
  486. package/dist/src/mcp/apps.d.ts.map +1 -1
  487. package/dist/src/mcp/apps.js +64 -5
  488. package/dist/src/mcp/apps.js.map +1 -1
  489. package/dist/src/mcp/catalog/definitions/agent-messaging.d.ts.map +1 -1
  490. package/dist/src/mcp/catalog/definitions/agent-messaging.js +38 -0
  491. package/dist/src/mcp/catalog/definitions/agent-messaging.js.map +1 -1
  492. package/dist/src/mcp/catalog/definitions/capabilities-groups-skills.d.ts +2 -0
  493. package/dist/src/mcp/catalog/definitions/capabilities-groups-skills.d.ts.map +1 -1
  494. package/dist/src/mcp/catalog/definitions/capabilities-groups-skills.js +139 -5
  495. package/dist/src/mcp/catalog/definitions/capabilities-groups-skills.js.map +1 -1
  496. package/dist/src/mcp/catalog/definitions/exchange.d.ts +18 -0
  497. package/dist/src/mcp/catalog/definitions/exchange.d.ts.map +1 -0
  498. package/dist/src/mcp/catalog/definitions/exchange.js +182 -0
  499. package/dist/src/mcp/catalog/definitions/exchange.js.map +1 -0
  500. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.d.ts.map +1 -1
  501. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js +41 -3
  502. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
  503. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
  504. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +20 -0
  505. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
  506. package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
  507. package/dist/src/mcp/catalog/definitions.js +2 -0
  508. package/dist/src/mcp/catalog/definitions.js.map +1 -1
  509. package/dist/src/mcp/catalog/scopes.d.ts +1 -0
  510. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  511. package/dist/src/mcp/catalog/scopes.js +40 -0
  512. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  513. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  514. package/dist/src/mcp/catalog/surfaces.js +31 -4
  515. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  516. package/dist/src/mcp/catalogue.d.ts +1 -0
  517. package/dist/src/mcp/catalogue.d.ts.map +1 -1
  518. package/dist/src/mcp/catalogue.js +10 -2
  519. package/dist/src/mcp/catalogue.js.map +1 -1
  520. package/dist/src/mcp/commerce.js +1 -1
  521. package/dist/src/mcp/commerce.js.map +1 -1
  522. package/dist/src/mcp/contacts.d.ts +19 -0
  523. package/dist/src/mcp/contacts.d.ts.map +1 -0
  524. package/dist/src/mcp/contacts.js +58 -0
  525. package/dist/src/mcp/contacts.js.map +1 -0
  526. package/dist/src/mcp/core-admin.js +1 -1
  527. package/dist/src/mcp/core-admin.js.map +1 -1
  528. package/dist/src/mcp/exchange-run.d.ts +5 -0
  529. package/dist/src/mcp/exchange-run.d.ts.map +1 -0
  530. package/dist/src/mcp/exchange-run.js +226 -0
  531. package/dist/src/mcp/exchange-run.js.map +1 -0
  532. package/dist/src/mcp/exchange.d.ts +5 -0
  533. package/dist/src/mcp/exchange.d.ts.map +1 -0
  534. package/dist/src/mcp/exchange.js +351 -0
  535. package/dist/src/mcp/exchange.js.map +1 -0
  536. package/dist/src/mcp/extensions.d.ts +4 -0
  537. package/dist/src/mcp/extensions.d.ts.map +1 -1
  538. package/dist/src/mcp/extensions.js +85 -12
  539. package/dist/src/mcp/extensions.js.map +1 -1
  540. package/dist/src/mcp/feedback.d.ts +20 -0
  541. package/dist/src/mcp/feedback.d.ts.map +1 -0
  542. package/dist/src/mcp/feedback.js +61 -0
  543. package/dist/src/mcp/feedback.js.map +1 -0
  544. package/dist/src/mcp/index.d.ts +1 -0
  545. package/dist/src/mcp/index.d.ts.map +1 -1
  546. package/dist/src/mcp/index.js +19 -2
  547. package/dist/src/mcp/index.js.map +1 -1
  548. package/dist/src/mcp/knowledge.d.ts +4 -0
  549. package/dist/src/mcp/knowledge.d.ts.map +1 -1
  550. package/dist/src/mcp/knowledge.js +39 -22
  551. package/dist/src/mcp/knowledge.js.map +1 -1
  552. package/dist/src/mcp/organisms-name-invites.d.ts +18 -0
  553. package/dist/src/mcp/organisms-name-invites.d.ts.map +1 -0
  554. package/dist/src/mcp/organisms-name-invites.js +143 -0
  555. package/dist/src/mcp/organisms-name-invites.js.map +1 -0
  556. package/dist/src/mcp/organisms.d.ts +3 -0
  557. package/dist/src/mcp/organisms.d.ts.map +1 -1
  558. package/dist/src/mcp/organisms.js +12 -86
  559. package/dist/src/mcp/organisms.js.map +1 -1
  560. package/dist/src/mcp/workflows.d.ts +2 -0
  561. package/dist/src/mcp/workflows.d.ts.map +1 -1
  562. package/dist/src/mcp/workflows.js +43 -3
  563. package/dist/src/mcp/workflows.js.map +1 -1
  564. package/dist/src/mcp/workspaces.d.ts +4 -0
  565. package/dist/src/mcp/workspaces.d.ts.map +1 -1
  566. package/dist/src/mcp/workspaces.js +15 -12
  567. package/dist/src/mcp/workspaces.js.map +1 -1
  568. package/dist/src/middleware/workspace-access.d.ts +3 -0
  569. package/dist/src/middleware/workspace-access.d.ts.map +1 -1
  570. package/dist/src/middleware/workspace-access.js +7 -3
  571. package/dist/src/middleware/workspace-access.js.map +1 -1
  572. package/dist/src/models/agent-onboarding-schemas.d.ts +2 -0
  573. package/dist/src/models/agent-onboarding-schemas.d.ts.map +1 -1
  574. package/dist/src/models/agent-onboarding-schemas.js +5 -0
  575. package/dist/src/models/agent-onboarding-schemas.js.map +1 -1
  576. package/dist/src/models/app-tool-schemas.d.ts +55 -1
  577. package/dist/src/models/app-tool-schemas.d.ts.map +1 -1
  578. package/dist/src/models/app-tool-schemas.js +20 -1
  579. package/dist/src/models/app-tool-schemas.js.map +1 -1
  580. package/dist/src/models/contribution-proof.d.ts +29 -0
  581. package/dist/src/models/contribution-proof.d.ts.map +1 -0
  582. package/dist/src/models/contribution-proof.js +23 -0
  583. package/dist/src/models/contribution-proof.js.map +1 -0
  584. package/dist/src/models/crew-def-schemas.d.ts +114 -0
  585. package/dist/src/models/crew-def-schemas.d.ts.map +1 -0
  586. package/dist/src/models/crew-def-schemas.js +140 -0
  587. package/dist/src/models/crew-def-schemas.js.map +1 -0
  588. package/dist/src/models/offer-schemas.d.ts +2 -2
  589. package/dist/src/models/schemas.d.ts +1 -0
  590. package/dist/src/models/schemas.d.ts.map +1 -1
  591. package/dist/src/models/schemas.js +3 -0
  592. package/dist/src/models/schemas.js.map +1 -1
  593. package/dist/src/models/workflow-schemas.d.ts +69 -1
  594. package/dist/src/models/workflow-schemas.d.ts.map +1 -1
  595. package/dist/src/models/workflow-schemas.js +26 -0
  596. package/dist/src/models/workflow-schemas.js.map +1 -1
  597. package/dist/src/routes/access-tokens.d.ts +2 -0
  598. package/dist/src/routes/access-tokens.d.ts.map +1 -1
  599. package/dist/src/routes/access-tokens.js +15 -0
  600. package/dist/src/routes/access-tokens.js.map +1 -1
  601. package/dist/src/routes/admin-config.js +1 -1
  602. package/dist/src/routes/admin-config.js.map +1 -1
  603. package/dist/src/routes/admin-maintenance.d.ts +3 -0
  604. package/dist/src/routes/admin-maintenance.d.ts.map +1 -1
  605. package/dist/src/routes/admin-maintenance.js +20 -0
  606. package/dist/src/routes/admin-maintenance.js.map +1 -1
  607. package/dist/src/routes/admin-storage-stats.d.ts +17 -0
  608. package/dist/src/routes/admin-storage-stats.d.ts.map +1 -0
  609. package/dist/src/routes/admin-storage-stats.js +56 -0
  610. package/dist/src/routes/admin-storage-stats.js.map +1 -0
  611. package/dist/src/routes/admin.d.ts +1 -0
  612. package/dist/src/routes/admin.d.ts.map +1 -1
  613. package/dist/src/routes/admin.js +10 -12
  614. package/dist/src/routes/admin.js.map +1 -1
  615. package/dist/src/routes/agent-activity.d.ts +6 -0
  616. package/dist/src/routes/agent-activity.d.ts.map +1 -1
  617. package/dist/src/routes/agent-activity.js +57 -0
  618. package/dist/src/routes/agent-activity.js.map +1 -1
  619. package/dist/src/routes/agent-directives.d.ts.map +1 -1
  620. package/dist/src/routes/agent-directives.js +30 -0
  621. package/dist/src/routes/agent-directives.js.map +1 -1
  622. package/dist/src/routes/agent-messages.d.ts +2 -0
  623. package/dist/src/routes/agent-messages.d.ts.map +1 -1
  624. package/dist/src/routes/agent-messages.js +18 -0
  625. package/dist/src/routes/agent-messages.js.map +1 -1
  626. package/dist/src/routes/agent-onboarding.d.ts +16 -0
  627. package/dist/src/routes/agent-onboarding.d.ts.map +1 -1
  628. package/dist/src/routes/agent-onboarding.js +6 -1
  629. package/dist/src/routes/agent-onboarding.js.map +1 -1
  630. package/dist/src/routes/agent-webhook.d.ts +3 -0
  631. package/dist/src/routes/agent-webhook.d.ts.map +1 -1
  632. package/dist/src/routes/agent-webhook.js +28 -0
  633. package/dist/src/routes/agent-webhook.js.map +1 -1
  634. package/dist/src/routes/agents/device-auth.d.ts +10 -0
  635. package/dist/src/routes/agents/device-auth.d.ts.map +1 -1
  636. package/dist/src/routes/agents/device-auth.js +241 -139
  637. package/dist/src/routes/agents/device-auth.js.map +1 -1
  638. package/dist/src/routes/agents/offers.d.ts +4 -0
  639. package/dist/src/routes/agents/offers.d.ts.map +1 -1
  640. package/dist/src/routes/agents/offers.js +0 -0
  641. package/dist/src/routes/agents/offers.js.map +1 -1
  642. package/dist/src/routes/agents/profile-metadata.d.ts +3 -0
  643. package/dist/src/routes/agents/profile-metadata.d.ts.map +1 -1
  644. package/dist/src/routes/agents/profile-metadata.js +23 -10
  645. package/dist/src/routes/agents/profile-metadata.js.map +1 -1
  646. package/dist/src/routes/app-grants.d.ts +6 -0
  647. package/dist/src/routes/app-grants.d.ts.map +1 -1
  648. package/dist/src/routes/app-grants.js +37 -2
  649. package/dist/src/routes/app-grants.js.map +1 -1
  650. package/dist/src/routes/appdev-overview.d.ts +17 -0
  651. package/dist/src/routes/appdev-overview.d.ts.map +1 -0
  652. package/dist/src/routes/appdev-overview.js +75 -0
  653. package/dist/src/routes/appdev-overview.js.map +1 -0
  654. package/dist/src/routes/appdev-pitfalls.d.ts +20 -0
  655. package/dist/src/routes/appdev-pitfalls.d.ts.map +1 -0
  656. package/dist/src/routes/appdev-pitfalls.js +103 -0
  657. package/dist/src/routes/appdev-pitfalls.js.map +1 -0
  658. package/dist/src/routes/appeals.d.ts +1 -0
  659. package/dist/src/routes/appeals.d.ts.map +1 -1
  660. package/dist/src/routes/appeals.js +3 -1
  661. package/dist/src/routes/appeals.js.map +1 -1
  662. package/dist/src/routes/apps/agents-deploy.d.ts +24 -0
  663. package/dist/src/routes/apps/agents-deploy.d.ts.map +1 -0
  664. package/dist/src/routes/apps/agents-deploy.js +214 -0
  665. package/dist/src/routes/apps/agents-deploy.js.map +1 -0
  666. package/dist/src/routes/apps/catalogue-admin.d.ts +5 -0
  667. package/dist/src/routes/apps/catalogue-admin.d.ts.map +1 -1
  668. package/dist/src/routes/apps/catalogue-admin.js +34 -10
  669. package/dist/src/routes/apps/catalogue-admin.js.map +1 -1
  670. package/dist/src/routes/apps/drafts.d.ts +2 -0
  671. package/dist/src/routes/apps/drafts.d.ts.map +1 -1
  672. package/dist/src/routes/apps/drafts.js +4 -0
  673. package/dist/src/routes/apps/drafts.js.map +1 -1
  674. package/dist/src/routes/apps/fork-manage.d.ts +3 -1
  675. package/dist/src/routes/apps/fork-manage.d.ts.map +1 -1
  676. package/dist/src/routes/apps/fork-manage.js +50 -1
  677. package/dist/src/routes/apps/fork-manage.js.map +1 -1
  678. package/dist/src/routes/apps/publish.d.ts +7 -0
  679. package/dist/src/routes/apps/publish.d.ts.map +1 -1
  680. package/dist/src/routes/apps/publish.js +69 -1
  681. package/dist/src/routes/apps/publish.js.map +1 -1
  682. package/dist/src/routes/apps-cost.d.ts +25 -0
  683. package/dist/src/routes/apps-cost.d.ts.map +1 -0
  684. package/dist/src/routes/apps-cost.js +107 -0
  685. package/dist/src/routes/apps-cost.js.map +1 -0
  686. package/dist/src/routes/apps.d.ts +2 -0
  687. package/dist/src/routes/apps.d.ts.map +1 -1
  688. package/dist/src/routes/apps.js +4 -0
  689. package/dist/src/routes/apps.js.map +1 -1
  690. package/dist/src/routes/auth.d.ts +2 -0
  691. package/dist/src/routes/auth.d.ts.map +1 -1
  692. package/dist/src/routes/auth.js +11 -0
  693. package/dist/src/routes/auth.js.map +1 -1
  694. package/dist/src/routes/bootstrap.d.ts +5 -0
  695. package/dist/src/routes/bootstrap.d.ts.map +1 -1
  696. package/dist/src/routes/bootstrap.js +21 -14
  697. package/dist/src/routes/bootstrap.js.map +1 -1
  698. package/dist/src/routes/calibrator.d.ts +2 -0
  699. package/dist/src/routes/calibrator.d.ts.map +1 -1
  700. package/dist/src/routes/calibrator.js +43 -0
  701. package/dist/src/routes/calibrator.js.map +1 -1
  702. package/dist/src/routes/catalogue.d.ts +2 -0
  703. package/dist/src/routes/catalogue.d.ts.map +1 -1
  704. package/dist/src/routes/catalogue.js +20 -30
  705. package/dist/src/routes/catalogue.js.map +1 -1
  706. package/dist/src/routes/commerce.d.ts.map +1 -1
  707. package/dist/src/routes/commerce.js +18 -8
  708. package/dist/src/routes/commerce.js.map +1 -1
  709. package/dist/src/routes/consent.d.ts.map +1 -1
  710. package/dist/src/routes/consent.js +10 -0
  711. package/dist/src/routes/consent.js.map +1 -1
  712. package/dist/src/routes/contacts.d.ts +20 -0
  713. package/dist/src/routes/contacts.d.ts.map +1 -0
  714. package/dist/src/routes/contacts.js +86 -0
  715. package/dist/src/routes/contacts.js.map +1 -0
  716. package/dist/src/routes/ecosystem-apps.d.ts +2 -0
  717. package/dist/src/routes/ecosystem-apps.d.ts.map +1 -1
  718. package/dist/src/routes/ecosystem-apps.js +34 -0
  719. package/dist/src/routes/ecosystem-apps.js.map +1 -1
  720. package/dist/src/routes/exchange-market.d.ts +28 -0
  721. package/dist/src/routes/exchange-market.d.ts.map +1 -0
  722. package/dist/src/routes/exchange-market.js +454 -0
  723. package/dist/src/routes/exchange-market.js.map +1 -0
  724. package/dist/src/routes/exchange.d.ts +33 -0
  725. package/dist/src/routes/exchange.d.ts.map +1 -0
  726. package/dist/src/routes/exchange.js +395 -0
  727. package/dist/src/routes/exchange.js.map +1 -0
  728. package/dist/src/routes/extensions/actions.d.ts +3 -0
  729. package/dist/src/routes/extensions/actions.d.ts.map +1 -1
  730. package/dist/src/routes/extensions/actions.js +43 -6
  731. package/dist/src/routes/extensions/actions.js.map +1 -1
  732. package/dist/src/routes/extensions/entitlement-gate.d.ts +33 -0
  733. package/dist/src/routes/extensions/entitlement-gate.d.ts.map +1 -0
  734. package/dist/src/routes/extensions/entitlement-gate.js +143 -0
  735. package/dist/src/routes/extensions/entitlement-gate.js.map +1 -0
  736. package/dist/src/routes/extensions/manifest.d.ts +11 -0
  737. package/dist/src/routes/extensions/manifest.d.ts.map +1 -1
  738. package/dist/src/routes/extensions/manifest.js +100 -8
  739. package/dist/src/routes/extensions/manifest.js.map +1 -1
  740. package/dist/src/routes/extensions/paywall.d.ts +30 -0
  741. package/dist/src/routes/extensions/paywall.d.ts.map +1 -0
  742. package/dist/src/routes/extensions/paywall.js +116 -0
  743. package/dist/src/routes/extensions/paywall.js.map +1 -0
  744. package/dist/src/routes/federation-sync/messaging.d.ts.map +1 -1
  745. package/dist/src/routes/federation-sync/messaging.js +7 -1
  746. package/dist/src/routes/federation-sync/messaging.js.map +1 -1
  747. package/dist/src/routes/feedback.d.ts +23 -0
  748. package/dist/src/routes/feedback.d.ts.map +1 -0
  749. package/dist/src/routes/feedback.js +111 -0
  750. package/dist/src/routes/feedback.js.map +1 -0
  751. package/dist/src/routes/generator/projects.d.ts.map +1 -1
  752. package/dist/src/routes/generator/projects.js +18 -0
  753. package/dist/src/routes/generator/projects.js.map +1 -1
  754. package/dist/src/routes/generator/prompts.d.ts +14 -3
  755. package/dist/src/routes/generator/prompts.d.ts.map +1 -1
  756. package/dist/src/routes/generator/prompts.js +165 -90
  757. package/dist/src/routes/generator/prompts.js.map +1 -1
  758. package/dist/src/routes/generator.d.ts +2 -0
  759. package/dist/src/routes/generator.d.ts.map +1 -1
  760. package/dist/src/routes/generator.js +2 -0
  761. package/dist/src/routes/generator.js.map +1 -1
  762. package/dist/src/routes/ghii/profile.d.ts +2 -0
  763. package/dist/src/routes/ghii/profile.d.ts.map +1 -1
  764. package/dist/src/routes/ghii/profile.js +16 -11
  765. package/dist/src/routes/ghii/profile.js.map +1 -1
  766. package/dist/src/routes/ghii/recovery.d.ts +2 -0
  767. package/dist/src/routes/ghii/recovery.d.ts.map +1 -1
  768. package/dist/src/routes/ghii/recovery.js +7 -0
  769. package/dist/src/routes/ghii/recovery.js.map +1 -1
  770. package/dist/src/routes/ghii/register-login.d.ts +4 -0
  771. package/dist/src/routes/ghii/register-login.d.ts.map +1 -1
  772. package/dist/src/routes/ghii/register-login.js +45 -22
  773. package/dist/src/routes/ghii/register-login.js.map +1 -1
  774. package/dist/src/routes/ghii/web-verify.d.ts +5 -0
  775. package/dist/src/routes/ghii/web-verify.d.ts.map +1 -1
  776. package/dist/src/routes/ghii/web-verify.js +24 -3
  777. package/dist/src/routes/ghii/web-verify.js.map +1 -1
  778. package/dist/src/routes/knowledge/admin.d.ts +1 -0
  779. package/dist/src/routes/knowledge/admin.d.ts.map +1 -1
  780. package/dist/src/routes/knowledge/admin.js +30 -40
  781. package/dist/src/routes/knowledge/admin.js.map +1 -1
  782. package/dist/src/routes/knowledge/helpers.d.ts +1 -0
  783. package/dist/src/routes/knowledge/helpers.d.ts.map +1 -1
  784. package/dist/src/routes/knowledge/helpers.js +5 -1
  785. package/dist/src/routes/knowledge/helpers.js.map +1 -1
  786. package/dist/src/routes/knowledge/organism.d.ts +1 -0
  787. package/dist/src/routes/knowledge/organism.d.ts.map +1 -1
  788. package/dist/src/routes/knowledge/organism.js +7 -11
  789. package/dist/src/routes/knowledge/organism.js.map +1 -1
  790. package/dist/src/routes/knowledge/packages-core.d.ts +1 -0
  791. package/dist/src/routes/knowledge/packages-core.d.ts.map +1 -1
  792. package/dist/src/routes/knowledge/packages-core.js +6 -16
  793. package/dist/src/routes/knowledge/packages-core.js.map +1 -1
  794. package/dist/src/routes/knowledge/sharing.d.ts +1 -0
  795. package/dist/src/routes/knowledge/sharing.d.ts.map +1 -1
  796. package/dist/src/routes/knowledge/sharing.js +11 -31
  797. package/dist/src/routes/knowledge/sharing.js.map +1 -1
  798. package/dist/src/routes/knowledge.d.ts +2 -0
  799. package/dist/src/routes/knowledge.d.ts.map +1 -1
  800. package/dist/src/routes/knowledge.js +15 -0
  801. package/dist/src/routes/knowledge.js.map +1 -1
  802. package/dist/src/routes/ledger.d.ts +4 -0
  803. package/dist/src/routes/ledger.d.ts.map +1 -1
  804. package/dist/src/routes/ledger.js +93 -53
  805. package/dist/src/routes/ledger.js.map +1 -1
  806. package/dist/src/routes/lib-data.d.ts +2 -0
  807. package/dist/src/routes/lib-data.d.ts.map +1 -1
  808. package/dist/src/routes/lib-data.js +7 -4
  809. package/dist/src/routes/lib-data.js.map +1 -1
  810. package/dist/src/routes/lib-intake.d.ts +21 -0
  811. package/dist/src/routes/lib-intake.d.ts.map +1 -0
  812. package/dist/src/routes/lib-intake.js +63 -0
  813. package/dist/src/routes/lib-intake.js.map +1 -0
  814. package/dist/src/routes/lib-organism.d.ts +13 -0
  815. package/dist/src/routes/lib-organism.d.ts.map +1 -1
  816. package/dist/src/routes/lib-organism.js +80 -0
  817. package/dist/src/routes/lib-organism.js.map +1 -1
  818. package/dist/src/routes/lib-workflows.d.ts +24 -0
  819. package/dist/src/routes/lib-workflows.d.ts.map +1 -0
  820. package/dist/src/routes/lib-workflows.js +125 -0
  821. package/dist/src/routes/lib-workflows.js.map +1 -0
  822. package/dist/src/routes/library-packs.d.ts +31 -0
  823. package/dist/src/routes/library-packs.d.ts.map +1 -0
  824. package/dist/src/routes/library-packs.js +187 -0
  825. package/dist/src/routes/library-packs.js.map +1 -0
  826. package/dist/src/routes/libs/audio-lib-part2.d.ts +2 -0
  827. package/dist/src/routes/libs/audio-lib-part2.d.ts.map +1 -1
  828. package/dist/src/routes/libs/audio-lib-part2.js +4 -0
  829. package/dist/src/routes/libs/audio-lib-part2.js.map +1 -1
  830. package/dist/src/routes/libs/auth-lib-part2.d.ts +5 -0
  831. package/dist/src/routes/libs/auth-lib-part2.d.ts.map +1 -1
  832. package/dist/src/routes/libs/auth-lib-part2.js +118 -5
  833. package/dist/src/routes/libs/auth-lib-part2.js.map +1 -1
  834. package/dist/src/routes/libs/sdk-serve.d.ts +11 -0
  835. package/dist/src/routes/libs/sdk-serve.d.ts.map +1 -0
  836. package/dist/src/routes/libs/sdk-serve.js +53 -0
  837. package/dist/src/routes/libs/sdk-serve.js.map +1 -0
  838. package/dist/src/routes/libs.d.ts +17 -1
  839. package/dist/src/routes/libs.d.ts.map +1 -1
  840. package/dist/src/routes/libs.js +83 -285
  841. package/dist/src/routes/libs.js.map +1 -1
  842. package/dist/src/routes/living.d.ts +2 -0
  843. package/dist/src/routes/living.d.ts.map +1 -1
  844. package/dist/src/routes/living.js +12 -0
  845. package/dist/src/routes/living.js.map +1 -1
  846. package/dist/src/routes/matches.d.ts +3 -0
  847. package/dist/src/routes/matches.d.ts.map +1 -1
  848. package/dist/src/routes/matches.js +47 -51
  849. package/dist/src/routes/matches.js.map +1 -1
  850. package/dist/src/routes/memory/bulk.d.ts.map +1 -1
  851. package/dist/src/routes/memory/bulk.js +185 -70
  852. package/dist/src/routes/memory/bulk.js.map +1 -1
  853. package/dist/src/routes/memory/crud.d.ts +2 -0
  854. package/dist/src/routes/memory/crud.d.ts.map +1 -1
  855. package/dist/src/routes/memory/crud.js +70 -39
  856. package/dist/src/routes/memory/crud.js.map +1 -1
  857. package/dist/src/routes/memory/key.d.ts +2 -0
  858. package/dist/src/routes/memory/key.d.ts.map +1 -1
  859. package/dist/src/routes/memory/key.js +23 -4
  860. package/dist/src/routes/memory/key.js.map +1 -1
  861. package/dist/src/routes/memory/shared.d.ts +4 -0
  862. package/dist/src/routes/memory/shared.d.ts.map +1 -1
  863. package/dist/src/routes/memory/shared.js.map +1 -1
  864. package/dist/src/routes/memory.d.ts.map +1 -1
  865. package/dist/src/routes/memory.js +29 -1
  866. package/dist/src/routes/memory.js.map +1 -1
  867. package/dist/src/routes/messages.d.ts +9 -0
  868. package/dist/src/routes/messages.d.ts.map +1 -1
  869. package/dist/src/routes/messages.js +48 -26
  870. package/dist/src/routes/messages.js.map +1 -1
  871. package/dist/src/routes/notifications.d.ts +8 -3
  872. package/dist/src/routes/notifications.d.ts.map +1 -1
  873. package/dist/src/routes/notifications.js +53 -5
  874. package/dist/src/routes/notifications.js.map +1 -1
  875. package/dist/src/routes/organisms/crud.d.ts +6 -0
  876. package/dist/src/routes/organisms/crud.d.ts.map +1 -1
  877. package/dist/src/routes/organisms/crud.js +80 -62
  878. package/dist/src/routes/organisms/crud.js.map +1 -1
  879. package/dist/src/routes/organisms/gates.d.ts.map +1 -1
  880. package/dist/src/routes/organisms/gates.js +82 -1
  881. package/dist/src/routes/organisms/gates.js.map +1 -1
  882. package/dist/src/routes/organisms/intake.d.ts +29 -0
  883. package/dist/src/routes/organisms/intake.d.ts.map +1 -0
  884. package/dist/src/routes/organisms/intake.js +251 -0
  885. package/dist/src/routes/organisms/intake.js.map +1 -0
  886. package/dist/src/routes/organisms/membership.d.ts +4 -1
  887. package/dist/src/routes/organisms/membership.d.ts.map +1 -1
  888. package/dist/src/routes/organisms/membership.js +103 -60
  889. package/dist/src/routes/organisms/membership.js.map +1 -1
  890. package/dist/src/routes/organisms/shared.d.ts +28 -0
  891. package/dist/src/routes/organisms/shared.d.ts.map +1 -1
  892. package/dist/src/routes/organisms/shared.js +339 -26
  893. package/dist/src/routes/organisms/shared.js.map +1 -1
  894. package/dist/src/routes/organisms/workspace-access.d.ts +16 -0
  895. package/dist/src/routes/organisms/workspace-access.d.ts.map +1 -1
  896. package/dist/src/routes/organisms/workspace-access.js +174 -72
  897. package/dist/src/routes/organisms/workspace-access.js.map +1 -1
  898. package/dist/src/routes/organisms/workspace-ops.d.ts +6 -0
  899. package/dist/src/routes/organisms/workspace-ops.d.ts.map +1 -1
  900. package/dist/src/routes/organisms/workspace-ops.js +224 -11
  901. package/dist/src/routes/organisms/workspace-ops.js.map +1 -1
  902. package/dist/src/routes/organisms/workspace-read.d.ts +4 -0
  903. package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
  904. package/dist/src/routes/organisms/workspace-read.js +14 -6
  905. package/dist/src/routes/organisms/workspace-read.js.map +1 -1
  906. package/dist/src/routes/organisms.d.ts.map +1 -1
  907. package/dist/src/routes/organisms.js +2 -0
  908. package/dist/src/routes/organisms.js.map +1 -1
  909. package/dist/src/routes/owners.d.ts +2 -0
  910. package/dist/src/routes/owners.d.ts.map +1 -1
  911. package/dist/src/routes/owners.js +17 -7
  912. package/dist/src/routes/owners.js.map +1 -1
  913. package/dist/src/routes/packages.d.ts.map +1 -1
  914. package/dist/src/routes/packages.js +10 -0
  915. package/dist/src/routes/packages.js.map +1 -1
  916. package/dist/src/routes/portal.d.ts +1 -1
  917. package/dist/src/routes/portal.d.ts.map +1 -1
  918. package/dist/src/routes/portal.js +3 -7
  919. package/dist/src/routes/portal.js.map +1 -1
  920. package/dist/src/routes/portfolio.d.ts +2 -0
  921. package/dist/src/routes/portfolio.d.ts.map +1 -1
  922. package/dist/src/routes/portfolio.js +41 -31
  923. package/dist/src/routes/portfolio.js.map +1 -1
  924. package/dist/src/routes/prompts.d.ts.map +1 -1
  925. package/dist/src/routes/prompts.js +23 -0
  926. package/dist/src/routes/prompts.js.map +1 -1
  927. package/dist/src/routes/schedules.d.ts +7 -0
  928. package/dist/src/routes/schedules.d.ts.map +1 -1
  929. package/dist/src/routes/schedules.js +102 -39
  930. package/dist/src/routes/schedules.js.map +1 -1
  931. package/dist/src/routes/unfurl.d.ts +27 -0
  932. package/dist/src/routes/unfurl.d.ts.map +1 -0
  933. package/dist/src/routes/unfurl.js +180 -0
  934. package/dist/src/routes/unfurl.js.map +1 -0
  935. package/dist/src/routes/upload.d.ts +6 -0
  936. package/dist/src/routes/upload.d.ts.map +1 -1
  937. package/dist/src/routes/upload.js +28 -1
  938. package/dist/src/routes/upload.js.map +1 -1
  939. package/dist/src/routes/usage.d.ts +9 -5
  940. package/dist/src/routes/usage.d.ts.map +1 -1
  941. package/dist/src/routes/usage.js +26 -5
  942. package/dist/src/routes/usage.js.map +1 -1
  943. package/dist/src/routes/wallet.d.ts +3 -0
  944. package/dist/src/routes/wallet.d.ts.map +1 -1
  945. package/dist/src/routes/wallet.js +17 -1
  946. package/dist/src/routes/wallet.js.map +1 -1
  947. package/dist/src/routes/webmcp.d.ts +3 -0
  948. package/dist/src/routes/webmcp.d.ts.map +1 -1
  949. package/dist/src/routes/webmcp.js +55 -0
  950. package/dist/src/routes/webmcp.js.map +1 -1
  951. package/dist/src/routes/work.d.ts.map +1 -1
  952. package/dist/src/routes/work.js +14 -9
  953. package/dist/src/routes/work.js.map +1 -1
  954. package/dist/src/routes/workflows.d.ts +4 -0
  955. package/dist/src/routes/workflows.d.ts.map +1 -1
  956. package/dist/src/routes/workflows.js +58 -1
  957. package/dist/src/routes/workflows.js.map +1 -1
  958. package/dist/src/server-bootstrap/config-init.d.ts.map +1 -1
  959. package/dist/src/server-bootstrap/config-init.js +7 -6
  960. package/dist/src/server-bootstrap/config-init.js.map +1 -1
  961. package/dist/src/server-bootstrap/routes-loader.d.ts +2 -0
  962. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  963. package/dist/src/server-bootstrap/routes-loader.js +35 -7
  964. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  965. package/dist/src/server.d.ts.map +1 -1
  966. package/dist/src/server.js +4 -0
  967. package/dist/src/server.js.map +1 -1
  968. package/dist/src/services/agent-face.d.ts +10 -2
  969. package/dist/src/services/agent-face.d.ts.map +1 -1
  970. package/dist/src/services/agent-face.js +10 -4
  971. package/dist/src/services/agent-face.js.map +1 -1
  972. package/dist/src/services/app-agent-deploy.d.ts +26 -0
  973. package/dist/src/services/app-agent-deploy.d.ts.map +1 -0
  974. package/dist/src/services/app-agent-deploy.js +91 -0
  975. package/dist/src/services/app-agent-deploy.js.map +1 -0
  976. package/dist/src/services/app-template-proposals.d.ts +94 -0
  977. package/dist/src/services/app-template-proposals.d.ts.map +1 -0
  978. package/dist/src/services/app-template-proposals.js +114 -0
  979. package/dist/src/services/app-template-proposals.js.map +1 -0
  980. package/dist/src/services/app-tool-interfaces.d.ts +37 -0
  981. package/dist/src/services/app-tool-interfaces.d.ts.map +1 -0
  982. package/dist/src/services/app-tool-interfaces.js +101 -0
  983. package/dist/src/services/app-tool-interfaces.js.map +1 -0
  984. package/dist/src/services/appdev-flow-constants.d.ts +33 -0
  985. package/dist/src/services/appdev-flow-constants.d.ts.map +1 -0
  986. package/dist/src/services/appdev-flow-constants.js +43 -0
  987. package/dist/src/services/appdev-flow-constants.js.map +1 -0
  988. package/dist/src/services/appdev-flow-prompt.d.ts +15 -0
  989. package/dist/src/services/appdev-flow-prompt.d.ts.map +1 -0
  990. package/dist/src/services/appdev-flow-prompt.js +40 -0
  991. package/dist/src/services/appdev-flow-prompt.js.map +1 -0
  992. package/dist/src/services/appdev-kb.d.ts +71 -0
  993. package/dist/src/services/appdev-kb.d.ts.map +1 -0
  994. package/dist/src/services/appdev-kb.js +178 -0
  995. package/dist/src/services/appdev-kb.js.map +1 -0
  996. package/dist/src/services/appdev-overview.d.ts +28 -0
  997. package/dist/src/services/appdev-overview.d.ts.map +1 -0
  998. package/dist/src/services/appdev-overview.js +189 -0
  999. package/dist/src/services/appdev-overview.js.map +1 -0
  1000. package/dist/src/services/build-app-prompt.d.ts +17 -0
  1001. package/dist/src/services/build-app-prompt.d.ts.map +1 -1
  1002. package/dist/src/services/build-app-prompt.js +74 -35
  1003. package/dist/src/services/build-app-prompt.js.map +1 -1
  1004. package/dist/src/services/config-schema.d.ts.map +1 -1
  1005. package/dist/src/services/config-schema.js +1 -3
  1006. package/dist/src/services/config-schema.js.map +1 -1
  1007. package/dist/src/services/consent.d.ts.map +1 -1
  1008. package/dist/src/services/consent.js +8 -3
  1009. package/dist/src/services/consent.js.map +1 -1
  1010. package/dist/src/services/contacts.d.ts +88 -0
  1011. package/dist/src/services/contacts.d.ts.map +1 -0
  1012. package/dist/src/services/contacts.js +163 -0
  1013. package/dist/src/services/contacts.js.map +1 -0
  1014. package/dist/src/services/core-jobs.d.ts +4 -0
  1015. package/dist/src/services/core-jobs.d.ts.map +1 -1
  1016. package/dist/src/services/core-jobs.js +23 -0
  1017. package/dist/src/services/core-jobs.js.map +1 -1
  1018. package/dist/src/services/dangling-refs.d.ts +2 -0
  1019. package/dist/src/services/dangling-refs.d.ts.map +1 -1
  1020. package/dist/src/services/dangling-refs.js +3 -2
  1021. package/dist/src/services/dangling-refs.js.map +1 -1
  1022. package/dist/src/services/db/access-tab-db-service.d.ts +49 -0
  1023. package/dist/src/services/db/access-tab-db-service.d.ts.map +1 -0
  1024. package/dist/src/services/db/access-tab-db-service.js +87 -0
  1025. package/dist/src/services/db/access-tab-db-service.js.map +1 -0
  1026. package/dist/src/services/db/agent-activity-overview-db-service.d.ts +62 -0
  1027. package/dist/src/services/db/agent-activity-overview-db-service.d.ts.map +1 -0
  1028. package/dist/src/services/db/agent-activity-overview-db-service.js +88 -0
  1029. package/dist/src/services/db/agent-activity-overview-db-service.js.map +1 -0
  1030. package/dist/src/services/db/agent-data-access-overview-db-service.d.ts +45 -0
  1031. package/dist/src/services/db/agent-data-access-overview-db-service.d.ts.map +1 -0
  1032. package/dist/src/services/db/agent-data-access-overview-db-service.js +42 -0
  1033. package/dist/src/services/db/agent-data-access-overview-db-service.js.map +1 -0
  1034. package/dist/src/services/db/agent-db-service.d.ts +58 -0
  1035. package/dist/src/services/db/agent-db-service.d.ts.map +1 -0
  1036. package/dist/src/services/db/agent-db-service.js +49 -0
  1037. package/dist/src/services/db/agent-db-service.js.map +1 -0
  1038. package/dist/src/services/db/agent-integration-overview-db-service.d.ts +44 -0
  1039. package/dist/src/services/db/agent-integration-overview-db-service.d.ts.map +1 -0
  1040. package/dist/src/services/db/agent-integration-overview-db-service.js +44 -0
  1041. package/dist/src/services/db/agent-integration-overview-db-service.js.map +1 -0
  1042. package/dist/src/services/db/agent-messages-overview-db-service.d.ts +40 -0
  1043. package/dist/src/services/db/agent-messages-overview-db-service.d.ts.map +1 -0
  1044. package/dist/src/services/db/agent-messages-overview-db-service.js +47 -0
  1045. package/dist/src/services/db/agent-messages-overview-db-service.js.map +1 -0
  1046. package/dist/src/services/db/agent-quality-overview-db-service.d.ts +43 -0
  1047. package/dist/src/services/db/agent-quality-overview-db-service.d.ts.map +1 -0
  1048. package/dist/src/services/db/agent-quality-overview-db-service.js +34 -0
  1049. package/dist/src/services/db/agent-quality-overview-db-service.js.map +1 -0
  1050. package/dist/src/services/db/calibrator-detail-db-service.d.ts +41 -0
  1051. package/dist/src/services/db/calibrator-detail-db-service.d.ts.map +1 -0
  1052. package/dist/src/services/db/calibrator-detail-db-service.js +61 -0
  1053. package/dist/src/services/db/calibrator-detail-db-service.js.map +1 -0
  1054. package/dist/src/services/db/data-wallet-db-service.d.ts +48 -0
  1055. package/dist/src/services/db/data-wallet-db-service.d.ts.map +1 -0
  1056. package/dist/src/services/db/data-wallet-db-service.js +74 -0
  1057. package/dist/src/services/db/data-wallet-db-service.js.map +1 -0
  1058. package/dist/src/services/db/generator-state-db-service.d.ts +48 -0
  1059. package/dist/src/services/db/generator-state-db-service.d.ts.map +1 -0
  1060. package/dist/src/services/db/generator-state-db-service.js +45 -0
  1061. package/dist/src/services/db/generator-state-db-service.js.map +1 -0
  1062. package/dist/src/services/db/home-dashboard-service.d.ts +65 -0
  1063. package/dist/src/services/db/home-dashboard-service.d.ts.map +1 -0
  1064. package/dist/src/services/db/home-dashboard-service.js +57 -0
  1065. package/dist/src/services/db/home-dashboard-service.js.map +1 -0
  1066. package/dist/src/services/db/index.d.ts +48 -0
  1067. package/dist/src/services/db/index.d.ts.map +1 -0
  1068. package/dist/src/services/db/index.js +40 -0
  1069. package/dist/src/services/db/index.js.map +1 -0
  1070. package/dist/src/services/db/knowledge-tab-db-service.d.ts +35 -0
  1071. package/dist/src/services/db/knowledge-tab-db-service.d.ts.map +1 -0
  1072. package/dist/src/services/db/knowledge-tab-db-service.js +37 -0
  1073. package/dist/src/services/db/knowledge-tab-db-service.js.map +1 -0
  1074. package/dist/src/services/db/living-docs-db-service.d.ts +43 -0
  1075. package/dist/src/services/db/living-docs-db-service.d.ts.map +1 -0
  1076. package/dist/src/services/db/living-docs-db-service.js +45 -0
  1077. package/dist/src/services/db/living-docs-db-service.js.map +1 -0
  1078. package/dist/src/services/db/memory-db-service.d.ts +122 -0
  1079. package/dist/src/services/db/memory-db-service.d.ts.map +1 -0
  1080. package/dist/src/services/db/memory-db-service.js +171 -0
  1081. package/dist/src/services/db/memory-db-service.js.map +1 -0
  1082. package/dist/src/services/db/memory-tab-db-service.d.ts +54 -0
  1083. package/dist/src/services/db/memory-tab-db-service.d.ts.map +1 -0
  1084. package/dist/src/services/db/memory-tab-db-service.js +94 -0
  1085. package/dist/src/services/db/memory-tab-db-service.js.map +1 -0
  1086. package/dist/src/services/db/messages-inbox-db-service.d.ts +47 -0
  1087. package/dist/src/services/db/messages-inbox-db-service.d.ts.map +1 -0
  1088. package/dist/src/services/db/messages-inbox-db-service.js +76 -0
  1089. package/dist/src/services/db/messages-inbox-db-service.js.map +1 -0
  1090. package/dist/src/services/db/messaging-db-service.d.ts +40 -0
  1091. package/dist/src/services/db/messaging-db-service.d.ts.map +1 -0
  1092. package/dist/src/services/db/messaging-db-service.js +55 -0
  1093. package/dist/src/services/db/messaging-db-service.js.map +1 -0
  1094. package/dist/src/services/db/notebook-db-service.d.ts +35 -0
  1095. package/dist/src/services/db/notebook-db-service.d.ts.map +1 -0
  1096. package/dist/src/services/db/notebook-db-service.js +44 -0
  1097. package/dist/src/services/db/notebook-db-service.js.map +1 -0
  1098. package/dist/src/services/db/owner-identity.d.ts +36 -0
  1099. package/dist/src/services/db/owner-identity.d.ts.map +1 -0
  1100. package/dist/src/services/db/owner-identity.js +27 -0
  1101. package/dist/src/services/db/owner-identity.js.map +1 -0
  1102. package/dist/src/services/db/packages-tab-db-service.d.ts +42 -0
  1103. package/dist/src/services/db/packages-tab-db-service.d.ts.map +1 -0
  1104. package/dist/src/services/db/packages-tab-db-service.js +33 -0
  1105. package/dist/src/services/db/packages-tab-db-service.js.map +1 -0
  1106. package/dist/src/services/db/security-tab-db-service.d.ts +47 -0
  1107. package/dist/src/services/db/security-tab-db-service.d.ts.map +1 -0
  1108. package/dist/src/services/db/security-tab-db-service.js +61 -0
  1109. package/dist/src/services/db/security-tab-db-service.js.map +1 -0
  1110. package/dist/src/services/db/wallet-tab-db-service.d.ts +47 -0
  1111. package/dist/src/services/db/wallet-tab-db-service.d.ts.map +1 -0
  1112. package/dist/src/services/db/wallet-tab-db-service.js +80 -0
  1113. package/dist/src/services/db/wallet-tab-db-service.js.map +1 -0
  1114. package/dist/src/services/db/work-tab-db-service.d.ts +32 -0
  1115. package/dist/src/services/db/work-tab-db-service.d.ts.map +1 -0
  1116. package/dist/src/services/db/work-tab-db-service.js +49 -0
  1117. package/dist/src/services/db/work-tab-db-service.js.map +1 -0
  1118. package/dist/src/services/directory.d.ts +1 -0
  1119. package/dist/src/services/directory.d.ts.map +1 -1
  1120. package/dist/src/services/directory.js +6 -2
  1121. package/dist/src/services/directory.js.map +1 -1
  1122. package/dist/src/services/discovery/setup.d.ts +3 -0
  1123. package/dist/src/services/discovery/setup.d.ts.map +1 -1
  1124. package/dist/src/services/discovery/setup.js +2 -0
  1125. package/dist/src/services/discovery/setup.js.map +1 -1
  1126. package/dist/src/services/discovery/sources/memory-source.d.ts +2 -0
  1127. package/dist/src/services/discovery/sources/memory-source.d.ts.map +1 -1
  1128. package/dist/src/services/discovery/sources/memory-source.js.map +1 -1
  1129. package/dist/src/services/discovery/sources/templates-source.d.ts +20 -0
  1130. package/dist/src/services/discovery/sources/templates-source.d.ts.map +1 -0
  1131. package/dist/src/services/discovery/sources/templates-source.js +52 -0
  1132. package/dist/src/services/discovery/sources/templates-source.js.map +1 -0
  1133. package/dist/src/services/entitlement-money.d.ts +55 -0
  1134. package/dist/src/services/entitlement-money.d.ts.map +1 -0
  1135. package/dist/src/services/entitlement-money.js +68 -0
  1136. package/dist/src/services/entitlement-money.js.map +1 -0
  1137. package/dist/src/services/exchange-market.d.ts +247 -0
  1138. package/dist/src/services/exchange-market.d.ts.map +1 -0
  1139. package/dist/src/services/exchange-market.js +254 -0
  1140. package/dist/src/services/exchange-market.js.map +1 -0
  1141. package/dist/src/services/exchange-proposals.d.ts +47 -0
  1142. package/dist/src/services/exchange-proposals.d.ts.map +1 -0
  1143. package/dist/src/services/exchange-proposals.js +71 -0
  1144. package/dist/src/services/exchange-proposals.js.map +1 -0
  1145. package/dist/src/services/exchange-work.d.ts +30 -0
  1146. package/dist/src/services/exchange-work.d.ts.map +1 -0
  1147. package/dist/src/services/exchange-work.js +43 -0
  1148. package/dist/src/services/exchange-work.js.map +1 -0
  1149. package/dist/src/services/ext-pay-token.d.ts +29 -0
  1150. package/dist/src/services/ext-pay-token.d.ts.map +1 -0
  1151. package/dist/src/services/ext-pay-token.js +63 -0
  1152. package/dist/src/services/ext-pay-token.js.map +1 -0
  1153. package/dist/src/services/extension-runtime.d.ts.map +1 -1
  1154. package/dist/src/services/extension-runtime.js +9 -2
  1155. package/dist/src/services/extension-runtime.js.map +1 -1
  1156. package/dist/src/services/feedback.d.ts +38 -0
  1157. package/dist/src/services/feedback.d.ts.map +1 -0
  1158. package/dist/src/services/feedback.js +118 -0
  1159. package/dist/src/services/feedback.js.map +1 -0
  1160. package/dist/src/services/generator-autopilot.d.ts.map +1 -1
  1161. package/dist/src/services/generator-autopilot.js +12 -19
  1162. package/dist/src/services/generator-autopilot.js.map +1 -1
  1163. package/dist/src/services/generator-prompt-seeds/blueprint-prompts.d.ts.map +1 -1
  1164. package/dist/src/services/generator-prompt-seeds/blueprint-prompts.js +28 -1
  1165. package/dist/src/services/generator-prompt-seeds/blueprint-prompts.js.map +1 -1
  1166. package/dist/src/services/generator-prompt-seeds/cortex-code.d.ts +5 -0
  1167. package/dist/src/services/generator-prompt-seeds/cortex-code.d.ts.map +1 -1
  1168. package/dist/src/services/generator-prompt-seeds/cortex-code.js +54 -3
  1169. package/dist/src/services/generator-prompt-seeds/cortex-code.js.map +1 -1
  1170. package/dist/src/services/generator-prompt-seeds/extension-prompts.d.ts.map +1 -1
  1171. package/dist/src/services/generator-prompt-seeds/extension-prompts.js +106 -2
  1172. package/dist/src/services/generator-prompt-seeds/extension-prompts.js.map +1 -1
  1173. package/dist/src/services/generator-prompt-seeds/shared-fragments.js +1 -1
  1174. package/dist/src/services/generator-prompts/resolvers-blueprint.d.ts.map +1 -1
  1175. package/dist/src/services/generator-prompts/resolvers-blueprint.js +9 -0
  1176. package/dist/src/services/generator-prompts/resolvers-blueprint.js.map +1 -1
  1177. package/dist/src/services/generator-prompts/resolvers-cortex.d.ts.map +1 -1
  1178. package/dist/src/services/generator-prompts/resolvers-cortex.js +4 -0
  1179. package/dist/src/services/generator-prompts/resolvers-cortex.js.map +1 -1
  1180. package/dist/src/services/generator-prompts/resolvers-fix.d.ts +4 -0
  1181. package/dist/src/services/generator-prompts/resolvers-fix.d.ts.map +1 -1
  1182. package/dist/src/services/generator-prompts/resolvers-fix.js +68 -0
  1183. package/dist/src/services/generator-prompts/resolvers-fix.js.map +1 -1
  1184. package/dist/src/services/generator-prompts/resolvers.d.ts.map +1 -1
  1185. package/dist/src/services/generator-prompts/resolvers.js +5 -1
  1186. package/dist/src/services/generator-prompts/resolvers.js.map +1 -1
  1187. package/dist/src/services/generator-prompts/types.d.ts +9 -0
  1188. package/dist/src/services/generator-prompts/types.d.ts.map +1 -1
  1189. package/dist/src/services/handbooks/agent.d.ts +2 -1
  1190. package/dist/src/services/handbooks/agent.d.ts.map +1 -1
  1191. package/dist/src/services/handbooks/agent.js +8 -0
  1192. package/dist/src/services/handbooks/agent.js.map +1 -1
  1193. package/dist/src/services/handbooks/appdev.d.ts +2 -1
  1194. package/dist/src/services/handbooks/appdev.d.ts.map +1 -1
  1195. package/dist/src/services/handbooks/appdev.js +19 -0
  1196. package/dist/src/services/handbooks/appdev.js.map +1 -1
  1197. package/dist/src/services/invitations.d.ts +76 -1
  1198. package/dist/src/services/invitations.d.ts.map +1 -1
  1199. package/dist/src/services/invitations.js +295 -9
  1200. package/dist/src/services/invitations.js.map +1 -1
  1201. package/dist/src/services/job-seeding.d.ts.map +1 -1
  1202. package/dist/src/services/job-seeding.js +2 -0
  1203. package/dist/src/services/job-seeding.js.map +1 -1
  1204. package/dist/src/services/living-author.js +1 -1
  1205. package/dist/src/services/living-author.js.map +1 -1
  1206. package/dist/src/services/llm-strip.d.ts +13 -0
  1207. package/dist/src/services/llm-strip.d.ts.map +1 -0
  1208. package/dist/src/services/llm-strip.js +60 -0
  1209. package/dist/src/services/llm-strip.js.map +1 -0
  1210. package/dist/src/services/manifest-schema.d.ts.map +1 -1
  1211. package/dist/src/services/manifest-schema.js +1 -0
  1212. package/dist/src/services/manifest-schema.js.map +1 -1
  1213. package/dist/src/services/matching.d.ts +1 -0
  1214. package/dist/src/services/matching.d.ts.map +1 -1
  1215. package/dist/src/services/matching.js +28 -19
  1216. package/dist/src/services/matching.js.map +1 -1
  1217. package/dist/src/services/message-send.d.ts.map +1 -1
  1218. package/dist/src/services/message-send.js +9 -1
  1219. package/dist/src/services/message-send.js.map +1 -1
  1220. package/dist/src/services/metered-entitlements.d.ts +203 -0
  1221. package/dist/src/services/metered-entitlements.d.ts.map +1 -0
  1222. package/dist/src/services/metered-entitlements.js +264 -0
  1223. package/dist/src/services/metered-entitlements.js.map +1 -0
  1224. package/dist/src/services/notebook-classify.js +1 -1
  1225. package/dist/src/services/notebook-classify.js.map +1 -1
  1226. package/dist/src/services/notebook-plan.js +1 -1
  1227. package/dist/src/services/notebook-plan.js.map +1 -1
  1228. package/dist/src/services/notify.d.ts +52 -0
  1229. package/dist/src/services/notify.d.ts.map +1 -1
  1230. package/dist/src/services/notify.js +56 -2
  1231. package/dist/src/services/notify.js.map +1 -1
  1232. package/dist/src/services/owner-memory.d.ts +25 -0
  1233. package/dist/src/services/owner-memory.d.ts.map +1 -1
  1234. package/dist/src/services/owner-memory.js +65 -18
  1235. package/dist/src/services/owner-memory.js.map +1 -1
  1236. package/dist/src/services/owner-provisioning.d.ts +5 -0
  1237. package/dist/src/services/owner-provisioning.d.ts.map +1 -1
  1238. package/dist/src/services/owner-provisioning.js +20 -2
  1239. package/dist/src/services/owner-provisioning.js.map +1 -1
  1240. package/dist/src/services/perf-trace.d.ts +43 -0
  1241. package/dist/src/services/perf-trace.d.ts.map +1 -0
  1242. package/dist/src/services/perf-trace.js +149 -0
  1243. package/dist/src/services/perf-trace.js.map +1 -0
  1244. package/dist/src/services/prompt-defaults.d.ts.map +1 -1
  1245. package/dist/src/services/prompt-defaults.js +0 -5
  1246. package/dist/src/services/prompt-defaults.js.map +1 -1
  1247. package/dist/src/services/push.d.ts +5 -0
  1248. package/dist/src/services/push.d.ts.map +1 -1
  1249. package/dist/src/services/push.js.map +1 -1
  1250. package/dist/src/services/quota.d.ts +3 -1
  1251. package/dist/src/services/quota.d.ts.map +1 -1
  1252. package/dist/src/services/quota.js +6 -9
  1253. package/dist/src/services/quota.js.map +1 -1
  1254. package/dist/src/services/structure-overview.d.ts +3 -0
  1255. package/dist/src/services/structure-overview.d.ts.map +1 -1
  1256. package/dist/src/services/structure-overview.js +3 -1
  1257. package/dist/src/services/structure-overview.js.map +1 -1
  1258. package/dist/src/services/structure-snapshot.d.ts.map +1 -1
  1259. package/dist/src/services/structure-snapshot.js +24 -1
  1260. package/dist/src/services/structure-snapshot.js.map +1 -1
  1261. package/dist/src/services/tracked-classify.js +1 -1
  1262. package/dist/src/services/tracked-classify.js.map +1 -1
  1263. package/dist/src/services/usage-summary.d.ts +3 -0
  1264. package/dist/src/services/usage-summary.d.ts.map +1 -1
  1265. package/dist/src/services/usage-summary.js +31 -29
  1266. package/dist/src/services/usage-summary.js.map +1 -1
  1267. package/dist/src/services/workflow/engine-human.d.ts +33 -0
  1268. package/dist/src/services/workflow/engine-human.d.ts.map +1 -0
  1269. package/dist/src/services/workflow/engine-human.js +44 -0
  1270. package/dist/src/services/workflow/engine-human.js.map +1 -0
  1271. package/dist/src/services/workflow/engine-steps.d.ts +13 -0
  1272. package/dist/src/services/workflow/engine-steps.d.ts.map +1 -1
  1273. package/dist/src/services/workflow/engine-steps.js +33 -2
  1274. package/dist/src/services/workflow/engine-steps.js.map +1 -1
  1275. package/dist/src/services/workflow/engine.d.ts +20 -0
  1276. package/dist/src/services/workflow/engine.d.ts.map +1 -1
  1277. package/dist/src/services/workflow/engine.js +77 -3
  1278. package/dist/src/services/workflow/engine.js.map +1 -1
  1279. package/dist/src/services/workflow/store.d.ts +3 -0
  1280. package/dist/src/services/workflow/store.d.ts.map +1 -1
  1281. package/dist/src/services/workflow/store.js +29 -4
  1282. package/dist/src/services/workflow/store.js.map +1 -1
  1283. package/dist/src/services/workspace-access.d.ts +12 -0
  1284. package/dist/src/services/workspace-access.d.ts.map +1 -1
  1285. package/dist/src/services/workspace-access.js +24 -5
  1286. package/dist/src/services/workspace-access.js.map +1 -1
  1287. package/dist/src/services/workspace-provision.d.ts +51 -0
  1288. package/dist/src/services/workspace-provision.d.ts.map +1 -0
  1289. package/dist/src/services/workspace-provision.js +56 -0
  1290. package/dist/src/services/workspace-provision.js.map +1 -0
  1291. package/dist/src/services/workspace-versions.d.ts +110 -0
  1292. package/dist/src/services/workspace-versions.d.ts.map +1 -0
  1293. package/dist/src/services/workspace-versions.js +0 -0
  1294. package/dist/src/services/workspace-versions.js.map +1 -0
  1295. package/dist/src/storage/adapter/legacy-memory-adapter.d.ts +61 -0
  1296. package/dist/src/storage/adapter/legacy-memory-adapter.d.ts.map +1 -0
  1297. package/dist/src/storage/adapter/legacy-memory-adapter.js +135 -0
  1298. package/dist/src/storage/adapter/legacy-memory-adapter.js.map +1 -0
  1299. package/dist/src/storage/adapter/memory-adapter.d.ts +126 -0
  1300. package/dist/src/storage/adapter/memory-adapter.d.ts.map +1 -0
  1301. package/dist/src/storage/adapter/memory-adapter.js +2 -0
  1302. package/dist/src/storage/adapter/memory-adapter.js.map +1 -0
  1303. package/dist/src/storage/interface.d.ts +3 -1
  1304. package/dist/src/storage/interface.d.ts.map +1 -1
  1305. package/dist/src/storage/providers/mongodb/index.d.ts +28 -0
  1306. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  1307. package/dist/src/storage/providers/mongodb/index.js +91 -1
  1308. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  1309. package/dist/src/storage/providers/mongodb/methods/apps.d.ts +9 -0
  1310. package/dist/src/storage/providers/mongodb/methods/apps.d.ts.map +1 -1
  1311. package/dist/src/storage/providers/mongodb/methods/apps.js +38 -0
  1312. package/dist/src/storage/providers/mongodb/methods/apps.js.map +1 -1
  1313. package/dist/src/storage/providers/mongodb/methods/governance.d.ts +5 -0
  1314. package/dist/src/storage/providers/mongodb/methods/governance.d.ts.map +1 -1
  1315. package/dist/src/storage/providers/mongodb/methods/governance.js +23 -2
  1316. package/dist/src/storage/providers/mongodb/methods/governance.js.map +1 -1
  1317. package/dist/src/storage/providers/mongodb/methods/identity.d.ts +6 -0
  1318. package/dist/src/storage/providers/mongodb/methods/identity.d.ts.map +1 -1
  1319. package/dist/src/storage/providers/mongodb/methods/identity.js +51 -9
  1320. package/dist/src/storage/providers/mongodb/methods/identity.js.map +1 -1
  1321. package/dist/src/storage/providers/mongodb/methods/owner-memory-scope.d.ts +34 -0
  1322. package/dist/src/storage/providers/mongodb/methods/owner-memory-scope.d.ts.map +1 -0
  1323. package/dist/src/storage/providers/mongodb/methods/owner-memory-scope.js +77 -0
  1324. package/dist/src/storage/providers/mongodb/methods/owner-memory-scope.js.map +1 -0
  1325. package/dist/src/storage/providers/mongodb/methods/owners-memory-bulk.d.ts +30 -0
  1326. package/dist/src/storage/providers/mongodb/methods/owners-memory-bulk.d.ts.map +1 -0
  1327. package/dist/src/storage/providers/mongodb/methods/owners-memory-bulk.js +0 -0
  1328. package/dist/src/storage/providers/mongodb/methods/owners-memory-bulk.js.map +1 -0
  1329. package/dist/src/storage/providers/mongodb/methods/owners.d.ts +8 -4
  1330. package/dist/src/storage/providers/mongodb/methods/owners.d.ts.map +1 -1
  1331. package/dist/src/storage/providers/mongodb/methods/owners.js +112 -21
  1332. package/dist/src/storage/providers/mongodb/methods/owners.js.map +1 -1
  1333. package/dist/src/storage/providers/mongodb/methods/sessions.d.ts.map +1 -1
  1334. package/dist/src/storage/providers/mongodb/methods/sessions.js +4 -0
  1335. package/dist/src/storage/providers/mongodb/methods/sessions.js.map +1 -1
  1336. package/dist/src/storage/providers/mongodb/methods/storage-stats.d.ts +21 -0
  1337. package/dist/src/storage/providers/mongodb/methods/storage-stats.d.ts.map +1 -0
  1338. package/dist/src/storage/providers/mongodb/methods/storage-stats.js +58 -0
  1339. package/dist/src/storage/providers/mongodb/methods/storage-stats.js.map +1 -0
  1340. package/dist/src/storage/providers/mongodb/methods/work.d.ts +8 -0
  1341. package/dist/src/storage/providers/mongodb/methods/work.d.ts.map +1 -1
  1342. package/dist/src/storage/providers/mongodb/methods/work.js +42 -0
  1343. package/dist/src/storage/providers/mongodb/methods/work.js.map +1 -1
  1344. package/dist/src/storage/providers/postgres/index.d.ts +1 -0
  1345. package/dist/src/storage/providers/postgres/index.d.ts.map +1 -1
  1346. package/dist/src/storage/providers/postgres/index.js +1 -0
  1347. package/dist/src/storage/providers/postgres/index.js.map +1 -1
  1348. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +1538 -0
  1349. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -0
  1350. package/dist/src/storage/providers/postgres-kysely/db-types.js +6 -0
  1351. package/dist/src/storage/providers/postgres-kysely/db-types.js.map +1 -0
  1352. package/dist/src/storage/providers/postgres-kysely/helpers.d.ts +23 -0
  1353. package/dist/src/storage/providers/postgres-kysely/helpers.d.ts.map +1 -0
  1354. package/dist/src/storage/providers/postgres-kysely/helpers.js +91 -0
  1355. package/dist/src/storage/providers/postgres-kysely/helpers.js.map +1 -0
  1356. package/dist/src/storage/providers/postgres-kysely/index.d.ts +38 -0
  1357. package/dist/src/storage/providers/postgres-kysely/index.d.ts.map +1 -0
  1358. package/dist/src/storage/providers/postgres-kysely/index.js +81 -0
  1359. package/dist/src/storage/providers/postgres-kysely/index.js.map +1 -0
  1360. package/dist/src/storage/providers/postgres-kysely/methods/actions.d.ts +16 -0
  1361. package/dist/src/storage/providers/postgres-kysely/methods/actions.d.ts.map +1 -0
  1362. package/dist/src/storage/providers/postgres-kysely/methods/actions.js +103 -0
  1363. package/dist/src/storage/providers/postgres-kysely/methods/actions.js.map +1 -0
  1364. package/dist/src/storage/providers/postgres-kysely/methods/agent-misc.d.ts +37 -0
  1365. package/dist/src/storage/providers/postgres-kysely/methods/agent-misc.d.ts.map +1 -0
  1366. package/dist/src/storage/providers/postgres-kysely/methods/agent-misc.js +306 -0
  1367. package/dist/src/storage/providers/postgres-kysely/methods/agent-misc.js.map +1 -0
  1368. package/dist/src/storage/providers/postgres-kysely/methods/agent-msg-dispute-invite.d.ts +55 -0
  1369. package/dist/src/storage/providers/postgres-kysely/methods/agent-msg-dispute-invite.d.ts.map +1 -0
  1370. package/dist/src/storage/providers/postgres-kysely/methods/agent-msg-dispute-invite.js +247 -0
  1371. package/dist/src/storage/providers/postgres-kysely/methods/agent-msg-dispute-invite.js.map +1 -0
  1372. package/dist/src/storage/providers/postgres-kysely/methods/agent-onboarding.d.ts +11 -0
  1373. package/dist/src/storage/providers/postgres-kysely/methods/agent-onboarding.d.ts.map +1 -0
  1374. package/dist/src/storage/providers/postgres-kysely/methods/agent-onboarding.js +81 -0
  1375. package/dist/src/storage/providers/postgres-kysely/methods/agent-onboarding.js.map +1 -0
  1376. package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.d.ts +50 -0
  1377. package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.d.ts.map +1 -0
  1378. package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.js +238 -0
  1379. package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.js.map +1 -0
  1380. package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.d.ts +10 -0
  1381. package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.d.ts.map +1 -0
  1382. package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.js +146 -0
  1383. package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.js.map +1 -0
  1384. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts +11 -0
  1385. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts.map +1 -0
  1386. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js +51 -0
  1387. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -0
  1388. package/dist/src/storage/providers/postgres-kysely/methods/app-purchases.d.ts +10 -0
  1389. package/dist/src/storage/providers/postgres-kysely/methods/app-purchases.d.ts.map +1 -0
  1390. package/dist/src/storage/providers/postgres-kysely/methods/app-purchases.js +53 -0
  1391. package/dist/src/storage/providers/postgres-kysely/methods/app-purchases.js.map +1 -0
  1392. package/dist/src/storage/providers/postgres-kysely/methods/apps.d.ts +49 -0
  1393. package/dist/src/storage/providers/postgres-kysely/methods/apps.d.ts.map +1 -0
  1394. package/dist/src/storage/providers/postgres-kysely/methods/apps.js +369 -0
  1395. package/dist/src/storage/providers/postgres-kysely/methods/apps.js.map +1 -0
  1396. package/dist/src/storage/providers/postgres-kysely/methods/boards.d.ts +28 -0
  1397. package/dist/src/storage/providers/postgres-kysely/methods/boards.d.ts.map +1 -0
  1398. package/dist/src/storage/providers/postgres-kysely/methods/boards.js +104 -0
  1399. package/dist/src/storage/providers/postgres-kysely/methods/boards.js.map +1 -0
  1400. package/dist/src/storage/providers/postgres-kysely/methods/capabilities.d.ts +36 -0
  1401. package/dist/src/storage/providers/postgres-kysely/methods/capabilities.d.ts.map +1 -0
  1402. package/dist/src/storage/providers/postgres-kysely/methods/capabilities.js +222 -0
  1403. package/dist/src/storage/providers/postgres-kysely/methods/capabilities.js.map +1 -0
  1404. package/dist/src/storage/providers/postgres-kysely/methods/catalogue.d.ts +19 -0
  1405. package/dist/src/storage/providers/postgres-kysely/methods/catalogue.d.ts.map +1 -0
  1406. package/dist/src/storage/providers/postgres-kysely/methods/catalogue.js +96 -0
  1407. package/dist/src/storage/providers/postgres-kysely/methods/catalogue.js.map +1 -0
  1408. package/dist/src/storage/providers/postgres-kysely/methods/consent.d.ts +26 -0
  1409. package/dist/src/storage/providers/postgres-kysely/methods/consent.d.ts.map +1 -0
  1410. package/dist/src/storage/providers/postgres-kysely/methods/consent.js +119 -0
  1411. package/dist/src/storage/providers/postgres-kysely/methods/consent.js.map +1 -0
  1412. package/dist/src/storage/providers/postgres-kysely/methods/device-auth.d.ts +13 -0
  1413. package/dist/src/storage/providers/postgres-kysely/methods/device-auth.d.ts.map +1 -0
  1414. package/dist/src/storage/providers/postgres-kysely/methods/device-auth.js +68 -0
  1415. package/dist/src/storage/providers/postgres-kysely/methods/device-auth.js.map +1 -0
  1416. package/dist/src/storage/providers/postgres-kysely/methods/direct-message.d.ts +72 -0
  1417. package/dist/src/storage/providers/postgres-kysely/methods/direct-message.d.ts.map +1 -0
  1418. package/dist/src/storage/providers/postgres-kysely/methods/direct-message.js +352 -0
  1419. package/dist/src/storage/providers/postgres-kysely/methods/direct-message.js.map +1 -0
  1420. package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.d.ts +22 -0
  1421. package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.d.ts.map +1 -0
  1422. package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.js +201 -0
  1423. package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.js.map +1 -0
  1424. package/dist/src/storage/providers/postgres-kysely/methods/federation.d.ts +42 -0
  1425. package/dist/src/storage/providers/postgres-kysely/methods/federation.d.ts.map +1 -0
  1426. package/dist/src/storage/providers/postgres-kysely/methods/federation.js +295 -0
  1427. package/dist/src/storage/providers/postgres-kysely/methods/federation.js.map +1 -0
  1428. package/dist/src/storage/providers/postgres-kysely/methods/feedback.d.ts +15 -0
  1429. package/dist/src/storage/providers/postgres-kysely/methods/feedback.d.ts.map +1 -0
  1430. package/dist/src/storage/providers/postgres-kysely/methods/feedback.js +52 -0
  1431. package/dist/src/storage/providers/postgres-kysely/methods/feedback.js.map +1 -0
  1432. package/dist/src/storage/providers/postgres-kysely/methods/files.d.ts +20 -0
  1433. package/dist/src/storage/providers/postgres-kysely/methods/files.d.ts.map +1 -0
  1434. package/dist/src/storage/providers/postgres-kysely/methods/files.js +108 -0
  1435. package/dist/src/storage/providers/postgres-kysely/methods/files.js.map +1 -0
  1436. package/dist/src/storage/providers/postgres-kysely/methods/identity-extras.d.ts +19 -0
  1437. package/dist/src/storage/providers/postgres-kysely/methods/identity-extras.d.ts.map +1 -0
  1438. package/dist/src/storage/providers/postgres-kysely/methods/identity-extras.js +101 -0
  1439. package/dist/src/storage/providers/postgres-kysely/methods/identity-extras.js.map +1 -0
  1440. package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts +35 -0
  1441. package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts.map +1 -0
  1442. package/dist/src/storage/providers/postgres-kysely/methods/identity.js +302 -0
  1443. package/dist/src/storage/providers/postgres-kysely/methods/identity.js.map +1 -0
  1444. package/dist/src/storage/providers/postgres-kysely/methods/knowledge.d.ts +21 -0
  1445. package/dist/src/storage/providers/postgres-kysely/methods/knowledge.d.ts.map +1 -0
  1446. package/dist/src/storage/providers/postgres-kysely/methods/knowledge.js +65 -0
  1447. package/dist/src/storage/providers/postgres-kysely/methods/knowledge.js.map +1 -0
  1448. package/dist/src/storage/providers/postgres-kysely/methods/marketplace.d.ts +24 -0
  1449. package/dist/src/storage/providers/postgres-kysely/methods/marketplace.d.ts.map +1 -0
  1450. package/dist/src/storage/providers/postgres-kysely/methods/marketplace.js +122 -0
  1451. package/dist/src/storage/providers/postgres-kysely/methods/marketplace.js.map +1 -0
  1452. package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts +81 -0
  1453. package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts.map +1 -0
  1454. package/dist/src/storage/providers/postgres-kysely/methods/memory.js +342 -0
  1455. package/dist/src/storage/providers/postgres-kysely/methods/memory.js.map +1 -0
  1456. package/dist/src/storage/providers/postgres-kysely/methods/micro-memory.d.ts +15 -0
  1457. package/dist/src/storage/providers/postgres-kysely/methods/micro-memory.d.ts.map +1 -0
  1458. package/dist/src/storage/providers/postgres-kysely/methods/micro-memory.js +55 -0
  1459. package/dist/src/storage/providers/postgres-kysely/methods/micro-memory.js.map +1 -0
  1460. package/dist/src/storage/providers/postgres-kysely/methods/moderation.d.ts +38 -0
  1461. package/dist/src/storage/providers/postgres-kysely/methods/moderation.d.ts.map +1 -0
  1462. package/dist/src/storage/providers/postgres-kysely/methods/moderation.js +176 -0
  1463. package/dist/src/storage/providers/postgres-kysely/methods/moderation.js.map +1 -0
  1464. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.d.ts +38 -0
  1465. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.d.ts.map +1 -0
  1466. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.js +243 -0
  1467. package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.js.map +1 -0
  1468. package/dist/src/storage/providers/postgres-kysely/methods/node-infra.d.ts +30 -0
  1469. package/dist/src/storage/providers/postgres-kysely/methods/node-infra.d.ts.map +1 -0
  1470. package/dist/src/storage/providers/postgres-kysely/methods/node-infra.js +158 -0
  1471. package/dist/src/storage/providers/postgres-kysely/methods/node-infra.js.map +1 -0
  1472. package/dist/src/storage/providers/postgres-kysely/methods/notifications.d.ts +19 -0
  1473. package/dist/src/storage/providers/postgres-kysely/methods/notifications.d.ts.map +1 -0
  1474. package/dist/src/storage/providers/postgres-kysely/methods/notifications.js +106 -0
  1475. package/dist/src/storage/providers/postgres-kysely/methods/notifications.js.map +1 -0
  1476. package/dist/src/storage/providers/postgres-kysely/methods/oauth.d.ts +20 -0
  1477. package/dist/src/storage/providers/postgres-kysely/methods/oauth.d.ts.map +1 -0
  1478. package/dist/src/storage/providers/postgres-kysely/methods/oauth.js +94 -0
  1479. package/dist/src/storage/providers/postgres-kysely/methods/oauth.js.map +1 -0
  1480. package/dist/src/storage/providers/postgres-kysely/methods/organisms.d.ts +46 -0
  1481. package/dist/src/storage/providers/postgres-kysely/methods/organisms.d.ts.map +1 -0
  1482. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js +247 -0
  1483. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -0
  1484. package/dist/src/storage/providers/postgres-kysely/methods/otk.d.ts +10 -0
  1485. package/dist/src/storage/providers/postgres-kysely/methods/otk.d.ts.map +1 -0
  1486. package/dist/src/storage/providers/postgres-kysely/methods/otk.js +60 -0
  1487. package/dist/src/storage/providers/postgres-kysely/methods/otk.js.map +1 -0
  1488. package/dist/src/storage/providers/postgres-kysely/methods/packages.d.ts +32 -0
  1489. package/dist/src/storage/providers/postgres-kysely/methods/packages.d.ts.map +1 -0
  1490. package/dist/src/storage/providers/postgres-kysely/methods/packages.js +228 -0
  1491. package/dist/src/storage/providers/postgres-kysely/methods/packages.js.map +1 -0
  1492. package/dist/src/storage/providers/postgres-kysely/methods/pat.d.ts +10 -0
  1493. package/dist/src/storage/providers/postgres-kysely/methods/pat.d.ts.map +1 -0
  1494. package/dist/src/storage/providers/postgres-kysely/methods/pat.js +36 -0
  1495. package/dist/src/storage/providers/postgres-kysely/methods/pat.js.map +1 -0
  1496. package/dist/src/storage/providers/postgres-kysely/methods/schedules.d.ts +32 -0
  1497. package/dist/src/storage/providers/postgres-kysely/methods/schedules.d.ts.map +1 -0
  1498. package/dist/src/storage/providers/postgres-kysely/methods/schedules.js +131 -0
  1499. package/dist/src/storage/providers/postgres-kysely/methods/schedules.js.map +1 -0
  1500. package/dist/src/storage/providers/postgres-kysely/methods/schema.d.ts +10 -0
  1501. package/dist/src/storage/providers/postgres-kysely/methods/schema.d.ts.map +1 -0
  1502. package/dist/src/storage/providers/postgres-kysely/methods/schema.js +88 -0
  1503. package/dist/src/storage/providers/postgres-kysely/methods/schema.js.map +1 -0
  1504. package/dist/src/storage/providers/postgres-kysely/methods/sessions.d.ts +38 -0
  1505. package/dist/src/storage/providers/postgres-kysely/methods/sessions.d.ts.map +1 -0
  1506. package/dist/src/storage/providers/postgres-kysely/methods/sessions.js +66 -0
  1507. package/dist/src/storage/providers/postgres-kysely/methods/sessions.js.map +1 -0
  1508. package/dist/src/storage/providers/postgres-kysely/methods/subdomain-sites.d.ts +10 -0
  1509. package/dist/src/storage/providers/postgres-kysely/methods/subdomain-sites.d.ts.map +1 -0
  1510. package/dist/src/storage/providers/postgres-kysely/methods/subdomain-sites.js +36 -0
  1511. package/dist/src/storage/providers/postgres-kysely/methods/subdomain-sites.js.map +1 -0
  1512. package/dist/src/storage/providers/postgres-kysely/methods/system-extras.d.ts +23 -0
  1513. package/dist/src/storage/providers/postgres-kysely/methods/system-extras.d.ts.map +1 -0
  1514. package/dist/src/storage/providers/postgres-kysely/methods/system-extras.js +109 -0
  1515. package/dist/src/storage/providers/postgres-kysely/methods/system-extras.js.map +1 -0
  1516. package/dist/src/storage/providers/postgres-kysely/methods/system.d.ts +32 -0
  1517. package/dist/src/storage/providers/postgres-kysely/methods/system.d.ts.map +1 -0
  1518. package/dist/src/storage/providers/postgres-kysely/methods/system.js +144 -0
  1519. package/dist/src/storage/providers/postgres-kysely/methods/system.js.map +1 -0
  1520. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.d.ts +34 -0
  1521. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.d.ts.map +1 -0
  1522. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.js +278 -0
  1523. package/dist/src/storage/providers/postgres-kysely/methods/template-listings.js.map +1 -0
  1524. package/dist/src/storage/providers/postgres-kysely/methods/wallet.d.ts +13 -0
  1525. package/dist/src/storage/providers/postgres-kysely/methods/wallet.d.ts.map +1 -0
  1526. package/dist/src/storage/providers/postgres-kysely/methods/wallet.js +129 -0
  1527. package/dist/src/storage/providers/postgres-kysely/methods/wallet.js.map +1 -0
  1528. package/dist/src/storage/providers/postgres-kysely/methods/work.d.ts +14 -0
  1529. package/dist/src/storage/providers/postgres-kysely/methods/work.d.ts.map +1 -0
  1530. package/dist/src/storage/providers/postgres-kysely/methods/work.js +80 -0
  1531. package/dist/src/storage/providers/postgres-kysely/methods/work.js.map +1 -0
  1532. package/dist/src/storage/providers/postgres-kysely/migrate.d.ts +4 -0
  1533. package/dist/src/storage/providers/postgres-kysely/migrate.d.ts.map +1 -0
  1534. package/dist/src/storage/providers/postgres-kysely/migrate.js +40 -0
  1535. package/dist/src/storage/providers/postgres-kysely/migrate.js.map +1 -0
  1536. package/dist/src/storage/providers/postgres-kysely/migrations/0001_base_schema.sql +2406 -0
  1537. package/dist/src/storage/providers/postgres-kysely/migrations/0002_memory_fts.sql +20 -0
  1538. package/dist/src/storage/providers/postgres-kysely/migrations/0003_id_defaults.sql +15 -0
  1539. package/dist/src/storage/providers/postgres-kysely/migrations/0004_otk_initial.sql +4 -0
  1540. package/dist/src/storage/providers/postgres-kysely/migrations/0005_storage_stats.sql +9 -0
  1541. package/dist/src/storage/providers/postgres-kysely/migrations/0006_membership_invited_workspaces.sql +5 -0
  1542. package/dist/src/storage/providers/postgres-kysely/migrations/0007_contacts_origin.sql +5 -0
  1543. package/dist/src/storage/providers/postgres-kysely/migrations/0008_feedback.sql +21 -0
  1544. package/dist/src/storage/providers/postgres-kysely/migrations/0009_invitation_return_url.sql +7 -0
  1545. package/dist/src/storage/providers/postgres-kysely/migrations/0010_agent_model.sql +5 -0
  1546. package/dist/src/storage/providers/postgres-kysely/migrations/0011_unique_verified_email.sql +25 -0
  1547. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  1548. package/dist/src/storage/providers/sqlite/index.js +4 -1
  1549. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  1550. package/dist/src/storage/providers/sqlite/methods/apps.d.ts +12 -1
  1551. package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
  1552. package/dist/src/storage/providers/sqlite/methods/apps.js +42 -0
  1553. package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
  1554. package/dist/src/storage/providers/sqlite/methods/capability-agents.d.ts +12 -1
  1555. package/dist/src/storage/providers/sqlite/methods/capability-agents.d.ts.map +1 -1
  1556. package/dist/src/storage/providers/sqlite/methods/capability-agents.js +42 -0
  1557. package/dist/src/storage/providers/sqlite/methods/capability-agents.js.map +1 -1
  1558. package/dist/src/storage/providers/sqlite/methods/community.d.ts +6 -0
  1559. package/dist/src/storage/providers/sqlite/methods/community.d.ts.map +1 -1
  1560. package/dist/src/storage/providers/sqlite/methods/community.js +29 -3
  1561. package/dist/src/storage/providers/sqlite/methods/community.js.map +1 -1
  1562. package/dist/src/storage/providers/sqlite/methods/extensions-notify.d.ts.map +1 -1
  1563. package/dist/src/storage/providers/sqlite/methods/extensions-notify.js +11 -2
  1564. package/dist/src/storage/providers/sqlite/methods/extensions-notify.js.map +1 -1
  1565. package/dist/src/storage/providers/sqlite/methods/feedback.d.ts +23 -0
  1566. package/dist/src/storage/providers/sqlite/methods/feedback.d.ts.map +1 -0
  1567. package/dist/src/storage/providers/sqlite/methods/feedback.js +64 -0
  1568. package/dist/src/storage/providers/sqlite/methods/feedback.js.map +1 -0
  1569. package/dist/src/storage/providers/sqlite/methods/governance.d.ts +5 -0
  1570. package/dist/src/storage/providers/sqlite/methods/governance.d.ts.map +1 -1
  1571. package/dist/src/storage/providers/sqlite/methods/governance.js +43 -9
  1572. package/dist/src/storage/providers/sqlite/methods/governance.js.map +1 -1
  1573. package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts +9 -0
  1574. package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts.map +1 -1
  1575. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js +52 -0
  1576. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js.map +1 -1
  1577. package/dist/src/storage/providers/sqlite/methods/messaging.d.ts +15 -1
  1578. package/dist/src/storage/providers/sqlite/methods/messaging.d.ts.map +1 -1
  1579. package/dist/src/storage/providers/sqlite/methods/messaging.js +11 -2
  1580. package/dist/src/storage/providers/sqlite/methods/messaging.js.map +1 -1
  1581. package/dist/src/storage/providers/sqlite/methods/owner-memory-bulk.d.ts +28 -0
  1582. package/dist/src/storage/providers/sqlite/methods/owner-memory-bulk.d.ts.map +1 -0
  1583. package/dist/src/storage/providers/sqlite/methods/owner-memory-bulk.js +101 -0
  1584. package/dist/src/storage/providers/sqlite/methods/owner-memory-bulk.js.map +1 -0
  1585. package/dist/src/storage/providers/sqlite/methods/owner-memory-scope.d.ts +35 -0
  1586. package/dist/src/storage/providers/sqlite/methods/owner-memory-scope.d.ts.map +1 -0
  1587. package/dist/src/storage/providers/sqlite/methods/owner-memory-scope.js +118 -0
  1588. package/dist/src/storage/providers/sqlite/methods/owner-memory-scope.js.map +1 -0
  1589. package/dist/src/storage/providers/sqlite/methods/owner.d.ts +6 -0
  1590. package/dist/src/storage/providers/sqlite/methods/owner.d.ts.map +1 -1
  1591. package/dist/src/storage/providers/sqlite/methods/owner.js +41 -9
  1592. package/dist/src/storage/providers/sqlite/methods/owner.js.map +1 -1
  1593. package/dist/src/storage/providers/sqlite/methods/work.d.ts +8 -0
  1594. package/dist/src/storage/providers/sqlite/methods/work.d.ts.map +1 -1
  1595. package/dist/src/storage/providers/sqlite/methods/work.js +31 -0
  1596. package/dist/src/storage/providers/sqlite/methods/work.js.map +1 -1
  1597. package/dist/src/storage/providers/sqlite/repos/action.d.ts +3 -0
  1598. package/dist/src/storage/providers/sqlite/repos/action.d.ts.map +1 -1
  1599. package/dist/src/storage/providers/sqlite/repos/action.js +9 -0
  1600. package/dist/src/storage/providers/sqlite/repos/action.js.map +1 -1
  1601. package/dist/src/storage/providers/sqlite/repos/agent.d.ts.map +1 -1
  1602. package/dist/src/storage/providers/sqlite/repos/agent.js +8 -4
  1603. package/dist/src/storage/providers/sqlite/repos/agent.js.map +1 -1
  1604. package/dist/src/storage/providers/sqlite/repos/community.d.ts +1 -0
  1605. package/dist/src/storage/providers/sqlite/repos/community.d.ts.map +1 -1
  1606. package/dist/src/storage/providers/sqlite/repos/community.js +9 -3
  1607. package/dist/src/storage/providers/sqlite/repos/community.js.map +1 -1
  1608. package/dist/src/storage/providers/sqlite/repos/direct-message.d.ts +13 -1
  1609. package/dist/src/storage/providers/sqlite/repos/direct-message.d.ts.map +1 -1
  1610. package/dist/src/storage/providers/sqlite/repos/direct-message.js +70 -5
  1611. package/dist/src/storage/providers/sqlite/repos/direct-message.js.map +1 -1
  1612. package/dist/src/storage/providers/sqlite/repos/memory.d.ts +7 -0
  1613. package/dist/src/storage/providers/sqlite/repos/memory.d.ts.map +1 -1
  1614. package/dist/src/storage/providers/sqlite/repos/memory.js +24 -3
  1615. package/dist/src/storage/providers/sqlite/repos/memory.js.map +1 -1
  1616. package/dist/src/storage/providers/sqlite/repos/storage-file.d.ts +12 -0
  1617. package/dist/src/storage/providers/sqlite/repos/storage-file.d.ts.map +1 -1
  1618. package/dist/src/storage/providers/sqlite/repos/storage-file.js +24 -0
  1619. package/dist/src/storage/providers/sqlite/repos/storage-file.js.map +1 -1
  1620. package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts +1 -0
  1621. package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts.map +1 -1
  1622. package/dist/src/storage/providers/sqlite/schema-tables-1.js +18 -1
  1623. package/dist/src/storage/providers/sqlite/schema-tables-1.js.map +1 -1
  1624. package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts +1 -0
  1625. package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts.map +1 -1
  1626. package/dist/src/storage/providers/sqlite/schema-tables-2.js +4 -1
  1627. package/dist/src/storage/providers/sqlite/schema-tables-2.js.map +1 -1
  1628. package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts.map +1 -1
  1629. package/dist/src/storage/providers/sqlite/schema-tables-3.js +11 -1
  1630. package/dist/src/storage/providers/sqlite/schema-tables-3.js.map +1 -1
  1631. package/dist/src/storage/providers/sqlite/schema.d.ts +0 -1
  1632. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  1633. package/dist/src/storage/providers/sqlite/schema.js +44 -0
  1634. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  1635. package/dist/src/storage/repositories/action.repository.d.ts +2 -0
  1636. package/dist/src/storage/repositories/action.repository.d.ts.map +1 -1
  1637. package/dist/src/storage/repositories/agent.repository.d.ts +3 -0
  1638. package/dist/src/storage/repositories/agent.repository.d.ts.map +1 -1
  1639. package/dist/src/storage/repositories/app.repository.d.ts +0 -0
  1640. package/dist/src/storage/repositories/app.repository.d.ts.map +1 -1
  1641. package/dist/src/storage/repositories/consent.repository.d.ts +10 -0
  1642. package/dist/src/storage/repositories/consent.repository.d.ts.map +1 -1
  1643. package/dist/src/storage/repositories/direct-message.repository.d.ts +36 -11
  1644. package/dist/src/storage/repositories/direct-message.repository.d.ts.map +1 -1
  1645. package/dist/src/storage/repositories/direct-message.repository.js +2 -0
  1646. package/dist/src/storage/repositories/direct-message.repository.js.map +1 -1
  1647. package/dist/src/storage/repositories/feedback.repository.d.ts +28 -0
  1648. package/dist/src/storage/repositories/feedback.repository.d.ts.map +1 -0
  1649. package/dist/src/storage/repositories/feedback.repository.js +13 -0
  1650. package/dist/src/storage/repositories/feedback.repository.js.map +1 -0
  1651. package/dist/src/storage/repositories/file.repository.d.ts +11 -0
  1652. package/dist/src/storage/repositories/file.repository.d.ts.map +1 -1
  1653. package/dist/src/storage/repositories/identity.repository.d.ts +13 -0
  1654. package/dist/src/storage/repositories/identity.repository.d.ts.map +1 -1
  1655. package/dist/src/storage/repositories/index.d.ts +1 -0
  1656. package/dist/src/storage/repositories/index.d.ts.map +1 -1
  1657. package/dist/src/storage/repositories/invitation.repository.d.ts +3 -0
  1658. package/dist/src/storage/repositories/invitation.repository.d.ts.map +1 -1
  1659. package/dist/src/storage/repositories/invitation.repository.js +2 -0
  1660. package/dist/src/storage/repositories/invitation.repository.js.map +1 -1
  1661. package/dist/src/storage/repositories/memory.repository.d.ts +133 -1
  1662. package/dist/src/storage/repositories/memory.repository.d.ts.map +1 -1
  1663. package/dist/src/storage/repositories/micro-memory.repository.d.ts +6 -0
  1664. package/dist/src/storage/repositories/micro-memory.repository.d.ts.map +1 -1
  1665. package/dist/src/storage/repositories/organism.repository.d.ts +10 -0
  1666. package/dist/src/storage/repositories/organism.repository.d.ts.map +1 -1
  1667. package/dist/src/storage/repositories/stats.repository.d.ts +31 -2
  1668. package/dist/src/storage/repositories/stats.repository.d.ts.map +1 -1
  1669. package/dist/src/storage/repositories/stats.repository.js +5 -2
  1670. package/dist/src/storage/repositories/stats.repository.js.map +1 -1
  1671. package/dist/src/storage/repositories/work.repository.d.ts +7 -0
  1672. package/dist/src/storage/repositories/work.repository.d.ts.map +1 -1
  1673. package/dist/src/storage/repositories-impl/memory-repository.d.ts +78 -0
  1674. package/dist/src/storage/repositories-impl/memory-repository.d.ts.map +1 -0
  1675. package/dist/src/storage/repositories-impl/memory-repository.js +121 -0
  1676. package/dist/src/storage/repositories-impl/memory-repository.js.map +1 -0
  1677. package/dist/src/storage/schema-lock-cache.d.ts +24 -0
  1678. package/dist/src/storage/schema-lock-cache.d.ts.map +1 -0
  1679. package/dist/src/storage/schema-lock-cache.js +19 -0
  1680. package/dist/src/storage/schema-lock-cache.js.map +1 -0
  1681. package/dist/src/storage/storage-factory.d.ts +6 -3
  1682. package/dist/src/storage/storage-factory.d.ts.map +1 -1
  1683. package/dist/src/storage/storage-factory.js +19 -12
  1684. package/dist/src/storage/storage-factory.js.map +1 -1
  1685. package/dist/src/storage/types/agents-messaging.d.ts +33 -0
  1686. package/dist/src/storage/types/agents-messaging.d.ts.map +1 -1
  1687. package/dist/src/storage/types/agents-messaging.js +3 -0
  1688. package/dist/src/storage/types/agents-messaging.js.map +1 -1
  1689. package/dist/src/storage/types/apps.d.ts +14 -0
  1690. package/dist/src/storage/types/apps.d.ts.map +1 -1
  1691. package/dist/src/storage/types/identity.d.ts +8 -0
  1692. package/dist/src/storage/types/identity.d.ts.map +1 -1
  1693. package/dist/src/storage/types/organisms-federation.d.ts +48 -0
  1694. package/dist/src/storage/types/organisms-federation.d.ts.map +1 -1
  1695. package/dist/src/storage/uow/batch-loader.d.ts +44 -0
  1696. package/dist/src/storage/uow/batch-loader.d.ts.map +1 -0
  1697. package/dist/src/storage/uow/batch-loader.js +101 -0
  1698. package/dist/src/storage/uow/batch-loader.js.map +1 -0
  1699. package/dist/src/storage/uow/identity-map.d.ts +0 -0
  1700. package/dist/src/storage/uow/identity-map.d.ts.map +1 -0
  1701. package/dist/src/storage/uow/identity-map.js +0 -0
  1702. package/dist/src/storage/uow/identity-map.js.map +1 -0
  1703. package/dist/src/storage/uow/unit-of-work.d.ts +42 -0
  1704. package/dist/src/storage/uow/unit-of-work.d.ts.map +1 -0
  1705. package/dist/src/storage/uow/unit-of-work.js +89 -0
  1706. package/dist/src/storage/uow/unit-of-work.js.map +1 -0
  1707. package/dist/src/utils/app-badge.d.ts +7 -22
  1708. package/dist/src/utils/app-badge.d.ts.map +1 -1
  1709. package/dist/src/utils/app-badge.js +59 -22
  1710. package/dist/src/utils/app-badge.js.map +1 -1
  1711. package/dist/src/utils/app-mobile-lint.d.ts +17 -0
  1712. package/dist/src/utils/app-mobile-lint.d.ts.map +1 -0
  1713. package/dist/src/utils/app-mobile-lint.js +40 -0
  1714. package/dist/src/utils/app-mobile-lint.js.map +1 -0
  1715. package/dist/src/utils/app-protect.d.ts +2 -0
  1716. package/dist/src/utils/app-protect.d.ts.map +1 -1
  1717. package/dist/src/utils/app-protect.js +3 -9
  1718. package/dist/src/utils/app-protect.js.map +1 -1
  1719. package/dist/src/utils/env-config/sections-node.js +4 -4
  1720. package/dist/src/utils/env-config/sections-node.js.map +1 -1
  1721. package/dist/src/utils/env-config/sections-platform.d.ts.map +1 -1
  1722. package/dist/src/utils/env-config/sections-platform.js +0 -11
  1723. package/dist/src/utils/env-config/sections-platform.js.map +1 -1
  1724. package/dist/src/utils/env-validator.d.ts.map +1 -1
  1725. package/dist/src/utils/env-validator.js +10 -6
  1726. package/dist/src/utils/env-validator.js.map +1 -1
  1727. package/dist/src/utils/html-inject.d.ts +23 -0
  1728. package/dist/src/utils/html-inject.d.ts.map +1 -0
  1729. package/dist/src/utils/html-inject.js +42 -0
  1730. package/dist/src/utils/html-inject.js.map +1 -0
  1731. package/dist/src/utils/node-descriptor.d.ts.map +1 -1
  1732. package/dist/src/utils/node-descriptor.js +0 -1
  1733. package/dist/src/utils/node-descriptor.js.map +1 -1
  1734. package/dist/static/app-catalog/_template.html +27 -77
  1735. package/dist/static/app-catalog/js/app-agents.js +232 -0
  1736. package/dist/static/app-catalog/js/apps-io.js +51 -165
  1737. package/dist/static/app-catalog/js/cortex.js +114 -0
  1738. package/dist/static/app-catalog/js/cost.js +100 -0
  1739. package/dist/static/app-catalog/js/db.js +23 -93
  1740. package/dist/static/app-catalog/js/detail.js +196 -24
  1741. package/dist/static/app-catalog/js/favorites.js +71 -0
  1742. package/dist/static/app-catalog/js/i18n-data.js +168 -16
  1743. package/dist/static/app-catalog/js/main.js +29 -103
  1744. package/dist/static/app-catalog/js/migrate.js +88 -0
  1745. package/dist/static/app-catalog/js/monetize.js +1 -1
  1746. package/dist/static/app-catalog/js/promote.js +70 -0
  1747. package/dist/static/app-catalog/js/render.js +56 -150
  1748. package/dist/static/app-catalog/js/server-io.js +126 -214
  1749. package/dist/static/app-catalog/js/settings.js +11 -204
  1750. package/dist/static/app-catalog/styles/app-catalog.css +136 -9
  1751. package/dist/static/app-catalog.html +1364 -976
  1752. package/dist/static/sdk-libs/_core/config.js +52 -0
  1753. package/dist/static/sdk-libs/_core/http.js +52 -0
  1754. package/dist/static/sdk-libs/_core/namespace.js +33 -0
  1755. package/dist/static/sdk-libs/_core/sdk-globals.d.ts +50 -0
  1756. package/dist/static/sdk-libs/_core/session.js +66 -0
  1757. package/dist/static/sdk-libs/agentface/index.js +102 -0
  1758. package/dist/static/sdk-libs/agents/index.js +267 -0
  1759. package/dist/static/sdk-libs/ai/index.js +153 -0
  1760. package/dist/static/sdk-libs/audio/core.js +111 -0
  1761. package/dist/static/sdk-libs/audio/index.js +380 -0
  1762. package/dist/static/sdk-libs/audio/instruments.js +369 -0
  1763. package/dist/static/sdk-libs/auth/config.js +46 -0
  1764. package/dist/static/sdk-libs/auth/crypto.js +166 -0
  1765. package/dist/static/sdk-libs/auth/events.js +27 -0
  1766. package/dist/static/sdk-libs/auth/i18n.js +64 -0
  1767. package/dist/static/sdk-libs/auth/index.js +37 -0
  1768. package/dist/static/sdk-libs/auth/modal.js +545 -0
  1769. package/dist/static/sdk-libs/auth/pill.js +167 -0
  1770. package/dist/static/sdk-libs/auth/session.js +792 -0
  1771. package/dist/static/sdk-libs/auth/signup.js +232 -0
  1772. package/dist/static/sdk-libs/auth/theme.js +96 -0
  1773. package/dist/static/sdk-libs/capabilities/index.js +179 -0
  1774. package/dist/static/sdk-libs/commerce/index.js +243 -0
  1775. package/dist/static/sdk-libs/data/index.js +188 -0
  1776. package/dist/static/sdk-libs/dist/aimeat-agentface.js +91 -0
  1777. package/dist/static/sdk-libs/dist/aimeat-agents.js +315 -0
  1778. package/dist/static/sdk-libs/dist/aimeat-ai.js +168 -0
  1779. package/dist/static/sdk-libs/dist/aimeat-audio.js +979 -0
  1780. package/dist/static/sdk-libs/dist/aimeat-auth.js +1831 -0
  1781. package/dist/static/sdk-libs/dist/aimeat-capabilities.js +177 -0
  1782. package/dist/static/sdk-libs/dist/aimeat-commerce.js +265 -0
  1783. package/dist/static/sdk-libs/dist/aimeat-data.js +205 -0
  1784. package/dist/static/sdk-libs/dist/aimeat-editor.js +299 -0
  1785. package/dist/static/sdk-libs/dist/aimeat-header.js +270 -0
  1786. package/dist/static/sdk-libs/dist/aimeat-intake.js +94 -0
  1787. package/dist/static/sdk-libs/dist/aimeat-live.js +265 -0
  1788. package/dist/static/sdk-libs/dist/aimeat-markdown.js +602 -0
  1789. package/dist/static/sdk-libs/dist/aimeat-organism.js +394 -0
  1790. package/dist/static/sdk-libs/dist/aimeat-portfolio-standalone.js +90 -0
  1791. package/dist/static/sdk-libs/dist/aimeat-social.js +157 -0
  1792. package/dist/static/sdk-libs/dist/aimeat-speech.js +300 -0
  1793. package/dist/static/sdk-libs/dist/aimeat-storage.js +210 -0
  1794. package/dist/static/sdk-libs/dist/aimeat-tunnel.js +383 -0
  1795. package/dist/static/sdk-libs/dist/aimeat-wallet.js +118 -0
  1796. package/dist/static/sdk-libs/dist/aimeat-webmcp.js +187 -0
  1797. package/dist/static/sdk-libs/dist/aimeat-work.js +213 -0
  1798. package/dist/static/sdk-libs/dist/aimeat-workflows.js +147 -0
  1799. package/dist/static/sdk-libs/editor/index.js +229 -0
  1800. package/dist/static/sdk-libs/header/index.js +249 -0
  1801. package/dist/static/sdk-libs/intake/index.js +75 -0
  1802. package/dist/static/sdk-libs/live/index.js +156 -0
  1803. package/dist/static/sdk-libs/markdown/index.js +522 -0
  1804. package/dist/static/sdk-libs/organism/index.js +381 -0
  1805. package/dist/static/sdk-libs/portfolio-standalone/index.js +78 -0
  1806. package/dist/static/sdk-libs/social/index.js +140 -0
  1807. package/dist/static/sdk-libs/speech/index.js +321 -0
  1808. package/dist/static/sdk-libs/storage/index.js +189 -0
  1809. package/dist/static/sdk-libs/tunnel/index.js +428 -0
  1810. package/dist/static/sdk-libs/wallet/index.js +115 -0
  1811. package/dist/static/sdk-libs/webmcp/index.js +185 -0
  1812. package/dist/static/sdk-libs/work/index.js +191 -0
  1813. package/dist/static/sdk-libs/workflows/index.js +113 -0
  1814. package/package.json +23 -21
  1815. package/prisma/schema.postgres.prisma +0 -1789
  1816. package/prisma/schema.prisma +0 -1787
@@ -0,0 +1,1831 @@
1
+ // GENERATED FILE — do not edit directly. Source: src/static/sdk-libs/auth/ (+ _core/).
2
+ // Rebuild: pnpm build:sdk · Served at /v1/libs/aimeat-auth.js (with a per-node config prelude).
3
+ "use strict";
4
+ (() => {
5
+ // src/static/sdk-libs/auth/crypto.js
6
+ async function importEd25519Key(privateKeyBase64) {
7
+ const privBytes = Uint8Array.from(atob(privateKeyBase64), (c) => c.charCodeAt(0));
8
+ const pkcs8Prefix = new Uint8Array([48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32]);
9
+ const pkcs8 = new Uint8Array(pkcs8Prefix.length + privBytes.length);
10
+ pkcs8.set(pkcs8Prefix);
11
+ pkcs8.set(privBytes, pkcs8Prefix.length);
12
+ const cryptoKey = await crypto.subtle.importKey("pkcs8", pkcs8, "Ed25519", false, ["sign"]);
13
+ privBytes.fill(0);
14
+ pkcs8.fill(0);
15
+ return cryptoKey;
16
+ }
17
+ function isCryptoKey(value) {
18
+ if (!value || typeof value !== "object") return false;
19
+ if (typeof CryptoKey !== "undefined" && value instanceof CryptoKey) return true;
20
+ return Object.prototype.toString.call(value) === "[object CryptoKey]";
21
+ }
22
+ async function sign(keyOrB64, message) {
23
+ let key = keyOrB64;
24
+ if (typeof keyOrB64 === "string") {
25
+ key = await importEd25519Key(keyOrB64);
26
+ }
27
+ if (!isCryptoKey(key)) {
28
+ throw new Error("AIMEAT signing key is missing or invalid. Please sign in again.");
29
+ }
30
+ const msgBytes = new TextEncoder().encode(message);
31
+ const sigBytes = await crypto.subtle.sign("Ed25519", key, msgBytes);
32
+ return btoa(String.fromCharCode(...new Uint8Array(sigBytes)));
33
+ }
34
+ var KEY_DB_NAME = "aimeat_keys";
35
+ var KEY_STORE_NAME = "cryptokeys";
36
+ function openKeyDB() {
37
+ return new Promise((resolve, reject) => {
38
+ const req = indexedDB.open(KEY_DB_NAME, 1);
39
+ req.onupgradeneeded = () => req.result.createObjectStore(KEY_STORE_NAME);
40
+ req.onsuccess = () => resolve(req.result);
41
+ req.onerror = () => reject(req.error);
42
+ });
43
+ }
44
+ async function storeKey(name, cryptoKey) {
45
+ const db = (
46
+ /** @type {IDBDatabase} */
47
+ await openKeyDB()
48
+ );
49
+ return new Promise((resolve, reject) => {
50
+ const tx = db.transaction(KEY_STORE_NAME, "readwrite");
51
+ tx.objectStore(KEY_STORE_NAME).put(cryptoKey, name);
52
+ tx.oncomplete = () => {
53
+ db.close();
54
+ resolve(void 0);
55
+ };
56
+ tx.onerror = () => {
57
+ db.close();
58
+ reject(tx.error);
59
+ };
60
+ });
61
+ }
62
+ async function loadKey(name) {
63
+ const db = (
64
+ /** @type {IDBDatabase} */
65
+ await openKeyDB()
66
+ );
67
+ return new Promise((resolve) => {
68
+ const tx = db.transaction(KEY_STORE_NAME, "readonly");
69
+ const req = tx.objectStore(KEY_STORE_NAME).get(name);
70
+ req.onsuccess = () => {
71
+ db.close();
72
+ resolve(req.result || null);
73
+ };
74
+ req.onerror = () => {
75
+ db.close();
76
+ resolve(null);
77
+ };
78
+ });
79
+ }
80
+ async function deleteKey(name) {
81
+ try {
82
+ const db = (
83
+ /** @type {IDBDatabase} */
84
+ await openKeyDB()
85
+ );
86
+ return new Promise((resolve) => {
87
+ const tx = db.transaction(KEY_STORE_NAME, "readwrite");
88
+ tx.objectStore(KEY_STORE_NAME).delete(name);
89
+ tx.oncomplete = () => {
90
+ db.close();
91
+ resolve(void 0);
92
+ };
93
+ tx.onerror = () => {
94
+ db.close();
95
+ resolve(void 0);
96
+ };
97
+ });
98
+ } catch {
99
+ }
100
+ }
101
+ async function migrateKeysToIndexedDB() {
102
+ try {
103
+ const session = load("session");
104
+ if (session && session.privateKey) {
105
+ const cryptoKey = await importEd25519Key(session.privateKey);
106
+ await storeKey("agent_key", cryptoKey);
107
+ delete session.privateKey;
108
+ save("session", session);
109
+ }
110
+ const ownerKey = load("owner_key");
111
+ if (typeof ownerKey === "string" && ownerKey.length > 0) {
112
+ const cryptoKey = await importEd25519Key(ownerKey);
113
+ await storeKey("owner_key", cryptoKey);
114
+ remove("owner_key");
115
+ }
116
+ } catch (e) {
117
+ console.warn("AIMEAT: Key migration to IndexedDB failed, falling back to localStorage", e);
118
+ }
119
+ }
120
+ var STORAGE_PREFIX = "aimeat_";
121
+ function save(key, value) {
122
+ try {
123
+ localStorage.setItem(STORAGE_PREFIX + key, JSON.stringify(value));
124
+ } catch {
125
+ }
126
+ }
127
+ function load(key) {
128
+ try {
129
+ const v = localStorage.getItem(STORAGE_PREFIX + key);
130
+ return v ? JSON.parse(v) : null;
131
+ } catch {
132
+ return null;
133
+ }
134
+ }
135
+ function remove(key) {
136
+ try {
137
+ localStorage.removeItem(STORAGE_PREFIX + key);
138
+ } catch {
139
+ }
140
+ }
141
+ function parseJwt(token) {
142
+ try {
143
+ const parts = token.split(".");
144
+ if (parts.length !== 3) return null;
145
+ const payload = JSON.parse(atob(parts[1].replace(/-/g, "+").replace(/_/g, "/")));
146
+ return payload;
147
+ } catch {
148
+ return null;
149
+ }
150
+ }
151
+ function isExpired(jwt) {
152
+ const payload = parseJwt(jwt);
153
+ if (!payload || !payload.exp) return true;
154
+ return Date.now() / 1e3 > payload.exp - 60;
155
+ }
156
+
157
+ // src/static/sdk-libs/_core/config.js
158
+ function cfg() {
159
+ return window.__AIMEAT_SDK_CFG__ || { nodeId: "", baseUrl: "" };
160
+ }
161
+ function resolveNodeUrl() {
162
+ const meta = document.querySelector('meta[name="aimeat-node"]');
163
+ if (meta) return (meta.getAttribute("content") || "").replace(/\/$/, "");
164
+ if (location.protocol === "http:" || location.protocol === "https:") return location.origin;
165
+ return cfg().baseUrl;
166
+ }
167
+ var NODE_URL = resolveNodeUrl();
168
+ var APEX_URL = cfg().baseUrl;
169
+ var NODE_ID = cfg().nodeId;
170
+ var HEARTBEAT_MS = cfg().heartbeatMs || 3e4;
171
+
172
+ // src/static/sdk-libs/auth/config.js
173
+ var APP_DEFAULT_SCOPES = "memory:read memory:write storage:read storage:write";
174
+ function appDeclaredScopes() {
175
+ try {
176
+ var m = document.querySelector('meta[name="aimeat-scopes"]');
177
+ var c = m && m.getAttribute("content");
178
+ if (c && c.trim()) return c.trim().replace(/\s+/g, " ");
179
+ } catch {
180
+ }
181
+ return APP_DEFAULT_SCOPES;
182
+ }
183
+ var AUTH_PROVIDERS = window.__AIMEAT_AUTH_CFG__ && window.__AIMEAT_AUTH_CFG__.providers || [];
184
+ var PROVIDER_ICONS = {
185
+ google: '<svg width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"><path fill="#4285F4" d="M17.64 9.2c0-.64-.06-1.25-.16-1.84H9v3.48h4.84a4.14 4.14 0 0 1-1.8 2.72v2.26h2.92c1.7-1.57 2.68-3.88 2.68-6.62z"/><path fill="#34A853" d="M9 18c2.43 0 4.47-.8 5.96-2.18l-2.92-2.26c-.8.54-1.84.86-3.04.86-2.34 0-4.32-1.58-5.03-3.7H.96v2.33A9 9 0 0 0 9 18z"/><path fill="#FBBC05" d="M3.97 10.72a5.4 5.4 0 0 1 0-3.44V4.95H.96a9 9 0 0 0 0 8.1l3.01-2.33z"/><path fill="#EA4335" d="M9 3.58c1.32 0 2.5.45 3.44 1.35l2.58-2.58A9 9 0 0 0 .96 4.95l3.01 2.33C4.68 5.16 6.66 3.58 9 3.58z"/></svg>',
186
+ entra: '<svg width="18" height="18" viewBox="0 0 21 21" aria-hidden="true"><rect x="1" y="1" width="9" height="9" fill="#F25022"/><rect x="11" y="1" width="9" height="9" fill="#7FBA00"/><rect x="1" y="11" width="9" height="9" fill="#00A4EF"/><rect x="11" y="11" width="9" height="9" fill="#FFB900"/></svg>',
187
+ casdoor: '<svg width="18" height="18" viewBox="0 0 24 24" aria-hidden="true"><rect x="4" y="3" width="16" height="18" rx="2" fill="#4757F6"/><circle cx="14" cy="11" r="1.6" fill="#fff"/><rect x="13.2" y="11.5" width="1.6" height="4" fill="#fff"/></svg>'
188
+ };
189
+
190
+ // src/static/sdk-libs/auth/events.js
191
+ var listeners = {};
192
+ function emit(event, data) {
193
+ (listeners[event] || []).forEach((fn) => fn(data));
194
+ }
195
+ function on(event, fn) {
196
+ if (!listeners[event]) listeners[event] = [];
197
+ listeners[event].push(fn);
198
+ }
199
+ function off(event, fn) {
200
+ if (!listeners[event]) return;
201
+ listeners[event] = listeners[event].filter((f) => f !== fn);
202
+ }
203
+
204
+ // src/static/sdk-libs/auth/theme.js
205
+ function escHtml(s) {
206
+ const d = document.createElement("div");
207
+ d.textContent = s;
208
+ return d.innerHTML;
209
+ }
210
+ var AIMEAT_THEME_KEY = "aimeat-theme";
211
+ function aimeatReadTheme() {
212
+ try {
213
+ var s = localStorage.getItem(AIMEAT_THEME_KEY);
214
+ if (s === "light" || s === "dark") return s;
215
+ } catch {
216
+ }
217
+ var attr = document.documentElement.dataset.theme;
218
+ if (attr === "light" || attr === "dark") return attr;
219
+ return window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
220
+ }
221
+ function aimeatApplyTheme(t) {
222
+ document.documentElement.dataset.theme = t;
223
+ try {
224
+ localStorage.setItem(AIMEAT_THEME_KEY, t);
225
+ } catch {
226
+ }
227
+ try {
228
+ window.dispatchEvent(new CustomEvent("aimeat-theme-change", { detail: { theme: t } }));
229
+ } catch {
230
+ }
231
+ }
232
+ function themeToggleHtml(i) {
233
+ var dark = aimeatReadTheme() === "dark";
234
+ var title = dark ? i.themeToLight || "Switch to light mode" : i.themeToDark || "Switch to dark mode";
235
+ return '<button id="aimeat-theme-toggle" class="aimeat-theme-toggle" title="' + escHtml(title) + '" aria-label="' + escHtml(title) + '" style="display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 auto;background:transparent;border:1px solid rgba(127,127,127,.4);border-radius:8px;cursor:pointer;font-size:15px;line-height:1;padding:0;color:currentColor">' + (dark ? "☀" : "☾") + "</button>";
236
+ }
237
+ function wireThemeToggle(container, i) {
238
+ var btn = container.querySelector("#aimeat-theme-toggle");
239
+ if (!btn) return;
240
+ btn.addEventListener("click", function() {
241
+ var next = aimeatReadTheme() === "dark" ? "light" : "dark";
242
+ aimeatApplyTheme(next);
243
+ var dark = next === "dark";
244
+ btn.textContent = dark ? "☀" : "☾";
245
+ var title = dark ? i.themeToLight || "Switch to light mode" : i.themeToDark || "Switch to dark mode";
246
+ btn.title = title;
247
+ btn.setAttribute("aria-label", title);
248
+ });
249
+ }
250
+ function ensureAuthPillStyles() {
251
+ if (document.getElementById("aimeat-auth-pill-css")) return;
252
+ var st = document.createElement("style");
253
+ st.id = "aimeat-auth-pill-css";
254
+ st.textContent = [
255
+ ".aimeat-auth-wrap{position:relative;display:inline-flex;align-items:center}",
256
+ ".aimeat-auth-compact{display:none;align-items:center;gap:7px;padding:5px 11px 5px 9px;cursor:pointer;",
257
+ "background:linear-gradient(160deg,#3d2e1a 0%,#6b4c2a 15%,#c9a84c 30%,#f5e6a3 45%,#c9a84c 55%,#8b6914 70%,#4a3520 100%);",
258
+ "border:1px solid rgba(201,168,76,.6);border-top-color:rgba(245,230,163,.5);border-bottom-color:rgba(75,53,32,.8);",
259
+ "border-radius:10px;box-shadow:0 1px 0 rgba(245,230,163,.3) inset,0 -1px 0 rgba(75,53,32,.5) inset,0 3px 10px rgba(0,0,0,.4);",
260
+ "font-family:system-ui;font-size:13px;color:#2a1800;text-shadow:0 1px 0 rgba(245,230,163,.5)}",
261
+ ".aimeat-auth-compact .cdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;",
262
+ "background:radial-gradient(circle at 35% 35%,#b0ffc8,#00c853 40%,#00802e 80%,#003d15);box-shadow:0 0 5px rgba(0,200,83,.6)}",
263
+ ".aimeat-auth-compact .cini{font-weight:800;letter-spacing:.3px;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}",
264
+ ".aimeat-auth-compact .ccar{font-size:9px;opacity:.75;transition:transform .18s}",
265
+ ".aimeat-auth-wrap.aimeat-open .aimeat-auth-compact .ccar{transform:rotate(180deg)}",
266
+ "@media (max-width:600px){",
267
+ ".aimeat-auth-compact{display:inline-flex}",
268
+ ".aimeat-auth-wrap>.aimeat-auth-pill{position:absolute;top:calc(100% + 8px);right:0;z-index:1000;",
269
+ "display:none!important;flex-wrap:wrap!important;justify-content:flex-start;row-gap:9px;",
270
+ "min-width:210px;max-width:calc(100vw - 24px)}",
271
+ ".aimeat-auth-wrap.aimeat-open>.aimeat-auth-pill{display:flex!important}",
272
+ "}"
273
+ ].join("");
274
+ (document.head || document.documentElement).appendChild(st);
275
+ }
276
+ function pillInitials(s) {
277
+ s = (s || "").trim();
278
+ if (!s) return "•";
279
+ s = s.split("@")[0].split("#")[0].trim();
280
+ var parts = s.split(/\s+/).filter(Boolean);
281
+ if (parts.length >= 2) return (parts[0].charAt(0) + parts[1].charAt(0)).toUpperCase();
282
+ return s.slice(0, 2).toUpperCase();
283
+ }
284
+
285
+ // src/static/sdk-libs/auth/i18n.js
286
+ var MODAL_LANG_KEY = "aimeat-lang";
287
+ function currentModalLang() {
288
+ try {
289
+ var u = new URLSearchParams(location.search).get("lang");
290
+ if (u === "en" || u === "fi") return u;
291
+ var s = localStorage.getItem(MODAL_LANG_KEY);
292
+ if (s === "en" || s === "fi") return s;
293
+ } catch {
294
+ }
295
+ return (navigator.language || "en").slice(0, 2).toLowerCase() === "fi" ? "fi" : "en";
296
+ }
297
+ function flattenModalI18n(obj, prefix, out) {
298
+ out = out || {};
299
+ prefix = prefix || "";
300
+ for (var k in obj) {
301
+ if (!Object.prototype.hasOwnProperty.call(obj, k)) continue;
302
+ var key = prefix ? prefix + "." + k : k;
303
+ var v = obj[k];
304
+ if (v && typeof v === "object" && !Array.isArray(v)) flattenModalI18n(v, key, out);
305
+ else out[key] = v;
306
+ }
307
+ return out;
308
+ }
309
+ async function loadModalI18n(lang) {
310
+ var v = Date.now();
311
+ var t = {};
312
+ try {
313
+ var enRes = await fetch(NODE_URL + "/locales/en.json?v=" + v);
314
+ if (enRes.ok) t = flattenModalI18n(await enRes.json());
315
+ } catch {
316
+ }
317
+ if (lang !== "en") {
318
+ try {
319
+ var locRes = await fetch(NODE_URL + "/locales/" + lang + ".json?v=" + v);
320
+ if (locRes.ok) {
321
+ var loc = flattenModalI18n(await locRes.json());
322
+ for (var lk in loc) if (Object.prototype.hasOwnProperty.call(loc, lk)) t[lk] = loc[lk];
323
+ }
324
+ } catch {
325
+ }
326
+ }
327
+ var out = {};
328
+ for (var k in t) {
329
+ if (Object.prototype.hasOwnProperty.call(t, k) && k.indexOf("modal.") === 0) out[k.slice(6)] = t[k];
330
+ }
331
+ return out;
332
+ }
333
+
334
+ // src/static/sdk-libs/auth/modal.js
335
+ function showLoginModal(opts, renderBtn) {
336
+ var i = opts.i18n || {};
337
+ var lang = currentModalLang();
338
+ const old = document.getElementById("aimeat-modal");
339
+ if (old) old.remove();
340
+ const modal = document.createElement("div");
341
+ modal.id = "aimeat-modal";
342
+ function captureInputs() {
343
+ var g = function(id) {
344
+ var el = (
345
+ /** @type {any} */
346
+ document.getElementById(id)
347
+ );
348
+ return el ? el.value : "";
349
+ };
350
+ return { u: g("aimeat-username"), p: g("aimeat-password"), d: g("aimeat-displayname") };
351
+ }
352
+ function restoreInputs(vals) {
353
+ var s = function(id, val) {
354
+ var el = (
355
+ /** @type {any} */
356
+ document.getElementById(id)
357
+ );
358
+ if (el && val) el.value = val;
359
+ };
360
+ s("aimeat-username", vals.u);
361
+ s("aimeat-password", vals.p);
362
+ s("aimeat-displayname", vals.d);
363
+ }
364
+ function switchLang(next) {
365
+ if (next === lang) return;
366
+ try {
367
+ localStorage.setItem(MODAL_LANG_KEY, next);
368
+ document.cookie = "aimeat-lang=" + next + ";path=/;max-age=31536000;SameSite=Lax";
369
+ } catch {
370
+ }
371
+ var vals = captureInputs();
372
+ loadModalI18n(next).then(function(fresh) {
373
+ lang = next;
374
+ if (fresh && Object.keys(fresh).length) i = fresh;
375
+ render(false);
376
+ restoreInputs(vals);
377
+ });
378
+ }
379
+ function render(anim) {
380
+ modal.innerHTML = buildModalInner(i, lang, anim);
381
+ wireModal();
382
+ }
383
+ document.body.appendChild(modal);
384
+ render(true);
385
+ loadModalI18n(lang).then(function(fresh) {
386
+ if (!fresh || !Object.keys(fresh).length) return;
387
+ if (fresh.signInBtn === i.signInBtn && fresh.descNew === i.descNew) return;
388
+ var vals = captureInputs();
389
+ i = fresh;
390
+ render(false);
391
+ restoreInputs(vals);
392
+ });
393
+ function buildModalInner(i2, lang2, anim) {
394
+ return '<style>.aimeat-inp{width:100%;padding:11px 14px;border:1.5px solid #E5E7EB;border-radius:10px;font-family:DM Sans,system-ui,sans-serif;font-size:15px;color:#1A1A2E;background:#FAFAF8;box-sizing:border-box;transition:all .15s;outline:none}.aimeat-inp:focus{border-color:#E8564A;box-shadow:0 0 0 3px rgba(232,86,74,.1)}.aimeat-inp::placeholder{color:#9CA3AF}.aimeat-go{flex:1;padding:12px;background:linear-gradient(135deg,#E8564A,#D4493F);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700;font-size:15px;font-family:DM Sans,system-ui,sans-serif;box-shadow:0 2px 8px rgba(232,86,74,.25);transition:transform .15s,box-shadow .15s}.aimeat-go:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(232,86,74,.35)}.aimeat-label{display:block;margin-bottom:5px;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:#6B7280}.aimeat-cancel{padding:12px 20px;background:none;color:#1A1A2E;border:1px solid #E5E7EB;border-radius:10px;cursor:pointer;font-size:15px;font-weight:500;font-family:DM Sans,system-ui,sans-serif;transition:background .15s}.aimeat-cancel:hover{background:#F3F4F6}.aimeat-fi{width:20px;height:20px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;margin-top:1px}.aimeat-langsw{position:absolute;top:24px;right:28px;display:flex;gap:5px}.aimeat-lang{padding:4px 9px;border:1px solid #E5E7EB;background:#fff;color:#6B7280;border-radius:7px;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.4px;line-height:1;font-family:DM Sans,system-ui,sans-serif;transition:all .15s}.aimeat-lang:hover{border-color:#E8564A;color:#E8564A}.aimeat-lang.active{background:#E8564A;color:#fff;border-color:#E8564A;cursor:default}@keyframes aimeatModalIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}</style><div style="position:fixed;inset:0;background:rgba(26,26,46,.4);backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;z-index:99999;font-family:DM Sans,system-ui,sans-serif;padding:24px"><div style="background:#FFFFFF;border-radius:16px;max-width:420px;width:100%;margin:auto;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.05);' + (anim ? "animation:aimeatModalIn .3s ease" : "") + '"><div style="padding:28px 32px 0;position:relative"><div class="aimeat-langsw"><button type="button" class="aimeat-lang' + (lang2 === "en" ? " active" : "") + '" data-lang="en">EN</button><button type="button" class="aimeat-lang' + (lang2 === "fi" ? " active" : "") + '" data-lang="fi">FI</button></div><h2 style="margin:0;font-size:22px;font-weight:800;display:flex;align-items:center;gap:8px;color:#1A1A2E">AIME <span style="width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,#E8564A,#D4493F);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:14px">♥</span> AT Sign In</h2><p style="margin:8px 0 0;font-size:14px;color:#6B7280;line-height:1.5">' + escHtml(i2.descNew || "New? Pick a username and password to create an account.") + " " + escHtml(i2.descReturning || "Already have an account? Enter your username and password.") + '</p></div><div id="aimeat-modal-body" style="padding:24px 32px"><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.usernameLabel || "Username") + '</label><input id="aimeat-username" class="aimeat-inp" placeholder="' + escHtml(i2.usernamePlaceholder || "Username") + '"></div><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.passwordLabel || "Password") + '</label><input id="aimeat-password" type="password" class="aimeat-inp" placeholder="' + escHtml(i2.passwordPlaceholder || "Password (min 4 chars)") + '"></div><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.displayNameLabel || "Display Name") + ' <span style="font-weight:400;text-transform:none;letter-spacing:0">(' + escHtml(i2.displayNameHint || "optional, for new accounts") + ')</span></label><input id="aimeat-displayname" class="aimeat-inp" placeholder="' + escHtml(i2.displayNamePlaceholder || "Display Name") + '"></div><div style="display:flex;gap:10px;margin-top:20px"><button id="aimeat-go-btn" class="aimeat-go">' + escHtml(i2.signInBtn || "Sign In / Register") + '</button><button id="aimeat-cancel-btn" class="aimeat-cancel">' + escHtml(i2.cancelBtn || "Cancel") + '</button></div><p id="aimeat-error" style="margin:8px 0 0;font-size:13px;color:#ef4444;display:none"></p>' + (AUTH_PROVIDERS.length ? '<div style="display:flex;align-items:center;gap:12px;margin:18px 0 14px;color:#9CA3AF;font-size:12px;font-weight:600;letter-spacing:.5px"><span style="flex:1;height:1px;background:#E5E7EB"></span>' + escHtml(i2.orLabel || "OR") + '<span style="flex:1;height:1px;background:#E5E7EB"></span></div>' + AUTH_PROVIDERS.map(function(p) {
395
+ return '<button type="button" class="aimeat-oauth-btn" data-provider="' + escHtml(p.id) + '" style="width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px;margin-bottom:8px;background:#fff;color:#1A1A2E;border:1.5px solid #E5E7EB;border-radius:10px;cursor:pointer;font-weight:600;font-size:15px;font-family:DM Sans,system-ui,sans-serif;transition:background .15s,border-color .15s">' + (PROVIDER_ICONS[p.id] || "") + escHtml(i2[p.i18nKey] || p.label) + "</button>";
396
+ }).join("") : "") + '<div style="margin-top:14px;display:flex;gap:16px"><a href="#" id="aimeat-forgot-pw" style="font-size:13px;color:#6B7280;cursor:pointer;text-decoration:underline">' + escHtml(i2.forgotPassword || "Forgot password?") + '</a><a href="#" id="aimeat-forgot-user" style="font-size:13px;color:#6B7280;cursor:pointer;text-decoration:underline">' + escHtml(i2.forgotUsername || "Forgot username?") + '</a></div></div><div id="aimeat-forgot-pw-view" style="padding:24px 32px;display:none"><div id="aimeat-fpw-step1"><h3 style="margin:0 0 8px;font-size:17px;font-weight:700;color:#1A1A2E">' + escHtml(i2.resetPasswordTitle || "Reset Password") + '</h3><p style="font-size:13px;color:#6B7280;margin-bottom:14px">' + escHtml(i2.resetPasswordDesc || "Enter your username to receive a reset code by email.") + '</p><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.usernameLabel || "Username") + '</label><input id="aimeat-fpw-username" class="aimeat-inp" placeholder="' + escHtml(i2.usernamePlaceholder || "Username") + '"></div><div style="display:flex;gap:10px"><button id="aimeat-fpw-send" class="aimeat-go">' + escHtml(i2.sendResetCode || "Send Reset Code") + '</button><button id="aimeat-fpw-back" class="aimeat-cancel">' + escHtml(i2.backToLogin || "Back to Login") + '</button></div><p id="aimeat-fpw-msg" style="margin:8px 0 0;font-size:13px;color:#22C55E;display:none"></p><p id="aimeat-fpw-err" style="margin:8px 0 0;font-size:13px;color:#ef4444;display:none"></p></div><div id="aimeat-fpw-step2" style="display:none"><h3 style="margin:0 0 8px;font-size:17px;font-weight:700;color:#1A1A2E">' + escHtml(i2.enterNewPasswordTitle || "Enter New Password") + '</h3><p style="font-size:13px;color:#6B7280;margin-bottom:14px">' + escHtml(i2.resetCodeSent || "A reset code was sent to your email. Enter it below with your new password.") + '</p><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.codeLabel || "Reset Code") + '</label><input id="aimeat-fpw-code" class="aimeat-inp" placeholder="123456" maxlength="6"></div><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.newPasswordLabel || "New Password") + '</label><input id="aimeat-fpw-newpass" type="password" class="aimeat-inp" placeholder="' + escHtml(i2.newPasswordPlaceholder || "New password (min 8 chars)") + '"></div><div style="display:flex;gap:10px"><button id="aimeat-fpw-reset" class="aimeat-go">' + escHtml(i2.resetPassword || "Reset Password") + '</button><button id="aimeat-fpw-back2" class="aimeat-cancel">' + escHtml(i2.backToLogin || "Back to Login") + '</button></div><p id="aimeat-fpw-msg2" style="margin:8px 0 0;font-size:13px;color:#22C55E;display:none"></p><p id="aimeat-fpw-err2" style="margin:8px 0 0;font-size:13px;color:#ef4444;display:none"></p></div></div><div id="aimeat-forgot-user-view" style="padding:24px 32px;display:none"><h3 style="margin:0 0 8px;font-size:17px;font-weight:700;color:#1A1A2E">' + escHtml(i2.recoverUsernameTitle || "Recover Username") + '</h3><p style="font-size:13px;color:#6B7280;margin-bottom:14px">' + escHtml(i2.recoverUsernameDesc || "Enter the email address associated with your account.") + '</p><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.emailLabel || "Email") + '</label><input id="aimeat-fu-email" class="aimeat-inp" type="email" placeholder="you@example.com"></div><div style="display:flex;gap:10px"><button id="aimeat-fu-send" class="aimeat-go">' + escHtml(i2.sendUsername || "Send My Username") + '</button><button id="aimeat-fu-back" class="aimeat-cancel">' + escHtml(i2.backToLogin || "Back to Login") + '</button></div><p id="aimeat-fu-msg" style="margin:8px 0 0;font-size:13px;color:#22C55E;display:none"></p></div><div id="aimeat-email-view" style="padding:24px 32px;display:none"><div id="aimeat-em-step1"><h3 style="margin:0 0 8px;font-size:17px;font-weight:700;color:#1A1A2E">' + escHtml(i2.completeAccountTitle || "One last step") + '</h3><p style="font-size:13px;color:#6B7280;margin-bottom:14px">' + escHtml(i2.completeAccountDesc || "Add an email to finish setting up your account. We’ll send a verification code to confirm it.") + '</p><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.emailLabel || "Email") + '</label><input id="aimeat-em-email" class="aimeat-inp" type="email" placeholder="you@example.com"></div><div style="display:flex;gap:10px"><button id="aimeat-em-send" class="aimeat-go">' + escHtml(i2.sendVerificationCode || "Send Verification Code") + '</button><button id="aimeat-em-back" class="aimeat-cancel">' + escHtml(i2.backToLogin || "Back to Login") + '</button></div><p id="aimeat-em-err" style="margin:8px 0 0;font-size:13px;color:#ef4444;display:none"></p></div><div id="aimeat-em-step2" style="display:none"><h3 style="margin:0 0 8px;font-size:17px;font-weight:700;color:#1A1A2E">' + escHtml(i2.enterCodeTitle || "Enter Verification Code") + '</h3><p style="font-size:13px;color:#6B7280;margin-bottom:14px">' + escHtml(i2.enterCodeDesc || "We sent a 6-digit code to your email. Enter it below to finish and sign in.") + '</p><div style="margin-bottom:14px"><label class="aimeat-label">' + escHtml(i2.codeLabel || "Verification Code") + '</label><input id="aimeat-em-code" class="aimeat-inp" placeholder="123456" maxlength="6" inputmode="numeric"></div><div style="display:flex;gap:10px"><button id="aimeat-em-confirm" class="aimeat-go">' + escHtml(i2.confirmAndSignIn || "Confirm & Sign In") + '</button><button id="aimeat-em-back2" class="aimeat-cancel">' + escHtml(i2.backToLogin || "Back to Login") + '</button></div><p id="aimeat-em-msg2" style="margin:8px 0 0;font-size:13px;color:#22C55E;display:none"></p><p id="aimeat-em-err2" style="margin:8px 0 0;font-size:13px;color:#ef4444;display:none"></p></div></div><div style="padding:20px 32px 28px;background:#F9FAFB;border-top:1px solid #E5E7EB"><h4 style="margin:0 0 12px;font-size:13px;font-weight:700;color:#1A1A2E;display:flex;align-items:center;gap:6px">✨ ' + escHtml(i2.whyTitle || "What do you get?") + '</h4><div style="display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:#6B7280;margin-bottom:8px;line-height:1.45"><div class="aimeat-fi" style="background:#FFF1F0;color:#E8564A">♥</div><span>' + escHtml(i2.whyGhii || "A free GHII (Global Human Intelligence Identifier), your personal AI identity") + '</span></div><div style="display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:#6B7280;margin-bottom:8px;line-height:1.45"><div class="aimeat-fi" style="background:#EFF6FF;color:#3B82F6">🔒</div><span>' + escHtml(i2.whyPrivacy || "Your own private memory space, protected by your password") + '</span></div><div style="display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:#6B7280;margin-bottom:8px;line-height:1.45"><div class="aimeat-fi" style="background:#F0FDF4;color:#22C55E">🤖</div><span>' + escHtml(i2.whyAgents || "Connect AI agents that remember you and work on your behalf") + '</span></div><div style="display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:#6B7280;line-height:1.45"><div class="aimeat-fi" style="background:#FFF1F0;color:#E8564A">♥</div><span><strong>' + escHtml(i2.whyMorsels || "Your own AI-built apps and agents work for you — a digital agency under your own roof.") + "</strong></span></div></div></div></div>";
397
+ }
398
+ function wireModal() {
399
+ modal.querySelectorAll(".aimeat-lang").forEach(function(b) {
400
+ b.addEventListener("click", function() {
401
+ switchLang(b.getAttribute("data-lang"));
402
+ });
403
+ });
404
+ document.getElementById("aimeat-cancel-btn").addEventListener("click", () => modal.remove());
405
+ modal.querySelectorAll(".aimeat-oauth-btn").forEach(function(btn) {
406
+ btn.addEventListener("click", function() {
407
+ var id = btn.getAttribute("data-provider");
408
+ var back = encodeURIComponent(location.pathname + location.search + location.hash);
409
+ location.href = NODE_URL + "/v1/ghii/login/" + id + "?redirect=" + back;
410
+ });
411
+ });
412
+ function showView(view) {
413
+ document.getElementById("aimeat-modal-body").style.display = view === "login" ? "" : "none";
414
+ document.getElementById("aimeat-forgot-pw-view").style.display = view === "forgot-pw" ? "" : "none";
415
+ document.getElementById("aimeat-forgot-user-view").style.display = view === "forgot-user" ? "" : "none";
416
+ document.getElementById("aimeat-email-view").style.display = view === "email" ? "" : "none";
417
+ }
418
+ var pendingEmailLogin = null;
419
+ function openEmailCompletion(user, pass, hasEmail, mode, displayName) {
420
+ pendingEmailLogin = { username: user, password: pass, mode: mode || "attach", displayName: displayName || user };
421
+ showView("email");
422
+ document.getElementById("aimeat-em-step1").style.display = "";
423
+ document.getElementById("aimeat-em-step2").style.display = "none";
424
+ var emailInput = (
425
+ /** @type {any} */
426
+ document.getElementById("aimeat-em-email")
427
+ );
428
+ emailInput.value = "";
429
+ var titleEl = document.querySelector("#aimeat-em-step1 h3");
430
+ var desc = document.querySelector("#aimeat-em-step1 p");
431
+ if (pendingEmailLogin.mode === "register") {
432
+ if (titleEl) titleEl.textContent = i.registerEmailTitle || "Add your email";
433
+ if (desc) desc.textContent = i.registerEmailDesc || "Enter your email to create your account. We’ll send a verification code to confirm it.";
434
+ } else {
435
+ if (titleEl) titleEl.textContent = i.completeAccountTitle || "One last step";
436
+ if (desc) {
437
+ desc.textContent = hasEmail ? i.completeAccountDescResend || "Confirm your email to finish signing in. We’ll send a verification code — edit the address if it’s wrong." : i.completeAccountDesc || "Add an email to finish setting up your account. We’ll send a verification code to confirm it.";
438
+ }
439
+ }
440
+ document.getElementById("aimeat-em-err").style.display = "none";
441
+ setTimeout(function() {
442
+ emailInput.focus();
443
+ }, 50);
444
+ }
445
+ document.getElementById("aimeat-forgot-pw").addEventListener("click", function(e) {
446
+ e.preventDefault();
447
+ showView("forgot-pw");
448
+ document.getElementById("aimeat-fpw-step1").style.display = "";
449
+ document.getElementById("aimeat-fpw-step2").style.display = "none";
450
+ });
451
+ document.getElementById("aimeat-forgot-user").addEventListener("click", function(e) {
452
+ e.preventDefault();
453
+ showView("forgot-user");
454
+ });
455
+ ["aimeat-fpw-back", "aimeat-fpw-back2", "aimeat-fu-back", "aimeat-em-back", "aimeat-em-back2"].forEach(function(id) {
456
+ document.getElementById(id).addEventListener("click", function() {
457
+ showView("login");
458
+ });
459
+ });
460
+ document.getElementById("aimeat-em-send").addEventListener("click", async function() {
461
+ var email = (
462
+ /** @type {any} */
463
+ document.getElementById("aimeat-em-email").value.trim()
464
+ );
465
+ var errEl = document.getElementById("aimeat-em-err");
466
+ errEl.style.display = "none";
467
+ if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
468
+ errEl.textContent = i.errEmailInvalid || "Please enter a valid email address.";
469
+ errEl.style.display = "block";
470
+ return;
471
+ }
472
+ if (!pendingEmailLogin) {
473
+ showView("login");
474
+ return;
475
+ }
476
+ var btn = (
477
+ /** @type {any} */
478
+ document.getElementById("aimeat-em-send")
479
+ );
480
+ btn.textContent = i.working || "Working...";
481
+ btn.disabled = true;
482
+ try {
483
+ var res;
484
+ if (pendingEmailLogin.mode === "register") {
485
+ res = await api("/v1/ghii", {
486
+ method: "POST",
487
+ credentials: "include",
488
+ body: JSON.stringify({
489
+ username: pendingEmailLogin.username,
490
+ display_name: pendingEmailLogin.displayName,
491
+ password: pendingEmailLogin.password,
492
+ email
493
+ })
494
+ });
495
+ } else {
496
+ res = await api("/v1/ghii/login/attach-email", {
497
+ method: "POST",
498
+ body: JSON.stringify({ username: pendingEmailLogin.username, password: pendingEmailLogin.password, email })
499
+ });
500
+ }
501
+ pendingEmailLogin.verificationId = res.data && res.data.verification_id;
502
+ document.getElementById("aimeat-em-step1").style.display = "none";
503
+ document.getElementById("aimeat-em-step2").style.display = "";
504
+ setTimeout(function() {
505
+ document.getElementById("aimeat-em-code").focus();
506
+ }, 50);
507
+ } catch (e) {
508
+ errEl.textContent = e.message;
509
+ errEl.style.display = "block";
510
+ } finally {
511
+ btn.textContent = i.sendVerificationCode || "Send Verification Code";
512
+ btn.disabled = false;
513
+ }
514
+ });
515
+ document.getElementById("aimeat-em-confirm").addEventListener("click", async function() {
516
+ var code = (
517
+ /** @type {any} */
518
+ document.getElementById("aimeat-em-code").value.trim()
519
+ );
520
+ var msgEl = document.getElementById("aimeat-em-msg2");
521
+ var errEl = document.getElementById("aimeat-em-err2");
522
+ msgEl.style.display = "none";
523
+ errEl.style.display = "none";
524
+ if (!code) {
525
+ errEl.textContent = i.errCodeRequired || "Enter the verification code.";
526
+ errEl.style.display = "block";
527
+ return;
528
+ }
529
+ if (!pendingEmailLogin) {
530
+ showView("login");
531
+ return;
532
+ }
533
+ var btn = (
534
+ /** @type {any} */
535
+ document.getElementById("aimeat-em-confirm")
536
+ );
537
+ btn.textContent = i.working || "Working...";
538
+ btn.disabled = true;
539
+ try {
540
+ await api("/v1/ghii/verify-email", {
541
+ method: "POST",
542
+ body: JSON.stringify({ verification_id: pendingEmailLogin.verificationId, code })
543
+ });
544
+ msgEl.textContent = i.emailVerifiedSigningIn || "Verified! Signing you in...";
545
+ msgEl.style.display = "block";
546
+ var session = await auth.loginWithPassword(pendingEmailLogin.username, pendingEmailLogin.password);
547
+ pendingEmailLogin = null;
548
+ modal.remove();
549
+ renderBtn();
550
+ if (opts.onLogin) opts.onLogin(session);
551
+ } catch (e) {
552
+ errEl.textContent = e.message;
553
+ errEl.style.display = "block";
554
+ btn.textContent = i.confirmAndSignIn || "Confirm & Sign In";
555
+ btn.disabled = false;
556
+ }
557
+ });
558
+ document.getElementById("aimeat-fpw-send").addEventListener("click", async function() {
559
+ var username = (
560
+ /** @type {any} */
561
+ document.getElementById("aimeat-fpw-username").value.trim().toLowerCase()
562
+ );
563
+ var msgEl = document.getElementById("aimeat-fpw-msg");
564
+ var errEl = document.getElementById("aimeat-fpw-err");
565
+ msgEl.style.display = "none";
566
+ errEl.style.display = "none";
567
+ if (!username) {
568
+ errEl.textContent = i.errUserShort || "Username is required";
569
+ errEl.style.display = "block";
570
+ return;
571
+ }
572
+ try {
573
+ await api("/v1/ghii/password/reset-request", { method: "POST", body: JSON.stringify({ username }) });
574
+ msgEl.textContent = i.resetCodeSent || "If your account has a verified email, a reset code was sent.";
575
+ msgEl.style.display = "block";
576
+ document.getElementById("aimeat-fpw-step1").style.display = "none";
577
+ document.getElementById("aimeat-fpw-step2").style.display = "";
578
+ window.__aimeatResetUser = username;
579
+ } catch (e) {
580
+ errEl.textContent = e.message;
581
+ errEl.style.display = "block";
582
+ }
583
+ });
584
+ document.getElementById("aimeat-fpw-reset").addEventListener("click", async function() {
585
+ var code = (
586
+ /** @type {any} */
587
+ document.getElementById("aimeat-fpw-code").value.trim()
588
+ );
589
+ var newPass = (
590
+ /** @type {any} */
591
+ document.getElementById("aimeat-fpw-newpass").value
592
+ );
593
+ var msgEl = document.getElementById("aimeat-fpw-msg2");
594
+ var errEl = document.getElementById("aimeat-fpw-err2");
595
+ msgEl.style.display = "none";
596
+ errEl.style.display = "none";
597
+ if (!code) {
598
+ errEl.textContent = "Code is required";
599
+ errEl.style.display = "block";
600
+ return;
601
+ }
602
+ if (!newPass || newPass.length < 8) {
603
+ errEl.textContent = i.errPassWeak || "Password must be at least 8 characters";
604
+ errEl.style.display = "block";
605
+ return;
606
+ }
607
+ try {
608
+ await api("/v1/ghii/password/reset", { method: "POST", body: JSON.stringify({
609
+ username: window.__aimeatResetUser || "",
610
+ code,
611
+ newPassword: newPass
612
+ }) });
613
+ msgEl.textContent = i.resetSuccess || "Password reset successful! You can now sign in.";
614
+ msgEl.style.display = "block";
615
+ setTimeout(function() {
616
+ showView("login");
617
+ }, 2e3);
618
+ } catch (e) {
619
+ errEl.textContent = e.message;
620
+ errEl.style.display = "block";
621
+ }
622
+ });
623
+ document.getElementById("aimeat-fu-send").addEventListener("click", async function() {
624
+ var email = (
625
+ /** @type {any} */
626
+ document.getElementById("aimeat-fu-email").value.trim()
627
+ );
628
+ var msgEl = document.getElementById("aimeat-fu-msg");
629
+ msgEl.style.display = "none";
630
+ if (!email) return;
631
+ try {
632
+ await api("/v1/ghii/account/recover", { method: "POST", body: JSON.stringify({ email }) });
633
+ } catch {
634
+ }
635
+ msgEl.textContent = i.usernameSent || "If an account with that email exists, your username was sent.";
636
+ msgEl.style.display = "block";
637
+ });
638
+ ["aimeat-username", "aimeat-password", "aimeat-displayname"].forEach(function(id) {
639
+ var el = document.getElementById(id);
640
+ if (!el) return;
641
+ el.addEventListener("keydown", function(e) {
642
+ if (e.key !== "Enter") return;
643
+ e.preventDefault();
644
+ var btn = (
645
+ /** @type {any} */
646
+ document.getElementById("aimeat-go-btn")
647
+ );
648
+ if (btn && !btn.disabled) btn.click();
649
+ });
650
+ });
651
+ document.getElementById("aimeat-go-btn").addEventListener("click", async () => {
652
+ let username = (
653
+ /** @type {any} */
654
+ document.getElementById("aimeat-username").value.trim().toLowerCase()
655
+ );
656
+ const password = (
657
+ /** @type {any} */
658
+ document.getElementById("aimeat-password").value
659
+ );
660
+ const errEl = document.getElementById("aimeat-error");
661
+ let isGhii = false;
662
+ let isFederated = false;
663
+ let fullUsername = username;
664
+ if (username.includes("@")) {
665
+ const atIdx = username.indexOf("@");
666
+ const nodePart = username.substring(atIdx + 1);
667
+ if (nodePart && nodePart !== NODE_ID) {
668
+ isFederated = true;
669
+ isGhii = true;
670
+ } else {
671
+ username = username.substring(0, atIdx);
672
+ isGhii = true;
673
+ }
674
+ }
675
+ const displayName = (
676
+ /** @type {any} */
677
+ document.getElementById("aimeat-displayname").value.trim() || username
678
+ );
679
+ if (!username || username.length < 3) {
680
+ errEl.textContent = i.errUserShort || "Username must be at least 3 characters";
681
+ errEl.style.display = "block";
682
+ return;
683
+ }
684
+ if (!password || password.length < 4) {
685
+ errEl.textContent = i.errPassShort || "Password must be at least 4 characters";
686
+ errEl.style.display = "block";
687
+ return;
688
+ }
689
+ const btn = (
690
+ /** @type {any} */
691
+ document.getElementById("aimeat-go-btn")
692
+ );
693
+ btn.textContent = i.working || "Working...";
694
+ btn.disabled = true;
695
+ if (isGhii) {
696
+ try {
697
+ if (isFederated) {
698
+ btn.textContent = i.connectingHome || "Connecting to home node...";
699
+ }
700
+ const loginUser = isFederated ? fullUsername : username;
701
+ const session = await auth.loginWithPassword(loginUser, password);
702
+ modal.remove();
703
+ renderBtn();
704
+ if (opts.onLogin) opts.onLogin(session);
705
+ } catch (e2) {
706
+ if (e2.code === "EMAIL_NOT_VERIFIED" && !isFederated) {
707
+ btn.textContent = i.signInBtn || "Sign In / Register";
708
+ btn.disabled = false;
709
+ openEmailCompletion(username, password, !!(e2.details && e2.details.has_email));
710
+ return;
711
+ }
712
+ errEl.textContent = e2.message.includes("Invalid username or password") ? i.errWrongPass || "Wrong password for that username." : e2.message;
713
+ errEl.style.display = "block";
714
+ btn.textContent = i.signInBtn || "Sign In / Register";
715
+ btn.disabled = false;
716
+ }
717
+ return;
718
+ }
719
+ try {
720
+ const session = await auth.register(username, displayName, { password });
721
+ modal.remove();
722
+ renderBtn();
723
+ if (opts.onLogin) opts.onLogin(session);
724
+ } catch (e) {
725
+ if (e.code === "EMAIL_REQUIRED") {
726
+ btn.textContent = i.signInBtn || "Sign In / Register";
727
+ btn.disabled = false;
728
+ openEmailCompletion(username, password, false, "register", displayName);
729
+ return;
730
+ }
731
+ if (e.message.includes("already registered") || e.message.includes("NAME_TAKEN")) {
732
+ try {
733
+ const session = await auth.loginWithPassword(username, password);
734
+ modal.remove();
735
+ renderBtn();
736
+ if (opts.onLogin) opts.onLogin(session);
737
+ } catch (e2) {
738
+ if (e2.code === "EMAIL_NOT_VERIFIED") {
739
+ btn.textContent = i.signInBtn || "Sign In / Register";
740
+ btn.disabled = false;
741
+ openEmailCompletion(username, password, !!(e2.details && e2.details.has_email));
742
+ return;
743
+ }
744
+ errEl.textContent = e2.message.includes("Invalid username or password") ? i.errWrongPass || "Wrong password for that username." : e2.message;
745
+ errEl.style.display = "block";
746
+ btn.textContent = i.signInBtn || "Sign In";
747
+ btn.disabled = false;
748
+ }
749
+ } else {
750
+ errEl.textContent = e.message;
751
+ errEl.style.display = "block";
752
+ btn.textContent = i.signInBtn || "Sign In / Register";
753
+ btn.disabled = false;
754
+ }
755
+ }
756
+ });
757
+ }
758
+ }
759
+
760
+ // src/static/sdk-libs/auth/pill.js
761
+ function mountPill(auth2, selector, opts = {}) {
762
+ let container;
763
+ if (selector && typeof selector === "object" && selector.nodeType === 1) {
764
+ container = selector;
765
+ } else if (selector && typeof selector === "object") {
766
+ opts = selector;
767
+ container = document.getElementById("aimeat-auth-bar");
768
+ if (!container) {
769
+ container = document.createElement("div");
770
+ container.id = "aimeat-auth-bar";
771
+ document.body.appendChild(container);
772
+ }
773
+ } else {
774
+ container = document.querySelector(selector);
775
+ if (!container) {
776
+ console.error("AIMEAT: mountLoginButton container not found for selector:", selector, "— pass a CSS selector string, a DOM element, or an options object.");
777
+ return;
778
+ }
779
+ }
780
+ const i = opts.i18n || {};
781
+ const useCompact = opts.compact !== void 0 ? !!opts.compact : isAppOrigin();
782
+ function render() {
783
+ const stored = auth2.getSession() || load("session");
784
+ if (stored) {
785
+ var pillHtml = '<div class="aimeat-auth-pill" style="display:inline-flex;align-items:center;gap:10px;padding:8px 18px;background:linear-gradient(160deg,#3d2e1a 0%,#6b4c2a 15%,#c9a84c 30%,#f5e6a3 45%,#c9a84c 55%,#8b6914 70%,#4a3520 100%);border:1px solid rgba(201,168,76,.6);border-top-color:rgba(245,230,163,.5);border-bottom-color:rgba(75,53,32,.8);border-radius:10px;box-shadow:0 1px 0 rgba(245,230,163,.3) inset,0 -1px 0 rgba(75,53,32,.5) inset,0 3px 10px rgba(0,0,0,.4),0 0 20px rgba(201,168,76,.15);font-family:system-ui;font-size:14px"><span class="aimeat-auth-dot" style="display:inline-block;flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#b0ffc8,#00c853 40%,#00802e 80%,#003d15);box-shadow:0 0 5px rgba(0,200,83,.7),0 0 12px rgba(0,200,83,.3),inset 0 -1px 2px rgba(0,0,0,.3)"></span><span class="aimeat-auth-label" style="display:inline-flex;align-items:center;font-size:12px;font-weight:600;letter-spacing:.5px;color:#a0ffb8;text-shadow:0 0 4px rgba(0,210,80,.6),0 0 10px rgba(0,180,70,.3)">' + escHtml(i.loggedIn || "logged in") + '</span><span class="aimeat-auth-ghii" style="color:rgba(90,65,20,.7);font-weight:700;letter-spacing:.5px;font-size:13px;text-shadow:0 1px 0 rgba(245,230,163,.6),0 -1px 0 rgba(50,35,10,.3);-webkit-text-stroke:.2px rgba(120,85,20,.3)">' + escHtml(stored.displayName || stored.ghii || stored.owner) + "</span>" + (stored.federated ? '<span style="display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;letter-spacing:.5px;color:#7dd3fc;background:rgba(56,189,248,.15);padding:2px 6px;border-radius:4px;border:1px solid rgba(56,189,248,.3)">🌐 ' + escHtml(i.federated || "Federated") + "</span>" : "") + (stored._appOrigin && stored._app && !stored._own ? '<button id="aimeat-grant-gear" title="' + escHtml(i.manageAccess || "Manage permissions") + '" aria-label="' + escHtml(i.manageAccess || "Manage permissions") + '" style="background:rgba(90,65,20,.18);color:#5a4114;border:1px solid rgba(120,85,20,.35);border-radius:6px;padding:3px 8px;cursor:pointer;font-size:13px;line-height:1">⚙️</button>' : "") + themeToggleHtml(i) + '<button id="aimeat-logout-btn" class="aimeat-auth-logout" style="background:radial-gradient(ellipse at 50% 30%,#ff6b6b 0%,#dc2626 35%,#991b1b 70%,#7f1d1d 100%);color:#ffd7d7;border:1px solid rgba(220,38,38,.6);border-top-color:rgba(255,130,130,.4);border-bottom-color:rgba(100,20,20,.8);border-radius:6px;padding:3px 10px;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.3px;box-shadow:0 1px 0 rgba(255,140,140,.25) inset,0 -1px 0 rgba(80,10,10,.4) inset,0 2px 6px rgba(153,27,27,.5);text-shadow:0 1px 1px rgba(0,0,0,.4)">' + escHtml(i.logoutBtn || "Logout") + "</button></div>";
786
+ if (useCompact) {
787
+ ensureAuthPillStyles();
788
+ var ini = pillInitials(stored.displayName || stored.ghii || stored.owner);
789
+ container.innerHTML = '<div class="aimeat-auth-wrap"><button class="aimeat-auth-compact" id="aimeat-auth-compact" aria-haspopup="true" aria-expanded="false" aria-label="' + escHtml(i.account || "Account") + '"><span class="cdot" aria-hidden="true"></span><span class="cini">' + escHtml(ini) + '</span><span class="ccar" aria-hidden="true">▾</span></button>' + pillHtml + "</div>";
790
+ } else {
791
+ container.innerHTML = pillHtml;
792
+ }
793
+ document.getElementById("aimeat-logout-btn").addEventListener("click", () => {
794
+ auth2.logout();
795
+ render();
796
+ if (opts.onLogout) opts.onLogout();
797
+ });
798
+ var gearBtn = document.getElementById("aimeat-grant-gear");
799
+ if (gearBtn) gearBtn.addEventListener("click", () => {
800
+ auth2.manageGrant().then((res) => {
801
+ render();
802
+ if (res && res.revoked && opts.onLogout) opts.onLogout();
803
+ }).catch(() => {
804
+ });
805
+ });
806
+ var compactBtn = document.getElementById("aimeat-auth-compact");
807
+ if (compactBtn) compactBtn.addEventListener("click", (ev) => {
808
+ ev.stopPropagation();
809
+ var w = container.querySelector(".aimeat-auth-wrap");
810
+ if (!w) return;
811
+ var open = w.classList.toggle("aimeat-open");
812
+ compactBtn.setAttribute("aria-expanded", open ? "true" : "false");
813
+ });
814
+ } else {
815
+ container.innerHTML = '<style>.aimeat-sign-btn{padding:8px 18px;background:linear-gradient(160deg,#3d2e1a 0%,#6b4c2a 15%,#c9a84c 30%,#f5e6a3 45%,#c9a84c 55%,#8b6914 70%,#4a3520 100%);color:#2a1800;border:1px solid rgba(201,168,76,.6);border-top-color:rgba(245,230,163,.5);border-bottom-color:rgba(75,53,32,.8);border-radius:10px;cursor:pointer;font-weight:800;font-family:system-ui;font-size:14px;letter-spacing:.3px;box-shadow:0 1px 0 rgba(245,230,163,.3) inset,0 -1px 0 rgba(75,53,32,.5) inset,0 3px 10px rgba(0,0,0,.4),0 0 20px rgba(201,168,76,.15);text-shadow:0 1px 0 rgba(245,230,163,.5);transition:transform .15s,box-shadow .15s}.aimeat-sign-btn:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(245,230,163,.3) inset,0 -1px 0 rgba(75,53,32,.5) inset,0 5px 16px rgba(0,0,0,.5),0 0 30px rgba(201,168,76,.3)}</style><span style="display:inline-flex;align-items:center;gap:10px">' + themeToggleHtml(i) + '<button id="aimeat-login-btn" class="aimeat-sign-btn">' + (opts.buttonText || i.signInBtn || "❤️ Sign In") + "</button></span>";
816
+ document.getElementById("aimeat-login-btn").addEventListener("click", () => {
817
+ if (isAppOrigin()) {
818
+ restoreSessionFromAppOrigin(true).then((s) => {
819
+ if (s) render();
820
+ }).catch(() => {
821
+ });
822
+ } else {
823
+ showLoginModal(opts, render);
824
+ }
825
+ });
826
+ }
827
+ wireThemeToggle(container, i);
828
+ }
829
+ render();
830
+ if (useCompact) {
831
+ var closeCompact = () => {
832
+ var w = container.querySelector(".aimeat-auth-wrap.aimeat-open");
833
+ if (!w) return;
834
+ w.classList.remove("aimeat-open");
835
+ var cb = w.querySelector(".aimeat-auth-compact");
836
+ if (cb) cb.setAttribute("aria-expanded", "false");
837
+ };
838
+ document.addEventListener("click", (ev) => {
839
+ var w = container.querySelector(".aimeat-auth-wrap.aimeat-open");
840
+ if (w && !w.contains(ev.target)) closeCompact();
841
+ });
842
+ document.addEventListener("keydown", (ev) => {
843
+ if (ev.key === "Escape") closeCompact();
844
+ });
845
+ }
846
+ auth2.on("login", render);
847
+ auth2.on("logout", render);
848
+ auth2.on("session-updated", render);
849
+ if (isAppOrigin() && !auth2.getSession()) {
850
+ restoreSessionFromAppOrigin(false).then((s) => {
851
+ if (!s && load("session")) {
852
+ remove("session");
853
+ emit("logout");
854
+ }
855
+ }).catch(() => {
856
+ });
857
+ }
858
+ }
859
+
860
+ // src/static/sdk-libs/auth/session.js
861
+ var currentSession = null;
862
+ var refreshTimer = null;
863
+ var ownerRefreshInFlight = null;
864
+ var _appOriginLoginInFlight = null;
865
+ var focusRefreshInFlight = null;
866
+ async function api(path, opts = {}) {
867
+ const url = NODE_URL + path;
868
+ const headers = { "Content-Type": "application/json", ...opts.headers };
869
+ const resp = await fetch(url, { ...opts, headers });
870
+ const data = await resp.json();
871
+ if (!data.ok) {
872
+ const err = (
873
+ /** @type {Error & { code?: string, details?: unknown }} */
874
+ new Error(data.error?.message || "API error")
875
+ );
876
+ err.code = data.error?.code;
877
+ err.details = data.error?.details;
878
+ throw err;
879
+ }
880
+ return data;
881
+ }
882
+ function persistSession(session) {
883
+ save("session", {
884
+ owner: session.owner,
885
+ gaii: session.gaii,
886
+ ghii: session.ghii,
887
+ jwt: session.jwt,
888
+ publicKey: session.publicKey,
889
+ roles: session.roles,
890
+ displayName: session.displayName || "",
891
+ federated: session.federated || false,
892
+ homeNode: session.homeNode || "",
893
+ homeUrl: session.homeUrl || "",
894
+ // H-2 app-origin grant session metadata (drives the consent gear on the login pill).
895
+ _appOrigin: session._appOrigin || false,
896
+ _app: session._app || null,
897
+ _own: session._own || false
898
+ });
899
+ }
900
+ async function restoreSessionFromCookie() {
901
+ try {
902
+ const data = await api("/v1/auth/refresh", {
903
+ method: "POST",
904
+ credentials: "include",
905
+ headers: { "X-AIMEAT-Refresh": "1" }
906
+ });
907
+ const token = data && data.data && data.data.token;
908
+ if (!token) return null;
909
+ const payload = parseJwt(token) || {};
910
+ const ownerName = payload.owner || payload.sub;
911
+ if (!ownerName) return null;
912
+ const session = createSession({
913
+ owner: ownerName,
914
+ ghii: String(ownerName).indexOf("@") >= 0 ? ownerName : ownerName + "@" + NODE_ID,
915
+ gaii: null,
916
+ jwt: token,
917
+ roles: payload.roles || [],
918
+ displayName: ""
919
+ });
920
+ persistSession(session);
921
+ currentSession = session;
922
+ scheduleAutoRefresh(session);
923
+ emit("login", session);
924
+ return session;
925
+ } catch {
926
+ return null;
927
+ }
928
+ }
929
+ function isAppOrigin() {
930
+ try {
931
+ return location.origin !== new URL(APEX_URL).origin;
932
+ } catch {
933
+ return false;
934
+ }
935
+ }
936
+ function appScopeDrift(session) {
937
+ if (!session || !session._appOrigin || !session.jwt) return [];
938
+ var have = (parseJwt(session.jwt) || {}).scopes || [];
939
+ return appDeclaredScopes().split(" ").filter(function(s) {
940
+ return s && have.indexOf(s) < 0;
941
+ });
942
+ }
943
+ function silentAppToken() {
944
+ return new Promise(function(resolve) {
945
+ var apexOrigin;
946
+ try {
947
+ apexOrigin = new URL(APEX_URL).origin;
948
+ } catch {
949
+ resolve(null);
950
+ return;
951
+ }
952
+ if (location.origin === apexOrigin) {
953
+ resolve(null);
954
+ return;
955
+ }
956
+ var settled = false, iframe = null, timer = null;
957
+ function finish(v) {
958
+ if (settled) return;
959
+ settled = true;
960
+ window.removeEventListener("message", onMsg);
961
+ if (timer) clearTimeout(timer);
962
+ if (iframe && iframe.parentNode) iframe.parentNode.removeChild(iframe);
963
+ resolve(v);
964
+ }
965
+ function onMsg(e) {
966
+ if (e.origin !== apexOrigin) return;
967
+ var d = e.data || {};
968
+ if (d.type !== "aimeat_app_login") return;
969
+ finish(d.result || null);
970
+ }
971
+ window.addEventListener("message", onMsg);
972
+ iframe = document.createElement("iframe");
973
+ iframe.style.display = "none";
974
+ iframe.setAttribute("aria-hidden", "true");
975
+ iframe.src = apexOrigin + "/app-silent.html?scope=" + encodeURIComponent(appDeclaredScopes());
976
+ (document.body || document.documentElement).appendChild(iframe);
977
+ timer = setTimeout(function() {
978
+ finish(null);
979
+ }, 8e3);
980
+ });
981
+ }
982
+ function apexLogout() {
983
+ return new Promise(function(resolve) {
984
+ var apexOrigin;
985
+ try {
986
+ apexOrigin = new URL(APEX_URL).origin;
987
+ } catch {
988
+ resolve(false);
989
+ return;
990
+ }
991
+ if (location.origin === apexOrigin) {
992
+ resolve(false);
993
+ return;
994
+ }
995
+ var settled = false, iframe = null, timer = null;
996
+ function finish(v) {
997
+ if (settled) return;
998
+ settled = true;
999
+ window.removeEventListener("message", onMsg);
1000
+ if (timer) clearTimeout(timer);
1001
+ if (iframe && iframe.parentNode) iframe.parentNode.removeChild(iframe);
1002
+ resolve(v);
1003
+ }
1004
+ function onMsg(e) {
1005
+ if (e.origin !== apexOrigin) return;
1006
+ var d = e.data || {};
1007
+ if (d.type !== "aimeat_app_logout") return;
1008
+ finish(!!(d.result && d.result.ok));
1009
+ }
1010
+ window.addEventListener("message", onMsg);
1011
+ iframe = document.createElement("iframe");
1012
+ iframe.style.display = "none";
1013
+ iframe.setAttribute("aria-hidden", "true");
1014
+ iframe.src = apexOrigin + "/app-silent.html?mode=logout";
1015
+ (document.body || document.documentElement).appendChild(iframe);
1016
+ timer = setTimeout(function() {
1017
+ finish(false);
1018
+ }, 8e3);
1019
+ });
1020
+ }
1021
+ function _b64url(buf) {
1022
+ var bytes = new Uint8Array(buf), s = "";
1023
+ for (var i = 0; i < bytes.length; i++) s += String.fromCharCode(bytes[i]);
1024
+ return btoa(s).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
1025
+ }
1026
+ async function _pkce() {
1027
+ var verifier = _b64url(crypto.getRandomValues(new Uint8Array(32)).buffer);
1028
+ if (crypto.subtle && crypto.subtle.digest) {
1029
+ var digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(verifier));
1030
+ return { verifier, challenge: _b64url(digest), method: "S256" };
1031
+ }
1032
+ return { verifier, challenge: verifier, method: "plain" };
1033
+ }
1034
+ async function requestConsentPopup(app, scopeStr, manage) {
1035
+ var apexOrigin;
1036
+ try {
1037
+ apexOrigin = new URL(APEX_URL).origin;
1038
+ } catch {
1039
+ return null;
1040
+ }
1041
+ var p = await _pkce();
1042
+ var state = _b64url(crypto.getRandomValues(new Uint8Array(16)).buffer);
1043
+ var redirectUri = location.origin + "/";
1044
+ var scope = scopeStr || appDeclaredScopes();
1045
+ var url = apexOrigin + "/v1/app-grants/authorize?response_type=code&response_mode=web_message" + (manage ? "&manage=1" : "") + "&app=" + encodeURIComponent(app) + "&scope=" + encodeURIComponent(scope) + "&redirect_uri=" + encodeURIComponent(redirectUri) + "&code_challenge=" + encodeURIComponent(p.challenge) + "&code_challenge_method=" + encodeURIComponent(p.method) + "&state=" + encodeURIComponent(state);
1046
+ var w = 460, h = 660;
1047
+ var left = window.screen && window.screen.width ? (window.screen.width - w) / 2 : 0;
1048
+ var top = window.screen && window.screen.height ? (window.screen.height - h) / 2 : 0;
1049
+ var popup = window.open(url, "aimeat_consent", "width=" + w + ",height=" + h + ",left=" + left + ",top=" + top);
1050
+ if (!popup) {
1051
+ try {
1052
+ console.warn("[aimeat-auth] consent popup blocked — app-origin sign-in needs a real user click (user activation). Synthetic/automated clicks cannot open the consent window.");
1053
+ } catch {
1054
+ }
1055
+ emit("popup-blocked", { app });
1056
+ return null;
1057
+ }
1058
+ var msg = await new Promise(function(resolve) {
1059
+ var done = false, iv = null;
1060
+ function onMsg(e) {
1061
+ if (e.origin !== apexOrigin) return;
1062
+ var d = e.data || {};
1063
+ if (d.type !== "aimeat_app_grant" || d.state !== state) return;
1064
+ done = true;
1065
+ cleanup();
1066
+ resolve(d);
1067
+ }
1068
+ function cleanup() {
1069
+ window.removeEventListener("message", onMsg);
1070
+ if (iv) clearInterval(iv);
1071
+ }
1072
+ window.addEventListener("message", onMsg);
1073
+ iv = setInterval(function() {
1074
+ if (popup.closed && !done) {
1075
+ cleanup();
1076
+ resolve(null);
1077
+ }
1078
+ }, 500);
1079
+ });
1080
+ if (msg && msg.revoked) return { revoked: true };
1081
+ if (!msg || !msg.code) return null;
1082
+ try {
1083
+ var resp = await fetch(apexOrigin + "/v1/app-grants/token", {
1084
+ method: "POST",
1085
+ headers: { "Content-Type": "application/json" },
1086
+ body: JSON.stringify({ grant_type: "authorization_code", code: msg.code, code_verifier: p.verifier, redirect_uri: redirectUri })
1087
+ });
1088
+ var j = await resp.json();
1089
+ return j && j.ok && j.data && j.data.access_token ? j.data : null;
1090
+ } catch {
1091
+ return null;
1092
+ }
1093
+ }
1094
+ function _buildAppSession(accessToken, appId, own, displayName) {
1095
+ var payload = parseJwt(accessToken) || {};
1096
+ var ownerName = payload.owner || payload.sub;
1097
+ if (!ownerName) return null;
1098
+ var session = createSession({
1099
+ owner: ownerName,
1100
+ ghii: String(ownerName).indexOf("@") >= 0 ? ownerName : ownerName + "@" + NODE_ID,
1101
+ gaii: null,
1102
+ jwt: accessToken,
1103
+ roles: payload.roles || [],
1104
+ displayName: displayName || ""
1105
+ });
1106
+ session._appOrigin = true;
1107
+ session._app = appId || null;
1108
+ session._own = !!own;
1109
+ persistSession(session);
1110
+ currentSession = session;
1111
+ scheduleAutoRefresh(session);
1112
+ emit("login", session);
1113
+ return session;
1114
+ }
1115
+ function restoreSessionFromAppOrigin(interactive) {
1116
+ if (currentSession) return Promise.resolve(currentSession);
1117
+ if (_appOriginLoginInFlight) return _appOriginLoginInFlight;
1118
+ _appOriginLoginInFlight = (async function() {
1119
+ var r = await silentAppToken();
1120
+ var grant = r && r.ok && r.access_token ? r : null;
1121
+ var appId = r && r.app || null;
1122
+ var own = !!(r && r.own);
1123
+ if (!grant && interactive && r && (r.error === "consent_required" || r.error === "login_required") && r.app) {
1124
+ appId = r.app;
1125
+ grant = await requestConsentPopup(r.app, r.scope);
1126
+ own = !!(grant && grant.own);
1127
+ if (grant && grant.app) appId = grant.app;
1128
+ }
1129
+ if (!grant || !grant.access_token) return null;
1130
+ return _buildAppSession(grant.access_token, appId, own, grant.display_name);
1131
+ })();
1132
+ _appOriginLoginInFlight.finally(function() {
1133
+ _appOriginLoginInFlight = null;
1134
+ });
1135
+ return _appOriginLoginInFlight;
1136
+ }
1137
+ function scheduleAutoRefresh(session) {
1138
+ if (refreshTimer) clearTimeout(refreshTimer);
1139
+ if (!session?.jwt) return;
1140
+ try {
1141
+ const payload = JSON.parse(atob(session.jwt.split(".")[1].replace(/-/g, "+").replace(/_/g, "/")));
1142
+ if (!payload.exp) return;
1143
+ const msUntilExpiry = payload.exp * 1e3 - Date.now();
1144
+ const refreshIn = Math.max(msUntilExpiry - 5 * 60 * 1e3, 1e4);
1145
+ refreshTimer = setTimeout(async () => {
1146
+ try {
1147
+ await session.refresh();
1148
+ emit("refreshed", session);
1149
+ scheduleAutoRefresh(session);
1150
+ } catch (e) {
1151
+ console.warn("[aimeat-auth] Auto-refresh failed:", e.message);
1152
+ emit("expired", { reason: "refresh_failed", error: e.message });
1153
+ }
1154
+ }, refreshIn);
1155
+ } catch {
1156
+ }
1157
+ }
1158
+ function createSession(data) {
1159
+ const jwtPayload = data.jwt ? parseJwt(data.jwt) : null;
1160
+ let ownerVal = data.owner;
1161
+ if (ownerVal != null && typeof ownerVal !== "string") {
1162
+ ownerVal = typeof ownerVal === "object" && typeof ownerVal.name === "string" ? ownerVal.name : String(ownerVal);
1163
+ }
1164
+ let ghiiVal = data.ghii;
1165
+ if (ghiiVal != null && typeof ghiiVal !== "string") {
1166
+ ghiiVal = typeof ghiiVal === "object" && typeof ghiiVal.ghii === "string" ? ghiiVal.ghii : String(ghiiVal);
1167
+ }
1168
+ const session = (
1169
+ /** @type {Record<string, any>} */
1170
+ {
1171
+ ghii: ghiiVal || null,
1172
+ owner: ownerVal,
1173
+ gaii: data.gaii || null,
1174
+ identity: data.gaii || ghiiVal || null,
1175
+ jwt: data.jwt,
1176
+ roles: jwtPayload?.roles || data.roles || [],
1177
+ displayName: data.displayName || "",
1178
+ // SECURITY: Private keys are non-extractable CryptoKeys in IndexedDB, NOT here. _cryptoKey = in-memory ref only.
1179
+ _cryptoKey: data._cryptoKey || null,
1180
+ publicKey: data.publicKey,
1181
+ nodeUrl: NODE_URL,
1182
+ federated: data.federated || false,
1183
+ homeNode: data.homeNode || "",
1184
+ homeUrl: data.homeUrl || "",
1185
+ // Authenticated fetch wrapper — returns parsed JSON without throwing on error so callers
1186
+ // (e.g. AIMEAT.data.get) can inspect res.ok / res.error themselves.
1187
+ async fetch(path, opts = {}) {
1188
+ if (isExpired(session.jwt)) {
1189
+ await session.refresh();
1190
+ }
1191
+ const url = NODE_URL + path;
1192
+ const headers = { "Content-Type": "application/json", "Authorization": "Bearer " + session.jwt, ...opts.headers || {} };
1193
+ const resp = await fetch(url, { ...opts, headers });
1194
+ if (resp.status === 403 && session._appOrigin && !session._scopeHealTried) {
1195
+ var missing = appScopeDrift(session);
1196
+ if (missing.length) {
1197
+ session._scopeHealTried = true;
1198
+ var t = await silentAppToken();
1199
+ if (t && t.ok && t.access_token && !appScopeDrift({ _appOrigin: true, jwt: t.access_token })) {
1200
+ session.jwt = t.access_token;
1201
+ persistSession(session);
1202
+ scheduleAutoRefresh(session);
1203
+ var retry = await fetch(url, { ...opts, headers: { ...headers, "Authorization": "Bearer " + session.jwt } });
1204
+ return retry.json();
1205
+ }
1206
+ emit("scopes-stale", { app: session._app || null, missing });
1207
+ }
1208
+ }
1209
+ return resp.json();
1210
+ },
1211
+ // Notify the signed-in owner (header bell + browser push if subscribed).
1212
+ async notify(title, opts = {}) {
1213
+ return session.fetch("/v1/notifications", {
1214
+ method: "POST",
1215
+ body: JSON.stringify({ title, body: opts.body, link: opts.link, type: opts.type })
1216
+ });
1217
+ },
1218
+ // Get a fresh access token. Owner sessions use the httpOnly refresh cookie; agent sessions
1219
+ // re-sign with their IndexedDB key. Concurrent owner refreshes share one in-flight request.
1220
+ async refresh() {
1221
+ if (session._appOrigin) {
1222
+ var t = await silentAppToken();
1223
+ if (!t || !t.access_token) throw new Error("App session expired — the owner is not logged in on the node.");
1224
+ session.jwt = t.access_token;
1225
+ session.roles = (parseJwt(session.jwt) || {}).roles || session.roles || [];
1226
+ persistSession(session);
1227
+ scheduleAutoRefresh(session);
1228
+ return session;
1229
+ }
1230
+ if (session.federated) {
1231
+ throw new Error("Federated session expired. Please log in again.");
1232
+ }
1233
+ if (session.gaii) {
1234
+ const key = session._cryptoKey || await loadKey("agent_key");
1235
+ if (!key) throw new Error("Cannot refresh — no signing key found in IndexedDB");
1236
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString();
1237
+ const signature = await sign(key, session.gaii + timestamp);
1238
+ const d2 = await api("/v1/auth/token", {
1239
+ method: "POST",
1240
+ body: JSON.stringify({ gaii: session.gaii, timestamp, signature })
1241
+ });
1242
+ session.jwt = d2.data.token;
1243
+ session.roles = (parseJwt(session.jwt) || {}).roles || session.roles || [];
1244
+ persistSession(session);
1245
+ scheduleAutoRefresh(session);
1246
+ return session;
1247
+ }
1248
+ if (ownerRefreshInFlight) return ownerRefreshInFlight;
1249
+ ownerRefreshInFlight = (async () => {
1250
+ const resp = await fetch(NODE_URL + "/v1/auth/refresh", {
1251
+ method: "POST",
1252
+ credentials: "include",
1253
+ headers: { "Content-Type": "application/json", "X-AIMEAT-Refresh": "1" }
1254
+ });
1255
+ let data2 = null;
1256
+ try {
1257
+ data2 = await resp.json();
1258
+ } catch {
1259
+ }
1260
+ if (!resp.ok || !data2 || data2.ok === false) {
1261
+ throw new Error(data2?.error?.message || "Session refresh failed");
1262
+ }
1263
+ session.jwt = data2.data.token;
1264
+ session.roles = (parseJwt(session.jwt) || {}).roles || session.roles || [];
1265
+ var freshClaims = parseJwt(session.jwt) || {};
1266
+ if (freshClaims.owner && freshClaims.owner !== session.owner) {
1267
+ session.owner = freshClaims.owner;
1268
+ if (freshClaims.node) session.ghii = freshClaims.owner + "@" + freshClaims.node;
1269
+ session.identity = session.gaii || session.ghii || null;
1270
+ }
1271
+ if (typeof data2.data.display_name === "string") session.displayName = data2.data.display_name;
1272
+ persistSession(session);
1273
+ scheduleAutoRefresh(session);
1274
+ return session;
1275
+ })();
1276
+ try {
1277
+ return await ownerRefreshInFlight;
1278
+ } finally {
1279
+ ownerRefreshInFlight = null;
1280
+ }
1281
+ },
1282
+ // Check if session is valid
1283
+ get valid() {
1284
+ return session.jwt && !isExpired(session.jwt);
1285
+ }
1286
+ }
1287
+ );
1288
+ return session;
1289
+ }
1290
+ function refreshOnFocus() {
1291
+ const session = currentSession;
1292
+ if (!session || !session.jwt || session.federated) return;
1293
+ const payload = parseJwt(session.jwt);
1294
+ if (!payload || !payload.exp) return;
1295
+ const msUntilExpiry = payload.exp * 1e3 - Date.now();
1296
+ if (msUntilExpiry > 5 * 60 * 1e3) return;
1297
+ if (focusRefreshInFlight) return;
1298
+ const wasExpired = msUntilExpiry <= 0;
1299
+ focusRefreshInFlight = session.refresh().then(() => {
1300
+ emit("refreshed", session);
1301
+ }).catch((e) => {
1302
+ console.warn("[aimeat-auth] Focus refresh failed:", e.message);
1303
+ if (wasExpired) emit("expired", { reason: "refresh_failed", error: e.message });
1304
+ }).finally(() => {
1305
+ focusRefreshInFlight = null;
1306
+ });
1307
+ }
1308
+ var auth = {
1309
+ nodeUrl: NODE_URL,
1310
+ nodeId: NODE_ID,
1311
+ /**
1312
+ * Register a new human identity (GHII) and get an authenticated session.
1313
+ * @returns {Promise<object>} Session object with .fetch(), .refresh(), .jwt, .ghii
1314
+ */
1315
+ async register(username, displayName, opts = {}) {
1316
+ const regData = await api("/v1/ghii", {
1317
+ method: "POST",
1318
+ credentials: "include",
1319
+ body: JSON.stringify({
1320
+ username,
1321
+ display_name: displayName,
1322
+ bio: opts.bio,
1323
+ avatar: opts.avatar,
1324
+ locale: opts.locale,
1325
+ password: opts.password || void 0
1326
+ })
1327
+ });
1328
+ if (opts.password) {
1329
+ return this.loginWithPassword(username, opts.password);
1330
+ }
1331
+ const ownerName = regData.data.owner.name;
1332
+ const ghii = regData.data.ghii.ghii;
1333
+ const serverPrivateKey = regData.data.private_key || regData.data.owner_private_key;
1334
+ const serverPublicKey = regData.data.public_key || regData.data.owner_public_key || "";
1335
+ if (!serverPrivateKey) {
1336
+ throw new Error("Server did not return an owner signing key. Please try signing in again.");
1337
+ }
1338
+ let ownerToken = regData.data.token || null;
1339
+ if (!ownerToken) {
1340
+ const ownerTimestamp = (/* @__PURE__ */ new Date()).toISOString();
1341
+ const ownerMessage = ownerName + NODE_ID + ownerTimestamp;
1342
+ const ownerSig = await sign(serverPrivateKey, ownerMessage);
1343
+ const ownerTokenData = await api("/v1/auth/token", {
1344
+ method: "POST",
1345
+ body: JSON.stringify({ owner: ownerName, timestamp: ownerTimestamp, signature: ownerSig })
1346
+ });
1347
+ ownerToken = ownerTokenData.data.token;
1348
+ }
1349
+ const ownerCryptoKey = await importEd25519Key(serverPrivateKey);
1350
+ await storeKey("owner_key", ownerCryptoKey);
1351
+ const session = createSession({
1352
+ ghii,
1353
+ owner: ownerName,
1354
+ gaii: null,
1355
+ jwt: ownerToken,
1356
+ _cryptoKey: ownerCryptoKey,
1357
+ publicKey: serverPublicKey,
1358
+ displayName: regData.data.ghii.display_name || ""
1359
+ });
1360
+ save("session", {
1361
+ owner: ownerName,
1362
+ gaii: null,
1363
+ ghii,
1364
+ jwt: session.jwt,
1365
+ publicKey: serverPublicKey,
1366
+ roles: session.roles,
1367
+ displayName: session.displayName || ""
1368
+ });
1369
+ currentSession = session;
1370
+ scheduleAutoRefresh(session);
1371
+ emit("login", session);
1372
+ return session;
1373
+ },
1374
+ /**
1375
+ * Login with stored credentials (auto-refreshes JWT if expired).
1376
+ * @returns {Promise<object|null>} Session or null if no stored credentials
1377
+ */
1378
+ async login(username) {
1379
+ if (isAppOrigin()) return await restoreSessionFromAppOrigin(false);
1380
+ const stored = load("session");
1381
+ if (!stored) return await restoreSessionFromCookie();
1382
+ if (username && stored.owner !== username) return null;
1383
+ await migrateKeysToIndexedDB();
1384
+ if (stored.gaii) {
1385
+ stored.gaii = null;
1386
+ }
1387
+ const cryptoKey = stored.gaii ? await loadKey("agent_key") : await loadKey("owner_key");
1388
+ const session = createSession({ ...stored, _cryptoKey: cryptoKey });
1389
+ const isOwnerLocal = !session.federated && !session.gaii;
1390
+ if (isOwnerLocal || isExpired(session.jwt)) {
1391
+ try {
1392
+ await session.refresh();
1393
+ } catch {
1394
+ remove("session");
1395
+ emit("expired");
1396
+ return null;
1397
+ }
1398
+ }
1399
+ currentSession = session;
1400
+ scheduleAutoRefresh(session);
1401
+ emit("login", session);
1402
+ return session;
1403
+ },
1404
+ /**
1405
+ * Login with username + password (works from any device).
1406
+ * @returns {Promise<object>} Session object
1407
+ */
1408
+ async loginWithPassword(username, password) {
1409
+ const data = await api("/v1/ghii/login", {
1410
+ method: "POST",
1411
+ credentials: "include",
1412
+ body: JSON.stringify({ username, password })
1413
+ });
1414
+ const d = data.data;
1415
+ let ownerCryptoKey = null;
1416
+ if (d.owner_private_key) {
1417
+ ownerCryptoKey = await importEd25519Key(d.owner_private_key);
1418
+ await storeKey("owner_key", ownerCryptoKey);
1419
+ }
1420
+ const session = createSession({
1421
+ ghii: d.ghii.ghii,
1422
+ owner: d.owner.name,
1423
+ gaii: null,
1424
+ jwt: d.token,
1425
+ _cryptoKey: ownerCryptoKey,
1426
+ publicKey: d.owner_public_key || "",
1427
+ displayName: d.ghii.display_name || "",
1428
+ federated: d.federated || false,
1429
+ homeNode: d.home_node || "",
1430
+ homeUrl: d.home_url || ""
1431
+ });
1432
+ if (d.key_credentials) session._keyCredentials = d.key_credentials;
1433
+ persistSession(session);
1434
+ currentSession = session;
1435
+ scheduleAutoRefresh(session);
1436
+ emit("login", session);
1437
+ return session;
1438
+ },
1439
+ /** Get the current session (or null if not logged in) */
1440
+ getSession() {
1441
+ return currentSession;
1442
+ },
1443
+ /**
1444
+ * Patch mutable, non-secret session metadata in place (e.g. displayName after a profile edit),
1445
+ * persist it, and notify the login pill so it re-renders live — no page reload.
1446
+ */
1447
+ updateSessionMeta(patch) {
1448
+ if (!currentSession || !patch) return;
1449
+ Object.assign(currentSession, patch);
1450
+ persistSession(currentSession);
1451
+ emit("session-updated", currentSession);
1452
+ },
1453
+ /** Logout — clear stored credentials from localStorage and IndexedDB */
1454
+ async logout() {
1455
+ if (refreshTimer) {
1456
+ clearTimeout(refreshTimer);
1457
+ refreshTimer = null;
1458
+ }
1459
+ ownerRefreshInFlight = null;
1460
+ try {
1461
+ await fetch(NODE_URL + "/v1/auth/revoke", {
1462
+ method: "POST",
1463
+ credentials: "include",
1464
+ headers: {
1465
+ "Content-Type": "application/json",
1466
+ ...currentSession?.jwt ? { "Authorization": "Bearer " + currentSession.jwt } : {}
1467
+ }
1468
+ });
1469
+ } catch {
1470
+ }
1471
+ if (isAppOrigin()) {
1472
+ try {
1473
+ await apexLogout();
1474
+ } catch {
1475
+ }
1476
+ }
1477
+ currentSession = null;
1478
+ remove("session");
1479
+ remove("owner_key");
1480
+ await deleteKey("agent_key");
1481
+ await deleteKey("owner_key");
1482
+ emit("logout");
1483
+ },
1484
+ /**
1485
+ * Re-open the consent screen for the current app (H-2 in-app grant management).
1486
+ */
1487
+ async manageGrant() {
1488
+ const s = currentSession || load("session");
1489
+ if (!s || !s._app) return null;
1490
+ const res = await requestConsentPopup(s._app, appDeclaredScopes(), true);
1491
+ if (res && res.revoked) {
1492
+ await auth.logout();
1493
+ return { revoked: true };
1494
+ }
1495
+ if (res && res.access_token) return _buildAppSession(res.access_token, res.app || s._app, res.own != null ? !!res.own : s._own);
1496
+ return null;
1497
+ },
1498
+ /** True when running inside a published app on its isolated origin (not the apex). */
1499
+ isAppOrigin() {
1500
+ return isAppOrigin();
1501
+ },
1502
+ /** Open the sign-in modal (password + Google if configured). */
1503
+ showLoginModal(opts) {
1504
+ showLoginModal(opts || {}, function() {
1505
+ });
1506
+ },
1507
+ /** Check if there are stored credentials */
1508
+ get hasSession() {
1509
+ return !!load("session");
1510
+ },
1511
+ /** Get stored GHII without authenticating */
1512
+ get storedGhii() {
1513
+ const s = load("session");
1514
+ return s?.ghii || null;
1515
+ },
1516
+ /** Register an event listener */
1517
+ on(event, fn) {
1518
+ on(event, fn);
1519
+ },
1520
+ /** Remove an event listener */
1521
+ off(event, fn) {
1522
+ off(event, fn);
1523
+ },
1524
+ /** Check if running inside a sandboxed iframe (no localStorage access) */
1525
+ get inSandbox() {
1526
+ try {
1527
+ localStorage.getItem("_test");
1528
+ return false;
1529
+ } catch {
1530
+ return true;
1531
+ }
1532
+ },
1533
+ /**
1534
+ * Request auth credentials from the parent window via postMessage (sandboxed-iframe fallback).
1535
+ * @returns {Promise<object|null>} Session-like object with .jwt and .fetch(), or null
1536
+ */
1537
+ requestParentAuth(timeout = 3e3) {
1538
+ return new Promise((resolve) => {
1539
+ if (window === window.parent) {
1540
+ resolve(null);
1541
+ return;
1542
+ }
1543
+ let resolved = false;
1544
+ const timer = setTimeout(() => {
1545
+ if (!resolved) {
1546
+ resolved = true;
1547
+ resolve(null);
1548
+ }
1549
+ }, timeout);
1550
+ function handler(e) {
1551
+ if (resolved) return;
1552
+ if (!e.data || e.data.type !== "aimeat-auth") return;
1553
+ resolved = true;
1554
+ clearTimeout(timer);
1555
+ window.removeEventListener("message", handler);
1556
+ const jwt = e.data.jwt;
1557
+ const parentNodeUrl = e.data.nodeUrl;
1558
+ if (!jwt) {
1559
+ resolve(null);
1560
+ return;
1561
+ }
1562
+ const effectiveNodeUrl = parentNodeUrl || NODE_URL;
1563
+ const session = (
1564
+ /** @type {Record<string, any>} */
1565
+ {
1566
+ jwt,
1567
+ nodeUrl: effectiveNodeUrl,
1568
+ owner: null,
1569
+ gaii: null,
1570
+ ghii: null,
1571
+ identity: null,
1572
+ get valid() {
1573
+ return jwt && !isExpired(jwt);
1574
+ },
1575
+ async fetch(path, opts = {}) {
1576
+ const url = effectiveNodeUrl + path;
1577
+ const headers = { "Content-Type": "application/json", "Authorization": "Bearer " + jwt, ...opts.headers || {} };
1578
+ const resp = await fetch(url, { ...opts, headers });
1579
+ return resp.json();
1580
+ },
1581
+ async notify(title, opts = {}) {
1582
+ return session.fetch("/v1/notifications", {
1583
+ method: "POST",
1584
+ body: JSON.stringify({ title, body: opts.body, link: opts.link, type: opts.type })
1585
+ });
1586
+ }
1587
+ }
1588
+ );
1589
+ const payload = parseJwt(jwt);
1590
+ if (payload) {
1591
+ session.gaii = payload.sub || null;
1592
+ session.owner = payload.owner || null;
1593
+ session.identity = session.gaii || session.ghii || null;
1594
+ }
1595
+ currentSession = session;
1596
+ emit("login", session);
1597
+ resolve(session);
1598
+ }
1599
+ window.addEventListener("message", handler);
1600
+ window.parent.postMessage({ type: "aimeat-request-auth" }, "*");
1601
+ });
1602
+ },
1603
+ // Capability flag so an embedding app can feature-detect the compact login pill.
1604
+ compactPill: true,
1605
+ /**
1606
+ * Mount a login/register button that handles the full flow. Delegates the render to pill.js.
1607
+ * @param {string|Element|object} selector - CSS selector, DOM element, OR (options-first) the opts.
1608
+ * @param {object} [opts] - { onLogin, onLogout, buttonText, compact }.
1609
+ */
1610
+ mountLoginButton(selector, opts = {}) {
1611
+ return mountPill(auth, selector, opts);
1612
+ }
1613
+ };
1614
+
1615
+ // src/static/sdk-libs/auth/signup.js
1616
+ var USERNAME_RE = new RegExp("^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$");
1617
+ function fillTemplate(str, vars) {
1618
+ return String(str || "").replace(/\{(\w+)\}/g, function(_, k) {
1619
+ return vars[k] != null ? vars[k] : "";
1620
+ });
1621
+ }
1622
+ function cleanSignupParam() {
1623
+ try {
1624
+ var url = new URL(location.href);
1625
+ if (!url.searchParams.has("aimeat_signup")) return;
1626
+ url.searchParams.delete("aimeat_signup");
1627
+ history.replaceState(null, "", url.pathname + (url.search ? url.search : "") + url.hash);
1628
+ } catch {
1629
+ }
1630
+ }
1631
+ function showSignupNoticeModal(i, opts) {
1632
+ var old = document.getElementById("aimeat-modal");
1633
+ if (old) old.remove();
1634
+ var modal = document.createElement("div");
1635
+ modal.id = "aimeat-modal";
1636
+ document.body.appendChild(modal);
1637
+ modal.innerHTML = '<style>.aimeat-go{flex:1;padding:12px;background:linear-gradient(135deg,#E8564A,#D4493F);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700;font-size:15px;font-family:DM Sans,system-ui,sans-serif;box-shadow:0 2px 8px rgba(232,86,74,.25);transition:transform .15s,box-shadow .15s}.aimeat-cancel{padding:12px 20px;background:none;color:#1A1A2E;border:1px solid #E5E7EB;border-radius:10px;cursor:pointer;font-size:15px;font-weight:500;font-family:DM Sans,system-ui,sans-serif;transition:background .15s}.aimeat-cancel:hover{background:#F3F4F6}</style><div style="position:fixed;inset:0;background:rgba(26,26,46,.4);backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;z-index:99999;font-family:DM Sans,system-ui,sans-serif;padding:24px"><div style="background:#FFFFFF;border-radius:16px;max-width:440px;width:100%;margin:auto;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.05)"><div style="padding:28px 32px 24px"><h2 style="margin:0 0 8px;font-size:21px;font-weight:800;color:#1A1A2E">' + escHtml(opts.title || "") + '</h2><p style="margin:0 0 18px;font-size:14px;color:#6B7280;line-height:1.55">' + escHtml(opts.body || "") + '</p><div style="display:flex;gap:10px"><button id="aimeat-sn-primary" class="aimeat-go">' + escHtml(opts.primaryLabel || "OK") + "</button>" + (opts.showCancel ? '<button id="aimeat-sn-cancel" class="aimeat-cancel">' + escHtml(i.signupCancelBtn || "Cancel") + "</button>" : "") + "</div></div></div></div>";
1638
+ function close() {
1639
+ modal.remove();
1640
+ cleanSignupParam();
1641
+ }
1642
+ document.getElementById("aimeat-sn-primary").addEventListener("click", function() {
1643
+ close();
1644
+ if (opts.onPrimary) opts.onPrimary();
1645
+ });
1646
+ var cancelEl = document.getElementById("aimeat-sn-cancel");
1647
+ if (cancelEl) cancelEl.addEventListener("click", close);
1648
+ }
1649
+ function showGoogleSignupModal(pending, i) {
1650
+ i = i || {};
1651
+ if (pending && pending.mode === "link_existing") {
1652
+ var hint = pending.existing_hint ? " " + fillTemplate(i.signupLinkHint || "(Username hint: {hint}.)", { hint: pending.existing_hint }) : "";
1653
+ showSignupNoticeModal(i, {
1654
+ title: i.signupLinkTitle || "This email already has an account",
1655
+ body: fillTemplate(i.signupLinkIntro || "An AIMEAT account already uses {email}, but its email has not been verified yet. Sign in with your username and password once — that verifies your email, and after that this sign-in connects to your account automatically.", { email: pending.email || "" }) + hint,
1656
+ primaryLabel: i.signupLinkSignInBtn || "Sign in with password",
1657
+ showCancel: true,
1658
+ onPrimary: function() {
1659
+ showLoginModal({ i18n: i }, function() {
1660
+ });
1661
+ }
1662
+ });
1663
+ return;
1664
+ }
1665
+ var old = document.getElementById("aimeat-modal");
1666
+ if (old) old.remove();
1667
+ var modal = document.createElement("div");
1668
+ modal.id = "aimeat-modal";
1669
+ document.body.appendChild(modal);
1670
+ var emailNote = pending.email ? '<p style="margin:0 0 14px;font-size:13px;color:#6B7280">' + escHtml(fillTemplate(i.signupEmailNote || "Signing up as {email}", { email: pending.email })) + "</p>" : "";
1671
+ modal.innerHTML = '<style>.aimeat-inp{width:100%;padding:11px 14px;border:1.5px solid #E5E7EB;border-radius:10px;font-family:DM Sans,system-ui,sans-serif;font-size:15px;color:#1A1A2E;background:#FAFAF8;box-sizing:border-box;transition:all .15s;outline:none}.aimeat-inp:focus{border-color:#E8564A;box-shadow:0 0 0 3px rgba(232,86,74,.1)}.aimeat-go{flex:1;padding:12px;background:linear-gradient(135deg,#E8564A,#D4493F);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700;font-size:15px;font-family:DM Sans,system-ui,sans-serif;box-shadow:0 2px 8px rgba(232,86,74,.25);transition:transform .15s,box-shadow .15s}.aimeat-go:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.aimeat-label{display:block;margin-bottom:5px;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:#6B7280}.aimeat-cancel{padding:12px 20px;background:none;color:#1A1A2E;border:1px solid #E5E7EB;border-radius:10px;cursor:pointer;font-size:15px;font-weight:500;font-family:DM Sans,system-ui,sans-serif;transition:background .15s}.aimeat-cancel:hover{background:#F3F4F6}</style><div style="position:fixed;inset:0;background:rgba(26,26,46,.4);backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;z-index:99999;font-family:DM Sans,system-ui,sans-serif;padding:24px"><div style="background:#FFFFFF;border-radius:16px;max-width:440px;width:100%;margin:auto;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.05)"><div style="padding:28px 32px 24px"><h2 style="margin:0 0 8px;font-size:21px;font-weight:800;color:#1A1A2E">' + escHtml(i.signupTitle || "Choose your username") + '</h2><p style="margin:0 0 6px;font-size:14px;color:#6B7280;line-height:1.5">' + escHtml(i.signupIntro || "You're signing in for the first time. Pick the username for your AIMEAT account.") + "</p>" + emailNote + '<label class="aimeat-label" for="aimeat-su-name">' + escHtml(i.signupUsernameLabel || "Username") + '</label><input id="aimeat-su-name" class="aimeat-inp" autocomplete="off" autocapitalize="none" spellcheck="false" value="' + escHtml(pending.suggested || "") + '"><p id="aimeat-su-status" style="margin:6px 0 0;font-size:13px;min-height:18px"></p><p style="margin:8px 0 0;font-size:12px;color:#9CA3AF;line-height:1.45">' + escHtml(i.signupSuggestedHint || "We suggested one from your account — change it to anything you like.") + '</p><div style="margin:16px 0 0;padding:12px 14px;background:#FFF7ED;border:1px solid #FED7AA;border-radius:10px;font-size:13px;color:#9A3412;line-height:1.5">' + escHtml(i.signupPermanentWarning || "This username is permanent. It identifies you across AIMEAT and cannot be changed later — the only way to change it is to delete your account and create a new one.") + '</div><label class="aimeat-label" for="aimeat-su-display" style="margin-top:16px">' + escHtml(i.signupDisplayNameLabel || "Display name") + '</label><input id="aimeat-su-display" class="aimeat-inp" autocomplete="off" maxlength="80" value="' + escHtml(pending.displayName || "") + '"><p style="margin:6px 0 0;font-size:12px;color:#9CA3AF;line-height:1.45">' + escHtml(i.signupDisplayNameHint || "Shown to others — not permanent, you can change it anytime later.") + '</p><div style="display:flex;gap:10px;margin-top:20px"><button id="aimeat-su-create" class="aimeat-go">' + escHtml(i.signupCreateBtn || "Create my account") + '</button><button id="aimeat-su-cancel" class="aimeat-cancel">' + escHtml(i.signupCancelBtn || "Cancel") + '</button></div><p id="aimeat-su-err" style="margin:10px 0 0;font-size:13px;color:#ef4444;display:none"></p></div></div></div>';
1672
+ var input = (
1673
+ /** @type {any} */
1674
+ document.getElementById("aimeat-su-name")
1675
+ );
1676
+ var statusEl = document.getElementById("aimeat-su-status");
1677
+ var createBtn = (
1678
+ /** @type {any} */
1679
+ document.getElementById("aimeat-su-create")
1680
+ );
1681
+ var cancelBtn = document.getElementById("aimeat-su-cancel");
1682
+ var errEl = document.getElementById("aimeat-su-err");
1683
+ var checkTimer = null;
1684
+ var lastChecked = "";
1685
+ function setStatus(text, color) {
1686
+ statusEl.textContent = text || "";
1687
+ statusEl.style.color = color || "#6B7280";
1688
+ }
1689
+ function evaluate() {
1690
+ errEl.style.display = "none";
1691
+ var name = (input.value || "").trim().toLowerCase();
1692
+ if (!USERNAME_RE.test(name)) {
1693
+ createBtn.disabled = true;
1694
+ setStatus(i.signupInvalid || "Username must be 3–64 characters: lowercase letters, numbers and hyphens.", "#ef4444");
1695
+ return;
1696
+ }
1697
+ createBtn.disabled = true;
1698
+ setStatus("…", "#9CA3AF");
1699
+ if (checkTimer) clearTimeout(checkTimer);
1700
+ checkTimer = setTimeout(function() {
1701
+ lastChecked = name;
1702
+ api("/v1/ghii/username-available?name=" + encodeURIComponent(name)).then(function(res) {
1703
+ var d = res && res.data;
1704
+ if (!d || (input.value || "").trim().toLowerCase() !== lastChecked) return;
1705
+ if (d.valid && d.available) {
1706
+ createBtn.disabled = false;
1707
+ setStatus(i.signupAvailable || "✓ Available", "#16a34a");
1708
+ } else if (!d.valid) {
1709
+ createBtn.disabled = true;
1710
+ setStatus(i.signupInvalid || d.reason || "Invalid username", "#ef4444");
1711
+ } else {
1712
+ createBtn.disabled = true;
1713
+ setStatus(i.signupTaken || "That username is already taken — pick another.", "#ef4444");
1714
+ }
1715
+ }).catch(function() {
1716
+ createBtn.disabled = false;
1717
+ setStatus("", "#6B7280");
1718
+ });
1719
+ }, 350);
1720
+ }
1721
+ input.addEventListener("input", evaluate);
1722
+ input.addEventListener("keydown", function(e) {
1723
+ if (e.key === "Enter" && !createBtn.disabled) {
1724
+ e.preventDefault();
1725
+ createBtn.click();
1726
+ }
1727
+ });
1728
+ function close() {
1729
+ if (checkTimer) clearTimeout(checkTimer);
1730
+ modal.remove();
1731
+ cleanSignupParam();
1732
+ }
1733
+ cancelBtn.addEventListener("click", close);
1734
+ createBtn.addEventListener("click", async function() {
1735
+ var name = (input.value || "").trim().toLowerCase();
1736
+ if (!USERNAME_RE.test(name)) {
1737
+ evaluate();
1738
+ return;
1739
+ }
1740
+ var displayEl = (
1741
+ /** @type {any} */
1742
+ document.getElementById("aimeat-su-display")
1743
+ );
1744
+ var displayName = displayEl ? (displayEl.value || "").trim() : "";
1745
+ createBtn.disabled = true;
1746
+ createBtn.textContent = i.signupCreating || "Creating account...";
1747
+ errEl.style.display = "none";
1748
+ try {
1749
+ var res = await api("/v1/ghii/login/" + (pending.provider || "google") + "/finalize", {
1750
+ method: "POST",
1751
+ credentials: "include",
1752
+ body: JSON.stringify({ username: name, displayName })
1753
+ });
1754
+ cleanSignupParam();
1755
+ var redirect = res && res.data && res.data.redirect || pending.redirect || "/";
1756
+ location.href = NODE_URL + redirect;
1757
+ } catch (e) {
1758
+ var msg = e && e.message ? e.message : "Could not create account";
1759
+ if (msg.indexOf("already registered") >= 0 || msg.indexOf("NAME_TAKEN") >= 0) msg = i.signupTaken || msg;
1760
+ errEl.textContent = msg;
1761
+ errEl.style.display = "block";
1762
+ createBtn.textContent = i.signupCreateBtn || "Create my account";
1763
+ evaluate();
1764
+ }
1765
+ });
1766
+ evaluate();
1767
+ }
1768
+ function maybeShowGoogleSignup() {
1769
+ var params;
1770
+ try {
1771
+ params = new URLSearchParams(location.search);
1772
+ } catch {
1773
+ return;
1774
+ }
1775
+ if (params.get("aimeat_signup") !== "1") return;
1776
+ function showExpired() {
1777
+ function open(i) {
1778
+ showSignupNoticeModal(i || {}, {
1779
+ title: i && i.signupExpiredTitle || "Sign-in session expired",
1780
+ body: i && i.signupExpiredBody || "Your sign-in session expired or was interrupted. No password is needed — just click “Continue with Google” again to restart.",
1781
+ primaryLabel: i && i.signupExpiredOkBtn || "OK",
1782
+ showCancel: false
1783
+ });
1784
+ }
1785
+ loadModalI18n(currentModalLang()).then(open).catch(function() {
1786
+ open({});
1787
+ });
1788
+ }
1789
+ api("/v1/ghii/login/pending", { credentials: "include" }).then(function(res) {
1790
+ var pending = res && res.data;
1791
+ if (!pending) {
1792
+ showExpired();
1793
+ return;
1794
+ }
1795
+ loadModalI18n(currentModalLang()).then(function(i) {
1796
+ showGoogleSignupModal(pending, i || {});
1797
+ }).catch(function() {
1798
+ showGoogleSignupModal(pending, {});
1799
+ });
1800
+ }).catch(function() {
1801
+ showExpired();
1802
+ });
1803
+ }
1804
+
1805
+ // src/static/sdk-libs/_core/namespace.js
1806
+ function namespace() {
1807
+ if (!window.AIMEAT) window.AIMEAT = {};
1808
+ return window.AIMEAT;
1809
+ }
1810
+ function attach(key, value) {
1811
+ const ns2 = namespace();
1812
+ ns2[key] = value;
1813
+ return ns2;
1814
+ }
1815
+
1816
+ // src/static/sdk-libs/auth/index.js
1817
+ if (typeof document !== "undefined" && document.addEventListener) {
1818
+ if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", maybeShowGoogleSignup);
1819
+ else maybeShowGoogleSignup();
1820
+ }
1821
+ if (typeof document !== "undefined" && document.addEventListener) {
1822
+ document.addEventListener("visibilitychange", () => {
1823
+ if (document.visibilityState === "visible") refreshOnFocus();
1824
+ });
1825
+ }
1826
+ if (typeof window !== "undefined" && window.addEventListener) {
1827
+ window.addEventListener("focus", refreshOnFocus);
1828
+ }
1829
+ var ns = attach("auth", auth);
1830
+ ns.version = "2026-07-02-001";
1831
+ })();