@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.6

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 (534) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +51 -14
  3. package/dist/admin/admin.controller.js +60 -19
  4. package/dist/admin/extensions.controller.d.ts +16 -2
  5. package/dist/admin/extensions.controller.js +26 -6
  6. package/dist/admin/setup-lock.d.ts +1 -1
  7. package/dist/admin/setup-lock.js +1 -1
  8. package/dist/admin/setup.controller.d.ts +1 -1
  9. package/dist/admin/setup.controller.js +1 -1
  10. package/dist/admin/setup.service.d.ts +4 -4
  11. package/dist/admin/setup.service.js +8 -8
  12. package/dist/agents/agent-lookup.d.ts +16 -0
  13. package/dist/agents/agent-lookup.js +11 -0
  14. package/dist/agents/agents.controller.d.ts +76 -1
  15. package/dist/agents/agents.controller.js +90 -11
  16. package/dist/agents/agents.module.d.ts +4 -1
  17. package/dist/agents/agents.module.js +32 -6
  18. package/dist/agents/agents.service.d.ts +54 -23
  19. package/dist/agents/agents.service.js +180 -76
  20. package/dist/agents/definition.d.ts +49 -0
  21. package/dist/agents/definition.js +45 -0
  22. package/dist/agents/from-template.d.ts +106 -0
  23. package/dist/agents/from-template.js +649 -0
  24. package/dist/agents/from-template.service.d.ts +60 -0
  25. package/dist/agents/from-template.service.js +161 -0
  26. package/dist/agents/models.controller.d.ts +34 -5
  27. package/dist/agents/models.controller.js +50 -6
  28. package/dist/agents/org-templates.d.ts +176 -0
  29. package/dist/agents/org-templates.js +827 -0
  30. package/dist/agents/pending-connector-requests.d.ts +77 -0
  31. package/dist/agents/pending-connector-requests.js +215 -0
  32. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  33. package/dist/agents/pending-connectors.controller.js +91 -0
  34. package/dist/agents/pending-connectors.service.d.ts +62 -0
  35. package/dist/agents/pending-connectors.service.js +282 -0
  36. package/dist/agents/readiness.controller.d.ts +5 -5
  37. package/dist/agents/readiness.controller.js +6 -6
  38. package/dist/agents/templates.controller.d.ts +86 -5
  39. package/dist/agents/templates.controller.js +171 -7
  40. package/dist/agents/templates.d.ts +127 -23
  41. package/dist/agents/templates.js +475 -52
  42. package/dist/background/background.module.js +8 -1
  43. package/dist/background/finish.d.ts +3 -2
  44. package/dist/background/launch-lock.d.ts +4 -3
  45. package/dist/background/launch-lock.js +4 -3
  46. package/dist/background/poll.job.d.ts +9 -6
  47. package/dist/background/poll.job.js +30 -22
  48. package/dist/background/session.d.ts +13 -2
  49. package/dist/background/session.js +13 -0
  50. package/dist/background/stop.d.ts +12 -6
  51. package/dist/background/stop.js +57 -39
  52. package/dist/background/store.d.ts +18 -6
  53. package/dist/background/store.js +12 -6
  54. package/dist/background/tasks.service.d.ts +15 -5
  55. package/dist/background/tasks.service.js +42 -17
  56. package/dist/background/wake-rules.d.ts +27 -18
  57. package/dist/background/wake-rules.js +52 -22
  58. package/dist/background/wake.d.ts +13 -11
  59. package/dist/background/wake.js +20 -14
  60. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  61. package/dist/catalog/admin-catalog.controller.js +213 -42
  62. package/dist/catalog/catalog-content.d.ts +58 -32
  63. package/dist/catalog/catalog-content.js +34 -8
  64. package/dist/catalog/catalog-import.module.d.ts +7 -0
  65. package/dist/catalog/catalog-import.module.js +60 -0
  66. package/dist/catalog/catalog-items.d.ts +111 -7
  67. package/dist/catalog/catalog-items.js +279 -13
  68. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  69. package/dist/catalog/catalog-scope.service.js +1116 -0
  70. package/dist/catalog/catalog.module.d.ts +7 -9
  71. package/dist/catalog/catalog.module.js +41 -31
  72. package/dist/catalog/catalog.service.d.ts +101 -29
  73. package/dist/catalog/catalog.service.js +104 -106
  74. package/dist/catalog/cli.d.ts +11 -1
  75. package/dist/catalog/cli.js +26 -1
  76. package/dist/catalog/component-promotion.d.ts +96 -0
  77. package/dist/catalog/component-promotion.js +395 -0
  78. package/dist/catalog/component-scope.controller.d.ts +152 -0
  79. package/dist/catalog/component-scope.controller.js +287 -0
  80. package/dist/catalog/component-scope.service.d.ts +303 -0
  81. package/dist/catalog/component-scope.service.js +936 -0
  82. package/dist/catalog/component-state.d.ts +174 -0
  83. package/dist/catalog/component-state.js +437 -0
  84. package/dist/catalog/job-ids.d.ts +30 -0
  85. package/dist/catalog/job-ids.js +25 -0
  86. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  87. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  88. package/dist/catalog/marketplaces.controller.js +56 -7
  89. package/dist/catalog/marketplaces.service.d.ts +54 -14
  90. package/dist/catalog/marketplaces.service.js +71 -22
  91. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  92. package/dist/catalog/org-catalog.controller.js +181 -65
  93. package/dist/catalog/org-catalog.service.d.ts +65 -33
  94. package/dist/catalog/org-catalog.service.js +324 -157
  95. package/dist/catalog/org-extension-switch.d.ts +41 -0
  96. package/dist/catalog/org-extension-switch.js +115 -0
  97. package/dist/catalog/org-extension.controller.d.ts +119 -0
  98. package/dist/catalog/org-extension.controller.js +266 -0
  99. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  100. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  101. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  102. package/dist/catalog/org-plugin-uploads.js +116 -0
  103. package/dist/catalog/owned-items.d.ts +184 -0
  104. package/dist/catalog/owned-items.js +789 -0
  105. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  106. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  107. package/dist/catalog/ownership.d.ts +172 -0
  108. package/dist/catalog/ownership.js +326 -0
  109. package/dist/catalog/platform-components.d.ts +221 -0
  110. package/dist/catalog/platform-components.js +761 -0
  111. package/dist/catalog/platform-migration.d.ts +115 -0
  112. package/dist/catalog/platform-migration.js +582 -0
  113. package/dist/catalog/plugin-import.d.ts +178 -34
  114. package/dist/catalog/plugin-import.js +622 -82
  115. package/dist/catalog/plugin-install.d.ts +185 -41
  116. package/dist/catalog/plugin-install.js +758 -126
  117. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  118. package/dist/catalog/plugin-upgrade.js +1147 -1136
  119. package/dist/catalog/request-rules.d.ts +65 -0
  120. package/dist/catalog/request-rules.js +217 -0
  121. package/dist/catalog/requests.service.d.ts +193 -118
  122. package/dist/catalog/requests.service.js +526 -343
  123. package/dist/catalog/reserved-names.d.ts +8 -0
  124. package/dist/catalog/reserved-names.js +42 -0
  125. package/dist/catalog/scope-orgs.d.ts +21 -0
  126. package/dist/catalog/scope-orgs.js +67 -0
  127. package/dist/catalog/scope-state.d.ts +35 -0
  128. package/dist/catalog/scope-state.js +87 -0
  129. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  130. package/dist/catalog/scope-sync-workers.js +29 -0
  131. package/dist/catalog/scope-sync.d.ts +176 -0
  132. package/dist/catalog/scope-sync.js +576 -0
  133. package/dist/catalog/scope.d.ts +42 -0
  134. package/dist/catalog/scope.js +42 -0
  135. package/dist/catalog/unshare.d.ts +22 -0
  136. package/dist/catalog/unshare.js +118 -0
  137. package/dist/channels/actions.js +1 -0
  138. package/dist/channels/cards.js +20 -2
  139. package/dist/channels/channels.module.js +2 -0
  140. package/dist/channels/inbound.d.ts +9 -1
  141. package/dist/channels/inbound.js +67 -5
  142. package/dist/channels/phrases.d.ts +35 -0
  143. package/dist/channels/phrases.js +29 -0
  144. package/dist/config/docs.js +3 -1
  145. package/dist/config/schema.d.ts +10 -2
  146. package/dist/config/schema.js +70 -22
  147. package/dist/conversations/access.d.ts +6 -4
  148. package/dist/conversations/access.js +27 -5
  149. package/dist/conversations/agent-tree.d.ts +46 -0
  150. package/dist/conversations/agent-tree.js +92 -0
  151. package/dist/conversations/conversations.controller.d.ts +43 -18
  152. package/dist/conversations/conversations.controller.js +79 -38
  153. package/dist/conversations/conversations.module.d.ts +1 -1
  154. package/dist/conversations/conversations.module.js +7 -7
  155. package/dist/conversations/conversations.service.d.ts +73 -15
  156. package/dist/conversations/conversations.service.js +115 -35
  157. package/dist/conversations/environment-status.d.ts +24 -0
  158. package/dist/conversations/environment-status.js +71 -0
  159. package/dist/conversations/event-log.d.ts +20 -5
  160. package/dist/conversations/event-log.js +60 -0
  161. package/dist/conversations/events.d.ts +84 -2
  162. package/dist/conversations/events.js +91 -17
  163. package/dist/conversations/queue.service.d.ts +1 -1
  164. package/dist/conversations/queue.service.js +5 -0
  165. package/dist/conversations/titles.d.ts +5 -3
  166. package/dist/conversations/titles.js +21 -8
  167. package/dist/conversations/tree.d.ts +17 -0
  168. package/dist/conversations/tree.js +42 -0
  169. package/dist/ctx/create-ctx.d.ts +20 -1
  170. package/dist/ctx/create-ctx.js +38 -7
  171. package/dist/db/kernel-schema.d.ts +386 -18
  172. package/dist/environments/access.d.ts +41 -0
  173. package/dist/environments/access.js +77 -0
  174. package/dist/environments/conversation-environments.d.ts +61 -0
  175. package/dist/environments/conversation-environments.js +170 -0
  176. package/dist/environments/dto.d.ts +25 -0
  177. package/dist/environments/dto.js +12 -0
  178. package/dist/environments/environments.controller.d.ts +33 -0
  179. package/dist/environments/environments.controller.js +110 -0
  180. package/dist/environments/environments.module.d.ts +8 -0
  181. package/dist/environments/environments.module.js +27 -0
  182. package/dist/environments/environments.service.d.ts +153 -0
  183. package/dist/environments/environments.service.js +541 -0
  184. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  185. package/dist/environments/legacy-cleanup.job.js +141 -0
  186. package/dist/errors.d.ts +85 -2
  187. package/dist/errors.js +85 -2
  188. package/dist/evals/reconstruct.d.ts +18 -9
  189. package/dist/evals/reconstruct.js +26 -7
  190. package/dist/evals/run-replay.d.ts +4 -2
  191. package/dist/evals/run-replay.js +20 -6
  192. package/dist/evals/runs.service.d.ts +2 -1
  193. package/dist/evals/runs.service.js +13 -12
  194. package/dist/evals/step-replay.d.ts +4 -6
  195. package/dist/evals/step-replay.js +4 -3
  196. package/dist/evals/trajectory.service.d.ts +8 -3
  197. package/dist/evals/trajectory.service.js +26 -14
  198. package/dist/evals/worker.d.ts +5 -5
  199. package/dist/evals/worker.js +9 -3
  200. package/dist/extensions/admin-ops.d.ts +36 -10
  201. package/dist/extensions/admin-ops.js +65 -42
  202. package/dist/extensions/admin-view.d.ts +37 -10
  203. package/dist/extensions/admin-view.js +103 -20
  204. package/dist/extensions/bootstrap.d.ts +17 -4
  205. package/dist/extensions/bootstrap.js +70 -9
  206. package/dist/extensions/cli.d.ts +12 -0
  207. package/dist/extensions/cli.js +11 -2
  208. package/dist/extensions/config-hash.d.ts +10 -0
  209. package/dist/extensions/config-hash.js +38 -0
  210. package/dist/extensions/deployment-config.d.ts +28 -5
  211. package/dist/extensions/deployment-config.js +48 -7
  212. package/dist/extensions/effective-config.d.ts +127 -0
  213. package/dist/extensions/effective-config.js +368 -0
  214. package/dist/extensions/extensions.module.js +11 -11
  215. package/dist/extensions/hooks.d.ts +37 -4
  216. package/dist/extensions/hooks.js +82 -16
  217. package/dist/extensions/host.d.ts +24 -10
  218. package/dist/extensions/host.js +49 -54
  219. package/dist/extensions/installs.d.ts +20 -8
  220. package/dist/extensions/installs.js +37 -15
  221. package/dist/extensions/org-config.d.ts +75 -6
  222. package/dist/extensions/org-config.js +184 -32
  223. package/dist/extensions/org-levels.d.ts +37 -0
  224. package/dist/extensions/org-levels.js +71 -0
  225. package/dist/extensions/org-overrides.d.ts +151 -0
  226. package/dist/extensions/org-overrides.js +524 -0
  227. package/dist/extensions/permission-view.d.ts +16 -4
  228. package/dist/extensions/permission-view.js +4 -4
  229. package/dist/extensions/plugin-items.d.ts +21 -0
  230. package/dist/extensions/plugin-items.js +42 -0
  231. package/dist/extensions/point-defaults.d.ts +12 -5
  232. package/dist/extensions/point-defaults.js +37 -9
  233. package/dist/extensions/resolve.d.ts +5 -1
  234. package/dist/extensions/resolve.js +15 -2
  235. package/dist/extensions/state.module.d.ts +9 -0
  236. package/dist/extensions/state.module.js +38 -0
  237. package/dist/files/previewers.d.ts +8 -1
  238. package/dist/files/previewers.js +35 -6
  239. package/dist/http/api.module.js +25 -3
  240. package/dist/http/app.d.ts +11 -2
  241. package/dist/http/app.js +31 -5
  242. package/dist/http/plugin-dispatch.d.ts +4 -1
  243. package/dist/http/plugin-dispatch.js +14 -2
  244. package/dist/identity/accounts.d.ts +29 -29
  245. package/dist/identity/accounts.js +47 -47
  246. package/dist/identity/audit.d.ts +2 -1
  247. package/dist/identity/auth.guard.d.ts +13 -5
  248. package/dist/identity/auth.guard.js +26 -9
  249. package/dist/identity/identity.module.d.ts +1 -1
  250. package/dist/identity/identity.module.js +4 -4
  251. package/dist/identity/me.controller.js +1 -1
  252. package/dist/identity/principal.d.ts +3 -3
  253. package/dist/identity/principal.js +3 -3
  254. package/dist/identity/settings.d.ts +22 -11
  255. package/dist/identity/settings.js +53 -18
  256. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  257. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  258. package/dist/inbox/inbox.module.d.ts +4 -1
  259. package/dist/inbox/inbox.module.js +7 -3
  260. package/dist/inbox/inbox.service.d.ts +62 -3
  261. package/dist/inbox/inbox.service.js +74 -4
  262. package/dist/inbox/org-notices.d.ts +63 -0
  263. package/dist/inbox/org-notices.js +91 -0
  264. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  265. package/dist/inbox/platform-inbox.controller.js +58 -0
  266. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  267. package/dist/inbox/platform-inbox.service.js +263 -0
  268. package/dist/inbox/platform-notices.d.ts +19 -0
  269. package/dist/inbox/platform-notices.js +9 -0
  270. package/dist/index.d.ts +1 -1
  271. package/dist/index.js +1 -1
  272. package/dist/infra/cli/kernel-cli.module.js +9 -1
  273. package/dist/infra/config/kernel-config.service.js +24 -1
  274. package/dist/infra/database/xact-lock.d.ts +1 -1
  275. package/dist/infra/database/xact-lock.js +1 -1
  276. package/dist/infra/events/kernel-events.d.ts +19 -2
  277. package/dist/infra/queue/add-job-once.d.ts +14 -0
  278. package/dist/infra/queue/add-job-once.js +16 -0
  279. package/dist/kernel.module.js +6 -0
  280. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  281. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  282. package/dist/models/embeddings.d.ts +82 -0
  283. package/dist/models/embeddings.js +326 -0
  284. package/dist/models/enablement.controller.d.ts +40 -0
  285. package/dist/models/enablement.controller.js +74 -0
  286. package/dist/models/enablement.d.ts +99 -0
  287. package/dist/models/enablement.js +263 -0
  288. package/dist/models/models.module.d.ts +5 -1
  289. package/dist/models/models.module.js +16 -4
  290. package/dist/models/prices.d.ts +5 -5
  291. package/dist/models/prices.js +4 -4
  292. package/dist/models/purposes.controller.d.ts +6 -4
  293. package/dist/models/purposes.controller.js +13 -7
  294. package/dist/models/purposes.d.ts +37 -12
  295. package/dist/models/purposes.js +63 -17
  296. package/dist/orgs/directory-sync.d.ts +14 -5
  297. package/dist/orgs/directory-sync.js +41 -17
  298. package/dist/orgs/offboarding.d.ts +9 -7
  299. package/dist/orgs/offboarding.js +28 -17
  300. package/dist/orgs/org-lock.d.ts +5 -0
  301. package/dist/orgs/org-lock.js +13 -0
  302. package/dist/orgs/org.guard.d.ts +10 -0
  303. package/dist/orgs/org.guard.js +43 -32
  304. package/dist/orgs/orgs.module.js +3 -0
  305. package/dist/orgs/orgs.service.d.ts +20 -7
  306. package/dist/orgs/orgs.service.js +32 -12
  307. package/dist/orgs/roles.d.ts +1 -1
  308. package/dist/orgs/roles.js +5 -1
  309. package/dist/orgs/settings.controller.d.ts +1 -1
  310. package/dist/orgs/settings.service.d.ts +15 -3
  311. package/dist/orgs/settings.service.js +6 -2
  312. package/dist/overrides.d.ts +3 -0
  313. package/dist/overrides.js +2 -0
  314. package/dist/platform/actor.d.ts +48 -0
  315. package/dist/platform/actor.js +100 -0
  316. package/dist/platform/agent-docs.d.ts +18 -0
  317. package/dist/platform/agent-docs.js +59 -0
  318. package/dist/platform/availability.d.ts +14 -0
  319. package/dist/platform/availability.js +43 -0
  320. package/dist/platform/errors.d.ts +11 -0
  321. package/dist/platform/errors.js +26 -0
  322. package/dist/platform/exclusions.d.ts +12 -0
  323. package/dist/platform/exclusions.js +1405 -0
  324. package/dist/platform/method.d.ts +6 -0
  325. package/dist/platform/method.js +15 -0
  326. package/dist/platform/operation.d.ts +92 -0
  327. package/dist/platform/operation.js +35 -0
  328. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  329. package/dist/platform/ops/agent-templates.ops.js +92 -0
  330. package/dist/platform/ops/agents.ops.d.ts +19 -0
  331. package/dist/platform/ops/agents.ops.js +294 -0
  332. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  333. package/dist/platform/ops/connectors.ops.js +126 -0
  334. package/dist/platform/ops/errors.d.ts +11 -0
  335. package/dist/platform/ops/errors.js +22 -0
  336. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  337. package/dist/platform/ops/extensions.ops.js +116 -0
  338. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  339. package/dist/platform/ops/marketplaces.ops.js +157 -0
  340. package/dist/platform/ops/paging.d.ts +14 -0
  341. package/dist/platform/ops/paging.js +20 -0
  342. package/dist/platform/ops/platform.ops.d.ts +23 -0
  343. package/dist/platform/ops/platform.ops.js +158 -0
  344. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  345. package/dist/platform/ops/plugins.ops.js +377 -0
  346. package/dist/platform/ops/requests.ops.d.ts +14 -0
  347. package/dist/platform/ops/requests.ops.js +153 -0
  348. package/dist/platform/ops/role.d.ts +4 -0
  349. package/dist/platform/ops/role.js +10 -0
  350. package/dist/platform/ops/skills.ops.d.ts +13 -0
  351. package/dist/platform/ops/skills.ops.js +98 -0
  352. package/dist/platform/ops/summary.d.ts +10 -0
  353. package/dist/platform/ops/summary.js +18 -0
  354. package/dist/platform/platform-ops.module.d.ts +7 -0
  355. package/dist/platform/platform-ops.module.js +55 -0
  356. package/dist/platform/platform.module.d.ts +8 -0
  357. package/dist/platform/platform.module.js +25 -0
  358. package/dist/platform/redact-orgs.d.ts +7 -0
  359. package/dist/platform/redact-orgs.js +52 -0
  360. package/dist/platform/registry.d.ts +30 -0
  361. package/dist/platform/registry.js +111 -0
  362. package/dist/roles/worker-role.d.ts +6 -4
  363. package/dist/roles/worker-role.js +14 -7
  364. package/dist/roles/worker.module.d.ts +1 -1
  365. package/dist/roles/worker.module.js +9 -1
  366. package/dist/runtime/context/build.d.ts +6 -4
  367. package/dist/runtime/context/build.js +26 -7
  368. package/dist/runtime/context/claude-tools.d.ts +2 -1
  369. package/dist/runtime/context/claude-tools.js +5 -4
  370. package/dist/runtime/context/compaction.js +9 -0
  371. package/dist/runtime/context/reminders.d.ts +2 -0
  372. package/dist/runtime/context/reminders.js +2 -0
  373. package/dist/runtime/context/skills.js +9 -2
  374. package/dist/runtime/context/tool-changes.d.ts +27 -0
  375. package/dist/runtime/context/tool-changes.js +60 -0
  376. package/dist/runtime/hook-calls.d.ts +8 -1
  377. package/dist/runtime/hook-calls.js +40 -7
  378. package/dist/runtime/langgraph-loop.d.ts +3 -1
  379. package/dist/runtime/langgraph-loop.js +35 -17
  380. package/dist/runtime/loop.d.ts +32 -4
  381. package/dist/runtime/maintenance.d.ts +7 -4
  382. package/dist/runtime/maintenance.js +23 -8
  383. package/dist/runtime/model-call.d.ts +38 -11
  384. package/dist/runtime/model-call.js +97 -24
  385. package/dist/runtime/providers.d.ts +146 -32
  386. package/dist/runtime/providers.js +321 -67
  387. package/dist/runtime/run-control.d.ts +11 -1
  388. package/dist/runtime/run-control.js +12 -0
  389. package/dist/runtime/run-drafts.d.ts +85 -0
  390. package/dist/runtime/run-drafts.js +230 -0
  391. package/dist/runtime/run-jobs.d.ts +3 -5
  392. package/dist/runtime/run-jobs.js +3 -7
  393. package/dist/runtime/run-queue.d.ts +37 -3
  394. package/dist/runtime/run-queue.js +188 -11
  395. package/dist/runtime/run-worker.d.ts +12 -6
  396. package/dist/runtime/run-worker.js +58 -35
  397. package/dist/runtime/runtime.module.js +3 -0
  398. package/dist/runtime/step-log.d.ts +9 -4
  399. package/dist/runtime/step-log.js +8 -5
  400. package/dist/runtime/stream.controller.d.ts +23 -1
  401. package/dist/runtime/stream.controller.js +60 -3
  402. package/dist/runtime/stream.d.ts +4 -1
  403. package/dist/runtime/stream.js +27 -3
  404. package/dist/runtime/subagents/child.d.ts +55 -7
  405. package/dist/runtime/subagents/child.js +105 -7
  406. package/dist/runtime/subagents/definition.d.ts +12 -3
  407. package/dist/runtime/subagents/definition.js +46 -32
  408. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  409. package/dist/runtime/subagents/deliveries.js +228 -0
  410. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  411. package/dist/runtime/subagents/dispatch.js +212 -141
  412. package/dist/runtime/subagents/limits.d.ts +24 -5
  413. package/dist/runtime/subagents/limits.js +40 -6
  414. package/dist/runtime/subagents/messages.d.ts +95 -0
  415. package/dist/runtime/subagents/messages.js +328 -0
  416. package/dist/runtime/subagents/preamble.d.ts +4 -4
  417. package/dist/runtime/subagents/preamble.js +9 -7
  418. package/dist/runtime/subagents/progress.d.ts +8 -6
  419. package/dist/runtime/subagents/progress.js +11 -6
  420. package/dist/runtime/subagents/render.d.ts +30 -0
  421. package/dist/runtime/subagents/render.js +53 -0
  422. package/dist/runtime/subagents/roster.d.ts +24 -7
  423. package/dist/runtime/subagents/roster.js +47 -11
  424. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  425. package/dist/runtime/subagents/skill-fork.js +8 -4
  426. package/dist/runtime/subagents/status.d.ts +14 -0
  427. package/dist/runtime/subagents/status.js +23 -0
  428. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  429. package/dist/runtime/subagents/subagents.service.js +11 -6
  430. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  431. package/dist/runtime/usage-report-jobs.js +158 -0
  432. package/dist/runtime/usage-report.d.ts +33 -38
  433. package/dist/runtime/usage-report.js +169 -96
  434. package/dist/runtime/waits.d.ts +140 -37
  435. package/dist/runtime/waits.js +394 -106
  436. package/dist/sandbox/jobs.d.ts +40 -13
  437. package/dist/sandbox/jobs.js +57 -20
  438. package/dist/sandbox/leases.d.ts +37 -54
  439. package/dist/sandbox/leases.js +71 -115
  440. package/dist/sandbox/providers.d.ts +2 -2
  441. package/dist/sandbox/providers.js +1 -1
  442. package/dist/sandbox/sandbox.module.d.ts +3 -2
  443. package/dist/sandbox/sandbox.module.js +4 -3
  444. package/dist/sandbox/sandbox.service.d.ts +229 -134
  445. package/dist/sandbox/sandbox.service.js +630 -409
  446. package/dist/skills/catalog.d.ts +3 -2
  447. package/dist/skills/catalog.js +21 -43
  448. package/dist/skills/changes.controller.d.ts +7 -0
  449. package/dist/skills/changes.controller.js +19 -1
  450. package/dist/skills/invoke.js +8 -3
  451. package/dist/skills/package.d.ts +20 -1
  452. package/dist/skills/package.js +28 -1
  453. package/dist/skills/skills.controller.d.ts +39 -4
  454. package/dist/skills/skills.controller.js +88 -10
  455. package/dist/skills/skills.module.js +10 -1
  456. package/dist/skills/skills.service.d.ts +106 -26
  457. package/dist/skills/skills.service.js +421 -75
  458. package/dist/skills/usable.d.ts +81 -0
  459. package/dist/skills/usable.js +379 -0
  460. package/dist/tools/approvals.service.d.ts +20 -2
  461. package/dist/tools/approvals.service.js +23 -4
  462. package/dist/tools/builtin-names.d.ts +21 -5
  463. package/dist/tools/builtin-names.js +30 -5
  464. package/dist/tools/builtins/agent.d.ts +23 -21
  465. package/dist/tools/builtins/agent.js +62 -55
  466. package/dist/tools/builtins/builtin-tools.d.ts +6 -2
  467. package/dist/tools/builtins/builtin-tools.js +37 -12
  468. package/dist/tools/builtins/handback.d.ts +28 -0
  469. package/dist/tools/builtins/handback.js +53 -0
  470. package/dist/tools/builtins/platform.d.ts +34 -0
  471. package/dist/tools/builtins/platform.js +362 -0
  472. package/dist/tools/builtins/sandbox/bash.js +13 -3
  473. package/dist/tools/builtins/sandbox/common.d.ts +43 -24
  474. package/dist/tools/builtins/sandbox/common.js +80 -45
  475. package/dist/tools/builtins/sandbox/edit.js +2 -2
  476. package/dist/tools/builtins/sandbox/glob.js +2 -2
  477. package/dist/tools/builtins/sandbox/grep.js +2 -4
  478. package/dist/tools/builtins/sandbox/index.d.ts +1 -1
  479. package/dist/tools/builtins/sandbox/index.js +1 -1
  480. package/dist/tools/builtins/sandbox/read.js +1 -1
  481. package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
  482. package/dist/tools/builtins/sandbox/task-output.js +30 -5
  483. package/dist/tools/builtins/sandbox/task-stop.js +2 -1
  484. package/dist/tools/builtins/sandbox/write.js +2 -2
  485. package/dist/tools/builtins/send-message.d.ts +56 -0
  486. package/dist/tools/builtins/send-message.js +100 -0
  487. package/dist/tools/builtins/skill-load.d.ts +22 -14
  488. package/dist/tools/builtins/skill-load.js +86 -57
  489. package/dist/tools/builtins/skill-write.js +1 -1
  490. package/dist/tools/builtins/web/extract.js +5 -1
  491. package/dist/tools/builtins/web/fetch.js +1 -0
  492. package/dist/tools/builtins/web/search.js +1 -0
  493. package/dist/tools/connectors.controller.d.ts +10 -0
  494. package/dist/tools/connectors.controller.js +12 -0
  495. package/dist/tools/connectors.service.d.ts +46 -5
  496. package/dist/tools/connectors.service.js +94 -15
  497. package/dist/tools/extension-tools.controller.d.ts +14 -0
  498. package/dist/tools/extension-tools.controller.js +37 -0
  499. package/dist/tools/info.d.ts +42 -1
  500. package/dist/tools/info.js +64 -1
  501. package/dist/tools/org-tool-switches.d.ts +74 -0
  502. package/dist/tools/org-tool-switches.js +184 -0
  503. package/dist/tools/pipeline.d.ts +46 -40
  504. package/dist/tools/pipeline.js +193 -364
  505. package/dist/tools/policy.d.ts +1 -1
  506. package/dist/tools/policy.js +36 -16
  507. package/dist/tools/registry.d.ts +98 -5
  508. package/dist/tools/registry.js +87 -9
  509. package/dist/tools/tools.module.js +12 -2
  510. package/dist/ui/views.d.ts +2 -1
  511. package/dist/ui/views.js +17 -3
  512. package/package.json +3 -3
  513. package/src/migrations/0074_subagent_tree.sql +50 -0
  514. package/src/migrations/0075_plugin_scope.sql +61 -0
  515. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  516. package/src/migrations/0077_scope_requests.sql +52 -0
  517. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  518. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  519. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  520. package/src/migrations/0081_platform_components.sql +129 -0
  521. package/src/migrations/0082_platform_migration.sql +33 -0
  522. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  523. package/src/migrations/0084_org_owned_items.sql +85 -0
  524. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  525. package/src/migrations/0086_org_layering.sql +30 -0
  526. package/src/migrations/0087_approval_summary.sql +6 -0
  527. package/src/migrations/0088_environments.sql +80 -0
  528. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  529. package/dist/catalog/upgrade-targets.d.ts +0 -56
  530. package/dist/catalog/upgrade-targets.js +0 -90
  531. package/dist/conversations/sandbox-status.d.ts +0 -24
  532. package/dist/conversations/sandbox-status.js +0 -52
  533. package/dist/extensions/org-config.controller.d.ts +0 -32
  534. package/dist/extensions/org-config.controller.js +0 -70
