@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.21

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 (1039) hide show
  1. package/bootstrap.json +94 -5
  2. package/dist/admin/admin-agents.controller.d.ts +28 -0
  3. package/dist/admin/admin-agents.controller.js +79 -0
  4. package/dist/admin/admin-connectors.controller.d.ts +29 -0
  5. package/dist/admin/admin-connectors.controller.js +79 -0
  6. package/dist/admin/admin-items.schemas.d.ts +42 -0
  7. package/dist/admin/admin-items.schemas.js +48 -0
  8. package/dist/admin/admin.controller.d.ts +52 -80
  9. package/dist/admin/admin.controller.js +112 -81
  10. package/dist/admin/admin.module.d.ts +4 -1
  11. package/dist/admin/admin.module.js +50 -4
  12. package/dist/admin/admin.schemas.d.ts +69 -0
  13. package/dist/admin/admin.schemas.js +53 -0
  14. package/dist/admin/audit.controller.d.ts +14 -0
  15. package/dist/admin/audit.controller.js +42 -0
  16. package/dist/admin/audit.schemas.d.ts +8 -0
  17. package/dist/admin/audit.schemas.js +17 -0
  18. package/dist/admin/extensions.controller.d.ts +34 -3
  19. package/dist/admin/extensions.controller.js +66 -8
  20. package/dist/admin/extensions.schemas.d.ts +7 -0
  21. package/dist/admin/extensions.schemas.js +10 -0
  22. package/dist/admin/health.service.d.ts +104 -0
  23. package/dist/admin/health.service.js +246 -0
  24. package/dist/admin/limit-defaults.d.ts +20 -0
  25. package/dist/admin/limit-defaults.js +10 -0
  26. package/dist/admin/overview.controller.d.ts +31 -0
  27. package/dist/admin/overview.controller.js +78 -0
  28. package/dist/admin/overview.schemas.d.ts +8 -0
  29. package/dist/admin/overview.schemas.js +13 -0
  30. package/dist/admin/overview.service.d.ts +112 -0
  31. package/dist/admin/overview.service.js +223 -0
  32. package/dist/admin/platform-audit.service.d.ts +41 -0
  33. package/dist/admin/platform-audit.service.js +70 -0
  34. package/dist/admin/setup-lock.d.ts +1 -1
  35. package/dist/admin/setup-lock.js +1 -1
  36. package/dist/admin/setup.controller.d.ts +1 -1
  37. package/dist/admin/setup.controller.js +1 -1
  38. package/dist/admin/setup.service.d.ts +4 -4
  39. package/dist/admin/setup.service.js +8 -8
  40. package/dist/admin/usage.service.d.ts +149 -0
  41. package/dist/admin/usage.service.js +321 -0
  42. package/dist/agents/admin-agents.d.ts +92 -0
  43. package/dist/agents/admin-agents.js +170 -0
  44. package/dist/agents/agent-lookup.d.ts +24 -0
  45. package/dist/agents/agent-lookup.js +46 -2
  46. package/dist/agents/agent-profile.service.d.ts +31 -0
  47. package/dist/agents/agent-profile.service.js +122 -0
  48. package/dist/agents/agents.controller.d.ts +53 -168
  49. package/dist/agents/agents.controller.js +163 -34
  50. package/dist/agents/agents.module.d.ts +6 -2
  51. package/dist/agents/agents.module.js +41 -7
  52. package/dist/agents/agents.schemas.d.ts +392 -0
  53. package/dist/agents/agents.schemas.js +126 -0
  54. package/dist/agents/agents.service.d.ts +121 -36
  55. package/dist/agents/agents.service.js +411 -121
  56. package/dist/agents/definition.d.ts +142 -21
  57. package/dist/agents/definition.js +389 -43
  58. package/dist/agents/from-template.d.ts +106 -0
  59. package/dist/agents/from-template.js +680 -0
  60. package/dist/agents/from-template.service.d.ts +72 -0
  61. package/dist/agents/from-template.service.js +178 -0
  62. package/dist/agents/instruction-files.d.ts +60 -0
  63. package/dist/agents/instruction-files.js +111 -0
  64. package/dist/agents/models.controller.d.ts +44 -6
  65. package/dist/agents/models.controller.js +84 -8
  66. package/dist/agents/org-templates.d.ts +186 -0
  67. package/dist/agents/org-templates.js +876 -0
  68. package/dist/agents/pending-connector-requests.d.ts +79 -0
  69. package/dist/agents/pending-connector-requests.js +215 -0
  70. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  71. package/dist/agents/pending-connectors.controller.js +91 -0
  72. package/dist/agents/pending-connectors.service.d.ts +62 -0
  73. package/dist/agents/pending-connectors.service.js +282 -0
  74. package/dist/agents/profile.d.ts +114 -0
  75. package/dist/agents/profile.js +55 -0
  76. package/dist/agents/readiness.controller.d.ts +26 -0
  77. package/dist/agents/readiness.controller.js +56 -0
  78. package/dist/agents/templates.controller.d.ts +77 -5
  79. package/dist/agents/templates.controller.js +153 -7
  80. package/dist/agents/templates.d.ts +127 -23
  81. package/dist/agents/templates.js +482 -44
  82. package/dist/agents/templates.schemas.d.ts +20 -0
  83. package/dist/agents/templates.schemas.js +45 -0
  84. package/dist/background/background.controller.d.ts +38 -0
  85. package/dist/background/background.controller.js +88 -0
  86. package/dist/background/background.module.d.ts +10 -0
  87. package/dist/background/background.module.js +39 -0
  88. package/dist/background/background.schemas.d.ts +10 -0
  89. package/dist/background/background.schemas.js +16 -0
  90. package/dist/background/finish.d.ts +44 -0
  91. package/dist/background/finish.js +95 -0
  92. package/dist/background/launch-lock.d.ts +15 -0
  93. package/dist/background/launch-lock.js +40 -0
  94. package/dist/background/launch.d.ts +42 -0
  95. package/dist/background/launch.js +77 -0
  96. package/dist/background/poll.job.d.ts +56 -0
  97. package/dist/background/poll.job.js +195 -0
  98. package/dist/background/render.d.ts +23 -0
  99. package/dist/background/render.js +48 -0
  100. package/dist/background/session.d.ts +48 -0
  101. package/dist/background/session.js +80 -0
  102. package/dist/background/status.d.ts +35 -0
  103. package/dist/background/status.js +57 -0
  104. package/dist/background/stop.d.ts +68 -0
  105. package/dist/background/stop.js +244 -0
  106. package/dist/background/store.d.ts +167 -0
  107. package/dist/background/store.js +361 -0
  108. package/dist/background/store.module.d.ts +6 -0
  109. package/dist/background/store.module.js +22 -0
  110. package/dist/background/tasks.service.d.ts +109 -0
  111. package/dist/background/tasks.service.js +271 -0
  112. package/dist/background/wake-rules.d.ts +66 -0
  113. package/dist/background/wake-rules.js +113 -0
  114. package/dist/background/wake.d.ts +30 -0
  115. package/dist/background/wake.js +63 -0
  116. package/dist/catalog/admin-catalog.controller.d.ts +136 -52
  117. package/dist/catalog/admin-catalog.controller.js +275 -65
  118. package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
  119. package/dist/catalog/admin-catalog.schemas.js +99 -0
  120. package/dist/catalog/appearance.schemas.d.ts +10 -0
  121. package/dist/catalog/appearance.schemas.js +20 -0
  122. package/dist/catalog/appearance.service.d.ts +105 -0
  123. package/dist/catalog/appearance.service.js +306 -0
  124. package/dist/catalog/catalog-content.d.ts +122 -35
  125. package/dist/catalog/catalog-content.js +122 -14
  126. package/dist/catalog/catalog-files.d.ts +42 -0
  127. package/dist/catalog/catalog-files.js +89 -0
  128. package/dist/catalog/catalog-import.module.d.ts +7 -0
  129. package/dist/catalog/catalog-import.module.js +63 -0
  130. package/dist/catalog/catalog-items.d.ts +122 -7
  131. package/dist/catalog/catalog-items.js +301 -13
  132. package/dist/catalog/catalog-scope.service.d.ts +293 -0
  133. package/dist/catalog/catalog-scope.service.js +1236 -0
  134. package/dist/catalog/catalog.module.d.ts +7 -9
  135. package/dist/catalog/catalog.module.js +47 -31
  136. package/dist/catalog/catalog.service.d.ts +122 -31
  137. package/dist/catalog/catalog.service.js +177 -105
  138. package/dist/catalog/claude/agents.js +15 -10
  139. package/dist/catalog/claude/translate.js +3 -0
  140. package/dist/catalog/cli.d.ts +11 -1
  141. package/dist/catalog/cli.js +29 -1
  142. package/dist/catalog/component-promotion.d.ts +96 -0
  143. package/dist/catalog/component-promotion.js +395 -0
  144. package/dist/catalog/component-scope.controller.d.ts +102 -0
  145. package/dist/catalog/component-scope.controller.js +257 -0
  146. package/dist/catalog/component-scope.schemas.d.ts +118 -0
  147. package/dist/catalog/component-scope.schemas.js +97 -0
  148. package/dist/catalog/component-scope.service.d.ts +394 -0
  149. package/dist/catalog/component-scope.service.js +1133 -0
  150. package/dist/catalog/component-state.d.ts +207 -0
  151. package/dist/catalog/component-state.js +484 -0
  152. package/dist/catalog/git-source.d.ts +9 -1
  153. package/dist/catalog/git-source.js +29 -2
  154. package/dist/catalog/job-ids.d.ts +30 -0
  155. package/dist/catalog/job-ids.js +25 -0
  156. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  157. package/dist/catalog/marketplace-icons.d.ts +64 -0
  158. package/dist/catalog/marketplace-icons.js +131 -0
  159. package/dist/catalog/marketplaces.controller.d.ts +50 -41
  160. package/dist/catalog/marketplaces.controller.js +130 -46
  161. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  162. package/dist/catalog/marketplaces.schemas.js +53 -0
  163. package/dist/catalog/marketplaces.service.d.ts +110 -17
  164. package/dist/catalog/marketplaces.service.js +337 -29
  165. package/dist/catalog/org-catalog.controller.d.ts +114 -62
  166. package/dist/catalog/org-catalog.controller.js +191 -98
  167. package/dist/catalog/org-catalog.schemas.d.ts +104 -0
  168. package/dist/catalog/org-catalog.schemas.js +107 -0
  169. package/dist/catalog/org-catalog.service.d.ts +72 -33
  170. package/dist/catalog/org-catalog.service.js +367 -158
  171. package/dist/catalog/org-extension-switch.d.ts +41 -0
  172. package/dist/catalog/org-extension-switch.js +115 -0
  173. package/dist/catalog/org-extension.controller.d.ts +133 -0
  174. package/dist/catalog/org-extension.controller.js +313 -0
  175. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  176. package/dist/catalog/org-extension.schemas.js +22 -0
  177. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  178. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  179. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  180. package/dist/catalog/org-plugin-uploads.js +122 -0
  181. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  182. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  183. package/dist/catalog/owned-items.d.ts +188 -0
  184. package/dist/catalog/owned-items.js +808 -0
  185. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  186. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  187. package/dist/catalog/ownership.d.ts +172 -0
  188. package/dist/catalog/ownership.js +326 -0
  189. package/dist/catalog/platform-components.d.ts +243 -0
  190. package/dist/catalog/platform-components.js +872 -0
  191. package/dist/catalog/platform-migration.d.ts +115 -0
  192. package/dist/catalog/platform-migration.js +583 -0
  193. package/dist/catalog/plugin-import.d.ts +254 -47
  194. package/dist/catalog/plugin-import.js +810 -112
  195. package/dist/catalog/plugin-install.d.ts +205 -42
  196. package/dist/catalog/plugin-install.js +828 -126
  197. package/dist/catalog/plugin-package.d.ts +43 -4
  198. package/dist/catalog/plugin-package.js +194 -7
  199. package/dist/catalog/plugin-upgrade.d.ts +308 -225
  200. package/dist/catalog/plugin-upgrade.js +1325 -1131
  201. package/dist/catalog/request-rules.d.ts +65 -0
  202. package/dist/catalog/request-rules.js +217 -0
  203. package/dist/catalog/requests.service.d.ts +194 -118
  204. package/dist/catalog/requests.service.js +530 -343
  205. package/dist/catalog/reserved-names.d.ts +8 -0
  206. package/dist/catalog/reserved-names.js +42 -0
  207. package/dist/catalog/scope-orgs.d.ts +21 -0
  208. package/dist/catalog/scope-orgs.js +67 -0
  209. package/dist/catalog/scope-state.d.ts +35 -0
  210. package/dist/catalog/scope-state.js +87 -0
  211. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  212. package/dist/catalog/scope-sync-workers.js +29 -0
  213. package/dist/catalog/scope-sync.d.ts +176 -0
  214. package/dist/catalog/scope-sync.js +576 -0
  215. package/dist/catalog/scope.d.ts +42 -0
  216. package/dist/catalog/scope.js +42 -0
  217. package/dist/catalog/unshare.d.ts +22 -0
  218. package/dist/catalog/unshare.js +119 -0
  219. package/dist/channels/actions.js +10 -3
  220. package/dist/channels/cards.d.ts +36 -10
  221. package/dist/channels/cards.js +100 -25
  222. package/dist/channels/channels.module.js +13 -2
  223. package/dist/channels/channels.schemas.d.ts +41 -0
  224. package/dist/channels/channels.schemas.js +40 -0
  225. package/dist/channels/connections.controller.d.ts +46 -37
  226. package/dist/channels/connections.controller.js +76 -34
  227. package/dist/channels/connections.service.d.ts +102 -10
  228. package/dist/channels/connections.service.js +271 -24
  229. package/dist/channels/inbound.d.ts +11 -1
  230. package/dist/channels/inbound.js +87 -7
  231. package/dist/channels/outbound.d.ts +14 -1
  232. package/dist/channels/outbound.js +64 -15
  233. package/dist/channels/phrases.d.ts +33 -2
  234. package/dist/channels/phrases.js +29 -1
  235. package/dist/channels/supervisor.d.ts +2 -0
  236. package/dist/channels/supervisor.js +4 -0
  237. package/dist/channels/threads.d.ts +5 -0
  238. package/dist/channels/threads.js +8 -0
  239. package/dist/channels/webhook.d.ts +21 -1
  240. package/dist/channels/webhook.js +39 -4
  241. package/dist/client/client-access.service.d.ts +102 -0
  242. package/dist/client/client-access.service.js +303 -0
  243. package/dist/client/client-builds.service.d.ts +109 -0
  244. package/dist/client/client-builds.service.js +229 -0
  245. package/dist/client/client-delivery.controller.d.ts +25 -0
  246. package/dist/client/client-delivery.controller.js +66 -0
  247. package/dist/client/client-files.d.ts +48 -0
  248. package/dist/client/client-files.js +136 -0
  249. package/dist/client/client-reports.cron.d.ts +13 -0
  250. package/dist/client/client-reports.cron.js +42 -0
  251. package/dist/client/client-reports.service.d.ts +30 -0
  252. package/dist/client/client-reports.service.js +102 -0
  253. package/dist/client/client-sign-in.service.d.ts +21 -0
  254. package/dist/client/client-sign-in.service.js +49 -0
  255. package/dist/client/client.controller.d.ts +49 -0
  256. package/dist/client/client.controller.js +129 -0
  257. package/dist/client/client.module.d.ts +8 -0
  258. package/dist/client/client.module.js +28 -0
  259. package/dist/client/client.schemas.d.ts +61 -0
  260. package/dist/client/client.schemas.js +27 -0
  261. package/dist/config/docs.js +5 -1
  262. package/dist/config/schema.d.ts +35 -2
  263. package/dist/config/schema.js +216 -21
  264. package/dist/conversations/access.d.ts +6 -4
  265. package/dist/conversations/access.js +29 -5
  266. package/dist/conversations/agent-tree.d.ts +46 -0
  267. package/dist/conversations/agent-tree.js +92 -0
  268. package/dist/conversations/artifacts.d.ts +1 -1
  269. package/dist/conversations/artifacts.js +1 -1
  270. package/dist/conversations/attachments.service.d.ts +30 -0
  271. package/dist/conversations/attachments.service.js +130 -5
  272. package/dist/conversations/conversations.controller.d.ts +79 -44
  273. package/dist/conversations/conversations.controller.js +133 -82
  274. package/dist/conversations/conversations.module.d.ts +1 -1
  275. package/dist/conversations/conversations.module.js +10 -7
  276. package/dist/conversations/conversations.schemas.d.ts +52 -0
  277. package/dist/conversations/conversations.schemas.js +79 -0
  278. package/dist/conversations/conversations.service.d.ts +161 -13
  279. package/dist/conversations/conversations.service.js +329 -57
  280. package/dist/conversations/device-status.d.ts +24 -0
  281. package/dist/conversations/device-status.js +71 -0
  282. package/dist/conversations/event-log.d.ts +45 -9
  283. package/dist/conversations/event-log.js +113 -6
  284. package/dist/conversations/events.d.ts +255 -9
  285. package/dist/conversations/events.js +250 -34
  286. package/dist/conversations/message-context.d.ts +79 -0
  287. package/dist/conversations/message-context.js +145 -0
  288. package/dist/conversations/queue.d.ts +5 -2
  289. package/dist/conversations/queue.js +24 -4
  290. package/dist/conversations/queue.service.d.ts +2 -2
  291. package/dist/conversations/queue.service.js +21 -3
  292. package/dist/conversations/titles.d.ts +12 -3
  293. package/dist/conversations/titles.js +40 -16
  294. package/dist/conversations/tree.d.ts +17 -0
  295. package/dist/conversations/tree.js +42 -0
  296. package/dist/ctx/create-ctx.d.ts +48 -5
  297. package/dist/ctx/create-ctx.js +174 -34
  298. package/dist/db/kernel-schema.d.ts +668 -27
  299. package/dist/db/pool.d.ts +5 -0
  300. package/dist/db/pool.js +3 -0
  301. package/dist/devices/access.d.ts +66 -0
  302. package/dist/devices/access.js +113 -0
  303. package/dist/devices/conversation-devices.d.ts +75 -0
  304. package/dist/devices/conversation-devices.js +230 -0
  305. package/dist/devices/devices.controller.d.ts +36 -0
  306. package/dist/devices/devices.controller.js +124 -0
  307. package/dist/devices/devices.module.d.ts +8 -0
  308. package/dist/devices/devices.module.js +34 -0
  309. package/dist/devices/devices.schemas.d.ts +3 -0
  310. package/dist/devices/devices.schemas.js +14 -0
  311. package/dist/devices/devices.service.d.ts +251 -0
  312. package/dist/devices/devices.service.js +791 -0
  313. package/dist/devices/dto.d.ts +25 -0
  314. package/dist/devices/dto.js +12 -0
  315. package/dist/devices/label.d.ts +11 -0
  316. package/dist/devices/label.js +25 -0
  317. package/dist/devices/legacy-cleanup.job.d.ts +34 -0
  318. package/dist/devices/legacy-cleanup.job.js +141 -0
  319. package/dist/errors.d.ts +215 -3
  320. package/dist/errors.js +215 -3
  321. package/dist/evals/evals.module.js +11 -2
  322. package/dist/evals/evals.schemas.d.ts +110 -0
  323. package/dist/evals/evals.schemas.js +107 -0
  324. package/dist/evals/reconstruct.d.ts +18 -9
  325. package/dist/evals/reconstruct.js +36 -10
  326. package/dist/evals/recorded-tools.d.ts +37 -1
  327. package/dist/evals/recorded-tools.js +120 -10
  328. package/dist/evals/run-replay.d.ts +20 -3
  329. package/dist/evals/run-replay.js +78 -14
  330. package/dist/evals/runs.controller.d.ts +2 -57
  331. package/dist/evals/runs.controller.js +1 -42
  332. package/dist/evals/runs.service.d.ts +8 -7
  333. package/dist/evals/runs.service.js +45 -30
  334. package/dist/evals/sets.controller.d.ts +2 -28
  335. package/dist/evals/sets.controller.js +1 -31
  336. package/dist/evals/sets.service.d.ts +7 -7
  337. package/dist/evals/sets.service.js +23 -17
  338. package/dist/evals/snapshot.d.ts +3 -2
  339. package/dist/evals/snapshot.js +17 -4
  340. package/dist/evals/step-replay.d.ts +4 -6
  341. package/dist/evals/step-replay.js +16 -9
  342. package/dist/evals/trajectory.d.ts +5 -3
  343. package/dist/evals/trajectory.js +4 -1
  344. package/dist/evals/trajectory.service.d.ts +8 -3
  345. package/dist/evals/trajectory.service.js +26 -14
  346. package/dist/evals/worker.d.ts +5 -5
  347. package/dist/evals/worker.js +9 -3
  348. package/dist/extensions/admin-ops.d.ts +81 -14
  349. package/dist/extensions/admin-ops.js +181 -47
  350. package/dist/extensions/admin-view.d.ts +57 -10
  351. package/dist/extensions/admin-view.js +249 -27
  352. package/dist/extensions/approvals.d.ts +12 -2
  353. package/dist/extensions/blobs.d.ts +14 -1
  354. package/dist/extensions/blobs.js +49 -5
  355. package/dist/extensions/bootstrap.d.ts +85 -10
  356. package/dist/extensions/bootstrap.js +215 -36
  357. package/dist/extensions/cli.d.ts +12 -0
  358. package/dist/extensions/cli.js +11 -2
  359. package/dist/extensions/config-hash.d.ts +10 -0
  360. package/dist/extensions/config-hash.js +38 -0
  361. package/dist/extensions/config-issues.d.ts +13 -1
  362. package/dist/extensions/config-issues.js +22 -5
  363. package/dist/extensions/config-json-schema.d.ts +43 -7
  364. package/dist/extensions/config-json-schema.js +124 -58
  365. package/dist/extensions/deployment-config-store.d.ts +6 -0
  366. package/dist/extensions/deployment-config.d.ts +94 -9
  367. package/dist/extensions/deployment-config.js +255 -34
  368. package/dist/extensions/display-name.d.ts +22 -0
  369. package/dist/extensions/display-name.js +77 -0
  370. package/dist/extensions/effective-config.d.ts +133 -0
  371. package/dist/extensions/effective-config.js +379 -0
  372. package/dist/extensions/extensions.module.js +31 -12
  373. package/dist/extensions/guide-places.d.ts +68 -0
  374. package/dist/extensions/guide-places.js +152 -0
  375. package/dist/extensions/hooks.d.ts +37 -4
  376. package/dist/extensions/hooks.js +82 -16
  377. package/dist/extensions/host.d.ts +105 -12
  378. package/dist/extensions/host.js +372 -87
  379. package/dist/extensions/installs.d.ts +30 -9
  380. package/dist/extensions/installs.js +57 -16
  381. package/dist/extensions/instance.d.ts +17 -2
  382. package/dist/extensions/instance.js +21 -0
  383. package/dist/extensions/ledger.d.ts +1 -1
  384. package/dist/extensions/locks.d.ts +12 -0
  385. package/dist/extensions/locks.js +26 -0
  386. package/dist/extensions/org-config.d.ts +97 -7
  387. package/dist/extensions/org-config.js +215 -45
  388. package/dist/extensions/org-levels.d.ts +37 -0
  389. package/dist/extensions/org-levels.js +71 -0
  390. package/dist/extensions/org-overrides.d.ts +151 -0
  391. package/dist/extensions/org-overrides.js +524 -0
  392. package/dist/extensions/package.d.ts +18 -4
  393. package/dist/extensions/package.js +56 -3
  394. package/dist/extensions/permission-set.d.ts +35 -5
  395. package/dist/extensions/permission-set.js +36 -5
  396. package/dist/extensions/permission-view.d.ts +106 -13
  397. package/dist/extensions/permission-view.js +33 -15
  398. package/dist/extensions/plugin-guides.d.ts +282 -0
  399. package/dist/extensions/plugin-guides.js +554 -0
  400. package/dist/extensions/plugin-icons.d.ts +54 -0
  401. package/dist/extensions/plugin-icons.js +125 -0
  402. package/dist/extensions/plugin-items.d.ts +21 -0
  403. package/dist/extensions/plugin-items.js +42 -0
  404. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  405. package/dist/extensions/point-defaults.controller.js +69 -0
  406. package/dist/extensions/point-defaults.d.ts +73 -0
  407. package/dist/extensions/point-defaults.js +236 -0
  408. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  409. package/dist/extensions/point-defaults.schemas.js +14 -0
  410. package/dist/extensions/registry.d.ts +1 -1
  411. package/dist/extensions/registry.js +2 -0
  412. package/dist/extensions/resolve.d.ts +51 -1
  413. package/dist/extensions/resolve.js +85 -3
  414. package/dist/extensions/single-provider.d.ts +92 -0
  415. package/dist/extensions/single-provider.js +180 -0
  416. package/dist/extensions/sources.d.ts +13 -2
  417. package/dist/extensions/sources.js +2 -0
  418. package/dist/extensions/state.module.d.ts +9 -0
  419. package/dist/extensions/state.module.js +46 -0
  420. package/dist/extensions/unavailable.d.ts +50 -0
  421. package/dist/extensions/unavailable.js +115 -0
  422. package/dist/files/previewers.controller.js +2 -3
  423. package/dist/files/previewers.d.ts +10 -3
  424. package/dist/files/previewers.js +40 -11
  425. package/dist/files/previewers.schemas.d.ts +10 -0
  426. package/dist/files/previewers.schemas.js +9 -0
  427. package/dist/http/api.module.js +76 -4
  428. package/dist/http/app.d.ts +11 -2
  429. package/dist/http/app.js +31 -5
  430. package/dist/http/gateway-routes.d.ts +7 -3
  431. package/dist/http/gateway-routes.js +6 -3
  432. package/dist/http/nest-logger.d.ts +6 -5
  433. package/dist/http/nest-logger.js +24 -10
  434. package/dist/http/plugin-dispatch.d.ts +4 -1
  435. package/dist/http/plugin-dispatch.js +14 -2
  436. package/dist/identity/accounts.d.ts +77 -31
  437. package/dist/identity/accounts.js +133 -52
  438. package/dist/identity/audit.d.ts +2 -1
  439. package/dist/identity/auth.controller.js +9 -5
  440. package/dist/identity/auth.guard.d.ts +13 -5
  441. package/dist/identity/auth.guard.js +35 -9
  442. package/dist/identity/cookies.d.ts +26 -5
  443. package/dist/identity/cookies.js +58 -6
  444. package/dist/identity/identity.module.d.ts +1 -1
  445. package/dist/identity/identity.module.js +7 -4
  446. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  447. package/dist/identity/initial-passwords.controller.js +49 -0
  448. package/dist/identity/initial-passwords.d.ts +61 -0
  449. package/dist/identity/initial-passwords.job.d.ts +16 -0
  450. package/dist/identity/initial-passwords.job.js +46 -0
  451. package/dist/identity/initial-passwords.js +159 -0
  452. package/dist/identity/me.controller.d.ts +17 -1
  453. package/dist/identity/me.controller.js +45 -4
  454. package/dist/identity/me.schemas.d.ts +24 -0
  455. package/dist/identity/me.schemas.js +25 -0
  456. package/dist/identity/principal.d.ts +11 -3
  457. package/dist/identity/principal.js +11 -3
  458. package/dist/identity/sessions.d.ts +12 -0
  459. package/dist/identity/sessions.js +45 -0
  460. package/dist/identity/settings.d.ts +99 -12
  461. package/dist/identity/settings.js +234 -25
  462. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  463. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  464. package/dist/identity/write-actor.d.ts +11 -0
  465. package/dist/identity/write-actor.js +7 -0
  466. package/dist/inbox/inbox.module.d.ts +4 -1
  467. package/dist/inbox/inbox.module.js +7 -3
  468. package/dist/inbox/inbox.schemas.d.ts +8 -0
  469. package/dist/inbox/inbox.schemas.js +11 -0
  470. package/dist/inbox/inbox.service.d.ts +64 -4
  471. package/dist/inbox/inbox.service.js +74 -4
  472. package/dist/inbox/org-notices.d.ts +63 -0
  473. package/dist/inbox/org-notices.js +91 -0
  474. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  475. package/dist/inbox/platform-inbox.controller.js +58 -0
  476. package/dist/inbox/platform-inbox.service.d.ts +157 -0
  477. package/dist/inbox/platform-inbox.service.js +281 -0
  478. package/dist/inbox/platform-notices.d.ts +19 -0
  479. package/dist/inbox/platform-notices.js +9 -0
  480. package/dist/index.d.ts +6 -2
  481. package/dist/index.js +7 -1
  482. package/dist/infra/cli/kernel-cli.module.js +9 -1
  483. package/dist/infra/config/kernel-config.service.js +32 -1
  484. package/dist/infra/database/database.module.js +1 -0
  485. package/dist/infra/database/xact-lock.d.ts +1 -1
  486. package/dist/infra/database/xact-lock.js +1 -1
  487. package/dist/infra/events/kernel-events.d.ts +31 -3
  488. package/dist/infra/lifecycle/process-guards.js +4 -0
  489. package/dist/infra/lock/lock.service.d.ts +8 -0
  490. package/dist/infra/lock/lock.service.js +27 -0
  491. package/dist/infra/logging/logging.module.d.ts +4 -2
  492. package/dist/infra/logging/logging.module.js +24 -6
  493. package/dist/infra/presence/presence.module.d.ts +6 -0
  494. package/dist/infra/presence/presence.module.js +22 -0
  495. package/dist/infra/presence/replica-presence.d.ts +87 -0
  496. package/dist/infra/presence/replica-presence.js +189 -0
  497. package/dist/infra/queue/add-job-once.d.ts +14 -0
  498. package/dist/infra/queue/add-job-once.js +16 -0
  499. package/dist/infra/queue/redis-connection.d.ts +6 -0
  500. package/dist/infra/queue/redis-connection.js +7 -0
  501. package/dist/infra/redis/redis.module.js +6 -2
  502. package/dist/infra/throttler/named-throttlers.d.ts +12 -0
  503. package/dist/infra/throttler/named-throttlers.js +67 -0
  504. package/dist/infra/throttler/throttler.guard.js +1 -1
  505. package/dist/infra/tokens.d.ts +6 -1
  506. package/dist/infra/tokens.js +6 -1
  507. package/dist/kernel.module.js +15 -0
  508. package/dist/lifecycle/kernel-lifecycle.d.ts +9 -3
  509. package/dist/lifecycle/kernel-lifecycle.js +51 -11
  510. package/dist/local-devices/device-auth.controller.d.ts +42 -0
  511. package/dist/local-devices/device-auth.controller.js +116 -0
  512. package/dist/local-devices/device-auth.d.ts +119 -0
  513. package/dist/local-devices/device-auth.js +401 -0
  514. package/dist/local-devices/device-auth.module.d.ts +7 -0
  515. package/dist/local-devices/device-auth.module.js +25 -0
  516. package/dist/local-devices/device-routes.d.ts +36 -0
  517. package/dist/local-devices/device-routes.js +90 -0
  518. package/dist/local-devices/dto.d.ts +66 -0
  519. package/dist/local-devices/dto.js +44 -0
  520. package/dist/local-devices/keys.d.ts +25 -0
  521. package/dist/local-devices/keys.js +25 -0
  522. package/dist/local-devices/local-device-gateway.d.ts +134 -0
  523. package/dist/local-devices/local-device-gateway.js +542 -0
  524. package/dist/local-devices/local-device-provider.d.ts +89 -0
  525. package/dist/local-devices/local-device-provider.js +151 -0
  526. package/dist/local-devices/local-devices.module.d.ts +16 -0
  527. package/dist/local-devices/local-devices.module.js +44 -0
  528. package/dist/local-devices/machines.d.ts +118 -0
  529. package/dist/local-devices/machines.js +366 -0
  530. package/dist/local-devices/relay.d.ts +100 -0
  531. package/dist/local-devices/relay.js +373 -0
  532. package/dist/local-devices/targets.d.ts +28 -0
  533. package/dist/local-devices/targets.js +73 -0
  534. package/dist/log.d.ts +13 -1
  535. package/dist/log.js +93 -17
  536. package/dist/models/embeddings.d.ts +82 -0
  537. package/dist/models/embeddings.js +326 -0
  538. package/dist/models/enablement.controller.d.ts +40 -0
  539. package/dist/models/enablement.controller.js +74 -0
  540. package/dist/models/enablement.d.ts +101 -0
  541. package/dist/models/enablement.js +264 -0
  542. package/dist/models/models.module.d.ts +5 -1
  543. package/dist/models/models.module.js +16 -4
  544. package/dist/models/org-models.schemas.d.ts +8 -0
  545. package/dist/models/org-models.schemas.js +22 -0
  546. package/dist/models/prices.d.ts +8 -6
  547. package/dist/models/prices.js +11 -9
  548. package/dist/models/purposes.controller.d.ts +6 -4
  549. package/dist/models/purposes.controller.js +13 -7
  550. package/dist/models/purposes.d.ts +72 -14
  551. package/dist/models/purposes.js +115 -34
  552. package/dist/orgs/directory-sync.d.ts +14 -5
  553. package/dist/orgs/directory-sync.js +41 -17
  554. package/dist/orgs/offboarding.d.ts +12 -8
  555. package/dist/orgs/offboarding.js +54 -33
  556. package/dist/orgs/org-lock.d.ts +5 -0
  557. package/dist/orgs/org-lock.js +13 -0
  558. package/dist/orgs/org.guard.d.ts +10 -0
  559. package/dist/orgs/org.guard.js +43 -32
  560. package/dist/orgs/orgs.controller.d.ts +2 -5
  561. package/dist/orgs/orgs.controller.js +3 -6
  562. package/dist/orgs/orgs.module.js +3 -0
  563. package/dist/orgs/orgs.schemas.d.ts +8 -0
  564. package/dist/orgs/orgs.schemas.js +16 -0
  565. package/dist/orgs/orgs.service.d.ts +23 -8
  566. package/dist/orgs/orgs.service.js +38 -16
  567. package/dist/orgs/roles.d.ts +1 -1
  568. package/dist/orgs/roles.js +5 -1
  569. package/dist/orgs/settings.controller.d.ts +1 -1
  570. package/dist/orgs/settings.service.d.ts +66 -6
  571. package/dist/orgs/settings.service.js +89 -10
  572. package/dist/overrides.d.ts +16 -1
  573. package/dist/overrides.js +10 -0
  574. package/dist/platform/actor.d.ts +48 -0
  575. package/dist/platform/actor.js +100 -0
  576. package/dist/platform/agent-docs.d.ts +18 -0
  577. package/dist/platform/agent-docs.js +59 -0
  578. package/dist/platform/availability.d.ts +14 -0
  579. package/dist/platform/availability.js +43 -0
  580. package/dist/platform/errors.d.ts +28 -0
  581. package/dist/platform/errors.js +65 -0
  582. package/dist/platform/exclusions.d.ts +11 -0
  583. package/dist/platform/exclusions.js +774 -0
  584. package/dist/platform/method.d.ts +6 -0
  585. package/dist/platform/method.js +15 -0
  586. package/dist/platform/operation.d.ts +169 -0
  587. package/dist/platform/operation.js +102 -0
  588. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  589. package/dist/platform/ops/accounts.ops.js +291 -0
  590. package/dist/platform/ops/admin-items.ops.d.ts +37 -0
  591. package/dist/platform/ops/admin-items.ops.js +278 -0
  592. package/dist/platform/ops/admin.ops.d.ts +38 -0
  593. package/dist/platform/ops/admin.ops.js +497 -0
  594. package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
  595. package/dist/platform/ops/agent-skills.ops.js +509 -0
  596. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  597. package/dist/platform/ops/agent-templates.ops.js +272 -0
  598. package/dist/platform/ops/agents.ops.d.ts +37 -0
  599. package/dist/platform/ops/agents.ops.js +730 -0
  600. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  601. package/dist/platform/ops/approvals.ops.js +116 -0
  602. package/dist/platform/ops/background.ops.d.ts +14 -0
  603. package/dist/platform/ops/background.ops.js +134 -0
  604. package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
  605. package/dist/platform/ops/catalog-admin.ops.js +682 -0
  606. package/dist/platform/ops/channels.ops.d.ts +16 -0
  607. package/dist/platform/ops/channels.ops.js +195 -0
  608. package/dist/platform/ops/components.ops.d.ts +46 -0
  609. package/dist/platform/ops/components.ops.js +854 -0
  610. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  611. package/dist/platform/ops/connectors.ops.js +190 -0
  612. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  613. package/dist/platform/ops/conversations.ops.js +470 -0
  614. package/dist/platform/ops/devices.ops.d.ts +26 -0
  615. package/dist/platform/ops/devices.ops.js +311 -0
  616. package/dist/platform/ops/errors.d.ts +16 -0
  617. package/dist/platform/ops/errors.js +30 -0
  618. package/dist/platform/ops/evals.ops.d.ts +28 -0
  619. package/dist/platform/ops/evals.ops.js +783 -0
  620. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  621. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  622. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  623. package/dist/platform/ops/extensions.ops.js +347 -0
  624. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  625. package/dist/platform/ops/inbox.ops.js +381 -0
  626. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  627. package/dist/platform/ops/marketplaces.ops.js +466 -0
  628. package/dist/platform/ops/models.ops.d.ts +25 -0
  629. package/dist/platform/ops/models.ops.js +232 -0
  630. package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
  631. package/dist/platform/ops/org-plugins.ops.js +388 -0
  632. package/dist/platform/ops/org-settings.ops.d.ts +18 -0
  633. package/dist/platform/ops/org-settings.ops.js +127 -0
  634. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  635. package/dist/platform/ops/orgs.ops.js +298 -0
  636. package/dist/platform/ops/other-orgs.d.ts +20 -0
  637. package/dist/platform/ops/other-orgs.js +72 -0
  638. package/dist/platform/ops/paging.d.ts +14 -0
  639. package/dist/platform/ops/paging.js +20 -0
  640. package/dist/platform/ops/platform.ops.d.ts +30 -0
  641. package/dist/platform/ops/platform.ops.js +231 -0
  642. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  643. package/dist/platform/ops/plugins.ops.js +476 -0
  644. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  645. package/dist/platform/ops/previewers.ops.js +109 -0
  646. package/dist/platform/ops/requests.ops.d.ts +14 -0
  647. package/dist/platform/ops/requests.ops.js +191 -0
  648. package/dist/platform/ops/role.d.ts +4 -0
  649. package/dist/platform/ops/role.js +10 -0
  650. package/dist/platform/ops/setup.ops.d.ts +24 -0
  651. package/dist/platform/ops/setup.ops.js +212 -0
  652. package/dist/platform/ops/skills.ops.d.ts +17 -0
  653. package/dist/platform/ops/skills.ops.js +160 -0
  654. package/dist/platform/ops/summary.d.ts +10 -0
  655. package/dist/platform/ops/summary.js +18 -0
  656. package/dist/platform/ops/themes.ops.d.ts +14 -0
  657. package/dist/platform/ops/themes.ops.js +47 -0
  658. package/dist/platform/ops/ui.ops.d.ts +8 -0
  659. package/dist/platform/ops/ui.ops.js +41 -0
  660. package/dist/platform/ops/unavailable.d.ts +23 -0
  661. package/dist/platform/ops/unavailable.js +118 -0
  662. package/dist/platform/parity.d.ts +33 -0
  663. package/dist/platform/parity.js +272 -0
  664. package/dist/platform/platform-ops.module.d.ts +43 -0
  665. package/dist/platform/platform-ops.module.js +142 -0
  666. package/dist/platform/platform.module.d.ts +8 -0
  667. package/dist/platform/platform.module.js +25 -0
  668. package/dist/platform/registry.d.ts +30 -0
  669. package/dist/platform/registry.js +111 -0
  670. package/dist/platform/route-schemas.d.ts +18 -0
  671. package/dist/platform/route-schemas.js +85 -0
  672. package/dist/roles/gateway-role.d.ts +18 -3
  673. package/dist/roles/gateway-role.js +33 -5
  674. package/dist/roles/gateway.module.d.ts +2 -1
  675. package/dist/roles/gateway.module.js +6 -3
  676. package/dist/roles/worker-role.d.ts +6 -4
  677. package/dist/roles/worker-role.js +14 -7
  678. package/dist/roles/worker.module.d.ts +1 -1
  679. package/dist/roles/worker.module.js +21 -1
  680. package/dist/runtime/context/build.d.ts +21 -13
  681. package/dist/runtime/context/build.js +106 -29
  682. package/dist/runtime/context/claude-tools.d.ts +4 -1
  683. package/dist/runtime/context/claude-tools.js +13 -12
  684. package/dist/runtime/context/compaction.js +24 -1
  685. package/dist/runtime/context/device-paths.d.ts +40 -0
  686. package/dist/runtime/context/device-paths.js +48 -0
  687. package/dist/runtime/context/legacy-text.d.ts +22 -0
  688. package/dist/runtime/context/legacy-text.js +37 -0
  689. package/dist/runtime/context/reminders.d.ts +2 -0
  690. package/dist/runtime/context/reminders.js +2 -0
  691. package/dist/runtime/context/run-context.d.ts +65 -0
  692. package/dist/runtime/context/run-context.js +215 -0
  693. package/dist/runtime/context/skills.d.ts +29 -11
  694. package/dist/runtime/context/skills.js +46 -32
  695. package/dist/runtime/context/tool-changes.d.ts +27 -0
  696. package/dist/runtime/context/tool-changes.js +60 -0
  697. package/dist/runtime/hook-calls.d.ts +8 -1
  698. package/dist/runtime/hook-calls.js +40 -7
  699. package/dist/runtime/langgraph-loop.d.ts +3 -1
  700. package/dist/runtime/langgraph-loop.js +36 -17
  701. package/dist/runtime/loop.d.ts +35 -6
  702. package/dist/runtime/maintenance.d.ts +9 -4
  703. package/dist/runtime/maintenance.js +35 -8
  704. package/dist/runtime/model-call.d.ts +54 -11
  705. package/dist/runtime/model-call.js +105 -28
  706. package/dist/runtime/providers.d.ts +149 -29
  707. package/dist/runtime/providers.js +332 -63
  708. package/dist/runtime/run-context.service.d.ts +65 -0
  709. package/dist/runtime/run-context.service.js +236 -0
  710. package/dist/runtime/run-control.d.ts +11 -1
  711. package/dist/runtime/run-control.js +12 -0
  712. package/dist/runtime/run-drafts.d.ts +85 -0
  713. package/dist/runtime/run-drafts.js +230 -0
  714. package/dist/runtime/run-finish.d.ts +1 -1
  715. package/dist/runtime/run-jobs.d.ts +3 -5
  716. package/dist/runtime/run-jobs.js +7 -9
  717. package/dist/runtime/run-queue.d.ts +62 -5
  718. package/dist/runtime/run-queue.js +313 -40
  719. package/dist/runtime/run-worker.d.ts +19 -8
  720. package/dist/runtime/run-worker.js +105 -44
  721. package/dist/runtime/runtime.module.js +13 -3
  722. package/dist/runtime/step-log.d.ts +15 -4
  723. package/dist/runtime/step-log.js +24 -7
  724. package/dist/runtime/stream.controller.d.ts +23 -1
  725. package/dist/runtime/stream.controller.js +60 -3
  726. package/dist/runtime/stream.d.ts +4 -1
  727. package/dist/runtime/stream.js +27 -3
  728. package/dist/runtime/subagents/child.d.ts +55 -7
  729. package/dist/runtime/subagents/child.js +105 -7
  730. package/dist/runtime/subagents/definition.d.ts +31 -26
  731. package/dist/runtime/subagents/definition.js +89 -142
  732. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  733. package/dist/runtime/subagents/deliveries.js +228 -0
  734. package/dist/runtime/subagents/dispatch.d.ts +116 -27
  735. package/dist/runtime/subagents/dispatch.js +213 -142
  736. package/dist/runtime/subagents/limits.d.ts +24 -5
  737. package/dist/runtime/subagents/limits.js +40 -6
  738. package/dist/runtime/subagents/messages.d.ts +95 -0
  739. package/dist/runtime/subagents/messages.js +328 -0
  740. package/dist/runtime/subagents/org-agents.js +2 -1
  741. package/dist/runtime/subagents/preamble.d.ts +4 -4
  742. package/dist/runtime/subagents/preamble.js +9 -7
  743. package/dist/runtime/subagents/progress.d.ts +8 -6
  744. package/dist/runtime/subagents/progress.js +11 -6
  745. package/dist/runtime/subagents/render.d.ts +30 -0
  746. package/dist/runtime/subagents/render.js +53 -0
  747. package/dist/runtime/subagents/roster.d.ts +25 -8
  748. package/dist/runtime/subagents/roster.js +48 -12
  749. package/dist/runtime/subagents/skill-fork.d.ts +4 -3
  750. package/dist/runtime/subagents/skill-fork.js +9 -5
  751. package/dist/runtime/subagents/status.d.ts +14 -0
  752. package/dist/runtime/subagents/status.js +23 -0
  753. package/dist/runtime/subagents/subagents.service.d.ts +9 -6
  754. package/dist/runtime/subagents/subagents.service.js +13 -8
  755. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  756. package/dist/runtime/usage-report-jobs.js +158 -0
  757. package/dist/runtime/usage-report.d.ts +35 -39
  758. package/dist/runtime/usage-report.js +171 -97
  759. package/dist/runtime/waits.d.ts +148 -39
  760. package/dist/runtime/waits.js +426 -112
  761. package/dist/sandbox/jobs.d.ts +40 -13
  762. package/dist/sandbox/jobs.js +57 -20
  763. package/dist/sandbox/leases.d.ts +37 -54
  764. package/dist/sandbox/leases.js +71 -115
  765. package/dist/sandbox/providers.d.ts +34 -7
  766. package/dist/sandbox/providers.js +54 -9
  767. package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
  768. package/dist/sandbox/sandbox-file-reader.js +98 -0
  769. package/dist/sandbox/sandbox.module.d.ts +3 -2
  770. package/dist/sandbox/sandbox.module.js +10 -4
  771. package/dist/sandbox/sandbox.service.d.ts +345 -132
  772. package/dist/sandbox/sandbox.service.js +883 -399
  773. package/dist/sandbox/unreachable.d.ts +30 -0
  774. package/dist/sandbox/unreachable.js +108 -0
  775. package/dist/setup/kernel-checks.d.ts +91 -0
  776. package/dist/setup/kernel-checks.js +295 -0
  777. package/dist/setup/oauth-token-probe.d.ts +47 -0
  778. package/dist/setup/oauth-token-probe.js +108 -0
  779. package/dist/setup/redact-check.d.ts +18 -0
  780. package/dist/setup/redact-check.js +46 -0
  781. package/dist/setup/setup-check-registry.d.ts +86 -0
  782. package/dist/setup/setup-check-registry.js +75 -0
  783. package/dist/setup/setup-checks.controller.d.ts +28 -0
  784. package/dist/setup/setup-checks.controller.js +78 -0
  785. package/dist/setup/setup-checks.schemas.d.ts +38 -0
  786. package/dist/setup/setup-checks.schemas.js +43 -0
  787. package/dist/setup/setup-checks.service.d.ts +144 -0
  788. package/dist/setup/setup-checks.service.js +683 -0
  789. package/dist/setup/setup-guides.controller.d.ts +18 -0
  790. package/dist/setup/setup-guides.controller.js +48 -0
  791. package/dist/setup/setup-guides.schemas.d.ts +10 -0
  792. package/dist/setup/setup-guides.schemas.js +6 -0
  793. package/dist/setup/setup-guides.service.d.ts +126 -0
  794. package/dist/setup/setup-guides.service.js +315 -0
  795. package/dist/setup/setup.module.d.ts +8 -0
  796. package/dist/setup/setup.module.js +31 -0
  797. package/dist/skills/agent-skills.controller.d.ts +48 -0
  798. package/dist/skills/agent-skills.controller.js +131 -0
  799. package/dist/skills/agent-skills.service.d.ts +262 -0
  800. package/dist/skills/agent-skills.service.js +996 -0
  801. package/dist/skills/catalog.d.ts +14 -11
  802. package/dist/skills/catalog.js +32 -50
  803. package/dist/skills/changes.controller.d.ts +12 -22
  804. package/dist/skills/changes.controller.js +27 -56
  805. package/dist/skills/changes.service.d.ts +69 -115
  806. package/dist/skills/changes.service.js +249 -598
  807. package/dist/skills/conversation-catalog.d.ts +53 -0
  808. package/dist/skills/conversation-catalog.js +149 -0
  809. package/dist/skills/invocable.controller.d.ts +1 -1
  810. package/dist/skills/invocable.controller.js +2 -2
  811. package/dist/skills/invocation-keys.d.ts +1 -1
  812. package/dist/skills/invocation-keys.js +1 -1
  813. package/dist/skills/invoke.d.ts +3 -3
  814. package/dist/skills/invoke.js +21 -8
  815. package/dist/skills/package.d.ts +15 -1
  816. package/dist/skills/package.js +14 -1
  817. package/dist/skills/skills.controller.d.ts +32 -6
  818. package/dist/skills/skills.controller.js +64 -11
  819. package/dist/skills/skills.module.js +25 -3
  820. package/dist/skills/skills.schemas.d.ts +44 -0
  821. package/dist/skills/skills.schemas.js +68 -0
  822. package/dist/skills/skills.service.d.ts +123 -26
  823. package/dist/skills/skills.service.js +493 -76
  824. package/dist/skills/usable.d.ts +82 -0
  825. package/dist/skills/usable.js +388 -0
  826. package/dist/themes/render-css.d.ts +13 -0
  827. package/dist/themes/render-css.js +135 -0
  828. package/dist/themes/theme-delivery.service.d.ts +36 -0
  829. package/dist/themes/theme-delivery.service.js +116 -0
  830. package/dist/themes/theme-state.d.ts +116 -0
  831. package/dist/themes/theme-state.js +221 -0
  832. package/dist/themes/theme-usage.d.ts +61 -0
  833. package/dist/themes/theme-usage.js +98 -0
  834. package/dist/themes/themes-public.controller.d.ts +33 -0
  835. package/dist/themes/themes-public.controller.js +98 -0
  836. package/dist/themes/themes.controller.d.ts +13 -0
  837. package/dist/themes/themes.controller.js +38 -0
  838. package/dist/themes/themes.module.d.ts +3 -0
  839. package/dist/themes/themes.module.js +21 -0
  840. package/dist/themes/themes.schemas.d.ts +3 -0
  841. package/dist/themes/themes.schemas.js +2 -0
  842. package/dist/themes/themes.service.d.ts +50 -0
  843. package/dist/themes/themes.service.js +99 -0
  844. package/dist/time-zone.d.ts +5 -0
  845. package/dist/time-zone.js +19 -0
  846. package/dist/tools/admin-connectors.d.ts +69 -0
  847. package/dist/tools/admin-connectors.js +135 -0
  848. package/dist/tools/approvals.controller.js +2 -3
  849. package/dist/tools/approvals.schemas.d.ts +21 -0
  850. package/dist/tools/approvals.schemas.js +15 -0
  851. package/dist/tools/approvals.service.d.ts +26 -2
  852. package/dist/tools/approvals.service.js +44 -5
  853. package/dist/tools/builtin-names.d.ts +104 -0
  854. package/dist/tools/builtin-names.js +164 -0
  855. package/dist/tools/builtins/agent.d.ts +27 -25
  856. package/dist/tools/builtins/agent.js +66 -63
  857. package/dist/tools/builtins/ask-user.d.ts +1 -1
  858. package/dist/tools/builtins/ask-user.js +5 -4
  859. package/dist/tools/builtins/builtin-tools.d.ts +23 -4
  860. package/dist/tools/builtins/builtin-tools.js +78 -12
  861. package/dist/tools/builtins/current-time.d.ts +26 -0
  862. package/dist/tools/builtins/current-time.js +99 -0
  863. package/dist/tools/builtins/handback.d.ts +28 -0
  864. package/dist/tools/builtins/handback.js +53 -0
  865. package/dist/tools/builtins/platform.d.ts +51 -0
  866. package/dist/tools/builtins/platform.js +451 -0
  867. package/dist/tools/builtins/read-tool-output.d.ts +1 -1
  868. package/dist/tools/builtins/read-tool-output.js +2 -2
  869. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  870. package/dist/tools/builtins/sandbox/bash.js +291 -39
  871. package/dist/tools/builtins/sandbox/common.d.ts +135 -36
  872. package/dist/tools/builtins/sandbox/common.js +222 -62
  873. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  874. package/dist/tools/builtins/sandbox/deliver.js +19 -16
  875. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  876. package/dist/tools/builtins/sandbox/edit.js +64 -50
  877. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  878. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  879. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  880. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  881. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  882. package/dist/tools/builtins/sandbox/glob.js +17 -12
  883. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  884. package/dist/tools/builtins/sandbox/grep.js +153 -34
  885. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  886. package/dist/tools/builtins/sandbox/index.js +13 -5
  887. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  888. package/dist/tools/builtins/sandbox/read.js +29 -19
  889. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  890. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  891. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  892. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  893. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  894. package/dist/tools/builtins/sandbox/write.js +51 -44
  895. package/dist/tools/builtins/send-message.d.ts +56 -0
  896. package/dist/tools/builtins/send-message.js +100 -0
  897. package/dist/tools/builtins/skill-load.d.ts +29 -18
  898. package/dist/tools/builtins/skill-load.js +125 -73
  899. package/dist/tools/builtins/tool-search.d.ts +13 -9
  900. package/dist/tools/builtins/tool-search.js +25 -14
  901. package/dist/tools/builtins/web/errors.d.ts +8 -0
  902. package/dist/tools/builtins/web/errors.js +53 -0
  903. package/dist/tools/builtins/web/extract.d.ts +62 -0
  904. package/dist/tools/builtins/web/extract.js +271 -0
  905. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  906. package/dist/tools/builtins/web/fetch.js +175 -0
  907. package/dist/tools/builtins/web/index.d.ts +13 -0
  908. package/dist/tools/builtins/web/index.js +12 -0
  909. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  910. package/dist/tools/builtins/web/page-cache.js +77 -0
  911. package/dist/tools/builtins/web/search.d.ts +25 -0
  912. package/dist/tools/builtins/web/search.js +210 -0
  913. package/dist/tools/builtins/web/url.d.ts +17 -0
  914. package/dist/tools/builtins/web/url.js +43 -0
  915. package/dist/tools/connector-account-policies.d.ts +51 -0
  916. package/dist/tools/connector-account-policies.js +165 -0
  917. package/dist/tools/connectors.controller.d.ts +74 -9
  918. package/dist/tools/connectors.controller.js +133 -16
  919. package/dist/tools/connectors.schemas.d.ts +27 -0
  920. package/dist/tools/connectors.schemas.js +34 -0
  921. package/dist/tools/connectors.service.d.ts +101 -8
  922. package/dist/tools/connectors.service.js +266 -28
  923. package/dist/tools/credentials.d.ts +23 -0
  924. package/dist/tools/credentials.js +90 -1
  925. package/dist/tools/display-names.d.ts +9 -0
  926. package/dist/tools/display-names.js +24 -0
  927. package/dist/tools/drift.js +5 -5
  928. package/dist/tools/elicitation.js +1 -1
  929. package/dist/tools/extension-tools.controller.d.ts +14 -0
  930. package/dist/tools/extension-tools.controller.js +37 -0
  931. package/dist/tools/info.d.ts +61 -4
  932. package/dist/tools/info.js +119 -33
  933. package/dist/tools/legacy-data.d.ts +34 -0
  934. package/dist/tools/legacy-data.js +76 -0
  935. package/dist/tools/legacy-keys.d.ts +51 -0
  936. package/dist/tools/legacy-keys.js +114 -0
  937. package/dist/tools/naming.d.ts +1 -5
  938. package/dist/tools/naming.js +1 -7
  939. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  940. package/dist/tools/oauth/flow-paths.js +1 -1
  941. package/dist/tools/oauth/flow.js +1 -1
  942. package/dist/tools/oauth/tokens.d.ts +54 -7
  943. package/dist/tools/oauth/tokens.js +87 -17
  944. package/dist/tools/org-tool-switches.d.ts +89 -0
  945. package/dist/tools/org-tool-switches.js +201 -0
  946. package/dist/tools/outputs.js +1 -1
  947. package/dist/tools/pipeline.d.ts +67 -47
  948. package/dist/tools/pipeline.js +319 -380
  949. package/dist/tools/policy.d.ts +30 -23
  950. package/dist/tools/policy.js +142 -64
  951. package/dist/tools/questions.controller.d.ts +1 -1
  952. package/dist/tools/questions.controller.js +1 -1
  953. package/dist/tools/questions.service.d.ts +23 -2
  954. package/dist/tools/questions.service.js +104 -2
  955. package/dist/tools/registry.d.ts +189 -68
  956. package/dist/tools/registry.js +318 -236
  957. package/dist/tools/resources.d.ts +1 -1
  958. package/dist/tools/resources.js +1 -1
  959. package/dist/tools/tools.module.js +31 -3
  960. package/dist/tools/validate.js +1 -1
  961. package/dist/ui/admin-ui.controller.d.ts +56 -0
  962. package/dist/ui/admin-ui.controller.js +192 -0
  963. package/dist/ui/arrangement.d.ts +65 -0
  964. package/dist/ui/arrangement.js +171 -0
  965. package/dist/ui/embed-token.d.ts +2 -2
  966. package/dist/ui/embed-token.js +30 -5
  967. package/dist/ui/registry.d.ts +42 -17
  968. package/dist/ui/registry.js +46 -14
  969. package/dist/ui/slots.controller.d.ts +11 -0
  970. package/dist/ui/slots.controller.js +25 -0
  971. package/dist/ui/ui-stream.d.ts +20 -3
  972. package/dist/ui/ui-stream.js +25 -7
  973. package/dist/ui/ui.schemas.d.ts +70 -0
  974. package/dist/ui/ui.schemas.js +65 -0
  975. package/dist/ui/views.controller.d.ts +35 -49
  976. package/dist/ui/views.controller.js +48 -70
  977. package/dist/ui/views.d.ts +112 -18
  978. package/dist/ui/views.js +254 -47
  979. package/package.json +6 -3
  980. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  981. package/src/migrations/0064_account_last_org.sql +7 -0
  982. package/src/migrations/0065_conversation_archive.sql +8 -0
  983. package/src/migrations/0066_extension_display_name.sql +4 -0
  984. package/src/migrations/0067_agent_profiles.sql +20 -0
  985. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  986. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  987. package/src/migrations/0070_background_tasks.sql +37 -0
  988. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  989. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  990. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  991. package/src/migrations/0074_subagent_tree.sql +50 -0
  992. package/src/migrations/0075_plugin_scope.sql +61 -0
  993. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  994. package/src/migrations/0077_scope_requests.sql +52 -0
  995. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  996. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  997. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  998. package/src/migrations/0081_platform_components.sql +129 -0
  999. package/src/migrations/0082_platform_migration.sql +33 -0
  1000. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1001. package/src/migrations/0084_org_owned_items.sql +85 -0
  1002. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1003. package/src/migrations/0086_org_layering.sql +30 -0
  1004. package/src/migrations/0087_approval_summary.sql +6 -0
  1005. package/src/migrations/0088_environments.sql +80 -0
  1006. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1007. package/src/migrations/0090_initial_passwords.sql +27 -0
  1008. package/src/migrations/0091_account_time_zone.sql +4 -0
  1009. package/src/migrations/0092_tools_default_on.sql +27 -0
  1010. package/src/migrations/0093_connected_environments.sql +37 -0
  1011. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1012. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1013. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1014. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1015. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1016. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1017. package/src/migrations/0100_catalog_files.sql +13 -0
  1018. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1019. package/src/migrations/0102_themes.sql +64 -0
  1020. package/src/migrations/0103_ui_theme_setting.sql +7 -0
  1021. package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
  1022. package/src/migrations/0105_devices_rename.sql +136 -0
  1023. package/src/migrations/0106_setup_guides_v2.sql +10 -0
  1024. package/src/migrations/0107_extension_client_builds.sql +50 -0
  1025. package/src/migrations/0108_question_skipped.sql +6 -0
  1026. package/src/migrations/0109_audit_platform_idx.sql +5 -0
  1027. package/src/migrations/0110_usage_time_idx.sql +8 -0
  1028. package/src/migrations/0111_agent_skill_sharing.sql +22 -0
  1029. package/src/migrations/0112_skill_share_requests.sql +4 -0
  1030. package/dist/catalog/upgrade-targets.d.ts +0 -56
  1031. package/dist/catalog/upgrade-targets.js +0 -90
  1032. package/dist/conversations/sandbox-status.d.ts +0 -24
  1033. package/dist/conversations/sandbox-status.js +0 -52
  1034. package/dist/extensions/org-config.controller.d.ts +0 -24
  1035. package/dist/extensions/org-config.controller.js +0 -62
  1036. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1037. package/dist/tools/builtins/sandbox/names.js +0 -20
  1038. package/dist/tools/builtins/skill-write.d.ts +0 -59
  1039. package/dist/tools/builtins/skill-write.js +0 -244
