@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.20

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 (1039) hide show
  1. package/bootstrap.json +85 -5
  2. package/dist/admin/admin-agents.controller.d.ts +28 -0
  3. package/dist/admin/admin-agents.controller.js +79 -0
  4. package/dist/admin/admin-connectors.controller.d.ts +29 -0
  5. package/dist/admin/admin-connectors.controller.js +79 -0
  6. package/dist/admin/admin-items.schemas.d.ts +42 -0
  7. package/dist/admin/admin-items.schemas.js +48 -0
  8. package/dist/admin/admin.controller.d.ts +52 -80
  9. package/dist/admin/admin.controller.js +112 -81
  10. package/dist/admin/admin.module.d.ts +4 -1
  11. package/dist/admin/admin.module.js +50 -4
  12. package/dist/admin/admin.schemas.d.ts +69 -0
  13. package/dist/admin/admin.schemas.js +53 -0
  14. package/dist/admin/audit.controller.d.ts +14 -0
  15. package/dist/admin/audit.controller.js +42 -0
  16. package/dist/admin/audit.schemas.d.ts +8 -0
  17. package/dist/admin/audit.schemas.js +17 -0
  18. package/dist/admin/extensions.controller.d.ts +34 -3
  19. package/dist/admin/extensions.controller.js +66 -8
  20. package/dist/admin/extensions.schemas.d.ts +7 -0
  21. package/dist/admin/extensions.schemas.js +10 -0
  22. package/dist/admin/health.service.d.ts +104 -0
  23. package/dist/admin/health.service.js +246 -0
  24. package/dist/admin/limit-defaults.d.ts +20 -0
  25. package/dist/admin/limit-defaults.js +10 -0
  26. package/dist/admin/overview.controller.d.ts +31 -0
  27. package/dist/admin/overview.controller.js +78 -0
  28. package/dist/admin/overview.schemas.d.ts +8 -0
  29. package/dist/admin/overview.schemas.js +13 -0
  30. package/dist/admin/overview.service.d.ts +112 -0
  31. package/dist/admin/overview.service.js +223 -0
  32. package/dist/admin/platform-audit.service.d.ts +41 -0
  33. package/dist/admin/platform-audit.service.js +70 -0
  34. package/dist/admin/setup-lock.d.ts +1 -1
  35. package/dist/admin/setup-lock.js +1 -1
  36. package/dist/admin/setup.controller.d.ts +1 -1
  37. package/dist/admin/setup.controller.js +1 -1
  38. package/dist/admin/setup.service.d.ts +4 -4
  39. package/dist/admin/setup.service.js +8 -8
  40. package/dist/admin/usage.service.d.ts +149 -0
  41. package/dist/admin/usage.service.js +321 -0
  42. package/dist/agents/admin-agents.d.ts +92 -0
  43. package/dist/agents/admin-agents.js +170 -0
  44. package/dist/agents/agent-lookup.d.ts +24 -0
  45. package/dist/agents/agent-lookup.js +46 -2
  46. package/dist/agents/agent-profile.service.d.ts +31 -0
  47. package/dist/agents/agent-profile.service.js +122 -0
  48. package/dist/agents/agents.controller.d.ts +53 -168
  49. package/dist/agents/agents.controller.js +163 -34
  50. package/dist/agents/agents.module.d.ts +6 -2
  51. package/dist/agents/agents.module.js +41 -7
  52. package/dist/agents/agents.schemas.d.ts +392 -0
  53. package/dist/agents/agents.schemas.js +126 -0
  54. package/dist/agents/agents.service.d.ts +121 -36
  55. package/dist/agents/agents.service.js +411 -121
  56. package/dist/agents/definition.d.ts +142 -21
  57. package/dist/agents/definition.js +389 -43
  58. package/dist/agents/from-template.d.ts +106 -0
  59. package/dist/agents/from-template.js +680 -0
  60. package/dist/agents/from-template.service.d.ts +72 -0
  61. package/dist/agents/from-template.service.js +178 -0
  62. package/dist/agents/instruction-files.d.ts +60 -0
  63. package/dist/agents/instruction-files.js +111 -0
  64. package/dist/agents/models.controller.d.ts +44 -6
  65. package/dist/agents/models.controller.js +84 -8
  66. package/dist/agents/org-templates.d.ts +186 -0
  67. package/dist/agents/org-templates.js +876 -0
  68. package/dist/agents/pending-connector-requests.d.ts +79 -0
  69. package/dist/agents/pending-connector-requests.js +215 -0
  70. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  71. package/dist/agents/pending-connectors.controller.js +91 -0
  72. package/dist/agents/pending-connectors.service.d.ts +62 -0
  73. package/dist/agents/pending-connectors.service.js +282 -0
  74. package/dist/agents/profile.d.ts +114 -0
  75. package/dist/agents/profile.js +55 -0
  76. package/dist/agents/readiness.controller.d.ts +26 -0
  77. package/dist/agents/readiness.controller.js +56 -0
  78. package/dist/agents/templates.controller.d.ts +77 -5
  79. package/dist/agents/templates.controller.js +153 -7
  80. package/dist/agents/templates.d.ts +127 -23
  81. package/dist/agents/templates.js +482 -44
  82. package/dist/agents/templates.schemas.d.ts +20 -0
  83. package/dist/agents/templates.schemas.js +45 -0
  84. package/dist/background/background.controller.d.ts +38 -0
  85. package/dist/background/background.controller.js +88 -0
  86. package/dist/background/background.module.d.ts +10 -0
  87. package/dist/background/background.module.js +39 -0
  88. package/dist/background/background.schemas.d.ts +10 -0
  89. package/dist/background/background.schemas.js +16 -0
  90. package/dist/background/finish.d.ts +44 -0
  91. package/dist/background/finish.js +95 -0
  92. package/dist/background/launch-lock.d.ts +15 -0
  93. package/dist/background/launch-lock.js +40 -0
  94. package/dist/background/launch.d.ts +42 -0
  95. package/dist/background/launch.js +77 -0
  96. package/dist/background/poll.job.d.ts +56 -0
  97. package/dist/background/poll.job.js +195 -0
  98. package/dist/background/render.d.ts +23 -0
  99. package/dist/background/render.js +48 -0
  100. package/dist/background/session.d.ts +48 -0
  101. package/dist/background/session.js +80 -0
  102. package/dist/background/status.d.ts +35 -0
  103. package/dist/background/status.js +57 -0
  104. package/dist/background/stop.d.ts +68 -0
  105. package/dist/background/stop.js +244 -0
  106. package/dist/background/store.d.ts +167 -0
  107. package/dist/background/store.js +361 -0
  108. package/dist/background/store.module.d.ts +6 -0
  109. package/dist/background/store.module.js +22 -0
  110. package/dist/background/tasks.service.d.ts +109 -0
  111. package/dist/background/tasks.service.js +271 -0
  112. package/dist/background/wake-rules.d.ts +66 -0
  113. package/dist/background/wake-rules.js +113 -0
  114. package/dist/background/wake.d.ts +30 -0
  115. package/dist/background/wake.js +63 -0
  116. package/dist/catalog/admin-catalog.controller.d.ts +136 -52
  117. package/dist/catalog/admin-catalog.controller.js +275 -65
  118. package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
  119. package/dist/catalog/admin-catalog.schemas.js +99 -0
  120. package/dist/catalog/appearance.schemas.d.ts +10 -0
  121. package/dist/catalog/appearance.schemas.js +20 -0
  122. package/dist/catalog/appearance.service.d.ts +105 -0
  123. package/dist/catalog/appearance.service.js +306 -0
  124. package/dist/catalog/catalog-content.d.ts +122 -35
  125. package/dist/catalog/catalog-content.js +122 -14
  126. package/dist/catalog/catalog-files.d.ts +42 -0
  127. package/dist/catalog/catalog-files.js +89 -0
  128. package/dist/catalog/catalog-import.module.d.ts +7 -0
  129. package/dist/catalog/catalog-import.module.js +63 -0
  130. package/dist/catalog/catalog-items.d.ts +122 -7
  131. package/dist/catalog/catalog-items.js +301 -13
  132. package/dist/catalog/catalog-scope.service.d.ts +293 -0
  133. package/dist/catalog/catalog-scope.service.js +1236 -0
  134. package/dist/catalog/catalog.module.d.ts +7 -9
  135. package/dist/catalog/catalog.module.js +47 -31
  136. package/dist/catalog/catalog.service.d.ts +122 -31
  137. package/dist/catalog/catalog.service.js +177 -105
  138. package/dist/catalog/claude/agents.js +15 -10
  139. package/dist/catalog/claude/translate.js +3 -0
  140. package/dist/catalog/cli.d.ts +11 -1
  141. package/dist/catalog/cli.js +29 -1
  142. package/dist/catalog/component-promotion.d.ts +96 -0
  143. package/dist/catalog/component-promotion.js +395 -0
  144. package/dist/catalog/component-scope.controller.d.ts +102 -0
  145. package/dist/catalog/component-scope.controller.js +257 -0
  146. package/dist/catalog/component-scope.schemas.d.ts +118 -0
  147. package/dist/catalog/component-scope.schemas.js +97 -0
  148. package/dist/catalog/component-scope.service.d.ts +394 -0
  149. package/dist/catalog/component-scope.service.js +1133 -0
  150. package/dist/catalog/component-state.d.ts +207 -0
  151. package/dist/catalog/component-state.js +484 -0
  152. package/dist/catalog/git-source.d.ts +9 -1
  153. package/dist/catalog/git-source.js +29 -2
  154. package/dist/catalog/job-ids.d.ts +30 -0
  155. package/dist/catalog/job-ids.js +25 -0
  156. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  157. package/dist/catalog/marketplace-icons.d.ts +64 -0
  158. package/dist/catalog/marketplace-icons.js +131 -0
  159. package/dist/catalog/marketplaces.controller.d.ts +50 -41
  160. package/dist/catalog/marketplaces.controller.js +130 -46
  161. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  162. package/dist/catalog/marketplaces.schemas.js +53 -0
  163. package/dist/catalog/marketplaces.service.d.ts +110 -17
  164. package/dist/catalog/marketplaces.service.js +337 -29
  165. package/dist/catalog/org-catalog.controller.d.ts +114 -62
  166. package/dist/catalog/org-catalog.controller.js +191 -98
  167. package/dist/catalog/org-catalog.schemas.d.ts +104 -0
  168. package/dist/catalog/org-catalog.schemas.js +107 -0
  169. package/dist/catalog/org-catalog.service.d.ts +72 -33
  170. package/dist/catalog/org-catalog.service.js +367 -158
  171. package/dist/catalog/org-extension-switch.d.ts +41 -0
  172. package/dist/catalog/org-extension-switch.js +115 -0
  173. package/dist/catalog/org-extension.controller.d.ts +133 -0
  174. package/dist/catalog/org-extension.controller.js +313 -0
  175. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  176. package/dist/catalog/org-extension.schemas.js +22 -0
  177. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  178. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  179. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  180. package/dist/catalog/org-plugin-uploads.js +122 -0
  181. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  182. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  183. package/dist/catalog/owned-items.d.ts +188 -0
  184. package/dist/catalog/owned-items.js +808 -0
  185. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  186. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  187. package/dist/catalog/ownership.d.ts +172 -0
  188. package/dist/catalog/ownership.js +326 -0
  189. package/dist/catalog/platform-components.d.ts +243 -0
  190. package/dist/catalog/platform-components.js +872 -0
  191. package/dist/catalog/platform-migration.d.ts +115 -0
  192. package/dist/catalog/platform-migration.js +583 -0
  193. package/dist/catalog/plugin-import.d.ts +254 -47
  194. package/dist/catalog/plugin-import.js +810 -112
  195. package/dist/catalog/plugin-install.d.ts +205 -42
  196. package/dist/catalog/plugin-install.js +828 -126
  197. package/dist/catalog/plugin-package.d.ts +43 -4
  198. package/dist/catalog/plugin-package.js +194 -7
  199. package/dist/catalog/plugin-upgrade.d.ts +308 -225
  200. package/dist/catalog/plugin-upgrade.js +1325 -1131
  201. package/dist/catalog/request-rules.d.ts +65 -0
  202. package/dist/catalog/request-rules.js +217 -0
  203. package/dist/catalog/requests.service.d.ts +194 -118
  204. package/dist/catalog/requests.service.js +530 -343
  205. package/dist/catalog/reserved-names.d.ts +8 -0
  206. package/dist/catalog/reserved-names.js +42 -0
  207. package/dist/catalog/scope-orgs.d.ts +21 -0
  208. package/dist/catalog/scope-orgs.js +67 -0
  209. package/dist/catalog/scope-state.d.ts +35 -0
  210. package/dist/catalog/scope-state.js +87 -0
  211. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  212. package/dist/catalog/scope-sync-workers.js +29 -0
  213. package/dist/catalog/scope-sync.d.ts +176 -0
  214. package/dist/catalog/scope-sync.js +576 -0
  215. package/dist/catalog/scope.d.ts +42 -0
  216. package/dist/catalog/scope.js +42 -0
  217. package/dist/catalog/unshare.d.ts +22 -0
  218. package/dist/catalog/unshare.js +119 -0
  219. package/dist/channels/actions.js +10 -3
  220. package/dist/channels/cards.d.ts +36 -10
  221. package/dist/channels/cards.js +100 -25
  222. package/dist/channels/channels.module.js +13 -2
  223. package/dist/channels/channels.schemas.d.ts +41 -0
  224. package/dist/channels/channels.schemas.js +40 -0
  225. package/dist/channels/connections.controller.d.ts +46 -37
  226. package/dist/channels/connections.controller.js +76 -34
  227. package/dist/channels/connections.service.d.ts +102 -10
  228. package/dist/channels/connections.service.js +271 -24
  229. package/dist/channels/inbound.d.ts +11 -1
  230. package/dist/channels/inbound.js +87 -7
  231. package/dist/channels/outbound.d.ts +14 -1
  232. package/dist/channels/outbound.js +64 -15
  233. package/dist/channels/phrases.d.ts +33 -2
  234. package/dist/channels/phrases.js +29 -1
  235. package/dist/channels/supervisor.d.ts +2 -0
  236. package/dist/channels/supervisor.js +4 -0
  237. package/dist/channels/threads.d.ts +5 -0
  238. package/dist/channels/threads.js +8 -0
  239. package/dist/channels/webhook.d.ts +21 -1
  240. package/dist/channels/webhook.js +39 -4
  241. package/dist/client/client-access.service.d.ts +102 -0
  242. package/dist/client/client-access.service.js +303 -0
  243. package/dist/client/client-builds.service.d.ts +109 -0
  244. package/dist/client/client-builds.service.js +229 -0
  245. package/dist/client/client-delivery.controller.d.ts +25 -0
  246. package/dist/client/client-delivery.controller.js +66 -0
  247. package/dist/client/client-files.d.ts +48 -0
  248. package/dist/client/client-files.js +136 -0
  249. package/dist/client/client-reports.cron.d.ts +13 -0
  250. package/dist/client/client-reports.cron.js +42 -0
  251. package/dist/client/client-reports.service.d.ts +30 -0
  252. package/dist/client/client-reports.service.js +102 -0
  253. package/dist/client/client-sign-in.service.d.ts +21 -0
  254. package/dist/client/client-sign-in.service.js +49 -0
  255. package/dist/client/client.controller.d.ts +49 -0
  256. package/dist/client/client.controller.js +129 -0
  257. package/dist/client/client.module.d.ts +8 -0
  258. package/dist/client/client.module.js +28 -0
  259. package/dist/client/client.schemas.d.ts +61 -0
  260. package/dist/client/client.schemas.js +27 -0
  261. package/dist/config/docs.js +5 -1
  262. package/dist/config/schema.d.ts +35 -2
  263. package/dist/config/schema.js +216 -21
  264. package/dist/conversations/access.d.ts +6 -4
  265. package/dist/conversations/access.js +29 -5
  266. package/dist/conversations/agent-tree.d.ts +46 -0
  267. package/dist/conversations/agent-tree.js +92 -0
  268. package/dist/conversations/artifacts.d.ts +1 -1
  269. package/dist/conversations/artifacts.js +1 -1
  270. package/dist/conversations/attachments.service.d.ts +30 -0
  271. package/dist/conversations/attachments.service.js +130 -5
  272. package/dist/conversations/conversations.controller.d.ts +79 -44
  273. package/dist/conversations/conversations.controller.js +133 -82
  274. package/dist/conversations/conversations.module.d.ts +1 -1
  275. package/dist/conversations/conversations.module.js +10 -7
  276. package/dist/conversations/conversations.schemas.d.ts +52 -0
  277. package/dist/conversations/conversations.schemas.js +79 -0
  278. package/dist/conversations/conversations.service.d.ts +161 -13
  279. package/dist/conversations/conversations.service.js +329 -57
  280. package/dist/conversations/device-status.d.ts +24 -0
  281. package/dist/conversations/device-status.js +71 -0
  282. package/dist/conversations/event-log.d.ts +45 -9
  283. package/dist/conversations/event-log.js +113 -6
  284. package/dist/conversations/events.d.ts +255 -9
  285. package/dist/conversations/events.js +250 -34
  286. package/dist/conversations/message-context.d.ts +79 -0
  287. package/dist/conversations/message-context.js +145 -0
  288. package/dist/conversations/queue.d.ts +5 -2
  289. package/dist/conversations/queue.js +24 -4
  290. package/dist/conversations/queue.service.d.ts +2 -2
  291. package/dist/conversations/queue.service.js +21 -3
  292. package/dist/conversations/titles.d.ts +12 -3
  293. package/dist/conversations/titles.js +40 -16
  294. package/dist/conversations/tree.d.ts +17 -0
  295. package/dist/conversations/tree.js +42 -0
  296. package/dist/ctx/create-ctx.d.ts +48 -5
  297. package/dist/ctx/create-ctx.js +174 -34
  298. package/dist/db/kernel-schema.d.ts +668 -27
  299. package/dist/db/pool.d.ts +5 -0
  300. package/dist/db/pool.js +3 -0
  301. package/dist/devices/access.d.ts +66 -0
  302. package/dist/devices/access.js +113 -0
  303. package/dist/devices/conversation-devices.d.ts +75 -0
  304. package/dist/devices/conversation-devices.js +230 -0
  305. package/dist/devices/devices.controller.d.ts +36 -0
  306. package/dist/devices/devices.controller.js +124 -0
  307. package/dist/devices/devices.module.d.ts +8 -0
  308. package/dist/devices/devices.module.js +34 -0
  309. package/dist/devices/devices.schemas.d.ts +3 -0
  310. package/dist/devices/devices.schemas.js +14 -0
  311. package/dist/devices/devices.service.d.ts +251 -0
  312. package/dist/devices/devices.service.js +791 -0
  313. package/dist/devices/dto.d.ts +25 -0
  314. package/dist/devices/dto.js +12 -0
  315. package/dist/devices/label.d.ts +11 -0
  316. package/dist/devices/label.js +25 -0
  317. package/dist/devices/legacy-cleanup.job.d.ts +34 -0
  318. package/dist/devices/legacy-cleanup.job.js +141 -0
  319. package/dist/errors.d.ts +215 -3
  320. package/dist/errors.js +215 -3
  321. package/dist/evals/evals.module.js +11 -2
  322. package/dist/evals/evals.schemas.d.ts +110 -0
  323. package/dist/evals/evals.schemas.js +107 -0
  324. package/dist/evals/reconstruct.d.ts +18 -9
  325. package/dist/evals/reconstruct.js +36 -10
  326. package/dist/evals/recorded-tools.d.ts +37 -1
  327. package/dist/evals/recorded-tools.js +120 -10
  328. package/dist/evals/run-replay.d.ts +20 -3
  329. package/dist/evals/run-replay.js +78 -14
  330. package/dist/evals/runs.controller.d.ts +2 -57
  331. package/dist/evals/runs.controller.js +1 -42
  332. package/dist/evals/runs.service.d.ts +8 -7
  333. package/dist/evals/runs.service.js +45 -30
  334. package/dist/evals/sets.controller.d.ts +2 -28
  335. package/dist/evals/sets.controller.js +1 -31
  336. package/dist/evals/sets.service.d.ts +7 -7
  337. package/dist/evals/sets.service.js +23 -17
  338. package/dist/evals/snapshot.d.ts +3 -2
  339. package/dist/evals/snapshot.js +17 -4
  340. package/dist/evals/step-replay.d.ts +4 -6
  341. package/dist/evals/step-replay.js +16 -9
  342. package/dist/evals/trajectory.d.ts +5 -3
  343. package/dist/evals/trajectory.js +4 -1
  344. package/dist/evals/trajectory.service.d.ts +8 -3
  345. package/dist/evals/trajectory.service.js +26 -14
  346. package/dist/evals/worker.d.ts +5 -5
  347. package/dist/evals/worker.js +9 -3
  348. package/dist/extensions/admin-ops.d.ts +81 -14
  349. package/dist/extensions/admin-ops.js +181 -47
  350. package/dist/extensions/admin-view.d.ts +57 -10
  351. package/dist/extensions/admin-view.js +249 -27
  352. package/dist/extensions/approvals.d.ts +12 -2
  353. package/dist/extensions/blobs.d.ts +14 -1
  354. package/dist/extensions/blobs.js +49 -5
  355. package/dist/extensions/bootstrap.d.ts +41 -5
  356. package/dist/extensions/bootstrap.js +121 -19
  357. package/dist/extensions/cli.d.ts +12 -0
  358. package/dist/extensions/cli.js +11 -2
  359. package/dist/extensions/config-hash.d.ts +10 -0
  360. package/dist/extensions/config-hash.js +38 -0
  361. package/dist/extensions/config-issues.d.ts +13 -1
  362. package/dist/extensions/config-issues.js +22 -5
  363. package/dist/extensions/config-json-schema.d.ts +43 -7
  364. package/dist/extensions/config-json-schema.js +124 -58
  365. package/dist/extensions/deployment-config-store.d.ts +6 -0
  366. package/dist/extensions/deployment-config.d.ts +94 -9
  367. package/dist/extensions/deployment-config.js +255 -34
  368. package/dist/extensions/display-name.d.ts +22 -0
  369. package/dist/extensions/display-name.js +77 -0
  370. package/dist/extensions/effective-config.d.ts +133 -0
  371. package/dist/extensions/effective-config.js +379 -0
  372. package/dist/extensions/extensions.module.js +31 -12
  373. package/dist/extensions/guide-places.d.ts +68 -0
  374. package/dist/extensions/guide-places.js +152 -0
  375. package/dist/extensions/hooks.d.ts +37 -4
  376. package/dist/extensions/hooks.js +82 -16
  377. package/dist/extensions/host.d.ts +105 -12
  378. package/dist/extensions/host.js +372 -87
  379. package/dist/extensions/installs.d.ts +30 -9
  380. package/dist/extensions/installs.js +57 -16
  381. package/dist/extensions/instance.d.ts +17 -2
  382. package/dist/extensions/instance.js +21 -0
  383. package/dist/extensions/ledger.d.ts +1 -1
  384. package/dist/extensions/locks.d.ts +12 -0
  385. package/dist/extensions/locks.js +26 -0
  386. package/dist/extensions/org-config.d.ts +97 -7
  387. package/dist/extensions/org-config.js +215 -45
  388. package/dist/extensions/org-levels.d.ts +37 -0
  389. package/dist/extensions/org-levels.js +71 -0
  390. package/dist/extensions/org-overrides.d.ts +151 -0
  391. package/dist/extensions/org-overrides.js +524 -0
  392. package/dist/extensions/package.d.ts +18 -4
  393. package/dist/extensions/package.js +56 -3
  394. package/dist/extensions/permission-set.d.ts +35 -5
  395. package/dist/extensions/permission-set.js +36 -5
  396. package/dist/extensions/permission-view.d.ts +106 -13
  397. package/dist/extensions/permission-view.js +33 -15
  398. package/dist/extensions/plugin-guides.d.ts +282 -0
  399. package/dist/extensions/plugin-guides.js +554 -0
  400. package/dist/extensions/plugin-icons.d.ts +54 -0
  401. package/dist/extensions/plugin-icons.js +125 -0
  402. package/dist/extensions/plugin-items.d.ts +21 -0
  403. package/dist/extensions/plugin-items.js +42 -0
  404. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  405. package/dist/extensions/point-defaults.controller.js +69 -0
  406. package/dist/extensions/point-defaults.d.ts +73 -0
  407. package/dist/extensions/point-defaults.js +236 -0
  408. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  409. package/dist/extensions/point-defaults.schemas.js +14 -0
  410. package/dist/extensions/registry.d.ts +1 -1
  411. package/dist/extensions/registry.js +2 -0
  412. package/dist/extensions/resolve.d.ts +51 -1
  413. package/dist/extensions/resolve.js +85 -3
  414. package/dist/extensions/single-provider.d.ts +92 -0
  415. package/dist/extensions/single-provider.js +180 -0
  416. package/dist/extensions/sources.d.ts +13 -2
  417. package/dist/extensions/sources.js +2 -0
  418. package/dist/extensions/state.module.d.ts +9 -0
  419. package/dist/extensions/state.module.js +46 -0
  420. package/dist/extensions/unavailable.d.ts +50 -0
  421. package/dist/extensions/unavailable.js +115 -0
  422. package/dist/files/previewers.controller.js +2 -3
  423. package/dist/files/previewers.d.ts +10 -3
  424. package/dist/files/previewers.js +40 -11
  425. package/dist/files/previewers.schemas.d.ts +10 -0
  426. package/dist/files/previewers.schemas.js +9 -0
  427. package/dist/http/api.module.js +76 -4
  428. package/dist/http/app.d.ts +11 -2
  429. package/dist/http/app.js +31 -5
  430. package/dist/http/gateway-routes.d.ts +7 -3
  431. package/dist/http/gateway-routes.js +6 -3
  432. package/dist/http/nest-logger.d.ts +6 -5
  433. package/dist/http/nest-logger.js +24 -10
  434. package/dist/http/plugin-dispatch.d.ts +4 -1
  435. package/dist/http/plugin-dispatch.js +14 -2
  436. package/dist/identity/accounts.d.ts +77 -31
  437. package/dist/identity/accounts.js +133 -52
  438. package/dist/identity/audit.d.ts +2 -1
  439. package/dist/identity/auth.controller.js +9 -5
  440. package/dist/identity/auth.guard.d.ts +13 -5
  441. package/dist/identity/auth.guard.js +35 -9
  442. package/dist/identity/cookies.d.ts +26 -5
  443. package/dist/identity/cookies.js +58 -6
  444. package/dist/identity/identity.module.d.ts +1 -1
  445. package/dist/identity/identity.module.js +7 -4
  446. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  447. package/dist/identity/initial-passwords.controller.js +49 -0
  448. package/dist/identity/initial-passwords.d.ts +61 -0
  449. package/dist/identity/initial-passwords.job.d.ts +16 -0
  450. package/dist/identity/initial-passwords.job.js +46 -0
  451. package/dist/identity/initial-passwords.js +159 -0
  452. package/dist/identity/me.controller.d.ts +17 -1
  453. package/dist/identity/me.controller.js +45 -4
  454. package/dist/identity/me.schemas.d.ts +24 -0
  455. package/dist/identity/me.schemas.js +25 -0
  456. package/dist/identity/principal.d.ts +11 -3
  457. package/dist/identity/principal.js +11 -3
  458. package/dist/identity/sessions.d.ts +12 -0
  459. package/dist/identity/sessions.js +45 -0
  460. package/dist/identity/settings.d.ts +99 -12
  461. package/dist/identity/settings.js +234 -25
  462. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  463. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  464. package/dist/identity/write-actor.d.ts +11 -0
  465. package/dist/identity/write-actor.js +7 -0
  466. package/dist/inbox/inbox.module.d.ts +4 -1
  467. package/dist/inbox/inbox.module.js +7 -3
  468. package/dist/inbox/inbox.schemas.d.ts +8 -0
  469. package/dist/inbox/inbox.schemas.js +11 -0
  470. package/dist/inbox/inbox.service.d.ts +64 -4
  471. package/dist/inbox/inbox.service.js +74 -4
  472. package/dist/inbox/org-notices.d.ts +63 -0
  473. package/dist/inbox/org-notices.js +91 -0
  474. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  475. package/dist/inbox/platform-inbox.controller.js +58 -0
  476. package/dist/inbox/platform-inbox.service.d.ts +157 -0
  477. package/dist/inbox/platform-inbox.service.js +281 -0
  478. package/dist/inbox/platform-notices.d.ts +19 -0
  479. package/dist/inbox/platform-notices.js +9 -0
  480. package/dist/index.d.ts +6 -2
  481. package/dist/index.js +7 -1
  482. package/dist/infra/cli/kernel-cli.module.js +9 -1
  483. package/dist/infra/config/kernel-config.service.js +32 -1
  484. package/dist/infra/database/database.module.js +1 -0
  485. package/dist/infra/database/xact-lock.d.ts +1 -1
  486. package/dist/infra/database/xact-lock.js +1 -1
  487. package/dist/infra/events/kernel-events.d.ts +31 -3
  488. package/dist/infra/lifecycle/process-guards.js +4 -0
  489. package/dist/infra/lock/lock.service.d.ts +8 -0
  490. package/dist/infra/lock/lock.service.js +27 -0
  491. package/dist/infra/logging/logging.module.d.ts +4 -2
  492. package/dist/infra/logging/logging.module.js +24 -6
  493. package/dist/infra/presence/presence.module.d.ts +6 -0
  494. package/dist/infra/presence/presence.module.js +22 -0
  495. package/dist/infra/presence/replica-presence.d.ts +87 -0
  496. package/dist/infra/presence/replica-presence.js +189 -0
  497. package/dist/infra/queue/add-job-once.d.ts +14 -0
  498. package/dist/infra/queue/add-job-once.js +16 -0
  499. package/dist/infra/queue/redis-connection.d.ts +6 -0
  500. package/dist/infra/queue/redis-connection.js +7 -0
  501. package/dist/infra/redis/redis.module.js +6 -2
  502. package/dist/infra/throttler/named-throttlers.d.ts +12 -0
  503. package/dist/infra/throttler/named-throttlers.js +67 -0
  504. package/dist/infra/throttler/throttler.guard.js +1 -1
  505. package/dist/infra/tokens.d.ts +6 -1
  506. package/dist/infra/tokens.js +6 -1
  507. package/dist/kernel.module.js +15 -0
  508. package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
  509. package/dist/lifecycle/kernel-lifecycle.js +35 -7
  510. package/dist/local-devices/device-auth.controller.d.ts +42 -0
  511. package/dist/local-devices/device-auth.controller.js +116 -0
  512. package/dist/local-devices/device-auth.d.ts +119 -0
  513. package/dist/local-devices/device-auth.js +401 -0
  514. package/dist/local-devices/device-auth.module.d.ts +7 -0
  515. package/dist/local-devices/device-auth.module.js +25 -0
  516. package/dist/local-devices/device-routes.d.ts +36 -0
  517. package/dist/local-devices/device-routes.js +90 -0
  518. package/dist/local-devices/dto.d.ts +66 -0
  519. package/dist/local-devices/dto.js +44 -0
  520. package/dist/local-devices/keys.d.ts +25 -0
  521. package/dist/local-devices/keys.js +25 -0
  522. package/dist/local-devices/local-device-gateway.d.ts +134 -0
  523. package/dist/local-devices/local-device-gateway.js +542 -0
  524. package/dist/local-devices/local-device-provider.d.ts +89 -0
  525. package/dist/local-devices/local-device-provider.js +151 -0
  526. package/dist/local-devices/local-devices.module.d.ts +16 -0
  527. package/dist/local-devices/local-devices.module.js +44 -0
  528. package/dist/local-devices/machines.d.ts +118 -0
  529. package/dist/local-devices/machines.js +366 -0
  530. package/dist/local-devices/relay.d.ts +100 -0
  531. package/dist/local-devices/relay.js +373 -0
  532. package/dist/local-devices/targets.d.ts +28 -0
  533. package/dist/local-devices/targets.js +73 -0
  534. package/dist/log.d.ts +13 -1
  535. package/dist/log.js +93 -17
  536. package/dist/models/embeddings.d.ts +82 -0
  537. package/dist/models/embeddings.js +326 -0
  538. package/dist/models/enablement.controller.d.ts +40 -0
  539. package/dist/models/enablement.controller.js +74 -0
  540. package/dist/models/enablement.d.ts +101 -0
  541. package/dist/models/enablement.js +264 -0
  542. package/dist/models/models.module.d.ts +5 -1
  543. package/dist/models/models.module.js +16 -4
  544. package/dist/models/org-models.schemas.d.ts +8 -0
  545. package/dist/models/org-models.schemas.js +22 -0
  546. package/dist/models/prices.d.ts +8 -6
  547. package/dist/models/prices.js +11 -9
  548. package/dist/models/purposes.controller.d.ts +6 -4
  549. package/dist/models/purposes.controller.js +13 -7
  550. package/dist/models/purposes.d.ts +72 -14
  551. package/dist/models/purposes.js +115 -34
  552. package/dist/orgs/directory-sync.d.ts +14 -5
  553. package/dist/orgs/directory-sync.js +41 -17
  554. package/dist/orgs/offboarding.d.ts +12 -8
  555. package/dist/orgs/offboarding.js +54 -33
  556. package/dist/orgs/org-lock.d.ts +5 -0
  557. package/dist/orgs/org-lock.js +13 -0
  558. package/dist/orgs/org.guard.d.ts +10 -0
  559. package/dist/orgs/org.guard.js +43 -32
  560. package/dist/orgs/orgs.controller.d.ts +2 -5
  561. package/dist/orgs/orgs.controller.js +3 -6
  562. package/dist/orgs/orgs.module.js +3 -0
  563. package/dist/orgs/orgs.schemas.d.ts +8 -0
  564. package/dist/orgs/orgs.schemas.js +16 -0
  565. package/dist/orgs/orgs.service.d.ts +23 -8
  566. package/dist/orgs/orgs.service.js +38 -16
  567. package/dist/orgs/roles.d.ts +1 -1
  568. package/dist/orgs/roles.js +5 -1
  569. package/dist/orgs/settings.controller.d.ts +1 -1
  570. package/dist/orgs/settings.service.d.ts +66 -6
  571. package/dist/orgs/settings.service.js +89 -10
  572. package/dist/overrides.d.ts +16 -1
  573. package/dist/overrides.js +10 -0
  574. package/dist/platform/actor.d.ts +48 -0
  575. package/dist/platform/actor.js +100 -0
  576. package/dist/platform/agent-docs.d.ts +18 -0
  577. package/dist/platform/agent-docs.js +59 -0
  578. package/dist/platform/availability.d.ts +14 -0
  579. package/dist/platform/availability.js +43 -0
  580. package/dist/platform/errors.d.ts +28 -0
  581. package/dist/platform/errors.js +65 -0
  582. package/dist/platform/exclusions.d.ts +11 -0
  583. package/dist/platform/exclusions.js +774 -0
  584. package/dist/platform/method.d.ts +6 -0
  585. package/dist/platform/method.js +15 -0
  586. package/dist/platform/operation.d.ts +169 -0
  587. package/dist/platform/operation.js +102 -0
  588. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  589. package/dist/platform/ops/accounts.ops.js +291 -0
  590. package/dist/platform/ops/admin-items.ops.d.ts +37 -0
  591. package/dist/platform/ops/admin-items.ops.js +278 -0
  592. package/dist/platform/ops/admin.ops.d.ts +38 -0
  593. package/dist/platform/ops/admin.ops.js +497 -0
  594. package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
  595. package/dist/platform/ops/agent-skills.ops.js +509 -0
  596. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  597. package/dist/platform/ops/agent-templates.ops.js +272 -0
  598. package/dist/platform/ops/agents.ops.d.ts +37 -0
  599. package/dist/platform/ops/agents.ops.js +730 -0
  600. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  601. package/dist/platform/ops/approvals.ops.js +116 -0
  602. package/dist/platform/ops/background.ops.d.ts +14 -0
  603. package/dist/platform/ops/background.ops.js +134 -0
  604. package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
  605. package/dist/platform/ops/catalog-admin.ops.js +682 -0
  606. package/dist/platform/ops/channels.ops.d.ts +16 -0
  607. package/dist/platform/ops/channels.ops.js +195 -0
  608. package/dist/platform/ops/components.ops.d.ts +46 -0
  609. package/dist/platform/ops/components.ops.js +854 -0
  610. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  611. package/dist/platform/ops/connectors.ops.js +190 -0
  612. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  613. package/dist/platform/ops/conversations.ops.js +470 -0
  614. package/dist/platform/ops/devices.ops.d.ts +26 -0
  615. package/dist/platform/ops/devices.ops.js +311 -0
  616. package/dist/platform/ops/errors.d.ts +16 -0
  617. package/dist/platform/ops/errors.js +30 -0
  618. package/dist/platform/ops/evals.ops.d.ts +28 -0
  619. package/dist/platform/ops/evals.ops.js +783 -0
  620. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  621. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  622. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  623. package/dist/platform/ops/extensions.ops.js +347 -0
  624. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  625. package/dist/platform/ops/inbox.ops.js +381 -0
  626. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  627. package/dist/platform/ops/marketplaces.ops.js +466 -0
  628. package/dist/platform/ops/models.ops.d.ts +25 -0
  629. package/dist/platform/ops/models.ops.js +232 -0
  630. package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
  631. package/dist/platform/ops/org-plugins.ops.js +388 -0
  632. package/dist/platform/ops/org-settings.ops.d.ts +18 -0
  633. package/dist/platform/ops/org-settings.ops.js +127 -0
  634. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  635. package/dist/platform/ops/orgs.ops.js +298 -0
  636. package/dist/platform/ops/other-orgs.d.ts +20 -0
  637. package/dist/platform/ops/other-orgs.js +72 -0
  638. package/dist/platform/ops/paging.d.ts +14 -0
  639. package/dist/platform/ops/paging.js +20 -0
  640. package/dist/platform/ops/platform.ops.d.ts +30 -0
  641. package/dist/platform/ops/platform.ops.js +231 -0
  642. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  643. package/dist/platform/ops/plugins.ops.js +476 -0
  644. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  645. package/dist/platform/ops/previewers.ops.js +109 -0
  646. package/dist/platform/ops/requests.ops.d.ts +14 -0
  647. package/dist/platform/ops/requests.ops.js +191 -0
  648. package/dist/platform/ops/role.d.ts +4 -0
  649. package/dist/platform/ops/role.js +10 -0
  650. package/dist/platform/ops/setup.ops.d.ts +24 -0
  651. package/dist/platform/ops/setup.ops.js +212 -0
  652. package/dist/platform/ops/skills.ops.d.ts +17 -0
  653. package/dist/platform/ops/skills.ops.js +160 -0
  654. package/dist/platform/ops/summary.d.ts +10 -0
  655. package/dist/platform/ops/summary.js +18 -0
  656. package/dist/platform/ops/themes.ops.d.ts +14 -0
  657. package/dist/platform/ops/themes.ops.js +47 -0
  658. package/dist/platform/ops/ui.ops.d.ts +8 -0
  659. package/dist/platform/ops/ui.ops.js +41 -0
  660. package/dist/platform/ops/unavailable.d.ts +23 -0
  661. package/dist/platform/ops/unavailable.js +118 -0
  662. package/dist/platform/parity.d.ts +33 -0
  663. package/dist/platform/parity.js +272 -0
  664. package/dist/platform/platform-ops.module.d.ts +43 -0
  665. package/dist/platform/platform-ops.module.js +142 -0
  666. package/dist/platform/platform.module.d.ts +8 -0
  667. package/dist/platform/platform.module.js +25 -0
  668. package/dist/platform/registry.d.ts +30 -0
  669. package/dist/platform/registry.js +111 -0
  670. package/dist/platform/route-schemas.d.ts +18 -0
  671. package/dist/platform/route-schemas.js +85 -0
  672. package/dist/roles/gateway-role.d.ts +18 -3
  673. package/dist/roles/gateway-role.js +33 -5
  674. package/dist/roles/gateway.module.d.ts +2 -1
  675. package/dist/roles/gateway.module.js +6 -3
  676. package/dist/roles/worker-role.d.ts +6 -4
  677. package/dist/roles/worker-role.js +14 -7
  678. package/dist/roles/worker.module.d.ts +1 -1
  679. package/dist/roles/worker.module.js +21 -1
  680. package/dist/runtime/context/build.d.ts +21 -13
  681. package/dist/runtime/context/build.js +106 -29
  682. package/dist/runtime/context/claude-tools.d.ts +4 -1
  683. package/dist/runtime/context/claude-tools.js +13 -12
  684. package/dist/runtime/context/compaction.js +24 -1
  685. package/dist/runtime/context/device-paths.d.ts +40 -0
  686. package/dist/runtime/context/device-paths.js +48 -0
  687. package/dist/runtime/context/legacy-text.d.ts +22 -0
  688. package/dist/runtime/context/legacy-text.js +37 -0
  689. package/dist/runtime/context/reminders.d.ts +2 -0
  690. package/dist/runtime/context/reminders.js +2 -0
  691. package/dist/runtime/context/run-context.d.ts +65 -0
  692. package/dist/runtime/context/run-context.js +215 -0
  693. package/dist/runtime/context/skills.d.ts +29 -11
  694. package/dist/runtime/context/skills.js +46 -32
  695. package/dist/runtime/context/tool-changes.d.ts +27 -0
  696. package/dist/runtime/context/tool-changes.js +60 -0
  697. package/dist/runtime/hook-calls.d.ts +8 -1
  698. package/dist/runtime/hook-calls.js +40 -7
  699. package/dist/runtime/langgraph-loop.d.ts +3 -1
  700. package/dist/runtime/langgraph-loop.js +36 -17
  701. package/dist/runtime/loop.d.ts +35 -6
  702. package/dist/runtime/maintenance.d.ts +9 -4
  703. package/dist/runtime/maintenance.js +35 -8
  704. package/dist/runtime/model-call.d.ts +54 -11
  705. package/dist/runtime/model-call.js +105 -28
  706. package/dist/runtime/providers.d.ts +149 -29
  707. package/dist/runtime/providers.js +332 -63
  708. package/dist/runtime/run-context.service.d.ts +65 -0
  709. package/dist/runtime/run-context.service.js +236 -0
  710. package/dist/runtime/run-control.d.ts +11 -1
  711. package/dist/runtime/run-control.js +12 -0
  712. package/dist/runtime/run-drafts.d.ts +85 -0
  713. package/dist/runtime/run-drafts.js +230 -0
  714. package/dist/runtime/run-finish.d.ts +1 -1
  715. package/dist/runtime/run-jobs.d.ts +3 -5
  716. package/dist/runtime/run-jobs.js +7 -9
  717. package/dist/runtime/run-queue.d.ts +62 -5
  718. package/dist/runtime/run-queue.js +313 -40
  719. package/dist/runtime/run-worker.d.ts +19 -8
  720. package/dist/runtime/run-worker.js +105 -44
  721. package/dist/runtime/runtime.module.js +13 -3
  722. package/dist/runtime/step-log.d.ts +15 -4
  723. package/dist/runtime/step-log.js +24 -7
  724. package/dist/runtime/stream.controller.d.ts +23 -1
  725. package/dist/runtime/stream.controller.js +60 -3
  726. package/dist/runtime/stream.d.ts +4 -1
  727. package/dist/runtime/stream.js +27 -3
  728. package/dist/runtime/subagents/child.d.ts +55 -7
  729. package/dist/runtime/subagents/child.js +105 -7
  730. package/dist/runtime/subagents/definition.d.ts +31 -26
  731. package/dist/runtime/subagents/definition.js +89 -142
  732. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  733. package/dist/runtime/subagents/deliveries.js +228 -0
  734. package/dist/runtime/subagents/dispatch.d.ts +116 -27
  735. package/dist/runtime/subagents/dispatch.js +213 -142
  736. package/dist/runtime/subagents/limits.d.ts +24 -5
  737. package/dist/runtime/subagents/limits.js +40 -6
  738. package/dist/runtime/subagents/messages.d.ts +95 -0
  739. package/dist/runtime/subagents/messages.js +328 -0
  740. package/dist/runtime/subagents/org-agents.js +2 -1
  741. package/dist/runtime/subagents/preamble.d.ts +4 -4
  742. package/dist/runtime/subagents/preamble.js +9 -7
  743. package/dist/runtime/subagents/progress.d.ts +8 -6
  744. package/dist/runtime/subagents/progress.js +11 -6
  745. package/dist/runtime/subagents/render.d.ts +30 -0
  746. package/dist/runtime/subagents/render.js +53 -0
  747. package/dist/runtime/subagents/roster.d.ts +25 -8
  748. package/dist/runtime/subagents/roster.js +48 -12
  749. package/dist/runtime/subagents/skill-fork.d.ts +4 -3
  750. package/dist/runtime/subagents/skill-fork.js +9 -5
  751. package/dist/runtime/subagents/status.d.ts +14 -0
  752. package/dist/runtime/subagents/status.js +23 -0
  753. package/dist/runtime/subagents/subagents.service.d.ts +9 -6
  754. package/dist/runtime/subagents/subagents.service.js +13 -8
  755. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  756. package/dist/runtime/usage-report-jobs.js +158 -0
  757. package/dist/runtime/usage-report.d.ts +35 -39
  758. package/dist/runtime/usage-report.js +171 -97
  759. package/dist/runtime/waits.d.ts +148 -39
  760. package/dist/runtime/waits.js +426 -112
  761. package/dist/sandbox/jobs.d.ts +40 -13
  762. package/dist/sandbox/jobs.js +57 -20
  763. package/dist/sandbox/leases.d.ts +37 -54
  764. package/dist/sandbox/leases.js +71 -115
  765. package/dist/sandbox/providers.d.ts +34 -7
  766. package/dist/sandbox/providers.js +54 -9
  767. package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
  768. package/dist/sandbox/sandbox-file-reader.js +98 -0
  769. package/dist/sandbox/sandbox.module.d.ts +3 -2
  770. package/dist/sandbox/sandbox.module.js +10 -4
  771. package/dist/sandbox/sandbox.service.d.ts +345 -132
  772. package/dist/sandbox/sandbox.service.js +883 -399
  773. package/dist/sandbox/unreachable.d.ts +30 -0
  774. package/dist/sandbox/unreachable.js +108 -0
  775. package/dist/setup/kernel-checks.d.ts +91 -0
  776. package/dist/setup/kernel-checks.js +295 -0
  777. package/dist/setup/oauth-token-probe.d.ts +47 -0
  778. package/dist/setup/oauth-token-probe.js +108 -0
  779. package/dist/setup/redact-check.d.ts +18 -0
  780. package/dist/setup/redact-check.js +46 -0
  781. package/dist/setup/setup-check-registry.d.ts +86 -0
  782. package/dist/setup/setup-check-registry.js +75 -0
  783. package/dist/setup/setup-checks.controller.d.ts +28 -0
  784. package/dist/setup/setup-checks.controller.js +78 -0
  785. package/dist/setup/setup-checks.schemas.d.ts +38 -0
  786. package/dist/setup/setup-checks.schemas.js +43 -0
  787. package/dist/setup/setup-checks.service.d.ts +144 -0
  788. package/dist/setup/setup-checks.service.js +683 -0
  789. package/dist/setup/setup-guides.controller.d.ts +18 -0
  790. package/dist/setup/setup-guides.controller.js +48 -0
  791. package/dist/setup/setup-guides.schemas.d.ts +10 -0
  792. package/dist/setup/setup-guides.schemas.js +6 -0
  793. package/dist/setup/setup-guides.service.d.ts +126 -0
  794. package/dist/setup/setup-guides.service.js +315 -0
  795. package/dist/setup/setup.module.d.ts +8 -0
  796. package/dist/setup/setup.module.js +31 -0
  797. package/dist/skills/agent-skills.controller.d.ts +48 -0
  798. package/dist/skills/agent-skills.controller.js +131 -0
  799. package/dist/skills/agent-skills.service.d.ts +262 -0
  800. package/dist/skills/agent-skills.service.js +996 -0
  801. package/dist/skills/catalog.d.ts +14 -11
  802. package/dist/skills/catalog.js +32 -50
  803. package/dist/skills/changes.controller.d.ts +12 -22
  804. package/dist/skills/changes.controller.js +27 -56
  805. package/dist/skills/changes.service.d.ts +69 -115
  806. package/dist/skills/changes.service.js +249 -598
  807. package/dist/skills/conversation-catalog.d.ts +53 -0
  808. package/dist/skills/conversation-catalog.js +149 -0
  809. package/dist/skills/invocable.controller.d.ts +1 -1
  810. package/dist/skills/invocable.controller.js +2 -2
  811. package/dist/skills/invocation-keys.d.ts +1 -1
  812. package/dist/skills/invocation-keys.js +1 -1
  813. package/dist/skills/invoke.d.ts +3 -3
  814. package/dist/skills/invoke.js +21 -8
  815. package/dist/skills/package.d.ts +15 -1
  816. package/dist/skills/package.js +14 -1
  817. package/dist/skills/skills.controller.d.ts +32 -6
  818. package/dist/skills/skills.controller.js +64 -11
  819. package/dist/skills/skills.module.js +25 -3
  820. package/dist/skills/skills.schemas.d.ts +44 -0
  821. package/dist/skills/skills.schemas.js +68 -0
  822. package/dist/skills/skills.service.d.ts +123 -26
  823. package/dist/skills/skills.service.js +493 -76
  824. package/dist/skills/usable.d.ts +82 -0
  825. package/dist/skills/usable.js +388 -0
  826. package/dist/themes/render-css.d.ts +13 -0
  827. package/dist/themes/render-css.js +135 -0
  828. package/dist/themes/theme-delivery.service.d.ts +36 -0
  829. package/dist/themes/theme-delivery.service.js +116 -0
  830. package/dist/themes/theme-state.d.ts +116 -0
  831. package/dist/themes/theme-state.js +221 -0
  832. package/dist/themes/theme-usage.d.ts +61 -0
  833. package/dist/themes/theme-usage.js +98 -0
  834. package/dist/themes/themes-public.controller.d.ts +33 -0
  835. package/dist/themes/themes-public.controller.js +98 -0
  836. package/dist/themes/themes.controller.d.ts +13 -0
  837. package/dist/themes/themes.controller.js +38 -0
  838. package/dist/themes/themes.module.d.ts +3 -0
  839. package/dist/themes/themes.module.js +21 -0
  840. package/dist/themes/themes.schemas.d.ts +3 -0
  841. package/dist/themes/themes.schemas.js +2 -0
  842. package/dist/themes/themes.service.d.ts +50 -0
  843. package/dist/themes/themes.service.js +99 -0
  844. package/dist/time-zone.d.ts +5 -0
  845. package/dist/time-zone.js +19 -0
  846. package/dist/tools/admin-connectors.d.ts +69 -0
  847. package/dist/tools/admin-connectors.js +135 -0
  848. package/dist/tools/approvals.controller.js +2 -3
  849. package/dist/tools/approvals.schemas.d.ts +21 -0
  850. package/dist/tools/approvals.schemas.js +15 -0
  851. package/dist/tools/approvals.service.d.ts +26 -2
  852. package/dist/tools/approvals.service.js +44 -5
  853. package/dist/tools/builtin-names.d.ts +104 -0
  854. package/dist/tools/builtin-names.js +164 -0
  855. package/dist/tools/builtins/agent.d.ts +27 -25
  856. package/dist/tools/builtins/agent.js +66 -63
  857. package/dist/tools/builtins/ask-user.d.ts +1 -1
  858. package/dist/tools/builtins/ask-user.js +5 -4
  859. package/dist/tools/builtins/builtin-tools.d.ts +23 -4
  860. package/dist/tools/builtins/builtin-tools.js +78 -12
  861. package/dist/tools/builtins/current-time.d.ts +26 -0
  862. package/dist/tools/builtins/current-time.js +99 -0
  863. package/dist/tools/builtins/handback.d.ts +28 -0
  864. package/dist/tools/builtins/handback.js +53 -0
  865. package/dist/tools/builtins/platform.d.ts +51 -0
  866. package/dist/tools/builtins/platform.js +451 -0
  867. package/dist/tools/builtins/read-tool-output.d.ts +1 -1
  868. package/dist/tools/builtins/read-tool-output.js +2 -2
  869. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  870. package/dist/tools/builtins/sandbox/bash.js +291 -39
  871. package/dist/tools/builtins/sandbox/common.d.ts +135 -36
  872. package/dist/tools/builtins/sandbox/common.js +222 -62
  873. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  874. package/dist/tools/builtins/sandbox/deliver.js +19 -16
  875. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  876. package/dist/tools/builtins/sandbox/edit.js +64 -50
  877. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  878. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  879. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  880. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  881. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  882. package/dist/tools/builtins/sandbox/glob.js +17 -12
  883. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  884. package/dist/tools/builtins/sandbox/grep.js +153 -34
  885. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  886. package/dist/tools/builtins/sandbox/index.js +13 -5
  887. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  888. package/dist/tools/builtins/sandbox/read.js +29 -19
  889. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  890. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  891. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  892. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  893. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  894. package/dist/tools/builtins/sandbox/write.js +51 -44
  895. package/dist/tools/builtins/send-message.d.ts +56 -0
  896. package/dist/tools/builtins/send-message.js +100 -0
  897. package/dist/tools/builtins/skill-load.d.ts +29 -18
  898. package/dist/tools/builtins/skill-load.js +125 -73
  899. package/dist/tools/builtins/tool-search.d.ts +13 -9
  900. package/dist/tools/builtins/tool-search.js +25 -14
  901. package/dist/tools/builtins/web/errors.d.ts +8 -0
  902. package/dist/tools/builtins/web/errors.js +53 -0
  903. package/dist/tools/builtins/web/extract.d.ts +62 -0
  904. package/dist/tools/builtins/web/extract.js +271 -0
  905. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  906. package/dist/tools/builtins/web/fetch.js +175 -0
  907. package/dist/tools/builtins/web/index.d.ts +13 -0
  908. package/dist/tools/builtins/web/index.js +12 -0
  909. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  910. package/dist/tools/builtins/web/page-cache.js +77 -0
  911. package/dist/tools/builtins/web/search.d.ts +25 -0
  912. package/dist/tools/builtins/web/search.js +210 -0
  913. package/dist/tools/builtins/web/url.d.ts +17 -0
  914. package/dist/tools/builtins/web/url.js +43 -0
  915. package/dist/tools/connector-account-policies.d.ts +51 -0
  916. package/dist/tools/connector-account-policies.js +165 -0
  917. package/dist/tools/connectors.controller.d.ts +74 -9
  918. package/dist/tools/connectors.controller.js +133 -16
  919. package/dist/tools/connectors.schemas.d.ts +27 -0
  920. package/dist/tools/connectors.schemas.js +34 -0
  921. package/dist/tools/connectors.service.d.ts +101 -8
  922. package/dist/tools/connectors.service.js +266 -28
  923. package/dist/tools/credentials.d.ts +23 -0
  924. package/dist/tools/credentials.js +90 -1
  925. package/dist/tools/display-names.d.ts +9 -0
  926. package/dist/tools/display-names.js +24 -0
  927. package/dist/tools/drift.js +5 -5
  928. package/dist/tools/elicitation.js +1 -1
  929. package/dist/tools/extension-tools.controller.d.ts +14 -0
  930. package/dist/tools/extension-tools.controller.js +37 -0
  931. package/dist/tools/info.d.ts +61 -4
  932. package/dist/tools/info.js +119 -33
  933. package/dist/tools/legacy-data.d.ts +34 -0
  934. package/dist/tools/legacy-data.js +76 -0
  935. package/dist/tools/legacy-keys.d.ts +51 -0
  936. package/dist/tools/legacy-keys.js +114 -0
  937. package/dist/tools/naming.d.ts +1 -5
  938. package/dist/tools/naming.js +1 -7
  939. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  940. package/dist/tools/oauth/flow-paths.js +1 -1
  941. package/dist/tools/oauth/flow.js +1 -1
  942. package/dist/tools/oauth/tokens.d.ts +54 -7
  943. package/dist/tools/oauth/tokens.js +87 -17
  944. package/dist/tools/org-tool-switches.d.ts +89 -0
  945. package/dist/tools/org-tool-switches.js +201 -0
  946. package/dist/tools/outputs.js +1 -1
  947. package/dist/tools/pipeline.d.ts +67 -47
  948. package/dist/tools/pipeline.js +319 -380
  949. package/dist/tools/policy.d.ts +30 -23
  950. package/dist/tools/policy.js +142 -64
  951. package/dist/tools/questions.controller.d.ts +1 -1
  952. package/dist/tools/questions.controller.js +1 -1
  953. package/dist/tools/questions.service.d.ts +23 -2
  954. package/dist/tools/questions.service.js +104 -2
  955. package/dist/tools/registry.d.ts +189 -68
  956. package/dist/tools/registry.js +318 -236
  957. package/dist/tools/resources.d.ts +1 -1
  958. package/dist/tools/resources.js +1 -1
  959. package/dist/tools/tools.module.js +31 -3
  960. package/dist/tools/validate.js +1 -1
  961. package/dist/ui/admin-ui.controller.d.ts +56 -0
  962. package/dist/ui/admin-ui.controller.js +192 -0
  963. package/dist/ui/arrangement.d.ts +65 -0
  964. package/dist/ui/arrangement.js +171 -0
  965. package/dist/ui/embed-token.d.ts +2 -2
  966. package/dist/ui/embed-token.js +30 -5
  967. package/dist/ui/registry.d.ts +42 -17
  968. package/dist/ui/registry.js +46 -14
  969. package/dist/ui/slots.controller.d.ts +11 -0
  970. package/dist/ui/slots.controller.js +25 -0
  971. package/dist/ui/ui-stream.d.ts +20 -3
  972. package/dist/ui/ui-stream.js +25 -7
  973. package/dist/ui/ui.schemas.d.ts +70 -0
  974. package/dist/ui/ui.schemas.js +65 -0
  975. package/dist/ui/views.controller.d.ts +35 -49
  976. package/dist/ui/views.controller.js +48 -70
  977. package/dist/ui/views.d.ts +112 -18
  978. package/dist/ui/views.js +254 -47
  979. package/package.json +6 -3
  980. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  981. package/src/migrations/0064_account_last_org.sql +7 -0
  982. package/src/migrations/0065_conversation_archive.sql +8 -0
  983. package/src/migrations/0066_extension_display_name.sql +4 -0
  984. package/src/migrations/0067_agent_profiles.sql +20 -0
  985. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  986. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  987. package/src/migrations/0070_background_tasks.sql +37 -0
  988. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  989. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  990. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  991. package/src/migrations/0074_subagent_tree.sql +50 -0
  992. package/src/migrations/0075_plugin_scope.sql +61 -0
  993. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  994. package/src/migrations/0077_scope_requests.sql +52 -0
  995. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  996. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  997. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  998. package/src/migrations/0081_platform_components.sql +129 -0
  999. package/src/migrations/0082_platform_migration.sql +33 -0
  1000. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1001. package/src/migrations/0084_org_owned_items.sql +85 -0
  1002. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1003. package/src/migrations/0086_org_layering.sql +30 -0
  1004. package/src/migrations/0087_approval_summary.sql +6 -0
  1005. package/src/migrations/0088_environments.sql +80 -0
  1006. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1007. package/src/migrations/0090_initial_passwords.sql +27 -0
  1008. package/src/migrations/0091_account_time_zone.sql +4 -0
  1009. package/src/migrations/0092_tools_default_on.sql +27 -0
  1010. package/src/migrations/0093_connected_environments.sql +37 -0
  1011. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1012. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1013. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1014. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1015. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1016. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1017. package/src/migrations/0100_catalog_files.sql +13 -0
  1018. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1019. package/src/migrations/0102_themes.sql +64 -0
  1020. package/src/migrations/0103_ui_theme_setting.sql +7 -0
  1021. package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
  1022. package/src/migrations/0105_devices_rename.sql +136 -0
  1023. package/src/migrations/0106_setup_guides_v2.sql +10 -0
  1024. package/src/migrations/0107_extension_client_builds.sql +50 -0
  1025. package/src/migrations/0108_question_skipped.sql +6 -0
  1026. package/src/migrations/0109_audit_platform_idx.sql +5 -0
  1027. package/src/migrations/0110_usage_time_idx.sql +8 -0
  1028. package/src/migrations/0111_agent_skill_sharing.sql +22 -0
  1029. package/src/migrations/0112_skill_share_requests.sql +4 -0
  1030. package/dist/catalog/upgrade-targets.d.ts +0 -56
  1031. package/dist/catalog/upgrade-targets.js +0 -90
  1032. package/dist/conversations/sandbox-status.d.ts +0 -24
  1033. package/dist/conversations/sandbox-status.js +0 -52
  1034. package/dist/extensions/org-config.controller.d.ts +0 -24
  1035. package/dist/extensions/org-config.controller.js +0 -62
  1036. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1037. package/dist/tools/builtins/sandbox/names.js +0 -20
  1038. package/dist/tools/builtins/skill-write.d.ts +0 -59
  1039. package/dist/tools/builtins/skill-write.js +0 -244
