aimeat 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (824) hide show
  1. package/dist/.env.example +58 -1
  2. package/dist/build-stamp.json +4 -4
  3. package/dist/locales/en.json +9225 -9103
  4. package/dist/locales/es.json +9217 -9095
  5. package/dist/locales/fi.json +9225 -9103
  6. package/dist/public/changelog.json +12 -0
  7. package/dist/public/css/views/admin.css +11 -0
  8. package/dist/public/css/views/chat.css +388 -0
  9. package/dist/public/css/views/profile.css +41 -0
  10. package/dist/public/js/services/admin.js +346 -331
  11. package/dist/public/js/services/chat.js +190 -0
  12. package/dist/public/js/services/organism-roles.js +51 -0
  13. package/dist/public/js/services/organisms.js +5 -25
  14. package/dist/public/js/services/speech-reader.js +26 -0
  15. package/dist/public/lib/VENDORED.md +1 -0
  16. package/dist/public/lib/duckdb-wasm@1.32.0/duckdb-browser-eh.worker.js +14 -0
  17. package/dist/public/lib/duckdb-wasm@1.32.0/duckdb-browser.js +23 -0
  18. package/dist/public/lib/duckdb-wasm@1.32.0/duckdb-eh.wasm +0 -0
  19. package/dist/public/lib/duckdb-wasm@1.32.0/extensions/v1.4.3/wasm_eh/parquet.duckdb_extension.wasm +0 -0
  20. package/dist/public/lib/vendored-assets.json +19 -0
  21. package/dist/public/llms-full-template.txt +2706 -0
  22. package/dist/public/llms-index-template.txt +60 -0
  23. package/dist/public/robots.node.txt +64 -23
  24. package/dist/public/spa.html +9 -1
  25. package/dist/public/views/admin/organism-ownership-tab.js +124 -0
  26. package/dist/public/views/admin/owners-tab.js +15 -4
  27. package/dist/public/views/admin/usage-tab.calls.js +120 -0
  28. package/dist/public/views/admin/usage-tab.js +18 -4
  29. package/dist/public/views/admin.js +2 -0
  30. package/dist/public/views/chat/parts.js +257 -0
  31. package/dist/public/views/chat.js +327 -0
  32. package/dist/public/views/landing.js +24 -1
  33. package/dist/public/views/profile/agents/scope-model.js +320 -296
  34. package/dist/public/views/profile/landing-page.cards.js +1 -0
  35. package/dist/public/views/profile/organisms/home.js +3 -1
  36. package/dist/public/views/profile/organisms/members.js +29 -4
  37. package/dist/public/views/profile/usage-tab.js +204 -0
  38. package/dist/public/views/profile.js +2 -0
  39. package/dist/scripts/audit-mcp-schemas.js +41 -0
  40. package/dist/scripts/audit-mcp-schemas.js.map +1 -1
  41. package/dist/scripts/build-sdk-libs.d.ts.map +1 -1
  42. package/dist/scripts/build-sdk-libs.js +1 -0
  43. package/dist/scripts/build-sdk-libs.js.map +1 -1
  44. package/dist/scripts/check-ai-disclosure.js +11 -0
  45. package/dist/scripts/check-ai-disclosure.js.map +1 -1
  46. package/dist/scripts/check-commit-msg.d.ts +8 -0
  47. package/dist/scripts/check-commit-msg.d.ts.map +1 -0
  48. package/dist/scripts/check-commit-msg.js +118 -0
  49. package/dist/scripts/check-commit-msg.js.map +1 -0
  50. package/dist/scripts/check-denial-coverage.d.ts +29 -0
  51. package/dist/scripts/check-denial-coverage.d.ts.map +1 -0
  52. package/dist/scripts/check-denial-coverage.js +237 -0
  53. package/dist/scripts/check-denial-coverage.js.map +1 -0
  54. package/dist/scripts/check-ext-entrypoints.js +14 -2
  55. package/dist/scripts/check-ext-entrypoints.js.map +1 -1
  56. package/dist/scripts/check-liaison-surface.js +27 -2
  57. package/dist/scripts/check-liaison-surface.js.map +1 -1
  58. package/dist/scripts/check-locales.js +38 -0
  59. package/dist/scripts/check-locales.js.map +1 -1
  60. package/dist/scripts/check-outbound-fetch.d.ts.map +1 -1
  61. package/dist/scripts/check-outbound-fetch.js +16 -2
  62. package/dist/scripts/check-outbound-fetch.js.map +1 -1
  63. package/dist/scripts/check-route-scopes.d.ts.map +1 -1
  64. package/dist/scripts/check-route-scopes.js +33 -4
  65. package/dist/scripts/check-route-scopes.js.map +1 -1
  66. package/dist/scripts/check-shared-implementation.js +28 -11
  67. package/dist/scripts/check-shared-implementation.js.map +1 -1
  68. package/dist/scripts/check-sse-parity.js +14 -0
  69. package/dist/scripts/check-sse-parity.js.map +1 -1
  70. package/dist/scripts/check-trusted-keys.d.ts +90 -1
  71. package/dist/scripts/check-trusted-keys.d.ts.map +1 -1
  72. package/dist/scripts/check-trusted-keys.js +521 -52
  73. package/dist/scripts/check-trusted-keys.js.map +1 -1
  74. package/dist/scripts/indexnow.js +9 -7
  75. package/dist/scripts/indexnow.js.map +1 -1
  76. package/dist/src/auth/middleware.d.ts +69 -6
  77. package/dist/src/auth/middleware.d.ts.map +1 -1
  78. package/dist/src/auth/middleware.js +130 -28
  79. package/dist/src/auth/middleware.js.map +1 -1
  80. package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts +5 -0
  81. package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts.map +1 -1
  82. package/dist/src/cli/connect/mcp/tools/agent-tasks.js +20 -2
  83. package/dist/src/cli/connect/mcp/tools/agent-tasks.js.map +1 -1
  84. package/dist/src/cli/connect/mcp/tools/agent-telemetry.d.ts +7 -1
  85. package/dist/src/cli/connect/mcp/tools/agent-telemetry.d.ts.map +1 -1
  86. package/dist/src/cli/connect/mcp/tools/agent-telemetry.js +24 -0
  87. package/dist/src/cli/connect/mcp/tools/agent-telemetry.js.map +1 -1
  88. package/dist/src/cli/connect/mcp/tools/apps.d.ts.map +1 -1
  89. package/dist/src/cli/connect/mcp/tools/apps.js +88 -0
  90. package/dist/src/cli/connect/mcp/tools/apps.js.map +1 -1
  91. package/dist/src/cli/connect/mcp/tools/core.d.ts +7 -0
  92. package/dist/src/cli/connect/mcp/tools/core.d.ts.map +1 -1
  93. package/dist/src/cli/connect/mcp/tools/core.js +83 -4
  94. package/dist/src/cli/connect/mcp/tools/core.js.map +1 -1
  95. package/dist/src/cli/connect/mcp/tools/organisms.d.ts +2 -0
  96. package/dist/src/cli/connect/mcp/tools/organisms.d.ts.map +1 -1
  97. package/dist/src/cli/connect/mcp/tools/organisms.js +16 -0
  98. package/dist/src/cli/connect/mcp/tools/organisms.js.map +1 -1
  99. package/dist/src/cli/connect/onboarding-prompt.js +1 -1
  100. package/dist/src/cli/connect/skill-bundle.js +1 -1
  101. package/dist/src/cli/connect/tool-call-defs-agent.d.ts +1 -0
  102. package/dist/src/cli/connect/tool-call-defs-agent.d.ts.map +1 -1
  103. package/dist/src/cli/connect/tool-call-defs-agent.js +6 -0
  104. package/dist/src/cli/connect/tool-call-defs-agent.js.map +1 -1
  105. package/dist/src/cli/connect/tool-call-defs-app-draft-edit.d.ts +21 -0
  106. package/dist/src/cli/connect/tool-call-defs-app-draft-edit.d.ts.map +1 -0
  107. package/dist/src/cli/connect/tool-call-defs-app-draft-edit.js +137 -0
  108. package/dist/src/cli/connect/tool-call-defs-app-draft-edit.js.map +1 -0
  109. package/dist/src/cli/connect/tool-call-defs-core.d.ts +1 -0
  110. package/dist/src/cli/connect/tool-call-defs-core.d.ts.map +1 -1
  111. package/dist/src/cli/connect/tool-call-defs-core.js +30 -0
  112. package/dist/src/cli/connect/tool-call-defs-core.js.map +1 -1
  113. package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
  114. package/dist/src/cli/connect/tool-call.js +2 -0
  115. package/dist/src/cli/connect/tool-call.js.map +1 -1
  116. package/dist/src/config-types-ai.d.ts +76 -0
  117. package/dist/src/config-types-ai.d.ts.map +1 -0
  118. package/dist/src/config-types-ai.js +15 -0
  119. package/dist/src/config-types-ai.js.map +1 -0
  120. package/dist/src/config-types.d.ts +11 -2
  121. package/dist/src/config-types.d.ts.map +1 -1
  122. package/dist/src/config.d.ts.map +1 -1
  123. package/dist/src/config.js +25 -4
  124. package/dist/src/config.js.map +1 -1
  125. package/dist/src/data/appdev-pitfalls.d.ts +1 -0
  126. package/dist/src/data/appdev-pitfalls.d.ts.map +1 -1
  127. package/dist/src/data/appdev-pitfalls.js +11 -0
  128. package/dist/src/data/appdev-pitfalls.js.map +1 -1
  129. package/dist/src/data/builtin-skills.d.ts.map +1 -1
  130. package/dist/src/data/builtin-skills.js +3 -2
  131. package/dist/src/data/builtin-skills.js.map +1 -1
  132. package/dist/src/data/digital-signage-package.js +1 -1
  133. package/dist/src/data/library-packs/sdk.d.ts.map +1 -1
  134. package/dist/src/data/library-packs/sdk.js +76 -0
  135. package/dist/src/data/library-packs/sdk.js.map +1 -1
  136. package/dist/src/data/library-packs/vendored.d.ts.map +1 -1
  137. package/dist/src/data/library-packs/vendored.js +81 -0
  138. package/dist/src/data/library-packs/vendored.js.map +1 -1
  139. package/dist/src/data/library-packs.d.ts +2 -2
  140. package/dist/src/data/library-packs.js +2 -2
  141. package/dist/src/data/public-pages.d.ts +13 -0
  142. package/dist/src/data/public-pages.d.ts.map +1 -1
  143. package/dist/src/data/public-pages.js +153 -113
  144. package/dist/src/data/public-pages.js.map +1 -1
  145. package/dist/src/generated/api-types.d.ts +2251 -102
  146. package/dist/src/generated/api-types.d.ts.map +1 -1
  147. package/dist/src/index-start.d.ts.map +1 -1
  148. package/dist/src/index-start.js +21 -1
  149. package/dist/src/index-start.js.map +1 -1
  150. package/dist/src/mcp/agent-tasks.d.ts +16 -0
  151. package/dist/src/mcp/agent-tasks.d.ts.map +1 -1
  152. package/dist/src/mcp/agent-tasks.js +84 -54
  153. package/dist/src/mcp/agent-tasks.js.map +1 -1
  154. package/dist/src/mcp/agent-telemetry.d.ts +6 -1
  155. package/dist/src/mcp/agent-telemetry.d.ts.map +1 -1
  156. package/dist/src/mcp/agent-telemetry.js +37 -1
  157. package/dist/src/mcp/agent-telemetry.js.map +1 -1
  158. package/dist/src/mcp/ai-image.d.ts +22 -0
  159. package/dist/src/mcp/ai-image.d.ts.map +1 -0
  160. package/dist/src/mcp/ai-image.js +60 -0
  161. package/dist/src/mcp/ai-image.js.map +1 -0
  162. package/dist/src/mcp/annotations.d.ts +5 -0
  163. package/dist/src/mcp/annotations.d.ts.map +1 -1
  164. package/dist/src/mcp/annotations.js +23 -0
  165. package/dist/src/mcp/annotations.js.map +1 -1
  166. package/dist/src/mcp/apps-draft-edit.d.ts +28 -0
  167. package/dist/src/mcp/apps-draft-edit.d.ts.map +1 -0
  168. package/dist/src/mcp/apps-draft-edit.js +164 -0
  169. package/dist/src/mcp/apps-draft-edit.js.map +1 -0
  170. package/dist/src/mcp/apps-screenshot.d.ts +26 -0
  171. package/dist/src/mcp/apps-screenshot.d.ts.map +1 -0
  172. package/dist/src/mcp/apps-screenshot.js +39 -0
  173. package/dist/src/mcp/apps-screenshot.js.map +1 -0
  174. package/dist/src/mcp/catalog/definitions/agent-messaging.d.ts.map +1 -1
  175. package/dist/src/mcp/catalog/definitions/agent-messaging.js +18 -0
  176. package/dist/src/mcp/catalog/definitions/agent-messaging.js.map +1 -1
  177. package/dist/src/mcp/catalog/definitions/discovery-work-boards.d.ts +1 -0
  178. package/dist/src/mcp/catalog/definitions/discovery-work-boards.d.ts.map +1 -1
  179. package/dist/src/mcp/catalog/definitions/discovery-work-boards.js +59 -0
  180. package/dist/src/mcp/catalog/definitions/discovery-work-boards.js.map +1 -1
  181. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.d.ts +3 -0
  182. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.d.ts.map +1 -1
  183. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js +96 -2
  184. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
  185. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts +2 -0
  186. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
  187. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +7 -3
  188. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
  189. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  190. package/dist/src/mcp/catalog/scopes.js +34 -1
  191. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  192. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  193. package/dist/src/mcp/catalog/surfaces.js +26 -7
  194. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  195. package/dist/src/mcp/core-admin.d.ts +7 -3
  196. package/dist/src/mcp/core-admin.d.ts.map +1 -1
  197. package/dist/src/mcp/core-admin.js +60 -3
  198. package/dist/src/mcp/core-admin.js.map +1 -1
  199. package/dist/src/mcp/core-datapackage.d.ts +32 -0
  200. package/dist/src/mcp/core-datapackage.d.ts.map +1 -0
  201. package/dist/src/mcp/core-datapackage.js +188 -0
  202. package/dist/src/mcp/core-datapackage.js.map +1 -0
  203. package/dist/src/mcp/core-storage.d.ts +7 -3
  204. package/dist/src/mcp/core-storage.d.ts.map +1 -1
  205. package/dist/src/mcp/core-storage.js +27 -4
  206. package/dist/src/mcp/core-storage.js.map +1 -1
  207. package/dist/src/mcp/core.d.ts.map +1 -1
  208. package/dist/src/mcp/core.js +3 -0
  209. package/dist/src/mcp/core.js.map +1 -1
  210. package/dist/src/mcp/extensions.d.ts.map +1 -1
  211. package/dist/src/mcp/extensions.js +11 -1
  212. package/dist/src/mcp/extensions.js.map +1 -1
  213. package/dist/src/mcp/index.d.ts +9 -0
  214. package/dist/src/mcp/index.d.ts.map +1 -1
  215. package/dist/src/mcp/index.js +43 -2
  216. package/dist/src/mcp/index.js.map +1 -1
  217. package/dist/src/mcp/organisms-email-invites.d.ts.map +1 -1
  218. package/dist/src/mcp/organisms-email-invites.js +2 -1
  219. package/dist/src/mcp/organisms-email-invites.js.map +1 -1
  220. package/dist/src/mcp/organisms-name-invites.d.ts.map +1 -1
  221. package/dist/src/mcp/organisms-name-invites.js +40 -1
  222. package/dist/src/mcp/organisms-name-invites.js.map +1 -1
  223. package/dist/src/mcp/organisms.d.ts.map +1 -1
  224. package/dist/src/mcp/organisms.js +6 -1
  225. package/dist/src/mcp/organisms.js.map +1 -1
  226. package/dist/src/mcp/tool-usage-wrap.d.ts +9 -0
  227. package/dist/src/mcp/tool-usage-wrap.d.ts.map +1 -0
  228. package/dist/src/mcp/tool-usage-wrap.js +87 -0
  229. package/dist/src/mcp/tool-usage-wrap.js.map +1 -0
  230. package/dist/src/mcp/workspaces.d.ts.map +1 -1
  231. package/dist/src/mcp/workspaces.js +9 -0
  232. package/dist/src/mcp/workspaces.js.map +1 -1
  233. package/dist/src/middleware/idempotency.d.ts +6 -0
  234. package/dist/src/middleware/idempotency.d.ts.map +1 -1
  235. package/dist/src/middleware/idempotency.js +23 -2
  236. package/dist/src/middleware/idempotency.js.map +1 -1
  237. package/dist/src/models/agent-task-schemas.d.ts.map +1 -1
  238. package/dist/src/models/agent-task-schemas.js +12 -1
  239. package/dist/src/models/agent-task-schemas.js.map +1 -1
  240. package/dist/src/models/webhook-schemas.d.ts +2 -2
  241. package/dist/src/models/workflow-schemas.d.ts +178 -1
  242. package/dist/src/models/workflow-schemas.d.ts.map +1 -1
  243. package/dist/src/models/workflow-schemas.js +75 -0
  244. package/dist/src/models/workflow-schemas.js.map +1 -1
  245. package/dist/src/routes/admin-extensions.d.ts +4 -0
  246. package/dist/src/routes/admin-extensions.d.ts.map +1 -1
  247. package/dist/src/routes/admin-extensions.js +135 -142
  248. package/dist/src/routes/admin-extensions.js.map +1 -1
  249. package/dist/src/routes/admin-monitoring.d.ts +2 -0
  250. package/dist/src/routes/admin-monitoring.d.ts.map +1 -1
  251. package/dist/src/routes/admin-monitoring.js +32 -0
  252. package/dist/src/routes/admin-monitoring.js.map +1 -1
  253. package/dist/src/routes/admin-organisms.d.ts +28 -0
  254. package/dist/src/routes/admin-organisms.d.ts.map +1 -0
  255. package/dist/src/routes/admin-organisms.js +99 -0
  256. package/dist/src/routes/admin-organisms.js.map +1 -0
  257. package/dist/src/routes/admin-usage.d.ts +33 -0
  258. package/dist/src/routes/admin-usage.d.ts.map +1 -0
  259. package/dist/src/routes/admin-usage.js +198 -0
  260. package/dist/src/routes/admin-usage.js.map +1 -0
  261. package/dist/src/routes/agent-conventions.d.ts.map +1 -1
  262. package/dist/src/routes/agent-conventions.js +4 -2
  263. package/dist/src/routes/agent-conventions.js.map +1 -1
  264. package/dist/src/routes/agent-docs.d.ts +4 -4
  265. package/dist/src/routes/agent-docs.js +145 -145
  266. package/dist/src/routes/agent-docs.js.map +1 -1
  267. package/dist/src/routes/agent-messages.d.ts +6 -0
  268. package/dist/src/routes/agent-messages.d.ts.map +1 -1
  269. package/dist/src/routes/agent-messages.js +23 -1
  270. package/dist/src/routes/agent-messages.js.map +1 -1
  271. package/dist/src/routes/agent-tasks/completion.d.ts +5 -0
  272. package/dist/src/routes/agent-tasks/completion.d.ts.map +1 -1
  273. package/dist/src/routes/agent-tasks/completion.js +35 -54
  274. package/dist/src/routes/agent-tasks/completion.js.map +1 -1
  275. package/dist/src/routes/agent-tasks/create-read.d.ts.map +1 -1
  276. package/dist/src/routes/agent-tasks/create-read.js +8 -1
  277. package/dist/src/routes/agent-tasks/create-read.js.map +1 -1
  278. package/dist/src/routes/agent-tasks/lifecycle.d.ts +4 -1
  279. package/dist/src/routes/agent-tasks/lifecycle.d.ts.map +1 -1
  280. package/dist/src/routes/agent-tasks/lifecycle.js +80 -2
  281. package/dist/src/routes/agent-tasks/lifecycle.js.map +1 -1
  282. package/dist/src/routes/agents/device-auth.d.ts.map +1 -1
  283. package/dist/src/routes/agents/device-auth.js +27 -4
  284. package/dist/src/routes/agents/device-auth.js.map +1 -1
  285. package/dist/src/routes/ai.d.ts +5 -0
  286. package/dist/src/routes/ai.d.ts.map +1 -1
  287. package/dist/src/routes/ai.js +51 -1
  288. package/dist/src/routes/ai.js.map +1 -1
  289. package/dist/src/routes/app-grants.d.ts.map +1 -1
  290. package/dist/src/routes/app-grants.js +5 -0
  291. package/dist/src/routes/app-grants.js.map +1 -1
  292. package/dist/src/routes/apps/drafts.d.ts +6 -0
  293. package/dist/src/routes/apps/drafts.d.ts.map +1 -1
  294. package/dist/src/routes/apps/drafts.js +133 -1
  295. package/dist/src/routes/apps/drafts.js.map +1 -1
  296. package/dist/src/routes/apps/read.d.ts +4 -0
  297. package/dist/src/routes/apps/read.d.ts.map +1 -1
  298. package/dist/src/routes/apps/read.js +47 -2
  299. package/dist/src/routes/apps/read.js.map +1 -1
  300. package/dist/src/routes/auth-otk.d.ts +28 -0
  301. package/dist/src/routes/auth-otk.d.ts.map +1 -0
  302. package/dist/src/routes/auth-otk.js +190 -0
  303. package/dist/src/routes/auth-otk.js.map +1 -0
  304. package/dist/src/routes/auth.d.ts +17 -0
  305. package/dist/src/routes/auth.d.ts.map +1 -1
  306. package/dist/src/routes/auth.js +44 -153
  307. package/dist/src/routes/auth.js.map +1 -1
  308. package/dist/src/routes/bootstrap.d.ts +6 -0
  309. package/dist/src/routes/bootstrap.d.ts.map +1 -1
  310. package/dist/src/routes/bootstrap.js +47 -20
  311. package/dist/src/routes/bootstrap.js.map +1 -1
  312. package/dist/src/routes/capabilities.d.ts +17 -0
  313. package/dist/src/routes/capabilities.d.ts.map +1 -1
  314. package/dist/src/routes/capabilities.js +187 -4
  315. package/dist/src/routes/capabilities.js.map +1 -1
  316. package/dist/src/routes/chat.d.ts +23 -0
  317. package/dist/src/routes/chat.d.ts.map +1 -0
  318. package/dist/src/routes/chat.js +165 -0
  319. package/dist/src/routes/chat.js.map +1 -0
  320. package/dist/src/routes/commerce.js +4 -4
  321. package/dist/src/routes/commerce.js.map +1 -1
  322. package/dist/src/routes/datapackages.d.ts +35 -0
  323. package/dist/src/routes/datapackages.d.ts.map +1 -0
  324. package/dist/src/routes/datapackages.js +217 -0
  325. package/dist/src/routes/datapackages.js.map +1 -0
  326. package/dist/src/routes/disputes.d.ts +27 -0
  327. package/dist/src/routes/disputes.d.ts.map +1 -1
  328. package/dist/src/routes/disputes.js +74 -79
  329. package/dist/src/routes/disputes.js.map +1 -1
  330. package/dist/src/routes/ecosystem-apps-advisories.d.ts +16 -0
  331. package/dist/src/routes/ecosystem-apps-advisories.d.ts.map +1 -0
  332. package/dist/src/routes/ecosystem-apps-advisories.js +104 -0
  333. package/dist/src/routes/ecosystem-apps-advisories.js.map +1 -0
  334. package/dist/src/routes/ecosystem-apps.d.ts +6 -0
  335. package/dist/src/routes/ecosystem-apps.d.ts.map +1 -1
  336. package/dist/src/routes/ecosystem-apps.js +31 -99
  337. package/dist/src/routes/ecosystem-apps.js.map +1 -1
  338. package/dist/src/routes/extensions/actions.d.ts.map +1 -1
  339. package/dist/src/routes/extensions/actions.js +29 -1
  340. package/dist/src/routes/extensions/actions.js.map +1 -1
  341. package/dist/src/routes/federation-sync/messaging.d.ts +6 -0
  342. package/dist/src/routes/federation-sync/messaging.d.ts.map +1 -1
  343. package/dist/src/routes/federation-sync/messaging.js +22 -1
  344. package/dist/src/routes/federation-sync/messaging.js.map +1 -1
  345. package/dist/src/routes/federation-sync/routing.d.ts.map +1 -1
  346. package/dist/src/routes/federation-sync/routing.js +12 -3
  347. package/dist/src/routes/federation-sync/routing.js.map +1 -1
  348. package/dist/src/routes/glossary.js +1 -1
  349. package/dist/src/routes/glossary.js.map +1 -1
  350. package/dist/src/routes/home/track.d.ts +5 -1
  351. package/dist/src/routes/home/track.d.ts.map +1 -1
  352. package/dist/src/routes/home/track.js +20 -6
  353. package/dist/src/routes/home/track.js.map +1 -1
  354. package/dist/src/routes/instances/install.d.ts +7 -0
  355. package/dist/src/routes/instances/install.d.ts.map +1 -1
  356. package/dist/src/routes/instances/install.js +31 -24
  357. package/dist/src/routes/instances/install.js.map +1 -1
  358. package/dist/src/routes/library-packs.d.ts +7 -0
  359. package/dist/src/routes/library-packs.d.ts.map +1 -1
  360. package/dist/src/routes/library-packs.js +32 -8
  361. package/dist/src/routes/library-packs.js.map +1 -1
  362. package/dist/src/routes/libs.js +1 -1
  363. package/dist/src/routes/libs.js.map +1 -1
  364. package/dist/src/routes/markdown-mirrors.js +1 -1
  365. package/dist/src/routes/markdown-mirrors.js.map +1 -1
  366. package/dist/src/routes/messages.d.ts +6 -0
  367. package/dist/src/routes/messages.d.ts.map +1 -1
  368. package/dist/src/routes/messages.js +15 -3
  369. package/dist/src/routes/messages.js.map +1 -1
  370. package/dist/src/routes/odata.d.ts +36 -0
  371. package/dist/src/routes/odata.d.ts.map +1 -0
  372. package/dist/src/routes/odata.js +143 -0
  373. package/dist/src/routes/odata.js.map +1 -0
  374. package/dist/src/routes/openrouter.d.ts +4 -0
  375. package/dist/src/routes/openrouter.d.ts.map +1 -1
  376. package/dist/src/routes/openrouter.js +10 -1
  377. package/dist/src/routes/openrouter.js.map +1 -1
  378. package/dist/src/routes/organisms/crud.d.ts +4 -0
  379. package/dist/src/routes/organisms/crud.d.ts.map +1 -1
  380. package/dist/src/routes/organisms/crud.js +25 -7
  381. package/dist/src/routes/organisms/crud.js.map +1 -1
  382. package/dist/src/routes/organisms/gates.d.ts.map +1 -1
  383. package/dist/src/routes/organisms/gates.js +19 -2
  384. package/dist/src/routes/organisms/gates.js.map +1 -1
  385. package/dist/src/routes/organisms/membership.d.ts +4 -0
  386. package/dist/src/routes/organisms/membership.d.ts.map +1 -1
  387. package/dist/src/routes/organisms/membership.js +88 -36
  388. package/dist/src/routes/organisms/membership.js.map +1 -1
  389. package/dist/src/routes/organisms/shared.d.ts.map +1 -1
  390. package/dist/src/routes/organisms/shared.js +2 -1
  391. package/dist/src/routes/organisms/shared.js.map +1 -1
  392. package/dist/src/routes/organisms/workspace-access.d.ts +5 -0
  393. package/dist/src/routes/organisms/workspace-access.d.ts.map +1 -1
  394. package/dist/src/routes/organisms/workspace-access.js +41 -2
  395. package/dist/src/routes/organisms/workspace-access.js.map +1 -1
  396. package/dist/src/routes/organisms/workspace-ops.d.ts +2 -0
  397. package/dist/src/routes/organisms/workspace-ops.d.ts.map +1 -1
  398. package/dist/src/routes/organisms/workspace-ops.js +10 -6
  399. package/dist/src/routes/organisms/workspace-ops.js.map +1 -1
  400. package/dist/src/routes/organisms/workspace-read.d.ts +3 -0
  401. package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
  402. package/dist/src/routes/organisms/workspace-read.js +13 -7
  403. package/dist/src/routes/organisms/workspace-read.js.map +1 -1
  404. package/dist/src/routes/portal.d.ts +1 -0
  405. package/dist/src/routes/portal.d.ts.map +1 -1
  406. package/dist/src/routes/portal.js +13 -0
  407. package/dist/src/routes/portal.js.map +1 -1
  408. package/dist/src/routes/schedules.d.ts +4 -0
  409. package/dist/src/routes/schedules.d.ts.map +1 -1
  410. package/dist/src/routes/schedules.js +9 -1
  411. package/dist/src/routes/schedules.js.map +1 -1
  412. package/dist/src/routes/storage-files.d.ts +23 -0
  413. package/dist/src/routes/storage-files.d.ts.map +1 -1
  414. package/dist/src/routes/storage-files.js +103 -82
  415. package/dist/src/routes/storage-files.js.map +1 -1
  416. package/dist/src/routes/subdomains.d.ts +9 -1
  417. package/dist/src/routes/subdomains.d.ts.map +1 -1
  418. package/dist/src/routes/subdomains.js +55 -1
  419. package/dist/src/routes/subdomains.js.map +1 -1
  420. package/dist/src/routes/usage-reports.d.ts +31 -0
  421. package/dist/src/routes/usage-reports.d.ts.map +1 -0
  422. package/dist/src/routes/usage-reports.js +107 -0
  423. package/dist/src/routes/usage-reports.js.map +1 -0
  424. package/dist/src/routes/validate.d.ts.map +1 -1
  425. package/dist/src/routes/validate.js +1 -0
  426. package/dist/src/routes/validate.js.map +1 -1
  427. package/dist/src/routes/workflows.d.ts.map +1 -1
  428. package/dist/src/routes/workflows.js +9 -1
  429. package/dist/src/routes/workflows.js.map +1 -1
  430. package/dist/src/server-bootstrap/routes-loader.d.ts +2 -0
  431. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  432. package/dist/src/server-bootstrap/routes-loader.js +32 -2
  433. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  434. package/dist/src/server-bootstrap/service-init.d.ts.map +1 -1
  435. package/dist/src/server-bootstrap/service-init.js +12 -7
  436. package/dist/src/server-bootstrap/service-init.js.map +1 -1
  437. package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
  438. package/dist/src/server-bootstrap/static-files.js +44 -10
  439. package/dist/src/server-bootstrap/static-files.js.map +1 -1
  440. package/dist/src/services/agent-task-fanout.d.ts +61 -0
  441. package/dist/src/services/agent-task-fanout.d.ts.map +1 -1
  442. package/dist/src/services/agent-task-fanout.js +114 -2
  443. package/dist/src/services/agent-task-fanout.js.map +1 -1
  444. package/dist/src/services/agent-task-write.d.ts.map +1 -1
  445. package/dist/src/services/agent-task-write.js +6 -0
  446. package/dist/src/services/agent-task-write.js.map +1 -1
  447. package/dist/src/services/ai-allowance.d.ts +82 -0
  448. package/dist/src/services/ai-allowance.d.ts.map +1 -0
  449. package/dist/src/services/ai-allowance.js +117 -0
  450. package/dist/src/services/ai-allowance.js.map +1 -0
  451. package/dist/src/services/ai-completion.d.ts +39 -0
  452. package/dist/src/services/ai-completion.d.ts.map +1 -1
  453. package/dist/src/services/ai-completion.js +77 -10
  454. package/dist/src/services/ai-completion.js.map +1 -1
  455. package/dist/src/services/ai-image.d.ts +70 -0
  456. package/dist/src/services/ai-image.d.ts.map +1 -0
  457. package/dist/src/services/ai-image.js +104 -0
  458. package/dist/src/services/ai-image.js.map +1 -0
  459. package/dist/src/services/ai-model-defaults.d.ts +45 -0
  460. package/dist/src/services/ai-model-defaults.d.ts.map +1 -0
  461. package/dist/src/services/ai-model-defaults.js +42 -0
  462. package/dist/src/services/ai-model-defaults.js.map +1 -0
  463. package/dist/src/services/ai-tool-setup.d.ts +5 -1
  464. package/dist/src/services/ai-tool-setup.d.ts.map +1 -1
  465. package/dist/src/services/ai-tool-setup.js +36 -0
  466. package/dist/src/services/ai-tool-setup.js.map +1 -1
  467. package/dist/src/services/ai-transcription.d.ts +5 -0
  468. package/dist/src/services/ai-transcription.d.ts.map +1 -1
  469. package/dist/src/services/ai-transcription.js +10 -2
  470. package/dist/src/services/ai-transcription.js.map +1 -1
  471. package/dist/src/services/ai-usage-admin.d.ts +19 -8
  472. package/dist/src/services/ai-usage-admin.d.ts.map +1 -1
  473. package/dist/src/services/ai-usage-admin.js +30 -35
  474. package/dist/src/services/ai-usage-admin.js.map +1 -1
  475. package/dist/src/services/app-agent-surfaces.js +4 -4
  476. package/dist/src/services/app-agent-surfaces.js.map +1 -1
  477. package/dist/src/services/app-artifact-lint.d.ts +4 -0
  478. package/dist/src/services/app-artifact-lint.d.ts.map +1 -1
  479. package/dist/src/services/app-artifact-lint.js +49 -0
  480. package/dist/src/services/app-artifact-lint.js.map +1 -1
  481. package/dist/src/services/app-draft-edit.d.ts +144 -0
  482. package/dist/src/services/app-draft-edit.d.ts.map +1 -0
  483. package/dist/src/services/app-draft-edit.js +203 -0
  484. package/dist/src/services/app-draft-edit.js.map +1 -0
  485. package/dist/src/services/app-spec-gate.d.ts +4 -0
  486. package/dist/src/services/app-spec-gate.d.ts.map +1 -1
  487. package/dist/src/services/app-spec-gate.js +16 -1
  488. package/dist/src/services/app-spec-gate.js.map +1 -1
  489. package/dist/src/services/attachment-duplication.d.ts +4 -0
  490. package/dist/src/services/attachment-duplication.d.ts.map +1 -1
  491. package/dist/src/services/attachment-duplication.js +15 -0
  492. package/dist/src/services/attachment-duplication.js.map +1 -1
  493. package/dist/src/services/auth-md.js +2 -2
  494. package/dist/src/services/auth-md.js.map +1 -1
  495. package/dist/src/services/board-write.d.ts +11 -3
  496. package/dist/src/services/board-write.d.ts.map +1 -1
  497. package/dist/src/services/board-write.js +24 -3
  498. package/dist/src/services/board-write.js.map +1 -1
  499. package/dist/src/services/capability-record.d.ts.map +1 -1
  500. package/dist/src/services/capability-record.js +22 -9
  501. package/dist/src/services/capability-record.js.map +1 -1
  502. package/dist/src/services/chat-agent.d.ts +36 -0
  503. package/dist/src/services/chat-agent.d.ts.map +1 -0
  504. package/dist/src/services/chat-agent.js +123 -0
  505. package/dist/src/services/chat-agent.js.map +1 -0
  506. package/dist/src/services/chat-session.d.ts +58 -0
  507. package/dist/src/services/chat-session.d.ts.map +1 -0
  508. package/dist/src/services/chat-session.js +151 -0
  509. package/dist/src/services/chat-session.js.map +1 -0
  510. package/dist/src/services/chat-threads.d.ts +61 -0
  511. package/dist/src/services/chat-threads.d.ts.map +1 -0
  512. package/dist/src/services/chat-threads.js +137 -0
  513. package/dist/src/services/chat-threads.js.map +1 -0
  514. package/dist/src/services/config-schema.d.ts.map +1 -1
  515. package/dist/src/services/config-schema.js +2 -1
  516. package/dist/src/services/config-schema.js.map +1 -1
  517. package/dist/src/services/core-jobs.d.ts +2 -0
  518. package/dist/src/services/core-jobs.d.ts.map +1 -1
  519. package/dist/src/services/core-jobs.js +11 -0
  520. package/dist/src/services/core-jobs.js.map +1 -1
  521. package/dist/src/services/datapackage/contract.d.ts +198 -0
  522. package/dist/src/services/datapackage/contract.d.ts.map +1 -0
  523. package/dist/src/services/datapackage/contract.js +140 -0
  524. package/dist/src/services/datapackage/contract.js.map +1 -0
  525. package/dist/src/services/datapackage/ext-capability.d.ts +85 -0
  526. package/dist/src/services/datapackage/ext-capability.d.ts.map +1 -0
  527. package/dist/src/services/datapackage/ext-capability.js +72 -0
  528. package/dist/src/services/datapackage/ext-capability.js.map +1 -0
  529. package/dist/src/services/datapackage/odata.d.ts +92 -0
  530. package/dist/src/services/datapackage/odata.d.ts.map +1 -0
  531. package/dist/src/services/datapackage/odata.js +256 -0
  532. package/dist/src/services/datapackage/odata.js.map +1 -0
  533. package/dist/src/services/datapackage/odps.d.ts +24 -0
  534. package/dist/src/services/datapackage/odps.d.ts.map +1 -0
  535. package/dist/src/services/datapackage/odps.js +183 -0
  536. package/dist/src/services/datapackage/odps.js.map +1 -0
  537. package/dist/src/services/datapackage/store.d.ts +143 -0
  538. package/dist/src/services/datapackage/store.d.ts.map +1 -0
  539. package/dist/src/services/datapackage/store.js +533 -0
  540. package/dist/src/services/datapackage/store.js.map +1 -0
  541. package/dist/src/services/datapackage/table.d.ts +67 -0
  542. package/dist/src/services/datapackage/table.d.ts.map +1 -0
  543. package/dist/src/services/datapackage/table.js +0 -0
  544. package/dist/src/services/datapackage/table.js.map +1 -0
  545. package/dist/src/services/extension-ctx.d.ts +1 -0
  546. package/dist/src/services/extension-ctx.d.ts.map +1 -1
  547. package/dist/src/services/extension-ctx.js +31 -6
  548. package/dist/src/services/extension-ctx.js.map +1 -1
  549. package/dist/src/services/extension-files.d.ts +20 -0
  550. package/dist/src/services/extension-files.d.ts.map +1 -1
  551. package/dist/src/services/extension-files.js +9 -2
  552. package/dist/src/services/extension-files.js.map +1 -1
  553. package/dist/src/services/extension-lifecycle.d.ts +3 -0
  554. package/dist/src/services/extension-lifecycle.d.ts.map +1 -1
  555. package/dist/src/services/extension-lifecycle.js +2 -26
  556. package/dist/src/services/extension-lifecycle.js.map +1 -1
  557. package/dist/src/services/extension-runtime.d.ts +28 -2
  558. package/dist/src/services/extension-runtime.d.ts.map +1 -1
  559. package/dist/src/services/extension-runtime.js +22 -0
  560. package/dist/src/services/extension-runtime.js.map +1 -1
  561. package/dist/src/services/extension-schedules.d.ts +90 -0
  562. package/dist/src/services/extension-schedules.d.ts.map +1 -0
  563. package/dist/src/services/extension-schedules.js +123 -0
  564. package/dist/src/services/extension-schedules.js.map +1 -0
  565. package/dist/src/services/extension-system-run.d.ts +91 -0
  566. package/dist/src/services/extension-system-run.d.ts.map +1 -0
  567. package/dist/src/services/extension-system-run.js +100 -0
  568. package/dist/src/services/extension-system-run.js.map +1 -0
  569. package/dist/src/services/extension-upsert.d.ts +2 -0
  570. package/dist/src/services/extension-upsert.d.ts.map +1 -1
  571. package/dist/src/services/extension-upsert.js +6 -24
  572. package/dist/src/services/extension-upsert.js.map +1 -1
  573. package/dist/src/services/goose-acp.d.ts +84 -0
  574. package/dist/src/services/goose-acp.d.ts.map +1 -0
  575. package/dist/src/services/goose-acp.js +304 -0
  576. package/dist/src/services/goose-acp.js.map +1 -0
  577. package/dist/src/services/invitations.d.ts +0 -20
  578. package/dist/src/services/invitations.d.ts.map +1 -1
  579. package/dist/src/services/invitations.js +30 -0
  580. package/dist/src/services/invitations.js.map +1 -1
  581. package/dist/src/services/job-seeding.d.ts +1 -0
  582. package/dist/src/services/job-seeding.d.ts.map +1 -1
  583. package/dist/src/services/job-seeding.js +6 -0
  584. package/dist/src/services/job-seeding.js.map +1 -1
  585. package/dist/src/services/ledger-admin.d.ts +18 -4
  586. package/dist/src/services/ledger-admin.d.ts.map +1 -1
  587. package/dist/src/services/ledger-admin.js +47 -33
  588. package/dist/src/services/ledger-admin.js.map +1 -1
  589. package/dist/src/services/markdown-negotiation.js +1 -1
  590. package/dist/src/services/markdown-negotiation.js.map +1 -1
  591. package/dist/src/services/message-broadcast.d.ts.map +1 -1
  592. package/dist/src/services/message-broadcast.js +29 -1
  593. package/dist/src/services/message-broadcast.js.map +1 -1
  594. package/dist/src/services/metered-access.d.ts +9 -2
  595. package/dist/src/services/metered-access.d.ts.map +1 -1
  596. package/dist/src/services/metered-access.js +92 -12
  597. package/dist/src/services/metered-access.js.map +1 -1
  598. package/dist/src/services/openrouter.d.ts +20 -1
  599. package/dist/src/services/openrouter.d.ts.map +1 -1
  600. package/dist/src/services/openrouter.js +66 -0
  601. package/dist/src/services/openrouter.js.map +1 -1
  602. package/dist/src/services/organism-import.d.ts.map +1 -1
  603. package/dist/src/services/organism-import.js +4 -1
  604. package/dist/src/services/organism-import.js.map +1 -1
  605. package/dist/src/services/organism-lifecycle.d.ts.map +1 -1
  606. package/dist/src/services/organism-lifecycle.js +5 -1
  607. package/dist/src/services/organism-lifecycle.js.map +1 -1
  608. package/dist/src/services/organism-ownership.d.ts +56 -0
  609. package/dist/src/services/organism-ownership.d.ts.map +1 -0
  610. package/dist/src/services/organism-ownership.js +174 -0
  611. package/dist/src/services/organism-ownership.js.map +1 -0
  612. package/dist/src/services/organism-privacy.d.ts.map +1 -1
  613. package/dist/src/services/organism-privacy.js +2 -1
  614. package/dist/src/services/organism-privacy.js.map +1 -1
  615. package/dist/src/services/prompt-defaults/tiers-core.js +4 -4
  616. package/dist/src/services/scheduler-extension-job.d.ts +29 -6
  617. package/dist/src/services/scheduler-extension-job.d.ts.map +1 -1
  618. package/dist/src/services/scheduler-extension-job.js +29 -75
  619. package/dist/src/services/scheduler-extension-job.js.map +1 -1
  620. package/dist/src/services/scope-vocabulary-migration.d.ts +54 -1
  621. package/dist/src/services/scope-vocabulary-migration.d.ts.map +1 -1
  622. package/dist/src/services/scope-vocabulary-migration.js +101 -6
  623. package/dist/src/services/scope-vocabulary-migration.js.map +1 -1
  624. package/dist/src/services/screenshot-capture.d.ts +40 -1
  625. package/dist/src/services/screenshot-capture.d.ts.map +1 -1
  626. package/dist/src/services/screenshot-capture.js +142 -60
  627. package/dist/src/services/screenshot-capture.js.map +1 -1
  628. package/dist/src/services/skill-bundle/generator.js +1 -1
  629. package/dist/src/services/skill-bundle/generic-adapter.js +1 -1
  630. package/dist/src/services/skill-bundle/hermes-adapter.js +1 -1
  631. package/dist/src/services/storage-file-write.d.ts +36 -1
  632. package/dist/src/services/storage-file-write.d.ts.map +1 -1
  633. package/dist/src/services/storage-file-write.js +49 -3
  634. package/dist/src/services/storage-file-write.js.map +1 -1
  635. package/dist/src/services/task-outcome.d.ts +53 -0
  636. package/dist/src/services/task-outcome.d.ts.map +1 -0
  637. package/dist/src/services/task-outcome.js +28 -0
  638. package/dist/src/services/task-outcome.js.map +1 -0
  639. package/dist/src/services/usage/archive-job.d.ts +25 -0
  640. package/dist/src/services/usage/archive-job.d.ts.map +1 -0
  641. package/dist/src/services/usage/archive-job.js +36 -0
  642. package/dist/src/services/usage/archive-job.js.map +1 -0
  643. package/dist/src/services/usage/record-app-open.d.ts +8 -0
  644. package/dist/src/services/usage/record-app-open.d.ts.map +1 -0
  645. package/dist/src/services/usage/record-app-open.js +52 -0
  646. package/dist/src/services/usage/record-app-open.js.map +1 -0
  647. package/dist/src/services/usage/rollup-cuts.d.ts +44 -0
  648. package/dist/src/services/usage/rollup-cuts.d.ts.map +1 -0
  649. package/dist/src/services/usage/rollup-cuts.js +81 -0
  650. package/dist/src/services/usage/rollup-cuts.js.map +1 -0
  651. package/dist/src/services/usage/rollup-engine.d.ts +71 -0
  652. package/dist/src/services/usage/rollup-engine.d.ts.map +1 -0
  653. package/dist/src/services/usage/rollup-engine.js +237 -0
  654. package/dist/src/services/usage/rollup-engine.js.map +1 -0
  655. package/dist/src/services/usage/usage-buffer.d.ts +25 -0
  656. package/dist/src/services/usage/usage-buffer.d.ts.map +1 -0
  657. package/dist/src/services/usage/usage-buffer.js +146 -0
  658. package/dist/src/services/usage/usage-buffer.js.map +1 -0
  659. package/dist/src/services/usage/usage-read.d.ts +115 -0
  660. package/dist/src/services/usage/usage-read.d.ts.map +1 -0
  661. package/dist/src/services/usage/usage-read.js +246 -0
  662. package/dist/src/services/usage/usage-read.js.map +1 -0
  663. package/dist/src/services/usage-metering.d.ts +5 -0
  664. package/dist/src/services/usage-metering.d.ts.map +1 -1
  665. package/dist/src/services/usage-metering.js +7 -0
  666. package/dist/src/services/usage-metering.js.map +1 -1
  667. package/dist/src/services/workflow/engine-human.d.ts +15 -0
  668. package/dist/src/services/workflow/engine-human.d.ts.map +1 -1
  669. package/dist/src/services/workflow/engine-human.js +10 -1
  670. package/dist/src/services/workflow/engine-human.js.map +1 -1
  671. package/dist/src/services/workflow/engine-steps.d.ts +48 -3
  672. package/dist/src/services/workflow/engine-steps.d.ts.map +1 -1
  673. package/dist/src/services/workflow/engine-steps.js +361 -0
  674. package/dist/src/services/workflow/engine-steps.js.map +1 -1
  675. package/dist/src/services/workflow/engine.d.ts +1 -0
  676. package/dist/src/services/workflow/engine.d.ts.map +1 -1
  677. package/dist/src/services/workflow/engine.js +2 -1
  678. package/dist/src/services/workflow/engine.js.map +1 -1
  679. package/dist/src/services/workflow/store.d.ts.map +1 -1
  680. package/dist/src/services/workflow/store.js +60 -4
  681. package/dist/src/services/workflow/store.js.map +1 -1
  682. package/dist/src/services/write-guards.d.ts +27 -1
  683. package/dist/src/services/write-guards.d.ts.map +1 -1
  684. package/dist/src/services/write-guards.js +39 -9
  685. package/dist/src/services/write-guards.js.map +1 -1
  686. package/dist/src/storage/interface.d.ts +4 -1
  687. package/dist/src/storage/interface.d.ts.map +1 -1
  688. package/dist/src/storage/interface.js +1 -0
  689. package/dist/src/storage/interface.js.map +1 -1
  690. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +119 -0
  691. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -1
  692. package/dist/src/storage/providers/postgres-kysely/index.d.ts.map +1 -1
  693. package/dist/src/storage/providers/postgres-kysely/index.js +2 -1
  694. package/dist/src/storage/providers/postgres-kysely/index.js.map +1 -1
  695. package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.d.ts.map +1 -1
  696. package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.js +3 -0
  697. package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.js.map +1 -1
  698. package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.d.ts.map +1 -1
  699. package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.js +4 -0
  700. package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.js.map +1 -1
  701. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts +1 -0
  702. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts.map +1 -1
  703. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js +3 -0
  704. package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -1
  705. package/dist/src/storage/providers/postgres-kysely/methods/files.d.ts +2 -0
  706. package/dist/src/storage/providers/postgres-kysely/methods/files.d.ts.map +1 -1
  707. package/dist/src/storage/providers/postgres-kysely/methods/files.js +34 -2
  708. package/dist/src/storage/providers/postgres-kysely/methods/files.js.map +1 -1
  709. package/dist/src/storage/providers/postgres-kysely/methods/organisms.d.ts.map +1 -1
  710. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js +11 -2
  711. package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -1
  712. package/dist/src/storage/providers/postgres-kysely/methods/usage.d.ts +32 -0
  713. package/dist/src/storage/providers/postgres-kysely/methods/usage.d.ts.map +1 -0
  714. package/dist/src/storage/providers/postgres-kysely/methods/usage.js +336 -0
  715. package/dist/src/storage/providers/postgres-kysely/methods/usage.js.map +1 -0
  716. package/dist/src/storage/providers/postgres-kysely/migrations/0036_usage_telemetry.sql +181 -0
  717. package/dist/src/storage/providers/postgres-kysely/migrations/0037_task_created_by.sql +18 -0
  718. package/dist/src/storage/providers/postgres-kysely/migrations/0038_organism_owners.sql +31 -0
  719. package/dist/src/storage/providers/postgres-kysely/migrations/0039_storage_file_utf8_verified.sql +19 -0
  720. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  721. package/dist/src/storage/providers/sqlite/index.js +3 -1
  722. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  723. package/dist/src/storage/providers/sqlite/methods/apps.d.ts +1 -0
  724. package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
  725. package/dist/src/storage/providers/sqlite/methods/apps.js +33 -28
  726. package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
  727. package/dist/src/storage/providers/sqlite/methods/governance.d.ts +2 -0
  728. package/dist/src/storage/providers/sqlite/methods/governance.d.ts.map +1 -1
  729. package/dist/src/storage/providers/sqlite/methods/governance.js +25 -4
  730. package/dist/src/storage/providers/sqlite/methods/governance.js.map +1 -1
  731. package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts +1 -12
  732. package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts.map +1 -1
  733. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js +28 -135
  734. package/dist/src/storage/providers/sqlite/methods/identity-nodes.js.map +1 -1
  735. package/dist/src/storage/providers/sqlite/methods/storage-files.d.ts +38 -0
  736. package/dist/src/storage/providers/sqlite/methods/storage-files.d.ts.map +1 -0
  737. package/dist/src/storage/providers/sqlite/methods/storage-files.js +109 -0
  738. package/dist/src/storage/providers/sqlite/methods/storage-files.js.map +1 -0
  739. package/dist/src/storage/providers/sqlite/methods/usage.d.ts +43 -0
  740. package/dist/src/storage/providers/sqlite/methods/usage.d.ts.map +1 -0
  741. package/dist/src/storage/providers/sqlite/methods/usage.js +37 -0
  742. package/dist/src/storage/providers/sqlite/methods/usage.js.map +1 -0
  743. package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts +1 -0
  744. package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts.map +1 -1
  745. package/dist/src/storage/providers/sqlite/repos/agent-task.js +4 -2
  746. package/dist/src/storage/providers/sqlite/repos/agent-task.js.map +1 -1
  747. package/dist/src/storage/providers/sqlite/repos/agent-usage.d.ts.map +1 -1
  748. package/dist/src/storage/providers/sqlite/repos/agent-usage.js +4 -2
  749. package/dist/src/storage/providers/sqlite/repos/agent-usage.js.map +1 -1
  750. package/dist/src/storage/providers/sqlite/repos/community.d.ts.map +1 -1
  751. package/dist/src/storage/providers/sqlite/repos/community.js +20 -0
  752. package/dist/src/storage/providers/sqlite/repos/community.js.map +1 -1
  753. package/dist/src/storage/providers/sqlite/repos/usage.d.ts +35 -0
  754. package/dist/src/storage/providers/sqlite/repos/usage.d.ts.map +1 -0
  755. package/dist/src/storage/providers/sqlite/repos/usage.js +352 -0
  756. package/dist/src/storage/providers/sqlite/repos/usage.js.map +1 -0
  757. package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts.map +1 -1
  758. package/dist/src/storage/providers/sqlite/schema-tables-1.js +2 -0
  759. package/dist/src/storage/providers/sqlite/schema-tables-1.js.map +1 -1
  760. package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts +1 -0
  761. package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts.map +1 -1
  762. package/dist/src/storage/providers/sqlite/schema-tables-3.js +1 -0
  763. package/dist/src/storage/providers/sqlite/schema-tables-3.js.map +1 -1
  764. package/dist/src/storage/providers/sqlite/schema-tables-4.d.ts +2 -0
  765. package/dist/src/storage/providers/sqlite/schema-tables-4.d.ts.map +1 -1
  766. package/dist/src/storage/providers/sqlite/schema-tables-4.js +131 -0
  767. package/dist/src/storage/providers/sqlite/schema-tables-4.js.map +1 -1
  768. package/dist/src/storage/providers/sqlite/schema.d.ts +2 -0
  769. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  770. package/dist/src/storage/providers/sqlite/schema.js +155 -130
  771. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  772. package/dist/src/storage/repositories/app-grant.repository.d.ts +11 -0
  773. package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -1
  774. package/dist/src/storage/repositories/file.repository.d.ts +13 -0
  775. package/dist/src/storage/repositories/file.repository.d.ts.map +1 -1
  776. package/dist/src/storage/repositories/usage.repository.d.ts +80 -0
  777. package/dist/src/storage/repositories/usage.repository.d.ts.map +1 -0
  778. package/dist/src/storage/repositories/usage.repository.js +23 -0
  779. package/dist/src/storage/repositories/usage.repository.js.map +1 -0
  780. package/dist/src/storage/types/agents-messaging.d.ts +24 -0
  781. package/dist/src/storage/types/agents-messaging.d.ts.map +1 -1
  782. package/dist/src/storage/types/agents-messaging.js +1 -0
  783. package/dist/src/storage/types/agents-messaging.js.map +1 -1
  784. package/dist/src/storage/types/commerce.d.ts +6 -0
  785. package/dist/src/storage/types/commerce.d.ts.map +1 -1
  786. package/dist/src/storage/types/organisms-federation.d.ts +21 -0
  787. package/dist/src/storage/types/organisms-federation.d.ts.map +1 -1
  788. package/dist/src/storage/types/usage.d.ts +186 -0
  789. package/dist/src/storage/types/usage.d.ts.map +1 -0
  790. package/dist/src/storage/types/usage.js +24 -0
  791. package/dist/src/storage/types/usage.js.map +1 -0
  792. package/dist/src/utils/agent-footer.d.ts.map +1 -1
  793. package/dist/src/utils/agent-footer.js +1 -0
  794. package/dist/src/utils/agent-footer.js.map +1 -1
  795. package/dist/src/utils/app-content-type.d.ts +57 -3
  796. package/dist/src/utils/app-content-type.d.ts.map +1 -1
  797. package/dist/src/utils/app-content-type.js +81 -12
  798. package/dist/src/utils/app-content-type.js.map +1 -1
  799. package/dist/src/utils/env-config/sections-features.d.ts.map +1 -1
  800. package/dist/src/utils/env-config/sections-features.js +9 -3
  801. package/dist/src/utils/env-config/sections-features.js.map +1 -1
  802. package/dist/src/utils/file-download-headers.d.ts +5 -3
  803. package/dist/src/utils/file-download-headers.d.ts.map +1 -1
  804. package/dist/src/utils/file-download-headers.js +18 -5
  805. package/dist/src/utils/file-download-headers.js.map +1 -1
  806. package/dist/src/utils/http-range.d.ts +151 -0
  807. package/dist/src/utils/http-range.d.ts.map +1 -0
  808. package/dist/src/utils/http-range.js +190 -0
  809. package/dist/src/utils/http-range.js.map +1 -0
  810. package/dist/src/utils/page-head.d.ts +5 -0
  811. package/dist/src/utils/page-head.d.ts.map +1 -1
  812. package/dist/src/utils/page-head.js +10 -1
  813. package/dist/src/utils/page-head.js.map +1 -1
  814. package/dist/src/utils/reserved-keys.d.ts +4 -1
  815. package/dist/src/utils/reserved-keys.d.ts.map +1 -1
  816. package/dist/src/utils/reserved-keys.js +4 -1
  817. package/dist/src/utils/reserved-keys.js.map +1 -1
  818. package/dist/src/utils/scope-coverage.d.ts +21 -0
  819. package/dist/src/utils/scope-coverage.d.ts.map +1 -1
  820. package/dist/src/utils/scope-coverage.js +22 -1
  821. package/dist/src/utils/scope-coverage.js.map +1 -1
  822. package/dist/static/sdk-libs/datapackage/index.js +336 -0
  823. package/dist/static/sdk-libs/dist/aimeat-datapackage.js +305 -0
  824. package/package.json +13 -2
