@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.6

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 (534) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +51 -14
  3. package/dist/admin/admin.controller.js +60 -19
  4. package/dist/admin/extensions.controller.d.ts +16 -2
  5. package/dist/admin/extensions.controller.js +26 -6
  6. package/dist/admin/setup-lock.d.ts +1 -1
  7. package/dist/admin/setup-lock.js +1 -1
  8. package/dist/admin/setup.controller.d.ts +1 -1
  9. package/dist/admin/setup.controller.js +1 -1
  10. package/dist/admin/setup.service.d.ts +4 -4
  11. package/dist/admin/setup.service.js +8 -8
  12. package/dist/agents/agent-lookup.d.ts +16 -0
  13. package/dist/agents/agent-lookup.js +11 -0
  14. package/dist/agents/agents.controller.d.ts +76 -1
  15. package/dist/agents/agents.controller.js +90 -11
  16. package/dist/agents/agents.module.d.ts +4 -1
  17. package/dist/agents/agents.module.js +32 -6
  18. package/dist/agents/agents.service.d.ts +54 -23
  19. package/dist/agents/agents.service.js +180 -76
  20. package/dist/agents/definition.d.ts +49 -0
  21. package/dist/agents/definition.js +45 -0
  22. package/dist/agents/from-template.d.ts +106 -0
  23. package/dist/agents/from-template.js +649 -0
  24. package/dist/agents/from-template.service.d.ts +60 -0
  25. package/dist/agents/from-template.service.js +161 -0
  26. package/dist/agents/models.controller.d.ts +34 -5
  27. package/dist/agents/models.controller.js +50 -6
  28. package/dist/agents/org-templates.d.ts +176 -0
  29. package/dist/agents/org-templates.js +827 -0
  30. package/dist/agents/pending-connector-requests.d.ts +77 -0
  31. package/dist/agents/pending-connector-requests.js +215 -0
  32. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  33. package/dist/agents/pending-connectors.controller.js +91 -0
  34. package/dist/agents/pending-connectors.service.d.ts +62 -0
  35. package/dist/agents/pending-connectors.service.js +282 -0
  36. package/dist/agents/readiness.controller.d.ts +5 -5
  37. package/dist/agents/readiness.controller.js +6 -6
  38. package/dist/agents/templates.controller.d.ts +86 -5
  39. package/dist/agents/templates.controller.js +171 -7
  40. package/dist/agents/templates.d.ts +127 -23
  41. package/dist/agents/templates.js +475 -52
  42. package/dist/background/background.module.js +8 -1
  43. package/dist/background/finish.d.ts +3 -2
  44. package/dist/background/launch-lock.d.ts +4 -3
  45. package/dist/background/launch-lock.js +4 -3
  46. package/dist/background/poll.job.d.ts +9 -6
  47. package/dist/background/poll.job.js +30 -22
  48. package/dist/background/session.d.ts +13 -2
  49. package/dist/background/session.js +13 -0
  50. package/dist/background/stop.d.ts +12 -6
  51. package/dist/background/stop.js +57 -39
  52. package/dist/background/store.d.ts +18 -6
  53. package/dist/background/store.js +12 -6
  54. package/dist/background/tasks.service.d.ts +15 -5
  55. package/dist/background/tasks.service.js +42 -17
  56. package/dist/background/wake-rules.d.ts +27 -18
  57. package/dist/background/wake-rules.js +52 -22
  58. package/dist/background/wake.d.ts +13 -11
  59. package/dist/background/wake.js +20 -14
  60. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  61. package/dist/catalog/admin-catalog.controller.js +213 -42
  62. package/dist/catalog/catalog-content.d.ts +58 -32
  63. package/dist/catalog/catalog-content.js +34 -8
  64. package/dist/catalog/catalog-import.module.d.ts +7 -0
  65. package/dist/catalog/catalog-import.module.js +60 -0
  66. package/dist/catalog/catalog-items.d.ts +111 -7
  67. package/dist/catalog/catalog-items.js +279 -13
  68. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  69. package/dist/catalog/catalog-scope.service.js +1116 -0
  70. package/dist/catalog/catalog.module.d.ts +7 -9
  71. package/dist/catalog/catalog.module.js +41 -31
  72. package/dist/catalog/catalog.service.d.ts +101 -29
  73. package/dist/catalog/catalog.service.js +104 -106
  74. package/dist/catalog/cli.d.ts +11 -1
  75. package/dist/catalog/cli.js +26 -1
  76. package/dist/catalog/component-promotion.d.ts +96 -0
  77. package/dist/catalog/component-promotion.js +395 -0
  78. package/dist/catalog/component-scope.controller.d.ts +152 -0
  79. package/dist/catalog/component-scope.controller.js +287 -0
  80. package/dist/catalog/component-scope.service.d.ts +303 -0
  81. package/dist/catalog/component-scope.service.js +936 -0
  82. package/dist/catalog/component-state.d.ts +174 -0
  83. package/dist/catalog/component-state.js +437 -0
  84. package/dist/catalog/job-ids.d.ts +30 -0
  85. package/dist/catalog/job-ids.js +25 -0
  86. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  87. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  88. package/dist/catalog/marketplaces.controller.js +56 -7
  89. package/dist/catalog/marketplaces.service.d.ts +54 -14
  90. package/dist/catalog/marketplaces.service.js +71 -22
  91. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  92. package/dist/catalog/org-catalog.controller.js +181 -65
  93. package/dist/catalog/org-catalog.service.d.ts +65 -33
  94. package/dist/catalog/org-catalog.service.js +324 -157
  95. package/dist/catalog/org-extension-switch.d.ts +41 -0
  96. package/dist/catalog/org-extension-switch.js +115 -0
  97. package/dist/catalog/org-extension.controller.d.ts +119 -0
  98. package/dist/catalog/org-extension.controller.js +266 -0
  99. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  100. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  101. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  102. package/dist/catalog/org-plugin-uploads.js +116 -0
  103. package/dist/catalog/owned-items.d.ts +184 -0
  104. package/dist/catalog/owned-items.js +789 -0
  105. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  106. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  107. package/dist/catalog/ownership.d.ts +172 -0
  108. package/dist/catalog/ownership.js +326 -0
  109. package/dist/catalog/platform-components.d.ts +221 -0
  110. package/dist/catalog/platform-components.js +761 -0
  111. package/dist/catalog/platform-migration.d.ts +115 -0
  112. package/dist/catalog/platform-migration.js +582 -0
  113. package/dist/catalog/plugin-import.d.ts +178 -34
  114. package/dist/catalog/plugin-import.js +622 -82
  115. package/dist/catalog/plugin-install.d.ts +185 -41
  116. package/dist/catalog/plugin-install.js +758 -126
  117. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  118. package/dist/catalog/plugin-upgrade.js +1147 -1136
  119. package/dist/catalog/request-rules.d.ts +65 -0
  120. package/dist/catalog/request-rules.js +217 -0
  121. package/dist/catalog/requests.service.d.ts +193 -118
  122. package/dist/catalog/requests.service.js +526 -343
  123. package/dist/catalog/reserved-names.d.ts +8 -0
  124. package/dist/catalog/reserved-names.js +42 -0
  125. package/dist/catalog/scope-orgs.d.ts +21 -0
  126. package/dist/catalog/scope-orgs.js +67 -0
  127. package/dist/catalog/scope-state.d.ts +35 -0
  128. package/dist/catalog/scope-state.js +87 -0
  129. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  130. package/dist/catalog/scope-sync-workers.js +29 -0
  131. package/dist/catalog/scope-sync.d.ts +176 -0
  132. package/dist/catalog/scope-sync.js +576 -0
  133. package/dist/catalog/scope.d.ts +42 -0
  134. package/dist/catalog/scope.js +42 -0
  135. package/dist/catalog/unshare.d.ts +22 -0
  136. package/dist/catalog/unshare.js +118 -0
  137. package/dist/channels/actions.js +1 -0
  138. package/dist/channels/cards.js +20 -2
  139. package/dist/channels/channels.module.js +2 -0
  140. package/dist/channels/inbound.d.ts +9 -1
  141. package/dist/channels/inbound.js +67 -5
  142. package/dist/channels/phrases.d.ts +35 -0
  143. package/dist/channels/phrases.js +29 -0
  144. package/dist/config/docs.js +3 -1
  145. package/dist/config/schema.d.ts +10 -2
  146. package/dist/config/schema.js +70 -22
  147. package/dist/conversations/access.d.ts +6 -4
  148. package/dist/conversations/access.js +27 -5
  149. package/dist/conversations/agent-tree.d.ts +46 -0
  150. package/dist/conversations/agent-tree.js +92 -0
  151. package/dist/conversations/conversations.controller.d.ts +43 -18
  152. package/dist/conversations/conversations.controller.js +79 -38
  153. package/dist/conversations/conversations.module.d.ts +1 -1
  154. package/dist/conversations/conversations.module.js +7 -7
  155. package/dist/conversations/conversations.service.d.ts +73 -15
  156. package/dist/conversations/conversations.service.js +115 -35
  157. package/dist/conversations/environment-status.d.ts +24 -0
  158. package/dist/conversations/environment-status.js +71 -0
  159. package/dist/conversations/event-log.d.ts +20 -5
  160. package/dist/conversations/event-log.js +60 -0
  161. package/dist/conversations/events.d.ts +84 -2
  162. package/dist/conversations/events.js +91 -17
  163. package/dist/conversations/queue.service.d.ts +1 -1
  164. package/dist/conversations/queue.service.js +5 -0
  165. package/dist/conversations/titles.d.ts +5 -3
  166. package/dist/conversations/titles.js +21 -8
  167. package/dist/conversations/tree.d.ts +17 -0
  168. package/dist/conversations/tree.js +42 -0
  169. package/dist/ctx/create-ctx.d.ts +20 -1
  170. package/dist/ctx/create-ctx.js +38 -7
  171. package/dist/db/kernel-schema.d.ts +386 -18
  172. package/dist/environments/access.d.ts +41 -0
  173. package/dist/environments/access.js +77 -0
  174. package/dist/environments/conversation-environments.d.ts +61 -0
  175. package/dist/environments/conversation-environments.js +170 -0
  176. package/dist/environments/dto.d.ts +25 -0
  177. package/dist/environments/dto.js +12 -0
  178. package/dist/environments/environments.controller.d.ts +33 -0
  179. package/dist/environments/environments.controller.js +110 -0
  180. package/dist/environments/environments.module.d.ts +8 -0
  181. package/dist/environments/environments.module.js +27 -0
  182. package/dist/environments/environments.service.d.ts +153 -0
  183. package/dist/environments/environments.service.js +541 -0
  184. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  185. package/dist/environments/legacy-cleanup.job.js +141 -0
  186. package/dist/errors.d.ts +85 -2
  187. package/dist/errors.js +85 -2
  188. package/dist/evals/reconstruct.d.ts +18 -9
  189. package/dist/evals/reconstruct.js +26 -7
  190. package/dist/evals/run-replay.d.ts +4 -2
  191. package/dist/evals/run-replay.js +20 -6
  192. package/dist/evals/runs.service.d.ts +2 -1
  193. package/dist/evals/runs.service.js +13 -12
  194. package/dist/evals/step-replay.d.ts +4 -6
  195. package/dist/evals/step-replay.js +4 -3
  196. package/dist/evals/trajectory.service.d.ts +8 -3
  197. package/dist/evals/trajectory.service.js +26 -14
  198. package/dist/evals/worker.d.ts +5 -5
  199. package/dist/evals/worker.js +9 -3
  200. package/dist/extensions/admin-ops.d.ts +36 -10
  201. package/dist/extensions/admin-ops.js +65 -42
  202. package/dist/extensions/admin-view.d.ts +37 -10
  203. package/dist/extensions/admin-view.js +103 -20
  204. package/dist/extensions/bootstrap.d.ts +17 -4
  205. package/dist/extensions/bootstrap.js +70 -9
  206. package/dist/extensions/cli.d.ts +12 -0
  207. package/dist/extensions/cli.js +11 -2
  208. package/dist/extensions/config-hash.d.ts +10 -0
  209. package/dist/extensions/config-hash.js +38 -0
  210. package/dist/extensions/deployment-config.d.ts +28 -5
  211. package/dist/extensions/deployment-config.js +48 -7
  212. package/dist/extensions/effective-config.d.ts +127 -0
  213. package/dist/extensions/effective-config.js +368 -0
  214. package/dist/extensions/extensions.module.js +11 -11
  215. package/dist/extensions/hooks.d.ts +37 -4
  216. package/dist/extensions/hooks.js +82 -16
  217. package/dist/extensions/host.d.ts +24 -10
  218. package/dist/extensions/host.js +49 -54
  219. package/dist/extensions/installs.d.ts +20 -8
  220. package/dist/extensions/installs.js +37 -15
  221. package/dist/extensions/org-config.d.ts +75 -6
  222. package/dist/extensions/org-config.js +184 -32
  223. package/dist/extensions/org-levels.d.ts +37 -0
  224. package/dist/extensions/org-levels.js +71 -0
  225. package/dist/extensions/org-overrides.d.ts +151 -0
  226. package/dist/extensions/org-overrides.js +524 -0
  227. package/dist/extensions/permission-view.d.ts +16 -4
  228. package/dist/extensions/permission-view.js +4 -4
  229. package/dist/extensions/plugin-items.d.ts +21 -0
  230. package/dist/extensions/plugin-items.js +42 -0
  231. package/dist/extensions/point-defaults.d.ts +12 -5
  232. package/dist/extensions/point-defaults.js +37 -9
  233. package/dist/extensions/resolve.d.ts +5 -1
  234. package/dist/extensions/resolve.js +15 -2
  235. package/dist/extensions/state.module.d.ts +9 -0
  236. package/dist/extensions/state.module.js +38 -0
  237. package/dist/files/previewers.d.ts +8 -1
  238. package/dist/files/previewers.js +35 -6
  239. package/dist/http/api.module.js +25 -3
  240. package/dist/http/app.d.ts +11 -2
  241. package/dist/http/app.js +31 -5
  242. package/dist/http/plugin-dispatch.d.ts +4 -1
  243. package/dist/http/plugin-dispatch.js +14 -2
  244. package/dist/identity/accounts.d.ts +29 -29
  245. package/dist/identity/accounts.js +47 -47
  246. package/dist/identity/audit.d.ts +2 -1
  247. package/dist/identity/auth.guard.d.ts +13 -5
  248. package/dist/identity/auth.guard.js +26 -9
  249. package/dist/identity/identity.module.d.ts +1 -1
  250. package/dist/identity/identity.module.js +4 -4
  251. package/dist/identity/me.controller.js +1 -1
  252. package/dist/identity/principal.d.ts +3 -3
  253. package/dist/identity/principal.js +3 -3
  254. package/dist/identity/settings.d.ts +22 -11
  255. package/dist/identity/settings.js +53 -18
  256. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  257. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  258. package/dist/inbox/inbox.module.d.ts +4 -1
  259. package/dist/inbox/inbox.module.js +7 -3
  260. package/dist/inbox/inbox.service.d.ts +62 -3
  261. package/dist/inbox/inbox.service.js +74 -4
  262. package/dist/inbox/org-notices.d.ts +63 -0
  263. package/dist/inbox/org-notices.js +91 -0
  264. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  265. package/dist/inbox/platform-inbox.controller.js +58 -0
  266. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  267. package/dist/inbox/platform-inbox.service.js +263 -0
  268. package/dist/inbox/platform-notices.d.ts +19 -0
  269. package/dist/inbox/platform-notices.js +9 -0
  270. package/dist/index.d.ts +1 -1
  271. package/dist/index.js +1 -1
  272. package/dist/infra/cli/kernel-cli.module.js +9 -1
  273. package/dist/infra/config/kernel-config.service.js +24 -1
  274. package/dist/infra/database/xact-lock.d.ts +1 -1
  275. package/dist/infra/database/xact-lock.js +1 -1
  276. package/dist/infra/events/kernel-events.d.ts +19 -2
  277. package/dist/infra/queue/add-job-once.d.ts +14 -0
  278. package/dist/infra/queue/add-job-once.js +16 -0
  279. package/dist/kernel.module.js +6 -0
  280. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  281. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  282. package/dist/models/embeddings.d.ts +82 -0
  283. package/dist/models/embeddings.js +326 -0
  284. package/dist/models/enablement.controller.d.ts +40 -0
  285. package/dist/models/enablement.controller.js +74 -0
  286. package/dist/models/enablement.d.ts +99 -0
  287. package/dist/models/enablement.js +263 -0
  288. package/dist/models/models.module.d.ts +5 -1
  289. package/dist/models/models.module.js +16 -4
  290. package/dist/models/prices.d.ts +5 -5
  291. package/dist/models/prices.js +4 -4
  292. package/dist/models/purposes.controller.d.ts +6 -4
  293. package/dist/models/purposes.controller.js +13 -7
  294. package/dist/models/purposes.d.ts +37 -12
  295. package/dist/models/purposes.js +63 -17
  296. package/dist/orgs/directory-sync.d.ts +14 -5
  297. package/dist/orgs/directory-sync.js +41 -17
  298. package/dist/orgs/offboarding.d.ts +9 -7
  299. package/dist/orgs/offboarding.js +28 -17
  300. package/dist/orgs/org-lock.d.ts +5 -0
  301. package/dist/orgs/org-lock.js +13 -0
  302. package/dist/orgs/org.guard.d.ts +10 -0
  303. package/dist/orgs/org.guard.js +43 -32
  304. package/dist/orgs/orgs.module.js +3 -0
  305. package/dist/orgs/orgs.service.d.ts +20 -7
  306. package/dist/orgs/orgs.service.js +32 -12
  307. package/dist/orgs/roles.d.ts +1 -1
  308. package/dist/orgs/roles.js +5 -1
  309. package/dist/orgs/settings.controller.d.ts +1 -1
  310. package/dist/orgs/settings.service.d.ts +15 -3
  311. package/dist/orgs/settings.service.js +6 -2
  312. package/dist/overrides.d.ts +3 -0
  313. package/dist/overrides.js +2 -0
  314. package/dist/platform/actor.d.ts +48 -0
  315. package/dist/platform/actor.js +100 -0
  316. package/dist/platform/agent-docs.d.ts +18 -0
  317. package/dist/platform/agent-docs.js +59 -0
  318. package/dist/platform/availability.d.ts +14 -0
  319. package/dist/platform/availability.js +43 -0
  320. package/dist/platform/errors.d.ts +11 -0
  321. package/dist/platform/errors.js +26 -0
  322. package/dist/platform/exclusions.d.ts +12 -0
  323. package/dist/platform/exclusions.js +1405 -0
  324. package/dist/platform/method.d.ts +6 -0
  325. package/dist/platform/method.js +15 -0
  326. package/dist/platform/operation.d.ts +92 -0
  327. package/dist/platform/operation.js +35 -0
  328. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  329. package/dist/platform/ops/agent-templates.ops.js +92 -0
  330. package/dist/platform/ops/agents.ops.d.ts +19 -0
  331. package/dist/platform/ops/agents.ops.js +294 -0
  332. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  333. package/dist/platform/ops/connectors.ops.js +126 -0
  334. package/dist/platform/ops/errors.d.ts +11 -0
  335. package/dist/platform/ops/errors.js +22 -0
  336. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  337. package/dist/platform/ops/extensions.ops.js +116 -0
  338. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  339. package/dist/platform/ops/marketplaces.ops.js +157 -0
  340. package/dist/platform/ops/paging.d.ts +14 -0
  341. package/dist/platform/ops/paging.js +20 -0
  342. package/dist/platform/ops/platform.ops.d.ts +23 -0
  343. package/dist/platform/ops/platform.ops.js +158 -0
  344. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  345. package/dist/platform/ops/plugins.ops.js +377 -0
  346. package/dist/platform/ops/requests.ops.d.ts +14 -0
  347. package/dist/platform/ops/requests.ops.js +153 -0
  348. package/dist/platform/ops/role.d.ts +4 -0
  349. package/dist/platform/ops/role.js +10 -0
  350. package/dist/platform/ops/skills.ops.d.ts +13 -0
  351. package/dist/platform/ops/skills.ops.js +98 -0
  352. package/dist/platform/ops/summary.d.ts +10 -0
  353. package/dist/platform/ops/summary.js +18 -0
  354. package/dist/platform/platform-ops.module.d.ts +7 -0
  355. package/dist/platform/platform-ops.module.js +55 -0
  356. package/dist/platform/platform.module.d.ts +8 -0
  357. package/dist/platform/platform.module.js +25 -0
  358. package/dist/platform/redact-orgs.d.ts +7 -0
  359. package/dist/platform/redact-orgs.js +52 -0
  360. package/dist/platform/registry.d.ts +30 -0
  361. package/dist/platform/registry.js +111 -0
  362. package/dist/roles/worker-role.d.ts +6 -4
  363. package/dist/roles/worker-role.js +14 -7
  364. package/dist/roles/worker.module.d.ts +1 -1
  365. package/dist/roles/worker.module.js +9 -1
  366. package/dist/runtime/context/build.d.ts +6 -4
  367. package/dist/runtime/context/build.js +26 -7
  368. package/dist/runtime/context/claude-tools.d.ts +2 -1
  369. package/dist/runtime/context/claude-tools.js +5 -4
  370. package/dist/runtime/context/compaction.js +9 -0
  371. package/dist/runtime/context/reminders.d.ts +2 -0
  372. package/dist/runtime/context/reminders.js +2 -0
  373. package/dist/runtime/context/skills.js +9 -2
  374. package/dist/runtime/context/tool-changes.d.ts +27 -0
  375. package/dist/runtime/context/tool-changes.js +60 -0
  376. package/dist/runtime/hook-calls.d.ts +8 -1
  377. package/dist/runtime/hook-calls.js +40 -7
  378. package/dist/runtime/langgraph-loop.d.ts +3 -1
  379. package/dist/runtime/langgraph-loop.js +35 -17
  380. package/dist/runtime/loop.d.ts +32 -4
  381. package/dist/runtime/maintenance.d.ts +7 -4
  382. package/dist/runtime/maintenance.js +23 -8
  383. package/dist/runtime/model-call.d.ts +38 -11
  384. package/dist/runtime/model-call.js +97 -24
  385. package/dist/runtime/providers.d.ts +146 -32
  386. package/dist/runtime/providers.js +321 -67
  387. package/dist/runtime/run-control.d.ts +11 -1
  388. package/dist/runtime/run-control.js +12 -0
  389. package/dist/runtime/run-drafts.d.ts +85 -0
  390. package/dist/runtime/run-drafts.js +230 -0
  391. package/dist/runtime/run-jobs.d.ts +3 -5
  392. package/dist/runtime/run-jobs.js +3 -7
  393. package/dist/runtime/run-queue.d.ts +37 -3
  394. package/dist/runtime/run-queue.js +188 -11
  395. package/dist/runtime/run-worker.d.ts +12 -6
  396. package/dist/runtime/run-worker.js +58 -35
  397. package/dist/runtime/runtime.module.js +3 -0
  398. package/dist/runtime/step-log.d.ts +9 -4
  399. package/dist/runtime/step-log.js +8 -5
  400. package/dist/runtime/stream.controller.d.ts +23 -1
  401. package/dist/runtime/stream.controller.js +60 -3
  402. package/dist/runtime/stream.d.ts +4 -1
  403. package/dist/runtime/stream.js +27 -3
  404. package/dist/runtime/subagents/child.d.ts +55 -7
  405. package/dist/runtime/subagents/child.js +105 -7
  406. package/dist/runtime/subagents/definition.d.ts +12 -3
  407. package/dist/runtime/subagents/definition.js +46 -32
  408. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  409. package/dist/runtime/subagents/deliveries.js +228 -0
  410. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  411. package/dist/runtime/subagents/dispatch.js +212 -141
  412. package/dist/runtime/subagents/limits.d.ts +24 -5
  413. package/dist/runtime/subagents/limits.js +40 -6
  414. package/dist/runtime/subagents/messages.d.ts +95 -0
  415. package/dist/runtime/subagents/messages.js +328 -0
  416. package/dist/runtime/subagents/preamble.d.ts +4 -4
  417. package/dist/runtime/subagents/preamble.js +9 -7
  418. package/dist/runtime/subagents/progress.d.ts +8 -6
  419. package/dist/runtime/subagents/progress.js +11 -6
  420. package/dist/runtime/subagents/render.d.ts +30 -0
  421. package/dist/runtime/subagents/render.js +53 -0
  422. package/dist/runtime/subagents/roster.d.ts +24 -7
  423. package/dist/runtime/subagents/roster.js +47 -11
  424. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  425. package/dist/runtime/subagents/skill-fork.js +8 -4
  426. package/dist/runtime/subagents/status.d.ts +14 -0
  427. package/dist/runtime/subagents/status.js +23 -0
  428. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  429. package/dist/runtime/subagents/subagents.service.js +11 -6
  430. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  431. package/dist/runtime/usage-report-jobs.js +158 -0
  432. package/dist/runtime/usage-report.d.ts +33 -38
  433. package/dist/runtime/usage-report.js +169 -96
  434. package/dist/runtime/waits.d.ts +140 -37
  435. package/dist/runtime/waits.js +394 -106
  436. package/dist/sandbox/jobs.d.ts +40 -13
  437. package/dist/sandbox/jobs.js +57 -20
  438. package/dist/sandbox/leases.d.ts +37 -54
  439. package/dist/sandbox/leases.js +71 -115
  440. package/dist/sandbox/providers.d.ts +2 -2
  441. package/dist/sandbox/providers.js +1 -1
  442. package/dist/sandbox/sandbox.module.d.ts +3 -2
  443. package/dist/sandbox/sandbox.module.js +4 -3
  444. package/dist/sandbox/sandbox.service.d.ts +229 -134
  445. package/dist/sandbox/sandbox.service.js +630 -409
  446. package/dist/skills/catalog.d.ts +3 -2
  447. package/dist/skills/catalog.js +21 -43
  448. package/dist/skills/changes.controller.d.ts +7 -0
  449. package/dist/skills/changes.controller.js +19 -1
  450. package/dist/skills/invoke.js +8 -3
  451. package/dist/skills/package.d.ts +20 -1
  452. package/dist/skills/package.js +28 -1
  453. package/dist/skills/skills.controller.d.ts +39 -4
  454. package/dist/skills/skills.controller.js +88 -10
  455. package/dist/skills/skills.module.js +10 -1
  456. package/dist/skills/skills.service.d.ts +106 -26
  457. package/dist/skills/skills.service.js +421 -75
  458. package/dist/skills/usable.d.ts +81 -0
  459. package/dist/skills/usable.js +379 -0
  460. package/dist/tools/approvals.service.d.ts +20 -2
  461. package/dist/tools/approvals.service.js +23 -4
  462. package/dist/tools/builtin-names.d.ts +21 -5
  463. package/dist/tools/builtin-names.js +30 -5
  464. package/dist/tools/builtins/agent.d.ts +23 -21
  465. package/dist/tools/builtins/agent.js +62 -55
  466. package/dist/tools/builtins/builtin-tools.d.ts +6 -2
  467. package/dist/tools/builtins/builtin-tools.js +37 -12
  468. package/dist/tools/builtins/handback.d.ts +28 -0
  469. package/dist/tools/builtins/handback.js +53 -0
  470. package/dist/tools/builtins/platform.d.ts +34 -0
  471. package/dist/tools/builtins/platform.js +362 -0
  472. package/dist/tools/builtins/sandbox/bash.js +13 -3
  473. package/dist/tools/builtins/sandbox/common.d.ts +43 -24
  474. package/dist/tools/builtins/sandbox/common.js +80 -45
  475. package/dist/tools/builtins/sandbox/edit.js +2 -2
  476. package/dist/tools/builtins/sandbox/glob.js +2 -2
  477. package/dist/tools/builtins/sandbox/grep.js +2 -4
  478. package/dist/tools/builtins/sandbox/index.d.ts +1 -1
  479. package/dist/tools/builtins/sandbox/index.js +1 -1
  480. package/dist/tools/builtins/sandbox/read.js +1 -1
  481. package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
  482. package/dist/tools/builtins/sandbox/task-output.js +30 -5
  483. package/dist/tools/builtins/sandbox/task-stop.js +2 -1
  484. package/dist/tools/builtins/sandbox/write.js +2 -2
  485. package/dist/tools/builtins/send-message.d.ts +56 -0
  486. package/dist/tools/builtins/send-message.js +100 -0
  487. package/dist/tools/builtins/skill-load.d.ts +22 -14
  488. package/dist/tools/builtins/skill-load.js +86 -57
  489. package/dist/tools/builtins/skill-write.js +1 -1
  490. package/dist/tools/builtins/web/extract.js +5 -1
  491. package/dist/tools/builtins/web/fetch.js +1 -0
  492. package/dist/tools/builtins/web/search.js +1 -0
  493. package/dist/tools/connectors.controller.d.ts +10 -0
  494. package/dist/tools/connectors.controller.js +12 -0
  495. package/dist/tools/connectors.service.d.ts +46 -5
  496. package/dist/tools/connectors.service.js +94 -15
  497. package/dist/tools/extension-tools.controller.d.ts +14 -0
  498. package/dist/tools/extension-tools.controller.js +37 -0
  499. package/dist/tools/info.d.ts +42 -1
  500. package/dist/tools/info.js +64 -1
  501. package/dist/tools/org-tool-switches.d.ts +74 -0
  502. package/dist/tools/org-tool-switches.js +184 -0
  503. package/dist/tools/pipeline.d.ts +46 -40
  504. package/dist/tools/pipeline.js +193 -364
  505. package/dist/tools/policy.d.ts +1 -1
  506. package/dist/tools/policy.js +36 -16
  507. package/dist/tools/registry.d.ts +98 -5
  508. package/dist/tools/registry.js +87 -9
  509. package/dist/tools/tools.module.js +12 -2
  510. package/dist/ui/views.d.ts +2 -1
  511. package/dist/ui/views.js +17 -3
  512. package/package.json +3 -3
  513. package/src/migrations/0074_subagent_tree.sql +50 -0
  514. package/src/migrations/0075_plugin_scope.sql +61 -0
  515. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  516. package/src/migrations/0077_scope_requests.sql +52 -0
  517. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  518. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  519. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  520. package/src/migrations/0081_platform_components.sql +129 -0
  521. package/src/migrations/0082_platform_migration.sql +33 -0
  522. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  523. package/src/migrations/0084_org_owned_items.sql +85 -0
  524. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  525. package/src/migrations/0086_org_layering.sql +30 -0
  526. package/src/migrations/0087_approval_summary.sql +6 -0
  527. package/src/migrations/0088_environments.sql +80 -0
  528. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  529. package/dist/catalog/upgrade-targets.d.ts +0 -56
  530. package/dist/catalog/upgrade-targets.js +0 -90
  531. package/dist/conversations/sandbox-status.d.ts +0 -24
  532. package/dist/conversations/sandbox-status.js +0 -52
  533. package/dist/extensions/org-config.controller.d.ts +0 -32
  534. package/dist/extensions/org-config.controller.js +0 -70
