@capybara-hq/kernel 0.0.0-stage → 0.1.0-rc.1

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 (637) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +2 -0
  3. package/README.md +20 -2
  4. package/bootstrap.json +26 -0
  5. package/dist/admin/admin.controller.d.ts +139 -0
  6. package/dist/admin/admin.controller.js +238 -0
  7. package/dist/admin/extensions.controller.d.ts +100 -0
  8. package/dist/admin/extensions.controller.js +226 -0
  9. package/dist/admin/setup.controller.d.ts +36 -0
  10. package/dist/admin/setup.controller.js +106 -0
  11. package/dist/admin/setup.service.d.ts +47 -0
  12. package/dist/admin/setup.service.js +90 -0
  13. package/dist/agents/agents.controller.d.ts +205 -0
  14. package/dist/agents/agents.controller.js +144 -0
  15. package/dist/agents/agents.service.d.ts +177 -0
  16. package/dist/agents/agents.service.js +677 -0
  17. package/dist/agents/definition.d.ts +198 -0
  18. package/dist/agents/definition.js +152 -0
  19. package/dist/agents/models.controller.d.ts +13 -0
  20. package/dist/agents/models.controller.js +31 -0
  21. package/dist/agents/templates.controller.d.ts +15 -0
  22. package/dist/agents/templates.controller.js +37 -0
  23. package/dist/agents/templates.d.ts +83 -0
  24. package/dist/agents/templates.js +173 -0
  25. package/dist/catalog/admin-catalog.controller.d.ts +143 -0
  26. package/dist/catalog/admin-catalog.controller.js +245 -0
  27. package/dist/catalog/catalog.service.d.ts +430 -0
  28. package/dist/catalog/catalog.service.js +882 -0
  29. package/dist/catalog/claude/agents.d.ts +27 -0
  30. package/dist/catalog/claude/agents.js +270 -0
  31. package/dist/catalog/claude/commands.d.ts +50 -0
  32. package/dist/catalog/claude/commands.js +179 -0
  33. package/dist/catalog/claude/manifest.d.ts +69 -0
  34. package/dist/catalog/claude/manifest.js +134 -0
  35. package/dist/catalog/claude/marketplace.d.ts +35 -0
  36. package/dist/catalog/claude/marketplace.js +194 -0
  37. package/dist/catalog/claude/mcp.d.ts +33 -0
  38. package/dist/catalog/claude/mcp.js +226 -0
  39. package/dist/catalog/claude/report.d.ts +86 -0
  40. package/dist/catalog/claude/report.js +121 -0
  41. package/dist/catalog/claude/translate.d.ts +56 -0
  42. package/dist/catalog/claude/translate.js +857 -0
  43. package/dist/catalog/cli.d.ts +46 -0
  44. package/dist/catalog/cli.js +211 -0
  45. package/dist/catalog/git-source.d.ts +127 -0
  46. package/dist/catalog/git-source.js +520 -0
  47. package/dist/catalog/marketplace-fetch.d.ts +99 -0
  48. package/dist/catalog/marketplace-fetch.js +203 -0
  49. package/dist/catalog/marketplaces.controller.d.ts +97 -0
  50. package/dist/catalog/marketplaces.controller.js +197 -0
  51. package/dist/catalog/marketplaces.service.d.ts +340 -0
  52. package/dist/catalog/marketplaces.service.js +1217 -0
  53. package/dist/catalog/org-catalog.controller.d.ts +128 -0
  54. package/dist/catalog/org-catalog.controller.js +277 -0
  55. package/dist/catalog/org-catalog.service.d.ts +246 -0
  56. package/dist/catalog/org-catalog.service.js +625 -0
  57. package/dist/catalog/plugin-import.d.ts +436 -0
  58. package/dist/catalog/plugin-import.js +1069 -0
  59. package/dist/catalog/plugin-install.d.ts +447 -0
  60. package/dist/catalog/plugin-install.js +1333 -0
  61. package/dist/catalog/plugin-package.d.ts +143 -0
  62. package/dist/catalog/plugin-package.js +382 -0
  63. package/dist/catalog/plugin-upgrade.d.ts +222 -0
  64. package/dist/catalog/plugin-upgrade.js +1219 -0
  65. package/dist/catalog/requests.service.d.ts +162 -0
  66. package/dist/catalog/requests.service.js +504 -0
  67. package/dist/catalog/schema-path.d.ts +7 -0
  68. package/dist/catalog/schema-path.js +63 -0
  69. package/dist/catalog/upgrade-targets.d.ts +59 -0
  70. package/dist/catalog/upgrade-targets.js +90 -0
  71. package/dist/catalog/versions.d.ts +31 -0
  72. package/dist/catalog/versions.js +44 -0
  73. package/dist/channels/actions.d.ts +37 -0
  74. package/dist/channels/actions.js +121 -0
  75. package/dist/channels/cards.d.ts +44 -0
  76. package/dist/channels/cards.js +156 -0
  77. package/dist/channels/connections.controller.d.ts +59 -0
  78. package/dist/channels/connections.controller.js +115 -0
  79. package/dist/channels/connections.service.d.ts +187 -0
  80. package/dist/channels/connections.service.js +534 -0
  81. package/dist/channels/features.d.ts +12 -0
  82. package/dist/channels/features.js +22 -0
  83. package/dist/channels/inbound.d.ts +120 -0
  84. package/dist/channels/inbound.js +332 -0
  85. package/dist/channels/outbound.d.ts +140 -0
  86. package/dist/channels/outbound.js +1126 -0
  87. package/dist/channels/phrases.d.ts +100 -0
  88. package/dist/channels/phrases.js +81 -0
  89. package/dist/channels/supervisor.d.ts +182 -0
  90. package/dist/channels/supervisor.js +625 -0
  91. package/dist/channels/threads.d.ts +29 -0
  92. package/dist/channels/threads.js +104 -0
  93. package/dist/channels/webhook-url.d.ts +16 -0
  94. package/dist/channels/webhook-url.js +34 -0
  95. package/dist/channels/webhook.controller.d.ts +19 -0
  96. package/dist/channels/webhook.controller.js +72 -0
  97. package/dist/channels/webhook.d.ts +73 -0
  98. package/dist/channels/webhook.js +274 -0
  99. package/dist/config/docs.d.ts +9 -0
  100. package/dist/config/docs.js +85 -0
  101. package/dist/config/env.d.ts +6 -0
  102. package/dist/config/env.js +73 -0
  103. package/dist/config/fields.d.ts +42 -0
  104. package/dist/config/fields.js +214 -0
  105. package/dist/config/file-source.d.ts +3 -0
  106. package/dist/config/file-source.js +31 -0
  107. package/dist/config/load.d.ts +20 -0
  108. package/dist/config/load.js +98 -0
  109. package/dist/config/nacos-source.d.ts +31 -0
  110. package/dist/config/nacos-source.js +229 -0
  111. package/dist/config/schema.d.ts +237 -0
  112. package/dist/config/schema.js +1192 -0
  113. package/dist/config/sources.d.ts +18 -0
  114. package/dist/config/sources.js +59 -0
  115. package/dist/config/types.d.ts +9 -0
  116. package/dist/config/types.js +7 -0
  117. package/dist/conversations/artifacts.d.ts +52 -0
  118. package/dist/conversations/artifacts.js +137 -0
  119. package/dist/conversations/attachments.controller.d.ts +28 -0
  120. package/dist/conversations/attachments.controller.js +96 -0
  121. package/dist/conversations/attachments.service.d.ts +180 -0
  122. package/dist/conversations/attachments.service.js +578 -0
  123. package/dist/conversations/conversations.controller.d.ts +288 -0
  124. package/dist/conversations/conversations.controller.js +607 -0
  125. package/dist/conversations/conversations.service.d.ts +321 -0
  126. package/dist/conversations/conversations.service.js +754 -0
  127. package/dist/conversations/event-log.d.ts +122 -0
  128. package/dist/conversations/event-log.js +259 -0
  129. package/dist/conversations/events.d.ts +856 -0
  130. package/dist/conversations/events.js +639 -0
  131. package/dist/conversations/files.d.ts +92 -0
  132. package/dist/conversations/files.js +213 -0
  133. package/dist/conversations/outputs-read.d.ts +34 -0
  134. package/dist/conversations/outputs-read.js +37 -0
  135. package/dist/conversations/queue.d.ts +169 -0
  136. package/dist/conversations/queue.js +527 -0
  137. package/dist/conversations/sandbox-status.d.ts +21 -0
  138. package/dist/conversations/sandbox-status.js +24 -0
  139. package/dist/conversations/selection.d.ts +46 -0
  140. package/dist/conversations/selection.js +75 -0
  141. package/dist/conversations/titles.d.ts +93 -0
  142. package/dist/conversations/titles.js +423 -0
  143. package/dist/ctx/bus.d.ts +16 -0
  144. package/dist/ctx/bus.js +101 -0
  145. package/dist/ctx/create-ctx.d.ts +109 -0
  146. package/dist/ctx/create-ctx.js +592 -0
  147. package/dist/ctx/kv.d.ts +4 -0
  148. package/dist/ctx/kv.js +31 -0
  149. package/dist/ctx/lock.d.ts +4 -0
  150. package/dist/ctx/lock.js +39 -0
  151. package/dist/ctx/namespace.d.ts +6 -0
  152. package/dist/ctx/namespace.js +12 -0
  153. package/dist/ctx/queue.d.ts +25 -0
  154. package/dist/ctx/queue.js +151 -0
  155. package/dist/ctx/secrets.d.ts +45 -0
  156. package/dist/ctx/secrets.js +175 -0
  157. package/dist/db/kernel-schema.d.ts +1122 -0
  158. package/dist/db/kernel-schema.js +5 -0
  159. package/dist/db/migrator.d.ts +28 -0
  160. package/dist/db/migrator.js +140 -0
  161. package/dist/db/pool.d.ts +21 -0
  162. package/dist/db/pool.js +28 -0
  163. package/dist/db/sql-statements.d.ts +34 -0
  164. package/dist/db/sql-statements.js +168 -0
  165. package/dist/errors.d.ts +211 -0
  166. package/dist/errors.js +213 -0
  167. package/dist/evals/budget.d.ts +61 -0
  168. package/dist/evals/budget.js +181 -0
  169. package/dist/evals/diff.d.ts +55 -0
  170. package/dist/evals/diff.js +133 -0
  171. package/dist/evals/judge.d.ts +53 -0
  172. package/dist/evals/judge.js +149 -0
  173. package/dist/evals/plan.d.ts +47 -0
  174. package/dist/evals/plan.js +77 -0
  175. package/dist/evals/reconstruct.d.ts +137 -0
  176. package/dist/evals/reconstruct.js +322 -0
  177. package/dist/evals/recorded-tools.d.ts +54 -0
  178. package/dist/evals/recorded-tools.js +167 -0
  179. package/dist/evals/run-replay.d.ts +86 -0
  180. package/dist/evals/run-replay.js +502 -0
  181. package/dist/evals/runs.controller.d.ts +100 -0
  182. package/dist/evals/runs.controller.js +199 -0
  183. package/dist/evals/runs.service.d.ts +275 -0
  184. package/dist/evals/runs.service.js +836 -0
  185. package/dist/evals/sets.controller.d.ts +61 -0
  186. package/dist/evals/sets.controller.js +183 -0
  187. package/dist/evals/sets.service.d.ts +128 -0
  188. package/dist/evals/sets.service.js +558 -0
  189. package/dist/evals/snapshot.d.ts +76 -0
  190. package/dist/evals/snapshot.js +207 -0
  191. package/dist/evals/step-replay.d.ts +113 -0
  192. package/dist/evals/step-replay.js +181 -0
  193. package/dist/evals/trajectory.controller.d.ts +41 -0
  194. package/dist/evals/trajectory.controller.js +88 -0
  195. package/dist/evals/trajectory.d.ts +144 -0
  196. package/dist/evals/trajectory.js +338 -0
  197. package/dist/evals/trajectory.service.d.ts +108 -0
  198. package/dist/evals/trajectory.service.js +323 -0
  199. package/dist/evals/worker.d.ts +101 -0
  200. package/dist/evals/worker.js +790 -0
  201. package/dist/extensions/admin-ops.d.ts +105 -0
  202. package/dist/extensions/admin-ops.js +353 -0
  203. package/dist/extensions/admin-view.d.ts +79 -0
  204. package/dist/extensions/admin-view.js +327 -0
  205. package/dist/extensions/approvals.d.ts +119 -0
  206. package/dist/extensions/approvals.js +205 -0
  207. package/dist/extensions/blobs.d.ts +45 -0
  208. package/dist/extensions/blobs.js +160 -0
  209. package/dist/extensions/bootstrap.d.ts +176 -0
  210. package/dist/extensions/bootstrap.js +535 -0
  211. package/dist/extensions/cli.d.ts +61 -0
  212. package/dist/extensions/cli.js +165 -0
  213. package/dist/extensions/config-json-schema.d.ts +9 -0
  214. package/dist/extensions/config-json-schema.js +73 -0
  215. package/dist/extensions/deployment-config.d.ts +138 -0
  216. package/dist/extensions/deployment-config.js +394 -0
  217. package/dist/extensions/enabled.d.ts +31 -0
  218. package/dist/extensions/enabled.js +55 -0
  219. package/dist/extensions/hooks.d.ts +161 -0
  220. package/dist/extensions/hooks.js +425 -0
  221. package/dist/extensions/host.d.ts +577 -0
  222. package/dist/extensions/host.js +2071 -0
  223. package/dist/extensions/inflight.d.ts +69 -0
  224. package/dist/extensions/inflight.js +277 -0
  225. package/dist/extensions/installs.d.ts +166 -0
  226. package/dist/extensions/installs.js +253 -0
  227. package/dist/extensions/instance.d.ts +167 -0
  228. package/dist/extensions/instance.js +329 -0
  229. package/dist/extensions/ledger.d.ts +30 -0
  230. package/dist/extensions/ledger.js +50 -0
  231. package/dist/extensions/lifecycle.d.ts +80 -0
  232. package/dist/extensions/lifecycle.js +152 -0
  233. package/dist/extensions/migrate-lock.d.ts +51 -0
  234. package/dist/extensions/migrate-lock.js +100 -0
  235. package/dist/extensions/org-config.controller.d.ts +24 -0
  236. package/dist/extensions/org-config.controller.js +59 -0
  237. package/dist/extensions/org-config.d.ts +169 -0
  238. package/dist/extensions/org-config.js +520 -0
  239. package/dist/extensions/package.d.ts +115 -0
  240. package/dist/extensions/package.js +246 -0
  241. package/dist/extensions/permission-set.d.ts +117 -0
  242. package/dist/extensions/permission-set.js +184 -0
  243. package/dist/extensions/permission-view.d.ts +194 -0
  244. package/dist/extensions/permission-view.js +284 -0
  245. package/dist/extensions/registry.d.ts +24 -0
  246. package/dist/extensions/registry.js +56 -0
  247. package/dist/extensions/resolve.d.ts +12 -0
  248. package/dist/extensions/resolve.js +71 -0
  249. package/dist/extensions/sources.d.ts +69 -0
  250. package/dist/extensions/sources.js +120 -0
  251. package/dist/extensions/sync.d.ts +40 -0
  252. package/dist/extensions/sync.js +242 -0
  253. package/dist/files/previewers.controller.d.ts +46 -0
  254. package/dist/files/previewers.controller.js +105 -0
  255. package/dist/files/previewers.d.ts +100 -0
  256. package/dist/files/previewers.js +250 -0
  257. package/dist/http/api.module.d.ts +114 -0
  258. package/dist/http/api.module.js +448 -0
  259. package/dist/http/app.d.ts +77 -0
  260. package/dist/http/app.js +220 -0
  261. package/dist/http/error.filter.d.ts +21 -0
  262. package/dist/http/error.filter.js +85 -0
  263. package/dist/http/gateway.module.d.ts +15 -0
  264. package/dist/http/gateway.module.js +13 -0
  265. package/dist/http/health.controller.d.ts +26 -0
  266. package/dist/http/health.controller.js +79 -0
  267. package/dist/http/nest-logger.d.ts +20 -0
  268. package/dist/http/nest-logger.js +28 -0
  269. package/dist/http/plugin-dispatch.d.ts +68 -0
  270. package/dist/http/plugin-dispatch.js +200 -0
  271. package/dist/http/tokens.d.ts +131 -0
  272. package/dist/http/tokens.js +131 -0
  273. package/dist/http/zod.pipe.d.ts +8 -0
  274. package/dist/http/zod.pipe.js +14 -0
  275. package/dist/identity/accounts.d.ts +93 -0
  276. package/dist/identity/accounts.js +367 -0
  277. package/dist/identity/api-tokens.d.ts +73 -0
  278. package/dist/identity/api-tokens.js +197 -0
  279. package/dist/identity/audit.d.ts +23 -0
  280. package/dist/identity/audit.js +41 -0
  281. package/dist/identity/auth.controller.d.ts +40 -0
  282. package/dist/identity/auth.controller.js +130 -0
  283. package/dist/identity/auth.guard.d.ts +41 -0
  284. package/dist/identity/auth.guard.js +162 -0
  285. package/dist/identity/binding.d.ts +47 -0
  286. package/dist/identity/binding.js +84 -0
  287. package/dist/identity/cookies.d.ts +16 -0
  288. package/dist/identity/cookies.js +32 -0
  289. package/dist/identity/credential-check.d.ts +17 -0
  290. package/dist/identity/credential-check.js +24 -0
  291. package/dist/identity/enterprise-admin.d.ts +14 -0
  292. package/dist/identity/enterprise-admin.js +27 -0
  293. package/dist/identity/external.d.ts +106 -0
  294. package/dist/identity/external.js +337 -0
  295. package/dist/identity/hash.d.ts +2 -0
  296. package/dist/identity/hash.js +3 -0
  297. package/dist/identity/login.d.ts +6 -0
  298. package/dist/identity/login.js +20 -0
  299. package/dist/identity/me.controller.d.ts +61 -0
  300. package/dist/identity/me.controller.js +159 -0
  301. package/dist/identity/passwords.d.ts +6 -0
  302. package/dist/identity/passwords.js +37 -0
  303. package/dist/identity/principal.d.ts +56 -0
  304. package/dist/identity/principal.js +38 -0
  305. package/dist/identity/rate-limit.d.ts +55 -0
  306. package/dist/identity/rate-limit.js +121 -0
  307. package/dist/identity/sessions.d.ts +84 -0
  308. package/dist/identity/sessions.js +306 -0
  309. package/dist/identity/settings.d.ts +121 -0
  310. package/dist/identity/settings.js +248 -0
  311. package/dist/identity/sso.controller.d.ts +59 -0
  312. package/dist/identity/sso.controller.js +192 -0
  313. package/dist/identity/sso.d.ts +83 -0
  314. package/dist/identity/sso.js +202 -0
  315. package/dist/inbox/inbox.service.d.ts +43 -0
  316. package/dist/inbox/inbox.service.js +57 -0
  317. package/dist/index.d.ts +69 -0
  318. package/dist/index.js +67 -0
  319. package/dist/kernel.d.ts +259 -0
  320. package/dist/kernel.js +1326 -0
  321. package/dist/log-config.d.ts +9 -0
  322. package/dist/log-config.js +27 -0
  323. package/dist/log-context.d.ts +32 -0
  324. package/dist/log-context.js +40 -0
  325. package/dist/log-loki.d.ts +34 -0
  326. package/dist/log-loki.js +145 -0
  327. package/dist/log.d.ts +79 -0
  328. package/dist/log.js +303 -0
  329. package/dist/models/prices.d.ts +53 -0
  330. package/dist/models/prices.js +121 -0
  331. package/dist/models/purposes.controller.d.ts +19 -0
  332. package/dist/models/purposes.controller.js +56 -0
  333. package/dist/models/purposes.d.ts +140 -0
  334. package/dist/models/purposes.js +267 -0
  335. package/dist/net/proxy.d.ts +44 -0
  336. package/dist/net/proxy.js +162 -0
  337. package/dist/net/public-address.d.ts +60 -0
  338. package/dist/net/public-address.js +272 -0
  339. package/dist/net/safe-fetch.d.ts +38 -0
  340. package/dist/net/safe-fetch.js +140 -0
  341. package/dist/orgs/directory-sync.controller.d.ts +14 -0
  342. package/dist/orgs/directory-sync.controller.js +40 -0
  343. package/dist/orgs/directory-sync.d.ts +166 -0
  344. package/dist/orgs/directory-sync.js +558 -0
  345. package/dist/orgs/invitations.controller.d.ts +58 -0
  346. package/dist/orgs/invitations.controller.js +137 -0
  347. package/dist/orgs/invitations.service.d.ts +80 -0
  348. package/dist/orgs/invitations.service.js +217 -0
  349. package/dist/orgs/members.service.d.ts +63 -0
  350. package/dist/orgs/members.service.js +234 -0
  351. package/dist/orgs/offboarding.d.ts +141 -0
  352. package/dist/orgs/offboarding.js +398 -0
  353. package/dist/orgs/org-lock.d.ts +32 -0
  354. package/dist/orgs/org-lock.js +46 -0
  355. package/dist/orgs/org.guard.d.ts +35 -0
  356. package/dist/orgs/org.guard.js +95 -0
  357. package/dist/orgs/orgs.controller.d.ts +78 -0
  358. package/dist/orgs/orgs.controller.js +192 -0
  359. package/dist/orgs/orgs.service.d.ts +61 -0
  360. package/dist/orgs/orgs.service.js +209 -0
  361. package/dist/orgs/roles.d.ts +13 -0
  362. package/dist/orgs/roles.js +58 -0
  363. package/dist/orgs/settings.controller.d.ts +20 -0
  364. package/dist/orgs/settings.controller.js +53 -0
  365. package/dist/orgs/settings.service.d.ts +120 -0
  366. package/dist/orgs/settings.service.js +178 -0
  367. package/dist/packages/npm.d.ts +50 -0
  368. package/dist/packages/npm.js +218 -0
  369. package/dist/packages/provenance.d.ts +47 -0
  370. package/dist/packages/provenance.js +147 -0
  371. package/dist/packages/tgz.d.ts +76 -0
  372. package/dist/packages/tgz.js +225 -0
  373. package/dist/runtime/abort.d.ts +32 -0
  374. package/dist/runtime/abort.js +71 -0
  375. package/dist/runtime/checkpointer.d.ts +32 -0
  376. package/dist/runtime/checkpointer.js +243 -0
  377. package/dist/runtime/context/build.d.ts +254 -0
  378. package/dist/runtime/context/build.js +693 -0
  379. package/dist/runtime/context/claude-tools.d.ts +11 -0
  380. package/dist/runtime/context/claude-tools.js +24 -0
  381. package/dist/runtime/context/compaction.d.ts +26 -0
  382. package/dist/runtime/context/compaction.js +195 -0
  383. package/dist/runtime/context/pairing.d.ts +11 -0
  384. package/dist/runtime/context/pairing.js +82 -0
  385. package/dist/runtime/context/reminders.d.ts +5 -0
  386. package/dist/runtime/context/reminders.js +11 -0
  387. package/dist/runtime/context/skills.d.ts +105 -0
  388. package/dist/runtime/context/skills.js +283 -0
  389. package/dist/runtime/context/tokens.d.ts +19 -0
  390. package/dist/runtime/context/tokens.js +104 -0
  391. package/dist/runtime/conversation-lock.d.ts +40 -0
  392. package/dist/runtime/conversation-lock.js +97 -0
  393. package/dist/runtime/hook-calls.d.ts +84 -0
  394. package/dist/runtime/hook-calls.js +136 -0
  395. package/dist/runtime/langgraph-loop.d.ts +52 -0
  396. package/dist/runtime/langgraph-loop.js +247 -0
  397. package/dist/runtime/loop.d.ts +93 -0
  398. package/dist/runtime/loop.js +7 -0
  399. package/dist/runtime/maintenance.d.ts +80 -0
  400. package/dist/runtime/maintenance.js +148 -0
  401. package/dist/runtime/media-cache.d.ts +21 -0
  402. package/dist/runtime/media-cache.js +51 -0
  403. package/dist/runtime/model-call.d.ts +176 -0
  404. package/dist/runtime/model-call.js +1049 -0
  405. package/dist/runtime/providers.d.ts +86 -0
  406. package/dist/runtime/providers.js +224 -0
  407. package/dist/runtime/quota.d.ts +29 -0
  408. package/dist/runtime/quota.js +70 -0
  409. package/dist/runtime/run-finish.d.ts +45 -0
  410. package/dist/runtime/run-finish.js +69 -0
  411. package/dist/runtime/run-queue.d.ts +121 -0
  412. package/dist/runtime/run-queue.js +493 -0
  413. package/dist/runtime/run-worker.d.ts +138 -0
  414. package/dist/runtime/run-worker.js +806 -0
  415. package/dist/runtime/stream.controller.d.ts +34 -0
  416. package/dist/runtime/stream.controller.js +122 -0
  417. package/dist/runtime/stream.d.ts +63 -0
  418. package/dist/runtime/stream.js +262 -0
  419. package/dist/runtime/subagents/child.d.ts +80 -0
  420. package/dist/runtime/subagents/child.js +225 -0
  421. package/dist/runtime/subagents/definition.d.ts +103 -0
  422. package/dist/runtime/subagents/definition.js +392 -0
  423. package/dist/runtime/subagents/dispatch.d.ts +69 -0
  424. package/dist/runtime/subagents/dispatch.js +502 -0
  425. package/dist/runtime/subagents/limits.d.ts +23 -0
  426. package/dist/runtime/subagents/limits.js +34 -0
  427. package/dist/runtime/subagents/org-agents.d.ts +50 -0
  428. package/dist/runtime/subagents/org-agents.js +70 -0
  429. package/dist/runtime/subagents/preamble.d.ts +7 -0
  430. package/dist/runtime/subagents/preamble.js +11 -0
  431. package/dist/runtime/subagents/progress.d.ts +26 -0
  432. package/dist/runtime/subagents/progress.js +36 -0
  433. package/dist/runtime/subagents/roster.d.ts +55 -0
  434. package/dist/runtime/subagents/roster.js +111 -0
  435. package/dist/runtime/subagents/skill-fork.d.ts +123 -0
  436. package/dist/runtime/subagents/skill-fork.js +259 -0
  437. package/dist/runtime/usage-report.d.ts +163 -0
  438. package/dist/runtime/usage-report.js +551 -0
  439. package/dist/runtime/waits.d.ts +233 -0
  440. package/dist/runtime/waits.js +883 -0
  441. package/dist/sandbox/leases.d.ts +169 -0
  442. package/dist/sandbox/leases.js +515 -0
  443. package/dist/sandbox/lifecycle.d.ts +21 -0
  444. package/dist/sandbox/lifecycle.js +68 -0
  445. package/dist/sandbox/sandbox.service.d.ts +249 -0
  446. package/dist/sandbox/sandbox.service.js +908 -0
  447. package/dist/skills/catalog.d.ts +149 -0
  448. package/dist/skills/catalog.js +405 -0
  449. package/dist/skills/changes.controller.d.ts +56 -0
  450. package/dist/skills/changes.controller.js +136 -0
  451. package/dist/skills/changes.service.d.ts +175 -0
  452. package/dist/skills/changes.service.js +805 -0
  453. package/dist/skills/invocable.controller.d.ts +23 -0
  454. package/dist/skills/invocable.controller.js +50 -0
  455. package/dist/skills/invocation-keys.d.ts +23 -0
  456. package/dist/skills/invocation-keys.js +44 -0
  457. package/dist/skills/invoke.d.ts +135 -0
  458. package/dist/skills/invoke.js +286 -0
  459. package/dist/skills/package.d.ts +87 -0
  460. package/dist/skills/package.js +227 -0
  461. package/dist/skills/skills.controller.d.ts +40 -0
  462. package/dist/skills/skills.controller.js +110 -0
  463. package/dist/skills/skills.service.d.ts +192 -0
  464. package/dist/skills/skills.service.js +567 -0
  465. package/dist/storage/prefix.d.ts +36 -0
  466. package/dist/storage/prefix.js +104 -0
  467. package/dist/storage/purge.d.ts +27 -0
  468. package/dist/storage/purge.js +75 -0
  469. package/dist/storage/storage.service.d.ts +44 -0
  470. package/dist/storage/storage.service.js +145 -0
  471. package/dist/text.d.ts +13 -0
  472. package/dist/text.js +13 -0
  473. package/dist/tools/approvals.controller.d.ts +53 -0
  474. package/dist/tools/approvals.controller.js +128 -0
  475. package/dist/tools/approvals.service.d.ts +172 -0
  476. package/dist/tools/approvals.service.js +568 -0
  477. package/dist/tools/breaker.d.ts +28 -0
  478. package/dist/tools/breaker.js +72 -0
  479. package/dist/tools/builtins/agent.d.ts +81 -0
  480. package/dist/tools/builtins/agent.js +223 -0
  481. package/dist/tools/builtins/ask-user.d.ts +28 -0
  482. package/dist/tools/builtins/ask-user.js +139 -0
  483. package/dist/tools/builtins/read-tool-output.d.ts +18 -0
  484. package/dist/tools/builtins/read-tool-output.js +108 -0
  485. package/dist/tools/builtins/sandbox/bash.d.ts +16 -0
  486. package/dist/tools/builtins/sandbox/bash.js +137 -0
  487. package/dist/tools/builtins/sandbox/common.d.ts +116 -0
  488. package/dist/tools/builtins/sandbox/common.js +306 -0
  489. package/dist/tools/builtins/sandbox/deliver.d.ts +5 -0
  490. package/dist/tools/builtins/sandbox/deliver.js +180 -0
  491. package/dist/tools/builtins/sandbox/edit.d.ts +4 -0
  492. package/dist/tools/builtins/sandbox/edit.js +98 -0
  493. package/dist/tools/builtins/sandbox/glob-match.d.ts +25 -0
  494. package/dist/tools/builtins/sandbox/glob-match.js +240 -0
  495. package/dist/tools/builtins/sandbox/glob.d.ts +4 -0
  496. package/dist/tools/builtins/sandbox/glob.js +104 -0
  497. package/dist/tools/builtins/sandbox/grep.d.ts +9 -0
  498. package/dist/tools/builtins/sandbox/grep.js +133 -0
  499. package/dist/tools/builtins/sandbox/index.d.ts +12 -0
  500. package/dist/tools/builtins/sandbox/index.js +27 -0
  501. package/dist/tools/builtins/sandbox/names.d.ts +7 -0
  502. package/dist/tools/builtins/sandbox/names.js +20 -0
  503. package/dist/tools/builtins/sandbox/read.d.ts +8 -0
  504. package/dist/tools/builtins/sandbox/read.js +121 -0
  505. package/dist/tools/builtins/sandbox/write.d.ts +4 -0
  506. package/dist/tools/builtins/sandbox/write.js +88 -0
  507. package/dist/tools/builtins/skill-load.d.ts +53 -0
  508. package/dist/tools/builtins/skill-load.js +446 -0
  509. package/dist/tools/builtins/skill-write.d.ts +59 -0
  510. package/dist/tools/builtins/skill-write.js +244 -0
  511. package/dist/tools/builtins/tool-search.d.ts +31 -0
  512. package/dist/tools/builtins/tool-search.js +171 -0
  513. package/dist/tools/connector-content.controller.d.ts +34 -0
  514. package/dist/tools/connector-content.controller.js +78 -0
  515. package/dist/tools/connector-content.d.ts +104 -0
  516. package/dist/tools/connector-content.js +267 -0
  517. package/dist/tools/connectors.controller.d.ts +210 -0
  518. package/dist/tools/connectors.controller.js +234 -0
  519. package/dist/tools/connectors.service.d.ts +303 -0
  520. package/dist/tools/connectors.service.js +1102 -0
  521. package/dist/tools/credentials.d.ts +139 -0
  522. package/dist/tools/credentials.js +351 -0
  523. package/dist/tools/drift.d.ts +141 -0
  524. package/dist/tools/drift.js +539 -0
  525. package/dist/tools/elicitation.d.ts +81 -0
  526. package/dist/tools/elicitation.js +266 -0
  527. package/dist/tools/endpoint.d.ts +18 -0
  528. package/dist/tools/endpoint.js +115 -0
  529. package/dist/tools/info.d.ts +67 -0
  530. package/dist/tools/info.js +113 -0
  531. package/dist/tools/naming.d.ts +27 -0
  532. package/dist/tools/naming.js +47 -0
  533. package/dist/tools/oauth/discovery.d.ts +65 -0
  534. package/dist/tools/oauth/discovery.js +307 -0
  535. package/dist/tools/oauth/flow.d.ts +63 -0
  536. package/dist/tools/oauth/flow.js +237 -0
  537. package/dist/tools/oauth/oauth.controller.d.ts +31 -0
  538. package/dist/tools/oauth/oauth.controller.js +95 -0
  539. package/dist/tools/oauth/tokens.d.ts +111 -0
  540. package/dist/tools/oauth/tokens.js +258 -0
  541. package/dist/tools/outputs.d.ts +61 -0
  542. package/dist/tools/outputs.js +156 -0
  543. package/dist/tools/pipeline.d.ts +322 -0
  544. package/dist/tools/pipeline.js +1236 -0
  545. package/dist/tools/policy.d.ts +60 -0
  546. package/dist/tools/policy.js +236 -0
  547. package/dist/tools/questions.controller.d.ts +24 -0
  548. package/dist/tools/questions.controller.js +58 -0
  549. package/dist/tools/questions.service.d.ts +103 -0
  550. package/dist/tools/questions.service.js +295 -0
  551. package/dist/tools/redact.d.ts +20 -0
  552. package/dist/tools/redact.js +60 -0
  553. package/dist/tools/registry.d.ts +246 -0
  554. package/dist/tools/registry.js +481 -0
  555. package/dist/tools/resources.d.ts +16 -0
  556. package/dist/tools/resources.js +76 -0
  557. package/dist/tools/specs.d.ts +14 -0
  558. package/dist/tools/specs.js +31 -0
  559. package/dist/tools/validate.d.ts +20 -0
  560. package/dist/tools/validate.js +183 -0
  561. package/dist/tools/view.d.ts +43 -0
  562. package/dist/tools/view.js +225 -0
  563. package/dist/ui/embed-token.d.ts +31 -0
  564. package/dist/ui/embed-token.js +132 -0
  565. package/dist/ui/registry.d.ts +58 -0
  566. package/dist/ui/registry.js +90 -0
  567. package/dist/ui/ui-stream.d.ts +37 -0
  568. package/dist/ui/ui-stream.js +162 -0
  569. package/dist/ui/views.controller.d.ts +81 -0
  570. package/dist/ui/views.controller.js +261 -0
  571. package/dist/ui/views.d.ts +155 -0
  572. package/dist/ui/views.js +306 -0
  573. package/dist/version.d.ts +5 -0
  574. package/dist/version.js +6 -0
  575. package/package.json +69 -3
  576. package/src/migrations/0001_init.sql +8 -0
  577. package/src/migrations/0002_secrets.sql +8 -0
  578. package/src/migrations/0003_identity.sql +117 -0
  579. package/src/migrations/0004_plugin_org_config_nullable.sql +3 -0
  580. package/src/migrations/0005_agents.sql +27 -0
  581. package/src/migrations/0006_conversations.sql +37 -0
  582. package/src/migrations/0007_checkpoints.sql +26 -0
  583. package/src/migrations/0008_runs_trigger_seq.sql +3 -0
  584. package/src/migrations/0009_runs_active_unique.sql +4 -0
  585. package/src/migrations/0010_tools.sql +125 -0
  586. package/src/migrations/0011_approvals_spec.sql +10 -0
  587. package/src/migrations/0012_run_waits.sql +24 -0
  588. package/src/migrations/0013_app_tools_source.sql +4 -0
  589. package/src/migrations/0014_tool_specs.sql +8 -0
  590. package/src/migrations/0015_tool_drift.sql +20 -0
  591. package/src/migrations/0016_plugin_permissions.sql +11 -0
  592. package/src/migrations/0017_identity_sources.sql +6 -0
  593. package/src/migrations/0018_channels.sql +74 -0
  594. package/src/migrations/0019_identity_trust.sql +17 -0
  595. package/src/migrations/0020_channel_card_lookup.sql +10 -0
  596. package/src/migrations/0021_org_storage_purge.sql +9 -0
  597. package/src/migrations/0022_attachments.sql +29 -0
  598. package/src/migrations/0023_sandboxes.sql +37 -0
  599. package/src/migrations/0024_skills.sql +46 -0
  600. package/src/migrations/0025_skills_catalog_idx.sql +6 -0
  601. package/src/migrations/0026_skill_changes.sql +34 -0
  602. package/src/migrations/0027_model_prices.sql +18 -0
  603. package/src/migrations/0028_evals.sql +105 -0
  604. package/src/migrations/0029_model_purposes.sql +18 -0
  605. package/src/migrations/0030_plugin_installs.sql +73 -0
  606. package/src/migrations/0031_plugin_snapshot_source.sql +6 -0
  607. package/src/migrations/0032_plugin_deployment_configs.sql +10 -0
  608. package/src/migrations/0033_rename_apps_to_connectors.sql +25 -0
  609. package/src/migrations/0034_directory.sql +49 -0
  610. package/src/migrations/0035_catalogs.sql +40 -0
  611. package/src/migrations/0036_app_import_staging.sql +17 -0
  612. package/src/migrations/0037_directory_installs.sql +92 -0
  613. package/src/migrations/0038_channel_inbound_mode.sql +6 -0
  614. package/src/migrations/0039_channel_card_pending.sql +8 -0
  615. package/src/migrations/0040_usage_report_sweep.sql +10 -0
  616. package/src/migrations/0041_rename_plugins_to_extensions.sql +38 -0
  617. package/src/migrations/0042_rename_directory_to_catalog.sql +80 -0
  618. package/src/migrations/0043_rename_app_installs_to_plugin_installs.sql +20 -0
  619. package/src/migrations/0044_catalog_one_kind.sql +90 -0
  620. package/src/migrations/0045_plugin_dependencies.sql +9 -0
  621. package/src/migrations/0046_git_sources.sql +25 -0
  622. package/src/migrations/0047_marketplace_entry_heads.sql +7 -0
  623. package/src/migrations/0048_marketplace_entry_trees.sql +8 -0
  624. package/src/migrations/0049_plugin_upgrades.sql +37 -0
  625. package/src/migrations/0050_bootstrap.sql +53 -0
  626. package/src/migrations/0051_claude_compat.sql +26 -0
  627. package/src/migrations/0052_conversations_account_agent_idx.sql +5 -0
  628. package/src/migrations/0053_subagents.sql +73 -0
  629. package/src/migrations/0054_subagent_wait_expiry.sql +7 -0
  630. package/src/migrations/0055_subagent_parent_indexes.sql +10 -0
  631. package/src/migrations/0056_approval_reason.sql +3 -0
  632. package/src/migrations/0057_conversation_titles.sql +11 -0
  633. package/src/migrations/0058_conversation_selection.sql +4 -0
  634. package/src/migrations/0059_conversation_queue.sql +22 -0
  635. package/src/migrations/0060_file_previewers.sql +10 -0
  636. package/src/migrations/0061_queue_selection.sql +5 -0
  637. package/src/migrations/0062_queued_skill.sql +8 -0