@@ -0,0 +1,60 @@
1
+ ---
2
+ description: AIMEAT Protocol Node — index
3
+ version: v2
4
+ downloadedFrom: {{BASE_URL}}/llms.txt
5
+ ---
6
+
7
+ # AIMEAT Protocol Node
8
+
9
+ > This page is the index. The full builder's manual is at {{BASE_URL}}/llms-full.txt, and that is
10
+ > the document to fetch when you are helping someone build an app or calling this API directly.
11
+ > An AIMEAT node holds persistent memory, identity for humans and their AI agents (GHII/GAII),
12
+ > shared workspaces, skills, tasks and a usage meter, reachable over REST and MCP. The person who
13
+ > owns an account here owns what is stored under it and grants or revokes each agent's reach, one
14
+ > scope at a time.
15
+
16
+ - Node URL: {{BASE_URL}}
17
+ - Node ID: {{NODE_ID}}
18
+ - Protocol: AIMEAT v1
19
+
20
+ ## Start here
21
+
22
+ - [You are a person]({{BASE_URL}}/v1/portal): register in the portal, then connect an assistant
23
+ - [You are an assistant helping someone build]({{BASE_URL}}/llms-full.txt): the manual, with SDK libraries, app templates and worked examples
24
+ - [You are an agent joining under your own identity]({{BASE_URL}}/auth.md): RFC 8628 device flow, the owner approves you and picks your scopes
25
+ - [You are a coding agent meeting AIMEAT as a dependency]({{BASE_URL}}/AGENTS.md): short orientation, installation and configuration
26
+
27
+ ## Documentation
28
+
29
+ - [Full builder's manual]({{BASE_URL}}/llms-full.txt): everything below in one document — SDK libraries, app templates, core concepts, connection flows and the complete endpoint reference
30
+ - [Site map]({{BASE_URL}}/sitemap.md): every page and endpoint on this node, one page
31
+ - [Glossary]({{BASE_URL}}/v1/glossary): GHII, GAII, GEAI, morsels, organisms and the rest, defined
32
+ - [OpenAPI contract]({{BASE_URL}}/v1/spec): the canonical API contract this node is held to
33
+ - [API documentation]({{BASE_URL}}/v1/docs): browsable endpoint reference
34
+ - [Agent registration]({{BASE_URL}}/auth.md): RFC 8628 device flow, owner-approved
35
+ - [App building prompt]({{BASE_URL}}/v1/prompts/build-app): the canonical single-file app spec
36
+ - [App templates]({{BASE_URL}}/v1/app-templates): starter skeletons
37
+ - [App-build pitfalls]({{BASE_URL}}/v1/appdev/pitfalls): what breaks app builds, curated
38
+
39
+ ## Discovery
40
+
41
+ - [Node descriptor]({{BASE_URL}}/.well-known/aimeat): id, type, public key, capabilities
42
+ - [MCP Server Card]({{BASE_URL}}/.well-known/mcp.json): the MCP server, its transport and auth
43
+ - [Machine-readable bootstrap]({{BASE_URL}}/?format=json): what this node is and what to call next
44
+ - [API catalog]({{BASE_URL}}/.well-known/api-catalog): RFC 9727 linkset
45
+ - [Agent Skills index]({{BASE_URL}}/.well-known/agent-skills/index.json): skill packs published here
46
+ - [Crawl policy]({{BASE_URL}}/robots.txt): the content signals this node sets
47
+
48
+ ## Human pages
49
+
50
+ {{HUMAN_PAGES}}
51
+
52
+ ## Optional
53
+
54
+ Secondary reading. Skip these when you need a shorter context.
55
+
56
+ {{OPTIONAL_PAGES}}
57
+ - [AI transparency]({{BASE_URL}}/v1/ai-transparency): what this node marks as AI-generated, how, and in which posture. Content generated here carries an `aimeat.provenance/v1` record on every surface; ask {{BASE_URL}}/v1/provenance/by-hash/<sha256> about bytes you hold, no account needed
58
+ - [UCP profile]({{BASE_URL}}/.well-known/ucp): commerce transports, checkout capability, payment handlers
59
+ - [ACP profile]({{BASE_URL}}/.well-known/acp.json): agentic-commerce discovery and the product feed
60
+ - [Web Bot Auth directory]({{BASE_URL}}/.well-known/http-message-signatures-directory): the keys this node signs outbound requests with
@@ -23,52 +23,93 @@ User-agent: *
23
23
  Content-Signal: search=yes, ai-input=yes, ai-train=no
24
24
  Allow: /
25
25
 
26
- # ── OpenAI ──────────────────────────────────────────────────────────────────
27
- # OAI-SearchBot: powers ChatGPT search results (allow we want to show up)
26
+ # ── Search and retrieval ────────────────────────────────────────────────────
27
+ # These are the bots that decide whether an AI assistant can answer a live question about this
28
+ # node correctly. Every one of them is allowed, on every node, and that is not operator-tunable:
29
+ # a node nobody can look up is a node nobody can join.
30
+ #
31
+ # Two kinds are mixed here on purpose, because blocking them has different costs. A SEARCH bot
32
+ # feeds the index an assistant queries; blocking it removes this node from that assistant's
33
+ # answers. A USER bot fetches one page because a human asked for it, and the vendors document
34
+ # that those may ignore robots.txt precisely because a person asked.
35
+
36
+ # OpenAI — OAI-SearchBot powers ChatGPT search results; blocking it removes this node from them.
28
37
  User-agent: OAI-SearchBot
29
38
  Allow: /
30
39
 
31
- # GPTBot: training data crawler (blocked — training is a separate decision)
32
- User-agent: GPTBot
33
- Disallow: /
40
+ User-agent: ChatGPT-User
41
+ Allow: /
34
42
 
35
- # ── Anthropic / Claude ───────────────────────────────────────────────────────
36
- # Claude-SearchBot: search indexing
43
+ User-agent: OAI-AdsBot
44
+ Allow: /
45
+
46
+ # Anthropic — rules apply per subdomain, which is why app origins serve their own robots.txt.
37
47
  User-agent: Claude-SearchBot
38
48
  Allow: /
39
49
 
40
- # Claude-User: user-initiated fetches (cowork, claude.ai browsing)
41
50
  User-agent: Claude-User
42
51
  Allow: /
43
52
 
44
- # ClaudeBot: training crawler
45
- User-agent: ClaudeBot
46
- Disallow: /
47
-
48
- # ── Perplexity ───────────────────────────────────────────────────────────────
49
- # PerplexityBot: search indexing (respects robots.txt)
53
+ # Perplexity
50
54
  User-agent: PerplexityBot
51
55
  Allow: /
52
56
 
53
- # Perplexity-User: user-initiated fetches (typically ignores robots.txt anyway)
54
57
  User-agent: Perplexity-User
55
58
  Allow: /
56
59
 
57
- # ── Google ───────────────────────────────────────────────────────────────────
58
- # Googlebot: standard search indexing (allow)
60
+ # Google — Googlebot feeds Search, and therefore AI Overviews and AI Mode, which are retrieval
61
+ # over the Search index. Google-Extended is a separate decision and sits in the training block.
59
62
  User-agent: Googlebot
60
63
  Allow: /
61
64
 
62
- # Google-Extended: Gemini training/grounding does NOT affect Google Search
65
+ # Microsoft bingbot feeds both Bing Search and Copilot.
66
+ User-agent: Bingbot
67
+ Allow: /
68
+
69
+ # Apple — Applebot indexes for Siri and Spotlight. Applebot-Extended does not crawl at all; it is
70
+ # the training opt-out token, so it belongs in the block below.
71
+ User-agent: Applebot
72
+ Allow: /
73
+
74
+ # Meta — meta-externalfetcher is the user-requested single-link fetch.
75
+ User-agent: meta-externalfetcher
76
+ Allow: /
77
+
78
+ # xAI / Grok: deliberately absent. No vendor-documented crawler token exists — none appears in
79
+ # x.ai/robots.txt, grok.com/robots.txt or Cloudflare's bot reference — so there is nothing to name
80
+ # here that would not be a guess. The `User-agent: *` rule above covers Grok, and every other
81
+ # undocumented crawler, which is the whole of the available answer.
82
+
83
+ # ── AI training crawlers ────────────────────────────────────────────────────
84
+ # A separate decision from the block above, and an operator's to make: AIMEAT_AI_TRAINING=allow
85
+ # flips every Disallow between the markers to Allow and pairs the Content-Signal line to
86
+ # ai-train=yes. The default is deny, because a personal node holds one person's data and a safe
87
+ # default has to assume that case.
88
+ #
89
+ # The cost of denying, stated plainly so the choice is an informed one: it keeps this node out of
90
+ # what the models know without being pointed at it, and it is a stated preference rather than an
91
+ # enforceable control. It protects a right; it does not protect bytes.
92
+ #AIMEAT-TRAINING-BEGIN
93
+ User-agent: GPTBot
94
+ Disallow: /
95
+
96
+ User-agent: ClaudeBot
97
+ Disallow: /
98
+
99
+ # Google-Extended controls Gemini training and grounding ONLY. Per Google's own documentation it
100
+ # does not affect Google Search, and it does not remove this node from AI Overviews.
63
101
  User-agent: Google-Extended
64
102
  Disallow: /
65
103
 
66
- # ── Bing / Copilot ───────────────────────────────────────────────────────────
67
- User-agent: Bingbot
68
- Allow: /
104
+ User-agent: Applebot-Extended
105
+ Disallow: /
106
+
107
+ User-agent: meta-externalagent
108
+ Disallow: /
109
+ #AIMEAT-TRAINING-END
69
110
 
70
111
  # ── AI agents: machine-readable docs ────────────────────────────────────────
71
- # See /llms.txt for structured API documentation
112
+ # /llms.txt is the curated index; /llms-full.txt is the full builder's manual.
72
113
  # API entry point for AI agents: GET /?format=json
73
114
 
74
- Sitemap: https://aimeat.io/sitemap.xml
115
+ Sitemap: {{BASE_URL}}/sitemap.xml
@@ -1,7 +1,8 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
3
  <head>
4
- <!-- AI: To help this user build apps on AIMEAT, fetch /llms.txt for templates and API docs. Ask what they want to build. -->
4
+ <!-- AI: /llms.txt is the index of this node. To help this user build apps on AIMEAT, fetch
5
+ /llms-full.txt for templates and API docs, then ask what they want to build. -->
5
6
  <meta charset="UTF-8">
6
7
  <!-- interactive-widget=resizes-content: the on-screen keyboard resizes the layout viewport so dvh units
7
8
  + sticky/bottom-pinned composers stay above the keyboard. viewport-fit=cover exposes env(safe-area-*)
@@ -67,6 +68,7 @@
67
68
  checks whether a site points at its own llms.txt finds the pointer. -->
68
69
  <link rel="alternate" type="text/plain" href="/llms.txt" title="LLM-friendly description">
69
70
  <link rel="alternate" type="text/plain" href="/llms-full.txt" title="Full content for LLMs">
71
+ <link rel="describedby" type="text/plain" href="/llms.txt">
70
72
  <link rel="icon" href="/favicon.svg" type="image/svg+xml">
71
73
  <link rel="manifest" href="/manifest.json">
72
74
  <!-- WebMCP bridge (TARGET-034 phase C): registers node-level tools (commerce feed, node info)
@@ -116,6 +118,7 @@
116
118
  <link rel="stylesheet" href="/css/views/portfolio.css">
117
119
  <link rel="stylesheet" href="/css/views/members.css">
118
120
  <link rel="stylesheet" href="/css/views/inbox.css">
121
+ <link rel="stylesheet" href="/css/views/chat.css">
119
122
  <link rel="stylesheet" href="/css/views/glossary.css">
120
123
  <link rel="stylesheet" href="/css/components/tags.css">
121
124
  <link rel="stylesheet" href="/css/components/image-deliverable.css">
@@ -158,6 +161,7 @@
158
161
  "/js/use-session.js": "/js/use-session.js",
159
162
  "/js/services/boards.js": "/js/services/boards.js",
160
163
  "/js/services/catalogue.js": "/js/services/catalogue.js",
164
+ "/js/services/chat.js": "/js/services/chat.js",
161
165
  "/js/services/consent.js": "/js/services/consent.js",
162
166
  "/js/services/cortex.js": "/js/services/cortex.js",
163
167
  "/js/services/extensions.js": "/js/services/extensions.js",
@@ -174,6 +178,7 @@
174
178
  "/js/services/notebook-plan.js": "/js/services/notebook-plan.js",
175
179
  "/js/services/nodes.js": "/js/services/nodes.js",
176
180
  "/js/services/organisms.js": "/js/services/organisms.js",
181
+ "/js/services/organism-roles.js": "/js/services/organism-roles.js",
177
182
  "/js/services/hello-mcp.js": "/js/services/hello-mcp.js",
178
183
  "/js/services/offers.js": "/js/services/offers.js",
179
184
  "/js/services/offers-grouping.js": "/js/services/offers-grouping.js",
@@ -429,6 +434,7 @@
429
434
  '/v1/glossary': () => import('/views/glossary.js' + B),
430
435
  '/v1/business': () => import('/views/business.js' + B),
431
436
  '/v1/transparency': () => import('/views/transparency.js' + B),
437
+ '/v1/chat': () => import('/views/chat.js' + B),
432
438
  '/v1/profile': () => import('/views/profile.js' + B),
433
439
  '/v1/home': () => import('/views/home/index.js' + B),
434
440
  '/v1/app-grant': () => import('/views/app-grant.js' + B),
@@ -809,6 +815,8 @@
809
815
  only existed because the bar was carrying the marketing links at the same
810
816
  time. Those links are anon-only now, so these three fit on the row. -->
811
817
  ${session && html`
818
+ <a href="/v1/chat" class="${currentPath === '/v1/chat' ? 'active' : ''}"
819
+ onClick=${(e) => { handleNav(e, '/v1/chat'); setMenuOpen(false); }}>${t('nav.chat') || 'Chat'}</a>
812
820
  <a href="/app-catalog.html" target="_blank" onClick=${() => setMenuOpen(false)}
813
821
  class="${currentPath === '/app-catalog.html' ? 'active' : ''}">${t('nav.apps') || 'Apps'}</a>
814
822
  <a href="/v1/profile" class="profile-link visible ${currentPath === '/v1/profile' ? 'active' : ''}"
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @file organism-ownership-tab.js
3
+ * @description The operator's break-glass over an organism's ownership, on a screen. Look up an
4
+ * organism by id, see who holds it and who made it, and add an owner to one whose own owners can
5
+ * no longer be reached.
6
+ *
7
+ * Why an operator screen exists for this at all: every gate inside an organism defers to its
8
+ * owners, so an organism whose owners are unreachable cannot be repaired from the inside, and the
9
+ * node operator had no override either. The repair used to be a hand-written SQL transaction
10
+ * against the production database.
11
+ *
12
+ * It is ADDITIVE. Adding an owner takes nothing from the people already there, so the operator
13
+ * never has to decide who loses their organism in order to fix it.
14
+ * @structure OrganismOwnershipTab — lookup form, ownership card, add-owner form
15
+ * @usage registered in views/admin.js under the Identity group
16
+ * @version-history
17
+ * v1.0.0 — 2026-08-15 — Initial, beside POST /v1/admin/organisms/:id/ownership.
18
+ */
19
+ import { h } from 'preact';
20
+ import { useState, useCallback } from 'preact/hooks';
21
+ import htm from 'htm';
22
+ const html = htm.bind(h);
23
+ import { t } from '/js/i18n.js';
24
+ import { dt, Empty, DataTable } from './shared.js';
25
+ import { KeyValueRow } from '/components/KeyValueRow.js';
26
+ import { apiGet, apiPost } from '/js/api.js';
27
+
28
+ export default function OrganismOwnershipTab() {
29
+ const [orgId, setOrgId] = useState('');
30
+ const [state, setState] = useState(null); // { id, name, owners, created_by, admins, members }
31
+ const [candidate, setCandidate] = useState('');
32
+ const [busy, setBusy] = useState(false);
33
+ const [msg, setMsg] = useState(null); // { text, bad }
34
+
35
+ const load = useCallback(async (id) => {
36
+ const target = (id ?? orgId).trim();
37
+ if (!target) return;
38
+ setBusy(true);
39
+ setMsg(null);
40
+ try {
41
+ const r = await apiGet(`/v1/admin/organisms/${encodeURIComponent(target)}/ownership`);
42
+ if (r?.data) { setState(r.data); }
43
+ else { setState(null); setMsg({ text: r?.error?.message || t('admin.orgOwnership.notFound') || 'Organism not found', bad: true }); }
44
+ } catch (e) {
45
+ setState(null);
46
+ setMsg({ text: e?.message || 'Lookup failed', bad: true });
47
+ }
48
+ setBusy(false);
49
+ }, [orgId]);
50
+
51
+ const addOwner = useCallback(async () => {
52
+ const name = candidate.trim();
53
+ if (!name || !state) return;
54
+ setBusy(true);
55
+ setMsg(null);
56
+ try {
57
+ const r = await apiPost(`/v1/admin/organisms/${encodeURIComponent(state.id)}/ownership`, { ghii: name });
58
+ if (r?.data) {
59
+ setMsg({ text: (t('admin.orgOwnership.added') || 'Added {name} as an owner').replace('{name}', name), bad: false });
60
+ setCandidate('');
61
+ await load(state.id);
62
+ } else {
63
+ setMsg({ text: r?.error?.message || 'Failed', bad: true });
64
+ }
65
+ } catch (e) {
66
+ setMsg({ text: e?.message || 'Failed', bad: true });
67
+ }
68
+ setBusy(false);
69
+ }, [candidate, state, load]);
70
+
71
+ const rows = (state?.members || []).map(m => [
72
+ m.ghii,
73
+ (state.owners || []).includes(m.ghii)
74
+ ? html`<span class="badge badge-success">${t('admin.orgOwnership.owner') || 'owner'}</span>`
75
+ : m.role,
76
+ m.status,
77
+ dt(m.joined_at),
78
+ ]);
79
+
80
+ return html`
81
+ <div class="admin-section">
82
+ <p class="section-desc">
83
+ ${t('admin.orgOwnership.desc')
84
+ || 'Put an owner back on an organism whose own owners can no longer be reached. Adding is additive: nobody inside loses anything.'}
85
+ </p>
86
+
87
+ <div class="adm-oo-row">
88
+ <input class="input-field" type="text" value=${orgId} placeholder=${t('admin.orgOwnership.idPlaceholder') || 'Organism id'}
89
+ onInput=${(e) => setOrgId(e.target.value)} onKeyDown=${(e) => { if (e.key === 'Enter') load(); }} />
90
+ <button class="btn-outline" disabled=${busy || !orgId.trim()} onClick=${() => load()}>
91
+ ${t('admin.orgOwnership.look') || 'Look up'}
92
+ </button>
93
+ </div>
94
+
95
+ ${msg ? html`<p class=${msg.bad ? 'form-error' : 'form-note'}>${msg.text}</p>` : null}
96
+
97
+ ${state ? html`
98
+ <div class="adm-oo-card">
99
+ <${KeyValueRow} label=${t('admin.orgOwnership.name') || 'Organism'} value=${state.name} />
100
+ <${KeyValueRow} label=${t('admin.orgOwnership.owners') || 'Owners'} value=${(state.owners || []).join(', ')} />
101
+ <${KeyValueRow} label=${t('admin.orgOwnership.createdBy') || 'Created by'} value=${state.created_by || '—'} />
102
+ <${KeyValueRow} label=${t('admin.orgOwnership.created') || 'Created'} value=${dt(state.created_at)} />
103
+ </div>
104
+
105
+ <div class="adm-oo-row">
106
+ <input class="input-field" type="text" value=${candidate}
107
+ placeholder=${t('admin.orgOwnership.addPlaceholder') || 'Owner name to add'}
108
+ onInput=${(e) => setCandidate(e.target.value)} onKeyDown=${(e) => { if (e.key === 'Enter') addOwner(); }} />
109
+ <button class="btn-primary" disabled=${busy || !candidate.trim()} onClick=${addOwner}>
110
+ ${t('admin.orgOwnership.add') || 'Add owner'}
111
+ </button>
112
+ </div>
113
+
114
+ ${rows.length
115
+ ? html`<${DataTable} headers=${[
116
+ t('admin.orgOwnership.member') || 'Member',
117
+ t('admin.orgOwnership.role') || 'Role',
118
+ t('admin.orgOwnership.status') || 'Status',
119
+ t('admin.orgOwnership.joined') || 'Joined',
120
+ ]} rows=${rows} />`
121
+ : html`<${Empty} text=${t('admin.orgOwnership.noMembers') || 'This organism has no members.'} />`}
122
+ ` : null}
123
+ </div>`;
124
+ }
@@ -1,16 +1,18 @@
1
1
  /**
2
2
  * @file public/views/admin/owners-tab.js
3
3
  * @description Admin dashboard tab listing registered owners (name, display name, roles,
4
- * agent count, created date) with an operator action to grant the operator role.
4
+ * agent count, created date) with operator actions to grant and revoke the operator role.
5
5
  *
6
6
  * @structure
7
7
  * - OwnersTab({ data, reload }): renders the owners table
8
8
  * - doGrant(name): confirms then grants the operator role via grantRole and reloads
9
+ * - doRevoke(name): confirms then removes the operator role via revokeRole and reloads
9
10
  *
10
11
  * @version-history
11
- * v1.0.0 — 2026-07-13Header added; file pre-dates header standard
12
+ * v1.2.0 — 2026-08-14Revoke Operator action next to Grant Operator.
12
13
  * v1.1.0 — 2026-07-18 — Vaihe 2d: hand-rolled <table> → canonical admin <DataTable> (rows/headers
13
14
  * model); cell content preserved verbatim.
15
+ * v1.0.0 — 2026-07-13 — Header added; file pre-dates header standard
14
16
  */
15
17
  import { h } from 'preact';
16
18
  import htm from 'htm';
@@ -18,7 +20,7 @@ const html = htm.bind(h);
18
20
  import { t } from '/js/i18n.js';
19
21
  import { escHtml } from '/js/utils.js';
20
22
  import { dt, Empty, useToast, Toast, DataTable } from './shared.js';
21
- import { grantRole } from '/js/services/admin.js';
23
+ import { grantRole, revokeRole } from '/js/services/admin.js';
22
24
  import { useConfirm } from '/components/Modal.js';
23
25
 
24
26
  export default function OwnersTab({ data, reload }) {
@@ -34,6 +36,13 @@ export default function OwnersTab({ data, reload }) {
34
36
  });
35
37
  }
36
38
 
39
+ function doRevoke(name) {
40
+ confirm(t('dashboard.revokeConfirm').replace('{name}', name), async () => {
41
+ try { await revokeRole(name, 'operator'); reload(); }
42
+ catch (e) { showErr(e.message); }
43
+ });
44
+ }
45
+
37
46
  return html`
38
47
  ${toast && html`<${Toast} ...${toast} onDismiss=${clearToast} />`}
39
48
  <${DataTable}
@@ -48,7 +57,9 @@ export default function OwnersTab({ data, reload }) {
48
57
  roles.length ? html`${roles.map(r => html`<span class="tag" style="font-size:.75rem">${r}</span> `)}` : html`<span style="color:var(--text-dim)">—</span>`,
49
58
  ow.agents ? ow.agents.length : 0,
50
59
  html`<span style="color:var(--text-dim)">${dt(ow.created_at)}</span>`,
51
- !isOp && html`<button class="adm-btn-sm" onClick=${() => doGrant(ow.name)}>${t('dashboard.grantOperator')}</button>`,
60
+ isOp
61
+ ? html`<button class="adm-btn-sm" onClick=${() => doRevoke(ow.name)}>${t('dashboard.revokeOperator')}</button>`
62
+ : html`<button class="adm-btn-sm" onClick=${() => doGrant(ow.name)}>${t('dashboard.grantOperator')}</button>`,
52
63
  ];
53
64
  })}