package/dist/index.d.ts CHANGED
@@ -71,4 +71,4 @@ export { SANDBOX_DESTROY_JOB, SANDBOX_SUSPEND_JOB, } from "./sandbox/jobs.js";
71
71
  export { SANDBOX_LOCK_TTL_MS, SandboxService, type SandboxUseInfo, } from "./sandbox/sandbox.service.js";
72
72
  export { MAX_STORAGE_KEY_BYTES, StorageKeyError, } from "./storage/prefix.js";
73
73
  export { PrefixedStorage, StorageService, type StorageSource, } from "./storage/storage.service.js";
74
- export { SANDBOX_RECREATED_NOTICE, SANDBOX_STARTED_NOTICE, } from "./tools/builtins/sandbox/common.js";
74
+ export { SANDBOX_RESTARTED_NOTICE, SANDBOX_STARTED_NOTICE, } from "./tools/builtins/sandbox/common.js";
package/dist/index.js CHANGED
@@ -67,4 +67,4 @@ export { SANDBOX_DESTROY_JOB, SANDBOX_SUSPEND_JOB, } from "./sandbox/jobs.js";
67
67
  export { SANDBOX_LOCK_TTL_MS, SandboxService, } from "./sandbox/sandbox.service.js";
68
68
  export { MAX_STORAGE_KEY_BYTES, StorageKeyError, } from "./storage/prefix.js";
