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

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 +85 -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 +41 -5
  356. package/dist/extensions/bootstrap.js +121 -19
  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 +4 -2
  509. package/dist/lifecycle/kernel-lifecycle.js +35 -7
  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,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
@@ -45,7 +62,7 @@ export declare const isGeneralAlias: (agent: string) => boolean;
45
62
  * `general-purpose` for no `agent` and Claude's built-in types; else a roster type (a bare name
46
63
  * prefers the skill's own plugin's template `<plugin>:<name>`, then {@link findType}). An `agent`
47
64
  * that does not resolve falls back to `general-purpose` and is returned as `unknown`. `inRoster`:
48
- * the type is one the parent's `agent` tool offers (`general-purpose` is not when
65
+ * the type is one the parent's `Agent` tool offers (`general-purpose` is not when
49
66
  * `subagents.general === false`, which does not block a person's fork invocation).
50
67
  */
51
68
  export declare function resolveSkillForkType(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">, agent: string | undefined, plugin: string | undefined): Promise<{
@@ -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) });
@@ -90,7 +126,7 @@ export const isGeneralAlias = (agent) => GENERAL_ALIASES.has(agent);
90
126
  * `general-purpose` for no `agent` and Claude's built-in types; else a roster type (a bare name
91
127
  * prefers the skill's own plugin's template `<plugin>:<name>`, then {@link findType}). An `agent`
92
128
  * that does not resolve falls back to `general-purpose` and is returned as `unknown`. `inRoster`:
93
- * the type is one the parent's `agent` tool offers (`general-purpose` is not when
129
+ * the type is one the parent's `Agent` tool offers (`general-purpose` is not when
94
130
  * `subagents.general === false`, which does not block a person's fork invocation).
95
131
  */
