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

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 (631) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +2 -0
  3. package/README.md +20 -2
  4. package/bootstrap.json +22 -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 +1125 -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 +223 -0
  112. package/dist/config/schema.js +1151 -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 +422 -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 +150 -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 +210 -0
  166. package/dist/errors.js +212 -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 +789 -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 +149 -0
  210. package/dist/extensions/bootstrap.js +441 -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 +170 -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 +67 -0
  318. package/dist/index.js +65 -0
  319. package/dist/kernel.d.ts +256 -0
  320. package/dist/kernel.js +1326 -0
  321. package/dist/log.d.ts +48 -0
  322. package/dist/log.js +229 -0
  323. package/dist/models/prices.d.ts +53 -0
  324. package/dist/models/prices.js +121 -0
  325. package/dist/models/purposes.controller.d.ts +19 -0
  326. package/dist/models/purposes.controller.js +56 -0
  327. package/dist/models/purposes.d.ts +140 -0
  328. package/dist/models/purposes.js +267 -0
  329. package/dist/net/proxy.d.ts +44 -0
  330. package/dist/net/proxy.js +162 -0
  331. package/dist/net/public-address.d.ts +60 -0
  332. package/dist/net/public-address.js +271 -0
  333. package/dist/net/safe-fetch.d.ts +38 -0
  334. package/dist/net/safe-fetch.js +140 -0
  335. package/dist/orgs/directory-sync.controller.d.ts +14 -0
  336. package/dist/orgs/directory-sync.controller.js +40 -0
  337. package/dist/orgs/directory-sync.d.ts +166 -0
  338. package/dist/orgs/directory-sync.js +558 -0
  339. package/dist/orgs/invitations.controller.d.ts +58 -0
  340. package/dist/orgs/invitations.controller.js +137 -0
  341. package/dist/orgs/invitations.service.d.ts +80 -0
  342. package/dist/orgs/invitations.service.js +217 -0
  343. package/dist/orgs/members.service.d.ts +63 -0
  344. package/dist/orgs/members.service.js +234 -0
  345. package/dist/orgs/offboarding.d.ts +141 -0
  346. package/dist/orgs/offboarding.js +398 -0
  347. package/dist/orgs/org-lock.d.ts +32 -0
  348. package/dist/orgs/org-lock.js +46 -0
  349. package/dist/orgs/org.guard.d.ts +35 -0
  350. package/dist/orgs/org.guard.js +95 -0
  351. package/dist/orgs/orgs.controller.d.ts +78 -0
  352. package/dist/orgs/orgs.controller.js +192 -0
  353. package/dist/orgs/orgs.service.d.ts +61 -0
  354. package/dist/orgs/orgs.service.js +209 -0
  355. package/dist/orgs/roles.d.ts +13 -0
  356. package/dist/orgs/roles.js +58 -0
  357. package/dist/orgs/settings.controller.d.ts +20 -0
  358. package/dist/orgs/settings.controller.js +53 -0
  359. package/dist/orgs/settings.service.d.ts +120 -0
  360. package/dist/orgs/settings.service.js +178 -0
  361. package/dist/packages/npm.d.ts +50 -0
  362. package/dist/packages/npm.js +218 -0
  363. package/dist/packages/provenance.d.ts +47 -0
  364. package/dist/packages/provenance.js +147 -0
  365. package/dist/packages/tgz.d.ts +76 -0
  366. package/dist/packages/tgz.js +225 -0
  367. package/dist/runtime/abort.d.ts +32 -0
  368. package/dist/runtime/abort.js +71 -0
  369. package/dist/runtime/checkpointer.d.ts +32 -0
  370. package/dist/runtime/checkpointer.js +243 -0
  371. package/dist/runtime/context/build.d.ts +254 -0
  372. package/dist/runtime/context/build.js +693 -0
  373. package/dist/runtime/context/claude-tools.d.ts +11 -0
  374. package/dist/runtime/context/claude-tools.js +24 -0
  375. package/dist/runtime/context/compaction.d.ts +26 -0
  376. package/dist/runtime/context/compaction.js +195 -0
  377. package/dist/runtime/context/pairing.d.ts +11 -0
  378. package/dist/runtime/context/pairing.js +82 -0
  379. package/dist/runtime/context/reminders.d.ts +5 -0
  380. package/dist/runtime/context/reminders.js +11 -0
  381. package/dist/runtime/context/skills.d.ts +105 -0
  382. package/dist/runtime/context/skills.js +283 -0
  383. package/dist/runtime/context/tokens.d.ts +19 -0
  384. package/dist/runtime/context/tokens.js +104 -0
  385. package/dist/runtime/conversation-lock.d.ts +40 -0
  386. package/dist/runtime/conversation-lock.js +97 -0
  387. package/dist/runtime/hook-calls.d.ts +84 -0
  388. package/dist/runtime/hook-calls.js +136 -0
  389. package/dist/runtime/langgraph-loop.d.ts +52 -0
  390. package/dist/runtime/langgraph-loop.js +247 -0
  391. package/dist/runtime/loop.d.ts +93 -0
  392. package/dist/runtime/loop.js +7 -0
  393. package/dist/runtime/maintenance.d.ts +80 -0
  394. package/dist/runtime/maintenance.js +147 -0
  395. package/dist/runtime/media-cache.d.ts +21 -0
  396. package/dist/runtime/media-cache.js +51 -0
  397. package/dist/runtime/model-call.d.ts +176 -0
  398. package/dist/runtime/model-call.js +1049 -0
  399. package/dist/runtime/providers.d.ts +86 -0
  400. package/dist/runtime/providers.js +224 -0
  401. package/dist/runtime/quota.d.ts +29 -0
  402. package/dist/runtime/quota.js +70 -0
  403. package/dist/runtime/run-finish.d.ts +45 -0
  404. package/dist/runtime/run-finish.js +69 -0
  405. package/dist/runtime/run-queue.d.ts +121 -0
  406. package/dist/runtime/run-queue.js +493 -0
  407. package/dist/runtime/run-worker.d.ts +138 -0
  408. package/dist/runtime/run-worker.js +805 -0
  409. package/dist/runtime/stream.controller.d.ts +34 -0
  410. package/dist/runtime/stream.controller.js +122 -0
  411. package/dist/runtime/stream.d.ts +63 -0
  412. package/dist/runtime/stream.js +262 -0
  413. package/dist/runtime/subagents/child.d.ts +80 -0
  414. package/dist/runtime/subagents/child.js +225 -0
  415. package/dist/runtime/subagents/definition.d.ts +103 -0
  416. package/dist/runtime/subagents/definition.js +392 -0
  417. package/dist/runtime/subagents/dispatch.d.ts +69 -0
  418. package/dist/runtime/subagents/dispatch.js +502 -0
  419. package/dist/runtime/subagents/limits.d.ts +23 -0
  420. package/dist/runtime/subagents/limits.js +34 -0
  421. package/dist/runtime/subagents/org-agents.d.ts +50 -0
  422. package/dist/runtime/subagents/org-agents.js +70 -0
  423. package/dist/runtime/subagents/preamble.d.ts +7 -0
  424. package/dist/runtime/subagents/preamble.js +11 -0
  425. package/dist/runtime/subagents/progress.d.ts +26 -0
  426. package/dist/runtime/subagents/progress.js +36 -0
  427. package/dist/runtime/subagents/roster.d.ts +55 -0
  428. package/dist/runtime/subagents/roster.js +111 -0
  429. package/dist/runtime/subagents/skill-fork.d.ts +123 -0
  430. package/dist/runtime/subagents/skill-fork.js +259 -0
  431. package/dist/runtime/usage-report.d.ts +163 -0
  432. package/dist/runtime/usage-report.js +550 -0
  433. package/dist/runtime/waits.d.ts +233 -0
  434. package/dist/runtime/waits.js +883 -0
  435. package/dist/sandbox/leases.d.ts +169 -0
  436. package/dist/sandbox/leases.js +515 -0
  437. package/dist/sandbox/lifecycle.d.ts +21 -0
  438. package/dist/sandbox/lifecycle.js +68 -0
  439. package/dist/sandbox/sandbox.service.d.ts +249 -0
  440. package/dist/sandbox/sandbox.service.js +908 -0
  441. package/dist/skills/catalog.d.ts +149 -0
  442. package/dist/skills/catalog.js +405 -0
  443. package/dist/skills/changes.controller.d.ts +56 -0
  444. package/dist/skills/changes.controller.js +136 -0
  445. package/dist/skills/changes.service.d.ts +175 -0
  446. package/dist/skills/changes.service.js +805 -0
  447. package/dist/skills/invocable.controller.d.ts +23 -0
  448. package/dist/skills/invocable.controller.js +50 -0
  449. package/dist/skills/invocation-keys.d.ts +23 -0
  450. package/dist/skills/invocation-keys.js +44 -0
  451. package/dist/skills/invoke.d.ts +135 -0
  452. package/dist/skills/invoke.js +286 -0
  453. package/dist/skills/package.d.ts +87 -0
  454. package/dist/skills/package.js +227 -0
  455. package/dist/skills/skills.controller.d.ts +40 -0
  456. package/dist/skills/skills.controller.js +110 -0
  457. package/dist/skills/skills.service.d.ts +192 -0
  458. package/dist/skills/skills.service.js +567 -0
  459. package/dist/storage/prefix.d.ts +36 -0
  460. package/dist/storage/prefix.js +104 -0
  461. package/dist/storage/purge.d.ts +27 -0
  462. package/dist/storage/purge.js +75 -0
  463. package/dist/storage/storage.service.d.ts +44 -0
  464. package/dist/storage/storage.service.js +145 -0
  465. package/dist/text.d.ts +13 -0
  466. package/dist/text.js +13 -0
  467. package/dist/tools/approvals.controller.d.ts +53 -0
  468. package/dist/tools/approvals.controller.js +128 -0
  469. package/dist/tools/approvals.service.d.ts +172 -0
  470. package/dist/tools/approvals.service.js +568 -0
  471. package/dist/tools/breaker.d.ts +28 -0
  472. package/dist/tools/breaker.js +72 -0
  473. package/dist/tools/builtins/agent.d.ts +81 -0
  474. package/dist/tools/builtins/agent.js +223 -0
  475. package/dist/tools/builtins/ask-user.d.ts +28 -0
  476. package/dist/tools/builtins/ask-user.js +139 -0
  477. package/dist/tools/builtins/read-tool-output.d.ts +18 -0
  478. package/dist/tools/builtins/read-tool-output.js +108 -0
  479. package/dist/tools/builtins/sandbox/bash.d.ts +16 -0
  480. package/dist/tools/builtins/sandbox/bash.js +137 -0
  481. package/dist/tools/builtins/sandbox/common.d.ts +114 -0
  482. package/dist/tools/builtins/sandbox/common.js +304 -0
  483. package/dist/tools/builtins/sandbox/deliver.d.ts +5 -0
  484. package/dist/tools/builtins/sandbox/deliver.js +180 -0
  485. package/dist/tools/builtins/sandbox/edit.d.ts +4 -0
  486. package/dist/tools/builtins/sandbox/edit.js +98 -0
  487. package/dist/tools/builtins/sandbox/glob-match.d.ts +25 -0
  488. package/dist/tools/builtins/sandbox/glob-match.js +240 -0
  489. package/dist/tools/builtins/sandbox/glob.d.ts +4 -0
  490. package/dist/tools/builtins/sandbox/glob.js +104 -0
  491. package/dist/tools/builtins/sandbox/grep.d.ts +9 -0
  492. package/dist/tools/builtins/sandbox/grep.js +133 -0
  493. package/dist/tools/builtins/sandbox/index.d.ts +12 -0
  494. package/dist/tools/builtins/sandbox/index.js +27 -0
  495. package/dist/tools/builtins/sandbox/names.d.ts +7 -0
  496. package/dist/tools/builtins/sandbox/names.js +20 -0
  497. package/dist/tools/builtins/sandbox/read.d.ts +8 -0
  498. package/dist/tools/builtins/sandbox/read.js +121 -0
  499. package/dist/tools/builtins/sandbox/write.d.ts +4 -0
  500. package/dist/tools/builtins/sandbox/write.js +88 -0
  501. package/dist/tools/builtins/skill-load.d.ts +53 -0
  502. package/dist/tools/builtins/skill-load.js +446 -0
  503. package/dist/tools/builtins/skill-write.d.ts +59 -0
  504. package/dist/tools/builtins/skill-write.js +244 -0
  505. package/dist/tools/builtins/tool-search.d.ts +31 -0
  506. package/dist/tools/builtins/tool-search.js +171 -0
  507. package/dist/tools/connector-content.controller.d.ts +34 -0
  508. package/dist/tools/connector-content.controller.js +78 -0
  509. package/dist/tools/connector-content.d.ts +104 -0
  510. package/dist/tools/connector-content.js +267 -0
  511. package/dist/tools/connectors.controller.d.ts +210 -0
  512. package/dist/tools/connectors.controller.js +234 -0
  513. package/dist/tools/connectors.service.d.ts +303 -0
  514. package/dist/tools/connectors.service.js +1102 -0
  515. package/dist/tools/credentials.d.ts +139 -0
  516. package/dist/tools/credentials.js +351 -0
  517. package/dist/tools/drift.d.ts +141 -0
  518. package/dist/tools/drift.js +539 -0
  519. package/dist/tools/elicitation.d.ts +81 -0
  520. package/dist/tools/elicitation.js +266 -0
  521. package/dist/tools/endpoint.d.ts +18 -0
  522. package/dist/tools/endpoint.js +115 -0
  523. package/dist/tools/info.d.ts +67 -0
  524. package/dist/tools/info.js +113 -0
  525. package/dist/tools/naming.d.ts +27 -0
  526. package/dist/tools/naming.js +47 -0
  527. package/dist/tools/oauth/discovery.d.ts +65 -0
  528. package/dist/tools/oauth/discovery.js +307 -0
  529. package/dist/tools/oauth/flow.d.ts +63 -0
  530. package/dist/tools/oauth/flow.js +237 -0
  531. package/dist/tools/oauth/oauth.controller.d.ts +31 -0
  532. package/dist/tools/oauth/oauth.controller.js +95 -0
  533. package/dist/tools/oauth/tokens.d.ts +111 -0
  534. package/dist/tools/oauth/tokens.js +258 -0
  535. package/dist/tools/outputs.d.ts +61 -0
  536. package/dist/tools/outputs.js +156 -0
  537. package/dist/tools/pipeline.d.ts +322 -0
  538. package/dist/tools/pipeline.js +1236 -0
  539. package/dist/tools/policy.d.ts +60 -0
  540. package/dist/tools/policy.js +236 -0
  541. package/dist/tools/questions.controller.d.ts +24 -0
  542. package/dist/tools/questions.controller.js +58 -0
  543. package/dist/tools/questions.service.d.ts +103 -0
  544. package/dist/tools/questions.service.js +295 -0
  545. package/dist/tools/redact.d.ts +20 -0
  546. package/dist/tools/redact.js +60 -0
  547. package/dist/tools/registry.d.ts +246 -0
  548. package/dist/tools/registry.js +481 -0
  549. package/dist/tools/resources.d.ts +16 -0
  550. package/dist/tools/resources.js +76 -0
  551. package/dist/tools/specs.d.ts +14 -0
  552. package/dist/tools/specs.js +31 -0
  553. package/dist/tools/validate.d.ts +20 -0
  554. package/dist/tools/validate.js +183 -0
  555. package/dist/tools/view.d.ts +43 -0
  556. package/dist/tools/view.js +225 -0
  557. package/dist/ui/embed-token.d.ts +31 -0
  558. package/dist/ui/embed-token.js +132 -0
  559. package/dist/ui/registry.d.ts +58 -0
  560. package/dist/ui/registry.js +90 -0
  561. package/dist/ui/ui-stream.d.ts +37 -0
  562. package/dist/ui/ui-stream.js +162 -0
  563. package/dist/ui/views.controller.d.ts +81 -0
  564. package/dist/ui/views.controller.js +261 -0
  565. package/dist/ui/views.d.ts +155 -0
  566. package/dist/ui/views.js +306 -0
  567. package/dist/version.d.ts +5 -0
  568. package/dist/version.js +6 -0
  569. package/package.json +67 -3
  570. package/src/migrations/0001_init.sql +8 -0
  571. package/src/migrations/0002_secrets.sql +8 -0
  572. package/src/migrations/0003_identity.sql +117 -0
  573. package/src/migrations/0004_plugin_org_config_nullable.sql +3 -0
  574. package/src/migrations/0005_agents.sql +27 -0
  575. package/src/migrations/0006_conversations.sql +37 -0
  576. package/src/migrations/0007_checkpoints.sql +26 -0
  577. package/src/migrations/0008_runs_trigger_seq.sql +3 -0
  578. package/src/migrations/0009_runs_active_unique.sql +4 -0
  579. package/src/migrations/0010_tools.sql +125 -0
  580. package/src/migrations/0011_approvals_spec.sql +10 -0
  581. package/src/migrations/0012_run_waits.sql +24 -0
  582. package/src/migrations/0013_app_tools_source.sql +4 -0
  583. package/src/migrations/0014_tool_specs.sql +8 -0
  584. package/src/migrations/0015_tool_drift.sql +20 -0
  585. package/src/migrations/0016_plugin_permissions.sql +11 -0
  586. package/src/migrations/0017_identity_sources.sql +6 -0
  587. package/src/migrations/0018_channels.sql +74 -0
  588. package/src/migrations/0019_identity_trust.sql +17 -0
  589. package/src/migrations/0020_channel_card_lookup.sql +10 -0
  590. package/src/migrations/0021_org_storage_purge.sql +9 -0
  591. package/src/migrations/0022_attachments.sql +29 -0
  592. package/src/migrations/0023_sandboxes.sql +37 -0
  593. package/src/migrations/0024_skills.sql +46 -0
  594. package/src/migrations/0025_skills_catalog_idx.sql +6 -0
  595. package/src/migrations/0026_skill_changes.sql +34 -0
  596. package/src/migrations/0027_model_prices.sql +18 -0
  597. package/src/migrations/0028_evals.sql +105 -0
  598. package/src/migrations/0029_model_purposes.sql +18 -0
  599. package/src/migrations/0030_plugin_installs.sql +73 -0
  600. package/src/migrations/0031_plugin_snapshot_source.sql +6 -0
  601. package/src/migrations/0032_plugin_deployment_configs.sql +10 -0
  602. package/src/migrations/0033_rename_apps_to_connectors.sql +25 -0
  603. package/src/migrations/0034_directory.sql +49 -0
  604. package/src/migrations/0035_catalogs.sql +40 -0
  605. package/src/migrations/0036_app_import_staging.sql +17 -0
  606. package/src/migrations/0037_directory_installs.sql +92 -0
  607. package/src/migrations/0038_channel_inbound_mode.sql +6 -0
  608. package/src/migrations/0039_channel_card_pending.sql +8 -0
  609. package/src/migrations/0040_usage_report_sweep.sql +10 -0
  610. package/src/migrations/0041_rename_plugins_to_extensions.sql +38 -0
  611. package/src/migrations/0042_rename_directory_to_catalog.sql +80 -0
  612. package/src/migrations/0043_rename_app_installs_to_plugin_installs.sql +20 -0
  613. package/src/migrations/0044_catalog_one_kind.sql +90 -0
  614. package/src/migrations/0045_plugin_dependencies.sql +9 -0
  615. package/src/migrations/0046_git_sources.sql +25 -0
  616. package/src/migrations/0047_marketplace_entry_heads.sql +7 -0
  617. package/src/migrations/0048_marketplace_entry_trees.sql +8 -0
  618. package/src/migrations/0049_plugin_upgrades.sql +37 -0
  619. package/src/migrations/0050_bootstrap.sql +53 -0
  620. package/src/migrations/0051_claude_compat.sql +26 -0
  621. package/src/migrations/0052_conversations_account_agent_idx.sql +5 -0
  622. package/src/migrations/0053_subagents.sql +73 -0
  623. package/src/migrations/0054_subagent_wait_expiry.sql +7 -0
  624. package/src/migrations/0055_subagent_parent_indexes.sql +10 -0
  625. package/src/migrations/0056_approval_reason.sql +3 -0
  626. package/src/migrations/0057_conversation_titles.sql +11 -0
  627. package/src/migrations/0058_conversation_selection.sql +4 -0
  628. package/src/migrations/0059_conversation_queue.sql +22 -0
  629. package/src/migrations/0060_file_previewers.sql +10 -0
  630. package/src/migrations/0061_queue_selection.sql +5 -0
  631. package/src/migrations/0062_queued_skill.sql +8 -0
