@capybara-hq/kernel 0.1.0-rc.0 → 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 (1152) hide show
  1. package/bootstrap.json +92 -8
  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 -201
  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 +51 -3
  228. package/dist/config/schema.js +269 -27
  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 -70
  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/queue.js +3 -2
  279. package/dist/ctx/secrets.d.ts +10 -2
  280. package/dist/ctx/secrets.js +7 -3
  281. package/dist/db/kernel-schema.d.ts +550 -25
  282. package/dist/db/pool.d.ts +10 -0
  283. package/dist/db/pool.js +4 -0
  284. package/dist/devices/device-auth.controller.d.ts +42 -0
  285. package/dist/devices/device-auth.controller.js +116 -0
  286. package/dist/devices/device-auth.d.ts +119 -0
  287. package/dist/devices/device-auth.js +403 -0
  288. package/dist/devices/device-auth.module.d.ts +7 -0
  289. package/dist/devices/device-auth.module.js +25 -0
  290. package/dist/devices/device-gateway.d.ts +128 -0
  291. package/dist/devices/device-gateway.js +530 -0
  292. package/dist/devices/device-provider.d.ts +89 -0
  293. package/dist/devices/device-provider.js +151 -0
  294. package/dist/devices/device-routes.d.ts +36 -0
  295. package/dist/devices/device-routes.js +90 -0
  296. package/dist/devices/devices.module.d.ts +16 -0
  297. package/dist/devices/devices.module.js +44 -0
  298. package/dist/devices/dto.d.ts +66 -0
  299. package/dist/devices/dto.js +44 -0
  300. package/dist/devices/keys.d.ts +25 -0
  301. package/dist/devices/keys.js +25 -0
  302. package/dist/devices/machines.d.ts +118 -0
  303. package/dist/devices/machines.js +366 -0
  304. package/dist/devices/relay.d.ts +100 -0
  305. package/dist/devices/relay.js +373 -0
  306. package/dist/devices/targets.d.ts +28 -0
  307. package/dist/devices/targets.js +73 -0
  308. package/dist/environments/access.d.ts +66 -0
  309. package/dist/environments/access.js +113 -0
  310. package/dist/environments/conversation-environments.d.ts +75 -0
  311. package/dist/environments/conversation-environments.js +231 -0
  312. package/dist/environments/dto.d.ts +25 -0
  313. package/dist/environments/dto.js +12 -0
  314. package/dist/environments/environments.controller.d.ts +36 -0
  315. package/dist/environments/environments.controller.js +124 -0
  316. package/dist/environments/environments.module.d.ts +8 -0
  317. package/dist/environments/environments.module.js +31 -0
  318. package/dist/environments/environments.schemas.d.ts +3 -0
  319. package/dist/environments/environments.schemas.js +14 -0
  320. package/dist/environments/environments.service.d.ts +251 -0
  321. package/dist/environments/environments.service.js +791 -0
  322. package/dist/environments/label.d.ts +11 -0
  323. package/dist/environments/label.js +25 -0
  324. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  325. package/dist/environments/legacy-cleanup.job.js +141 -0
  326. package/dist/errors.d.ts +136 -2
  327. package/dist/errors.js +136 -2
  328. package/dist/evals/budget.d.ts +42 -21
  329. package/dist/evals/budget.js +114 -62
  330. package/dist/evals/evals.module.d.ts +31 -0
  331. package/dist/evals/evals.module.js +114 -0
  332. package/dist/evals/evals.schemas.d.ts +110 -0
  333. package/dist/evals/evals.schemas.js +107 -0
  334. package/dist/evals/jobs.d.ts +20 -0
  335. package/dist/evals/jobs.js +45 -0
  336. package/dist/evals/reconstruct.d.ts +18 -9
  337. package/dist/evals/reconstruct.js +36 -10
  338. package/dist/evals/recorded-tools.d.ts +37 -1
  339. package/dist/evals/recorded-tools.js +120 -10
  340. package/dist/evals/run-replay.d.ts +75 -10
  341. package/dist/evals/run-replay.js +218 -94
  342. package/dist/evals/runs.controller.d.ts +3 -58
  343. package/dist/evals/runs.controller.js +18 -50
  344. package/dist/evals/runs.service.d.ts +31 -52
  345. package/dist/evals/runs.service.js +281 -255
  346. package/dist/evals/sets.controller.d.ts +3 -29
  347. package/dist/evals/sets.controller.js +18 -39
  348. package/dist/evals/sets.service.d.ts +29 -13
  349. package/dist/evals/sets.service.js +262 -202
  350. package/dist/evals/snapshot.d.ts +5 -4
  351. package/dist/evals/snapshot.js +17 -4
  352. package/dist/evals/step-replay.d.ts +6 -8
  353. package/dist/evals/step-replay.js +17 -10
  354. package/dist/evals/trajectory.controller.d.ts +1 -1
  355. package/dist/evals/trajectory.controller.js +11 -7
  356. package/dist/evals/trajectory.d.ts +2 -2
  357. package/dist/evals/trajectory.js +1 -1
  358. package/dist/evals/trajectory.service.d.ts +13 -7
  359. package/dist/evals/trajectory.service.js +56 -21
  360. package/dist/evals/worker.d.ts +48 -31
  361. package/dist/evals/worker.js +229 -123
  362. package/dist/extensions/admin-ops.d.ts +133 -41
  363. package/dist/extensions/admin-ops.js +378 -172
  364. package/dist/extensions/admin-view.d.ts +82 -32
  365. package/dist/extensions/admin-view.js +284 -71
  366. package/dist/extensions/approvals.d.ts +24 -10
  367. package/dist/extensions/approvals.js +73 -46
  368. package/dist/extensions/blobs.d.ts +27 -10
  369. package/dist/extensions/blobs.js +112 -45
  370. package/dist/extensions/bootstrap.d.ts +136 -46
  371. package/dist/extensions/bootstrap.js +417 -167
  372. package/dist/extensions/cli.d.ts +32 -10
  373. package/dist/extensions/cli.js +52 -98
  374. package/dist/extensions/config-hash.d.ts +10 -0
  375. package/dist/extensions/config-hash.js +38 -0
  376. package/dist/extensions/config-issues.d.ts +19 -0
  377. package/dist/extensions/config-issues.js +48 -0
  378. package/dist/extensions/config-json-schema.d.ts +43 -7
  379. package/dist/extensions/config-json-schema.js +124 -58
  380. package/dist/extensions/deployment-config-store.d.ts +55 -0
  381. package/dist/extensions/deployment-config-store.js +133 -0
  382. package/dist/extensions/deployment-config.d.ts +146 -70
  383. package/dist/extensions/deployment-config.js +439 -246
  384. package/dist/extensions/display-name.d.ts +22 -0
  385. package/dist/extensions/display-name.js +77 -0
  386. package/dist/extensions/effective-config.d.ts +127 -0
  387. package/dist/extensions/effective-config.js +368 -0
  388. package/dist/extensions/enabled.d.ts +5 -5
  389. package/dist/extensions/extensions.module.d.ts +8 -0
  390. package/dist/extensions/extensions.module.js +96 -0
  391. package/dist/extensions/hooks.d.ts +40 -6
  392. package/dist/extensions/hooks.js +83 -17
  393. package/dist/extensions/host.d.ts +161 -80
  394. package/dist/extensions/host.js +505 -213
  395. package/dist/extensions/installs.d.ts +73 -19
  396. package/dist/extensions/installs.js +174 -37
  397. package/dist/extensions/job-ids.d.ts +6 -0
  398. package/dist/extensions/job-ids.js +6 -0
  399. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  400. package/dist/extensions/lifecycle-topics.js +18 -0
  401. package/dist/extensions/lifecycle.d.ts +35 -47
  402. package/dist/extensions/lifecycle.js +103 -39
  403. package/dist/extensions/locks.d.ts +45 -0
  404. package/dist/extensions/locks.js +112 -0
  405. package/dist/extensions/migrate-lock.d.ts +3 -4
  406. package/dist/extensions/org-config.d.ts +141 -49
  407. package/dist/extensions/org-config.js +471 -243
  408. package/dist/extensions/org-levels.d.ts +37 -0
  409. package/dist/extensions/org-levels.js +71 -0
  410. package/dist/extensions/org-overrides.d.ts +151 -0
  411. package/dist/extensions/org-overrides.js +524 -0
  412. package/dist/extensions/package.d.ts +14 -1
  413. package/dist/extensions/package.js +51 -2
  414. package/dist/extensions/permission-view.d.ts +59 -6
  415. package/dist/extensions/permission-view.js +7 -5
  416. package/dist/extensions/plugin-guides.d.ts +129 -0
  417. package/dist/extensions/plugin-guides.js +283 -0
  418. package/dist/extensions/plugin-icons.d.ts +54 -0
  419. package/dist/extensions/plugin-icons.js +125 -0
  420. package/dist/extensions/plugin-items.d.ts +21 -0
  421. package/dist/extensions/plugin-items.js +42 -0
  422. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  423. package/dist/extensions/point-defaults.controller.js +69 -0
  424. package/dist/extensions/point-defaults.d.ts +73 -0
  425. package/dist/extensions/point-defaults.js +236 -0
  426. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  427. package/dist/extensions/point-defaults.schemas.js +14 -0
  428. package/dist/extensions/registry.d.ts +50 -2
  429. package/dist/extensions/registry.js +91 -4
  430. package/dist/extensions/resolve.d.ts +51 -1
  431. package/dist/extensions/resolve.js +85 -3
  432. package/dist/extensions/single-provider.d.ts +92 -0
  433. package/dist/extensions/single-provider.js +180 -0
  434. package/dist/extensions/sources.d.ts +19 -10
  435. package/dist/extensions/sources.js +34 -13
  436. package/dist/extensions/state.module.d.ts +9 -0
  437. package/dist/extensions/state.module.js +38 -0
  438. package/dist/extensions/unavailable.d.ts +50 -0
  439. package/dist/extensions/unavailable.js +115 -0
  440. package/dist/files/files.module.d.ts +3 -0
  441. package/dist/files/files.module.js +22 -0
  442. package/dist/files/previewers.controller.d.ts +7 -2
  443. package/dist/files/previewers.controller.js +19 -12
  444. package/dist/files/previewers.d.ts +21 -19
  445. package/dist/files/previewers.js +114 -38
  446. package/dist/files/previewers.schemas.d.ts +10 -0
  447. package/dist/files/previewers.schemas.js +9 -0
  448. package/dist/http/adapter.d.ts +3 -0
  449. package/dist/http/adapter.js +25 -0
  450. package/dist/http/api.module.d.ts +3 -110
  451. package/dist/http/api.module.js +86 -358
  452. package/dist/http/app.d.ts +22 -17
  453. package/dist/http/app.js +83 -52
  454. package/dist/http/error-filter.module.d.ts +5 -0
  455. package/dist/http/error-filter.module.js +18 -0
  456. package/dist/http/error.filter.js +2 -2
  457. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  458. package/dist/http/gateway-routes.js +16 -0
  459. package/dist/http/nest-logger.d.ts +6 -5
  460. package/dist/http/nest-logger.js +24 -10
  461. package/dist/http/plugin-dispatch.d.ts +4 -1
  462. package/dist/http/plugin-dispatch.js +14 -2
  463. package/dist/identity/accounts.d.ts +130 -38
  464. package/dist/identity/accounts.js +373 -186
  465. package/dist/identity/api-tokens.d.ts +11 -7
  466. package/dist/identity/api-tokens.js +71 -44
  467. package/dist/identity/audit.d.ts +9 -5
  468. package/dist/identity/audit.js +5 -1
  469. package/dist/identity/auth.controller.d.ts +11 -10
  470. package/dist/identity/auth.controller.js +40 -30
  471. package/dist/identity/auth.guard.d.ts +16 -8
  472. package/dist/identity/auth.guard.js +41 -13
  473. package/dist/identity/binding.d.ts +9 -11
  474. package/dist/identity/binding.js +41 -13
  475. package/dist/identity/cookies.d.ts +26 -5
  476. package/dist/identity/cookies.js +58 -6
  477. package/dist/identity/external-identity-lock.d.ts +17 -0
  478. package/dist/identity/external-identity-lock.js +39 -0
  479. package/dist/identity/external.d.ts +19 -15
  480. package/dist/identity/external.js +163 -125
  481. package/dist/identity/identity.module.d.ts +6 -0
  482. package/dist/identity/identity.module.js +59 -0
  483. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  484. package/dist/identity/initial-passwords.controller.js +49 -0
  485. package/dist/identity/initial-passwords.d.ts +61 -0
  486. package/dist/identity/initial-passwords.job.d.ts +16 -0
  487. package/dist/identity/initial-passwords.job.js +46 -0
  488. package/dist/identity/initial-passwords.js +159 -0
  489. package/dist/identity/me.controller.d.ts +32 -15
  490. package/dist/identity/me.controller.js +78 -33
  491. package/dist/identity/me.schemas.d.ts +14 -0
  492. package/dist/identity/me.schemas.js +17 -0
  493. package/dist/identity/principal.d.ts +11 -3
  494. package/dist/identity/principal.js +11 -3
  495. package/dist/identity/sessions.d.ts +24 -10
  496. package/dist/identity/sessions.js +119 -42
  497. package/dist/identity/settings.d.ts +42 -23
  498. package/dist/identity/settings.js +137 -72
  499. package/dist/identity/sso.controller.d.ts +7 -7
  500. package/dist/identity/sso.controller.js +13 -9
  501. package/dist/identity/sso.d.ts +9 -12
  502. package/dist/identity/sso.js +54 -24
  503. package/dist/identity/super-admin.d.ts +20 -0
  504. package/dist/identity/super-admin.js +81 -0
  505. package/dist/inbox/inbox.module.d.ts +6 -0
  506. package/dist/inbox/inbox.module.js +26 -0
  507. package/dist/inbox/inbox.schemas.d.ts +8 -0
  508. package/dist/inbox/inbox.schemas.js +11 -0
  509. package/dist/inbox/inbox.service.d.ts +68 -11
  510. package/dist/inbox/inbox.service.js +104 -13
  511. package/dist/inbox/org-notices.d.ts +63 -0
  512. package/dist/inbox/org-notices.js +91 -0
  513. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  514. package/dist/inbox/platform-inbox.controller.js +58 -0
  515. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  516. package/dist/inbox/platform-inbox.service.js +263 -0
  517. package/dist/inbox/platform-notices.d.ts +19 -0
  518. package/dist/inbox/platform-notices.js +9 -0
  519. package/dist/index.d.ts +25 -14
  520. package/dist/index.js +20 -9
  521. package/dist/infra/cache/cache.module.d.ts +3 -0
  522. package/dist/infra/cache/cache.module.js +16 -0
  523. package/dist/infra/cache/cache.service.d.ts +21 -0
  524. package/dist/infra/cache/cache.service.js +80 -0
  525. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  526. package/dist/infra/cache/cacheable.decorator.js +83 -0
  527. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  528. package/dist/infra/cli/kernel-cli.module.js +173 -0
  529. package/dist/infra/close-within.d.ts +15 -0
  530. package/dist/infra/close-within.js +36 -0
  531. package/dist/infra/config/config.module.d.ts +13 -0
  532. package/dist/infra/config/config.module.js +39 -0
  533. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  534. package/dist/infra/config/kernel-config.service.js +157 -0
  535. package/dist/infra/database/after-commit.d.ts +6 -0
  536. package/dist/infra/database/after-commit.js +9 -0
  537. package/dist/infra/database/database.module.d.ts +25 -0
  538. package/dist/infra/database/database.module.js +91 -0
  539. package/dist/infra/database/kernel-db.d.ts +22 -0
  540. package/dist/infra/database/kernel-db.js +65 -0
  541. package/dist/infra/database/transaction-host.d.ts +50 -0
  542. package/dist/infra/database/transaction-host.js +125 -0
  543. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  544. package/dist/infra/database/transactional.decorator.js +27 -0
  545. package/dist/infra/database/xact-lock.d.ts +17 -0
  546. package/dist/infra/database/xact-lock.js +43 -0
  547. package/dist/infra/events/kernel-events.d.ts +121 -0
  548. package/dist/infra/events/kernel-events.js +65 -0
  549. package/dist/infra/health/health.controller.d.ts +26 -0
  550. package/dist/infra/health/health.controller.js +104 -0
  551. package/dist/infra/health/health.module.d.ts +9 -0
  552. package/dist/infra/health/health.module.js +24 -0
  553. package/dist/infra/health/health.options.d.ts +10 -0
  554. package/dist/infra/health/health.options.js +15 -0
  555. package/dist/infra/health/shutdown-state.d.ts +6 -0
  556. package/dist/infra/health/shutdown-state.js +2 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  560. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  561. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  562. package/dist/infra/lifecycle/process-guards.js +90 -0
  563. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  564. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  565. package/dist/infra/lock/key-template.d.ts +13 -0
  566. package/dist/infra/lock/key-template.js +46 -0
  567. package/dist/infra/lock/lock.module.d.ts +3 -0
  568. package/dist/infra/lock/lock.module.js +16 -0
  569. package/dist/infra/lock/lock.service.d.ts +120 -0
  570. package/dist/infra/lock/lock.service.js +343 -0
  571. package/dist/infra/lock/shared-lease.d.ts +44 -0
  572. package/dist/infra/lock/shared-lease.js +121 -0
  573. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  574. package/dist/infra/lock/with-lock.decorator.js +49 -0
  575. package/dist/infra/logging/logging.module.d.ts +18 -0
  576. package/dist/infra/logging/logging.module.js +52 -0
  577. package/dist/infra/queue/add-job-once.d.ts +14 -0
  578. package/dist/infra/queue/add-job-once.js +16 -0
  579. package/dist/infra/queue/configured-processor.d.ts +18 -0
  580. package/dist/infra/queue/configured-processor.js +23 -0
  581. package/dist/infra/queue/job-failure.d.ts +18 -0
  582. package/dist/infra/queue/job-failure.js +26 -0
  583. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  584. package/dist/infra/queue/queue-shutdown.js +81 -0
  585. package/dist/infra/queue/queue.module.d.ts +16 -0
  586. package/dist/infra/queue/queue.module.js +61 -0
  587. package/dist/infra/queue/redis-connection.d.ts +13 -0
  588. package/dist/infra/queue/redis-connection.js +25 -0
  589. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  590. package/dist/infra/queue/retired-schedulers.js +9 -0
  591. package/dist/infra/queue/run-job.d.ts +16 -0
  592. package/dist/infra/queue/run-job.js +19 -0
  593. package/dist/infra/redis/redis.module.d.ts +24 -0
  594. package/dist/infra/redis/redis.module.js +91 -0
  595. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  596. package/dist/infra/schedule/cron-tick.js +25 -0
  597. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  598. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  599. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  600. package/dist/infra/schedule/locked-interval.js +190 -0
  601. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  602. package/dist/infra/schedule/locked-tick.js +137 -0
  603. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  604. package/dist/infra/schedule/schedule.module.js +27 -0
  605. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  606. package/dist/infra/schedule/scheduled-runs.js +163 -0
  607. package/dist/infra/swagger/swagger.d.ts +16 -0
  608. package/dist/infra/swagger/swagger.js +31 -0
  609. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  610. package/dist/infra/throttler/credential-throttler.js +77 -0
  611. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  612. package/dist/infra/throttler/named-throttlers.js +157 -0
  613. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  614. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  615. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  616. package/dist/infra/throttler/throttler.guard.js +68 -0
  617. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  618. package/dist/infra/throttler/throttler.module.js +53 -0
  619. package/dist/infra/tokens.d.ts +20 -0
  620. package/dist/infra/tokens.js +20 -0
  621. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  622. package/dist/infra/validation/create-zod-dto.js +35 -0
  623. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  624. package/dist/infra/validation/parse-with-zod.js +12 -0
  625. package/dist/infra/validation/validation.module.d.ts +3 -0
  626. package/dist/infra/validation/validation.module.js +16 -0
  627. package/dist/infra/validation/zod-params.d.ts +7 -0
  628. package/dist/infra/validation/zod-params.js +42 -0
  629. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  630. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  631. package/dist/kernel.d.ts +9 -241
  632. package/dist/kernel.js +8 -1305
  633. package/dist/kernel.module.d.ts +17 -0
  634. package/dist/kernel.module.js +145 -0
  635. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  636. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  637. package/dist/lifecycle/tokens.d.ts +3 -0
  638. package/dist/lifecycle/tokens.js +3 -0
  639. package/dist/log-config.d.ts +9 -0
  640. package/dist/log-config.js +27 -0
  641. package/dist/log-context.d.ts +34 -0
  642. package/dist/log-context.js +44 -0
  643. package/dist/log-loki.d.ts +34 -0
  644. package/dist/log-loki.js +145 -0
  645. package/dist/log.d.ts +53 -10
  646. package/dist/log.js +168 -18
  647. package/dist/models/embeddings.d.ts +82 -0
  648. package/dist/models/embeddings.js +326 -0
  649. package/dist/models/enablement.controller.d.ts +40 -0
  650. package/dist/models/enablement.controller.js +74 -0
  651. package/dist/models/enablement.d.ts +101 -0
  652. package/dist/models/enablement.js +264 -0
  653. package/dist/models/models.module.d.ts +7 -0
  654. package/dist/models/models.module.js +36 -0
  655. package/dist/models/org-models.schemas.d.ts +8 -0
  656. package/dist/models/org-models.schemas.js +22 -0
  657. package/dist/models/prices.d.ts +13 -5
  658. package/dist/models/prices.js +69 -39
  659. package/dist/models/purposes.controller.d.ts +6 -4
  660. package/dist/models/purposes.controller.js +16 -11
  661. package/dist/models/purposes.d.ts +103 -23
  662. package/dist/models/purposes.js +208 -77
  663. package/dist/net/public-address.js +3 -2
  664. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  665. package/dist/orgs/directory-sync.controller.js +2 -2
  666. package/dist/orgs/directory-sync.d.ts +74 -35
  667. package/dist/orgs/directory-sync.js +243 -132
  668. package/dist/orgs/invitations.controller.d.ts +8 -8
  669. package/dist/orgs/invitations.controller.js +27 -26
  670. package/dist/orgs/invitations.service.d.ts +12 -9
  671. package/dist/orgs/invitations.service.js +130 -92
  672. package/dist/orgs/job-ids.d.ts +8 -0
  673. package/dist/orgs/job-ids.js +8 -0
  674. package/dist/orgs/members.service.d.ts +19 -12
  675. package/dist/orgs/members.service.js +161 -117
  676. package/dist/orgs/offboarding.d.ts +61 -60
  677. package/dist/orgs/offboarding.js +206 -95
  678. package/dist/orgs/org-lock.d.ts +33 -19
  679. package/dist/orgs/org-lock.js +94 -35
  680. package/dist/orgs/org.guard.d.ts +11 -1
  681. package/dist/orgs/org.guard.js +45 -34
  682. package/dist/orgs/orgs.controller.d.ts +13 -16
  683. package/dist/orgs/orgs.controller.js +29 -20
  684. package/dist/orgs/orgs.module.d.ts +6 -0
  685. package/dist/orgs/orgs.module.js +71 -0
  686. package/dist/orgs/orgs.schemas.d.ts +8 -0
  687. package/dist/orgs/orgs.schemas.js +16 -0
  688. package/dist/orgs/orgs.service.d.ts +47 -21
  689. package/dist/orgs/orgs.service.js +166 -91
  690. package/dist/orgs/roles.d.ts +1 -1
  691. package/dist/orgs/roles.js +5 -1
  692. package/dist/orgs/settings.controller.d.ts +2 -2
  693. package/dist/orgs/settings.controller.js +8 -6
  694. package/dist/orgs/settings.service.d.ts +45 -14
  695. package/dist/orgs/settings.service.js +110 -51
  696. package/dist/overrides.d.ts +63 -0
  697. package/dist/overrides.js +34 -0
  698. package/dist/platform/actor.d.ts +48 -0
  699. package/dist/platform/actor.js +100 -0
  700. package/dist/platform/agent-docs.d.ts +18 -0
  701. package/dist/platform/agent-docs.js +59 -0
  702. package/dist/platform/availability.d.ts +14 -0
  703. package/dist/platform/availability.js +43 -0
  704. package/dist/platform/errors.d.ts +28 -0
  705. package/dist/platform/errors.js +65 -0
  706. package/dist/platform/exclusions.d.ts +11 -0
  707. package/dist/platform/exclusions.js +667 -0
  708. package/dist/platform/method.d.ts +6 -0
  709. package/dist/platform/method.js +15 -0
  710. package/dist/platform/operation.d.ts +169 -0
  711. package/dist/platform/operation.js +90 -0
  712. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  713. package/dist/platform/ops/accounts.ops.js +291 -0
  714. package/dist/platform/ops/admin.ops.d.ts +36 -0
  715. package/dist/platform/ops/admin.ops.js +389 -0
  716. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  717. package/dist/platform/ops/agent-skills.ops.js +226 -0
  718. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  719. package/dist/platform/ops/agent-templates.ops.js +272 -0
  720. package/dist/platform/ops/agents.ops.d.ts +37 -0
  721. package/dist/platform/ops/agents.ops.js +717 -0
  722. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  723. package/dist/platform/ops/approvals.ops.js +116 -0
  724. package/dist/platform/ops/background.ops.d.ts +14 -0
  725. package/dist/platform/ops/background.ops.js +134 -0
  726. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  727. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  728. package/dist/platform/ops/channels.ops.d.ts +16 -0
  729. package/dist/platform/ops/channels.ops.js +195 -0
  730. package/dist/platform/ops/components.ops.d.ts +46 -0
  731. package/dist/platform/ops/components.ops.js +853 -0
  732. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  733. package/dist/platform/ops/connectors.ops.js +188 -0
  734. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  735. package/dist/platform/ops/conversations.ops.js +470 -0
  736. package/dist/platform/ops/environments.ops.d.ts +26 -0
  737. package/dist/platform/ops/environments.ops.js +311 -0
  738. package/dist/platform/ops/errors.d.ts +16 -0
  739. package/dist/platform/ops/errors.js +30 -0
  740. package/dist/platform/ops/evals.ops.d.ts +28 -0
  741. package/dist/platform/ops/evals.ops.js +783 -0
  742. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  743. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  744. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  745. package/dist/platform/ops/extensions.ops.js +347 -0
  746. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  747. package/dist/platform/ops/inbox.ops.js +378 -0
  748. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  749. package/dist/platform/ops/marketplaces.ops.js +466 -0
  750. package/dist/platform/ops/models.ops.d.ts +25 -0
  751. package/dist/platform/ops/models.ops.js +232 -0
  752. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  753. package/dist/platform/ops/org-plugins.ops.js +329 -0
  754. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  755. package/dist/platform/ops/org-settings.ops.js +102 -0
  756. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  757. package/dist/platform/ops/orgs.ops.js +295 -0
  758. package/dist/platform/ops/other-orgs.d.ts +20 -0
  759. package/dist/platform/ops/other-orgs.js +72 -0
  760. package/dist/platform/ops/paging.d.ts +14 -0
  761. package/dist/platform/ops/paging.js +20 -0
  762. package/dist/platform/ops/platform.ops.d.ts +28 -0
  763. package/dist/platform/ops/platform.ops.js +204 -0
  764. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  765. package/dist/platform/ops/plugins.ops.js +476 -0
  766. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  767. package/dist/platform/ops/previewers.ops.js +109 -0
  768. package/dist/platform/ops/requests.ops.d.ts +14 -0
  769. package/dist/platform/ops/requests.ops.js +191 -0
  770. package/dist/platform/ops/role.d.ts +4 -0
  771. package/dist/platform/ops/role.js +10 -0
  772. package/dist/platform/ops/skills.ops.d.ts +17 -0
  773. package/dist/platform/ops/skills.ops.js +216 -0
  774. package/dist/platform/ops/summary.d.ts +10 -0
  775. package/dist/platform/ops/summary.js +18 -0
  776. package/dist/platform/ops/unavailable.d.ts +23 -0
  777. package/dist/platform/ops/unavailable.js +118 -0
  778. package/dist/platform/parity.d.ts +33 -0
  779. package/dist/platform/parity.js +272 -0
  780. package/dist/platform/platform-ops.module.d.ts +39 -0
  781. package/dist/platform/platform-ops.module.js +122 -0
  782. package/dist/platform/platform.module.d.ts +8 -0
  783. package/dist/platform/platform.module.js +25 -0
  784. package/dist/platform/registry.d.ts +30 -0
  785. package/dist/platform/registry.js +111 -0
  786. package/dist/platform/route-schemas.d.ts +18 -0
  787. package/dist/platform/route-schemas.js +63 -0
  788. package/dist/roles/gateway-role.d.ts +54 -0
  789. package/dist/roles/gateway-role.js +118 -0
  790. package/dist/roles/gateway.module.d.ts +9 -0
  791. package/dist/roles/gateway.module.js +31 -0
  792. package/dist/roles/worker-role.d.ts +65 -0
  793. package/dist/roles/worker-role.js +151 -0
  794. package/dist/roles/worker.module.d.ts +14 -0
  795. package/dist/roles/worker.module.js +106 -0
  796. package/dist/runtime/abort.js +19 -2
  797. package/dist/runtime/checkpointer.d.ts +8 -3
  798. package/dist/runtime/checkpointer.js +87 -55
  799. package/dist/runtime/context/build.d.ts +21 -13
  800. package/dist/runtime/context/build.js +106 -29
  801. package/dist/runtime/context/claude-tools.d.ts +4 -1
  802. package/dist/runtime/context/claude-tools.js +13 -12
  803. package/dist/runtime/context/compaction.js +24 -1
  804. package/dist/runtime/context/environment-paths.d.ts +40 -0
  805. package/dist/runtime/context/environment-paths.js +48 -0
  806. package/dist/runtime/context/legacy-text.d.ts +22 -0
  807. package/dist/runtime/context/legacy-text.js +37 -0
  808. package/dist/runtime/context/reminders.d.ts +2 -0
  809. package/dist/runtime/context/reminders.js +2 -0
  810. package/dist/runtime/context/run-context.d.ts +65 -0
  811. package/dist/runtime/context/run-context.js +215 -0
  812. package/dist/runtime/context/skills.d.ts +29 -11
  813. package/dist/runtime/context/skills.js +46 -32
  814. package/dist/runtime/context/tool-changes.d.ts +27 -0
  815. package/dist/runtime/context/tool-changes.js +60 -0
  816. package/dist/runtime/conversation-lock.d.ts +20 -11
  817. package/dist/runtime/conversation-lock.js +62 -72
  818. package/dist/runtime/hook-calls.d.ts +11 -4
  819. package/dist/runtime/hook-calls.js +41 -13
  820. package/dist/runtime/job-ids.d.ts +10 -0
  821. package/dist/runtime/job-ids.js +10 -0
  822. package/dist/runtime/langgraph-loop.d.ts +3 -1
  823. package/dist/runtime/langgraph-loop.js +37 -18
  824. package/dist/runtime/loop.d.ts +42 -6
  825. package/dist/runtime/loop.js +14 -0
  826. package/dist/runtime/maintenance-queue.d.ts +10 -0
  827. package/dist/runtime/maintenance-queue.js +10 -0
  828. package/dist/runtime/maintenance.d.ts +50 -74
  829. package/dist/runtime/maintenance.js +166 -136
  830. package/dist/runtime/model-call.d.ts +61 -15
  831. package/dist/runtime/model-call.js +128 -84
  832. package/dist/runtime/providers.d.ts +158 -27
  833. package/dist/runtime/providers.js +373 -63
  834. package/dist/runtime/quota.d.ts +17 -3
  835. package/dist/runtime/quota.js +27 -2
  836. package/dist/runtime/retired-schedulers.d.ts +7 -0
  837. package/dist/runtime/retired-schedulers.js +31 -0
  838. package/dist/runtime/run-context.service.d.ts +65 -0
  839. package/dist/runtime/run-context.service.js +236 -0
  840. package/dist/runtime/run-control.d.ts +43 -0
  841. package/dist/runtime/run-control.js +89 -0
  842. package/dist/runtime/run-drafts.d.ts +85 -0
  843. package/dist/runtime/run-drafts.js +230 -0
  844. package/dist/runtime/run-finish.d.ts +27 -18
  845. package/dist/runtime/run-finish.js +98 -51
  846. package/dist/runtime/run-jobs.d.ts +46 -0
  847. package/dist/runtime/run-jobs.js +91 -0
  848. package/dist/runtime/run-processors.d.ts +60 -0
  849. package/dist/runtime/run-processors.js +185 -0
  850. package/dist/runtime/run-queue.d.ts +90 -58
  851. package/dist/runtime/run-queue.js +566 -297
  852. package/dist/runtime/run-steps.d.ts +39 -0
  853. package/dist/runtime/run-steps.js +96 -0
  854. package/dist/runtime/run-worker.d.ts +134 -77
  855. package/dist/runtime/run-worker.js +412 -236
  856. package/dist/runtime/runtime.module.d.ts +10 -0
  857. package/dist/runtime/runtime.module.js +122 -0
  858. package/dist/runtime/step-log.d.ts +51 -0
  859. package/dist/runtime/step-log.js +111 -0
  860. package/dist/runtime/stream.controller.d.ts +28 -9
  861. package/dist/runtime/stream.controller.js +72 -13
  862. package/dist/runtime/stream.d.ts +27 -6
  863. package/dist/runtime/stream.js +102 -7
  864. package/dist/runtime/subagents/child.d.ts +58 -51
  865. package/dist/runtime/subagents/child.js +105 -86
  866. package/dist/runtime/subagents/definition.d.ts +32 -28
  867. package/dist/runtime/subagents/definition.js +89 -143
  868. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  869. package/dist/runtime/subagents/deliveries.js +228 -0
  870. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  871. package/dist/runtime/subagents/dispatch.js +336 -270
  872. package/dist/runtime/subagents/limits.d.ts +32 -8
  873. package/dist/runtime/subagents/limits.js +44 -8
  874. package/dist/runtime/subagents/messages.d.ts +95 -0
  875. package/dist/runtime/subagents/messages.js +328 -0
  876. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  877. package/dist/runtime/subagents/org-agents.js +3 -2
  878. package/dist/runtime/subagents/preamble.d.ts +4 -4
  879. package/dist/runtime/subagents/preamble.js +9 -7
  880. package/dist/runtime/subagents/progress.d.ts +10 -8
  881. package/dist/runtime/subagents/progress.js +11 -6
  882. package/dist/runtime/subagents/render.d.ts +30 -0
  883. package/dist/runtime/subagents/render.js +53 -0
  884. package/dist/runtime/subagents/roster.d.ts +27 -10
  885. package/dist/runtime/subagents/roster.js +49 -13
  886. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  887. package/dist/runtime/subagents/skill-fork.js +23 -8
  888. package/dist/runtime/subagents/status.d.ts +14 -0
  889. package/dist/runtime/subagents/status.js +23 -0
  890. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  891. package/dist/runtime/subagents/subagents.service.js +106 -0
  892. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  893. package/dist/runtime/usage-report-jobs.js +158 -0
  894. package/dist/runtime/usage-report.d.ts +121 -83
  895. package/dist/runtime/usage-report.js +355 -180
  896. package/dist/runtime/waits.d.ts +258 -81
  897. package/dist/runtime/waits.js +800 -263
  898. package/dist/sandbox/job-ids.d.ts +10 -0
  899. package/dist/sandbox/job-ids.js +10 -0
  900. package/dist/sandbox/jobs.d.ts +68 -0
  901. package/dist/sandbox/jobs.js +150 -0
  902. package/dist/sandbox/leases.d.ts +73 -82
  903. package/dist/sandbox/leases.js +162 -346
  904. package/dist/sandbox/providers.d.ts +46 -0
  905. package/dist/sandbox/providers.js +83 -0
  906. package/dist/sandbox/sandbox.module.d.ts +9 -0
  907. package/dist/sandbox/sandbox.module.js +36 -0
  908. package/dist/sandbox/sandbox.service.d.ts +359 -151
  909. package/dist/sandbox/sandbox.service.js +950 -435
  910. package/dist/sandbox/unreachable.d.ts +30 -0
  911. package/dist/sandbox/unreachable.js +108 -0
  912. package/dist/skills/catalog.d.ts +40 -26
  913. package/dist/skills/catalog.js +120 -99
  914. package/dist/skills/changes.controller.d.ts +11 -4
  915. package/dist/skills/changes.controller.js +34 -9
  916. package/dist/skills/changes.service.d.ts +31 -21
  917. package/dist/skills/changes.service.js +426 -368
  918. package/dist/skills/invocable.controller.d.ts +2 -2
  919. package/dist/skills/invocable.controller.js +10 -7
  920. package/dist/skills/invocation-keys.d.ts +1 -1
  921. package/dist/skills/invocation-keys.js +1 -1
  922. package/dist/skills/invoke.d.ts +19 -18
  923. package/dist/skills/invoke.js +68 -24
  924. package/dist/skills/package.d.ts +20 -1
  925. package/dist/skills/package.js +28 -1
  926. package/dist/skills/skills.controller.d.ts +33 -7
  927. package/dist/skills/skills.controller.js +79 -12
  928. package/dist/skills/skills.module.d.ts +6 -0
  929. package/dist/skills/skills.module.js +39 -0
  930. package/dist/skills/skills.schemas.d.ts +48 -0
  931. package/dist/skills/skills.schemas.js +61 -0
  932. package/dist/skills/skills.service.d.ts +151 -44
  933. package/dist/skills/skills.service.js +636 -204
  934. package/dist/skills/usable.d.ts +81 -0
  935. package/dist/skills/usable.js +379 -0
  936. package/dist/storage/job-ids.d.ts +6 -0
  937. package/dist/storage/job-ids.js +6 -0
  938. package/dist/storage/purge.d.ts +22 -7
  939. package/dist/storage/purge.js +55 -3
  940. package/dist/storage/storage.module.d.ts +6 -0
  941. package/dist/storage/storage.module.js +23 -0
  942. package/dist/storage/storage.service.d.ts +18 -4
  943. package/dist/storage/storage.service.js +44 -3
  944. package/dist/time-zone.d.ts +5 -0
  945. package/dist/time-zone.js +19 -0
  946. package/dist/tools/approvals.controller.d.ts +1 -1
  947. package/dist/tools/approvals.controller.js +14 -11
  948. package/dist/tools/approvals.schemas.d.ts +21 -0
  949. package/dist/tools/approvals.schemas.js +15 -0
  950. package/dist/tools/approvals.service.d.ts +53 -27
  951. package/dist/tools/approvals.service.js +365 -260
  952. package/dist/tools/breaker.d.ts +2 -2
  953. package/dist/tools/breaker.js +21 -3
  954. package/dist/tools/builtin-names.d.ts +109 -0
  955. package/dist/tools/builtin-names.js +173 -0
  956. package/dist/tools/builtins/agent.d.ts +27 -25
  957. package/dist/tools/builtins/agent.js +66 -63
  958. package/dist/tools/builtins/ask-user.d.ts +3 -3
  959. package/dist/tools/builtins/ask-user.js +3 -3
  960. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  961. package/dist/tools/builtins/builtin-tools.js +151 -0
  962. package/dist/tools/builtins/current-time.d.ts +26 -0
  963. package/dist/tools/builtins/current-time.js +99 -0
  964. package/dist/tools/builtins/handback.d.ts +28 -0
  965. package/dist/tools/builtins/handback.js +53 -0
  966. package/dist/tools/builtins/platform.d.ts +51 -0
  967. package/dist/tools/builtins/platform.js +451 -0
  968. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  969. package/dist/tools/builtins/read-tool-output.js +3 -3
  970. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  971. package/dist/tools/builtins/sandbox/bash.js +293 -41
  972. package/dist/tools/builtins/sandbox/common.d.ts +142 -40
  973. package/dist/tools/builtins/sandbox/common.js +227 -65
  974. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  976. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/edit.js +65 -51
  978. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  979. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  980. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  981. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  982. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  983. package/dist/tools/builtins/sandbox/glob.js +19 -14
  984. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  985. package/dist/tools/builtins/sandbox/grep.js +155 -36
  986. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  987. package/dist/tools/builtins/sandbox/index.js +13 -5
  988. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  989. package/dist/tools/builtins/sandbox/read.js +30 -20
  990. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  991. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  992. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  993. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  994. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  995. package/dist/tools/builtins/sandbox/write.js +52 -45
  996. package/dist/tools/builtins/send-message.d.ts +56 -0
  997. package/dist/tools/builtins/send-message.js +100 -0
  998. package/dist/tools/builtins/skill-load.d.ts +32 -21
  999. package/dist/tools/builtins/skill-load.js +125 -74
  1000. package/dist/tools/builtins/skill-write.d.ts +4 -4
  1001. package/dist/tools/builtins/skill-write.js +12 -12
  1002. package/dist/tools/builtins/tool-search.d.ts +13 -9
  1003. package/dist/tools/builtins/tool-search.js +25 -14
  1004. package/dist/tools/builtins/web/errors.d.ts +8 -0
  1005. package/dist/tools/builtins/web/errors.js +53 -0
  1006. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1007. package/dist/tools/builtins/web/extract.js +271 -0
  1008. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1009. package/dist/tools/builtins/web/fetch.js +175 -0
  1010. package/dist/tools/builtins/web/index.d.ts +13 -0
  1011. package/dist/tools/builtins/web/index.js +12 -0
  1012. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1013. package/dist/tools/builtins/web/page-cache.js +77 -0
  1014. package/dist/tools/builtins/web/search.d.ts +25 -0
  1015. package/dist/tools/builtins/web/search.js +210 -0
  1016. package/dist/tools/builtins/web/url.d.ts +17 -0
  1017. package/dist/tools/builtins/web/url.js +43 -0
  1018. package/dist/tools/canonical-json.d.ts +6 -0
  1019. package/dist/tools/canonical-json.js +16 -0
  1020. package/dist/tools/connector-content.controller.d.ts +1 -1
  1021. package/dist/tools/connector-content.controller.js +11 -6
  1022. package/dist/tools/connector-content.d.ts +12 -15
  1023. package/dist/tools/connector-content.js +53 -18
  1024. package/dist/tools/connectors.controller.d.ts +16 -3
  1025. package/dist/tools/connectors.controller.js +34 -14
  1026. package/dist/tools/connectors.schemas.d.ts +12 -0
  1027. package/dist/tools/connectors.schemas.js +19 -0
  1028. package/dist/tools/connectors.service.d.ts +80 -18
  1029. package/dist/tools/connectors.service.js +529 -358
  1030. package/dist/tools/credentials.d.ts +20 -20
  1031. package/dist/tools/credentials.js +55 -34
  1032. package/dist/tools/display-names.d.ts +9 -0
  1033. package/dist/tools/display-names.js +24 -0
  1034. package/dist/tools/drift.d.ts +29 -41
  1035. package/dist/tools/drift.js +116 -84
  1036. package/dist/tools/elicitation.js +1 -1
  1037. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1038. package/dist/tools/extension-tools.controller.js +37 -0
  1039. package/dist/tools/info.d.ts +73 -13
  1040. package/dist/tools/info.js +151 -39
  1041. package/dist/tools/job-ids.d.ts +13 -0
  1042. package/dist/tools/job-ids.js +15 -0
  1043. package/dist/tools/jobs.d.ts +24 -0
  1044. package/dist/tools/jobs.js +69 -0
  1045. package/dist/tools/legacy-data.d.ts +34 -0
  1046. package/dist/tools/legacy-data.js +76 -0
  1047. package/dist/tools/legacy-keys.d.ts +51 -0
  1048. package/dist/tools/legacy-keys.js +115 -0
  1049. package/dist/tools/naming.d.ts +1 -5
  1050. package/dist/tools/naming.js +1 -7
  1051. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1052. package/dist/tools/oauth/flow-paths.js +38 -0
  1053. package/dist/tools/oauth/flow.d.ts +30 -30
  1054. package/dist/tools/oauth/flow.js +109 -81
  1055. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1056. package/dist/tools/oauth/oauth.controller.js +12 -9
  1057. package/dist/tools/oauth/tokens.d.ts +45 -10
  1058. package/dist/tools/oauth/tokens.js +70 -24
  1059. package/dist/tools/org-tool-switches.d.ts +88 -0
  1060. package/dist/tools/org-tool-switches.js +201 -0
  1061. package/dist/tools/outputs.d.ts +13 -4
  1062. package/dist/tools/outputs.js +48 -4
  1063. package/dist/tools/pipeline.d.ts +108 -80
  1064. package/dist/tools/pipeline.js +396 -409
  1065. package/dist/tools/policy.d.ts +4 -17
  1066. package/dist/tools/policy.js +49 -35
  1067. package/dist/tools/questions.controller.d.ts +2 -2
  1068. package/dist/tools/questions.controller.js +9 -6
  1069. package/dist/tools/questions.service.d.ts +26 -25
  1070. package/dist/tools/questions.service.js +201 -142
  1071. package/dist/tools/registry.d.ts +215 -84
  1072. package/dist/tools/registry.js +382 -264
  1073. package/dist/tools/resources.d.ts +1 -1
  1074. package/dist/tools/resources.js +1 -1
  1075. package/dist/tools/specs.d.ts +5 -4
  1076. package/dist/tools/specs.js +3 -1
  1077. package/dist/tools/tools.module.d.ts +10 -0
  1078. package/dist/tools/tools.module.js +113 -0
  1079. package/dist/tools/validate.js +1 -1
  1080. package/dist/ui/call-extension.d.ts +16 -0
  1081. package/dist/ui/call-extension.js +38 -0
  1082. package/dist/ui/embed-token.d.ts +9 -5
  1083. package/dist/ui/embed-token.js +34 -6
  1084. package/dist/ui/ui-stream.d.ts +22 -17
  1085. package/dist/ui/ui-stream.js +72 -12
  1086. package/dist/ui/ui.module.d.ts +7 -0
  1087. package/dist/ui/ui.module.js +28 -0
  1088. package/dist/ui/views.controller.d.ts +14 -12
  1089. package/dist/ui/views.controller.js +32 -25
  1090. package/dist/ui/views.d.ts +10 -57
  1091. package/dist/ui/views.js +58 -46
  1092. package/package.json +15 -3
  1093. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1094. package/src/migrations/0064_account_last_org.sql +7 -0
  1095. package/src/migrations/0065_conversation_archive.sql +8 -0
  1096. package/src/migrations/0066_extension_display_name.sql +4 -0
  1097. package/src/migrations/0067_agent_profiles.sql +20 -0
  1098. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1099. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1100. package/src/migrations/0070_background_tasks.sql +37 -0
  1101. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1102. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1103. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1104. package/src/migrations/0074_subagent_tree.sql +50 -0
  1105. package/src/migrations/0075_plugin_scope.sql +61 -0
  1106. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1107. package/src/migrations/0077_scope_requests.sql +52 -0
  1108. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1109. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1110. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1111. package/src/migrations/0081_platform_components.sql +129 -0
  1112. package/src/migrations/0082_platform_migration.sql +33 -0
  1113. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1114. package/src/migrations/0084_org_owned_items.sql +85 -0
  1115. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1116. package/src/migrations/0086_org_layering.sql +30 -0
  1117. package/src/migrations/0087_approval_summary.sql +6 -0
  1118. package/src/migrations/0088_environments.sql +80 -0
  1119. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1120. package/src/migrations/0090_initial_passwords.sql +27 -0
  1121. package/src/migrations/0091_account_time_zone.sql +4 -0
  1122. package/src/migrations/0092_tools_default_on.sql +27 -0
  1123. package/src/migrations/0093_connected_environments.sql +37 -0
  1124. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1125. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1126. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1127. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1128. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1129. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1130. package/src/migrations/0100_catalog_files.sql +13 -0
  1131. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1132. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1133. package/dist/catalog/upgrade-targets.js +0 -90
  1134. package/dist/conversations/sandbox-status.d.ts +0 -21
  1135. package/dist/conversations/sandbox-status.js +0 -24
  1136. package/dist/extensions/org-config.controller.d.ts +0 -24
  1137. package/dist/extensions/org-config.controller.js +0 -59
  1138. package/dist/http/gateway.module.js +0 -13
  1139. package/dist/http/health.controller.d.ts +0 -26
  1140. package/dist/http/health.controller.js +0 -79
  1141. package/dist/http/tokens.d.ts +0 -131
  1142. package/dist/http/tokens.js +0 -131
  1143. package/dist/http/zod.pipe.d.ts +0 -8
  1144. package/dist/http/zod.pipe.js +0 -14
  1145. package/dist/identity/enterprise-admin.d.ts +0 -14
  1146. package/dist/identity/enterprise-admin.js +0 -27
  1147. package/dist/identity/rate-limit.d.ts +0 -55
  1148. package/dist/identity/rate-limit.js +0 -121
  1149. package/dist/sandbox/lifecycle.d.ts +0 -21
  1150. package/dist/sandbox/lifecycle.js +0 -68
  1151. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1152. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -1,25 +1,59 @@
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
+ };
1
10
  import { EXTENSION_POINTS, parseExtensionPoint, } from "@capybara-hq/plugin-sdk";
