@vellumai/assistant 0.4.54 → 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 (1483) hide show
  1. package/ARCHITECTURE.md +157 -163
  2. package/Dockerfile +6 -9
  3. package/README.md +1 -1
  4. package/bun.lock +145 -112
  5. package/docs/architecture/integrations.md +22 -22
  6. package/docs/architecture/memory.md +50 -50
  7. package/docs/architecture/security.md +2 -2
  8. package/docs/credential-execution-service.md +411 -0
  9. package/knip.json +5 -1
  10. package/node_modules/@vellumai/ces-contracts/bun.lock +29 -0
  11. package/node_modules/@vellumai/ces-contracts/package.json +24 -0
  12. package/node_modules/@vellumai/ces-contracts/src/__tests__/contracts.test.ts +293 -0
  13. package/node_modules/@vellumai/ces-contracts/src/__tests__/grants.test.ts +686 -0
  14. package/node_modules/@vellumai/ces-contracts/src/error.ts +25 -0
  15. package/node_modules/@vellumai/ces-contracts/src/grants.ts +184 -0
  16. package/node_modules/@vellumai/ces-contracts/src/handles.ts +213 -0
  17. package/node_modules/@vellumai/ces-contracts/src/index.ts +147 -0
  18. package/node_modules/@vellumai/ces-contracts/src/rendering.ts +135 -0
  19. package/node_modules/@vellumai/ces-contracts/src/rpc.ts +511 -0
  20. package/node_modules/@vellumai/ces-contracts/tsconfig.json +20 -0
  21. package/node_modules/@vellumai/credential-storage/bun.lock +24 -0
  22. package/node_modules/@vellumai/credential-storage/package.json +17 -0
  23. package/node_modules/@vellumai/credential-storage/src/__tests__/package-boundary.test.ts +151 -0
  24. package/node_modules/@vellumai/credential-storage/src/index.ts +213 -0
  25. package/node_modules/@vellumai/credential-storage/src/oauth-runtime.ts +340 -0
  26. package/node_modules/@vellumai/credential-storage/src/static-credentials.ts +365 -0
  27. package/node_modules/@vellumai/credential-storage/tsconfig.json +20 -0
  28. package/node_modules/@vellumai/egress-proxy/bun.lock +24 -0
  29. package/node_modules/@vellumai/egress-proxy/package.json +17 -0
  30. package/node_modules/@vellumai/egress-proxy/src/__tests__/package-boundary.test.ts +131 -0
  31. package/node_modules/@vellumai/egress-proxy/src/index.ts +54 -0
  32. package/node_modules/@vellumai/egress-proxy/src/session-core.ts +466 -0
  33. package/node_modules/@vellumai/egress-proxy/src/types.ts +227 -0
  34. package/node_modules/@vellumai/egress-proxy/tsconfig.json +20 -0
  35. package/node_modules/zod/LICENSE +21 -0
  36. package/node_modules/zod/README.md +208 -0
  37. package/node_modules/zod/index.cjs +33 -0
  38. package/node_modules/zod/index.d.cts +4 -0
  39. package/node_modules/zod/index.d.ts +4 -0
  40. package/node_modules/zod/index.js +4 -0
  41. package/node_modules/zod/locales/index.cjs +17 -0
  42. package/node_modules/zod/locales/index.d.cts +1 -0
  43. package/node_modules/zod/locales/index.d.ts +1 -0
  44. package/node_modules/zod/locales/index.js +1 -0
  45. package/node_modules/zod/locales/package.json +6 -0
  46. package/node_modules/zod/mini/index.cjs +32 -0
  47. package/node_modules/zod/mini/index.d.cts +3 -0
  48. package/node_modules/zod/mini/index.d.ts +3 -0
  49. package/node_modules/zod/mini/index.js +3 -0
  50. package/node_modules/zod/mini/package.json +6 -0
  51. package/node_modules/zod/package.json +135 -0
  52. package/node_modules/zod/src/index.ts +4 -0
  53. package/node_modules/zod/src/locales/index.ts +1 -0
  54. package/node_modules/zod/src/mini/index.ts +3 -0
  55. package/node_modules/zod/src/v3/ZodError.ts +330 -0
  56. package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  57. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  58. package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  59. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  60. package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  61. package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  62. package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  63. package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  64. package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  65. package/node_modules/zod/src/v3/errors.ts +13 -0
  66. package/node_modules/zod/src/v3/external.ts +6 -0
  67. package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  68. package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  69. package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  70. package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  71. package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  72. package/node_modules/zod/src/v3/helpers/util.ts +224 -0
  73. package/node_modules/zod/src/v3/index.ts +4 -0
  74. package/node_modules/zod/src/v3/locales/en.ts +124 -0
  75. package/node_modules/zod/src/v3/standard-schema.ts +113 -0
  76. package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  77. package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  78. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  79. package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  80. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  81. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  82. package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  83. package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  84. package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  85. package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  86. package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  87. package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
  88. package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  89. package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  90. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  91. package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  92. package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  93. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  94. package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  95. package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  96. package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  97. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  98. package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
  99. package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  100. package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  101. package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  102. package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  103. package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  104. package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  105. package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  106. package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  107. package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  108. package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
  109. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  110. package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  111. package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  112. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  113. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  114. package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  115. package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  116. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  117. package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  118. package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  119. package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  120. package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  121. package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  122. package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  123. package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  124. package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  125. package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  126. package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  127. package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  128. package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  129. package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  130. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  131. package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  132. package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  133. package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  134. package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  135. package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  136. package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  137. package/node_modules/zod/src/v3/types.ts +5138 -0
  138. package/node_modules/zod/src/v4/classic/checks.ts +32 -0
  139. package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  140. package/node_modules/zod/src/v4/classic/compat.ts +70 -0
  141. package/node_modules/zod/src/v4/classic/errors.ts +82 -0
  142. package/node_modules/zod/src/v4/classic/external.ts +51 -0
  143. package/node_modules/zod/src/v4/classic/from-json-schema.ts +643 -0
  144. package/node_modules/zod/src/v4/classic/index.ts +5 -0
  145. package/node_modules/zod/src/v4/classic/iso.ts +90 -0
  146. package/node_modules/zod/src/v4/classic/parse.ts +82 -0
  147. package/node_modules/zod/src/v4/classic/schemas.ts +2409 -0
  148. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  149. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
  150. package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  151. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
  152. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  153. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  154. package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  155. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  156. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
  157. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +276 -0
  158. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  159. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
  160. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +562 -0
  161. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  162. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
  163. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  164. package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
  165. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
  166. package/node_modules/zod/src/v4/classic/tests/default.test.ts +365 -0
  167. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  168. package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  169. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +661 -0
  170. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  171. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +595 -0
  172. package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  173. package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
  174. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
  175. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  176. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +734 -0
  177. package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
  178. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  179. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
  180. package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
  181. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
  182. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
  183. package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
  184. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  185. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
  186. package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
  187. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  188. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  189. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
  190. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  191. package/node_modules/zod/src/v4/classic/tests/number.test.ts +270 -0
  192. package/node_modules/zod/src/v4/classic/tests/object.test.ts +640 -0
  193. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +223 -0
  194. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +427 -0
  195. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
  196. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
  197. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
  198. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +282 -0
  199. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  200. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  201. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  202. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  203. package/node_modules/zod/src/v4/classic/tests/record.test.ts +632 -0
  204. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +582 -0
  205. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +570 -0
  206. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
  207. package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
  208. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
  209. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
  210. package/node_modules/zod/src/v4/classic/tests/string.test.ts +1175 -0
  211. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
  212. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
  213. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  214. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2990 -0
  215. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +361 -0
  216. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +183 -0
  217. package/node_modules/zod/src/v4/classic/tests/union.test.ts +219 -0
  218. package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  219. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  220. package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  221. package/node_modules/zod/src/v4/core/api.ts +1798 -0
  222. package/node_modules/zod/src/v4/core/checks.ts +1293 -0
  223. package/node_modules/zod/src/v4/core/config.ts +15 -0
  224. package/node_modules/zod/src/v4/core/core.ts +138 -0
  225. package/node_modules/zod/src/v4/core/doc.ts +44 -0
  226. package/node_modules/zod/src/v4/core/errors.ts +448 -0
  227. package/node_modules/zod/src/v4/core/index.ts +16 -0
  228. package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
  229. package/node_modules/zod/src/v4/core/json-schema-processors.ts +667 -0
  230. package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
  231. package/node_modules/zod/src/v4/core/parse.ts +195 -0
  232. package/node_modules/zod/src/v4/core/regexes.ts +183 -0
  233. package/node_modules/zod/src/v4/core/registries.ts +105 -0
  234. package/node_modules/zod/src/v4/core/schemas.ts +4538 -0
  235. package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
  236. package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  237. package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  238. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  239. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  240. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
  241. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  242. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  243. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  244. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  245. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +83 -0
  246. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +67 -0
  247. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  248. package/node_modules/zod/src/v4/core/to-json-schema.ts +613 -0
  249. package/node_modules/zod/src/v4/core/util.ts +966 -0
  250. package/node_modules/zod/src/v4/core/versions.ts +5 -0
  251. package/node_modules/zod/src/v4/core/zsf.ts +323 -0
  252. package/node_modules/zod/src/v4/index.ts +4 -0
  253. package/node_modules/zod/src/v4/locales/ar.ts +115 -0
  254. package/node_modules/zod/src/v4/locales/az.ts +111 -0
  255. package/node_modules/zod/src/v4/locales/be.ts +176 -0
  256. package/node_modules/zod/src/v4/locales/bg.ts +128 -0
  257. package/node_modules/zod/src/v4/locales/ca.ts +116 -0
  258. package/node_modules/zod/src/v4/locales/cs.ts +118 -0
  259. package/node_modules/zod/src/v4/locales/da.ts +123 -0
  260. package/node_modules/zod/src/v4/locales/de.ts +116 -0
  261. package/node_modules/zod/src/v4/locales/en.ts +119 -0
  262. package/node_modules/zod/src/v4/locales/eo.ts +118 -0
  263. package/node_modules/zod/src/v4/locales/es.ts +141 -0
  264. package/node_modules/zod/src/v4/locales/fa.ts +126 -0
  265. package/node_modules/zod/src/v4/locales/fi.ts +121 -0
  266. package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
  267. package/node_modules/zod/src/v4/locales/fr.ts +116 -0
  268. package/node_modules/zod/src/v4/locales/he.ts +246 -0
  269. package/node_modules/zod/src/v4/locales/hu.ts +117 -0
  270. package/node_modules/zod/src/v4/locales/hy.ts +164 -0
  271. package/node_modules/zod/src/v4/locales/id.ts +115 -0
  272. package/node_modules/zod/src/v4/locales/index.ts +49 -0
  273. package/node_modules/zod/src/v4/locales/is.ts +119 -0
  274. package/node_modules/zod/src/v4/locales/it.ts +116 -0
  275. package/node_modules/zod/src/v4/locales/ja.ts +114 -0
  276. package/node_modules/zod/src/v4/locales/ka.ts +123 -0
  277. package/node_modules/zod/src/v4/locales/kh.ts +7 -0
  278. package/node_modules/zod/src/v4/locales/km.ts +119 -0
  279. package/node_modules/zod/src/v4/locales/ko.ts +121 -0
  280. package/node_modules/zod/src/v4/locales/lt.ts +239 -0
  281. package/node_modules/zod/src/v4/locales/mk.ts +118 -0
  282. package/node_modules/zod/src/v4/locales/ms.ts +115 -0
  283. package/node_modules/zod/src/v4/locales/nl.ts +121 -0
  284. package/node_modules/zod/src/v4/locales/no.ts +116 -0
  285. package/node_modules/zod/src/v4/locales/ota.ts +117 -0
  286. package/node_modules/zod/src/v4/locales/pl.ts +118 -0
  287. package/node_modules/zod/src/v4/locales/ps.ts +126 -0
  288. package/node_modules/zod/src/v4/locales/pt.ts +116 -0
  289. package/node_modules/zod/src/v4/locales/ru.ts +176 -0
  290. package/node_modules/zod/src/v4/locales/sl.ts +118 -0
  291. package/node_modules/zod/src/v4/locales/sv.ts +119 -0
  292. package/node_modules/zod/src/v4/locales/ta.ts +118 -0
  293. package/node_modules/zod/src/v4/locales/th.ts +119 -0
  294. package/node_modules/zod/src/v4/locales/tr.ts +111 -0
  295. package/node_modules/zod/src/v4/locales/ua.ts +7 -0
  296. package/node_modules/zod/src/v4/locales/uk.ts +117 -0
  297. package/node_modules/zod/src/v4/locales/ur.ts +119 -0
  298. package/node_modules/zod/src/v4/locales/uz.ts +116 -0
  299. package/node_modules/zod/src/v4/locales/vi.ts +117 -0
  300. package/node_modules/zod/src/v4/locales/yo.ts +124 -0
  301. package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
  302. package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
  303. package/node_modules/zod/src/v4/mini/checks.ts +32 -0
  304. package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
  305. package/node_modules/zod/src/v4/mini/external.ts +40 -0
  306. package/node_modules/zod/src/v4/mini/index.ts +3 -0
  307. package/node_modules/zod/src/v4/mini/iso.ts +66 -0
  308. package/node_modules/zod/src/v4/mini/parse.ts +14 -0
  309. package/node_modules/zod/src/v4/mini/schemas.ts +1916 -0
  310. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
  311. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  312. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
  313. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  314. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +529 -0
  315. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  316. package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  317. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
  318. package/node_modules/zod/src/v4/mini/tests/index.test.ts +963 -0
  319. package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  320. package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
  321. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  322. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
  323. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  324. package/node_modules/zod/src/v4/mini/tests/string.test.ts +347 -0
  325. package/node_modules/zod/src/v4-mini/index.ts +3 -0
  326. package/node_modules/zod/v3/ZodError.cjs +138 -0
  327. package/node_modules/zod/v3/ZodError.d.cts +164 -0
  328. package/node_modules/zod/v3/ZodError.d.ts +164 -0
  329. package/node_modules/zod/v3/ZodError.js +133 -0
  330. package/node_modules/zod/v3/errors.cjs +17 -0
  331. package/node_modules/zod/v3/errors.d.cts +5 -0
  332. package/node_modules/zod/v3/errors.d.ts +5 -0
  333. package/node_modules/zod/v3/errors.js +9 -0
  334. package/node_modules/zod/v3/external.cjs +22 -0
  335. package/node_modules/zod/v3/external.d.cts +6 -0
  336. package/node_modules/zod/v3/external.d.ts +6 -0
  337. package/node_modules/zod/v3/external.js +6 -0
  338. package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  339. package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  340. package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  341. package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  342. package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  343. package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  344. package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  345. package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  346. package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  347. package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  348. package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  349. package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  350. package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  351. package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  352. package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  353. package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  354. package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  355. package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  356. package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  357. package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  358. package/node_modules/zod/v3/helpers/util.cjs +137 -0
  359. package/node_modules/zod/v3/helpers/util.d.cts +85 -0
  360. package/node_modules/zod/v3/helpers/util.d.ts +85 -0
  361. package/node_modules/zod/v3/helpers/util.js +133 -0
  362. package/node_modules/zod/v3/index.cjs +33 -0
  363. package/node_modules/zod/v3/index.d.cts +4 -0
  364. package/node_modules/zod/v3/index.d.ts +4 -0
  365. package/node_modules/zod/v3/index.js +4 -0
  366. package/node_modules/zod/v3/locales/en.cjs +112 -0
  367. package/node_modules/zod/v3/locales/en.d.cts +3 -0
  368. package/node_modules/zod/v3/locales/en.d.ts +3 -0
  369. package/node_modules/zod/v3/locales/en.js +109 -0
  370. package/node_modules/zod/v3/package.json +6 -0
  371. package/node_modules/zod/v3/standard-schema.cjs +2 -0
  372. package/node_modules/zod/v3/standard-schema.d.cts +102 -0
  373. package/node_modules/zod/v3/standard-schema.d.ts +102 -0
  374. package/node_modules/zod/v3/standard-schema.js +1 -0
  375. package/node_modules/zod/v3/types.cjs +3777 -0
  376. package/node_modules/zod/v3/types.d.cts +1034 -0
  377. package/node_modules/zod/v3/types.d.ts +1034 -0
  378. package/node_modules/zod/v3/types.js +3695 -0
  379. package/node_modules/zod/v4/classic/checks.cjs +33 -0
  380. package/node_modules/zod/v4/classic/checks.d.cts +1 -0
  381. package/node_modules/zod/v4/classic/checks.d.ts +1 -0
  382. package/node_modules/zod/v4/classic/checks.js +1 -0
  383. package/node_modules/zod/v4/classic/coerce.cjs +47 -0
  384. package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  385. package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  386. package/node_modules/zod/v4/classic/coerce.js +17 -0
  387. package/node_modules/zod/v4/classic/compat.cjs +61 -0
  388. package/node_modules/zod/v4/classic/compat.d.cts +50 -0
  389. package/node_modules/zod/v4/classic/compat.d.ts +50 -0
  390. package/node_modules/zod/v4/classic/compat.js +31 -0
  391. package/node_modules/zod/v4/classic/errors.cjs +74 -0
  392. package/node_modules/zod/v4/classic/errors.d.cts +30 -0
  393. package/node_modules/zod/v4/classic/errors.d.ts +30 -0
  394. package/node_modules/zod/v4/classic/errors.js +48 -0
  395. package/node_modules/zod/v4/classic/external.cjs +73 -0
  396. package/node_modules/zod/v4/classic/external.d.cts +15 -0
  397. package/node_modules/zod/v4/classic/external.d.ts +15 -0
  398. package/node_modules/zod/v4/classic/external.js +20 -0
  399. package/node_modules/zod/v4/classic/from-json-schema.cjs +610 -0
  400. package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
  401. package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
  402. package/node_modules/zod/v4/classic/from-json-schema.js +584 -0
  403. package/node_modules/zod/v4/classic/index.cjs +33 -0
  404. package/node_modules/zod/v4/classic/index.d.cts +4 -0
  405. package/node_modules/zod/v4/classic/index.d.ts +4 -0
  406. package/node_modules/zod/v4/classic/index.js +4 -0
  407. package/node_modules/zod/v4/classic/iso.cjs +60 -0
  408. package/node_modules/zod/v4/classic/iso.d.cts +22 -0
  409. package/node_modules/zod/v4/classic/iso.d.ts +22 -0
  410. package/node_modules/zod/v4/classic/iso.js +30 -0
  411. package/node_modules/zod/v4/classic/package.json +6 -0
  412. package/node_modules/zod/v4/classic/parse.cjs +41 -0
  413. package/node_modules/zod/v4/classic/parse.d.cts +31 -0
  414. package/node_modules/zod/v4/classic/parse.d.ts +31 -0
  415. package/node_modules/zod/v4/classic/parse.js +15 -0
  416. package/node_modules/zod/v4/classic/schemas.cjs +1272 -0
  417. package/node_modules/zod/v4/classic/schemas.d.cts +739 -0
  418. package/node_modules/zod/v4/classic/schemas.d.ts +739 -0
  419. package/node_modules/zod/v4/classic/schemas.js +1157 -0
  420. package/node_modules/zod/v4/core/api.cjs +1222 -0
  421. package/node_modules/zod/v4/core/api.d.cts +304 -0
  422. package/node_modules/zod/v4/core/api.d.ts +304 -0
  423. package/node_modules/zod/v4/core/api.js +1082 -0
  424. package/node_modules/zod/v4/core/checks.cjs +601 -0
  425. package/node_modules/zod/v4/core/checks.d.cts +278 -0
  426. package/node_modules/zod/v4/core/checks.d.ts +278 -0
  427. package/node_modules/zod/v4/core/checks.js +575 -0
  428. package/node_modules/zod/v4/core/core.cjs +83 -0
  429. package/node_modules/zod/v4/core/core.d.cts +70 -0
  430. package/node_modules/zod/v4/core/core.d.ts +70 -0
  431. package/node_modules/zod/v4/core/core.js +76 -0
  432. package/node_modules/zod/v4/core/doc.cjs +39 -0
  433. package/node_modules/zod/v4/core/doc.d.cts +14 -0
  434. package/node_modules/zod/v4/core/doc.d.ts +14 -0
  435. package/node_modules/zod/v4/core/doc.js +35 -0
  436. package/node_modules/zod/v4/core/errors.cjs +213 -0
  437. package/node_modules/zod/v4/core/errors.d.cts +220 -0
  438. package/node_modules/zod/v4/core/errors.d.ts +220 -0
  439. package/node_modules/zod/v4/core/errors.js +182 -0
  440. package/node_modules/zod/v4/core/index.cjs +47 -0
  441. package/node_modules/zod/v4/core/index.d.cts +16 -0
  442. package/node_modules/zod/v4/core/index.d.ts +16 -0
  443. package/node_modules/zod/v4/core/index.js +16 -0
  444. package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
  445. package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
  446. package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
  447. package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
  448. package/node_modules/zod/v4/core/json-schema-processors.cjs +648 -0
  449. package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
  450. package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
  451. package/node_modules/zod/v4/core/json-schema-processors.js +605 -0
  452. package/node_modules/zod/v4/core/json-schema.cjs +2 -0
  453. package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
  454. package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
  455. package/node_modules/zod/v4/core/json-schema.js +1 -0
  456. package/node_modules/zod/v4/core/package.json +6 -0
  457. package/node_modules/zod/v4/core/parse.cjs +131 -0
  458. package/node_modules/zod/v4/core/parse.d.cts +49 -0
  459. package/node_modules/zod/v4/core/parse.d.ts +49 -0
  460. package/node_modules/zod/v4/core/parse.js +93 -0
  461. package/node_modules/zod/v4/core/regexes.cjs +166 -0
  462. package/node_modules/zod/v4/core/regexes.d.cts +79 -0
  463. package/node_modules/zod/v4/core/regexes.d.ts +79 -0
  464. package/node_modules/zod/v4/core/regexes.js +133 -0
  465. package/node_modules/zod/v4/core/registries.cjs +56 -0
  466. package/node_modules/zod/v4/core/registries.d.cts +35 -0
  467. package/node_modules/zod/v4/core/registries.d.ts +35 -0
  468. package/node_modules/zod/v4/core/registries.js +51 -0
  469. package/node_modules/zod/v4/core/schemas.cjs +2124 -0
  470. package/node_modules/zod/v4/core/schemas.d.cts +1146 -0
  471. package/node_modules/zod/v4/core/schemas.d.ts +1146 -0
  472. package/node_modules/zod/v4/core/schemas.js +2093 -0
  473. package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  474. package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
  475. package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
  476. package/node_modules/zod/v4/core/standard-schema.js +1 -0
  477. package/node_modules/zod/v4/core/to-json-schema.cjs +446 -0
  478. package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
  479. package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
  480. package/node_modules/zod/v4/core/to-json-schema.js +437 -0
  481. package/node_modules/zod/v4/core/util.cjs +710 -0
  482. package/node_modules/zod/v4/core/util.d.cts +199 -0
  483. package/node_modules/zod/v4/core/util.d.ts +199 -0
  484. package/node_modules/zod/v4/core/util.js +651 -0
  485. package/node_modules/zod/v4/core/versions.cjs +8 -0
  486. package/node_modules/zod/v4/core/versions.d.cts +5 -0
  487. package/node_modules/zod/v4/core/versions.d.ts +5 -0
  488. package/node_modules/zod/v4/core/versions.js +5 -0
  489. package/node_modules/zod/v4/index.cjs +22 -0
  490. package/node_modules/zod/v4/index.d.cts +3 -0
  491. package/node_modules/zod/v4/index.d.ts +3 -0
  492. package/node_modules/zod/v4/index.js +3 -0
  493. package/node_modules/zod/v4/locales/ar.cjs +133 -0
  494. package/node_modules/zod/v4/locales/ar.d.cts +5 -0
  495. package/node_modules/zod/v4/locales/ar.d.ts +4 -0
  496. package/node_modules/zod/v4/locales/ar.js +106 -0
  497. package/node_modules/zod/v4/locales/az.cjs +132 -0
  498. package/node_modules/zod/v4/locales/az.d.cts +5 -0
  499. package/node_modules/zod/v4/locales/az.d.ts +4 -0
  500. package/node_modules/zod/v4/locales/az.js +105 -0
  501. package/node_modules/zod/v4/locales/be.cjs +183 -0
  502. package/node_modules/zod/v4/locales/be.d.cts +5 -0
  503. package/node_modules/zod/v4/locales/be.d.ts +4 -0
  504. package/node_modules/zod/v4/locales/be.js +156 -0
  505. package/node_modules/zod/v4/locales/bg.cjs +147 -0
  506. package/node_modules/zod/v4/locales/bg.d.cts +5 -0
  507. package/node_modules/zod/v4/locales/bg.d.ts +4 -0
  508. package/node_modules/zod/v4/locales/bg.js +120 -0
  509. package/node_modules/zod/v4/locales/ca.cjs +134 -0
  510. package/node_modules/zod/v4/locales/ca.d.cts +5 -0
  511. package/node_modules/zod/v4/locales/ca.d.ts +4 -0
  512. package/node_modules/zod/v4/locales/ca.js +107 -0
  513. package/node_modules/zod/v4/locales/cs.cjs +138 -0
  514. package/node_modules/zod/v4/locales/cs.d.cts +5 -0
  515. package/node_modules/zod/v4/locales/cs.d.ts +4 -0
  516. package/node_modules/zod/v4/locales/cs.js +111 -0
  517. package/node_modules/zod/v4/locales/da.cjs +142 -0
  518. package/node_modules/zod/v4/locales/da.d.cts +5 -0
  519. package/node_modules/zod/v4/locales/da.d.ts +4 -0
  520. package/node_modules/zod/v4/locales/da.js +115 -0
  521. package/node_modules/zod/v4/locales/de.cjs +135 -0
  522. package/node_modules/zod/v4/locales/de.d.cts +5 -0
  523. package/node_modules/zod/v4/locales/de.d.ts +4 -0
  524. package/node_modules/zod/v4/locales/de.js +108 -0
  525. package/node_modules/zod/v4/locales/en.cjs +136 -0
  526. package/node_modules/zod/v4/locales/en.d.cts +5 -0
  527. package/node_modules/zod/v4/locales/en.d.ts +4 -0
  528. package/node_modules/zod/v4/locales/en.js +109 -0
  529. package/node_modules/zod/v4/locales/eo.cjs +136 -0
  530. package/node_modules/zod/v4/locales/eo.d.cts +5 -0
  531. package/node_modules/zod/v4/locales/eo.d.ts +4 -0
  532. package/node_modules/zod/v4/locales/eo.js +109 -0
  533. package/node_modules/zod/v4/locales/es.cjs +159 -0
  534. package/node_modules/zod/v4/locales/es.d.cts +5 -0
  535. package/node_modules/zod/v4/locales/es.d.ts +4 -0
  536. package/node_modules/zod/v4/locales/es.js +132 -0
  537. package/node_modules/zod/v4/locales/fa.cjs +141 -0
  538. package/node_modules/zod/v4/locales/fa.d.cts +5 -0
  539. package/node_modules/zod/v4/locales/fa.d.ts +4 -0
  540. package/node_modules/zod/v4/locales/fa.js +114 -0
  541. package/node_modules/zod/v4/locales/fi.cjs +139 -0
  542. package/node_modules/zod/v4/locales/fi.d.cts +5 -0
  543. package/node_modules/zod/v4/locales/fi.d.ts +4 -0
  544. package/node_modules/zod/v4/locales/fi.js +112 -0
  545. package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
  546. package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
  547. package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  548. package/node_modules/zod/v4/locales/fr-CA.js +107 -0
  549. package/node_modules/zod/v4/locales/fr.cjs +135 -0
  550. package/node_modules/zod/v4/locales/fr.d.cts +5 -0
  551. package/node_modules/zod/v4/locales/fr.d.ts +4 -0
  552. package/node_modules/zod/v4/locales/fr.js +108 -0
  553. package/node_modules/zod/v4/locales/he.cjs +241 -0
  554. package/node_modules/zod/v4/locales/he.d.cts +5 -0
  555. package/node_modules/zod/v4/locales/he.d.ts +4 -0
  556. package/node_modules/zod/v4/locales/he.js +214 -0
  557. package/node_modules/zod/v4/locales/hu.cjs +135 -0
  558. package/node_modules/zod/v4/locales/hu.d.cts +5 -0
  559. package/node_modules/zod/v4/locales/hu.d.ts +4 -0
  560. package/node_modules/zod/v4/locales/hu.js +108 -0
  561. package/node_modules/zod/v4/locales/hy.cjs +174 -0
  562. package/node_modules/zod/v4/locales/hy.d.cts +5 -0
  563. package/node_modules/zod/v4/locales/hy.d.ts +4 -0
  564. package/node_modules/zod/v4/locales/hy.js +147 -0
  565. package/node_modules/zod/v4/locales/id.cjs +133 -0
  566. package/node_modules/zod/v4/locales/id.d.cts +5 -0
  567. package/node_modules/zod/v4/locales/id.d.ts +4 -0
  568. package/node_modules/zod/v4/locales/id.js +106 -0
  569. package/node_modules/zod/v4/locales/index.cjs +104 -0
  570. package/node_modules/zod/v4/locales/index.d.cts +49 -0
  571. package/node_modules/zod/v4/locales/index.d.ts +49 -0
  572. package/node_modules/zod/v4/locales/index.js +49 -0
  573. package/node_modules/zod/v4/locales/is.cjs +136 -0
  574. package/node_modules/zod/v4/locales/is.d.cts +5 -0
  575. package/node_modules/zod/v4/locales/is.d.ts +4 -0
  576. package/node_modules/zod/v4/locales/is.js +109 -0
  577. package/node_modules/zod/v4/locales/it.cjs +135 -0
  578. package/node_modules/zod/v4/locales/it.d.cts +5 -0
  579. package/node_modules/zod/v4/locales/it.d.ts +4 -0
  580. package/node_modules/zod/v4/locales/it.js +108 -0
  581. package/node_modules/zod/v4/locales/ja.cjs +134 -0
  582. package/node_modules/zod/v4/locales/ja.d.cts +5 -0
  583. package/node_modules/zod/v4/locales/ja.d.ts +4 -0
  584. package/node_modules/zod/v4/locales/ja.js +107 -0
  585. package/node_modules/zod/v4/locales/ka.cjs +139 -0
  586. package/node_modules/zod/v4/locales/ka.d.cts +5 -0
  587. package/node_modules/zod/v4/locales/ka.d.ts +4 -0
  588. package/node_modules/zod/v4/locales/ka.js +112 -0
  589. package/node_modules/zod/v4/locales/kh.cjs +12 -0
  590. package/node_modules/zod/v4/locales/kh.d.cts +5 -0
  591. package/node_modules/zod/v4/locales/kh.d.ts +5 -0
  592. package/node_modules/zod/v4/locales/kh.js +5 -0
  593. package/node_modules/zod/v4/locales/km.cjs +137 -0
  594. package/node_modules/zod/v4/locales/km.d.cts +5 -0
  595. package/node_modules/zod/v4/locales/km.d.ts +4 -0
  596. package/node_modules/zod/v4/locales/km.js +110 -0
  597. package/node_modules/zod/v4/locales/ko.cjs +138 -0
  598. package/node_modules/zod/v4/locales/ko.d.cts +5 -0
  599. package/node_modules/zod/v4/locales/ko.d.ts +4 -0
  600. package/node_modules/zod/v4/locales/ko.js +111 -0
  601. package/node_modules/zod/v4/locales/lt.cjs +230 -0
  602. package/node_modules/zod/v4/locales/lt.d.cts +5 -0
  603. package/node_modules/zod/v4/locales/lt.d.ts +4 -0
  604. package/node_modules/zod/v4/locales/lt.js +203 -0
  605. package/node_modules/zod/v4/locales/mk.cjs +136 -0
  606. package/node_modules/zod/v4/locales/mk.d.cts +5 -0
  607. package/node_modules/zod/v4/locales/mk.d.ts +4 -0
  608. package/node_modules/zod/v4/locales/mk.js +109 -0
  609. package/node_modules/zod/v4/locales/ms.cjs +134 -0
  610. package/node_modules/zod/v4/locales/ms.d.cts +5 -0
  611. package/node_modules/zod/v4/locales/ms.d.ts +4 -0
  612. package/node_modules/zod/v4/locales/ms.js +107 -0
  613. package/node_modules/zod/v4/locales/nl.cjs +137 -0
  614. package/node_modules/zod/v4/locales/nl.d.cts +5 -0
  615. package/node_modules/zod/v4/locales/nl.d.ts +4 -0
  616. package/node_modules/zod/v4/locales/nl.js +110 -0
  617. package/node_modules/zod/v4/locales/no.cjs +135 -0
  618. package/node_modules/zod/v4/locales/no.d.cts +5 -0
  619. package/node_modules/zod/v4/locales/no.d.ts +4 -0
  620. package/node_modules/zod/v4/locales/no.js +108 -0
  621. package/node_modules/zod/v4/locales/ota.cjs +136 -0
  622. package/node_modules/zod/v4/locales/ota.d.cts +5 -0
  623. package/node_modules/zod/v4/locales/ota.d.ts +4 -0
  624. package/node_modules/zod/v4/locales/ota.js +109 -0
  625. package/node_modules/zod/v4/locales/package.json +6 -0
  626. package/node_modules/zod/v4/locales/pl.cjs +136 -0
  627. package/node_modules/zod/v4/locales/pl.d.cts +5 -0
  628. package/node_modules/zod/v4/locales/pl.d.ts +4 -0
  629. package/node_modules/zod/v4/locales/pl.js +109 -0
  630. package/node_modules/zod/v4/locales/ps.cjs +141 -0
  631. package/node_modules/zod/v4/locales/ps.d.cts +5 -0
  632. package/node_modules/zod/v4/locales/ps.d.ts +4 -0
  633. package/node_modules/zod/v4/locales/ps.js +114 -0
  634. package/node_modules/zod/v4/locales/pt.cjs +135 -0
  635. package/node_modules/zod/v4/locales/pt.d.cts +5 -0
  636. package/node_modules/zod/v4/locales/pt.d.ts +4 -0
  637. package/node_modules/zod/v4/locales/pt.js +108 -0
  638. package/node_modules/zod/v4/locales/ru.cjs +183 -0
  639. package/node_modules/zod/v4/locales/ru.d.cts +5 -0
  640. package/node_modules/zod/v4/locales/ru.d.ts +4 -0
  641. package/node_modules/zod/v4/locales/ru.js +156 -0
  642. package/node_modules/zod/v4/locales/sl.cjs +136 -0
  643. package/node_modules/zod/v4/locales/sl.d.cts +5 -0
  644. package/node_modules/zod/v4/locales/sl.d.ts +4 -0
  645. package/node_modules/zod/v4/locales/sl.js +109 -0
  646. package/node_modules/zod/v4/locales/sv.cjs +137 -0
  647. package/node_modules/zod/v4/locales/sv.d.cts +5 -0
  648. package/node_modules/zod/v4/locales/sv.d.ts +4 -0
  649. package/node_modules/zod/v4/locales/sv.js +110 -0
  650. package/node_modules/zod/v4/locales/ta.cjs +137 -0
  651. package/node_modules/zod/v4/locales/ta.d.cts +5 -0
  652. package/node_modules/zod/v4/locales/ta.d.ts +4 -0
  653. package/node_modules/zod/v4/locales/ta.js +110 -0
  654. package/node_modules/zod/v4/locales/th.cjs +137 -0
  655. package/node_modules/zod/v4/locales/th.d.cts +5 -0
  656. package/node_modules/zod/v4/locales/th.d.ts +4 -0
  657. package/node_modules/zod/v4/locales/th.js +110 -0
  658. package/node_modules/zod/v4/locales/tr.cjs +132 -0
  659. package/node_modules/zod/v4/locales/tr.d.cts +5 -0
  660. package/node_modules/zod/v4/locales/tr.d.ts +4 -0
  661. package/node_modules/zod/v4/locales/tr.js +105 -0
  662. package/node_modules/zod/v4/locales/ua.cjs +12 -0
  663. package/node_modules/zod/v4/locales/ua.d.cts +5 -0
  664. package/node_modules/zod/v4/locales/ua.d.ts +5 -0
  665. package/node_modules/zod/v4/locales/ua.js +5 -0
  666. package/node_modules/zod/v4/locales/uk.cjs +135 -0
  667. package/node_modules/zod/v4/locales/uk.d.cts +5 -0
  668. package/node_modules/zod/v4/locales/uk.d.ts +4 -0
  669. package/node_modules/zod/v4/locales/uk.js +108 -0
  670. package/node_modules/zod/v4/locales/ur.cjs +137 -0
  671. package/node_modules/zod/v4/locales/ur.d.cts +5 -0
  672. package/node_modules/zod/v4/locales/ur.d.ts +4 -0
  673. package/node_modules/zod/v4/locales/ur.js +110 -0
  674. package/node_modules/zod/v4/locales/uz.cjs +136 -0
  675. package/node_modules/zod/v4/locales/uz.d.cts +5 -0
  676. package/node_modules/zod/v4/locales/uz.d.ts +4 -0
  677. package/node_modules/zod/v4/locales/uz.js +109 -0
  678. package/node_modules/zod/v4/locales/vi.cjs +135 -0
  679. package/node_modules/zod/v4/locales/vi.d.cts +5 -0
  680. package/node_modules/zod/v4/locales/vi.d.ts +4 -0
  681. package/node_modules/zod/v4/locales/vi.js +108 -0
  682. package/node_modules/zod/v4/locales/yo.cjs +134 -0
  683. package/node_modules/zod/v4/locales/yo.d.cts +5 -0
  684. package/node_modules/zod/v4/locales/yo.d.ts +4 -0
  685. package/node_modules/zod/v4/locales/yo.js +107 -0
  686. package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
  687. package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
  688. package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  689. package/node_modules/zod/v4/locales/zh-CN.js +109 -0
  690. package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
  691. package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
  692. package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  693. package/node_modules/zod/v4/locales/zh-TW.js +107 -0
  694. package/node_modules/zod/v4/mini/checks.cjs +34 -0
  695. package/node_modules/zod/v4/mini/checks.d.cts +1 -0
  696. package/node_modules/zod/v4/mini/checks.d.ts +1 -0
  697. package/node_modules/zod/v4/mini/checks.js +1 -0
  698. package/node_modules/zod/v4/mini/coerce.cjs +52 -0
  699. package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  700. package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  701. package/node_modules/zod/v4/mini/coerce.js +22 -0
  702. package/node_modules/zod/v4/mini/external.cjs +63 -0
  703. package/node_modules/zod/v4/mini/external.d.cts +12 -0
  704. package/node_modules/zod/v4/mini/external.d.ts +12 -0
  705. package/node_modules/zod/v4/mini/external.js +14 -0
  706. package/node_modules/zod/v4/mini/index.cjs +32 -0
  707. package/node_modules/zod/v4/mini/index.d.cts +3 -0
  708. package/node_modules/zod/v4/mini/index.d.ts +3 -0
  709. package/node_modules/zod/v4/mini/index.js +3 -0
  710. package/node_modules/zod/v4/mini/iso.cjs +64 -0
  711. package/node_modules/zod/v4/mini/iso.d.cts +22 -0
  712. package/node_modules/zod/v4/mini/iso.d.ts +22 -0
  713. package/node_modules/zod/v4/mini/iso.js +34 -0
  714. package/node_modules/zod/v4/mini/package.json +6 -0
  715. package/node_modules/zod/v4/mini/parse.cjs +16 -0
  716. package/node_modules/zod/v4/mini/parse.d.cts +1 -0
  717. package/node_modules/zod/v4/mini/parse.d.ts +1 -0
  718. package/node_modules/zod/v4/mini/parse.js +1 -0
  719. package/node_modules/zod/v4/mini/schemas.cjs +1046 -0
  720. package/node_modules/zod/v4/mini/schemas.d.cts +427 -0
  721. package/node_modules/zod/v4/mini/schemas.d.ts +427 -0
  722. package/node_modules/zod/v4/mini/schemas.js +925 -0
  723. package/node_modules/zod/v4/package.json +6 -0
  724. package/node_modules/zod/v4-mini/index.cjs +32 -0
  725. package/node_modules/zod/v4-mini/index.d.cts +3 -0
  726. package/node_modules/zod/v4-mini/index.d.ts +3 -0
  727. package/node_modules/zod/v4-mini/index.js +3 -0
  728. package/node_modules/zod/v4-mini/package.json +6 -0
  729. package/package.json +13 -2
  730. package/src/__tests__/acp-session.test.ts +292 -0
  731. package/src/__tests__/actor-token-service.test.ts +3 -3
  732. package/src/__tests__/always-loaded-tools-guard.test.ts +1 -1
  733. package/src/__tests__/anthropic-provider.test.ts +168 -46
  734. package/src/__tests__/app-builder-tool-scripts.test.ts +0 -1
  735. package/src/__tests__/approval-cascade.test.ts +121 -95
  736. package/src/__tests__/approval-primitive.test.ts +2 -2
  737. package/src/__tests__/approval-routes-http.test.ts +41 -26
  738. package/src/__tests__/asset-materialize-tool.test.ts +9 -16
  739. package/src/__tests__/asset-search-tool.test.ts +5 -12
  740. package/src/__tests__/assistant-attachments.test.ts +27 -0
  741. package/src/__tests__/assistant-event-hub.test.ts +14 -10
  742. package/src/__tests__/assistant-event.test.ts +9 -9
  743. package/src/__tests__/assistant-feature-flag-guardrails.test.ts +6 -1
  744. package/src/__tests__/assistant-feature-flags-integration.test.ts +139 -22
  745. package/src/__tests__/attachments-store.test.ts +1 -1
  746. package/src/__tests__/avatar-e2e.test.ts +16 -6
  747. package/src/__tests__/avatar-generator.test.ts +4 -7
  748. package/src/__tests__/browser-fill-credential.test.ts +17 -18
  749. package/src/__tests__/browser-skill-endstate.test.ts +1 -1
  750. package/src/__tests__/btw-routes.test.ts +21 -9
  751. package/src/__tests__/call-controller.test.ts +229 -202
  752. package/src/__tests__/call-pointer-messages.test.ts +12 -10
  753. package/src/__tests__/call-routes-http.test.ts +2 -2
  754. package/src/__tests__/call-start-guardian-guard.test.ts +0 -1
  755. package/src/__tests__/canonical-guardian-store.test.ts +8 -10
  756. package/src/__tests__/channel-approval-routes.test.ts +5 -5
  757. package/src/__tests__/channel-approval.test.ts +1 -1
  758. package/src/__tests__/channel-approvals.test.ts +13 -13
  759. package/src/__tests__/channel-guardian.test.ts +3 -3
  760. package/src/__tests__/channel-invite-transport.test.ts +5 -1
  761. package/src/__tests__/channel-readiness-routes.test.ts +4 -0
  762. package/src/__tests__/channel-reply-delivery.test.ts +1 -1
  763. package/src/__tests__/checker.test.ts +1 -1
  764. package/src/__tests__/claude-code-skill-regression.test.ts +67 -1
  765. package/src/__tests__/claude-code-tool-profiles.test.ts +1 -1
  766. package/src/__tests__/clipboard.test.ts +6 -6
  767. package/src/__tests__/commit-guarantee.test.ts +9 -9
  768. package/src/__tests__/commit-message-enrichment-service.test.ts +37 -6
  769. package/src/__tests__/computer-use-tools.test.ts +0 -1
  770. package/src/__tests__/config-loader-backfill.test.ts +6 -4
  771. package/src/__tests__/config-schema-cmd.test.ts +258 -0
  772. package/src/__tests__/config-schema.test.ts +38 -30
  773. package/src/__tests__/config-watcher.test.ts +25 -24
  774. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +16 -14
  775. package/src/__tests__/contacts-tools.test.ts +0 -1
  776. package/src/__tests__/context-overflow-approval.test.ts +2 -2
  777. package/src/__tests__/{session-abort-tool-results.test.ts → conversation-abort-tool-results.test.ts} +24 -11
  778. package/src/__tests__/{session-agent-loop-overflow.test.ts → conversation-agent-loop-overflow.test.ts} +234 -59
  779. package/src/__tests__/{session-agent-loop.test.ts → conversation-agent-loop.test.ts} +77 -61
  780. package/src/__tests__/{session-approval-overrides.test.ts → conversation-approval-overrides.test.ts} +23 -23
  781. package/src/__tests__/conversation-attachments.test.ts +227 -0
  782. package/src/__tests__/conversation-attention-telegram.test.ts +2 -2
  783. package/src/__tests__/{session-confirmation-signals.test.ts → conversation-confirmation-signals.test.ts} +62 -52
  784. package/src/__tests__/{session-error.test.ts → conversation-error.test.ts} +65 -57
  785. package/src/__tests__/{session-evictor.test.ts → conversation-evictor.test.ts} +21 -17
  786. package/src/__tests__/{session-history-web-search.test.ts → conversation-history-web-search.test.ts} +34 -10
  787. package/src/__tests__/{session-init.benchmark.test.ts → conversation-init.benchmark.test.ts} +23 -23
  788. package/src/__tests__/{session-load-history-repair.test.ts → conversation-load-history-repair.test.ts} +38 -38
  789. package/src/__tests__/{session-media-retry.test.ts → conversation-media-retry.test.ts} +1 -1
  790. package/src/__tests__/{session-messaging-secret-redirect.test.ts → conversation-messaging-secret-redirect.test.ts} +1 -1
  791. package/src/__tests__/conversation-pairing.test.ts +46 -46
  792. package/src/__tests__/{session-pre-run-repair.test.ts → conversation-pre-run-repair.test.ts} +24 -11
  793. package/src/__tests__/{session-provider-retry-repair.test.ts → conversation-provider-retry-repair.test.ts} +59 -46
  794. package/src/__tests__/{session-queue.test.ts → conversation-queue.test.ts} +241 -220
  795. package/src/__tests__/conversation-routes-guardian-reply.test.ts +26 -26
  796. package/src/__tests__/conversation-routes-slash-commands.test.ts +33 -56
  797. package/src/__tests__/{session-runtime-assembly.test.ts → conversation-runtime-assembly.test.ts} +2 -2
  798. package/src/__tests__/{session-runtime-workspace.test.ts → conversation-runtime-workspace.test.ts} +1 -1
  799. package/src/__tests__/{thread-seed-composer.test.ts → conversation-seed-composer.test.ts} +50 -48
  800. package/src/__tests__/{session-skill-tools.test.ts → conversation-skill-tools.test.ts} +11 -13
  801. package/src/__tests__/{session-slash-queue.test.ts → conversation-slash-queue.test.ts} +55 -46
  802. package/src/__tests__/{session-slash-unknown.test.ts → conversation-slash-unknown.test.ts} +31 -75
  803. package/src/__tests__/conversation-store.test.ts +61 -55
  804. package/src/__tests__/{session-surfaces-deselection.test.ts → conversation-surfaces-deselection.test.ts} +5 -5
  805. package/src/__tests__/{session-surfaces-task-progress.test.ts → conversation-surfaces-task-progress.test.ts} +7 -7
  806. package/src/__tests__/{session-tool-setup-app-refresh.test.ts → conversation-tool-setup-app-refresh.test.ts} +5 -5
  807. package/src/__tests__/{session-tool-setup-memory-scope.test.ts → conversation-tool-setup-memory-scope.test.ts} +4 -4
  808. package/src/__tests__/{session-tool-setup-side-effect-flag.test.ts → conversation-tool-setup-side-effect-flag.test.ts} +4 -4
  809. package/src/__tests__/{session-tool-setup-tools-disabled.test.ts → conversation-tool-setup-tools-disabled.test.ts} +3 -3
  810. package/src/__tests__/{session-undo.test.ts → conversation-undo.test.ts} +1 -1
  811. package/src/__tests__/conversation-unread-route.test.ts +4 -0
  812. package/src/__tests__/{session-usage.test.ts → conversation-usage.test.ts} +1 -1
  813. package/src/__tests__/{session-workspace-cache-state.test.ts → conversation-workspace-cache-state.test.ts} +29 -36
  814. package/src/__tests__/{session-workspace-injection.test.ts → conversation-workspace-injection.test.ts} +58 -51
  815. package/src/__tests__/{session-workspace-tool-tracking.test.ts → conversation-workspace-tool-tracking.test.ts} +54 -47
  816. package/src/__tests__/credential-execution-admin-cli.test.ts +504 -0
  817. package/src/__tests__/credential-execution-api-key-propagation.test.ts +309 -0
  818. package/src/__tests__/credential-execution-approval-bridge.test.ts +535 -0
  819. package/src/__tests__/credential-execution-client.test.ts +380 -0
  820. package/src/__tests__/credential-execution-feature-gates.test.ts +169 -0
  821. package/src/__tests__/credential-execution-managed-contract.test.ts +526 -0
  822. package/src/__tests__/credential-execution-shell-lockdown.test.ts +149 -0
  823. package/src/__tests__/credential-execution-tools.test.ts +279 -0
  824. package/src/__tests__/credential-security-e2e.test.ts +0 -1
  825. package/src/__tests__/credential-security-invariants.test.ts +4 -8
  826. package/src/__tests__/credential-storage-oauth-compat.test.ts +606 -0
  827. package/src/__tests__/credential-storage-static-compat.test.ts +396 -0
  828. package/src/__tests__/credential-vault-unit.test.ts +0 -1
  829. package/src/__tests__/credential-vault.test.ts +0 -1
  830. package/src/__tests__/credentials-cli.test.ts +10 -22
  831. package/src/__tests__/cu-unified-flow.test.ts +8 -6
  832. package/src/__tests__/daemon-assistant-events.test.ts +15 -12
  833. package/src/__tests__/delete-managed-skill-tool.test.ts +0 -1
  834. package/src/__tests__/diagnostics-export.test.ts +30 -0
  835. package/src/__tests__/dynamic-page-surface.test.ts +2 -2
  836. package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +19 -5
  837. package/src/__tests__/emit-signal-routing-intent.test.ts +1 -1
  838. package/src/__tests__/event-bus.test.ts +2 -6
  839. package/src/__tests__/file-edit-tool.test.ts +0 -1
  840. package/src/__tests__/file-read-tool.test.ts +0 -1
  841. package/src/__tests__/file-write-tool.test.ts +0 -1
  842. package/src/__tests__/fixtures/mock-signup-server.ts +2 -2
  843. package/src/__tests__/followup-tools.test.ts +25 -26
  844. package/src/__tests__/frontmatter.test.ts +12 -10
  845. package/src/__tests__/guardian-action-late-reply.test.ts +1 -1
  846. package/src/__tests__/guardian-action-no-hardcoded-copy.test.ts +1 -1
  847. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +15 -15
  848. package/src/__tests__/guardian-dispatch.test.ts +9 -9
  849. package/src/__tests__/guardian-grant-minting.test.ts +5 -5
  850. package/src/__tests__/guardian-question-copy.test.ts +10 -8
  851. package/src/__tests__/guardian-routing-invariants.test.ts +61 -61
  852. package/src/__tests__/guardian-routing-state.test.ts +1 -1
  853. package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
  854. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +20 -16
  855. package/src/__tests__/headless-browser-interactions.test.ts +18 -17
  856. package/src/__tests__/headless-browser-navigate.test.ts +0 -1
  857. package/src/__tests__/headless-browser-read-tools.test.ts +5 -6
  858. package/src/__tests__/headless-browser-snapshot.test.ts +12 -9
  859. package/src/__tests__/heartbeat-service.test.ts +5 -4
  860. package/src/__tests__/hooks-ts-runner.test.ts +10 -4
  861. package/src/__tests__/host-bash-proxy.test.ts +50 -1
  862. package/src/__tests__/host-cu-proxy.test.ts +1 -1
  863. package/src/__tests__/host-file-edit-tool.test.ts +0 -1
  864. package/src/__tests__/host-file-proxy.test.ts +1 -1
  865. package/src/__tests__/host-file-read-tool.test.ts +0 -1
  866. package/src/__tests__/host-file-write-tool.test.ts +0 -1
  867. package/src/__tests__/host-shell-tool.test.ts +64 -5
  868. package/src/__tests__/http-user-message-parity.test.ts +32 -19
  869. package/src/__tests__/intent-routing.test.ts +71 -84
  870. package/src/__tests__/invite-redemption-service.test.ts +35 -0
  871. package/src/__tests__/keychain-broker-client.test.ts +150 -0
  872. package/src/__tests__/list-messages-attachments.test.ts +4 -4
  873. package/src/__tests__/log-export-workspace.test.ts +133 -60
  874. package/src/__tests__/managed-credential-catalog-cli.test.ts +349 -0
  875. package/src/__tests__/managed-skill-lifecycle.test.ts +14 -2
  876. package/src/__tests__/managed-store.test.ts +0 -38
  877. package/src/__tests__/media-generate-image.test.ts +19 -2
  878. package/src/__tests__/media-reuse-story.e2e.test.ts +82 -70
  879. package/src/__tests__/media-visibility-policy.test.ts +10 -10
  880. package/src/__tests__/memory-query-builder.test.ts +2 -2
  881. package/src/__tests__/memory-regressions.test.ts +67 -30
  882. package/src/__tests__/messaging-send-tool.test.ts +0 -2
  883. package/src/__tests__/no-domain-routing-in-prompt-guard.test.ts +51 -0
  884. package/src/__tests__/notification-broadcaster.test.ts +42 -40
  885. package/src/__tests__/{notification-thread-candidate-validation.test.ts → notification-conversation-candidate-validation.test.ts} +26 -24
  886. package/src/__tests__/{notification-thread-candidates.test.ts → notification-conversation-candidates.test.ts} +15 -15
  887. package/src/__tests__/notification-decision-fallback.test.ts +6 -6
  888. package/src/__tests__/notification-decision-identity.test.ts +209 -0
  889. package/src/__tests__/notification-decision-strategy.test.ts +40 -38
  890. package/src/__tests__/notification-deep-link.test.ts +18 -18
  891. package/src/__tests__/notification-guardian-path.test.ts +13 -10
  892. package/src/__tests__/notification-telegram-adapter.test.ts +5 -5
  893. package/src/__tests__/oauth-store.test.ts +1 -5
  894. package/src/__tests__/permission-types.test.ts +1 -1
  895. package/src/__tests__/playbook-execution.test.ts +0 -1
  896. package/src/__tests__/playbook-tools.test.ts +0 -1
  897. package/src/__tests__/provider-commit-message-generator.test.ts +7 -6
  898. package/src/__tests__/provider-fail-open-selection.test.ts +22 -28
  899. package/src/__tests__/provider-managed-proxy-integration.test.ts +35 -56
  900. package/src/__tests__/provider-registry-ollama.test.ts +13 -2
  901. package/src/__tests__/proxy-approval-callback.test.ts +2 -2
  902. package/src/__tests__/recording-handler.test.ts +20 -20
  903. package/src/__tests__/relay-server.test.ts +8 -5
  904. package/src/__tests__/require-fresh-approval.test.ts +532 -0
  905. package/src/__tests__/resolve-trust-class.test.ts +2 -2
  906. package/src/__tests__/runtime-events-sse-parity.test.ts +21 -21
  907. package/src/__tests__/runtime-events-sse.test.ts +15 -7
  908. package/src/__tests__/scaffold-managed-skill-tool.test.ts +1 -4
  909. package/src/__tests__/schedule-tools.test.ts +0 -1
  910. package/src/__tests__/scoped-approval-grants.test.ts +6 -6
  911. package/src/__tests__/scoped-grant-security-matrix.test.ts +1 -1
  912. package/src/__tests__/{script-proxy-session-manager.test.ts → script-proxy-conversation-manager.test.ts} +4 -1
  913. package/src/__tests__/secret-onetime-send.test.ts +0 -4
  914. package/src/__tests__/secret-response-routing.test.ts +1 -1
  915. package/src/__tests__/secret-routes-managed-proxy.test.ts +79 -2
  916. package/src/__tests__/secret-scanner-executor.test.ts +0 -2
  917. package/src/__tests__/send-endpoint-busy.test.ts +73 -60
  918. package/src/__tests__/send-notification-tool.test.ts +1 -3
  919. package/src/__tests__/sequence-store.test.ts +5 -5
  920. package/src/__tests__/shell-credential-ref.test.ts +1 -2
  921. package/src/__tests__/shell-tool-proxy-mode.test.ts +2 -3
  922. package/src/__tests__/skill-feature-flags-integration.test.ts +1 -2
  923. package/src/__tests__/skill-feature-flags.test.ts +7 -8
  924. package/src/__tests__/skill-include-graph.test.ts +1 -2
  925. package/src/__tests__/skill-load-feature-flag.test.ts +10 -11
  926. package/src/__tests__/skill-load-tool.test.ts +19 -15
  927. package/src/__tests__/skill-projection-feature-flag.test.ts +4 -6
  928. package/src/__tests__/skill-projection.benchmark.test.ts +3 -5
  929. package/src/__tests__/skill-script-runner-host.test.ts +3 -4
  930. package/src/__tests__/skill-script-runner-sandbox.test.ts +3 -4
  931. package/src/__tests__/skill-script-runner.test.ts +0 -1
  932. package/src/__tests__/skill-tool-factory.test.ts +0 -1
  933. package/src/__tests__/skills.test.ts +0 -37
  934. package/src/__tests__/slack-skill.test.ts +0 -4
  935. package/src/__tests__/starter-task-flow.test.ts +3 -3
  936. package/src/__tests__/subagent-manager-notify.test.ts +45 -40
  937. package/src/__tests__/subagent-tools.test.ts +78 -69
  938. package/src/__tests__/subagent-types.test.ts +3 -3
  939. package/src/__tests__/surface-mutex-cleanup.test.ts +1 -1
  940. package/src/__tests__/{swarm-session-integration.test.ts → swarm-conversation-integration.test.ts} +13 -1
  941. package/src/__tests__/swarm-recursion.test.ts +21 -9
  942. package/src/__tests__/swarm-tool.test.ts +14 -1
  943. package/src/__tests__/system-prompt.test.ts +34 -16
  944. package/src/__tests__/task-compiler.test.ts +1 -1
  945. package/src/__tests__/task-management-tools.test.ts +1 -2
  946. package/src/__tests__/terminal-sandbox.test.ts +6 -0
  947. package/src/__tests__/terminal-tools.test.ts +1 -1
  948. package/src/__tests__/token-estimator-accuracy.benchmark.test.ts +2 -2
  949. package/src/__tests__/tool-approval-handler.test.ts +2 -3
  950. package/src/__tests__/tool-audit-listener.test.ts +0 -6
  951. package/src/__tests__/tool-domain-event-publisher.test.ts +0 -11
  952. package/src/__tests__/tool-execution-abort-cleanup.test.ts +67 -14
  953. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +0 -1
  954. package/src/__tests__/tool-executor-lifecycle-events.test.ts +3 -6
  955. package/src/__tests__/tool-executor-shell-integration.test.ts +0 -1
  956. package/src/__tests__/tool-executor.test.ts +20 -20
  957. package/src/__tests__/tool-grant-request-escalation.test.ts +8 -9
  958. package/src/__tests__/tool-metrics-listener.test.ts +0 -9
  959. package/src/__tests__/tool-notification-listener.test.ts +0 -2
  960. package/src/__tests__/tool-preview-lifecycle.test.ts +6 -6
  961. package/src/__tests__/tool-profiling-listener.test.ts +0 -7
  962. package/src/__tests__/tool-trace-listener.test.ts +0 -11
  963. package/src/__tests__/trace-emitter.test.ts +1 -1
  964. package/src/__tests__/trust-context-guards.test.ts +1 -1
  965. package/src/__tests__/trusted-contact-approval-notifier.test.ts +1 -1
  966. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +9 -10
  967. package/src/__tests__/turn-commit.test.ts +3 -3
  968. package/src/__tests__/ui-file-upload-surface.test.ts +2 -2
  969. package/src/__tests__/verification-control-plane-policy.test.ts +0 -1
  970. package/src/__tests__/voice-scoped-grant-consumer.test.ts +4 -4
  971. package/src/__tests__/voice-session-bridge.test.ts +31 -31
  972. package/src/__tests__/workspace-git-service.test.ts +49 -2
  973. package/src/__tests__/workspace-lifecycle.test.ts +6 -6
  974. package/src/__tests__/workspace-migration-add-send-diagnostics.test.ts +59 -0
  975. package/src/__tests__/workspace-migration-avatar-rename.test.ts +128 -0
  976. package/src/__tests__/workspace-migration-extract-collect-usage-data.test.ts +179 -0
  977. package/src/__tests__/workspace-migration-seed-device-id.test.ts +328 -0
  978. package/src/__tests__/workspace-migrations-runner.test.ts +293 -0
  979. package/src/acp/agent-process.ts +201 -0
  980. package/src/acp/client-handler.ts +361 -0
  981. package/src/acp/index.ts +44 -0
  982. package/src/acp/session-manager.ts +348 -0
  983. package/src/acp/types.ts +79 -0
  984. package/src/approvals/AGENTS.md +2 -2
  985. package/src/approvals/approval-primitive.ts +4 -4
  986. package/src/approvals/guardian-decision-primitive.ts +7 -7
  987. package/src/approvals/guardian-request-resolvers.ts +1 -1
  988. package/src/avatar/ascii-renderer.ts +63 -0
  989. package/src/avatar/character-components.ts +454 -0
  990. package/src/avatar/png-renderer.ts +17 -0
  991. package/src/avatar/svg-compositor.ts +90 -0
  992. package/src/avatar/traits-png-sync.ts +133 -0
  993. package/src/calls/call-controller.ts +8 -8
  994. package/src/calls/call-conversation-messages.ts +1 -1
  995. package/src/calls/call-domain.ts +4 -4
  996. package/src/calls/call-pointer-message-composer.ts +2 -2
  997. package/src/calls/call-pointer-messages.ts +10 -10
  998. package/src/calls/guardian-action-sweep.ts +3 -3
  999. package/src/calls/guardian-dispatch.ts +7 -7
  1000. package/src/calls/guardian-question-copy.ts +7 -7
  1001. package/src/calls/relay-server.ts +4 -4
  1002. package/src/calls/twilio-routes.ts +1 -1
  1003. package/src/calls/voice-session-bridge.ts +59 -56
  1004. package/src/cli/AGENTS.md +2 -2
  1005. package/src/cli/commands/avatar.ts +281 -0
  1006. package/src/cli/commands/bash.ts +6 -3
  1007. package/src/cli/commands/channel-verification-sessions.ts +7 -4
  1008. package/src/cli/commands/completions.ts +4 -4
  1009. package/src/cli/commands/config.ts +52 -7
  1010. package/src/cli/commands/{sessions.ts → conversations.ts} +43 -40
  1011. package/src/cli/commands/credential-execution.ts +345 -0
  1012. package/src/cli/commands/credentials.ts +106 -6
  1013. package/src/cli/commands/doctor.ts +9 -3
  1014. package/src/cli/commands/keys.ts +30 -0
  1015. package/src/cli/commands/mcp.ts +2 -2
  1016. package/src/cli/commands/memory.ts +8 -8
  1017. package/src/cli/commands/notifications.ts +2 -2
  1018. package/src/cli/commands/oauth/connections.ts +98 -17
  1019. package/src/cli/commands/oauth/providers.ts +45 -8
  1020. package/src/cli/commands/shotgun.ts +250 -0
  1021. package/src/cli/main-screen.tsx +3 -29
  1022. package/src/cli/program.ts +13 -3
  1023. package/src/cli/reference.ts +4 -2
  1024. package/src/cli.ts +159 -235
  1025. package/src/config/acp-schema.ts +47 -0
  1026. package/src/config/bundled-skills/_shared/CLI_RETRIEVAL_PATTERN.md +14 -12
  1027. package/src/config/bundled-skills/acp/SKILL.md +58 -0
  1028. package/src/config/bundled-skills/acp/TOOLS.json +79 -0
  1029. package/src/config/bundled-skills/{settings/tools/set-avatar.ts → acp/tools/acp-abort.ts} +2 -2
  1030. package/src/config/bundled-skills/acp/tools/acp-spawn.ts +12 -0
  1031. package/src/config/bundled-skills/acp/tools/acp-status.ts +12 -0
  1032. package/src/config/bundled-skills/app-builder/SKILL.md +22 -6
  1033. package/src/config/bundled-skills/browser/SKILL.md +2 -1
  1034. package/src/config/bundled-skills/browser/TOOLS.json +2 -2
  1035. package/src/config/bundled-skills/browser/tools/browser-wait-for-download.ts +1 -1
  1036. package/src/config/bundled-skills/chatgpt-import/SKILL.md +0 -1
  1037. package/src/config/bundled-skills/claude-code/SKILL.md +1 -2
  1038. package/src/config/bundled-skills/claude-code/TOOLS.json +1 -1
  1039. package/src/config/bundled-skills/computer-use/SKILL.md +1 -3
  1040. package/src/config/bundled-skills/contacts/SKILL.md +0 -1
  1041. package/src/config/bundled-skills/contacts/TOOLS.json +4 -0
  1042. package/src/config/bundled-skills/contacts/tools/google-contacts.ts +5 -1
  1043. package/src/config/bundled-skills/followups/SKILL.md +1 -1
  1044. package/src/config/bundled-skills/followups/TOOLS.json +7 -7
  1045. package/src/config/bundled-skills/gmail/SKILL.md +0 -1
  1046. package/src/config/bundled-skills/google-calendar/SKILL.md +0 -1
  1047. package/src/config/bundled-skills/google-calendar/tools/calendar-check-availability.ts +1 -1
  1048. package/src/config/bundled-skills/google-calendar/tools/calendar-create-event.ts +1 -1
  1049. package/src/config/bundled-skills/google-calendar/tools/calendar-get-event.ts +1 -1
  1050. package/src/config/bundled-skills/google-calendar/tools/calendar-list-events.ts +1 -1
  1051. package/src/config/bundled-skills/google-calendar/tools/calendar-rsvp.ts +1 -1
  1052. package/src/config/bundled-skills/google-calendar/tools/shared.ts +1 -5
  1053. package/src/config/bundled-skills/image-studio/SKILL.md +0 -1
  1054. package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +30 -13
  1055. package/src/config/bundled-skills/media-processing/services/preprocess.ts +5 -1
  1056. package/src/config/bundled-skills/media-processing/tools/analyze-keyframes.ts +3 -3
  1057. package/src/config/bundled-skills/messaging/SKILL.md +11 -13
  1058. package/src/config/bundled-skills/messaging/TOOLS.json +0 -4
  1059. package/src/config/bundled-skills/notifications/SKILL.md +4 -5
  1060. package/src/config/bundled-skills/notifications/TOOLS.json +1 -1
  1061. package/src/config/bundled-skills/notifications/tools/send-notification.ts +2 -2
  1062. package/src/config/bundled-skills/orchestration/SKILL.md +4 -1
  1063. package/src/config/bundled-skills/phone-calls/SKILL.md +20 -8
  1064. package/src/config/bundled-skills/schedule/SKILL.md +1 -1
  1065. package/src/config/bundled-skills/screen-watch/SKILL.md +0 -1
  1066. package/src/config/bundled-skills/sequences/SKILL.md +0 -1
  1067. package/src/config/bundled-skills/sequences/TOOLS.json +4 -4
  1068. package/src/config/bundled-skills/sequences/tools/sequence-create.ts +2 -1
  1069. package/src/config/bundled-skills/sequences/tools/sequence-update.ts +2 -1
  1070. package/src/config/bundled-skills/settings/SKILL.md +2 -3
  1071. package/src/config/bundled-skills/settings/TOOLS.json +0 -22
  1072. package/src/config/bundled-skills/skill-management/SKILL.md +0 -1
  1073. package/src/config/bundled-skills/skill-management/TOOLS.json +0 -8
  1074. package/src/config/bundled-skills/slack/SKILL.md +0 -1
  1075. package/src/config/bundled-skills/subagent/SKILL.md +2 -2
  1076. package/src/config/bundled-skills/subagent/TOOLS.json +2 -2
  1077. package/src/config/bundled-skills/transcribe/tools/transcribe-media.ts +35 -5
  1078. package/src/config/bundled-tool-registry.ts +9 -2
  1079. package/src/config/env.ts +44 -2
  1080. package/src/config/feature-flag-registry.json +161 -25
  1081. package/src/config/loader.ts +3 -0
  1082. package/src/config/raw-config-utils.ts +30 -0
  1083. package/src/config/schema-utils.ts +27 -0
  1084. package/src/config/schema.ts +54 -39
  1085. package/src/config/schemas/calls.ts +219 -152
  1086. package/src/config/schemas/channels.ts +118 -71
  1087. package/src/config/schemas/elevenlabs.ts +39 -24
  1088. package/src/config/schemas/heartbeat.ts +13 -4
  1089. package/src/config/schemas/inference.ts +155 -99
  1090. package/src/config/schemas/ingress.ts +100 -64
  1091. package/src/config/schemas/logging.ts +24 -15
  1092. package/src/config/schemas/mcp.ts +95 -44
  1093. package/src/config/schemas/memory-lifecycle.ts +70 -50
  1094. package/src/config/schemas/memory-processing.ts +46 -25
  1095. package/src/config/schemas/memory-retrieval.ts +206 -139
  1096. package/src/config/schemas/memory-storage.ts +113 -79
  1097. package/src/config/schemas/memory.ts +33 -28
  1098. package/src/config/schemas/notifications.ts +12 -7
  1099. package/src/config/schemas/platform.ts +62 -39
  1100. package/src/config/schemas/sandbox.ts +10 -5
  1101. package/src/config/schemas/security.ts +72 -41
  1102. package/src/config/schemas/services.ts +54 -0
  1103. package/src/config/schemas/skills.ts +131 -81
  1104. package/src/config/schemas/swarm.ts +78 -46
  1105. package/src/config/schemas/timeouts.ts +64 -41
  1106. package/src/config/schemas/workspace-git.ts +219 -162
  1107. package/src/config/skill-state.ts +6 -47
  1108. package/src/config/skills.ts +66 -271
  1109. package/src/config/types.ts +5 -0
  1110. package/src/contacts/contact-store.ts +19 -7
  1111. package/src/contacts/contacts-write.ts +13 -2
  1112. package/src/context/window-manager.ts +1 -1
  1113. package/src/credential-execution/approval-bridge.ts +350 -0
  1114. package/src/credential-execution/client.ts +414 -0
  1115. package/src/credential-execution/executable-discovery.ts +169 -0
  1116. package/src/credential-execution/feature-gates.ts +75 -0
  1117. package/src/credential-execution/managed-catalog.ts +155 -0
  1118. package/src/credential-execution/process-manager.ts +451 -0
  1119. package/src/daemon/approval-generators.ts +13 -7
  1120. package/src/daemon/assistant-attachments.ts +3 -3
  1121. package/src/daemon/config-watcher.ts +21 -13
  1122. package/src/daemon/context-overflow-policy.ts +5 -5
  1123. package/src/daemon/context-overflow-reducer.ts +2 -2
  1124. package/src/daemon/{session-agent-loop-handlers.ts → conversation-agent-loop-handlers.ts} +21 -21
  1125. package/src/daemon/{session-agent-loop.ts → conversation-agent-loop.ts} +93 -72
  1126. package/src/daemon/{session-attachments.ts → conversation-attachments.ts} +35 -9
  1127. package/src/daemon/{session-error.ts → conversation-error.ts} +34 -24
  1128. package/src/daemon/conversation-evictor.ts +204 -0
  1129. package/src/daemon/{session-history.ts → conversation-history.ts} +37 -33
  1130. package/src/daemon/{session-lifecycle.ts → conversation-lifecycle.ts} +16 -16
  1131. package/src/daemon/{session-memory.ts → conversation-memory.ts} +1 -1
  1132. package/src/daemon/{session-messaging.ts → conversation-messaging.ts} +9 -9
  1133. package/src/daemon/{session-notifiers.ts → conversation-notifiers.ts} +25 -25
  1134. package/src/daemon/{session-process.ts → conversation-process.ts} +128 -131
  1135. package/src/daemon/{session-queue-manager.ts → conversation-queue-manager.ts} +11 -8
  1136. package/src/daemon/{session-runtime-assembly.ts → conversation-runtime-assembly.ts} +17 -11
  1137. package/src/daemon/{session-skill-tools.ts → conversation-skill-tools.ts} +18 -18
  1138. package/src/daemon/{session-slash.ts → conversation-slash.ts} +35 -62
  1139. package/src/daemon/{session-surfaces.ts → conversation-surfaces.ts} +34 -34
  1140. package/src/daemon/{session-tool-setup.ts → conversation-tool-setup.ts} +41 -36
  1141. package/src/daemon/{session-usage.ts → conversation-usage.ts} +1 -1
  1142. package/src/daemon/{session-workspace.ts → conversation-workspace.ts} +3 -3
  1143. package/src/daemon/{session.ts → conversation.ts} +96 -73
  1144. package/src/daemon/doordash-steps.ts +9 -8
  1145. package/src/daemon/guardian-action-generators.ts +8 -2
  1146. package/src/daemon/handlers/config-channels.ts +7 -4
  1147. package/src/daemon/handlers/config-model.ts +33 -32
  1148. package/src/daemon/handlers/config-slack-channel.ts +28 -6
  1149. package/src/daemon/handlers/config-voice.ts +1 -2
  1150. package/src/daemon/handlers/{session-history.ts → conversation-history.ts} +4 -4
  1151. package/src/daemon/handlers/{sessions.ts → conversations.ts} +163 -183
  1152. package/src/daemon/handlers/recording.ts +20 -20
  1153. package/src/daemon/handlers/shared.ts +17 -17
  1154. package/src/daemon/handlers/skills.ts +164 -21
  1155. package/src/daemon/history-repair.ts +1 -1
  1156. package/src/daemon/host-bash-proxy.ts +11 -3
  1157. package/src/daemon/host-cu-proxy.ts +2 -2
  1158. package/src/daemon/host-file-proxy.ts +3 -3
  1159. package/src/daemon/lifecycle.ts +103 -78
  1160. package/src/daemon/main.ts +4 -0
  1161. package/src/daemon/media-visibility-policy.ts +10 -10
  1162. package/src/daemon/message-protocol.ts +11 -8
  1163. package/src/daemon/message-types/acp.ts +66 -0
  1164. package/src/daemon/message-types/computer-use.ts +4 -4
  1165. package/src/daemon/message-types/{sessions.ts → conversations.ts} +74 -80
  1166. package/src/daemon/message-types/documents.ts +2 -2
  1167. package/src/daemon/message-types/host-bash.ts +3 -1
  1168. package/src/daemon/message-types/host-cu.ts +1 -1
  1169. package/src/daemon/message-types/host-file.ts +3 -3
  1170. package/src/daemon/message-types/integrations.ts +2 -2
  1171. package/src/daemon/message-types/messages.ts +23 -23
  1172. package/src/daemon/message-types/notifications.ts +5 -5
  1173. package/src/daemon/message-types/settings.ts +1 -1
  1174. package/src/daemon/message-types/shared.ts +5 -3
  1175. package/src/daemon/message-types/skills.ts +1 -10
  1176. package/src/daemon/message-types/subagents.ts +2 -2
  1177. package/src/daemon/message-types/surfaces.ts +7 -7
  1178. package/src/daemon/message-types/work-items.ts +4 -4
  1179. package/src/daemon/parse-actual-tokens-from-error.test.ts +3 -7
  1180. package/src/daemon/providers-setup.ts +79 -0
  1181. package/src/daemon/seed-files.ts +7 -26
  1182. package/src/daemon/server.ts +452 -209
  1183. package/src/daemon/startup-error.ts +126 -0
  1184. package/src/daemon/tool-side-effects.ts +2 -18
  1185. package/src/daemon/trace-emitter.ts +3 -3
  1186. package/src/daemon/verification-session-intent.ts +1 -1
  1187. package/src/daemon/watch-handler.ts +23 -21
  1188. package/src/email/feature-gate.ts +23 -0
  1189. package/src/events/domain-events.ts +2 -8
  1190. package/src/events/tool-domain-event-publisher.ts +0 -8
  1191. package/src/events/tool-metrics-listener.ts +0 -7
  1192. package/src/export/formatter.ts +1 -1
  1193. package/src/followups/followup-store.ts +8 -5
  1194. package/src/followups/types.ts +2 -2
  1195. package/src/heartbeat/heartbeat-service.ts +1 -1
  1196. package/src/hooks/discovery.ts +3 -0
  1197. package/src/hooks/manager.ts +27 -2
  1198. package/src/hooks/types.ts +4 -1
  1199. package/src/inbound/platform-callback-registration.ts +24 -2
  1200. package/src/instrument.ts +37 -19
  1201. package/src/media/app-icon-generator.ts +3 -3
  1202. package/src/media/avatar-router.ts +3 -3
  1203. package/src/memory/app-git-service.ts +3 -3
  1204. package/src/memory/attachments-store.ts +92 -27
  1205. package/src/memory/canonical-guardian-store.ts +37 -27
  1206. package/src/memory/channel-verification-sessions.ts +6 -6
  1207. package/src/memory/checkpoints.ts +5 -0
  1208. package/src/memory/conversation-bootstrap.ts +2 -2
  1209. package/src/memory/conversation-crud.ts +147 -22
  1210. package/src/memory/conversation-key-store.ts +40 -4
  1211. package/src/memory/conversation-queries.ts +8 -6
  1212. package/src/memory/db-init.ts +46 -2
  1213. package/src/memory/embedding-backend.ts +71 -11
  1214. package/src/memory/external-conversation-store.ts +1 -1
  1215. package/src/memory/guardian-action-store.ts +3 -3
  1216. package/src/memory/indexer.ts +20 -9
  1217. package/src/memory/invite-store.ts +4 -4
  1218. package/src/memory/items-extractor.ts +48 -4
  1219. package/src/memory/job-handlers/backfill.ts +15 -8
  1220. package/src/memory/job-handlers/capability-cards.ts +420 -0
  1221. package/src/memory/job-handlers/cleanup.ts +1 -1
  1222. package/src/memory/job-handlers/thread-starters.ts +348 -0
  1223. package/src/memory/jobs-store.ts +4 -7
  1224. package/src/memory/jobs-worker.ts +8 -0
  1225. package/src/memory/migrations/033-scoped-approval-grants.ts +4 -4
  1226. package/src/memory/migrations/102-alter-table-columns.ts +5 -0
  1227. package/src/memory/migrations/105-contacts-and-triage.ts +3 -3
  1228. package/src/memory/migrations/111-media-assets.ts +1 -106
  1229. package/src/memory/migrations/121-canonical-guardian-requests.ts +5 -5
  1230. package/src/memory/migrations/159-drop-contact-interaction-columns.ts +5 -0
  1231. package/src/memory/migrations/161-drop-orphaned-media-tables.ts +18 -0
  1232. package/src/memory/migrations/162-guardian-timestamps-epoch-ms.ts +283 -0
  1233. package/src/memory/migrations/163-rename-notification-thread-columns.ts +35 -0
  1234. package/src/memory/migrations/164-rename-conversation-type-column.ts +19 -0
  1235. package/src/memory/migrations/165-rename-inbox-thread-state-table.ts +15 -0
  1236. package/src/memory/migrations/166-rename-followups-thread-id.ts +20 -0
  1237. package/src/memory/migrations/167-rename-sequence-enrollments-thread-id.ts +20 -0
  1238. package/src/memory/migrations/168-rename-sequence-steps-reply-key.ts +17 -0
  1239. package/src/memory/migrations/169-rename-gmail-provider-key-to-google.ts +64 -0
  1240. package/src/memory/migrations/170-thread-starters-table.ts +32 -0
  1241. package/src/memory/migrations/171-capability-card-columns.ts +43 -0
  1242. package/src/memory/migrations/index.ts +11 -0
  1243. package/src/memory/migrations/registry.ts +19 -0
  1244. package/src/memory/schema/calls.ts +1 -68
  1245. package/src/memory/schema/contacts.ts +3 -3
  1246. package/src/memory/schema/conversations.ts +2 -2
  1247. package/src/memory/schema/guardian.ts +9 -9
  1248. package/src/memory/schema/memory-core.ts +37 -0
  1249. package/src/memory/schema/notifications.ts +4 -4
  1250. package/src/memory/schema/tasks.ts +1 -1
  1251. package/src/memory/scoped-approval-grants.ts +14 -14
  1252. package/src/memory/search/types.ts +3 -3
  1253. package/src/memory/thread-starters-cadence.ts +107 -0
  1254. package/src/memory/turn-events-store.ts +48 -0
  1255. package/src/messaging/providers/telegram-bot/adapter.ts +1 -1
  1256. package/src/notifications/AGENTS.md +1 -1
  1257. package/src/notifications/README.md +103 -103
  1258. package/src/notifications/adapters/slack.ts +3 -3
  1259. package/src/notifications/adapters/telegram.ts +3 -3
  1260. package/src/notifications/broadcaster.ts +40 -40
  1261. package/src/notifications/{thread-candidates.ts → conversation-candidates.ts} +18 -18
  1262. package/src/notifications/conversation-pairing.ts +35 -31
  1263. package/src/notifications/{thread-seed-composer.ts → conversation-seed-composer.ts} +9 -9
  1264. package/src/notifications/decision-engine.ts +105 -82
  1265. package/src/notifications/deliveries-store.ts +14 -14
  1266. package/src/notifications/emit-signal.ts +13 -13
  1267. package/src/notifications/signal.ts +2 -2
  1268. package/src/notifications/types.ts +16 -12
  1269. package/src/oauth/byo-connection.test.ts +1 -1
  1270. package/src/oauth/oauth-store.ts +37 -15
  1271. package/src/oauth/platform-connection.test.ts +2 -2
  1272. package/src/oauth/provider-behaviors.ts +2 -1
  1273. package/src/oauth/seed-providers.ts +3 -11
  1274. package/src/oauth/token-persistence.ts +41 -25
  1275. package/src/outbound-proxy/index.ts +27 -3
  1276. package/src/permissions/checker.ts +15 -2
  1277. package/src/permissions/prompter.ts +3 -3
  1278. package/src/permissions/secret-prompter.ts +2 -2
  1279. package/src/permissions/types.ts +2 -2
  1280. package/src/prompts/__tests__/build-cli-reference-section.test.ts +60 -9
  1281. package/src/prompts/system-prompt.ts +177 -236
  1282. package/src/prompts/templates/SOUL.md +1 -1
  1283. package/src/prompts/templates/UPDATES.md +0 -12
  1284. package/src/prompts/update-bulletin-format.ts +16 -0
  1285. package/src/prompts/update-bulletin.ts +18 -6
  1286. package/src/providers/anthropic/client.ts +135 -11
  1287. package/src/providers/managed-proxy/context.ts +26 -0
  1288. package/src/providers/provider-availability.ts +39 -0
  1289. package/src/providers/provider-send-message.ts +20 -6
  1290. package/src/providers/registry.ts +121 -82
  1291. package/src/runtime/AGENTS.md +5 -5
  1292. package/src/runtime/access-request-helper.ts +2 -2
  1293. package/src/runtime/actor-trust-resolver.ts +2 -2
  1294. package/src/runtime/approval-conversation-turn.ts +2 -2
  1295. package/src/runtime/assistant-event-hub.ts +9 -9
  1296. package/src/runtime/assistant-event.ts +5 -5
  1297. package/src/runtime/auth/__tests__/context.test.ts +2 -2
  1298. package/src/runtime/auth/__tests__/external-assistant-id.test.ts +88 -0
  1299. package/src/runtime/auth/__tests__/guard-tests.test.ts +60 -0
  1300. package/src/runtime/auth/__tests__/local-auth-context.test.ts +4 -4
  1301. package/src/runtime/auth/__tests__/middleware.test.ts +2 -2
  1302. package/src/runtime/auth/__tests__/subject.test.ts +6 -6
  1303. package/src/runtime/auth/context.ts +1 -1
  1304. package/src/runtime/auth/credential-service.ts +1 -1
  1305. package/src/runtime/auth/external-assistant-id.ts +36 -17
  1306. package/src/runtime/auth/route-policy.ts +17 -0
  1307. package/src/runtime/auth/subject.ts +7 -7
  1308. package/src/runtime/auth/types.ts +1 -1
  1309. package/src/runtime/channel-approval-types.ts +1 -1
  1310. package/src/runtime/channel-approvals.ts +9 -6
  1311. package/src/runtime/channel-invite-transport.ts +10 -7
  1312. package/src/runtime/channel-readiness-service.ts +5 -2
  1313. package/src/runtime/channel-retry-sweep.ts +1 -1
  1314. package/src/runtime/channel-verification-service.ts +2 -2
  1315. package/src/runtime/confirmation-request-guardian-bridge.ts +3 -3
  1316. package/src/runtime/{session-approval-overrides.ts → conversation-approval-overrides.ts} +6 -6
  1317. package/src/runtime/guardian-action-grant-minter.ts +2 -4
  1318. package/src/runtime/guardian-action-service.ts +2 -2
  1319. package/src/runtime/guardian-decision-types.ts +13 -8
  1320. package/src/runtime/guardian-reply-router.ts +4 -4
  1321. package/src/runtime/http-server.ts +70 -33
  1322. package/src/runtime/http-types.ts +19 -15
  1323. package/src/runtime/invite-redemption-service.ts +8 -3
  1324. package/src/runtime/local-actor-identity.ts +9 -7
  1325. package/src/runtime/pending-interactions.ts +8 -8
  1326. package/src/runtime/routes/acp-routes.ts +170 -0
  1327. package/src/runtime/routes/approval-routes.ts +3 -3
  1328. package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +1 -1
  1329. package/src/runtime/routes/attachment-routes.ts +2 -2
  1330. package/src/runtime/routes/avatar-routes.ts +83 -0
  1331. package/src/runtime/routes/btw-routes.ts +27 -13
  1332. package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +1 -1
  1333. package/src/runtime/routes/channel-route-shared.ts +5 -3
  1334. package/src/runtime/routes/channel-verification-routes.ts +3 -3
  1335. package/src/runtime/routes/{session-management-routes.ts → conversation-management-routes.ts} +103 -22
  1336. package/src/runtime/routes/{session-query-routes.ts → conversation-query-routes.ts} +22 -19
  1337. package/src/runtime/routes/conversation-routes.ts +147 -164
  1338. package/src/runtime/routes/debug-routes.ts +8 -2
  1339. package/src/runtime/routes/diagnostics-routes.ts +16 -17
  1340. package/src/runtime/routes/events-routes.ts +1 -1
  1341. package/src/runtime/routes/guardian-action-routes.ts +4 -4
  1342. package/src/runtime/routes/guardian-approval-interception.ts +1 -1
  1343. package/src/runtime/routes/host-bash-routes.ts +1 -1
  1344. package/src/runtime/routes/host-cu-routes.ts +1 -1
  1345. package/src/runtime/routes/host-file-routes.ts +1 -1
  1346. package/src/runtime/routes/inbound-message-handler.ts +1 -1
  1347. package/src/runtime/routes/inbound-stages/background-dispatch.ts +1 -1
  1348. package/src/runtime/routes/inbound-stages/escalation-intercept.ts +1 -1
  1349. package/src/runtime/routes/inbound-stages/secret-ingress-check.ts +1 -1
  1350. package/src/runtime/routes/log-export-routes.ts +360 -40
  1351. package/src/runtime/routes/recording-routes.ts +5 -5
  1352. package/src/runtime/routes/schedule-routes.ts +13 -7
  1353. package/src/runtime/routes/secret-routes.ts +178 -18
  1354. package/src/runtime/routes/settings-routes.ts +23 -10
  1355. package/src/runtime/routes/skills-routes.ts +38 -0
  1356. package/src/runtime/routes/subagents-routes.ts +10 -10
  1357. package/src/runtime/routes/surface-action-routes.ts +45 -45
  1358. package/src/runtime/routes/surface-content-routes.ts +18 -18
  1359. package/src/runtime/routes/thread-starter-routes.ts +294 -0
  1360. package/src/runtime/routes/watch-routes.ts +6 -6
  1361. package/src/runtime/routes/work-items-routes.test.ts +109 -0
  1362. package/src/runtime/routes/work-items-routes.ts +47 -46
  1363. package/src/runtime/tool-grant-request-helper.ts +3 -3
  1364. package/src/runtime/trust-context-resolver.ts +1 -1
  1365. package/src/schedule/scheduler.ts +14 -12
  1366. package/src/security/credential-backend.ts +29 -5
  1367. package/src/security/encrypted-store.ts +64 -5
  1368. package/src/security/keychain-broker-client.ts +45 -12
  1369. package/src/security/secure-keys.ts +46 -0
  1370. package/src/security/token-manager.ts +67 -167
  1371. package/src/sequence/engine.ts +12 -11
  1372. package/src/sequence/reply-matcher.ts +16 -13
  1373. package/src/sequence/store.ts +10 -7
  1374. package/src/sequence/types.ts +2 -2
  1375. package/src/signals/bash.ts +36 -3
  1376. package/src/signals/cancel.ts +14 -17
  1377. package/src/signals/confirm.ts +4 -7
  1378. package/src/signals/conversation-undo.ts +16 -20
  1379. package/src/signals/event-stream.ts +187 -0
  1380. package/src/signals/shotgun.ts +200 -0
  1381. package/src/signals/trust-rule.ts +3 -6
  1382. package/src/signals/user-message.ts +146 -0
  1383. package/src/skills/catalog-install.ts +1 -1
  1384. package/src/skills/managed-store.ts +0 -13
  1385. package/src/subagent/manager.ts +89 -71
  1386. package/src/subagent/types.ts +5 -5
  1387. package/src/swarm/backend-claude-code.ts +1 -1
  1388. package/src/tasks/SPEC.md +5 -5
  1389. package/src/tasks/task-runner.ts +1 -1
  1390. package/src/telemetry/types.ts +26 -0
  1391. package/src/telemetry/usage-telemetry-reporter.test.ts +145 -24
  1392. package/src/telemetry/usage-telemetry-reporter.ts +79 -42
  1393. package/src/tools/AGENTS.md +26 -0
  1394. package/src/tools/acp/abort.ts +32 -0
  1395. package/src/tools/acp/spawn.ts +70 -0
  1396. package/src/tools/acp/status.ts +31 -0
  1397. package/src/tools/assets/materialize.ts +34 -19
  1398. package/src/tools/assets/search.ts +13 -13
  1399. package/src/tools/browser/browser-execution.ts +63 -33
  1400. package/src/tools/browser/browser-handoff.ts +12 -9
  1401. package/src/tools/browser/browser-manager.ts +88 -78
  1402. package/src/tools/browser/browser-screencast.ts +30 -28
  1403. package/src/tools/calls/call-start.ts +1 -1
  1404. package/src/tools/calls/call-status.ts +1 -1
  1405. package/src/tools/claude-code/claude-code.ts +9 -9
  1406. package/src/tools/credential-execution/make-authenticated-request.ts +198 -0
  1407. package/src/tools/credential-execution/manage-secure-command-tool.ts +372 -0
  1408. package/src/tools/credential-execution/run-authenticated-command.ts +261 -0
  1409. package/src/tools/credentials/broker.ts +1 -1
  1410. package/src/tools/credentials/metadata-store.ts +46 -227
  1411. package/src/tools/credentials/resolve.ts +2 -1
  1412. package/src/tools/document/document-tool.ts +3 -3
  1413. package/src/tools/executor.ts +144 -9
  1414. package/src/tools/followups/followup_create.ts +8 -7
  1415. package/src/tools/followups/followup_list.ts +3 -1
  1416. package/src/tools/followups/followup_resolve.ts +8 -7
  1417. package/src/tools/host-filesystem/edit.ts +1 -1
  1418. package/src/tools/host-filesystem/read.ts +1 -1
  1419. package/src/tools/host-filesystem/write.ts +1 -1
  1420. package/src/tools/host-terminal/host-shell.ts +54 -7
  1421. package/src/tools/memory/definitions.ts +1 -1
  1422. package/src/tools/memory/handlers.ts +1 -1
  1423. package/src/tools/network/script-proxy/session-manager.ts +290 -515
  1424. package/src/tools/network/web-fetch.ts +1 -1
  1425. package/src/tools/network/web-search.ts +4 -4
  1426. package/src/tools/permission-checker.ts +38 -23
  1427. package/src/tools/registry.ts +14 -2
  1428. package/src/tools/secret-detection-handler.ts +3 -8
  1429. package/src/tools/side-effects.ts +2 -1
  1430. package/src/tools/skills/load.ts +15 -1
  1431. package/src/tools/skills/sandbox-runner.ts +0 -1
  1432. package/src/tools/skills/scaffold-managed.ts +0 -8
  1433. package/src/tools/subagent/abort.ts +1 -1
  1434. package/src/tools/subagent/message.ts +2 -2
  1435. package/src/tools/subagent/read.ts +2 -2
  1436. package/src/tools/subagent/spawn.ts +1 -1
  1437. package/src/tools/subagent/status.ts +10 -4
  1438. package/src/tools/swarm/delegate.ts +12 -12
  1439. package/src/tools/system/avatar-generator.ts +52 -79
  1440. package/src/tools/terminal/backends/native.ts +48 -8
  1441. package/src/tools/terminal/backends/types.ts +7 -0
  1442. package/src/tools/terminal/safe-env.ts +4 -1
  1443. package/src/tools/terminal/shell.ts +106 -2
  1444. package/src/tools/tool-approval-handler.ts +2 -17
  1445. package/src/tools/tool-manifest.ts +43 -0
  1446. package/src/tools/types.ts +28 -5
  1447. package/src/tools/watch/screen-watch.ts +6 -6
  1448. package/src/tools/watch/watch-state.ts +33 -26
  1449. package/src/util/clipboard.ts +1 -1
  1450. package/src/util/device-id.ts +101 -0
  1451. package/src/util/platform.ts +10 -0
  1452. package/src/util/silently.ts +7 -8
  1453. package/src/watcher/engine.ts +1 -1
  1454. package/src/work-items/resolve-required-tools.test.ts +37 -0
  1455. package/src/work-items/resolve-required-tools.ts +26 -0
  1456. package/src/work-items/work-item-runner.ts +29 -27
  1457. package/src/workspace/commit-message-enrichment-service.ts +1 -1
  1458. package/src/workspace/commit-message-provider.ts +2 -2
  1459. package/src/workspace/git-service.ts +27 -14
  1460. package/src/workspace/migrations/001-avatar-rename.ts +25 -0
  1461. package/src/workspace/migrations/002-backfill-installation-id.ts +75 -0
  1462. package/src/workspace/migrations/003-seed-device-id.ts +101 -0
  1463. package/src/workspace/migrations/004-extract-collect-usage-data.ts +50 -0
  1464. package/src/workspace/migrations/005-add-send-diagnostics.ts +12 -0
  1465. package/src/workspace/migrations/006-services-config.ts +132 -0
  1466. package/src/workspace/migrations/registry.ts +20 -0
  1467. package/src/workspace/migrations/runner.ts +117 -0
  1468. package/src/workspace/migrations/types.ts +11 -0
  1469. package/src/workspace/provider-commit-message-generator.ts +7 -4
  1470. package/src/workspace/turn-commit.ts +13 -13
  1471. package/tsconfig.json +0 -1
  1472. package/src/__tests__/handlers-task-submit-slash.test.ts +0 -39
  1473. package/src/__tests__/session-slash-known.test.ts +0 -477
  1474. package/src/__tests__/slash-commands-catalog.test.ts +0 -94
  1475. package/src/__tests__/slash-commands-parser.test.ts +0 -127
  1476. package/src/__tests__/slash-commands-resolver.test.ts +0 -231
  1477. package/src/__tests__/slash-commands-rewrite.test.ts +0 -40
  1478. package/src/cli/http-client.ts +0 -76
  1479. package/src/daemon/install-cli-launchers.ts +0 -170
  1480. package/src/daemon/session-evictor.ts +0 -203
  1481. package/src/skills/slash-commands.ts +0 -203
  1482. /package/src/__tests__/{script-proxy-session-runtime.test.ts → script-proxy-conversation-runtime.test.ts} +0 -0
  1483. /package/src/daemon/{session-media-retry.ts → conversation-media-retry.ts} +0 -0
