@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.10

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 (1146) hide show
  1. package/bootstrap.json +85 -5
  2. package/dist/admin/admin.controller.d.ts +52 -71
  3. package/dist/admin/admin.controller.js +117 -63
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/admin.schemas.d.ts +57 -0
  7. package/dist/admin/admin.schemas.js +50 -0
  8. package/dist/admin/extensions.controller.d.ts +47 -16
  9. package/dist/admin/extensions.controller.js +94 -23
  10. package/dist/admin/extensions.schemas.d.ts +7 -0
  11. package/dist/admin/extensions.schemas.js +10 -0
  12. package/dist/admin/limit-defaults.d.ts +20 -0
  13. package/dist/admin/limit-defaults.js +10 -0
  14. package/dist/admin/setup-lock.d.ts +16 -0
  15. package/dist/admin/setup-lock.js +47 -0
  16. package/dist/admin/setup.controller.d.ts +9 -9
  17. package/dist/admin/setup.controller.js +28 -26
  18. package/dist/admin/setup.service.d.ts +20 -28
  19. package/dist/admin/setup.service.js +65 -65
  20. package/dist/agents/agent-lookup.d.ts +72 -0
  21. package/dist/agents/agent-lookup.js +208 -0
  22. package/dist/agents/agent-profile.service.d.ts +31 -0
  23. package/dist/agents/agent-profile.service.js +122 -0
  24. package/dist/agents/agents.controller.d.ts +54 -169
  25. package/dist/agents/agents.controller.js +172 -37
  26. package/dist/agents/agents.module.d.ts +10 -0
  27. package/dist/agents/agents.module.js +71 -0
  28. package/dist/agents/agents.schemas.d.ts +389 -0
  29. package/dist/agents/agents.schemas.js +126 -0
  30. package/dist/agents/agents.service.d.ts +104 -76
  31. package/dist/agents/agents.service.js +509 -383
  32. package/dist/agents/definition.d.ts +133 -21
  33. package/dist/agents/definition.js +361 -41
  34. package/dist/agents/from-template.d.ts +106 -0
  35. package/dist/agents/from-template.js +680 -0
  36. package/dist/agents/from-template.service.d.ts +72 -0
  37. package/dist/agents/from-template.service.js +178 -0
  38. package/dist/agents/instruction-files.d.ts +60 -0
  39. package/dist/agents/instruction-files.js +111 -0
  40. package/dist/agents/models.controller.d.ts +44 -6
  41. package/dist/agents/models.controller.js +84 -8
  42. package/dist/agents/org-templates.d.ts +186 -0
  43. package/dist/agents/org-templates.js +868 -0
  44. package/dist/agents/pending-connector-requests.d.ts +79 -0
  45. package/dist/agents/pending-connector-requests.js +215 -0
  46. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  47. package/dist/agents/pending-connectors.controller.js +91 -0
  48. package/dist/agents/pending-connectors.service.d.ts +62 -0
  49. package/dist/agents/pending-connectors.service.js +282 -0
  50. package/dist/agents/profile.d.ts +114 -0
  51. package/dist/agents/profile.js +55 -0
  52. package/dist/agents/readiness.controller.d.ts +26 -0
  53. package/dist/agents/readiness.controller.js +56 -0
  54. package/dist/agents/templates.controller.d.ts +78 -6
  55. package/dist/agents/templates.controller.js +154 -8
  56. package/dist/agents/templates.d.ts +132 -30
  57. package/dist/agents/templates.js +500 -46
  58. package/dist/agents/templates.schemas.d.ts +20 -0
  59. package/dist/agents/templates.schemas.js +45 -0
  60. package/dist/app.d.ts +93 -0
  61. package/dist/app.js +150 -0
  62. package/dist/background/background.controller.d.ts +38 -0
  63. package/dist/background/background.controller.js +88 -0
  64. package/dist/background/background.module.d.ts +10 -0
  65. package/dist/background/background.module.js +39 -0
  66. package/dist/background/background.schemas.d.ts +10 -0
  67. package/dist/background/background.schemas.js +16 -0
  68. package/dist/background/finish.d.ts +44 -0
  69. package/dist/background/finish.js +95 -0
  70. package/dist/background/launch-lock.d.ts +15 -0
  71. package/dist/background/launch-lock.js +40 -0
  72. package/dist/background/launch.d.ts +42 -0
  73. package/dist/background/launch.js +77 -0
  74. package/dist/background/poll.job.d.ts +56 -0
  75. package/dist/background/poll.job.js +195 -0
  76. package/dist/background/render.d.ts +23 -0
  77. package/dist/background/render.js +48 -0
  78. package/dist/background/session.d.ts +48 -0
  79. package/dist/background/session.js +80 -0
  80. package/dist/background/status.d.ts +35 -0
  81. package/dist/background/status.js +57 -0
  82. package/dist/background/stop.d.ts +68 -0
  83. package/dist/background/stop.js +244 -0
  84. package/dist/background/store.d.ts +167 -0
  85. package/dist/background/store.js +361 -0
  86. package/dist/background/store.module.d.ts +6 -0
  87. package/dist/background/store.module.js +22 -0
  88. package/dist/background/tasks.service.d.ts +77 -0
  89. package/dist/background/tasks.service.js +216 -0
  90. package/dist/background/wake-rules.d.ts +66 -0
  91. package/dist/background/wake-rules.js +113 -0
  92. package/dist/background/wake.d.ts +30 -0
  93. package/dist/background/wake.js +63 -0
  94. package/dist/catalog/admin-catalog.controller.d.ts +102 -52
  95. package/dist/catalog/admin-catalog.controller.js +222 -67
  96. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  97. package/dist/catalog/admin-catalog.schemas.js +92 -0
  98. package/dist/catalog/catalog-content.d.ts +232 -0
  99. package/dist/catalog/catalog-content.js +367 -0
  100. package/dist/catalog/catalog-files.d.ts +41 -0
  101. package/dist/catalog/catalog-files.js +86 -0
  102. package/dist/catalog/catalog-import.module.d.ts +7 -0
  103. package/dist/catalog/catalog-import.module.js +60 -0
  104. package/dist/catalog/catalog-items.d.ts +290 -0
  105. package/dist/catalog/catalog-items.js +676 -0
  106. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  107. package/dist/catalog/catalog-scope.service.js +1124 -0
  108. package/dist/catalog/catalog.module.d.ts +12 -0
  109. package/dist/catalog/catalog.module.js +81 -0
  110. package/dist/catalog/catalog.service.d.ts +141 -206
  111. package/dist/catalog/catalog.service.js +237 -528
  112. package/dist/catalog/claude/agents.js +15 -10
  113. package/dist/catalog/cli.d.ts +14 -3
  114. package/dist/catalog/cli.js +39 -32
  115. package/dist/catalog/component-promotion.d.ts +96 -0
  116. package/dist/catalog/component-promotion.js +395 -0
  117. package/dist/catalog/component-scope.controller.d.ts +90 -0
  118. package/dist/catalog/component-scope.controller.js +234 -0
  119. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  120. package/dist/catalog/component-scope.schemas.js +97 -0
  121. package/dist/catalog/component-scope.service.d.ts +327 -0
  122. package/dist/catalog/component-scope.service.js +990 -0
  123. package/dist/catalog/component-state.d.ts +188 -0
  124. package/dist/catalog/component-state.js +455 -0
  125. package/dist/catalog/git-source.d.ts +9 -1
  126. package/dist/catalog/git-source.js +29 -2
  127. package/dist/catalog/job-ids.d.ts +45 -0
  128. package/dist/catalog/job-ids.js +40 -0
  129. package/dist/catalog/jobs.d.ts +27 -0
  130. package/dist/catalog/jobs.js +70 -0
  131. package/dist/catalog/locks.d.ts +24 -0
  132. package/dist/catalog/locks.js +63 -0
  133. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  134. package/dist/catalog/marketplace-icons.d.ts +64 -0
  135. package/dist/catalog/marketplace-icons.js +131 -0
  136. package/dist/catalog/marketplaces.controller.d.ts +53 -44
  137. package/dist/catalog/marketplaces.controller.js +146 -51
  138. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  139. package/dist/catalog/marketplaces.schemas.js +53 -0
  140. package/dist/catalog/marketplaces.service.d.ts +136 -26
  141. package/dist/catalog/marketplaces.service.js +663 -281
  142. package/dist/catalog/org-catalog.controller.d.ts +115 -63
  143. package/dist/catalog/org-catalog.controller.js +207 -100
  144. package/dist/catalog/org-catalog.schemas.d.ts +88 -0
  145. package/dist/catalog/org-catalog.schemas.js +93 -0
  146. package/dist/catalog/org-catalog.service.d.ts +89 -216
  147. package/dist/catalog/org-catalog.service.js +431 -472
  148. package/dist/catalog/org-extension-switch.d.ts +41 -0
  149. package/dist/catalog/org-extension-switch.js +115 -0
  150. package/dist/catalog/org-extension.controller.d.ts +113 -0
  151. package/dist/catalog/org-extension.controller.js +271 -0
  152. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  153. package/dist/catalog/org-extension.schemas.js +22 -0
  154. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  155. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  156. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  157. package/dist/catalog/org-plugin-uploads.js +122 -0
  158. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  159. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  160. package/dist/catalog/owned-items.d.ts +188 -0
  161. package/dist/catalog/owned-items.js +801 -0
  162. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  163. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  164. package/dist/catalog/ownership.d.ts +172 -0
  165. package/dist/catalog/ownership.js +326 -0
  166. package/dist/catalog/platform-components.d.ts +223 -0
  167. package/dist/catalog/platform-components.js +763 -0
  168. package/dist/catalog/platform-migration.d.ts +115 -0
  169. package/dist/catalog/platform-migration.js +582 -0
  170. package/dist/catalog/plugin-import.d.ts +270 -68
  171. package/dist/catalog/plugin-import.js +1004 -277
  172. package/dist/catalog/plugin-install.d.ts +251 -65
  173. package/dist/catalog/plugin-install.js +1128 -344
  174. package/dist/catalog/plugin-package.js +14 -1
  175. package/dist/catalog/plugin-upgrade.d.ts +301 -188
  176. package/dist/catalog/plugin-upgrade.js +1256 -1068
  177. package/dist/catalog/request-rules.d.ts +65 -0
  178. package/dist/catalog/request-rules.js +217 -0
  179. package/dist/catalog/requests.service.d.ts +205 -117
  180. package/dist/catalog/requests.service.js +612 -369
  181. package/dist/catalog/reserved-names.d.ts +8 -0
  182. package/dist/catalog/reserved-names.js +42 -0
  183. package/dist/catalog/scope-orgs.d.ts +21 -0
  184. package/dist/catalog/scope-orgs.js +67 -0
  185. package/dist/catalog/scope-state.d.ts +35 -0
  186. package/dist/catalog/scope-state.js +87 -0
  187. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  188. package/dist/catalog/scope-sync-workers.js +29 -0
  189. package/dist/catalog/scope-sync.d.ts +176 -0
  190. package/dist/catalog/scope-sync.js +576 -0
  191. package/dist/catalog/scope.d.ts +42 -0
  192. package/dist/catalog/scope.js +42 -0
  193. package/dist/catalog/unshare.d.ts +22 -0
  194. package/dist/catalog/unshare.js +118 -0
  195. package/dist/channels/actions.d.ts +6 -4
  196. package/dist/channels/actions.js +11 -4
  197. package/dist/channels/cards.d.ts +33 -11
  198. package/dist/channels/cards.js +96 -24
  199. package/dist/channels/channels.module.d.ts +40 -0
  200. package/dist/channels/channels.module.js +130 -0
  201. package/dist/channels/channels.schemas.d.ts +37 -0
  202. package/dist/channels/channels.schemas.js +38 -0
  203. package/dist/channels/connections.controller.d.ts +44 -37
  204. package/dist/channels/connections.controller.js +83 -38
  205. package/dist/channels/connections.service.d.ts +101 -30
  206. package/dist/channels/connections.service.js +380 -147
  207. package/dist/channels/inbound.d.ts +44 -38
  208. package/dist/channels/inbound.js +190 -44
  209. package/dist/channels/job-ids.d.ts +10 -0
  210. package/dist/channels/job-ids.js +10 -0
  211. package/dist/channels/jobs.d.ts +85 -0
  212. package/dist/channels/jobs.js +157 -0
  213. package/dist/channels/outbound.d.ts +71 -80
  214. package/dist/channels/outbound.js +219 -202
  215. package/dist/channels/phrases.d.ts +33 -2
  216. package/dist/channels/phrases.js +29 -1
  217. package/dist/channels/supervisor.d.ts +88 -46
  218. package/dist/channels/supervisor.js +230 -132
  219. package/dist/channels/threads.d.ts +34 -8
  220. package/dist/channels/threads.js +79 -13
  221. package/dist/channels/webhook.d.ts +20 -14
  222. package/dist/channels/webhook.js +51 -20
  223. package/dist/config/docs.js +5 -1
  224. package/dist/config/load.d.ts +3 -2
  225. package/dist/config/load.js +3 -2
  226. package/dist/config/nacos-source.js +11 -2
  227. package/dist/config/schema.d.ts +36 -2
  228. package/dist/config/schema.js +226 -25
  229. package/dist/conversations/access.d.ts +31 -0
  230. package/dist/conversations/access.js +110 -0
  231. package/dist/conversations/agent-tree.d.ts +46 -0
  232. package/dist/conversations/agent-tree.js +92 -0
  233. package/dist/conversations/artifacts.d.ts +11 -11
  234. package/dist/conversations/artifacts.js +36 -10
  235. package/dist/conversations/attachments.controller.d.ts +1 -1
  236. package/dist/conversations/attachments.controller.js +8 -6
  237. package/dist/conversations/attachments.module.d.ts +7 -0
  238. package/dist/conversations/attachments.module.js +25 -0
  239. package/dist/conversations/attachments.service.d.ts +60 -22
  240. package/dist/conversations/attachments.service.js +249 -51
  241. package/dist/conversations/conversations.controller.d.ts +86 -50
  242. package/dist/conversations/conversations.controller.js +184 -103
  243. package/dist/conversations/conversations.module.d.ts +8 -0
  244. package/dist/conversations/conversations.module.js +72 -0
  245. package/dist/conversations/conversations.schemas.d.ts +52 -0
  246. package/dist/conversations/conversations.schemas.js +79 -0
  247. package/dist/conversations/conversations.service.d.ts +166 -49
  248. package/dist/conversations/conversations.service.js +383 -179
  249. package/dist/conversations/environment-status.d.ts +24 -0
  250. package/dist/conversations/environment-status.js +71 -0
  251. package/dist/conversations/event-log.d.ts +64 -27
  252. package/dist/conversations/event-log.js +167 -31
  253. package/dist/conversations/events.d.ts +252 -9
  254. package/dist/conversations/events.js +243 -32
  255. package/dist/conversations/files.d.ts +10 -10
  256. package/dist/conversations/files.js +37 -11
  257. package/dist/conversations/idem-keys.d.ts +5 -0
  258. package/dist/conversations/idem-keys.js +5 -0
  259. package/dist/conversations/job-ids.d.ts +6 -0
  260. package/dist/conversations/job-ids.js +6 -0
  261. package/dist/conversations/message-context.d.ts +79 -0
  262. package/dist/conversations/message-context.js +145 -0
  263. package/dist/conversations/outputs-read.d.ts +11 -11
  264. package/dist/conversations/outputs-read.js +31 -7
  265. package/dist/conversations/queue.d.ts +53 -58
  266. package/dist/conversations/queue.js +37 -293
  267. package/dist/conversations/queue.service.d.ts +60 -0
  268. package/dist/conversations/queue.service.js +350 -0
  269. package/dist/conversations/titles.d.ts +83 -27
  270. package/dist/conversations/titles.js +195 -71
  271. package/dist/conversations/tree.d.ts +17 -0
  272. package/dist/conversations/tree.js +42 -0
  273. package/dist/ctx/bus.js +9 -3
  274. package/dist/ctx/create-ctx.d.ts +26 -1
  275. package/dist/ctx/create-ctx.js +45 -16
  276. package/dist/ctx/lock.d.ts +7 -3
  277. package/dist/ctx/lock.js +9 -20
  278. package/dist/ctx/secrets.d.ts +10 -2
  279. package/dist/ctx/secrets.js +7 -3
  280. package/dist/db/kernel-schema.d.ts +550 -25
  281. package/dist/db/pool.d.ts +10 -0
  282. package/dist/db/pool.js +4 -0
  283. package/dist/devices/device-auth.controller.d.ts +42 -0
  284. package/dist/devices/device-auth.controller.js +116 -0
  285. package/dist/devices/device-auth.d.ts +119 -0
  286. package/dist/devices/device-auth.js +403 -0
  287. package/dist/devices/device-auth.module.d.ts +7 -0
  288. package/dist/devices/device-auth.module.js +25 -0
  289. package/dist/devices/device-gateway.d.ts +128 -0
  290. package/dist/devices/device-gateway.js +530 -0
  291. package/dist/devices/device-provider.d.ts +89 -0
  292. package/dist/devices/device-provider.js +151 -0
  293. package/dist/devices/device-routes.d.ts +36 -0
  294. package/dist/devices/device-routes.js +90 -0
  295. package/dist/devices/devices.module.d.ts +16 -0
  296. package/dist/devices/devices.module.js +44 -0
  297. package/dist/devices/dto.d.ts +66 -0
  298. package/dist/devices/dto.js +44 -0
  299. package/dist/devices/keys.d.ts +25 -0
  300. package/dist/devices/keys.js +25 -0
  301. package/dist/devices/machines.d.ts +118 -0
  302. package/dist/devices/machines.js +366 -0
  303. package/dist/devices/relay.d.ts +100 -0
  304. package/dist/devices/relay.js +373 -0
  305. package/dist/devices/targets.d.ts +28 -0
  306. package/dist/devices/targets.js +73 -0
  307. package/dist/environments/access.d.ts +66 -0
  308. package/dist/environments/access.js +113 -0
  309. package/dist/environments/conversation-environments.d.ts +75 -0
  310. package/dist/environments/conversation-environments.js +231 -0
  311. package/dist/environments/dto.d.ts +25 -0
  312. package/dist/environments/dto.js +12 -0
  313. package/dist/environments/environments.controller.d.ts +36 -0
  314. package/dist/environments/environments.controller.js +124 -0
  315. package/dist/environments/environments.module.d.ts +8 -0
  316. package/dist/environments/environments.module.js +31 -0
  317. package/dist/environments/environments.schemas.d.ts +3 -0
  318. package/dist/environments/environments.schemas.js +14 -0
  319. package/dist/environments/environments.service.d.ts +251 -0
  320. package/dist/environments/environments.service.js +791 -0
  321. package/dist/environments/label.d.ts +11 -0
  322. package/dist/environments/label.js +25 -0
  323. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  324. package/dist/environments/legacy-cleanup.job.js +141 -0
  325. package/dist/errors.d.ts +135 -2
  326. package/dist/errors.js +135 -2
  327. package/dist/evals/budget.d.ts +42 -21
  328. package/dist/evals/budget.js +114 -62
  329. package/dist/evals/evals.module.d.ts +31 -0
  330. package/dist/evals/evals.module.js +114 -0
  331. package/dist/evals/evals.schemas.d.ts +110 -0
  332. package/dist/evals/evals.schemas.js +107 -0
  333. package/dist/evals/jobs.d.ts +20 -0
  334. package/dist/evals/jobs.js +45 -0
  335. package/dist/evals/reconstruct.d.ts +18 -9
  336. package/dist/evals/reconstruct.js +36 -10
  337. package/dist/evals/recorded-tools.d.ts +37 -1
  338. package/dist/evals/recorded-tools.js +120 -10
  339. package/dist/evals/run-replay.d.ts +75 -10
  340. package/dist/evals/run-replay.js +218 -94
  341. package/dist/evals/runs.controller.d.ts +3 -58
  342. package/dist/evals/runs.controller.js +18 -50
  343. package/dist/evals/runs.service.d.ts +31 -52
  344. package/dist/evals/runs.service.js +281 -255
  345. package/dist/evals/sets.controller.d.ts +3 -29
  346. package/dist/evals/sets.controller.js +18 -39
  347. package/dist/evals/sets.service.d.ts +29 -13
  348. package/dist/evals/sets.service.js +262 -202
  349. package/dist/evals/snapshot.d.ts +5 -4
  350. package/dist/evals/snapshot.js +17 -4
  351. package/dist/evals/step-replay.d.ts +6 -8
  352. package/dist/evals/step-replay.js +17 -10
  353. package/dist/evals/trajectory.controller.d.ts +1 -1
  354. package/dist/evals/trajectory.controller.js +11 -7
  355. package/dist/evals/trajectory.d.ts +2 -2
  356. package/dist/evals/trajectory.js +1 -1
  357. package/dist/evals/trajectory.service.d.ts +13 -7
  358. package/dist/evals/trajectory.service.js +56 -21
  359. package/dist/evals/worker.d.ts +48 -31
  360. package/dist/evals/worker.js +229 -124
  361. package/dist/extensions/admin-ops.d.ts +133 -41
  362. package/dist/extensions/admin-ops.js +378 -172
  363. package/dist/extensions/admin-view.d.ts +82 -32
  364. package/dist/extensions/admin-view.js +284 -71
  365. package/dist/extensions/approvals.d.ts +24 -10
  366. package/dist/extensions/approvals.js +73 -46
  367. package/dist/extensions/blobs.d.ts +27 -10
  368. package/dist/extensions/blobs.js +112 -45
  369. package/dist/extensions/bootstrap.d.ts +99 -36
  370. package/dist/extensions/bootstrap.js +290 -134
  371. package/dist/extensions/cli.d.ts +32 -10
  372. package/dist/extensions/cli.js +52 -98
  373. package/dist/extensions/config-hash.d.ts +10 -0
  374. package/dist/extensions/config-hash.js +38 -0
  375. package/dist/extensions/config-issues.d.ts +19 -0
  376. package/dist/extensions/config-issues.js +48 -0
  377. package/dist/extensions/config-json-schema.d.ts +43 -7
  378. package/dist/extensions/config-json-schema.js +124 -58
  379. package/dist/extensions/deployment-config-store.d.ts +55 -0
  380. package/dist/extensions/deployment-config-store.js +133 -0
  381. package/dist/extensions/deployment-config.d.ts +146 -70
  382. package/dist/extensions/deployment-config.js +439 -246
  383. package/dist/extensions/display-name.d.ts +22 -0
  384. package/dist/extensions/display-name.js +77 -0
  385. package/dist/extensions/effective-config.d.ts +127 -0
  386. package/dist/extensions/effective-config.js +368 -0
  387. package/dist/extensions/enabled.d.ts +5 -5
  388. package/dist/extensions/extensions.module.d.ts +8 -0
  389. package/dist/extensions/extensions.module.js +96 -0
  390. package/dist/extensions/hooks.d.ts +40 -6
  391. package/dist/extensions/hooks.js +83 -17
  392. package/dist/extensions/host.d.ts +161 -80
  393. package/dist/extensions/host.js +505 -213
  394. package/dist/extensions/installs.d.ts +73 -19
  395. package/dist/extensions/installs.js +174 -37
  396. package/dist/extensions/job-ids.d.ts +6 -0
  397. package/dist/extensions/job-ids.js +6 -0
  398. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  399. package/dist/extensions/lifecycle-topics.js +18 -0
  400. package/dist/extensions/lifecycle.d.ts +35 -47
  401. package/dist/extensions/lifecycle.js +103 -39
  402. package/dist/extensions/locks.d.ts +45 -0
  403. package/dist/extensions/locks.js +112 -0
  404. package/dist/extensions/migrate-lock.d.ts +3 -4
  405. package/dist/extensions/org-config.d.ts +141 -49
  406. package/dist/extensions/org-config.js +471 -243
  407. package/dist/extensions/org-levels.d.ts +37 -0
  408. package/dist/extensions/org-levels.js +71 -0
  409. package/dist/extensions/org-overrides.d.ts +151 -0
  410. package/dist/extensions/org-overrides.js +524 -0
  411. package/dist/extensions/package.d.ts +14 -1
  412. package/dist/extensions/package.js +51 -2
  413. package/dist/extensions/permission-view.d.ts +59 -6
  414. package/dist/extensions/permission-view.js +7 -5
  415. package/dist/extensions/plugin-guides.d.ts +129 -0
  416. package/dist/extensions/plugin-guides.js +283 -0
  417. package/dist/extensions/plugin-icons.d.ts +54 -0
  418. package/dist/extensions/plugin-icons.js +125 -0
  419. package/dist/extensions/plugin-items.d.ts +21 -0
  420. package/dist/extensions/plugin-items.js +42 -0
  421. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  422. package/dist/extensions/point-defaults.controller.js +69 -0
  423. package/dist/extensions/point-defaults.d.ts +73 -0
  424. package/dist/extensions/point-defaults.js +236 -0
  425. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  426. package/dist/extensions/point-defaults.schemas.js +14 -0
  427. package/dist/extensions/registry.d.ts +50 -2
  428. package/dist/extensions/registry.js +91 -4
  429. package/dist/extensions/resolve.d.ts +51 -1
  430. package/dist/extensions/resolve.js +85 -3
  431. package/dist/extensions/single-provider.d.ts +92 -0
  432. package/dist/extensions/single-provider.js +180 -0
  433. package/dist/extensions/sources.d.ts +19 -10
  434. package/dist/extensions/sources.js +34 -13
  435. package/dist/extensions/state.module.d.ts +9 -0
  436. package/dist/extensions/state.module.js +38 -0
  437. package/dist/extensions/unavailable.d.ts +50 -0
  438. package/dist/extensions/unavailable.js +115 -0
  439. package/dist/files/files.module.d.ts +3 -0
  440. package/dist/files/files.module.js +22 -0
  441. package/dist/files/previewers.controller.d.ts +7 -2
  442. package/dist/files/previewers.controller.js +19 -12
  443. package/dist/files/previewers.d.ts +21 -19
  444. package/dist/files/previewers.js +114 -38
  445. package/dist/files/previewers.schemas.d.ts +10 -0
  446. package/dist/files/previewers.schemas.js +9 -0
  447. package/dist/http/adapter.d.ts +3 -0
  448. package/dist/http/adapter.js +25 -0
  449. package/dist/http/api.module.d.ts +3 -110
  450. package/dist/http/api.module.js +86 -358
  451. package/dist/http/app.d.ts +22 -17
  452. package/dist/http/app.js +46 -65
  453. package/dist/http/error-filter.module.d.ts +5 -0
  454. package/dist/http/error-filter.module.js +18 -0
  455. package/dist/http/error.filter.js +2 -2
  456. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  457. package/dist/http/gateway-routes.js +16 -0
  458. package/dist/http/nest-logger.d.ts +6 -5
  459. package/dist/http/nest-logger.js +24 -10
  460. package/dist/http/plugin-dispatch.d.ts +4 -1
  461. package/dist/http/plugin-dispatch.js +14 -2
  462. package/dist/identity/accounts.d.ts +130 -38
  463. package/dist/identity/accounts.js +373 -186
  464. package/dist/identity/api-tokens.d.ts +11 -7
  465. package/dist/identity/api-tokens.js +71 -44
  466. package/dist/identity/audit.d.ts +9 -5
  467. package/dist/identity/audit.js +5 -1
  468. package/dist/identity/auth.controller.d.ts +11 -10
  469. package/dist/identity/auth.controller.js +40 -30
  470. package/dist/identity/auth.guard.d.ts +16 -8
  471. package/dist/identity/auth.guard.js +41 -13
  472. package/dist/identity/binding.d.ts +9 -11
  473. package/dist/identity/binding.js +41 -13
  474. package/dist/identity/cookies.d.ts +26 -5
  475. package/dist/identity/cookies.js +58 -6
  476. package/dist/identity/external-identity-lock.d.ts +17 -0
  477. package/dist/identity/external-identity-lock.js +39 -0
  478. package/dist/identity/external.d.ts +19 -15
  479. package/dist/identity/external.js +163 -125
  480. package/dist/identity/identity.module.d.ts +6 -0
  481. package/dist/identity/identity.module.js +59 -0
  482. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  483. package/dist/identity/initial-passwords.controller.js +49 -0
  484. package/dist/identity/initial-passwords.d.ts +61 -0
  485. package/dist/identity/initial-passwords.job.d.ts +16 -0
  486. package/dist/identity/initial-passwords.job.js +46 -0
  487. package/dist/identity/initial-passwords.js +159 -0
  488. package/dist/identity/me.controller.d.ts +32 -15
  489. package/dist/identity/me.controller.js +78 -33
  490. package/dist/identity/me.schemas.d.ts +14 -0
  491. package/dist/identity/me.schemas.js +17 -0
  492. package/dist/identity/principal.d.ts +11 -3
  493. package/dist/identity/principal.js +11 -3
  494. package/dist/identity/sessions.d.ts +24 -10
  495. package/dist/identity/sessions.js +119 -42
  496. package/dist/identity/settings.d.ts +42 -23
  497. package/dist/identity/settings.js +137 -72
  498. package/dist/identity/sso.controller.d.ts +7 -7
  499. package/dist/identity/sso.controller.js +13 -9
  500. package/dist/identity/sso.d.ts +9 -12
  501. package/dist/identity/sso.js +54 -24
  502. package/dist/identity/super-admin.d.ts +20 -0
  503. package/dist/identity/super-admin.js +81 -0
  504. package/dist/inbox/inbox.module.d.ts +6 -0
  505. package/dist/inbox/inbox.module.js +26 -0
  506. package/dist/inbox/inbox.schemas.d.ts +8 -0
  507. package/dist/inbox/inbox.schemas.js +11 -0
  508. package/dist/inbox/inbox.service.d.ts +68 -11
  509. package/dist/inbox/inbox.service.js +104 -13
  510. package/dist/inbox/org-notices.d.ts +63 -0
  511. package/dist/inbox/org-notices.js +91 -0
  512. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  513. package/dist/inbox/platform-inbox.controller.js +58 -0
  514. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  515. package/dist/inbox/platform-inbox.service.js +263 -0
  516. package/dist/inbox/platform-notices.d.ts +19 -0
  517. package/dist/inbox/platform-notices.js +9 -0
  518. package/dist/index.d.ts +22 -13
  519. package/dist/index.js +16 -7
  520. package/dist/infra/cache/cache.module.d.ts +3 -0
  521. package/dist/infra/cache/cache.module.js +16 -0
  522. package/dist/infra/cache/cache.service.d.ts +21 -0
  523. package/dist/infra/cache/cache.service.js +80 -0
  524. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  525. package/dist/infra/cache/cacheable.decorator.js +83 -0
  526. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  527. package/dist/infra/cli/kernel-cli.module.js +173 -0
  528. package/dist/infra/close-within.d.ts +15 -0
  529. package/dist/infra/close-within.js +36 -0
  530. package/dist/infra/config/config.module.d.ts +13 -0
  531. package/dist/infra/config/config.module.js +39 -0
  532. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  533. package/dist/infra/config/kernel-config.service.js +157 -0
  534. package/dist/infra/database/after-commit.d.ts +6 -0
  535. package/dist/infra/database/after-commit.js +9 -0
  536. package/dist/infra/database/database.module.d.ts +25 -0
  537. package/dist/infra/database/database.module.js +91 -0
  538. package/dist/infra/database/kernel-db.d.ts +22 -0
  539. package/dist/infra/database/kernel-db.js +65 -0
  540. package/dist/infra/database/transaction-host.d.ts +50 -0
  541. package/dist/infra/database/transaction-host.js +125 -0
  542. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  543. package/dist/infra/database/transactional.decorator.js +27 -0
  544. package/dist/infra/database/xact-lock.d.ts +17 -0
  545. package/dist/infra/database/xact-lock.js +43 -0
  546. package/dist/infra/events/kernel-events.d.ts +121 -0
  547. package/dist/infra/events/kernel-events.js +65 -0
  548. package/dist/infra/health/health.controller.d.ts +26 -0
  549. package/dist/infra/health/health.controller.js +104 -0
  550. package/dist/infra/health/health.module.d.ts +9 -0
  551. package/dist/infra/health/health.module.js +24 -0
  552. package/dist/infra/health/health.options.d.ts +10 -0
  553. package/dist/infra/health/health.options.js +15 -0
  554. package/dist/infra/health/shutdown-state.d.ts +6 -0
  555. package/dist/infra/health/shutdown-state.js +2 -0
  556. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  560. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  561. package/dist/infra/lifecycle/process-guards.js +90 -0
  562. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  563. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  564. package/dist/infra/lock/key-template.d.ts +13 -0
  565. package/dist/infra/lock/key-template.js +46 -0
  566. package/dist/infra/lock/lock.module.d.ts +3 -0
  567. package/dist/infra/lock/lock.module.js +16 -0
  568. package/dist/infra/lock/lock.service.d.ts +120 -0
  569. package/dist/infra/lock/lock.service.js +343 -0
  570. package/dist/infra/lock/shared-lease.d.ts +44 -0
  571. package/dist/infra/lock/shared-lease.js +121 -0
  572. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  573. package/dist/infra/lock/with-lock.decorator.js +49 -0
  574. package/dist/infra/logging/logging.module.d.ts +18 -0
  575. package/dist/infra/logging/logging.module.js +52 -0
  576. package/dist/infra/queue/add-job-once.d.ts +14 -0
  577. package/dist/infra/queue/add-job-once.js +16 -0
  578. package/dist/infra/queue/configured-processor.d.ts +18 -0
  579. package/dist/infra/queue/configured-processor.js +23 -0
  580. package/dist/infra/queue/job-failure.d.ts +18 -0
  581. package/dist/infra/queue/job-failure.js +26 -0
  582. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  583. package/dist/infra/queue/queue-shutdown.js +81 -0
  584. package/dist/infra/queue/queue.module.d.ts +16 -0
  585. package/dist/infra/queue/queue.module.js +61 -0
  586. package/dist/infra/queue/redis-connection.d.ts +13 -0
  587. package/dist/infra/queue/redis-connection.js +25 -0
  588. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  589. package/dist/infra/queue/retired-schedulers.js +9 -0
  590. package/dist/infra/queue/run-job.d.ts +16 -0
  591. package/dist/infra/queue/run-job.js +19 -0
  592. package/dist/infra/redis/redis.module.d.ts +24 -0
  593. package/dist/infra/redis/redis.module.js +91 -0
  594. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  595. package/dist/infra/schedule/cron-tick.js +25 -0
  596. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  597. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  598. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  599. package/dist/infra/schedule/locked-interval.js +190 -0
  600. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  601. package/dist/infra/schedule/locked-tick.js +137 -0
  602. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  603. package/dist/infra/schedule/schedule.module.js +27 -0
  604. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  605. package/dist/infra/schedule/scheduled-runs.js +163 -0
  606. package/dist/infra/swagger/swagger.d.ts +16 -0
  607. package/dist/infra/swagger/swagger.js +31 -0
  608. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  609. package/dist/infra/throttler/credential-throttler.js +77 -0
  610. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  611. package/dist/infra/throttler/named-throttlers.js +157 -0
  612. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  613. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  614. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  615. package/dist/infra/throttler/throttler.guard.js +68 -0
  616. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  617. package/dist/infra/throttler/throttler.module.js +53 -0
  618. package/dist/infra/tokens.d.ts +20 -0
  619. package/dist/infra/tokens.js +20 -0
  620. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  621. package/dist/infra/validation/create-zod-dto.js +35 -0
  622. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  623. package/dist/infra/validation/parse-with-zod.js +12 -0
  624. package/dist/infra/validation/validation.module.d.ts +3 -0
  625. package/dist/infra/validation/validation.module.js +16 -0
  626. package/dist/infra/validation/zod-params.d.ts +7 -0
  627. package/dist/infra/validation/zod-params.js +42 -0
  628. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  629. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  630. package/dist/kernel.d.ts +9 -244
  631. package/dist/kernel.js +8 -1305
  632. package/dist/kernel.module.d.ts +17 -0
  633. package/dist/kernel.module.js +145 -0
  634. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  635. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  636. package/dist/lifecycle/tokens.d.ts +3 -0
  637. package/dist/lifecycle/tokens.js +3 -0
  638. package/dist/log-context.d.ts +2 -0
  639. package/dist/log-context.js +4 -0
  640. package/dist/log.d.ts +13 -1
  641. package/dist/log.js +93 -17
  642. package/dist/models/embeddings.d.ts +82 -0
  643. package/dist/models/embeddings.js +326 -0
  644. package/dist/models/enablement.controller.d.ts +40 -0
  645. package/dist/models/enablement.controller.js +74 -0
  646. package/dist/models/enablement.d.ts +101 -0
  647. package/dist/models/enablement.js +264 -0
  648. package/dist/models/models.module.d.ts +7 -0
  649. package/dist/models/models.module.js +36 -0
  650. package/dist/models/org-models.schemas.d.ts +8 -0
  651. package/dist/models/org-models.schemas.js +22 -0
  652. package/dist/models/prices.d.ts +13 -5
  653. package/dist/models/prices.js +69 -39
  654. package/dist/models/purposes.controller.d.ts +6 -4
  655. package/dist/models/purposes.controller.js +16 -11
  656. package/dist/models/purposes.d.ts +103 -23
  657. package/dist/models/purposes.js +208 -77
  658. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  659. package/dist/orgs/directory-sync.controller.js +2 -2
  660. package/dist/orgs/directory-sync.d.ts +74 -35
  661. package/dist/orgs/directory-sync.js +243 -132
  662. package/dist/orgs/invitations.controller.d.ts +8 -8
  663. package/dist/orgs/invitations.controller.js +27 -26
  664. package/dist/orgs/invitations.service.d.ts +12 -9
  665. package/dist/orgs/invitations.service.js +130 -92
  666. package/dist/orgs/job-ids.d.ts +8 -0
  667. package/dist/orgs/job-ids.js +8 -0
  668. package/dist/orgs/members.service.d.ts +19 -12
  669. package/dist/orgs/members.service.js +161 -117
  670. package/dist/orgs/offboarding.d.ts +61 -60
  671. package/dist/orgs/offboarding.js +206 -95
  672. package/dist/orgs/org-lock.d.ts +33 -19
  673. package/dist/orgs/org-lock.js +94 -35
  674. package/dist/orgs/org.guard.d.ts +11 -1
  675. package/dist/orgs/org.guard.js +45 -34
  676. package/dist/orgs/orgs.controller.d.ts +13 -16
  677. package/dist/orgs/orgs.controller.js +29 -20
  678. package/dist/orgs/orgs.module.d.ts +6 -0
  679. package/dist/orgs/orgs.module.js +71 -0
  680. package/dist/orgs/orgs.schemas.d.ts +8 -0
  681. package/dist/orgs/orgs.schemas.js +16 -0
  682. package/dist/orgs/orgs.service.d.ts +47 -21
  683. package/dist/orgs/orgs.service.js +166 -91
  684. package/dist/orgs/roles.d.ts +1 -1
  685. package/dist/orgs/roles.js +5 -1
  686. package/dist/orgs/settings.controller.d.ts +2 -2
  687. package/dist/orgs/settings.controller.js +8 -6
  688. package/dist/orgs/settings.service.d.ts +45 -14
  689. package/dist/orgs/settings.service.js +110 -51
  690. package/dist/overrides.d.ts +63 -0
  691. package/dist/overrides.js +34 -0
  692. package/dist/platform/actor.d.ts +48 -0
  693. package/dist/platform/actor.js +100 -0
  694. package/dist/platform/agent-docs.d.ts +18 -0
  695. package/dist/platform/agent-docs.js +59 -0
  696. package/dist/platform/availability.d.ts +14 -0
  697. package/dist/platform/availability.js +43 -0
  698. package/dist/platform/errors.d.ts +28 -0
  699. package/dist/platform/errors.js +65 -0
  700. package/dist/platform/exclusions.d.ts +11 -0
  701. package/dist/platform/exclusions.js +667 -0
  702. package/dist/platform/method.d.ts +6 -0
  703. package/dist/platform/method.js +15 -0
  704. package/dist/platform/operation.d.ts +169 -0
  705. package/dist/platform/operation.js +90 -0
  706. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  707. package/dist/platform/ops/accounts.ops.js +291 -0
  708. package/dist/platform/ops/admin.ops.d.ts +36 -0
  709. package/dist/platform/ops/admin.ops.js +389 -0
  710. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  711. package/dist/platform/ops/agent-skills.ops.js +226 -0
  712. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  713. package/dist/platform/ops/agent-templates.ops.js +272 -0
  714. package/dist/platform/ops/agents.ops.d.ts +37 -0
  715. package/dist/platform/ops/agents.ops.js +717 -0
  716. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  717. package/dist/platform/ops/approvals.ops.js +116 -0
  718. package/dist/platform/ops/background.ops.d.ts +14 -0
  719. package/dist/platform/ops/background.ops.js +134 -0
  720. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  721. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  722. package/dist/platform/ops/channels.ops.d.ts +16 -0
  723. package/dist/platform/ops/channels.ops.js +195 -0
  724. package/dist/platform/ops/components.ops.d.ts +46 -0
  725. package/dist/platform/ops/components.ops.js +853 -0
  726. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  727. package/dist/platform/ops/connectors.ops.js +188 -0
  728. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  729. package/dist/platform/ops/conversations.ops.js +470 -0
  730. package/dist/platform/ops/environments.ops.d.ts +26 -0
  731. package/dist/platform/ops/environments.ops.js +311 -0
  732. package/dist/platform/ops/errors.d.ts +16 -0
  733. package/dist/platform/ops/errors.js +30 -0
  734. package/dist/platform/ops/evals.ops.d.ts +28 -0
  735. package/dist/platform/ops/evals.ops.js +783 -0
  736. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  737. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  738. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  739. package/dist/platform/ops/extensions.ops.js +347 -0
  740. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  741. package/dist/platform/ops/inbox.ops.js +378 -0
  742. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  743. package/dist/platform/ops/marketplaces.ops.js +466 -0
  744. package/dist/platform/ops/models.ops.d.ts +25 -0
  745. package/dist/platform/ops/models.ops.js +232 -0
  746. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  747. package/dist/platform/ops/org-plugins.ops.js +329 -0
  748. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  749. package/dist/platform/ops/org-settings.ops.js +102 -0
  750. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  751. package/dist/platform/ops/orgs.ops.js +295 -0
  752. package/dist/platform/ops/other-orgs.d.ts +20 -0
  753. package/dist/platform/ops/other-orgs.js +72 -0
  754. package/dist/platform/ops/paging.d.ts +14 -0
  755. package/dist/platform/ops/paging.js +20 -0
  756. package/dist/platform/ops/platform.ops.d.ts +28 -0
  757. package/dist/platform/ops/platform.ops.js +204 -0
  758. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  759. package/dist/platform/ops/plugins.ops.js +476 -0
  760. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  761. package/dist/platform/ops/previewers.ops.js +109 -0
  762. package/dist/platform/ops/requests.ops.d.ts +14 -0
  763. package/dist/platform/ops/requests.ops.js +191 -0
  764. package/dist/platform/ops/role.d.ts +4 -0
  765. package/dist/platform/ops/role.js +10 -0
  766. package/dist/platform/ops/skills.ops.d.ts +17 -0
  767. package/dist/platform/ops/skills.ops.js +216 -0
  768. package/dist/platform/ops/summary.d.ts +10 -0
  769. package/dist/platform/ops/summary.js +18 -0
  770. package/dist/platform/ops/unavailable.d.ts +23 -0
  771. package/dist/platform/ops/unavailable.js +118 -0
  772. package/dist/platform/parity.d.ts +33 -0
  773. package/dist/platform/parity.js +272 -0
  774. package/dist/platform/platform-ops.module.d.ts +39 -0
  775. package/dist/platform/platform-ops.module.js +122 -0
  776. package/dist/platform/platform.module.d.ts +8 -0
  777. package/dist/platform/platform.module.js +25 -0
  778. package/dist/platform/registry.d.ts +30 -0
  779. package/dist/platform/registry.js +111 -0
  780. package/dist/platform/route-schemas.d.ts +18 -0
  781. package/dist/platform/route-schemas.js +63 -0
  782. package/dist/roles/gateway-role.d.ts +54 -0
  783. package/dist/roles/gateway-role.js +118 -0
  784. package/dist/roles/gateway.module.d.ts +9 -0
  785. package/dist/roles/gateway.module.js +31 -0
  786. package/dist/roles/worker-role.d.ts +65 -0
  787. package/dist/roles/worker-role.js +151 -0
  788. package/dist/roles/worker.module.d.ts +14 -0
  789. package/dist/roles/worker.module.js +106 -0
  790. package/dist/runtime/abort.js +19 -2
  791. package/dist/runtime/checkpointer.d.ts +8 -3
  792. package/dist/runtime/checkpointer.js +87 -55
  793. package/dist/runtime/context/build.d.ts +21 -13
  794. package/dist/runtime/context/build.js +106 -29
  795. package/dist/runtime/context/claude-tools.d.ts +4 -1
  796. package/dist/runtime/context/claude-tools.js +13 -12
  797. package/dist/runtime/context/compaction.js +24 -1
  798. package/dist/runtime/context/environment-paths.d.ts +40 -0
  799. package/dist/runtime/context/environment-paths.js +48 -0
  800. package/dist/runtime/context/legacy-text.d.ts +22 -0
  801. package/dist/runtime/context/legacy-text.js +37 -0
  802. package/dist/runtime/context/reminders.d.ts +2 -0
  803. package/dist/runtime/context/reminders.js +2 -0
  804. package/dist/runtime/context/run-context.d.ts +65 -0
  805. package/dist/runtime/context/run-context.js +215 -0
  806. package/dist/runtime/context/skills.d.ts +29 -11
  807. package/dist/runtime/context/skills.js +46 -32
  808. package/dist/runtime/context/tool-changes.d.ts +27 -0
  809. package/dist/runtime/context/tool-changes.js +60 -0
  810. package/dist/runtime/conversation-lock.d.ts +20 -11
  811. package/dist/runtime/conversation-lock.js +62 -72
  812. package/dist/runtime/hook-calls.d.ts +11 -4
  813. package/dist/runtime/hook-calls.js +41 -13
  814. package/dist/runtime/job-ids.d.ts +10 -0
  815. package/dist/runtime/job-ids.js +10 -0
  816. package/dist/runtime/langgraph-loop.d.ts +3 -1
  817. package/dist/runtime/langgraph-loop.js +37 -18
  818. package/dist/runtime/loop.d.ts +42 -6
  819. package/dist/runtime/loop.js +14 -0
  820. package/dist/runtime/maintenance-queue.d.ts +10 -0
  821. package/dist/runtime/maintenance-queue.js +10 -0
  822. package/dist/runtime/maintenance.d.ts +50 -74
  823. package/dist/runtime/maintenance.js +166 -137
  824. package/dist/runtime/model-call.d.ts +61 -15
  825. package/dist/runtime/model-call.js +128 -84
  826. package/dist/runtime/providers.d.ts +158 -27
  827. package/dist/runtime/providers.js +373 -63
  828. package/dist/runtime/quota.d.ts +17 -3
  829. package/dist/runtime/quota.js +27 -2
  830. package/dist/runtime/retired-schedulers.d.ts +7 -0
  831. package/dist/runtime/retired-schedulers.js +31 -0
  832. package/dist/runtime/run-context.service.d.ts +65 -0
  833. package/dist/runtime/run-context.service.js +236 -0
  834. package/dist/runtime/run-control.d.ts +43 -0
  835. package/dist/runtime/run-control.js +89 -0
  836. package/dist/runtime/run-drafts.d.ts +85 -0
  837. package/dist/runtime/run-drafts.js +230 -0
  838. package/dist/runtime/run-finish.d.ts +27 -18
  839. package/dist/runtime/run-finish.js +98 -51
  840. package/dist/runtime/run-jobs.d.ts +46 -0
  841. package/dist/runtime/run-jobs.js +91 -0
  842. package/dist/runtime/run-processors.d.ts +60 -0
  843. package/dist/runtime/run-processors.js +185 -0
  844. package/dist/runtime/run-queue.d.ts +90 -58
  845. package/dist/runtime/run-queue.js +566 -297
  846. package/dist/runtime/run-steps.d.ts +39 -0
  847. package/dist/runtime/run-steps.js +96 -0
  848. package/dist/runtime/run-worker.d.ts +134 -77
  849. package/dist/runtime/run-worker.js +412 -237
  850. package/dist/runtime/runtime.module.d.ts +10 -0
  851. package/dist/runtime/runtime.module.js +122 -0
  852. package/dist/runtime/step-log.d.ts +51 -0
  853. package/dist/runtime/step-log.js +111 -0
  854. package/dist/runtime/stream.controller.d.ts +28 -9
  855. package/dist/runtime/stream.controller.js +72 -13
  856. package/dist/runtime/stream.d.ts +27 -6
  857. package/dist/runtime/stream.js +102 -7
  858. package/dist/runtime/subagents/child.d.ts +58 -51
  859. package/dist/runtime/subagents/child.js +105 -86
  860. package/dist/runtime/subagents/definition.d.ts +32 -28
  861. package/dist/runtime/subagents/definition.js +89 -143
  862. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  863. package/dist/runtime/subagents/deliveries.js +228 -0
  864. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  865. package/dist/runtime/subagents/dispatch.js +336 -270
  866. package/dist/runtime/subagents/limits.d.ts +32 -8
  867. package/dist/runtime/subagents/limits.js +44 -8
  868. package/dist/runtime/subagents/messages.d.ts +95 -0
  869. package/dist/runtime/subagents/messages.js +328 -0
  870. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  871. package/dist/runtime/subagents/org-agents.js +3 -2
  872. package/dist/runtime/subagents/preamble.d.ts +4 -4
  873. package/dist/runtime/subagents/preamble.js +9 -7
  874. package/dist/runtime/subagents/progress.d.ts +10 -8
  875. package/dist/runtime/subagents/progress.js +11 -6
  876. package/dist/runtime/subagents/render.d.ts +30 -0
  877. package/dist/runtime/subagents/render.js +53 -0
  878. package/dist/runtime/subagents/roster.d.ts +27 -10
  879. package/dist/runtime/subagents/roster.js +49 -13
  880. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  881. package/dist/runtime/subagents/skill-fork.js +23 -8
  882. package/dist/runtime/subagents/status.d.ts +14 -0
  883. package/dist/runtime/subagents/status.js +23 -0
  884. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  885. package/dist/runtime/subagents/subagents.service.js +106 -0
  886. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  887. package/dist/runtime/usage-report-jobs.js +158 -0
  888. package/dist/runtime/usage-report.d.ts +121 -83
  889. package/dist/runtime/usage-report.js +355 -181
  890. package/dist/runtime/waits.d.ts +258 -81
  891. package/dist/runtime/waits.js +800 -263
  892. package/dist/sandbox/job-ids.d.ts +10 -0
  893. package/dist/sandbox/job-ids.js +10 -0
  894. package/dist/sandbox/jobs.d.ts +68 -0
  895. package/dist/sandbox/jobs.js +150 -0
  896. package/dist/sandbox/leases.d.ts +73 -82
  897. package/dist/sandbox/leases.js +162 -346
  898. package/dist/sandbox/providers.d.ts +46 -0
  899. package/dist/sandbox/providers.js +83 -0
  900. package/dist/sandbox/sandbox.module.d.ts +9 -0
  901. package/dist/sandbox/sandbox.module.js +36 -0
  902. package/dist/sandbox/sandbox.service.d.ts +359 -151
  903. package/dist/sandbox/sandbox.service.js +950 -435
  904. package/dist/sandbox/unreachable.d.ts +30 -0
  905. package/dist/sandbox/unreachable.js +108 -0
  906. package/dist/skills/catalog.d.ts +40 -26
  907. package/dist/skills/catalog.js +120 -99
  908. package/dist/skills/changes.controller.d.ts +11 -4
  909. package/dist/skills/changes.controller.js +34 -9
  910. package/dist/skills/changes.service.d.ts +31 -21
  911. package/dist/skills/changes.service.js +426 -368
  912. package/dist/skills/invocable.controller.d.ts +2 -2
  913. package/dist/skills/invocable.controller.js +10 -7
  914. package/dist/skills/invocation-keys.d.ts +1 -1
  915. package/dist/skills/invocation-keys.js +1 -1
  916. package/dist/skills/invoke.d.ts +19 -18
  917. package/dist/skills/invoke.js +68 -24
  918. package/dist/skills/package.d.ts +20 -1
  919. package/dist/skills/package.js +28 -1
  920. package/dist/skills/skills.controller.d.ts +33 -7
  921. package/dist/skills/skills.controller.js +79 -12
  922. package/dist/skills/skills.module.d.ts +6 -0
  923. package/dist/skills/skills.module.js +39 -0
  924. package/dist/skills/skills.schemas.d.ts +48 -0
  925. package/dist/skills/skills.schemas.js +61 -0
  926. package/dist/skills/skills.service.d.ts +151 -44
  927. package/dist/skills/skills.service.js +636 -204
  928. package/dist/skills/usable.d.ts +81 -0
  929. package/dist/skills/usable.js +379 -0
  930. package/dist/storage/job-ids.d.ts +6 -0
  931. package/dist/storage/job-ids.js +6 -0
  932. package/dist/storage/purge.d.ts +22 -7
  933. package/dist/storage/purge.js +55 -3
  934. package/dist/storage/storage.module.d.ts +6 -0
  935. package/dist/storage/storage.module.js +23 -0
  936. package/dist/storage/storage.service.d.ts +18 -4
  937. package/dist/storage/storage.service.js +44 -3
  938. package/dist/time-zone.d.ts +5 -0
  939. package/dist/time-zone.js +19 -0
  940. package/dist/tools/approvals.controller.d.ts +1 -1
  941. package/dist/tools/approvals.controller.js +14 -11
  942. package/dist/tools/approvals.schemas.d.ts +21 -0
  943. package/dist/tools/approvals.schemas.js +15 -0
  944. package/dist/tools/approvals.service.d.ts +53 -27
  945. package/dist/tools/approvals.service.js +365 -260
  946. package/dist/tools/breaker.d.ts +2 -2
  947. package/dist/tools/breaker.js +21 -3
  948. package/dist/tools/builtin-names.d.ts +109 -0
  949. package/dist/tools/builtin-names.js +173 -0
  950. package/dist/tools/builtins/agent.d.ts +27 -25
  951. package/dist/tools/builtins/agent.js +66 -63
  952. package/dist/tools/builtins/ask-user.d.ts +3 -3
  953. package/dist/tools/builtins/ask-user.js +3 -3
  954. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  955. package/dist/tools/builtins/builtin-tools.js +151 -0
  956. package/dist/tools/builtins/current-time.d.ts +26 -0
  957. package/dist/tools/builtins/current-time.js +99 -0
  958. package/dist/tools/builtins/handback.d.ts +28 -0
  959. package/dist/tools/builtins/handback.js +53 -0
  960. package/dist/tools/builtins/platform.d.ts +51 -0
  961. package/dist/tools/builtins/platform.js +451 -0
  962. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  963. package/dist/tools/builtins/read-tool-output.js +3 -3
  964. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  965. package/dist/tools/builtins/sandbox/bash.js +293 -41
  966. package/dist/tools/builtins/sandbox/common.d.ts +137 -37
  967. package/dist/tools/builtins/sandbox/common.js +222 -62
  968. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  969. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  970. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  971. package/dist/tools/builtins/sandbox/edit.js +65 -51
  972. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  973. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  974. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  976. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/glob.js +19 -14
  978. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  979. package/dist/tools/builtins/sandbox/grep.js +155 -36
  980. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  981. package/dist/tools/builtins/sandbox/index.js +13 -5
  982. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  983. package/dist/tools/builtins/sandbox/read.js +30 -20
  984. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  985. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  986. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  987. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  988. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  989. package/dist/tools/builtins/sandbox/write.js +52 -45
  990. package/dist/tools/builtins/send-message.d.ts +56 -0
  991. package/dist/tools/builtins/send-message.js +100 -0
  992. package/dist/tools/builtins/skill-load.d.ts +32 -21
  993. package/dist/tools/builtins/skill-load.js +125 -74
  994. package/dist/tools/builtins/skill-write.d.ts +4 -4
  995. package/dist/tools/builtins/skill-write.js +12 -12
  996. package/dist/tools/builtins/tool-search.d.ts +13 -9
  997. package/dist/tools/builtins/tool-search.js +25 -14
  998. package/dist/tools/builtins/web/errors.d.ts +8 -0
  999. package/dist/tools/builtins/web/errors.js +53 -0
  1000. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1001. package/dist/tools/builtins/web/extract.js +271 -0
  1002. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1003. package/dist/tools/builtins/web/fetch.js +175 -0
  1004. package/dist/tools/builtins/web/index.d.ts +13 -0
  1005. package/dist/tools/builtins/web/index.js +12 -0
  1006. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1007. package/dist/tools/builtins/web/page-cache.js +77 -0
  1008. package/dist/tools/builtins/web/search.d.ts +25 -0
  1009. package/dist/tools/builtins/web/search.js +210 -0
  1010. package/dist/tools/builtins/web/url.d.ts +17 -0
  1011. package/dist/tools/builtins/web/url.js +43 -0
  1012. package/dist/tools/canonical-json.d.ts +6 -0
  1013. package/dist/tools/canonical-json.js +16 -0
  1014. package/dist/tools/connector-content.controller.d.ts +1 -1
  1015. package/dist/tools/connector-content.controller.js +11 -6
  1016. package/dist/tools/connector-content.d.ts +12 -15
  1017. package/dist/tools/connector-content.js +53 -18
  1018. package/dist/tools/connectors.controller.d.ts +16 -3
  1019. package/dist/tools/connectors.controller.js +34 -14
  1020. package/dist/tools/connectors.schemas.d.ts +12 -0
  1021. package/dist/tools/connectors.schemas.js +19 -0
  1022. package/dist/tools/connectors.service.d.ts +80 -18
  1023. package/dist/tools/connectors.service.js +529 -358
  1024. package/dist/tools/credentials.d.ts +20 -20
  1025. package/dist/tools/credentials.js +55 -34
  1026. package/dist/tools/display-names.d.ts +9 -0
  1027. package/dist/tools/display-names.js +24 -0
  1028. package/dist/tools/drift.d.ts +29 -41
  1029. package/dist/tools/drift.js +116 -84
  1030. package/dist/tools/elicitation.js +1 -1
  1031. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1032. package/dist/tools/extension-tools.controller.js +37 -0
  1033. package/dist/tools/info.d.ts +73 -13
  1034. package/dist/tools/info.js +151 -39
  1035. package/dist/tools/job-ids.d.ts +13 -0
  1036. package/dist/tools/job-ids.js +15 -0
  1037. package/dist/tools/jobs.d.ts +24 -0
  1038. package/dist/tools/jobs.js +69 -0
  1039. package/dist/tools/legacy-data.d.ts +34 -0
  1040. package/dist/tools/legacy-data.js +76 -0
  1041. package/dist/tools/legacy-keys.d.ts +51 -0
  1042. package/dist/tools/legacy-keys.js +115 -0
  1043. package/dist/tools/naming.d.ts +1 -5
  1044. package/dist/tools/naming.js +1 -7
  1045. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1046. package/dist/tools/oauth/flow-paths.js +38 -0
  1047. package/dist/tools/oauth/flow.d.ts +30 -30
  1048. package/dist/tools/oauth/flow.js +109 -81
  1049. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1050. package/dist/tools/oauth/oauth.controller.js +12 -9
  1051. package/dist/tools/oauth/tokens.d.ts +45 -10
  1052. package/dist/tools/oauth/tokens.js +70 -24
  1053. package/dist/tools/org-tool-switches.d.ts +88 -0
  1054. package/dist/tools/org-tool-switches.js +201 -0
  1055. package/dist/tools/outputs.d.ts +13 -4
  1056. package/dist/tools/outputs.js +48 -4
  1057. package/dist/tools/pipeline.d.ts +108 -80
  1058. package/dist/tools/pipeline.js +396 -409
  1059. package/dist/tools/policy.d.ts +4 -17
  1060. package/dist/tools/policy.js +49 -35
  1061. package/dist/tools/questions.controller.d.ts +2 -2
  1062. package/dist/tools/questions.controller.js +9 -6
  1063. package/dist/tools/questions.service.d.ts +26 -25
  1064. package/dist/tools/questions.service.js +201 -142
  1065. package/dist/tools/registry.d.ts +215 -84
  1066. package/dist/tools/registry.js +382 -264
  1067. package/dist/tools/resources.d.ts +1 -1
  1068. package/dist/tools/resources.js +1 -1
  1069. package/dist/tools/specs.d.ts +5 -4
  1070. package/dist/tools/specs.js +3 -1
  1071. package/dist/tools/tools.module.d.ts +10 -0
  1072. package/dist/tools/tools.module.js +113 -0
  1073. package/dist/tools/validate.js +1 -1
  1074. package/dist/ui/call-extension.d.ts +16 -0
  1075. package/dist/ui/call-extension.js +38 -0
  1076. package/dist/ui/embed-token.d.ts +9 -5
  1077. package/dist/ui/embed-token.js +34 -6
  1078. package/dist/ui/ui-stream.d.ts +22 -17
  1079. package/dist/ui/ui-stream.js +72 -12
  1080. package/dist/ui/ui.module.d.ts +7 -0
  1081. package/dist/ui/ui.module.js +28 -0
  1082. package/dist/ui/views.controller.d.ts +14 -12
  1083. package/dist/ui/views.controller.js +32 -25
  1084. package/dist/ui/views.d.ts +10 -57
  1085. package/dist/ui/views.js +58 -46
  1086. package/package.json +13 -3
  1087. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1088. package/src/migrations/0064_account_last_org.sql +7 -0
  1089. package/src/migrations/0065_conversation_archive.sql +8 -0
  1090. package/src/migrations/0066_extension_display_name.sql +4 -0
  1091. package/src/migrations/0067_agent_profiles.sql +20 -0
  1092. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1093. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1094. package/src/migrations/0070_background_tasks.sql +37 -0
  1095. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1096. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1097. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1098. package/src/migrations/0074_subagent_tree.sql +50 -0
  1099. package/src/migrations/0075_plugin_scope.sql +61 -0
  1100. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1101. package/src/migrations/0077_scope_requests.sql +52 -0
  1102. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1103. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1104. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1105. package/src/migrations/0081_platform_components.sql +129 -0
  1106. package/src/migrations/0082_platform_migration.sql +33 -0
  1107. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1108. package/src/migrations/0084_org_owned_items.sql +85 -0
  1109. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1110. package/src/migrations/0086_org_layering.sql +30 -0
  1111. package/src/migrations/0087_approval_summary.sql +6 -0
  1112. package/src/migrations/0088_environments.sql +80 -0
  1113. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1114. package/src/migrations/0090_initial_passwords.sql +27 -0
  1115. package/src/migrations/0091_account_time_zone.sql +4 -0
  1116. package/src/migrations/0092_tools_default_on.sql +27 -0
  1117. package/src/migrations/0093_connected_environments.sql +37 -0
  1118. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1119. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1120. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1121. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1122. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1123. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1124. package/src/migrations/0100_catalog_files.sql +13 -0
  1125. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1126. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1127. package/dist/catalog/upgrade-targets.js +0 -90
  1128. package/dist/conversations/sandbox-status.d.ts +0 -21
  1129. package/dist/conversations/sandbox-status.js +0 -24
  1130. package/dist/extensions/org-config.controller.d.ts +0 -24
  1131. package/dist/extensions/org-config.controller.js +0 -59
  1132. package/dist/http/gateway.module.js +0 -13
  1133. package/dist/http/health.controller.d.ts +0 -26
  1134. package/dist/http/health.controller.js +0 -79
  1135. package/dist/http/tokens.d.ts +0 -131
  1136. package/dist/http/tokens.js +0 -131
  1137. package/dist/http/zod.pipe.d.ts +0 -8
  1138. package/dist/http/zod.pipe.js +0 -14
  1139. package/dist/identity/enterprise-admin.d.ts +0 -14
  1140. package/dist/identity/enterprise-admin.js +0 -27
  1141. package/dist/identity/rate-limit.d.ts +0 -55
  1142. package/dist/identity/rate-limit.js +0 -121
  1143. package/dist/sandbox/lifecycle.d.ts +0 -21
  1144. package/dist/sandbox/lifecycle.js +0 -68
  1145. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1146. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -1,32 +1,34 @@
