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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +47 -16
  3. package/dist/admin/admin.controller.js +44 -19
  4. package/dist/admin/extensions.controller.d.ts +24 -3
  5. package/dist/admin/extensions.controller.js +48 -8
  6. package/dist/admin/setup-lock.d.ts +1 -1
  7. package/dist/admin/setup-lock.js +1 -1
  8. package/dist/admin/setup.controller.d.ts +1 -1
  9. package/dist/admin/setup.controller.js +1 -1
  10. package/dist/admin/setup.service.d.ts +4 -4
  11. package/dist/admin/setup.service.js +8 -8
  12. package/dist/agents/agent-lookup.d.ts +19 -0
  13. package/dist/agents/agent-lookup.js +21 -0
  14. package/dist/agents/agent-profile.service.d.ts +29 -0
  15. package/dist/agents/agent-profile.service.js +117 -0
  16. package/dist/agents/agents.controller.d.ts +168 -3
  17. package/dist/agents/agents.controller.js +201 -12
  18. package/dist/agents/agents.module.d.ts +4 -1
  19. package/dist/agents/agents.module.js +36 -6
  20. package/dist/agents/agents.service.d.ts +64 -27
  21. package/dist/agents/agents.service.js +199 -74
  22. package/dist/agents/definition.d.ts +53 -0
  23. package/dist/agents/definition.js +55 -0
  24. package/dist/agents/from-template.d.ts +106 -0
  25. package/dist/agents/from-template.js +649 -0
  26. package/dist/agents/from-template.service.d.ts +60 -0
  27. package/dist/agents/from-template.service.js +161 -0
  28. package/dist/agents/instruction-files.d.ts +60 -0
  29. package/dist/agents/instruction-files.js +111 -0
  30. package/dist/agents/models.controller.d.ts +9 -3
  31. package/dist/agents/models.controller.js +19 -4
  32. package/dist/agents/org-templates.d.ts +176 -0
  33. package/dist/agents/org-templates.js +827 -0
  34. package/dist/agents/pending-connector-requests.d.ts +77 -0
  35. package/dist/agents/pending-connector-requests.js +215 -0
  36. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  37. package/dist/agents/pending-connectors.controller.js +91 -0
  38. package/dist/agents/pending-connectors.service.d.ts +62 -0
  39. package/dist/agents/pending-connectors.service.js +282 -0
  40. package/dist/agents/profile.d.ts +96 -0
  41. package/dist/agents/profile.js +51 -0
  42. package/dist/agents/readiness.controller.d.ts +26 -0
  43. package/dist/agents/readiness.controller.js +56 -0
  44. package/dist/agents/templates.controller.d.ts +86 -5
  45. package/dist/agents/templates.controller.js +171 -7
  46. package/dist/agents/templates.d.ts +127 -23
  47. package/dist/agents/templates.js +476 -53
  48. package/dist/background/background.controller.d.ts +38 -0
  49. package/dist/background/background.controller.js +87 -0
  50. package/dist/background/background.module.d.ts +10 -0
  51. package/dist/background/background.module.js +39 -0
  52. package/dist/background/finish.d.ts +44 -0
  53. package/dist/background/finish.js +94 -0
  54. package/dist/background/launch-lock.d.ts +15 -0
  55. package/dist/background/launch-lock.js +40 -0
  56. package/dist/background/launch.d.ts +36 -0
  57. package/dist/background/launch.js +70 -0
  58. package/dist/background/poll.job.d.ts +56 -0
  59. package/dist/background/poll.job.js +190 -0
  60. package/dist/background/render.d.ts +23 -0
  61. package/dist/background/render.js +48 -0
  62. package/dist/background/session.d.ts +48 -0
  63. package/dist/background/session.js +79 -0
  64. package/dist/background/status.d.ts +35 -0
  65. package/dist/background/status.js +57 -0
  66. package/dist/background/stop.d.ts +68 -0
  67. package/dist/background/stop.js +243 -0
  68. package/dist/background/store.d.ts +162 -0
  69. package/dist/background/store.js +357 -0
  70. package/dist/background/store.module.d.ts +6 -0
  71. package/dist/background/store.module.js +22 -0
  72. package/dist/background/tasks.service.d.ts +77 -0
  73. package/dist/background/tasks.service.js +211 -0
  74. package/dist/background/wake-rules.d.ts +66 -0
  75. package/dist/background/wake-rules.js +113 -0
  76. package/dist/background/wake.d.ts +30 -0
  77. package/dist/background/wake.js +63 -0
  78. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  79. package/dist/catalog/admin-catalog.controller.js +213 -42
  80. package/dist/catalog/catalog-content.d.ts +58 -32
  81. package/dist/catalog/catalog-content.js +34 -8
  82. package/dist/catalog/catalog-import.module.d.ts +7 -0
  83. package/dist/catalog/catalog-import.module.js +60 -0
  84. package/dist/catalog/catalog-items.d.ts +111 -7
  85. package/dist/catalog/catalog-items.js +279 -13
  86. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  87. package/dist/catalog/catalog-scope.service.js +1116 -0
  88. package/dist/catalog/catalog.module.d.ts +7 -9
  89. package/dist/catalog/catalog.module.js +41 -31
  90. package/dist/catalog/catalog.service.d.ts +101 -29
  91. package/dist/catalog/catalog.service.js +104 -106
  92. package/dist/catalog/claude/agents.js +2 -0
  93. package/dist/catalog/cli.d.ts +11 -1
  94. package/dist/catalog/cli.js +26 -1
  95. package/dist/catalog/component-promotion.d.ts +96 -0
  96. package/dist/catalog/component-promotion.js +395 -0
  97. package/dist/catalog/component-scope.controller.d.ts +152 -0
  98. package/dist/catalog/component-scope.controller.js +287 -0
  99. package/dist/catalog/component-scope.service.d.ts +303 -0
  100. package/dist/catalog/component-scope.service.js +936 -0
  101. package/dist/catalog/component-state.d.ts +174 -0
  102. package/dist/catalog/component-state.js +437 -0
  103. package/dist/catalog/job-ids.d.ts +30 -0
  104. package/dist/catalog/job-ids.js +25 -0
  105. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  106. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  107. package/dist/catalog/marketplaces.controller.js +56 -7
  108. package/dist/catalog/marketplaces.service.d.ts +54 -14
  109. package/dist/catalog/marketplaces.service.js +71 -22
  110. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  111. package/dist/catalog/org-catalog.controller.js +181 -65
  112. package/dist/catalog/org-catalog.service.d.ts +65 -33
  113. package/dist/catalog/org-catalog.service.js +324 -157
  114. package/dist/catalog/org-extension-switch.d.ts +41 -0
  115. package/dist/catalog/org-extension-switch.js +115 -0
  116. package/dist/catalog/org-extension.controller.d.ts +119 -0
  117. package/dist/catalog/org-extension.controller.js +266 -0
  118. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  119. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  120. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  121. package/dist/catalog/org-plugin-uploads.js +116 -0
  122. package/dist/catalog/owned-items.d.ts +184 -0
  123. package/dist/catalog/owned-items.js +789 -0
  124. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  125. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  126. package/dist/catalog/ownership.d.ts +172 -0
  127. package/dist/catalog/ownership.js +326 -0
  128. package/dist/catalog/platform-components.d.ts +221 -0
  129. package/dist/catalog/platform-components.js +761 -0
  130. package/dist/catalog/platform-migration.d.ts +115 -0
  131. package/dist/catalog/platform-migration.js +582 -0
  132. package/dist/catalog/plugin-import.d.ts +178 -34
  133. package/dist/catalog/plugin-import.js +623 -83
  134. package/dist/catalog/plugin-install.d.ts +185 -41
  135. package/dist/catalog/plugin-install.js +758 -126
  136. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  137. package/dist/catalog/plugin-upgrade.js +1148 -1137
  138. package/dist/catalog/request-rules.d.ts +65 -0
  139. package/dist/catalog/request-rules.js +217 -0
  140. package/dist/catalog/requests.service.d.ts +193 -118
  141. package/dist/catalog/requests.service.js +526 -343
  142. package/dist/catalog/reserved-names.d.ts +8 -0
  143. package/dist/catalog/reserved-names.js +42 -0
  144. package/dist/catalog/scope-orgs.d.ts +21 -0
  145. package/dist/catalog/scope-orgs.js +67 -0
  146. package/dist/catalog/scope-state.d.ts +35 -0
  147. package/dist/catalog/scope-state.js +87 -0
  148. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  149. package/dist/catalog/scope-sync-workers.js +29 -0
  150. package/dist/catalog/scope-sync.d.ts +176 -0
  151. package/dist/catalog/scope-sync.js +576 -0
  152. package/dist/catalog/scope.d.ts +42 -0
  153. package/dist/catalog/scope.js +42 -0
  154. package/dist/catalog/unshare.d.ts +22 -0
  155. package/dist/catalog/unshare.js +118 -0
  156. package/dist/channels/actions.js +1 -0
  157. package/dist/channels/cards.js +21 -3
  158. package/dist/channels/channels.module.js +2 -0
  159. package/dist/channels/connections.service.d.ts +16 -1
  160. package/dist/channels/connections.service.js +38 -4
  161. package/dist/channels/inbound.d.ts +9 -1
  162. package/dist/channels/inbound.js +67 -5
  163. package/dist/channels/phrases.d.ts +35 -0
  164. package/dist/channels/phrases.js +29 -0
  165. package/dist/channels/threads.d.ts +5 -0
  166. package/dist/channels/threads.js +8 -0
  167. package/dist/config/docs.js +3 -1
  168. package/dist/config/schema.d.ts +24 -2
  169. package/dist/config/schema.js +145 -19
  170. package/dist/conversations/access.d.ts +6 -4
  171. package/dist/conversations/access.js +29 -5
  172. package/dist/conversations/agent-tree.d.ts +46 -0
  173. package/dist/conversations/agent-tree.js +92 -0
  174. package/dist/conversations/attachments.service.d.ts +30 -0
  175. package/dist/conversations/attachments.service.js +130 -5
  176. package/dist/conversations/conversations.controller.d.ts +79 -23
  177. package/dist/conversations/conversations.controller.js +141 -50
  178. package/dist/conversations/conversations.module.d.ts +1 -1
  179. package/dist/conversations/conversations.module.js +10 -7
  180. package/dist/conversations/conversations.service.d.ts +108 -9
  181. package/dist/conversations/conversations.service.js +237 -30
  182. package/dist/conversations/environment-status.d.ts +24 -0
  183. package/dist/conversations/environment-status.js +71 -0
  184. package/dist/conversations/event-log.d.ts +21 -6
  185. package/dist/conversations/event-log.js +70 -1
  186. package/dist/conversations/events.d.ts +140 -0
  187. package/dist/conversations/events.js +142 -13
  188. package/dist/conversations/queue.d.ts +3 -1
  189. package/dist/conversations/queue.js +13 -2
  190. package/dist/conversations/queue.service.d.ts +1 -1
  191. package/dist/conversations/queue.service.js +8 -1
  192. package/dist/conversations/titles.d.ts +12 -3
  193. package/dist/conversations/titles.js +36 -8
  194. package/dist/conversations/tree.d.ts +17 -0
  195. package/dist/conversations/tree.js +42 -0
  196. package/dist/ctx/create-ctx.d.ts +5 -0
  197. package/dist/ctx/create-ctx.js +15 -5
  198. package/dist/db/kernel-schema.d.ts +420 -20
  199. package/dist/db/pool.d.ts +5 -0
  200. package/dist/db/pool.js +3 -0
  201. package/dist/environments/access.d.ts +41 -0
  202. package/dist/environments/access.js +77 -0
  203. package/dist/environments/conversation-environments.d.ts +61 -0
  204. package/dist/environments/conversation-environments.js +170 -0
  205. package/dist/environments/dto.d.ts +25 -0
  206. package/dist/environments/dto.js +12 -0
  207. package/dist/environments/environments.controller.d.ts +33 -0
  208. package/dist/environments/environments.controller.js +110 -0
  209. package/dist/environments/environments.module.d.ts +8 -0
  210. package/dist/environments/environments.module.js +27 -0
  211. package/dist/environments/environments.service.d.ts +153 -0
  212. package/dist/environments/environments.service.js +541 -0
  213. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  214. package/dist/environments/legacy-cleanup.job.js +141 -0
  215. package/dist/errors.d.ts +90 -2
  216. package/dist/errors.js +90 -2
  217. package/dist/evals/reconstruct.d.ts +18 -9
  218. package/dist/evals/reconstruct.js +26 -7
  219. package/dist/evals/run-replay.d.ts +7 -2
  220. package/dist/evals/run-replay.js +42 -7
  221. package/dist/evals/step-replay.d.ts +2 -5
  222. package/dist/evals/step-replay.js +13 -7
  223. package/dist/evals/trajectory.js +1 -1
  224. package/dist/evals/trajectory.service.d.ts +8 -3
  225. package/dist/evals/trajectory.service.js +26 -14
  226. package/dist/evals/worker.d.ts +5 -5
  227. package/dist/evals/worker.js +9 -3
  228. package/dist/extensions/admin-ops.d.ts +36 -10
  229. package/dist/extensions/admin-ops.js +67 -42
  230. package/dist/extensions/admin-view.d.ts +39 -10
  231. package/dist/extensions/admin-view.js +111 -20
  232. package/dist/extensions/blobs.js +1 -0
  233. package/dist/extensions/bootstrap.d.ts +17 -4
  234. package/dist/extensions/bootstrap.js +70 -9
  235. package/dist/extensions/cli.d.ts +12 -0
  236. package/dist/extensions/cli.js +11 -2
  237. package/dist/extensions/config-issues.d.ts +13 -1
  238. package/dist/extensions/config-issues.js +22 -5
  239. package/dist/extensions/config-json-schema.d.ts +43 -7
  240. package/dist/extensions/config-json-schema.js +124 -58
  241. package/dist/extensions/deployment-config-store.d.ts +6 -0
  242. package/dist/extensions/deployment-config.d.ts +78 -8
  243. package/dist/extensions/deployment-config.js +172 -34
  244. package/dist/extensions/display-name.d.ts +22 -0
  245. package/dist/extensions/display-name.js +77 -0
  246. package/dist/extensions/effective-config.d.ts +127 -0
  247. package/dist/extensions/effective-config.js +368 -0
  248. package/dist/extensions/extensions.module.js +14 -2
  249. package/dist/extensions/hooks.d.ts +37 -4
  250. package/dist/extensions/hooks.js +82 -16
  251. package/dist/extensions/host.d.ts +45 -2
  252. package/dist/extensions/host.js +112 -16
  253. package/dist/extensions/installs.d.ts +20 -8
  254. package/dist/extensions/installs.js +37 -15
  255. package/dist/extensions/org-config.d.ts +81 -6
  256. package/dist/extensions/org-config.js +195 -44
  257. package/dist/extensions/org-levels.d.ts +37 -0
  258. package/dist/extensions/org-levels.js +71 -0
  259. package/dist/extensions/org-overrides.d.ts +151 -0
  260. package/dist/extensions/org-overrides.js +524 -0
  261. package/dist/extensions/package.d.ts +14 -1
  262. package/dist/extensions/package.js +51 -2
  263. package/dist/extensions/permission-view.d.ts +19 -4
  264. package/dist/extensions/permission-view.js +4 -4
  265. package/dist/extensions/plugin-items.d.ts +21 -0
  266. package/dist/extensions/plugin-items.js +42 -0
  267. package/dist/extensions/point-defaults.controller.d.ts +34 -0
  268. package/dist/extensions/point-defaults.controller.js +71 -0
  269. package/dist/extensions/point-defaults.d.ts +71 -0
  270. package/dist/extensions/point-defaults.js +234 -0
  271. package/dist/extensions/registry.d.ts +1 -1
  272. package/dist/extensions/registry.js +2 -0
  273. package/dist/extensions/resolve.d.ts +5 -1
  274. package/dist/extensions/resolve.js +15 -2
  275. package/dist/files/previewers.d.ts +8 -1
  276. package/dist/files/previewers.js +35 -6
  277. package/dist/http/api.module.js +31 -3
  278. package/dist/http/app.d.ts +11 -2
  279. package/dist/http/app.js +31 -5
  280. package/dist/http/nest-logger.d.ts +6 -5
  281. package/dist/http/nest-logger.js +24 -10
  282. package/dist/identity/accounts.d.ts +29 -29
  283. package/dist/identity/accounts.js +47 -47
  284. package/dist/identity/audit.d.ts +2 -1
  285. package/dist/identity/auth.controller.js +9 -5
  286. package/dist/identity/auth.guard.d.ts +13 -5
  287. package/dist/identity/auth.guard.js +26 -9
  288. package/dist/identity/cookies.d.ts +20 -5
  289. package/dist/identity/cookies.js +44 -6
  290. package/dist/identity/identity.module.d.ts +1 -1
  291. package/dist/identity/identity.module.js +4 -4
  292. package/dist/identity/me.controller.d.ts +5 -1
  293. package/dist/identity/me.controller.js +12 -3
  294. package/dist/identity/principal.d.ts +3 -3
  295. package/dist/identity/principal.js +3 -3
  296. package/dist/identity/sessions.d.ts +12 -0
  297. package/dist/identity/sessions.js +45 -0
  298. package/dist/identity/settings.d.ts +22 -11
  299. package/dist/identity/settings.js +53 -18
  300. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  301. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  302. package/dist/inbox/inbox.module.d.ts +4 -1
  303. package/dist/inbox/inbox.module.js +7 -3
  304. package/dist/inbox/inbox.service.d.ts +62 -3
  305. package/dist/inbox/inbox.service.js +74 -4
  306. package/dist/inbox/org-notices.d.ts +63 -0
  307. package/dist/inbox/org-notices.js +91 -0
  308. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  309. package/dist/inbox/platform-inbox.controller.js +58 -0
  310. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  311. package/dist/inbox/platform-inbox.service.js +263 -0
  312. package/dist/inbox/platform-notices.d.ts +19 -0
  313. package/dist/inbox/platform-notices.js +9 -0
  314. package/dist/index.d.ts +2 -2
  315. package/dist/index.js +1 -1
  316. package/dist/infra/cli/kernel-cli.module.js +9 -1
  317. package/dist/infra/config/kernel-config.service.js +27 -1
  318. package/dist/infra/database/database.module.js +1 -0
  319. package/dist/infra/database/xact-lock.d.ts +1 -1
  320. package/dist/infra/database/xact-lock.js +1 -1
  321. package/dist/infra/events/kernel-events.d.ts +19 -2
  322. package/dist/infra/lifecycle/process-guards.js +4 -0
  323. package/dist/infra/logging/logging.module.d.ts +4 -2
  324. package/dist/infra/logging/logging.module.js +24 -6
  325. package/dist/infra/queue/add-job-once.d.ts +14 -0
  326. package/dist/infra/queue/add-job-once.js +16 -0
  327. package/dist/infra/queue/redis-connection.d.ts +6 -0
  328. package/dist/infra/queue/redis-connection.js +7 -0
  329. package/dist/infra/redis/redis.module.js +6 -2
  330. package/dist/infra/tokens.d.ts +6 -1
  331. package/dist/infra/tokens.js +6 -1
  332. package/dist/kernel.module.js +6 -0
  333. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  334. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  335. package/dist/log.d.ts +13 -1
  336. package/dist/log.js +93 -17
  337. package/dist/models/prices.d.ts +5 -5
  338. package/dist/models/prices.js +4 -4
  339. package/dist/models/purposes.controller.d.ts +6 -4
  340. package/dist/models/purposes.controller.js +13 -7
  341. package/dist/models/purposes.d.ts +43 -9
  342. package/dist/models/purposes.js +48 -18
  343. package/dist/orgs/directory-sync.d.ts +14 -5
  344. package/dist/orgs/directory-sync.js +41 -17
  345. package/dist/orgs/offboarding.d.ts +12 -8
  346. package/dist/orgs/offboarding.js +54 -33
  347. package/dist/orgs/org-lock.d.ts +5 -0
  348. package/dist/orgs/org-lock.js +13 -0
  349. package/dist/orgs/org.guard.d.ts +10 -0
  350. package/dist/orgs/org.guard.js +43 -32
  351. package/dist/orgs/orgs.module.js +3 -0
  352. package/dist/orgs/orgs.service.d.ts +20 -7
  353. package/dist/orgs/orgs.service.js +32 -12
  354. package/dist/orgs/roles.d.ts +1 -1
  355. package/dist/orgs/roles.js +5 -1
  356. package/dist/orgs/settings.controller.d.ts +1 -1
  357. package/dist/orgs/settings.service.d.ts +20 -3
  358. package/dist/orgs/settings.service.js +19 -4
  359. package/dist/overrides.d.ts +3 -0
  360. package/dist/overrides.js +2 -0
  361. package/dist/platform/actor.d.ts +48 -0
  362. package/dist/platform/actor.js +100 -0
  363. package/dist/platform/agent-docs.d.ts +18 -0
  364. package/dist/platform/agent-docs.js +59 -0
  365. package/dist/platform/availability.d.ts +14 -0
  366. package/dist/platform/availability.js +43 -0
  367. package/dist/platform/errors.d.ts +11 -0
  368. package/dist/platform/errors.js +26 -0
  369. package/dist/platform/exclusions.d.ts +12 -0
  370. package/dist/platform/exclusions.js +1387 -0
  371. package/dist/platform/method.d.ts +6 -0
  372. package/dist/platform/method.js +15 -0
  373. package/dist/platform/operation.d.ts +92 -0
  374. package/dist/platform/operation.js +35 -0
  375. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  376. package/dist/platform/ops/agent-templates.ops.js +92 -0
  377. package/dist/platform/ops/agents.ops.d.ts +19 -0
  378. package/dist/platform/ops/agents.ops.js +294 -0
  379. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  380. package/dist/platform/ops/connectors.ops.js +126 -0
  381. package/dist/platform/ops/errors.d.ts +11 -0
  382. package/dist/platform/ops/errors.js +22 -0
  383. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  384. package/dist/platform/ops/extensions.ops.js +116 -0
  385. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  386. package/dist/platform/ops/marketplaces.ops.js +157 -0
  387. package/dist/platform/ops/paging.d.ts +14 -0
  388. package/dist/platform/ops/paging.js +20 -0
  389. package/dist/platform/ops/platform.ops.d.ts +23 -0
  390. package/dist/platform/ops/platform.ops.js +158 -0
  391. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  392. package/dist/platform/ops/plugins.ops.js +377 -0
  393. package/dist/platform/ops/requests.ops.d.ts +14 -0
  394. package/dist/platform/ops/requests.ops.js +153 -0
  395. package/dist/platform/ops/role.d.ts +4 -0
  396. package/dist/platform/ops/role.js +10 -0
  397. package/dist/platform/ops/skills.ops.d.ts +13 -0
  398. package/dist/platform/ops/skills.ops.js +98 -0
  399. package/dist/platform/ops/summary.d.ts +10 -0
  400. package/dist/platform/ops/summary.js +18 -0
  401. package/dist/platform/platform-ops.module.d.ts +7 -0
  402. package/dist/platform/platform-ops.module.js +55 -0
  403. package/dist/platform/platform.module.d.ts +8 -0
  404. package/dist/platform/platform.module.js +25 -0
  405. package/dist/platform/redact-orgs.d.ts +7 -0
  406. package/dist/platform/redact-orgs.js +52 -0
  407. package/dist/platform/registry.d.ts +30 -0
  408. package/dist/platform/registry.js +111 -0
  409. package/dist/roles/worker-role.d.ts +6 -4
  410. package/dist/roles/worker-role.js +14 -7
  411. package/dist/roles/worker.module.d.ts +1 -1
  412. package/dist/roles/worker.module.js +15 -1
  413. package/dist/runtime/context/build.d.ts +11 -7
  414. package/dist/runtime/context/build.js +46 -19
  415. package/dist/runtime/context/claude-tools.d.ts +3 -1
  416. package/dist/runtime/context/claude-tools.js +8 -6
  417. package/dist/runtime/context/compaction.js +13 -0
  418. package/dist/runtime/context/reminders.d.ts +2 -0
  419. package/dist/runtime/context/reminders.js +2 -0
  420. package/dist/runtime/context/skills.js +9 -2
  421. package/dist/runtime/context/tool-changes.d.ts +27 -0
  422. package/dist/runtime/context/tool-changes.js +60 -0
  423. package/dist/runtime/hook-calls.js +2 -0
  424. package/dist/runtime/langgraph-loop.d.ts +3 -1
  425. package/dist/runtime/langgraph-loop.js +36 -17
  426. package/dist/runtime/loop.d.ts +34 -5
  427. package/dist/runtime/maintenance.d.ts +9 -4
  428. package/dist/runtime/maintenance.js +35 -8
  429. package/dist/runtime/model-call.d.ts +46 -8
  430. package/dist/runtime/model-call.js +72 -21
  431. package/dist/runtime/providers.d.ts +6 -0
  432. package/dist/runtime/providers.js +8 -0
  433. package/dist/runtime/run-control.d.ts +11 -1
  434. package/dist/runtime/run-control.js +12 -0
  435. package/dist/runtime/run-drafts.d.ts +85 -0
  436. package/dist/runtime/run-drafts.js +230 -0
  437. package/dist/runtime/run-jobs.d.ts +3 -5
  438. package/dist/runtime/run-jobs.js +3 -7
  439. package/dist/runtime/run-queue.d.ts +59 -2
  440. package/dist/runtime/run-queue.js +311 -38
  441. package/dist/runtime/run-worker.d.ts +11 -5
  442. package/dist/runtime/run-worker.js +69 -33
  443. package/dist/runtime/runtime.module.js +11 -3
  444. package/dist/runtime/step-log.d.ts +15 -4
  445. package/dist/runtime/step-log.js +24 -7
  446. package/dist/runtime/stream.controller.d.ts +23 -1
  447. package/dist/runtime/stream.controller.js +60 -3
  448. package/dist/runtime/stream.d.ts +4 -1
  449. package/dist/runtime/stream.js +27 -3
  450. package/dist/runtime/subagents/child.d.ts +55 -7
  451. package/dist/runtime/subagents/child.js +105 -7
  452. package/dist/runtime/subagents/definition.d.ts +12 -3
  453. package/dist/runtime/subagents/definition.js +44 -28
  454. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  455. package/dist/runtime/subagents/deliveries.js +228 -0
  456. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  457. package/dist/runtime/subagents/dispatch.js +212 -141
  458. package/dist/runtime/subagents/limits.d.ts +24 -5
  459. package/dist/runtime/subagents/limits.js +40 -6
  460. package/dist/runtime/subagents/messages.d.ts +95 -0
  461. package/dist/runtime/subagents/messages.js +328 -0
  462. package/dist/runtime/subagents/preamble.d.ts +4 -4
  463. package/dist/runtime/subagents/preamble.js +9 -7
  464. package/dist/runtime/subagents/progress.d.ts +8 -6
  465. package/dist/runtime/subagents/progress.js +11 -6
  466. package/dist/runtime/subagents/render.d.ts +30 -0
  467. package/dist/runtime/subagents/render.js +53 -0
  468. package/dist/runtime/subagents/roster.d.ts +24 -7
  469. package/dist/runtime/subagents/roster.js +47 -11
  470. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  471. package/dist/runtime/subagents/skill-fork.js +8 -4
  472. package/dist/runtime/subagents/status.d.ts +14 -0
  473. package/dist/runtime/subagents/status.js +23 -0
  474. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  475. package/dist/runtime/subagents/subagents.service.js +11 -6
  476. package/dist/runtime/usage-report.d.ts +2 -1
  477. package/dist/runtime/usage-report.js +19 -13
  478. package/dist/runtime/waits.d.ts +145 -36
  479. package/dist/runtime/waits.js +423 -109
  480. package/dist/sandbox/jobs.d.ts +40 -13
  481. package/dist/sandbox/jobs.js +57 -20
  482. package/dist/sandbox/leases.d.ts +37 -54
  483. package/dist/sandbox/leases.js +71 -115
  484. package/dist/sandbox/providers.d.ts +2 -2
  485. package/dist/sandbox/providers.js +1 -1
  486. package/dist/sandbox/sandbox.module.d.ts +3 -2
  487. package/dist/sandbox/sandbox.module.js +10 -4
  488. package/dist/sandbox/sandbox.service.d.ts +282 -129
  489. package/dist/sandbox/sandbox.service.js +736 -381
  490. package/dist/skills/catalog.d.ts +3 -2
  491. package/dist/skills/catalog.js +21 -43
  492. package/dist/skills/changes.controller.d.ts +7 -0
  493. package/dist/skills/changes.controller.js +19 -1
  494. package/dist/skills/invoke.js +8 -3
  495. package/dist/skills/package.d.ts +20 -1
  496. package/dist/skills/package.js +28 -1
  497. package/dist/skills/skills.controller.d.ts +39 -4
  498. package/dist/skills/skills.controller.js +88 -10
  499. package/dist/skills/skills.module.js +10 -1
  500. package/dist/skills/skills.service.d.ts +106 -26
  501. package/dist/skills/skills.service.js +421 -75
  502. package/dist/skills/usable.d.ts +81 -0
  503. package/dist/skills/usable.js +379 -0
  504. package/dist/tools/approvals.service.d.ts +20 -2
  505. package/dist/tools/approvals.service.js +25 -4
  506. package/dist/tools/builtin-names.d.ts +41 -7
  507. package/dist/tools/builtin-names.js +59 -7
  508. package/dist/tools/builtins/agent.d.ts +23 -21
  509. package/dist/tools/builtins/agent.js +62 -55
  510. package/dist/tools/builtins/builtin-tools.d.ts +19 -1
  511. package/dist/tools/builtins/builtin-tools.js +59 -2
  512. package/dist/tools/builtins/handback.d.ts +28 -0
  513. package/dist/tools/builtins/handback.js +53 -0
  514. package/dist/tools/builtins/platform.d.ts +34 -0
  515. package/dist/tools/builtins/platform.js +362 -0
  516. package/dist/tools/builtins/sandbox/bash.d.ts +1 -1
  517. package/dist/tools/builtins/sandbox/bash.js +241 -4
  518. package/dist/tools/builtins/sandbox/common.d.ts +69 -27
  519. package/dist/tools/builtins/sandbox/common.js +87 -48
  520. package/dist/tools/builtins/sandbox/deliver.js +1 -1
  521. package/dist/tools/builtins/sandbox/edit.js +2 -2
  522. package/dist/tools/builtins/sandbox/glob.js +2 -2
  523. package/dist/tools/builtins/sandbox/grep.js +2 -4
  524. package/dist/tools/builtins/sandbox/index.d.ts +3 -1
  525. package/dist/tools/builtins/sandbox/index.js +7 -1
  526. package/dist/tools/builtins/sandbox/read.js +1 -1
  527. package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
  528. package/dist/tools/builtins/sandbox/task-output.js +329 -0
  529. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  530. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  531. package/dist/tools/builtins/sandbox/write.js +2 -2
  532. package/dist/tools/builtins/send-message.d.ts +56 -0
  533. package/dist/tools/builtins/send-message.js +100 -0
  534. package/dist/tools/builtins/skill-load.d.ts +22 -14
  535. package/dist/tools/builtins/skill-load.js +86 -57
  536. package/dist/tools/builtins/skill-write.js +1 -1
  537. package/dist/tools/builtins/web/errors.d.ts +8 -0
  538. package/dist/tools/builtins/web/errors.js +53 -0
  539. package/dist/tools/builtins/web/extract.d.ts +62 -0
  540. package/dist/tools/builtins/web/extract.js +271 -0
  541. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  542. package/dist/tools/builtins/web/fetch.js +175 -0
  543. package/dist/tools/builtins/web/index.d.ts +13 -0
  544. package/dist/tools/builtins/web/index.js +12 -0
  545. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  546. package/dist/tools/builtins/web/page-cache.js +77 -0
  547. package/dist/tools/builtins/web/search.d.ts +25 -0
  548. package/dist/tools/builtins/web/search.js +210 -0
  549. package/dist/tools/builtins/web/url.d.ts +17 -0
  550. package/dist/tools/builtins/web/url.js +43 -0
  551. package/dist/tools/connectors.controller.d.ts +10 -0
  552. package/dist/tools/connectors.controller.js +12 -0
  553. package/dist/tools/connectors.service.d.ts +46 -5
  554. package/dist/tools/connectors.service.js +94 -15
  555. package/dist/tools/extension-tools.controller.d.ts +14 -0
  556. package/dist/tools/extension-tools.controller.js +37 -0
  557. package/dist/tools/info.d.ts +42 -1
  558. package/dist/tools/info.js +64 -1
  559. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  560. package/dist/tools/oauth/flow-paths.js +1 -1
  561. package/dist/tools/org-tool-switches.d.ts +74 -0
  562. package/dist/tools/org-tool-switches.js +184 -0
  563. package/dist/tools/pipeline.d.ts +46 -40
  564. package/dist/tools/pipeline.js +202 -364
  565. package/dist/tools/policy.d.ts +1 -1
  566. package/dist/tools/policy.js +36 -16
  567. package/dist/tools/registry.d.ts +120 -8
  568. package/dist/tools/registry.js +112 -19
  569. package/dist/tools/tools.module.js +24 -2
  570. package/dist/tools/validate.js +1 -1
  571. package/dist/ui/views.d.ts +2 -1
  572. package/dist/ui/views.js +17 -3
  573. package/package.json +3 -3
  574. package/src/migrations/0064_account_last_org.sql +7 -0
  575. package/src/migrations/0065_conversation_archive.sql +8 -0
  576. package/src/migrations/0066_extension_display_name.sql +4 -0
  577. package/src/migrations/0067_agent_profiles.sql +20 -0
  578. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  579. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  580. package/src/migrations/0070_background_tasks.sql +37 -0
  581. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  582. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  583. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  584. package/src/migrations/0074_subagent_tree.sql +50 -0
  585. package/src/migrations/0075_plugin_scope.sql +61 -0
  586. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  587. package/src/migrations/0077_scope_requests.sql +52 -0
  588. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  589. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  590. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  591. package/src/migrations/0081_platform_components.sql +129 -0
  592. package/src/migrations/0082_platform_migration.sql +33 -0
  593. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  594. package/src/migrations/0084_org_owned_items.sql +85 -0
  595. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  596. package/src/migrations/0086_org_layering.sql +30 -0
  597. package/src/migrations/0087_approval_summary.sql +6 -0
  598. package/src/migrations/0088_environments.sql +80 -0
  599. package/dist/catalog/upgrade-targets.d.ts +0 -56
  600. package/dist/catalog/upgrade-targets.js +0 -90
  601. package/dist/conversations/sandbox-status.d.ts +0 -24
  602. package/dist/conversations/sandbox-status.js +0 -52
  603. package/dist/extensions/org-config.controller.d.ts +0 -24
  604. package/dist/extensions/org-config.controller.js +0 -62