@@ -1,13 +1,11 @@
1
1
  import { SKILL_ENTRY_FILE, sanitizeParams, } from "@capybara-hq/plugin-sdk";
2
+ import { canonicalDisabledTools, } from "../../agents/definition.js";
2
3
  import { loadTemplates } from "../../agents/templates.js";
3
4
  import { ApiError } from "../../errors.js";
4
5
  import { PINNED_SKILLS_LIMITS } from "../../skills/catalog.js";
5
- import { toolKey } from "../../tools/naming.js";
6
- /**
7
- * Tools a sub-agent never gets (spec §5.3, §5.5): `agent` (depth 1), `ask_user` (the person does not
8
- * see the child), `sandbox_deliver` (delivering files is the parent's job) and `skill_write`.
9
- */
10
- export const CHILD_REMOVED_TOOLS = ["agent", "ask_user", "sandbox_deliver", "skill_write"];
6
+ import { selectedSkills } from "../../skills/usable.js";
7
+ import { AGENT_TOOL, CHILD_REMOVED_TOOLS } from "../../tools/builtin-names.js";
8
+ export { CHILD_REMOVED_TOOLS } from "../../tools/builtin-names.js";
11
9
  /**
12
10
  * The roster entry's template is gone (an inline template edited away, a plugin template
13
11
  * uninstalled) between resolving the roster and reading it. The dispatch refuses the call as an
@@ -25,7 +23,8 @@ const RANK = { ask: 1, deny: 2 };
25
23
  const isPolicy = (p) => p === "ask" || p === "deny";
26
24
  /**
27
25
  * `base` with `over` applied on top, the stricter value winning per key (`deny` > `ask`). Values
28
- * other than `ask` / `deny` (stored template data is not re-validated) are skipped on both sides.
26
+ * other than `ask` / `deny` (stored template data is not re-validated; an agent's connector-tool
27
+ * `allow`, which the policy check reads from the agent's current version) are skipped on both sides.
29
28
  */
