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
@@ -53,9 +53,33 @@
53
53
  * comes from whoever uploaded it, and GET /v1/pub serves a public file to anyone from the apex
54
54
  * origin, so uploaded text/html or image/svg+xml was a page running next to the portal's
55
55
  * session. Images, media, PDFs and plain text still render inline; everything else downloads.
56
+ * v1.12.0 -- 2026-08-15 -- DELETE goes through services/storage-file-write.ts removeStorageFile(),
57
+ * which aimeat_storage_delete calls too: the capability had lived on this route alone, so an
58
+ * agent could store a file over MCP and needed a human with a REST client to take it back. Two
59
+ * things travelled with the move. The anonymous key fence was a hand-copied second copy here and
60
+ * is now the same one the upload runs. And the response emitted only `emitChange('files')` while
61
+ * the upload emits `files` and `memory` -- a delete frees bytes in the budget the memory view
62
+ * renders exactly as an upload spends them, and the two views disagreed about it.
63
+ * v1.13.0 -- 2026-08-15 -- TARGET-063 A1: byte ranges are one implementation (utils/http-range.ts)
64
+ * and GET /v1/pub has them for the first time. Three things were wrong at once. The regex
65
+ * `/bytes=(\d+)-(\d*)/` does not match `bytes=-8`, the suffix range a Parquet reader opens with,
66
+ * so that request fell through to a 200 carrying the whole file -- a silent fallback that makes a
67
+ * streaming reader download everything while believing it succeeded. `Accept-Ranges` was sent by
68
+ * no path at all, so a client could not discover range support and correctly concluded there was
69
+ * none. And /v1/pub, the door a program reads a published dataset through, never looked at
70
+ * `Range`. Now: suffix ranges parse, an unsatisfiable byte range answers 416 with a
71
+ * `Content-Range: bytes STAR/size` instead of 200, and every byte-serving response (including
72
+ * HEAD and both /v1/pub branches) advertises `Accept-Ranges: bytes`.
73
+ * v1.14.0 -- 2026-08-16 -- TARGET-063: a range is now READ as a range. Every door here fetched the
74
+ * whole file and then decided which part of it to send, so an eight-byte suffix request pulled
75
+ * 10 MB out of the database to answer it, and a request that ended in 403 read the file on its
76
+ * way to being refused. Each door now takes the metadata first, runs its access decision on
77
+ * that, and hands serveStoredFile() a reader. Measured against Postgres through this route,
78
+ * 10 MB file: suffix range 76 ms to 4 ms, a 64 kB window 82 ms to 3 ms, HEAD 65 ms to 2 ms.
56
79
  */
57
80
  import { Router } from 'express';
58
81
  import { setStoredFileHeaders } from '../utils/file-download-headers.js';
82
+ import { setAcceptRanges, serveStoredFile, needsBytesForType } from '../utils/http-range.js';
59
83
  import { requireAuth, requireRole, requireExternalPrincipal, requireScope, optionalAuth } from '../auth/middleware.js';
60
84
  import { success, error } from '../middleware/envelope.js';
61
85
  import { emitChange } from '../services/event-bus.js';
@@ -67,7 +91,7 @@ import { checkStorageQuota, chargeOverage } from '../services/quota.js';
67
91
  import { emitResourceUpdated, emitResourceListChanged } from '../mcp/index.js';
68
92
  import { resolveIdentity } from '../utils/gaii.js';
69
93
  import { normalizeWorkspaceRefs } from '../utils/workspace-ref.js';
70
- import { writeStorageFile, mintStorageUploadUrl } from '../services/storage-file-write.js';
94
+ import { writeStorageFile, mintStorageUploadUrl, removeStorageFile } from '../services/storage-file-write.js';
71
95
  import { generateDownloadToken, verifyDownloadToken, DownloadTokenError } from '../services/download-token.js';
72
96
  import { pubEmbedUrl, pubEmbedMarkdown } from '../services/doc-images.js';
73
97
  import { FOREIGN_HANDLE_TTL_SECONDS, OWN_HANDLE_TTL_SECONDS } from '../services/file-refs.js';