@@ -56,7 +56,7 @@ let SetupController = class SetupController {
56
56
  return this.setup.status();
57
57
  }
58
58
  /**
59
- * 建首个企业管理员(可选同时建组织),成功后直接登录(设会话 Cookie)。
59
+ * 建首个超级管理员(可选同时建组织),成功后直接登录(设会话 Cookie)。
60
60
  * 配置了 `auth.setupToken` 时 body 中的 `setupToken` 必须与之相等,否则 `setup.token_invalid`;
61
61
  * 核对前先占用限流额度,超限 → 429 `auth.rate_limited`,核对通过后退还。
62
62
  */
@@ -4,8 +4,8 @@ import { TransactionHost } from "../infra/database/transaction-host.js";
4
4
  import { type Org, OrgsService } from "../orgs/orgs.service.js";
5
5
  import { SetupLock } from "./setup-lock.js";
6
6
  /**
7
- * The setup wizard. The CLI's enterprise admin creation (`createEnterpriseAdmin`,
8
- * `createEnterpriseAdminIfNone`) is on `AccountsService`, under the same {@link SetupLock}.
7
+ * The setup wizard. The CLI's super admin creation (`createSuperAdmin`,
8
+ * `createSuperAdminIfNone`) is on `AccountsService`, under the same {@link SetupLock}.
9
9
  */