1
- import { DelayedError, Job, Queue, UnrecoverableError, Worker } from "bullmq";
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 { DelayedError, Job, UnrecoverableError } from "bullmq";
2
13
  import { sql } from "kysely";
3
- import { enabledExtensionsQuery } from "../extensions/enabled.js";
4
- import { deepFreeze, errMsg } from "../extensions/hooks.js";
5
- import { withJobContext } from "../log-context.js";
6
- import { bullConnection } from "./run-queue.js";
7
- /** Queue of `usage.report` deliveries (no `:` in the name). */
8
- export const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
9
- /** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
10
- export const usageReportJobId = (conversationId, seq) => `usage-${conversationId}-${seq}`;
11
- /** First attempt plus 5 retries (F11). */
12
- export const USAGE_REPORT_ATTEMPTS = 6;
13
- /** Retry backoff: 2 s, doubling (2, 4, 8, 16, 32 s). */
14
- export const USAGE_REPORT_BACKOFF_MS = 2000;
15
- /** Failed jobs (given up) are kept for inspection, at most {@link KEEP_FAILED_MAX} of them. */
16
- const KEEP_FAILED_S = 7 * 86_400;
17
- /** Upper bound on kept failed jobs (I-2): a long outage of a billing endpoint cannot grow Redis. */
18
- const KEEP_FAILED_MAX = 100_000;
14
+ import { ExtensionsModule } from "../extensions/extensions.module.js";
15
+ import { deepFreeze, errMsg, HookNeedsConfigError, } from "../extensions/hooks.js";
16
+ import { ExtensionHost } from "../extensions/host.js";
17
+ import { STALE_RECONCILE_PERIODS } from "../extensions/lifecycle-topics.js";
18
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
19
+ import { KernelDb } from "../infra/database/kernel-db.js";
20
+ import { LockService } from "../infra/lock/lock.service.js";
21
+ import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
22
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
23
+ import { deliveryRowOfChildRun } from "./subagents/child.js";
24
+ import { modelUsageJobId, queryUsageSubscribers, USAGE_REPORT_ATTEMPTS, USAGE_REPORT_BACKOFF_MS, USAGE_REPORT_JOB, USAGE_REPORT_QUEUE, USAGE_REPORT_RETRY, UsageReportJobsModule, usageReportJobId, usageReportJobOpts, } from "./usage-report-jobs.js";
25
+ export { ModelUsageJobs, modelUsageJobId, queryUsageSubscribers, USAGE_REPORT_ATTEMPTS, USAGE_REPORT_BACKOFF_MS, USAGE_REPORT_QUEUE, USAGE_REPORT_RETRY, UsageReportJobsModule, usageReportJobId, } from "./usage-report-jobs.js";
19
26
  /** Warnings about a plugin that cannot take deliveries are logged at most once per this window. */