@@ -95,6 +119,13 @@ export function storageFilesRouter(config, storage) {
95
119
  const resolve = (req) => resolveIdentity(req.auth, config.nodeId);
96
120
  // Max chunked file size (configurable, default 5 GB)
97
121
  const MAX_CHUNKED_FILE_SIZE = config.storageMaxChunkedFileSizeGb * 1024 * 1024 * 1024;
122
+ /** How every download door reads its bytes: a range as a range, the whole file only when the
123
+ * whole file was asked for. Passed to serveStoredFile AFTER the authorization decision, which
124
+ * is the ordering that lets a 403 cost nothing. */
125
+ const readerFor = (ownerGaii, key) => ({
126
+ range: (start, length) => storage.readStorageFileRange(ownerGaii, key, start, length),
127
+ all: async () => (await storage.getStorageFile(ownerGaii, key))?.data ?? null,
128
+ });
98
129
  // GET /v1/download/:token — presigned download (F11). No agent auth: the token IS the
99
130
  // capability and is scoped to one owner+key with a TTL. Lets binary bytes be fetched
100
131
  // out-of-band (handed off, embedded, streamed) instead of base64'd into the model context.
@@ -112,32 +143,17 @@ export function storageFilesRouter(config, storage) {
112
143
  res.status(401).json(error(config.nodeId, 'TOKEN_INVALID', 'Invalid download token'));
113
144
  return;
114
145
  }
115
- const file = await storage.getStorageFile(verified.sub, verified.key);
146
+ const file = await storage.getStorageFileMeta(verified.sub, verified.key);
116
147
  if (!file) {
117
148
  res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'File not found'));
118
149
  return;
119
150
  }
120
151
  // The presigned token IS the capability (already owner-authorized). Allowed reads
121
152
  // are no longer audited (only denials + consent mutations — see consent-audit-buffer).
122
- const rangeHeader = req.headers.range;
123
- if (rangeHeader) {
124
- const match = rangeHeader.match(/bytes=(\d+)-(\d*)/);
125
- if (match) {
126
- const start = parseInt(match[1], 10);
127
- const end = match[2] ? parseInt(match[2], 10) : file.size - 1;
128
- const chunk = file.data.subarray(start, end + 1);
129
- res.status(206);
130
- setStoredFileHeaders(res, file);
131
- res.setHeader('Content-Range', `bytes ${start}-${end}/${file.size}`);
132
- res.setHeader('Content-Length', chunk.length);
133
- res.end(chunk);
134
- return;
135
- }
136
- }
137
- setStoredFileHeaders(res, file);
138
- res.setHeader('Content-Length', file.size);
139
153
  res.setHeader('Cache-Control', 'private, max-age=300');
140
- res.end(file.data);
154
+ if (!await serveStoredFile(res, file, req.headers.range, readerFor(verified.sub, verified.key), { headOnly: req.method === 'HEAD' })) {
155
+ res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'File not found'));
156
+ }
141
157
  });
142
158
  // POST /v1/storage — upload file (agent auth)