@@ -0,0 +1,165 @@
1
+ import { SDK_VERSION } from "@capybara-hq/plugin-sdk";
2
+ import { Redis } from "ioredis";
3
+ import { createBus } from "../ctx/bus.js";
4
+ import { createKeyring } from "../ctx/secrets.js";
5
+ import { kernelDb } from "../db/kernel-schema.js";
6
+ import { createDb } from "../db/pool.js";
7
+ import { ExtensionAdminOps } from "./admin-ops.js";
8
+ import { ExtensionAdmin } from "./admin-view.js";
9
+ import { ExtensionApprovals } from "./approvals.js";
10
+ import { ExtensionBlobs } from "./blobs.js";
11
+ import { mergeDeploymentConfig, readStoredDeploymentConfig, schemaFields, secretPathsOf, } from "./deployment-config.js";
12
+ import { ExtensionHost } from "./host.js";
13
+ import { ExtensionInstalls } from "./installs.js";
14
+ import { PLUGINS_CHANGED_TOPIC } from "./lifecycle.js";
15
+ import { toIssues } from "./org-config.js";
16
+ import { ExtensionPackageError, extensionPackageApiError, permissionSetOfPackage, readExtensionPackage, } from "./package.js";
17
+ /** CLI 发布 bus 消息时连 Redis 的时限(连不上只告警)。 */
18
+ const CLI_REDIS_CONNECT_TIMEOUT_MS = 3_000;
19
+ /**
20
+ * The CLI's extension management context (C18, F-Q): connects only to PG (and Redis for publishing),
21
+ * starts no extension host and runs no extension's `setup` (a catalog import sets up the declared
22
+ * object-store extension itself, see `openCatalogCli`). Packages the CLI imports are always
23
+ * stored in PG (`blob_store = 'pg'`); replicas read by `blob_store`. Install / enable / disable /
24
+ * uninstall share {@link ExtensionAdminOps} with the admin console (actor null, audits without an
25
+ * actor); after writing PG it publishes `kernel.plugins.changed` and running replicas reconcile; a
26
+ * failed publish only warns (the periodic reconcile catches up).
27
+ */
28
+ export async function openExtensionCli(config, log, opts = {}) {
29
+ const inspected = await ExtensionHost.inspect(config.extensions, {
30
+ ...(opts.resolveFrom !== undefined && { resolveFrom: opts.resolveFrom }),
31
+ });
32
+ const raw = createDb(config.db.url, 2, (err) => log.error("pg idle client error", { err }), {
33
+ connectTimeoutMs: config.db.connectTimeoutMs,
34
+ });
35
+ const db = kernelDb(raw);
36
+ const local = new Map();
37
+ const stored = new ExtensionBlobs({ db, maxBytes: () => config.packages.maxBytes });
38
+ const blobs = {
39
+ get: async (sha256) => local.get(sha256) ?? stored.get(sha256),
40
+ };
41
+ const declared = new Map(inspected.map((p) => [p.manifest.name, p.source]));
42
+ // 部署配置 = 启动配置补上后台保存在 PG 的字段(C10);不合法的插件内核不加载(待配置)
43
+ const keyring = createKeyring(Buffer.from(config.masterKey, "base64"), config.masterKeyPrevious.map((k) => Buffer.from(k, "base64")));
44
+ const deploymentConfigOf = async (name, schema) => {
45
+ if (!schema)
46
+ return { ok: true, value: {} };
47
+ const stored = await readStoredDeploymentConfig(db, keyring, name, {
48
+ secretPaths: secretPathsOf(schemaFields(schema)),
49
+ });
50
+ const r = schema.safeParse(mergeDeploymentConfig(stored, config.extensionConfig[name], schemaFields(schema).map((f) => f.path)));
51
+ return r.success ? { ok: true, value: r.data } : { ok: false, issues: toIssues(r.error) };
52
+ };
53
+ const configIssues = new Map();
54
+ const deploymentConfigs = new Map();
55
+ try {
56
+ for (const p of inspected) {
57
+ const schema = p.manifest.config?.deployment;
58
+ if (!schema)
59
+ continue;
60
+ const r = await deploymentConfigOf(p.manifest.name, schema);
61
+ if (r.ok)
62
+ deploymentConfigs.set(p.manifest.name, r.value);
63
+ else
64
+ configIssues.set(p.manifest.name, r.issues);
65
+ }
66
+ }
67
+ catch (e) {
68
+ await raw.destroy().catch(() => { });
69
+ throw e;
70
+ }
71
+ const declaredInfo = inspected.map((p) => ({
72
+ name: p.manifest.name,
73
+ source: p.source,
74
+ version: p.manifest.version,
75
+ permissions: p.permissions,
76
+ configurable: p.manifest.config?.deployment !== undefined,
77
+ configValid: !configIssues.has(p.manifest.name),
78
+ }));
79
+ let redis;
80
+ const publisher = {
81
+ async publish(topic, payload) {
82
+ if (!redis) {
83
+ redis = new Redis(config.redis.url, {
84
+ lazyConnect: true,
85
+ enableOfflineQueue: false,
86
+ maxRetriesPerRequest: 0,
87
+ connectTimeout: CLI_REDIS_CONNECT_TIMEOUT_MS,
88
+ retryStrategy: () => null,
89
+ });
90
+ redis.on("error", () => { });
91
+ }
92
+ if (redis.status !== "ready")
93
+ await redis.connect();
94
+ // 与内核 bus 同一个频道命名(cap:kernel:<topic>);CLI 只发布,不订阅
95
+ const bus = createBus(redis, {
96
+ subscribe: () => Promise.reject(new Error("the CLI does not subscribe")),
97
+ }, "kernel", log);
98
+ await bus.publish(topic, payload);
99
+ },
100
+ };
101
+ const installs = new ExtensionInstalls({
102
+ db,
103
+ blobs: stored,
104
+ config: () => config,
105
+ declared: () => declared,
106
+ });
107
+ const admin = new ExtensionAdmin({
108
+ db,
109
+ blobs,
110
+ installs,
111
+ config: () => config,
112
+ host: { declaredPlugins: () => declaredInfo },
113
+ bus: publisher,
114
+ log,
115
+ });
116
+ const ops = new ExtensionAdminOps({
117
+ db,
118
+ view: (name) => admin.get(name, { allowUnreadable: true }),
119
+ declared: () => declared,
120
+ blobs,
121
+ config: () => config,
122
+ bus: publisher,
123
+ log,
124
+ });
125
+ return {
126
+ config,
127
+ db,
128
+ inspected,
129
+ configIssues,
130
+ deploymentConfigs,
131
+ deploymentConfigOf,
132
+ installs,
133
+ admin,
134
+ ops,
135
+ approvals: new ExtensionApprovals(db),
136
+ remember: (sha256, bytes) => {
137
+ local.set(sha256, bytes);
138
+ },
139
+ readPackage: (sha256) => blobs.get(sha256),
140
+ async packageSet(sha256) {
141
+ // a stored package in the pre-0.1.0 format -> extension.legacy_format
142
+ const pkg = await readExtensionPackage(await blobs.get(sha256), {
143
+ maxBytes: config.packages.maxBytes,
144
+ hostSdkVersion: SDK_VERSION,
145
+ }).catch((e) => {
146
+ throw e instanceof ExtensionPackageError ? extensionPackageApiError(e) : e;
147
+ });
148
+ return permissionSetOfPackage(pkg);
149
+ },
150
+ async publishChanged(plugin) {
151
+ try {
152
+ await publisher.publish(PLUGINS_CHANGED_TOPIC, { plugin });
153
+ return true;
154
+ }
155
+ catch (err) {
156
+ log.warn("cannot publish plugins.changed; running replicas pick the change up on their next periodic reconcile", { plugin, err });
157
+ return false;
158
+ }
159
+ },
160
+ async close() {
161
+ redis?.disconnect();
162
+ await raw.destroy().catch(() => { });
163
+ },
164
+ };
165
+ }
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export type JsonSchema = Record<string, unknown>;
3
+ /**
4
+ * 把插件配置 schema 转成 JSON Schema(供界面渲染表单):
5
+ * - `secret()` 字段带 `"x-secret": true`(去掉 zod 附带的 `secret` 元数据键);
6
+ * - 无法表达的类型为 `{ "x-unsupported": true }`,不抛错;
7
+ * - 以输入侧形态输出(含 default),不带 `$schema`。
8
+ */
9
+ export declare function configToJsonSchema(schema: z.ZodType): JsonSchema;
@@ -0,0 +1,73 @@
1
+ import { z } from "zod";
2
+ /** JSON Schema 无法表达的 zod 类型:降级为 `{}` 并标注 `x-unsupported`。 */
3
+ const UNSUPPORTED = new Set([
4
+ "bigint",
5
+ "date",
6
+ "symbol",
7
+ "undefined",
8
+ "void",
9
+ "nan",
10
+ "map",
11
+ "set",
12
+ "function",
13
+ "promise",
14
+ "custom",
15
+ "file",
16
+ ]);
17
+ /**
18
+ * 把插件配置 schema 转成 JSON Schema(供界面渲染表单):
19
+ * - `secret()` 字段带 `"x-secret": true`(去掉 zod 附带的 `secret` 元数据键);
20
+ * - 无法表达的类型为 `{ "x-unsupported": true }`,不抛错;
21
+ * - 以输入侧形态输出(含 default),不带 `$schema`。
22
+ */
23
+ export function configToJsonSchema(schema) {
24
+ const out = z.toJSONSchema(schema, {
25
+ io: "input",
26
+ unrepresentable: "any",
27
+ override: (ctx) => {
28
+ const js = ctx.jsonSchema;
29
+ const def = ctx.zodSchema._zod.def;
30
+ if (js.secret === true) {
31
+ delete js.secret;
32
+ js["x-secret"] = true;
33
+ }
34
+ if (UNSUPPORTED.has(def.type))
35
+ js["x-unsupported"] = true;
36
+ },
37
+ });
38
+ delete out.$schema;
39
+ scrubSecrets(out);
40
+ return out;
41
+ }
42
+ /** 会泄露取值的关键字:密钥字段一律不输出。 */
43
+ const VALUE_KEYWORDS = ["default", "examples", "const", "enum"];
44
+ /** 值为「名字 -> 子 schema」映射的关键字:其键是用户字段名,不是关键字。 */
45
+ const SCHEMA_MAPS = new Set(["properties", "patternProperties", "$defs", "definitions"]);
46
+ /**
47
+ * 递归清掉密钥节点及其所有后代上会暴露取值的关键字(`inSecret` 随递归下传);无环(输出为纯 JSON 树)。
48
+ * 只有 schema 关键字 default / examples / const / enum 的值被当作数据跳过;
49
+ * `properties` 等映射里的键是字段名,名为 default / enum 的字段照常遍历。
50
+ */
51
+ function scrubSecrets(node, inSecret = false) {
52
+ if (Array.isArray(node)) {
53
+ for (const n of node)
54
+ scrubSecrets(n, inSecret);
55
+ return;
56
+ }
57
+ if (typeof node !== "object" || node === null)
58
+ return;
59
+ const o = node;
60
+ const secret = inSecret || o["x-secret"] === true;
61
+ if (secret)
62
+ for (const k of VALUE_KEYWORDS)
63
+ delete o[k];
64
+ for (const [k, v] of Object.entries(o)) {
65
+ if (SCHEMA_MAPS.has(k) && typeof v === "object" && v !== null) {
66
+ for (const child of Object.values(v))
67
+ scrubSecrets(child, secret);
68
+ }
69
+ else if (!VALUE_KEYWORDS.includes(k)) {
70
+ scrubSecrets(v, secret);
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,138 @@
1
+ import { type Transaction } from "kysely";
2
+ import type { core } from "zod";
3
+ import { type ConfigSourceKind } from "../config/sources.js";
4
+ import { type Keyring } from "../ctx/secrets.js";
5
+ import type { KernelDatabase, KernelDb } from "../db/kernel-schema.js";
6
+ import { type JsonSchema } from "./config-json-schema.js";
7
+ import { type ConfigIssue } from "./org-config.js";
8
+ type Trx = Transaction<KernelDatabase>;
9
+ type Obj = Record<string, unknown>;
10
+ /** 部署级插件配置的密钥存在 `capybara.secrets` 的这个 org_id 下(不是真实组织;namespace `kernel`)。 */
11
+ export declare const DEPLOYMENT_SECRETS_ORG = "_deployment";
12
+ /**
13
+ * 部署配置保存之后(kernel bus 主题,频道 `cap:kernel:plugin-deployment-config`,payload `{ plugin }`):
14
+ * 各副本重读并校验——只改了 hot 字段就地替换,改了非 hot 字段重新加载实例,不合法保持当前值并告警;
15
+ * 插件此刻待配置时,下一次 reconcile 加载它。
16
+ */
17
+ export declare const PLUGIN_DEPLOYMENT_CONFIG_TOPIC = "plugin-deployment-config";
18
+ export type { ConfigIssue };
19
+ /** 后台一个部署配置字段:来源、是否只读;非密钥字段给出生效值,密钥字段只给 `set`。 */
20
+ export interface DeploymentConfigField {
21
+ path: string;
22
+ secret: boolean;
23
+ hot: boolean;
24
+ /**
25
+ * `env` / `file` / `nacos`:启动配置给了(只读);`db`:后台保存的值;`default`:schema 默认值;`unset`:没有值。
26
+ */
27
+ source: ConfigSourceKind | "db" | "default" | "unset";
28
+ readonly: boolean;
29
+ /** 非密钥字段的生效值(没有值时省略)。 */
30
+ value?: unknown;
31
+ /** 密钥字段是否已设置(任何来源);值永不回显。 */
32
+ set?: boolean;
33
+ }
34
+ /** The response of `GET / PUT /api/v1/admin/extensions/:name/config`. */
35
+ export interface DeploymentConfigView {
36
+ plugin: string;
37
+ version: string;
38
+ /** 插件声明了部署级配置。 */
39
+ configurable: boolean;
40
+ fields: DeploymentConfigField[];
41
+ /** 部署级 schema 的 JSON Schema(密钥字段带 `x-secret`);本副本拿不到模块(未加载的安装记录)时为 null。 */
42
+ schema: JsonSchema | null;
43
+ /** 生效配置按 schema 校验通过(`validated` 为 false 时没有校验,恒为 true,界面不要据此显示「合法」)。 */
44
+ valid: boolean;
45
+ /**
46
+ * 本副本拿到了插件模块的 zod schema、`valid` / `issues` 是真实校验结果。false:未加载的安装记录,
47
+ * 字段按包内静态清单给出,没有校验(加载时才校验,不合法则待配置)。
48
+ */
49
+ validated: boolean;
50
+ /** 校验失败的原因(只有路径与说明,不含值)。 */
51
+ issues: ConfigIssue[];
52
+ }
53
+ /** 一个插件的部署级配置描述:真实模块的 zod schema(有的话)与字段清单。 */
54
+ export interface DeploymentSchemaInfo {
55
+ version: string;
56
+ schema?: core.$ZodType | undefined;
57
+ fields: {
58
+ path: string;
59
+ secret: boolean;
60
+ hot: boolean;
61
+ }[];
62
+ }
63
+ /** 由 zod schema 得出字段清单(`configFields`:对象路径上的叶子,secret 向下继承)。 */
64
+ export declare function schemaFields(schema: core.$ZodType | undefined): DeploymentSchemaInfo["fields"];
65
+ /**
66
+ * 合并一个插件的部署配置(C10 的优先级:环境变量 > 文件 / Nacos > PG > schema 默认值):以启动配置
67
+ * (`fileValue`,已含环境变量)为底,逐字段补上 PG 里保存、而启动配置没有覆盖的值。按字段合并:启动配置给了的字段
68
+ * 整个以它为准(不与 PG 的值深合并)。`fields` 为字段点路径(没有 schema 时用 PG 值的叶子路径)。默认值由校验补上。
69
+ */
70
+ export declare function mergeDeploymentConfig(stored: Obj, fileValue: unknown, fields?: string[]): unknown;
71
+ /**
72
+ * PG 里一个插件保存的部署配置(非密钥字段 + 解密的密钥字段,按点路径放回对象)。只并入 `secretPaths`(当前
73
+ * schema 里是密钥的字段)的密钥:旧版本留下、现在已不是密钥或已删掉的字段不解密、不并入(否则会被当成明文回显
74
+ * 或保存)。
75
+ */
76
+ export declare function readStoredDeploymentConfig(db: KernelDb | Trx, keyring: Keyring, plugin: string, opts: {
77
+ forUpdate?: boolean;
78
+ secretPaths: readonly string[];
79
+ }): Promise<Obj>;
80
+ /** 字段清单里的密钥字段路径。 */
81
+ export declare const secretPathsOf: (fields: DeploymentSchemaInfo["fields"]) => string[];
82
+ export interface ExtensionDeploymentConfigDeps {
83
+ db: KernelDb;
84
+ keyring: Keyring;
85
+ /** 启动配置里的 `extensionConfig`(文件 / Nacos 与环境变量合并后)。 */
86
+ fileConfig: () => Record<string, unknown>;
87
+ /** 启动配置各字段的来源(见 `extensionConfigSources`);这些字段只读。 */
88
+ sources: Record<string, Record<string, ConfigSourceKind>>;
89
+ /** The extension's deployment config description; undefined when the deployment does not know the extension (`extension.not_found`). */
90
+ schemaOf: (plugin: string) => Promise<DeploymentSchemaInfo | undefined>;
91
+ /** 保存提交后发布 {@link PLUGIN_DEPLOYMENT_CONFIG_TOPIC};失败只告警(各副本的周期 reconcile 会重读生效插件的部署配置兜底)。 */
92
+ bus?: {
93
+ publish(topic: string, payload: unknown): Promise<void>;
94
+ };
95
+ /** 本副本立即应用(不等 bus 消息回到自己;其他副本经 bus)。失败只记 error。 */
96
+ applyLocal?: (plugin: string) => Promise<unknown>;
97
+ /** 经手的密钥值(提交后),内核传 `log.addSecrets`。 */
98
+ onSecrets?: (values: string[]) => void;
99
+ log: {
100
+ warn(msg: string, fields?: Record<string, unknown>): void;
101
+ error(msg: string, fields?: Record<string, unknown>): void;
102
+ };
103
+ }
104
+ /**
105
+ * Deployment-level extension config (D8 / C10): non-secret fields are stored in
106
+ * `extension_deployment_configs`, each secret field encrypted in `capybara.secrets` (namespace
107
+ * `kernel`, org `_deployment`, key `plugin-deployment-config:<plugin>:<path>`). Fields present in the
108
+ * startup config (file / Nacos / env) are read-only and show their source; the effective value
109
+ * follows {@link mergeDeploymentConfig}. No in-process state, shared by every replica.
110
+ * Secret values are never echoed: responses only say "set", audits only record which paths changed.
111
+ */
112
+ export declare class ExtensionDeploymentConfigService {
113
+ private readonly d;
114
+ constructor(d: ExtensionDeploymentConfigDeps);
115
+ /** 插件的生效部署配置(未校验):启动配置为底,补上 PG 里保存的字段。`schema` 给出时按它的字段合并。 */
116
+ effective(plugin: string, fileValue: unknown, schema?: core.$ZodType): Promise<unknown>;
117
+ /** Admin view; an extension unknown to the deployment -> `extension.not_found`. */
118
+ view(plugin: string): Promise<DeploymentConfigView>;
119
+ /**
120
+ * Saves some fields: `values` keyed by field dot path, `null` = clear (back to the default),
121
+ * omitted = unchanged.
122
+ * - Unknown to the deployment -> `extension.not_found`; no deployment config, unknown field, or
123
+ * invalid after merging (except a problem in a read-only startup-config field itself) ->
124
+ * `extension.config_invalid` (details carry only paths and messages);
125
+ * - a field present in the startup config (file / Nacos / env) -> 409 `extension.config_readonly`.
126
+ * In a transaction, first `lockEnterpriseAdminsAndAuthorize` (re-checks the enterprise admin under
127
+ * the lock), then an advisory lock per extension; audit `extension.deployment_config_updated`
128
+ * (detail only `changedPaths`). After the commit publishes {@link PLUGIN_DEPLOYMENT_CONFIG_TOPIC} and
129
+ * applies it on this replica right away.
130
+ */
131
+ put(plugin: string, values: Record<string, unknown>, actor: string, actorTokenId?: string): Promise<DeploymentConfigView>;
132
+ private info;
133
+ private render;
134
+ }
135
+ /**
136
+ * 本副本拿不到模块时(未加载的安装记录)按包内审阅过的静态清单给出字段(没有 zod schema:不校验,加载时再校验)。
137
+ */
138
+ export declare function staticDeploymentSchema(db: KernelDb, plugin: string): Promise<DeploymentSchemaInfo | undefined>;