@capybara-hq/kernel 0.1.0-rc.3 → 0.1.0-rc.5

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 (604) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +47 -16
  3. package/dist/admin/admin.controller.js +44 -19
  4. package/dist/admin/extensions.controller.d.ts +24 -3
  5. package/dist/admin/extensions.controller.js +48 -8
  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 +19 -0
  13. package/dist/agents/agent-lookup.js +21 -0
  14. package/dist/agents/agent-profile.service.d.ts +29 -0
  15. package/dist/agents/agent-profile.service.js +117 -0
  16. package/dist/agents/agents.controller.d.ts +168 -3
  17. package/dist/agents/agents.controller.js +201 -12
  18. package/dist/agents/agents.module.d.ts +4 -1
  19. package/dist/agents/agents.module.js +36 -6
  20. package/dist/agents/agents.service.d.ts +64 -27
  21. package/dist/agents/agents.service.js +199 -74
  22. package/dist/agents/definition.d.ts +53 -0
  23. package/dist/agents/definition.js +55 -0
  24. package/dist/agents/from-template.d.ts +106 -0
  25. package/dist/agents/from-template.js +649 -0
  26. package/dist/agents/from-template.service.d.ts +60 -0
  27. package/dist/agents/from-template.service.js +161 -0
  28. package/dist/agents/instruction-files.d.ts +60 -0
  29. package/dist/agents/instruction-files.js +111 -0
  30. package/dist/agents/models.controller.d.ts +9 -3
  31. package/dist/agents/models.controller.js +19 -4
  32. package/dist/agents/org-templates.d.ts +176 -0
  33. package/dist/agents/org-templates.js +827 -0
  34. package/dist/agents/pending-connector-requests.d.ts +77 -0
  35. package/dist/agents/pending-connector-requests.js +215 -0
  36. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  37. package/dist/agents/pending-connectors.controller.js +91 -0
  38. package/dist/agents/pending-connectors.service.d.ts +62 -0
  39. package/dist/agents/pending-connectors.service.js +282 -0
  40. package/dist/agents/profile.d.ts +96 -0
  41. package/dist/agents/profile.js +51 -0
  42. package/dist/agents/readiness.controller.d.ts +26 -0
  43. package/dist/agents/readiness.controller.js +56 -0
  44. package/dist/agents/templates.controller.d.ts +86 -5
  45. package/dist/agents/templates.controller.js +171 -7
  46. package/dist/agents/templates.d.ts +127 -23
  47. package/dist/agents/templates.js +476 -53
  48. package/dist/background/background.controller.d.ts +38 -0
  49. package/dist/background/background.controller.js +87 -0
  50. package/dist/background/background.module.d.ts +10 -0
  51. package/dist/background/background.module.js +39 -0
  52. package/dist/background/finish.d.ts +44 -0
  53. package/dist/background/finish.js +94 -0
  54. package/dist/background/launch-lock.d.ts +15 -0
  55. package/dist/background/launch-lock.js +40 -0
  56. package/dist/background/launch.d.ts +36 -0
  57. package/dist/background/launch.js +70 -0
  58. package/dist/background/poll.job.d.ts +56 -0
  59. package/dist/background/poll.job.js +190 -0
  60. package/dist/background/render.d.ts +23 -0
  61. package/dist/background/render.js +48 -0
  62. package/dist/background/session.d.ts +48 -0
  63. package/dist/background/session.js +79 -0
  64. package/dist/background/status.d.ts +35 -0
  65. package/dist/background/status.js +57 -0
  66. package/dist/background/stop.d.ts +68 -0
  67. package/dist/background/stop.js +243 -0
  68. package/dist/background/store.d.ts +162 -0
  69. package/dist/background/store.js +357 -0
  70. package/dist/background/store.module.d.ts +6 -0
  71. package/dist/background/store.module.js +22 -0
  72. package/dist/background/tasks.service.d.ts +77 -0
  73. package/dist/background/tasks.service.js +211 -0
  74. package/dist/background/wake-rules.d.ts +66 -0
  75. package/dist/background/wake-rules.js +113 -0
  76. package/dist/background/wake.d.ts +30 -0
  77. package/dist/background/wake.js +63 -0
  78. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  79. package/dist/catalog/admin-catalog.controller.js +213 -42
  80. package/dist/catalog/catalog-content.d.ts +58 -32
  81. package/dist/catalog/catalog-content.js +34 -8
  82. package/dist/catalog/catalog-import.module.d.ts +7 -0
  83. package/dist/catalog/catalog-import.module.js +60 -0
  84. package/dist/catalog/catalog-items.d.ts +111 -7
  85. package/dist/catalog/catalog-items.js +279 -13
  86. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  87. package/dist/catalog/catalog-scope.service.js +1116 -0
  88. package/dist/catalog/catalog.module.d.ts +7 -9
  89. package/dist/catalog/catalog.module.js +41 -31
  90. package/dist/catalog/catalog.service.d.ts +101 -29
  91. package/dist/catalog/catalog.service.js +104 -106
  92. package/dist/catalog/claude/agents.js +2 -0
  93. package/dist/catalog/cli.d.ts +11 -1
  94. package/dist/catalog/cli.js +26 -1
  95. package/dist/catalog/component-promotion.d.ts +96 -0
  96. package/dist/catalog/component-promotion.js +395 -0
  97. package/dist/catalog/component-scope.controller.d.ts +152 -0
  98. package/dist/catalog/component-scope.controller.js +287 -0
  99. package/dist/catalog/component-scope.service.d.ts +303 -0
  100. package/dist/catalog/component-scope.service.js +936 -0
  101. package/dist/catalog/component-state.d.ts +174 -0
  102. package/dist/catalog/component-state.js +437 -0
  103. package/dist/catalog/job-ids.d.ts +30 -0
  104. package/dist/catalog/job-ids.js +25 -0
  105. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  106. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  107. package/dist/catalog/marketplaces.controller.js +56 -7
  108. package/dist/catalog/marketplaces.service.d.ts +54 -14
  109. package/dist/catalog/marketplaces.service.js +71 -22
  110. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  111. package/dist/catalog/org-catalog.controller.js +181 -65
  112. package/dist/catalog/org-catalog.service.d.ts +65 -33
  113. package/dist/catalog/org-catalog.service.js +324 -157
  114. package/dist/catalog/org-extension-switch.d.ts +41 -0
  115. package/dist/catalog/org-extension-switch.js +115 -0
  116. package/dist/catalog/org-extension.controller.d.ts +119 -0
  117. package/dist/catalog/org-extension.controller.js +266 -0
  118. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  119. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  120. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  121. package/dist/catalog/org-plugin-uploads.js +116 -0
  122. package/dist/catalog/owned-items.d.ts +184 -0
  123. package/dist/catalog/owned-items.js +789 -0
  124. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  125. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  126. package/dist/catalog/ownership.d.ts +172 -0
  127. package/dist/catalog/ownership.js +326 -0
  128. package/dist/catalog/platform-components.d.ts +221 -0
  129. package/dist/catalog/platform-components.js +761 -0
  130. package/dist/catalog/platform-migration.d.ts +115 -0
  131. package/dist/catalog/platform-migration.js +582 -0
  132. package/dist/catalog/plugin-import.d.ts +178 -34
  133. package/dist/catalog/plugin-import.js +623 -83
  134. package/dist/catalog/plugin-install.d.ts +185 -41
  135. package/dist/catalog/plugin-install.js +758 -126
  136. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  137. package/dist/catalog/plugin-upgrade.js +1148 -1137
  138. package/dist/catalog/request-rules.d.ts +65 -0
  139. package/dist/catalog/request-rules.js +217 -0
  140. package/dist/catalog/requests.service.d.ts +193 -118
  141. package/dist/catalog/requests.service.js +526 -343
  142. package/dist/catalog/reserved-names.d.ts +8 -0
  143. package/dist/catalog/reserved-names.js +42 -0
  144. package/dist/catalog/scope-orgs.d.ts +21 -0
  145. package/dist/catalog/scope-orgs.js +67 -0
  146. package/dist/catalog/scope-state.d.ts +35 -0
  147. package/dist/catalog/scope-state.js +87 -0
  148. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  149. package/dist/catalog/scope-sync-workers.js +29 -0
  150. package/dist/catalog/scope-sync.d.ts +176 -0
  151. package/dist/catalog/scope-sync.js +576 -0
  152. package/dist/catalog/scope.d.ts +42 -0
  153. package/dist/catalog/scope.js +42 -0
  154. package/dist/catalog/unshare.d.ts +22 -0
  155. package/dist/catalog/unshare.js +118 -0
  156. package/dist/channels/actions.js +1 -0
  157. package/dist/channels/cards.js +21 -3
  158. package/dist/channels/channels.module.js +2 -0
  159. package/dist/channels/connections.service.d.ts +16 -1
  160. package/dist/channels/connections.service.js +38 -4
  161. package/dist/channels/inbound.d.ts +9 -1
  162. package/dist/channels/inbound.js +67 -5
  163. package/dist/channels/phrases.d.ts +35 -0
  164. package/dist/channels/phrases.js +29 -0
  165. package/dist/channels/threads.d.ts +5 -0
  166. package/dist/channels/threads.js +8 -0
  167. package/dist/config/docs.js +3 -1
  168. package/dist/config/schema.d.ts +24 -2
  169. package/dist/config/schema.js +145 -19
  170. package/dist/conversations/access.d.ts +6 -4
  171. package/dist/conversations/access.js +29 -5
  172. package/dist/conversations/agent-tree.d.ts +46 -0
  173. package/dist/conversations/agent-tree.js +92 -0
  174. package/dist/conversations/attachments.service.d.ts +30 -0
  175. package/dist/conversations/attachments.service.js +130 -5
  176. package/dist/conversations/conversations.controller.d.ts +79 -23
  177. package/dist/conversations/conversations.controller.js +141 -50
  178. package/dist/conversations/conversations.module.d.ts +1 -1
  179. package/dist/conversations/conversations.module.js +10 -7
  180. package/dist/conversations/conversations.service.d.ts +108 -9
  181. package/dist/conversations/conversations.service.js +237 -30
  182. package/dist/conversations/environment-status.d.ts +24 -0
  183. package/dist/conversations/environment-status.js +71 -0
  184. package/dist/conversations/event-log.d.ts +21 -6
  185. package/dist/conversations/event-log.js +70 -1
  186. package/dist/conversations/events.d.ts +140 -0
  187. package/dist/conversations/events.js +142 -13
  188. package/dist/conversations/queue.d.ts +3 -1
  189. package/dist/conversations/queue.js +13 -2
  190. package/dist/conversations/queue.service.d.ts +1 -1
  191. package/dist/conversations/queue.service.js +8 -1
  192. package/dist/conversations/titles.d.ts +12 -3
  193. package/dist/conversations/titles.js +36 -8
  194. package/dist/conversations/tree.d.ts +17 -0
  195. package/dist/conversations/tree.js +42 -0
  196. package/dist/ctx/create-ctx.d.ts +5 -0
  197. package/dist/ctx/create-ctx.js +15 -5
  198. package/dist/db/kernel-schema.d.ts +420 -20
  199. package/dist/db/pool.d.ts +5 -0
  200. package/dist/db/pool.js +3 -0
  201. package/dist/environments/access.d.ts +41 -0
  202. package/dist/environments/access.js +77 -0
  203. package/dist/environments/conversation-environments.d.ts +61 -0
  204. package/dist/environments/conversation-environments.js +170 -0
  205. package/dist/environments/dto.d.ts +25 -0
  206. package/dist/environments/dto.js +12 -0
  207. package/dist/environments/environments.controller.d.ts +33 -0
  208. package/dist/environments/environments.controller.js +110 -0
  209. package/dist/environments/environments.module.d.ts +8 -0
  210. package/dist/environments/environments.module.js +27 -0
  211. package/dist/environments/environments.service.d.ts +153 -0
  212. package/dist/environments/environments.service.js +541 -0
  213. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  214. package/dist/environments/legacy-cleanup.job.js +141 -0
  215. package/dist/errors.d.ts +90 -2
  216. package/dist/errors.js +90 -2
  217. package/dist/evals/reconstruct.d.ts +18 -9
  218. package/dist/evals/reconstruct.js +26 -7
  219. package/dist/evals/run-replay.d.ts +7 -2
  220. package/dist/evals/run-replay.js +42 -7
  221. package/dist/evals/step-replay.d.ts +2 -5
  222. package/dist/evals/step-replay.js +13 -7
  223. package/dist/evals/trajectory.js +1 -1
  224. package/dist/evals/trajectory.service.d.ts +8 -3
  225. package/dist/evals/trajectory.service.js +26 -14
  226. package/dist/evals/worker.d.ts +5 -5
  227. package/dist/evals/worker.js +9 -3
  228. package/dist/extensions/admin-ops.d.ts +36 -10
  229. package/dist/extensions/admin-ops.js +67 -42
  230. package/dist/extensions/admin-view.d.ts +39 -10
  231. package/dist/extensions/admin-view.js +111 -20
  232. package/dist/extensions/blobs.js +1 -0
  233. package/dist/extensions/bootstrap.d.ts +17 -4
  234. package/dist/extensions/bootstrap.js +70 -9
  235. package/dist/extensions/cli.d.ts +12 -0
  236. package/dist/extensions/cli.js +11 -2
  237. package/dist/extensions/config-issues.d.ts +13 -1
  238. package/dist/extensions/config-issues.js +22 -5
  239. package/dist/extensions/config-json-schema.d.ts +43 -7
  240. package/dist/extensions/config-json-schema.js +124 -58
  241. package/dist/extensions/deployment-config-store.d.ts +6 -0
  242. package/dist/extensions/deployment-config.d.ts +78 -8
  243. package/dist/extensions/deployment-config.js +172 -34
  244. package/dist/extensions/display-name.d.ts +22 -0
  245. package/dist/extensions/display-name.js +77 -0
  246. package/dist/extensions/effective-config.d.ts +127 -0
  247. package/dist/extensions/effective-config.js +368 -0
  248. package/dist/extensions/extensions.module.js +14 -2
  249. package/dist/extensions/hooks.d.ts +37 -4
  250. package/dist/extensions/hooks.js +82 -16
  251. package/dist/extensions/host.d.ts +45 -2
  252. package/dist/extensions/host.js +112 -16
  253. package/dist/extensions/installs.d.ts +20 -8
  254. package/dist/extensions/installs.js +37 -15
  255. package/dist/extensions/org-config.d.ts +81 -6
  256. package/dist/extensions/org-config.js +195 -44
  257. package/dist/extensions/org-levels.d.ts +37 -0
  258. package/dist/extensions/org-levels.js +71 -0
  259. package/dist/extensions/org-overrides.d.ts +151 -0
  260. package/dist/extensions/org-overrides.js +524 -0
  261. package/dist/extensions/package.d.ts +14 -1
  262. package/dist/extensions/package.js +51 -2
  263. package/dist/extensions/permission-view.d.ts +19 -4
  264. package/dist/extensions/permission-view.js +4 -4
  265. package/dist/extensions/plugin-items.d.ts +21 -0
  266. package/dist/extensions/plugin-items.js +42 -0
  267. package/dist/extensions/point-defaults.controller.d.ts +34 -0
  268. package/dist/extensions/point-defaults.controller.js +71 -0
  269. package/dist/extensions/point-defaults.d.ts +71 -0
  270. package/dist/extensions/point-defaults.js +234 -0
  271. package/dist/extensions/registry.d.ts +1 -1
  272. package/dist/extensions/registry.js +2 -0
  273. package/dist/extensions/resolve.d.ts +5 -1
  274. package/dist/extensions/resolve.js +15 -2
  275. package/dist/files/previewers.d.ts +8 -1
  276. package/dist/files/previewers.js +35 -6
  277. package/dist/http/api.module.js +31 -3
  278. package/dist/http/app.d.ts +11 -2
  279. package/dist/http/app.js +31 -5
  280. package/dist/http/nest-logger.d.ts +6 -5
  281. package/dist/http/nest-logger.js +24 -10
  282. package/dist/identity/accounts.d.ts +29 -29
  283. package/dist/identity/accounts.js +47 -47
  284. package/dist/identity/audit.d.ts +2 -1
  285. package/dist/identity/auth.controller.js +9 -5
  286. package/dist/identity/auth.guard.d.ts +13 -5
  287. package/dist/identity/auth.guard.js +26 -9
  288. package/dist/identity/cookies.d.ts +20 -5
  289. package/dist/identity/cookies.js +44 -6
  290. package/dist/identity/identity.module.d.ts +1 -1
  291. package/dist/identity/identity.module.js +4 -4
  292. package/dist/identity/me.controller.d.ts +5 -1
  293. package/dist/identity/me.controller.js +12 -3
  294. package/dist/identity/principal.d.ts +3 -3
  295. package/dist/identity/principal.js +3 -3
  296. package/dist/identity/sessions.d.ts +12 -0
  297. package/dist/identity/sessions.js +45 -0
  298. package/dist/identity/settings.d.ts +22 -11
  299. package/dist/identity/settings.js +53 -18
  300. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  301. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  302. package/dist/inbox/inbox.module.d.ts +4 -1
  303. package/dist/inbox/inbox.module.js +7 -3
  304. package/dist/inbox/inbox.service.d.ts +62 -3
  305. package/dist/inbox/inbox.service.js +74 -4
  306. package/dist/inbox/org-notices.d.ts +63 -0
  307. package/dist/inbox/org-notices.js +91 -0
  308. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  309. package/dist/inbox/platform-inbox.controller.js +58 -0
  310. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  311. package/dist/inbox/platform-inbox.service.js +263 -0
  312. package/dist/inbox/platform-notices.d.ts +19 -0
  313. package/dist/inbox/platform-notices.js +9 -0
  314. package/dist/index.d.ts +2 -2
  315. package/dist/index.js +1 -1
  316. package/dist/infra/cli/kernel-cli.module.js +9 -1
  317. package/dist/infra/config/kernel-config.service.js +27 -1
  318. package/dist/infra/database/database.module.js +1 -0
  319. package/dist/infra/database/xact-lock.d.ts +1 -1
  320. package/dist/infra/database/xact-lock.js +1 -1
  321. package/dist/infra/events/kernel-events.d.ts +19 -2
  322. package/dist/infra/lifecycle/process-guards.js +4 -0
  323. package/dist/infra/logging/logging.module.d.ts +4 -2
  324. package/dist/infra/logging/logging.module.js +24 -6
  325. package/dist/infra/queue/add-job-once.d.ts +14 -0
  326. package/dist/infra/queue/add-job-once.js +16 -0
  327. package/dist/infra/queue/redis-connection.d.ts +6 -0
  328. package/dist/infra/queue/redis-connection.js +7 -0
  329. package/dist/infra/redis/redis.module.js +6 -2
  330. package/dist/infra/tokens.d.ts +6 -1
  331. package/dist/infra/tokens.js +6 -1
  332. package/dist/kernel.module.js +6 -0
  333. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  334. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  335. package/dist/log.d.ts +13 -1
  336. package/dist/log.js +93 -17
  337. package/dist/models/prices.d.ts +5 -5
  338. package/dist/models/prices.js +4 -4
  339. package/dist/models/purposes.controller.d.ts +6 -4
  340. package/dist/models/purposes.controller.js +13 -7
  341. package/dist/models/purposes.d.ts +43 -9
  342. package/dist/models/purposes.js +48 -18
  343. package/dist/orgs/directory-sync.d.ts +14 -5
  344. package/dist/orgs/directory-sync.js +41 -17
  345. package/dist/orgs/offboarding.d.ts +12 -8
  346. package/dist/orgs/offboarding.js +54 -33
  347. package/dist/orgs/org-lock.d.ts +5 -0
  348. package/dist/orgs/org-lock.js +13 -0
  349. package/dist/orgs/org.guard.d.ts +10 -0
  350. package/dist/orgs/org.guard.js +43 -32
  351. package/dist/orgs/orgs.module.js +3 -0
  352. package/dist/orgs/orgs.service.d.ts +20 -7
  353. package/dist/orgs/orgs.service.js +32 -12
  354. package/dist/orgs/roles.d.ts +1 -1
  355. package/dist/orgs/roles.js +5 -1
  356. package/dist/orgs/settings.controller.d.ts +1 -1
  357. package/dist/orgs/settings.service.d.ts +20 -3
  358. package/dist/orgs/settings.service.js +19 -4
  359. package/dist/overrides.d.ts +3 -0
  360. package/dist/overrides.js +2 -0
  361. package/dist/platform/actor.d.ts +48 -0
  362. package/dist/platform/actor.js +100 -0
  363. package/dist/platform/agent-docs.d.ts +18 -0
  364. package/dist/platform/agent-docs.js +59 -0
  365. package/dist/platform/availability.d.ts +14 -0
  366. package/dist/platform/availability.js +43 -0
  367. package/dist/platform/errors.d.ts +11 -0
  368. package/dist/platform/errors.js +26 -0
  369. package/dist/platform/exclusions.d.ts +12 -0
  370. package/dist/platform/exclusions.js +1387 -0
  371. package/dist/platform/method.d.ts +6 -0
  372. package/dist/platform/method.js +15 -0
  373. package/dist/platform/operation.d.ts +92 -0
  374. package/dist/platform/operation.js +35 -0
  375. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  376. package/dist/platform/ops/agent-templates.ops.js +92 -0
  377. package/dist/platform/ops/agents.ops.d.ts +19 -0
  378. package/dist/platform/ops/agents.ops.js +294 -0
  379. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  380. package/dist/platform/ops/connectors.ops.js +126 -0
  381. package/dist/platform/ops/errors.d.ts +11 -0
  382. package/dist/platform/ops/errors.js +22 -0
  383. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  384. package/dist/platform/ops/extensions.ops.js +116 -0
  385. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  386. package/dist/platform/ops/marketplaces.ops.js +157 -0
  387. package/dist/platform/ops/paging.d.ts +14 -0
  388. package/dist/platform/ops/paging.js +20 -0
  389. package/dist/platform/ops/platform.ops.d.ts +23 -0
  390. package/dist/platform/ops/platform.ops.js +158 -0
  391. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  392. package/dist/platform/ops/plugins.ops.js +377 -0
  393. package/dist/platform/ops/requests.ops.d.ts +14 -0
  394. package/dist/platform/ops/requests.ops.js +153 -0
  395. package/dist/platform/ops/role.d.ts +4 -0
  396. package/dist/platform/ops/role.js +10 -0
  397. package/dist/platform/ops/skills.ops.d.ts +13 -0
  398. package/dist/platform/ops/skills.ops.js +98 -0
  399. package/dist/platform/ops/summary.d.ts +10 -0
  400. package/dist/platform/ops/summary.js +18 -0
  401. package/dist/platform/platform-ops.module.d.ts +7 -0
  402. package/dist/platform/platform-ops.module.js +55 -0
  403. package/dist/platform/platform.module.d.ts +8 -0
  404. package/dist/platform/platform.module.js +25 -0
  405. package/dist/platform/redact-orgs.d.ts +7 -0
  406. package/dist/platform/redact-orgs.js +52 -0
  407. package/dist/platform/registry.d.ts +30 -0
  408. package/dist/platform/registry.js +111 -0
  409. package/dist/roles/worker-role.d.ts +6 -4
  410. package/dist/roles/worker-role.js +14 -7
  411. package/dist/roles/worker.module.d.ts +1 -1
  412. package/dist/roles/worker.module.js +15 -1
  413. package/dist/runtime/context/build.d.ts +11 -7
  414. package/dist/runtime/context/build.js +46 -19
  415. package/dist/runtime/context/claude-tools.d.ts +3 -1
  416. package/dist/runtime/context/claude-tools.js +8 -6
  417. package/dist/runtime/context/compaction.js +13 -0
  418. package/dist/runtime/context/reminders.d.ts +2 -0
  419. package/dist/runtime/context/reminders.js +2 -0
  420. package/dist/runtime/context/skills.js +9 -2
  421. package/dist/runtime/context/tool-changes.d.ts +27 -0
  422. package/dist/runtime/context/tool-changes.js +60 -0
  423. package/dist/runtime/hook-calls.js +2 -0
  424. package/dist/runtime/langgraph-loop.d.ts +3 -1
  425. package/dist/runtime/langgraph-loop.js +36 -17
  426. package/dist/runtime/loop.d.ts +34 -5
  427. package/dist/runtime/maintenance.d.ts +9 -4
  428. package/dist/runtime/maintenance.js +35 -8
  429. package/dist/runtime/model-call.d.ts +46 -8
  430. package/dist/runtime/model-call.js +72 -21
  431. package/dist/runtime/providers.d.ts +6 -0
  432. package/dist/runtime/providers.js +8 -0
  433. package/dist/runtime/run-control.d.ts +11 -1
  434. package/dist/runtime/run-control.js +12 -0
  435. package/dist/runtime/run-drafts.d.ts +85 -0
  436. package/dist/runtime/run-drafts.js +230 -0
  437. package/dist/runtime/run-jobs.d.ts +3 -5
  438. package/dist/runtime/run-jobs.js +3 -7
  439. package/dist/runtime/run-queue.d.ts +59 -2
  440. package/dist/runtime/run-queue.js +311 -38
  441. package/dist/runtime/run-worker.d.ts +11 -5
  442. package/dist/runtime/run-worker.js +69 -33
  443. package/dist/runtime/runtime.module.js +11 -3
  444. package/dist/runtime/step-log.d.ts +15 -4
  445. package/dist/runtime/step-log.js +24 -7
  446. package/dist/runtime/stream.controller.d.ts +23 -1
  447. package/dist/runtime/stream.controller.js +60 -3
  448. package/dist/runtime/stream.d.ts +4 -1
  449. package/dist/runtime/stream.js +27 -3
  450. package/dist/runtime/subagents/child.d.ts +55 -7
  451. package/dist/runtime/subagents/child.js +105 -7
  452. package/dist/runtime/subagents/definition.d.ts +12 -3
  453. package/dist/runtime/subagents/definition.js +44 -28
  454. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  455. package/dist/runtime/subagents/deliveries.js +228 -0
  456. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  457. package/dist/runtime/subagents/dispatch.js +212 -141
  458. package/dist/runtime/subagents/limits.d.ts +24 -5
  459. package/dist/runtime/subagents/limits.js +40 -6
  460. package/dist/runtime/subagents/messages.d.ts +95 -0
  461. package/dist/runtime/subagents/messages.js +328 -0
  462. package/dist/runtime/subagents/preamble.d.ts +4 -4
  463. package/dist/runtime/subagents/preamble.js +9 -7
  464. package/dist/runtime/subagents/progress.d.ts +8 -6
  465. package/dist/runtime/subagents/progress.js +11 -6
  466. package/dist/runtime/subagents/render.d.ts +30 -0
  467. package/dist/runtime/subagents/render.js +53 -0
  468. package/dist/runtime/subagents/roster.d.ts +24 -7
  469. package/dist/runtime/subagents/roster.js +47 -11
  470. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  471. package/dist/runtime/subagents/skill-fork.js +8 -4
  472. package/dist/runtime/subagents/status.d.ts +14 -0
  473. package/dist/runtime/subagents/status.js +23 -0
  474. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  475. package/dist/runtime/subagents/subagents.service.js +11 -6
  476. package/dist/runtime/usage-report.d.ts +2 -1
  477. package/dist/runtime/usage-report.js +19 -13
  478. package/dist/runtime/waits.d.ts +145 -36
  479. package/dist/runtime/waits.js +423 -109
  480. package/dist/sandbox/jobs.d.ts +40 -13
  481. package/dist/sandbox/jobs.js +57 -20
  482. package/dist/sandbox/leases.d.ts +37 -54
  483. package/dist/sandbox/leases.js +71 -115
  484. package/dist/sandbox/providers.d.ts +2 -2
  485. package/dist/sandbox/providers.js +1 -1
  486. package/dist/sandbox/sandbox.module.d.ts +3 -2
  487. package/dist/sandbox/sandbox.module.js +10 -4
  488. package/dist/sandbox/sandbox.service.d.ts +282 -129
  489. package/dist/sandbox/sandbox.service.js +736 -381
  490. package/dist/skills/catalog.d.ts +3 -2
  491. package/dist/skills/catalog.js +21 -43
  492. package/dist/skills/changes.controller.d.ts +7 -0
  493. package/dist/skills/changes.controller.js +19 -1
  494. package/dist/skills/invoke.js +8 -3
  495. package/dist/skills/package.d.ts +20 -1
  496. package/dist/skills/package.js +28 -1
  497. package/dist/skills/skills.controller.d.ts +39 -4
  498. package/dist/skills/skills.controller.js +88 -10
  499. package/dist/skills/skills.module.js +10 -1
  500. package/dist/skills/skills.service.d.ts +106 -26
  501. package/dist/skills/skills.service.js +421 -75
  502. package/dist/skills/usable.d.ts +81 -0
  503. package/dist/skills/usable.js +379 -0
  504. package/dist/tools/approvals.service.d.ts +20 -2
  505. package/dist/tools/approvals.service.js +25 -4
  506. package/dist/tools/builtin-names.d.ts +41 -7
  507. package/dist/tools/builtin-names.js +59 -7
  508. package/dist/tools/builtins/agent.d.ts +23 -21
  509. package/dist/tools/builtins/agent.js +62 -55
  510. package/dist/tools/builtins/builtin-tools.d.ts +19 -1
  511. package/dist/tools/builtins/builtin-tools.js +59 -2
  512. package/dist/tools/builtins/handback.d.ts +28 -0
  513. package/dist/tools/builtins/handback.js +53 -0
  514. package/dist/tools/builtins/platform.d.ts +34 -0
  515. package/dist/tools/builtins/platform.js +362 -0
  516. package/dist/tools/builtins/sandbox/bash.d.ts +1 -1
  517. package/dist/tools/builtins/sandbox/bash.js +241 -4
  518. package/dist/tools/builtins/sandbox/common.d.ts +69 -27
  519. package/dist/tools/builtins/sandbox/common.js +87 -48
  520. package/dist/tools/builtins/sandbox/deliver.js +1 -1
  521. package/dist/tools/builtins/sandbox/edit.js +2 -2
  522. package/dist/tools/builtins/sandbox/glob.js +2 -2
  523. package/dist/tools/builtins/sandbox/grep.js +2 -4
  524. package/dist/tools/builtins/sandbox/index.d.ts +3 -1
  525. package/dist/tools/builtins/sandbox/index.js +7 -1
  526. package/dist/tools/builtins/sandbox/read.js +1 -1
  527. package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
  528. package/dist/tools/builtins/sandbox/task-output.js +329 -0
  529. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  530. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  531. package/dist/tools/builtins/sandbox/write.js +2 -2
  532. package/dist/tools/builtins/send-message.d.ts +56 -0
  533. package/dist/tools/builtins/send-message.js +100 -0
  534. package/dist/tools/builtins/skill-load.d.ts +22 -14
  535. package/dist/tools/builtins/skill-load.js +86 -57
  536. package/dist/tools/builtins/skill-write.js +1 -1
  537. package/dist/tools/builtins/web/errors.d.ts +8 -0
  538. package/dist/tools/builtins/web/errors.js +53 -0
  539. package/dist/tools/builtins/web/extract.d.ts +62 -0
  540. package/dist/tools/builtins/web/extract.js +271 -0
  541. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  542. package/dist/tools/builtins/web/fetch.js +175 -0
  543. package/dist/tools/builtins/web/index.d.ts +13 -0
  544. package/dist/tools/builtins/web/index.js +12 -0
  545. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  546. package/dist/tools/builtins/web/page-cache.js +77 -0
  547. package/dist/tools/builtins/web/search.d.ts +25 -0
  548. package/dist/tools/builtins/web/search.js +210 -0
  549. package/dist/tools/builtins/web/url.d.ts +17 -0
  550. package/dist/tools/builtins/web/url.js +43 -0
  551. package/dist/tools/connectors.controller.d.ts +10 -0
  552. package/dist/tools/connectors.controller.js +12 -0
  553. package/dist/tools/connectors.service.d.ts +46 -5
  554. package/dist/tools/connectors.service.js +94 -15
  555. package/dist/tools/extension-tools.controller.d.ts +14 -0
  556. package/dist/tools/extension-tools.controller.js +37 -0
  557. package/dist/tools/info.d.ts +42 -1
  558. package/dist/tools/info.js +64 -1
  559. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  560. package/dist/tools/oauth/flow-paths.js +1 -1
  561. package/dist/tools/org-tool-switches.d.ts +74 -0
  562. package/dist/tools/org-tool-switches.js +184 -0
  563. package/dist/tools/pipeline.d.ts +46 -40
  564. package/dist/tools/pipeline.js +202 -364
  565. package/dist/tools/policy.d.ts +1 -1
  566. package/dist/tools/policy.js +36 -16
  567. package/dist/tools/registry.d.ts +120 -8
  568. package/dist/tools/registry.js +112 -19
  569. package/dist/tools/tools.module.js +24 -2
  570. package/dist/tools/validate.js +1 -1
  571. package/dist/ui/views.d.ts +2 -1
  572. package/dist/ui/views.js +17 -3
  573. package/package.json +3 -3
  574. package/src/migrations/0064_account_last_org.sql +7 -0
  575. package/src/migrations/0065_conversation_archive.sql +8 -0
  576. package/src/migrations/0066_extension_display_name.sql +4 -0
  577. package/src/migrations/0067_agent_profiles.sql +20 -0
  578. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  579. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  580. package/src/migrations/0070_background_tasks.sql +37 -0
  581. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  582. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  583. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  584. package/src/migrations/0074_subagent_tree.sql +50 -0
  585. package/src/migrations/0075_plugin_scope.sql +61 -0
  586. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  587. package/src/migrations/0077_scope_requests.sql +52 -0
  588. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  589. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  590. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  591. package/src/migrations/0081_platform_components.sql +129 -0
  592. package/src/migrations/0082_platform_migration.sql +33 -0
  593. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  594. package/src/migrations/0084_org_owned_items.sql +85 -0
  595. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  596. package/src/migrations/0086_org_layering.sql +30 -0
  597. package/src/migrations/0087_approval_summary.sql +6 -0
  598. package/src/migrations/0088_environments.sql +80 -0
  599. package/dist/catalog/upgrade-targets.d.ts +0 -56
  600. package/dist/catalog/upgrade-targets.js +0 -90
  601. package/dist/conversations/sandbox-status.d.ts +0 -24
  602. package/dist/conversations/sandbox-status.js +0 -52
  603. package/dist/extensions/org-config.controller.d.ts +0 -24
  604. package/dist/extensions/org-config.controller.js +0 -62