143
159
  router.post('/v1/storage', requireAuth(), requireExternalPrincipal(), requireScope('storage:write'), async (req, res) => {
@@ -470,7 +486,10 @@ export function storageFilesRouter(config, storage) {
470
486
  router.get('/v1/pub/:gaii/{*key}', optionalAuth(), async (req, res) => {
471
487
  const gaii = req.params.gaii;
472
488
  const key = extractKey(req.params);
473
- const file = await storage.getStorageFile(gaii, key);
489
+ // Metadata first, and the bytes only after the access decision below. The authorization
490
+ // inputs — visibility, groupId, workspaceRef — all live in the metadata, so a request that
491
+ // ends in 403 or 404 no longer reads a 25 MB file on its way there.
492
+ const file = await storage.getStorageFileMeta(gaii, key);
474
493
  if (!file) {
475
494
  res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'Public file not found'));
476
495
  return;
@@ -505,25 +524,34 @@ export function storageFilesRouter(config, storage) {
505
524
  await sendHandle(req.auth?.sub ? resolveIdentity(req.auth, config.nodeId) : gaii);
506
525
  return;
507
526
  }
508
- res.setHeader('Cache-Control', 'public, max-age=300');
509
- // A public file is world-readable by definition, and until now only by <img>: a script
510
- // that fetched the same bytes got no Access-Control-Allow-Origin and was blocked. The
511
- // global CORS middleware resolves allowed origins from the CALLER's identity, and a
527
+ // A public file is world-readable by definition, and for a long time only by <img>: a
528
+ // script that fetched the same bytes got no Access-Control-Allow-Origin and was blocked.
529
+ // The global CORS middleware resolves allowed origins from the CALLER's identity, and a
512
530
  // public read carries none, so it fell back to the node default and app origins missed.
513
531
  // '*' is the honest answer for content that needs no credentials to read — the same
514
532
  // header the app-template, library-pack and font routes already send — and it is set
515
533
  // ONLY on this branch: the consent-gated paths below keep the credentialed policy.
534
+ // `Cross-Origin-Resource-Policy` lets the bytes be drawn into a canvas and read back.
535
+ //
536
+ // All three are set BEFORE the range branches so a 206 and a 416 carry them too: a
537
+ // cross-origin reader that gets its bytes but not its error is worse off than one that
538
+ // gets neither. `Access-Control-Expose-Headers` is what makes `Content-Range` readable
539
+ // from a browser at all — without it a fetch() sees the 206 and none of its geometry.
516
540
  res.setHeader('Access-Control-Allow-Origin', '*');
517
- // Lets the bytes be drawn into a canvas and read back, which is what any app doing
518
- // something WITH a public image (resize, re-encode, hand to a tool) has to do.
519
541
  res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
520
- // The door this hardening exists for. Anyone on the internet reaches this branch, the
521
- // bytes come back from the apex origin, and their type is whatever the uploader said it
522
- // was, so an uploaded page would run as the portal. Images, media, PDFs and plain text
523
- // still render; everything else is saved rather than shown.
524
- setStoredFileHeaders(res, file);
525
- res.setHeader('Content-Length', file.size);
526
- res.end(file.data);
542
+ res.setHeader('Access-Control-Expose-Headers', 'Content-Range, Accept-Ranges, Content-Length');
543
+ res.setHeader('Cache-Control', 'public, max-age=300');
544
+ // THE DOOR A DATA PACKAGE IS READ THROUGH, and until now the only one with no range
545
+ // support at all: every partial request came back 200 with the whole file, so a reader
546
+ // asking for eight bytes downloaded everything and was told it had succeeded.
547
+ //
548
+ // serveStoredFile also carries the hardening this branch exists for. Anyone on the
549
+ // internet reaches it, the bytes come back from the apex origin, and their type is
550
+ // whatever the uploader said it was, so an uploaded page would run as the portal. Images,
551
+ // media, PDFs and plain text still render; everything else is saved rather than shown.
552
+ if (!await serveStoredFile(res, file, req.headers.range, readerFor(gaii, key), { headOnly: req.method === 'HEAD' })) {
553
+ res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'Public file not found'));
554
+ }
527
555
  return;
528
556
  }
529
557
  // Consent layer off → preserve the legacy existence-hiding behavior.
@@ -572,9 +600,13 @@ export function storageFilesRouter(config, storage) {
572
600
  await sendHandle(accessorGaii);
573
601
  return;
574
602
  }
575
- setStoredFileHeaders(res, file);
576
- res.setHeader('Content-Length', file.size);
577
- res.end(file.data);
603
+ // Same range contract as the public branch. A consented reader is reading the same kind of
604
+ // artefact through a narrower door, and a door that answers ranges only when the file is
605
+ // public would make "share this dataset with one buyer" a strictly worse product than
606
+ // "publish it to everyone".
607
+ if (!await serveStoredFile(res, file, req.headers.range, readerFor(gaii, key), { headOnly: req.method === 'HEAD' })) {
608
+ res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'Public file not found'));
609
+ }
578
610
  });
579
611
  // -----------------------------------------------
580
612
  // Authenticated file access routes — use {*key} wildcard to support