20
27
  const WARN_WINDOW_MS = 60_000;
21
- /**
22
- * Upper bound on kept finished jobs (Redis memory). At the default retention it only bites above
23
- * ~1.1 usage events per second sustained for a day; dedupe needs the jobs only for the sweeper overlap.
24
- */
25
- const KEEP_COMPLETED_MAX = 100_000;
26
- /** Maintenance job of the sweeper (no `:`), its scheduler id and period. */
28
+ /** The sweeper's cron job name (no `:`; every minute, once across replicas). */
27
29
  export const USAGE_SWEEP_JOB = "usage-report-sweep";
28
- export const USAGE_SWEEP_SCHEDULER_ID = "usage-report-sweep-every";
29
- export const USAGE_SWEEP_EVERY_MS = 60_000;
30
+ /** The maintenance scheduler the sweep ran on before it became a `@LockedCron` (retired). */
31
+ export { USAGE_SWEEP_SCHEDULER_ID } from "./job-ids.js";
30
32
  /** The sweep leaves the newest events to the fast path (and to transactions still committing). */
31
33
  export const USAGE_SWEEP_LAG_MS = 30_000;
32
34
  /**
@@ -36,38 +38,6 @@ export const USAGE_SWEEP_LAG_MS = 30_000;
36
38
  */