@@ -28,13 +28,16 @@ export declare const conversationTopic: (conversationId: string) => string;
28
28
  * 会话频道上的总线消息:
29
29
  * - `events`:会话日志已推进到 `toSeq`(订阅方据此 `readAfter` 补读,消息本身不携带事件);
30
30
  * - `delta`:运行的流式增量(文本 / 思考 / `step_reset`:丢弃该步此前推出的增量),只是草稿,
31
- * 最终内容以日志中的 assistant_message 为准。`offset`(仅 text):本步本次尝试中此前已推出的文本字符数,
32
- * 中途才订阅的一方据此判断自己是否从头收到了该步的文本(渠道出站投递只在完整时发草稿);
31
+ * 最终内容以日志中的 assistant_message 为准。`offset` (text and thinking): the characters of
32
+ * that channel this attempt of the step streamed before the delta; a subscriber that joined midway
33
+ * tells by it whether it has the step's text from the start (the channel outbound only drafts
34
+ * complete text) and drops what a live draft already covers (spec 2026-11-07 §3.2);
33
35
  * - `ui`:插件经 `ctx.ui.invalidate` 告知这个会话的某个界面贡献变了(不进日志、不是模型可见内容),
34
36
  * SSE 转发为 `event: ui`,网页据此重新取视图。
