@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
@@ -1,4 +1,6 @@
1
+ import type { Logger } from "@capybara-hq/plugin-sdk";
1
2
  import type { AgentDefinition } from "../../agents/definition.js";
3
+ import { templateTypeOf } from "../../agents/templates.js";
2
4
  import type { KernelSchemaDb } from "../../db/kernel-schema.js";
3
5
  /**
4
6
  * The sub-agent roster of an agent version (phase C, spec §4.3, §5.1): the agent types its `agent`
@@ -10,8 +12,18 @@ export interface RosterEntry {
10
12
  source: "general" | "inline" | "plugin" | "agent";
11
13
  /** When to use it (shown in the tool description), cut to {@link ROSTER_DESCRIPTION_MAX}. */
12
14
  description: string;
13
- /** Plugin templates: the `agent_templates` id. */
15
+ /**
16
+ * Plugin templates: the selected id (an org template's, a linked copy's own, or a platform
17
+ * template's; `subagent_started.template.id`).
18
+ */
14
19
  templateId?: string;
20
+ /**
21
+ * Plugin templates: other selected ids this entry stands for: ids resolving to the same platform
22
+ * template under this type (an org copy linked since the save), or a selected platform id an org
23
+ * row of the same component shadows (the entry is that row); a follow-up recorded under one of
24
+ * them finds this entry.
25
+ */
26
+ aliasTemplateIds?: string[];
15
27
  /** Org agents: the allowlisted agent id. */
16
28
  agentId?: string;
17
29
  /** Org agents: the agent's current name, when it is still a live agent of the org. */