54
65
  />
@@ -0,0 +1,120 @@
1
+ /**
2
+ * @file usage-tab.calls.js
3
+ * @description Admin Usage tab, section 3 — the CALL stream. The other two sections count LLM
4
+ * spend; this one counts what was actually invoked on the node: which surface carried the work,
5
+ * which tools get called, which apps are alive, and how much of it was REFUSED.
6
+ *
7
+ * REFUSALS ARE THE POINT. Before the usage-telemetry layer, a call the node declined left no
8
+ * record anywhere, so demand that was not served was the one thing an operator could never see.
9
+ * It gets its own column beside errors on every table here, because a refusal is the system
10
+ * working and an error is it failing, and one number covering both is useless for either.
11
+ *
12
+ * IT IS A SEPARATE FILE, NOT MORE OF usage-tab.js. That file is at the size where a fourth
13
+ * concern makes it unreadable; the split is a pure extraction with its own heading.
14
+ * @structure
15
+ * - CallsSection({ data }) — three tables over GET /v1/admin/usage/summary reports
16
+ * @usage Imported by views/admin/usage-tab.js and rendered under the shared time range.
17
+ * @version-history
18
+ * v1.1.0 — 2026-08-15 — Drop the local per-surface collapsing: the read service no longer groups
19
+ * by outcome, so one surface is one row before it gets here.
20
+ * v1.0.0 — 2026-08-14 — Initial: the call stream reaches the operator dashboard.
21
+ */
22
+ import { h } from 'preact';
23
+ import htm from 'htm';
24
+ const html = htm.bind(h);
25
+ import { t } from '/js/i18n.js';
26
+ import { num, StatsGrid, DataTable, Empty } from './shared.js';
27
+
28
+ function ms(n) {
29
+ const v = Number(n) || 0;
30
+ return v >= 1000 ? (v / 1000).toFixed(1) + ' s' : Math.round(v) + ' ms';
31
+ }
32
+
33
+ /** A percentage that stays honest at small n: 0 calls is a dash, not 0 %. */
34
+ function rate(part, whole) {
35
+ const w = Number(whole) || 0;
36
+ if (w === 0) return '—';
37
+ return Math.round(((Number(part) || 0) / w) * 100) + '%';
38
+ }
39
+
40
+ /**
41
+ * @param {object} props
42
+ * @param {{surface: object|null, tool: object|null, apps: object|null}} props.data
43
+ * Three already-fetched report payloads from GET /v1/admin/usage/summary.
44
+ */
45
+ export function CallsSection({ data }) {
46
+ const heading = html`<h2 class="adm-section-purple">${t('dashboard.callsSection')}</h2>`;
47
+ const surface = data?.surface;
48
+ const tool = data?.tool;
49
+ const apps = data?.apps;
50
+
51
+ const totals = surface?.totals;
52
+ if (!totals || (totals.calls || 0) === 0) {
53
+ return html`<div>${heading}<${Empty} text=${t('dashboard.callsEmpty')} /></div>`;
54
+ }
55
+
56
+ const statItems = [
57
+ { label: t('dashboard.callsTotal'), value: num(totals.calls || 0), tone: 'blue' },
58
+ { label: t('dashboard.callsRefused'), value: num(totals.refusals || 0), tone: 'purple' },
59
+ { label: t('dashboard.callsFailed'), value: num(totals.errors || 0), tone: 'red' },
60
+ { label: t('dashboard.callsSlowest'), value: ms(totals.duration_ms_max), tone: 'cyan' },
61
+ ];
62
+
63
+ // One row per surface already: the read service treats `outcome` as a qualifier rather than a
64
+ // grouping key, because `refusals` and `errors` are metrics on every row. Before that it split one
65
+ // surface into an ok row and an error row that both read "mcp".
66
+ const surfaceRows = (surface.groups || []).map(g => [
67
+ g.key,
68
+ { text: num(g.calls || 0), mono: true },
69
+ { text: num(g.refusals || 0), mono: true },
70
+ { text: num(g.errors || 0), mono: true },
71
+ { text: rate((g.errors || 0) + (g.refusals || 0), g.calls), mono: true },
72
+ { text: ms(g.duration_ms_max), mono: true },
73
+ ]);
74
+
75
+ const toolRows = (tool?.groups || []).slice(0, 50).map(g => [
76
+ { text: g.key, mono: true },
77
+ g.dims?.surface || '',
78
+ { text: num(g.calls || 0), mono: true },
79
+ { text: num(g.refusals || 0), mono: true },
80
+ { text: num(g.errors || 0), mono: true },
81
+ { text: ms(g.duration_ms_avg), mono: true },
82
+ ]);
83
+
84
+ // A row with no app id is not an app open — it is a call that happened to be counted in the same
85
+ // cut. Showing it here would put a row in an "apps opened" table that names no app.
86
+ const appRows = (apps?.groups || []).filter(g => !!g.dims?.appId).slice(0, 50).map(g => [
87
+ { text: g.key, mono: true },
88
+ { text: num(g.calls || 0), mono: true },
89
+ { text: num(g.actors_seen_approx || 0), mono: true },
90
+ ]);
91
+
92
+ return html`
93
+ <div>
94
+ ${heading}
95
+ <p class="adm-text-sm">${t('dashboard.callsIntro')}</p>
96
+ <${StatsGrid} items=${statItems} />
97
+
98
+ <h3 class="adm-mt-lg adm-text-sm adm-section-cyan">${t('dashboard.callsBySurface')}</h3>
99
+ <${DataTable}
100
+ headers=${[
101
+ t('dashboard.callsColSurface'), t('dashboard.callsTotal'), t('dashboard.callsRefused'),
102
+ t('dashboard.callsFailed'), t('dashboard.callsColNotServed'), t('dashboard.callsSlowest'),
103
+ ]}
104
+ rows=${surfaceRows} scroll=${true} />
105
+
106
+ <h3 class="adm-mt-lg adm-text-sm adm-section-purple">${t('dashboard.callsByTool')}</h3>
107
+ <${DataTable}
108
+ headers=${[
109
+ t('dashboard.callsColTool'), t('dashboard.callsColSurface'), t('dashboard.callsTotal'),
110
+ t('dashboard.callsRefused'), t('dashboard.callsFailed'), t('dashboard.callsColAvgTime'),
111
+ ]}
112
+ rows=${toolRows} scroll=${true} />
113
+
114
+ <h3 class="adm-mt-lg adm-text-sm adm-section-cyan">${t('dashboard.callsByApp')}</h3>
115
+ <${DataTable}
116
+ headers=${[t('dashboard.callsColApp'), t('dashboard.callsColOpens'), t('dashboard.callsColUsers')]}
117
+ rows=${appRows} scroll=${true} />
118
+ <p class="adm-text-sm">${t('dashboard.callsUsersNote')}</p>
119
+ </div>`;
120
+ }
@@ -15,6 +15,9 @@
15
15
  * @usage Registered in views/admin.js NAV_GROUPS (replaces the old ai-usage entry); rendered with
