@vellumai/credential-executor 0.4.55 → 0.4.56

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 (762) hide show
  1. package/Dockerfile +6 -2
  2. package/node_modules/@vellumai/ces-contracts/bun.lock +29 -0
  3. package/node_modules/@vellumai/ces-contracts/package.json +24 -0
  4. package/node_modules/@vellumai/ces-contracts/src/__tests__/contracts.test.ts +293 -0
  5. package/node_modules/@vellumai/ces-contracts/src/__tests__/grants.test.ts +686 -0
  6. package/node_modules/@vellumai/ces-contracts/src/error.ts +25 -0
  7. package/node_modules/@vellumai/ces-contracts/src/grants.ts +184 -0
  8. package/node_modules/@vellumai/ces-contracts/src/handles.ts +213 -0
  9. package/node_modules/@vellumai/ces-contracts/src/index.ts +147 -0
  10. package/node_modules/@vellumai/ces-contracts/src/rendering.ts +135 -0
  11. package/node_modules/@vellumai/ces-contracts/src/rpc.ts +511 -0
  12. package/node_modules/@vellumai/ces-contracts/tsconfig.json +20 -0
  13. package/node_modules/@vellumai/credential-storage/bun.lock +24 -0
  14. package/node_modules/@vellumai/credential-storage/package.json +17 -0
  15. package/node_modules/@vellumai/credential-storage/src/__tests__/package-boundary.test.ts +151 -0
  16. package/node_modules/@vellumai/credential-storage/src/index.ts +213 -0
  17. package/node_modules/@vellumai/credential-storage/src/oauth-runtime.ts +340 -0
  18. package/node_modules/@vellumai/credential-storage/src/static-credentials.ts +365 -0
  19. package/node_modules/@vellumai/credential-storage/tsconfig.json +20 -0
  20. package/node_modules/@vellumai/egress-proxy/bun.lock +24 -0
  21. package/node_modules/@vellumai/egress-proxy/package.json +17 -0
  22. package/node_modules/@vellumai/egress-proxy/src/__tests__/package-boundary.test.ts +131 -0
  23. package/node_modules/@vellumai/egress-proxy/src/index.ts +54 -0
  24. package/node_modules/@vellumai/egress-proxy/src/session-core.ts +466 -0
  25. package/node_modules/@vellumai/egress-proxy/src/types.ts +227 -0
  26. package/node_modules/@vellumai/egress-proxy/tsconfig.json +20 -0
  27. package/node_modules/zod/LICENSE +21 -0
  28. package/node_modules/zod/README.md +208 -0
  29. package/node_modules/zod/index.cjs +33 -0
  30. package/node_modules/zod/index.d.cts +4 -0
  31. package/node_modules/zod/index.d.ts +4 -0
  32. package/node_modules/zod/index.js +4 -0
  33. package/node_modules/zod/locales/index.cjs +17 -0
  34. package/node_modules/zod/locales/index.d.cts +1 -0
  35. package/node_modules/zod/locales/index.d.ts +1 -0
  36. package/node_modules/zod/locales/index.js +1 -0
  37. package/node_modules/zod/locales/package.json +6 -0
  38. package/node_modules/zod/mini/index.cjs +32 -0
  39. package/node_modules/zod/mini/index.d.cts +3 -0
  40. package/node_modules/zod/mini/index.d.ts +3 -0
  41. package/node_modules/zod/mini/index.js +3 -0
  42. package/node_modules/zod/mini/package.json +6 -0
  43. package/node_modules/zod/package.json +135 -0
  44. package/node_modules/zod/src/index.ts +4 -0
  45. package/node_modules/zod/src/locales/index.ts +1 -0
  46. package/node_modules/zod/src/mini/index.ts +3 -0
  47. package/node_modules/zod/src/v3/ZodError.ts +330 -0
  48. package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  49. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  50. package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  51. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  52. package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  53. package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  54. package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  55. package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  56. package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  57. package/node_modules/zod/src/v3/errors.ts +13 -0
  58. package/node_modules/zod/src/v3/external.ts +6 -0
  59. package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  60. package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  61. package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  62. package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  63. package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  64. package/node_modules/zod/src/v3/helpers/util.ts +224 -0
  65. package/node_modules/zod/src/v3/index.ts +4 -0
  66. package/node_modules/zod/src/v3/locales/en.ts +124 -0
  67. package/node_modules/zod/src/v3/standard-schema.ts +113 -0
  68. package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  69. package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  70. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  71. package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  72. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  73. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  74. package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  75. package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  76. package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  77. package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  78. package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  79. package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
  80. package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  81. package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  82. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  83. package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  84. package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  85. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  86. package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  87. package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  88. package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  89. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  90. package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
  91. package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  92. package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  93. package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  94. package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  95. package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  96. package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  97. package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  98. package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  99. package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  100. package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
  101. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  102. package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  103. package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  104. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  105. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  106. package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  107. package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  108. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  109. package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  110. package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  111. package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  112. package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  113. package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  114. package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  115. package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  116. package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  117. package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  118. package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  119. package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  120. package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  121. package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  122. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  123. package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  124. package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  125. package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  126. package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  127. package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  128. package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  129. package/node_modules/zod/src/v3/types.ts +5138 -0
  130. package/node_modules/zod/src/v4/classic/checks.ts +32 -0
  131. package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  132. package/node_modules/zod/src/v4/classic/compat.ts +70 -0
  133. package/node_modules/zod/src/v4/classic/errors.ts +82 -0
  134. package/node_modules/zod/src/v4/classic/external.ts +51 -0
  135. package/node_modules/zod/src/v4/classic/from-json-schema.ts +643 -0
  136. package/node_modules/zod/src/v4/classic/index.ts +5 -0
  137. package/node_modules/zod/src/v4/classic/iso.ts +90 -0
  138. package/node_modules/zod/src/v4/classic/parse.ts +82 -0
  139. package/node_modules/zod/src/v4/classic/schemas.ts +2409 -0
  140. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  141. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
  142. package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  143. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
  144. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  145. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  146. package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  147. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  148. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
  149. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +276 -0
  150. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  151. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
  152. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +562 -0
  153. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  154. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
  155. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  156. package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
  157. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
  158. package/node_modules/zod/src/v4/classic/tests/default.test.ts +365 -0
  159. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  160. package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  161. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +661 -0
  162. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  163. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +595 -0
  164. package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  165. package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
  166. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
  167. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  168. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +734 -0
  169. package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
  170. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  171. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
  172. package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
  173. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
  174. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
  175. package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
  176. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  177. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
  178. package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
  179. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  180. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  181. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
  182. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  183. package/node_modules/zod/src/v4/classic/tests/number.test.ts +270 -0
  184. package/node_modules/zod/src/v4/classic/tests/object.test.ts +640 -0
  185. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +223 -0
  186. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +427 -0
  187. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
  188. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
  189. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
  190. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +282 -0
  191. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  192. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  193. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  194. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  195. package/node_modules/zod/src/v4/classic/tests/record.test.ts +632 -0
  196. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +582 -0
  197. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +570 -0
  198. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
  199. package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
  200. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
  201. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
  202. package/node_modules/zod/src/v4/classic/tests/string.test.ts +1175 -0
  203. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
  204. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
  205. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  206. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2990 -0
  207. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +361 -0
  208. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +183 -0
  209. package/node_modules/zod/src/v4/classic/tests/union.test.ts +219 -0
  210. package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  211. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  212. package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  213. package/node_modules/zod/src/v4/core/api.ts +1798 -0
  214. package/node_modules/zod/src/v4/core/checks.ts +1293 -0
  215. package/node_modules/zod/src/v4/core/config.ts +15 -0
  216. package/node_modules/zod/src/v4/core/core.ts +138 -0
  217. package/node_modules/zod/src/v4/core/doc.ts +44 -0
  218. package/node_modules/zod/src/v4/core/errors.ts +448 -0
  219. package/node_modules/zod/src/v4/core/index.ts +16 -0
  220. package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
  221. package/node_modules/zod/src/v4/core/json-schema-processors.ts +667 -0
  222. package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
  223. package/node_modules/zod/src/v4/core/parse.ts +195 -0
  224. package/node_modules/zod/src/v4/core/regexes.ts +183 -0
  225. package/node_modules/zod/src/v4/core/registries.ts +105 -0
  226. package/node_modules/zod/src/v4/core/schemas.ts +4538 -0
  227. package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
  228. package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  229. package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  230. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  231. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  232. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
  233. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  234. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  235. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  236. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  237. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +83 -0
  238. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +67 -0
  239. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  240. package/node_modules/zod/src/v4/core/to-json-schema.ts +613 -0
  241. package/node_modules/zod/src/v4/core/util.ts +966 -0
  242. package/node_modules/zod/src/v4/core/versions.ts +5 -0
  243. package/node_modules/zod/src/v4/core/zsf.ts +323 -0
  244. package/node_modules/zod/src/v4/index.ts +4 -0
  245. package/node_modules/zod/src/v4/locales/ar.ts +115 -0
  246. package/node_modules/zod/src/v4/locales/az.ts +111 -0
  247. package/node_modules/zod/src/v4/locales/be.ts +176 -0
  248. package/node_modules/zod/src/v4/locales/bg.ts +128 -0
  249. package/node_modules/zod/src/v4/locales/ca.ts +116 -0
  250. package/node_modules/zod/src/v4/locales/cs.ts +118 -0
  251. package/node_modules/zod/src/v4/locales/da.ts +123 -0
  252. package/node_modules/zod/src/v4/locales/de.ts +116 -0
  253. package/node_modules/zod/src/v4/locales/en.ts +119 -0
  254. package/node_modules/zod/src/v4/locales/eo.ts +118 -0
  255. package/node_modules/zod/src/v4/locales/es.ts +141 -0
  256. package/node_modules/zod/src/v4/locales/fa.ts +126 -0
  257. package/node_modules/zod/src/v4/locales/fi.ts +121 -0
  258. package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
  259. package/node_modules/zod/src/v4/locales/fr.ts +116 -0
  260. package/node_modules/zod/src/v4/locales/he.ts +246 -0
  261. package/node_modules/zod/src/v4/locales/hu.ts +117 -0
  262. package/node_modules/zod/src/v4/locales/hy.ts +164 -0
  263. package/node_modules/zod/src/v4/locales/id.ts +115 -0
  264. package/node_modules/zod/src/v4/locales/index.ts +49 -0
  265. package/node_modules/zod/src/v4/locales/is.ts +119 -0
  266. package/node_modules/zod/src/v4/locales/it.ts +116 -0
  267. package/node_modules/zod/src/v4/locales/ja.ts +114 -0
  268. package/node_modules/zod/src/v4/locales/ka.ts +123 -0
  269. package/node_modules/zod/src/v4/locales/kh.ts +7 -0
  270. package/node_modules/zod/src/v4/locales/km.ts +119 -0
  271. package/node_modules/zod/src/v4/locales/ko.ts +121 -0
  272. package/node_modules/zod/src/v4/locales/lt.ts +239 -0
  273. package/node_modules/zod/src/v4/locales/mk.ts +118 -0
  274. package/node_modules/zod/src/v4/locales/ms.ts +115 -0
  275. package/node_modules/zod/src/v4/locales/nl.ts +121 -0
  276. package/node_modules/zod/src/v4/locales/no.ts +116 -0
  277. package/node_modules/zod/src/v4/locales/ota.ts +117 -0
  278. package/node_modules/zod/src/v4/locales/pl.ts +118 -0
  279. package/node_modules/zod/src/v4/locales/ps.ts +126 -0
  280. package/node_modules/zod/src/v4/locales/pt.ts +116 -0
  281. package/node_modules/zod/src/v4/locales/ru.ts +176 -0
  282. package/node_modules/zod/src/v4/locales/sl.ts +118 -0
  283. package/node_modules/zod/src/v4/locales/sv.ts +119 -0
  284. package/node_modules/zod/src/v4/locales/ta.ts +118 -0
  285. package/node_modules/zod/src/v4/locales/th.ts +119 -0
  286. package/node_modules/zod/src/v4/locales/tr.ts +111 -0
  287. package/node_modules/zod/src/v4/locales/ua.ts +7 -0
  288. package/node_modules/zod/src/v4/locales/uk.ts +117 -0
  289. package/node_modules/zod/src/v4/locales/ur.ts +119 -0
  290. package/node_modules/zod/src/v4/locales/uz.ts +116 -0
  291. package/node_modules/zod/src/v4/locales/vi.ts +117 -0
  292. package/node_modules/zod/src/v4/locales/yo.ts +124 -0
  293. package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
  294. package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
  295. package/node_modules/zod/src/v4/mini/checks.ts +32 -0
  296. package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
  297. package/node_modules/zod/src/v4/mini/external.ts +40 -0
  298. package/node_modules/zod/src/v4/mini/index.ts +3 -0
  299. package/node_modules/zod/src/v4/mini/iso.ts +66 -0
  300. package/node_modules/zod/src/v4/mini/parse.ts +14 -0
  301. package/node_modules/zod/src/v4/mini/schemas.ts +1916 -0
  302. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
  303. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  304. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
  305. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  306. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +529 -0
  307. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  308. package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  309. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
  310. package/node_modules/zod/src/v4/mini/tests/index.test.ts +963 -0
  311. package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  312. package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
  313. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  314. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
  315. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  316. package/node_modules/zod/src/v4/mini/tests/string.test.ts +347 -0
  317. package/node_modules/zod/src/v4-mini/index.ts +3 -0
  318. package/node_modules/zod/v3/ZodError.cjs +138 -0
  319. package/node_modules/zod/v3/ZodError.d.cts +164 -0
  320. package/node_modules/zod/v3/ZodError.d.ts +164 -0
  321. package/node_modules/zod/v3/ZodError.js +133 -0
  322. package/node_modules/zod/v3/errors.cjs +17 -0
  323. package/node_modules/zod/v3/errors.d.cts +5 -0
  324. package/node_modules/zod/v3/errors.d.ts +5 -0
  325. package/node_modules/zod/v3/errors.js +9 -0
  326. package/node_modules/zod/v3/external.cjs +22 -0
  327. package/node_modules/zod/v3/external.d.cts +6 -0
  328. package/node_modules/zod/v3/external.d.ts +6 -0
  329. package/node_modules/zod/v3/external.js +6 -0
  330. package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  331. package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  332. package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  333. package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  334. package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  335. package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  336. package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  337. package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  338. package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  339. package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  340. package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  341. package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  342. package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  343. package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  344. package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  345. package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  346. package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  347. package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  348. package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  349. package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  350. package/node_modules/zod/v3/helpers/util.cjs +137 -0
  351. package/node_modules/zod/v3/helpers/util.d.cts +85 -0
  352. package/node_modules/zod/v3/helpers/util.d.ts +85 -0
  353. package/node_modules/zod/v3/helpers/util.js +133 -0
  354. package/node_modules/zod/v3/index.cjs +33 -0
  355. package/node_modules/zod/v3/index.d.cts +4 -0
  356. package/node_modules/zod/v3/index.d.ts +4 -0
  357. package/node_modules/zod/v3/index.js +4 -0
  358. package/node_modules/zod/v3/locales/en.cjs +112 -0
  359. package/node_modules/zod/v3/locales/en.d.cts +3 -0
  360. package/node_modules/zod/v3/locales/en.d.ts +3 -0
  361. package/node_modules/zod/v3/locales/en.js +109 -0
  362. package/node_modules/zod/v3/package.json +6 -0
  363. package/node_modules/zod/v3/standard-schema.cjs +2 -0
  364. package/node_modules/zod/v3/standard-schema.d.cts +102 -0
  365. package/node_modules/zod/v3/standard-schema.d.ts +102 -0
  366. package/node_modules/zod/v3/standard-schema.js +1 -0
  367. package/node_modules/zod/v3/types.cjs +3777 -0
  368. package/node_modules/zod/v3/types.d.cts +1034 -0
  369. package/node_modules/zod/v3/types.d.ts +1034 -0
  370. package/node_modules/zod/v3/types.js +3695 -0
  371. package/node_modules/zod/v4/classic/checks.cjs +33 -0
  372. package/node_modules/zod/v4/classic/checks.d.cts +1 -0
  373. package/node_modules/zod/v4/classic/checks.d.ts +1 -0
  374. package/node_modules/zod/v4/classic/checks.js +1 -0
  375. package/node_modules/zod/v4/classic/coerce.cjs +47 -0
  376. package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  377. package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  378. package/node_modules/zod/v4/classic/coerce.js +17 -0
  379. package/node_modules/zod/v4/classic/compat.cjs +61 -0
  380. package/node_modules/zod/v4/classic/compat.d.cts +50 -0
  381. package/node_modules/zod/v4/classic/compat.d.ts +50 -0
  382. package/node_modules/zod/v4/classic/compat.js +31 -0
  383. package/node_modules/zod/v4/classic/errors.cjs +74 -0
  384. package/node_modules/zod/v4/classic/errors.d.cts +30 -0
  385. package/node_modules/zod/v4/classic/errors.d.ts +30 -0
  386. package/node_modules/zod/v4/classic/errors.js +48 -0
  387. package/node_modules/zod/v4/classic/external.cjs +73 -0
  388. package/node_modules/zod/v4/classic/external.d.cts +15 -0
  389. package/node_modules/zod/v4/classic/external.d.ts +15 -0
  390. package/node_modules/zod/v4/classic/external.js +20 -0
  391. package/node_modules/zod/v4/classic/from-json-schema.cjs +610 -0
  392. package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
  393. package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
  394. package/node_modules/zod/v4/classic/from-json-schema.js +584 -0
  395. package/node_modules/zod/v4/classic/index.cjs +33 -0
  396. package/node_modules/zod/v4/classic/index.d.cts +4 -0
  397. package/node_modules/zod/v4/classic/index.d.ts +4 -0
  398. package/node_modules/zod/v4/classic/index.js +4 -0
  399. package/node_modules/zod/v4/classic/iso.cjs +60 -0
  400. package/node_modules/zod/v4/classic/iso.d.cts +22 -0
  401. package/node_modules/zod/v4/classic/iso.d.ts +22 -0
  402. package/node_modules/zod/v4/classic/iso.js +30 -0
  403. package/node_modules/zod/v4/classic/package.json +6 -0
  404. package/node_modules/zod/v4/classic/parse.cjs +41 -0
  405. package/node_modules/zod/v4/classic/parse.d.cts +31 -0
  406. package/node_modules/zod/v4/classic/parse.d.ts +31 -0
  407. package/node_modules/zod/v4/classic/parse.js +15 -0
  408. package/node_modules/zod/v4/classic/schemas.cjs +1272 -0
  409. package/node_modules/zod/v4/classic/schemas.d.cts +739 -0
  410. package/node_modules/zod/v4/classic/schemas.d.ts +739 -0
  411. package/node_modules/zod/v4/classic/schemas.js +1157 -0
  412. package/node_modules/zod/v4/core/api.cjs +1222 -0
  413. package/node_modules/zod/v4/core/api.d.cts +304 -0
  414. package/node_modules/zod/v4/core/api.d.ts +304 -0
  415. package/node_modules/zod/v4/core/api.js +1082 -0
  416. package/node_modules/zod/v4/core/checks.cjs +601 -0
  417. package/node_modules/zod/v4/core/checks.d.cts +278 -0
  418. package/node_modules/zod/v4/core/checks.d.ts +278 -0
  419. package/node_modules/zod/v4/core/checks.js +575 -0
  420. package/node_modules/zod/v4/core/core.cjs +83 -0
  421. package/node_modules/zod/v4/core/core.d.cts +70 -0
  422. package/node_modules/zod/v4/core/core.d.ts +70 -0
  423. package/node_modules/zod/v4/core/core.js +76 -0
  424. package/node_modules/zod/v4/core/doc.cjs +39 -0
  425. package/node_modules/zod/v4/core/doc.d.cts +14 -0
  426. package/node_modules/zod/v4/core/doc.d.ts +14 -0
  427. package/node_modules/zod/v4/core/doc.js +35 -0
  428. package/node_modules/zod/v4/core/errors.cjs +213 -0
  429. package/node_modules/zod/v4/core/errors.d.cts +220 -0
  430. package/node_modules/zod/v4/core/errors.d.ts +220 -0
  431. package/node_modules/zod/v4/core/errors.js +182 -0
  432. package/node_modules/zod/v4/core/index.cjs +47 -0
  433. package/node_modules/zod/v4/core/index.d.cts +16 -0
  434. package/node_modules/zod/v4/core/index.d.ts +16 -0
  435. package/node_modules/zod/v4/core/index.js +16 -0
  436. package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
  437. package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
  438. package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
  439. package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
  440. package/node_modules/zod/v4/core/json-schema-processors.cjs +648 -0
  441. package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
  442. package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
  443. package/node_modules/zod/v4/core/json-schema-processors.js +605 -0
  444. package/node_modules/zod/v4/core/json-schema.cjs +2 -0
  445. package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
  446. package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
  447. package/node_modules/zod/v4/core/json-schema.js +1 -0
  448. package/node_modules/zod/v4/core/package.json +6 -0
  449. package/node_modules/zod/v4/core/parse.cjs +131 -0
  450. package/node_modules/zod/v4/core/parse.d.cts +49 -0
  451. package/node_modules/zod/v4/core/parse.d.ts +49 -0
  452. package/node_modules/zod/v4/core/parse.js +93 -0
  453. package/node_modules/zod/v4/core/regexes.cjs +166 -0
  454. package/node_modules/zod/v4/core/regexes.d.cts +79 -0
  455. package/node_modules/zod/v4/core/regexes.d.ts +79 -0
  456. package/node_modules/zod/v4/core/regexes.js +133 -0
  457. package/node_modules/zod/v4/core/registries.cjs +56 -0
  458. package/node_modules/zod/v4/core/registries.d.cts +35 -0
  459. package/node_modules/zod/v4/core/registries.d.ts +35 -0
  460. package/node_modules/zod/v4/core/registries.js +51 -0
  461. package/node_modules/zod/v4/core/schemas.cjs +2124 -0
  462. package/node_modules/zod/v4/core/schemas.d.cts +1146 -0
  463. package/node_modules/zod/v4/core/schemas.d.ts +1146 -0
  464. package/node_modules/zod/v4/core/schemas.js +2093 -0
  465. package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  466. package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
  467. package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
  468. package/node_modules/zod/v4/core/standard-schema.js +1 -0
  469. package/node_modules/zod/v4/core/to-json-schema.cjs +446 -0
  470. package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
  471. package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
  472. package/node_modules/zod/v4/core/to-json-schema.js +437 -0
  473. package/node_modules/zod/v4/core/util.cjs +710 -0
  474. package/node_modules/zod/v4/core/util.d.cts +199 -0
  475. package/node_modules/zod/v4/core/util.d.ts +199 -0
  476. package/node_modules/zod/v4/core/util.js +651 -0
  477. package/node_modules/zod/v4/core/versions.cjs +8 -0
  478. package/node_modules/zod/v4/core/versions.d.cts +5 -0
  479. package/node_modules/zod/v4/core/versions.d.ts +5 -0
  480. package/node_modules/zod/v4/core/versions.js +5 -0
  481. package/node_modules/zod/v4/index.cjs +22 -0
  482. package/node_modules/zod/v4/index.d.cts +3 -0
  483. package/node_modules/zod/v4/index.d.ts +3 -0
  484. package/node_modules/zod/v4/index.js +3 -0
  485. package/node_modules/zod/v4/locales/ar.cjs +133 -0
  486. package/node_modules/zod/v4/locales/ar.d.cts +5 -0
  487. package/node_modules/zod/v4/locales/ar.d.ts +4 -0
  488. package/node_modules/zod/v4/locales/ar.js +106 -0
  489. package/node_modules/zod/v4/locales/az.cjs +132 -0
  490. package/node_modules/zod/v4/locales/az.d.cts +5 -0
  491. package/node_modules/zod/v4/locales/az.d.ts +4 -0
  492. package/node_modules/zod/v4/locales/az.js +105 -0
  493. package/node_modules/zod/v4/locales/be.cjs +183 -0
  494. package/node_modules/zod/v4/locales/be.d.cts +5 -0
  495. package/node_modules/zod/v4/locales/be.d.ts +4 -0
  496. package/node_modules/zod/v4/locales/be.js +156 -0
  497. package/node_modules/zod/v4/locales/bg.cjs +147 -0
  498. package/node_modules/zod/v4/locales/bg.d.cts +5 -0
  499. package/node_modules/zod/v4/locales/bg.d.ts +4 -0
  500. package/node_modules/zod/v4/locales/bg.js +120 -0
  501. package/node_modules/zod/v4/locales/ca.cjs +134 -0
  502. package/node_modules/zod/v4/locales/ca.d.cts +5 -0
  503. package/node_modules/zod/v4/locales/ca.d.ts +4 -0
  504. package/node_modules/zod/v4/locales/ca.js +107 -0
  505. package/node_modules/zod/v4/locales/cs.cjs +138 -0
  506. package/node_modules/zod/v4/locales/cs.d.cts +5 -0
  507. package/node_modules/zod/v4/locales/cs.d.ts +4 -0
  508. package/node_modules/zod/v4/locales/cs.js +111 -0
  509. package/node_modules/zod/v4/locales/da.cjs +142 -0
  510. package/node_modules/zod/v4/locales/da.d.cts +5 -0
  511. package/node_modules/zod/v4/locales/da.d.ts +4 -0
  512. package/node_modules/zod/v4/locales/da.js +115 -0
  513. package/node_modules/zod/v4/locales/de.cjs +135 -0
  514. package/node_modules/zod/v4/locales/de.d.cts +5 -0
  515. package/node_modules/zod/v4/locales/de.d.ts +4 -0
  516. package/node_modules/zod/v4/locales/de.js +108 -0
  517. package/node_modules/zod/v4/locales/en.cjs +136 -0
  518. package/node_modules/zod/v4/locales/en.d.cts +5 -0
  519. package/node_modules/zod/v4/locales/en.d.ts +4 -0
  520. package/node_modules/zod/v4/locales/en.js +109 -0
  521. package/node_modules/zod/v4/locales/eo.cjs +136 -0
  522. package/node_modules/zod/v4/locales/eo.d.cts +5 -0
  523. package/node_modules/zod/v4/locales/eo.d.ts +4 -0
  524. package/node_modules/zod/v4/locales/eo.js +109 -0
  525. package/node_modules/zod/v4/locales/es.cjs +159 -0
  526. package/node_modules/zod/v4/locales/es.d.cts +5 -0
  527. package/node_modules/zod/v4/locales/es.d.ts +4 -0
  528. package/node_modules/zod/v4/locales/es.js +132 -0
  529. package/node_modules/zod/v4/locales/fa.cjs +141 -0
  530. package/node_modules/zod/v4/locales/fa.d.cts +5 -0
  531. package/node_modules/zod/v4/locales/fa.d.ts +4 -0
  532. package/node_modules/zod/v4/locales/fa.js +114 -0
  533. package/node_modules/zod/v4/locales/fi.cjs +139 -0
  534. package/node_modules/zod/v4/locales/fi.d.cts +5 -0
  535. package/node_modules/zod/v4/locales/fi.d.ts +4 -0
  536. package/node_modules/zod/v4/locales/fi.js +112 -0
  537. package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
  538. package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
  539. package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  540. package/node_modules/zod/v4/locales/fr-CA.js +107 -0
  541. package/node_modules/zod/v4/locales/fr.cjs +135 -0
  542. package/node_modules/zod/v4/locales/fr.d.cts +5 -0
  543. package/node_modules/zod/v4/locales/fr.d.ts +4 -0
  544. package/node_modules/zod/v4/locales/fr.js +108 -0
  545. package/node_modules/zod/v4/locales/he.cjs +241 -0
  546. package/node_modules/zod/v4/locales/he.d.cts +5 -0
  547. package/node_modules/zod/v4/locales/he.d.ts +4 -0
  548. package/node_modules/zod/v4/locales/he.js +214 -0
  549. package/node_modules/zod/v4/locales/hu.cjs +135 -0
  550. package/node_modules/zod/v4/locales/hu.d.cts +5 -0
  551. package/node_modules/zod/v4/locales/hu.d.ts +4 -0
  552. package/node_modules/zod/v4/locales/hu.js +108 -0
  553. package/node_modules/zod/v4/locales/hy.cjs +174 -0
  554. package/node_modules/zod/v4/locales/hy.d.cts +5 -0
  555. package/node_modules/zod/v4/locales/hy.d.ts +4 -0
  556. package/node_modules/zod/v4/locales/hy.js +147 -0
  557. package/node_modules/zod/v4/locales/id.cjs +133 -0
  558. package/node_modules/zod/v4/locales/id.d.cts +5 -0
  559. package/node_modules/zod/v4/locales/id.d.ts +4 -0
  560. package/node_modules/zod/v4/locales/id.js +106 -0
  561. package/node_modules/zod/v4/locales/index.cjs +104 -0
  562. package/node_modules/zod/v4/locales/index.d.cts +49 -0
  563. package/node_modules/zod/v4/locales/index.d.ts +49 -0
  564. package/node_modules/zod/v4/locales/index.js +49 -0
  565. package/node_modules/zod/v4/locales/is.cjs +136 -0
  566. package/node_modules/zod/v4/locales/is.d.cts +5 -0
  567. package/node_modules/zod/v4/locales/is.d.ts +4 -0
  568. package/node_modules/zod/v4/locales/is.js +109 -0
  569. package/node_modules/zod/v4/locales/it.cjs +135 -0
  570. package/node_modules/zod/v4/locales/it.d.cts +5 -0
  571. package/node_modules/zod/v4/locales/it.d.ts +4 -0
  572. package/node_modules/zod/v4/locales/it.js +108 -0
  573. package/node_modules/zod/v4/locales/ja.cjs +134 -0
  574. package/node_modules/zod/v4/locales/ja.d.cts +5 -0
  575. package/node_modules/zod/v4/locales/ja.d.ts +4 -0
  576. package/node_modules/zod/v4/locales/ja.js +107 -0
  577. package/node_modules/zod/v4/locales/ka.cjs +139 -0
  578. package/node_modules/zod/v4/locales/ka.d.cts +5 -0
  579. package/node_modules/zod/v4/locales/ka.d.ts +4 -0
  580. package/node_modules/zod/v4/locales/ka.js +112 -0
  581. package/node_modules/zod/v4/locales/kh.cjs +12 -0
  582. package/node_modules/zod/v4/locales/kh.d.cts +5 -0
  583. package/node_modules/zod/v4/locales/kh.d.ts +5 -0
  584. package/node_modules/zod/v4/locales/kh.js +5 -0
  585. package/node_modules/zod/v4/locales/km.cjs +137 -0
  586. package/node_modules/zod/v4/locales/km.d.cts +5 -0
  587. package/node_modules/zod/v4/locales/km.d.ts +4 -0
  588. package/node_modules/zod/v4/locales/km.js +110 -0
  589. package/node_modules/zod/v4/locales/ko.cjs +138 -0
  590. package/node_modules/zod/v4/locales/ko.d.cts +5 -0
  591. package/node_modules/zod/v4/locales/ko.d.ts +4 -0
  592. package/node_modules/zod/v4/locales/ko.js +111 -0
  593. package/node_modules/zod/v4/locales/lt.cjs +230 -0
  594. package/node_modules/zod/v4/locales/lt.d.cts +5 -0
  595. package/node_modules/zod/v4/locales/lt.d.ts +4 -0
  596. package/node_modules/zod/v4/locales/lt.js +203 -0
  597. package/node_modules/zod/v4/locales/mk.cjs +136 -0
  598. package/node_modules/zod/v4/locales/mk.d.cts +5 -0
  599. package/node_modules/zod/v4/locales/mk.d.ts +4 -0
  600. package/node_modules/zod/v4/locales/mk.js +109 -0
  601. package/node_modules/zod/v4/locales/ms.cjs +134 -0
  602. package/node_modules/zod/v4/locales/ms.d.cts +5 -0
  603. package/node_modules/zod/v4/locales/ms.d.ts +4 -0
  604. package/node_modules/zod/v4/locales/ms.js +107 -0
  605. package/node_modules/zod/v4/locales/nl.cjs +137 -0
  606. package/node_modules/zod/v4/locales/nl.d.cts +5 -0
  607. package/node_modules/zod/v4/locales/nl.d.ts +4 -0
  608. package/node_modules/zod/v4/locales/nl.js +110 -0
  609. package/node_modules/zod/v4/locales/no.cjs +135 -0
  610. package/node_modules/zod/v4/locales/no.d.cts +5 -0
  611. package/node_modules/zod/v4/locales/no.d.ts +4 -0
  612. package/node_modules/zod/v4/locales/no.js +108 -0
  613. package/node_modules/zod/v4/locales/ota.cjs +136 -0
  614. package/node_modules/zod/v4/locales/ota.d.cts +5 -0
  615. package/node_modules/zod/v4/locales/ota.d.ts +4 -0
  616. package/node_modules/zod/v4/locales/ota.js +109 -0
  617. package/node_modules/zod/v4/locales/package.json +6 -0
  618. package/node_modules/zod/v4/locales/pl.cjs +136 -0
  619. package/node_modules/zod/v4/locales/pl.d.cts +5 -0
  620. package/node_modules/zod/v4/locales/pl.d.ts +4 -0
  621. package/node_modules/zod/v4/locales/pl.js +109 -0
  622. package/node_modules/zod/v4/locales/ps.cjs +141 -0
  623. package/node_modules/zod/v4/locales/ps.d.cts +5 -0
  624. package/node_modules/zod/v4/locales/ps.d.ts +4 -0
  625. package/node_modules/zod/v4/locales/ps.js +114 -0
  626. package/node_modules/zod/v4/locales/pt.cjs +135 -0
  627. package/node_modules/zod/v4/locales/pt.d.cts +5 -0
  628. package/node_modules/zod/v4/locales/pt.d.ts +4 -0
  629. package/node_modules/zod/v4/locales/pt.js +108 -0
  630. package/node_modules/zod/v4/locales/ru.cjs +183 -0
  631. package/node_modules/zod/v4/locales/ru.d.cts +5 -0
  632. package/node_modules/zod/v4/locales/ru.d.ts +4 -0
  633. package/node_modules/zod/v4/locales/ru.js +156 -0
  634. package/node_modules/zod/v4/locales/sl.cjs +136 -0
  635. package/node_modules/zod/v4/locales/sl.d.cts +5 -0
  636. package/node_modules/zod/v4/locales/sl.d.ts +4 -0
  637. package/node_modules/zod/v4/locales/sl.js +109 -0
  638. package/node_modules/zod/v4/locales/sv.cjs +137 -0
  639. package/node_modules/zod/v4/locales/sv.d.cts +5 -0
  640. package/node_modules/zod/v4/locales/sv.d.ts +4 -0
  641. package/node_modules/zod/v4/locales/sv.js +110 -0
  642. package/node_modules/zod/v4/locales/ta.cjs +137 -0
  643. package/node_modules/zod/v4/locales/ta.d.cts +5 -0
  644. package/node_modules/zod/v4/locales/ta.d.ts +4 -0
  645. package/node_modules/zod/v4/locales/ta.js +110 -0
  646. package/node_modules/zod/v4/locales/th.cjs +137 -0
  647. package/node_modules/zod/v4/locales/th.d.cts +5 -0
  648. package/node_modules/zod/v4/locales/th.d.ts +4 -0
  649. package/node_modules/zod/v4/locales/th.js +110 -0
  650. package/node_modules/zod/v4/locales/tr.cjs +132 -0
  651. package/node_modules/zod/v4/locales/tr.d.cts +5 -0
  652. package/node_modules/zod/v4/locales/tr.d.ts +4 -0
  653. package/node_modules/zod/v4/locales/tr.js +105 -0
  654. package/node_modules/zod/v4/locales/ua.cjs +12 -0
  655. package/node_modules/zod/v4/locales/ua.d.cts +5 -0
  656. package/node_modules/zod/v4/locales/ua.d.ts +5 -0
  657. package/node_modules/zod/v4/locales/ua.js +5 -0
  658. package/node_modules/zod/v4/locales/uk.cjs +135 -0
  659. package/node_modules/zod/v4/locales/uk.d.cts +5 -0
  660. package/node_modules/zod/v4/locales/uk.d.ts +4 -0
  661. package/node_modules/zod/v4/locales/uk.js +108 -0
  662. package/node_modules/zod/v4/locales/ur.cjs +137 -0
  663. package/node_modules/zod/v4/locales/ur.d.cts +5 -0
  664. package/node_modules/zod/v4/locales/ur.d.ts +4 -0
  665. package/node_modules/zod/v4/locales/ur.js +110 -0
  666. package/node_modules/zod/v4/locales/uz.cjs +136 -0
  667. package/node_modules/zod/v4/locales/uz.d.cts +5 -0
  668. package/node_modules/zod/v4/locales/uz.d.ts +4 -0
  669. package/node_modules/zod/v4/locales/uz.js +109 -0
  670. package/node_modules/zod/v4/locales/vi.cjs +135 -0
  671. package/node_modules/zod/v4/locales/vi.d.cts +5 -0
  672. package/node_modules/zod/v4/locales/vi.d.ts +4 -0
  673. package/node_modules/zod/v4/locales/vi.js +108 -0
  674. package/node_modules/zod/v4/locales/yo.cjs +134 -0
  675. package/node_modules/zod/v4/locales/yo.d.cts +5 -0
  676. package/node_modules/zod/v4/locales/yo.d.ts +4 -0
  677. package/node_modules/zod/v4/locales/yo.js +107 -0
  678. package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
  679. package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
  680. package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  681. package/node_modules/zod/v4/locales/zh-CN.js +109 -0
  682. package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
  683. package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
  684. package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  685. package/node_modules/zod/v4/locales/zh-TW.js +107 -0
  686. package/node_modules/zod/v4/mini/checks.cjs +34 -0
  687. package/node_modules/zod/v4/mini/checks.d.cts +1 -0
  688. package/node_modules/zod/v4/mini/checks.d.ts +1 -0
  689. package/node_modules/zod/v4/mini/checks.js +1 -0
  690. package/node_modules/zod/v4/mini/coerce.cjs +52 -0
  691. package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  692. package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  693. package/node_modules/zod/v4/mini/coerce.js +22 -0
  694. package/node_modules/zod/v4/mini/external.cjs +63 -0
  695. package/node_modules/zod/v4/mini/external.d.cts +12 -0
  696. package/node_modules/zod/v4/mini/external.d.ts +12 -0
  697. package/node_modules/zod/v4/mini/external.js +14 -0
  698. package/node_modules/zod/v4/mini/index.cjs +32 -0
  699. package/node_modules/zod/v4/mini/index.d.cts +3 -0
  700. package/node_modules/zod/v4/mini/index.d.ts +3 -0
  701. package/node_modules/zod/v4/mini/index.js +3 -0
  702. package/node_modules/zod/v4/mini/iso.cjs +64 -0
  703. package/node_modules/zod/v4/mini/iso.d.cts +22 -0
  704. package/node_modules/zod/v4/mini/iso.d.ts +22 -0
  705. package/node_modules/zod/v4/mini/iso.js +34 -0
  706. package/node_modules/zod/v4/mini/package.json +6 -0
  707. package/node_modules/zod/v4/mini/parse.cjs +16 -0
  708. package/node_modules/zod/v4/mini/parse.d.cts +1 -0
  709. package/node_modules/zod/v4/mini/parse.d.ts +1 -0
  710. package/node_modules/zod/v4/mini/parse.js +1 -0
  711. package/node_modules/zod/v4/mini/schemas.cjs +1046 -0
  712. package/node_modules/zod/v4/mini/schemas.d.cts +427 -0
  713. package/node_modules/zod/v4/mini/schemas.d.ts +427 -0
  714. package/node_modules/zod/v4/mini/schemas.js +925 -0
  715. package/node_modules/zod/v4/package.json +6 -0
  716. package/node_modules/zod/v4-mini/index.cjs +32 -0
  717. package/node_modules/zod/v4-mini/index.d.cts +3 -0
  718. package/node_modules/zod/v4-mini/index.d.ts +3 -0
  719. package/node_modules/zod/v4-mini/index.js +3 -0
  720. package/node_modules/zod/v4-mini/package.json +6 -0
  721. package/package.json +3 -2
  722. package/src/__tests__/command-executor.test.ts +575 -60
  723. package/src/__tests__/command-validator.test.ts +697 -0
  724. package/src/__tests__/command-workspace.test.ts +30 -0
  725. package/src/__tests__/grant-store.test.ts +151 -33
  726. package/src/__tests__/http-executor.test.ts +106 -16
  727. package/src/__tests__/http-policy.test.ts +121 -22
  728. package/src/__tests__/local-materializers.test.ts +34 -0
  729. package/src/__tests__/managed-integration.test.ts +633 -0
  730. package/src/__tests__/managed-lazy-getters.test.ts +245 -0
  731. package/src/__tests__/managed-materializers.test.ts +107 -38
  732. package/src/__tests__/managed-rejection.test.ts +43 -0
  733. package/src/__tests__/toolstore.test.ts +207 -18
  734. package/src/__tests__/transport.test.ts +26 -6
  735. package/src/commands/auth-adapters.ts +2 -2
  736. package/src/commands/egress-hooks.ts +203 -0
  737. package/src/commands/executor.ts +403 -87
  738. package/src/commands/profiles.ts +4 -0
  739. package/src/commands/validator.ts +267 -3
  740. package/src/commands/workspace.ts +59 -21
  741. package/src/grants/index.ts +1 -1
  742. package/src/grants/persistent-store.ts +79 -17
  743. package/src/grants/rpc-handlers.ts +67 -43
  744. package/src/grants/temporary-store.ts +26 -19
  745. package/src/http/executor.ts +170 -25
  746. package/src/http/path-template.ts +75 -9
  747. package/src/http/policy.ts +9 -27
  748. package/src/index.ts +3 -0
  749. package/src/main.ts +102 -43
  750. package/src/managed-errors.ts +9 -0
  751. package/src/managed-lazy-getters.ts +70 -0
  752. package/src/managed-main.ts +191 -65
  753. package/src/materializers/local-oauth-lookup.ts +97 -0
  754. package/src/materializers/local-secure-key-backend.ts +254 -0
  755. package/src/materializers/local-token-refresh.ts +263 -0
  756. package/src/materializers/local.ts +21 -5
  757. package/src/materializers/managed-platform.ts +50 -25
  758. package/src/paths.ts +28 -10
  759. package/src/server.ts +147 -11
  760. package/src/subjects/managed.ts +33 -12
  761. package/src/subjects/policy.ts +79 -0
  762. package/src/toolstore/publish.ts +236 -7