@@ -591,7 +623,10 @@ export function storageFilesRouter(config, storage) {
591
623
  // file belonging to anyone else is simply absent here. Cross-namespace reads (an agent
592
624
  // reading its owner's file, a group/workspace share) go through GET /v1/pub/:gaii/{key},
593
625
  // which runs the authorizeRead() guard.
594
- const file = await storage.getStorageFile(gaii, key);
626
+ //
627
+ // Metadata only: a HEAD answers entirely out of it, and reading the bytes to send none of
628
+ // them is what made a range reader's first probe cost a full download.
629
+ const file = await storage.getStorageFileMeta(gaii, key);
595
630
  if (!file) {
596
631
  // ASCII only: a header value with a non-ASCII character (an em dash, say) makes Node throw
597
632
  // ERR_INVALID_CHAR and turns this 404 into a 500.
@@ -600,8 +635,16 @@ export function storageFilesRouter(config, storage) {
600
635
  return;
601
636
  }
602
637
  // Same headers as the GET below, so a client cannot learn one answer from HEAD and meet a
603
- // different one when it fetches the bytes.
604
- setStoredFileHeaders(res, file);
638
+ // different one when it fetches the bytes. `Accept-Ranges` above all: a range reader probes
639
+ // with HEAD first and decides from this header alone whether to stream or to download.
640
+ //
641
+ // The bytes are read here for one reason only: a file stored before the UTF-8 verdict
642
+ // existed keeps its charset in its content, so answering from metadata alone would have HEAD
643
+ // say `text/csv` and the GET say `text/csv; charset=utf-8`. Everything written since answers
644
+ // without the read, which is the case this route is on the hot path for.
645
+ const withBytes = needsBytesForType(file) ? await storage.getStorageFile(gaii, key) : null;
646
+ setStoredFileHeaders(res, withBytes ?? file);
647
+ setAcceptRanges(res);
605
648
  res.setHeader('Content-Length', file.size);
606
649
  res.setHeader('X-AIMEAT-Visibility', file.visibility);
607
650
  res.setHeader('X-AIMEAT-Created', file.createdAt);
@@ -614,7 +657,7 @@ export function storageFilesRouter(config, storage) {
614
657
  // Namespaced to the caller (see the HEAD handler above): a file owned by anyone else is not
615
658
  // reachable here at all. The named alternative in the 404 is the whole point — an agent asked
616
659
  // for its OWNER's file by bare key and got a blank "not found" that read as data loss.
617
- const file = await storage.getStorageFile(gaii, key);
660
+ const file = await storage.getStorageFileMeta(gaii, key);
618
661
  if (!file) {
619
662
  res.status(404).json(error(config.nodeId, 'NOT_FOUND', `File not found in your namespace: ${key}. This route reads only your own files - for a file owned by someone else (e.g. your owner's upload or a DM attachment) use GET /v1/pub/{owner}/{key}.`));
620
663
  return;
@@ -629,9 +672,16 @@ export function storageFilesRouter(config, storage) {
629
672
  res.status(413).json(error(config.nodeId, 'INLINE_NOT_ALLOWED', `Inline is only for small (<= ${INLINE_MAX_BYTES} bytes) text files. This file is ${file.size} bytes (${file.mimeType}). Use mode=handle and the download_url instead.`));
630
673
  return;
631
674
  }
675
+ // The one branch that genuinely wants the whole thing as text, and it is already
676
+ // bounded by INLINE_MAX_BYTES above, so reading it here costs what it is worth.
677
+ const whole = await storage.getStorageFile(gaii, key);
678
+ if (!whole) {
679
+ res.status(404).json(error(config.nodeId, 'NOT_FOUND', `File not found in your namespace: ${key}`));
680
+ return;
681
+ }
632
682
  res.json(success(config.nodeId, {
633
683
  key: file.key, mime_type: file.mimeType, size: file.size, mode: 'inline',
634
- content_text: file.data.toString('utf8'), resource_uri: resourceUri,
684
+ content_text: whole.data.toString('utf8'), resource_uri: resourceUri,
635
685
  }));
636
686
  return;
637
687
  }
@@ -644,54 +694,25 @@ export function storageFilesRouter(config, storage) {
644
694
  }, [{ description: 'Fetch the file bytes', method: 'GET', url: `/v1/download/${token}` }]));
645
695
  return;
646
696
  }