69
69
  export { PrefixedStorage, StorageService, } from "./storage/storage.service.js";
70
- export { SANDBOX_RECREATED_NOTICE, SANDBOX_STARTED_NOTICE, } from "./tools/builtins/sandbox/common.js";
70
+ export { SANDBOX_RESTARTED_NOTICE, SANDBOX_STARTED_NOTICE, } from "./tools/builtins/sandbox/common.js";
@@ -13,6 +13,7 @@ import { NestFactory } from "@nestjs/core";
13
13
  import { Redis } from "ioredis";
14
14
  import { createBus } from "../../ctx/bus.js";
15
15
  import { KERNEL_APP_OPTIONS } from "../../lifecycle/tokens.js";
16
+ import { CacheModule } from "../cache/cache.module.js";
16
17
  import { ConfigModule } from "../config/config.module.js";
17
18
  import { KernelConfigService } from "../config/kernel-config.service.js";
18
19
  import { DatabaseModule } from "../database/database.module.js";
@@ -20,6 +21,7 @@ import { KernelEventsModule } from "../events/kernel-events.js";
20
21
  import { GracefulShutdownModule } from "../lifecycle/graceful-shutdown.module.js";
21
22
  import { LockModule } from "../lock/lock.module.js";
22
23
  import { LoggingModule } from "../logging/logging.module.js";
