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
@@ -1360,6 +1360,141 @@ export interface paths {
1360
1360
  patch?: never;
1361
1361
  trace?: never;
1362
1362
  };
1363
+ "/v1/chat/status": {
1364
+ parameters: {
1365
+ query?: never;
1366
+ header?: never;
1367
+ path?: never;
1368
+ cookie?: never;
1369
+ };
1370
+ /**
1371
+ * Whether this node has a built-in chat agent
1372
+ * @description Report whether an operator has configured a chat agent on this node, what the owner's chat
1373
+ * agent is called, how much of their AI allowance is left, and whether they have their own
1374
+ * OpenRouter key. A node with no agent says so plainly rather than offering a box that will
1375
+ * never answer. Owner sessions only.
1376
+ */
1377
+ get: operations["getChatStatus"];
1378
+ put?: never;
1379
+ post?: never;
1380
+ delete?: never;
1381
+ options?: never;
1382
+ head?: never;
1383
+ patch?: never;
1384
+ trace?: never;
1385
+ };
1386
+ "/v1/chat/threads": {
1387
+ parameters: {
1388
+ query?: never;
1389
+ header?: never;
1390
+ path?: never;
1391
+ cookie?: never;
1392
+ };
1393
+ /**
1394
+ * The owner's open conversations
1395
+ * @description List the owner's live conversations, newest first, without their turns. Older conversations
1396
+ * roll into one record per month once more than the node's ceiling are open, and those are not
1397
+ * listed here. Owner sessions only.
1398
+ */
1399
+ get: operations["listChatThreads"];
1400
+ put?: never;
1401
+ /**
1402
+ * Start a conversation
1403
+ * @description Start a conversation and provision the owner's chat agent if this is their first. The agent
1404
+ * is a real GAII principal that appears in the Agents tab beside the ones they connected
1405
+ * themselves, and its scopes are edited in the same place. The title is a placeholder until the
1406
+ * first thing the person says replaces it. Owner sessions only.
1407
+ */
1408
+ post: operations["createChatThread"];
1409
+ delete?: never;
1410
+ options?: never;
1411
+ head?: never;
1412
+ patch?: never;
1413
+ trace?: never;
1414
+ };
1415
+ "/v1/chat/threads/{id}": {
1416
+ parameters: {
1417
+ query?: never;
1418
+ header?: never;
1419
+ path: {
1420
+ id: string;
1421
+ };
1422
+ cookie?: never;
1423
+ };
1424
+ /**
1425
+ * One conversation, in full
1426
+ * @description Return one conversation with every turn it holds, including the tool calls the agent made and
1427
+ * which model answered each turn. A conversation the caller does not own is reported as absent.
1428
+ * Owner sessions only.
1429
+ */
1430
+ get: operations["getChatThread"];
1431
+ put?: never;
1432
+ post?: never;
1433
+ /**
1434
+ * Throw a conversation away
1435
+ * @description Delete one conversation and its turns. The conversation is looked up first, so a caller who
1436
+ * cannot see it is told nothing exists rather than being told a deletion happened. Owner
1437
+ * sessions only.
1438
+ */
1439
+ delete: operations["deleteChatThread"];
1440
+ options?: never;
1441
+ head?: never;
1442
+ patch?: never;
1443
+ trace?: never;
1444
+ };
1445
+ "/v1/chat/threads/{id}/reset": {
1446
+ parameters: {
1447
+ query?: never;
1448
+ header?: never;
1449
+ path?: never;
1450
+ cookie?: never;
1451
+ };
1452
+ get?: never;
1453
+ put?: never;
1454
+ /**
1455
+ * Forget the agent session, keep the conversation
1456
+ * @description Drop the agent session this conversation runs on. The next message opens a fresh one, which
1457
+ * is how a change to the chat agent's scopes takes effect: the session's credential carries the
1458
+ * scopes it was minted with. The conversation itself is untouched. Owner sessions only.
1459
+ */
1460
+ post: operations["resetChatThreadSession"];
1461
+ delete?: never;
1462
+ options?: never;
1463
+ head?: never;
1464
+ patch?: never;
1465
+ trace?: never;
1466
+ };
1467
+ "/v1/chat/threads/{id}/turn": {
1468
+ parameters: {
1469
+ query?: never;
1470
+ header?: never;
1471
+ path?: never;
1472
+ cookie?: never;
1473
+ };
1474
+ get?: never;
1475
+ put?: never;
1476
+ /**
1477
+ * Say something, and watch what happens
1478
+ * @description Send one message and receive the agent's work as it happens, as `text/event-stream`. A turn
1479
+ * takes minutes when the agent is building something, so a single response at the end would be
1480
+ * indistinguishable from a hang.
1481
+ *
1482
+ * Each `data:` frame is one update: `{ kind: 'text', text }` as words are written,
1483
+ * `{ kind: 'thought', text }`, `{ kind: 'tool_call', id, title, status }` as each tool call
1484
+ * starts and finishes, `{ kind: 'done', stopReason, tokens }` at the end, and
1485
+ * `{ kind: 'error', message }` when the turn could not run — a node with no agent configured
1486
+ * answers with exactly that rather than hanging. `:keepalive` comments arrive every 15 s.
1487
+ *
1488
+ * The person's own words are written to the conversation before the agent is asked anything,
1489
+ * so a turn that fails halfway leaves a record of what was said. Owner sessions only.
1490
+ */
1491
+ post: operations["sendChatTurn"];
1492
+ delete?: never;
1493
+ options?: never;
1494
+ head?: never;
1495
+ patch?: never;
1496
+ trace?: never;
1497
+ };
1363
1498
  "/v1/checkin": {
1364
1499
  parameters: {
1365
1500
  query?: never;
@@ -2073,7 +2208,8 @@ export interface paths {
2073
2208
  /**
2074
2209
  * Which side this person lands on (the switch)
2075
2210
  * @description The new home or the old profile. K2: the choice is per USER and stored on the account, so it follows them to another device; a per-tab choice would mean landing on whichever side happened to be the default every morning.
2076
- * When nothing has been chosen, `defaulted` is true and the answer comes from the account's cohort (K3): an account created on the remake lands on the home, one created before it lands where it always did. Nobody's workflow changes under them.
2211
+ * There are three sides: the chat, the new home, and the old profile.
2212
+ * When nothing has been chosen, `defaulted` is true and the answer comes from the account's cohort (K3): an account created before the remake lands where it always did, so nobody's workflow changes under them. A newer account lands in the chat, which is the one place a person who has connected no AI tool of their own can do something on their first visit — but only on a node that HAS a chat agent. Where there is none, the new home is the answer, since landing somebody in a box that can only say "no agent configured" is worse.
2077
2213
  * `track` and `switched` are returned read-only, for transparency — no route here changes `track`.
2078
2214
  */
2079
2215
  get: operations["getHomeUiTrack"];
@@ -2571,6 +2707,40 @@ export interface paths {
2571
2707
  patch?: never;
2572
2708
  trace?: never;
2573
2709
  };
2710
+ "/v1/ai/image": {
2711
+ parameters: {
2712
+ query?: never;
2713
+ header?: never;
2714
+ path?: never;
2715
+ cookie?: never;
2716
+ };
2717
+ get?: never;
2718
+ put?: never;
2719
+ /**
2720
+ * Generate an image on the owner's AI key
2721
+ * @description Makes a picture from a description and stores it in the caller's own storage, answering with
2722
+ * a key and a URL rather than the image. Bytes returned inline would travel through a tool
2723
+ * result and an agent's context for nothing, and this node already has a place where files live
2724
+ * and can be pointed at.
2725
+ *
2726
+ * Needs an image model: the owner's `imageModel`, or the node's default. With neither it
2727
+ * refuses as NO_IMAGE_MODEL rather than falling back to a chat model, which would answer an
2728
+ * image request with prose and leave the caller holding an opaque provider error.
2729
+ *
2730
+ * Spends the owner's daily AI budget and is refused before the provider is called when that
2731
+ * budget is used up. Gated like the other AI routes: an owner session, or any principal holding
2732
+ * `ai:use`.
2733
+ *
2734
+ * Pass `public: true` when a model or a web page has to fetch the image back by URL; the
2735
+ * default is private.
2736
+ */
2737
+ post: operations["generateImage"];
2738
+ delete?: never;
2739
+ options?: never;
2740
+ head?: never;
2741
+ patch?: never;
2742
+ trace?: never;
2743
+ };
2574
2744
  "/v1/ai/transcribe": {
2575
2745
  parameters: {
2576
2746
  query?: never;
@@ -4284,6 +4454,231 @@ export interface paths {
4284
4454
  patch?: never;
4285
4455
  trace?: never;
4286
4456
  };
4457
+ "/v1/datapackages": {
4458
+ parameters: {
4459
+ query?: never;
4460
+ header?: never;
4461
+ path?: never;
4462
+ cookie?: never;
4463
+ };
4464
+ /**
4465
+ * The caller's own packages
4466
+ * @description One entry per package, pointing at its NEWEST version, plus `lastError` when the most recent
4467
+ * production run failed. That pairing is the point: a package that has not changed and a
4468
+ * package whose producer is broken look identical without it.
4469
+ */
4470
+ get: operations["listDataPackages"];
4471
+ put?: never;
4472
+ /**
4473
+ * Publish a data package version
4474
+ * @description Build, check and store one immutable version. The quality gate runs FIRST: if any row fails
4475
+ * its resource's Table Schema the response is 422 with the row and column of every problem and
4476
+ * NOTHING is written, so the package stays on its previous version rather than acquiring a
4477
+ * half-finished one at a permanent address.
4478
+ *
4479
+ * The version is the content hash of the descriptor, so re-publishing identical data answers
4480
+ * 200 with `unchanged: true` instead of creating a second version — a deterministic producer
4481
+ * proving it is deterministic is not an update.
4482
+ *
4483
+ * `schema` per resource is either a Table Schema (declared) or omitted/`infer` (proposed from
4484
+ * the rows). The descriptor records which, as `aimeat.schemaSource`, so a consumer can see
4485
+ * whether anybody confirmed the types.
4486
+ */
4487
+ post: operations["publishDataPackage"];
4488
+ delete?: never;
4489
+ options?: never;
4490
+ head?: never;
4491
+ patch?: never;
4492
+ trace?: never;
4493
+ };
4494
+ "/v1/datapackages/validate": {
4495
+ parameters: {
4496
+ query?: never;
4497
+ header?: never;
4498
+ path?: never;
4499
+ cookie?: never;
4500
+ };
4501
+ get?: never;
4502
+ put?: never;
4503
+ /**
4504
+ * Run the quality gate without writing
4505
+ * @description The same check `POST /v1/datapackages` runs, with no side effect: infer or apply each
4506
+ * resource's Table Schema, validate every row against it, and answer with the coordinates of
4507
+ * anything wrong plus the schemas that were used. This is what puts a row-and-column error in
4508
+ * front of a publisher in the browser, before anything is stored.
4509
+ */
4510
+ post: operations["validateDataPackage"];
4511
+ delete?: never;
4512
+ options?: never;
4513
+ head?: never;
4514
+ patch?: never;
4515
+ trace?: never;
4516
+ };
4517
+ "/v1/datapackages/{owner}/{name}": {
4518
+ parameters: {
4519
+ query?: never;
4520
+ header?: never;
4521
+ path?: never;
4522
+ cookie?: never;
4523
+ };
4524
+ /**
4525
+ * A package descriptor
4526
+ * @description The Frictionless descriptor for one version. Without `version` the newest is resolved through
4527
+ * the package's mutable pointer, and the pointer travels back so a consumer can see whether the
4528
+ * latest production run failed. With `version` the answer is pinned and can never change.
4529
+ *
4530
+ * No authentication: a published package is public, and a program reading one should not need
4531
+ * an AIMEAT session. For the raw bytes use the descriptor_url this returns, which is a
4532
+ * permanent, range-readable /v1/pub address.
4533
+ */
4534
+ get: operations["getDataPackage"];
4535
+ put?: never;
4536
+ post?: never;
4537
+ delete?: never;
4538
+ options?: never;
4539
+ head?: never;
4540
+ patch?: never;
4541
+ trace?: never;
4542
+ };
4543
+ "/v1/datapackages/{owner}/{name}/versions": {
4544
+ parameters: {
4545
+ query?: never;
4546
+ header?: never;
4547
+ path?: never;
4548
+ cookie?: never;
4549
+ };
4550
+ /**
4551
+ * Every version of one package
4552
+ * @description Newest first, each with the explanation it was published with, its row count, its size and
4553
+ * its permanent address. `current: true` marks the one the pointer names, and `supersedes`
4554
+ * names the version each one replaced, so the history reads as a chain rather than a list of
4555
+ * hashes.
4556
+ *
4557
+ * The versions are discovered from the stored keys rather than from an index, so nothing can
4558
+ * be published without appearing here. How far back it goes is the owner's retention policy.
4559
+ *
4560
+ * No authentication, for the same reason as the descriptor: a history nobody can see is not a
4561
+ * history a consumer can rely on.
4562
+ */
4563
+ get: operations["listDataPackageVersions"];
4564
+ put?: never;
4565
+ post?: never;
4566
+ delete?: never;
4567
+ options?: never;
4568
+ head?: never;
4569
+ patch?: never;
4570
+ trace?: never;
4571
+ };
4572
+ "/v1/datapackages/{owner}/{name}/rows/{resource}": {
4573
+ parameters: {
4574
+ query?: never;
4575
+ header?: never;
4576
+ path?: never;
4577
+ cookie?: never;
4578
+ };
4579
+ /**
4580
+ * A window of rows
4581
+ * @description A paginated read for a UI or an agent that wants to look rather than download. For anything
4582
+ * larger, read the resource's CSV from its permanent address — that is what it is for, and it
4583
+ * answers byte ranges.
4584
+ */
4585
+ get: operations["readDataPackageRows"];
4586
+ put?: never;
4587
+ post?: never;
4588
+ delete?: never;
4589
+ options?: never;
4590
+ head?: never;
4591
+ patch?: never;
4592
+ trace?: never;
4593
+ };
4594
+ "/v1/odata/{owner}/{name}": {
4595
+ parameters: {
4596
+ query?: never;
4597
+ header?: never;
4598
+ path?: never;
4599
+ cookie?: never;
4600
+ };
4601
+ /**
4602
+ * OData service document
4603
+ * @description The first thing a native connector fetches: which entity sets this feed offers. One entity
4604
+ * set per tabular resource in the package.
4605
+ *
4606
+ * Paste this URL into Excel's "From OData Feed" or Power BI's OData connector and the rest is
4607
+ * automatic — and the workbook refreshes itself afterwards, which is the whole reason this
4608
+ * exists next to the CSV address.
4609
+ */
4610
+ get: operations["odataServiceDocument"];
4611
+ put?: never;
4612
+ post?: never;
4613
+ delete?: never;
4614
+ options?: never;
4615
+ head?: never;
4616
+ patch?: never;
4617
+ trace?: never;
4618
+ };
4619
+ "/v1/odata/{owner}/{name}/$metadata": {
4620
+ parameters: {
4621
+ query?: never;
4622
+ header?: never;
4623
+ path?: never;
4624
+ cookie?: never;
4625
+ };
4626
+ /**
4627
+ * CSDL metadata (XML)
4628
+ * @description The CSDL v4 document, projected from the package's Table Schema — which is the ONE place
4629
+ * columns and types are declared, so the metadata cannot drift from the data.
4630
+ *
4631
+ * XML, not JSON: that is what a v4 metadata document is and what every native connector parses.
4632
+ * Types map Frictionless to EDM (string→Edm.String, integer→Edm.Int64, number→Edm.Double,
4633
+ * boolean→Edm.Boolean, date→Edm.Date, datetime→Edm.DateTimeOffset).
4634
+ *
4635
+ * Every entity gets a synthetic `RowId` key, because OData requires an entity key and a CSV row
4636
+ * has no identity of its own. It is the row's ordinal within the version, which is stable
4637
+ * precisely because the version is immutable. Every other property is nullable: a Table Schema's
4638
+ * `primaryKey` is the only statement anybody made about required-ness.
4639
+ */
4640
+ get: operations["odataMetadata"];
4641
+ put?: never;
4642
+ post?: never;
4643
+ delete?: never;
4644
+ options?: never;
4645
+ head?: never;
4646
+ patch?: never;
4647
+ trace?: never;
4648
+ };
4649
+ "/v1/odata/{owner}/{name}/{resource}": {
4650
+ parameters: {
4651
+ query?: never;
4652
+ header?: never;
4653
+ path?: never;
4654
+ cookie?: never;
4655
+ };
4656
+ /**
4657
+ * An entity set — the rows
4658
+ * @description The rows of one resource, with the readable subset of the OData query language applied.
4659
+ *
4660
+ * SUPPORTED: `$select`, `$top`, `$skip`, `$filter`, `$orderby`, `$count`, `$format`.
4661
+ * `$filter` reads `field eq|ne|gt|ge|lt|le value` clauses joined by `and`, plus
4662
+ * `contains()`, `startswith()` and `endswith()`.
4663
+ *
4664
+ * ANYTHING ELSE IS REFUSED, NEVER IGNORED — 501 for a construct this feed does not implement
4665
+ * (`$expand`, `$apply`, `$search`, `or`, `not`), 400 for a property that does not exist. That
4666
+ * is the design decision worth knowing: a server that ignores a query option returns MORE ROWS
4667
+ * THAN THE CLIENT ASKED FOR, and the client puts them in a report as the answer. There is no
4668
+ * symptom — the numbers are simply wrong. A visibly missing feature is cheap by comparison.
4669
+ *
4670
+ * `$count=true` reports what the FILTER matched, before `$top`/`$skip`, which is what the option
4671
+ * means and what a paging client needs.
4672
+ */
4673
+ get: operations["odataEntitySet"];
4674
+ put?: never;
4675
+ post?: never;
4676
+ delete?: never;
4677
+ options?: never;
4678
+ head?: never;
4679
+ patch?: never;
4680
+ trace?: never;
4681
+ };
4287
4682
  "/v1/storage": {
4288
4683
  parameters: {
4289
4684
  query?: never;
@@ -4345,7 +4740,12 @@ export interface paths {
4345
4740
  get: operations["downloadFile"];
4346
4741
  put?: never;
4347
4742
  post?: never;
4348
- /** Delete file */
4743
+ /**
4744
+ * Delete file
4745
+ * @description Removes one file from the CALLER's own namespace. Irreversible: a stored file has no version history behind it the way a memory record does.
4746
+ *
4747
+ * Scope: own namespace only. Files are keyed by (owner, key), so a file someone else owns answers 404 here even when the caller is allowed to READ it through `GET /v1/pub/{gaii}/{key}`. There is deliberately no cross-owner delete.
4748
+ */
4349
4749
  delete: operations["deleteFile"];
4350
4750
  options?: never;
4351
4751
  /** File metadata */
@@ -4728,13 +5128,7 @@ export interface paths {
4728
5128
  path?: never;
4729
5129
  cookie?: never;
4730
5130
  };
4731
- /**
4732
- * Accept work re-delivery via OTK (Tier 0.5)
4733
- * @description Requester accepts re-delivery of disputed work using a one-time key supplied as the `otk`
4734
- * query parameter (no bearer auth). Settles payment and resolves the dispute. The OTK owner
4735
- * must be the requester on the work.
4736
- */
4737
- get: operations["getWorkAcceptRedelivery"];
5131
+ get?: never;
4738
5132
  put?: never;
4739
5133
  /** Requester accepts re-delivery */
4740
5134
  post: operations["acceptRedelivery"];
@@ -4802,12 +5196,7 @@ export interface paths {
4802
5196
  path?: never;
4803
5197
  cookie?: never;
4804
5198
  };
4805
- /**
4806
- * Escalate a work dispute via OTK (Tier 0.5)
4807
- * @description Escalates a disputed work item to an operator using a one-time key supplied as the `otk`
4808
- * query parameter (no bearer auth). Appends a hash-chained audit entry to the dispute.
4809
- */
4810
- get: operations["getWorkEscalate"];
5199
+ get?: never;
4811
5200
  put?: never;
4812
5201
  /** Escalate to operator */
4813
5202
  post: operations["escalateDispute"];
@@ -5579,7 +5968,7 @@ export interface paths {
5579
5968
  };
5580
5969
  /**
5581
5970
  * Site map for agents (markdown)
5582
- * @description One-page map of the node in markdown: the public pages (from the shared public-page registry), the agent documentation (llms.txt, AGENTS.md, the OpenAPI contract, the app building prompt) and the machine-readable discovery endpoints, each with a one-line description. The answer to "what is here and where do I start" that neither sitemap.xml nor the 145 kB llms.txt gives. Apex only — an app origin gets its own (404 until then).
5971
+ * @description One-page map of the node in markdown: the public pages (from the shared public-page registry), the agent documentation (llms.txt, AGENTS.md, the OpenAPI contract, the app building prompt) and the machine-readable discovery endpoints, each with a one-line description. The answer to "what is here and where do I start" that neither sitemap.xml nor the 124 kB llms-full.txt gives. Apex only — an app origin gets its own (404 until then).
5583
5972
  */
5584
5973
  get: operations["sitemapMd"];
5585
5974
  put?: never;
@@ -5599,7 +5988,7 @@ export interface paths {
5599
5988
  };
5600
5989
  /**
5601
5990
  * Orientation for a coding agent (AGENTS.md convention)
5602
- * @description Short markdown orientation for a coding agent that has met this node as a dependency or an integration target: what AIMEAT is, how to get an identity (RFC 8628 device flow), the identity/scope/morsel vocabulary needed before the first call, worked curl examples, the response-envelope and discovery-header conventions, and links to the full references. Deliberately short — llms.txt is the manual, this is the orientation. Also served at /agents.md. Apex only.
5991
+ * @description Short markdown orientation for a coding agent that has met this node as a dependency or an integration target: what AIMEAT is, how to get an identity (RFC 8628 device flow), the identity/scope/morsel vocabulary needed before the first call, worked curl examples, the response-envelope and discovery-header conventions, and links to the full references. Deliberately short — llms-full.txt is the manual, this is the orientation. Also served at /agents.md. Apex only.
5603
5992
  */
5604
5993
  get: operations["agentsMd"];
5605
5994
  put?: never;
@@ -5618,8 +6007,8 @@ export interface paths {
5618
6007
  cookie?: never;
5619
6008
  };
5620
6009
  /**
5621
- * Full builder's manual for AI agents (llmstxt.org)
5622
- * @description The node's complete agent-facing manual: starter templates, the SDK library and library-pack tables (generated from the library-pack registry, so they cannot drift from /v1/libs), core concepts, the device-authorization and MCP connection flows, the response envelope, and the endpoint reference. Opens with a blockquote summary and link-list sections pointing at the site map, AGENTS.md, the OpenAPI contract and the discovery endpoints. On an app origin this path serves THAT app's agent face instead.
6010
+ * Curated index of this node for AI readers (llmstxt.org)
6011
+ * @description The node's curated map, under 8 kB: an H1, a blockquote summary whose first sentence names the full manual at /llms-full.txt, then link-list sections for the documentation, the machine-readable discovery endpoints, the human pages (generated from the shared public-page registry) and an Optional section a reader can skip for a shorter context. This is the first fetch; /llms-full.txt is the manual behind it. On an app origin this path serves THAT app's agent face instead.
5623
6012
  */
5624
6013
  get: operations["llmsTxt"];
5625
6014
  put?: never;
@@ -5638,8 +6027,8 @@ export interface paths {
5638
6027
  cookie?: never;
5639
6028
  };
5640
6029
  /**
5641
- * Full builder's manual at the conventional full-content path
5642
- * @description Byte-for-byte the same document as /llms.txt. The llmstxt.org convention splits a link index from the full content; this node's llms.txt has always BEEN the full content, and every published skill, the app-building prompt and robots.txt point at that exact path, so the index moved into the manual rather than the manual moving out from under its readers. Apex only.
6030
+ * Full builder's manual for AI agents (llmstxt.org full content)
6031
+ * @description The node's complete agent-facing manual: starter templates, the SDK library and library-pack tables (generated from the library-pack registry, so they cannot drift from /v1/libs), core concepts, the device-authorization and MCP connection flows, the response envelope, and the endpoint reference. /llms.txt is the curated index over this document, and this is what it points at. Apex only.
5643
6032
  */
5644
6033
  get: operations["llmsFullTxt"];
5645
6034
  put?: never;
@@ -6731,6 +7120,26 @@ export interface paths {
6731
7120
  patch?: never;
6732
7121
  trace?: never;
6733
7122
  };
7123
+ "/v1/admin/roles/revoke": {
7124
+ parameters: {
7125
+ query?: never;
7126
+ header?: never;
7127
+ path?: never;
7128
+ cookie?: never;
7129
+ };
7130
+ get?: never;
7131
+ put?: never;
7132
+ /**
7133
+ * Revoke operator role
7134
+ * @description Removes the operator role from an owner. Operator only. Refuses to revoke the caller's own role and refuses to remove the last operator on the node.
7135
+ */
7136
+ post: operations["revokeRole"];
7137
+ delete?: never;
7138
+ options?: never;
7139
+ head?: never;
7140
+ patch?: never;
7141
+ trace?: never;
7142
+ };
6734
7143
  "/v1/help/prompt": {
6735
7144
  parameters: {
6736
7145
  query?: never;
@@ -6908,6 +7317,43 @@ export interface paths {
6908
7317
  patch?: never;
6909
7318
  trace?: never;
6910
7319
  };
7320
+ "/v1/admin/organisms/{id}/ownership": {
7321
+ parameters: {
7322
+ query?: never;
7323
+ header?: never;
7324
+ path?: never;
7325
+ cookie?: never;
7326
+ };
7327
+ /**
7328
+ * Read an organism's ownership state (operator)
7329
+ * @description Who holds this organism and who else is in it. Read this before writing: installing an owner
7330
+ * is a cross-account act, so the roster it re-points should be seen first.
7331
+ *
7332
+ * Reserved to the node operator. An operator's agent also needs the exact scope
7333
+ * `operator:organism-repair`, which no wildcard carries.
7334
+ */
7335
+ get: operations["adminGetOrganismOwnership"];
7336
+ put?: never;
7337
+ /**
7338
+ * Install an owner on an organism (operator break-glass)
7339
+ * @description Makes `ghii` the organism's creator. The previous creator stays on as an admin, and a target
7340
+ * who is not yet a member is seated as one, because the repair case is the organism whose
7341
+ * reachable people are outside it. A blocked target is refused: lifting a block is its own act.
7342
+ *
7343
+ * This exists because ownership had no repair path. An admin cannot remove, demote or replace a
7344
+ * creator, and only the creator can hand the organism on or delete it, so a handover to an
7345
+ * account that later became unreachable was permanent.
7346
+ *
7347
+ * Reserved to the node operator. An operator's agent also needs the exact scope
7348
+ * `operator:organism-repair`, which no wildcard carries and nobody was grandfathered onto.
7349
+ */
7350
+ post: operations["adminInstallOrganismOwner"];
7351
+ delete?: never;
7352
+ options?: never;
7353
+ head?: never;
7354
+ patch?: never;
7355
+ trace?: never;
7356
+ };
6911
7357
  "/v1/admin/ghii/{ghii}/cors": {
6912
7358
  parameters: {
6913
7359
  query?: never;
@@ -7471,6 +7917,15 @@ export interface paths {
7471
7917
  * session, so that grant is the whole check it makes; a gated app requested there without one
7472
7918
  * answers the same `404` an unmapped subdomain does. Ungated apps keep the plain `301`.
7473
7919
  *
7920
+ * Since 2026-08-15 that `404` has a door in it for people, because the app origin is the
7921
+ * address they hold: a **browser** (`Accept: text/html`) meeting a **code**-gated app there
7922
+ * with no usable grant is sent back here with `302 …?mode=inline&unlock=1`, which is the code
7923
+ * form below. Following it and typing the code produces the grant redirect again, this time
7924
+ * carrying `unlock=1` alongside `access`, and the origin refuses a second bounce, so a grant
7925
+ * that will not verify there stops at one round trip instead of ping-ponging. Price-gated apps
7926
+ * and every non-browser caller keep the uniform `404`: no form can supply the `Bearer` a paid
7927
+ * app needs.
7928
+ *
7474
7929
  * **Agent Face (markdown for agents):** a request that prefers `text/markdown` (`Accept`
7475
7930
  * negotiation, or an explicit `?format=md`) receives the app's markdown read-surface instead
7476
7931
  * of HTML: the app's **public** `apps.{filename}.agentface` memory record (a markdown string,
@@ -7683,6 +8138,149 @@ export interface paths {
7683
8138
  patch?: never;
7684
8139
  trace?: never;
7685
8140
  };
8141
+ "/v1/apps/{owner}/{filename}/screenshot/capture": {
8142
+ parameters: {
8143
+ query?: never;
8144
+ header?: never;
8145
+ path?: never;
8146
+ cookie?: never;
8147
+ };
8148
+ get?: never;
8149
+ put?: never;
8150
+ /**
8151
+ * Render the published app now and store the screenshot
8152
+ * @description Renders `{owner}/{filename}` in a real headless browser at 1200x750, stores the JPEG, and
8153
+ * returns the URL of `GET .../screenshot`. The sibling `POST .../screenshot` accepts a picture
8154
+ * the caller already has; this one takes it.
8155
+ *
8156
+ * Until this existed the node had no request path that rendered, deliberately: rendering is the
8157
+ * most expensive thing it does, and an open one is a denial-of-service shape. It exists because
8158
+ * a caller that has just published an app otherwise cannot see what it made. The publish
8159
+ * response says the bytes arrived, not that the page works, and a blank screen, a broken layout
8160
+ * or a script that never ran all answer 200.
8161
+ *
8162
+ * The screenshot URL needs no authentication, which is what makes it usable as a model input:
8163
+ * an address a provider can fetch, rather than bytes to carry.
8164
+ *
8165
+ * Owner or operator only, and throttled per owner. Only published apps can be rendered; a draft
8166
+ * has no public page.
8167
+ */
8168
+ post: operations["captureAppScreenshot"];
8169
+ delete?: never;
8170
+ options?: never;
8171
+ head?: never;
8172
+ patch?: never;
8173
+ trace?: never;
8174
+ };
8175
+ "/v1/apps/{owner}/{filename}/draft/write": {
8176
+ parameters: {
8177
+ query?: never;
8178
+ header?: never;
8179
+ path?: never;
8180
+ cookie?: never;
8181
+ };
8182
+ get?: never;
8183
+ put?: never;
8184
+ /**
8185
+ * Append to, or replace, the app's draft
8186
+ * @description Writes a PIECE of the draft. `PUT .../draft` takes the whole app base64-encoded in one
8187
+ * request, which suits a client that already has the file and is impossible for a caller
8188
+ * composing one: no model emits 400 kB in a single response. Call this repeatedly with
8189
+ * `mode: append` until the file is complete, then publish the draft.
8190
+ *
8191
+ * Content is plain UTF-8 text, not base64. The caller is composing HTML rather than moving a
8192
+ * file, and base64 would inflate the body by a third for nothing.
8193
+ *
8194
+ * The size ceiling is checked before anything is written, so a chunk that would push the draft
8195
+ * past the node's app size limit leaves the previous content intact instead of truncating it.
8196
+ * Pass `expected_size_bytes` while building across many calls to be refused, rather than
8197
+ * silently duplicating a chunk, if the draft moved underneath you.
8198
+ */
8199
+ post: operations["writeAppDraft"];
8200
+ delete?: never;
8201
+ options?: never;
8202
+ head?: never;
8203
+ patch?: never;
8204
+ trace?: never;
8205
+ };
8206
+ "/v1/apps/{owner}/{filename}/draft/replace": {
8207
+ parameters: {
8208
+ query?: never;
8209
+ header?: never;
8210
+ path?: never;
8211
+ cookie?: never;
8212
+ };
8213
+ get?: never;
8214
+ put?: never;
8215
+ /**
8216
+ * Replace an exact passage inside the app's draft
8217
+ * @description The editing counterpart to `.../draft/write`: change part of a draft without sending the
8218
+ * whole file. `old_string` must match exactly, including indentation and line breaks.
8219
+ *
8220
+ * Without `replace_all` the match must be unique. Both refusals carry the actual number of
8221
+ * occurrences, because the caller's next move differs between none and several: none means the
8222
+ * text is not there at all, and several means the surrounding context has to be widened until
8223
+ * the target is unambiguous.
8224
+ */
8225
+ post: operations["replaceInAppDraft"];
8226
+ delete?: never;
8227
+ options?: never;
8228
+ head?: never;
8229
+ patch?: never;
8230
+ trace?: never;
8231
+ };
8232
+ "/v1/apps/{owner}/{filename}/draft/lines": {
8233
+ parameters: {
8234
+ query?: never;
8235
+ header?: never;
8236
+ path?: never;
8237
+ cookie?: never;
8238
+ };
8239
+ /**
8240
+ * Read a line range of the app's draft
8241
+ * @description Returns a slice of the draft as text, plus the total line count and byte size. `GET
8242
+ * .../draft` returns the WHOLE slot base64-encoded, which is right for a client restoring its
8243
+ * working copy and wrong for a caller that wants the twenty lines it is about to change.
8244
+ *
8245
+ * Bounded twice: a request with no range returns the first page with `has_more` set rather than
8246
+ * the whole app, and a slice that would exceed the character ceiling is cut at a line boundary
8247
+ * with the same flag. A caller therefore never aims a replacement at text it only half received.
8248
+ */
8249
+ get: operations["readAppDraftLines"];
8250
+ put?: never;
8251
+ post?: never;
8252
+ delete?: never;
8253
+ options?: never;
8254
+ head?: never;
8255
+ patch?: never;
8256
+ trace?: never;
8257
+ };
8258
+ "/v1/apps/{owner}/{filename}/draft/seed": {
8259
+ parameters: {
8260
+ query?: never;
8261
+ header?: never;
8262
+ path?: never;
8263
+ cookie?: never;
8264
+ };
8265
+ get?: never;
8266
+ put?: never;
8267
+ /**
8268
+ * Copy a published version into the app's draft slot
8269
+ * @description Loads a published version's source into the draft, server-side, so an app that is already
8270
+ * live can be continued. Without it there is nothing to edit: the app read routes serve the
8271
+ * bytes for download, and every draft write path has always taken its bytes from the caller.
8272
+ *
8273
+ * Seeding under a different `{filename}` copies the app, manifest and all. The source manifest
8274
+ * is the base, so the copy keeps the original name and category rather than inheriting from
8275
+ * whatever happens to live at the destination name.
8276
+ */
8277
+ post: operations["seedAppDraft"];
8278
+ delete?: never;
8279
+ options?: never;
8280
+ head?: never;
8281
+ patch?: never;
8282
+ trace?: never;
8283
+ };
7686
8284
  "/v1/apps/{owner}/{filename}/draft/preview-token": {
7687
8285
  parameters: {
7688
8286
  query?: never;
@@ -9135,6 +9733,8 @@ export interface paths {
9135
9733
  * @description Create a new organism (club, team, community, or project).
9136
9734
  * The creator automatically becomes the admin member.
9137
9735
  * A notification board is created automatically for the organism.
9736
+ * An owner session passes on being the account holder; every other principal (agent,
9737
+ * ecosystem app, published app) needs the `organism:write` scope.
9138
9738
  */
9139
9739
  post: operations["createOrganism"];
9140
9740
  delete?: never;
@@ -9553,9 +10153,10 @@ export interface paths {
9553
10153
  put?: never;
9554
10154
  /**
9555
10155
  * Create a workspace in an organism
9556
- * @description Provision a new workspace under an organism. Requires the `agent` role or the
9557
- * `organism:write` scope, and the caller must be an active member. Optional `manifest`,
9558
- * `schemas`, and `readme` shape the workspace's object types and content.
10156
+ * @description Provision a new workspace under an organism. The caller must be an active member. An owner
10157
+ * session passes on being the account holder; every other principal (agent, ecosystem app,
10158
+ * published app) needs the `organism:write` scope. Optional `manifest`, `schemas`, and `readme`
10159
+ * shape the workspace's object types and content.
9559
10160
  */
9560
10161
  post: operations["createOrganismWorkspace"];
9561
10162
  delete?: never;
@@ -12237,6 +12838,46 @@ export interface paths {
12237
12838
  patch?: never;
12238
12839
  trace?: never;
12239
12840
  };
12841
+ "/v1/organisms/{id}/owners": {
12842
+ parameters: {
12843
+ query?: never;
12844
+ header?: never;
12845
+ path?: never;
12846
+ cookie?: never;
12847
+ };
12848
+ get?: never;
12849
+ put?: never;
12850
+ /**
12851
+ * Add an owner
12852
+ * @description Make an existing active member a co-owner. Additive: the caller keeps everything, which is the point — ownership used to move in one irreversible step, so an organism whose single owner became unreachable could not be recovered by anyone, and bringing in a second pair of hands cost the first pair everything. Owner only. A blocked target is refused (MEMBER_BANNED); a target who already owns it is ALREADY_OWNER.
12853
+ */
12854
+ post: operations["addOrganismOwner"];
12855
+ delete?: never;
12856
+ options?: never;
12857
+ head?: never;
12858
+ patch?: never;
12859
+ trace?: never;
12860
+ };
12861
+ "/v1/organisms/{id}/owners/{ghii}": {
12862
+ parameters: {
12863
+ query?: never;
12864
+ header?: never;
12865
+ path?: never;
12866
+ cookie?: never;
12867
+ };
12868
+ get?: never;
12869
+ put?: never;
12870
+ post?: never;
12871
+ /**
12872
+ * Remove an owner
12873
+ * @description Take an owner off the organism; they stay on as an admin. Owner only, and any owner may remove any other. The LAST owner cannot be removed (LAST_OWNER) — an organism with no owner is the one state nobody inside it can repair. To leave entirely, remove yourself as an owner first and then use the leave route.
12874
+ */
12875
+ delete: operations["removeOrganismOwner"];
12876
+ options?: never;
12877
+ head?: never;
12878
+ patch?: never;
12879
+ trace?: never;
12880
+ };
12240
12881
  "/v1/organisms/{id}/transfer": {
12241
12882
  parameters: {
12242
12883
  query?: never;
@@ -12248,7 +12889,7 @@ export interface paths {
12248
12889
  put?: never;
12249
12890
  /**
12250
12891
  * Transfer organism ownership
12251
- * @description The current creator hands the organism to an existing active member; the target becomes creator and the previous creator is demoted to admin. Creator only.
12892
+ * @description Hand the organism to an existing active member in one call: the target is added as an owner and the caller stops being one, staying on as an admin. Owner only. This is POST /v1/organisms/{id}/owners followed by DELETE /v1/organisms/{id}/owners/{caller}, and doing it in those two steps is preferable — the state in between is legal, so it can be looked at before the second step. Kept because clients depend on it; the response carries `owners` alongside the older `creator`/`previousCreator` fields.
12252
12893
  */
12253
12894
  post: operations["transferOrganismOwnership"];
12254
12895
  delete?: never;
@@ -12589,7 +13230,8 @@ export interface paths {
12589
13230
  * instance_id. Optionally anchored to part of a document (`anchor` = { section } or { quote }),
12590
13231
  * general (no anchor), or a threaded reply (`parent_id`). Comments are memory-backed under the
12591
13232
  * workspace meta namespace (excluded from workspace read + content search). Any active member
12592
- * or organism agent may comment.
13233
+ * or organism agent may comment. An owner session passes on being the account holder; every
13234
+ * other principal (agent, ecosystem app, published app) needs the `organism:write` scope.
12593
13235
  */
12594
13236
  post: operations["addOrganismComment"];
12595
13237
  delete?: never;
@@ -13688,7 +14330,12 @@ export interface paths {
13688
14330
  };
13689
14331
  /** Get capability detail with schemas, examples, exports, dependencies */
13690
14332
  get: operations["capabilityGet"];
13691
- /** Update own capability */
14333
+ /**
14334
+ * Update own capability
14335
+ * @description Patches the fields the owner controls. The fields the node writes about the record are dropped from the body if they are sent: trust, stats, operatorOverride, rejectionReason, schemaHash, scope, id, ownerGhii, createdAt and updatedAt. trust is the node operator's review and the vouch count, so it is never the owner's to claim; stats counts invocations that really happened. The response carries the stored record, which shows what took.
14336
+ *
14337
+ * Changing the webhook asks the node's webhook policy the same question POST asks, and is refused with the same three answers: 403 WEBHOOKS_DISABLED, 403 WEBHOOK_DOMAIN_NOT_ALLOWED or 400 INVALID_WEBHOOK_URL. It is asked on a CHANGE of the address the node would call, so sending the whole record back with webhookUrl untouched is accepted whatever the policy, and clearing it is always accepted.
14338
+ */
13692
14339
  put: operations["capabilityUpdate"];
13693
14340
  post?: never;
13694
14341
  /** Delete own manual capability */
@@ -14159,7 +14806,8 @@ export interface paths {
14159
14806
  };
14160
14807
  /**
14161
14808
  * Get task detail
14162
- * @description Get full task detail including all events and TODO items.
14809
+ * @description Full task detail: TODO items, attachments as presigned handles authorized for this reader, and once the task has finished — `outcome`: what it actually produced.
14810
+ * `outcome` carries the agent's own completion message and the address of the deliverable it published. It is absent while the task is still running, because an unfinished task has no outcome and an empty one would read as "finished with nothing". Before this, a completed task answered with `status: "done"` and nothing else: the completion message lived only on the terminal event and the deliverable pointer was stored but never returned, so a caller had to already know that a second, differently-shaped endpoint existed in order to find out what happened. The deliverable comes back as an ADDRESS rather than as content, because an output may be megabytes.
14163
14811
  */
14164
14812
  get: operations["getAgentTask"];
14165
14813
  put?: never;
@@ -14244,6 +14892,26 @@ export interface paths {
14244
14892
  patch?: never;
14245
14893
  trace?: never;
14246
14894
  };
14895
+ "/v1/agents/{name}/tasks/{id}/queue": {
14896
+ parameters: {
14897
+ query?: never;
14898
+ header?: never;
14899
+ path?: never;
14900
+ cookie?: never;
14901
+ };
14902
+ get?: never;
14903
+ put?: never;
14904
+ /**
14905
+ * Release a draft task to the agent
14906
+ * @description Move a draft task to queued, which is the point at which the agent it is for can see it. Owner, or a same-owner app holding task:write. When the target agent's mode is task-runner the task goes straight to active, exactly as it would have at create time, and the response says so in auto_activated.
14907
+ */
14908
+ post: operations["queueAgentTask"];
14909
+ delete?: never;
14910
+ options?: never;
14911
+ head?: never;
14912
+ patch?: never;
14913
+ trace?: never;
14914
+ };
14247
14915
  "/v1/agents/{name}/tasks/{id}/start": {
14248
14916
  parameters: {
14249
14917
  query?: never;
@@ -15794,6 +16462,160 @@ export interface paths {
15794
16462
  patch: operations["updateSharingGroupMember"];
15795
16463
  trace?: never;
15796
16464
  };
16465
+ "/v1/usage/reports": {
16466
+ parameters: {
16467
+ query?: never;
16468
+ header?: never;
16469
+ path?: never;
16470
+ cookie?: never;
16471
+ };
16472
+ /**
16473
+ * Which usage reports this node can answer, for the calling owner
16474
+ * @description The menu for GET /v1/usage/summary. Cheap and static, so a client (or an agent) never has to guess a report name. Behind the same wallet:read scope as the summary itself.
16475
+ */
16476
+ get: operations["usageReports"];
16477
+ put?: never;
16478
+ post?: never;
16479
+ delete?: never;
16480
+ options?: never;
16481
+ head?: never;
16482
+ patch?: never;
16483
+ trace?: never;
16484
+ };
16485
+ "/v1/usage/summary": {
16486
+ parameters: {
16487
+ query?: never;
16488
+ header?: never;
16489
+ path?: never;
16490
+ cookie?: never;
16491
+ };
16492
+ /**
16493
+ * One usage report over a date window, for the calling owner only
16494
+ * @description Reads the precomputed serving layer, never a raw table, so the cost of an answer does not grow with the node traffic. Always scoped to the owner behind the session: there is no parameter on this endpoint that can name another owner. The computed_through field in the response states how fresh the precomputed layer is. Requires the wallet:read scope for agent, ecosystem and app-grant sessions (owner sessions bypass scopes): a usage report is the owner's whole spend and activity history, which is the same sensitivity class as their balance.
16495
+ */
16496
+ get: operations["usageSummary"];
16497
+ put?: never;
16498
+ post?: never;
16499
+ delete?: never;
16500
+ options?: never;
16501
+ head?: never;
16502
+ patch?: never;
16503
+ trace?: never;
16504
+ };
16505
+ "/v1/admin/usage/summary": {
16506
+ parameters: {
16507
+ query?: never;
16508
+ header?: never;
16509
+ path?: never;
16510
+ cookie?: never;
16511
+ };
16512
+ /**
16513
+ * Cross-owner usage reports, or one named owner slice (operator only)
16514
+ * @description The same precomputed layer as GET /v1/usage/summary, without the owner scope. Pass owner to read one person numbers; omit it for the node. Operator role required on every shape.
16515
+ */
16516
+ get: operations["adminUsageSummary"];
16517
+ put?: never;
16518
+ post?: never;
16519
+ delete?: never;
16520
+ options?: never;
16521
+ head?: never;
16522
+ patch?: never;
16523
+ trace?: never;
16524
+ };
16525
+ "/v1/admin/usage/reports": {
16526
+ parameters: {
16527
+ query?: never;
16528
+ header?: never;
16529
+ path?: never;
16530
+ cookie?: never;
16531
+ };
16532
+ /** Which usage reports exist in each scope (operator only) */
16533
+ get: operations["adminUsageReports"];
16534
+ put?: never;
16535
+ post?: never;
16536
+ delete?: never;
16537
+ options?: never;
16538
+ head?: never;
16539
+ patch?: never;
16540
+ trace?: never;
16541
+ };
16542
+ "/v1/admin/usage/calls": {
16543
+ parameters: {
16544
+ query?: never;
16545
+ header?: never;
16546
+ path?: never;
16547
+ cookie?: never;
16548
+ };
16549
+ /**
16550
+ * Raw usage-call rows behind the reports (operator only, audited)
16551
+ * @description The operator carries liability for what happens on this node, so anything that can become a legal matter has to be reachable at the call level. The counterweight is that looking is itself recorded: this endpoint writes a usage call of its own (surface operator, the inspected owner as the counterparty), which then appears in the ordinary reports. Only the hot window is served; older rows live in the archive.
16552
+ */
16553
+ get: operations["adminUsageCalls"];
16554
+ put?: never;
16555
+ post?: never;
16556
+ delete?: never;
16557
+ options?: never;
16558
+ head?: never;
16559
+ patch?: never;
16560
+ trace?: never;
16561
+ };
16562
+ "/v1/admin/usage/status": {
16563
+ parameters: {
16564
+ query?: never;
16565
+ header?: never;
16566
+ path?: never;
16567
+ cookie?: never;
16568
+ };
16569
+ /** How fresh the precomputed usage layer is, and its retention windows (operator only) */
16570
+ get: operations["adminUsageStatus"];
16571
+ put?: never;
16572
+ post?: never;
16573
+ delete?: never;
16574
+ options?: never;
16575
+ head?: never;
16576
+ patch?: never;
16577
+ trace?: never;
16578
+ };
16579
+ "/v1/admin/usage/rollup/rebuild": {
16580
+ parameters: {
16581
+ query?: never;
16582
+ header?: never;
16583
+ path?: never;
16584
+ cookie?: never;
16585
+ };
16586
+ get?: never;
16587
+ put?: never;
16588
+ /**
16589
+ * Clear a bucket range and recompute it from raw (operator only)
16590
+ * @description Needed after a new report cut is declared, whose history would otherwise be empty and read on a chart as never used. Clears the range before re-folding, because the fold adds. Refuses a from older than the raw hot window rather than deleting rollups it could not refill.
16591
+ */
16592
+ post: operations["adminUsageRollupRebuild"];
16593
+ delete?: never;
16594
+ options?: never;
16595
+ head?: never;
16596
+ patch?: never;
16597
+ trace?: never;
16598
+ };
16599
+ "/v1/admin/usage/archive/prune": {
16600
+ parameters: {
16601
+ query?: never;
16602
+ header?: never;
16603
+ path?: never;
16604
+ cookie?: never;
16605
+ };
16606
+ get?: never;
16607
+ put?: never;
16608
+ /**
16609
+ * Permanently delete archived usage rows before a date (operator only)
16610
+ * @description Deliberately not a scheduled job. Archived rows are what answers a billing dispute or a legal question months later, so the date is required, is never defaulted, and confirm true is required alongside it.
16611
+ */
16612
+ post: operations["adminUsageArchivePrune"];
16613
+ delete?: never;
16614
+ options?: never;
16615
+ head?: never;
16616
+ patch?: never;
16617
+ trace?: never;
16618
+ };
15797
16619
  "/v1/admin/storage-stats": {
15798
16620
  parameters: {
15799
16621
  query?: never;
@@ -22701,20 +23523,91 @@ export interface components {
22701
23523
  };
22702
23524
  /** @description Max minutes to wait for this step's success signal before timed-out. Default 60 (agent/ecosystem steps) / 1440 (human-input steps). */
22703
23525
  timeout_min?: number;
22704
- /** @description Absent ⇒ the default agent-dispatch. `export-out` pushes a memory key to a GEAI; `trigger-geai` invokes a GEAI capability (both complete on the tunnel reply). `human-input` parks the run (step state `waiting-human`) and asks the owner a structured question (in-app inbox + push); the run resumes when the owner answers via POST /v1/workflows/{id}/runs/{runId}/steps/{stepId}/answer, or the `on_timeout` policy fires after timeout_min (default 1440 = 24h): fail (timed-out, default) | skip | default (synthesize the answer `default_option`, by "timeout-default"). The answer JSON ({picks, pick, other, answeredAt, by}) is written to `answer_to_key` (templated, sandbox-prefix-honoring) so downstream steps branch on it with deterministic json_field gates — e.g. required_to_function {op: json_field, key: <answer_to_key>, path: pick, equals: approve}. */
23526
+ /** @description Absent ⇒ the default agent-dispatch. `export-out` pushes a memory key to a GEAI; `trigger-geai` invokes a GEAI capability (both complete on the tunnel reply). `human-input` parks the run (step state `waiting-human`) and asks the owner a structured question (in-app inbox + push); the run resumes when the owner answers via POST /v1/workflows/{id}/runs/{runId}/steps/{stepId}/answer, or the `on_timeout` policy fires after timeout_min (default 1440 = 24h): fail (timed-out, default) | skip | default (synthesize the answer `default_option`, by "timeout-default"). The answer JSON ({picks, pick, other, answeredAt, by}) is written to `answer_to_key` (templated, sandbox-prefix-honoring) so downstream steps branch on it with deterministic json_field gates — e.g. required_to_function {op: json_field, key: <answer_to_key>, path: pick, equals: approve}. `extension` runs one of the OWNER'S OWN extension actions on this node, in the sandbox, with no agent session and no model call — the deterministic half of a pipeline (fetch, normalise, hash, write a file) next to the agent steps that interpret. It completes through the same path as an ecosystem step, so its `success_signal` decides green or red; a `success_signal` is REQUIRED on an extension step, because without one the step would go green whenever the script merely returned, whatever it produced. Naming an extension installed by anyone else is refused at save AND at run: an unattended call has no paywall, no contract and no meter, so it would be an unlimited standing call on someone else's capability, API keys and quota. */
22705
23527
  action?: {
22706
23528
  /** @enum {string} */
22707
- kind: "agent" | "export-out" | "trigger-geai" | "human-input";
23529
+ kind: "agent" | "export-out" | "trigger-geai" | "human-input" | "extension" | "datapackage";
22708
23530
  /** @description export-out / trigger-geai: the target GEAI. */
22709
23531
  geai?: string;
22710
23532
  /** @description trigger-geai (required) / export-out (default __deposit__). */
22711
23533
  capability?: string;
22712
23534
  /** @description export-out: owner memory key whose value is pushed. */
22713
23535
  from?: string;
22714
- /** @description trigger-geai: capability input. */
23536
+ /** @description trigger-geai: capability input. extension: the action's input, with `{var}` substituted into its string leaves at dispatch (numbers and booleans pass through unchanged). */
22715
23537
  input?: {
22716
23538
  [key: string]: unknown;
22717
23539
  };
23540
+ /** @description extension: the extension name — must be installed by this workflow's owner. */
23541
+ extension?: string;
23542
+ /** @description extension: the action id on that extension. */
23543
+ action?: string;
23544
+ /** @description extension: run against this named instance (its config, secrets decrypted, arrives as ctx.instance). */
23545
+ instance_id?: string;
23546
+ /** @description extension: owner-namespace key (templated, sandbox-prefix-honoring) the action's RETURN VALUE is written to, so a signal can gate on it — the analogue of `answer_to_key`. It is needed because an extension's own memory lives in the `ext:{name}` namespace while a workflow's signals read owner scope, and those never intersect: a signal pointed at what the extension wrote for itself can only read nothing. Absent `success_signal`, the default gate is that this key is non-empty. A step must declare one or the other. */
23547
+ result_to_key?: string;
23548
+ /** @description datapackage: the package name. It becomes part of the permanent address, so it is a name rather than a sentence. */
23549
+ name?: string;
23550
+ /** @description datapackage: the owner-namespace key an earlier step wrote (its `result_to_key`), {var}-templated. This is the join a repeating package needs and the one no other component can make: an extension step lands its result in the owner's namespace as a PRIVATE record, which the sandbox cannot read back (ctx.memory.get sees `ext:{name}`, getPublic returns only public records). The engine already runs as the owner and already wrote that key. */
23551
+ from_key?: string;
23552
+ /** @description datapackage: dotted path to the rows INSIDE that value. A producer answers with an envelope (`{ ok, total, results }`) far more often than with a bare array, so naming the path is how a workflow says which part of the answer is the table. Omit when the value is the array itself. */
23553
+ rows_at?: string;
23554
+ /** @description extension: call the action repeatedly and merge the pages. Real registries page — `laake-fi` caps at 500 rows on a set of 718, so one call answers `truncated: true` and a package built from it holds five-sevenths of the data with nothing saying so. The merged value keeps the LAST page's envelope with `items_at` replaced by every row collected, plus `pagesFetched` and `complete`. `complete` is false when the loop stopped at `max_pages` rather than at the end of the data, which is what makes "did we get all of it" something a success_signal can assert. */
23555
+ paging?: {
23556
+ /** @description Input field carrying the offset; set on each call. */
23557
+ offset_param: string;
23558
+ /** @description Rows per page, and the increment. */
23559
+ page_size: number;
23560
+ /** @description Dotted path to a page's rows. */
23561
+ items_at: string;
23562
+ /** @description Dotted path to the reported total. Absent = stop on a short page. */
23563
+ total_at?: string;
23564
+ /** @description Hard stop. Required: a producer that never reports completion must not loop forever. */
23565
+ max_pages: number;
23566
+ };
23567
+ /** @description extension: call the action once per value and merge the answers — the other shape a real producer has. `kumppani` answers about ONE company per call, so a package covering ten companies is ten calls. Paging varies an offset over one query; this varies a parameter over a list. Both merge `items_at` and both add `complete`. A call that fails fails the STEP: ten companies of which one could not be read is not a package about ten companies. */
23568
+ for_each?: {
23569
+ /** @description The values to iterate; each is {var}-templated. */
23570
+ values: string[];
23571
+ /** @description Input field each value is set on. */
23572
+ param: string;
23573
+ /** @description Dotted path to the rows in ONE answer. */
23574
+ items_at: string;
23575
+ };
23576
+ /** @description datapackage: several lists in one answer, published as ONE table with a discriminator. `aiuutiset` answers with topics, actors and sources — the same numbers under a differently-named label each — and `rows_at` names exactly one path, so without this such a producer could only publish a third of what it knows. Each source gets its own `columns` (that is what reconciles topic/actor/source into one `name`) and its own `set` of constant columns (that is the discriminator). When `union` is present the top-level `rows_at` and `columns` are not used. */
23577
+ union?: {
23578
+ rows_at: string;
23579
+ columns?: {
23580
+ [key: string]: string;
23581
+ };
23582
+ /** @description Constant columns added to every row from this source. */
23583
+ set?: {
23584
+ [key: string]: string;
23585
+ };
23586
+ }[];
23587
+ /** @description datapackage: column name to a dotted path INSIDE each row. Omit to publish the rows as they are. A Table Schema describes scalars and a real producer answers with nested objects (`buyer: { name, businessId }`) and arrays, so this is the transformation these bindings actually need — the first production run of one refused 200 row problems for exactly that reason. It is a mapping rather than a script on purpose: flattening is declarative and lands in the descriptor as a recorded transformation, where a scripting language in a workflow descriptor would be a sandbox with no boundary. A missing path yields null rather than dropping the column, so a row that lost a field is a visible gap instead of a silently different table; an array at the end of a path is joined with a semicolon. */
23588
+ columns?: {
23589
+ [key: string]: string;
23590
+ };
23591
+ /** @description datapackage: what moved against the previous version and why, {var}-templated. Required, and required at SAVE as well as at publish — a workflow that discovers the contract at 06:00 has already lost the run it was written for. */
23592
+ changes?: string;
23593
+ /** @description datapackage: the Table Schema the rows must satisfy. Omitting it INFERS from the rows, and for a repeating producer that is the wrong default even though it is the convenient one: inference widens to fit whatever arrived, so a run where the upstream sent a word instead of a number publishes a version whose column is quietly a string, and every consumer's join against it stops matching with no error anywhere. Declared, the same run is refused with the row and the field named, and the package stands on its previous version. */
23594
+ schema?: {
23595
+ fields?: {
23596
+ name: string;
23597
+ type: string;
23598
+ }[];
23599
+ };
23600
+ /** @description datapackage: resource name, default `rows`. */
23601
+ resource?: string;
23602
+ /** @description datapackage: sources, licence, legal basis and transformations, carried into the descriptor. */
23603
+ provenance?: {
23604
+ [key: string]: unknown;
23605
+ };
23606
+ /** @description datapackage: how many old versions to keep. */
23607
+ retention_policy?: {
23608
+ keep?: number;
23609
+ unit?: string;
23610
+ };
22718
23611
  /** @description human-input: the structured question (AskUserQuestion-shaped). */
22719
23612
  question?: {
22720
23613
  header?: string;
@@ -25504,6 +26397,174 @@ export interface operations {
25504
26397
  404: components["responses"]["NotFound"];
25505
26398
  };
25506
26399
  };
26400
+ getChatStatus: {
26401
+ parameters: {
26402
+ query?: never;
26403
+ header?: never;
26404
+ path?: never;
26405
+ cookie?: never;
26406
+ };
26407
+ requestBody?: never;
26408
+ responses: {
26409
+ /**
26410
+ * @description `{ enabled, agent_name, allowance_remaining_usd, has_own_key, note? }`. `note` is present
26411
+ * only when `enabled` is false, and names what an operator has to set.
26412
+ */
26413
+ 200: {
26414
+ headers: {
26415
+ [name: string]: unknown;
26416
+ };
26417
+ content?: never;
26418
+ };
26419
+ 401: components["responses"]["Unauthorized"];
26420
+ 403: components["responses"]["Forbidden"];
26421
+ };
26422
+ };
26423
+ listChatThreads: {
26424
+ parameters: {
26425
+ query?: never;
26426
+ header?: never;
26427
+ path?: never;
26428
+ cookie?: never;
26429
+ };
26430
+ requestBody?: never;
26431
+ responses: {
26432
+ /** @description `{ threads: [{ id, title, created_at, updated_at, turns }] }` */
26433
+ 200: {
26434
+ headers: {
26435
+ [name: string]: unknown;
26436
+ };
26437
+ content?: never;
26438
+ };
26439
+ 401: components["responses"]["Unauthorized"];
26440
+ 403: components["responses"]["Forbidden"];
26441
+ };
26442
+ };
26443
+ createChatThread: {
26444
+ parameters: {
26445
+ query?: never;
26446
+ header?: never;
26447
+ path?: never;
26448
+ cookie?: never;
26449
+ };
26450
+ requestBody?: {
26451
+ content: {
26452
+ "application/json": {
26453
+ /** @description Optional title. Otherwise taken from the first message. */
26454
+ title?: string;
26455
+ };
26456
+ };
26457
+ };
26458
+ responses: {
26459
+ /** @description `{ thread: { id, title, createdAt, updatedAt, turns: [] } }` */
26460
+ 201: {
26461
+ headers: {
26462
+ [name: string]: unknown;
26463
+ };
26464
+ content?: never;
26465
+ };
26466
+ 401: components["responses"]["Unauthorized"];
26467
+ 403: components["responses"]["Forbidden"];
26468
+ };
26469
+ };
26470
+ getChatThread: {
26471
+ parameters: {
26472
+ query?: never;
26473
+ header?: never;
26474
+ path: {
26475
+ id: string;
26476
+ };
26477
+ cookie?: never;
26478
+ };
26479
+ requestBody?: never;
26480
+ responses: {
26481
+ /** @description `{ thread: { id, title, createdAt, updatedAt, gooseSessionId?, turns: [{ role, text, at, tools?, model? }] } }` */
26482
+ 200: {
26483
+ headers: {
26484
+ [name: string]: unknown;
26485
+ };
26486
+ content?: never;
26487
+ };
26488
+ 401: components["responses"]["Unauthorized"];
26489
+ 403: components["responses"]["Forbidden"];
26490
+ 404: components["responses"]["NotFound"];
26491
+ };
26492
+ };
26493
+ deleteChatThread: {
26494
+ parameters: {
26495
+ query?: never;
26496
+ header?: never;
26497
+ path: {
26498
+ id: string;
26499
+ };
26500
+ cookie?: never;
26501
+ };
26502
+ requestBody?: never;
26503
+ responses: {
26504
+ /** @description `{ deleted: true }` */
26505
+ 200: {
26506
+ headers: {
26507
+ [name: string]: unknown;
26508
+ };
26509
+ content?: never;
26510
+ };
26511
+ 401: components["responses"]["Unauthorized"];
26512
+ 403: components["responses"]["Forbidden"];
26513
+ 404: components["responses"]["NotFound"];
26514
+ };
26515
+ };
26516
+ resetChatThreadSession: {
26517
+ parameters: {
26518
+ query?: never;
26519
+ header?: never;
26520
+ path?: never;
26521
+ cookie?: never;
26522
+ };
26523
+ requestBody?: never;
26524
+ responses: {
26525
+ /** @description `{ reset: true }` */
26526
+ 200: {
26527
+ headers: {
26528
+ [name: string]: unknown;
26529
+ };
26530
+ content?: never;
26531
+ };
26532
+ 401: components["responses"]["Unauthorized"];
26533
+ 403: components["responses"]["Forbidden"];
26534
+ 404: components["responses"]["NotFound"];
26535
+ };
26536
+ };
26537
+ sendChatTurn: {
26538
+ parameters: {
26539
+ query?: never;
26540
+ header?: never;
26541
+ path?: never;
26542
+ cookie?: never;
26543
+ };
26544
+ requestBody: {
26545
+ content: {
26546
+ "application/json": {
26547
+ /** @description What to say. Must not be empty. */
26548
+ text: string;
26549
+ };
26550
+ };
26551
+ };
26552
+ responses: {
26553
+ /** @description SSE stream of turn updates */
26554
+ 200: {
26555
+ headers: {
26556
+ [name: string]: unknown;
26557
+ };
26558
+ content: {
26559
+ "text/event-stream": string;
26560
+ };
26561
+ };
26562
+ 400: components["responses"]["BadRequest"];
26563
+ 401: components["responses"]["Unauthorized"];
26564
+ 403: components["responses"]["Forbidden"];
26565
+ 404: components["responses"]["NotFound"];
26566
+ };
26567
+ };
25507
26568
  agentCheckin: {
25508
26569
  parameters: {
25509
26570
  query?: never;
@@ -26858,7 +27919,7 @@ export interface operations {
26858
27919
  content: {
26859
27920
  "application/json": {
26860
27921
  /** @enum {string} */
26861
- ui: "home" | "profile";
27922
+ ui: "home" | "profile" | "chat";
26862
27923
  };
26863
27924
  };
26864
27925
  };
@@ -26870,7 +27931,7 @@ export interface operations {
26870
27931
  };
26871
27932
  content?: never;
26872
27933
  };
26873
- /** @description ui must be "home" or "profile" */
27934
+ /** @description ui must be "home", "profile" or "chat" */
26874
27935
  400: {
26875
27936
  headers: {
26876
27937
  [name: string]: unknown;
@@ -27835,6 +28896,101 @@ export interface operations {
27835
28896
  403: components["responses"]["AimeatError"];
27836
28897
  };
27837
28898
  };
28899
+ generateImage: {
28900
+ parameters: {
28901
+ query?: never;
28902
+ header?: never;
28903
+ path?: never;
28904
+ cookie?: never;
28905
+ };
28906
+ requestBody: {
28907
+ content: {
28908
+ "application/json": {
28909
+ /** @description What the picture should show. */
28910
+ prompt: string;
28911
+ /** @description Provider-specific size string, e.g. "1024x1024". Passed through untouched. */
28912
+ size?: string;
28913
+ /** @description Where to store it. Defaults to ai-images/<timestamp>-<random>.<ext>. */
28914
+ storage_key?: string;
28915
+ /**
28916
+ * @description Store it publicly readable, so a model or page can fetch it by URL.
28917
+ * @default false
28918
+ */
28919
+ public?: boolean;
28920
+ /** @description Override the image model. */
28921
+ model?: string;
28922
+ /** @description Attribution for the per-app quota and the spend report. */
28923
+ app_id?: string;
28924
+ };
28925
+ };
28926
+ };
28927
+ responses: {
28928
+ /** @description The image was generated and stored */
28929
+ 200: {
28930
+ headers: {
28931
+ [name: string]: unknown;
28932
+ };
28933
+ content: {
28934
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
28935
+ data?: {
28936
+ storage_key?: string;
28937
+ mime_type?: string;
28938
+ size?: number;
28939
+ model?: string;
28940
+ /** @enum {string} */
28941
+ visibility?: "public" | "private";
28942
+ url?: string;
28943
+ usage?: {
28944
+ cost_usd?: number;
28945
+ /** @description false when the provider reported no cost; never estimated */
28946
+ cost_exact?: boolean;
28947
+ };
28948
+ budget?: {
28949
+ daily_budget_usd?: number;
28950
+ spent_today_usd?: number;
28951
+ remaining_usd?: number;
28952
+ };
28953
+ };
28954
+ };
28955
+ };
28956
+ };
28957
+ /** @description INVALID_BODY, PROMPT_TOO_LONG, or NO_IMAGE_MODEL when neither the owner nor the node has named one */
28958
+ 400: {
28959
+ headers: {
28960
+ [name: string]: unknown;
28961
+ };
28962
+ content?: never;
28963
+ };
28964
+ /** @description Unauthorized, or INVALID_API_KEY when the provider rejected the key */
28965
+ 401: {
28966
+ headers: {
28967
+ [name: string]: unknown;
28968
+ };
28969
+ content?: never;
28970
+ };
28971
+ /** @description QUOTA_EXHAUSTED - the daily budget is spent; nothing was generated */
28972
+ 402: {
28973
+ headers: {
28974
+ [name: string]: unknown;
28975
+ };
28976
+ content?: never;
28977
+ };
28978
+ /** @description RATE_LIMITED by the provider */
28979
+ 429: {
28980
+ headers: {
28981
+ [name: string]: unknown;
28982
+ };
28983
+ content?: never;
28984
+ };
28985
+ /** @description PROVIDER_ERROR - the provider failed; the message carries what it said */
28986
+ 502: {
28987
+ headers: {
28988
+ [name: string]: unknown;
28989
+ };
28990
+ content?: never;
28991
+ };
28992
+ };
28993
+ };
27838
28994
  aiTranscribe: {
27839
28995
  parameters: {
27840
28996
  query?: never;
@@ -30246,6 +31402,393 @@ export interface operations {
30246
31402
  };
30247
31403
  };
30248
31404
  };
31405
+ listDataPackages: {
31406
+ parameters: {
31407
+ query?: never;
31408
+ header?: never;
31409
+ path?: never;
31410
+ cookie?: never;
31411
+ };
31412
+ requestBody?: never;
31413
+ responses: {
31414
+ /** @description The caller's packages, newest first */
31415
+ 200: {
31416
+ headers: {
31417
+ [name: string]: unknown;
31418
+ };
31419
+ content?: never;
31420
+ };
31421
+ /** @description Authentication required */
31422
+ 401: {
31423
+ headers: {
31424
+ [name: string]: unknown;
31425
+ };
31426
+ content?: never;
31427
+ };
31428
+ };
31429
+ };
31430
+ publishDataPackage: {
31431
+ parameters: {
31432
+ query?: never;
31433
+ header?: never;
31434
+ path?: never;
31435
+ cookie?: never;
31436
+ };
31437
+ requestBody: {
31438
+ content: {
31439
+ "application/json": {
31440
+ /** @description Lowercase letters, digits and dashes, 2-64 chars. It is an address segment. */
31441
+ name: string;
31442
+ /** @description REQUIRED. What moved against the previous version and why. A version nobody explained is a version a consumer cannot decide about, so this is not optional. */
31443
+ changes: string;
31444
+ title?: string;
31445
+ description?: string;
31446
+ resources: {
31447
+ /** @description Becomes data/{name}.csv in the package. */
31448
+ name: string;
31449
+ rows: {
31450
+ [key: string]: unknown;
31451
+ }[];
31452
+ /** @description A Table Schema object, or "infer" (the default) to propose one from the rows. */
31453
+ schema?: "infer" | {
31454
+ fields: {
31455
+ name: string;
31456
+ /** @enum {string} */
31457
+ type: "string" | "integer" | "number" | "boolean" | "date" | "datetime" | "any";
31458
+ description?: string;
31459
+ }[];
31460
+ /** @description Fields that must be present, non-empty and unique across rows. */
31461
+ primaryKey?: string[];
31462
+ };
31463
+ title?: string;
31464
+ description?: string;
31465
+ }[];
31466
+ /** @description What the producer was asked for — the window, the keywords. Travels in the descriptor. */
31467
+ parameters?: {
31468
+ [key: string]: unknown;
31469
+ };
31470
+ /** @description Origin, legal basis and licence. The owner is responsible for the data; this is where they say so. */
31471
+ provenance?: {
31472
+ sources?: {
31473
+ url?: string;
31474
+ title?: string;
31475
+ retrievedAt?: string;
31476
+ role?: string;
31477
+ }[];
31478
+ /** @description packageIds this was derived from. */
31479
+ lineage?: string[];
31480
+ transformations?: {
31481
+ by?: string;
31482
+ what?: string;
31483
+ }[];
31484
+ legalBasis?: string;
31485
+ consentStatus?: string;
31486
+ retention?: string;
31487
+ license?: string;
31488
+ supersedes?: string;
31489
+ };
31490
+ retentionPolicy?: {
31491
+ keep?: number;
31492
+ /** @enum {string} */
31493
+ unit?: "versions" | "months";
31494
+ };
31495
+ };
31496
+ };
31497
+ };
31498
+ responses: {
31499
+ /** @description Identical content was already published — no new version (unchanged is true) */
31500
+ 200: {
31501
+ headers: {
31502
+ [name: string]: unknown;
31503
+ };
31504
+ content?: never;
31505
+ };
31506
+ /** @description A new version was written */
31507
+ 201: {
31508
+ headers: {
31509
+ [name: string]: unknown;
31510
+ };
31511
+ content?: never;
31512
+ };
31513
+ /** @description The request is malformed (no name, no changes, no resources, a bad resource name) */
31514
+ 400: {
31515
+ headers: {
31516
+ [name: string]: unknown;
31517
+ };
31518
+ content?: never;
31519
+ };
31520
+ /** @description Authentication required */
31521
+ 401: {
31522
+ headers: {
31523
+ [name: string]: unknown;
31524
+ };
31525
+ content?: never;
31526
+ };
31527
+ /** @description Missing storage:write or memory:write */
31528
+ 403: {
31529
+ headers: {
31530
+ [name: string]: unknown;
31531
+ };
31532
+ content?: never;
31533
+ };
31534
+ /** @description The quality gate refused — issues[] carries the row and column of each problem */
31535
+ 422: {
31536
+ headers: {
31537
+ [name: string]: unknown;
31538
+ };
31539
+ content?: never;
31540
+ };
31541
+ };
31542
+ };
31543
+ validateDataPackage: {
31544
+ parameters: {
31545
+ query?: never;
31546
+ header?: never;
31547
+ path?: never;
31548
+ cookie?: never;
31549
+ };
31550
+ requestBody: {
31551
+ content: {
31552
+ "application/json": {
31553
+ resources: {
31554
+ name: string;
31555
+ rows: {
31556
+ [key: string]: unknown;
31557
+ }[];
31558
+ /** @description A Table Schema, or "infer" (default). */
31559
+ schema?: unknown;
31560
+ }[];
31561
+ };
31562
+ };
31563
+ };
31564
+ responses: {
31565
+ /** @description ok:false with issues[] is a normal answer here — the gate ran and refused. */
31566
+ 200: {
31567
+ headers: {
31568
+ [name: string]: unknown;
31569
+ };
31570
+ content?: never;
31571
+ };
31572
+ /** @description Authentication required */
31573
+ 401: {
31574
+ headers: {
31575
+ [name: string]: unknown;
31576
+ };
31577
+ content?: never;
31578
+ };
31579
+ };
31580
+ };
31581
+ getDataPackage: {
31582
+ parameters: {
31583
+ query?: {
31584
+ /** @description sha256:… to pin one version. */
31585
+ version?: string;
31586
+ };
31587
+ header?: never;
31588
+ path: {
31589
+ /** @description Owner name or GHII. */
31590
+ owner: string;
31591
+ name: string;
31592
+ };
31593
+ cookie?: never;
31594
+ };
31595
+ requestBody?: never;
31596
+ responses: {
31597
+ /** @description The descriptor, its permanent URL, and the latest pointer when unpinned */
31598
+ 200: {
31599
+ headers: {
31600
+ [name: string]: unknown;
31601
+ };
31602
+ content?: never;
31603
+ };
31604
+ /** @description No such package or version */
31605
+ 404: {
31606
+ headers: {
31607
+ [name: string]: unknown;
31608
+ };
31609
+ content?: never;
31610
+ };
31611
+ };
31612
+ };
31613
+ listDataPackageVersions: {
31614
+ parameters: {
31615
+ query?: never;
31616
+ header?: never;
31617
+ path: {
31618
+ /** @description Owner name or GHII. */
31619
+ owner: string;
31620
+ name: string;
31621
+ };
31622
+ cookie?: never;
31623
+ };
31624
+ requestBody?: never;
31625
+ responses: {
31626
+ /** @description The version list, newest first */
31627
+ 200: {
31628
+ headers: {
31629
+ [name: string]: unknown;
31630
+ };
31631
+ content?: never;
31632
+ };
31633
+ /** @description No such package */
31634
+ 404: {
31635
+ headers: {
31636
+ [name: string]: unknown;
31637
+ };
31638
+ content?: never;
31639
+ };
31640
+ };
31641
+ };
31642
+ readDataPackageRows: {
31643
+ parameters: {
31644
+ query?: {
31645
+ version?: string;
31646
+ offset?: number;
31647
+ limit?: number;
31648
+ /** @description Comma-separated field names. */
31649
+ select?: string;
31650
+ };
31651
+ header?: never;
31652
+ path: {
31653
+ owner: string;
31654
+ name: string;
31655
+ resource: string;
31656
+ };
31657
+ cookie?: never;
31658
+ };
31659
+ requestBody?: never;
31660
+ responses: {
31661
+ /** @description rows, total, and the Table Schema of what was returned */
31662
+ 200: {
31663
+ headers: {
31664
+ [name: string]: unknown;
31665
+ };
31666
+ content?: never;
31667
+ };
31668
+ /** @description No such package, version or resource */
31669
+ 404: {
31670
+ headers: {
31671
+ [name: string]: unknown;
31672
+ };
31673
+ content?: never;
31674
+ };
31675
+ };
31676
+ };
31677
+ odataServiceDocument: {
31678
+ parameters: {
31679
+ query?: {
31680
+ /** @description sha256:… to pin the feed to one version, which can then never change under the consumer. */
31681
+ version?: string;
31682
+ };
31683
+ header?: never;
31684
+ path: {
31685
+ owner: string;
31686
+ name: string;
31687
+ };
31688
+ cookie?: never;
31689
+ };
31690
+ requestBody?: never;
31691
+ responses: {
31692
+ /** @description { "@odata.context": …, "value": [ { name, kind, url } ] } */
31693
+ 200: {
31694
+ headers: {
31695
+ [name: string]: unknown;
31696
+ };
31697
+ content?: never;
31698
+ };
31699
+ /** @description No such package (OData error shape, not the node envelope) */
31700
+ 404: {
31701
+ headers: {
31702
+ [name: string]: unknown;
31703
+ };
31704
+ content?: never;
31705
+ };
31706
+ };
31707
+ };
31708
+ odataMetadata: {
31709
+ parameters: {
31710
+ query?: {
31711
+ version?: string;
31712
+ };
31713
+ header?: never;
31714
+ path: {
31715
+ owner: string;
31716
+ name: string;
31717
+ };
31718
+ cookie?: never;
31719
+ };
31720
+ requestBody?: never;
31721
+ responses: {
31722
+ /** @description CSDL v4 XML */
31723
+ 200: {
31724
+ headers: {
31725
+ [name: string]: unknown;
31726
+ };
31727
+ content: {
31728
+ "application/xml": string;
31729
+ };
31730
+ };
31731
+ /** @description No such package */
31732
+ 404: {
31733
+ headers: {
31734
+ [name: string]: unknown;
31735
+ };
31736
+ content?: never;
31737
+ };
31738
+ };
31739
+ };
31740
+ odataEntitySet: {
31741
+ parameters: {
31742
+ query?: {
31743
+ version?: string;
31744
+ $select?: string;
31745
+ $top?: number;
31746
+ $skip?: number;
31747
+ $filter?: string;
31748
+ $orderby?: string;
31749
+ $count?: boolean;
31750
+ };
31751
+ header?: never;
31752
+ path: {
31753
+ owner: string;
31754
+ name: string;
31755
+ /** @description The entity set name from the service document. */
31756
+ resource: string;
31757
+ };
31758
+ cookie?: never;
31759
+ };
31760
+ requestBody?: never;
31761
+ responses: {
31762
+ /** @description { "@odata.context": …, "@odata.count": …, "value": [ … ] } */
31763
+ 200: {
31764
+ headers: {
31765
+ [name: string]: unknown;
31766
+ };
31767
+ content?: never;
31768
+ };
31769
+ /** @description A named property does not exist, or an option is malformed */
31770
+ 400: {
31771
+ headers: {
31772
+ [name: string]: unknown;
31773
+ };
31774
+ content?: never;
31775
+ };
31776
+ /** @description No such package, version or entity set */
31777
+ 404: {
31778
+ headers: {
31779
+ [name: string]: unknown;
31780
+ };
31781
+ content?: never;
31782
+ };
31783
+ /** @description A query construct this feed does not implement — refused rather than ignored */
31784
+ 501: {
31785
+ headers: {
31786
+ [name: string]: unknown;
31787
+ };
31788
+ content?: never;
31789
+ };
31790
+ };
31791
+ };
30249
31792
  listStorage: {
30250
31793
  parameters: {
30251
31794
  query?: never;
@@ -30408,6 +31951,20 @@ export interface operations {
30408
31951
  requestBody?: never;
30409
31952
  responses: {
30410
31953
  200: components["responses"]["AimeatSuccess"];
31954
+ /** @description Anonymous agent outside the `anonymous/` key prefix */
31955
+ 403: {
31956
+ headers: {
31957
+ [name: string]: unknown;
31958
+ };
31959
+ content?: never;
31960
+ };
31961
+ /** @description No such file in the caller's own namespace */
31962
+ 404: {
31963
+ headers: {
31964
+ [name: string]: unknown;
31965
+ };
31966
+ content?: never;
31967
+ };
30411
31968
  };
30412
31969
  };
30413
31970
  fileMetadata: {
@@ -30891,40 +32448,6 @@ export interface operations {
30891
32448
  200: components["responses"]["AimeatSuccess"];
30892
32449
  };
30893
32450
  };
30894
- getWorkAcceptRedelivery: {
30895
- parameters: {
30896
- query: {
30897
- otk: string;
30898
- };
30899
- header?: never;
30900
- path: {
30901
- tc: string;
30902
- };
30903
- cookie?: never;
30904
- };
30905
- requestBody?: never;
30906
- responses: {
30907
- /** @description Re-delivery accepted, dispute resolved */
30908
- 200: {
30909
- headers: {
30910
- [name: string]: unknown;
30911
- };
30912
- content: {
30913
- "application/json": components["schemas"]["AimeatEnvelope"] & {
30914
- data?: {
30915
- tracking_code?: string;
30916
- dispute_resolved?: boolean;
30917
- tier?: string;
30918
- };
30919
- };
30920
- };
30921
- };
30922
- 400: components["responses"]["BadRequest"];
30923
- 401: components["responses"]["Unauthorized"];
30924
- 403: components["responses"]["Forbidden"];
30925
- 404: components["responses"]["NotFound"];
30926
- };
30927
- };
30928
32451
  acceptRedelivery: {
30929
32452
  parameters: {
30930
32453
  query?: never;
@@ -30985,39 +32508,6 @@ export interface operations {
30985
32508
  200: components["responses"]["AimeatSuccess"];
30986
32509
  };
30987
32510
  };
30988
- getWorkEscalate: {
30989
- parameters: {
30990
- query: {
30991
- otk: string;
30992
- };
30993
- header?: never;
30994
- path: {
30995
- tc: string;
30996
- };
30997
- cookie?: never;
30998
- };
30999
- requestBody?: never;
31000
- responses: {
31001
- /** @description Dispute escalated */
31002
- 200: {
31003
- headers: {
31004
- [name: string]: unknown;
31005
- };
31006
- content: {
31007
- "application/json": components["schemas"]["AimeatEnvelope"] & {
31008
- data?: {
31009
- tracking_code?: string;
31010
- dispute_status?: string;
31011
- tier?: string;
31012
- };
31013
- };
31014
- };
31015
- };
31016
- 400: components["responses"]["BadRequest"];
31017
- 401: components["responses"]["Unauthorized"];
31018
- 404: components["responses"]["NotFound"];
31019
- };
31020
- };
31021
32511
  escalateDispute: {
31022
32512
  parameters: {
31023
32513
  query?: never;
@@ -32033,7 +33523,7 @@ export interface operations {
32033
33523
  };
32034
33524
  requestBody?: never;
32035
33525
  responses: {
32036
- /** @description Builder's manual */
33526
+ /** @description Node index */
32037
33527
  200: {
32038
33528
  headers: {
32039
33529
  [name: string]: unknown;
@@ -33745,6 +35235,26 @@ export interface operations {
33745
35235
  200: components["responses"]["AimeatSuccess"];
33746
35236
  };
33747
35237
  };
35238
+ revokeRole: {
35239
+ parameters: {
35240
+ query?: never;
35241
+ header?: never;
35242
+ path?: never;
35243
+ cookie?: never;
35244
+ };
35245
+ requestBody: {
35246
+ content: {
35247
+ "application/json": {
35248
+ owner: string;
35249
+ /** @enum {string} */
35250
+ role: "operator";
35251
+ };
35252
+ };
35253
+ };
35254
+ responses: {
35255
+ 200: components["responses"]["AimeatSuccess"];
35256
+ };
35257
+ };
33748
35258
  getHelpPrompt: {
33749
35259
  parameters: {
33750
35260
  query?: never;
@@ -33925,6 +35435,49 @@ export interface operations {
33925
35435
  200: components["responses"]["AimeatSuccess"];
33926
35436
  };
33927
35437
  };
35438
+ adminGetOrganismOwnership: {
35439
+ parameters: {
35440
+ query?: never;
35441
+ header?: never;
35442
+ path: {
35443
+ id: string;
35444
+ };
35445
+ cookie?: never;
35446
+ };
35447
+ requestBody?: never;
35448
+ responses: {
35449
+ 200: components["responses"]["AimeatSuccess"];
35450
+ 403: components["responses"]["AimeatError"];
35451
+ 404: components["responses"]["AimeatError"];
35452
+ };
35453
+ };
35454
+ adminInstallOrganismOwner: {
35455
+ parameters: {
35456
+ query?: never;
35457
+ header?: never;
35458
+ path: {
35459
+ id: string;
35460
+ };
35461
+ cookie?: never;
35462
+ };
35463
+ requestBody: {
35464
+ content: {
35465
+ "application/json": {
35466
+ /**
35467
+ * @description Bare owner name to install as the organism's creator.
35468
+ * @example alice
35469
+ */
35470
+ ghii: string;
35471
+ };
35472
+ };
35473
+ };
35474
+ responses: {
35475
+ 200: components["responses"]["AimeatSuccess"];
35476
+ 400: components["responses"]["AimeatError"];
35477
+ 403: components["responses"]["AimeatError"];
35478
+ 404: components["responses"]["AimeatError"];
35479
+ };
35480
+ };
33928
35481
  adminSetGhiiCors: {
33929
35482
  parameters: {
33930
35483
  query?: never;
@@ -35170,6 +36723,8 @@ export interface operations {
35170
36723
  version?: number;
35171
36724
  /** @description The access code for a protected app (the `X-Access-Code` header carries it too). A browser navigation without it, or with the wrong one, gets an HTML unlock page with a code field rather than JSON; an API caller gets `403 ACCESS_DENIED`. The app's own owner and node operators never need it. With the app origin enabled, a correct code produces a 302 to the app origin carrying a grant, and the code itself is not forwarded. */
35172
36725
  code?: string;
36726
+ /** @description Set by the app origin when it sends a browser here for the code form, and stamped back onto the grant redirect so the origin can tell a first bounce from a second. A caller never needs to set it; passing it by hand only costs the retry. */
36727
+ unlock?: "1";
35173
36728
  /** @description A signed draft-preview token (from POST .../draft/preview-token). When present and valid, the app's UNPUBLISHED draft is served instead of the live version (the live app is untouched). On a node with the app origin enabled an apex request is 301-redirected to the isolated origin, preserving the token. */
35174
36729
  preview?: string;
35175
36730
  };
@@ -35654,6 +37209,308 @@ export interface operations {
35654
37209
  };
35655
37210
  };
35656
37211
  };
37212
+ captureAppScreenshot: {
37213
+ parameters: {
37214
+ query?: never;
37215
+ header?: never;
37216
+ path: {
37217
+ owner: string;
37218
+ filename: string;
37219
+ };
37220
+ cookie?: never;
37221
+ };
37222
+ requestBody?: never;
37223
+ responses: {
37224
+ /** @description The app was rendered and the screenshot stored */
37225
+ 200: {
37226
+ headers: {
37227
+ [name: string]: unknown;
37228
+ };
37229
+ content: {
37230
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
37231
+ data?: {
37232
+ filename?: string;
37233
+ captured?: boolean;
37234
+ /** @description JPEG size in bytes */
37235
+ size?: number;
37236
+ screenshot_url?: string;
37237
+ };
37238
+ };
37239
+ };
37240
+ };
37241
+ 401: components["responses"]["Unauthorized"];
37242
+ /** @description Not your app */
37243
+ 403: {
37244
+ headers: {
37245
+ [name: string]: unknown;
37246
+ };
37247
+ content?: never;
37248
+ };
37249
+ /** @description No published app by that name */
37250
+ 404: {
37251
+ headers: {
37252
+ [name: string]: unknown;
37253
+ };
37254
+ content?: never;
37255
+ };
37256
+ /** @description RATE_LIMITED - the owner's hourly render allowance is used up */
37257
+ 429: {
37258
+ headers: {
37259
+ [name: string]: unknown;
37260
+ };
37261
+ content?: never;
37262
+ };
37263
+ /** @description RENDER_FAILED - the page did not render; the message carries the reason */
37264
+ 502: {
37265
+ headers: {
37266
+ [name: string]: unknown;
37267
+ };
37268
+ content?: never;
37269
+ };
37270
+ /** @description NO_BROWSER - this node has no usable browser to render with */
37271
+ 503: {
37272
+ headers: {
37273
+ [name: string]: unknown;
37274
+ };
37275
+ content?: never;
37276
+ };
37277
+ };
37278
+ };
37279
+ writeAppDraft: {
37280
+ parameters: {
37281
+ query?: never;
37282
+ header?: never;
37283
+ path: {
37284
+ owner: string;
37285
+ filename: string;
37286
+ };
37287
+ cookie?: never;
37288
+ };
37289
+ requestBody: {
37290
+ content: {
37291
+ "application/json": {
37292
+ /** @description The text to write. Plain UTF-8, not base64. */
37293
+ content: string;
37294
+ /**
37295
+ * @default append
37296
+ * @enum {string}
37297
+ */
37298
+ mode?: "append" | "replace";
37299
+ /** @description Refuse unless the draft currently has exactly this many bytes. */
37300
+ expected_size_bytes?: number;
37301
+ /** @description Display name; defaults from the live app, or from the draft once set. */
37302
+ name?: string;
37303
+ description?: string;
37304
+ };
37305
+ };
37306
+ };
37307
+ responses: {
37308
+ /** @description The piece was written */
37309
+ 200: {
37310
+ headers: {
37311
+ [name: string]: unknown;
37312
+ };
37313
+ content: {
37314
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
37315
+ data?: {
37316
+ filename?: string;
37317
+ mode?: string;
37318
+ size?: number;
37319
+ /** Format: date-time */
37320
+ updated_at?: string;
37321
+ has_live_version?: boolean;
37322
+ live_version_number?: number;
37323
+ };
37324
+ };
37325
+ };
37326
+ };
37327
+ 400: components["responses"]["BadRequest"];
37328
+ 401: components["responses"]["Unauthorized"];
37329
+ /** @description DRAFT_CHANGED - the draft is not the size the caller expected; nothing was written */
37330
+ 409: {
37331
+ headers: {
37332
+ [name: string]: unknown;
37333
+ };
37334
+ content?: never;
37335
+ };
37336
+ /** @description TOO_LARGE - the write would exceed the node's app size ceiling; nothing was written */
37337
+ 413: {
37338
+ headers: {
37339
+ [name: string]: unknown;
37340
+ };
37341
+ content?: never;
37342
+ };
37343
+ };
37344
+ };
37345
+ replaceInAppDraft: {
37346
+ parameters: {
37347
+ query?: never;
37348
+ header?: never;
37349
+ path: {
37350
+ owner: string;
37351
+ filename: string;
37352
+ };
37353
+ cookie?: never;
37354
+ };
37355
+ requestBody: {
37356
+ content: {
37357
+ "application/json": {
37358
+ /** @description The exact text to replace, including indentation. */
37359
+ old_string: string;
37360
+ new_string: string;
37361
+ /** @default false */
37362
+ replace_all?: boolean;
37363
+ };
37364
+ };
37365
+ };
37366
+ responses: {
37367
+ /** @description The replacement was made */
37368
+ 200: {
37369
+ headers: {
37370
+ [name: string]: unknown;
37371
+ };
37372
+ content: {
37373
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
37374
+ data?: {
37375
+ filename?: string;
37376
+ replacements?: number;
37377
+ size?: number;
37378
+ /** Format: date-time */
37379
+ updated_at?: string;
37380
+ };
37381
+ };
37382
+ };
37383
+ };
37384
+ 400: components["responses"]["BadRequest"];
37385
+ 401: components["responses"]["Unauthorized"];
37386
+ /** @description NO_DRAFT, or NOT_FOUND when old_string does not appear in the draft */
37387
+ 404: {
37388
+ headers: {
37389
+ [name: string]: unknown;
37390
+ };
37391
+ content?: never;
37392
+ };
37393
+ /** @description NOT_UNIQUE - old_string appears more than once and replace_all was not set */
37394
+ 409: {
37395
+ headers: {
37396
+ [name: string]: unknown;
37397
+ };
37398
+ content?: never;
37399
+ };
37400
+ };
37401
+ };
37402
+ readAppDraftLines: {
37403
+ parameters: {
37404
+ query?: {
37405
+ /** @description First line to return, 1-based. */
37406
+ offset?: number;
37407
+ limit?: number;
37408
+ };
37409
+ header?: never;
37410
+ path: {
37411
+ owner: string;
37412
+ filename: string;
37413
+ };
37414
+ cookie?: never;
37415
+ };
37416
+ requestBody?: never;
37417
+ responses: {
37418
+ /** @description The requested range */
37419
+ 200: {
37420
+ headers: {
37421
+ [name: string]: unknown;
37422
+ };
37423
+ content: {
37424
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
37425
+ data?: {
37426
+ filename?: string;
37427
+ size?: number;
37428
+ total_lines?: number;
37429
+ from_line?: number;
37430
+ to_line?: number;
37431
+ has_more?: boolean;
37432
+ mime_type?: string;
37433
+ /** Format: date-time */
37434
+ updated_at?: string;
37435
+ content?: string;
37436
+ };
37437
+ };
37438
+ };
37439
+ };
37440
+ /** @description INVALID_RANGE - offset is 1-based and limit is at least 1 */
37441
+ 400: {
37442
+ headers: {
37443
+ [name: string]: unknown;
37444
+ };
37445
+ content?: never;
37446
+ };
37447
+ 401: components["responses"]["Unauthorized"];
37448
+ /** @description NO_DRAFT - nothing is staged for this app */
37449
+ 404: {
37450
+ headers: {
37451
+ [name: string]: unknown;
37452
+ };
37453
+ content?: never;
37454
+ };
37455
+ };
37456
+ };
37457
+ seedAppDraft: {
37458
+ parameters: {
37459
+ query?: never;
37460
+ header?: never;
37461
+ path: {
37462
+ owner: string;
37463
+ /** @description The draft slot to write into. */
37464
+ filename: string;
37465
+ };
37466
+ cookie?: never;
37467
+ };
37468
+ requestBody?: {
37469
+ content: {
37470
+ "application/json": {
37471
+ /** @description The published app to copy from. Defaults to filename. */
37472
+ from_filename?: string;
37473
+ /** @description Which published version. Defaults to the newest. */
37474
+ version?: number;
37475
+ };
37476
+ };
37477
+ };
37478
+ responses: {
37479
+ /** @description The published source is now in the draft slot */
37480
+ 200: {
37481
+ headers: {
37482
+ [name: string]: unknown;
37483
+ };
37484
+ content: {
37485
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
37486
+ data?: {
37487
+ filename?: string;
37488
+ seeded_from?: string;
37489
+ seeded_version?: number;
37490
+ size?: number;
37491
+ /** Format: date-time */
37492
+ updated_at?: string;
37493
+ };
37494
+ };
37495
+ };
37496
+ };
37497
+ 401: components["responses"]["Unauthorized"];
37498
+ /** @description NOT_FOUND - no published app, or no such version, to copy from */
37499
+ 404: {
37500
+ headers: {
37501
+ [name: string]: unknown;
37502
+ };
37503
+ content?: never;
37504
+ };
37505
+ /** @description TOO_LARGE - the published app exceeds the node's current app size ceiling */
37506
+ 413: {
37507
+ headers: {
37508
+ [name: string]: unknown;
37509
+ };
37510
+ content?: never;
37511
+ };
37512
+ };
37513
+ };
35657
37514
  mintAppDraftPreviewToken: {
35658
37515
  parameters: {
35659
37516
  query?: never;
@@ -43861,6 +45718,48 @@ export interface operations {
43861
45718
  404: components["responses"]["NotFound"];
43862
45719
  };
43863
45720
  };
45721
+ addOrganismOwner: {
45722
+ parameters: {
45723
+ query?: never;
45724
+ header?: never;
45725
+ path: {
45726
+ id: string;
45727
+ };
45728
+ cookie?: never;
45729
+ };
45730
+ requestBody: {
45731
+ content: {
45732
+ "application/json": {
45733
+ /** @description Bare owner name of the active member to make an owner */
45734
+ ghii: string;
45735
+ };
45736
+ };
45737
+ };
45738
+ responses: {
45739
+ 200: components["responses"]["AimeatSuccess"];
45740
+ 400: components["responses"]["BadRequest"];
45741
+ 403: components["responses"]["Forbidden"];
45742
+ 404: components["responses"]["NotFound"];
45743
+ };
45744
+ };
45745
+ removeOrganismOwner: {
45746
+ parameters: {
45747
+ query?: never;
45748
+ header?: never;
45749
+ path: {
45750
+ id: string;
45751
+ ghii: string;
45752
+ };
45753
+ cookie?: never;
45754
+ };
45755
+ requestBody?: never;
45756
+ responses: {
45757
+ 200: components["responses"]["AimeatSuccess"];
45758
+ 400: components["responses"]["BadRequest"];
45759
+ 403: components["responses"]["Forbidden"];
45760
+ 404: components["responses"]["NotFound"];
45761
+ };
45762
+ };
43864
45763
  transferOrganismOwnership: {
43865
45764
  parameters: {
43866
45765
  query?: never;
@@ -47302,7 +49201,8 @@ export interface operations {
47302
49201
  /** @description Primary task instructions. The agent crew reads this field as its prompt. */
47303
49202
  description?: string;
47304
49203
  /**
47305
- * @default draft
49204
+ * @description queued means the agent can see it; draft holds it for your review and is released later with POST .../{id}/queue.
49205
+ * @default queued
47306
49206
  * @enum {string}
47307
49207
  */
47308
49208
  status?: "draft" | "queued";
@@ -47522,6 +49422,39 @@ export interface operations {
47522
49422
  409: components["responses"]["Conflict"];
47523
49423
  };
47524
49424
  };
49425
+ queueAgentTask: {
49426
+ parameters: {
49427
+ query?: never;
49428
+ header?: never;
49429
+ path: {
49430
+ name: string;
49431
+ id: string;
49432
+ };
49433
+ cookie?: never;
49434
+ };
49435
+ requestBody?: never;
49436
+ responses: {
49437
+ /** @description Draft released */
49438
+ 200: {
49439
+ headers: {
49440
+ [name: string]: unknown;
49441
+ };
49442
+ content: {
49443
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
49444
+ data?: {
49445
+ task?: components["schemas"]["AgentTask"];
49446
+ /** @description The target agent is a task-runner, so the task is already active. */
49447
+ auto_activated?: boolean;
49448
+ };
49449
+ };
49450
+ };
49451
+ };
49452
+ 401: components["responses"]["Unauthorized"];
49453
+ 403: components["responses"]["Forbidden"];
49454
+ 404: components["responses"]["NotFound"];
49455
+ 409: components["responses"]["Conflict"];
49456
+ };
49457
+ };
47525
49458
  startAgentTask: {
47526
49459
  parameters: {
47527
49460
  query?: never;
@@ -50821,6 +52754,222 @@ export interface operations {
50821
52754
  404: components["responses"]["NotFound"];
50822
52755
  };
50823
52756
  };
52757
+ usageReports: {
52758
+ parameters: {
52759
+ query?: never;
52760
+ header?: never;
52761
+ path?: never;
52762
+ cookie?: never;
52763
+ };
52764
+ requestBody?: never;
52765
+ responses: {
52766
+ /** @description Report names with a one-line description of each */
52767
+ 200: {
52768
+ headers: {
52769
+ [name: string]: unknown;
52770
+ };
52771
+ content: {
52772
+ "application/json": components["schemas"]["AimeatEnvelope"];
52773
+ };
52774
+ };
52775
+ 401: components["responses"]["Unauthorized"];
52776
+ };
52777
+ };
52778
+ usageSummary: {
52779
+ parameters: {
52780
+ query?: {
52781
+ /** @description Which report to read. GET /v1/usage/reports lists them with descriptions. */
52782
+ report?: "day" | "model" | "app" | "agent" | "tool" | "surface" | "apps-used" | "activity" | "sold";
52783
+ /** @description Inclusive start day (UTC). Defaults to 30 days ago. */
52784
+ from?: string;
52785
+ /** @description Inclusive end day (UTC). Defaults to today. */
52786
+ to?: string;
52787
+ /** @description Falls back to the grain the report actually materialises. */
52788
+ grain?: "day" | "hour";
52789
+ /** @description Include the per-bucket series a chart needs. */
52790
+ series?: "true" | "false";
52791
+ limit?: number;
52792
+ };
52793
+ header?: never;
52794
+ path?: never;
52795
+ cookie?: never;
52796
+ };
52797
+ requestBody?: never;
52798
+ responses: {
52799
+ /** @description Groups, totals, an optional series, and the freshness of the layer */
52800
+ 200: {
52801
+ headers: {
52802
+ [name: string]: unknown;
52803
+ };
52804
+ content: {
52805
+ "application/json": components["schemas"]["AimeatEnvelope"];
52806
+ };
52807
+ };
52808
+ 400: components["responses"]["BadRequest"];
52809
+ 401: components["responses"]["Unauthorized"];
52810
+ };
52811
+ };
52812
+ adminUsageSummary: {
52813
+ parameters: {
52814
+ query?: {
52815
+ report?: "day" | "model" | "app" | "app-model" | "agent" | "user" | "tool" | "surface" | "apps-used" | "activity" | "provider";
52816
+ /** @description Bare owner name or full GHII. Omit for a node-wide report. */
52817
+ owner?: string;
52818
+ from?: string;
52819
+ to?: string;
52820
+ grain?: "day" | "hour";
52821
+ };
52822
+ header?: never;
52823
+ path?: never;
52824
+ cookie?: never;
52825
+ };
52826
+ requestBody?: never;
52827
+ responses: {
52828
+ /** @description Groups, totals and freshness */
52829
+ 200: {
52830
+ headers: {
52831
+ [name: string]: unknown;
52832
+ };
52833
+ content: {
52834
+ "application/json": components["schemas"]["AimeatEnvelope"];
52835
+ };
52836
+ };
52837
+ 400: components["responses"]["BadRequest"];
52838
+ 403: components["responses"]["Forbidden"];
52839
+ };
52840
+ };
52841
+ adminUsageReports: {
52842
+ parameters: {
52843
+ query?: never;
52844
+ header?: never;
52845
+ path?: never;
52846
+ cookie?: never;
52847
+ };
52848
+ requestBody?: never;
52849
+ responses: {
52850
+ /** @description Node-scope and per-owner report names */
52851
+ 200: {
52852
+ headers: {
52853
+ [name: string]: unknown;
52854
+ };
52855
+ content: {
52856
+ "application/json": components["schemas"]["AimeatEnvelope"];
52857
+ };
52858
+ };
52859
+ 403: components["responses"]["Forbidden"];
52860
+ };
52861
+ };
52862
+ adminUsageCalls: {
52863
+ parameters: {
52864
+ query?: {
52865
+ /** @description Bare owner name or full GHII. Omit to read across owners. */
52866
+ owner?: string;
52867
+ actor?: string;
52868
+ surface?: "mcp" | "apptool" | "exchange" | "capability" | "app" | "extension" | "http" | "operator";
52869
+ app_id?: string;
52870
+ outcome?: "ok" | "refused" | "error";
52871
+ from?: string;
52872
+ to?: string;
52873
+ limit?: number;
52874
+ };
52875
+ header?: never;
52876
+ path?: never;
52877
+ cookie?: never;
52878
+ };
52879
+ requestBody?: never;
52880
+ responses: {
52881
+ /** @description Raw calls, newest first, flagged as audited */
52882
+ 200: {
52883
+ headers: {
52884
+ [name: string]: unknown;
52885
+ };
52886
+ content: {
52887
+ "application/json": components["schemas"]["AimeatEnvelope"];
52888
+ };
52889
+ };
52890
+ 403: components["responses"]["Forbidden"];
52891
+ };
52892
+ };
52893
+ adminUsageStatus: {
52894
+ parameters: {
52895
+ query?: never;
52896
+ header?: never;
52897
+ path?: never;
52898
+ cookie?: never;
52899
+ };
52900
+ requestBody?: never;
52901
+ responses: {
52902
+ /** @description Fold watermarks per stream, plus the hot-window settings */
52903
+ 200: {
52904
+ headers: {
52905
+ [name: string]: unknown;
52906
+ };
52907
+ content: {
52908
+ "application/json": components["schemas"]["AimeatEnvelope"];
52909
+ };
52910
+ };
52911
+ 403: components["responses"]["Forbidden"];
52912
+ };
52913
+ };
52914
+ adminUsageRollupRebuild: {
52915
+ parameters: {
52916
+ query?: never;
52917
+ header?: never;
52918
+ path?: never;
52919
+ cookie?: never;
52920
+ };
52921
+ requestBody: {
52922
+ content: {
52923
+ "application/json": {
52924
+ from: string;
52925
+ /** @enum {string} */
52926
+ grain?: "day" | "hour";
52927
+ };
52928
+ };
52929
+ };
52930
+ responses: {
52931
+ /** @description Rows cleared and what was re-folded */
52932
+ 200: {
52933
+ headers: {
52934
+ [name: string]: unknown;
52935
+ };
52936
+ content: {
52937
+ "application/json": components["schemas"]["AimeatEnvelope"];
52938
+ };
52939
+ };
52940
+ 400: components["responses"]["BadRequest"];
52941
+ 403: components["responses"]["Forbidden"];
52942
+ };
52943
+ };
52944
+ adminUsageArchivePrune: {
52945
+ parameters: {
52946
+ query?: never;
52947
+ header?: never;
52948
+ path?: never;
52949
+ cookie?: never;
52950
+ };
52951
+ requestBody: {
52952
+ content: {
52953
+ "application/json": {
52954
+ before: string;
52955
+ confirm: boolean;
52956
+ };
52957
+ };
52958
+ };
52959
+ responses: {
52960
+ /** @description What was deleted */
52961
+ 200: {
52962
+ headers: {
52963
+ [name: string]: unknown;
52964
+ };
52965
+ content: {
52966
+ "application/json": components["schemas"]["AimeatEnvelope"];
52967
+ };
52968
+ };
52969
+ 400: components["responses"]["BadRequest"];
52970
+ 403: components["responses"]["Forbidden"];
52971
+ };
52972
+ };
50824
52973
  adminStorageStats: {
50825
52974
  parameters: {
50826
52975
  query?: {