@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,69 @@
1
+ /**
2
+ * 模型看到的工具结果:调用进行中提供它的插件实例被撤销(停用 / 卸载 / 升级),排空时限到了仍未结束而被中止。
3
+ * 模型可见文案,一律英文。
4
+ */
5
+ export declare const PLUGIN_UNLOADED_TOOL_ERROR = "The plugin that provides this tool was disabled or upgraded while the call was running, so the call was aborted. Retry if the tool is still available.";
6
+ /** 调用落在已撤销(或正在撤销)的插件实例上。 */
7
+ export declare class ExtensionUnloadedError extends Error {
8
+ readonly plugin: string;
9
+ constructor(plugin: string);
10
+ }
11
+ /** {@link InflightTracker.enter} 的返回:合并后的信号与离开函数(幂等)。 */
12
+ export interface InflightEntry {
13
+ signal: AbortSignal;
14
+ leave(): void;
15
+ }
16
+ /**
17
+ * 一个插件实例的在途调用计数(本进程内、只跟踪本进程发起的调用)。撤销时:
18
+ * `close()` 停止接新的 → `drain(ms)` 等在途的结束(或到时限)→ `abort()` 中止余下的。
19
+ */
20
+ export declare class InflightTracker {
21
+ private readonly plugin;
22
+ private n;
23
+ private closed;
24
+ private readonly ac;
25
+ private idle;
26
+ constructor(plugin: string);
27
+ /** 进行中的调用数。 */
28
+ get size(): number;
29
+ /** Aborted when the instance is aborted (reason is an {@link ExtensionUnloadedError}). */
30
+ get signal(): AbortSignal;
31
+ /** Records the start of a call; throws {@link ExtensionUnloadedError} when closed. The returned signal aborts when the caller's signal or the instance aborts. */
32
+ enter(signal: AbortSignal): InflightEntry;
33
+ /**
34
+ * Tracks running `fn`, racing the instance abort: when the instance is aborted it ends right away
35
+ * with {@link ExtensionUnloadedError} (an `fn` that ignores the signal stays in the background, its
36
+ * result dropped).
37
+ */
38
+ run<T>(signal: AbortSignal, fn: (signal: AbortSignal) => Promise<T>): Promise<T>;
39
+ /** 停止接新的调用(幂等)。 */
40
+ close(): void;
41
+ /** 停止接新的,等在途调用全部结束,最多 `ms` 毫秒。 */
42
+ drain(ms: number): Promise<"drained" | "timeout">;
43
+ /** 中止余下的在途调用(幂等);此后 `enter` 抛错。 */
44
+ abort(): void;
45
+ /** {@link trackCalls} 的包装缓存(同一实现对象 → 同一个代理),随实例回收。 */
46
+ readonly tracked: WeakMap<object, unknown>;
47
+ }
48
+ /** {@link trackCalls} 的选项。 */
49
+ export interface TrackOptions {
50
+ /**
51
+ * 返回「会话」的方法名(如 connector 的 `open`):resolve 出的对象在 `close()` 之前一直计入在途,
52
+ * 会话上的其余方法与实例中止竞速。
53
+ */
54
+ sessions?: readonly string[];
55
+ }
56
+ /**
57
+ * Wraps a provider's extension point implementation (connector / sandbox / model-provider, resolved
58
+ * live by the kernel each time) in a proxy counted in the instance's in-flight tracker:
59
+ * - each method call `enter`s, and leaves when the Promise settles, the AsyncIterable finishes (or
60
+ * return / throw), or a session `close()`s;
61
+ * - an `AbortSignal` in the arguments (or the `signal` field of a plain object argument) becomes
62
+ * "caller signal ∪ instance abort", so the provider sees the abort when the instance aborts;
63
+ * - it races the instance abort: a call still running when the drain limit is reached ends with
64
+ * {@link ExtensionUnloadedError};
65
+ * - when the instance is already being revoked (tracker closed) a new call throws
66
+ * {@link ExtensionUnloadedError} synchronously.
67
+ * Non-function properties pass through. The same (tracker, impl) returns the same proxy.
68
+ */
69
+ export declare function trackCalls<T extends object>(impl: T, tracker: InflightTracker, opts?: TrackOptions): T;
@@ -0,0 +1,277 @@
1
+ /**
2
+ * 模型看到的工具结果:调用进行中提供它的插件实例被撤销(停用 / 卸载 / 升级),排空时限到了仍未结束而被中止。
3
+ * 模型可见文案,一律英文。
4
+ */
5
+ export const PLUGIN_UNLOADED_TOOL_ERROR = "The plugin that provides this tool was disabled or upgraded while the call was running, so the call was aborted. Retry if the tool is still available.";
6
+ /** 调用落在已撤销(或正在撤销)的插件实例上。 */
7
+ export class ExtensionUnloadedError extends Error {
8
+ plugin;
9
+ constructor(plugin) {
10
+ super(`plugin ${plugin} was unloaded`);
11
+ this.plugin = plugin;
12
+ this.name = "ExtensionUnloadedError";
13
+ }
14
+ }
15
+ /**
16
+ * 一个插件实例的在途调用计数(本进程内、只跟踪本进程发起的调用)。撤销时:
17
+ * `close()` 停止接新的 → `drain(ms)` 等在途的结束(或到时限)→ `abort()` 中止余下的。
18
+ */
19
+ export class InflightTracker {
20
+ plugin;
21
+ n = 0;
22
+ closed = false;
23
+ ac = new AbortController();
24
+ idle = [];
25
+ constructor(plugin) {
26
+ this.plugin = plugin;
27
+ }
28
+ /** 进行中的调用数。 */
29
+ get size() {
30
+ return this.n;
31
+ }
32
+ /** Aborted when the instance is aborted (reason is an {@link ExtensionUnloadedError}). */
33
+ get signal() {
34
+ return this.ac.signal;
35
+ }
36
+ /** Records the start of a call; throws {@link ExtensionUnloadedError} when closed. The returned signal aborts when the caller's signal or the instance aborts. */
37
+ enter(signal) {
38
+ if (this.closed)
39
+ throw new ExtensionUnloadedError(this.plugin);
40
+ this.n += 1;
41
+ let left = false;
42
+ return {
43
+ signal: AbortSignal.any([signal, this.ac.signal]),
44
+ leave: () => {
45
+ if (left)
46
+ return;
47
+ left = true;
48
+ this.n -= 1;
49
+ if (this.n === 0) {
50
+ const waiters = this.idle;
51
+ this.idle = [];
52
+ for (const w of waiters)
53
+ w();
54
+ }
55
+ },
56
+ };
57
+ }
58
+ /**
59
+ * Tracks running `fn`, racing the instance abort: when the instance is aborted it ends right away
60
+ * with {@link ExtensionUnloadedError} (an `fn` that ignores the signal stays in the background, its
61
+ * result dropped).
62
+ */
63
+ async run(signal, fn) {
64
+ const e = this.enter(signal);
65
+ let onAbort = () => { };
66
+ const aborted = new Promise((_, reject) => {
67
+ onAbort = () => reject(new ExtensionUnloadedError(this.plugin));
68
+ if (this.ac.signal.aborted)
69
+ onAbort();
70
+ else
71
+ this.ac.signal.addEventListener("abort", onAbort, { once: true });
72
+ });
73
+ aborted.catch(() => { });
74
+ try {
75
+ const p = (async () => fn(e.signal))();
76
+ p.catch(() => { });
77
+ return await Promise.race([p, aborted]);
78
+ }
79
+ finally {
80
+ this.ac.signal.removeEventListener("abort", onAbort);
81
+ e.leave();
82
+ }
83
+ }
84
+ /** 停止接新的调用(幂等)。 */
85
+ close() {
86
+ this.closed = true;
87
+ }
88
+ /** 停止接新的,等在途调用全部结束,最多 `ms` 毫秒。 */
89
+ async drain(ms) {
90
+ this.close();
91
+ if (this.n === 0)
92
+ return "drained";
93
+ let timer;
94
+ let resolveIdle = () => { };
95
+ const idle = new Promise((resolve) => {
96
+ resolveIdle = () => resolve("drained");
97
+ this.idle.push(resolveIdle);
98
+ });
99
+ try {
100
+ return await Promise.race([
101
+ idle,
102
+ new Promise((resolve) => {
103
+ timer = setTimeout(() => resolve("timeout"), Math.max(0, ms));
104
+ }),
105
+ ]);
106
+ }
107
+ finally {
108
+ clearTimeout(timer);
109
+ this.idle = this.idle.filter((w) => w !== resolveIdle);
110
+ }
111
+ }
112
+ /** 中止余下的在途调用(幂等);此后 `enter` 抛错。 */
113
+ abort() {
114
+ this.close();
115
+ if (!this.ac.signal.aborted)
116
+ this.ac.abort(new ExtensionUnloadedError(this.plugin));
117
+ }
118
+ /** {@link trackCalls} 的包装缓存(同一实现对象 → 同一个代理),随实例回收。 */
119
+ tracked = new WeakMap();
120
+ }
121
+ const isPromiseLike = (v) => typeof v?.then === "function";
122
+ const isAsyncIterable = (v) => typeof v?.[Symbol.asyncIterator] === "function";
123
+ const isPlainObject = (v) => typeof v === "object" && v !== null && Object.getPrototypeOf(v) === Object.prototype;
124
+ /**
125
+ * Wraps a provider's extension point implementation (connector / sandbox / model-provider, resolved
126
+ * live by the kernel each time) in a proxy counted in the instance's in-flight tracker:
127
+ * - each method call `enter`s, and leaves when the Promise settles, the AsyncIterable finishes (or
128
+ * return / throw), or a session `close()`s;
129
+ * - an `AbortSignal` in the arguments (or the `signal` field of a plain object argument) becomes
130
+ * "caller signal ∪ instance abort", so the provider sees the abort when the instance aborts;
131
+ * - it races the instance abort: a call still running when the drain limit is reached ends with
132
+ * {@link ExtensionUnloadedError};
133
+ * - when the instance is already being revoked (tracker closed) a new call throws
134
+ * {@link ExtensionUnloadedError} synchronously.
135
+ * Non-function properties pass through. The same (tracker, impl) returns the same proxy.
136
+ */
137
+ export function trackCalls(impl, tracker, opts = {}) {
138
+ const hit = tracker.tracked.get(impl);
139
+ if (hit)
140
+ return hit;
141
+ const sessions = new Set(opts.sessions ?? []);
142
+ const proxy = wrapMethods(impl, tracker, (prop, entry, result) => {
143
+ if (sessions.has(prop) && isPromiseLike(result)) {
144
+ return raceAbort(tracker, result).then((v) => {
145
+ if (typeof v === "object" && v !== null)
146
+ return wrapSession(v, tracker, entry);
147
+ entry.leave();
148
+ return v;
149
+ }, (e) => {
150
+ entry.leave();
151
+ throw e;
152
+ });
153
+ }
154
+ return settle(tracker, entry, result);
155
+ });
156
+ tracker.tracked.set(impl, proxy);
157
+ return proxy;
158
+ }
159
+ /** 方法代理:每次调用 enter → 替换信号 → 调原方法 → 交给 `after` 决定何时离开。 */
160
+ function wrapMethods(impl, tracker, after) {
161
+ const fns = new Map();
162
+ return new Proxy(impl, {
163
+ get(target, prop, receiver) {
164
+ const v = Reflect.get(target, prop, receiver);
165
+ if (typeof v !== "function")
166
+ return v;
167
+ let w = fns.get(prop);
168
+ if (!w) {
169
+ w = (...args) => {
170
+ const entry = tracker.enter(NEVER);
171
+ const call = args.map((a) => {
172
+ if (a instanceof AbortSignal)
173
+ return AbortSignal.any([a, tracker.signal]);
174
+ if (isPlainObject(a) && a.signal instanceof AbortSignal) {
175
+ return { ...a, signal: AbortSignal.any([a.signal, tracker.signal]) };
176
+ }
177
+ return a;
178
+ });
179
+ let r;
180
+ try {
181
+ r = v.apply(target, call);
182
+ }
183
+ catch (e) {
184
+ entry.leave();
185
+ throw e;
186
+ }
187
+ return after(String(prop), entry, r);
188
+ };
189
+ fns.set(prop, w);
190
+ }
191
+ return w;
192
+ },
193
+ });
194
+ }
195
+ /** 永不中止的信号({@link InflightTracker.enter} 需要一个调用方信号;这里的中止由参数里的信号负责)。 */
196
+ const NEVER = new AbortController().signal;
197
+ /** 普通结果:Promise settle 时离开(与中止竞速);AsyncIterable 迭代结束时离开;其余立即离开。 */
198
+ function settle(tracker, entry, r) {
199
+ if (isPromiseLike(r)) {
200
+ return raceAbort(tracker, r).finally(() => entry.leave());
201
+ }
202
+ if (isAsyncIterable(r))
203
+ return wrapIterable(r, tracker, entry);
204
+ entry.leave();
205
+ return r;
206
+ }
207
+ /** Races the instance abort: rejects with ExtensionUnloadedError on abort (the original Promise stays in the background, its result is dropped). */
208
+ function raceAbort(tracker, p) {
209
+ const own = Promise.resolve(p);
210
+ own.catch(() => { });
211
+ const signal = tracker.signal;
212
+ if (signal.aborted)
213
+ return Promise.reject(signal.reason);
214
+ let onAbort = () => { };
215
+ const aborted = new Promise((_, reject) => {
216
+ onAbort = () => reject(signal.reason);
217
+ signal.addEventListener("abort", onAbort, { once: true });
218
+ });
219
+ aborted.catch(() => { });
220
+ return Promise.race([own, aborted]).finally(() => signal.removeEventListener("abort", onAbort));
221
+ }
222
+ /** 流:每次 next 与中止竞速;done / return / throw / 出错时离开。 */
223
+ function wrapIterable(src, tracker, entry) {
224
+ return {
225
+ [Symbol.asyncIterator]() {
226
+ const it = src[Symbol.asyncIterator]();
227
+ return {
228
+ async next() {
229
+ try {
230
+ const r = await raceAbort(tracker, it.next());
231
+ if (r.done)
232
+ entry.leave();
233
+ return r;
234
+ }
235
+ catch (e) {
236
+ entry.leave();
237
+ throw e;
238
+ }
239
+ },
240
+ async return(value) {
241
+ entry.leave();
242
+ return it.return ? it.return(value) : { done: true, value };
243
+ },
244
+ async throw(err) {
245
+ entry.leave();
246
+ if (it.throw)
247
+ return it.throw(err);
248
+ throw err;
249
+ },
250
+ };
251
+ },
252
+ };
253
+ }
254
+ /** 会话:`close()` 时离开(幂等);其余方法与实例中止竞速(整个会话已计一次在途)。 */
255
+ function wrapSession(session, tracker, entry) {
256
+ return new Proxy(session, {
257
+ get(target, prop, receiver) {
258
+ const v = Reflect.get(target, prop, receiver);
259
+ if (typeof v !== "function")
260
+ return v;
261
+ if (prop === "close") {
262
+ return async (...args) => {
263
+ try {
264
+ return await v.apply(target, args);
265
+ }
266
+ finally {
267
+ entry.leave();
268
+ }
269
+ };
270
+ }
271
+ return (...args) => {
272
+ const r = v.apply(target, args);
273
+ return isPromiseLike(r) ? raceAbort(tracker, r) : r;
274
+ };
275
+ },
276
+ });
277
+ }
@@ -0,0 +1,166 @@
1
+ import { type PluginExtensionSection } from "@capybara-hq/plugin-sdk";
2
+ import type { KernelConfig } from "../config/schema.js";
3
+ import type { KernelDb } from "../db/kernel-schema.js";
4
+ import { type ProvenanceResult } from "../packages/provenance.js";
5
+ import type { ExtensionBlobs } from "./blobs.js";
6
+ import { migrationWarnings, type PackageWarning, type PermissionGroup, type PermissionItem } from "./permission-view.js";
7
+ export { migrationWarnings, type PackageWarning };
8
+ import type { ExtensionSource } from "./sources.js";
9
+ /** 上传 / 拉取一个包后的审阅结果(权限按静态清单与迁移 SQL 计算,不执行插件代码)。 */
10
+ export interface PackageReview {
11
+ sha256: string;
12
+ name: string;
13
+ version: string;
14
+ permissions: PermissionGroup[];
15
+ /** 相对该插件当前权限快照多出 / 少了的权限键(没有快照时全部算新增)。 */
16
+ added: string[];
17
+ /** `added` 逐项的敏感标记与原因(界面据此高亮,不自己判定)。 */
18
+ addedItems: PermissionItem[];
19
+ removed: string[];
20
+ /** 见 {@link reviewHash}:批准时回传,审阅后权限变了就拒绝。 */
21
+ reviewHash: string;
22
+ /**
23
+ * 审阅警告(敏感,界面高亮;不拒绝):插件迁移只该做扩展,包里的破坏性语句(删表 / 删列、TRUNCATE、DELETE、
24
+ * RENAME、改列类型)逐条列出——新旧版本会在不同副本上同时运行,破坏性迁移可能让旧版本出错或丢数据。
25
+ */
26
+ warnings: PackageWarning[];
27
+ }
28
+ /** One install record (`extension_installs` plus the package's npm name). */
29
+ export interface ExtensionInstallRow {
30
+ name: string;
31
+ sha256: string;
32
+ version: string;
33
+ source: "npm" | "file" | "catalog" | "bootstrap";
34
+ packageName: string;
35
+ desiredState: "enabled" | "disabled";
36
+ /** A required bootstrap plugin (enabled in every org; cannot be disabled or uninstalled). */
37
+ required: boolean;
38
+ migratedSha: string | null;
39
+ installedBy: string | null;
40
+ installedAt: string;
41
+ updatedBy: string | null;
42
+ updatedAt: string;
43
+ }
44
+ /** 期望启用的安装记录(各副本据此同步并加载)。 */
45
+ export interface DesiredExtension {
46
+ name: string;
47
+ sha256: string;
48
+ version: string;
49
+ source: "npm" | "file" | "catalog" | "bootstrap";
50
+ migratedSha: string | null;
51
+ /**
52
+ * Where the package bytes are kept. At startup the host loads the packages kept in PG first: the
53
+ * object store serving the others may itself be one of them (a bootstrap plugin).
54
+ */
55
+ blobStore?: "object" | "pg";
56
+ /**
57
+ * The reviewed extension section of the plugin (the migrations path is taken only from here). A
58
+ * row stored before 0.1.0 holds the old `capybara` section instead; its package is in the old
59
+ * format and fails to sync with `extension.legacy_format`.
60
+ */
61
+ section: PluginExtensionSection;
62
+ }
63
+ /**
64
+ * Where a package comes from (F-L): catalog / marketplace / app imports all record `catalog`, with
65
+ * `ref` locating the item or the marketplace entry; the bootstrap step records `bootstrap`
66
+ * (`ref` `bootstrap:<name>@<version>`).
67
+ */
68
+ export interface IngestSource {
69
+ source: "npm" | "file" | "catalog" | "bootstrap";
70
+ ref: string;
71
+ }
72
+ export interface ExtensionInstallsDeps {
73
+ db: KernelDb;
74
+ blobs: ExtensionBlobs;
75
+ config: () => KernelConfig;
76
+ /** 配置声明的插件名 → 来源(安装包不能与它们重名,C15)。 */
77
+ declared: () => ReadonlyMap<string, ExtensionSource>;
78
+ /** npm 下载的总时限(毫秒),默认 120s。 */
79
+ npmTimeoutMs?: number;
80
+ }
81
+ /** 插件安装记录与包的导入(上传文件、npm)。本身无状态,多副本共用。 */
82
+ export declare class ExtensionInstalls {
83
+ private readonly d;
84
+ constructor(d: ExtensionInstallsDeps);
85
+ /**
86
+ * Validates and stores one package and returns the review; audits `extension.package_uploaded`.
87
+ * Only stores: no install, no desired state change (T14).
88
+ * - Over `packages.maxBytes` -> `extension.package_too_large`; invalid package ->
89
+ * `extension.package_invalid` (details list each problem);
90
+ * - extension name equal to a config-declared one -> `extension.config_declared`;
91
+ * - an install record of the same name comes from another npm package -> `extension.name_conflict`
92
+ * (a new version of the same package is an upgrade, handled elsewhere).
93
+ * `actor` null means the CLI (no enterprise admin re-check, audit without an actor).
94
+ */
95
+ ingest(actor: string | null, bytes: Uint8Array, src: IngestSource, opts?: {
96
+ actorTokenId?: string;
97
+ store?: "object" | "pg";
98
+ expectPackageName?: string;
99
+ }): Promise<PackageReview>;
100
+ /** 上传的 tgz(来源 `file`)。 */
101
+ ingestFile(actor: string | null, bytes: Uint8Array, opts?: {
102
+ actorTokenId?: string;
103
+ store?: "object" | "pg";
104
+ }): Promise<PackageReview>;
105
+ /**
106
+ * Fetches one package from the configured npm registry (verified by `dist.integrity`, see
107
+ * packages/npm.ts), downloading only, not storing: download failure -> `packages.npm_failed` (502);
108
+ * over `packages.maxBytes` -> `extension.package_too_large`. Enterprise catalog npm imports use it
109
+ * too.
110
+ */
111
+ fetchNpm(input: {
112
+ package: string;
113
+ version?: string;
114
+ }, signal?: AbortSignal): Promise<{
115
+ bytes: Uint8Array;
116
+ version: string;
117
+ integrity: string;
118
+ }>;
119
+ /**
120
+ * Downloads the package of a marketplace npm source (T24, C26): from `tarball` when given (https
121
+ * required, `marketplaces.allowInsecureLoopback` for tests only; no registry metadata request;
122
+ * `packages.npmToken` is sent only when the tarball has the registry's origin), otherwise from the
123
+ * configured npm registry; always verified against the marketplace's sha512, never npm metadata.
124
+ * Mismatch -> 502 `marketplace.integrity_mismatch` (with prefixes of the expected and actual sha512);
125
+ * download failure -> 502 `marketplace.fetch_failed`; over `packages.maxBytes` ->
126
+ * `extension.package_too_large`.
127
+ */
128
+ fetchMarketplacePackage(input: {
129
+ package: string;
130
+ version: string;
131
+ integrity: string;
132
+ tarball?: string;
133
+ }, signal?: AbortSignal): Promise<{
134
+ bytes: Uint8Array;
135
+ version: string;
136
+ integrity: string;
137
+ }>;
138
+ /**
139
+ * The npm provenance of `name@version` from the configured registry (spec §5.5; display only,
140
+ * see packages/provenance.ts): bounded to {@link PROVENANCE_TIMEOUT_MS} and never throws, a
141
+ * failure is `{ checked: false, reason }`. `integrity` ties the statement to the tarball.
142
+ */
143
+ fetchProvenance(input: {
144
+ package: string;
145
+ version: string;
146
+ integrity?: string;
147
+ }, signal?: AbortSignal): Promise<ProvenanceResult>;
148
+ private fetchVerified;
149
+ /**
150
+ * Fetches from the configured npm registry (source `npm`, `ref` is `<package>@<version>`). Download
151
+ * failure -> `packages.npm_failed` (502); over the size limit -> `extension.package_too_large`; the
152
+ * npm name in the package differs from the requested one -> `extension.package_invalid`.
153
+ */
154
+ ingestNpm(actor: string | null, input: {
155
+ package: string;
156
+ version?: string;
157
+ }, opts?: {
158
+ actorTokenId?: string;
159
+ store?: "object" | "pg";
160
+ signal?: AbortSignal;
161
+ }): Promise<PackageReview>;
162
+ /** 全部安装记录(按名字)。 */
163
+ list(): Promise<ExtensionInstallRow[]>;
164
+ /** Install records desired enabled, with their reviewed extension sections (by name). */
165
+ desired(): Promise<DesiredExtension[]>;
166
+ }