96
132
  export async function resolveSkillForkType(db, orgId, parent, agent, plugin) {
@@ -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.
@@ -110,7 +111,7 @@ export declare const recordedSkillForks: (eventLog: Pick<EventLog, "append" | "f
110
111
  * In the transaction of a run's terminal path (or the wait sweep): the run's fork invocation
111
112
  * (its trigger message, by the run boundary) without a report gets one now: the ended child's
112
113
  * result (and the parent's missing `subagent_finished`), {@link AGENT_STOPPED_WITH_RUN_TEXT} for a
113
- * child still active (the caller stops it after its commit, as for `agent` calls), or
114
+ * child still active (the caller stops it after its commit, as for `Agent` calls), or
114
115
  * {@link FORK_NOT_STARTED_TEXT} when nothing was dispatched. Returns the call ids written
115
116
  * (`skill-<seq>`) and the highest seq; the caller notifies after its commit.
116
117
  */
@@ -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)]);
@@ -190,7 +191,7 @@ export const recordedSkillForks = (eventLog, recorded) => ({
190
191
  * In the transaction of a run's terminal path (or the wait sweep): the run's fork invocation
191
192
  * (its trigger message, by the run boundary) without a report gets one now: the ended child's
192
193
  * result (and the parent's missing `subagent_finished`), {@link AGENT_STOPPED_WITH_RUN_TEXT} for a
193
- * child still active (the caller stops it after its commit, as for `agent` calls), or
194
+ * child still active (the caller stops it after its commit, as for `Agent` calls), or
194
195
  * {@link FORK_NOT_STARTED_TEXT} when nothing was dispatched. Returns the call ids written
195
196
  * (`skill-<seq>`) and the highest seq; the caller notifies after its commit.
196
197
  */
@@ -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
+ }
@@ -12,12 +12,12 @@ import { type ChildWriter, type DispatchArgs, type DispatchCommit, type Dispatch
12
12
  import { type SubagentStep } from "./progress.js";
13
13
  import { type SkillForkDeps, type SkillForks } from "./skill-fork.js";
14
14
  /**
15
- * Sub-agents (phase C, spec §7) and forked skills (phase D): the `agent` tool's dispatch (the
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;
@@ -28,13 +28,16 @@ export declare class SubagentsService {
28
28
  /** The live fork handler of the loop (`LoopDeps.skillForks`). */
29
29
  readonly skillForks: SkillForks;
30
30
  constructor(kdb: KernelDb, eventLog: EventLog, purposes: ModelPurposesService, registry: ProviderRegistry, config: KernelConfigService, jobs: RunJobs, invoker: SkillInvoker, bus: ExtensionContext["bus"], log: KernelLogger, txHost: TransactionHost);
31
- /** Dispatches the sub-agent of one `agent` call (`dispatchSubagent`). */
31
+ /** Dispatches the sub-agent of one `Agent` call (`dispatchSubagent`). */
32
32
  dispatch(a: DispatchArgs): Promise<DispatchOutcome>;
33
33
  /** The dispatch's writes in a transaction of their own (see `commitDispatchIn`). */
34
34
  commitDispatch(a: DispatchArgs, plan: DispatchPlan, child: ChildWriter): Promise<DispatchCommit | null>;
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
- * Sub-agents (phase C, spec §7) and forked skills (phase D): the `agent` tool's dispatch (the
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;
@@ -58,7 +60,7 @@ let SubagentsService = class SubagentsService {
58
60
  };
59
61
  this.skillForks = liveSkillForks(this.deps);
60
62
  }
61
- /** Dispatches the sub-agent of one `agent` call (`dispatchSubagent`). */
63
+ /** Dispatches the sub-agent of one `Agent` call (`dispatchSubagent`). */
62
64
  dispatch(a) {
63
65
  return dispatchSubagent(this.deps, a);
64
66
  }
@@ -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 };
@@ -0,0 +1,88 @@
1
+ import type { Logger } from "@capybara-hq/plugin-sdk";
2
+ import { type OnApplicationShutdown } from "@nestjs/common";
3
+ import type { JobsOptions, Queue } from "bullmq";
4
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
5
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
6
+ import { KernelDb } from "../infra/database/kernel-db.js";
7
+ import { KernelEvents } from "../infra/events/kernel-events.js";
8
+ /**
9
+ * The producer half of `usage.report` delivery for `model_usage` rows, and the queue's ids and job
10
+ * options shared with the reporter (`usage-report.ts`). The `ctx.models` broker sits below the
11
+ * extension host and must not register a queue there (CLI contexts that build the extensions
12
+ * module never connect to Redis eagerly), so it only announces a row (`model_usage.recorded`) and
13
+ * {@link ModelUsageJobs} enqueues it here.
14
+ */
15
+ /** Queue of `usage.report` deliveries (no `:` in the name). */
16
+ export declare const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
17
+ /** The job name of every delivery. */
18
+ export declare const USAGE_REPORT_JOB = "usage-report";
19
+ /** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
20
+ export declare const usageReportJobId: (conversationId: string, seq: number) => string;
21
+ /** One job per `model_usage` row (spec B §5.4; row ids are UUIDs, so no clash with the above). */
22
+ export declare const modelUsageJobId: (usageId: string) => string;
23
+ /**
24
+ * Job data: ids only (the payload is read when the job runs): a conversation `usage` event
25
+ * (`conversationId` + `seq`), or a `model_usage` row (`usageId`).
26
+ */
27
+ export type UsageReportJob = ({
28
+ conversationId: string;
29
+ seq: number;
30
+ usageId?: undefined;
31
+ } | {
32
+ usageId: string;
33
+ conversationId?: undefined;
34
+ seq?: undefined;
35
+ }) & {
36
+ /** Plugins not yet succeeded; absent = every subscriber (decided on the first attempt). */
37
+ pending?: string[];
38
+ /**
39
+ * Targets dropped so far (plugin → why), accumulated across attempts (m-2): when the job would
40
+ * otherwise complete it fails naming them, and `pending` is then exactly these plugins, so a
41
+ * manual retry reaches only them (m-1). A later delivery to one of them removes it.
42
+ */
43
+ dropped?: Record<string, string>;
44
+ };
45
+ /** First attempt plus 5 retries (F11). */
46
+ export declare const USAGE_REPORT_ATTEMPTS = 6;
47
+ /** Retry backoff: 2 s, doubling (2, 4, 8, 16, 32 s). */
48
+ export declare const USAGE_REPORT_BACKOFF_MS = 2000;
49
+ /** The delivery retry policy: attempts and the first exponential backoff. */
50
+ export interface UsageReportRetry {
51
+ attempts: number;
52
+ backoffMs: number;
53
+ }
54
+ /** Optional provider: the {@link UsageReportRetry} instead of the defaults above (tests). */
55
+ export declare const USAGE_REPORT_RETRY: unique symbol;
56
+ /** The options of one delivery job: its id, the retry policy and the retention of finished jobs. */
57
+ export declare function usageReportJobOpts(jobId: string, retry: UsageReportRetry, keepHours: number): JobsOptions;
58
+ /**
59
+ * Plugins that subscribe to `usage.report` according to deployment state: an approved permission
60
+ * snapshot that declares the `usage.report` hook, for a plugin the deployment still knows: an enabled
61
+ * install, or a config-declared plugin with a replica status row that is not `unloaded`. With `orgId`, only plugins
62
+ * the organization enabled (org config rows and required bootstrap plugins).
63
+ */
64
+ export declare function queryUsageSubscribers(db: KernelSchemaDb, orgId?: string): Promise<Set<string>>;
65
+ /**
66
+ * Enqueues the `usage.report` delivery of `model_usage` rows on `model_usage.recorded` (fast path;
67
+ * the reporter's sweep re-enqueues rows still unreported, so a lost event or enqueue is caught up).
68
+ */
69
+ export declare class ModelUsageJobs implements OnApplicationShutdown {
70
+ private readonly kdb;
71
+ private readonly queue;
72
+ private readonly config;
73
+ private readonly log;
74
+ private readonly retry;
75
+ private readonly unsubscribe;
76
+ /** Set at shutdown: a late event enqueues nothing (the sweep offers the row later). */
77
+ private closed;
78
+ constructor(kdb: KernelDb, queue: Queue<UsageReportJob>, config: Pick<KernelConfigService, "get">, log: Logger, retry: UsageReportRetry | undefined, events: KernelEvents);
79
+ onApplicationShutdown(): void;
80
+ /**
81
+ * Enqueues the delivery of one row (job `usage-model-<rowId>`). Without any subscriber nothing is
82
+ * enqueued (the sweep marks the row). Never throws: a failure only logs; the sweep catches up.
83
+ */
84
+ enqueue(usageId: string): Promise<void>;
85
+ }
86
+ /** The usage report queue and its `model_usage` producer (no dependency on the extension host). */
87
+ export declare class UsageReportJobsModule {
88
+ }
@@ -0,0 +1,158 @@
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 { getQueueToken } from "@nestjs/bullmq";
11
+ import { Inject, Injectable, Module, Optional } from "@nestjs/common";
12
+ import { sql } from "kysely";
13
+ import { enabledExtensionsQuery } from "../extensions/enabled.js";
14
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
15
+ import { KernelDb } from "../infra/database/kernel-db.js";
16
+ import { KernelEvents } from "../infra/events/kernel-events.js";
17
+ import { QueueModule } from "../infra/queue/queue.module.js";
18
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
19
+ /**
20
+ * The producer half of `usage.report` delivery for `model_usage` rows, and the queue's ids and job
21
+ * options shared with the reporter (`usage-report.ts`). The `ctx.models` broker sits below the
22
+ * extension host and must not register a queue there (CLI contexts that build the extensions
23
+ * module never connect to Redis eagerly), so it only announces a row (`model_usage.recorded`) and
24
+ * {@link ModelUsageJobs} enqueues it here.
25
+ */
26
+ /** Queue of `usage.report` deliveries (no `:` in the name). */
27
+ export const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
28
+ /** The job name of every delivery. */
29
+ export const USAGE_REPORT_JOB = "usage-report";
30
+ /** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
31
+ export const usageReportJobId = (conversationId, seq) => `usage-${conversationId}-${seq}`;
32
+ /** One job per `model_usage` row (spec B §5.4; row ids are UUIDs, so no clash with the above). */
33
+ export const modelUsageJobId = (usageId) => `usage-model-${usageId}`;
34
+ /** First attempt plus 5 retries (F11). */
35
+ export const USAGE_REPORT_ATTEMPTS = 6;
36
+ /** Retry backoff: 2 s, doubling (2, 4, 8, 16, 32 s). */
37
+ export const USAGE_REPORT_BACKOFF_MS = 2000;
38
+ /** Optional provider: the {@link UsageReportRetry} instead of the defaults above (tests). */
39
+ export const USAGE_REPORT_RETRY = Symbol("USAGE_REPORT_RETRY");
40
+ /** Failed jobs (given up) are kept for inspection, at most {@link KEEP_FAILED_MAX} of them. */
41
+ const KEEP_FAILED_S = 7 * 86_400;
42
+ /** Upper bound on kept failed jobs (I-2): a long outage of a billing endpoint cannot grow Redis. */
43
+ const KEEP_FAILED_MAX = 100_000;
44
+ /**
45
+ * Upper bound on kept finished jobs (Redis memory). At the default retention it only bites above
46
+ * ~1.1 usage events per second sustained for a day; dedupe needs the jobs only for the sweeper overlap.
47
+ */
48
+ const KEEP_COMPLETED_MAX = 100_000;
49
+ /** The options of one delivery job: its id, the retry policy and the retention of finished jobs. */
50
+ export function usageReportJobOpts(jobId, retry, keepHours) {
51
+ return {
52
+ jobId,
53
+ attempts: retry.attempts,
54
+ backoff: { type: "exponential", delay: retry.backoffMs },
55
+ removeOnComplete: { age: keepHours * 3600, count: KEEP_COMPLETED_MAX },
56
+ removeOnFail: { age: KEEP_FAILED_S, count: KEEP_FAILED_MAX },
57
+ };
58
+ }
59
+ /**
60
+ * Plugins that subscribe to `usage.report` according to deployment state: an approved permission
61
+ * snapshot that declares the `usage.report` hook, for a plugin the deployment still knows: an enabled
62
+ * install, or a config-declared plugin with a replica status row that is not `unloaded`. With `orgId`, only plugins
63
+ * the organization enabled (org config rows and required bootstrap plugins).
64
+ */
65
+ export async function queryUsageSubscribers(db, orgId) {
66
+ let q = db
67
+ .selectFrom("extension_permission_snapshots as s")
68
+ .select("s.plugin")
69
+ .where(sql `s.permissions -> 'permissions' -> 'hooks' ? 'usage.report'`)
70
+ .where((eb) => eb.or([
71
+ eb.exists(eb
72
+ .selectFrom("extension_installs as i")
73
+ .select(sql `1`.as("one"))
74
+ .whereRef("i.name", "=", "s.plugin")
75
+ .where("i.desired_state", "=", "enabled")),
76
+ // config-declared plugins still declared (and not unloaded) on some replica; installs are
77
+ // covered by desired_state above (their replica rows linger as `unloaded` when disabled)
78
+ eb.exists(eb
79
+ .selectFrom("extension_replica_status as r")
80
+ .select(sql `1`.as("one"))
81
+ .whereRef("r.plugin", "=", "s.plugin")
82
+ .where("r.source", "=", "config")
83
+ .where("r.state", "<>", "unloaded")),
84
+ ]));
85
+ if (orgId !== undefined) {
86
+ q = q.where("s.plugin", "in", enabledExtensionsQuery(db, orgId));
87
+ }
88
+ return new Set((await q.execute()).map((r) => r.plugin));
89
+ }
90
+ /**
91
+ * Enqueues the `usage.report` delivery of `model_usage` rows on `model_usage.recorded` (fast path;
92
+ * the reporter's sweep re-enqueues rows still unreported, so a lost event or enqueue is caught up).
93
+ */
94
+ let ModelUsageJobs = class ModelUsageJobs {
95
+ kdb;
96
+ queue;
97
+ config;
98
+ log;
99
+ retry;
100
+ unsubscribe;
101
+ /** Set at shutdown: a late event enqueues nothing (the sweep offers the row later). */
102
+ closed = false;
103
+ constructor(kdb, queue, config, log, retry = {
104
+ attempts: USAGE_REPORT_ATTEMPTS,
105
+ backoffMs: USAGE_REPORT_BACKOFF_MS,
106
+ }, events) {
107
+ this.kdb = kdb;
108
+ this.queue = queue;
109
+ this.config = config;
110
+ this.log = log;
111
+ this.retry = retry;
112
+ this.unsubscribe = events.on("model_usage.recorded", ({ id }) => this.enqueue(id));
113
+ }
114
+ onApplicationShutdown() {
115
+ this.closed = true;
116
+ this.unsubscribe();
117
+ }
118
+ /**
119
+ * Enqueues the delivery of one row (job `usage-model-<rowId>`). Without any subscriber nothing is
120
+ * enqueued (the sweep marks the row). Never throws: a failure only logs; the sweep catches up.
121
+ */
122
+ async enqueue(usageId) {
123
+ if (this.closed)
124
+ return;
125
+ try {
126
+ if ((await queryUsageSubscribers(this.kdb.db)).size === 0)
127
+ return;
128
+ await this.queue.add(USAGE_REPORT_JOB, { usageId }, usageReportJobOpts(modelUsageJobId(usageId), this.retry, this.config.get().hooks.usageReportKeepHours));
129
+ }
130
+ catch (err) {
131
+ this.log.warn("cannot enqueue model usage report", { usageId, err });
132
+ }
133
+ }
134
+ };
135
+ ModelUsageJobs = __decorate([
136
+ Injectable(),
137
+ __param(0, Inject(KernelDb)),
138
+ __param(1, Inject(getQueueToken(USAGE_REPORT_QUEUE))),
139
+ __param(2, Inject(KernelConfigService)),
140
+ __param(3, Inject(KERNEL_LOGGER)),
141
+ __param(4, Optional()),
142
+ __param(4, Inject(USAGE_REPORT_RETRY)),
143
+ __param(5, Inject(KernelEvents))
144
+ ], ModelUsageJobs);
145
+ export { ModelUsageJobs };
146
+ /** The usage report queue's registration, shared by the producer and the reporter's module. */
147
+ const USAGE_REPORT_QUEUE_MODULE = QueueModule.registerQueue(USAGE_REPORT_QUEUE);
148
+ /** The usage report queue and its `model_usage` producer (no dependency on the extension host). */
149
+ let UsageReportJobsModule = class UsageReportJobsModule {
150
+ };
151
+ UsageReportJobsModule = __decorate([
152
+ Module({
153
+ imports: [USAGE_REPORT_QUEUE_MODULE],
154
+ providers: [ModelUsageJobs],
155
+ exports: [ModelUsageJobs, USAGE_REPORT_QUEUE_MODULE],
156
+ })
157
+ ], UsageReportJobsModule);
158
+ export { UsageReportJobsModule };