35
- * - `subagent_progress`: after each step of a sub-agent run, on its **parent's** topic (sub-agents
36
- * spec §14.2): the child's step and tool call count so far, and its last tool's key. Not in any
37
- * log; the SSE forwards it as `event: subagent_progress` (data without `kind`).
37
+ * - `subagent_progress`: after each step of a sub-agent run, on the topic of **every ancestor**
38
+ * (sub-agents spec §14.2, agent map spec §8), `subagentId` the progressing agent: its step and
39
+ * tool call count so far, and its last tool's key. Not in any log; the SSE forwards it as
40
+ * `event: subagent_progress` (data without `kind`).
38
41
  */
39
42
  export type ConversationBusMessage = {
40
43
  kind: "events";
@@ -64,7 +67,7 @@ export type ConversationBusMessage = {
64
67
  * What changed about a conversation outside its event log (UI refresh B): the SSE stream sends it as
65
68
  * `event: changed` with `{ what }`, and the web refetches that part. Never model-visible.
66
69
  */
67
- export declare const CONVERSATION_CHANGES: readonly ["title", "queue", "selection", "files"];
70
+ export declare const CONVERSATION_CHANGES: readonly ["title", "queue", "selection", "files", "archived", "deleted", "background"];
68
71
  export type ConversationChange = (typeof CONVERSATION_CHANGES)[number];
69
72
  /**
70
73
  * 会话事件日志:只追加,是 agent 运行的唯一事实来源。
@@ -107,6 +110,18 @@ export declare class EventLog {
107
110
  publishChanged(conversationId: string, what: ConversationChange): Promise<void>;
108
111
  /** 读 `afterSeq` 之后的事件,按 seq 升序,最多 `limit` 条。 */
109
112
  readAfter(conversationId: string, afterSeq: number, limit?: number): Promise<ConversationEvent[]>;
113
+ /**
114
+ * The page of the log that ends right before `beforeSeq` (`null`: the log's end), in ascending
115
+ * seq: the last `limit` events before it, extended back so the first event is the log's first or
116
+ * the first one after a run's end (`run_finished` / `run_failed` / `run_aborted`), at most
117
+ * `extend` events further back (a longer run then starts mid-run). `turnsBefore`: how many runs
118
+ * started (distinct `run_id` of `run_started`) before the page's first event. History paging
119
+ * spec §2.
120
+ */
121
+ readTurnPageBefore(conversationId: string, beforeSeq: number | null, limit: number, extend: number): Promise<{
122
+ events: ConversationEvent[];
123
+ turnsBefore: number;
124
+ }>;
110
125
  /**
111
126
  * 读 `afterSeq` 之后、属于 `runIds` 中某次运行的事件,按 seq 升序,最多 `limit` 条(轨迹按运行分页用)。
112
127
  * `runIds` 为空时返回空数组。走部分索引 `conversation_events_run_idx (conversation_id, run_id, seq)`(0027):
@@ -41,7 +41,16 @@ export const conversationTopic = (conversationId) => `conv.${conversationId}`;
41
41
  * What changed about a conversation outside its event log (UI refresh B): the SSE stream sends it as
42
42
  * `event: changed` with `{ what }`, and the web refetches that part. Never model-visible.
43
43
  */
44
- export const CONVERSATION_CHANGES = ["title", "queue", "selection", "files"];
44
+ export const CONVERSATION_CHANGES = [
45
+ "title",
46
+ "queue",
47
+ "selection",
48
+ "files",
49
+ "archived",
50
+ "deleted",
51
+ // the conversation's background tasks (or its sub-agents')
52
+ "background",
53
+ ];
45
54
  const notFound = () => new ApiError("conversation.not_found", "Conversation not found");
46
55
  function toEvent(r) {
47
56
  return {
@@ -146,6 +155,66 @@ let EventLog = class EventLog {
146
155
  .execute();
147
156
  return rows.map(toEvent);
148
157
  }
158
+ /**
159
+ * The page of the log that ends right before `beforeSeq` (`null`: the log's end), in ascending
160
+ * seq: the last `limit` events before it, extended back so the first event is the log's first or
161
+ * the first one after a run's end (`run_finished` / `run_failed` / `run_aborted`), at most
162
+ * `extend` events further back (a longer run then starts mid-run). `turnsBefore`: how many runs
163
+ * started (distinct `run_id` of `run_started`) before the page's first event. History paging
164
+ * spec §2.
165
+ */
166
+ async readTurnPageBefore(conversationId, beforeSeq, limit, extend) {
167
+ let q = this.db
168
+ .selectFrom("conversation_events")
169
+ .select(EVENT_COLUMNS)
170
+ .where("conversation_id", "=", conversationId);
171
+ if (beforeSeq !== null)
172
+ q = q.where("seq", "<", String(beforeSeq));
173
+ const rows = (await q.orderBy("seq", "desc").limit(limit).execute()).reverse();
174
+ const first = rows[0] === undefined ? null : Number(rows[0].seq);
175
+ if (first === null)
176
+ return { events: [], turnsBefore: 0 };
177
+ let start = first;
178
+ if (first > 1) {
179
+ // the latest run end at or before the event just above the page, within the extension
180
+ const end = await this.db
181
+ .selectFrom("conversation_events")
182
+ .select((eb) => eb.fn.max("seq").as("seq"))
183
+ .where("conversation_id", "=", conversationId)
184
+ .where("seq", "<", String(first))
185
+ .where("seq", ">=", String(Math.max(1, first - 1 - extend)))
186
+ .where("type", "in", ["run_finished", "run_failed", "run_aborted"])
187
+ .executeTakeFirst();
188
+ // none within reach: the page starts at the log's start when that is in reach, else mid-run
189
+ if (end?.seq != null)
190
+ start = Number(end.seq) + 1;
191
+ else if (first - 1 <= extend)
192
+ start = 1;
193
+ }
194
+ const head = start < first
195
+ ? await this.db
196
+ .selectFrom("conversation_events")
197
+ .select(EVENT_COLUMNS)
198
+ .where("conversation_id", "=", conversationId)
199
+ .where("seq", ">=", String(start))
200
+ .where("seq", "<", String(first))
201
+ .orderBy("seq")
202
+ .execute()
203
+ : [];
204
+ const turns = start > 1
205
+ ? await this.db
206
+ .selectFrom("conversation_events")
207
+ .select((eb) => eb.fn.count("run_id").distinct().as("n"))
208
+ .where("conversation_id", "=", conversationId)
209
+ .where("type", "=", "run_started")
210
+ .where("seq", "<", String(start))
211
+ .executeTakeFirst()
212
+ : undefined;
213
+ return {
214
+ events: [...head, ...rows].map(toEvent),
215
+ turnsBefore: Number(turns?.n ?? 0),
216
+ };
217
+ }
149
218
  /**
150
219
  * 读 `afterSeq` 之后、属于 `runIds` 中某次运行的事件,按 seq 升序,最多 `limit` 条(轨迹按运行分页用)。
151
220
  * `runIds` 为空时返回空数组。走部分索引 `conversation_events_run_idx (conversation_id, run_id, seq)`(0027):
@@ -132,6 +132,19 @@ export declare const ToolViewSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
132
132
  }, z.core.$strip>>;
133
133
  }, z.core.$strip>], "kind">;
134
134
  export type ToolView = z.infer<typeof ToolViewSchema>;
135
+ /**
136
+ * How a sub-agent's run ended (`subagent_finished`, a `subagent_delivery` finish). `timed_out`:
137
+ * stopped by the parent's sub-agents wait timeout (`run_aborted.detail`).
138
+ */
139
+ export declare const SubagentFinishStatusSchema: z.ZodEnum<{
140
+ aborted: "aborted";
141
+ budget: "budget";
142
+ completed: "completed";
143
+ failed: "failed";
144
+ max_duration: "max_duration";
145
+ max_steps: "max_steps";
146
+ timed_out: "timed_out";
147
+ }>;
135
148
  /**
136
149
  * 会话事件(`type` + `payload`)的判别联合。事件日志只追加,写入前用它校验 payload;
137
150
  * 读出时按写入时的形状原样返回。
@@ -223,6 +236,10 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
223
236
  parentConversationId: z.ZodString;
224
237
  parentRunId: z.ZodString;
225
238
  callId: z.ZodString;
239
+ kind: z.ZodOptional<z.ZodEnum<{
240
+ message: "message";
241
+ task: "task";
242
+ }>>;
226
243
  narrowed: z.ZodOptional<z.ZodObject<{
227
244
  tools: z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
228
245
  kind: z.ZodLiteral<"builtin">;
@@ -272,6 +289,12 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
272
289
  model: z.ZodString;
273
290
  }, z.core.$strip>;
274
291
  triggerAccountId: z.ZodString;
292
+ trigger: z.ZodOptional<z.ZodEnum<{
293
+ background_task: "background_task";
294
+ message: "message";
295
+ subagent: "subagent";
296
+ }>>;
297
+ triggerSeq: z.ZodOptional<z.ZodNumber>;
275
298
  }, z.core.$strip>;
276
299
  }, z.core.$strip>, z.ZodObject<{
277
300
  type: z.ZodLiteral<"model_call">;
@@ -406,7 +429,9 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
406
429
  purpose: z.ZodOptional<z.ZodEnum<{
407
430
  compaction: "compaction";
408
431
  title: "title";
432
+ web_fetch: "web_fetch";
409
433
  }>>;
434
+ callId: z.ZodOptional<z.ZodString>;
410
435
  }, z.core.$strip>;
411
436
  }, z.core.$strip>, z.ZodObject<{
412
437
  type: z.ZodLiteral<"reminder">;
@@ -414,6 +439,13 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
414
439
  step: z.ZodNumber;
415
440
  text: z.ZodString;
416
441
  }, z.core.$strip>;
442
+ }, z.core.$strip>, z.ZodObject<{
443
+ type: z.ZodLiteral<"tools_changed">;
444
+ payload: z.ZodObject<{
445
+ step: z.ZodNumber;
446
+ added: z.ZodArray<z.ZodString>;
447
+ removed: z.ZodArray<z.ZodString>;
448
+ }, z.core.$strip>;
417
449
  }, z.core.$strip>, z.ZodObject<{
418
450
  type: z.ZodLiteral<"tool_call_started">;
419
451
  payload: z.ZodObject<{
@@ -496,6 +528,13 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
496
528
  }, z.core.$strip>, z.ZodObject<{
497
529
  type: z.ZodLiteral<"approval_requested">;
498
530
  payload: z.ZodObject<{
531
+ requestedFor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
532
+ approverRole: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
533
+ admin: "admin";
534
+ guest: "guest";
535
+ member: "member";
536
+ owner: "owner";
537
+ }>>>;
499
538
  step: z.ZodNumber;
500
539
  callId: z.ZodString;
501
540
  approvalId: z.ZodString;
@@ -649,6 +688,7 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
649
688
  id: z.ZodOptional<z.ZodString>;
650
689
  version: z.ZodOptional<z.ZodNumber>;
651
690
  plugin: z.ZodOptional<z.ZodString>;
691
+ platformTemplateId: z.ZodOptional<z.ZodString>;
652
692
  invokedSkill: z.ZodOptional<z.ZodObject<{
653
693
  id: z.ZodString;
654
694
  version: z.ZodNumber;
@@ -659,6 +699,10 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
659
699
  name: z.ZodString;
660
700
  avatarUrl: z.ZodDefault<z.ZodNullable<z.ZodURL>>;
661
701
  instructions: z.ZodDefault<z.ZodString>;
702
+ instructionFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
703
+ name: z.ZodString;
704
+ content: z.ZodString;
705
+ }, z.core.$strict>>>;
662
706
  model: z.ZodObject<{
663
707
  provider: z.ZodString;
664
708
  model: z.ZodString;
@@ -729,6 +773,28 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
729
773
  }, z.core.$strict>>>;
730
774
  dispatchable: z.ZodOptional<z.ZodBoolean>;
731
775
  }, z.core.$strict>>;
776
+ pendingConnectors: z.ZodOptional<z.ZodArray<z.ZodObject<{
777
+ key: z.ZodString;
778
+ label: z.ZodString;
779
+ source: z.ZodUnion<readonly [z.ZodObject<{
780
+ template: z.ZodString;
781
+ }, z.core.$strict>, z.ZodObject<{
782
+ needs: z.ZodObject<{
783
+ protocol: z.ZodEnum<{
784
+ mcp: "mcp";
785
+ openapi: "openapi";
786
+ }>;
787
+ endpoint: z.ZodString;
788
+ tools: z.ZodArray<z.ZodString>;
789
+ label: z.ZodString;
790
+ }, z.core.$strict>;
791
+ }, z.core.$strict>]>;
792
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
793
+ policies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
794
+ ask: "ask";
795
+ deny: "deny";
796
+ }>>>;
797
+ }, z.core.$strict>>>;
732
798
  }, z.core.$strip>;
733
799
  preamble: z.ZodString;
734
800
  maxSteps: z.ZodNumber;
@@ -754,8 +820,16 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
754
820
  }, z.core.$strip>, z.ZodObject<{
755
821
  type: z.ZodLiteral<"subagent_waiting">;
756
822
  payload: z.ZodObject<{
823
+ requestedFor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
824
+ approverRole: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
825
+ admin: "admin";
826
+ guest: "guest";
827
+ member: "member";
828
+ owner: "owner";
829
+ }>>>;
757
830
  subagentId: z.ZodString;
758
831
  childRunId: z.ZodString;
832
+ path: z.ZodArray<z.ZodString>;
759
833
  kind: z.ZodEnum<{
760
834
  approval: "approval";
761
835
  connect: "connect";
@@ -791,6 +865,35 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
791
865
  cacheWriteTokens: z.ZodNumber;
792
866
  }, z.core.$strip>;
793
867
  }, z.core.$strip>;
868
+ }, z.core.$strip>, z.ZodObject<{
869
+ type: z.ZodLiteral<"subagent_delivery">;
870
+ payload: z.ZodObject<{
871
+ subagentId: z.ZodString;
872
+ childRunId: z.ZodString;
873
+ description: z.ZodString;
874
+ kind: z.ZodEnum<{
875
+ finished: "finished";
876
+ note: "note";
877
+ report: "report";
878
+ }>;
879
+ text: z.ZodString;
880
+ status: z.ZodOptional<z.ZodEnum<{
881
+ aborted: "aborted";
882
+ budget: "budget";
883
+ completed: "completed";
884
+ failed: "failed";
885
+ max_duration: "max_duration";
886
+ max_steps: "max_steps";
887
+ timed_out: "timed_out";
888
+ }>>;
889
+ handedBack: z.ZodOptional<z.ZodBoolean>;
890
+ errorCode: z.ZodOptional<z.ZodString>;
891
+ abortedBy: z.ZodOptional<z.ZodEnum<{
892
+ parent: "parent";
893
+ user: "user";
894
+ }>>;
895
+ triggerAccountId: z.ZodString;
896
+ }, z.core.$strip>;
794
897
  }, z.core.$strip>, z.ZodObject<{
795
898
  type: z.ZodLiteral<"skill_fork_result">;
796
899
  payload: z.ZodObject<{
@@ -799,6 +902,30 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
799
902
  childRunId: z.ZodOptional<z.ZodString>;
800
903
  text: z.ZodString;
801
904
  }, z.core.$strip>;
905
+ }, z.core.$strip>, z.ZodObject<{
906
+ type: z.ZodLiteral<"background_task_finished">;
907
+ payload: z.ZodObject<{
908
+ taskId: z.ZodString;
909
+ description: z.ZodString;
910
+ status: z.ZodEnum<{
911
+ completed: "completed";
912
+ failed: "failed";
913
+ lost: "lost";
914
+ stopped: "stopped";
915
+ timed_out: "timed_out";
916
+ }>;
917
+ exitCode: z.ZodNullable<z.ZodNumber>;
918
+ elapsedMs: z.ZodNumber;
919
+ lastLines: z.ZodString;
920
+ outputPath: z.ZodString;
921
+ reported: z.ZodBoolean;
922
+ lostReason: z.ZodOptional<z.ZodString>;
923
+ stoppedBy: z.ZodOptional<z.ZodEnum<{
924
+ deletion: "deletion";
925
+ person: "person";
926
+ subagent_end: "subagent_end";
927
+ }>>;
928
+ }, z.core.$strip>;
802
929
  }, z.core.$strip>, z.ZodObject<{
803
930
  type: z.ZodLiteral<"compaction_summary">;
804
931
  payload: z.ZodObject<{
@@ -859,6 +986,19 @@ export type ConversationEvent = ConversationEventBody & {
859
986
  runId: string | null;
860
987
  createdAt: Date;
861
988
  };
989
+ /**
990
+ * An event a run absorbs at a step boundary: a person's message, a finished background task or a
991
+ * sub-agent's delivery.
992
+ */
993
+ export type AbsorbableEvent = Extract<ConversationEvent, {
994
+ type: "user_message" | "background_task_finished" | "subagent_delivery";
995
+ }>;
996
+ /**
997
+ * Whether `e` is absorbed like an interjection (spec 2026-11-05-background-bash-design §2.4): the
998
+ * loop takes it at its next step boundary, `consumed_seq` moves past it, and request building
999
+ * places it where the model call that absorbed it was built.
1000
+ */
1001
+ export declare const isAbsorbable: (e: ConversationEvent) => e is AbsorbableEvent;
862
1002
  /**
863
1003
  * What the person typed for a skill invocation (phase D): `/<plugin>:<name> <arguments>` (no
864
1004
  * plugin: `/<name>`). Titles and eval case titles use it instead of the rendered skill in
@@ -1,6 +1,7 @@
1
1
  import { DOCUMENT_MEDIA_TYPES, hasControlChars, IMAGE_MEDIA_TYPES, isAttachmentId, isSkillName, MEDIA_NAME_MAX_CHARS, } from "@capybara-hq/plugin-sdk";
2
2
  import { z } from "zod";
3
3
  import { AgentDefinitionSchema, AgentToolRef, ModelRef } from "../agents/definition.js";
4
+ import { ORG_ROLES } from "../orgs/roles.js";
4
5
  import { TOOL_VIEW_DIFF_MAX_LINES, TOOL_VIEW_LINE_MAX_CHARS, TOOL_VIEW_PATH_MAX_CHARS, } from "../tools/view.js";
5
6
  /** 供应商私有数据(`ProviderOpaque`):原样保存、只回放给同一供应商。 */
6
7
  const ProviderOpaqueSchema = z.object({
@@ -17,6 +18,15 @@ const RefMediaSourceSchema = z.object({
17
18
  kind: z.literal("ref"),
18
19
  attachmentId: AttachmentIdSchema,
19
20
  });
21
+ /**
22
+ * Who may decide an approval, as the approval row says (display only, absent in older logs): the
23
+ * assigned account (`requestedFor`), else the escalation role (`approverRole`). Pages word the
24
+ * waiting state with it ("等待 张三 批准") for viewers who cannot decide.
25
+ */
26
+ const ApproverFields = {
27
+ requestedFor: z.string().nullable().optional(),
28
+ approverRole: z.enum(ORG_ROLES).nullable().optional(),
29
+ };
20
30
  /** The longest deny reason (characters): the decision route's limit and `approval_decided.reason`'s. */
21
31
  export const APPROVAL_DENY_REASON_MAX_CHARS = 500;
22
32
  /** 一条 `media_excluded` 事件最多的附件数。 */
@@ -134,6 +144,19 @@ const ModelUsageShape = {
134
144
  cacheReadTokens: count,
135
145
  cacheWriteTokens: count,
136
146
  };
147
+ /**
148
+ * How a sub-agent's run ended (`subagent_finished`, a `subagent_delivery` finish). `timed_out`:
149
+ * stopped by the parent's sub-agents wait timeout (`run_aborted.detail`).
150
+ */
151
+ export const SubagentFinishStatusSchema = z.enum([
152
+ "completed",
153
+ "max_steps",
154
+ "max_duration",
155
+ "budget",
156
+ "aborted",
157
+ "timed_out",
158
+ "failed",
159
+ ]);
137
160
  /** 双语或纯文本(plugin-sdk `InputForm` 的文案字段)。 */
138
161
  const FormTextSchema = z.union([z.string(), z.object({ zh: z.string(), en: z.string() })]);
139
162
  /** 交互表单(plugin-sdk 的 `InputForm`;字段 schema 已由 `validateInputForm` 校验过,这里只记形状)。 */
@@ -203,6 +226,11 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
203
226
  parentConversationId: z.string(),
204
227
  parentRunId: z.string(),
205
228
  callId: z.string(),
229
+ /**
230
+ * `message`: sent by the parent agent with `SendMessage` (agent map spec §5.1); absent or
231
+ * `task`: the task of a dispatch or follow-up.
232
+ */
233
+ kind: z.enum(["task", "message"]).optional(),
206
234
  /**
207
235
  * A follow-up (`resume`, final review I1): the frozen tools and org skills intersected
208
236
  * with the current version (`narrowFollowUp`); the child's run uses these instead of
@@ -239,6 +267,18 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
239
267
  agentVersion: z.number().int().positive(),
240
268
  model: ModelRef,
241
269
  triggerAccountId: z.string(),
270
+ /**
271
+ * What started the run (display only): absent or `message` = a person's message (or a
272
+ * sub-agent's task), `background_task` = a finished background task woke the conversation
273
+ * (spec 2026-11-05-background-bash-design §3), `subagent` = a sub-agent's delivery woke it
274
+ * (agent map spec §5.3).
275
+ */
276
+ trigger: z.enum(["message", "background_task", "subagent"]).optional(),
277
+ /**
278
+ * A wake run's boundary: the seq of the finish or delivery that woke it (full-run replay
279
+ * seeds from it).
280
+ */
281
+ triggerSeq: seqNo.optional(),
242
282
  })),
243
283
  ev("model_call", z.object({
244
284
  step: count,
@@ -326,16 +366,27 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
326
366
  * Usage of one model call. Absent `purpose` = the step's call (written with its
327
367
  * `assistant_message`); `compaction` = the compaction call before the step (I-1: billed and
328
368
  * reported, but no step consumer may pair it with the step's `model_call`); `title` = the
329
- * conversation title call (UI refresh B: no run, `step` 0, not model-visible, billed and reported).
369
+ * conversation title call (UI refresh B: no run, `step` 0, not model-visible, billed and reported);
370
+ * `web_fetch` = a `WebFetch` extraction call (web tools spec §5: the tool call's run and step,
371
+ * `callId` = the call; not model-visible, billed and reported, counted on a sub-agent's parent).
330
372
  */
331
373
  ev("usage", z.object({
332
374
  step: count,
333
375
  provider: z.string(),
334
376
  model: z.string(),
335
377
  ...ModelUsageShape,
336
- purpose: z.enum(["compaction", "title"]).optional(),
378
+ purpose: z.enum(["compaction", "title", "web_fetch"]).optional(),
379
+ /** The tool call a `web_fetch` usage belongs to. */
380
+ callId: z.string().optional(),
337
381
  })),
338
382
  ev("reminder", z.object({ step: count, text: z.string() })),
383
+ /**
384
+ * The step's resolved tool set differs from the one the conversation's previous model request
385
+ * offered (`toolSetChange`): tool names as the model sees them, sorted. Written before that
386
+ * step's request, never before a conversation's first one. **Model-visible**: rendered at its
387
+ * position as a system message (`toolsChangedText`); dropped once a summary covers it.
388
+ */
389
+ ev("tools_changed", z.object({ step: count, added: z.array(z.string()), removed: z.array(z.string()) })),
339
390
  /** 工具调用开始执行之前写入(续跑时「有开始无结果」的调用记为结果未知,不再执行)。 */
340
391
  ev("tool_call_started", z.object({ step: count, callId: z.string(), toolKey: z.string(), specHash: z.string() })),
341
392
  /**
@@ -392,6 +443,7 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
392
443
  expiresAt: z.string(),
393
444
  /** Which rule asked (UI refresh B; display only, absent in older logs). */
394
445
  policy: z.enum(["agent", "connector", "default", "role", "org", "fixed"]).optional(),
446
+ ...ApproverFields,
395
447
  })),
396
448
  /** 审批已处理(批准 / 拒绝 / 超时 / 取消);`scope` 只在批准时出现,`byAccountId` 为处理人(超时 / 取消为 null)。 */
397
449
  ev("approval_decided", z.object({
@@ -530,6 +582,12 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
530
582
  id: z.string().optional(),
531
583
  version: z.number().int().positive().optional(),
532
584
  plugin: z.string().optional(),
585
+ /**
586
+ * Plugin scope phase 2: the platform template whose content a `plugin` child ran (a
587
+ * platform template, or an org copy linked to one, recorded under the copy's `id`). Absent
588
+ * = the org's own template (and in every older event). Eval metadata, not model-visible.
589
+ */
590
+ platformTemplateId: z.string().optional(),
533
591
  /**
534
592
  * Phase D: the child runs a forked skill a person invoked (display and eval metadata, not
535
593
  * model-visible).
@@ -566,36 +624,74 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
566
624
  */
567
625
  invokedSeq: seqNo.optional(),
568
626
  })),
569
- /** Parent log: a sub-agent waits for a person (approval, input or a connection). Not model-visible. */
627
+ /**
628
+ * Root log (agent map spec §7): a sub-agent `subagentId` of the tree, at any depth, waits for a
629
+ * person (approval, input or a connection). Not model-visible. `path`: the child conversation ids
630
+ * from the root's child down to `subagentId` (`[subagentId]` for a child of the root); logged under
631
+ * the root run that last dispatched the root's child on that path.
632
+ */
570
633
  ev("subagent_waiting", z.object({
571
634
  subagentId: z.string(),
572
635
  childRunId: z.string(),
636
+ path: z.array(z.string()).min(1).max(16),
573
637
  kind: z.enum(["approval", "input", "connect"]),
574
638
  approvalId: z.string().optional(),
575
639
  questionId: z.string().optional(),
576
640
  toolKey: z.string(),
577
641
  expiresAt: z.string().optional(),
642
+ /** An approval's approver (`kind: "approval"`), as in `approval_requested`. */
643
+ ...ApproverFields,
578
644
  })),
579
645
  /** Parent log: a sub-agent's run ended. Not model-visible (its reply is the call's tool_result). */
580
646
  ev("subagent_finished", z.object({
581
647
  subagentId: z.string(),
582
648
  childRunId: z.string(),
583
649
  callId: z.string(),
584
- /** `timed_out`: stopped by the parent's sub-agents wait timeout (`run_aborted.detail`). */
585
- status: z.enum([
586
- "completed",
587
- "max_steps",
588
- "max_duration",
589
- "budget",
590
- "aborted",
591
- "timed_out",
592
- "failed",
593
- ]),
650
+ status: SubagentFinishStatusSchema,
594
651
  errorCode: z.string().optional(),
595
652
  toolCalls: count,
596
653
  durationMs: count,
597
654
  usage: z.object(ModelUsageShape),
598
655
  })),
656
+ /**
657
+ * Parent log (agent map spec §4.5, §5.2): a sub-agent `subagentId` (its child conversation id)
658
+ * handed back a report (`SubagentHandback`), sent a note (`SendMessage to: "parent"`) or its run
659
+ * `childRunId` finished. **Model-visible**: absorbed like an interjection and rendered as a system
660
+ * message (`renderSubagentDelivery`). A finish after a handback carries `text: ""` and
661
+ * `handedBack: true` and renders as one status line, except that a run that handed back and
662
+ * `completed` writes no finished delivery at all (acceptance 2026-11-07; older logs have one and
663
+ * keep rendering it); a finish without a handback carries the child's
664
+ * final reply, a failed finish its error message (`errorCode` the code), an aborted one no text
665
+ * (`abortedBy` who stopped it), with `subagent_finished`'s vocabulary. `status` is present exactly
666
+ * on `kind: "finished"`. `triggerAccountId`: the child run's trigger account, the one a wake runs
667
+ * as (§7).
668
+ */
669
+ ev("subagent_delivery", z
670
+ .object({
671
+ subagentId: z.string(),
672
+ childRunId: z.string(),
673
+ description: z.string(),
674
+ kind: z.enum(["report", "note", "finished"]),
675
+ text: z.string().max(200_000),
676
+ /** `kind: "finished"` only (required there). */
677
+ status: SubagentFinishStatusSchema.optional(),
678
+ /** `kind: "finished"` only: a report was handed back before the run finished. */
679
+ handedBack: z.boolean().optional(),
680
+ /** `status: "failed"` only: the child run's error code. */
681
+ errorCode: z.string().optional(),
682
+ /** `status: "aborted"` only: a person stopped it, or the kernel on its parent's behalf. */
683
+ abortedBy: z.enum(["user", "parent"]).optional(),
684
+ triggerAccountId: z.string(),
685
+ })
686
+ .superRefine((p, ctx) => {
687
+ if ((p.kind === "finished") !== (p.status !== undefined)) {
688
+ ctx.addIssue({
689
+ code: "custom",
690
+ path: ["status"],
691
+ message: "status is required on a finished delivery and allowed only there",
692
+ });
693
+ }
694
+ })),
599
695
  /**
600
696
  * Phase D (spec §6.3): the report of the sub-agent that ran a person's fork invocation
601
697
  * (`invokedSeq`), written once (idem `skill_fork_result:<seq>`) before the parent's next model
@@ -609,6 +705,31 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
609
705
  childRunId: z.string().optional(),
610
706
  text: z.string(),
611
707
  })),
708
+ /**
709
+ * A background Bash task ended (spec 2026-11-05-background-bash-design §2). Model-visible: it is
710
+ * absorbed like an interjection and rendered as a system message (`renderBackgroundFinished`).
711
+ * `reported`: a TaskOutput or TaskStop in the same run already told the model; it is absorbed
712
+ * like any other, renders as one short line and never wakes a run. `lastLines` is the tail of
713
+ * the task's output.
714
+ */
715
+ ev("background_task_finished", z.object({
716
+ taskId: z.string().min(1).max(64),
717
+ description: z.string(),
718
+ status: z.enum(["completed", "failed", "stopped", "timed_out", "lost"]),
719
+ exitCode: z.number().int().nullable(),
720
+ elapsedMs: count,
721
+ lastLines: z.string().max(4000),
722
+ outputPath: z.string(),
723
+ reported: z.boolean(),
724
+ lostReason: z.string().optional(),
725
+ /**
726
+ * The finish never wakes a run, but the next run absorbs it like any other (background
727
+ * Bash §3): `person`, a person stopped the task (the conversation's background section);
728
+ * `deletion`, the conversation was being deleted; `subagent_end`, the sub-agent that owns it
729
+ * ended (a fork's run, or a stopped background sub-agent; agent map spec §5.3).
730
+ */
731
+ stoppedBy: z.enum(["person", "deletion", "subagent_end"]).optional(),
732
+ })),
612
733
  ev("compaction_summary", z.object({ coversUpToSeq: seqNo, text: z.string() })),
613
734
  ev("compaction_failed", z.object({ attempt: count, reason: z.string() })),
614
735
  ev("run_finished", z.object({
@@ -630,6 +751,14 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
630
751
  .optional(),
631
752
  })),
632
753
  ]);
754
+ /**
755
+ * Whether `e` is absorbed like an interjection (spec 2026-11-05-background-bash-design §2.4): the
756
+ * loop takes it at its next step boundary, `consumed_seq` moves past it, and request building
757
+ * places it where the model call that absorbed it was built.
758
+ */
759
+ export const isAbsorbable = (e) => e.type === "user_message" ||
760
+ e.type === "background_task_finished" ||
761
+ e.type === "subagent_delivery";
633
762
  /**
634
763
  * What the person typed for a skill invocation (phase D): `/<plugin>:<name> <arguments>` (no
635
764
  * plugin: `/<name>`). Titles and eval case titles use it instead of the rendered skill in
@@ -125,6 +125,7 @@ export declare function queuedUserMessage(r: QueueRow): AppendEvent;
125
125
  export declare function appendQueuedIn(t: KernelTrx, eventLog: Pick<EventLog, "appendIn">, conversationId: string, r: QueueRow): Promise<{
126
126
  event: ConversationEvent;
127
127
  switched: boolean;
128
+ unarchived: boolean;
128
129
  }>;
129
130
  /**
130
131
  * Why a queued item's skill can no longer be invoked, or null (also null for a plain message).
@@ -145,11 +146,12 @@ export declare const queueFull: () => ApiError;
145
146
  * when the queue is empty. An item whose message is already in the log (a retried enqueue after it
146
147
  * was sent) is dropped and the next one is taken. A head item whose skill can no longer be invoked
147
148
  * stays queued and the queue pauses (`skill_not_invocable`): `{ paused }`. The caller notifies
148
- * after commit.
149
+ * after commit (and publishes `archived` when the send unarchived the conversation).
149
150
  */
150
151
  export declare function dispatchQueuedIn(t: KernelTrx, eventLog: Pick<EventLog, "appendIn">, conversationId: string): Promise<{
151
152
  event: ConversationEvent;
152
153
  switched: boolean;
154
+ unarchived: boolean;
153
155
  } | {
154
156
  paused: QueuePauseReason;
155
157
  } | null>;