@@ -15,17 +15,19 @@ import { ApiError } from "../errors.js";
15
15
  import { KernelDb } from "../infra/database/kernel-db.js";
16
16
  import { TransactionHost } from "../infra/database/transaction-host.js";
17
17
  import { Transactional } from "../infra/database/transactional.decorator.js";
18
+ import { assertThemeOnForAccount } from "../themes/theme-state.js";
18
19
  import { audit } from "./audit.js";
19
- import { EnterpriseAdminLock, EnterpriseAdminLockModule } from "./enterprise-admin.js";
20
20
  import { MAX_PASSWORD_LENGTH, normalizeLogin, validatePassword } from "./login.js";
21
21
  import { DUMMY_PASSWORD_HASH, hashPassword, verifyPassword } from "./passwords.js";
22
+ import { SuperAdminLock, SuperAdminLockModule } from "./super-admin.js";
22
23
  /** 构造 `Account` 所需的 accounts 列(供跨表查询 select 使用)。 */
23
24
  export const ACCOUNT_COLUMNS = [
24
25
  "accounts.id",
25
26
  "accounts.display_name",
26
27
  "accounts.email",
27
28
  "accounts.status",
28
- "accounts.is_enterprise_admin",
29
+ "accounts.is_super_admin",
30
+ "accounts.must_change_password",
29
31
  "accounts.created_at",
30
32
  ];