16
16
  * the shared admin tab props.
17
17
  * @version-history
18
+ * v1.1.0 — 2026-08-14 — Third section: the CALL stream (surfaces, tools, apps, refusals) from
19
+ * GET /v1/admin/usage/summary. It counts invocations, never spend, so it is never summed with
20
+ * the two above. Body in usage-tab.calls.js.
18
21
  * v1.0.0 — 2026-07-11 — Initial: unified operator usage tab (agent LLM ledger + AI apps spend),
19
22
  * with per-user drill-down on the ledger's top-spenders table.
20
23
  */
@@ -27,6 +30,7 @@ import { num, StatsGrid, DataTable, Spinner, Empty } from './shared.js';
27
30
  import { UsageChart, colorForIndex } from '/components/UsageChart.js';
28
31
  import * as api from '/js/services/admin.js';
29
32
  import { swallowed } from '/js/swallowed.js';
33
+ import { CallsSection } from './usage-tab.calls.js';
30
34
 
31
35
  const usd = (n) => { const v = Number(n) || 0; return '$' + (v < 1 ? v.toFixed(4) : v.toFixed(2)); };
32
36
  function fmtCompact(n) {
@@ -58,17 +62,25 @@ export default function UsageTab() {
58
62
  const [aiUsage, setAiUsage] = useState(null);
59
63
  const [loading, setLoading] = useState(true);
60
64
  const [selectedUser, setSelectedUser] = useState(null);
65
+ const [calls, setCalls] = useState(null);
61
66
 
62
67
  const load = useCallback(async (p) => {
63
68
  setLoading(true);
64
69
  try {
65
70
  const range = getDateRange(p);
66
- const [lr, ar] = await Promise.all([
67
- api.getLedger(range.from, range.to).catch(err => { swallowed('usage-tab: UsageTab', err); return null; }),
68
- api.getAiUsage(range.from, range.to).catch(err => { swallowed('usage-tab: UsageTab', err); return null; }),
71
+ const quiet = (err) => { swallowed('usage-tab: UsageTab', err); return null; };
72
+ // Five reads in parallel rather than in sequence: they are independent, and the tab is only as
73
+ // fast as its slowest one either way.
74
+ const [lr, ar, cs, ct, ca] = await Promise.all([
75
+ api.getLedger(range.from, range.to).catch(quiet),
76
+ api.getAiUsage(range.from, range.to).catch(quiet),
77
+ api.getUsageSummary('surface', range.from, range.to).catch(quiet),
78
+ api.getUsageSummary('tool', range.from, range.to).catch(quiet),
79
+ api.getUsageSummary('apps-used', range.from, range.to).catch(quiet),
69
80
  ]);
70
81
  if (lr && lr.data) setLedger(lr.data);
71
82
  if (ar && ar.data) setAiUsage(ar.data);
83
+ setCalls({ surface: cs?.data ?? null, tool: ct?.data ?? null, apps: ca?.data ?? null });
72
84
  } catch (err) { swallowed('usage-tab: UsageTab', err); }
73
85
  setLoading(false);
74
86
  }, []);
@@ -101,7 +113,7 @@ export default function UsageTab() {
101
113
  </span>
102
114
  </div>`;
103
115
 
104
- if (!ledger && !aiUsage) {
116
+ if (!ledger && !aiUsage && !calls) {
105
117
  return html`<div>${timeRange}${loading ? html`<${Spinner} />` : html`<${Empty} text=${t('dashboard.aiUsageEmpty') || 'No AI usage yet.'} />`}</div>`;
106
118
  }
107
119
 
@@ -111,6 +123,8 @@ export default function UsageTab() {
111
123
  ${renderLedgerSection(ledger, metric, selectedUser, setSelectedUser)}
112
124
  <hr class="adm-mt-lg" />
113
125
  ${renderAiAppsSection(aiUsage, metric)}
126
+ <hr class="adm-mt-lg" />
127
+ <${CallsSection} data=${calls} />
114
128
  </div>`;
115
129
  }
116
130
 
@@ -39,6 +39,7 @@ import UsageTab from './admin/usage-tab.js';
39
39
  import OwnersTab from './admin/owners-tab.js';
40
40
  import AgentsTab from './admin/agents-tab.js';
41
41
  import GhiiTab from './admin/ghii-tab.js';
42
+ import OrganismOwnershipTab from './admin/organism-ownership-tab.js';
42
43
  import ActionsTab from './admin/actions-tab.js';
43
44
  import BoardsTab from './admin/boards-tab.js';
44
45
  import ChatInstancesTab from './admin/chat-instances-tab.js';
@@ -92,6 +93,7 @@ const NAV_GROUPS = [
92
93
  { id: 'agents', key: 'dashboard.agents', component: AgentsTab, count: 'agents' },
93
94
  { id: 'ghii', key: 'dashboard.ghii', component: GhiiTab, count: 'ghii' },
94
95
  { id: 'agent-integration', key: 'admin.tabs.agentIntegration', component: AgentIntegrationAdminTab },
96
+ { id: 'org-ownership', key: 'admin.tabs.orgOwnership', component: OrganismOwnershipTab },
95
97
  ]},
96
98
  { key: 'dashboard.navData', items: [
97
99
  { id: 'actions', key: 'dashboard.actions', component: ActionsTab, count: 'actions' },