@@ -22,16 +34,21 @@ export interface RosterEntry {
22
34
  export declare const ROSTER_DESCRIPTION_MAX = 1024;
23
35
  /** The description of `general-purpose` in the roster (spec §4.3, model-visible). */
24
36
  export declare const GENERAL_PURPOSE_DESCRIPTION = "a copy of you with your tools and skills, for multi-step work.";
25
- /** Plugin template type: `<plugin>:<name>`. */
26
- export declare const templateType: (plugin: string, name: string) => string;
37
+ /** Plugin template type: `<plugin>:<name>`; the bare `<name>` for a template without a plugin. */
38
+ export declare const templateType: typeof templateTypeOf;
27
39
  /**
28
40
  * Resolves the roster of `parent` (spec §4.3): `general-purpose` first unless
29
41
  * `subagents.general === false`, then the plugin templates, inline templates and allowlisted org
30
- * agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates deleted
31
- * since the save are skipped; allowlisted org agents stay listed (the dispatch checks their gates
32
- * and refuses with the §4.5 text), with `agentName` only while the agent is live.
42
+ * agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates are
43
+ * the org's and the platform's ({@link loadTemplates}); ones deleted or off since the save are
44
+ * skipped. A template whose type is taken (`general-purpose`, an earlier template, an inline
45
+ * template's name; only a bare `<name>` can clash with the last two kinds, and the save refuses
46
+ * every clash) is skipped with a warning; when it resolves to the same platform template as the
47
+ * entry kept, its id becomes that entry's alias. Allowlisted org agents stay listed (the dispatch
48
+ * checks their gates and refuses with the §4.5 text), with `agentName` only while the agent is
49
+ * live.
33
50
  */
34
- export declare function resolveRoster(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">): Promise<RosterEntry[]>;
51
+ export declare function resolveRoster(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">, log?: Pick<Logger, "warn">): Promise<RosterEntry[]>;
35
52
  /**
36
53
  * The roster entry for a requested `subagent_type`: an exact type first; else a bare `<name>`
37
54
  * matches the plugin template `<plugin>:<name>` when exactly one has it (as Claude Code accepts
@@ -1,19 +1,24 @@
1
1
  import { SUBAGENT_ROSTER_MAX } from "../../agents/definition.js";
2
- import { loadTemplates } from "../../agents/templates.js";
2
+ import { loadTemplates, templateTypeOf } from "../../agents/templates.js";
3
3
  export const ROSTER_DESCRIPTION_MAX = 1024;
4
4
  /** The description of `general-purpose` in the roster (spec §4.3, model-visible). */
5
5
  export const GENERAL_PURPOSE_DESCRIPTION = "a copy of you with your tools and skills, for multi-step work.";
6
6
  const cut = (s) => s.slice(0, ROSTER_DESCRIPTION_MAX);
7
- /** Plugin template type: `<plugin>:<name>`. */
8
- export const templateType = (plugin, name) => `${plugin}:${name}`;
7
+ /** Plugin template type: `<plugin>:<name>`; the bare `<name>` for a template without a plugin. */
8
+ export const templateType = templateTypeOf;
9
9
  /**
10
10
  * Resolves the roster of `parent` (spec §4.3): `general-purpose` first unless
11
11
  * `subagents.general === false`, then the plugin templates, inline templates and allowlisted org
12
- * agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates deleted
13
- * since the save are skipped; allowlisted org agents stay listed (the dispatch checks their gates
14
- * and refuses with the §4.5 text), with `agentName` only while the agent is live.
12
+ * agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates are
13
+ * the org's and the platform's ({@link loadTemplates}); ones deleted or off since the save are
14
+ * skipped. A template whose type is taken (`general-purpose`, an earlier template, an inline
15
+ * template's name; only a bare `<name>` can clash with the last two kinds, and the save refuses
16
+ * every clash) is skipped with a warning; when it resolves to the same platform template as the
17
+ * entry kept, its id becomes that entry's alias. Allowlisted org agents stay listed (the dispatch
18
+ * checks their gates and refuses with the §4.5 text), with `agentName` only while the agent is
19
+ * live.
15
20
  */
16
- export async function resolveRoster(db, orgId, parent) {
21
+ export async function resolveRoster(db, orgId, parent, log) {
17
22
  const sub = parent.subagents;
18
23
  const out = [];
19
24
  if (sub?.general !== false) {
@@ -24,19 +29,50 @@ export async function resolveRoster(db, orgId, parent) {
24
29
  });
25
30
  }
26
31
  const templateIds = sub?.templates ?? [];
27
- const templates = await loadTemplates(db, orgId, templateIds);
32
+ const templates = await loadTemplates(db, orgId, templateIds, log);
33
+ const inlineNames = new Set((sub?.inline ?? []).map((t) => t.name));
34
+ const kept = new Map();
35
+ const alias = (e, id) => {
36
+ if (e.templateId !== id && !e.aliasTemplateIds?.includes(id)) {
37
+ e.aliasTemplateIds = [...(e.aliasTemplateIds ?? []), id];
38
+ }
39
+ };
28
40
  for (const id of templateIds) {
29
41
  const r = templates.get(id);
30
42
  if (!r)
31
43
  continue;
44
+ const type = templateType(r.plugin, r.name);
45
+ const first = kept.get(type);
46
+ if (first !== undefined || type === "general-purpose" || inlineNames.has(type)) {
47
+ if (first !== undefined &&
48
+ (first.entry.templateId === r.id ||
49
+ (r.platformTemplateId !== undefined && first.platformTemplateId === r.platformTemplateId))) {
50
+ alias(first.entry, id);
51
+ continue;
52
+ }
53
+ log?.warn("agent template skipped in the roster: its type is taken", {
54
+ orgId,
55
+ type,
56
+ templateId: r.id,
57
+ });
58
+ continue;
59
+ }
32
60
  const description = r.template.description;
33
- out.push({
34
- type: templateType(r.plugin, r.name),
61
+ const entry = {
62
+ type,
35
63
  source: "plugin",
36
64
  description: cut(typeof description === "string" ? description : ""),
37
65
  templateId: r.id,
38
- plugin: r.plugin,
66
+ ...(r.plugin ? { plugin: r.plugin } : {}),
67
+ };
68
+ // a selected platform id that an org row of the same component shadows resolves to that row
69
+ if (r.id !== id)
70
+ alias(entry, id);
71
+ kept.set(type, {
72
+ entry,
73
+ ...(r.platformTemplateId !== undefined && { platformTemplateId: r.platformTemplateId }),
39
74
  });
75
+ out.push(entry);
40
76
  }
41
77
  for (const t of sub?.inline ?? []) {
42
78
  out.push({ type: t.name, source: "inline", description: cut(t.description) });
@@ -8,8 +8,9 @@ import { type DispatchDeps } from "./dispatch.js";
8
8
  /**
9
9
  * Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
10
10
  * run (the run boundary, {@link forkBoundary}), whose `prepare` node dispatches the sub-agent
11
- * through phase C's `dispatchSubagent` before any model call and waits on it like an `Agent` call
12
- * (`subagents` wait `sa-<runId>-0`). When the child has ended, `prepare` appends the model-visible
11
+ * through phase C's `dispatchSubagent` before any model call and waits on it (`subagents` wait
12
+ * `sa-<runId>-0`; the dispatch row has `for_skill`, agent map spec §5.4: a fork stays in the
13
+ * foreground while `Agent` calls run in the background). When the child has ended, `prepare` appends the model-visible
13
14
  * `skill_fork_result` and the parent's model answers. Every terminal path of the run (and the wait
14
15
  * sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
15
16
  * a fork lead whose report is missing before the next model call.
@@ -7,8 +7,9 @@ import { dispatchSubagent } from "./dispatch.js";
7
7
  /**
8
8
  * Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
9
9
  * run (the run boundary, {@link forkBoundary}), whose `prepare` node dispatches the sub-agent
10
- * through phase C's `dispatchSubagent` before any model call and waits on it like an `Agent` call
11
- * (`subagents` wait `sa-<runId>-0`). When the child has ended, `prepare` appends the model-visible
10
+ * through phase C's `dispatchSubagent` before any model call and waits on it (`subagents` wait
11
+ * `sa-<runId>-0`; the dispatch row has `for_skill`, agent map spec §5.4: a fork stays in the
12
+ * foreground while `Agent` calls run in the background). When the child has ended, `prepare` appends the model-visible
12
13
  * `skill_fork_result` and the parent's model answers. Every terminal path of the run (and the wait
13
14
  * sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
14
15
  * a fork lead whose report is missing before the next model call.
@@ -92,7 +93,7 @@ export async function advanceSkillForks(d, a) {
92
93
  const callId = skillCallId(seq);
93
94
  const row = await dispatchOfCall(d.db, ctx.runId, callId);
94
95
  if (row) {
95
- const r = await childResult(d.eventLog, row, { forSkill: true });
96
+ const r = await childResult(d.eventLog, row);
96
97
  if (!r)
97
98
  return ctx.signal.aborted ? { kind: "aborted" } : suspend(d, ctx);
98
99
  await report(r.content, row, [finishedEvent(row, r.finished)]);
@@ -236,6 +237,7 @@ t, eventLog, runId) {
236
237
  "parent_conversation_id",
237
238
  "child_conversation_id",
238
239
  "child_run_id",
240
+ "budget_run_id",
239
241
  ])
240
242
  .where("parent_run_id", "=", runId)
241
243
  .where("parent_call_id", "=", callId)
@@ -251,6 +253,8 @@ t, eventLog, runId) {
251
253
  parentConversationId: d.parent_conversation_id,
252
254
  childConversationId: d.child_conversation_id,
253
255
  childRunId: d.child_run_id,
256
+ budgetRunId: d.budget_run_id,
257
+ forSkill: true,
254
258
  };
255
259
  const child = await t
256
260
  .selectFrom("runs")
@@ -259,7 +263,7 @@ t, eventLog, runId) {
259
263
  .executeTakeFirst();
260
264
  // a child that already ended keeps its own result (its log is committed)
261
265
  const ended = child !== undefined && TERMINAL_STATUSES.has(child.status)
262
- ? await childResult(eventLog, row, { forSkill: true })
266
+ ? await childResult(eventLog, row)
263
267
  : null;
264
268
  if (ended)
265
269
  events.push(finishedEvent(row, ended.finished));
@@ -0,0 +1,14 @@
1
+ import type { EventPayload } from "../../conversations/events.js";
2
+ /** How a sub-agent's run ended (`subagent_finished.status`, a finished `subagent_delivery`). */
3
+ export type SubagentStatus = EventPayload<"subagent_finished">["status"];
4
+ /** Who stopped an aborted sub-agent: a person, or the kernel on its parent run's behalf. */
5
+ export type SubagentAbortedBy = "user" | "parent";
6
+ /**
7
+ * How a sub-agent's run ended, as the model reads it: the status of `agentResultText`'s bracket
8
+ * line (a fork invocation's report) and of a finished `subagent_delivery`
9
+ * (`renderSubagentDelivery`).
10
+ */
11
+ export declare function subagentStatusText(status: SubagentStatus, opts?: {
12
+ errorCode?: string | undefined;
13
+ abortedBy?: SubagentAbortedBy | undefined;
14
+ }): string;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * How a sub-agent's run ended, as the model reads it: the status of `agentResultText`'s bracket
3
+ * line (a fork invocation's report) and of a finished `subagent_delivery`
4
+ * (`renderSubagentDelivery`).
5
+ */
6
+ export function subagentStatusText(status, opts = {}) {
7
+ switch (status) {
8
+ case "completed":
9
+ return "completed";
10
+ case "max_steps":
11
+ return "stopped at the step limit; the reply may be partial";
12
+ case "max_duration":
13
+ return "stopped at the time limit; the reply may be partial";
14
+ case "budget":
15
+ return "stopped: token budget used up";
16
+ case "aborted":
17
+ return opts.abortedBy === "parent" ? "stopped with this run" : "stopped by the user";
18
+ case "timed_out":
19
+ return "timed out";
20
+ case "failed":
21
+ return opts.errorCode === undefined ? "failed" : `failed (${opts.errorCode})`;
22
+ }
23
+ }
@@ -15,9 +15,9 @@ import { type SkillForkDeps, type SkillForks } from "./skill-fork.js";
15
15
  * Sub-agents (phase C, spec §7) and forked skills (phase D): the `Agent` tool's dispatch (the
16
16
  * tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
17
17
  * `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
18
- * to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch (a
19
- * finished child resumes its parent, a stopped parent stops its children) is the waits'
20
- * (`Waits.childFinished` / `stopChildren`).
18
+ * to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch is the
19
+ * waits' (`Waits.childFinished`): a background child's finish is delivered to its parent
20
+ * ({@link SubagentDeliveries}), a fork invocation's child resumes its waiting parent run.
21
21
  */
22
22
  export declare class SubagentsService {
23
23
  private readonly bus;
@@ -35,6 +35,9 @@ export declare class SubagentsService {
35
35
  /** A sub-agent's finished step on its parent's stream (sub-agents spec §14.2). Never throws. */
36
36
  progress(s: SubagentStep): Promise<void>;
37
37
  }
38
- /** Sub-agent dispatch (the tools domain's `Agent` tool and the run loop use it). */
38
+ /**
39
+ * Sub-agent dispatch, deliveries and messages (the tools domain's `Agent`, `SendMessage` and
40
+ * `SubagentHandback`, the run loop, the waits).
41
+ */
39
42
  export declare class SubagentsModule {
40
43
  }
@@ -20,16 +20,18 @@ import { SkillInvoker } from "../../skills/invoke.js";
20
20
  import { SkillsModule } from "../../skills/skills.module.js";
21
21
  import { ProviderRegistry, ProvidersModule } from "../providers.js";
22
22
  import { RunJobs, RunJobsModule } from "../run-jobs.js";
23
+ import { SubagentDeliveries } from "./deliveries.js";
23
24
  import { commitDispatchIn, dispatchSubagent, } from "./dispatch.js";
25
+ import { SubagentMessages } from "./messages.js";
24
26
  import { publishSubagentProgress } from "./progress.js";
25
27
  import { liveSkillForks } from "./skill-fork.js";
26
28
  /**
27
29
  * Sub-agents (phase C, spec §7) and forked skills (phase D): the `Agent` tool's dispatch (the
28
30
  * tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
29
31
  * `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
30
- * to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch (a
31
- * finished child resumes its parent, a stopped parent stops its children) is the waits'
32
- * (`Waits.childFinished` / `stopChildren`).
32
+ * to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch is the
33
+ * waits' (`Waits.childFinished`): a background child's finish is delivered to its parent
34
+ * ({@link SubagentDeliveries}), a fork invocation's child resumes its waiting parent run.
33
35
  */
34
36
  let SubagentsService = class SubagentsService {
35
37
  bus;
@@ -88,14 +90,17 @@ SubagentsService = __decorate([
88
90
  __param(9, Inject(TransactionHost))
89
91
  ], SubagentsService);
90
92
  export { SubagentsService };
91
- /** Sub-agent dispatch (the tools domain's `Agent` tool and the run loop use it). */
93
+ /**
94
+ * Sub-agent dispatch, deliveries and messages (the tools domain's `Agent`, `SendMessage` and
95
+ * `SubagentHandback`, the run loop, the waits).
96
+ */
92
97
  let SubagentsModule = class SubagentsModule {
93
98
  };
94
99
  SubagentsModule = __decorate([
95
100
  Module({
96
101
  imports: [EventLogModule, ModelsModule, ProvidersModule, RunJobsModule, SkillsModule],
97
- providers: [SubagentsService],
98
- exports: [SubagentsService],
102
+ providers: [SubagentsService, SubagentDeliveries, SubagentMessages],
103
+ exports: [SubagentsService, SubagentDeliveries, SubagentMessages],
99
104
  })
100
105
  ], SubagentsModule);
101
106
  export { SubagentsModule };
@@ -93,7 +93,8 @@ export declare function narrowPending(stored: readonly string[] | undefined, fai
93
93
  * using up an attempt.
94
94
  * Handlers must be idempotent by `eventId` (`<conversationId>/<seq>`). Nothing is written to the event
95
95
  * log (never model-visible). Compaction calls log usage too (`purpose: "compaction"`) and are reported,
96
- * as are conversation title calls (`purpose: "title"`, no run: `runId` is "").
96
+ * as are conversation title calls (`purpose: "title"`, no run: `runId` is "") and `WebFetch`
97
+ * extraction calls (`purpose: "web_fetch"`).
97
98
  * Single-step eval replays and judge requests log no usage: not reported (M7).
98
99
  */
99
100
  export declare class UsageReporter {
@@ -13,7 +13,7 @@ import { DelayedError, Job, UnrecoverableError, } from "bullmq";
13
13
  import { sql } from "kysely";
14
14
  import { enabledExtensionsQuery } from "../extensions/enabled.js";
15
15
  import { ExtensionsModule } from "../extensions/extensions.module.js";
16
- import { deepFreeze, errMsg } from "../extensions/hooks.js";
16
+ import { deepFreeze, errMsg, HookNeedsConfigError, } from "../extensions/hooks.js";
17
17
  import { ExtensionHost } from "../extensions/host.js";
18
18
  import { STALE_RECONCILE_PERIODS } from "../extensions/lifecycle-topics.js";
19
19
  import { KernelConfigService } from "../infra/config/kernel-config.service.js";
@@ -22,6 +22,7 @@ import { LockService } from "../infra/lock/lock.service.js";
22
22
  import { QueueModule } from "../infra/queue/queue.module.js";
23
23
  import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
24
24
  import { KERNEL_LOGGER } from "../infra/tokens.js";
25
+ import { deliveryRowOfChildRun } from "./subagents/child.js";
25
26
  /** Queue of `usage.report` deliveries (no `:` in the name). */
26
27
  export const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
27
28
  /** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
@@ -160,7 +161,8 @@ export function narrowPending(stored, failed) {
160
161
  * using up an attempt.
161
162
  * Handlers must be idempotent by `eventId` (`<conversationId>/<seq>`). Nothing is written to the event
162
163
  * log (never model-visible). Compaction calls log usage too (`purpose: "compaction"`) and are reported,
163
- * as are conversation title calls (`purpose: "title"`, no run: `runId` is "").
164
+ * as are conversation title calls (`purpose: "title"`, no run: `runId` is "") and `WebFetch`
165
+ * extraction calls (`purpose: "web_fetch"`).
164
166
  * Single-step eval replays and judge requests log no usage: not reported (M7).
165
167
  */
166
168
  let UsageReporter = class UsageReporter {
@@ -370,8 +372,6 @@ let UsageReporter = class UsageReporter {
370
372
  .selectFrom("conversation_events as e")
371
373
  .innerJoin("conversations as c", "c.id", "e.conversation_id")
372
374
  .leftJoin("runs as r", "r.id", "e.run_id")
373
- // a sub-agent's run: its dispatch says where it was dispatched from (spec §11)
374
- .leftJoin("subagent_dispatches as sd", "sd.child_run_id", "e.run_id")
375
375
  .select([
376
376
  "e.payload",
377
377
  "e.run_id",
@@ -382,9 +382,6 @@ let UsageReporter = class UsageReporter {
382
382
  "c.account_id",
383
383
  "c.kind",
384
384
  "r.trigger_account_id",
385
- "sd.parent_conversation_id",
386
- "sd.parent_run_id",
387
- "sd.parent_call_id",
388
385
  ])
389
386
  .where("e.conversation_id", "=", conversationId)
390
387
  .where("e.seq", "=", String(seq))
@@ -392,6 +389,11 @@ let UsageReporter = class UsageReporter {
392
389
  if (row?.type !== "usage")
393
390
  return null;
394
391
  const p = row.payload;
392
+ // a sub-agent's run: where it was dispatched from (spec §11), its own dispatch, else (a wake
393
+ // run nobody dispatched, agent map spec §5.3) its conversation's latest one
394
+ const parent = row.kind === "subagent" && row.run_id !== null
395
+ ? await deliveryRowOfChildRun(this.db, row.run_id)
396
+ : null;
395
397
  return {
396
398
  eventId: `${conversationId}/${seq}`,
397
399
  purpose: p.purpose ?? "step",
@@ -402,13 +404,11 @@ let UsageReporter = class UsageReporter {
402
404
  // a sub-agent's calls report "chat" (spec §11: the SDK union is not widened)
403
405
  conversationKind: row.kind === "eval" ? "eval" : "chat",
404
406
  runId: row.run_id ?? "",
405
- ...(row.parent_conversation_id !== null &&
406
- row.parent_run_id !== null &&
407
- row.parent_call_id !== null && {
407
+ ...(parent !== null && {
408
408
  parent: {
409
- conversationId: row.parent_conversation_id,
410
- runId: row.parent_run_id,
411
- callId: row.parent_call_id,
409
+ conversationId: parent.parentConversationId,
410
+ runId: parent.parentRunId,
411
+ callId: parent.parentCallId,
412
412
  },
413
413
  }),
414
414
  provider: p.provider,
@@ -492,6 +492,12 @@ let UsageReporter = class UsageReporter {
492
492
  notHere.push(plugin);
493
493
  return;
494
494
  }
495
+ // layering spec A §6: the extension's effective config is not valid in this organization, so
496
+ // it is not called there (an observe hook skipped); dropped, not retried
497
+ if (r.reason instanceof HookNeedsConfigError) {
498
+ dropped.set(plugin, "needs configuration in this organization");
499
+ return;
500
+ }
495
501
  failed.push(plugin);
496
502
  if (!this.stopping.signal.aborted) {
497
503
  this.log.warn("usage.report delivery to a plugin failed", {