10
10
  export declare class SetupService {
11
11
  private readonly db;
@@ -14,13 +14,13 @@ export declare class SetupService {
14
14
  private readonly accounts;
15
15
  private readonly orgs;
16
16
  constructor(db: KernelDb, txHost: TransactionHost, setupLock: SetupLock, accounts: AccountsService, orgs: OrgsService);
17
- /** 不存在活跃企业管理员即需要初始化(每次实时查 PG,不缓存)。 */
17
+ /** 不存在活跃超级管理员即需要初始化(每次实时查 PG,不缓存)。 */
18
18
  status(): Promise<{
19
19
  needsSetup: boolean;
20
20
  }>;
21
21
  /**
22
22
  * Completes the setup in one transaction: {@link SetupLock} serializes concurrent setups, and
23
- * under it there must still be no active enterprise admin; then creates the enterprise admin
23
+ * under it there must still be no active super admin; then creates the super admin
24
24
  * and (with `orgName`) an org it owns. Any failure rolls everything back. `inTx` runs last in the
25
25
  * same transaction (the wizard creates the session there), its result is `extra`; its failure
26
26
  * rolls back too.
@@ -18,8 +18,8 @@ import { OrgsService } from "../orgs/orgs.service.js";
18
18
  import { SetupLock } from "./setup-lock.js";
19
19
  const alreadyCompleted = () => new ApiError("setup.already_completed", "Deployment is already set up");
20
20
  /**
21
- * The setup wizard. The CLI's enterprise admin creation (`createEnterpriseAdmin`,
22
- * `createEnterpriseAdminIfNone`) is on `AccountsService`, under the same {@link SetupLock}.
21
+ * The setup wizard. The CLI's super admin creation (`createSuperAdmin`,
22
+ * `createSuperAdminIfNone`) is on `AccountsService`, under the same {@link SetupLock}.
23
23
  */
24
24
  let SetupService = class SetupService {
25
25
  db;
@@ -34,13 +34,13 @@ let SetupService = class SetupService {
34
34
  this.accounts = accounts;
35
35
  this.orgs = orgs;
36
36
  }
37
- /** 不存在活跃企业管理员即需要初始化(每次实时查 PG,不缓存)。 */
37
+ /** 不存在活跃超级管理员即需要初始化(每次实时查 PG,不缓存)。 */
38
38
  async status() {
39
- return { needsSetup: (await this.accounts.countEnterpriseAdmins()) === 0 };
39
+ return { needsSetup: (await this.accounts.countSuperAdmins()) === 0 };
40
40
  }
41
41
  /**
42
42
  * Completes the setup in one transaction: {@link SetupLock} serializes concurrent setups, and
43
- * under it there must still be no active enterprise admin; then creates the enterprise admin
43
+ * under it there must still be no active super admin; then creates the super admin
44
44
  * and (with `orgName`) an org it owns. Any failure rolls everything back. `inTx` runs last in the
45
45
  * same transaction (the wizard creates the session there), its result is `extra`; its failure
46
46
  * rolls back too.
@@ -48,20 +48,20 @@ let SetupService = class SetupService {
48
48
  async complete(input, inTx) {
49
49
  // A cheap pre-check first (a set-up deployment does not run scrypt for nothing), then the hash
50
50
  // before BEGIN: no scrypt inside the transaction holding the lock; the check runs again under it
51
- if ((await this.accounts.countEnterpriseAdmins()) > 0)
51
+ if ((await this.accounts.countSuperAdmins()) > 0)
52
52
  throw alreadyCompleted();
53
53
  const passwordHash = await this.accounts.hashNewPassword(input.password);
54
54
  return this.completeIn(input, passwordHash, inTx);
55
55
  }
56
56
  async completeIn(input, passwordHash, inTx) {
57
57
  await this.setupLock.lock();
58
- if ((await this.accounts.countEnterpriseAdmins()) > 0)
58
+ if ((await this.accounts.countSuperAdmins()) > 0)
59
59
  throw alreadyCompleted();
60
60
  const account = await this.accounts.createLocal({
61
61
  login: input.login,
62
62
  password: input.password,
63
63
  displayName: input.displayName,
64
- enterpriseAdmin: true,
64
+ superAdmin: true,
65
65
  }, passwordHash);
66
66
  const org = input.orgName !== undefined
67
67
  ? await this.orgs.create({ name: input.orgName }, account)
@@ -2,6 +2,7 @@ import { type ExpressionBuilder } from "kysely";
2
2
  import type { KernelDatabase, KernelSchemaDb } from "../db/kernel-schema.js";
3
3
  import { KernelDb } from "../infra/database/kernel-db.js";
4
4
  import { type AgentDefinition } from "./definition.js";
5
+ import type { AgentProfile } from "./profile.js";
5
6
  export declare const AGENT_VISIBILITIES: readonly ["private", "org", "members"];
6
7
  export type AgentVisibility = (typeof AGENT_VISIBILITIES)[number];
7
8
  /** 对外的 agent 视图:当前版本的定义 + 元数据;`memberIds` 只在 visibility='members' 时为数组。 */
@@ -12,12 +13,30 @@ export interface AgentView {
12
13
  visibility: AgentVisibility;
13
14
  currentVersion: number;
14
15
  definition: AgentDefinition;
16
+ /** Display data outside the versions (never model-visible). */
17
+ profile: AgentProfile;
15
18
  memberIds: string[] | null;
16
19
  /** 负责人离职后被转给组织所有者、等待管理员重新指派。 */
17
20
  needsReassignment: boolean;
21
+ /**
22
+ * The template the agent was created from (ruling P4-8; set once, never versioned), null for an
23
+ * agent created otherwise. `name` and `version` are the snapshot taken at create.
24
+ */
25
+ createdFrom: AgentProvenance | null;
18
26
  createdAt: Date;
19
27
  updatedAt: Date;
20
28
  }
29
+ /** {@link AgentView.createdFrom}. */
30
+ export interface AgentProvenance {
31
+ templateId: string;
32
+ version: number;
33
+ name: string;
34
+ /**
35
+ * The template is still usable in the org (the agent page links it only then). Set on the
36
+ * agents API's responses only (`AgentsService.withTemplateLinks`), never on internal reads.
37
+ */
38
+ available?: boolean;
39
+ }
21
40
  /**
22
41
  * 可见性判定(`canUse`)的 SQL 条件:agent 未删除、所属组织未删除,且
23
42
  * - viewer 为账号:仍是该组织成员(含访客),并且是负责人 / visibility='org' / 在 agent_members 名单中;
@@ -132,6 +132,13 @@ let AgentLookup = class AgentLookup {
132
132
  "agents.needs_reassignment",
133
133
  "agents.created_at",
134
134
  "agents.updated_at",
135
+ "agents.profile_avatar",
136
+ "agents.profile_description",
137
+ "agents.profile_quick_actions",
138
+ "agents.profile_updated_at",
139
+ "agents.created_from_template_id",
140
+ "agents.created_from_template_version",
141
+ "agents.created_from_template_name",
135
142
  "agent_versions.definition",
136
143
  ])
137
144
  .where("agents.id", "in", ids)
@@ -154,6 +161,7 @@ let AgentLookup = class AgentLookup {
154
161
  const r = byId.get(id);
155
162
  if (!r)
156
163
  return [];
164
+ const fromId = r.created_from_template_id;
157
165
  return [
158
166
  {
159
167
  id: r.id,
@@ -162,10 +170,23 @@ let AgentLookup = class AgentLookup {
162
170
  visibility: r.visibility,
163
171
  currentVersion: r.current_version,
164
172
  definition: normalizeStoredDefinition(r.definition, scopes.get(r.org_id)),
173
+ profile: {
174
+ avatar: r.profile_avatar,
175
+ description: r.profile_description,
176
+ quickActions: r.profile_quick_actions,
177
+ updatedAt: r.profile_updated_at.toISOString(),
178
+ },
165
179
  memberIds: r.visibility === "members"
166
180
  ? memberRows.filter((m) => m.agent_id === id).map((m) => m.account_id)
167
181
  : null,
168
182
  needsReassignment: r.needs_reassignment,
183
+ createdFrom: fromId === null
184
+ ? null
185
+ : {
186
+ templateId: fromId,
187
+ version: r.created_from_template_version ?? 1,
188
+ name: r.created_from_template_name ?? "",
189
+ },
169
190
  createdAt: r.created_at,
170
191
  updatedAt: r.updated_at,
171
192
  },
@@ -0,0 +1,29 @@
1
+ import { AttachmentsService } from "../conversations/attachments.service.js";
2
+ import { KernelDb } from "../infra/database/kernel-db.js";
3
+ import { TransactionHost } from "../infra/database/transaction-host.js";
4
+ import { AgentLookup } from "./agent-lookup.js";
5
+ import { AgentsService } from "./agents.service.js";
6
+ import type { AgentProfile, ProfileInput } from "./profile.js";
7
+ /**
8
+ * Writes an agent's profile (avatar, description, quick actions): display data stored beside the
9
+ * agent, never model-visible, so a change creates no agent version. The permission is the one of
10
+ * `AgentsService.update` (owner or org admin, checked under the org row lock).
11
+ */
12
+ export declare class AgentProfileService {
13
+ private readonly db;
14
+ private readonly lookup;
15
+ private readonly agents;
16
+ private readonly attachments;
17
+ readonly txHost: TransactionHost;
18
+ constructor(db: KernelDb, lookup: AgentLookup, agents: Pick<AgentsService, "lockForWrite">, attachments: Pick<AttachmentsService, "prepareAgentAvatar" | "consumeAgentAvatar">, txHost: TransactionHost);
19
+ /**
20
+ * Applies `patch` (only the given fields) when `expectedUpdatedAt` is still the profile's
21
+ * `updatedAt`, else 409 `agent.profile_conflict` (never a silent overwrite). Audit
22
+ * `agent.profile_updated` `{ fields, channel }`: `api` for a personal access token, else `web`.
23
+ * An `upload` avatar must be the actor's own upload that no other agent uses (else 404
24
+ * `attachment.not_found`): it is finalized first (outside the transaction, it reads the object
25
+ * store; 503 `storage.unavailable` without one) and bound to the agent inside it.
26
+ */
27
+ update(orgId: string, agentId: string, actorAccountId: string, patch: ProfileInput, expectedUpdatedAt: string, actorTokenId?: string): Promise<AgentProfile>;
28
+ private updateIn;
29
+ }
@@ -0,0 +1,117 @@
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 { Inject, Injectable } from "@nestjs/common";
11
+ import { sql } from "kysely";
12
+ import { AttachmentsService } from "../conversations/attachments.service.js";
13
+ import { ApiError } from "../errors.js";
14
+ import { audit } from "../identity/audit.js";
15
+ import { KernelDb } from "../infra/database/kernel-db.js";
16
+ import { TransactionHost } from "../infra/database/transaction-host.js";
17
+ import { Transactional } from "../infra/database/transactional.decorator.js";
18
+ import { AgentLookup } from "./agent-lookup.js";
19
+ import { AgentsService } from "./agents.service.js";
20
+ /**
21
+ * Writes an agent's profile (avatar, description, quick actions): display data stored beside the
22
+ * agent, never model-visible, so a change creates no agent version. The permission is the one of
23
+ * `AgentsService.update` (owner or org admin, checked under the org row lock).
24
+ */
25
+ let AgentProfileService = class AgentProfileService {
26
+ db;
27
+ lookup;
28
+ agents;
29
+ attachments;
30
+ txHost;
31
+ constructor(db, lookup, agents, attachments, txHost) {
32
+ this.db = db;
33
+ this.lookup = lookup;
34
+ this.agents = agents;
35
+ this.attachments = attachments;
36
+ this.txHost = txHost;
37
+ }
38
+ /**
39
+ * Applies `patch` (only the given fields) when `expectedUpdatedAt` is still the profile's
40
+ * `updatedAt`, else 409 `agent.profile_conflict` (never a silent overwrite). Audit
41
+ * `agent.profile_updated` `{ fields, channel }`: `api` for a personal access token, else `web`.
42
+ * An `upload` avatar must be the actor's own upload that no other agent uses (else 404
43
+ * `attachment.not_found`): it is finalized first (outside the transaction, it reads the object
44
+ * store; 503 `storage.unavailable` without one) and bound to the agent inside it.
45
+ */
46
+ async update(orgId, agentId, actorAccountId, patch, expectedUpdatedAt, actorTokenId) {
47
+ if (patch.avatar?.kind === "upload") {
48
+ await this.attachments.prepareAgentAvatar(orgId, actorAccountId, patch.avatar.uploadId, agentId);
49
+ }
50
+ return this.updateIn(orgId, agentId, actorAccountId, patch, expectedUpdatedAt, actorTokenId);
51
+ }
52
+ async updateIn(orgId, agentId, actorAccountId, patch, expectedUpdatedAt, actorTokenId) {
53
+ const t = this.db.db;
54
+ await this.agents.lockForWrite(orgId, agentId, actorAccountId);
55
+ const current = await t
56
+ .selectFrom("agents")
57
+ .select(sql `to_char(profile_updated_at at time zone 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`.as("at"))
58
+ .where("id", "=", agentId)
59
+ .executeTakeFirstOrThrow();
60
+ if (current.at !== expectedUpdatedAt) {
61
+ throw new ApiError("agent.profile_conflict", "The profile was changed by someone else; reload it and apply your changes again");
62
+ }
63
+ if (patch.avatar?.kind === "upload") {
64
+ await this.attachments.consumeAgentAvatar(orgId, actorAccountId, patch.avatar.uploadId, agentId);
65
+ }
66
+ const fields = ["avatar", "description", "quickActions"].filter((f) => patch[f] !== undefined);
67
+ // nothing to write: no timestamp bump, no audit row
68
+ if (fields.length === 0)
69
+ return (await this.lookup.view(agentId)).profile;
70
+ await t
71
+ .updateTable("agents")
72
+ .set({
73
+ ...(patch.avatar !== undefined && {
74
+ profile_avatar: patch.avatar === null ? sql `null` : JSON.stringify(patch.avatar),
75
+ }),
76
+ ...(patch.description !== undefined && { profile_description: patch.description }),
77
+ ...(patch.quickActions !== undefined && {
78
+ profile_quick_actions: JSON.stringify(patch.quickActions),
79
+ }),
80
+ profile_updated_at: sql `greatest(date_trunc('milliseconds', now()), profile_updated_at + interval '1 millisecond')`,
81
+ })
82
+ .where("id", "=", agentId)
83
+ .execute();
84
+ if (patch.avatar !== undefined) {
85
+ // the avatar changed: every other upload bound to this agent is garbage; the cleanup job
86
+ // deletes it (and its object) once expired. Re-saving the same upload keeps it.
87
+ await t
88
+ .updateTable("attachments")
89
+ .set({ expires_at: sql `now()` })
90
+ .where("agent_id", "=", agentId)
91
+ .where("purpose", "=", "agent-avatar")
92
+ .$if(patch.avatar?.kind === "upload", (q) => q.where("id", "<>", patch.avatar.uploadId))
93
+ .execute();
94
+ }
95
+ await audit(t, {
96
+ actorAccountId,
97
+ ...(actorTokenId !== undefined && { actorTokenId }),
98
+ orgId,
99
+ action: "agent.profile_updated",
100
+ target: agentId,
101
+ detail: { fields, channel: actorTokenId !== undefined ? "api" : "web" },
102
+ });
103
+ return (await this.lookup.view(agentId)).profile;
104
+ }
105
+ };
106
+ __decorate([
107
+ Transactional()
108
+ ], AgentProfileService.prototype, "updateIn", null);
109
+ AgentProfileService = __decorate([
110
+ Injectable(),
111
+ __param(0, Inject(KernelDb)),
112
+ __param(1, Inject(AgentLookup)),
113
+ __param(2, Inject(AgentsService)),
114
+ __param(3, Inject(AttachmentsService)),
115
+ __param(4, Inject(TransactionHost))
116
+ ], AgentProfileService);
117
+ export { AgentProfileService };
@@ -1,7 +1,12 @@
1
+ import type { FastifyReply } from "fastify";
1
2
  import { z } from "zod";
3
+ import { AttachmentsService, type CreatedAttachment } from "../conversations/attachments.service.js";
2
4
  import { type Principal } from "../identity/principal.js";
3
5
  import { type OrgContext } from "../orgs/org.guard.js";
6
+ import { AgentProfileService } from "./agent-profile.service.js";
4
7
  import { AgentsService, type AgentVersionSummary, type AgentView, type AgentWarning } from "./agents.service.js";
8
+ import { AgentsFromTemplate, type TemplatePreview } from "./from-template.service.js";
9
+ import { type AgentProfile } from "./profile.js";
5
10
  declare const OwnerBody: z.ZodObject<{
6
11
  accountId: z.ZodString;
7
12
  }, z.core.$strict>;
@@ -9,7 +14,10 @@ declare const CreateBody: z.ZodObject<{
9
14
  definition: z.ZodObject<{
10
15
  name: z.ZodString;
11
16
  avatarUrl: z.ZodDefault<z.ZodNullable<z.ZodURL>>;
12
- instructions: z.ZodDefault<z.ZodString>;
17
+ instructionFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
18
+ name: z.ZodString;
19
+ content: z.ZodString;
20
+ }, z.core.$strict>>>;
13
21
  model: z.ZodObject<{
14
22
  provider: z.ZodString;
15
23
  model: z.ZodString;
@@ -68,6 +76,7 @@ declare const CreateBody: z.ZodObject<{
68
76
  }, z.core.$strict>>>;
69
77
  dispatchable: z.ZodOptional<z.ZodBoolean>;
70
78
  }, z.core.$strict>>;
79
+ instructions: z.ZodOptional<z.ZodString>;
71
80
  tools: z.ZodDefault<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
72
81
  kind: z.ZodLiteral<"builtin">;
73
82
  name: z.ZodString;
@@ -87,12 +96,75 @@ declare const CreateBody: z.ZodObject<{
87
96
  private: "private";
88
97
  }>;
89
98
  memberIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
99
+ profile: z.ZodOptional<z.ZodObject<{
100
+ avatar: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
101
+ kind: z.ZodLiteral<"preset">;
102
+ id: z.ZodEnum<{
103
+ "black-bear": "black-bear";
104
+ capybara: "capybara";
105
+ elephant: "elephant";
106
+ fox: "fox";
107
+ owl: "owl";
108
+ panda: "panda";
109
+ penguin: "penguin";
110
+ rabbit: "rabbit";
111
+ turtle: "turtle";
112
+ whale: "whale";
113
+ }>;
114
+ }, z.core.$strict>, z.ZodObject<{
115
+ kind: z.ZodLiteral<"upload">;
116
+ uploadId: z.ZodString;
117
+ }, z.core.$strict>], "kind">>>;
118
+ description: z.ZodOptional<z.ZodString>;
119
+ quickActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
120
+ title: z.ZodString;
121
+ body: z.ZodString;
122
+ }, z.core.$strict>>>;
123
+ }, z.core.$strict>>;
124
+ }, z.core.$strict>;
125
+ declare const ProfileBody: z.ZodObject<{
126
+ avatar: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
127
+ kind: z.ZodLiteral<"preset">;
128
+ id: z.ZodEnum<{
129
+ "black-bear": "black-bear";
130
+ capybara: "capybara";
131
+ elephant: "elephant";
132
+ fox: "fox";
133
+ owl: "owl";
134
+ panda: "panda";
135
+ penguin: "penguin";
136
+ rabbit: "rabbit";
137
+ turtle: "turtle";
138
+ whale: "whale";
139
+ }>;
140
+ }, z.core.$strict>, z.ZodObject<{
141
+ kind: z.ZodLiteral<"upload">;
142
+ uploadId: z.ZodString;
143
+ }, z.core.$strict>], "kind">>>;
144
+ description: z.ZodOptional<z.ZodString>;
145
+ quickActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
146
+ title: z.ZodString;
147
+ body: z.ZodString;
148
+ }, z.core.$strict>>>;
149
+ expectedUpdatedAt: z.ZodString;
150
+ }, z.core.$strict>;
151
+ declare const AvatarUploadBody: z.ZodObject<{
152
+ name: z.ZodString;
153
+ contentType: z.ZodEnum<{
154
+ "image/jpeg": "image/jpeg";
155
+ "image/png": "image/png";
156
+ "image/webp": "image/webp";
157
+ }>;
158
+ size: z.ZodNumber;
90
159
  }, z.core.$strict>;