@@ -19,10 +19,10 @@ import { MAX_ATTACHMENTS } from "../tools/connector-content.js";
19
19
  import { ConversationToolInfo, TOOL_INFO_KEY_MAX, TOOL_INFO_MAX_KEYS, } from "../tools/info.js";
20
20
  import { ARTIFACT_DOWNLOAD_CACHE_SECONDS, ConversationArtifacts, } from "./artifacts.js";
21
21
  import { CONVERSATION_TITLE_MAX_CHARS, ConversationsService, } from "./conversations.service.js";
22
+ import { ConversationEnvironmentStatus } from "./environment-status.js";
22
23
  import { ConversationFiles, FILE_CONTENT_MAX_BYTES, FILES_PAGE_MAX, } from "./files.js";
23
24
  import { ConversationOutputs, OUTPUT_PAGE_MAX_CHARS } from "./outputs-read.js";
24
25
  import { ConversationQueue } from "./queue.service.js";
25
- import { ConversationSandboxStatus } from "./sandbox-status.js";
26
26
  /** Shared by the list and groups queries: title search, run activity and the archived list. */
27
27
  const searchFields = {
28
28
  q: z.string().min(1).max(100).optional(),
@@ -48,9 +48,16 @@ const SubagentsQuery = z.object({
48
48
  after: z.string().min(1).max(100).optional(),
49
49
  limit: z.coerce.number().int().min(1).max(100).default(50),
50
50
  });
51
- const EventsQuery = z.object({
52
- after: z.coerce.number().int().min(0).default(0),
51
+ const EventsQuery = z
52
+ .object({
53
+ after: z.coerce.number().int().min(0).optional(),
54
+ /** The page before this seq, or the log's last page (`end`); exclusive with `after`. */
55
+ before: z.union([z.literal("end"), z.coerce.number().int().min(1)]).optional(),
53
56
  limit: z.coerce.number().int().min(1).max(500).default(500),
57
+ })
58
+ .refine((q) => q.after === undefined || q.before === undefined, {
59
+ message: "after and before are exclusive",
60
+ path: ["before"],
54
61
  });
55
62
  /** `?keys=a,b`: 1–100 comma-separated tool keys of 1–200 characters each. */
56
63
  const ToolsQuery = z.object({
@@ -125,10 +132,13 @@ const MessageBody = MessageFields.strict().refine(...textRule);
125
132
  * `POST /conversations`: `message` creates the conversation with its first message (create on
126
133
  * first send; `clientMessageId` is required and makes a retry return the same conversation).
127
134
  * Without it the conversation is created empty (API clients; the web never does).
135
+ * `environmentId` binds it to one of the caller's environments; without it the caller's default
136
+ * environment (environments spec §4.1 item 1).
128
137
  */
129
138
  const CreateBody = z
130
139
  .object({
131
140
  agentId: z.string().min(1).max(100),
141
+ environmentId: z.string().min(1).max(100).optional(),
132
142
  message: MessageFields.omit({ retryOf: true })
133
143
  .extend({ clientMessageId: z.string().min(1).max(200) })
134
144
  .strict()
@@ -137,9 +147,7 @@ const CreateBody = z
137
147
  })
138
148
  .strict();
139
149
  /**
140
- * `POST …/queue`: the message fields that can be queued (no retry). A model / effort pick is checked
141
- * now and applied when the message is sent (final review I1). A skill invocation is rendered now
142
- * and checked again when sent (phase D Task 9).
150
+ * `POST …/queue` (deprecated, behaves as `POST …/messages`): the message fields (no retry).
143
151
  */
144
152
  const QueueBody = MessageFields.omit({ retryOf: true })
145
153
  .extend({ clientMessageId: z.string().min(1).max(200) })
@@ -205,15 +213,15 @@ let ConversationsController = class ConversationsController {
205
213
  conversations;
206
214
  outputs;
207
215
  artifacts;
208
- sandboxStatus;
216
+ environmentStatus;
209
217
  toolInfo;
210
218
  queue;
211
219
  files;
212
- constructor(conversations, outputs, artifacts, sandboxStatus, toolInfo, queue, files) {
220
+ constructor(conversations, outputs, artifacts, environmentStatus, toolInfo, queue, files) {
213
221
  this.conversations = conversations;
214
222
  this.outputs = outputs;
215
223
  this.artifacts = artifacts;
216
- this.sandboxStatus = sandboxStatus;
224
+ this.environmentStatus = environmentStatus;
217
225
  this.toolInfo = toolInfo;
218
226
  this.queue = queue;
219
227
  this.files = files;
@@ -225,9 +233,10 @@ let ConversationsController = class ConversationsController {
225
233
  */
226
234
  async create(principal, org, body, reply) {
227
235
  const p = requireUser(principal);
236
+ const pick = body.environmentId === undefined ? {} : { environmentId: body.environmentId };
228
237
  if (body.message === undefined) {
229
238
  return {
230
- conversation: await this.conversations.create(org.orgId, p.account.id, body.agentId),
239
+ conversation: await this.conversations.create(org.orgId, p.account.id, body.agentId, pick),
231
240
  };
232
241
  }
233
242
  const m = body.message;
@@ -239,7 +248,7 @@ let ConversationsController = class ConversationsController {
239
248
  ...(m.model !== undefined && { model: m.model }),
240
249
  ...(m.effort !== undefined && { effort: m.effort }),
241
250
  ...(m.skill !== undefined && { skill: m.skill }),
242
- });
251
+ }, pick);
243
252
  reply.status(out.created ? 201 : 200);
244
253
  return { conversation: out.conversation, event: out.event, events: out.events };
245
254
  }
@@ -302,11 +311,19 @@ let ConversationsController = class ConversationsController {
302
311
  const p = requireUser(principal);
303
312
  return { conversation: await this.conversations.get(org.orgId, id, p.account.id) };
304
313
  }
305
- /** `after` 之后的事件(seq 升序,最多 `limit` 条);客户端以最后一条的 seq 作为下一次的 `after`。 */
314
+ /**
315
+ * Events in ascending seq. `after`: those after it (at most `limit`; the client passes the last
316
+ * seq back as the next `after`). `before` (a seq, or `end` for the log's last page): the
317
+ * turn-aligned page before it, `{ events, turnsBefore }` (history paging spec §2).
318
+ */
306
319
  async events(principal, org, id, q) {
307
320
  const p = requireUser(principal);
321
+ if (q.before !== undefined) {
322
+ const before = q.before === "end" ? null : q.before;
323
+ return this.conversations.listEventsBefore(org.orgId, id, p.account.id, before, q.limit);
324
+ }
308
325
  return {
309
- events: await this.conversations.listEvents(org.orgId, id, p.account.id, q.after, q.limit),
326
+ events: await this.conversations.listEvents(org.orgId, id, p.account.id, q.after ?? 0, q.limit),
310
327
  };
311
328
  }
312
329
  /**
@@ -321,6 +338,15 @@ let ConversationsController = class ConversationsController {
321
338
  ...(q.after !== undefined && { after: q.after }),
322
339
  });
323
340
  }
341
+ /**
342
+ * The agent tree of a root conversation (agent map spec §8, §9.2): `{ root }`, each node with its
343
+ * status, model, time, tokens, tool calls and children. Owner only; a sub-agent's id is
344
+ * `conversation.not_found`.
345
+ */
346
+ async agentTree(principal, org, { id }) {
347
+ const p = requireUser(principal);
348
+ return this.conversations.agentTree(org.orgId, id, p.account.id);
349
+ }
324
350
  /**
325
351
  * The conversation's token usage, its sub-agents' included (sub-agents spec §8.3):
326
352
  * `{ usage: { inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens } }`. Owner only.
@@ -389,13 +415,13 @@ let ConversationsController = class ConversationsController {
389
415
  await reply.send(c.body);
390
416
  }
391
417
  /**
392
- * 对话沙箱的状态。响应体**不套外层键**,直接是 `{ status: "running" | "suspended", lastUsedAt }`
393
- * (不同于 `{ preview }`、`{ conversation }` 等;网页 `getSandboxStatus` 按此解析);
394
- * 没有可用的沙箱(未创建、已销毁)→ 404 `sandbox.not_found`。可见性与会话流相同。
418
+ * The environment the conversation works in (a sub-agent: its root's), as its owner sees it,
419
+ * with its instance state; `null` while unbound, or when the environment was deleted. Same
420
+ * visibility as the event stream.
395
421
  */
396
- async sandbox(principal, org, id) {
422
+ async environment(principal, org, id) {
397
423
  const p = requireUser(principal);
398
- return this.sandboxStatus.get(org.orgId, id, p.account.id);
424
+ return { environment: await this.environmentStatus.get(org.orgId, id, p.account.id) };
399
425
  }
400
426
  /**
401
427
  * Display metadata (title, kind, key arguments, source) of the tools a conversation's calls name,
@@ -429,22 +455,23 @@ let ConversationsController = class ConversationsController {
429
455
  return this.queue.list(org.orgId, id, p.account.id);
430
456
  }
431
457
  /**
432
- * Queues a message (201). The same `clientMessageId` again: 200 with the queued item, or with
433
- * `item: null` and the sent `event` once it went out. An idle conversation sends it at once.
458
+ * Deprecated: behaves as `POST …/messages` (202 `{ event }`): an interjection while a run is
459
+ * active, a new run otherwise; nothing is queued any more. Kept for older clients for one release;
460
+ * the leftover-item routes below keep working until the queue table is dropped (contract step).
434
461
  */
435
- async enqueue(principal, org, id, body, reply) {
462
+ async enqueue(principal, org, id, body) {
436
463
  const p = requireUser(principal);
437
- const out = await this.queue.add(org.orgId, id, p.account.id, {
438
- text: body.text,
439
- clientMessageId: body.clientMessageId,
440
- ...(body.attachments !== undefined && { attachments: body.attachments }),
441
- ...(body.files !== undefined && { files: body.files }),
442
- ...(body.model !== undefined && { model: body.model }),
443
- ...(body.effort !== undefined && { effort: body.effort }),
444
- ...(body.skill !== undefined && { skill: body.skill }),
445
- });
446
- reply.status(out.created ? 201 : 200);
447
- return { item: out.item, ...(out.event !== undefined && { event: out.event }) };
464
+ return {
465
+ event: await this.conversations.postUserMessage(org.orgId, id, p.account.id, {
466
+ text: body.text,
467
+ clientMessageId: body.clientMessageId,
468
+ ...(body.attachments !== undefined && { attachments: body.attachments }),
469
+ ...(body.files !== undefined && { files: body.files }),
470
+ ...(body.model !== undefined && { model: body.model }),
471
+ ...(body.effort !== undefined && { effort: body.effort }),
472
+ ...(body.skill !== undefined && { skill: body.skill }),
473
+ }),
474
+ };
448
475
  }
449
476
  /** "Continue sending" after a pause (202). Declared before `:itemId` routes. */
450
477
  async resumeQueue(principal, org, id) {
@@ -465,7 +492,13 @@ let ConversationsController = class ConversationsController {
465
492
  const p = requireUser(principal);
466
493
  return { event: await this.queue.sendNow(org.orgId, id, p.account.id, itemId) };
467
494
  }
468
- /** 中止当前运行(会话所有者):202 `{ runId }`;没有活跃运行 → 409 `run.not_active`。 */
495
+ /**
496
+ * Stops the current run (the conversation's owner): 202 `{ runId }`; nothing active → 409
497
+ * `run.not_active`. On a root conversation `runId` is the stopped run, and its background
498
+ * sub-agents keep working. On a sub-agent's conversation (the root's owner, at any depth) the
499
+ * sub-agent stops with every sub-agent below it, and `runId` is the sub-agent's latest run,
500
+ * which may already be finished when only its descendants were working (agent map spec §6).
501
+ */
469
502
  async abort(principal, org, id) {
470
503
  const p = requireUser(principal);
471
504
  return { runId: await this.conversations.abort(org.orgId, id, p.account.id) };
@@ -533,6 +566,14 @@ __decorate([
533
566
  __param(2, Param("id")),
534
567
  __param(3, ZQuery(ConversationSubagentsQueryDto))
535
568
  ], ConversationsController.prototype, "subagents", null);
569
+ __decorate([
570
+ Get(":id/agent-tree"),
571
+ Header("cache-control", "private, no-store"),
572
+ OrgAction("agents.use"),
573
+ __param(0, CurrentPrincipal()),
574
+ __param(1, CurrentOrg()),
575
+ __param(2, ZParam(ConversationIdParamsDto))
576
+ ], ConversationsController.prototype, "agentTree", null);
536
577
  __decorate([
537
578
  Get(":id/usage"),
538
579
  Header("cache-control", "private, no-store"),
@@ -589,13 +630,13 @@ __decorate([
589
630
  __param(5, Res())
590
631
  ], ConversationsController.prototype, "fileContent", null);
591
632
  __decorate([
592
- Get(":id/sandbox"),
633
+ Get(":id/environment"),
593
634
  Header("cache-control", "private, no-store"),
594
635
  OrgAction("agents.use"),
595
636
  __param(0, CurrentPrincipal()),
596
637
  __param(1, CurrentOrg()),
597
638
  __param(2, Param("id"))
598
- ], ConversationsController.prototype, "sandbox", null);
639
+ ], ConversationsController.prototype, "environment", null);
599
640
  __decorate([
600
641
  Get(":id/tools"),
601
642
  Header("cache-control", "private, no-store"),
@@ -624,12 +665,12 @@ __decorate([
624
665
  ], ConversationsController.prototype, "listQueue", null);
625
666
  __decorate([
626
667
  Post(":id/queue"),
668
+ HttpCode(202),
627
669
  OrgAction("agents.use"),
628
670
  __param(0, CurrentPrincipal()),
629
671
  __param(1, CurrentOrg()),
630
672
  __param(2, Param("id")),
631
- __param(3, ZBody(ConversationQueueBodyDto)),
632
- __param(4, Res({ passthrough: true }))
673
+ __param(3, ZBody(ConversationQueueBodyDto))
633
674
  ], ConversationsController.prototype, "enqueue", null);
634
675
  __decorate([
635
676
  Post(":id/queue/resume"),
@@ -679,7 +720,7 @@ ConversationsController = __decorate([
679
720
  __param(0, Inject(ConversationsService)),
680
721
  __param(1, Inject(ConversationOutputs)),
681
722
  __param(2, Inject(ConversationArtifacts)),
682
- __param(3, Inject(ConversationSandboxStatus)),
723
+ __param(3, Inject(ConversationEnvironmentStatus)),
683
724
  __param(4, Inject(ConversationToolInfo)),
684
725
  __param(5, Inject(ConversationQueue)),
685
726
  __param(6, Inject(ConversationFiles))
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Conversations: the one {@link ConversationsService} (messages, model switches, skill
3
3
  * invocations, sub-agent views, abort), the queue, the file / artifact / output reads and the
4
- * sandbox status. The event log, the access check and the attachments are their own modules (the
4
+ * conversation's environment. The event log, the access check and the attachments are their own modules (the
5
5
  * skills and tools use them too) and are re-exported here.
6
6
  */
7
7
  export declare class ConversationsModule {
@@ -7,9 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { Module } from "@nestjs/common";
8
8
  import { AgentLookupModule } from "../agents/agent-lookup.js";
9
9
  import { BackgroundModule } from "../background/background.module.js";
10
+ import { EnvironmentsModule } from "../environments/environments.module.js";
10
11
  import { ProvidersModule } from "../runtime/providers.js";
11
12
  import { RuntimeModule } from "../runtime/runtime.module.js";
12
- import { SandboxModule } from "../sandbox/sandbox.module.js";
13
13
  import { SkillsModule } from "../skills/skills.module.js";
14
14
  import { StorageModule } from "../storage/storage.module.js";
15
15
  import { ToolsModule } from "../tools/tools.module.js";
@@ -17,15 +17,15 @@ import { ConversationAccessModule } from "./access.js";
17
17
  import { ConversationArtifacts } from "./artifacts.js";
18
18
  import { AttachmentsModule } from "./attachments.module.js";
19
19
  import { ConversationsService } from "./conversations.service.js";
20
+ import { ConversationEnvironmentStatus } from "./environment-status.js";
20
21
  import { EventLogModule } from "./event-log.js";
21
22
  import { ConversationFiles } from "./files.js";
22
23
  import { ConversationOutputs } from "./outputs-read.js";
23
24
  import { ConversationQueue } from "./queue.service.js";
24
- import { ConversationSandboxStatus } from "./sandbox-status.js";
25
25
  /**
26
26
  * Conversations: the one {@link ConversationsService} (messages, model switches, skill
27
27
  * invocations, sub-agent views, abort), the queue, the file / artifact / output reads and the
28
- * sandbox status. The event log, the access check and the attachments are their own modules (the
28
+ * conversation's environment. The event log, the access check and the attachments are their own modules (the
29
29
  * skills and tools use them too) and are re-exported here.
30
30
  */
31
31
  let ConversationsModule = class ConversationsModule {
@@ -43,8 +43,8 @@ ConversationsModule = __decorate([
43
43
  // the run control (start a run after a message, stop runs) and the model provider registry
44
44
  RuntimeModule,
45
45
  ProvidersModule,
46
- // the sandbox status
47
- SandboxModule,
46
+ // the environment a conversation is bound to, and its view
47
+ EnvironmentsModule,
48
48
  // the stop of a deleted conversation's background tasks
49
49
  BackgroundModule,
50
50
  ],
@@ -54,7 +54,7 @@ ConversationsModule = __decorate([
54
54
  ConversationOutputs,
55
55
  ConversationArtifacts,
56
56
  ConversationFiles,
57
- ConversationSandboxStatus,
57
+ ConversationEnvironmentStatus,
58
58
  ],
59
59
  exports: [
60
60
  EventLogModule,
@@ -65,7 +65,7 @@ ConversationsModule = __decorate([
65
65
  ConversationOutputs,
66
66
  ConversationArtifacts,
67
67
  ConversationFiles,
68
- ConversationSandboxStatus,
68
+ ConversationEnvironmentStatus,
69
69
  ],
70
70
  })
71
71
  ], ConversationsModule);
@@ -2,6 +2,7 @@ import { AgentLookup } from "../agents/agent-lookup.js";
2
2
  import type { ModelRef } from "../agents/definition.js";
3
3
  import { BackgroundTaskStopper } from "../background/stop.js";
4
4
  import type { TitleSource } from "../db/kernel-schema.js";
5
+ import { ConversationEnvironments, type NewConversationEnvironment } from "../environments/conversation-environments.js";
5
6
  import { KernelDb } from "../infra/database/kernel-db.js";
6
7
  import { TransactionHost } from "../infra/database/transaction-host.js";
7
8
  import type { KernelLogger } from "../log.js";
@@ -9,6 +10,7 @@ import { ProviderRegistry } from "../runtime/providers.js";
9
10
  import { type RenderedInvocation, SkillInvoker } from "../skills/invoke.js";
10
11
  import { ConnectorContent } from "../tools/connector-content.js";
11
12
  import { ConversationAccess } from "./access.js";
13
+ import { type AgentTreeNode } from "./agent-tree.js";
12
14
  import { AttachmentsService } from "./attachments.service.js";
13
15
  import { EventLog } from "./event-log.js";
14
16
  import type { ConversationEvent, LogContentBlock } from "./events.js";
@@ -34,6 +36,12 @@ export interface ConversationView {
34
36
  subagentType: string | null;
35
37
  /** When the owner archived it; null = not archived (hidden from the default lists). */
36
38
  archivedAt: Date | null;
39
+ /**
40
+ * The environment it works in (environments spec §4.1 item 1); null while unbound (no sandbox
41
+ * provider when it was created, an anonymous IM sender's, or created before environments). A
42
+ * sub-agent's is null: it works in its root conversation's.
43
+ */
44
+ environmentId: string | null;
37
45
  /**
38
46
  * What the latest run is doing: `running` (queued or running), `waiting` (an approval or a
39
47
  * question), else null. Only the list queries compute it; other responses carry null.
@@ -85,6 +93,8 @@ export interface SubagentView {
85
93
  export interface RunControl {
86
94
  /** 有未消费的消息且没有进行中的运行时投递一轮运行;返回 runId 或 null。 */
87
95
  ensureRun(conversationId: string): Promise<string | null>;
96
+ /** After a root's queue was unpaused: the wakes it held for its tree (agent map spec §5.3). */
97
+ wakeHeldTree(rootId: string): Promise<void>;
88
98
  /**
89
99
  * 运行是孤儿(会话锁空闲、任务已不存在,没有 worker 会收到中止广播)时直接把它写成 aborted,返回 true;
90
100
  * 否则返回 false。
@@ -97,6 +107,13 @@ export interface RunControl {
97
107
  abortWaiting(conversationId: string, runId: string, byAccountId: string): Promise<boolean>;
98
108
  /** 请求中止运行(广播到所有副本)。 */
99
109
  requestAbort(runId: string, byAccountId: string): Promise<void>;
110
+ /**
111
+ * Stops a sub-agent with its descendants (with `includeSelf: false` only the sub-agent
112
+ * conversations below); the number of runs asked to stop (agent map spec §6).
113
+ */
114
+ stopTree(conversationId: string, byAccountId: string, opts?: {
115
+ includeSelf?: boolean;
116
+ }): Promise<number>;
100
117
  }
101
118
  /** 消息附件引用(连接器 + 资源 URI)。 */
102
119
  export interface AttachmentRef {
@@ -120,6 +137,11 @@ export interface ResolvedExtra {
120
137
  export { userMessageIdemKey } from "./idem-keys.js";
121
138
  /** The longest conversation title (characters, after trimming). */
122
139
  export declare const CONVERSATION_TITLE_MAX_CHARS = 120;
140
+ /**
141
+ * How far back a `before` page of events reaches past its `limit` for the start of a turn (history
142
+ * paging spec §2); a longer run starts mid-run.
143
+ */
144
+ export declare const EVENTS_TURN_EXTEND = 2000;
123
145
  /** A user message as posted (`POST …/messages`, or the first message of `POST /conversations`). */
124
146
  export interface UserMessageInput {
125
147
  text: string;
@@ -162,6 +184,8 @@ export declare class ConversationsService {
162
184
  private readonly invoker;
163
185
  /** Stops a deleted conversation's background tasks. */
164
186
  private readonly background;
187
+ /** The environment a new conversation is bound to (environments spec §4.1 item 1). */
188
+ private readonly environments;
165
189
  readonly txHost: TransactionHost;
166
190
  constructor(db: KernelDb, eventLog: EventLog, agents: Pick<AgentLookup, "get">, access: Pick<ConversationAccess, "isAccessible">,
167
191
  /** Starts and stops the conversation's runs. */
@@ -175,14 +199,21 @@ export declare class ConversationsService {
175
199
  /** Renders a person's skill invocation (phase D). */
176
200
  invoker: Pick<SkillInvoker, "prepare">,
177
201
  /** Stops a deleted conversation's background tasks. */
178
- background: Pick<BackgroundTaskStopper, "stopForDeletedConversation">, txHost: TransactionHost);
202
+ background: Pick<BackgroundTaskStopper, "stopForDeletedConversation">,
203
+ /** The environment a new conversation is bound to (environments spec §4.1 item 1). */
204
+ environments: Pick<ConversationEnvironments, "forNew">, txHost: TransactionHost);
179
205
  /**
180
206
  * 不阻塞地调用一次 `ensureRun`(打开 SSE、读事件时):它幂等,并顺带清理孤儿运行,
181
207
  * 会话不会因为某次运行结束后的投递失败而永远停在「运行中」。失败只记日志。
182
208
  */
183
209
  kickRun(conversationId: string): void;
184
- /** 新建会话;agent 对该账号不可用 → `agent.not_found`。 */
185
- create(orgId: string, accountId: string, agentId: string): Promise<ConversationView>;
210
+ /**
211
+ * Creates an empty conversation bound to its environment (`pick`, see
212
+ * {@link ConversationEnvironments.forNew}); an agent the account cannot use →
213
+ * `agent.not_found`, an environment it may not use → `environment.not_found` /
214
+ * `environment.unavailable`, and nothing is created.
215
+ */
216
+ create(orgId: string, accountId: string, agentId: string, pick?: NewConversationEnvironment): Promise<ConversationView>;
186
217
  /**
187
218
  * Creates a conversation together with its first message (UI refresh B, create on first send):
188
219
  * the conversation row and the `user_message` are written in one transaction, keyed by the
@@ -194,7 +225,7 @@ export declare class ConversationsService {
194
225
  */
195
226
  createWithMessage(orgId: string, accountId: string, agentId: string, input: UserMessageInput & {
196
227
  clientMessageId: string;
197
- }): Promise<{
228
+ }, pick?: NewConversationEnvironment): Promise<{
198
229
  conversation: ConversationView;
199
230
  event: ConversationEvent;
200
231
  events: ConversationEvent[];
@@ -222,12 +253,13 @@ export declare class ConversationsService {
222
253
  /**
223
254
  * Soft-deletes a conversation (owner only; a sub-agent's conversation is `conversation.read_only`):
224
255
  * stops an active run, hides the conversation everywhere for its owner and drops its channel
225
- * bindings, then stops every running background task in its sandbox (its sub-agents' too;
226
- * outside the delete's transaction, a task whose sandbox cannot be reached ends `lost` with
227
- * `kill_pending`). The tasks are stopped after the conversation is marked deleted, so no finish
256
+ * bindings, stops every running background task in its sandbox (its sub-agents' too; outside
257
+ * the delete's transaction, a task whose sandbox cannot be reached ends `lost` with
258
+ * `kill_pending`), then every active run of its sub-agent tree (agent map spec §10). The tasks
259
+ * are stopped after the conversation is marked deleted, so no finish
228
260
  * (the stops' own, or one the poller writes meanwhile) can wake a run on it: `ensureRun` refuses a
229
261
  * deleted conversation (the stops' finishes carry `stoppedBy: "deletion"` as well). The event
230
- * log, runs and trajectory stay (enterprise admins still see them).
262
+ * log, runs and trajectory stay (super admins still see them).
231
263
  */
232
264
  remove(orgId: string, conversationId: string, accountId: string): Promise<void>;
233
265
  private markDeleted;
@@ -289,17 +321,37 @@ export declare class ConversationsService {
289
321
  next: string | null;
290
322
  }>;
291
323
  /**
292
- * A conversation's token usage: its own `usage` events (compaction included) plus those of its
293
- * sub-agents (sub-agents spec §8.3), whose logs keep their own. Owner only, as {@link get}.
324
+ * The agent tree of a root conversation (agent map spec §8, §9.2): the root and every sub-agent
325
+ * below it with status, model, time, tokens and tool calls. Owner only, as {@link isAccessible};
326
+ * a sub-agent's id (not a root) is `conversation.not_found` too.
327
+ */
328
+ agentTree(orgId: string, conversationId: string, viewerAccountId: string): Promise<{
329
+ root: AgentTreeNode;
330
+ }>;
331
+ /**
332
+ * A conversation's token usage: its own `usage` events (compaction included) plus those of every
333
+ * sub-agent below it, at any depth (sub-agents spec §8.3, agent map spec §6: every descendant
334
+ * counts toward the root; `conversationTree`), whose logs keep their own. Owner only, as
335
+ * {@link get}.
294
336
  */
295
337
  usage(orgId: string, conversationId: string, viewerAccountId: string): Promise<UsageTotals>;
296
338
  /**
297
- * The conversation whose sandbox `conversationId` works in: a sub-agent's is its parent's
298
- * (sub-agents spec §10.1), any other its own. Call only after an access check.
339
+ * The conversation whose sandbox `conversationId` works in: a sub-agent's is its root
340
+ * conversation's at any depth (sub-agents spec §10.1, agent map spec §6), any other its own. Call
341
+ * only after an access check.
299
342
  */
300
343
  sandboxConversationOf(orgId: string, conversationId: string): Promise<string>;
301
344
  /** 读事件(先做 `get` 的可见性判定);顺带不阻塞地 {@link kickRun}。 */
302
345
  listEvents(orgId: string, conversationId: string, viewerAccountId: string, afterSeq: number, limit: number): Promise<ConversationEvent[]>;
346
+ /**
347
+ * The turn-aligned page of events before `beforeSeq` (`null`: the log's last page), with how
348
+ * many runs started before it ({@link EventLog.readTurnPageBefore}; history paging spec §2).
349
+ * Visibility as {@link get}; kicks a stalled run as {@link listEvents} does.
350
+ */
351
+ listEventsBefore(orgId: string, conversationId: string, viewerAccountId: string, beforeSeq: number | null, limit: number): Promise<{
352
+ events: ConversationEvent[];
353
+ turnsBefore: number;
354
+ }>;
303
355
  /**
304
356
  * 追加一条用户消息;带 `clientMessageId` 时重复提交返回同一事件。写入后调用 `ensureRun`:
305
357
  * 没有进行中的运行时投递一轮;运行中则由当前运行在步骤间隙吸收,或在它结束时再次 `ensureRun`。
@@ -320,9 +372,10 @@ export declare class ConversationsService {
320
372
  * The selection a message switches to, or null when it changes nothing. A model equal to the
321
373
  * agent's means "back to the agent's model" (null); a model change without `effort` resets the
322
374
  * effort. The target model must resolve (`agent.model_unavailable`) and declare the effort
323
- * (`validation_failed`). Resolving is the agent editor's check: providers are deployment-scoped
324
- * and serve chat models only. If per-org provider enablement is added, this check and the run
325
- * worker's `fallBackIfUnavailable` must follow it.
375
+ * (`validation_failed`). Resolving is the agent editor's check, for the org (its effective
376
+ * provider config, spec B §5.5) and its disabled lists: a model the platform or the org disabled,
377
+ * or a non-chat model, is refused (spec B §5.3), as the run worker's `fallBackIfUnavailable` falls
378
+ * back from it.
326
379
  */
327
380
  private planSwitch;
328
381
  /**
@@ -360,6 +413,11 @@ export declare class ConversationsService {
360
413
  * 中止会话当前的运行(queued / running / waiting):返回 runId;没有 → `run.not_active`。
361
414
  * 等人处理的运行没有 worker:直接取消等待并写终态。其余经 Redis 广播,运行所在的任意副本都会收到;
362
415
  * 运行已是孤儿(没有任何 worker 在执行)时直接写终态。
416
+ *
417
+ * A root conversation's stop stops only its own run: its background sub-agents keep working
418
+ * (agent map spec §6). A sub-agent's conversation (its owner, from the agent map) stops that
419
+ * sub-agent with every descendant (`RunControl.stopTree`); `run.not_active` when nothing in that
420
+ * subtree runs, else the sub-agent's latest run id.
363
421
  */
364
422
  abort(orgId: string, conversationId: string, accountId: string): Promise<string>;
365
423
  }