37
39
  export const USAGE_SWEEP_OVERLAP_MS = 10 * 60_000;
38
40
  const SWEEP_PAGE = 500;
39
- const JOB = "usage-report";
40
- /**
41
- * Plugins that subscribe to `usage.report` according to deployment state: an approved permission
42
- * snapshot that declares the `usage.report` hook, for a plugin the deployment still knows: an enabled
43
- * install, or a config-declared plugin with a replica status row that is not `unloaded`. With `orgId`, only plugins
44
- * the organization enabled (org config rows and required bootstrap plugins).
45
- */
46
- export async function queryUsageSubscribers(db, orgId) {
47
- let q = db
48
- .selectFrom("extension_permission_snapshots as s")
49
- .select("s.plugin")
50
- .where(sql `s.permissions -> 'permissions' -> 'hooks' ? 'usage.report'`)
51
- .where((eb) => eb.or([
52
- eb.exists(eb
53
- .selectFrom("extension_installs as i")
54
- .select(sql `1`.as("one"))
55
- .whereRef("i.name", "=", "s.plugin")
56
- .where("i.desired_state", "=", "enabled")),
57
- // config-declared plugins still declared (and not unloaded) on some replica; installs are
58
- // covered by desired_state above (their replica rows linger as `unloaded` when disabled)
59
- eb.exists(eb
60
- .selectFrom("extension_replica_status as r")
61
- .select(sql `1`.as("one"))
62
- .whereRef("r.plugin", "=", "s.plugin")
63
- .where("r.source", "=", "config")
64
- .where("r.state", "<>", "unloaded")),
65
- ]));
66
- if (orgId !== undefined) {
67
- q = q.where("s.plugin", "in", enabledExtensionsQuery(db, orgId));
68
- }
69
- return new Set((await q.execute()).map((r) => r.plugin));
70
- }
71
41
  /**
72
42
  * Of `plugins`, those that are **definitely** unservable right now (I-2, N-3): live replicas report
73
43
  * them (a `extension_replica_status` row with a heartbeat newer than `staleSeconds`), no live row is
@@ -107,6 +77,10 @@ class Undeliverable extends Error {
107
77
  this.name = "Undeliverable";
108
78
  }
109
79
  }
80
+ /** A job's identity: its `usage` event or its `model_usage` row. */
81
+ const keyOf = (d) => d.usageId !== undefined
82
+ ? { usageId: d.usageId }
83
+ : { conversationId: d.conversationId, seq: d.seq };
110
84
  /**
111
85
  * The next `pending` set (m-2 fence): plugins that failed now, narrowed to what the stored job data
112
86
  * still lists. A plugin another (stalled-over) execution already delivered never comes back.
@@ -138,33 +112,82 @@ export function narrowPending(stored, failed) {
138
112
  * most 100 000. Each call runs through the instance's `inflight.run`, limited by `hooks.timeoutMs`;
139
113
  * when this replica stops, in-flight calls are aborted and the job goes back to the queue without
140
114
  * using up an attempt.
141
- * Handlers must be idempotent by `eventId` (`<conversationId>/<seq>`). Nothing is written to the event
142
- * log (never model-visible). Compaction calls log usage too (`purpose: "compaction"`) and are reported,
143
- * as are conversation title calls (`purpose: "title"`, no run: `runId` is "").
115
+ * Handlers must be idempotent by `eventId` (`<conversationId>/<seq>`, or a `model_usage` row id).
116
+ * Nothing is written to the event log (never model-visible). Compaction calls log usage too (`purpose: "compaction"`) and are reported,
117
+ * as are conversation title calls (`purpose: "title"`, no run: `runId` is "") and `WebFetch`
118
+ * extraction calls (`purpose: "web_fetch"`).
144
119
  * Single-step eval replays and judge requests log no usage: not reported (M7).
120
+ * - **Model usage outside conversations** (spec B §5.4): each `ctx.models.embed` call writes a
121
+ * `model_usage` row; on its `model_usage.recorded` event `ModelUsageJobs` (`usage-report-jobs.ts`)
122
+ * enqueues job `usage-model-<rowId>` (only while some plugin subscribes); the payload
123
+ * (`purpose: "embedding"`, `eventId` = the row id, the calling `extension`, no conversation fields)
124
+ * is read from the row when the job runs, and the row's `reported_at` is set once nothing is left
125
+ * to deliver; a job that gives up after its last attempt sets `report_failed_at`. The sweep
126
+ * re-enqueues recent rows that are neither (see {@link sweep}).
145
127
  */