@@ -4,103 +4,76 @@ import { dirname, join } from "node:path";
4
4
 
5
5
  import { generateAvatar } from "../../media/avatar-router.js";
6
6
  import { mapGeminiError } from "../../media/gemini-image-service.js";
7
- import { RiskLevel } from "../../permissions/types.js";
8
- import type { ToolDefinition } from "../../providers/types.js";
9
7
  import { getLogger } from "../../util/logger.js";
10
8
  import { getWorkspaceDir } from "../../util/platform.js";
11
- import type { Tool, ToolContext, ToolExecutionResult } from "../types.js";
12
9
 
13
10
  const log = getLogger("avatar-generator");
14
11
 
15
- const TOOL_NAME = "set_avatar";
16
-
17
12
  /** Canonical path where the custom avatar PNG is stored. */
18
13
  function getAvatarPath(): string {
19
- return join(getWorkspaceDir(), "data", "avatar", "custom-avatar.png");
14
+ return join(getWorkspaceDir(), "data", "avatar", "avatar-image.png");
20
15
  }
21
16
 
22
- export const setAvatarTool: Tool = {
23
- name: TOOL_NAME,
24
- description:
25
- "Generate a custom avatar image from a text description. " +
26
- "Saves the result as the assistant's avatar.",
27
- category: "system",
28
- defaultRiskLevel: RiskLevel.Low,
17
+ export interface AvatarGenerationResult {
18
+ content: string;
19
+ isError: boolean;
20
+ }
29
21
 
30
- getDefinition(): ToolDefinition {
22
+ /**
23
+ * Generate a custom avatar image from a text description and save it
24
+ * as the assistant's avatar PNG.
25
+ *
26
+ * Used by the HTTP route handler at POST /v1/settings/avatar/generate.
27
+ */
28
+ export async function generateAndSaveAvatar(
29
+ description: string,
30
+ ): Promise<AvatarGenerationResult> {
31
+ if (typeof description !== "string" || description.trim() === "") {
31
32
  return {
32
- name: TOOL_NAME,
33
- description: this.description,
34
- input_schema: {
35
- type: "object",
36
- properties: {
37
- description: {
38
- type: "string",
39
- description:
40
- "A text description of the desired avatar appearance, " +
41
- 'e.g. "a friendly purple cat with green eyes wearing a tiny hat".',
42
- },
43
- },
44
- required: ["description"],
45
- },
33
+ content: "Error: description is required and must be a non-empty string.",
34
+ isError: true,
46
35
  };
47
- },
36
+ }
37
+
38
+ try {
39
+ log.info({ description: description.trim() }, "Generating avatar");
48
40
 
49
- async execute(
50
- input: Record<string, unknown>,
51
- _context: ToolContext,
52
- ): Promise<ToolExecutionResult> {
53
- const description = input.description;
54
- if (typeof description !== "string" || description.trim() === "") {
41
+ const prompt =
42
+ `Create an avatar image based on this description: ${description.trim()}\n\n` +
43
+ "Style: cute, friendly, work-safe illustration. " +
44
+ "Vibrant but soft colors. Simple and recognizable at small sizes (28px). " +
45
+ "Circular or rounded composition filling the canvas. " +
46
+ "Subtle background color (not white or transparent).";
47
+
48
+ const result = await generateAvatar(prompt);
49
+ if (!result.imageBase64) {
55
50
  return {
56
- content:
57
- "Error: description is required and must be a non-empty string.",
51
+ content: "Error: No image data returned. Please try again.",
58
52
  isError: true,
59
53
  };
60
54
  }
55
+ const pngBuffer = Buffer.from(result.imageBase64, "base64");
61
56
 
62
- try {
63
- log.info({ description: description.trim() }, "Generating avatar");
64
-
65
- const prompt =
66
- `Create an avatar image based on this description: ${description.trim()}\n\n` +
67
- "Style: cute, friendly, work-safe illustration. " +
68
- "Vibrant but soft colors. Simple and recognizable at small sizes (28px). " +
69
- "Circular or rounded composition filling the canvas. " +
70
- "Subtle background color (not white or transparent).";
57
+ const avatarPath = getAvatarPath();
58
+ const avatarDir = dirname(avatarPath);
71
59
 
72
- const result = await generateAvatar(prompt);
73
- if (!result.imageBase64) {
74
- return {
75
- content: "Error: No image data returned. Please try again.",
76
- isError: true,
77
- };
78
- }
79
- const pngBuffer = Buffer.from(result.imageBase64, "base64");
60
+ const tmpPath = `${avatarPath}.${randomUUID()}.tmp`;
61
+ mkdirSync(avatarDir, { recursive: true });
62
+ writeFileSync(tmpPath, pngBuffer);
63
+ renameSync(tmpPath, avatarPath);
80
64
 
81
- const avatarPath = getAvatarPath();
82
- const avatarDir = dirname(avatarPath);
65
+ log.info({ avatarPath }, "Avatar saved successfully");
83
66
 
84
- const tmpPath = `${avatarPath}.${randomUUID()}.tmp`;
85
- mkdirSync(avatarDir, { recursive: true });
86
- writeFileSync(tmpPath, pngBuffer);
87
- renameSync(tmpPath, avatarPath);
88
-
89
- log.info({ avatarPath }, "Avatar saved successfully");
90
-
91
- // Side-effect hook in tool-side-effects.ts broadcasts avatar_updated to all clients.
92
-
93
- return {
94
- content: "Avatar updated! Your new avatar will appear shortly.",
95
- isError: false,
96
- };
97
- } catch (error) {
98
- const message = mapGeminiError(error);
99
- log.error({ error: message }, "Avatar generation failed");
100
- return {
101
- content: `Avatar generation failed: ${message}`,
102
- isError: true,
103
- };
104
- }
105
- },
106
- };
67
+ return {
68
+ content: "Avatar updated! Your new avatar will appear shortly.",
69
+ isError: false,
70
+ };
71
+ } catch (error) {
72
+ const message = mapGeminiError(error);
73
+ log.error({ error: message }, "Avatar generation failed");
74
+ return {
75
+ content: `Avatar generation failed: ${message}`,
76
+ isError: true,
77
+ };
78
+ }
79
+ }
@@ -21,24 +21,45 @@ const HASH_DISPLAY_LENGTH = 12;
21
21
  * - Allows write access only to the working directory and temp dirs
22
22
  * - Blocks outbound network access (unless proxied)
23
23
  * - Blocks process debugging (ptrace)
24
+ * - Optionally blocks read access to specific protected paths (CES lockdown)
24
25
  *
25
26
  * When `allowNetwork` is true the `(deny network*)` rule is replaced with
26
27
  * `(allow network*)` so the process can reach the local credential proxy.
27
28
  */
28
- function buildSandboxProfile(allowNetwork: boolean): string {
29
+ function buildSandboxProfile(
30
+ allowNetwork: boolean,
31
+ denyReadPaths?: string[],
32
+ ): string {
29
33
  const networkRule = allowNetwork
30
34
  ? ";; Allow network access (proxied mode — needed to reach the credential proxy)\n(allow network*)"
31
35
  : ";; Block network access\n(deny network*)";
32
36
 
37
+ // Build deny-read rules for protected paths (CES shell lockdown).
38
+ // These are placed AFTER the allow file-read* rule because SBPL uses
39
+ // last-match-wins semantics — the more specific deny overrides the
40
+ // general allow.
41
+ const denyReadRules =
42
+ denyReadPaths && denyReadPaths.length > 0
43
+ ? "\n;; CES shell lockdown: block reads of protected credential/transport paths\n" +
44
+ denyReadPaths
45
+ .map(
46
+ (p) =>
47
+ `(deny file-read* (subpath "${escapeSBPL(p)}") (with no-log))`,
48
+ )
49
+ .join("\n")
50
+ : "";
51
+
33
52
  return `
34
53
  (version 1)
35
54
  (deny default)
36
55
 
37
56
  ;; Allow read access to the filesystem (tools, libraries, etc.)
38
57
  (allow file-read*)
58
+ ${denyReadRules}
39
59
 
40
60
  ;; Allow write access to the working directory and its children
41
61
  (allow file-write*
62
+ (literal "/dev/null")
42
63
  (subpath "__WORKING_DIR__")
43
64
  (subpath "/private/tmp")
44
65
  (subpath "/tmp")
@@ -90,21 +111,28 @@ function escapeSBPL(path: string): string {
90
111
  * a hash of the path) to avoid race conditions when concurrent commands
91
112
  * use different working directories.
92
113
  */
93
- function getProfilePath(workingDir: string, allowNetwork: boolean): string {
114
+ function getProfilePath(
115
+ workingDir: string,
116
+ allowNetwork: boolean,
117
+ denyReadPaths?: string[],
118
+ ): string {
94
119
  const dir = join(process.env.HOME ?? "/tmp", ".vellum");
95
120
  if (!existsSync(dir)) {
96
121
  mkdirSync(dir, { recursive: true });
97
122
  }
98
- // Include the network flag in the hash so proxied and non-proxied profiles
99
- // for the same directory don't collide.
100
- const hashInput = allowNetwork ? `${workingDir}:proxied` : workingDir;
123
+ // Include the network flag and deny-read paths in the hash so profiles
124
+ // with different configurations don't collide.
125
+ let hashInput = allowNetwork ? `${workingDir}:proxied` : workingDir;
126
+ if (denyReadPaths && denyReadPaths.length > 0) {
127
+ hashInput += `:deny-read:${denyReadPaths.sort().join(",")}`;
128
+ }
101
129
  const hash = createHash("sha256")
102
130
  .update(hashInput)
103
131
  .digest("hex")
104
132
  .slice(0, HASH_DISPLAY_LENGTH);
105
133
  const path = join(dir, `sandbox-profile-${hash}.sb`);
106
134
 
107
- const profile = buildSandboxProfile(allowNetwork).replace(
135
+ const profile = buildSandboxProfile(allowNetwork, denyReadPaths).replace(
108
136
  /__WORKING_DIR__/g,
109
137
  () => escapeSBPL(workingDir),
110
138
  );
@@ -155,11 +183,13 @@ function isBwrapAvailable(): boolean {
155
183
  * - /dev bind-mounted for device access (needed by many tools)
156
184
  * - Network access blocked (--unshare-net)
157
185
  * - PID namespace isolated (--unshare-pid)
186
+ * - Optional tmpfs overlays on protected paths (CES lockdown)
158
187
  */
159
188
  function buildBwrapArgs(
160
189
  workingDir: string,
161
190
  command: string,
162
191
  allowNetwork: boolean,
192
+ denyReadPaths?: string[],
163
193
  ): string[] {
164
194
  const args = [
165
195
  // Filesystem: read-only root, writable working dir and temp
@@ -178,6 +208,15 @@ function buildBwrapArgs(
178
208
  "/proc",
179
209
  ];
180
210
 
211
+ // CES shell lockdown: overlay protected paths with empty tmpfs mounts
212
+ // so the subprocess cannot read credential data, bootstrap sockets, or
213
+ // toolstore contents. The tmpfs mount hides the real directory contents.
214
+ if (denyReadPaths && denyReadPaths.length > 0) {
215
+ for (const p of denyReadPaths) {
216
+ args.push("--tmpfs", p);
217
+ }
218
+ }
219
+
181
220
  // Only isolate the network namespace when network access is not needed.
182
221
  // In proxied mode the process must be able to reach 127.0.0.1:<proxy-port>.
183
222
  if (!allowNetwork) {
@@ -207,9 +246,10 @@ export class NativeBackend implements SandboxBackend {
207
246
  options?: WrapOptions,
208
247
  ): SandboxResult {
209
248
  const allowNetwork = options?.networkMode === "proxied";
249
+ const denyReadPaths = options?.denyReadPaths;
210
250
 
211
251
  if (isMacOS()) {
212
- const profile = getProfilePath(workingDir, allowNetwork);
252
+ const profile = getProfilePath(workingDir, allowNetwork, denyReadPaths);
213
253
  return {
214
254
  command: "sandbox-exec",
215
255
  args: ["-f", profile, "bash", "-c", "--", command],
@@ -226,7 +266,7 @@ export class NativeBackend implements SandboxBackend {
226
266
  }
227
267
  return {
228
268
  command: "bwrap",
229
- args: buildBwrapArgs(workingDir, command, allowNetwork),
269
+ args: buildBwrapArgs(workingDir, command, allowNetwork, denyReadPaths),
230
270
  sandboxed: true,
231
271
  };
232
272
  }
@@ -14,6 +14,13 @@ export interface WrapOptions {
14
14
  * - 'proxied': network access is allowed so the process can reach the local credential proxy.
15
15
  */
16
16
  networkMode?: "off" | "proxied";
17
+
18
+ /**
19
+ * Absolute paths that should be blocked from read access inside the sandbox.
20
+ * Used by CES shell lockdown to prevent untrusted shell commands from reading
21
+ * protected credential data, bootstrap sockets, and toolstore paths.
22
+ */
23
+ denyReadPaths?: string[];
17
24
  }
18
25
 
19
26
  /**
@@ -6,7 +6,7 @@
6
6
  * Shared by the sandbox bash tool and skill sandbox runner.
7
7
  */
8
8
  import { getGatewayInternalBaseUrl } from "../../config/env.js";
9
- import { getDataDir } from "../../util/platform.js";
9
+ import { getDataDir, getWorkspaceDir } from "../../util/platform.js";
10
10
 
11
11
  const SAFE_ENV_VARS = [
12
12
  "PATH",
@@ -43,5 +43,8 @@ export function buildSanitizedEnv(): Record<string, string> {
43
43
  // Expose the runtime data directory so child processes can locate databases,
44
44
  // logs, and other instance-scoped state without re-deriving the path.
45
45
  env.VELLUM_DATA_DIR = getDataDir();
46
+ // Expose the workspace directory so skills and child processes can read/write
47
+ // workspace-scoped files (e.g. avatar traits, user data).
48
+ env.VELLUM_WORKSPACE_DIR = getWorkspaceDir();
46
49
  return env;
47
50
  }
@@ -1,11 +1,14 @@
1
1
  import { spawn } from "node:child_process";
2
+ import { dirname } from "node:path";
2
3
 
3
4
  import { getConfig } from "../../config/loader.js";
5
+ import { isCesShellLockdownEnabled } from "../../credential-execution/feature-gates.js";
4
6
  import { RiskLevel } from "../../permissions/types.js";
5
7
  import type { ToolDefinition } from "../../providers/types.js";
8
+ import { isUntrustedTrustClass } from "../../runtime/actor-trust-resolver.js";
6
9
  import { redactSecrets } from "../../security/secret-scanner.js";
7
10
  import { getLogger } from "../../util/logger.js";
8
- import { getDataDir } from "../../util/platform.js";
11
+ import { getDataDir, getRootDir } from "../../util/platform.js";
9
12
  import { resolveCredentialRef } from "../credentials/resolve.js";
10
13
  import {
11
14
  getOrStartSession,
@@ -31,6 +34,53 @@ function buildCredentialRefTrace(
31
34
  return { rawRefs, resolvedIds, unresolvedRefs };
32
35
  }
33
36
 
37
+ /**
38
+ * Build the list of absolute paths that should be blocked from read access
39
+ * inside the sandbox when CES shell lockdown is active.
40
+ *
41
+ * Protected paths include:
42
+ * - ~/.vellum/protected/ — credential store secrets (also covers local-mode
43
+ * CES data root at ~/.vellum/protected/credential-executor/)
44
+ * - ~/.vellum/workspace/data/db/ — database files that may contain credential metadata
45
+ * - CES bootstrap socket directory (/run/ces-bootstrap/ or CES_BOOTSTRAP_SOCKET_DIR) —
46
+ * prevents untrusted shells from connecting to the CES sidecar directly
47
+ * - CES managed-mode data root (CES_DATA_DIR, or /ces-data when
48
+ * CES_MANAGED_MODE is set) — prevents access to CES-private state in
49
+ * managed deployments (local-mode is already covered by the protected/
50
+ * entry)
51
+ */
52
+ function buildCesProtectedPaths(): string[] {
53
+ const root = getRootDir();
54
+ const paths = [`${root}/protected`, `${root}/workspace/data/db`];
55
+
56
+ // CES bootstrap socket directory — block access to the Unix socket that
57
+ // accepts RPC commands from the assistant process.
58
+ const bootstrapSocketDir =
59
+ process.env["CES_BOOTSTRAP_SOCKET_DIR"] || "/run/ces-bootstrap";
60
+ paths.push(bootstrapSocketDir);
61
+
62
+ // If a full socket path override is set (without the dir env var), block
63
+ // its parent directory as well.
64
+ if (
65
+ !process.env["CES_BOOTSTRAP_SOCKET_DIR"] &&
66
+ process.env["CES_BOOTSTRAP_SOCKET"]
67
+ ) {
68
+ paths.push(dirname(process.env["CES_BOOTSTRAP_SOCKET"]));
69
+ }
70
+
71
+ // CES managed-mode private data root — in managed deployments the CES
72
+ // data lives outside the Vellum root, so it isn't covered by the
73
+ // `protected/` entry above.
74
+ const cesDataDir = process.env["CES_DATA_DIR"];
75
+ if (cesDataDir) {
76
+ paths.push(cesDataDir);
77
+ } else if (process.env["CES_MANAGED_MODE"]) {
78
+ paths.push("/ces-data");
79
+ }
80
+
81
+ return paths;
82
+ }
83
+
34
84
  const log = getLogger("shell-tool");
35
85
 
36
86
  class ShellTool implements Tool {
@@ -96,9 +146,33 @@ class ShellTool implements Tool {
96
146
  return { content: "Error: command contains null bytes", isError: true };
97
147
  }
98
148
 
149
+ const config = getConfig();
150
+ const shellLockdownActive =
151
+ isCesShellLockdownEnabled(config) &&
152
+ isUntrustedTrustClass(context.trustClass);
153
+
99
154
  const networkMode: "off" | "proxied" =
100
155
  input.network_mode === "proxied" ? "proxied" : "off";
101
156
 
157
+ // -----------------------------------------------------------------------
158
+ // CES shell lockdown — reject proxied credential sessions for untrusted
159
+ // actors when the lockdown flag is active. Proxied sessions grant the
160
+ // subprocess access to credentials through the egress proxy, which
161
+ // violates the secrecy guarantee.
162
+ // -----------------------------------------------------------------------
163
+ if (shellLockdownActive && networkMode === "proxied") {
164
+ log.warn(
165
+ { trustClass: context.trustClass },
166
+ "CES shell lockdown: rejecting proxied credential session for untrusted actor",
167
+ );
168
+ return {
169
+ content:
170
+ "Error: proxied credential sessions are not available in untrusted shell mode. " +
171
+ "Use the credential grant workflow to request access through a guardian.",
172
+ isError: true,
173
+ };
174
+ }
175
+
102
176
  const rawCredentialRefs: string[] = [];
103
177
  if (Array.isArray(input.credential_ids)) {
104
178
  for (const id of input.credential_ids) {
@@ -108,6 +182,24 @@ class ShellTool implements Tool {
108
182
  }
109
183
  }
110
184
 
185
+ // -----------------------------------------------------------------------
186
+ // CES shell lockdown — reject non-empty credential-ref mode for untrusted
187
+ // actors. Even when network_mode is "off", passing credential_ids could
188
+ // allow the model to probe stored credential metadata.
189
+ // -----------------------------------------------------------------------
190
+ if (shellLockdownActive && rawCredentialRefs.length > 0) {
191
+ log.warn(
192
+ { trustClass: context.trustClass, refCount: rawCredentialRefs.length },
193
+ "CES shell lockdown: rejecting credential-ref mode for untrusted actor",
194
+ );
195
+ return {
196
+ content:
197
+ "Error: credential references are not available in untrusted shell mode. " +
198
+ "Use the credential grant workflow to request access through a guardian.",
199
+ isError: true,
200
+ };
201
+ }
202
+
111
203
  // Resolve credential refs (UUID or service/field) to canonical UUIDs.
112
204
  // Fail fast if any ref is unresolvable — partial execution with missing
113
205
  // credentials is worse than a clear error.
@@ -152,7 +244,6 @@ class ShellTool implements Tool {
152
244
  credentialIds.push(...rawCredentialRefs);
153
245
  }
154
246
 
155
- const config = getConfig();
156
247
  const { shellDefaultTimeoutSec, shellMaxTimeoutSec } = config.timeouts;
157
248
  const requestedSec =
158
249
  typeof input.timeout_seconds === "number"
@@ -213,13 +304,26 @@ class ShellTool implements Tool {
213
304
  Object.assign(env, proxyEnv);
214
305
  }
215
306
 
307
+ // Inject VELLUM_UNTRUSTED_SHELL=1 so assistant CLI commands can self-deny
308
+ // raw-token/secret reveal flows when invoked from an untrusted shell.
309
+ if (shellLockdownActive) {
310
+ env.VELLUM_UNTRUSTED_SHELL = "1";
311
+ }
312
+
216
313
  const result = await new Promise<ToolExecutionResult>((resolve) => {
217
314
  const stdoutChunks: Buffer[] = [];
218
315
  const stderrChunks: Buffer[] = [];
219
316
  let timedOut = false;
220
317
 
318
+ // CES shell lockdown: build deny-read paths for protected credential
319
+ // data, the protected dir, and data sub-dirs that contain secrets.
320
+ const denyReadPaths: string[] | undefined = shellLockdownActive
321
+ ? buildCesProtectedPaths()
322
+ : undefined;
323
+
221
324
  const wrapped = wrapCommand(command, context.workingDir, sandboxConfig, {
222
325
  networkMode,
326
+ denyReadPaths,
223
327
  });
224
328
  const child = spawn(wrapped.command, wrapped.args, {
225
329
  cwd: context.workingDir,
@@ -198,7 +198,6 @@ export class ToolApprovalHandler {
198
198
  executionTarget,
199
199
  input,
200
200
  workingDir: context.workingDir,
201
- sessionId: context.sessionId,
202
201
  conversationId: context.conversationId,
203
202
  requestId: context.requestId,
204
203
  riskLevel,
@@ -224,7 +223,6 @@ export class ToolApprovalHandler {
224
223
  log.warn(
225
224
  {
226
225
  toolName: name,
227
- sessionId: context.sessionId,
228
226
  conversationId: context.conversationId,
229
227
  trustClass: context.trustClass,
230
228
  reason: "guardian_only_policy",
@@ -238,7 +236,6 @@ export class ToolApprovalHandler {
238
236
  executionTarget,
239
237
  input,
240
238
  workingDir: context.workingDir,
241
- sessionId: context.sessionId,
242
239
  conversationId: context.conversationId,
243
240
  requestId: context.requestId,
244
241
  riskLevel,
@@ -273,7 +270,8 @@ export class ToolApprovalHandler {
273
270
  toolName: name,
274
271
  inputDigest,
275
272
  consumingRequestId:
276
- context.requestId ?? `preexec-${context.sessionId}-${Date.now()}`,
273
+ context.requestId ??
274
+ `preexec-${context.conversationId}-${Date.now()}`,
277
275
  executionChannel: context.executionChannel,
278
276
  conversationId: context.conversationId,
279
277
  callSessionId: context.callSessionId,
@@ -291,7 +289,6 @@ export class ToolApprovalHandler {
291
289
  executionTarget,
292
290
  input,
293
291
  workingDir: context.workingDir,
294
- sessionId: context.sessionId,
295
292
  conversationId: context.conversationId,
296
293
  requestId: context.requestId,
297
294
  riskLevel,
@@ -320,7 +317,6 @@ export class ToolApprovalHandler {
320
317
  executionTarget,
321
318
  input,
322
319
  workingDir: context.workingDir,
323
- sessionId: context.sessionId,
324
320
  conversationId: context.conversationId,
325
321
  requestId: context.requestId,
326
322
  riskLevel,
@@ -348,7 +344,6 @@ export class ToolApprovalHandler {
348
344
  executionTarget,
349
345
  input,
350
346
  workingDir: context.workingDir,
351
- sessionId: context.sessionId,
352
347
  conversationId: context.conversationId,
353
348
  requestId: context.requestId,
354
349
  riskLevel,
@@ -382,7 +377,6 @@ export class ToolApprovalHandler {
382
377
  toolName: name,
383
378
  channelId: context.channelPermissionChannelId,
384
379
  category: tool.category,
385
- sessionId: context.sessionId,
386
380
  conversationId: context.conversationId,
387
381
  reason: "channel_permission_policy",
388
382
  },
@@ -395,7 +389,6 @@ export class ToolApprovalHandler {
395
389
  executionTarget,
396
390
  input,
397
391
  workingDir: context.workingDir,
398
- sessionId: context.sessionId,
399
392
  conversationId: context.conversationId,
400
393
  requestId: context.requestId,
401
394
  riskLevel,
@@ -427,7 +420,6 @@ export class ToolApprovalHandler {
427
420
  log.info(
428
421
  {
429
422
  toolName: name,
430
- sessionId: context.sessionId,
431
423
  conversationId: context.conversationId,
432
424
  trustClass: context.trustClass,
433
425
  executionTarget,
@@ -451,7 +443,6 @@ export class ToolApprovalHandler {
451
443
  executionTarget,
452
444
  input,
453
445
  workingDir: context.workingDir,
454
- sessionId: context.sessionId,
455
446
  conversationId: context.conversationId,
456
447
  requestId: context.requestId,
457
448
  riskLevel,
@@ -527,7 +518,6 @@ export class ToolApprovalHandler {
527
518
  log.info(
528
519
  {
529
520
  toolName: name,
530
- sessionId: context.sessionId,
531
521
  conversationId: context.conversationId,
532
522
  trustClass: context.trustClass,
533
523
  executionTarget,
@@ -552,7 +542,6 @@ export class ToolApprovalHandler {
552
542
  executionTarget,
553
543
  input,
554
544
  workingDir: context.workingDir,
555
- sessionId: context.sessionId,
556
545
  conversationId: context.conversationId,
557
546
  requestId: context.requestId,
558
547
  riskLevel,
@@ -592,7 +581,6 @@ export class ToolApprovalHandler {
592
581
  log.warn(
593
582
  {
594
583
  toolName: name,
595
- sessionId: context.sessionId,
596
584
  conversationId: context.conversationId,
597
585
  trustClass: context.trustClass,
598
586
  executionTarget,
@@ -610,7 +598,6 @@ export class ToolApprovalHandler {
610
598
  executionTarget,
611
599
  input,
612
600
  workingDir: context.workingDir,
613
- sessionId: context.sessionId,
614
601
  conversationId: context.conversationId,
615
602
  requestId: context.requestId,
616
603
  riskLevel,
@@ -631,7 +618,6 @@ export class ToolApprovalHandler {
631
618
  log.warn(
632
619
  {
633
620
  toolName: name,
634
- sessionId: context.sessionId,
635
621
  conversationId: context.conversationId,
636
622
  trustClass: context.trustClass,
637
623
  executionTarget,
@@ -648,7 +634,6 @@ export class ToolApprovalHandler {
648
634
  executionTarget,
649
635
  input,
650
636
  workingDir: context.workingDir,
651
- sessionId: context.sessionId,
652
637
  conversationId: context.conversationId,
653
638
  requestId: context.requestId,
654
639
  riskLevel,
@@ -6,8 +6,16 @@
6
6
  * so adding/removing tools only requires editing this manifest.
7
7
  */
8
8
 
9
+ import { getConfig } from "../config/loader.js";
10
+ import {
11
+ isCesSecureInstallEnabled,
12
+ isCesToolsEnabled,
13
+ } from "../credential-execution/feature-gates.js";
9
14
  import { assetMaterializeTool } from "./assets/materialize.js";
10
15
  import { assetSearchTool } from "./assets/search.js";
16
+ import { makeAuthenticatedRequestTool } from "./credential-execution/make-authenticated-request.js";
17
+ import { manageSecureCommandTool } from "./credential-execution/manage-secure-command-tool.js";
18
+ import { runAuthenticatedCommandTool } from "./credential-execution/run-authenticated-command.js";
11
19
  import { credentialStoreTool } from "./credentials/vault.js";
12
20
  import { fileEditTool } from "./filesystem/edit.js";
13
21
  import { fileReadTool } from "./filesystem/read.js";
@@ -84,3 +92,38 @@ export const explicitTools: Tool[] = [
84
92
  memoryRecallTool,
85
93
  credentialStoreTool,
86
94
  ];
95
+
96
+ // ── CES tools (feature-flag gated) ──────────────────────────────────
97
+ // Credential Execution Service tools are only registered when the
98
+ // CES feature flag (`feature_flags.ces-tools.enabled`) is enabled.
99
+ // This list is intentionally separate from `explicitTools` so that
100
+ // initializeTools() in registry.ts can conditionally include them.
101
+
102
+ /** All CES tools — stable references for the manifest snapshot. */
103
+ export const cesTools: Tool[] = [
104
+ makeAuthenticatedRequestTool,
105
+ runAuthenticatedCommandTool,
106
+ manageSecureCommandTool,
107
+ ];
108
+
109
+ /**
110
+ * Return CES tools only if the CES feature flag is enabled.
111
+ * Returns an empty array when the flag is disabled so callers can
112
+ * unconditionally iterate the result.
113
+ */
114
+ export function getCesToolsIfEnabled(): Tool[] {
115
+ try {
116
+ const config = getConfig();
117
+ if (isCesToolsEnabled(config)) {
118
+ // manage_secure_command_tool is additionally gated behind the
119
+ // ces-secure-install flag so it can be rolled out independently.
120
+ const secureInstallEnabled = isCesSecureInstallEnabled(config);
121
+ return cesTools.filter(
122
+ (t) => t.name !== "manage_secure_command_tool" || secureInstallEnabled,
123
+ );
124
+ }
125
+ } catch {
126
+ // Config not yet loaded (e.g. during test setup) — CES tools stay off.
127
+ }
128
+ return [];
129
+ }