647
- // Range header support
648
- const rangeHeader = req.headers.range;
649
- if (rangeHeader) {
650
- const match = rangeHeader.match(/bytes=(\d+)-(\d*)/);
651
- if (match) {
652
- const start = parseInt(match[1], 10);
653
- const end = match[2] ? parseInt(match[2], 10) : file.size - 1;
654
- const chunk = file.data.subarray(start, end + 1);
655
- res.status(206);
656
- setStoredFileHeaders(res, file);
657
- res.setHeader('Content-Range', `bytes ${start}-${end}/${file.size}`);
658
- res.setHeader('Content-Length', chunk.length);
659
- res.end(chunk);
660
- return;
661
- }
697
+ if (!await serveStoredFile(res, file, req.headers.range, readerFor(gaii, key), { headOnly: req.method === 'HEAD' })) {
698
+ res.status(404).json(error(config.nodeId, 'NOT_FOUND', `File not found in your namespace: ${key}`));
662
699
  }
663
- setStoredFileHeaders(res, file);
664
- res.setHeader('Content-Length', file.size);
665
- res.end(file.data);
666
700
  });
667
701
  // DELETE /v1/storage/{*key} — delete file (agent auth)
702
+ // The key fence, the existence and ownership checks and the change events are the shared delete
703
+ // (services/storage-file-write.ts), which aimeat_storage_delete calls too. This handler parses
704
+ // the request and renders the answer.
668
705
  router.delete('/v1/storage/{*key}', requireAuth(), requireExternalPrincipal(), requireScope('storage:write'), async (req, res) => {
669
706
  const gaii = resolve(req);
670
707
  const key = extractKey(req.params);
671
- // Anonymous namespace enforcement
672
- if (isAnonymousGaii(gaii) && !key.startsWith('anonymous/')) {
673
- res.status(403).json(error(config.nodeId, 'FORBIDDEN', 'Anonymous agents can only delete keys prefixed with "anonymous/"'));
674
- return;
675
- }
676
- // Defense-in-depth: verify ownership before deletion
677
- const existing = await storage.getStorageFile(gaii, key);
678
- if (!existing) {
679
- res.status(404).json(error(config.nodeId, 'NOT_FOUND', `File not found: ${key}`));
708
+ const removed = await removeStorageFile({ storage, config, emitResourceUpdated, emitResourceListChanged }, gaii, key);
709
+ if (!removed.ok) {
710
+ res.status(removed.status).json(error(config.nodeId, removed.code, removed.message));
680
711
  return;
681
712
  }
682
- if (existing.ownerGaii !== resolve(req)) {
683
- res.status(403).json(error(config.nodeId, 'ACCESS_DENIED', 'You can only delete your own files'));
684
- return;
685
- }
686
- const deleted = await storage.deleteStorageFile(gaii, key);
687
- if (!deleted) {
688
- res.status(404).json(error(config.nodeId, 'NOT_FOUND', `File not found: ${key}`));
689
- return;
690
- }
691
- emitResourceUpdated(gaii, `aimeat://storage/${encodeURIComponent(key)}`);
692
- emitResourceListChanged(gaii);
693
- res.json(success(config.nodeId, { deleted: true, key }));
694
- emitChange('files');
713
+ res.json(success(config.nodeId, {
714
+ deleted: true, key: removed.key, size: removed.size, mime_type: removed.mimeType,
715
+ }));
695
716
  });
696
717
  return router;
697
718
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage-files.js","sourceRoot":"","sources":["../../../src/routes/storage-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-files.js","sourceRoot":"","sources":["../../../src/routes/storage-files.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,18 @@
7
7
  * ("owner/filename.html") or an absolute redirect URL — never raw
8
8
  * HTML, so content stays in one place (app versions).
9
9
  * @structure subdomainServeRouter — root catch (GET /) for subdomain requests;
10
- * RESERVED_SUBDOMAINS, SUBDOMAIN_RE — validation primitives.
10
+ * RESERVED_SUBDOMAINS, SUBDOMAIN_RE — validation primitives;
11
+ * unlockRedirect — a browser at a code-gated app is sent to the apex code form.
11
12
  * The operator CRUD lives in subdomain-admin.ts.
12
13
  * @usage app.use(subdomainServeRouter(config, storage)); // BEFORE bootstrapRouter
13
14
  * @version-history
15
+ * v1.15.0 — 2026-08-15 — A browser that meets a CODE-gated app here with no usable grant is sent
16
+ * to the apex unlock page (302, ?unlock=1) instead of the uniform 404. The app origin is the
17
+ * address people actually hold — the catalog opens it, aimeat_app_list hands it out, a link
18
+ * carries it — and the code form only ever existed on the apex, so a stranger following that
19
+ * link and an owner reloading after the hour-long grant expired both dead-ended in JSON with
20
+ * no field to type into. No code is checked here and the gate has not moved; price-gated apps,
21
+ * API callers and every other path keep the uniform 404.
14
22
  * v1.14.0 — 2026-08-11 — Audit H-19: a gated app (access code, or a price) is served here when
15
23
  * the request carries a valid app-access grant minted by the apex, and answers the uniform 404
16
24
  * without one. Before this the app origin refused gated apps outright, which is why the apex
@@ -1 +1 @@
1
- {"version":3,"file":"subdomains.d.ts","sourceRoot":"","sources":["../../../src/routes/subdomains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAoBlE,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,aAO9B,CAAC;AAEH,4FAA4F;AAC5F,eAAO,MAAM,YAAY,QAAsC,CAAC;AAEhE;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwB5I;AAED,6EAA6E;AAC7E,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAWlG;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAI7E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQvF;AAWD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkB9F;AA2MD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CA6TnF"}
1
+ {"version":3,"file":"subdomains.d.ts","sourceRoot":"","sources":["../../../src/routes/subdomains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAqBlE,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,aAO9B,CAAC;AAEH,4FAA4F;AAC5F,eAAO,MAAM,YAAY,QAAsC,CAAC;AAEhE;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwB5I;AAED,6EAA6E;AAC7E,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAWlG;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAI7E;AAuCD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQvF;AAWD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkB9F;AA6MD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CA+TnF"}
@@ -7,10 +7,18 @@
7
7
  * ("owner/filename.html") or an absolute redirect URL — never raw
8
8
  * HTML, so content stays in one place (app versions).
9
9
  * @structure subdomainServeRouter — root catch (GET /) for subdomain requests;
10
- * RESERVED_SUBDOMAINS, SUBDOMAIN_RE — validation primitives.
10
+ * RESERVED_SUBDOMAINS, SUBDOMAIN_RE — validation primitives;
11
+ * unlockRedirect — a browser at a code-gated app is sent to the apex code form.
11
12
  * The operator CRUD lives in subdomain-admin.ts.
12
13
  * @usage app.use(subdomainServeRouter(config, storage)); // BEFORE bootstrapRouter
13
14
  * @version-history
15
+ * v1.15.0 — 2026-08-15 — A browser that meets a CODE-gated app here with no usable grant is sent
16
+ * to the apex unlock page (302, ?unlock=1) instead of the uniform 404. The app origin is the
17
+ * address people actually hold — the catalog opens it, aimeat_app_list hands it out, a link
18
+ * carries it — and the code form only ever existed on the apex, so a stranger following that
19
+ * link and an owner reloading after the hour-long grant expired both dead-ended in JSON with
20
+ * no field to type into. No code is checked here and the gate has not moved; price-gated apps,
21
+ * API callers and every other path keep the uniform 404.
14
22
  * v1.14.0 — 2026-08-11 — Audit H-19: a gated app (access code, or a price) is served here when
15
23
  * the request carries a valid app-access grant minted by the apex, and answers the uniform 404
16
24
  * without one. Before this the app origin refused gated apps outright, which is why the apex
@@ -78,6 +86,7 @@ import { applyServeMarks } from '../services/app-serve-marks.js';
78
86
  import { appCsp } from '../utils/app-csp.js';
79
87
  import { appContentType } from '../utils/app-content-type.js';
80
88
  import { appToolNames } from '../services/app-tool-names.js';
89
+ import { recordAppOpen } from '../services/usage/record-app-open.js';
81
90
  import { verifyDraftToken, verifyFrameToken, DraftTokenError } from '../services/draft-token.js';
82
91
  import { appAccessGranted } from '../services/app-access-token.js';
83
92
  import { prefersMarkdown, sendMarkdown } from '../services/markdown-negotiation.js';
@@ -155,6 +164,45 @@ export function appIsRestricted(config, app) {
155
164
  return true;
156
165
  return false;
157
166
  }
167
+ /**
168
+ * A CODE-gated app met by a browser that holds no usable grant: send it to the apex, where the
169
+ * code form already lives, instead of the uniform 404. Returns true when the redirect was sent.
170
+ *
171
+ * Why here. The public address of every app is its own origin — it is what the catalog opens, what
172
+ * `aimeat_app_list` hands out and what a person shares — but the code form only ever existed on the
173
+ * apex, so a stranger following that link, and an owner reloading after the hour-long grant died,
174
+ * both got `{"error":{"code":"NOT_FOUND"}}` with no way back to the field. The gate is not moved and
175
+ * no code is checked here: this origin has no session and still verifies nothing but a signed grant.
176
+ * It only points a human at the door.
177
+ *
178
+ * Three conditions, each load-bearing:
179
+ * - An ACCESS CODE, never a price. A paid app refuses anything without a Bearer, which is the one
180
+ * credential a browser navigation cannot carry, so a form would only dead-end more slowly.
181
+ * - A browser NAVIGATION (`Accept: text/html`), the same test the apex unlock page uses. An API
182
+ * caller, an agent and a script's own request keep the uniform 404 they contract for.
183
+ * - `unlock` absent. The apex stamps it back onto the grant it mints, so a grant that fails to
184
+ * verify HERE (clock skew, a rotated node key) bounces exactly once and then 404s.
185
+ *
186
+ * The disclosure this trades away, deliberately: a code-gated app's origin stops being
187
+ * indistinguishable from an unmapped subdomain for a browser. The apex has always said as much to
188
+ * the same visitor — it answers the code form rather than 404 — so this aligns the two doors
189
+ * instead of opening a new one. Everything else on this origin keeps the uniform 404.
190
+ */
191
+ function unlockRedirect(req, res, config, app) {
192
+ if (!app.accessCode)
193
+ return false;
194
+ if (!(req.headers.accept ?? '').includes('text/html'))
195
+ return false;
196
+ if (req.query.unlock === '1')
197
+ return false;
198
+ const target = `${config.baseUrl}/v1/apps/${encodeURIComponent(app.ownerName)}`
199
+ + `/${encodeURIComponent(app.filename)}?mode=inline&unlock=1`;
200
+ // no-store for the same reason the apex grant redirect carries it: this address is a step in an
201
+ // unlock, and a cached copy of it would send the next visit somewhere it no longer belongs.
202
+ res.setHeader('Cache-Control', 'no-store');
203
+ res.redirect(302, target);
204
+ return true;
205
+ }
158
206
  /**
159
207
  * Inject a `<script src>` (the seamless-SSO shim) into HTML body bytes, returning a Buffer. Handles
160
208
  * a Node Buffer (SQLite), a Uint8Array (MongoDB/Prisma `Bytes`), or a string — decoding bytes as
@@ -274,6 +322,8 @@ visible) {
274
322
  res.setHeader('Cache-Control', 'no-cache, must-revalidate');
275
323
  res.setHeader('X-Content-Type-Options', 'nosniff');
276
324
  storage.incrementAppDownloads(app.ownerGaii, app.filename).catch(err => { logger.warn('serveApp: continuing after a suppressed failure', { error: String(err) }); });
325
+ // The lifetime counter above answers "how many"; this answers when, and by whom.
326
+ recordAppOpen({ appOwnerGaii: app.ownerGaii, filename: app.filename, viewer: protect?.viewer });
277
327
  if (/text\/html/i.test(app.mimeType)) {
278
328
  // Relax the author's CSP meta so the H-2 SSO bridge works (only when apex framing is on),
279
329
  // then append the permanent aimeat.io "publish your own app" attribution badge so an
@@ -546,6 +596,8 @@ export function subdomainServeRouter(config, storage) {
546
596
  // grant is the whole authorization. Without one the answer stays the uniform 404 an unmapped
547
597
  // subdomain gets, so the origin still tells a stranger nothing about which apps exist.
548
598
  if (appIsRestricted(config, app) && !(await appAccessGranted(req.query.access, app.ownerName, app.filename))) {
599
+ if (unlockRedirect(req, res, config, app))
600
+ return;
549
601
  return notFound();
550
602
  }
551
603
  // Agent Face: an agent preferring text/markdown (Accept negotiation, or ?format=md) gets the
@@ -704,6 +756,8 @@ Sitemap: ${origin}/sitemap.xml
704
756
  if (!app)
705
757
  return next();
706
758
  if (appIsRestricted(config, app) && !(await appAccessGranted(req.query.access, app.ownerName, app.filename))) {
759
+ if (unlockRedirect(req, res, config, app))
760
+ return;
707
761
  res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'Unknown app'));
708
762
  return;
709
763
  }