91
160
  declare const UpdateBody: z.ZodObject<{
92
161
  definition: z.ZodOptional<z.ZodObject<{
93
162
  name: z.ZodString;
94
163
  avatarUrl: z.ZodDefault<z.ZodNullable<z.ZodURL>>;
95
- instructions: z.ZodDefault<z.ZodString>;
164
+ instructionFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
165
+ name: z.ZodString;
166
+ content: z.ZodString;
167
+ }, z.core.$strict>>>;
96
168
  model: z.ZodObject<{
97
169
  provider: z.ZodString;
98
170
  model: z.ZodString;
@@ -163,6 +235,29 @@ declare const UpdateBody: z.ZodObject<{
163
235
  }, z.core.$strict>>>;
164
236
  dispatchable: z.ZodOptional<z.ZodBoolean>;
165
237
  }, z.core.$strict>>;
238
+ pendingConnectors: z.ZodOptional<z.ZodArray<z.ZodObject<{
239
+ key: z.ZodString;
240
+ label: z.ZodString;
241
+ source: z.ZodUnion<readonly [z.ZodObject<{
242
+ template: z.ZodString;
243
+ }, z.core.$strict>, z.ZodObject<{
244
+ needs: z.ZodObject<{
245
+ protocol: z.ZodEnum<{
246
+ mcp: "mcp";
247
+ openapi: "openapi";
248
+ }>;
249
+ endpoint: z.ZodString;
250
+ tools: z.ZodArray<z.ZodString>;
251
+ label: z.ZodString;
252
+ }, z.core.$strict>;
253
+ }, z.core.$strict>]>;
254
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
255
+ policies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
256
+ ask: "ask";
257
+ deny: "deny";
258
+ }>>>;
259
+ }, z.core.$strict>>>;
260
+ instructions: z.ZodOptional<z.ZodString>;
166
261
  }, z.core.$strip>>;
