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

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 (507) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +39 -13
  3. package/dist/admin/admin.controller.js +33 -17
  4. package/dist/admin/extensions.controller.d.ts +16 -2
  5. package/dist/admin/extensions.controller.js +26 -6
  6. package/dist/admin/setup-lock.d.ts +1 -1
  7. package/dist/admin/setup-lock.js +1 -1
  8. package/dist/admin/setup.controller.d.ts +1 -1
  9. package/dist/admin/setup.controller.js +1 -1
  10. package/dist/admin/setup.service.d.ts +4 -4
  11. package/dist/admin/setup.service.js +8 -8
  12. package/dist/agents/agent-lookup.d.ts +16 -0
  13. package/dist/agents/agent-lookup.js +11 -0
  14. package/dist/agents/agents.controller.d.ts +76 -1
  15. package/dist/agents/agents.controller.js +90 -11
  16. package/dist/agents/agents.module.d.ts +4 -1
  17. package/dist/agents/agents.module.js +32 -6
  18. package/dist/agents/agents.service.d.ts +51 -22
  19. package/dist/agents/agents.service.js +172 -70
  20. package/dist/agents/definition.d.ts +49 -0
  21. package/dist/agents/definition.js +45 -0
  22. package/dist/agents/from-template.d.ts +106 -0
  23. package/dist/agents/from-template.js +649 -0
  24. package/dist/agents/from-template.service.d.ts +60 -0
  25. package/dist/agents/from-template.service.js +161 -0
  26. package/dist/agents/org-templates.d.ts +176 -0
  27. package/dist/agents/org-templates.js +827 -0
  28. package/dist/agents/pending-connector-requests.d.ts +77 -0
  29. package/dist/agents/pending-connector-requests.js +215 -0
  30. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  31. package/dist/agents/pending-connectors.controller.js +91 -0
  32. package/dist/agents/pending-connectors.service.d.ts +62 -0
  33. package/dist/agents/pending-connectors.service.js +282 -0
  34. package/dist/agents/templates.controller.d.ts +86 -5
  35. package/dist/agents/templates.controller.js +171 -7
  36. package/dist/agents/templates.d.ts +127 -23
  37. package/dist/agents/templates.js +475 -52
  38. package/dist/background/background.module.js +8 -1
  39. package/dist/background/finish.d.ts +3 -2
  40. package/dist/background/launch-lock.d.ts +4 -3
  41. package/dist/background/launch-lock.js +4 -3
  42. package/dist/background/poll.job.d.ts +9 -6
  43. package/dist/background/poll.job.js +30 -22
  44. package/dist/background/session.d.ts +13 -2
  45. package/dist/background/session.js +13 -0
  46. package/dist/background/stop.d.ts +12 -6
  47. package/dist/background/stop.js +57 -39
  48. package/dist/background/store.d.ts +18 -6
  49. package/dist/background/store.js +12 -6
  50. package/dist/background/tasks.service.d.ts +15 -5
  51. package/dist/background/tasks.service.js +42 -17
  52. package/dist/background/wake-rules.d.ts +27 -18
  53. package/dist/background/wake-rules.js +52 -22
  54. package/dist/background/wake.d.ts +13 -11
  55. package/dist/background/wake.js +20 -14
  56. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  57. package/dist/catalog/admin-catalog.controller.js +213 -42
  58. package/dist/catalog/catalog-content.d.ts +58 -32
  59. package/dist/catalog/catalog-content.js +34 -8
  60. package/dist/catalog/catalog-import.module.d.ts +7 -0
  61. package/dist/catalog/catalog-import.module.js +60 -0
  62. package/dist/catalog/catalog-items.d.ts +111 -7
  63. package/dist/catalog/catalog-items.js +279 -13
  64. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  65. package/dist/catalog/catalog-scope.service.js +1116 -0
  66. package/dist/catalog/catalog.module.d.ts +7 -9
  67. package/dist/catalog/catalog.module.js +41 -31
  68. package/dist/catalog/catalog.service.d.ts +101 -29
  69. package/dist/catalog/catalog.service.js +104 -106
  70. package/dist/catalog/cli.d.ts +11 -1
  71. package/dist/catalog/cli.js +26 -1
  72. package/dist/catalog/component-promotion.d.ts +96 -0
  73. package/dist/catalog/component-promotion.js +395 -0
  74. package/dist/catalog/component-scope.controller.d.ts +152 -0
  75. package/dist/catalog/component-scope.controller.js +287 -0
  76. package/dist/catalog/component-scope.service.d.ts +303 -0
  77. package/dist/catalog/component-scope.service.js +936 -0
  78. package/dist/catalog/component-state.d.ts +174 -0
  79. package/dist/catalog/component-state.js +437 -0
  80. package/dist/catalog/job-ids.d.ts +30 -0
  81. package/dist/catalog/job-ids.js +25 -0
  82. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  83. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  84. package/dist/catalog/marketplaces.controller.js +56 -7
  85. package/dist/catalog/marketplaces.service.d.ts +54 -14
  86. package/dist/catalog/marketplaces.service.js +71 -22
  87. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  88. package/dist/catalog/org-catalog.controller.js +181 -65
  89. package/dist/catalog/org-catalog.service.d.ts +65 -33
  90. package/dist/catalog/org-catalog.service.js +324 -157
  91. package/dist/catalog/org-extension-switch.d.ts +41 -0
  92. package/dist/catalog/org-extension-switch.js +115 -0
  93. package/dist/catalog/org-extension.controller.d.ts +119 -0
  94. package/dist/catalog/org-extension.controller.js +266 -0
  95. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  96. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  97. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  98. package/dist/catalog/org-plugin-uploads.js +116 -0
  99. package/dist/catalog/owned-items.d.ts +184 -0
  100. package/dist/catalog/owned-items.js +789 -0
  101. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  102. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  103. package/dist/catalog/ownership.d.ts +172 -0
  104. package/dist/catalog/ownership.js +326 -0
  105. package/dist/catalog/platform-components.d.ts +221 -0
  106. package/dist/catalog/platform-components.js +761 -0
  107. package/dist/catalog/platform-migration.d.ts +115 -0
  108. package/dist/catalog/platform-migration.js +582 -0
  109. package/dist/catalog/plugin-import.d.ts +178 -34
  110. package/dist/catalog/plugin-import.js +622 -82
  111. package/dist/catalog/plugin-install.d.ts +185 -41
  112. package/dist/catalog/plugin-install.js +758 -126
  113. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  114. package/dist/catalog/plugin-upgrade.js +1147 -1136
  115. package/dist/catalog/request-rules.d.ts +65 -0
  116. package/dist/catalog/request-rules.js +217 -0
  117. package/dist/catalog/requests.service.d.ts +193 -118
  118. package/dist/catalog/requests.service.js +526 -343
  119. package/dist/catalog/reserved-names.d.ts +8 -0
  120. package/dist/catalog/reserved-names.js +42 -0
  121. package/dist/catalog/scope-orgs.d.ts +21 -0
  122. package/dist/catalog/scope-orgs.js +67 -0
  123. package/dist/catalog/scope-state.d.ts +35 -0
  124. package/dist/catalog/scope-state.js +87 -0
  125. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  126. package/dist/catalog/scope-sync-workers.js +29 -0
  127. package/dist/catalog/scope-sync.d.ts +176 -0
  128. package/dist/catalog/scope-sync.js +576 -0
  129. package/dist/catalog/scope.d.ts +42 -0
  130. package/dist/catalog/scope.js +42 -0
  131. package/dist/catalog/unshare.d.ts +22 -0
  132. package/dist/catalog/unshare.js +118 -0
  133. package/dist/channels/actions.js +1 -0
  134. package/dist/channels/cards.js +20 -2
  135. package/dist/channels/channels.module.js +2 -0
  136. package/dist/channels/inbound.d.ts +9 -1
  137. package/dist/channels/inbound.js +67 -5
  138. package/dist/channels/phrases.d.ts +35 -0
  139. package/dist/channels/phrases.js +29 -0
  140. package/dist/config/docs.js +3 -1
  141. package/dist/config/schema.d.ts +6 -2
  142. package/dist/config/schema.js +46 -22
  143. package/dist/conversations/access.d.ts +6 -4
  144. package/dist/conversations/access.js +27 -5
  145. package/dist/conversations/agent-tree.d.ts +46 -0
  146. package/dist/conversations/agent-tree.js +92 -0
  147. package/dist/conversations/conversations.controller.d.ts +43 -18
  148. package/dist/conversations/conversations.controller.js +79 -38
  149. package/dist/conversations/conversations.module.d.ts +1 -1
  150. package/dist/conversations/conversations.module.js +7 -7
  151. package/dist/conversations/conversations.service.d.ts +69 -12
  152. package/dist/conversations/conversations.service.js +106 -27
  153. package/dist/conversations/environment-status.d.ts +24 -0
  154. package/dist/conversations/environment-status.js +71 -0
  155. package/dist/conversations/event-log.d.ts +20 -5
  156. package/dist/conversations/event-log.js +60 -0
  157. package/dist/conversations/events.d.ts +84 -2
  158. package/dist/conversations/events.js +91 -17
  159. package/dist/conversations/queue.service.d.ts +1 -1
  160. package/dist/conversations/queue.service.js +5 -0
  161. package/dist/conversations/titles.d.ts +5 -3
  162. package/dist/conversations/titles.js +21 -8
  163. package/dist/conversations/tree.d.ts +17 -0
  164. package/dist/conversations/tree.js +42 -0
  165. package/dist/ctx/create-ctx.d.ts +5 -0
  166. package/dist/ctx/create-ctx.js +15 -5
  167. package/dist/db/kernel-schema.d.ts +362 -18
  168. package/dist/environments/access.d.ts +41 -0
  169. package/dist/environments/access.js +77 -0
  170. package/dist/environments/conversation-environments.d.ts +61 -0
  171. package/dist/environments/conversation-environments.js +170 -0
  172. package/dist/environments/dto.d.ts +25 -0
  173. package/dist/environments/dto.js +12 -0
  174. package/dist/environments/environments.controller.d.ts +33 -0
  175. package/dist/environments/environments.controller.js +110 -0
  176. package/dist/environments/environments.module.d.ts +8 -0
  177. package/dist/environments/environments.module.js +27 -0
  178. package/dist/environments/environments.service.d.ts +153 -0
  179. package/dist/environments/environments.service.js +541 -0
  180. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  181. package/dist/environments/legacy-cleanup.job.js +141 -0
  182. package/dist/errors.d.ts +82 -2
  183. package/dist/errors.js +82 -2
  184. package/dist/evals/reconstruct.d.ts +18 -9
  185. package/dist/evals/reconstruct.js +26 -7
  186. package/dist/evals/run-replay.d.ts +4 -2
  187. package/dist/evals/run-replay.js +16 -4
  188. package/dist/evals/step-replay.d.ts +2 -5
  189. package/dist/evals/step-replay.js +1 -1
  190. package/dist/evals/trajectory.service.d.ts +8 -3
  191. package/dist/evals/trajectory.service.js +26 -14
  192. package/dist/evals/worker.d.ts +5 -5
  193. package/dist/evals/worker.js +9 -3
  194. package/dist/extensions/admin-ops.d.ts +36 -10
  195. package/dist/extensions/admin-ops.js +65 -42
  196. package/dist/extensions/admin-view.d.ts +37 -10
  197. package/dist/extensions/admin-view.js +103 -20
  198. package/dist/extensions/bootstrap.d.ts +17 -4
  199. package/dist/extensions/bootstrap.js +70 -9
  200. package/dist/extensions/cli.d.ts +12 -0
  201. package/dist/extensions/cli.js +11 -2
  202. package/dist/extensions/deployment-config.d.ts +28 -5
  203. package/dist/extensions/deployment-config.js +48 -7
  204. package/dist/extensions/effective-config.d.ts +127 -0
  205. package/dist/extensions/effective-config.js +368 -0
  206. package/dist/extensions/extensions.module.js +8 -2
  207. package/dist/extensions/hooks.d.ts +37 -4
  208. package/dist/extensions/hooks.js +82 -16
  209. package/dist/extensions/host.d.ts +19 -1
  210. package/dist/extensions/host.js +30 -7
  211. package/dist/extensions/installs.d.ts +20 -8
  212. package/dist/extensions/installs.js +37 -15
  213. package/dist/extensions/org-config.d.ts +75 -6
  214. package/dist/extensions/org-config.js +184 -32
  215. package/dist/extensions/org-levels.d.ts +37 -0
  216. package/dist/extensions/org-levels.js +71 -0
  217. package/dist/extensions/org-overrides.d.ts +151 -0
  218. package/dist/extensions/org-overrides.js +524 -0
  219. package/dist/extensions/permission-view.d.ts +16 -4
  220. package/dist/extensions/permission-view.js +4 -4
  221. package/dist/extensions/plugin-items.d.ts +21 -0
  222. package/dist/extensions/plugin-items.js +42 -0
  223. package/dist/extensions/point-defaults.d.ts +12 -5
  224. package/dist/extensions/point-defaults.js +37 -9
  225. package/dist/extensions/resolve.d.ts +5 -1
  226. package/dist/extensions/resolve.js +15 -2
  227. package/dist/files/previewers.d.ts +8 -1
  228. package/dist/files/previewers.js +35 -6
  229. package/dist/http/api.module.js +23 -3
  230. package/dist/http/app.d.ts +11 -2
  231. package/dist/http/app.js +31 -5
  232. package/dist/identity/accounts.d.ts +29 -29
  233. package/dist/identity/accounts.js +47 -47
  234. package/dist/identity/audit.d.ts +2 -1
  235. package/dist/identity/auth.guard.d.ts +13 -5
  236. package/dist/identity/auth.guard.js +26 -9
  237. package/dist/identity/identity.module.d.ts +1 -1
  238. package/dist/identity/identity.module.js +4 -4
  239. package/dist/identity/me.controller.js +1 -1
  240. package/dist/identity/principal.d.ts +3 -3
  241. package/dist/identity/principal.js +3 -3
  242. package/dist/identity/settings.d.ts +22 -11
  243. package/dist/identity/settings.js +53 -18
  244. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  245. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  246. package/dist/inbox/inbox.module.d.ts +4 -1
  247. package/dist/inbox/inbox.module.js +7 -3
  248. package/dist/inbox/inbox.service.d.ts +62 -3
  249. package/dist/inbox/inbox.service.js +74 -4
  250. package/dist/inbox/org-notices.d.ts +63 -0
  251. package/dist/inbox/org-notices.js +91 -0
  252. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  253. package/dist/inbox/platform-inbox.controller.js +58 -0
  254. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  255. package/dist/inbox/platform-inbox.service.js +263 -0
  256. package/dist/inbox/platform-notices.d.ts +19 -0
  257. package/dist/inbox/platform-notices.js +9 -0
  258. package/dist/index.d.ts +1 -1
  259. package/dist/index.js +1 -1
  260. package/dist/infra/cli/kernel-cli.module.js +9 -1
  261. package/dist/infra/config/kernel-config.service.js +21 -1
  262. package/dist/infra/database/xact-lock.d.ts +1 -1
  263. package/dist/infra/database/xact-lock.js +1 -1
  264. package/dist/infra/events/kernel-events.d.ts +11 -2
  265. package/dist/infra/queue/add-job-once.d.ts +14 -0
  266. package/dist/infra/queue/add-job-once.js +16 -0
  267. package/dist/kernel.module.js +6 -0
  268. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  269. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  270. package/dist/models/prices.d.ts +5 -5
  271. package/dist/models/prices.js +4 -4
  272. package/dist/models/purposes.controller.d.ts +6 -4
  273. package/dist/models/purposes.controller.js +13 -7
  274. package/dist/models/purposes.d.ts +20 -9
  275. package/dist/models/purposes.js +17 -8
  276. package/dist/orgs/directory-sync.d.ts +14 -5
  277. package/dist/orgs/directory-sync.js +41 -17
  278. package/dist/orgs/offboarding.d.ts +9 -7
  279. package/dist/orgs/offboarding.js +28 -17
  280. package/dist/orgs/org-lock.d.ts +5 -0
  281. package/dist/orgs/org-lock.js +13 -0
  282. package/dist/orgs/org.guard.d.ts +10 -0
  283. package/dist/orgs/org.guard.js +43 -32
  284. package/dist/orgs/orgs.module.js +3 -0
  285. package/dist/orgs/orgs.service.d.ts +20 -7
  286. package/dist/orgs/orgs.service.js +32 -12
  287. package/dist/orgs/roles.d.ts +1 -1
  288. package/dist/orgs/roles.js +5 -1
  289. package/dist/orgs/settings.controller.d.ts +1 -1
  290. package/dist/orgs/settings.service.d.ts +15 -3
  291. package/dist/orgs/settings.service.js +6 -2
  292. package/dist/overrides.d.ts +3 -0
  293. package/dist/overrides.js +2 -0
  294. package/dist/platform/actor.d.ts +48 -0
  295. package/dist/platform/actor.js +100 -0
  296. package/dist/platform/agent-docs.d.ts +18 -0
  297. package/dist/platform/agent-docs.js +59 -0
  298. package/dist/platform/availability.d.ts +14 -0
  299. package/dist/platform/availability.js +43 -0
  300. package/dist/platform/errors.d.ts +11 -0
  301. package/dist/platform/errors.js +26 -0
  302. package/dist/platform/exclusions.d.ts +12 -0
  303. package/dist/platform/exclusions.js +1387 -0
  304. package/dist/platform/method.d.ts +6 -0
  305. package/dist/platform/method.js +15 -0
  306. package/dist/platform/operation.d.ts +92 -0
  307. package/dist/platform/operation.js +35 -0
  308. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  309. package/dist/platform/ops/agent-templates.ops.js +92 -0
  310. package/dist/platform/ops/agents.ops.d.ts +19 -0
  311. package/dist/platform/ops/agents.ops.js +294 -0
  312. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  313. package/dist/platform/ops/connectors.ops.js +126 -0
  314. package/dist/platform/ops/errors.d.ts +11 -0
  315. package/dist/platform/ops/errors.js +22 -0
  316. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  317. package/dist/platform/ops/extensions.ops.js +116 -0
  318. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  319. package/dist/platform/ops/marketplaces.ops.js +157 -0
  320. package/dist/platform/ops/paging.d.ts +14 -0
  321. package/dist/platform/ops/paging.js +20 -0
  322. package/dist/platform/ops/platform.ops.d.ts +23 -0
  323. package/dist/platform/ops/platform.ops.js +158 -0
  324. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  325. package/dist/platform/ops/plugins.ops.js +377 -0
  326. package/dist/platform/ops/requests.ops.d.ts +14 -0
  327. package/dist/platform/ops/requests.ops.js +153 -0
  328. package/dist/platform/ops/role.d.ts +4 -0
  329. package/dist/platform/ops/role.js +10 -0
  330. package/dist/platform/ops/skills.ops.d.ts +13 -0
  331. package/dist/platform/ops/skills.ops.js +98 -0
  332. package/dist/platform/ops/summary.d.ts +10 -0
  333. package/dist/platform/ops/summary.js +18 -0
  334. package/dist/platform/platform-ops.module.d.ts +7 -0
  335. package/dist/platform/platform-ops.module.js +55 -0
  336. package/dist/platform/platform.module.d.ts +8 -0
  337. package/dist/platform/platform.module.js +25 -0
  338. package/dist/platform/redact-orgs.d.ts +7 -0
  339. package/dist/platform/redact-orgs.js +52 -0
  340. package/dist/platform/registry.d.ts +30 -0
  341. package/dist/platform/registry.js +111 -0
  342. package/dist/roles/worker-role.d.ts +6 -4
  343. package/dist/roles/worker-role.js +14 -7
  344. package/dist/roles/worker.module.d.ts +1 -1
  345. package/dist/roles/worker.module.js +9 -1
  346. package/dist/runtime/context/build.d.ts +6 -4
  347. package/dist/runtime/context/build.js +26 -7
  348. package/dist/runtime/context/claude-tools.d.ts +2 -1
  349. package/dist/runtime/context/claude-tools.js +5 -4
  350. package/dist/runtime/context/compaction.js +9 -0
  351. package/dist/runtime/context/reminders.d.ts +2 -0
  352. package/dist/runtime/context/reminders.js +2 -0
  353. package/dist/runtime/context/skills.js +9 -2
  354. package/dist/runtime/context/tool-changes.d.ts +27 -0
  355. package/dist/runtime/context/tool-changes.js +60 -0
  356. package/dist/runtime/hook-calls.js +2 -0
  357. package/dist/runtime/langgraph-loop.d.ts +3 -1
  358. package/dist/runtime/langgraph-loop.js +35 -17
  359. package/dist/runtime/loop.d.ts +32 -4
  360. package/dist/runtime/maintenance.d.ts +7 -4
  361. package/dist/runtime/maintenance.js +23 -8
  362. package/dist/runtime/model-call.d.ts +30 -8
  363. package/dist/runtime/model-call.js +69 -19
  364. package/dist/runtime/run-control.d.ts +11 -1
  365. package/dist/runtime/run-control.js +12 -0
  366. package/dist/runtime/run-drafts.d.ts +85 -0
  367. package/dist/runtime/run-drafts.js +230 -0
  368. package/dist/runtime/run-jobs.d.ts +3 -5
  369. package/dist/runtime/run-jobs.js +3 -7
  370. package/dist/runtime/run-queue.d.ts +37 -3
  371. package/dist/runtime/run-queue.js +188 -11
  372. package/dist/runtime/run-worker.d.ts +11 -5
  373. package/dist/runtime/run-worker.js +54 -31
  374. package/dist/runtime/runtime.module.js +3 -0
  375. package/dist/runtime/step-log.d.ts +9 -4
  376. package/dist/runtime/step-log.js +8 -5
  377. package/dist/runtime/stream.controller.d.ts +23 -1
  378. package/dist/runtime/stream.controller.js +60 -3
  379. package/dist/runtime/stream.d.ts +4 -1
  380. package/dist/runtime/stream.js +27 -3
  381. package/dist/runtime/subagents/child.d.ts +55 -7
  382. package/dist/runtime/subagents/child.js +105 -7
  383. package/dist/runtime/subagents/definition.d.ts +12 -3
  384. package/dist/runtime/subagents/definition.js +43 -29
  385. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  386. package/dist/runtime/subagents/deliveries.js +228 -0
  387. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  388. package/dist/runtime/subagents/dispatch.js +212 -141
  389. package/dist/runtime/subagents/limits.d.ts +24 -5
  390. package/dist/runtime/subagents/limits.js +40 -6
  391. package/dist/runtime/subagents/messages.d.ts +95 -0
  392. package/dist/runtime/subagents/messages.js +328 -0
  393. package/dist/runtime/subagents/preamble.d.ts +4 -4
  394. package/dist/runtime/subagents/preamble.js +9 -7
  395. package/dist/runtime/subagents/progress.d.ts +8 -6
  396. package/dist/runtime/subagents/progress.js +11 -6
  397. package/dist/runtime/subagents/render.d.ts +30 -0
  398. package/dist/runtime/subagents/render.js +53 -0
  399. package/dist/runtime/subagents/roster.d.ts +24 -7
  400. package/dist/runtime/subagents/roster.js +47 -11
  401. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  402. package/dist/runtime/subagents/skill-fork.js +8 -4
  403. package/dist/runtime/subagents/status.d.ts +14 -0
  404. package/dist/runtime/subagents/status.js +23 -0
  405. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  406. package/dist/runtime/subagents/subagents.service.js +11 -6
  407. package/dist/runtime/usage-report.js +17 -12
  408. package/dist/runtime/waits.d.ts +140 -37
  409. package/dist/runtime/waits.js +394 -106
  410. package/dist/sandbox/jobs.d.ts +40 -13
  411. package/dist/sandbox/jobs.js +57 -20
  412. package/dist/sandbox/leases.d.ts +37 -54
  413. package/dist/sandbox/leases.js +71 -115
  414. package/dist/sandbox/providers.d.ts +2 -2
  415. package/dist/sandbox/providers.js +1 -1
  416. package/dist/sandbox/sandbox.module.d.ts +3 -2
  417. package/dist/sandbox/sandbox.module.js +4 -3
  418. package/dist/sandbox/sandbox.service.d.ts +229 -134
  419. package/dist/sandbox/sandbox.service.js +630 -409
  420. package/dist/skills/catalog.d.ts +3 -2
  421. package/dist/skills/catalog.js +21 -43
  422. package/dist/skills/changes.controller.d.ts +7 -0
  423. package/dist/skills/changes.controller.js +19 -1
  424. package/dist/skills/invoke.js +8 -3
  425. package/dist/skills/package.d.ts +20 -1
  426. package/dist/skills/package.js +28 -1
  427. package/dist/skills/skills.controller.d.ts +39 -4
  428. package/dist/skills/skills.controller.js +88 -10
  429. package/dist/skills/skills.module.js +10 -1
  430. package/dist/skills/skills.service.d.ts +106 -26
  431. package/dist/skills/skills.service.js +421 -75
  432. package/dist/skills/usable.d.ts +81 -0
  433. package/dist/skills/usable.js +379 -0
  434. package/dist/tools/approvals.service.d.ts +20 -2
  435. package/dist/tools/approvals.service.js +23 -4
  436. package/dist/tools/builtin-names.d.ts +21 -5
  437. package/dist/tools/builtin-names.js +30 -5
  438. package/dist/tools/builtins/agent.d.ts +23 -21
  439. package/dist/tools/builtins/agent.js +62 -55
  440. package/dist/tools/builtins/builtin-tools.d.ts +6 -2
  441. package/dist/tools/builtins/builtin-tools.js +37 -12
  442. package/dist/tools/builtins/handback.d.ts +28 -0
  443. package/dist/tools/builtins/handback.js +53 -0
  444. package/dist/tools/builtins/platform.d.ts +34 -0
  445. package/dist/tools/builtins/platform.js +362 -0
  446. package/dist/tools/builtins/sandbox/bash.js +13 -3
  447. package/dist/tools/builtins/sandbox/common.d.ts +43 -24
  448. package/dist/tools/builtins/sandbox/common.js +80 -45
  449. package/dist/tools/builtins/sandbox/edit.js +2 -2
  450. package/dist/tools/builtins/sandbox/glob.js +2 -2
  451. package/dist/tools/builtins/sandbox/grep.js +2 -4
  452. package/dist/tools/builtins/sandbox/index.d.ts +1 -1
  453. package/dist/tools/builtins/sandbox/index.js +1 -1
  454. package/dist/tools/builtins/sandbox/read.js +1 -1
  455. package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
  456. package/dist/tools/builtins/sandbox/task-output.js +30 -5
  457. package/dist/tools/builtins/sandbox/task-stop.js +2 -1
  458. package/dist/tools/builtins/sandbox/write.js +2 -2
  459. package/dist/tools/builtins/send-message.d.ts +56 -0
  460. package/dist/tools/builtins/send-message.js +100 -0
  461. package/dist/tools/builtins/skill-load.d.ts +22 -14
  462. package/dist/tools/builtins/skill-load.js +86 -57
  463. package/dist/tools/builtins/skill-write.js +1 -1
  464. package/dist/tools/builtins/web/extract.js +5 -1
  465. package/dist/tools/builtins/web/fetch.js +1 -0
  466. package/dist/tools/builtins/web/search.js +1 -0
  467. package/dist/tools/connectors.controller.d.ts +10 -0
  468. package/dist/tools/connectors.controller.js +12 -0
  469. package/dist/tools/connectors.service.d.ts +46 -5
  470. package/dist/tools/connectors.service.js +94 -15
  471. package/dist/tools/extension-tools.controller.d.ts +14 -0
  472. package/dist/tools/extension-tools.controller.js +37 -0
  473. package/dist/tools/info.d.ts +42 -1
  474. package/dist/tools/info.js +64 -1
  475. package/dist/tools/org-tool-switches.d.ts +74 -0
  476. package/dist/tools/org-tool-switches.js +184 -0
  477. package/dist/tools/pipeline.d.ts +46 -40
  478. package/dist/tools/pipeline.js +187 -364
  479. package/dist/tools/policy.d.ts +1 -1
  480. package/dist/tools/policy.js +36 -16
  481. package/dist/tools/registry.d.ts +98 -5
  482. package/dist/tools/registry.js +87 -9
  483. package/dist/tools/tools.module.js +12 -2
  484. package/dist/ui/views.d.ts +2 -1
  485. package/dist/ui/views.js +17 -3
  486. package/package.json +3 -3
  487. package/src/migrations/0074_subagent_tree.sql +50 -0
  488. package/src/migrations/0075_plugin_scope.sql +61 -0
  489. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  490. package/src/migrations/0077_scope_requests.sql +52 -0
  491. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  492. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  493. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  494. package/src/migrations/0081_platform_components.sql +129 -0
  495. package/src/migrations/0082_platform_migration.sql +33 -0
  496. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  497. package/src/migrations/0084_org_owned_items.sql +85 -0
  498. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  499. package/src/migrations/0086_org_layering.sql +30 -0
  500. package/src/migrations/0087_approval_summary.sql +6 -0
  501. package/src/migrations/0088_environments.sql +80 -0
  502. package/dist/catalog/upgrade-targets.d.ts +0 -56
  503. package/dist/catalog/upgrade-targets.js +0 -90
  504. package/dist/conversations/sandbox-status.d.ts +0 -24
  505. package/dist/conversations/sandbox-status.js +0 -52
  506. package/dist/extensions/org-config.controller.d.ts +0 -32
  507. package/dist/extensions/org-config.controller.js +0 -70