30
29
  export function stricterPolicies(base, over) {
31
30
  const out = {};
@@ -41,73 +40,28 @@ export function stricterPolicies(base, over) {
41
40
  }
42
41
  return out;
43
42
  }
44
- async function loadConnectors(db, orgId, refs) {
45
- const ids = [...new Set(refs.flatMap((r) => (r.kind === "connector" ? [r.connectorId] : [])))];
46
- const out = new Map();
47
- if (ids.length === 0)
48
- return out;
49
- const rows = await db
50
- .selectFrom("connectors")
51
- .select(["id", "slug"])
52
- .where("org_id", "=", orgId)
53
- .where("deleted_at", "is", null)
54
- .where("id", "in", ids)
55
- .execute();
56
- const tools = rows.length === 0
57
- ? []
58
- : await db
59
- .selectFrom("connector_tools")
60
- .select(["connector_id", "name"])
61
- .where("connector_id", "in", rows.map((r) => r.id))
62
- .orderBy("name")
63
- .execute();
64
- for (const r of rows) {
65
- out.set(r.id, {
66
- slug: r.slug,
67
- tools: tools.filter((t) => t.connector_id === r.id).map((t) => t.name),
68
- });
69
- }
70
- return out;
71
- }
72
43
  /**
73
- * Narrows tool refs by resolved key (spec §5.3): keeps a key when `allow` (if given) lists it and
74
- * neither `deny` nor {@link CHILD_REMOVED_TOOLS} does. A connector ref with `tools: "all"` stays
75
- * live only when nothing can narrow it (no allowlist and no deny key under `<slug>__`), so a tool
76
- * the connector gains later never slips past the template; otherwise it becomes the kept names, or
77
- * is dropped. A connector that no longer exists keeps its ref only without an allowlist.
44
+ * A child's key filter (tools default-on spec §4): `deny` = the parent's own filter's (a nested
45
+ * child), {@link CHILD_REMOVED_TOOLS}, `Agent` when the child is at the depth limit, and the
46
+ * template's `disallowedTools`; `allow` = the template's `tools` allowlist met with the parent's
47
+ * (absent on both = everything the parent has). Keys are deduplicated in first-seen order.
78
48
  */