@@ -19,7 +19,7 @@
19
19
 
20
20
  import { mkdirSync, unlinkSync } from "node:fs";
21
21
  import { createServer as createNetServer, type Socket } from "node:net";
22
- import { dirname } from "node:path";
22
+ import { dirname, join } from "node:path";
23
23
  import { Readable, Writable } from "node:stream";
24
24
 
25
25
  import { CES_PROTOCOL_VERSION, CesRpcMethod } from "@vellumai/ces-contracts";
@@ -47,10 +47,16 @@ import {
47
47
  registerCommandExecutionHandler,
48
48
  registerManageSecureCommandToolHandler,
49
49
  type RpcHandlerRegistry,
50
+ type SessionIdRef,
50
51
  } from "./server.js";
51
- import { publishBundle } from "./toolstore/publish.js";
52
- import type { ManagedSubjectResolverOptions } from "./subjects/managed.js";
53
- import type { ManagedMaterializerOptions } from "./materializers/managed-platform.js";
52
+ import { deleteBundleFromToolstore, publishBundle } from "./toolstore/publish.js";
53
+ import { validateSourceUrl } from "./toolstore/manifest.js";
54
+ import { buildCesEgressHooks } from "./commands/egress-hooks.js";
55
+ import { resolveManagedSubject } from "./subjects/managed.js";
56
+ import { materializeManagedToken } from "./materializers/managed-platform.js";
57
+ import { HandleType, parseHandle } from "@vellumai/ces-contracts";
58
+ import { buildLazyGetters, type ApiKeyRef } from "./managed-lazy-getters.js";
59
+ import { MANAGED_LOCAL_STATIC_REJECTION_ERROR } from "./managed-errors.js";
54
60
 