24
+ import { QueueModule } from "../queue/queue.module.js";
23
25
  import { KERNEL_BUS, KERNEL_LOGGER, REDIS, REDIS_SUBSCRIBER } from "../tokens.js";
24
26
  /** How long the CLI's Redis connection may take before a command fails (a publish only warns). */
25
27
  const CLI_REDIS_CONNECT_TIMEOUT_MS = 3_000;
@@ -108,7 +110,13 @@ let KernelCliModule = KernelCliModule_1 = class KernelCliModule {
108
110
  ConfigModule.forRoot(config, opts.env !== undefined ? { env: opts.env } : {}),
109
111
  GracefulShutdownModule,
110
112
  DatabaseModule.forRoot(),
111
- ...(opts.redis === false ? [] : [CliRedisModule, LockModule]),
113
+ // QueueModule's root gives the queues a command's modules register (the catalog's scope
114
+ // sync and maintenance queues) the configured Redis; without it BullMQ would connect to
115
+ // its default 127.0.0.1:6379
116
+ // CacheModule: `@Cacheable` providers of the domain modules (EffectiveConfigs) need it
117
+ ...(opts.redis === false
118
+ ? []
119
+ : [CliRedisModule, LockModule, CacheModule, QueueModule.forRoot()]),
112
120
  KernelEventsModule,
113
121
  ...opts.modules,
114
122
  ],
