@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,155 +1,39 @@
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 { isDeepStrictEqual } from "node:util";
2
- import { sql } from "kysely";
11
+ import { Inject, Injectable } from "@nestjs/common";
3
12
  import { configFields, describeSchema, getPath, secretValues } from "../config/fields.js";
4
- import { fieldSource } from "../config/sources.js";
13
+ import { configSourceKind, extensionConfigSources, fieldSource, } from "../config/sources.js";
5
14
  import { createSecrets } from "../ctx/secrets.js";
6
15
  import { ApiError } from "../errors.js";
7
16
  import { audit } from "../identity/audit.js";
8
- import { lockEnterpriseAdminsAndAuthorize } from "../identity/enterprise-admin.js";
9
- import { configToJsonSchema } from "./config-json-schema.js";
10
- import { toIssues } from "./org-config.js";
11
- /** 部署级插件配置的密钥存在 `capybara.secrets` 的这个 org_id 下(不是真实组织;namespace `kernel`)。 */
12
- export const DEPLOYMENT_SECRETS_ORG = "_deployment";
13
- /** 内核自己的 secrets 命名空间(`kernel` 是保留插件名)。 */
14
- const SECRETS_NAMESPACE = "kernel";
15
- const SECRET_KEY_PREFIX = "plugin-deployment-config:";
16
- const secretKey = (plugin, path) => `${SECRET_KEY_PREFIX}${plugin}:${path}`;
17
- /**
18
- * 部署配置保存之后(kernel bus 主题,频道 `cap:kernel:plugin-deployment-config`,payload `{ plugin }`):
19
- * 各副本重读并校验——只改了 hot 字段就地替换,改了非 hot 字段重新加载实例,不合法保持当前值并告警;
20
- * 插件此刻待配置时,下一次 reconcile 加载它。
21
- */
22
- export const PLUGIN_DEPLOYMENT_CONFIG_TOPIC = "plugin-deployment-config";
23
- /** 由 zod schema 得出字段清单(`configFields`:对象路径上的叶子,secret 向下继承)。 */
24
- export function schemaFields(schema) {
25
- if (!schema)
26
- return [];
27
- return configFields(schema).map((f) => ({
28
- path: f.path,
29
- secret: f.meta?.secret === true,
30
- hot: f.meta?.hot === true,
31
- }));
32
- }
33
- const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
34
- /** 按点路径设值,缺失的中间对象自动创建;中间节点不是对象时放弃。 */
35
- function setDeep(obj, path, value) {
36
- const segs = path.split(".");
37
- let node = obj;
38
- for (const seg of segs.slice(0, -1)) {
39
- const next = node[seg];
40
- if (next === undefined)
41
- node[seg] = {};
42
- else if (!isObj(next))
43
- return;
44
- node = node[seg];
45
- }
46
- node[segs[segs.length - 1]] = value;
47
- }
48
- /** 按点路径删除键;删完变空的中间对象一并删掉。 */
49
- function deleteDeep(obj, path) {
50
- const segs = path.split(".");
51
- const chain = [obj];
52
- let node = obj;
53
- for (const seg of segs.slice(0, -1)) {
54
- if (!isObj(node))
55
- return;
56
- node = node[seg];
57
- if (!isObj(node))
58
- return;
59
- chain.push(node);
60
- }
61
- delete chain[chain.length - 1][segs[segs.length - 1]];
62
- for (let i = chain.length - 1; i > 0; i--) {
63
- if (Object.keys(chain[i]).length > 0)
64
- break;
65
- delete chain[i - 1][segs[i - 1]];
66
- }
67
- }
68
- /** 叶子点路径(对象递归;其余都是叶子)。 */
69
- function leafPaths(value, prefix = "", out = []) {
70
- if (isObj(value)) {
71
- for (const [k, v] of Object.entries(value))
72
- leafPaths(v, prefix ? `${prefix}.${k}` : k, out);
73
- }
74
- else if (prefix !== "")
75
- out.push(prefix);
76
- return out;
77
- }
78
- /** 启动配置(文件 / 环境变量合并后的值)是否覆盖了这个字段:给了它、它下面的值,或在祖先上给了非对象值。 */
79
- function coveredBy(fileValue, path) {
80
- let node = fileValue;
81
- for (const seg of path.split(".")) {
82
- if (node === undefined)
83
- return false;
84
- if (!isObj(node))
85
- return true;
86
- node = node[seg];
87
- }
88
- return node !== undefined;
89
- }
90
- /**
91
- * 合并一个插件的部署配置(C10 的优先级:环境变量 > 文件 / Nacos > PG > schema 默认值):以启动配置
92
- * (`fileValue`,已含环境变量)为底,逐字段补上 PG 里保存、而启动配置没有覆盖的值。按字段合并:启动配置给了的字段
93
- * 整个以它为准(不与 PG 的值深合并)。`fields` 为字段点路径(没有 schema 时用 PG 值的叶子路径)。默认值由校验补上。
94
- */
95
- export function mergeDeploymentConfig(stored, fileValue, fields = leafPaths(stored)) {
96
- if (fileValue !== undefined && !isObj(fileValue))
97
- return fileValue;
98
- const out = structuredClone(fileValue ?? {});
99
- for (const path of fields) {
100
- const v = getPath(stored, path);
101
- if (v === undefined || coveredBy(fileValue, path))
102
- continue;
103
- setDeep(out, path, structuredClone(v));
104
- }
105
- return out;
106
- }
107
- /**
108
- * PG 里一个插件保存的部署配置(非密钥字段 + 解密的密钥字段,按点路径放回对象)。只并入 `secretPaths`(当前
109
- * schema 里是密钥的字段)的密钥:旧版本留下、现在已不是密钥或已删掉的字段不解密、不并入(否则会被当成明文回显
110
- * 或保存)。
111
- */
112
- export async function readStoredDeploymentConfig(db, keyring, plugin, opts) {
113
- let q = db
114
- .selectFrom("extension_deployment_configs")
115
- .select("config")
116
- .where("plugin", "=", plugin);
117
- if (opts.forUpdate)
118
- q = q.forUpdate();
119
- const row = await q.executeTakeFirst();
120
- const out = structuredClone(row?.config ?? {});
121
- const prefix = secretKey(plugin, "");
122
- const wanted = new Set(opts.secretPaths);
123
- if (wanted.size === 0)
124
- return out;
125
- const keys = await db
126
- .selectFrom("secrets")
127
- .select("key")
128
- .where("namespace", "=", SECRETS_NAMESPACE)
129
- .where("org_id", "=", DEPLOYMENT_SECRETS_ORG)
130
- .execute();
131
- const secrets = createSecrets(db, keyring, SECRETS_NAMESPACE);
132
- for (const { key } of keys) {
133
- if (!key.startsWith(prefix) || !wanted.has(key.slice(prefix.length)))
134
- continue;
135
- const v = await secrets.get(DEPLOYMENT_SECRETS_ORG, key);
136
- if (v !== null)
137
- setDeep(out, key.slice(prefix.length), JSON.parse(v));
138
- }
139
- return out;
140
- }
141
- /** 字段清单里的密钥字段路径。 */
142
- export const secretPathsOf = (fields) => fields.filter((f) => f.secret).map((f) => f.path);
143
- /** JSON Schema 转换按 schema 对象缓存(清单不可变)。 */
144
- const jsonSchemaCache = new WeakMap();
145
- function jsonSchemaOf(schema) {
146
- let js = jsonSchemaCache.get(schema);
147
- if (!js) {
148
- js = configToJsonSchema(schema);
149
- jsonSchemaCache.set(schema, js);
150
- }
151
- return structuredClone(js);
152
- }
17
+ import { SuperAdminLock } from "../identity/super-admin.js";
18
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
19
+ import { afterCommit } from "../infra/database/after-commit.js";
20
+ import { KernelDb } from "../infra/database/kernel-db.js";
21
+ import { TransactionHost } from "../infra/database/transaction-host.js";
22
+ import { Transactional } from "../infra/database/transactional.decorator.js";
23
+ import { KERNEL_BUS, KERNEL_LOGGER, KEYRING } from "../infra/tokens.js";
24
+ import { KERNEL_APP_OPTIONS } from "../lifecycle/tokens.js";
25
+ import { toIssues } from "./config-issues.js";
26
+ import { checkConfigUi, configMessages, hintedSecretPaths, safeConfigFormSchema, } from "./config-json-schema.js";
27
+ import { DEPLOYMENT_SECRETS_ORG, deleteDeep, isObj, mergeDeploymentConfig, readStoredDeploymentConfig, SECRETS_NAMESPACE, schemaFields, secretKey, secretPathsOf, setDeep, } from "./deployment-config-store.js";
28
+ import { ExtensionDisplayNames } from "./display-name.js";
29
+ import { ExtensionHost } from "./host.js";
30
+ import { ExtensionInstalls } from "./installs.js";
31
+ import { ExtensionLifecycle } from "./lifecycle.js";
32
+ import { PLUGIN_DEPLOYMENT_CONFIG_TOPIC } from "./lifecycle-topics.js";
33
+ import { PluginDeploymentConfigLock } from "./locks.js";
34
+ import { fieldLevels, jsonSchemaFieldLevels, missingOverridable, parseLoadGate, } from "./org-levels.js";
35
+ export { DEPLOYMENT_SECRETS_ORG, mergeDeploymentConfig, readStoredDeploymentConfig, schemaFields, secretPathsOf, };
36
+ export { PLUGIN_DEPLOYMENT_CONFIG_TOPIC };
153
37
  /** 某字段 zod 叶子上的默认值(整份配置不合法、校验没能补上默认值时,视图仍按它显示)。 */