2
- import { assertItemInstallable, assertPluginSourcesInstallable, disabledPluginItems, pluginItemDisabled, } from "../catalog/requests.service.js";
11
+ import { Inject, Injectable } from "@nestjs/common";
12
+ import { assertItemInstallable, assertPluginSourcesInstallable, disabledPluginItems, pluginItemDisabled, } from "../catalog/request-rules.js";
13
+ import { visibleTo } from "../catalog/scope.js";
3
14
  import { changedPaths, configFields, getPath, secretValues } from "../config/fields.js";
4
15
  import { createSecrets } from "../ctx/secrets.js";
5
16
  import { ApiError } from "../errors.js";
6
17
  import { audit } from "../identity/audit.js";
7
- import { lockOrgAndAuthorize } from "../orgs/org-lock.js";
8
- import { configToJsonSchema } from "./config-json-schema.js";
18
+ import { afterCommit } from "../infra/database/after-commit.js";
19
+ import { KernelDb } from "../infra/database/kernel-db.js";
20
+ import { TransactionHost } from "../infra/database/transaction-host.js";
21
+ import { Transactional } from "../infra/database/transactional.decorator.js";
22
+ import { KernelEvents } from "../infra/events/kernel-events.js";
23
+ import { KERNEL_LOGGER, KEYRING } from "../infra/tokens.js";
24
+ import { OrgLock } from "../orgs/org-lock.js";
25
+ import { toIssues } from "./config-issues.js";
26
+ import { configMessages, safeConfigFormSchema } from "./config-json-schema.js";
27
+ import { EffectiveConfigs } from "./effective-config.js";
9
28
  import { enabledExtensionsQuery, requiredExtensions } from "./enabled.js";