55
61
  // ---------------------------------------------------------------------------
56
62
  // Logging (managed always logs to stderr)
@@ -82,7 +88,7 @@ function ensureDataDirs(): void {
82
88
  // Build RPC handler registry (managed mode)
83
89
  // ---------------------------------------------------------------------------
84
90
 
85
- function buildHandlers(sessionId: string): RpcHandlerRegistry {
91
+ function buildHandlers(sessionIdRef: SessionIdRef, apiKeyRef: ApiKeyRef): RpcHandlerRegistry {
86
92
  // -- Grant stores ----------------------------------------------------------
87
93
  const persistentGrantStore = new PersistentGrantStore(
88
94
  getCesGrantsDir("managed"),
@@ -97,73 +103,143 @@ function buildHandlers(sessionId: string): RpcHandlerRegistry {
97
103
 
98
104
  // -- Managed credential options --------------------------------------------
99
105
  // In managed mode, credentials are obtained from the platform via its
100
- // token-materialization endpoint. The platform URL and API key are provided
101
- // through environment variables set by the orchestration layer.
106
+ // token-materialization endpoint. The platform URL and assistant ID come
107
+ // from environment variables. The API key may come from the env var OR
108
+ // from the bootstrap handshake (the assistant forwards it after hatch).
109
+ // We use a lazy getter so the handshake-provided key takes effect even
110
+ // though handlers are built before the handshake completes.
102
111
  const platformBaseUrl = process.env["PLATFORM_BASE_URL"] ?? "";
103
- const assistantApiKey = process.env["ASSISTANT_API_KEY"] ?? "";
104
-
105
- const managedSubjectOptions: ManagedSubjectResolverOptions | undefined =
106
- platformBaseUrl && assistantApiKey
107
- ? { platformBaseUrl, assistantApiKey }
108
- : undefined;
109
-
110
- const managedMaterializerOptions: ManagedMaterializerOptions | undefined =
111
- platformBaseUrl && assistantApiKey
112
- ? { platformBaseUrl, assistantApiKey }
113
- : undefined;
112
+ const assistantId = process.env["PLATFORM_ASSISTANT_ID"] ?? "";
113
+
114
+ const { getAssistantApiKey, getManagedSubjectOptions, getManagedMaterializerOptions } =
115
+ buildLazyGetters({
116
+ platformBaseUrl,
117
+ assistantId,
118
+ apiKeyRef,
119
+ envApiKey: process.env["ASSISTANT_API_KEY"] || "",
120
+ });
114
121
 
115
- if (!managedSubjectOptions) {
122
+ if (!platformBaseUrl || !assistantId) {
116
123
  warn(
117
- "PLATFORM_BASE_URL and/or ASSISTANT_API_KEY not set. " +
118
- "Managed credential materialisation will not be available.",
124
+ "PLATFORM_BASE_URL and/or PLATFORM_ASSISTANT_ID not set. " +
125
+ "Managed credential materialisation will depend on the handshake-provided API key.",
119
126
  );
120
127
  }
121
128
 
129
+ // -- Workspace root for command execution cwd ------------------------------
130
+ const assistantDataMount =
131
+ process.env["CES_ASSISTANT_DATA_MOUNT"] ?? "/assistant-data-ro";
132
+ const mountedVellumRoot = join(assistantDataMount, ".vellum");
133
+
122
134
  // -- Build handler registry ------------------------------------------------
135
+ // NOTE: local_static credential handles are NOT supported in managed mode.
136
+ // The encrypted key store uses PBKDF2 key derivation from user identity
137
+ // (username, homedir), but the assistant container runs as root while CES
138
+ // runs as ces — different derived keys make decryption silently fail.
139
+ // Managed deployments must use platform_oauth handles exclusively.
140
+ //
141
+ // We provide error-returning stubs for localMaterialiser/localSubjectDeps
142
+ // so the HTTP handler compiles but any local_static request gets a clear
143
+ // error message rather than a silent decryption failure.
144
+
145
+ const localMaterialiserStub = {
146
+ materialise: async () => ({
147
+ ok: false as const,
148
+ error: MANAGED_LOCAL_STATIC_REJECTION_ERROR,
149
+ }),
150
+ };
123
151
 
124
- // In managed mode there is no local secure-key backend. The HTTP handler
125
- // uses managed subject resolution and managed materialisation instead.
126
- // The localMaterialiser and localSubjectDeps are required by HttpExecutorDeps
127
- // but will only be reached for local_static/local_oauth handles (which are
128
- // not expected in managed deployments). We stub them to fail closed.
129
- const stubLocalMaterialiser = {
130
- async materialise() {
131
- return {
132
- ok: false as const,
133
- error: "Local credential materialisation is not available in managed mode.",
134
- };
135
- },
136
- reset() {},
152
+ const localSubjectDepsStub = {
153
+ metadataStore: { getById: () => undefined, list: () => [] } as any,
154
+ oauthConnections: { getById: () => undefined },
137
155
  };
138
156
 
139
- const handlers = buildHandlersWithHttp(
140
- {
141
- persistentGrantStore,
142
- temporaryGrantStore,
143
- localMaterialiser: stubLocalMaterialiser as any,
144
- localSubjectDeps: {
145
- metadataStore: { getByServiceField: () => undefined } as any,
146
- oauthConnections: { getById: () => undefined },
147
- },
148
- managedSubjectOptions,
149
- managedMaterializerOptions,
150
- sessionId,
151
- },
152
- );
157
+ // Use a deps object with getters so the handshake-provided API key
158
+ // is resolved lazily at RPC call time (after the handshake completes).
159
+ const httpDeps = {
160
+ persistentGrantStore,
161
+ temporaryGrantStore,
162
+ localMaterialiser: localMaterialiserStub as any,
163
+ localSubjectDeps: localSubjectDepsStub,
164
+ get managedSubjectOptions() { return getManagedSubjectOptions(); },
165
+ get managedMaterializerOptions() { return getManagedMaterializerOptions(); },
166
+ auditStore,
167
+ sessionId: sessionIdRef,
168
+ };
169
+
170
+ const handlers = buildHandlersWithHttp(httpDeps);
153
171
 
154
- // Register run_authenticated_command handler
172
+ // Register run_authenticated_command handler with managed platform materializer
155
173
  registerCommandExecutionHandler(handlers, {
156
174
  executorDeps: {
157
175
  persistentStore: persistentGrantStore,
158
176
  temporaryStore: temporaryGrantStore,
159
- materializeCredential: async (_handle) => ({
160
- ok: false as const,
161
- error:
162
- "Command credential materialisation in managed mode is not yet available.",
163
- }),
177
+ materializeCredential: async (handle) => {
178
+ // Parse handle to determine type
179
+ const parseResult = parseHandle(handle);
180
+ if (!parseResult.ok) {
181
+ return { ok: false as const, error: parseResult.error };
182
+ }
183
+
184
+ switch (parseResult.handle.type) {
185
+ // -- Local static: NOT supported in managed mode -------------------
186
+ case HandleType.LocalStatic: {
187
+ return {
188
+ ok: false as const,
189
+ error: MANAGED_LOCAL_STATIC_REJECTION_ERROR,
190
+ };
191
+ }
192
+
193
+ // -- Platform OAuth: materialise via the platform endpoint ----------
194
+ case HandleType.PlatformOAuth: {
195
+ const matOpts = getManagedMaterializerOptions();
196
+ const subOpts = getManagedSubjectOptions();
197
+ if (!matOpts || !subOpts) {
198
+ return {
199
+ ok: false as const,
200
+ error:
201
+ "PLATFORM_BASE_URL and/or ASSISTANT_API_KEY not set. " +
202
+ "Managed credential materialisation is not available.",
203
+ };
204
+ }
205
+
206
+ const subjectResult = await resolveManagedSubject(
207
+ handle,
208
+ subOpts,
209
+ );
210
+ if (!subjectResult.ok) {
211
+ return { ok: false as const, error: subjectResult.error.message };
212
+ }
213
+
214
+ const matResult = await materializeManagedToken(
215
+ subjectResult.subject,
216
+ matOpts,
217
+ );
218
+ if (!matResult.ok) {
219
+ return { ok: false as const, error: matResult.error.message };
220
+ }
221
+
222
+ return {
223
+ ok: true as const,
224
+ value: matResult.token.accessToken,
225
+ handleType: HandleType.PlatformOAuth,
226
+ };
227
+ }
228
+
229
+ default:
230
+ return {
231
+ ok: false as const,
232
+ error: `Handle type "${parseResult.handle.type}" is not supported in managed mode. ` +
233
+ `Supported types: platform_oauth.`,
234
+ };
235
+ }
236
+ },
237
+ auditStore,
238
+ sessionId: sessionIdRef,
164
239
  cesMode: "managed",
240
+ egressHooks: buildCesEgressHooks(),
165
241
  },
166
- defaultWorkspaceDir: "/workspace",
242
+ defaultWorkspaceDir: join(mountedVellumRoot, "workspace"),
167
243
  });
168
244
 
169
245
  // Register manage_secure_command_tool handler
@@ -171,15 +247,47 @@ function buildHandlers(sessionId: string): RpcHandlerRegistry {
171
247
 
172
248
  registerManageSecureCommandToolHandler(handlers, {
173
249
  downloadBundle: async (sourceUrl: string) => {
174
- const resp = await fetch(sourceUrl);
250
+ const urlError = validateSourceUrl(sourceUrl);
251
+ if (urlError) {
252
+ throw new Error(urlError);
253
+ }
254
+ const MAX_BUNDLE_SIZE = 100 * 1024 * 1024; // 100 MB
255
+ const resp = await fetch(sourceUrl, { signal: AbortSignal.timeout(60_000) });
175
256
  if (!resp.ok) {
176
257
  throw new Error(`HTTP ${resp.status}: ${resp.statusText}`);
177
258
  }
178
- return Buffer.from(await resp.arrayBuffer());
259
+ const contentLength = resp.headers.get("content-length");
260
+ if (contentLength && parseInt(contentLength, 10) > MAX_BUNDLE_SIZE) {
261
+ throw new Error(`Bundle too large: ${contentLength} bytes (max ${MAX_BUNDLE_SIZE})`);
262
+ }
263
+ // Stream the body and enforce the size limit on actual bytes received,
264
+ // since Content-Length can be absent (chunked encoding) or lie.
265
+ const body = resp.body;
266
+ if (!body) {
267
+ throw new Error("Response body is null");
268
+ }
269
+ const chunks: Uint8Array[] = [];
270
+ let totalBytes = 0;
271
+ for await (const chunk of body) {
272
+ totalBytes += chunk.byteLength;
273
+ if (totalBytes > MAX_BUNDLE_SIZE) {
274
+ throw new Error(`Bundle too large: received >${MAX_BUNDLE_SIZE} bytes (max ${MAX_BUNDLE_SIZE})`);
275
+ }
276
+ chunks.push(chunk);
277
+ }
278
+ return Buffer.concat(chunks);
179
279
  },
180
280
  publishBundle: (request) => publishBundle({ ...request, cesMode: "managed" }),
181
281
  unregisterTool: (toolName: string) => {
182
- return toolRegistry.delete(toolName);
282
+ const entry = toolRegistry.get(toolName);
283
+ const removed = toolRegistry.delete(toolName);
284
+ if (removed && entry?.bundleDigest) {
285
+ const stillInUse = Array.from(toolRegistry.values()).some(t => t.bundleDigest === entry.bundleDigest);
286
+ if (!stillInUse) {
287
+ deleteBundleFromToolstore(entry.bundleDigest, "managed");
288
+ }
289
+ }
290
+ return removed;
183
291
  },
184
292
  registerTool: (entry) => {
185
293
  toolRegistry.set(entry.toolName, entry);
@@ -194,7 +302,6 @@ function buildHandlers(sessionId: string): RpcHandlerRegistry {
194
302
 
195
303
  handlers[CesRpcMethod.ListGrants] = createListGrantsHandler({
196
304
  persistentGrantStore,
197
- sessionId,
198
305
  }) as typeof handlers[string];
199
306
 
200
307
  handlers[CesRpcMethod.RevokeGrant] = createRevokeGrantHandler({
@@ -227,11 +334,16 @@ function startHealthServer(port: number, signal: AbortSignal): ReturnType<typeof
227
334
  );
228
335
  }
229
336
  if (url.pathname === "/readyz") {
230
- const ready = rpcConnected;
337
+ // Always return 200 — pod readiness must not depend on whether the
338
+ // assistant has connected. When the CES feature flag is off the
339
+ // assistant never connects, and a 503 here would block pod
340
+ // scheduling during dark-launch. The sidecar can't do useful work
341
+ // without a connection anyway, so readiness is purely about the
342
+ // process being up and able to accept a future connection.
231
343
  return new Response(
232
- JSON.stringify({ ready, version: CES_PROTOCOL_VERSION }),
344
+ JSON.stringify({ ready: true, rpcConnected, version: CES_PROTOCOL_VERSION }),
233
345
  {
234
- status: ready ? 200 : 503,
346
+ status: 200,
235
347
  headers: { "Content-Type": "application/json" },
236
348
  },
237
349
  );
@@ -388,9 +500,12 @@ async function main(): Promise<void> {
388
500
 
389
501
  rpcConnected = true;
390
502
 
391
- // Build the handler registry with all available RPC implementations
392
- const sessionId = `ces-managed-${Date.now()}`;
393
- const handlers = buildHandlers(sessionId);
503
+ // Build the handler registry with all available RPC implementations.
504
+ // Use mutable refs so the handshake-provided session ID and API key
505
+ // are available to handlers at call time (after the handshake completes).
506
+ const sessionIdRef: SessionIdRef = { current: `ces-managed-${Date.now()}` };
507
+ const apiKeyRef: ApiKeyRef = { current: "" };
508
+ const handlers = buildHandlers(sessionIdRef, apiKeyRef);
394
509
 
395
510
  const server = new CesRpcServer({
396
511
  input: connection.readable,
@@ -405,6 +520,17 @@ async function main(): Promise<void> {
405
520
  process.stderr.write(`[ces-managed] ERROR: ${msg} ${args.map(String).join(" ")}\n`),
406
521
  },
407
522
  signal: controller.signal,
523
+ onHandshakeComplete: (hsSessionId, hsApiKey) => {
524
+ sessionIdRef.current = hsSessionId;
525
+ if (hsApiKey) {
526
+ apiKeyRef.current = hsApiKey;
527
+ log(`Received assistant API key via handshake`);
528
+ }
529
+ },
530
+ onApiKeyUpdate: (newKey) => {
531
+ apiKeyRef.current = newKey;
532
+ log(`Assistant API key updated via RPC`);
533
+ },
408
534
  });
409
535
 
410
536
  await server.serve();
@@ -0,0 +1,97 @@
1
+ /**
2
+ * CES-native read-only OAuth connection lookup for local mode.
3
+ *
4
+ * In local mode, CES runs as a child process of the assistant on the same
5
+ * machine and can read the assistant's SQLite database to look up OAuth
6
+ * connections.
7
+ *
8
+ * This implementation opens the database in read-only mode and queries the
9
+ * `oauth_connections` table directly using raw SQLite queries. It does not
10
+ * use Drizzle ORM to avoid importing assistant-internal schema modules.
11
+ *
12
+ * The lookup is read-only — CES never modifies OAuth connection records.
13
+ */
14
+
15
+ import Database from "bun:sqlite";
16
+ import { existsSync } from "node:fs";
17
+ import { join } from "node:path";
18
+
19
+ import type { OAuthConnectionRecord } from "@vellumai/credential-storage";
20
+ import { oauthConnectionAccessTokenPath } from "@vellumai/credential-storage";
21
+ import type { OAuthConnectionLookup } from "../subjects/local.js";
22
+
23
+ // ---------------------------------------------------------------------------
24
+ // Raw SQLite row shape (matches oauth_connections table)
25
+ // ---------------------------------------------------------------------------
26
+
27
+ interface OAuthConnectionRow {
28
+ id: string;
29
+ oauth_app_id: string;
30
+ provider_key: string;
31
+ account_info: string | null;
32
+ granted_scopes: string;
33
+ expires_at: number | null;
34
+ has_refresh_token: number;
35
+ status: string;
36
+ label: string | null;
37
+ metadata: string | null;
38
+ created_at: number;
39
+ updated_at: number;
40
+ }
41
+
42
+ // ---------------------------------------------------------------------------
43
+ // Row → OAuthConnectionRecord mapping
44
+ // ---------------------------------------------------------------------------
45
+
46
+ function rowToRecord(row: OAuthConnectionRow): OAuthConnectionRecord {
47
+ return {
48
+ id: row.id,
49
+ providerKey: row.provider_key,
50
+ accountInfo: row.account_info,
51
+ grantedScopes: JSON.parse(row.granted_scopes || "[]"),
52
+ accessTokenPath: oauthConnectionAccessTokenPath(row.id),
53
+ hasRefreshToken: row.has_refresh_token === 1,
54
+ expiresAt: row.expires_at,
55
+ createdAt: row.created_at,
56
+ updatedAt: row.updated_at,
57
+ };
58
+ }
59
+
60
+ // ---------------------------------------------------------------------------
61
+ // Lookup implementation
62
+ // ---------------------------------------------------------------------------
63
+
64
+ /**
65
+ * Create a read-only OAuth connection lookup backed by the assistant's
66
+ * SQLite database.
67
+ *
68
+ * @param vellumRoot - The Vellum root directory (e.g. `~/.vellum`).
69
+ */
70
+ export function createLocalOAuthLookup(
71
+ vellumRoot: string,
72
+ ): OAuthConnectionLookup {
73
+ const dbPath = join(vellumRoot, "workspace", "data", "db", "assistant.db");
74
+
75
+ return {
76
+ getById(connectionId: string): OAuthConnectionRecord | undefined {
77
+ if (!existsSync(dbPath)) return undefined;
78
+
79
+ let db: Database | undefined;
80
+ try {
81
+ db = new Database(dbPath, { readonly: true });
82
+ const row = db
83
+ .query<OAuthConnectionRow, [string, string]>(
84
+ `SELECT * FROM oauth_connections WHERE id = ? AND status = ? LIMIT 1`,
85
+ )
86
+ .get(connectionId, "active");
87
+
88
+ if (!row) return undefined;
89
+ return rowToRecord(row);
90
+ } catch {
91
+ return undefined;
92
+ } finally {
93
+ db?.close();
94
+ }
95
+ },
96
+ };
97
+ }