154
38
  function defaultOf(schema, path) {
155
39
  const f = configFields(schema).find((x) => x.path === path);
@@ -166,30 +50,87 @@ function defaultOf(schema, path) {
166
50
  * follows {@link mergeDeploymentConfig}. No in-process state, shared by every replica.
167
51
  * Secret values are never echoed: responses only say "set", audits only record which paths changed.
168
52
  */
169
- export class ExtensionDeploymentConfigService {
170
- d;
171
- constructor(d) {
172
- this.d = d;
53
+ let ExtensionDeploymentConfigService = class ExtensionDeploymentConfigService {
54
+ kdb;
55
+ txHost;
56
+ adminLock;
57
+ configLock;
58
+ keyring;
59
+ config;
60
+ host;
61
+ installs;
62
+ lifecycle;
63
+ bus;
64
+ log;
65
+ displayNames;
66
+ /** Where each startup-config field comes from (see `extensionConfigSources`); those fields are read-only. */
67
+ sources;
68
+ constructor(kdb, txHost,
69
+ /** The super admin lock (identity/super-admin.ts): joins the transaction. */
70
+ adminLock, configLock, keyring, config,
71
+ /** This replica's extension schemas (loaded, config-declared or prepared install records). */
72
+ host,
73
+ /** The effective (stored plus startup) deployment config. */
74
+ installs,
75
+ /** Applies a saved config on this replica at once (other replicas through the bus). */
76
+ lifecycle,
77
+ /** Publishes {@link PLUGIN_DEPLOYMENT_CONFIG_TOPIC} after a save (a failure only warns). */
78
+ bus, log, options, displayNames) {
79
+ this.kdb = kdb;
80
+ this.txHost = txHost;
81
+ this.adminLock = adminLock;
82
+ this.configLock = configLock;
83
+ this.keyring = keyring;
84
+ this.config = config;
85
+ this.host = host;
86
+ this.installs = installs;
87
+ this.lifecycle = lifecycle;
88
+ this.bus = bus;
89
+ this.log = log;
90
+ this.displayNames = displayNames;
91
+ const env = options.env ?? process.env;
92
+ this.sources =
93
+ options.extensionConfigSources ??
94
+ extensionConfigSources({ extensionConfig: config.get().extensionConfig }, env, configSourceKind(env));
95
+ }
96
+ get db() {
97
+ return this.kdb.db;
98
+ }
99
+ /** The startup config's `extensionConfig` (file / Nacos merged with env). */
100
+ fileConfig() {
101
+ return this.config.get().extensionConfig;
102
+ }
103
+ /**
104
+ * The extension's deployment config description; undefined when the deployment does not know
105
+ * the extension (`extension.not_found`). Public for tests only.
106
+ */
107
+ async schemaOf(plugin) {
108
+ const local = this.host.deploymentSchema(plugin);
109
+ if (local)
110
+ return { ...local, fields: schemaFields(local.schema) };
111
+ // 与配置声明重名的安装记录不生效
112
+ if (this.host.declared().has(plugin))
113
+ return undefined;
114
+ return staticDeploymentSchema(this.db, plugin);
173
115
  }
174
116
  /** 插件的生效部署配置(未校验):启动配置为底,补上 PG 里保存的字段。`schema` 给出时按它的字段合并。 */
175
- async effective(plugin, fileValue, schema) {
176
- const stored = await readStoredDeploymentConfig(this.d.db, this.d.keyring, plugin, {
177
- secretPaths: secretPathsOf(schemaFields(schema)),
178
- });
179
- const fields = schema ? configFields(schema).map((f) => f.path) : undefined;
180
- return mergeDeploymentConfig(stored, fileValue, fields);
117
+ effective(plugin, fileValue, schema) {
118
+ return this.installs.effectiveDeploymentConfig(plugin, fileValue, schema);
181
119
  }
182
120
  /** Admin view; an extension unknown to the deployment -> `extension.not_found`. */
183
121
  async view(plugin) {
184
122
  const info = await this.info(plugin);
185
- const stored = await this.d.db
186
- .transaction()
187
- .setIsolationLevel("repeatable read")
188
- .setAccessMode("read only")
189
- .execute((t) => readStoredDeploymentConfig(t, this.d.keyring, plugin, {
123
+ const [stored, displayName] = await Promise.all([
124
+ this.readStored(plugin, info),
125
+ this.displayNames.get(plugin),
126
+ ]);
127
+ return this.render(plugin, info, stored, displayName);
128
+ }
129
+ /** `REPEATABLE READ` read-only: every stored field from one snapshot. */
130
+ readStored(plugin, info) {
131
+ return readStoredDeploymentConfig(this.db, this.keyring, plugin, {
190
132
  secretPaths: secretPathsOf(info.fields),
191
- }));
192
- return this.render(plugin, info, stored);
133
+ });
193
134
  }
194
135
  /**
195
136
  * Saves some fields: `values` keyed by field dot path, `null` = clear (back to the default),
@@ -198,12 +139,17 @@ export class ExtensionDeploymentConfigService {
198
139
  * invalid after merging (except a problem in a read-only startup-config field itself) ->
199
140
  * `extension.config_invalid` (details carry only paths and messages);
200
141
  * - a field present in the startup config (file / Nacos / env) -> 409 `extension.config_readonly`.
201
- * In a transaction, first `lockEnterpriseAdminsAndAuthorize` (re-checks the enterprise admin under
142
+ * `secretEntries` change single keys of secret records some `x-ui.secrets[].path` names
143
+ * ({@link SecretEntry}; spec §4.3): applied under the same locks to the decrypted record, which
144
+ * is re-encrypted whole, then validated with `values`; the audit lists the record's path, no keys.
145
+ * A path no hint names -> 400 `validation_failed`; one in the startup config -> 409
146
+ * `extension.config_readonly`.
147
+ * In a transaction, first `lockSuperAdminsAndAuthorize` (re-checks the super admin under
202
148
  * the lock), then an advisory lock per extension; audit `extension.deployment_config_updated`
203
149
  * (detail only `changedPaths`). After the commit publishes {@link PLUGIN_DEPLOYMENT_CONFIG_TOPIC} and
204
150
  * applies it on this replica right away.
205
151
  */
206
- async put(plugin, values, actor, actorTokenId) {
152
+ async put(plugin, values, actor, actorTokenId, secretEntries = []) {
207
153
  const info = await this.info(plugin);
208
154
  if (info.fields.length === 0) {
209
155
  throw new ApiError("extension.config_invalid", `Extension ${plugin} has no deployment config`);
@@ -213,124 +159,244 @@ export class ExtensionDeploymentConfigService {
213
159
  if (unknown.length > 0) {
214
160
  throw new ApiError("extension.config_invalid", `Unknown deployment config fields for extension ${plugin}`, unknown.map((path) => ({ path, message: "unknown field" })));
215
161
  }
216
- const sources = this.d.sources[plugin];
217
- const readonly = Object.keys(values).filter((p) => fieldSource(sources, p) !== undefined);
162
+ this.checkSecretEntries(plugin, info, values, secretEntries);
163
+ const sources = this.sources[plugin];
164
+ const entryPaths = [...new Set(secretEntries.map((e) => e.path))];
165
+ const readonly = [...Object.keys(values), ...entryPaths].filter((p) => fieldSource(sources, p) !== undefined);
218
166
  if (readonly.length > 0) {
219
167
  throw new ApiError("extension.config_readonly", `These deployment config fields of extension ${plugin} are set in the startup config (file, Nacos or environment) and are read-only here: ${readonly.join(", ")}`, readonly.map((path) => ({ path, source: fieldSource(sources, path) })));
220
168
  }
221
- const fileValue = this.d.fileConfig()[plugin];
169
+ const fileValue = this.fileConfig()[plugin];
222
170
  const fieldPaths = info.fields.map((f) => f.path);
223
- let saved;
224
- let changed = [];
225
- await this.d.db.transaction().execute(async (t) => {
226
- await lockEnterpriseAdminsAndAuthorize(t, actor);
227
- await sql `SELECT pg_advisory_xact_lock(hashtext(${`capybara.plugin-deployment-config:${plugin}`}))`.execute(t);
228
- const before = await readStoredDeploymentConfig(t, this.d.keyring, plugin, {
229
- forUpdate: true,
230
- secretPaths: secretPathsOf(info.fields),
231
- });
232
- const next = structuredClone(before);
233
- for (const [path, v] of Object.entries(values)) {
234
- if (v === null)
235
- deleteDeep(next, path);
236
- else
237
- setDeep(next, path, structuredClone(v));
171
+ const { saved, changed } = await this.write(plugin, values, secretEntries, actor, actorTokenId, info, sources, fileValue);
172
+ const stored = saved ?? {};
173
+ if (info.schema) {
174
+ const secrets = secretValues(info.schema, mergeDeploymentConfig(stored, fileValue, fieldPaths));
175
+ if (secrets.length > 0)
176
+ this.log.addSecrets(secrets);
177
+ }
178
+ if (changed.length > 0) {
179
+ try {
180
+ await this.bus.publish(PLUGIN_DEPLOYMENT_CONFIG_TOPIC, { plugin });
238
181
  }
239
- if (info.schema) {
240
- const r = info.schema.safeParse(mergeDeploymentConfig(next, fileValue, fieldPaths));
241
- if (!r.success) {
242
- // 启动配置里只读字段自己的问题这里改不了(照样保存,插件保持待配置),其余拒绝
243
- const issues = toIssues(r.error).filter((i) => i.path === "" || fieldSource(sources, i.path) === undefined);
244
- if (issues.length > 0) {
245
- throw new ApiError("extension.config_invalid", `Invalid deployment config for extension ${plugin}`, issues);
246
- }
247
- }
182
+ catch (err) {
183
+ this.log.warn("cannot publish plugin-deployment-config after saving", { plugin, err });
248
184
  }
249
- changed = Object.keys(values)
250
- .filter((p) => !isDeepStrictEqual(getPath(before, p), getPath(next, p)))
251
- .sort();
252
- saved = next;
253
- if (changed.length === 0)
254
- return;
255
- const plain = structuredClone(next);
256
- const secrets = createSecrets(t, this.d.keyring, SECRETS_NAMESPACE);
257
- for (const f of info.fields) {
258
- if (!f.secret)
259
- continue;
260
- deleteDeep(plain, f.path);
261
- if (!(f.path in values))
262
- continue;
263
- const v = getPath(next, f.path);
264
- if (v === undefined)
265
- await secrets.delete(DEPLOYMENT_SECRETS_ORG, secretKey(plugin, f.path));
266
- else
267
- await secrets.set(DEPLOYMENT_SECRETS_ORG, secretKey(plugin, f.path), JSON.stringify(v));
185
+ try {
186
+ await this.lifecycle.applyConfig(plugin);
187
+ }
188
+ catch (err) {
189
+ this.log.error("applying the plugin deployment config on this replica failed", {
190
+ plugin,
191
+ err,
192
+ });
268
193
  }
194
+ }
195
+ return this.render(plugin, info, stored, await this.displayNames.get(plugin));
196
+ }
197
+ /**
198
+ * Clears the deployment config stored in PG: the `extension_deployment_configs` row and every
199
+ * secret stored for the extension (any path, also ones an older version declared). Fields from
200
+ * the startup config (file / Nacos / env) are untouched and stay in effect (they stay
201
+ * `readonly` in the view; only the startup config changes them). Unknown to the deployment ->
202
+ * `extension.not_found`.
203
+ * In a transaction: `lockAndAuthorize` (re-checks the super admin under the lock), the advisory
204
+ * lock per extension, audit `extension.config_cleared` (detail `clearedPaths`: the stored field
205
+ * paths, never values; nothing stored -> no audit, no publish). After the commit publishes
206
+ * {@link PLUGIN_DEPLOYMENT_CONFIG_TOPIC} and applies it on this replica: every replica re-reads,
207
+ * and the extension loads from what remains, or is unloaded and becomes pending configuration
208
+ * when that is missing or invalid (`ExtensionHost.applyDeploymentConfig`), without a restart.
209
+ */
210
+ async clear(plugin, actor, actorTokenId) {
211
+ const info = await this.info(plugin);
212
+ await this.clearStored(plugin, info.fields.map((f) => f.path), actor, actorTokenId);
213
+ return this.render(plugin, info, {}, await this.displayNames.get(plugin));
214
+ }
215
+ async clearStored(plugin, fieldPaths, actor, actorTokenId) {
216
+ const t = this.db;
217
+ await this.adminLock.lockAndAuthorize(actor);
218
+ await this.configLock.lock(plugin);
219
+ const row = await t
220
+ .selectFrom("extension_deployment_configs")
221
+ .select("config")
222
+ .where("plugin", "=", plugin)
223
+ .forUpdate()
224
+ .executeTakeFirst();
225
+ const prefix = secretKey(plugin, "");
226
+ const secretKeys = (await t
227
+ .selectFrom("secrets")
228
+ .select("key")
229
+ .where("namespace", "=", SECRETS_NAMESPACE)
230
+ .where("org_id", "=", DEPLOYMENT_SECRETS_ORG)
231
+ .execute())
232
+ .map((r) => r.key)
233
+ .filter((k) => k.startsWith(prefix));
234
+ if (row === undefined && secretKeys.length === 0)
235
+ return;
236
+ if (secretKeys.length > 0) {
269
237
  await t
270
- .insertInto("extension_deployment_configs")
271
- .values({ plugin, config: JSON.stringify(plain), updated_by: actor })
272
- .onConflict((oc) => oc.column("plugin").doUpdateSet({
273
- config: JSON.stringify(plain),
274
- updated_by: actor,
275
- updated_at: new Date(),
276
- }))
238
+ .deleteFrom("secrets")
239
+ .where("namespace", "=", SECRETS_NAMESPACE)
240
+ .where("org_id", "=", DEPLOYMENT_SECRETS_ORG)
241
+ .where("key", "in", secretKeys)
277
242
  .execute();
278
- await audit(t, {
279
- actorAccountId: actor,
280
- ...(actorTokenId !== undefined && { actorTokenId }),
281
- action: "extension.deployment_config_updated",
282
- target: plugin,
283
- detail: { changedPaths: changed },
284
- });
285
- });
286
- const stored = saved ?? {};
287
- if (info.schema && this.d.onSecrets) {
288
- const values = secretValues(info.schema, mergeDeploymentConfig(stored, fileValue, fieldPaths));
289
- if (values.length > 0)
290
- this.d.onSecrets(values);
291
243
  }
292
- if (changed.length > 0) {
244
+ await t.deleteFrom("extension_deployment_configs").where("plugin", "=", plugin).execute();
245
+ const clearedPaths = [
246
+ ...new Set([
247
+ ...fieldPaths.filter((p) => getPath(row?.config ?? {}, p) !== undefined),
248
+ ...secretKeys.map((k) => k.slice(prefix.length)),
249
+ ]),
250
+ ].sort();
251
+ await audit(t, {
252
+ actorAccountId: actor,
253
+ ...(actorTokenId !== undefined && { actorTokenId }),
254
+ action: "extension.config_cleared",
255
+ target: plugin,
256
+ detail: { clearedPaths },
257
+ });
258
+ afterCommit(async () => {
293
259
  try {
294
- await this.d.bus?.publish(PLUGIN_DEPLOYMENT_CONFIG_TOPIC, { plugin });
260
+ await this.bus.publish(PLUGIN_DEPLOYMENT_CONFIG_TOPIC, { plugin });
295
261
  }
296
262
  catch (err) {
297
- this.d.log.warn("cannot publish plugin-deployment-config after saving", { plugin, err });
263
+ this.log.warn("cannot publish plugin-deployment-config after clearing", { plugin, err });
298
264
  }
299
265
  try {
300
- await this.d.applyLocal?.(plugin);
266
+ await this.lifecycle.applyConfig(plugin);
301
267
  }
302
268
  catch (err) {
303
- this.d.log.error("applying the plugin deployment config on this replica failed", {
269
+ this.log.error("applying the cleared plugin deployment config on this replica failed", {
304
270
  plugin,
305
271
  err,
306
272
  });
307
273
  }
274
+ });
275
+ }
276
+ /**
277
+ * Secret entries name a secret record field some hint names (else 400 `validation_failed`, also
278
+ * for a path given in `values` too, an entry with neither `value` nor `renameFrom`, or a key
279
+ * `__proto__`). Messages carry paths and keys only, never values.
280
+ */
281
+ checkSecretEntries(plugin, info, values, entries) {
282
+ if (entries.length === 0)
283
+ return;
284
+ const hinted = this.hintedPaths(plugin, info);
285
+ const secret = new Set(secretPathsOf(info.fields));
286
+ const problems = [];
287
+ for (const e of entries) {
288
+ if (!hinted.has(e.path) || !secret.has(e.path)) {
289
+ problems.push({ path: e.path, message: "no config UI hint draws this secret per item" });
290
+ }
291
+ else if (Object.hasOwn(values, e.path)) {
292
+ problems.push({ path: e.path, message: "given both in values and in secretEntries" });
293
+ }
294
+ else if (e.value === undefined && e.renameFrom === undefined) {
295
+ problems.push({ path: e.path, message: `entry ${e.key} has neither value nor renameFrom` });
296
+ }
297
+ else if (e.key === "__proto__" || e.renameFrom === "__proto__") {
298
+ problems.push({ path: e.path, message: "__proto__ is not a valid key" });
299
+ }
300
+ }
301
+ if (problems.length > 0) {
302
+ throw new ApiError("validation_failed", `Invalid secret entries for the deployment config of extension ${plugin}`, problems);
303
+ }
304
+ }
305
+ async write(plugin, values, secretEntries, actor, actorTokenId, info, sources, fileValue) {
306
+ const fieldPaths = info.fields.map((f) => f.path);
307
+ let changed = [];
308
+ const t = this.db;
309
+ await this.adminLock.lockAndAuthorize(actor);
310
+ await this.configLock.lock(plugin);
311
+ const before = await readStoredDeploymentConfig(t, this.keyring, plugin, {
312
+ forUpdate: true,
313
+ secretPaths: secretPathsOf(info.fields),
314
+ });
315
+ const next = structuredClone(before);
316
+ for (const [path, v] of Object.entries(values)) {
317
+ if (v === null)
318
+ deleteDeep(next, path);
319
+ else
320
+ setDeep(next, path, structuredClone(v));
321
+ }
322
+ applySecretEntries(next, secretEntries);
323
+ const touched = new Set([...Object.keys(values), ...secretEntries.map((e) => e.path)]);
324
+ if (info.schema) {
325
+ // overridable fields may stay empty on the platform (spec A §5.4a)
326
+ const r = parseLoadGate(info.schema, mergeDeploymentConfig(next, fileValue, fieldPaths));
327
+ if (!r.success) {
328
+ // 启动配置里只读字段自己的问题这里改不了(照样保存,插件保持待配置),其余拒绝
329
+ const issues = toIssues(r.error, this.messagesOf(plugin, info)).filter((i) => i.path === "" || fieldSource(sources, i.path) === undefined);
330
+ if (issues.length > 0) {
331
+ throw new ApiError("extension.config_invalid", `Invalid deployment config for extension ${plugin}`, issues);
332
+ }
333
+ }
334
+ }
335
+ changed = [...touched]
336
+ .filter((p) => !isDeepStrictEqual(getPath(before, p), getPath(next, p)))
337
+ .sort();
338
+ const saved = next;
339
+ if (changed.length === 0)
340
+ return { saved, changed };
341
+ const plain = structuredClone(next);
342
+ const secrets = createSecrets(t, this.keyring, SECRETS_NAMESPACE);
343
+ for (const f of info.fields) {
344
+ if (!f.secret)
345
+ continue;
346
+ deleteDeep(plain, f.path);
347
+ if (!touched.has(f.path))
348
+ continue;
349
+ const v = getPath(next, f.path);
350
+ if (v === undefined)
351
+ await secrets.delete(DEPLOYMENT_SECRETS_ORG, secretKey(plugin, f.path));
352
+ else
353
+ await secrets.set(DEPLOYMENT_SECRETS_ORG, secretKey(plugin, f.path), JSON.stringify(v));
308
354
  }
309
- return this.render(plugin, info, stored);
355
+ await t
356
+ .insertInto("extension_deployment_configs")
357
+ .values({ plugin, config: JSON.stringify(plain), updated_by: actor })
358
+ .onConflict((oc) => oc.column("plugin").doUpdateSet({
359
+ config: JSON.stringify(plain),
360
+ updated_by: actor,
361
+ updated_at: new Date(),
362
+ }))
363
+ .execute();
364
+ await audit(t, {
365
+ actorAccountId: actor,
366
+ ...(actorTokenId !== undefined && { actorTokenId }),
367
+ action: "extension.deployment_config_updated",
368
+ target: plugin,
369
+ detail: { changedPaths: changed },
370
+ });
371
+ return { saved, changed };
310
372
  }
311
373
  async info(plugin) {
312
- const info = await this.d.schemaOf(plugin);
374
+ const info = await this.schemaOf(plugin);
313
375
  if (!info) {
314
376
  throw new ApiError("extension.not_found", `Extension ${plugin} is not known to this deployment`);
315
377
  }
316
378
  return info;
317
379
  }
318
- render(plugin, info, stored) {
319
- const fileValue = this.d.fileConfig()[plugin];
320
- const sources = this.d.sources[plugin];
380
+ render(plugin, info, stored, displayName) {
381
+ const fileValue = this.fileConfig()[plugin];
382
+ const sources = this.sources[plugin];
321
383
  const raw = mergeDeploymentConfig(stored, fileValue, info.fields.map((f) => f.path));
322
384
  let effective = raw;
323
385
  let valid = true;
324
386
  let issues = [];
325
387
  if (info.schema) {
326
- const r = info.schema.safeParse(raw);
388
+ // the load gate: overridable fields may stay empty (spec A §5.4a)
389
+ const r = parseLoadGate(info.schema, raw);
327
390
  if (r.success)
328
391
  effective = r.data;
329
392
  else {
330
393
  valid = false;
331
- issues = toIssues(r.error);
394
+ issues = toIssues(r.error, this.messagesOf(plugin, info));
332
395
  }
333
396
  }
397
+ const formSchema = this.formSchemaOf(plugin, info);
398
+ const hinted = formSchema ? hintedSecretPaths(formSchema) : new Set();
399
+ const levels = levelsOf(info);
334
400
  const fields = info.fields.map((f) => {
335
401
  const from = fieldSource(sources, f.path);
336
402
  let value = getPath(effective, f.path);
@@ -345,31 +411,151 @@ export class ExtensionDeploymentConfigService {
345
411
  value = d.value;
346
412
  source = value === undefined ? "unset" : "default";
347
413
  }
414
+ const level = levels.get(f.path.split(".")[0]);
348
415
  const base = {
349
416
  path: f.path,
350
417
  secret: f.secret,
351
418
  hot: f.hot,
352
419
  source,
353
420
  readonly: from !== undefined,
421
+ ...(level !== undefined && level !== "hidden" && { org: level }),
354
422
  };
423
+ // a schema default (e.g. `secret(record).default({})`) is no secret anybody set
424
+ const set = value !== undefined && source !== "default";
425
+ if (f.secret && hinted.has(f.path)) {
426
+ // record keys are item names, never values
427
+ return { ...base, set, keys: set && isObj(value) ? Object.keys(value).sort() : [] };
428
+ }
355
429
  if (f.secret)
356
- return { ...base, set: value !== undefined };
430
+ return { ...base, set };
357
431
  return value === undefined ? base : { ...base, value: structuredClone(value) };
358
432
  });
359
433
  return {
360
434
  plugin,
435
+ displayName,
361
436
  version: info.version,
362
437
  configurable: info.fields.length > 0,
363
438
  fields,
364
- schema: info.schema ? jsonSchemaOf(info.schema) : null,
439
+ schema: structuredClone(formSchema ?? null),
365
440
  valid,
366
441
  validated: info.schema !== undefined,
367
442
  issues,
443
+ orgMustConfigure: orgMustConfigureOf(info, raw, levels),
368
444
  };
369
445
  }
446
+ /**
447
+ * The required `override` fields the platform left empty ({@link DeploymentConfigView}
448
+ * `orgMustConfigure`); reads nothing when the extension has no `override` field. Unknown to the
449
+ * deployment -> `extension.not_found`.
450
+ */
451
+ async orgMustConfigure(plugin) {
452
+ const info = await this.info(plugin);
453
+ const levels = levelsOf(info);
454
+ if (![...levels.values()].includes("override"))
455
+ return [];
456
+ const stored = await this.readStored(plugin, info);
457
+ const raw = mergeDeploymentConfig(stored, this.fileConfig()[plugin], info.fields.map((f) => f.path));
458
+ return orgMustConfigureOf(info, raw, levels);
459
+ }
460
+ /**
461
+ * The form JSON Schema of the description: the zod schema's, else the package's static one. A
462
+ * hint conversion that throws (a hand-made package) drops the hints: the plain schema, or none
463
+ * when even the conversion fails; one warning per schema. Never throws.
464
+ */
465
+ formSchemaOf(plugin, info) {
466
+ if (!info.schema)
467
+ return info.jsonSchema;
468
+ const r = safeConfigFormSchema(info.schema, "deployment", (err, schema) => this.log.warn("the deployment config form schema could not be built with its UI hints; hints dropped", { plugin, version: info.version, schema, err }));
469
+ return r?.schema;
470
+ }
471
+ messagesOf(plugin, info) {
472
+ const js = this.formSchemaOf(plugin, info);
473
+ return js && configMessages(js);
474
+ }
475
+ /** The secret record paths some hint of the form schema names. */
476
+ hintedPaths(plugin, info) {
477
+ const js = this.formSchemaOf(plugin, info);
478
+ return js ? hintedSecretPaths(js) : new Set();
479
+ }
480
+ };
481
+ __decorate([
482
+ Transactional({
483
+ propagation: "requires_new",
484
+ isolationLevel: "repeatable read",
485
+ accessMode: "read only",
486
+ })
487
+ ], ExtensionDeploymentConfigService.prototype, "readStored", null);
488
+ __decorate([
489
+ Transactional()
490
+ ], ExtensionDeploymentConfigService.prototype, "clearStored", null);
491
+ __decorate([
492
+ Transactional()
493
+ ], ExtensionDeploymentConfigService.prototype, "write", null);
494
+ ExtensionDeploymentConfigService = __decorate([
495
+ Injectable(),
496
+ __param(0, Inject(KernelDb)),
497
+ __param(1, Inject(TransactionHost)),
498
+ __param(2, Inject(SuperAdminLock)),
499
+ __param(3, Inject(PluginDeploymentConfigLock)),
500
+ __param(4, Inject(KEYRING)),
501
+ __param(5, Inject(KernelConfigService)),
502
+ __param(6, Inject(ExtensionHost)),
503
+ __param(7, Inject(ExtensionInstalls)),
504
+ __param(8, Inject(ExtensionLifecycle)),
505
+ __param(9, Inject(KERNEL_BUS)),
506
+ __param(10, Inject(KERNEL_LOGGER)),
507
+ __param(11, Inject(KERNEL_APP_OPTIONS)),
508
+ __param(12, Inject(ExtensionDisplayNames))
509
+ ], ExtensionDeploymentConfigService);
510
+ export { ExtensionDeploymentConfigService };
511
+ /** The org level of each top-level key: from the zod schema, else the package's form schema. */
512
+ function levelsOf(info) {
513
+ return info.schema
514
+ ? fieldLevels(info.schema)
515
+ : jsonSchemaFieldLevels(info.jsonSchema);
516
+ }
517
+ /**
518
+ * The required `override` keys `raw` leaves empty: by the zod schema, else (a static form schema)
519
+ * the `required` keys marked `override` that have no value.
520
+ */
521
+ function orgMustConfigureOf(info, raw, levels) {
522
+ if (info.schema)
523
+ return missingOverridable(info.schema, raw);
524
+ const required = info.jsonSchema?.required;
525
+ if (!Array.isArray(required))
526
+ return [];
527
+ return [...levels]
528
+ .filter(([k, l]) => l === "override" && required.includes(k) && getPath(raw, k) === undefined)
529
+ .map(([k]) => k);
530
+ }
531
+ /**
532
+ * Applies secret entries in order to the decrypted config `next` (in place): each record is read
533
+ * from `next` at its path, renamed, set or removed, and put back; an empty record is removed (the
534
+ * field falls back to its default).
535
+ */
536
+ export function applySecretEntries(next, entries) {
537
+ for (const e of entries) {
538
+ const cur = getPath(next, e.path);
539
+ const rec = isObj(cur) ? { ...cur } : {};
540
+ if (e.renameFrom !== undefined && e.renameFrom !== e.key && Object.hasOwn(rec, e.renameFrom)) {
541
+ rec[e.key] = rec[e.renameFrom];
542
+ delete rec[e.renameFrom];
543
+ }
544
+ if (e.value === null)
545
+ delete rec[e.key];
546
+ else if (e.value !== undefined)
547
+ rec[e.key] = e.value;
548
+ if (Object.keys(rec).length === 0)
549
+ deleteDeep(next, e.path);
550
+ else
551
+ setDeep(next, e.path, rec);
552
+ }
370
553
  }
371
554
  /**
372
555
  * 本副本拿不到模块时(未加载的安装记录)按包内审阅过的静态清单给出字段(没有 zod schema:不校验,加载时再校验)。
556
+ * The package's `extension.configSchemas.deployment` (written by the packer) is the form schema;
557
+ * its hints are checked like a loaded schema's (stripped when invalid, silently: a hand-made
558
+ * package). It is not compared with the module (not part of `manifest_mismatch`, spec §4.5).
373
559
  */
374
560
  export async function staticDeploymentSchema(db, plugin) {
375
561
  const row = await db
@@ -383,8 +569,15 @@ export async function staticDeploymentSchema(db, plugin) {
383
569
  // new rows hold the plugin's extension section, pre-0.1.0 rows the old capybara section; both
384
570
  // carry the static manifest
385
571
  const section = row.section;
572
+ const stored = section.configSchemas?.deployment;
573
+ let jsonSchema;
574
+ if (typeof stored === "object" && stored !== null && !Array.isArray(stored)) {
575
+ jsonSchema = structuredClone(stored);
576
+ checkConfigUi(jsonSchema, "deployment");
577
+ }
386
578
  return {
387
579
  version: row.version,
580
+ ...(jsonSchema !== undefined && { jsonSchema }),
388
581
  fields: (section.manifest.config?.deployment ?? []).map((f) => ({
389
582
  path: f.path,
390
583
  secret: f.secret,