@@ -1,277 +1,312 @@
1
- import type { AgentTemplate, ConnectorTemplateFile, PluginManifest } from "@capybara-hq/plugin-sdk";
2
- import type { SourceFormat } from "../db/kernel-schema.js";
3
- import { OrgExtensionConfigs } from "../extensions/org-config.js";
1
+ import type { PluginManifest } from "@capybara-hq/plugin-sdk";
2
+ import { ExtensionAdminOps } from "../extensions/admin-ops.js";
3
+ import { ExtensionBlobs } from "../extensions/blobs.js";
4
4
  import { ExtensionRegistry } from "../extensions/registry.js";
5
+ import { SuperAdminLock } from "../identity/super-admin.js";
6
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
5
7
  import { KernelDb } from "../infra/database/kernel-db.js";
6
8
  import { TransactionHost } from "../infra/database/transaction-host.js";
9
+ import { LockService } from "../infra/lock/lock.service.js";
7
10
  import type { KernelLogger } from "../log.js";
8
11
  import { OrgLock } from "../orgs/org-lock.js";
9
- import type { OrgAction } from "../orgs/roles.js";
10
- import { SkillsService } from "../skills/skills.service.js";
11
12
  import { StorageService } from "../storage/storage.service.js";
12
- import type { CreateConnectorInput, TemplateUpdateInput } from "../tools/connectors.service.js";
13
13
  import { ConnectorsService } from "../tools/connectors.service.js";