167
262
  visibility: z.ZodOptional<z.ZodEnum<{
168
263
  members: "members";
@@ -172,13 +267,67 @@ declare const UpdateBody: z.ZodObject<{
172
267
  memberIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
173
268
  expectedVersion: z.ZodOptional<z.ZodNumber>;
174
269
  }, z.core.$strict>;
270
+ declare const FromTemplatePreviewBody: z.ZodObject<{
271
+ templateId: z.ZodString;
272
+ }, z.core.$strict>;
273
+ declare const FromTemplateBody: z.ZodObject<{
274
+ templateId: z.ZodString;
275
+ name: z.ZodString;
276
+ visibility: z.ZodOptional<z.ZodEnum<{
277
+ members: "members";
278
+ org: "org";
279
+ private: "private";
280
+ }>>;
281
+ members: z.ZodOptional<z.ZodArray<z.ZodString>>;
282
+ model: z.ZodOptional<z.ZodObject<{
283
+ provider: z.ZodString;
284
+ model: z.ZodString;
285
+ }, z.core.$strict>>;
286
+ avatar: z.ZodOptional<z.ZodObject<{
287
+ kind: z.ZodLiteral<"preset">;
288
+ id: z.ZodEnum<{
289
+ "black-bear": "black-bear";
290
+ capybara: "capybara";
291
+ elephant: "elephant";
292
+ fox: "fox";
293
+ owl: "owl";
294
+ panda: "panda";
295
+ penguin: "penguin";
296
+ rabbit: "rabbit";
297
+ turtle: "turtle";
298
+ whale: "whale";
299
+ }>;
300
+ }, z.core.$strict>>;
301
+ previewHash: z.ZodString;
302
+ }, z.core.$strict>;
175
303
  /**
176
304
  * Agent 定义(`/api/v1/orgs/:orgId/agents`)。读用 `agents.use`(访客与服务令牌可用),
177
305
  * 写用 `agents.create`(member 以上、HUMAN_ONLY),修改 / 删除的负责人或管理员判定在服务的组织行锁内完成。
178
306
  */
179
307
  export declare class AgentsController {
180
308
  private readonly agents;
181
- constructor(agents: AgentsService);
309
+ private readonly profiles;
310
+ private readonly attachments;
311
+ private readonly fromTemplate;
312
+ constructor(agents: AgentsService, profiles: AgentProfileService, attachments: AttachmentsService, fromTemplate: AgentsFromTemplate);
313
+ /** A response's view with its provenance link (`createdFrom.available`, ruling P4-8). */
314
+ private linked;
315
+ /**
316
+ * What creating an agent from a template would carry over (rulings P4-3, P4-5): the items
317
+ * (carried / pending / unavailable, with reasons), the model the dialog preselects (P4-4), the
318
+ * template fields with no place in the agent, and the `previewHash` the create must send. A
319
+ * template not usable in the org → 404 `component.not_found`.
320
+ */
321
+ previewFromTemplate(org: OrgContext, body: z.infer<typeof FromTemplatePreviewBody>): Promise<TemplatePreview>;
322
+ /**
323
+ * Creates an agent from a template (ruling P4-3): private by default; another visibility without
324
+ * `agents.manage` → 403 `agent.visibility_forbidden`; a plan that no longer matches the preview →
325
+ * 409 `agent.template_preview_stale`. The agent records its provenance (P4-8) and carries the
326
+ * template's missing connectors as `pendingConnectors` (P4-6).
327
+ */
328
+ createFromTemplate(principal: Principal, org: OrgContext, body: z.infer<typeof FromTemplateBody>): Promise<{
329
+ agent: AgentView;
330
+ }>;
182
331
  create(principal: Principal, org: OrgContext, body: z.infer<typeof CreateBody>): Promise<{
183
332
  agent: AgentView;
184
333
  warnings: AgentWarning[];
@@ -193,6 +342,22 @@ export declare class AgentsController {
193
342
  agent: AgentView;
194
343
  warnings: AgentWarning[];
195
344
  }>;
345
+ /** Display data only: no agent version. Same permission as `PATCH :agentId`. */
346
+ updateProfile(principal: Principal, org: OrgContext, agentId: string, body: z.infer<typeof ProfileBody>): Promise<{
347
+ profile: AgentProfile;
348
+ }>;
349
+ /**
350
+ * Registers an avatar image upload (presigned, like chat attachments and skill packages): the
351
+ * browser uploads straight to the object store, then saves `{ kind: "upload", uploadId }` with
352
+ * the profile PATCH, which finalizes it. 503 `storage.unavailable` without an object store.
353
+ */
354
+ createAvatarUpload(principal: Principal, org: OrgContext, agentId: string, body: z.infer<typeof AvatarUploadBody>): Promise<CreatedAttachment>;
355
+ /**
356
+ * The avatar image: 302 to a short-lived presigned URL for an upload avatar, or to the stored
357
+ * URL of an external avatar when it is https; 404 for presets, no avatar, or an agent the
358
+ * reader cannot see.
359
+ */
360
+ avatar(principal: Principal, org: OrgContext, agentId: string, reply: FastifyReply): Promise<void>;
196
361
  remove(principal: Principal, org: OrgContext, agentId: string): Promise<void>;
197
362
  /** 重新指派负责人(admin,如负责人离职后);清除 `needsReassignment`。 */
198
363
  reassign(principal: Principal, org: OrgContext, agentId: string, body: z.infer<typeof OwnerBody>): Promise<{