@@ -0,0 +1,234 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { ConnectorAuthSchema } from "@capybara-hq/plugin-sdk";
11
+ import { Body, Controller, Delete, Get, HttpCode, Inject, Param, Patch, Post, Put, } from "@nestjs/common";
12
+ import { z } from "zod";
13
+ import { CONNECTORS } from "../http/tokens.js";
14
+ import { ZodPipe } from "../http/zod.pipe.js";
15
+ import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
16
+ import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
17
+ import { can } from "../orgs/roles.js";
18
+ import { publicEndpoint } from "./endpoint.js";
19
+ /**
20
+ * 没有 `connectors.manage` 的读者只看到端点的公开部分(URL 不带 query、只有头名,见 endpoint.ts),
21
+ * 也看不到工具的连接器数据(可能含服务器地址)。
22
+ */
23
+ function forViewer(org, c) {
24
+ if (can(org.role, "connectors.manage"))
25
+ return c;
26
+ const view = { ...c, endpoint: publicEndpoint(c.endpoint) };
27
+ if ("tools" in view) {
28
+ view.tools = view.tools.map((t) => ({
29
+ ...t,
30
+ connectorData: null,
31
+ pending: t.pending && { ...t.pending, connectorData: null },
32
+ }));
33
+ }
34
+ return view;
35
+ }
36
+ /** 凭据值:形状由 `Credentials.validate` 按认证方式校验(不回显值);这里只限大小。 */
37
+ export const CredentialValue = z
38
+ .record(z.string().max(100), z.unknown())
39
+ .refine((v) => JSON.stringify(v).length <= 16_384, { message: "Credential is too large" });
40
+ const CreateBody = z
41
+ .object({
42
+ name: z.string().trim().min(1).max(80),
43
+ slug: z.string().max(24).optional(),
44
+ connector: z.string().min(1).max(100),
45
+ endpoint: z.record(z.string(), z.unknown()),
46
+ auth: ConnectorAuthSchema,
47
+ credential: CredentialValue.optional(),
48
+ })
49
+ .strict();
50
+ /** 预览(Ruling A20):与创建相同的连接器 / 端点 / 认证 / 凭据,认证可缺省(只读端点描述,不列工具)。 */
51
+ const PreviewBody = z
52
+ .object({
53
+ name: z.string().trim().min(1).max(80).optional(),
54
+ slug: z.string().max(24).optional(),
55
+ connector: z.string().min(1).max(100),
56
+ endpoint: z.record(z.string(), z.unknown()),
57
+ auth: ConnectorAuthSchema.optional(),
58
+ credential: CredentialValue.optional(),
59
+ })
60
+ .strict();
61
+ const ToolPatch = z
62
+ .object({
63
+ status: z.enum(["enabled", "disabled"]).optional(),
64
+ defaultPolicy: z.enum(["allow", "ask", "deny"]).optional(),
65
+ })
66
+ .strict();
67
+ const ReviewBody = z.object({ action: z.enum(["approve", "reject"]) }).strict();
68
+ const UpdateBody = z
69
+ .object({
70
+ name: z.string().trim().min(1).max(80).optional(),
71
+ status: z.enum(["active", "disabled"]).optional(),
72
+ tools: z
73
+ .record(z.string().max(200), ToolPatch)
74
+ .refine((v) => Object.keys(v).length <= 1000, { message: "Too many tools" })
75
+ .optional(),
76
+ allowUnannotated: z.boolean().optional(),
77
+ })
78
+ .strict();
79
+ /**
80
+ * 连接器(`/api/v1/orgs/:orgId/connectors`):读与个人凭据用 `connectors.use`(访客起),安装 / 修改 / 删除 / 刷新 /
81
+ * 组织凭据用 `connectors.manage`(管理员起);两者都仅限用户主体。
82
+ */
83
+ let ConnectorsController = class ConnectorsController {
84
+ connectors;
85
+ constructor(connectors) {
86
+ this.connectors = connectors;
87
+ }
88
+ async list(org) {
89
+ return { connectors: (await this.connectors.list(org.orgId)).map((a) => forViewer(org, a)) };
90
+ }
91
+ async create(principal, org, body) {
92
+ const p = requireUser(principal);
93
+ return this.connectors.create(org.orgId, p.account.id, body, patTokenId(p));
94
+ }
95
+ /**
96
+ * 预览(安装向导):读端点描述(认证提示、操作清单)并在能认证时列出工具,什么都不写。
97
+ * 创建与预览的请求体可带最大 2 MB 的 OpenAPI 文档,路由级 bodyLimit 见 http/app.ts。
98
+ */
99
+ async preview(principal, org, body) {
100
+ requireUser(principal);
101
+ return this.connectors.preview(org.orgId, body);
102
+ }
103
+ async get(principal, org, connectorId) {
104
+ const p = requireUser(principal);
105
+ return {
106
+ connector: forViewer(org, await this.connectors.get(org.orgId, connectorId, p.account.id)),
107
+ };
108
+ }
109
+ async update(principal, org, connectorId, body) {
110
+ const p = requireUser(principal);
111
+ return {
112
+ connector: await this.connectors.update(org.orgId, connectorId, p.account.id, body, patTokenId(p)),
113
+ };
114
+ }
115
+ async remove(principal, org, connectorId) {
116
+ const p = requireUser(principal);
117
+ await this.connectors.remove(org.orgId, connectorId, p.account.id, patTokenId(p));
118
+ }
119
+ async refresh(principal, org, connectorId) {
120
+ const p = requireUser(principal);
121
+ return this.connectors.refresh(org.orgId, connectorId, p.account.id, patTokenId(p));
122
+ }
123
+ /** 复核待复核的工具(漂移检测,spec 7.3):approve 采用新定义并启用,reject 停用并保留旧定义。 */
124
+ async review(principal, org, connectorId, name, body) {
125
+ const p = requireUser(principal);
126
+ return {
127
+ connector: await this.connectors.reviewTool(org.orgId, connectorId, name, body.action, p.account.id, patTokenId(p)),
128
+ };
129
+ }
130
+ async setOrgCredential(principal, org, connectorId, body) {
131
+ const p = requireUser(principal);
132
+ await this.connectors.setCredential(org.orgId, connectorId, p.account.id, "org", body, patTokenId(p));
133
+ }
134
+ async setMyCredential(principal, org, connectorId, body) {
135
+ const p = requireUser(principal);
136
+ await this.connectors.setCredential(org.orgId, connectorId, p.account.id, "personal", body, patTokenId(p));
137
+ }
138
+ async clearMyCredential(principal, org, connectorId) {
139
+ const p = requireUser(principal);
140
+ await this.connectors.clearMyCredential(org.orgId, connectorId, p.account.id, patTokenId(p));
141
+ }
142
+ };
143
+ __decorate([
144
+ Get(),
145
+ OrgAction("connectors.use"),
146
+ __param(0, CurrentOrg())
147
+ ], ConnectorsController.prototype, "list", null);
148
+ __decorate([
149
+ Post(),
150
+ OrgAction("connectors.manage"),
151
+ __param(0, CurrentPrincipal()),
152
+ __param(1, CurrentOrg()),
153
+ __param(2, Body(new ZodPipe(CreateBody)))
154
+ ], ConnectorsController.prototype, "create", null);
155
+ __decorate([
156
+ Post("preview"),
157
+ HttpCode(200),
158
+ OrgAction("connectors.manage"),
159
+ __param(0, CurrentPrincipal()),
160
+ __param(1, CurrentOrg()),
161
+ __param(2, Body(new ZodPipe(PreviewBody)))
162
+ ], ConnectorsController.prototype, "preview", null);
163
+ __decorate([
164
+ Get(":connectorId"),
165
+ OrgAction("connectors.use"),
166
+ __param(0, CurrentPrincipal()),
167
+ __param(1, CurrentOrg()),
168
+ __param(2, Param("connectorId"))
169
+ ], ConnectorsController.prototype, "get", null);
170
+ __decorate([
171
+ Patch(":connectorId"),
172
+ OrgAction("connectors.manage"),
173
+ __param(0, CurrentPrincipal()),
174
+ __param(1, CurrentOrg()),
175
+ __param(2, Param("connectorId")),
176
+ __param(3, Body(new ZodPipe(UpdateBody)))
177
+ ], ConnectorsController.prototype, "update", null);
178
+ __decorate([
179
+ Delete(":connectorId"),
180
+ HttpCode(204),
181
+ OrgAction("connectors.manage"),
182
+ __param(0, CurrentPrincipal()),
183
+ __param(1, CurrentOrg()),
184
+ __param(2, Param("connectorId"))
185
+ ], ConnectorsController.prototype, "remove", null);
186
+ __decorate([
187
+ Post(":connectorId/refresh"),
188
+ HttpCode(200),
189
+ OrgAction("connectors.manage"),
190
+ __param(0, CurrentPrincipal()),
191
+ __param(1, CurrentOrg()),
192
+ __param(2, Param("connectorId"))
193
+ ], ConnectorsController.prototype, "refresh", null);
194
+ __decorate([
195
+ Post(":connectorId/tools/:name/review"),
196
+ HttpCode(200),
197
+ OrgAction("connectors.manage"),
198
+ __param(0, CurrentPrincipal()),
199
+ __param(1, CurrentOrg()),
200
+ __param(2, Param("connectorId")),
201
+ __param(3, Param("name")),
202
+ __param(4, Body(new ZodPipe(ReviewBody)))
203
+ ], ConnectorsController.prototype, "review", null);
204
+ __decorate([
205
+ Put(":connectorId/credentials/org"),
206
+ HttpCode(204),
207
+ OrgAction("connectors.manage"),
208
+ __param(0, CurrentPrincipal()),
209
+ __param(1, CurrentOrg()),
210
+ __param(2, Param("connectorId")),
211
+ __param(3, Body(new ZodPipe(CredentialValue)))
212
+ ], ConnectorsController.prototype, "setOrgCredential", null);
213
+ __decorate([
214
+ Put(":connectorId/credentials/me"),
215
+ HttpCode(204),
216
+ OrgAction("connectors.use"),
217
+ __param(0, CurrentPrincipal()),
218
+ __param(1, CurrentOrg()),
219
+ __param(2, Param("connectorId")),
220
+ __param(3, Body(new ZodPipe(CredentialValue)))
221
+ ], ConnectorsController.prototype, "setMyCredential", null);
222
+ __decorate([
223
+ Delete(":connectorId/credentials/me"),
224
+ HttpCode(204),
225
+ OrgAction("connectors.use"),
226
+ __param(0, CurrentPrincipal()),
227
+ __param(1, CurrentOrg()),
228
+ __param(2, Param("connectorId"))
229
+ ], ConnectorsController.prototype, "clearMyCredential", null);
230
+ ConnectorsController = __decorate([
231
+ Controller("api/v1/orgs/:orgId/connectors"),
232
+ __param(0, Inject(CONNECTORS))
233
+ ], ConnectorsController);
234
+ export { ConnectorsController };
@@ -0,0 +1,303 @@
1
+ import { type AuthHint, type ConnectorOperation, type ToolAnnotations } from "@capybara-hq/plugin-sdk";
2
+ import { type Transaction } from "kysely";
3
+ import type { KernelConfig } from "../config/schema.js";
4
+ import type { KernelDatabase, KernelDb } from "../db/kernel-schema.js";
5
+ import type { ExtensionHost } from "../extensions/host.js";
6
+ import { type ConnectorAuth, type CredentialOwner, type Credentials, type StaticSecret } from "./credentials.js";
7
+ import { type DriftChanges, type ToolDrift, type ToolIssue } from "./drift.js";
8
+ import { type OAuthClientRecord, type OAuthTokenRecord } from "./oauth/tokens.js";
9
+ import { type ToolPolicy, type ToolRegistry } from "./registry.js";
10
+ type Trx = Transaction<KernelDatabase>;
11
+ export type { ToolIssue } from "./drift.js";
12
+ type ToolStatus = "enabled" | "disabled" | "pending_review";
13
+ type ToolSource = "connector" | "resources";
14
+ /** 连接器工具视图;`issue` 非空表示该工具不能启用的原因(如 key 超长)。 */
15
+ export interface ConnectorToolView {
16
+ name: string;
17
+ key: string;
18
+ description: string;
19
+ inputSchema: Record<string, unknown>;
20
+ annotations: ToolAnnotations | null;
21
+ /**
22
+ * 连接器的不透明路由数据(Ruling A21,如 OpenAPI 的方法 / 路径 / 服务器地址),供复核对比;没有时为 null。
23
+ * 只给 `connectors.manage`(读者视图里置 null,见 connectors.controller.ts)。
24
+ */
25
+ connectorData: Record<string, unknown> | null;
26
+ status: ToolStatus;
27
+ defaultPolicy: ToolPolicy;
28
+ specHash: string;
29
+ issue: string | null;
30
+ /** `resources`:内核为支持 resources 的连接器补上的工具(见 resources.ts)。 */
31
+ source: ToolSource;
32
+ /**
33
+ * 默认策略的来历:`derived` 按注解推导(定义变化复核通过后重新推导),`admin` 管理员设定(保留),
34
+ * `template` 来自目录模板的 `defaultToolPolicies`(与 admin 一样保留)。
35
+ */
36
+ policySource: "derived" | "admin" | "template";
37
+ /** 远端已不再提供该工具(随之停用;又出现时待复核)。 */
38
+ missing: boolean;
39
+ reviewedAt: Date | null;
40
+ /**
41
+ * 定义变化后待复核的新定义(漂移检测,Task 17);上面的 description / inputSchema / annotations / specHash /
42
+ * source 是当前(上次复核通过的)定义,供对比。新增的待复核工具没有旧定义,此处为 null。
43
+ */
44
+ pending: {
45
+ description: string;
46
+ inputSchema: Record<string, unknown>;
47
+ annotations: ToolAnnotations | null;
48
+ connectorData: Record<string, unknown> | null;
49
+ specHash: string;
50
+ source: ToolSource;
51
+ } | null;
52
+ }
53
+ /** 列表项:不含工具与凭据(`auth` 只有类型与非密钥字段)。 */
54
+ export interface ConnectorSummary {
55
+ id: string;
56
+ slug: string;
57
+ name: string;
58
+ connector: string;
59
+ endpoint: unknown;
60
+ auth: ConnectorAuth;
61
+ status: "active" | "disabled";
62
+ createdBy: string;
63
+ createdAt: Date;
64
+ updatedAt: Date;
65
+ }
66
+ export interface ConnectorDetail extends ConnectorSummary {
67
+ tools: ConnectorToolView[];
68
+ /** 当前用户视角的凭据状态;`ownership` 为 null 表示无需凭据(auth none)。 */
69
+ credential: {
70
+ ownership: "org" | "personal" | null;
71
+ status: "connected" | "missing";
72
+ };
73
+ }
74
+ export interface CreateConnectorInput {
75
+ name: string;
76
+ slug?: string | undefined;
77
+ connector: string;
78
+ endpoint: unknown;
79
+ auth: ConnectorAuth;
80
+ credential?: unknown;
81
+ /**
82
+ * Install from an enterprise catalog connector template (T26, filled in by the catalog service,
83
+ * not accepted over HTTP): the connector records its source item and version, the item policy is
84
+ * re-checked in the transaction (a template inside an app passes the app item); once the tool
85
+ * snapshot exists, `defaultToolPolicies` set the default policies (`policy_source 'template'`).
86
+ * Absent = custom; rejected when the deployment setting `customConnectors` is deny
87
+ * (`catalog.custom_disabled`).
88
+ */
89
+ template?: ConnectorTemplateRef | undefined;
90
+ }
91
+ /** 连接器来自哪个目录条目的哪个模板。 */
92
+ export interface ConnectorTemplateRef {
93
+ itemId: string;
94
+ version: string;
95
+ /** 应用里的模板 id;独立的连接器模板条目为空。 */
96
+ templateId?: string | undefined;
97
+ defaultToolPolicies?: Record<string, ToolPolicy> | undefined;
98
+ /** The item whose policy approves this install (a dependency's template: the installed plugin). */
99
+ approvedBy?: string | undefined;
100
+ }
101
+ /**
102
+ * A connector updated to another version of its catalog template (an org plugin upgrade, package
103
+ * ecosystem spec §10): only template-owned fields change (endpoint preset, auth preset, default tool
104
+ * policies still at the template default); the name, slug, status, tools and credentials stay,
105
+ * unless `resetCredentials`.
106
+ */
107
+ export interface TemplateUpdateInput {
108
+ /** The new template's endpoint preset with the org's values at its editable paths. */
109
+ endpoint: unknown;
110
+ auth: ConnectorAuth;
111
+ /** The template version (itemId, version, templateId, defaultToolPolicies). */
112
+ template: ConnectorTemplateRef;
113
+ /**
114
+ * The auth method or the credentials it needs changed: the connector's credentials (org and
115
+ * personal, OAuth client and tokens) are cleared and `credential` (an org or the actor's static
116
+ * credential, or the OAuth client) is set.
117
+ */
118
+ resetCredentials: boolean;
119
+ credential?: unknown;
120
+ }
121
+ /** A {@link TemplateUpdateInput} checked by {@link ConnectorsService.prepareTemplateUpdate}. */
122
+ export interface PreparedTemplateUpdate {
123
+ input: TemplateUpdateInput;
124
+ endpoint: unknown;
125
+ owner?: CredentialOwner;
126
+ secret?: StaticSecret;
127
+ oauth?: OAuthSetup;
128
+ }
129
+ export interface PreviewConnectorInput {
130
+ name?: string | undefined;
131
+ slug?: string | undefined;
132
+ connector: string;
133
+ endpoint: unknown;
134
+ auth?: ConnectorAuth | undefined;
135
+ credential?: unknown;
136
+ }
137
+ /** 预览里的一个工具:与安装后的工具视图同形的子集(`issue` 非空 = 安装后只能停用)。 */
138
+ export interface ToolPreview {
139
+ name: string;
140
+ key: string;
141
+ description: string;
142
+ inputSchema: Record<string, unknown>;
143
+ annotations: ToolAnnotations | null;
144
+ defaultPolicy: ToolPolicy;
145
+ issue: string | null;
146
+ source: ToolSource;
147
+ }
148
+ /**
149
+ * 连接器预览(Ruling A20):`tools` 为 null 表示没有列工具(没给认证方式、需要凭据但没给、OAuth 授权码流);
150
+ * `authHints` / `operations` 来自连接器的 `inspect`(不实现时为空 / 缺省)。
151
+ */
152
+ export interface ConnectorPreview {
153
+ tools: ToolPreview[] | null;
154
+ /** 列工具时被停用 / 跳过的工具及原因(与安装时的 issues 相同;同名工具只保留第一个)。 */
155
+ issues: ToolIssue[];
156
+ authHints: AuthHint[];
157
+ operations?: ConnectorOperation[];
158
+ }
159
+ export interface UpdateConnectorInput {
160
+ name?: string | undefined;
161
+ status?: "active" | "disabled" | undefined;
162
+ tools?: Record<string, {
163
+ status?: "enabled" | "disabled" | undefined;
164
+ defaultPolicy?: ToolPolicy | undefined;
165
+ }> | undefined;
166
+ /** 把「没有 readOnlyHint / destructiveHint 注解」的工具默认策略批量改为 allow。 */
167
+ allowUnannotated?: boolean | undefined;
168
+ }
169
+ /** OAuth 安装准备的结果:要存的客户端,以及(客户端凭据流)安装时取到的组织 token。 */
170
+ export interface OAuthSetup {
171
+ client: OAuthClientRecord;
172
+ tokens?: OAuthTokenRecord;
173
+ }
174
+ /**
175
+ * 连接器(远端服务实例)与其工具快照、凭据。写操作都在组织行锁内复核发起人权限并写审计
176
+ * (detail 只有凭据类型与归属,没有值)。连接器会话按操作打开、用完即关,不在进程内缓存。
177
+ */
178
+ export declare class ConnectorsService {
179
+ private readonly db;
180
+ private readonly registry;
181
+ private readonly host;
182
+ private readonly credentials;
183
+ private readonly config;
184
+ private readonly drift;
185
+ constructor(db: KernelDb, registry: ToolRegistry, host: ExtensionHost, credentials: Credentials, config: () => KernelConfig, drift: ToolDrift);
186
+ /**
187
+ * 校验连接器存在、端点按其 schema 合法、不含凭据样式的头 / query 参数 / URL 用户信息(端点对成员可见,
188
+ * 凭据须走认证设置);返回解析后的端点。
189
+ */
190
+ private parseEndpoint;
191
+ private slugTaken;
192
+ private resolveSlug;
193
+ /**
194
+ * OAuth 连接器安装前的准备(A16):授权码流按 `discovery` 取端点(MCP 发现或手填)、按 `client` 动态注册或用请求里
195
+ * 手填的 client(不做首次 listTools);客户端凭据流用请求里的 client 取一次组织 token。
196
+ * 外连失败一律 502 `connector.connect_failed`(details 带原因码),什么都不写。
197
+ */
198
+ private prepareOAuth;
199
+ /**
200
+ * The checks of {@link create} that need neither a connection nor the database: the slug, the
201
+ * endpoint against the connector's schema, the credential shape, the OAuth client and the OAuth
202
+ * URL policy. `create` runs them first; a plugin install runs them for every template before it
203
+ * creates anything, so bad input is a 400 rather than a failed install. Returns what they parsed.
204
+ */
205
+ checkCreateInput(actorAccountId: string, input: CreateConnectorInput): {
206
+ slug: string;
207
+ endpoint: unknown;
208
+ owner?: CredentialOwner;
209
+ secret?: StaticSecret;
210
+ };
211
+ /**
212
+ * 安装连接器(A4):校验 → 用请求里的凭据(尚未落库)连接并 listTools → 一个事务内写连接器、工具快照、
213
+ * 凭据与审计。连接失败时什么都不写。组织凭据型连接器的 `credential` 是组织凭据,个人型是创建者自己的。
214
+ * OAuth(A16,要求 `http.publicUrl`):授权码连接器不做首次 listTools(首个成员连接后刷新),只存客户端;
215
+ * 客户端凭据连接器用安装时取到的组织 token listTools,存客户端与 token。
216
+ */
217
+ create(orgId: string, actorAccountId: string, input: CreateConnectorInput, actorTokenId?: string): Promise<{
218
+ connector: ConnectorDetail;
219
+ issues: ToolIssue[];
220
+ }>;
221
+ /**
222
+ * Checks a template update before anything is written (an org plugin upgrade): the endpoint
223
+ * against the connector's schema, and with `resetCredentials` the new credential's shape, or for
224
+ * OAuth the client setup (discovery, dynamic registration or the client credentials token; an
225
+ * outbound failure -> 502 `connector.connect_failed`). Writes nothing.
226
+ */
227
+ prepareTemplateUpdate(actorAccountId: string, connector: string, input: TemplateUpdateInput): Promise<PreparedTemplateUpdate>;
228
+ /**
229
+ * Applies a prepared template update in the caller's transaction (the caller holds the org row
230
+ * lock and checked the actor): the endpoint, auth and template version of the connector, the
231
+ * template's default policies (`template_tool_policies`) and the policies the org did not set
232
+ * (`policy_source` `template` or `derived`): a tool the new template names takes its policy
233
+ * (`template`), an unnamed `template` tool returns to the policy derived from its annotations,
234
+ * unnamed `derived` tools and the org's own (`admin`) stay (spec §10). Tool definitions are untouched (the next refresh takes the new endpoint through drift review). With `resetCredentials` the credentials are replaced.
235
+ * Audits `connector.template_applied`. Deleted / missing -> `connector.not_found`.
236
+ */
237
+ applyTemplateIn(t: Trx, orgId: string, connectorId: string, actorAccountId: string, p: PreparedTemplateUpdate, actorTokenId?: string): Promise<void>;
238
+ /**
239
+ * Previews a connector (Ruling A20, for the install wizard): after checking the connector, the
240
+ * endpoint (credential pattern check included) and the credential shape, reads the endpoint
241
+ * description with `connector.inspect` (auth hints, operations), and when it can authenticate
242
+ * (static credentials / a token from the client credentials flow) or auth is none, also lists the
243
+ * tools, builds keys from the slug and derives default policies and issues. Writes nothing (no
244
+ * rows, no audit); the OAuth authorization code flow lists no tools (no dynamic registration).
245
+ * Any outbound failure is 502 `connector.connect_failed`, the message holding only the
246
+ * connector's English explanation (redacted by the injected credentials) or the error class name.
247
+ * `customConnectors: deny` -> `catalog.custom_disabled`.
248
+ */
249
+ preview(orgId: string, input: PreviewConnectorInput): Promise<ConnectorPreview>;
250
+ private insertTools;
251
+ /** 读本组织未删除的连接器行;不存在 → `connector.not_found`。`lock` 时 FOR UPDATE。 */
252
+ private row;
253
+ private summary;
254
+ private detail;
255
+ /** 本组织未删除的连接器(按创建时间)。 */
256
+ list(orgId: string): Promise<ConnectorSummary[]>;
257
+ get(orgId: string, connectorId: string, viewerAccountId: string): Promise<ConnectorDetail>;
258
+ /** 改名、启停连接器、工具启停与默认策略、批量把无注解工具改为 allow(`connectors.manage`)。 */
259
+ update(orgId: string, connectorId: string, actorAccountId: string, patch: UpdateConnectorInput, actorTokenId?: string): Promise<ConnectorDetail>;
260
+ /** 软删除,并删除该连接器的全部凭据(`connectors.manage`)。 */
261
+ remove(orgId: string, connectorId: string, actorAccountId: string, actorTokenId?: string): Promise<void>;
262
+ /**
263
+ * 在调用方事务里软删除连接器(调用方已锁组织行并按需复核角色;应用安装的回滚与卸载用):删全部凭据与授权,
264
+ * 审计 `connector.deleted`(`reason` 并进 detail)。已删除 / 不存在 → `connector.not_found`。
265
+ */
266
+ removeIn(t: Trx, orgId: string, connectorId: string, actorAccountId: string, actorTokenId?: string, reason?: string): Promise<void>;
267
+ /**
268
+ * 重新 listTools 并按漂移检测的规则比对写入(见 drift.ts):新增 / 定义变化的工具待复核(旧定义保留供对比),
269
+ * 消失的工具停用;连接器从未拍过快照时首个快照直接启用。
270
+ * 组织凭据型连接器用组织凭据,个人型用发起人自己的凭据(缺 → `credential.missing`)。OAuth 连接器收到 401 时
271
+ * 在刷新锁内刷新 token 后重试一次。`trigger: "first_connect"`:OAuth 授权码连接器首个成员连接后由连接流程调用
272
+ * (A16),只要求 `connectors.use`。审计 `connector.tools_refreshed`(变化的工具名,不含定义)。
273
+ */
274
+ refresh(orgId: string, connectorId: string, actorAccountId: string, actorTokenId?: string, opts?: {
275
+ trigger?: "first_connect";
276
+ }): Promise<{
277
+ connector: ConnectorDetail;
278
+ issues: ToolIssue[];
279
+ changes: DriftChanges;
280
+ }>;
281
+ /**
282
+ * 复核一个待复核的工具(`connectors.manage`,spec 7.3)。`approve`:采用待复核的新定义(若有)并启用,
283
+ * `reviewed_at` 记为现在;默认策略按新定义的注解重新推导,除非管理员设过(`policy_source = admin`)且来源没变。
284
+ * `reject`:停用,丢弃待复核的新定义、保留旧定义;从未复核过的工具被拒后 `reviewed_at` 仍为空(仍可再批准)。
285
+ * 工具不存在 → 404 `connector.tool_not_found`;不可复核(已复核且无待复核定义,或已消失)→ 409 `connector.tool_not_pending`;新定义不合规(如 key 不合法)不能通过 → `validation_failed`。
286
+ * 采用新定义即换了指纹:旧的「以后都允许」/「本会话都允许」授权按指纹比对自然失效(D8)。审计 `connector.tool_reviewed`。
287
+ */
288
+ reviewTool(orgId: string, connectorId: string, name: string, action: "approve" | "reject", actorAccountId: string, actorTokenId?: string): Promise<ConnectorDetail>;
289
+ /**
290
+ * 写凭据(组织凭据:`connectors.manage`;个人凭据:`connectors.use`,只写发起人自己的那一条)。
291
+ * 形状与归属不符 → `validation_failed`。审计只记类型与归属。
292
+ */
293
+ setCredential(orgId: string, connectorId: string, actorAccountId: string, ownership: "org" | "personal", value: unknown, actorTokenId?: string): Promise<void>;
294
+ /**
295
+ * 轮换 OAuth 客户端(Ruling A18,组织凭据接口,`connectors.manage`):值为 `{ clientId, clientSecret }`。
296
+ * 客户端凭据连接器先用新客户端取一次 token 验证(失败 → 502 `connector.connect_failed`,什么都不改),再替换客户端并以
297
+ * 新 token 替换缓存的组织 token;授权码连接器只限手填 client,只替换客户端(成员的 token 保留,之后刷新若得到
298
+ * invalid_client 会作废)。审计只记类型与归属。
299
+ */
300
+ private rotateOAuthClient;
301
+ /** 删除发起人自己的个人凭据(`connectors.use`);本来就没有也成功。 */
302
+ clearMyCredential(orgId: string, connectorId: string, actorAccountId: string, actorTokenId?: string): Promise<void>;
303
+ }