@@ -28,10 +28,16 @@ const HOT_APPLIERS = {
28
28
  "auth.trustedIdentitySources": () => { },
29
29
  // The hook registry reads the time limit on every run.
30
30
  "hooks.timeoutMs": () => { },
31
+ // The provider registry reads the list time limit at every listModels call.
32
+ "models.listTimeoutMs": () => { },
33
+ "models.embedTimeoutMs": () => { },
31
34
  // SandboxService reads the shared-lease cap at every acquisition.
32
35
  "sandbox.maxConcurrentCommands": () => { },
36
+ // The environments service reads the personal limit at every create.
37
+ "environments.maxPersonal": () => { },
33
38
  // Sub-agent limits are read at every dispatch, child step and tool resolution.
34
- "subagents.maxConcurrentPerRun": () => { },
39
+ "subagents.maxDepth": () => { },
40
+ "subagents.maxConcurrentPerConversation": () => { },
35
41
  "subagents.maxDispatchesPerRun": () => { },
36
42
  "subagents.maxTokensPerRun": () => { },
37
43
  // The web tools read these limits through the config service on every call.
@@ -41,6 +47,18 @@ const HOT_APPLIERS = {
41
47
  "web.fetch.cacheSeconds": () => { },
42
48
  "web.fetch.timeoutMs": () => { },
43
49
  };
50
+ /**
51
+ * Environment variables of renamed config keys, with their replacements: warned about once when
52
+ * the service starts (agent map spec §6: `subagents.maxConcurrentPerRun` became
53
+ * `subagents.maxConcurrentPerConversation`). A retired file or Nacos key cannot be told here: the
54
+ * schema strips unknown keys before the kernel receives its config.
55
+ */
56
+ const RETIRED_ENV = [
57
+ [
58
+ "CAPYBARA_SUBAGENTS__MAX_CONCURRENT_PER_RUN",
59
+ "CAPYBARA_SUBAGENTS__MAX_CONCURRENT_PER_CONVERSATION",
60
+ ],
61
+ ];
44
62
  const HOT_PATHS = configFields(KernelConfigSchema)
45
63
  .filter((f) => f.meta?.hot)
46
64
  .map((f) => f.path);
@@ -61,6 +79,11 @@ let KernelConfigService = class KernelConfigService {
61
79
  this.env = input.env ?? process.env;
62
80
  log.setLevel(input.config.log.level);
63
81
  log.addSecrets(secretValues(KernelConfigSchema, input.config));
82
+ for (const [old, now] of RETIRED_ENV) {
83
+ if (this.env[old] !== undefined) {
84
+ log.warn(`${old} is no longer read and is ignored; set ${now} instead`, { env: old });
85
+ }
86
+ }
64
87
  }
65
88
  get() {
66
89
  return this.current;
@@ -4,7 +4,7 @@ import { TransactionHost } from "./transaction-host.js";
4
4
  * Transaction-scoped advisory locks (decision R9 of the Nest kernel spec): `pg_advisory_xact_lock`
5
5
  * is transaction semantics, like `FOR UPDATE`. It is held by the caller's transaction and released
6
6
  * at its COMMIT or ROLLBACK, so it serializes writers whose invariant is checked inside that same
7
- * transaction ("never zero active enterprise admins", "set up once", "one account per external
7
+ * transaction ("never zero active super admins", "set up once", "one account per external
8
8
  * identity"). The one place that takes such a lock; `propagation: "mandatory"` makes a call outside
9
9
  * a transaction (where the lock would be released at once) throw.
10
10
  */
@@ -16,7 +16,7 @@ import { Transactional } from "./transactional.decorator.js";
16
16
  * Transaction-scoped advisory locks (decision R9 of the Nest kernel spec): `pg_advisory_xact_lock`
17
17
  * is transaction semantics, like `FOR UPDATE`. It is held by the caller's transaction and released
18
18
  * at its COMMIT or ROLLBACK, so it serializes writers whose invariant is checked inside that same
19
- * transaction ("never zero active enterprise admins", "set up once", "one account per external
19
+ * transaction ("never zero active super admins", "set up once", "one account per external
20
20
  * identity"). The one place that takes such a lock; `propagation: "mandatory"` makes a call outside
21
21
  * a transaction (where the lock would be released at once) throw.
22
22
  */
@@ -72,12 +72,21 @@ export interface KernelEventMap {
72
72
  runId: string;
73
73
  };
74
74
  /**
75
- * `ensureRun` marked an orphaned run failed (after the commit): the waits stop its active
76
- * sub-agents at once. A lost event is repaired by the wait sweep (children of finished runs).
75
+ * `ensureRun` marked an orphaned run failed (after the commit): the waits stop its active fork
76
+ * sub-agent at once (background sub-agents keep running, agent map spec §5.4). A lost event is
77
+ * repaired by the wait sweep (fork children of finished runs).
77
78
  */
78
79
  "run.orphaned": {
79
80
  runId: string;
80
81
  };
82
+ /**
83
+ * A sub-agent's `subagent_delivery` was appended to its parent conversation (after the commit;
84
+ * `SubagentDeliveries`). Waking an idle parent follows it; a lost event is re-derived by the
85
+ * next `ensureRun` (a message, the end of a run, a page opening).
86
+ */
87
+ "subagent.delivered": {
88
+ conversationId: string;
89
+ };
81
90
  /**
82
91
  * A background task of the conversation finished (after the commit of its
83
92
  * `background_task_finished` event). `BackgroundWake` asks the run queue for a wake run; a lost
@@ -86,6 +95,14 @@ export interface KernelEventMap {
86
95
  "background_task.finished": {
87
96
  conversationId: string;
88
97
  };
98
+ /**
99
+ * An extension's `ctx.models.embed` call wrote a `model_usage` row (after the commit, spec B
100
+ * §5.4). The usage reporter enqueues its `usage.report` delivery; a lost event is re-derived by
101
+ * the usage sweep (rows whose `reported_at` is still null).
102
+ */
103
+ "model_usage.recorded": {
104
+ id: string;
105
+ };
89
106
  }
90
107
  type Handler<K extends keyof KernelEventMap> = (payload: KernelEventMap[K]) => Promise<void> | void;
91
108
  /** Typed in-process event emitter; handlers run in order, a failing one is logged and skipped. */
@@ -0,0 +1,14 @@
1
+ import { type JobsOptions } from "bullmq";
2
+ import type { Redis } from "ioredis";
3
+ /** One job to add: its name, data and options (a deterministic `jobId` makes the add idempotent). */
4
+ export interface OneJob<T> {
5
+ name: string;
6
+ data: T;
7
+ opts: JobsOptions;
8
+ }
9
+ /**
10
+ * Adds one job to a kernel queue from a process that hosts no queue of its own (a CLI command),
11
+ * over the caller's Redis connection (left open), with BullMQ's default key prefix like the
12
+ * kernel's queues. The queue handle is closed again before returning.
13
+ */
14
+ export declare function addJobOnce<T>(connection: Redis, queue: string, job: OneJob<T>): Promise<void>;
@@ -0,0 +1,16 @@
1
+ import { Queue } from "bullmq";
2
+ /**
3
+ * Adds one job to a kernel queue from a process that hosts no queue of its own (a CLI command),
4
+ * over the caller's Redis connection (left open), with BullMQ's default key prefix like the
5
+ * kernel's queues. The queue handle is closed again before returning.
6
+ */
7
+ export async function addJobOnce(connection, queue, job) {
8
+ const q = new Queue(queue, { connection });
9
+ try {
10
+ // biome-ignore lint/suspicious/noExplicitAny: BullMQ's name and data generics do not line up here
11
+ await q.add(job.name, job.data, job.opts);
12
+ }
13
+ finally {
14
+ await q.close();
15
+ }
16
+ }
@@ -33,6 +33,8 @@ import { KernelLifecycle } from "./lifecycle/kernel-lifecycle.js";
33
33
  import { KERNEL_APP_OPTIONS } from "./lifecycle/tokens.js";
34
34
  import { createConfiguredLogger } from "./log-config.js";
35
35
  import { KERNEL_OVERRIDE_TOKENS } from "./overrides.js";
36
+ import { PlatformModule } from "./platform/platform.module.js";
37
+ import { PlatformOpsModule } from "./platform/platform-ops.module.js";
36
38
  import { GatewayModule } from "./roles/gateway.module.js";
37
39
  import { WorkerModule } from "./roles/worker.module.js";
38
40
  import { UsageReportModule } from "./runtime/usage-report.js";
@@ -108,6 +110,10 @@ let KernelModule = KernelModule_1 = class KernelModule {
108
110
  TitlesModule,
109
111
  UsageReportModule,
110
112
  ChannelsModule,
113
+ // the Platform tool's operation registry and actor facts
114
+ PlatformModule,
115
+ // its operations (skills, agents, ...), registered at start on every role
116
+ PlatformOpsModule,
111
117
  // the role modules, by `roles` (nest kernel spec §2)
112
118
  ...(config.roles.includes("api") ? [ApiModule] : []),
113
119
  ...(config.roles.includes("worker") ? [WorkerModule.forRoot(config)] : []),
@@ -123,7 +123,7 @@ export declare class KernelLifecycle implements OnApplicationBootstrap, BeforeAp
123
123
  * and the next start tries again while it stays incomplete.
124
124
  */
125
125
  private runBootstrap;
126
- /** 部署尚无活跃企业管理员时提示去初始化;查询失败只记日志,不影响启动。 */
126
+ /** 部署尚无活跃超级管理员时提示去初始化;查询失败只记日志,不影响启动。 */
127
127
  private warnIfSetupPending;
128
128
  beforeApplicationShutdown(): Promise<void>;
129
129
  /** Logs the end of the stop phases (Redis and the pool close right after, in the infra modules). */
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
- import { SANDBOX_EXTENSION_POINT, } from "@capybara-hq/plugin-sdk";
10
+ import { SANDBOX_EXTENSION_POINT } from "@capybara-hq/plugin-sdk";
11
11
  import { Inject, Injectable, Optional, } from "@nestjs/common";
12
12
  import { sql } from "kysely";
13
13
  import { MarketplacesService } from "../catalog/marketplaces.service.js";
@@ -237,7 +237,7 @@ let KernelLifecycle = class KernelLifecycle {
237
237
  .list("sandbox")
238
238
  .find((x) => x.capability === SANDBOX_EXTENSION_POINT);
239
239
  if (sandboxEntry !== undefined) {
240
- for (const w of sandboxConfigWarnings(cfg(), sandboxEntry.plugin, sandboxEntry.impl)) {
240
+ for (const w of sandboxConfigWarnings(cfg(), sandboxEntry.plugin)) {
241
241
  this.log[w.level](w.message);
242
242
  }
243
243
  }
@@ -318,10 +318,10 @@ let KernelLifecycle = class KernelLifecycle {
318
318
  throw e;
319
319
  }
320
320
  }
321
- /** 部署尚无活跃企业管理员时提示去初始化;查询失败只记日志,不影响启动。 */
321
+ /** 部署尚无活跃超级管理员时提示去初始化;查询失败只记日志,不影响启动。 */
322
322
  async warnIfSetupPending() {
323
323
  try {
324
- if ((await this.accounts.countEnterpriseAdmins()) === 0) {
324
+ if ((await this.accounts.countSuperAdmins()) === 0) {
325
325
  this.log.warn("deployment is not set up; open the setup wizard or run `capybara admin create`");
326
326
  }
327
327
  }
@@ -0,0 +1,82 @@
1
+ import { type ExtensionEmbedRequest, type ExtensionEmbedResult, type ExtensionModelTarget, type ExtensionPermissions, type Logger } from "@capybara-hq/plugin-sdk";
2
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
3
+ import { KernelDb } from "../infra/database/kernel-db.js";
4
+ import { TransactionHost } from "../infra/database/transaction-host.js";
5
+ import { KernelEvents } from "../infra/events/kernel-events.js";
6
+ import { type HookRunner } from "../runtime/hook-calls.js";
7
+ import { ProviderRegistry } from "../runtime/providers.js";
8
+ import { ModelPurposesService } from "./purposes.js";
9
+ /** An extension's `permissions.models` (what it declared, as approved in its manifest). */
10
+ export type DeclaredModelPurposes = readonly NonNullable<ExtensionPermissions["models"]>[number][];
11
+ /** Most texts one `ctx.models.embed` call may carry (the kernel splits them by `maxBatch`). */
12
+ export declare const EMBED_MAX_INPUTS = 2048;
13
+ /**
14
+ * The `ctx.models` broker for embeddings (model platform spec B §5.4). Every call:
15
+ * - accepts only a purpose the calling extension declared in `permissions.models` with
16
+ * `kind: "embedding"` (`model.purpose_unknown` otherwise: the manifest is what was approved), for
17
+ * an org that enabled the extension (`extension.not_enabled`);
18
+ * - resolves the org's effective target ({@link ModelPurposesService.resolve}: unmapped, or mapped
19
+ * to a model the org cannot use, is `model.unconfigured`) and the model in the org's view, enabled
20
+ * and of kind `embedding` ({@link ProviderRegistry.resolve}, bound to the org's effective config);
21
+ * - fires `model.request` once (`purpose: "embedding"`, every text of the call, no conversation
22
+ * fields) through the host's hook registry before anything is sent; a policy denial (a deny, a
23
+ * hook error or timeout, a policy extension not loaded here or without a valid config in the org)
24
+ * writes one `hook.denied` audit row and rejects with `ApiError("model.hook_denied")` (403) whose
25
+ * message is the one a denied run step fails with: no provider call, no usage row. A call with no input sends nothing
26
+ * and fires nothing;
27
+ * - splits the input into batches of the model's `maxBatch`, calls the provider's `embed` once per
28
+ * batch in order with the extension's signal (plus the request's own `signal`), each batch
29
+ * limited by `models.embedTimeoutMs` (`ModelError("timeout")`), checks each result ({@link validateEmbedResult}: a
30
+ * wrong count, dimension or a non-finite number is a `ModelError` of kind `server`), and
31
+ * concatenates the vectors; no retries (an extension retries itself if it wants to);
32
+ * - writes one `model_usage` row (the sum of the batches' input tokens) and announces it after the
33
+ * commit (`model_usage.recorded`: the usage reporter's `ModelUsageJobs` enqueues its
34
+ * `usage.report` delivery; the usage sweep catches up a lost one). A call that fails after the
35
+ * provider answered some batches (an invalid result, a later batch failing) still records their
36
+ * input tokens before the error reaches the extension; one that fails before any answer records
37
+ * nothing.
38
+ * Purpose params are not sent: an `embed` request carries none (`EmbedRequest`).
39
+ */
40
+ export declare class ModelEmbeddings {
41
+ private readonly kdb;
42
+ readonly txHost: TransactionHost;
43
+ private readonly purposes;
44
+ private readonly providers;
45
+ /** `model_usage.recorded`: the usage reporter enqueues the row's delivery. */
46
+ private readonly events;
47
+ private readonly log;
48
+ /** `models.embedTimeoutMs` (hot). */
49
+ private readonly config;
50
+ constructor(kdb: KernelDb, txHost: TransactionHost, purposes: Pick<ModelPurposesService, "resolve">, providers: Pick<ProviderRegistry, "resolve">,
51
+ /** `model_usage.recorded`: the usage reporter enqueues the row's delivery. */
52
+ events: Pick<KernelEvents, "emit">, log: Pick<Logger, "warn">,
53
+ /** `models.embedTimeoutMs` (hot). */
54
+ config: Pick<KernelConfigService, "get">);
55
+ /** Refuses a purpose `plugin` did not declare with kind `embedding`, or an org it is off in. */
56
+ private admit;
57
+ /** The org's target for the purpose and the model bound to the org's config. */
58
+ private target;
59
+ /**
60
+ * One batch to the provider, limited by `models.embedTimeoutMs` (hot, read per call): at the limit
61
+ * the call's signal aborts and the batch fails with `ModelError("timeout")`, even when the
62
+ * provider ignores the signal (its late answer is dropped).
63
+ */
64
+ private callWithTimeout;
65
+ /**
66
+ * `ctx.models.embed` for `plugin` (its declared purposes), aborted by `signal`; `hooks` is the
67
+ * host's hook registry (`model.request`), absent only for a ctx built without a host (tests).
68
+ */
69
+ embed(plugin: string, declared: DeclaredModelPurposes, request: ExtensionEmbedRequest, signal: AbortSignal, hooks: HookRunner | undefined): Promise<ExtensionEmbedResult>;
70
+ /**
71
+ * `model.request` for an embed call (policy hooks may deny it). Rejects with the caller's abort
72
+ * reason when `signal` aborts while the hooks run (an abort is never a deny).
73
+ */
74
+ private checkHooks;
75
+ /** `ctx.models.describe` for `plugin`: null when the purpose maps to no model the org can use. */
76
+ describe(plugin: string, declared: DeclaredModelPurposes, req: {
77
+ orgId: string;
78
+ purpose: string;
79
+ }): Promise<ExtensionModelTarget | null>;
80
+ /** One `model_usage` row; its `usage.report` delivery is enqueued after the commit. */
81
+ private record;
82
+ }