31
33
  export function toAccount(r) {
@@ -34,7 +36,8 @@ export function toAccount(r) {
34
36
  displayName: r.display_name,
35
37
  email: r.email,
36
38
  status: r.status,
37
- isEnterpriseAdmin: r.is_enterprise_admin,
39
+ isSuperAdmin: r.is_super_admin,
40
+ mustChangePassword: r.must_change_password,
38
41
  createdAt: r.created_at,
39
42
  };
40
43
  }
@@ -82,15 +85,42 @@ let AccountsService = class AccountsService {
82
85
  return this.insertLocal(await prepareLocal(input, passwordHash));
83
86
  }
84
87
  /**
85
- * An enterprise admin creates a local account (optionally an enterprise admin): under the
86
- * enterprise admin lock, re-checks that the actor is still an active enterprise admin (else
88
+ * A super admin creates a local account (optionally a super admin): under the
89
+ * super admin lock, re-checks that the actor is still an active super admin (else
87
90
  * `forbidden`), creates the account and audits `account.created`. The hash is computed before
88
91
  * the lock.
89
92
  */
90
- async createByAdmin(input, actorAccountId, actorTokenId) {
91
- return this.createByAdminIn(await prepareLocal(input), actorAccountId, actorTokenId);
93
+ async createByAdmin(input, actorAccountId, actorTokenId, opts = {}) {
94
+ return this.createByAdminIn(await prepareLocal(input), actorAccountId, actorTokenId, opts);
92
95
  }
93
- async createByAdminIn(prepared, actorAccountId, actorTokenId) {
96
+ /**
97
+ * Whether `login` is free for a new local account (`account.login_taken` otherwise) and well
98
+ * formed (`validation_failed`): the read a caller checks before asking a person to confirm.
99
+ */
100
+ async assertLoginFree(login) {
101
+ const external = normalizeLogin(login);
102
+ const taken = await this.db
103
+ .selectFrom("identities")
104
+ .select("account_id")
105
+ .where("source", "=", "local")
106
+ .where("external_id", "=", external)
107
+ .executeTakeFirst();
108
+ if (taken)
109
+ throw new ApiError("account.login_taken", "Login is already taken");
110
+ }
111
+ /** The local login of each account that has one (accounts without are left out). */
112
+ async localLogins(accountIds) {
113
+ if (accountIds.length === 0)
114
+ return new Map();
115
+ const rows = await this.db
116
+ .selectFrom("identities")
117
+ .select(["account_id", "external_id"])
118
+ .where("source", "=", "local")
119
+ .where("account_id", "in", accountIds)
120
+ .execute();
121
+ return new Map(rows.map((r) => [r.account_id, r.external_id]));
122
+ }
123
+ async createByAdminIn(prepared, actorAccountId, actorTokenId, opts) {
94
124
  await this.adminLock.lockAndAuthorize(actorAccountId);
95
125
  const a = await this.insertLocal(prepared);
96
126
  await audit(this.db.db, {
@@ -98,45 +128,50 @@ let AccountsService = class AccountsService {
98
128
  ...(actorTokenId !== undefined && { actorTokenId }),
99
129
  action: "account.created",
100
130
  target: a.id,
101
- detail: { enterpriseAdmin: a.isEnterpriseAdmin },
131
+ detail: {
132
+ superAdmin: a.isSuperAdmin,
133
+ ...(a.mustChangePassword && { mustChangePassword: true }),
134
+ ...opts.auditDetail,
135
+ },
102
136
  });
137
+ await opts.inTransaction?.(a);
103
138
  return a;
104
139
  }
105
140
  /**
106
- * CLI: creates an enterprise admin without checking whether the deployment is set up; a taken
141
+ * CLI: creates a super admin without checking whether the deployment is set up; a taken
107
142
  * login → `account.login_taken`.
108
143
  */
109
- async createEnterpriseAdmin(input) {
110
- return this.insertEnterpriseAdmin(input, await this.hashNewPassword(input.password));
144
+ async createSuperAdmin(input) {
145
+ return this.insertSuperAdmin(input, await this.hashNewPassword(input.password));
111
146
  }
112
147
  /**
113
- * CLI `admin create --if-none`: creates an enterprise admin only when no active one exists. The
148
+ * CLI `admin create --if-none`: creates a super admin only when no active one exists. The
114
149
  * check and the insert run in one transaction under {@link SetupLock}, the lock the web setup
115
150
  * takes, so concurrent runs (and a concurrent web setup) create exactly one. Returns undefined
116
- * when an active enterprise admin already exists; a taken login still throws
151
+ * when an active super admin already exists; a taken login still throws
117
152
  * `account.login_taken`.
118
153
  */
119
- async createEnterpriseAdminIfNone(input) {
120
- return this.createEnterpriseAdminIfNoneIn(input, await this.hashNewPassword(input.password));
154
+ async createSuperAdminIfNone(input) {
155
+ return this.createSuperAdminIfNoneIn(input, await this.hashNewPassword(input.password));
121
156
  }
122
- async createEnterpriseAdminIfNoneIn(input, passwordHash) {
157
+ async createSuperAdminIfNoneIn(input, passwordHash) {
123
158
  await this.setupLock.lock();
124
- if ((await this.countEnterpriseAdmins()) > 0)
159
+ if ((await this.countSuperAdmins()) > 0)
125
160
  return undefined;
126
- return this.insertEnterpriseAdmin(input, passwordHash);
161
+ return this.insertSuperAdmin(input, passwordHash);
127
162
  }
128
- async insertEnterpriseAdmin(input, passwordHash) {
163
+ async insertSuperAdmin(input, passwordHash) {
129
164
  const account = await this.createLocal({
130
165
  login: input.login,
131
166
  password: input.password,
132
167
  displayName: input.displayName,
133
- enterpriseAdmin: true,
168
+ superAdmin: true,
134
169
  ...(input.email !== undefined && { email: input.email }),
135
170
  }, passwordHash);
136
171
  await audit(this.db.db, {
137
172
  action: "account.created",
138
173
  target: account.id,
139
- detail: { enterpriseAdmin: true, via: "cli" },
174
+ detail: { superAdmin: true, via: "cli" },
140
175
  });
141
176
  return account;
142
177
  }
@@ -163,7 +198,8 @@ let AccountsService = class AccountsService {
163
198
  "accounts.email",
164
199
  "accounts.email_verified",
165
200
  "accounts.status",
166
- "accounts.is_enterprise_admin",
201
+ "accounts.is_super_admin",
202
+ "accounts.must_change_password",
167
203
  "accounts.created_at",
168
204
  "accounts.updated_at",
169
205
  "local_passwords.password_hash",
@@ -201,6 +237,39 @@ let AccountsService = class AccountsService {
201
237
  .executeTakeFirst();
202
238
  return row && toAccount(row);
203
239
  }
240
+ /**
241
+ * A person's preferences: `timeZone` is their time zone setting (IANA), null = follow the browser
242
+ * (run context spec §3.4); `theme` their theme (a `platform_themes` id), null = follow the org
243
+ * (themes spec §7). Missing account -> nulls.
244
+ */
245
+ async preferences(accountId) {
246
+ const row = await this.db
247
+ .selectFrom("accounts")
248
+ .select(["time_zone", "theme"])
249
+ .where("id", "=", accountId)
250
+ .executeTakeFirst();
251
+ return { timeZone: row?.time_zone ?? null, theme: row?.theme ?? null };
252
+ }
253
+ /**
254
+ * Updates the preferences given (a field left out keeps its value; the caller validated the time
255
+ * zone). A theme must be on in at least one of the person's orgs, else 400 `theme.not_available`.
256
+ */
257
+ async setPreferences(accountId, prefs) {
258
+ if (prefs.theme != null)
259
+ await assertThemeOnForAccount(this.db.db, accountId, prefs.theme);
260
+ const set = {
261
+ ...(prefs.timeZone !== undefined && { time_zone: prefs.timeZone }),
262
+ ...(prefs.theme !== undefined && { theme: prefs.theme }),
263
+ };
264
+ if (Object.keys(set).length > 0) {
265
+ await this.db
266
+ .updateTable("accounts")
267
+ .set({ ...set, updated_at: new Date() })
268
+ .where("id", "=", accountId)
269
+ .execute();
270
+ }
271
+ return this.preferences(accountId);
272
+ }
204
273
  /** 按 id 升序分页,`after` 为上一页最后一个 id。 */
205
274
  async list(opts) {
206
275
  let q = this.db.selectFrom("accounts").selectAll().orderBy("id").limit(opts.limit);
@@ -224,6 +293,17 @@ let AccountsService = class AccountsService {
224
293
  }
225
294
  async changePasswordIn(accountId, passwordHash, exceptSessionId) {
226
295
  await this.writePassword(accountId, passwordHash);
296
+ // the person set their own password: the generated one is no longer theirs to be shown
297
+ await this.db
298
+ .updateTable("accounts")
299
+ .set({ must_change_password: false })
300
+ .where("id", "=", accountId)
301
+ .where("must_change_password", "=", true)
302
+ .execute();
303
+ await this.db
304
+ .deleteFrom("account_initial_passwords")
305
+ .where("account_id", "=", accountId)
306
+ .execute();
227
307
  const sessions = await this.db
228
308
  .updateTable("sessions")
229
309
  .set({ revoked_at: sql `now()` })
@@ -245,13 +325,13 @@ let AccountsService = class AccountsService {
245
325
  return (await this.updateAccount(id, patch, actorAccountId, actorTokenId)).account;
246
326
  }
247
327
  /**
248
- * An enterprise admin changes an account. Disabling (`status: "disabled"`) revokes the
328
+ * A super admin changes an account. Disabling (`status: "disabled"`) revokes the
249
329
  * account's sessions (`sessions.revoked_at`) and personal tokens in **the same PG transaction**,
250
330
  * all or nothing; returns the revoked session ids, whose Redis markers the caller writes after
251
331
  * the commit (the fast path; a failure is only a warning: auth reads PG).
252
332
  */
253
- async updateAccount(id, patch, actorAccountId, actorTokenId) {
254
- // Every enterprise admin write is serialized by one lock and re-checks the actor under it: two
333
+ async updateAccount(id, patch, actorAccountId, actorTokenId, opts = {}) {
334
+ // Every super admin write is serialized by one lock and re-checks the actor under it: two
255
335
  // admins revoking each other concurrently cannot leave none, and a just-revoked admin's
256
336
  // request in flight fails
257
337
  await this.adminLock.lockAndAuthorize(actorAccountId);
@@ -265,18 +345,18 @@ let AccountsService = class AccountsService {
265
345
  return this.applyUpdate(before, patch, {
266
346
  actorAccountId,
267
347
  ...(actorTokenId !== undefined && { actorTokenId }),
268
- detail: patch,
348
+ detail: { ...patch, ...opts.auditDetail },
269
349
  });
270
350
  }
271
351
  /**
272
- * The CLI's `capybara admin grant|revoke <login>` (no actor account): changes the enterprise
273
- * admin flag by local login under the enterprise admin lock; revoking keeps the
274
- * {@link updateAccount} "last active enterprise admin" check (`account.last_enterprise_admin`),
352
+ * The CLI's `capybara admin grant|revoke <login>` (no actor account): changes the super
353
+ * admin flag by local login under the super admin lock; revoking keeps the
354
+ * {@link updateAccount} "last active super admin" check (`account.last_super_admin`),
275
355
  * decided under the lock, so it cannot race a web revoke into none. Audit `account.updated`
276
356
  * without an actor, `detail.via = "cli"`. Already in the target state → no change and no audit
277
357
  * (`changed: false`). Unknown login → `account.not_found`.
278
358
  */
279
- async setEnterpriseAdminByLogin(login, isEnterpriseAdmin) {
359
+ async setSuperAdminByLogin(login, isSuperAdmin) {
280
360
  let external;
281
361
  try {
282
362
  external = normalizeLogin(login);
@@ -284,9 +364,9 @@ let AccountsService = class AccountsService {
284
364
  catch {
285
365
  throw new ApiError("account.not_found", "Account not found");
286
366
  }
287
- return this.setEnterpriseAdminIn(external, isEnterpriseAdmin);
367
+ return this.setSuperAdminIn(external, isSuperAdmin);
288
368
  }
289
- async setEnterpriseAdminIn(external, isEnterpriseAdmin) {
369
+ async setSuperAdminIn(external, isSuperAdmin) {
290
370
  await this.adminLock.lock();
291
371
  const before = await this.db
292
372
  .selectFrom("identities")
@@ -297,10 +377,10 @@ let AccountsService = class AccountsService {
297
377
  .executeTakeFirst();
298
378
  if (!before)
299
379
  throw new ApiError("account.not_found", "Account not found");
300
- if (before.is_enterprise_admin === isEnterpriseAdmin) {
380
+ if (before.is_super_admin === isSuperAdmin) {
301
381
  return { account: toAccount(before), changed: false };
302
382
  }
303
- const patch = { isEnterpriseAdmin };
383
+ const patch = { isSuperAdmin };
304
384
  const { account } = await this.applyUpdate(before, patch, {
305
385
  detail: { ...patch, via: "cli" },
306
386
  });
@@ -314,12 +394,12 @@ let AccountsService = class AccountsService {
314
394
  .executeTakeFirstOrThrow();
315
395
  return Number(r.n);
316
396
  }
317
- /** Active (status = active) enterprise admins, in the context's transaction when there is one. */
318
- async countEnterpriseAdmins() {
397
+ /** Active (status = active) super admins, in the context's transaction when there is one. */
398
+ async countSuperAdmins() {
319
399
  const r = await this.db
320
400
  .selectFrom("accounts")
321
401
  .select((eb) => eb.fn.countAll().as("n"))
322
- .where("is_enterprise_admin", "=", true)
402
+ .where("is_super_admin", "=", true)
323
403
  .where("status", "=", "active")
324
404
  .executeTakeFirstOrThrow();
325
405
  return Number(r.n);
@@ -334,7 +414,8 @@ let AccountsService = class AccountsService {
334
414
  id,
335
415
  display_name: input.displayName,
336
416
  email: input.email ?? null,
337
- is_enterprise_admin: input.enterpriseAdmin ?? false,
417
+ is_super_admin: input.superAdmin ?? false,
418
+ must_change_password: input.mustChangePassword ?? false,
338
419
  })
339
420
  .returningAll()
340
421
  .executeTakeFirstOrThrow();
@@ -380,8 +461,8 @@ let AccountsService = class AccountsService {
380
461
  .execute();
381
462
  }
382
463
  /**
383
- * Changes the account under the enterprise admin lock the caller holds: updates the row,
384
- * re-checks "the last active enterprise admin", audits `account.updated`; disabling revokes the
464
+ * Changes the account under the super admin lock the caller holds: updates the row,
465
+ * re-checks "the last active super admin", audits `account.updated`; disabling revokes the
385
466
  * account's sessions and personal tokens.
386
467
  */
387
468
  async applyUpdate(before, patch, auditAs) {
@@ -391,18 +472,18 @@ let AccountsService = class AccountsService {
391
472
  values.display_name = patch.displayName;
392
473
  if (patch.status !== undefined)
393
474
  values.status = patch.status;
394
- if (patch.isEnterpriseAdmin !== undefined)
395
- values.is_enterprise_admin = patch.isEnterpriseAdmin;
475
+ if (patch.isSuperAdmin !== undefined)
476
+ values.is_super_admin = patch.isSuperAdmin;
396
477
  const row = await this.db
397
478
  .updateTable("accounts")
398
479
  .set(values)
399
480
  .where("id", "=", id)
400
481
  .returningAll()
401
482
  .executeTakeFirstOrThrow();
402
- const wasActiveAdmin = before.is_enterprise_admin && before.status === "active";
403
- const isActiveAdmin = row.is_enterprise_admin && row.status === "active";
404
- if (wasActiveAdmin && !isActiveAdmin && (await this.countEnterpriseAdmins()) === 0) {
405
- throw new ApiError("account.last_enterprise_admin", "Cannot remove the last active enterprise admin");
483
+ const wasActiveAdmin = before.is_super_admin && before.status === "active";
484
+ const isActiveAdmin = row.is_super_admin && row.status === "active";
485
+ if (wasActiveAdmin && !isActiveAdmin && (await this.countSuperAdmins()) === 0) {
486
+ throw new ApiError("account.last_super_admin", "Cannot remove the last active super admin");
406
487
  }
407
488
  await audit(this.db.db, {
408
489
  ...(auditAs.actorAccountId !== undefined && { actorAccountId: auditAs.actorAccountId }),
@@ -439,10 +520,10 @@ __decorate([
439
520
  ], AccountsService.prototype, "createByAdminIn", null);
440
521
  __decorate([
441
522
  Transactional()
442
- ], AccountsService.prototype, "createEnterpriseAdminIfNoneIn", null);
523
+ ], AccountsService.prototype, "createSuperAdminIfNoneIn", null);
443
524
  __decorate([
444
525
  Transactional()
445
- ], AccountsService.prototype, "insertEnterpriseAdmin", null);
526
+ ], AccountsService.prototype, "insertSuperAdmin", null);
446
527
  __decorate([
447
528
  Transactional()
448
529
  ], AccountsService.prototype, "changePasswordIn", null);
@@ -451,7 +532,7 @@ __decorate([
451
532
  ], AccountsService.prototype, "updateAccount", null);
452
533
  __decorate([
453
534
  Transactional()
454
- ], AccountsService.prototype, "setEnterpriseAdminIn", null);
535
+ ], AccountsService.prototype, "setSuperAdminIn", null);
455
536
  __decorate([
456
537
  Transactional()
457
538
  ], AccountsService.prototype, "insertLocal", null);
@@ -465,7 +546,7 @@ AccountsService = __decorate([
465
546
  Injectable(),
466
547
  __param(0, Inject(KernelDb)),
467
548
  __param(1, Inject(TransactionHost)),
468
- __param(2, Inject(EnterpriseAdminLock)),
549
+ __param(2, Inject(SuperAdminLock)),
469
550
  __param(3, Inject(SetupLock))
470
551
  ], AccountsService);
471
552
  export { AccountsService };
@@ -478,7 +559,7 @@ let AccountsModule = class AccountsModule {
478
559
  };
479
560
  AccountsModule = __decorate([
480
561
  Module({
481
- imports: [SetupLockModule, EnterpriseAdminLockModule],
562
+ imports: [SetupLockModule, SuperAdminLockModule],
482
563
  providers: [AccountsService],
483
564
  exports: [AccountsService],
484
565
  })
@@ -5,7 +5,8 @@ import type { KernelSchemaDb } from "../db/kernel-schema.js";
5
5
  * so the event commits or rolls back with the write it records.
6
6
  */
7
7
  export declare function audit(db: KernelSchemaDb, e: {
8
- actorAccountId?: string;
8
+ /** The acting account; absent or null for the kernel itself (a job such as the scope sync). */
9
+ actorAccountId?: string | null;
9
10
  actorTokenId?: string;
10
11
  orgId?: string;
11
12
  action: string;
@@ -15,7 +15,7 @@ import { CredentialThrottler } from "../infra/throttler/credential-throttler.js"
15
15
  import { createZodDto } from "../infra/validation/create-zod-dto.js";
16
16
  import { ZBody } from "../infra/validation/zod-params.js";
17
17
  import { AccountsService } from "./accounts.js";
18
- import { ACCESS_COOKIE, clearSessionCookies, REFRESH_COOKIE, setSessionCookies, } from "./cookies.js";
18
+ import { ACCESS_COOKIE, clearSessionCookies, refreshCookieValues, setSessionCookies, } from "./cookies.js";
19
19
  import { Public } from "./principal.js";
20
20
  import { SessionService } from "./sessions.js";
21
21
  const LoginBodySchema = z.object({ login: z.string().max(256), password: z.string() });
@@ -74,9 +74,13 @@ let AuthController = class AuthController {
74
74
  */
75
75
  async refresh(req, reply) {
76
76
  try {
77
- const rt = req.cookies[REFRESH_COOKIE];
78
- if (!rt)
77
+ // the header may carry several cap_rt (legacy Path and Path=/): the current one of a live session wins
78
+ const candidates = refreshCookieValues(req.headers.cookie);
79
+ if (candidates.length === 0) {
79
80
  throw new ApiError("auth.refresh_invalid", "Refresh token is missing");
81
+ }
82
+ // none is current: the last one (the Path=/ cookie) goes through the usual replay handling
83
+ const rt = (await this.sessions.pickCurrentRefresh(candidates)) ?? candidates.at(-1);
80
84
  const session = await this.sessions.refresh(rt, clientMeta(req));
81
85
  const account = await this.accounts.get(session.accountId);
82
86
  if (!account)
@@ -94,13 +98,13 @@ let AuthController = class AuthController {
94
98
  async logout(req, reply) {
95
99
  clearSessionCookies(reply);
96
100
  const at = req.cookies[ACCESS_COOKIE];
97
- const rt = req.cookies[REFRESH_COOKIE];
101
+ const rts = refreshCookieValues(req.headers.cookie);
98
102
  if (at) {
99
103
  const sid = await this.sessions.sessionIdFromAccess(at);
100
104
  if (sid !== undefined)
101
105
  await this.sessions.revoke(sid);
102
106
  }
103
- if (rt)
107
+ for (const rt of rts)
104
108
  await this.sessions.revokeByRefresh(rt);
105
109
  }
106
110
  };
@@ -3,21 +3,29 @@ import { Reflector } from "@nestjs/core";
3
3
  import type { FastifyRequest } from "fastify";
4
4
  import { AccountsService } from "./accounts.js";
5
5
  import { ApiTokenService } from "./api-tokens.js";
6
+ import { type Principal } from "./principal.js";
6
7
  import { SessionService } from "./sessions.js";
7
8
  /** CSRF 头:Cookie 认证的非安全请求(及所有公开路由的非安全请求)必须带 `X-Capybara-Csrf: 1`。 */
8
9
  export declare const CSRF_HEADER = "x-capybara-csrf";
9
- /** 解析凭据要用的服务({@link AuthGuard} 与 {@link authorizeEnterpriseAdmin} 共用)。 */
10
+ /** 解析凭据要用的服务({@link AuthGuard} 与 {@link authorizeSuperAdmin} 共用)。 */
10
11
  export interface AuthServices {
11
12
  accounts: AccountsService;
12
13
  sessions: SessionService;
13
14
  tokens: ApiTokenService;
14
15
  }
15
16
  /**
16
- * 在读请求体之前(Fastify `onRequest`)按 `@EnterpriseAdmin` 路由的规则认证:无凭据 / 凭据无效 → `auth.required`
17
- * 等,Cookie 认证的非安全请求要求 CSRF 头,服务令牌与非企业管理员 → `forbidden`。插件包上传用它:
17
+ * 在读请求体之前(Fastify `onRequest`)按 `@SuperAdmin` 路由的规则认证:无凭据 / 凭据无效 → `auth.required`
18
+ * 等,Cookie 认证的非安全请求要求 CSRF 头,服务令牌与非超级管理员 → `forbidden`。插件包上传用它:
18
19
  * 未认证的大请求体不被读入内存。之后 {@link AuthGuard} 照常再判一次。
19
20
  */
20
- export declare function authorizeEnterpriseAdmin(req: FastifyRequest, s: AuthServices): Promise<void>;
21
+ export declare function authorizeSuperAdmin(req: FastifyRequest, s: AuthServices): Promise<void>;
22
+ /**
23
+ * Before the body is read (Fastify `onRequest`), for an org's package upload (an `@OrgAction`
24
+ * route of a human-only action): authenticated like {@link authorizeSuperAdmin}, a person (service
25
+ * tokens -> `forbidden`), CSRF for cookies. Returns the principal for the org role check that also
26
+ * runs before the body (ruling P3-29); `OrgGuard` and the service's lock re-check it afterwards.
27
+ */
28
+ export declare function authenticateOrgUploader(req: FastifyRequest, s: AuthServices): Promise<Principal>;
21
29
  /**
22
30
  * 全局守卫(`APP_GUARD`),默认拒绝:
23
31
  * 1. `Authorization: Bearer cap_pat_…|cap_svc_…` → API 令牌;个人令牌再实时读账号状态。不做 CSRF 检查。
@@ -27,7 +35,7 @@ export declare function authorizeEnterpriseAdmin(req: FastifyRequest, s: AuthSer
27
35
  * (便于登出 / 刷新);PG / Redis 故障等其他异常照常抛出。
28
36
  * 4. 路由约束:service principal 只能访问 `@AllowService` 路由(否则 `forbidden`);
29
37
  * `@SessionOnly` 要求 Web 会话:个人令牌 → `auth.session_required`,服务令牌(即使路由经 `@OrgAction`
30
- * 隐含 `@AllowService`)→ `forbidden`;`@EnterpriseAdmin` 要求企业管理员(`forbidden`)。
38
+ * 隐含 `@AllowService`)→ `forbidden`;`@SuperAdmin` 要求超级管理员(`forbidden`)。
31
39
  * 5. `@Public` 路由的非安全方法无论是否带 Cookie 都要求 CSRF 头。
32
40
  * 账号状态每个请求都从 PG 实时读取,不在进程内缓存。插件路由 `/plugins/*` 不经过 Nest,不受此守卫约束。
33
41
  */
@@ -13,7 +13,7 @@ import { ApiError } from "../errors.js";
13
13
  import { AccountsService } from "./accounts.js";
14
14
  import { ApiTokenService } from "./api-tokens.js";
15
15
  import { ACCESS_COOKIE } from "./cookies.js";
16
- import { ALLOW_SERVICE_KEY, ENTERPRISE_ADMIN_KEY, PUBLIC_KEY, SESSION_ONLY_KEY, } from "./principal.js";
16
+ import { ALLOW_SERVICE_KEY, PASSWORD_CHANGE_KEY, PUBLIC_KEY, SESSION_ONLY_KEY, SUPER_ADMIN_KEY, } from "./principal.js";
17
17
  import { SessionService } from "./sessions.js";
18
18
  /** CSRF 头:Cookie 认证的非安全请求(及所有公开路由的非安全请求)必须带 `X-Capybara-Csrf: 1`。 */
19
19
  export const CSRF_HEADER = "x-capybara-csrf";
@@ -62,11 +62,11 @@ async function resolvePrincipal(req, s) {
62
62
  return undefined;
63
63
  }
64
64
  /**
65
- * 在读请求体之前(Fastify `onRequest`)按 `@EnterpriseAdmin` 路由的规则认证:无凭据 / 凭据无效 → `auth.required`
66
- * 等,Cookie 认证的非安全请求要求 CSRF 头,服务令牌与非企业管理员 → `forbidden`。插件包上传用它:
65
+ * 在读请求体之前(Fastify `onRequest`)按 `@SuperAdmin` 路由的规则认证:无凭据 / 凭据无效 → `auth.required`
66
+ * 等,Cookie 认证的非安全请求要求 CSRF 头,服务令牌与非超级管理员 → `forbidden`。插件包上传用它:
67
67
  * 未认证的大请求体不被读入内存。之后 {@link AuthGuard} 照常再判一次。
68
68
  */
69
- export async function authorizeEnterpriseAdmin(req, s) {
69
+ export async function authorizeSuperAdmin(req, s) {
70
70
  const resolved = await resolvePrincipal(req, s);
71
71
  if (!resolved)
72
72
  throw new ApiError("auth.required", "Authentication required");
@@ -76,8 +76,29 @@ export async function authorizeEnterpriseAdmin(req, s) {
76
76
  if (p.kind === "service") {
77
77
  throw new ApiError("forbidden", "Service tokens cannot access this endpoint");
78
78
  }
79
- if (!p.account.isEnterpriseAdmin)
80
- throw new ApiError("forbidden", "Enterprise admin required");
79
+ if (p.account.mustChangePassword)
80
+ throw passwordChangeRequired();
81
+ if (!p.account.isSuperAdmin)
82
+ throw new ApiError("forbidden", "Super admin required");
83
+ }
84
+ /**
85
+ * Before the body is read (Fastify `onRequest`), for an org's package upload (an `@OrgAction`
86
+ * route of a human-only action): authenticated like {@link authorizeSuperAdmin}, a person (service
87
+ * tokens -> `forbidden`), CSRF for cookies. Returns the principal for the org role check that also
88
+ * runs before the body (ruling P3-29); `OrgGuard` and the service's lock re-check it afterwards.
89
+ */
90
+ export async function authenticateOrgUploader(req, s) {
91
+ const resolved = await resolvePrincipal(req, s);
92
+ if (!resolved)
93
+ throw new ApiError("auth.required", "Authentication required");
94
+ if (resolved.cookie && !SAFE_METHODS.has(req.method.toUpperCase()))
95
+ requireCsrf(req);
96
+ if (resolved.principal.kind === "service") {
97
+ throw new ApiError("forbidden", "Service tokens cannot access this endpoint");
98
+ }
99
+ if (resolved.principal.account.mustChangePassword)
100
+ throw passwordChangeRequired();
101
+ return resolved.principal;
81
102
  }
82
103
  /**
83
104
  * 全局守卫(`APP_GUARD`),默认拒绝:
@@ -88,7 +109,7 @@ export async function authorizeEnterpriseAdmin(req, s) {
88
109
  * (便于登出 / 刷新);PG / Redis 故障等其他异常照常抛出。
89
110
  * 4. 路由约束:service principal 只能访问 `@AllowService` 路由(否则 `forbidden`);
90
111
  * `@SessionOnly` 要求 Web 会话:个人令牌 → `auth.session_required`,服务令牌(即使路由经 `@OrgAction`
91
- * 隐含 `@AllowService`)→ `forbidden`;`@EnterpriseAdmin` 要求企业管理员(`forbidden`)。
112
+ * 隐含 `@AllowService`)→ `forbidden`;`@SuperAdmin` 要求超级管理员(`forbidden`)。
92
113
  * 5. `@Public` 路由的非安全方法无论是否带 Cookie 都要求 CSRF 头。
93
114
  * 账号状态每个请求都从 PG 实时读取,不在进程内缓存。插件路由 `/plugins/*` 不经过 Nest,不受此守卫约束。
94
115
  */
@@ -142,8 +163,11 @@ let AuthGuard = class AuthGuard {
142
163
  if (flag(SESSION_ONLY_KEY) && !(p.kind === "user" && p.via === "session")) {
143
164
  throw new ApiError("auth.session_required", "This endpoint requires a web session");
144
165
  }
145
- if (flag(ENTERPRISE_ADMIN_KEY) && !(p.kind === "user" && p.account.isEnterpriseAdmin)) {
146
- throw new ApiError("forbidden", "Enterprise admin required");
166
+ if (p.kind === "user" && p.account.mustChangePassword && !flag(PASSWORD_CHANGE_KEY)) {
167
+ throw passwordChangeRequired();
168
+ }
169
+ if (flag(SUPER_ADMIN_KEY) && !(p.kind === "user" && p.account.isSuperAdmin)) {
170
+ throw new ApiError("forbidden", "Super admin required");
147
171
  }
148
172
  return true;
149
173
  }
@@ -156,6 +180,8 @@ AuthGuard = __decorate([
156
180
  __param(3, Inject(ApiTokenService))
157
181
  ], AuthGuard);
158
182
  export { AuthGuard };
183
+ /** An account signed in with a generated initial password reaches nothing until it changes it. */
184
+ const passwordChangeRequired = () => new ApiError("auth.password_change_required", "Set a new password first: this account signed in with a generated initial password");
159
185
  function requireActive(account) {
160
186
  if (account.status !== "active") {
161
187
  throw new ApiError("auth.account_disabled", "Account is disabled");
@@ -3,14 +3,35 @@ import type { KernelConfig } from "../config/schema.js";
3
3
  import type { IssuedSession } from "./sessions.js";
4
4
  /** access token Cookie:随所有请求发送。 */
5
5
  export declare const ACCESS_COOKIE = "cap_at";
6
- /** refresh token Cookie:只发往认证端点。 */
6
+ /**
7
+ * The refresh-token cookie: SameSite=Lax so a top-level navigation from another site (an IM card
8
+ * link, an email, an OAuth return) carries it and the web tier can renew the session. The refresh
9
+ * endpoint is POST-only and requires `X-Capybara-Csrf`, and Lax cookies are not sent on cross-site
10
+ * POSTs, so this does not widen CSRF exposure.
11
+ */
7
12
  export declare const REFRESH_COOKIE = "cap_rt";
8
- /** refresh Cookie 的 Path。 */
9
- export declare const REFRESH_COOKIE_PATH = "/api/v1/auth";
10
13
  /**
11
- * 写会话 Cookie。两个 Cookie 都 HttpOnly、都**不设 Domain**(只属于当前主机);
12
- * `cap_at` 为 SameSite=Lax、Path=/;`cap_rt` 为 SameSite=Strict、只发往 `/api/v1/auth`。
14
+ * Path of the refresh Cookie: `/`, so the web tier sees it on page requests and can renew the
15
+ * session while rendering on the server.
16
+ */
17
+ export declare const REFRESH_COOKIE_PATH = "/";
18
+ /** The Path earlier releases set `cap_rt` on; browsers may still hold it, so it is cleared too. */
19
+ export declare const LEGACY_REFRESH_COOKIE_PATH = "/api/v1/auth";
20
+ /**
21
+ * Writes the session cookies. Both are HttpOnly, host-only (no Domain), SameSite=Lax and Path=/;
22
+ * the `cap_rt` on the legacy Path is cleared at the same time.
13
23
  */
14
24
  export declare function setSessionCookies(reply: FastifyReply, s: IssuedSession, cfg: KernelConfig): void;
15
25
  /** 清除会话 Cookie(Path 必须与设置时一致才能覆盖)。 */
16
26
  export declare function clearSessionCookies(reply: FastifyReply): void;
27
+ /**
28
+ * Every `cap_rt` value of a raw `cookie` header, in header order. A browser holding the legacy
29
+ * Path cookie and the new one sends both, the more specific Path first.
30
+ */
31
+ export declare function refreshCookieValues(header: string | undefined): string[];
32
+ /**
33
+ * The startup warning for an http trial that cannot sign in: session cookies are Secure but the
34
+ * configured public URL is plain http, so browsers drop them. Null when cookies are not Secure,
35
+ * or the public URL is https or unset (an unset URL says nothing about how people reach the app).
36
+ */
37
+ export declare function insecurePublicUrlWarning(cfg: KernelConfig): string | null;