10
- import { permissionGroups } from "./permission-view.js";
29
+ import { ExtensionHost } from "./host.js";
30
+ import { ExtensionInstalls } from "./installs.js";
31
+ import { fieldLevels } from "./org-levels.js";
32
+ import { permissionGroups, } from "./permission-view.js";
33
+ import { itemLocked, pluginItemsOf } from "./plugin-items.js";
34
+ import { ExtensionAvailability } from "./unavailable.js";
35
+ export { toIssues };
11
36
  /** 内核自己的 secrets 命名空间(plugin-sdk 把 `kernel` 列为保留插件名,插件不会与之相撞)。 */
12
37
  const SECRETS_NAMESPACE = "kernel";
13
38
  const secretKey = (plugin, path) => `plugin-config:${plugin}:${path}`;
14
- /** 清单不可变:每个组织级 schema 的 JSON Schema 转换结果按 schema 对象缓存(只读、无跨请求状态)。 */
15
- const jsonSchemaCache = new WeakMap();
16
- function orgJsonSchema(schema) {
17
- let js = jsonSchemaCache.get(schema);
18
- if (!js) {
19
- js = configToJsonSchema(schema);
20
- jsonSchemaCache.set(schema, js);
21
- }
22
- return structuredClone(js);
39
+ /** The extension points an extension provides, from its permission list's `provides` group. */
40
+ export function providesOf(view) {
41
+ return view.permissions.filter((g) => g.category === "provides").flatMap((g) => g.items);
42
+ }
43
+ /**
44
+ * The scope part of an org view: the extension's primary plugin and whether the org can switch it.
45
+ * With several source items, a builtin one locks the extension on (scope `all`); an `all` one does
46
+ * not (layering spec §4).
47
+ */
48
+ function scopeFields(items, required) {
49
+ const primary = items?.[0];
50
+ if (!primary)
51
+ return { catalogItem: null, switchable: !required };
52
+ const locked = required || items.some(itemLocked);
53
+ return {
54
+ catalogItem: { itemId: primary.id, scope: locked ? "all" : primary.scope },
55
+ switchable: !locked,
56
+ };
23
57
  }
24
58
  const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
25
59
  /** 按点路径设值,缺失的中间对象自动创建;中间节点不是对象时放弃(交给 schema 校验报错)。 */
@@ -48,37 +82,6 @@ function deleteDeep(obj, path) {
48
82
  if (isObj(node))
49
83
  delete node[segs[segs.length - 1]];
50
84
  }
51
- /** 由 issue 类型与结构字段生成说明;不用 zod 的 message(自定义消息可能拼入输入值)。 */
52
- function issueMessage(i) {
53
- switch (i.code) {
54
- case "invalid_type":
55
- return `expected ${i.expected}`;
56
- case "too_small":
57
- return `too small (minimum ${String(i.minimum)})`;
58
- case "too_big":
59
- return `too big (maximum ${String(i.maximum)})`;
60
- case "invalid_format":
61
- return `invalid ${i.format}`;
62
- case "not_multiple_of":
63
- return `not a multiple of ${String(i.divisor)}`;
64
- case "unrecognized_keys":
65
- return "unrecognized keys";
66
- case "invalid_union":
67
- return "no union member matched";
68
- case "invalid_key":
69
- return "invalid key";
70
- case "invalid_element":
71
- return "invalid element";
72
- default:
73
- return "invalid value";
74
- }
75
- }
76
- export function toIssues(error) {
77
- return error.issues.map((i) => ({
78
- path: i.path.map(String).join("."),
79
- message: issueMessage(i),
80
- }));
81
- }
82
85
  /** 插件组织级 schema 中标记 secret 的叶子点路径(对象路径之外的 secret 已在插件加载时拒绝)。 */
83
86
  function secretPaths(schema) {
84
87
  return configFields(schema)
@@ -92,69 +95,172 @@ function secretPaths(schema) {
92
95
  * written in the same transaction as the config row.
93
96
  * No in-process state: every call reads PG, safe with multiple replicas.
94
97
  */
95
- export class OrgExtensionConfigs {
96
- db;
98
+ let OrgExtensionConfigs = class OrgExtensionConfigs {
99
+ kdb;
100
+ txHost;
97
101
  keyring;
98
102
  host;
99
- hooks;
100
- constructor(db, keyring, host, hooks = {}) {
101
- this.db = db;
103
+ orgLock;
104
+ installs;
105
+ events;
106
+ log;
107
+ effective;
108
+ availability;
109
+ /** Test seam only: a deterministic interleaving point after the config rows are read, before the secrets. */
110
+ afterConfigRowRead;
111
+ constructor(kdb, txHost, keyring, host,
112
+ /** The org row lock (orgs/org-lock.ts): joins the transaction. */
113
+ orgLock,
114
+ /** Install records (any desired state): the ones not loaded are listed unavailable (T14). */
115
+ installs,
116
+ /** `extension.org-disabled` after a disable commits (channel connections drop at once). */
117
+ events,
118
+ /** Secret values handled (written or decrypted) are masked in the logs after the commit. */
119
+ log,
120
+ /** The effective deployment config of each org (spec A §6): read for `needsConfig`. */
121
+ effective,
122
+ /** Why an installed extension is not loaded (`status` / `reason` of the unavailable ones). */
123
+ availability) {
124
+ this.kdb = kdb;
125
+ this.txHost = txHost;
102
126
  this.keyring = keyring;
103
127
  this.host = host;
104
- this.hooks = hooks;
128
+ this.orgLock = orgLock;
129
+ this.installs = installs;
130
+ this.events = events;
131
+ this.log = log;
132
+ this.effective = effective;
133
+ this.availability = availability;
134
+ }
135
+ /** The kernel-schema handle of the current transaction. */
136
+ get db() {
137
+ return this.kdb.db;
105
138
  }
106
- /** 把一份组织配置里的密钥值交给 onSecrets(无回调或无密钥时无操作);调用方须在事务提交后调用。 */
139
+ /** 把一份组织配置里的密钥值登记到日志打码(无密钥时无操作);调用方须在事务提交后调用。 */
107
140
  reportSecrets(found) {
108
- if (!found || !this.hooks.onSecrets)
141
+ if (!found)
109
142
  return;
110
143
  const values = secretValues(found.schema, found.config);
111
144
  if (values.length > 0)
112
- this.hooks.onSecrets(values);
145
+ this.log.addOrgSecrets(values);
113
146
  }
114
- /** `REPEATABLE READ` 只读事务:配置行与密钥来自同一个快照,不会读到跨两次提交的混合状态。 */
115
- snapshot(fn) {
116
- return this.db
117
- .transaction()
118
- .setIsolationLevel("repeatable read")
119
- .setAccessMode("read only")
120
- .execute(fn);
147
+ /** After a write committed: a disabled extension's channel connections drop at once. */
148
+ async afterPut(orgId, plugin, enabled) {
149
+ if (!enabled)
150
+ await this.events.emit("extension.org-disabled", { orgId, plugin });
121
151
  }
122
152
  /**
123
- * 列出所有已加载插件在该组织下的状态(按加载顺序);无记录时 enabled=false、config=null。
124
- * 之后是已安装但此刻没加载的插件(部署上停用等),`available: false`,按名字排序。
153
+ * The state of every loaded extension the org sees, in load order (no row: `enabled` false,
154
+ * `config` null), then the installed extensions not loaded right now (disabled on the deployment
155
+ * and the like) as `available: false`, sorted by name.
125
156
  */
126
157
  async list(orgId) {
127
- const installed = (await this.hooks.installed?.()) ?? [];
128
- return this.snapshot(async (t) => {
129
- const rows = await t
130
- .selectFrom("extension_org_configs")
131
- .select(["plugin", "enabled", "config"])
132
- .where("org_id", "=", orgId)
133
- .execute();
134
- await this.hooks.afterConfigRowRead?.();
135
- const setKeys = await this.setSecretKeys(t, orgId);
136
- // Required bootstrap plugins are listed enabled (no org config row needed, spec §7)
137
- const required = await requiredExtensions(t);
138
- const loaded = this.host.manifests();
139
- const views = loaded.map((m) => this.view(m, rows.find((r) => r.plugin === m.name), setKeys, required.has(m.name)));
140
- const names = new Set(loaded.map((m) => m.name));
141
- const unavailable = installed
142
- .filter((i) => !names.has(i.name))
143
- .sort((a, b) => a.name.localeCompare(b.name))
144
- .map((i) => ({
145
- plugin: i.name,
146
- version: i.version,
147
- enabled: required.has(i.name) || (rows.find((r) => r.plugin === i.name)?.enabled ?? false),
148
- configurable: false,
149
- config: null,
150
- secrets: [],
151
- permissions: [],
152
- orgConfigSchema: null,
153
- available: false,
154
- required: required.has(i.name),
155
- }));
156
- return [...views, ...unavailable];
157
- });
158
+ const installed = (await this.installs.list()).map((r) => ({
159
+ name: r.name,
160
+ version: r.version,
161
+ }));
162
+ const views = await this.listSnapshot(orgId, installed);
163
+ const why = await this.availability.unavailable(views.filter((v) => !v.available).map((v) => v.plugin));
164
+ for (const v of views) {
165
+ const u = why.get(v.plugin);
166
+ if (v.available || u === undefined || u.status === null)
167
+ continue;
168
+ v.status = u.status;
169
+ v.reason = u.reason;
170
+ }
171
+ return this.withLayers(orgId, views);
172
+ }
173
+ /**
174
+ * Fills `overrideState` and the platform half of `needsConfig` (spec A §6) for the views of
175
+ * extensions with overridable fields (the others always run with the platform's config, which
176
+ * loaded valid). Reads the org's copy rows once and the effective config of each such extension.
177
+ */
178
+ async withLayers(orgId, views) {
179
+ const layered = views.filter((v) => v.overrideState !== "none");
180
+ if (layered.length === 0)
181
+ return views;
182
+ const copies = new Set((await this.db
183
+ .selectFrom("extension_org_overrides")
184
+ .select("plugin")
185
+ .where("org_id", "=", orgId)
186
+ .where("plugin", "in", layered.map((v) => v.plugin))
187
+ .execute()).map((r) => r.plugin));
188
+ for (const v of layered) {
189
+ v.overrideState = copies.has(v.plugin) ? "copy" : "following";
190
+ if (!(await this.effective.get(orgId, v.plugin)).ok)
191
+ v.needsConfig = true;
192
+ }
193
+ return views;
194
+ }
195
+ /** `REPEATABLE READ` read-only: the config rows and the secrets come from one snapshot. */
196
+ async listSnapshot(orgId, installed) {
197
+ const t = this.db;
198
+ const rows = await t
199
+ .selectFrom("extension_org_configs")
200
+ .select(["plugin", "enabled", "config"])
201
+ .where("org_id", "=", orgId)
202
+ .execute();
203
+ await this.afterConfigRowRead?.();
204
+ const setKeys = await this.setSecretKeys(t, orgId);
205
+ // Required bootstrap plugins are listed enabled (no org config row needed, spec §7)
206
+ const required = await requiredExtensions(t);
207
+ const loaded = this.host.manifests();
208
+ const items = await pluginItemsOf(t, [
209
+ ...loaded.map((m) => m.name),
210
+ ...installed.map((i) => i.name),
211
+ ]);
212
+ // An extension whose plugin the org is not offered (a `named` plugin without it) is absent
213
+ const listed = new Set((await t
214
+ .selectFrom("catalog_item_scope_orgs")
215
+ .select("item_id")
216
+ .where("org_id", "=", orgId)
217
+ .execute()).map((r) => r.item_id));
218
+ const seen = (name) => required.has(name) || itemsVisible(items.get(name), listed);
219
+ const views = loaded
220
+ .filter((m) => seen(m.name))
221
+ .map((m) => this.view(m, rows.find((r) => r.plugin === m.name), setKeys, required.has(m.name), items.get(m.name)));
222
+ const names = new Set(loaded.map((m) => m.name));
223
+ const unavailable = installed
224
+ .filter((i) => !names.has(i.name) && seen(i.name))
225
+ .sort((a, b) => a.name.localeCompare(b.name))
226
+ .map((i) => ({
227
+ plugin: i.name,
228
+ version: i.version,
229
+ enabled: required.has(i.name) || (rows.find((r) => r.plugin === i.name)?.enabled ?? false),
230
+ configurable: false,
231
+ config: null,
232
+ secrets: [],
233
+ permissions: [],
234
+ orgConfigSchema: null,
235
+ available: false,
236
+ // filled in by `list` from the replicas' reports
237
+ status: "converging",
238
+ reason: "loading",
239
+ required: required.has(i.name),
240
+ ...scopeFields(items.get(i.name), required.has(i.name)),
241
+ overrideState: "none",
242
+ needsConfig: false,
243
+ }));
244
+ return [...views, ...unavailable];
245
+ }
246
+ /**
247
+ * How an `enabled` write of this extension is handled: `direct` through {@link put} (a required
248
+ * bootstrap plugin keeps `extension.required`; an extension without a live item is config-declared;
249
+ * several live items keep the direct write, the strictest source rules applying), `locked` (a live
250
+ * item is builtin and the write switches off: `plugin.scope_locked`), or `item` (the single plugin
251
+ * whose org switch it is).
252
+ */
253
+ async switchPlan(plugin, enabled) {
254
+ const t = this.db;
255
+ if ((await requiredExtensions(t)).has(plugin))
256
+ return { kind: "direct" };
257
+ const items = (await pluginItemsOf(t, [plugin])).get(plugin);
258
+ if (!items)
259
+ return { kind: "direct" };
260
+ if (!enabled && items.some(itemLocked))
261
+ return { kind: "locked" };
262
+ const [only] = items;
263
+ return items.length === 1 && only ? { kind: "item", itemId: only.id } : { kind: "direct" };
158
264
  }
159
265
  /**
160
266
  * Writes enablement and / or config. The actor's role is re-read under the org row lock (needs
@@ -167,149 +273,172 @@ export class OrgExtensionConfigs {
167
273
  * - The merged full config (or, without `config`, the existing config when the result is enabled)
168
274
  * does not satisfy the schema -> `extension.config_invalid`.
169
275
  */
170
- async put(orgId, plugin, input, actorAccountId, actorTokenId, opts = {}) {
276
+ async put(orgId, plugin, input,
277
+ /** null: the kernel itself (the plugin scope sync installing a plugin), no role check. */
278
+ actorAccountId, actorTokenId, opts = {}) {
171
279
  const manifest = this.manifest(plugin);
172
280
  const schema = manifest.config?.org;
173
281
  if (input.config !== undefined && !schema) {
174
282
  throw new ApiError("extension.no_org_config", `Extension ${plugin} has no organization config`);
175
283
  }
284
+ const view = await this.write(orgId, plugin, manifest, input, actorAccountId, actorTokenId, opts);
285
+ return (await this.withLayers(orgId, [view]))[0];
286
+ }
287
+ async write(orgId, plugin, manifest, input, actorAccountId, actorTokenId, opts) {
288
+ const schema = manifest.config?.org;
176
289
  let seen;
177
- const view = await this.db.transaction().execute(async (t) => {
178
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "org.extensions.manage");
179
- const row = await t
180
- .selectFrom("extension_org_configs")
181
- .select(["enabled", "config"])
182
- .where("plugin", "=", plugin)
183
- .where("org_id", "=", orgId)
184
- .executeTakeFirst();
185
- const required = (await requiredExtensions(t)).has(plugin);
186
- if (required && input.enabled === false)
187
- throw requiredError(plugin);
188
- if (opts.ifDisabled && (row?.enabled === true || required)) {
189
- opts.ifDisabled.skipped = true;
190
- await opts.inTransaction?.(t, true);
191
- return this.view(manifest, row, await this.setSecretKeys(t, orgId), required);
192
- }
193
- // A required plugin is enabled whatever the row said (it may predate `required`)
194
- const enabled = required || (input.enabled ?? row?.enabled ?? false);
195
- // 新启用来自企业目录的插件:按条目策略与授予复核(C22;已启用的不受影响)
196
- if (input.enabled === true && row?.enabled !== true && !required) {
197
- // 插件自己的条目 disabled 是总开关,任何途径都不能新启用(裁决 M-5)
198
- const killed = await disabledPluginItems(t, [plugin]);
199
- if (killed.length > 0)
200
- throw pluginItemDisabled(killed);
201
- // 经某个条目安装:只看该条目(应用里的插件按应用条目,C22);直接启用:全部来源里最严格的生效
202
- if (opts.viaItem !== undefined) {
203
- await assertItemInstallable(t, orgId, opts.viaItem, opts.approvedBy ?? opts.viaItem);
204
- }
205
- else
206
- await assertPluginSourcesInstallable(t, orgId, plugin);
207
- }
208
- if (input.enabled === true)
209
- await this.assertDependenciesEnabled(t, orgId, manifest);
210
- else if (input.enabled === false && !input.force) {
211
- await this.assertNoEnabledDependents(t, orgId, manifest);
290
+ const t = this.db;
291
+ await this.orgLock.lockFor(orgId, actorAccountId, "org.extensions.manage");
292
+ const row = await t
293
+ .selectFrom("extension_org_configs")
294
+ .select(["enabled", "config"])
295
+ .where("plugin", "=", plugin)
296
+ .where("org_id", "=", orgId)
297
+ .executeTakeFirst();
298
+ const required = (await requiredExtensions(t)).has(plugin);
299
+ const item = (await pluginItemsOf(t, [plugin])).get(plugin);
300
+ if (required && input.enabled === false)
301
+ throw requiredError(plugin);
302
+ if (opts.ifDisabled && (row?.enabled === true || required)) {
303
+ opts.ifDisabled.skipped = true;
304
+ return this.view(manifest, row, await this.setSecretKeys(t, orgId), required, item);
305
+ }
306
+ // A required plugin is enabled whatever the row said (it may predate `required`)
307
+ const enabled = required || (input.enabled ?? row?.enabled ?? false);
308
+ // validateOnly: the rules for (newly) enabling and disabling belong to the write that follows
309
+ if (!opts.validateOnly) {
310
+ await this.assertSwitchRules(t, orgId, manifest, input, row, required, opts);
311
+ }
312
+ let plain = row?.config ?? null;
313
+ let changed = [];
314
+ if (schema) {
315
+ const secrets = createSecrets(t, this.keyring, SECRETS_NAMESPACE);
316
+ const paths = secretPaths(schema);
317
+ const before = structuredClone(plain ?? {});
318
+ for (const p of paths) {
319
+ const v = await secrets.get(orgId, secretKey(plugin, p));
320
+ if (v !== null)
321
+ setDeep(before, p, JSON.parse(v));
212
322
  }
213
- let plain = row?.config ?? null;
214
- let changed = [];
215
- if (schema) {
216
- const secrets = createSecrets(t, this.keyring, SECRETS_NAMESPACE);
217
- const paths = secretPaths(schema);
218
- const before = structuredClone(plain ?? {});
323
+ let next;
324
+ if (input.config !== undefined) {
325
+ next = structuredClone(input.config);
219
326
  for (const p of paths) {
220
- const v = await secrets.get(orgId, secretKey(plugin, p));
221
- if (v !== null)
222
- setDeep(before, p, JSON.parse(v));
223
- }
224
- let next;
225
- if (input.config !== undefined) {
226
- next = structuredClone(input.config);
227
- for (const p of paths) {
228
- const v = getPath(input.config, p);
229
- if (v === null)
230
- deleteDeep(next, p);
231
- else if (v === undefined) {
232
- const old = getPath(before, p);
233
- if (old !== undefined)
234
- setDeep(next, p, old);
235
- }
236
- }
237
- }
238
- else {
239
- next = before;
240
- }
241
- if (input.config !== undefined || enabled) {
242
- const r = schema.safeParse(next);
243
- if (!r.success) {
244
- throw new ApiError("extension.config_invalid", `Invalid organization config for extension ${plugin}`, toIssues(r.error));
327
+ const v = getPath(input.config, p);
328
+ if (v === null)
329
+ deleteDeep(next, p);
330
+ else if (v === undefined) {
331
+ const old = getPath(before, p);
332
+ if (old !== undefined)
333
+ setDeep(next, p, old);
245
334
  }
246
- next = r.data;
247
335
  }
248
- seen = { schema, config: next };
249
- if (input.config !== undefined) {
250
- changed = changedPaths(schema, before, next);
251
- plain = structuredClone(next);
252
- for (const p of paths) {
253
- const v = getPath(next, p);
254
- deleteDeep(plain, p);
255
- if (v === undefined)
256
- await secrets.delete(orgId, secretKey(plugin, p));
257
- else
258
- await secrets.set(orgId, secretKey(plugin, p), JSON.stringify(v));
259
- }
336
+ }
337
+ else {
338
+ next = before;
339
+ }
340
+ if (input.config !== undefined || enabled) {
341
+ const r = schema.safeParse(next);
342
+ if (!r.success) {
343
+ throw new ApiError("extension.config_invalid", `Invalid organization config for extension ${plugin}`, toIssues(r.error, configMessages(this.formSchema(plugin, manifest.version, schema))));
260
344
  }
345
+ next = r.data;
261
346
  }
262
- // 当前 schema 中已不存在的密钥路径:同一事务内清掉遗留的密文行
263
- const live = new Set((schema ? secretPaths(schema) : []).map((p) => secretKey(plugin, p)));
264
- const prefix = secretKey(plugin, "");
265
- const cleanup = createSecrets(t, this.keyring, SECRETS_NAMESPACE);
266
- for (const key of await this.setSecretKeys(t, orgId)) {
267
- if (key.startsWith(prefix) && !live.has(key))
268
- await cleanup.delete(orgId, key);
347
+ seen = { schema, config: next };
348
+ if (!opts.validateOnly && input.config !== undefined) {
349
+ changed = changedPaths(schema, before, next);
350
+ plain = structuredClone(next);
351
+ for (const p of paths) {
352
+ const v = getPath(next, p);
353
+ deleteDeep(plain, p);
354
+ if (v === undefined)
355
+ await secrets.delete(orgId, secretKey(plugin, p));
356
+ else
357
+ await secrets.set(orgId, secretKey(plugin, p), JSON.stringify(v));
358
+ }
269
359
  }
270
- await t
271
- .insertInto("extension_org_configs")
272
- .values({
273
- plugin,
274
- org_id: orgId,
275
- enabled,
276
- config: plain === null ? null : JSON.stringify(plain),
277
- updated_by: actorAccountId,
278
- })
279
- .onConflict((oc) => oc.columns(["plugin", "org_id"]).doUpdateSet({
360
+ }
361
+ // Also without an org config schema: nothing is written
362
+ if (opts.validateOnly) {
363
+ return this.view(manifest, row, await this.setSecretKeys(t, orgId), required, item);
364
+ }
365
+ // 当前 schema 中已不存在的密钥路径:同一事务内清掉遗留的密文行
366
+ const live = new Set((schema ? secretPaths(schema) : []).map((p) => secretKey(plugin, p)));
367
+ const prefix = secretKey(plugin, "");
368
+ const cleanup = createSecrets(t, this.keyring, SECRETS_NAMESPACE);
369
+ for (const key of await this.setSecretKeys(t, orgId)) {
370
+ if (key.startsWith(prefix) && !live.has(key))
371
+ await cleanup.delete(orgId, key);
372
+ }
373
+ await t
374
+ .insertInto("extension_org_configs")
375
+ .values({
376
+ plugin,
377
+ org_id: orgId,
378
+ enabled,
379
+ config: plain === null ? null : JSON.stringify(plain),
380
+ updated_by: actorAccountId,
381
+ })
382
+ .onConflict((oc) => oc.columns(["plugin", "org_id"]).doUpdateSet({
383
+ enabled,
384
+ config: plain === null ? null : JSON.stringify(plain),
385
+ updated_by: actorAccountId,
386
+ updated_at: new Date(),
387
+ }))
388
+ .execute();
389
+ await audit(t, {
390
+ actorAccountId,
391
+ ...(actorTokenId !== undefined && { actorTokenId }),
392
+ orgId,
393
+ action: "org.plugin_config.updated",
394
+ target: plugin,
395
+ detail: {
280
396
  enabled,
281
- config: plain === null ? null : JSON.stringify(plain),
282
- updated_by: actorAccountId,
283
- updated_at: new Date(),
284
- }))
285
- .execute();
286
- await audit(t, {
287
- actorAccountId,
288
- ...(actorTokenId !== undefined && { actorTokenId }),
289
- orgId,
290
- action: "org.plugin_config.updated",
291
- target: plugin,
292
- detail: {
293
- enabled,
294
- changedPaths: changed,
295
- ...(opts.viaItem !== undefined && { catalogItemId: opts.viaItem }),
296
- },
297
- });
298
- await opts.inTransaction?.(t, false);
299
- // 在同一事务里读回,返回值就是刚提交的状态
300
- const saved = await t
301
- .selectFrom("extension_org_configs")
302
- .select(["plugin", "enabled", "config"])
303
- .where("plugin", "=", plugin)
304
- .where("org_id", "=", orgId)
305
- .executeTakeFirst();
306
- return this.view(manifest, saved, await this.setSecretKeys(t, orgId), required);
397
+ changedPaths: changed,
398
+ ...(opts.viaItem !== undefined && { catalogItemId: opts.viaItem }),
399
+ },
400
+ });
401
+ // 在同一事务里读回,返回值就是刚提交的状态
402
+ const saved = await t
403
+ .selectFrom("extension_org_configs")
404
+ .select(["plugin", "enabled", "config"])
405
+ .where("plugin", "=", plugin)
406
+ .where("org_id", "=", orgId)
407
+ .executeTakeFirst();
408
+ const view = this.view(manifest, saved, await this.setSecretKeys(t, orgId), required, item);
409
+ // Only once the root transaction committed (an outer caller's too): a rolled-back write
410
+ // registers no secrets and disconnects nothing
411
+ afterCommit(async () => {
412
+ this.reportSecrets(seen);
413
+ await this.afterPut(orgId, plugin, view.enabled);
307
414
  });
308
- // 事务已提交:回滚的写入不会走到这里
309
- this.reportSecrets(seen);
310
- await this.hooks.afterPut?.(orgId, plugin, view.enabled);
311
415
  return view;
312
416
  }
417
+ /**
418
+ * The rules of a write that switches: newly enabling an extension from the platform catalog
419
+ * re-checks the item policy and grants (C22; one already enabled is unaffected), enabling needs
420
+ * the dependencies enabled, disabling (without `force`) no enabled dependents.
421
+ */
422
+ async assertSwitchRules(t, orgId, manifest, input, row, required, opts) {
423
+ const plugin = manifest.name;
424
+ if (input.enabled === true && row?.enabled !== true && !required) {
425
+ // 插件自己的条目 disabled 是总开关,任何途径都不能新启用(裁决 M-5)
426
+ const killed = await disabledPluginItems(t, [plugin]);
427
+ if (killed.length > 0)
428
+ throw pluginItemDisabled(killed);
429
+ // 经某个条目安装:只看该条目(应用里的插件按应用条目,C22);直接启用:全部来源里最严格的生效
430
+ if (opts.viaItem !== undefined) {
431
+ await assertItemInstallable(t, orgId, opts.viaItem, opts.approvedBy ?? opts.viaItem);
432
+ }
433
+ else
434
+ await assertPluginSourcesInstallable(t, orgId, plugin);
435
+ }
436
+ if (input.enabled === true)
437
+ await this.assertDependenciesEnabled(t, orgId, manifest);
438
+ else if (input.enabled === false && !input.force) {
439
+ await this.assertNoEnabledDependents(t, orgId, manifest);
440
+ }
441
+ }
313
442
  /**
314
443
  * 读取并解密某插件在该组织下的完整配置(供运行时按组织构造插件实例)。
315
444
  * A required bootstrap plugin is enabled without a row (its stored config, or `{}`, is validated).
@@ -319,30 +448,33 @@ export class OrgExtensionConfigs {
319
448
  */
320
449
  async get(orgId, plugin) {
321
450
  const manifest = this.manifest(plugin);
322
- const result = await this.snapshot(async (t) => {
323
- const row = await t
324
- .selectFrom("extension_org_configs")
325
- .select(["enabled", "config"])
326
- .where("plugin", "=", plugin)
327
- .where("org_id", "=", orgId)
328
- .executeTakeFirst();
329
- await this.hooks.afterConfigRowRead?.();
330
- const required = (await requiredExtensions(t)).has(plugin);
331
- if (!row && !required)
332
- return undefined;
333
- const enabled = required || row?.enabled === true;
334
- const schema = manifest.config?.org;
335
- // 已停用的插件不会被实例化:不校验(可能是升级前存下的旧配置),也不解密密钥
336
- if (!schema || !enabled)
337
- return { enabled, config: null };
338
- return this.decode(t, orgId, plugin, schema, row?.config ?? {});
339
- });
451
+ const result = await this.getSnapshot(orgId, plugin, manifest);
340
452
  // 只读快照已结束;config 非 null 意味着插件有 org schema 且已解密
341
453
  const schema = manifest.config?.org;
342
454
  if (schema && result?.config != null)
343
455
  this.reportSecrets({ schema, config: result.config });
344
456
  return result;
345
457
  }
458
+ /** `REPEATABLE READ` read-only: the config row and the secrets come from one snapshot. */
459
+ async getSnapshot(orgId, plugin, manifest) {
460
+ const t = this.db;
461
+ const row = await t
462
+ .selectFrom("extension_org_configs")
463
+ .select(["enabled", "config"])
464
+ .where("plugin", "=", plugin)
465
+ .where("org_id", "=", orgId)
466
+ .executeTakeFirst();
467
+ await this.afterConfigRowRead?.();
468
+ const required = (await requiredExtensions(t)).has(plugin);
469
+ if (!row && !required)
470
+ return undefined;
471
+ const enabled = required || row?.enabled === true;
472
+ const schema = manifest.config?.org;
473
+ // 已停用的插件不会被实例化:不校验(可能是升级前存下的旧配置),也不解密密钥
474
+ if (!schema || !enabled)
475
+ return { enabled, config: null };
476
+ return this.decode(t, orgId, plugin, schema, row?.config ?? {});
477
+ }
346
478
  async decode(t, orgId, plugin, schema, stored) {
347
479
  const full = structuredClone(stored);
348
480
  const secrets = createSecrets(t, this.keyring, SECRETS_NAMESPACE);
@@ -362,9 +494,10 @@ export class OrgExtensionConfigs {
362
494
  }
363
495
  /**
364
496
  * 该组织里已启用、且所 requires 的按组织启用的能力只剩这个插件提供的插件(停用它会让它们失去依赖)。
365
- * 在调用方事务里读(应用卸载 / 回滚前判断是否保留)。
497
+ * 在调用方事务里读(应用卸载 / 回滚前判断是否保留;`mandatory`: the caller holds the org row lock).
366
498
  */
367
- async enabledDependents(t, orgId, plugin) {
499
+ async enabledDependents(orgId, plugin) {
500
+ const t = this.db;
368
501
  const manifest = this.host.manifests().find((m) => m.name === plugin);
369
502
  if (!manifest)
370
503
  return [];
@@ -391,7 +524,8 @@ export class OrgExtensionConfigs {
391
524
  * 在调用方事务里停用(应用安装的回滚与卸载用;调用方已锁组织行并复核角色):不检查依赖方,配置保留,
392
525
  * 审计 `org.plugin_config.updated`(带 reason)。提交后调用方须再调 {@link afterDisable}。
393
526
  */
394
- async disableIn(t, orgId, plugin, actorAccountId, reason) {
527
+ async disableIn(orgId, plugin, actorAccountId, reason) {
528
+ const t = this.db;
395
529
  // A required bootstrap plugin stays enabled in every org
396
530
  if ((await requiredExtensions(t)).has(plugin))
397
531
  return false;
@@ -416,7 +550,7 @@ export class OrgExtensionConfigs {
416
550
  }
417
551
  /** {@link disableIn} 的事务提交之后:通知停用(断开该插件的渠道连接等)。 */
418
552
  async afterDisable(orgId, plugin) {
419
- await this.hooks.afterPut?.(orgId, plugin, false);
553
+ await this.afterPut(orgId, plugin, false);
420
554
  }
421
555
  /** 该组织已启用的插件名(只含当前已加载的插件;待批准的不算;必需的引导插件始终算启用)。 */
422
556
  async enabledSet(t, orgId) {
@@ -483,7 +617,7 @@ export class OrgExtensionConfigs {
483
617
  throw new ApiError("extension.not_found", `Extension ${plugin} is not installed`);
484
618
  return set;
485
619
  }
486
- view(m, row, setKeys, required) {
620
+ view(m, row, setKeys, required, items) {
487
621
  const schema = m.config?.org;
488
622
  const paths = schema ? secretPaths(schema) : [];
489
623
  let config = null;
@@ -500,11 +634,27 @@ export class OrgExtensionConfigs {
500
634
  config,
501
635
  secrets: paths.map((p) => ({ path: p, set: setKeys.has(secretKey(m.name, p)) })),
502
636
  permissions: permissionGroups(this.permissionsOf(m.name)),
503
- orgConfigSchema: schema ? orgJsonSchema(schema) : null,
637
+ orgConfigSchema: schema ? this.formSchema(m.name, m.version, schema) : null,
504
638
  available: true,
639
+ status: "enabled",
505
640
  required,
641
+ ...scopeFields(items, required),
642
+ overrideState: [...fieldLevels(m.config?.deployment).values()].includes("override")
643
+ ? "following"
644
+ : "none",
645
+ needsConfig: schema !== undefined &&
646
+ orgConfigIncomplete(schema, config, (p) => setKeys.has(secretKey(m.name, p))),
506
647
  };
507
648
  }
649
+ /**
650
+ * The org schema's form JSON Schema, a copy (`x-ui` stripped when its hints are invalid; the host
651
+ * warns at load). Never throws: a hint conversion that throws serves the plain schema, or null
652
+ * (one warning per schema on this replica), so one hand-made package cannot fail the org's list.
653
+ */
654
+ formSchema(plugin, version, schema) {
655
+ const r = safeConfigFormSchema(schema, "org", (err, fallback) => this.log.warn("the org config form schema could not be built with its UI hints; hints dropped", { plugin, version, schema: fallback, err }));
656
+ return r ? structuredClone(r.schema) : null;
657
+ }
508
658
  /** 该组织在 `kernel` 命名空间下已设置的插件配置密钥键(不解密)。 */
509
659
  async setSecretKeys(db, orgId) {
510
660
  const rows = await db
@@ -516,5 +666,83 @@ export class OrgExtensionConfigs {
516
666
  .execute();
517
667
  return new Set(rows.map((r) => r.key));
518
668
  }
669
+ };
670
+ __decorate([
671
+ Transactional({
672
+ propagation: "requires_new",
673
+ isolationLevel: "repeatable read",
674
+ accessMode: "read only",
675
+ })
676
+ ], OrgExtensionConfigs.prototype, "listSnapshot", null);
677
+ __decorate([
678
+ Transactional()
679
+ ], OrgExtensionConfigs.prototype, "write", null);
680
+ __decorate([
681
+ Transactional({
682
+ propagation: "requires_new",
683
+ isolationLevel: "repeatable read",
684
+ accessMode: "read only",
685
+ })
686
+ ], OrgExtensionConfigs.prototype, "getSnapshot", null);
687
+ __decorate([
688
+ Transactional({ propagation: "mandatory" })
689
+ ], OrgExtensionConfigs.prototype, "enabledDependents", null);
690
+ __decorate([
691
+ Transactional({ propagation: "mandatory" })
692
+ ], OrgExtensionConfigs.prototype, "disableIn", null);
693
+ OrgExtensionConfigs = __decorate([
694
+ Injectable(),
695
+ __param(0, Inject(KernelDb)),
696
+ __param(1, Inject(TransactionHost)),
697
+ __param(2, Inject(KEYRING)),
698
+ __param(3, Inject(ExtensionHost)),
699
+ __param(4, Inject(OrgLock)),
700
+ __param(5, Inject(ExtensionInstalls)),
701
+ __param(6, Inject(KernelEvents)),
702
+ __param(7, Inject(KERNEL_LOGGER)),
703
+ __param(8, Inject(EffectiveConfigs)),
704
+ __param(9, Inject(ExtensionAvailability))
705
+ ], OrgExtensionConfigs);
706
+ export { OrgExtensionConfigs };
707
+ /**
708
+ * Whether an org may see an extension with these live catalog items (`listed`: the items whose
709
+ * `named` list has the org): one visible item is enough; without an item (config-declared, or its
710
+ * items deleted) it is visible. A builtin item counts as `all`.
711
+ */
712
+ function itemsVisible(items, listed) {
713
+ if (!items)
714
+ return true;
715
+ return items.some((i) => visibleTo({ scope: i.builtin ? "all" : i.scope }, listed.has(i.id)));
716
+ }
717
+ /**
718
+ * Whether the org sees `plugin` in its extension list (a required bootstrap plugin always; else
719
+ * under its catalog items' scope, as {@link OrgExtensionConfigs.list} filters). `db` may be a
720
+ * transaction.
721
+ */
722
+ export async function extensionVisibleTo(db, orgId, plugin) {
723
+ if ((await requiredExtensions(db)).has(plugin))
724
+ return true;
725
+ const items = (await pluginItemsOf(db, [plugin])).get(plugin);
726
+ if (!items)
727
+ return true;
728
+ const listed = new Set((await db
729
+ .selectFrom("catalog_item_scope_orgs")
730
+ .select("item_id")
731
+ .where("org_id", "=", orgId)
732
+ .where("item_id", "in", items.map((i) => i.id))
733
+ .execute()).map((r) => r.item_id));
734
+ return itemsVisible(items, listed);
735
+ }
736
+ /**
737
+ * The stored org-only config does not satisfy the org schema (a required field missing): what the
738
+ * org form reports before any edit. A set secret is not decrypted here; issues on it or below it
739
+ * are ignored (it was validated when written).
740
+ */
741
+ function orgConfigIncomplete(schema, plain, secretSet) {
742
+ const r = schema.safeParse(plain ?? {});
743
+ if (r.success)
744
+ return false;
745
+ const secrets = secretPaths(schema).filter(secretSet);
746
+ return toIssues(r.error).some((i) => !secrets.some((p) => i.path === p || i.path.startsWith(`${p}.`)));
519
747
  }
520
748
  const requiredError = (plugin) => new ApiError("extension.required", `Extension ${plugin} is required by this deployment (a bootstrap plugin): it is enabled in every organization and cannot be disabled`);