146
- export class UsageReporter {
147
- d;
128
+ let UsageReporter = class UsageReporter {
129
+ kdb;
148
130
  queue;
149
- queueConn;
131
+ host;
132
+ config;
133
+ locks;
134
+ log;
135
+ retry;
150
136
  worker;
151
- workerConn;
152
137
  closed = false;
153
138
  stopping = new AbortController();
154
- constructor(d) {
155
- this.d = d;
139
+ constructor(kdb, queue,
140
+ /**
141
+ * The host's hook registry: handlers of the current local plugin generations (through
142
+ * inflight.run), and `has("usage.report")`, the in-process check that lets `enqueue` skip all
143
+ * I/O without handlers; and whether a plugin's current instance is active here.
144
+ */
145
+ host, config,
146
+ /** The warning throttle's markers (`capk:usage-warn:<plugin>:<kind>`, SET NX PX). */
147
+ locks, log, retry = {
148
+ attempts: USAGE_REPORT_ATTEMPTS,
149
+ backoffMs: USAGE_REPORT_BACKOFF_MS,
150
+ }) {
151
+ this.kdb = kdb;
152
+ this.queue = queue;
153
+ this.host = host;
154
+ this.config = config;
155
+ this.locks = locks;
156
+ this.log = log;
157
+ this.retry = retry;
158
+ queue.on("error", (err) => this.log.error("usage report queue error", { err }));
156
159
  }
157
- jobOpts(conversationId, seq) {
158
- return {
159
- jobId: usageReportJobId(conversationId, seq),
160
- attempts: this.d.retry?.attempts ?? USAGE_REPORT_ATTEMPTS,
161
- backoff: { type: "exponential", delay: this.d.retry?.backoffMs ?? USAGE_REPORT_BACKOFF_MS },
162
- removeOnComplete: {
163
- age: this.d.config().hooks.usageReportKeepHours * 3600,
164
- count: KEEP_COMPLETED_MAX,
165
- },
166
- removeOnFail: { age: KEEP_FAILED_S, count: KEEP_FAILED_MAX },
167
- };
160
+ get db() {
161
+ return this.kdb.db;
162
+ }
163
+ get hooks() {
164
+ return this.host.hooks;
165
+ }
166
+ /**
167
+ * Whether the plugin's current instance is active on this replica (I-2): an active instance that
168
+ * registered no `usage.report` handler is not a subscriber, and its target is dropped.
169
+ */
170
+ isActive(plugin) {
171
+ return this.host.current(plugin) !== undefined;
172
+ }
173
+ /**
174
+ * Of these plugins, the ones no replica can serve right now (I-2): replicas report them (live
175
+ * `extension_replica_status` rows) and none has them loaded. Their targets are dropped at once
176
+ * instead of failing every attempt. See {@link queryUnservable}.
177
+ */
178
+ unservable(plugins) {
179
+ return queryUnservable(this.db, plugins, STALE_RECONCILE_PERIODS * this.config.get().extensionHost.reconcileIntervalSeconds);
180
+ }
181
+ /**
182
+ * Plugins that subscribe to `usage.report`, from deployment state (approved manifests in PG),
183
+ * not from this replica's loaded handlers. With `orgId`: only those the organization enabled.
184
+ * See {@link queryUsageSubscribers}.
185
+ */
186
+ subscribers(orgId) {
187
+ return queryUsageSubscribers(this.db, orgId);
188
+ }
189
+ jobOpts(jobId) {
190
+ return usageReportJobOpts(jobId, this.retry, this.config.get().hooks.usageReportKeepHours);
168
191
  }
169
192
  /**
170
193
  * Enqueues the delivery of one `usage` event. Returns without a job when no plugin subscribes.
@@ -175,41 +198,45 @@ export class UsageReporter {
175
198
  return;
176
199
  // M-2: no usage.report handler on this replica → no I/O at all. A plugin loaded only on other
177
200
  // replicas still gets the event: the sweeper re-offers it within about a minute and a half.
178
- if (!this.d.hooks.has("usage.report"))
201
+ if (!this.hooks.has("usage.report"))
179
202
  return;
180
203
  try {
181
- if ((await this.d.subscribers()).size === 0)
204
+ if ((await this.subscribers()).size === 0)
182
205
  return;
183
- await this.getQueue().add(JOB, { conversationId, seq }, this.jobOpts(conversationId, seq));
206
+ await this.queue.add(USAGE_REPORT_JOB, { conversationId, seq }, this.jobOpts(usageReportJobId(conversationId, seq)));
184
207
  }
185
208
  catch (err) {
186
- this.d.log.warn("cannot enqueue usage report", { conversationId, seq, err });
209
+ this.log.warn("cannot enqueue usage report", { conversationId, seq, err });
187
210
  }
188
211
  }
189
212
  /**
190
213
  * One sweep (R13): re-enqueues the `usage` events created in `[watermark - overlap, now - lag]` in
191
214
  * pages, then advances the watermark to `now - lag`. With no subscriber it only advances. The first
192
- * sweep starts at `now - lag - overlap`. Returns the number of events offered to the queue.
215
+ * sweep starts at `now - lag - overlap`. Also re-enqueues the `model_usage` rows of the same
216
+ * window that are neither reported nor given up (spec B §5.4),
217
+ * or, with no subscriber, marks those rows reported (nobody to deliver to). Returns the number of
218
+ * events and rows offered to the queue.
193
219
  */
194
220
  async sweep(opts = {}) {
195
221
  // bounds and keyset as full-precision timestamp text (microseconds), computed with the DB clock
196
222
  // unless a test fixes "now" (m-a, m-c)
197
223
  const to = opts.now !== undefined
198
224
  ? new Date(opts.now - USAGE_SWEEP_LAG_MS).toISOString()
199
- : (await sql `SELECT (now() - make_interval(secs => ${USAGE_SWEEP_LAG_MS / 1000}))::text AS to`.execute(this.d.db)).rows[0]?.to;
225
+ : (await sql `SELECT (now() - make_interval(secs => ${USAGE_SWEEP_LAG_MS / 1000}))::text AS to`.execute(this.db)).rows[0]?.to;
200
226
  if (to === undefined)
201
227
  return 0;
202
- const row = await this.d.db
228
+ const row = await this.db
203
229
  .selectFrom("usage_report_sweep")
204
230
  .select(sql `watermark::text`.as("watermark"))
205
231
  .where("id", "=", 1)
206
232
  .executeTakeFirst();
207
233
  const watermark = row?.watermark ?? to;
208
234
  let offered = 0;
209
- if ((await this.d.subscribers()).size > 0) {
235
+ const subscribed = (await this.subscribers()).size > 0;
236
+ if (subscribed) {
210
237
  let after;
211
238
  for (;;) {
212
- let q = this.d.db
239
+ let q = this.db
213
240
  .selectFrom("conversation_events")
214
241
  .select(["conversation_id", "seq", sql `created_at::text`.as("at")])
215
242
  .where("type", "=", "usage")
@@ -225,10 +252,10 @@ export class UsageReporter {
225
252
  .limit(SWEEP_PAGE)
226
253
  .execute();
227
254
  if (page.length > 0) {
228
- await this.getQueue().addBulk(page.map((r) => ({
229
- name: JOB,
255
+ await this.queue.addBulk(page.map((r) => ({
256
+ name: USAGE_REPORT_JOB,
230
257
  data: { conversationId: r.conversation_id, seq: Number(r.seq) },
231
- opts: this.jobOpts(r.conversation_id, Number(r.seq)),
258
+ opts: this.jobOpts(usageReportJobId(r.conversation_id, Number(r.seq))),
232
259
  })));
233
260
  offered += page.length;
234
261
  }
@@ -238,7 +265,8 @@ export class UsageReporter {
238
265
  after = { at: last.at, conv: last.conversation_id, seq: String(last.seq) };
239
266
  }
240
267
  }
241
- await this.d.db
268
+ offered += await this.sweepModelUsage(watermark, to, subscribed);
269
+ await this.db
242
270
  .insertInto("usage_report_sweep")
243
271
  .values({ id: 1, watermark: sql `${to}::timestamptz` })
244
272
  .onConflict((oc) => oc.column("id").doUpdateSet({
@@ -248,80 +276,167 @@ export class UsageReporter {
248
276
  .execute();
249
277
  return offered;
250
278
  }
251
- /** Starts the worker (worker role only). Job lock and stalled detection follow the run queue. */
252
- startWorker() {
279
+ /**
280
+ * The `model_usage` half of {@link sweep}: rows neither reported nor given up that occurred in
281
+ * the same window as the events (`[watermark - overlap, to]`), oldest first. Bounded like the
282
+ * event sweep, so a row whose job failed for good is never offered again, even after its failed
283
+ * job left Redis (no repeated backlog, no second delivery to plugins already served).
284
+ */
285
+ async sweepModelUsage(watermark, to, subscribed) {
286
+ if (!subscribed) {
287
+ await this.db
288
+ .updateTable("model_usage")
289
+ .set({ reported_at: sql `now()` })
290
+ .where("reported_at", "is", null)
291
+ .where(sql `occurred_at <= ${to}::timestamptz`)
292
+ .execute();
293
+ return 0;
294
+ }
295
+ let offered = 0;
296
+ let after;
297
+ for (;;) {
298
+ let q = this.db
299
+ .selectFrom("model_usage")
300
+ .select(["id", sql `occurred_at::text`.as("at")])
301
+ .where("reported_at", "is", null)
302
+ .where("report_failed_at", "is", null)
303
+ .where(sql `occurred_at >= ${watermark}::timestamptz - make_interval(secs => ${USAGE_SWEEP_OVERLAP_MS / 1000})`)
304
+ .where(sql `occurred_at <= ${to}::timestamptz`);
305
+ if (after) {
306
+ q = q.where(sql `(occurred_at, id) > (${after.at}::timestamptz, ${after.id}::uuid)`);
307
+ }
308
+ const page = await q.orderBy("occurred_at").orderBy("id").limit(SWEEP_PAGE).execute();
309
+ if (page.length > 0) {
310
+ await this.queue.addBulk(page.map((r) => ({
311
+ name: USAGE_REPORT_JOB,
312
+ data: { usageId: r.id },
313
+ opts: this.jobOpts(modelUsageJobId(r.id)),
314
+ })));
315
+ offered += page.length;
316
+ }
317
+ const last = page.at(-1);
318
+ if (!last || page.length < SWEEP_PAGE)
319
+ break;
320
+ after = { at: last.at, id: last.id };
321
+ }
322
+ return offered;
323
+ }
324
+ /**
325
+ * Starts consuming (worker role only): `worker` is the `@Processor` worker of
326
+ * {@link USAGE_REPORT_QUEUE} (built with the run queue's job lock and stalled detection).
327
+ */
328
+ startWorker(worker) {
253
329
  if (this.worker || this.closed)
254
330
  return;
255
- const { jobLockMs, stalledIntervalMs } = this.d.config().runtime;
256
- // the queue exists before any job runs: in-flight jobs fence and requeue through it, even on a
257
- // replica that never enqueued (m-b)
258
- this.getQueue();
259
- this.workerConn = bullConnection(this.d.redisUrl, this.d.log);
260
- this.worker = new Worker(USAGE_REPORT_QUEUE, (j, t) => withJobContext(USAGE_REPORT_QUEUE, j, () => this.process(j, t)), {
261
- connection: this.workerConn,
262
- concurrency: this.d.config().hooks.usageReportConcurrency,
263
- lockDuration: jobLockMs,
264
- stalledInterval: stalledIntervalMs,
265
- maxStalledCount: 3,
266
- });
267
- this.worker.on("error", (err) => this.d.log.error("usage report worker error", { err }));
268
- this.worker.on("failed", (j, err) => {
269
- if (!j || err instanceof DelayedError || err.name === "DelayedError")
270
- return;
271
- // a definite drop (N-3) was already warned about (throttled); the failed job is the trace
272
- if (err instanceof UnrecoverableError || err.name === "UnrecoverableError")
273
- return;
274
- const final = j.attemptsMade >= (j.opts.attempts ?? 1);
275
- const fields = {
276
- jobId: j.id,
277
- conversationId: j.data.conversationId,
278
- seq: j.data.seq,
279
- pending: j.data.pending,
280
- attempt: j.attemptsMade,
281
- error: err.message,
282
- };
283
- if (final)
284
- this.d.log.error("usage report given up after retries", fields);
285
- else
286
- this.d.log.warn("usage report attempt failed; retrying", fields);
287
- });
331
+ this.worker = worker;
332
+ void worker.run().catch((err) => this.log.error("usage report worker error", { err }));
333
+ }
334
+ /** The worker's `error` event. */
335
+ onError(err) {
336
+ this.log.error("usage report worker error", { err });
288
337
  }
289
- /** Stops the worker (in-flight calls are aborted, their jobs requeued) and the queue. */
338
+ /** A job failed (the worker's `failed` event): logs retries and the final failure. */
339
+ onFailed(j, err) {
340
+ if (!j || err instanceof DelayedError || err.name === "DelayedError")
341
+ return;
342
+ // a definite drop (N-3) was already warned about (throttled); the failed job is the trace
343
+ if (err instanceof UnrecoverableError || err.name === "UnrecoverableError")
344
+ return;
345
+ const final = j.attemptsMade >= (j.opts.attempts ?? 1);
346
+ const fields = {
347
+ jobId: j.id,
348
+ ...(j.data.usageId !== undefined
349
+ ? { usageId: j.data.usageId }
350
+ : { conversationId: j.data.conversationId, seq: j.data.seq }),
351
+ pending: j.data.pending,
352
+ attempt: j.attemptsMade,
353
+ error: err.message,
354
+ };
355
+ if (final) {
356
+ this.log.error("usage report given up after retries", fields);
357
+ void this.markFailed(j.data);
358
+ }
359
+ else
360
+ this.log.warn("usage report attempt failed; retrying", fields);
361
+ }
362
+ /**
363
+ * Stops: no more enqueues, in-flight calls are aborted (their jobs requeued) and the worker
364
+ * closes. The queue itself closes with the application.
365
+ */
290
366
  async stop() {
291
367
  this.closed = true;
292
368
  this.stopping.abort();
293
369
  const w = this.worker;
294
370
  this.worker = undefined;
295
- // the worker first: its in-flight jobs still use the queue to fence and requeue
296
371
  await w?.close().catch(() => { });
297
- const q = this.queue;
298
- this.queue = undefined;
299
- await q?.close().catch(() => { });
300
- for (const c of [this.workerConn, this.queueConn]) {
301
- if (c)
302
- await c.quit().catch(() => c.disconnect());
303
- }
304
- this.workerConn = undefined;
305
- this.queueConn = undefined;
306
372
  }
307
- getQueue() {
308
- if (!this.queue) {
309
- if (this.closed)
310
- throw new Error("usage report queue is closed");
311
- this.queueConn = bullConnection(this.d.redisUrl, this.d.log);
312
- this.queue = new Queue(USAGE_REPORT_QUEUE, { connection: this.queueConn });
313
- this.queue.on("error", (err) => this.d.log.error("usage report queue error", { err }));
373
+ /** The payload of a job: a `usage` event's or a `model_usage` row's; null when it is gone. */
374
+ payloadOfJob(data) {
375
+ return data.usageId !== undefined
376
+ ? this.payloadOfUsage(data.usageId)
377
+ : this.payloadOf(data.conversationId, data.seq);
378
+ }
379
+ /**
380
+ * The payload of one `model_usage` row (spec B §5.4): purpose `embedding`, the calling extension,
381
+ * no conversation fields; `eventId` is the row id. Null when the row no longer exists.
382
+ */
383
+ async payloadOfUsage(id) {
384
+ const row = await this.db
385
+ .selectFrom("model_usage")
386
+ .select(["id", "org_id", "extension", "provider", "model", "input_tokens", "occurred_at"])
387
+ .where("id", "=", id)
388
+ .executeTakeFirst();
389
+ if (!row)
390
+ return null;
391
+ return {
392
+ eventId: row.id,
393
+ purpose: "embedding",
394
+ orgId: row.org_id,
395
+ extension: row.extension,
396
+ provider: row.provider,
397
+ model: row.model,
398
+ usage: {
399
+ inputTokens: row.input_tokens,
400
+ outputTokens: 0,
401
+ cacheReadTokens: 0,
402
+ cacheWriteTokens: 0,
403
+ },
404
+ occurredAt: new Date(row.occurred_at).toISOString(),
405
+ };
406
+ }
407
+ /** A `model_usage` job is done (delivered, or nothing left to deliver to): marks the row. */
408
+ async markReported(data) {
409
+ if (data.usageId === undefined)
410
+ return;
411
+ await this.db
412
+ .updateTable("model_usage")
413
+ .set({ reported_at: sql `now()` })
414
+ .where("id", "=", data.usageId)
415
+ .where("reported_at", "is", null)
416
+ .execute();
417
+ }
418
+ /** A `model_usage` job gave up after its last attempt: the sweep never offers the row again. */
419
+ async markFailed(data) {
420
+ if (data.usageId === undefined)
421
+ return;
422
+ try {
423
+ await this.db
424
+ .updateTable("model_usage")
425
+ .set({ report_failed_at: sql `now()` })
426
+ .where("id", "=", data.usageId)
427
+ .where("reported_at", "is", null)
428
+ .execute();
429
+ }
430
+ catch (err) {
431
+ this.log.warn("cannot mark a model usage report as given up", { usageId: data.usageId, err });
314
432
  }
315
- return this.queue;
316
433
  }
317
434
  /** The payload of one usage event, read from the log; null when the event no longer exists. */
318
435
  async payloadOf(conversationId, seq) {
319
- const row = await this.d.db
436
+ const row = await this.db
320
437
  .selectFrom("conversation_events as e")
321
438
  .innerJoin("conversations as c", "c.id", "e.conversation_id")
322
439
  .leftJoin("runs as r", "r.id", "e.run_id")
323
- // a sub-agent's run: its dispatch says where it was dispatched from (spec §11)
324
- .leftJoin("subagent_dispatches as sd", "sd.child_run_id", "e.run_id")
325
440
  .select([
326
441
  "e.payload",
327
442
  "e.run_id",
@@ -332,9 +447,6 @@ export class UsageReporter {
332
447
  "c.account_id",
333
448
  "c.kind",
334
449
  "r.trigger_account_id",
335
- "sd.parent_conversation_id",
336
- "sd.parent_run_id",
337
- "sd.parent_call_id",
338
450
  ])
339
451
  .where("e.conversation_id", "=", conversationId)
340
452
  .where("e.seq", "=", String(seq))
@@ -342,6 +454,11 @@ export class UsageReporter {
342
454
  if (row?.type !== "usage")
343
455
  return null;
344
456
  const p = row.payload;
457
+ // a sub-agent's run: where it was dispatched from (spec §11), its own dispatch, else (a wake
458
+ // run nobody dispatched, agent map spec §5.3) its conversation's latest one
459
+ const parent = row.kind === "subagent" && row.run_id !== null
460
+ ? await deliveryRowOfChildRun(this.db, row.run_id)
461
+ : null;
345
462
  return {
346
463
  eventId: `${conversationId}/${seq}`,
347
464
  purpose: p.purpose ?? "step",
@@ -352,13 +469,11 @@ export class UsageReporter {
352
469
  // a sub-agent's calls report "chat" (spec §11: the SDK union is not widened)
353
470
  conversationKind: row.kind === "eval" ? "eval" : "chat",
354
471
  runId: row.run_id ?? "",
355
- ...(row.parent_conversation_id !== null &&
356
- row.parent_run_id !== null &&
357
- row.parent_call_id !== null && {
472
+ ...(parent !== null && {
358
473
  parent: {
359
- conversationId: row.parent_conversation_id,
360
- runId: row.parent_run_id,
361
- callId: row.parent_call_id,
474
+ conversationId: parent.parentConversationId,
475
+ runId: parent.parentRunId,
476
+ callId: parent.parentCallId,
362
477
  },
363
478
  }),
364
479
  provider: p.provider,
@@ -378,48 +493,50 @@ export class UsageReporter {
378
493
  * dropped can stay, so a plugin another execution delivered never comes back.
379
494
  */
380
495
  async writePending(j, next, dropped) {
381
- const fresh = j.id === undefined ? undefined : await Job.fromId(this.getQueue(), j.id);
496
+ const fresh = j.id === undefined ? undefined : await Job.fromId(this.queue, j.id);
382
497
  const data = fresh?.data;
383
498
  const stored = data?.pending ?? j.data.pending;
384
499
  const storedDropped = data?.dropped ?? j.data.dropped ?? {};
385
500
  const allowed = stored === undefined ? undefined : [...stored, ...Object.keys(storedDropped)];
386
501
  const keep = [...dropped].filter(([p]) => allowed === undefined || allowed.includes(p));
387
502
  const out = {
388
- conversationId: j.data.conversationId,
389
- seq: j.data.seq,
503
+ ...keyOf(j.data),
390
504
  pending: narrowPending(allowed, next),
391
505
  ...(keep.length > 0 && { dropped: Object.fromEntries(keep) }),
392
506
  };
393
507
  await j.updateData(out);
394
508
  j.data = out;
395
509
  }
510
+ /** One delivery job (the `@Processor` of {@link USAGE_REPORT_QUEUE} calls it). */
396
511
  async process(j, token) {
397
- const { conversationId, seq } = j.data;
398
- const payload = await this.payloadOf(conversationId, seq);
512
+ const payload = await this.payloadOfJob(j.data);
513
+ // conversation (or org) deleted meanwhile: nothing to report
399
514
  if (payload === null)
400
- return; // conversation deleted meanwhile: nothing to report
401
- const subscribers = await this.d.subscribers(payload.orgId);
515
+ return;
516
+ const subscribers = await this.subscribers(payload.orgId);
402
517
  if (j.data.pending === undefined) {
403
518
  // first attempt: the targets come from deployment state, recorded so later attempts (on any
404
519
  // replica) deliver exactly the plugins that have not succeeded yet
405
520
  const targets = [...subscribers];
406
- await j.updateData({ conversationId, seq, pending: targets });
521
+ await j.updateData({ ...keyOf(j.data), pending: targets });
407
522
  j.data.pending = targets;
408
523
  }
409
524
  // plugins the organization disabled meanwhile are dropped (not a failure)
410
525
  const targets = (j.data.pending ?? []).filter((p) => subscribers.has(p));
411
- if (targets.length === 0)
526
+ if (targets.length === 0) {
527
+ await this.markReported(j.data);
412
528
  return;
529
+ }
413
530
  const byPlugin = new Map();
414
- for (const h of this.d.hooks.handlers("usage.report")) {
531
+ for (const h of this.hooks.handlers("usage.report")) {
415
532
  byPlugin.set(h.plugin, [...(byPlugin.get(h.plugin) ?? []), h.handler]);
416
533
  }
417
534
  const frozen = deepFreeze(structuredClone(payload));
418
- const timeoutMs = this.d.config().hooks.timeoutMs;
535
+ const timeoutMs = this.config.get().hooks.timeoutMs;
419
536
  const results = await Promise.allSettled(targets.map(async (plugin) => {
420
537
  const handlers = byPlugin.get(plugin);
421
538
  if (!handlers || handlers.length === 0) {
422
- throw new Undeliverable(plugin, this.d.isActive?.(plugin) ? "no_handler" : "not_loaded");
539
+ throw new Undeliverable(plugin, this.isActive(plugin) ? "no_handler" : "not_loaded");
423
540
  }
424
541
  for (const h of handlers)
425
542
  await this.call(h, frozen, timeoutMs);
@@ -441,9 +558,15 @@ export class UsageReporter {
441
558
  notHere.push(plugin);
442
559
  return;
443
560
  }
561
+ // layering spec A §6: the extension's effective config is not valid in this organization, so
562
+ // it is not called there (an observe hook skipped); dropped, not retried
563
+ if (r.reason instanceof HookNeedsConfigError) {
564
+ dropped.set(plugin, "needs configuration in this organization");
565
+ return;
566
+ }
444
567
  failed.push(plugin);
445
568
  if (!this.stopping.signal.aborted) {
446
- this.d.log.warn("usage.report delivery to a plugin failed", {
569
+ this.log.warn("usage.report delivery to a plugin failed", {
447
570
  plugin,
448
571
  eventId: payload.eventId,
449
572
  error: errMsg(r.reason),
@@ -454,7 +577,7 @@ export class UsageReporter {
454
577
  // target is dropped only when it is definitely unservable; unknown ones fail the job as before.
455
578
  const final = j.attemptsMade + 1 >= (j.opts.attempts ?? 1);
456
579
  const gone = final && notHere.length > 0 && !this.stopping.signal.aborted
457
- ? await this.unservable(notHere)
580
+ ? await this.unservableOrNone(notHere)
458
581
  : new Set();
459
582
  for (const plugin of notHere) {
460
583
  if (gone.has(plugin))
@@ -482,6 +605,8 @@ export class UsageReporter {
482
605
  // m-1: pending = the dropped plugins only, so a manual retry reaches them and never the
483
606
  // plugins already served
484
607
  await this.writePending(j, [...allDropped.keys()], allDropped);
608
+ // delivered to every target still servable (a definite drop is final too): the row is done
609
+ await this.markReported(j.data);
485
610
  const traced = new Map([...allDropped].filter(([p]) => j.data.dropped?.[p] !== undefined));
486
611
  if (traced.size === 0)
487
612
  return;
@@ -496,15 +621,13 @@ export class UsageReporter {
496
621
  }
497
622
  throw new UnrecoverableError(`usage.report delivered to the rest;${droppedNote(traced)}`);
498
623
  }
499
- /** {@link UsageReporterDeps.unservable}; a lookup failure counts as "unknown" (keep retrying). */
500
- async unservable(plugins) {
501
- if (!this.d.unservable)
502
- return new Set();
624
+ /** {@link unservable}; a lookup failure counts as "unknown" (keep retrying). */
625
+ async unservableOrNone(plugins) {
503
626
  try {
504
- return await this.d.unservable(plugins);
627
+ return await this.unservable(plugins);
505
628
  }
506
629
  catch (err) {
507
- this.d.log.warn("cannot read plugin replica status for usage.report", { err });
630
+ this.log.warn("cannot read plugin replica status for usage.report", { err });
508
631
  return new Set();
509
632
  }
510
633
  }
@@ -512,15 +635,13 @@ export class UsageReporter {
512
635
  async warnOnce(plugin, kind, msg, fields) {
513
636
  let first = true;
514
637
  try {
515
- this.getQueue();
516
- const key = `capk:usage-warn:${plugin}:${kind}`;
517
- first = (await this.queueConn?.set(key, "1", "PX", WARN_WINDOW_MS, "NX")) !== null;
638
+ first = await this.locks.lease(`capk:usage-warn:${plugin}:${kind}`, "1", WARN_WINDOW_MS);
518
639
  }
519
640
  catch {
520
641
  // Redis unavailable: log anyway rather than hiding it
521
642
  }
522
643
  if (first)
523
- this.d.log.warn(msg, fields);
644
+ this.log.warn(msg, fields);
524
645
  }
525
646
  /** One handler call with its own signal (timeout or replica stop aborts it); rejects on either. */
526
647
  async call(h, payload, timeoutMs) {
@@ -548,4 +669,57 @@ export class UsageReporter {
548
669
  this.stopping.signal.removeEventListener("abort", onStop);
549
670
  }
550
671
  }
551
- }
672
+ };
673
+ UsageReporter = __decorate([
674
+ Injectable(),
675
+ __param(0, Inject(KernelDb)),
676
+ __param(1, Inject(getQueueToken(USAGE_REPORT_QUEUE))),
677
+ __param(2, Inject(ExtensionHost)),
678
+ __param(3, Inject(KernelConfigService)),
679
+ __param(4, Inject(LockService)),
680
+ __param(5, Inject(KERNEL_LOGGER)),
681
+ __param(6, Optional()),
682
+ __param(6, Inject(USAGE_REPORT_RETRY))
683
+ ], UsageReporter);
684
+ export { UsageReporter };
685
+ /**
686
+ * The usage sweeper (R13), every minute, once across replicas: {@link UsageReporter.sweep}.
687
+ * Replaces the maintenance scheduler `usage-report-sweep-every` (retired at worker start).
688
+ */
689
+ let UsageSweepJob = class UsageSweepJob {
690
+ reporter;
691
+ lockService;
692
+ log;
693
+ constructor(reporter, lockService, log) {
694
+ this.reporter = reporter;
695
+ this.lockService = lockService;
696
+ this.log = log;
697
+ }
698
+ async run() {
699
+ await this.reporter.sweep();
700
+ }
701
+ };
702
+ __decorate([
703
+ LockedCron("* * * * *", { name: USAGE_SWEEP_JOB })
704
+ ], UsageSweepJob.prototype, "run", null);
705
+ UsageSweepJob = __decorate([
706
+ Injectable(),
707
+ __param(0, Inject(UsageReporter)),
708
+ __param(1, Inject(LockService)),
709
+ __param(2, Inject(KERNEL_LOGGER))
710
+ ], UsageSweepJob);
711
+ export { UsageSweepJob };
712
+ /**
713
+ * `usage.report` delivery: the producer on every role; the consumer and the sweep ({@link UsageSweepJob})
714
+ * on the worker role (`WorkerModule`).
715
+ */
716
+ let UsageReportModule = class UsageReportModule {
717
+ };
718
+ UsageReportModule = __decorate([
719
+ Module({
720
+ imports: [ExtensionsModule, UsageReportJobsModule],
721
+ providers: [UsageReporter],
722
+ exports: [UsageReporter, UsageReportJobsModule],
723
+ })
724
+ ], UsageReportModule);
725
+ export { UsageReportModule };