79
- function narrowTools(refs, connectors, allow, deny) {
80
- const removed = new Set(CHILD_REMOVED_TOOLS);
81
- const keep = (key) => !removed.has(key) && !deny.has(key) && (allow === null || allow.has(key));
82
- const out = [];
83
- for (const ref of refs) {
84
- if (ref.kind === "builtin") {
85
- if (keep(ref.name))
86
- out.push(ref);
87
- }
88
- else if (ref.kind === "plugin") {
89
- if (keep(toolKey(ref.plugin, ref.name)))
90
- out.push(ref);
91
- }
92
- else {
93
- const c = connectors.get(ref.connectorId);
94
- if (!c) {
95
- if (allow === null)
96
- out.push(ref);
97
- continue;
98
- }
99
- const prefix = toolKey(c.slug, "");
100
- if (ref.tools === "all" && allow === null && ![...deny].some((k) => k.startsWith(prefix))) {
101
- out.push(ref);
102
- continue;
103
- }
104
- const names = ref.tools === "all" ? c.tools : ref.tools;
105
- const kept = names.filter((name) => keep(toolKey(c.slug, name)));
106
- if (kept.length > 0)
107
- out.push({ ...ref, tools: kept });
108
- }
109
- }
110
- return out;
49
+ function childFilter(removeAgent, template, parent) {
50
+ const deny = [
51
+ ...new Set([
52
+ ...(parent?.deny ?? []),
53
+ ...CHILD_REMOVED_TOOLS,
54
+ ...(removeAgent ? [AGENT_TOOL] : []),
55
+ ...(template?.disallowedTools ?? []),
56
+ ]),
57
+ ];
58
+ const own = template?.tools === undefined ? undefined : [...new Set(template.tools)];
59
+ const allow = own === undefined
60
+ ? parent?.allow
61
+ : parent?.allow === undefined
62
+ ? own
63
+ : own.filter((k) => parent.allow?.includes(k));
64
+ return { ...(allow !== undefined && { allow: [...allow] }), deny };
111
65
  }
112
66
  /**
113
67
  * The template's skills the parent selects (its `orgSkills` or the parent agent's own skills),
@@ -116,25 +70,17 @@ function narrowTools(refs, connectors, allow, deny) {
116
70
  * this order, the skill from the template's own plugin, the agent's own skill, the org skill (ties
117
71
  * by id), with a warning. Dropped ones get a warning.
118
72
  */
119
- async function pinnedFor(db, a, refs, byName) {
120
- if (refs.length === 0)
73
+ async function pinnedFor(db, a, refs, byName,
74
+ /** Further names the template lists (`selectedSkills`): resolved the same way, never pinned. */
75
+ selected = []) {
76
+ if (refs.length === 0 && selected.length === 0)
121
77
  return { pinned: [], warnings: [] };
122
- const orgSkills = a.parent.skills?.orgSkills ?? [];
123
- const rows = (await db
124
- .selectFrom("skills as s")
125
- .innerJoin("skill_versions as v", (j) => j.onRef("v.skill_id", "=", "s.id").onRef("v.version", "=", "s.current_version"))
126
- .leftJoin("catalog_items as c", "c.id", "s.catalog_item_id")
127
- .select(["s.id", "s.name", "s.scope", "v.manifest", "c.name as plugin"])
128
- .where("s.org_id", "=", a.orgId)
129
- .where("s.deleted_at", "is", null)
130
- .where((eb) => {
131
- const own = eb.and([eb("s.scope", "=", "agent"), eb("s.agent_id", "=", a.parentAgentId)]);
132
- return orgSkills.length === 0
133
- ? own
134
- : eb.or([own, eb.and([eb("s.scope", "=", "org"), eb("s.id", "in", orgSkills)])]);
135
- })
136
- .orderBy("s.id")
137
- .execute()).map((r) => ({
78
+ // org and agent skills, linked org copies and platform skills on in the org (phase 2), by id
79
+ const rows = (await selectedSkills(db, {
80
+ orgId: a.orgId,
81
+ agentId: a.parentAgentId,
82
+ orgSkills: a.parent.skills?.orgSkills ?? [],
83
+ })).map((r) => ({
138
84
  id: r.id,
139
85
  name: r.name,
140
86
  scope: r.scope,
@@ -180,12 +126,19 @@ async function pinnedFor(db, a, refs, byName) {
180
126
  total += r.bytes;
181
127
  pinned.push(r.id);
182
128
  }
129
+ for (const ref of selected) {
130
+ if (refs.includes(ref))
131
+ continue;
132
+ if (!match(ref)) {
133
+ warnings.push(`The skill "${ref}" is not available: the agent does not select it.`);
134
+ }
135
+ }
183
136
  return { pinned, warnings };
184
137
  }
185
138
  /** The `effort` declaration of `model`, or null (or when the model cannot be resolved). */
186
- async function effortDecl(registry, model) {
139
+ async function effortDecl(registry, orgId, model) {
187
140
  try {
188
- const { info } = await registry.resolve(model);
141
+ const { info } = await registry.resolve(orgId, model);
189
142
  return info.parameters.find((p) => p.standard === "effort") ?? null;
190
143
  }
191
144
  catch {
@@ -221,6 +174,7 @@ async function resolveTier(d, orgId, parent, tier) {
221
174
  }
222
175
  /** `"{parent name} › {agent type}"`, within the 80-character name limit. */
223
176
  const childName = (parent, type) => `${parent} › ${type}`.slice(0, 80);
177
+ const atMaxDepth = (a) => a.childDepth >= a.maxDepth;
224
178
  function orgAgentDefinition(d, a) {
225
179
  // the version the gates checked (checkOrgAgent), never read again here: a version saved in
226
180
  // between could be one the gates never saw (batch 3 review M1)
@@ -229,11 +183,17 @@ function orgAgentDefinition(d, a) {
229
183
  }
230
184
  const agentId = a.entry.agentId ?? "";
231
185
  const own = a.orgAgent.definition;
232
- const { subagents: _subagents, skills, ...rest } = own;
186
+ // prompt files are authoring data: the child's model sees only `instructions` (their join), and
187
+ // `subagent_started.definition` keeps its shape (spec 2026-11-04 §3.3); its own `subagents`
188
+ // block stays: it is the roster the child dispatches from (agent map spec §4.1); pending
189
+ // connectors are authoring data too (ruling P4-6)
190
+ const { skills, instructionFiles: _files, pendingConnectors: _pending, ...rest } = own;
191
+ const { subagentTools: _filter, ...ownRest } = rest;
233
192
  const definition = {
234
- ...rest,
193
+ ...ownRest,
235
194
  // its own tools, not intersected with the parent's; only the child-removed ones go
236
- tools: narrowTools(own.tools, new Map(), null, new Set()),
195
+ disabledTools: own.disabledTools ?? [],
196
+ subagentTools: childFilter(atMaxDepth(a), null),
237
197
  // its policies, then the parent's on top, stricter wins (keys outside its tools are inert)
238
198
  toolPolicies: stricterPolicies(own.toolPolicies ?? {}, a.parent.toolPolicies ?? {}),
239
199
  ...(skills !== undefined && {
@@ -262,8 +222,10 @@ function orgAgentDefinition(d, a) {
262
222
  * (`tierFallback`); a template `effort` is set when the resolved model declares it;
263
223
  * - `agent`: the org agent's version that passed the gates (`orgAgent`, from {@link checkOrgAgent}),
264
224
  * its own tools minus the child-removed ones, its policies with the parent's on top (stricter
265
- * wins), its skills and model; `tier` ignored.
266
- * The `subagents` block is never part of a child's definition (depth 1).
225
+ * wins), its skills, model and `subagents` block; `tier` ignored.
226
+ * Nesting (agent map spec §4.1): `Agent` stays unless the child is at `maxDepth`; the frozen
227
+ * definition keeps a `subagents` block, the roster the child dispatches from: an org agent's own,
228
+ * otherwise the parent definition's (a general-purpose, inline or plugin child inherits it).
267
229
  */
268
230
  export async function effectiveDefinition(d, a) {
269
231
  if (a.entry.source === "agent")
@@ -282,17 +244,21 @@ export async function effectiveDefinition(d, a) {
282
244
  if (!row)
283
245
  throw new SubagentTypeGoneError(entry.type);
284
246
  template = row.template;
285
- ref = { source: "plugin", id: row.id, version: row.version, plugin: row.plugin };
247
+ ref = {
248
+ source: "plugin",
249
+ id: row.id,
250
+ version: row.version,
251
+ ...(row.plugin ? { plugin: row.plugin } : {}),
252
+ ...(row.platformTemplateId !== undefined && { platformTemplateId: row.platformTemplateId }),
253
+ };
286
254
  }
287
- const connectors = await loadConnectors(d.db, a.orgId, parent.tools);
288
- const tools = narrowTools(parent.tools, connectors, template?.tools !== undefined ? new Set(template.tools) : null, new Set(template?.disallowedTools ?? []));
289
255
  const toolPolicies = stricterPolicies(parent.toolPolicies ?? {}, template?.toolPolicies ?? {});
290
- const { pinned, warnings } = await pinnedFor(d.db, a, template?.skills ?? [], entry.source === "plugin" ? { plugin: entry.plugin } : null);
256
+ const { pinned, warnings } = await pinnedFor(d.db, a, template?.skills ?? [], entry.source === "plugin" ? { plugin: entry.plugin } : null, template?.selectedSkills ?? []);
291
257
  const tier = a.tier ?? template?.model ?? "inherit";
292
258
  const m = await resolveTier(d, a.orgId, parent, tier);
293
259
  let modelParams = m.modelParams;
294
260
  if (template?.effort !== undefined) {
295
- const decl = await effortDecl(d.registry, m.model);
261
+ const decl = await effortDecl(d.registry, a.orgId, m.model);
296
262
  if (decl) {
297
263
  const v = sanitizeParams([decl], { [decl.key]: template.effort }).value[decl.key];
298
264
  if (v !== undefined)
@@ -308,7 +274,8 @@ export async function effectiveDefinition(d, a) {
308
274
  fallback: m.fallback,
309
275
  modelParams,
310
276
  fallbackParams: m.fallbackParams,
311
- tools,
277
+ disabledTools: parent.disabledTools ?? [],
278
+ subagentTools: childFilter(atMaxDepth(a), template, parent.subagentTools),
312
279
  toolPolicies,
313
280
  ...((parentSkills !== undefined || pinned.length > 0) && {
314
281
  skills: {
@@ -316,6 +283,7 @@ export async function effectiveDefinition(d, a) {
316
283
  ...(pinned.length > 0 && { pinned }),
317
284
  },
318
285
  }),
286
+ ...(parent.subagents !== undefined && { subagents: parent.subagents }),
319
287
  };
320
288
  return {
321
289
  definition,
@@ -326,57 +294,32 @@ export async function effectiveDefinition(d, a) {
326
294
  tierFallback: m.tierFallback,
327
295
  };
328
296
  }
329
- /**
330
- * The refs of `frozen` that `current` still has: a builtin or plugin tool by name, a connector by
331
- * id; a connector's `all` meets the other side's names (`all` on both stays `all`), and a
332
- * connector left with no names is dropped. Pure: a connector `current` lists is not looked up.
333
- */
334
- export function intersectTools(frozen, current) {
335
- const out = [];
336
- for (const ref of frozen) {
337
- if (ref.kind === "builtin") {
338
- if (current.some((c) => c.kind === "builtin" && c.name === ref.name))
339
- out.push(ref);
340
- }
341
- else if (ref.kind === "plugin") {
342
- if (current.some((c) => c.kind === "plugin" && c.plugin === ref.plugin && c.name === ref.name)) {
343
- out.push(ref);
344
- }
345
- }
346
- else {
347
- const c = current.find((x) => x.kind === "connector" && x.connectorId === ref.connectorId);
348
- if (!c)
349
- continue;
350
- if (c.tools === "all") {
351
- out.push(ref);
352
- continue;
353
- }
354
- const names = ref.tools === "all" ? c.tools : ref.tools.filter((n) => c.tools.includes(n));
355
- if (names.length > 0)
356
- out.push({ ...ref, tools: names });
357
- }
358
- }
359
- return out;
360
- }
361
297
  /**
362
298
  * The narrowing of a follow-up (final review I1): `frozen` (the child's `subagent_started`
363
299
  * definition) against `current`, the definition a fresh dispatch would read now: the dispatching
364
300
  * parent run's version for `general` / inline / plugin children, the dispatched org agent's
365
301
  * current version for an org agent child (whose tools are its own at dispatch too, §5.5). Its
366
- * `orgSkills` keep only those `current` still selects; a pinned id that was one of the frozen org
367
- * skills goes with it (the agent's own skills stay).
302
+ * `disabledTools` are both lists together; its `orgSkills` keep only those `current` still
303
+ * selects; a pinned id that was one of the frozen org skills goes with it (the agent's own skills
304
+ * stay).
368
305
  */
369
306
  export function narrowFollowUp(frozen, current) {
370
- const tools = intersectTools(frozen.tools, current.tools);
307
+ const disabledTools = canonicalDisabledTools([
308
+ ...(frozen.disabledTools ?? []),
309
+ ...(current.disabledTools ?? []),
310
+ ]);
371
311
  if (frozen.skills === undefined)
372
- return { tools };
312
+ return { disabledTools };
373
313
  const frozenOrg = new Set(frozen.skills.orgSkills);
374
314
  const now = new Set(current.skills?.orgSkills ?? []);
375
315
  const orgSkills = frozen.skills.orgSkills.filter((id) => now.has(id));
376
316
  const pinned = frozen.skills.pinned?.filter((id) => !frozenOrg.has(id) || now.has(id));
377
- return { tools, skills: { orgSkills, ...(pinned !== undefined && { pinned }) } };
317
+ return { disabledTools, skills: { orgSkills, ...(pinned !== undefined && { pinned }) } };
378
318
  }
379
- /** The definition a child run uses: the frozen one with its trigger's follow-up narrowing. */
319
+ /**
320
+ * The definition a child run uses: the frozen one with its trigger's follow-up narrowing. A
321
+ * narrowing logged before tools were on by default (no `disabledTools`) narrows only skills.
322
+ */
380
323
  export function childRunDefinition(frozen, narrowed) {
381
324
  if (narrowed === undefined)
382
325
  return frozen;
@@ -388,5 +331,9 @@ export function childRunDefinition(frozen, narrowed) {
388
331
  orgSkills: narrowed.skills.orgSkills,
389
332
  ...(narrowed.skills.pinned !== undefined && { pinned: narrowed.skills.pinned }),
390
333
  };
391
- return { ...rest, tools: narrowed.tools, ...(kept !== undefined && { skills: kept }) };
334
+ return {
335
+ ...rest,
336
+ ...(Array.isArray(narrowed.disabledTools) && { disabledTools: narrowed.disabledTools }),
337
+ ...(kept !== undefined && { skills: kept }),
338
+ };
392
339
  }
@@ -0,0 +1,71 @@
1
+ import { EventLog } from "../../conversations/event-log.js";
2
+ import type { EventPayload } from "../../conversations/events.js";
3
+ import { KernelDb } from "../../infra/database/kernel-db.js";
4
+ import { TransactionHost } from "../../infra/database/transaction-host.js";
5
+ import { KernelEvents } from "../../infra/events/kernel-events.js";
6
+ import type { KernelLogger } from "../../log.js";
7
+ import { type DispatchRow } from "./child.js";
8
+ /** What a caller of {@link SubagentDeliveries.deliverIn} gives; the rest comes from the dispatch. */
9
+ export type DeliveryInput = Omit<EventPayload<"subagent_delivery">, "subagentId" | "childRunId" | "description" | "triggerAccountId">;
10
+ /** Idempotency key of a child run's finished delivery (one per child run). */
11
+ export declare const finishedDeliveryIdemKey: (childRunId: string) => string;
12
+ /**
13
+ * Deliveries from a sub-agent to its parent conversation (agent map spec §4.5, §5.2): each is one
14
+ * model-visible, absorbable `subagent_delivery` event in the parent's log. A parent run that is
15
+ * active absorbs it at its next model call; an idle parent is woken from the `subagent.delivered`
16
+ * domain event (emitted after the commit, with the log's notify).
17
+ *
18
+ * A background child's run reaching a terminal state ({@link childFinished}) writes the
19
+ * display-only `subagent_finished` and a `finished` delivery in one transaction, both idempotent by
20
+ * the child run, so of two finishers (the worker and a stop, the orphan sweep) exactly one writes
21
+ * them. A run that handed back a report and then completed writes no delivery (acceptance
22
+ * 2026-11-07): the report already told the parent everything, and a content-free "completed" line
23
+ * only woke an idle parent for nothing and pushed the report away from the end of its request. Fork invocations (phase D, `for_skill`) do not deliver: their parent run waits on the child
24
+ * and writes the report itself (`advanceSkillForks`).
25
+ */
26
+ export declare class SubagentDeliveries {
27
+ private readonly kdb;
28
+ private readonly eventLog;
29
+ private readonly events;
30
+ private readonly log;
31
+ readonly txHost: TransactionHost;
32
+ constructor(kdb: KernelDb, eventLog: EventLog, events: KernelEvents, log: Pick<KernelLogger, "warn">, txHost: TransactionHost);
33
+ /** The context's handle (the transaction of a `@Transactional` method, else the pool). */
34
+ private get db();
35
+ /**
36
+ * Appends one delivery of the dispatch `row` to the parent log, in the caller's transaction or
37
+ * one of its own: the description is the dispatch's (`subagent_dispatched`), the trigger account
38
+ * the child run's (a wake runs as that person, §7). Idempotent by `opts.idemKey` (a finish's
39
+ * default is {@link finishedDeliveryIdemKey}; a report or a note must name its own): under the
40
+ * parent conversation's row lock, an existing delivery returns null and writes nothing. After
41
+ * the commit: the log's notify and `subagent.delivered`. Returns the new event's seq.
42
+ */
43
+ deliverIn(row: DispatchRow, d: DeliveryInput, opts?: {
44
+ idemKey?: string;
45
+ }): Promise<number | null>;
46
+ /**
47
+ * A background child run reached a terminal state (agent map spec §4.5, §5.2): appends the
48
+ * parent's `subagent_finished` (display only) and a `finished` delivery in one transaction, for
49
+ * every run of a child conversation (dispatched, sent a message or woken;
50
+ * {@link deliveryRowOfChildRun}), each once by its run. The delivery
51
+ * carries the final reply when the run handed back no report, else no text and `handedBack`; a
52
+ * failed run's error message and code, an aborted run who stopped it. A run that handed back and
53
+ * then `completed` gets only `subagent_finished` (not model-visible, wakes nothing); the log's
54
+ * notify still announces it to viewers. A run of a conversation never dispatched, a fork
55
+ * invocation's child, or not terminal yet is left alone. True when this call wrote the finish.
56
+ */
57
+ childFinished(childRunId: string): Promise<boolean>;
58
+ /** {@link childFinished}'s transaction. */
59
+ private finishIn;
60
+ /**
61
+ * {@link finishIn} for a run that handed back and completed: only `subagent_finished`, written
62
+ * once under the parent conversation's row lock (idempotent by the child run), then the log's
63
+ * notify after the commit. No `subagent.delivered`: nothing model-visible arrived, so no wake.
64
+ * True when this call wrote it.
65
+ */
66
+ private finishSilentlyIn;
67
+ /** Whether the child run handed back a report (`SubagentHandback`) before it finished. */
68
+ private handedBack;
69
+ /** The dispatch's task label (`subagent_dispatched.description`), else the child's title. */
70
+ private descriptionOf;
71
+ }
@@ -0,0 +1,228 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Inject, Injectable } from "@nestjs/common";
11
+ import { sql } from "kysely";
12
+ import { EventLog } from "../../conversations/event-log.js";
13
+ import { afterCommit } from "../../infra/database/after-commit.js";
14
+ import { KernelDb } from "../../infra/database/kernel-db.js";
15
+ import { TransactionHost } from "../../infra/database/transaction-host.js";
16
+ import { Transactional } from "../../infra/database/transactional.decorator.js";
17
+ import { KernelEvents } from "../../infra/events/kernel-events.js";
18
+ import { KERNEL_LOGGER } from "../../infra/tokens.js";
19
+ import { TERMINAL_STATUSES } from "../run-finish.js";
20
+ import { childResult, deliveryRowOfChildRun, finishedEvent } from "./child.js";
21
+ import { dispatchedIdemKey } from "./dispatch.js";
22
+ /** Idempotency key of a child run's finished delivery (one per child run). */
23
+ export const finishedDeliveryIdemKey = (childRunId) => `subagent_delivery:${childRunId}:finished`;
24
+ /** The longest `subagent_delivery.text` (the event schema's bound). */
25
+ const DELIVERY_TEXT_MAX = 200_000;
26
+ /**
27
+ * Deliveries from a sub-agent to its parent conversation (agent map spec §4.5, §5.2): each is one
28
+ * model-visible, absorbable `subagent_delivery` event in the parent's log. A parent run that is
29
+ * active absorbs it at its next model call; an idle parent is woken from the `subagent.delivered`
30
+ * domain event (emitted after the commit, with the log's notify).
31
+ *
32
+ * A background child's run reaching a terminal state ({@link childFinished}) writes the
33
+ * display-only `subagent_finished` and a `finished` delivery in one transaction, both idempotent by
34
+ * the child run, so of two finishers (the worker and a stop, the orphan sweep) exactly one writes
35
+ * them. A run that handed back a report and then completed writes no delivery (acceptance
36
+ * 2026-11-07): the report already told the parent everything, and a content-free "completed" line
37
+ * only woke an idle parent for nothing and pushed the report away from the end of its request. Fork invocations (phase D, `for_skill`) do not deliver: their parent run waits on the child
38
+ * and writes the report itself (`advanceSkillForks`).
39
+ */
40
+ let SubagentDeliveries = class SubagentDeliveries {
41
+ kdb;
42
+ eventLog;
43
+ events;
44
+ log;
45
+ txHost;
46
+ constructor(kdb, eventLog, events, log, txHost) {
47
+ this.kdb = kdb;
48
+ this.eventLog = eventLog;
49
+ this.events = events;
50
+ this.log = log;
51
+ this.txHost = txHost;
52
+ }
53
+ /** The context's handle (the transaction of a `@Transactional` method, else the pool). */
54
+ get db() {
55
+ return this.kdb.db;
56
+ }
57
+ /**
58
+ * Appends one delivery of the dispatch `row` to the parent log, in the caller's transaction or
59
+ * one of its own: the description is the dispatch's (`subagent_dispatched`), the trigger account
60
+ * the child run's (a wake runs as that person, §7). Idempotent by `opts.idemKey` (a finish's
61
+ * default is {@link finishedDeliveryIdemKey}; a report or a note must name its own): under the
62
+ * parent conversation's row lock, an existing delivery returns null and writes nothing. After
63
+ * the commit: the log's notify and `subagent.delivered`. Returns the new event's seq.
64
+ */
65
+ async deliverIn(row, d, opts = {}) {
66
+ const idemKey = opts.idemKey ?? (d.kind === "finished" ? finishedDeliveryIdemKey(row.childRunId) : undefined);
67
+ if (idemKey === undefined)
68
+ throw new Error(`a ${d.kind} delivery needs its idempotency key`);
69
+ const t = this.db;
70
+ const parent = row.parentConversationId;
71
+ await t
72
+ .selectFrom("conversations")
73
+ .select("id")
74
+ .where("id", "=", parent)
75
+ .forUpdate()
76
+ .executeTakeFirst();
77
+ const existing = await t
78
+ .selectFrom("conversation_events")
79
+ .select("seq")
80
+ .where("conversation_id", "=", parent)
81
+ .where("idem_key", "=", idemKey)
82
+ .executeTakeFirst();
83
+ if (existing)
84
+ return null;
85
+ const run = await t
86
+ .selectFrom("runs")
87
+ .select("trigger_account_id")
88
+ .where("id", "=", row.childRunId)
89
+ .executeTakeFirstOrThrow();
90
+ const [event] = await this.eventLog.appendIn(parent, [
91
+ {
92
+ type: "subagent_delivery",
93
+ idemKey,
94
+ payload: {
95
+ subagentId: row.childConversationId,
96
+ childRunId: row.childRunId,
97
+ description: await this.descriptionOf(row),
98
+ ...d,
99
+ text: d.text.length > DELIVERY_TEXT_MAX ? d.text.slice(0, DELIVERY_TEXT_MAX) : d.text,
100
+ triggerAccountId: run.trigger_account_id,
101
+ },
102
+ },
103
+ ]);
104
+ if (!event)
105
+ return null;
106
+ afterCommit(async () => {
107
+ await this.eventLog.notify(parent, event.seq);
108
+ await this.events.emit("subagent.delivered", { conversationId: parent });
109
+ });
110
+ return event.seq;
111
+ }
112
+ /**
113
+ * A background child run reached a terminal state (agent map spec §4.5, §5.2): appends the
114
+ * parent's `subagent_finished` (display only) and a `finished` delivery in one transaction, for
115
+ * every run of a child conversation (dispatched, sent a message or woken;
116
+ * {@link deliveryRowOfChildRun}), each once by its run. The delivery
117
+ * carries the final reply when the run handed back no report, else no text and `handedBack`; a
118
+ * failed run's error message and code, an aborted run who stopped it. A run that handed back and
119
+ * then `completed` gets only `subagent_finished` (not model-visible, wakes nothing); the log's
120
+ * notify still announces it to viewers. A run of a conversation never dispatched, a fork
121
+ * invocation's child, or not terminal yet is left alone. True when this call wrote the finish.
122
+ */
123
+ async childFinished(childRunId) {
124
+ const row = await deliveryRowOfChildRun(this.db, childRunId);
125
+ if (!row || row.forSkill === true)
126
+ return false;
127
+ const run = await this.db
128
+ .selectFrom("runs")
129
+ .select("status")
130
+ .where("id", "=", childRunId)
131
+ .executeTakeFirst();
132
+ if (!run || !TERMINAL_STATUSES.has(run.status))
133
+ return false;
134
+ const r = await childResult(this.eventLog, row);
135
+ if (!r) {
136
+ this.log.warn("sub-agent run is terminal without a terminal event", { childRunId });
137
+ return false;
138
+ }
139
+ return this.finishIn(row, r);
140
+ }
141
+ /** {@link childFinished}'s transaction. */
142
+ async finishIn(row, r) {
143
+ const { status, errorCode } = r.finished;
144
+ const handedBack = await this.handedBack(row);
145
+ if (handedBack && status === "completed")
146
+ return this.finishSilentlyIn(row, r.finished);
147
+ await this.eventLog.appendIn(row.parentConversationId, [finishedEvent(row, r.finished)]);
148
+ const text = handedBack
149
+ ? ""
150
+ : status === "failed"
151
+ ? (r.errorMessage ?? "")
152
+ : status === "aborted" || status === "timed_out"
153
+ ? ""
154
+ : r.reply;
155
+ const seq = await this.deliverIn(row, {
156
+ kind: "finished",
157
+ status,
158
+ text,
159
+ ...(handedBack && { handedBack: true }),
160
+ ...(errorCode !== undefined && { errorCode }),
161
+ ...(r.abortedBy !== undefined && { abortedBy: r.abortedBy }),
162
+ });
163
+ return seq !== null;
164
+ }
165
+ /**
166
+ * {@link finishIn} for a run that handed back and completed: only `subagent_finished`, written
167
+ * once under the parent conversation's row lock (idempotent by the child run), then the log's
168
+ * notify after the commit. No `subagent.delivered`: nothing model-visible arrived, so no wake.
169
+ * True when this call wrote it.
170
+ */
171
+ async finishSilentlyIn(row, finished) {
172
+ const parent = row.parentConversationId;
173
+ const event = finishedEvent(row, finished);
174
+ await this.db
175
+ .selectFrom("conversations")
176
+ .select("id")
177
+ .where("id", "=", parent)
178
+ .forUpdate()
179
+ .executeTakeFirst();
180
+ if (event.idemKey !== undefined && (await this.eventLog.findByIdem(parent, event.idemKey)))
181
+ return false;
182
+ const [written] = await this.eventLog.appendIn(parent, [event]);
183
+ if (!written)
184
+ return false;
185
+ afterCommit(() => this.eventLog.notify(parent, written.seq));
186
+ return true;
187
+ }
188
+ /** Whether the child run handed back a report (`SubagentHandback`) before it finished. */
189
+ async handedBack(row) {
190
+ const hit = await this.db
191
+ .selectFrom("conversation_events")
192
+ .select("seq")
193
+ .where("conversation_id", "=", row.parentConversationId)
194
+ .where("type", "=", "subagent_delivery")
195
+ .where(sql `payload ->> 'childRunId'`, "=", row.childRunId)
196
+ .where(sql `payload ->> 'kind'`, "=", "report")
197
+ .limit(1)
198
+ .executeTakeFirst();
199
+ return hit !== undefined;
200
+ }
201
+ /** The dispatch's task label (`subagent_dispatched.description`), else the child's title. */
202
+ async descriptionOf(row) {
203
+ const dispatched = await this.eventLog.findByIdem(row.parentConversationId, dispatchedIdemKey(row.parentRunId, row.parentCallId));
204
+ if (dispatched?.type === "subagent_dispatched")
205
+ return dispatched.payload.description;
206
+ const conv = await this.db
207
+ .selectFrom("conversations")
208
+ .select("title")
209
+ .where("id", "=", row.childConversationId)
210
+ .executeTakeFirst();
211
+ return conv?.title ?? "";
212
+ }
213
+ };
214
+ __decorate([
215
+ Transactional()
216
+ ], SubagentDeliveries.prototype, "deliverIn", null);
217
+ __decorate([
218
+ Transactional()
219
+ ], SubagentDeliveries.prototype, "finishIn", null);
220
+ SubagentDeliveries = __decorate([
221
+ Injectable(),
222
+ __param(0, Inject(KernelDb)),
223
+ __param(1, Inject(EventLog)),
224
+ __param(2, Inject(KernelEvents)),
225
+ __param(3, Inject(KERNEL_LOGGER)),
226
+ __param(4, Inject(TransactionHost))
227
+ ], SubagentDeliveries);
228
+ export { SubagentDeliveries };