14
- import type { ConnectorAuth } from "../tools/credentials.js";
15
- import { type CatalogVersionFiles, type OrgCatalogTemplate } from "./catalog-content.js";
16
- import { type ComponentKind, type InstallPlan, PluginInstaller, type PluginInstallInput, type PluginInstallView, type ResolvedDependency } from "./plugin-install.js";
17
- import { CatalogRequestsService } from "./requests.service.js";
18
- /** How a component differs between the installed and the target version. */
19
- export type UpgradeChange = "added" | "changed" | "removed" | "unchanged";
20
- /**
21
- * One component of an upgrade preview: `ref` is the extension name, the dependency's plugin name,
22
- * the skill name, the connector template id or the agent template name.
23
- */
24
- export interface UpgradeComponent {
14
+ import { type CatalogVersionFiles } from "./catalog-content.js";
15
+ import { type ComponentKind } from "./component-state.js";
16
+ import { CatalogItemLock } from "./locks.js";
17
+ import { PlatformComponents } from "./platform-components.js";
18
+ import { PluginInstaller } from "./plugin-install.js";
19
+ import { PluginScopeSync } from "./scope-sync.js";
20
+ /** How a component differs between the platform's current and the target version (spec §7.1). */
21
+ export type UpdateChange = "added" | "removed" | "upgrade" | "downgrade" | "same";
22
+ /** One component of an update preview. */
23
+ export interface PlatformUpdateComponent {
25
24
  kind: ComponentKind;
26
- ref: string;
27
- change: UpgradeChange;
28
- detail?: string;
25
+ /** The platform component (null: added by the target). */
26
+ id: string | null;
27
+ /** Skill or agent template name; a connector template's id. */
28
+ name: string;
29
+ change: UpdateChange;
30
+ /** The catalog version of the component's current version (null: added, or no catalog version). */
31
+ from: string | null;
32
+ /** The target version (null: removed). */
33
+ to: string | null;
34
+ /** The current version was updated on its own (spec §7.2): the confirm moves it to the plugin's. */
35
+ updatedOnOwn: boolean;
36
+ /** The component has its own scope (spec §5 rule 2); the update keeps it. */
37
+ ownScope: boolean;
38
+ /**
39
+ * The orgs where the component is on whose linked copy is pinned to its own version (ruling B2):
40
+ * the confirm clears those pins, except for a removed component (the copy keeps its version).
41
+ */
42
+ pinnedOrgs: string[];
43
+ /**
44
+ * A removed skill or agent template agents use: it stays (spec §7.3), listed with the orgs and
45
+ * agents using it. Absent otherwise.
46
+ */
47
+ kept?: {
48
+ orgId: string;
49
+ agents: {
50
+ id: string;
51
+ name: string;
52
+ }[];
53
+ }[];
29
54
  }
30
- /** `POST …/plugin-installs/:installId/upgrade/preview` (spec §10, step 1). */
31
- export interface UpgradePreview {
32
- from: string;
33
- to: string;
34
- /** Confirm with it; it changes when the target, the install's components or the inputs change. */
35
- diffHash: string;
36
- components: UpgradeComponent[];
37
- inputs: {
38
- /** Added templates: their connectors are created with the org's input (as at install). */
39
- connectors: string[];
40
- /** Changed templates whose auth method or required credentials changed: re-entry needed. */
41
- credentialsChanged: string[];
42
- /** The extension is added and not yet enabled in the org: its org config may be given. */
43
- extensionConfig: boolean;
44
- };
55
+ /** The org connectors an update touches (ruling E2, spec §6). */
56
+ export interface PlatformUpdateConnectorOrg {
57
+ orgId: string;
45
58
  /**
46
- * The target version's connector templates named in `inputs.connectors` and
47
- * `inputs.credentialsChanged` (presets and auth, no credentials), for the input form: the target
48
- * is not always the latest version (an extension's plugin moves to the deployed version).
59
+ * Connectors made from a changed template: they get the template's endpoint preset (the org's
60
+ * values at the editable paths), auth preset and default policies; `credentialsReset` when the
61
+ * auth method or the credentials it needs changed (cleared: the org re-enters them).
49
62
  */
50
- templates: OrgCatalogTemplate[];
63
+ connectors: {
64
+ id: string;
65
+ name: string;
66
+ templateId: string;
67
+ credentialsReset: boolean;
68
+ }[];
69
+ /**
70
+ * Added templates on in the org where the plugin is on: their connectors need the org's input
71
+ * (endpoint, credentials), so the update creates none.
72
+ */
73
+ needsConfig: string[];
51
74
  }
52
- /** The body of `POST …/plugin-installs/:installId/upgrade`. */
53
- export interface PluginUpgradeInput extends PluginInstallInput {
54
- version: string;
75
+ /** `POST /api/v1/admin/catalog/items/:id/update/preview`. */
76
+ export interface PlatformUpdatePreview {
77
+ itemId: string;
78
+ name: string;
79
+ /** The platform's current version (null: never synced). */
80
+ from: string | null;
81
+ to: string;
82
+ components: PlatformUpdateComponent[];
83
+ /**
84
+ * The deployment's extension moves (`from` null: installed by the update); null: unchanged.
85
+ * `orgs`: the orgs using it (where the plugin is on; spec §7.4, one version for all of them);
86
+ * `needsApproval`: the new version asks for permissions the approved snapshot does not cover,
87
+ * so it waits as `pending_approval` until the super admin approves them.
88
+ */
89
+ extension: {
90
+ from: string | null;
91
+ /** null: the target drops the extension (an owner update only, ruling P3-12'). */
92
+ to: string | null;
93
+ orgs: string[];
94
+ needsApproval: boolean;
95
+ } | null;
96
+ connectorOrgs: PlatformUpdateConnectorOrg[];
97
+ /**
98
+ * An owner's update preview only ({@link PlatformPluginUpdater.previewForOwner}): the name of
99
+ * every org the preview mentions, by id. An org admin cannot read other orgs, and these names
100
+ * are already disclosed to the owner (rulings P3-14, P3-19). Not covered by `diffHash`.
101
+ */
102
+ orgNames?: Record<string, string>;
103
+ /** Confirm with it; recomputed under the item lock at the confirm. */
55
104
  diffHash: string;
56
105
  }
57
- interface LedgerRow {
58
- kind: ComponentKind;
59
- ref: string;
60
- created: boolean;
61
- skill_version: number | null;
62
- template_id: string | null;
63
- dropped: boolean;
106
+ /** `PUT /api/v1/admin/catalog/items/:id/update`. */
107
+ export interface PlatformUpdateResult {
108
+ itemId: string;
109
+ version: string;
110
+ components: PlatformUpdateComponent[];
111
+ extension: PlatformUpdatePreview["extension"];
112
+ connectorOrgs: PlatformUpdateConnectorOrg[];
64
113
  }
65
114
  interface VersionRow extends CatalogVersionFiles {
66
115
  version: string;
67
116
  manifest: PluginManifest;
68
- source_format: SourceFormat;
69
- }
70
- interface SkillDiff {
71
- name: string;
72
- change: UpgradeChange;
73
- /** The skill directory in the target version (added / changed / unchanged). */
74
- dir?: string;
75
- /** The target version suggests pinning the skill (spec §9.1). */
76
- suggestPinned?: boolean;
77
- /** The ledger row of the org skill (by skill id), when the install has one that is live. */
78
- ledger?: LedgerRow;
79
- }
80
- interface AgentTemplateDiff {
81
- name: string;
82
- change: UpgradeChange;
83
- /** The target version's template (added / changed / unchanged). */
84
- template?: AgentTemplate;
85
- /** The ledger row of the org template, when the install has one that is live. */
86
- ledger?: LedgerRow;
87
- }
88
- interface TemplateDiff {
89
- id: string;
90
- change: UpgradeChange;
91
- target?: ConnectorTemplateFile;
92
- /** The org connector created from the template (live), when the install has one. */
93
- connector?: {
94
- id: string;
95
- connector: string;
96
- endpoint: unknown;
97
- auth: ConnectorAuth;
98
- };
99
- ledger?: LedgerRow;
100
- credentialsChanged: boolean;
101
- }
102
- interface DependencyDiff {
103
- name: string;
104
- change: UpgradeChange;
105
- range?: string;
106
- fromRange?: string;
107
- resolved?: ResolvedDependency;
108
- /** The dependency install recorded in the ledger. */
109
- child?: {
110
- installId: string;
111
- version: string;
112
- ledger: LedgerRow;
113
- };
114
- /** Added: null when already installed in the org (recorded created=false). */
115
- plan?: InstallPlan | null;
117
+ extension_sha256: string | null;
116
118
  }
117
119
  /**
118
- * Everything an upgrade will do, computed before anything is written (opaque outside this module:
119
- * {@link PluginUpgrader.check} hands it to {@link PluginUpgrader.upgrade}).
120
+ * An update's target read from somewhere other than `catalog_item_versions`: an org upload's
121
+ * staging (pre-flight F3), so the org's review can show the update before the version is imported.
122
+ * Its files are at `object_prefix`, where the confirm's version row will point too.
120
123
  */
121
- export interface UpgradeDiff {
122
- installId: string;
123
- itemId: string;
124
- name: string;
125
- from: VersionRow;
126
- to: VersionRow;
127
- ledger: LedgerRow[];
128
- extension: {
129
- change: UpgradeChange;
130
- name: string;
131
- } | null;
132
- skills: SkillDiff[];
133
- agentTemplates: AgentTemplateDiff[];
134
- templates: TemplateDiff[];
135
- dependencies: DependencyDiff[];
136
- components: UpgradeComponent[];
137
- inputs: UpgradePreview["inputs"];
138
- diffHash: string;
139
- ledgerHash: string;
140
- actions: OrgAction[];
141
- /** With input: the connectors to create and the template updates to prepare. */
142
- creates: Map<string, CreateConnectorInput>;
143
- updates: Map<string, TemplateUpdateInput>;
144
- }
124
+ export type UpdateTarget = VersionRow;
145
125
  /**
146
- * Org in-place upgrade (and, for declarative plugins, rollback) of an installed plugin (package
147
- * ecosystem spec §10, Decisions 9–11):
148
- * - **preview** diffs the installed and the target version per component (extension, dependency
149
- * plugins, skills by name, connector templates by id) and returns the inputs needed and a
150
- * `diffHash`; the same checks as an install run first (dependencies resolve, extension and
151
- * template connectors deployed, skill conflicts -> `plugin.skill_conflict`), plus the target
152
- * rules (`plugin.upgrade_target_invalid`): an extension-bearing plugin can move only to the
153
- * catalog version carrying the deployment's extension, and installs depending on this plugin must
154
- * still accept the target;
155
- * - **upgrade** re-checks the `diffHash` (`plugin.upgrade_stale`), sets the install `upgrading`
156
- * under the org lock (another upgrade or an uninstall -> `plugin.install_in_progress`), then:
157
- * added dependencies (installed by the install flow), the added extension (enabled), added and
158
- * changed skills (a new version of the same skill; agents keep selecting it by id), added
159
- * connectors (created from the template), and in one final transaction the changed connectors
160
- * (template-owned fields only, `applyTemplateIn`), the removals by the uninstall rules, the new
161
- * version and the audit `plugin.org_upgraded`. Each step is journaled in
162
- * `plugin_installs.upgrade`; on failure the journal is undone (created components removed, skill
163
- * versions reverted; changed connectors were never committed), the install stays `installed` at
164
- * the old version with `error = { step, code }`, audit `plugin.org_upgrade_failed`, 502
165
- * `plugin.upgrade_failed`. An upgrade interrupted for longer than `catalog.staleInstallMinutes`
166
- * is undone by the next preview, upgrade or uninstall.
167
- * Approval follows the item's policy (the org catalog service creates the request). No in-process
168
- * state.
126
+ * The platform plugin update (spec §7; ruling F2 retires the per-org upgrades):
127
+ * - **preview** diffs the platform's current components of the plugin (the version recorded in
128
+ * `catalog_items.platform_synced_version`, components updated on their own included) against a
129
+ * catalog version: each skill (by name, by its files' digest), agent template (by name, canonical
130
+ * definition) and connector template (by id, canonical file) is `added`, `removed`, `same`, or
131
+ * `upgrade` / `downgrade` (the target's direction from the component's catalog version). It marks
132
+ * components updated on their own, components with their own scope and the orgs whose linked
133
+ * copy is pinned; lists removed components agents still use (they stay, spec §7.3), the org
134
+ * connectors made from changed templates (all orgs, ruling E2; `credentialsReset` when the
135
+ * credential shape changed) and the added templates that will need an org's input, the
136
+ * deployment's extension move, and a `diffHash`. Refused: same version, a disabled or deleted
137
+ * item, a target without the extension the deployment runs for it or moving a config-declared
138
+ * one, a template moving to another connector, a plugin another platform plugin depends on
139
+ * outside its range, and an added skill whose name is taken where the plugin is on (rule 10).
140
+ * - **update** runs under a Redis lock per item (another update -> `plugin.install_in_progress`):
141
+ * the extension first (`ExtensionAdminOps.install`, enabled when the update installs it; added
142
+ * permissions wait for the admin's approval as for any extension upgrade), then one transaction
143
+ * under the item name's lock that recomputes the diff (`plugin.upgrade_stale` on a difference)
144
+ * and writes the platform versions (`PlatformComponents.syncFromVersion`, which records
145
+ * `platform_synced_version`), the pinned suggestions of unchanged skills, the removals (a
146
+ * component no agent uses is soft-deleted, so unpinned linked copies go with it; pinned copies
147
+ * keep their own version; a removed connector template leaves its connectors as the orgs' own),
148
+ * clears the pins of linked copies, fans changed templates out to every connector made from them
149
+ * (`applyTemplateIn`, under each org's row lock, credentials cleared only for a changed
150
+ * credential shape), moves every org install to the version and audits
151
+ * `plugin.platform_updated`; the scope sync of the item and its dependencies is enqueued after
152
+ * the commit (orgs get new dependencies by rule 9). A failure rolls the transaction back and
153
+ * puts the extension back where it was (audit `plugin.platform_update_failed`, 502
154
+ * `plugin.upgrade_failed`); files copied to `deployment/platform/` stay unreferenced.
155
+ * Storage is never read or written inside the transaction: the target's contents (and the
156
+ * extension package, for `needsApproval`) are read and the platform files copied
157
+ * (`PlatformComponents.prepareSync`) after the Redis lock is taken and before the transaction,
158
+ * which reuses them and writes rows only (`applySyncIn`). The confirm-time diff treats the
159
+ * extension this update moved as expected (the install record must point at that package).
160
+ * Recovery: a process that dies between the extension step and the transaction leaves the
161
+ * deployment on the target's extension with the platform components unchanged; a new preview
162
+ * then shows the extension unchanged (`extension: null`) and the components still to move, and
163
+ * confirming it completes the update (or an update back to the old version moves it back).
164
+ * No in-process state.
169
165
  */
170
- export declare class PluginUpgrader {
171
- /** Planning, installs, the ledger and the uninstall rules are the installer's. */
172
- private readonly installer;
166
+ export declare class PlatformPluginUpdater {
173
167
  private readonly kdb;
174
- /** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
168
+ readonly txHost: TransactionHost;
169
+ private readonly adminLock;
170
+ private readonly itemLock;
175
171
  private readonly orgLock;
172
+ private readonly locks;
176
173
  private readonly storage;
177
174
  private readonly registry;
178
- private readonly skills;
179
- private readonly orgConfigs;
180
- private readonly requests;
181
- /** Org connectors: installs create, upgrade and remove them. */
175
+ private readonly ops;
176
+ /** Reads the target's extension package (its permissions, for `needsApproval`). */
177
+ private readonly blobs;
178
+ private readonly config;
179
+ private readonly platform;
180
+ /** Template dependencies (the deployed connector kinds). */
181
+ private readonly installer;
182
182
  private readonly connectors;
183
+ private readonly sync;
183
184
  private readonly log;
184
- readonly txHost: TransactionHost;
185
- constructor(
186
- /** Planning, installs, the ledger and the uninstall rules are the installer's. */
187
- installer: PluginInstaller, kdb: KernelDb,
188
- /** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
189
- orgLock: OrgLock, storage: StorageService, registry: ExtensionRegistry, skills: SkillsService, orgConfigs: OrgExtensionConfigs, requests: CatalogRequestsService,
190
- /** Org connectors: installs create, upgrade and remove them. */
191
- connectors: ConnectorsService, log: KernelLogger, txHost: TransactionHost);
192
- /** The kernel-schema handle of the current context (the transaction, else the pool). */
185
+ constructor(kdb: KernelDb, txHost: TransactionHost, adminLock: SuperAdminLock, itemLock: CatalogItemLock, orgLock: OrgLock, locks: LockService, storage: StorageService, registry: ExtensionRegistry, ops: ExtensionAdminOps,
186
+ /** Reads the target's extension package (its permissions, for `needsApproval`). */
187
+ blobs: ExtensionBlobs, config: KernelConfigService, platform: PlatformComponents,
188
+ /** Template dependencies (the deployed connector kinds). */
189
+ installer: PluginInstaller, connectors: ConnectorsService, sync: PluginScopeSync, log: KernelLogger);
193
190
  private get db();
194
- /** The upgrade preview (see the class comment). */
195
- preview(orgId: string, actor: string, installId: string, version: string): Promise<UpgradePreview>;
196
- /** Re-checks the actor's org actions under the org row lock (a transaction of its own). */
197
- private authorizeActions;
191
+ /** The update preview (see the class comment); writes nothing. */
192
+ preview(itemId: string, version: string): Promise<PlatformUpdatePreview>;
198
193
  /**
199
- * The checks of {@link upgrade} before an approval request (the org catalog service creates one
200
- * for a needs_approval item without a grant): the diff with the input, the `diffHash`. Returns
201
- * the item and the org actions the upgrade needs.
194
+ * The update preview of a new version of an org's own plugin (ruling P3-12): the item must be
195
+ * owned by `orgId` (else 404, as for any item the org cannot see), the target carries no
196
+ * extension (an extension-bearing version waits for the super admin, plan Task 6), and a target
197
+ * dropping the deployment's extension is allowed (P3-12'). `staged` is the target read from the
198
+ * org's staging (pre-flight F3); without it the imported version `version` is read. The route
199
+ * authorizes the org admin; writes nothing.
202
200
  */
203
- check(orgId: string, actor: string, installId: string, input: PluginUpgradeInput): Promise<{
204
- itemId: string;
205
- name: string;
206
- actions: OrgAction[];
207
- diff: UpgradeDiff;
208
- }>;
201
+ previewForOwner(orgId: string, itemId: string, version: string, staged?: UpdateTarget): Promise<PlatformUpdatePreview>;
202
+ /**
203
+ * Locks, in sorted order and before the item (ruling P3-50), every live org the update may
204
+ * write in: the orgs with connectors made from the plugin's connector templates and the item's
205
+ * owner org. `acting`: the owner org an owner update acts for, locked with its admin re-checked
206
+ * (`catalog.upload`; deleted -> 404 `org.not_found`). Returns the live orgs locked; another
207
+ * deleted one is skipped.
208
+ */
209
+ private lockUpdateOrgs;
210
+ /** The names of the orgs a preview mentions, by id (an owner's preview, see `orgNames`). */
211
+ private orgNamesOf;
212
+ /**
213
+ * Applies a new version of an org's own plugin for its owner (ruling P3-12, see
214
+ * {@link previewForOwner}): the actor must be an admin of the owner org (`catalog.upload`,
215
+ * re-checked under the org row lock in the transaction), then the platform update as
216
+ * {@link update} does, also removing the extension when the target drops it. In the update's
217
+ * transaction the orgs using the shared plugin are told (`shared_item_updated`, one notice per
218
+ * plugin) and a pending version is cleared (pre-flight F7: the new version replaces it).
219
+ */
220
+ updateAsOwner(orgId: string, actor: string, itemId: string, version: string, diffHash: string, opts?: {
221
+ actorTokenId?: string;
222
+ }): Promise<PlatformUpdateResult>;
223
+ /** The actor is an admin of the owner org (a read of the membership under the org row lock). */
224
+ private authorizeOwner;
225
+ /** Runs `f` holding the item's update lock (another update -> `plugin.install_in_progress`). */
226
+ private locked;
209
227
  /**
210
- * Runs an upgrade (see the class comment); returns the install view. `checked` is the diff
211
- * {@link check} computed for the same input (re-verified under the org lock: the install's
212
- * version and ledger must be unchanged), otherwise it is computed here.
228
+ * The super admin's confirmation of an org upload's pending new version (rulings P3-10, P3-21,
229
+ * pre-flight F8): the update to `version` as {@link update} does it (the super admin's, the
230
+ * extension installed or upgraded on the deployment), with the version allowed although it is
231
+ * pending. Its transaction re-reads the item under the row lock: removed meanwhile -> 409
232
+ * `catalog.item_removed`, the pending version replaced -> 409 `extension.approval_stale` (both
233
+ * undo the extension step); then the pending state is cleared and the owner told
234
+ * (`upload_confirmed`). The caller checked the digest of the version's package.
213
235
  */
214
- upgrade(orgId: string, actor: string, installId: string, input: PluginUpgradeInput, opts?: {
236
+ updateToPending(actor: string, itemId: string, version: string, opts?: {
215
237
  actorTokenId?: string;
216
- }, checked?: UpgradeDiff): Promise<PluginInstallView>;
238
+ }): Promise<PlatformUpdateResult>;
217
239
  /**
218
- * Undoes a failed upgrade (its journal, in one transaction): the install back `installed` at the
219
- * old version with `error = { step, code }`, audit `plugin.org_upgrade_failed`. When the journal
220
- * is no longer this upgrade's (another request cleaned it up as interrupted and undid what it
221
- * journaled), only the step whose journal write failed is undone and the install row is left as
222
- * the cleanup set it. Returns the error to throw: 502 `plugin.upgrade_failed` (a dependency
223
- * another install is still installing: its 409 as it is).
240
+ * {@link updateToPending} for a caller already holding the item's update lock
241
+ * ({@link withItemLock}): the super admin's confirmation runs all its steps under it (ruling
242
+ * P3-35).
224
243
  */
225
- private failed;
244
+ updateToPendingLocked(actor: string, itemId: string, version: string, opts?: {
245
+ actorTokenId?: string;
246
+ }): Promise<PlatformUpdateResult>;
226
247
  /**
227
- * An upgrade interrupted for longer than `catalog.staleInstallMinutes` (a replica crashed
228
- * midway): its journal is undone, the install back `installed` at the old version (error step
229
- * `interrupted`), audit `plugin.org_upgrade_failed`. Nothing to do otherwise.
248
+ * Runs `f` holding the item's update lock (the one every platform update of the item takes;
249
+ * another holder -> 409 `plugin.install_in_progress`): the super admin's confirmation of an org
250
+ * upload runs every step under it (ruling P3-35).
230
251
  */
231
- private recoverInterrupted;
232
- /** The upgrade's start: the install `upgrading` with an empty journal (a transaction of its own). */
233
- private start;
234
- /** A skill step's ledger and journal rows, in a transaction of their own. */
235
- private journalSkill;
252
+ withItemLock<T>(itemId: string, f: () => Promise<T>): Promise<T>;
236
253
  /**
237
- * An agent template step: the new version (or template) and its ledger and journal rows, under
238
- * the org row lock, in a transaction of their own.
254
+ * Runs an update confirmed with the preview's `diffHash` (see the class comment). A version an
255
+ * org upload waits with, or an item whose first version waits, -> 409 `catalog.item_pending`
256
+ * (confirmed in 待确认 instead, pre-flight F8).
239
257
  */
240
- private upgradeAgentTemplate;
241
- /** One ledger record (and its journal row) in a transaction of its own. */
242
- private recordStep;
243
- /** A component's ledger row and its journal step, in the transaction of the context. */
244
- private recordIn;
258
+ update(actor: string, itemId: string, input: {
259
+ version: string;
260
+ diffHash: string;
261
+ }, opts?: {
262
+ actorTokenId?: string;
263
+ auditDetail?: Record<string, unknown>;
264
+ }): Promise<PlatformUpdateResult>;
265
+ private updateLocked;
266
+ /** `plugin.platform_update_failed`, in a transaction of its own. */
267
+ private auditFailure;
245
268
  /**
246
- * The upgrade's last transaction (under the org row lock): the changed connectors, the removals,
247
- * the pinned suggestions and the version switch, `plugin.org_upgraded`. `onFinish` marks the step
248
- * once the connectors are applied.
269
+ * The update's transaction (see the class comment): the super admin re-checked, the diff
270
+ * recomputed under the item name's lock, then every write. Returns the diff it applied.
249
271
  */
250
- private finish;
251
- /** Undoes a failed upgrade's journal (see {@link failed}) in a transaction of its own. */
252
- private undoFailed;
253
- /** Undoes an interrupted upgrade (see {@link recoverInterrupted}) in a transaction of its own. */
254
- private undoInterrupted;
272
+ private commit;
255
273
  /**
256
- * The removals of an upgrade, in the final transaction, by the uninstall rules
257
- * (`decideRemovalIn`): only components this install created are removed, and only when nothing
258
- * else uses them; one still used (by an agent, a connector or another extension) stays in the
259
- * ledger marked `dropped` ("no longer in the plugin", still this install's), every other removed
260
- * component leaves the ledger; a dropped component the target brings back is un-dropped. A dependency
261
- * install is uninstalled by the same rules (another install using it takes it over). Skills ->
262
- * connectors -> extension -> dependencies.
274
+ * The template update of one connector: the new endpoint preset with the org's values at the
275
+ * editable paths, the auth preset and default policies; credentials cleared (no new ones: they
276
+ * are the org's) when the credential shape changed.
263
277
  */
264
- private removeIn;
278
+ private prepare;
265
279
  /**
266
- * Computes an upgrade (see the class comment). `input` null: the preview (no input checks);
267
- * otherwise the connector inputs are built and checked as at install.
280
+ * Computes an update (see the class comment). `target`: the target read from an org's staging
281
+ * instead of `catalog_item_versions` (pre-flight F3). `owner`: an owner update (P3-12): the item
282
+ * must be the org's, an extension-bearing target is refused, and a target dropping the
283
+ * extension removes it.
268
284
  */
269
285
  private diff;
286
+ /** The target's skill names, agent templates and connector templates, from object storage. */
287
+ private readContents;
288
+ /**
289
+ * Whether the target's extension package asks for permissions the approved snapshot does not
290
+ * cover (no snapshot, or a blocking addition): it then loads only once approved (§7.4).
291
+ */
292
+ private needsApproval;
293
+ /**
294
+ * The deployment's extension step: none when the target carries the extension the deployment
295
+ * runs; a version without the extension the deployment runs for the plugin is refused, except
296
+ * for an owner update (`allowRemove`, ruling P3-12': removing code runs none), which removes an
297
+ * installed one; a move of a config-declared extension is refused.
298
+ */
299
+ private extensionTarget;
270
300
  /**
271
- * The update of a changed template's connector: the new endpoint preset with the org's values at
272
- * the editable paths, the new auth preset and policies; credentials only when the auth method or
273
- * the credentials it needs changed (then the input must give what the template needs).
301
+ * Other platform plugins depending on this one must accept the target (their platform version's
302
+ * dependency range); returns the catalog items of the target's own dependencies (their scope
303
+ * sync is enqueued after the update: rule 9).
274
304
  */
275
- private templateUpdate;
305
+ private checkDependents;
306
+ /** The plugin's live platform components with their current versions. */
307
+ private liveComponents;
308
+ /** The orgs where the plugin is on: a live install (builtin: every live org). */
309
+ private pluginOrgs;
310
+ private liveOrgs;
276
311
  }
277
312
  export {};