veryfront 0.1.501 → 0.1.503

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 (699) hide show
  1. package/esm/cli/commands/analyze-chunks/handler.d.ts +4 -4
  2. package/esm/cli/commands/analyze-chunks/handler.d.ts.map +1 -1
  3. package/esm/cli/commands/analyze-chunks/handler.js +6 -5
  4. package/esm/cli/commands/build/handler.d.ts +39 -27
  5. package/esm/cli/commands/build/handler.d.ts.map +1 -1
  6. package/esm/cli/commands/build/handler.js +15 -14
  7. package/esm/cli/commands/clean/command.js +1 -1
  8. package/esm/cli/commands/clean/handler.d.ts.map +1 -1
  9. package/esm/cli/commands/clean/handler.js +9 -8
  10. package/esm/cli/commands/demo/handler.d.ts +5 -5
  11. package/esm/cli/commands/demo/handler.d.ts.map +1 -1
  12. package/esm/cli/commands/demo/handler.js +7 -6
  13. package/esm/cli/commands/deploy/command.d.ts +30 -19
  14. package/esm/cli/commands/deploy/command.d.ts.map +1 -1
  15. package/esm/cli/commands/deploy/command.js +11 -10
  16. package/esm/cli/commands/dev/handler.d.ts +6 -6
  17. package/esm/cli/commands/dev/handler.d.ts.map +1 -1
  18. package/esm/cli/commands/dev/handler.js +8 -7
  19. package/esm/cli/commands/doctor/handler.d.ts +3 -3
  20. package/esm/cli/commands/doctor/handler.d.ts.map +1 -1
  21. package/esm/cli/commands/doctor/handler.js +5 -4
  22. package/esm/cli/commands/files/command.d.ts +38 -36
  23. package/esm/cli/commands/files/command.d.ts.map +1 -1
  24. package/esm/cli/commands/files/command.js +35 -31
  25. package/esm/cli/commands/generate/handler.d.ts +4 -4
  26. package/esm/cli/commands/generate/handler.d.ts.map +1 -1
  27. package/esm/cli/commands/generate/handler.js +6 -5
  28. package/esm/cli/commands/generate/integration-generator-helpers.js +4 -4
  29. package/esm/cli/commands/generate/integration-generator.js +8 -4
  30. package/esm/cli/commands/install/handler.d.ts +5 -5
  31. package/esm/cli/commands/install/handler.d.ts.map +1 -1
  32. package/esm/cli/commands/install/handler.js +7 -6
  33. package/esm/cli/commands/install/install.d.ts.map +1 -1
  34. package/esm/cli/commands/install/install.js +7 -4
  35. package/esm/cli/commands/install/types.d.ts +52 -43
  36. package/esm/cli/commands/install/types.d.ts.map +1 -1
  37. package/esm/cli/commands/install/types.js +26 -21
  38. package/esm/cli/commands/install/uninstall.d.ts.map +1 -1
  39. package/esm/cli/commands/install/uninstall.js +4 -2
  40. package/esm/cli/commands/knowledge/command.d.ts +19 -17
  41. package/esm/cli/commands/knowledge/command.d.ts.map +1 -1
  42. package/esm/cli/commands/knowledge/command.js +21 -20
  43. package/esm/cli/commands/lock/handler.d.ts.map +1 -1
  44. package/esm/cli/commands/lock/handler.js +10 -9
  45. package/esm/cli/commands/mcp/handler.d.ts +3 -3
  46. package/esm/cli/commands/mcp/handler.d.ts.map +1 -1
  47. package/esm/cli/commands/mcp/handler.js +5 -4
  48. package/esm/cli/commands/merge/command.d.ts +21 -15
  49. package/esm/cli/commands/merge/command.d.ts.map +1 -1
  50. package/esm/cli/commands/merge/command.js +9 -8
  51. package/esm/cli/commands/open/command.d.ts +17 -12
  52. package/esm/cli/commands/open/command.d.ts.map +1 -1
  53. package/esm/cli/commands/open/command.js +7 -6
  54. package/esm/cli/commands/pull/command.d.ts +36 -25
  55. package/esm/cli/commands/pull/command.d.ts.map +1 -1
  56. package/esm/cli/commands/pull/command.js +14 -13
  57. package/esm/cli/commands/push/command.d.ts +27 -19
  58. package/esm/cli/commands/push/command.d.ts.map +1 -1
  59. package/esm/cli/commands/push/command.js +11 -10
  60. package/esm/cli/commands/routes/handler.d.ts +4 -4
  61. package/esm/cli/commands/routes/handler.d.ts.map +1 -1
  62. package/esm/cli/commands/routes/handler.js +6 -5
  63. package/esm/cli/commands/schema/handler.d.ts.map +1 -1
  64. package/esm/cli/commands/schema/handler.js +5 -4
  65. package/esm/cli/commands/serve/handler.d.ts +9 -9
  66. package/esm/cli/commands/serve/handler.d.ts.map +1 -1
  67. package/esm/cli/commands/serve/handler.js +10 -9
  68. package/esm/cli/commands/start/handler.d.ts +6 -6
  69. package/esm/cli/commands/start/handler.d.ts.map +1 -1
  70. package/esm/cli/commands/start/handler.js +8 -7
  71. package/esm/cli/commands/studio/handler.d.ts +5 -5
  72. package/esm/cli/commands/studio/handler.d.ts.map +1 -1
  73. package/esm/cli/commands/studio/handler.js +7 -6
  74. package/esm/cli/commands/styles/command.d.ts.map +1 -1
  75. package/esm/cli/commands/styles/command.js +9 -8
  76. package/esm/cli/commands/styles/handler.d.ts +12 -12
  77. package/esm/cli/commands/styles/handler.d.ts.map +1 -1
  78. package/esm/cli/commands/styles/handler.js +7 -6
  79. package/esm/cli/commands/task/handler.d.ts +12 -12
  80. package/esm/cli/commands/task/handler.d.ts.map +1 -1
  81. package/esm/cli/commands/task/handler.js +7 -6
  82. package/esm/cli/commands/test/handler.d.ts.map +1 -1
  83. package/esm/cli/commands/test/handler.js +6 -5
  84. package/esm/cli/commands/up/command.d.ts +14 -10
  85. package/esm/cli/commands/up/command.d.ts.map +1 -1
  86. package/esm/cli/commands/up/command.js +6 -5
  87. package/esm/cli/commands/uploads/command.d.ts +43 -41
  88. package/esm/cli/commands/uploads/command.d.ts.map +1 -1
  89. package/esm/cli/commands/uploads/command.js +40 -36
  90. package/esm/cli/commands/worker/handler.d.ts +20 -23
  91. package/esm/cli/commands/worker/handler.d.ts.map +1 -1
  92. package/esm/cli/commands/worker/handler.js +11 -10
  93. package/esm/cli/commands/workflow/handler.d.ts +14 -16
  94. package/esm/cli/commands/workflow/handler.d.ts.map +1 -1
  95. package/esm/cli/commands/workflow/handler.js +8 -7
  96. package/esm/cli/mcp/jsonrpc.d.ts +34 -18
  97. package/esm/cli/mcp/jsonrpc.d.ts.map +1 -1
  98. package/esm/cli/mcp/jsonrpc.js +21 -17
  99. package/esm/cli/mcp/remote-file-tools.d.ts +79 -83
  100. package/esm/cli/mcp/remote-file-tools.d.ts.map +1 -1
  101. package/esm/cli/mcp/remote-file-tools.js +79 -67
  102. package/esm/cli/mcp/server.d.ts +0 -1
  103. package/esm/cli/mcp/server.d.ts.map +1 -1
  104. package/esm/cli/mcp/server.js +2 -60
  105. package/esm/cli/mcp/tools/bootstrap-tool.d.ts +5 -5
  106. package/esm/cli/mcp/tools/bootstrap-tool.d.ts.map +1 -1
  107. package/esm/cli/mcp/tools/bootstrap-tool.js +5 -4
  108. package/esm/cli/mcp/tools/build-tool.d.ts +9 -9
  109. package/esm/cli/mcp/tools/build-tool.d.ts.map +1 -1
  110. package/esm/cli/mcp/tools/build-tool.js +9 -8
  111. package/esm/cli/mcp/tools/catalog-tools.d.ts +18 -33
  112. package/esm/cli/mcp/tools/catalog-tools.d.ts.map +1 -1
  113. package/esm/cli/mcp/tools/catalog-tools.js +19 -14
  114. package/esm/cli/mcp/tools/context7-tools.d.ts.map +1 -1
  115. package/esm/cli/mcp/tools/context7-tools.js +9 -9
  116. package/esm/cli/mcp/tools/deploy-tool.d.ts +7 -7
  117. package/esm/cli/mcp/tools/deploy-tool.d.ts.map +1 -1
  118. package/esm/cli/mcp/tools/deploy-tool.js +7 -6
  119. package/esm/cli/mcp/tools/dev-tools.d.ts +31 -35
  120. package/esm/cli/mcp/tools/dev-tools.d.ts.map +1 -1
  121. package/esm/cli/mcp/tools/dev-tools.js +31 -25
  122. package/esm/cli/mcp/tools/introspection-tools.d.ts.map +1 -1
  123. package/esm/cli/mcp/tools/introspection-tools.js +6 -6
  124. package/esm/cli/mcp/tools/project-tools.d.ts +20 -25
  125. package/esm/cli/mcp/tools/project-tools.d.ts.map +1 -1
  126. package/esm/cli/mcp/tools/project-tools.js +20 -16
  127. package/esm/cli/mcp/tools/run-lint-tool.d.ts +5 -5
  128. package/esm/cli/mcp/tools/run-lint-tool.d.ts.map +1 -1
  129. package/esm/cli/mcp/tools/run-lint-tool.js +5 -4
  130. package/esm/cli/mcp/tools/run-tests-tool.d.ts +7 -7
  131. package/esm/cli/mcp/tools/run-tests-tool.d.ts.map +1 -1
  132. package/esm/cli/mcp/tools/run-tests-tool.js +7 -6
  133. package/esm/cli/mcp/tools/scaffold-tools.d.ts +12 -33
  134. package/esm/cli/mcp/tools/scaffold-tools.d.ts.map +1 -1
  135. package/esm/cli/mcp/tools/scaffold-tools.js +23 -21
  136. package/esm/cli/mcp/tools/skill-tools.d.ts +10 -10
  137. package/esm/cli/mcp/tools/skill-tools.d.ts.map +1 -1
  138. package/esm/cli/mcp/tools/skill-tools.js +8 -8
  139. package/esm/cli/mcp/tools.d.ts +27 -48
  140. package/esm/cli/mcp/tools.d.ts.map +1 -1
  141. package/esm/cli/mcp/tools.js +26 -21
  142. package/esm/cli/shared/args.d.ts +11 -8
  143. package/esm/cli/shared/args.d.ts.map +1 -1
  144. package/esm/cli/shared/args.js +9 -6
  145. package/esm/cli/shared/config.d.ts +38 -20
  146. package/esm/cli/shared/config.d.ts.map +1 -1
  147. package/esm/cli/shared/config.js +20 -17
  148. package/esm/cli/shared/types.d.ts +4 -7
  149. package/esm/cli/shared/types.d.ts.map +1 -1
  150. package/esm/cli/shared/types.js +3 -2
  151. package/esm/cli/skills/types.d.ts +30 -16
  152. package/esm/cli/skills/types.d.ts.map +1 -1
  153. package/esm/cli/skills/types.js +17 -15
  154. package/esm/cli/templates/manifest.js +211 -211
  155. package/esm/deno.d.ts +5 -0
  156. package/esm/deno.js +10 -4
  157. package/esm/extensions/ext-zod/src/adapter.d.ts +22 -0
  158. package/esm/extensions/ext-zod/src/adapter.d.ts.map +1 -0
  159. package/esm/extensions/ext-zod/src/adapter.js +159 -0
  160. package/esm/extensions/ext-zod/src/index.d.ts +19 -0
  161. package/esm/extensions/ext-zod/src/index.d.ts.map +1 -0
  162. package/esm/extensions/ext-zod/src/index.js +32 -0
  163. package/esm/extensions/ext-zod/src/json-schema.d.ts +15 -0
  164. package/esm/extensions/ext-zod/src/json-schema.d.ts.map +1 -0
  165. package/esm/extensions/ext-zod/src/json-schema.js +247 -0
  166. package/esm/src/agent/ag-ui-detached-start.d.ts +97 -50
  167. package/esm/src/agent/ag-ui-detached-start.d.ts.map +1 -1
  168. package/esm/src/agent/ag-ui-detached-start.js +26 -17
  169. package/esm/src/agent/ag-ui-forwarded-context.d.ts +3 -3
  170. package/esm/src/agent/ag-ui-forwarded-context.d.ts.map +1 -1
  171. package/esm/src/agent/ag-ui-forwarded-context.js +3 -2
  172. package/esm/src/agent/ag-ui-handler.d.ts.map +1 -1
  173. package/esm/src/agent/ag-ui-handler.js +5 -3
  174. package/esm/src/agent/ag-ui-host-support.d.ts +119 -65
  175. package/esm/src/agent/ag-ui-host-support.d.ts.map +1 -1
  176. package/esm/src/agent/ag-ui-host-support.js +48 -42
  177. package/esm/src/agent/ag-ui-request-shared.d.ts.map +1 -1
  178. package/esm/src/agent/ag-ui-request-shared.js +11 -2
  179. package/esm/src/agent/ag-ui-run-control.d.ts +15 -8
  180. package/esm/src/agent/ag-ui-run-control.d.ts.map +1 -1
  181. package/esm/src/agent/ag-ui-run-control.js +18 -13
  182. package/esm/src/agent/ag-ui-runtime-handler.d.ts.map +1 -1
  183. package/esm/src/agent/ag-ui-runtime-handler.js +5 -3
  184. package/esm/src/agent/ag-ui-sse-parser.d.ts +57 -0
  185. package/esm/src/agent/ag-ui-sse-parser.d.ts.map +1 -0
  186. package/esm/src/agent/ag-ui-sse-parser.js +227 -0
  187. package/esm/src/agent/ag-ui-tool-shared.d.ts.map +1 -1
  188. package/esm/src/agent/ag-ui-tool-shared.js +3 -2
  189. package/esm/src/agent/chat-handler.d.ts.map +1 -1
  190. package/esm/src/agent/chat-handler.js +58 -57
  191. package/esm/src/agent/composition/composition.js +2 -2
  192. package/esm/src/agent/conversation-bootstrap.d.ts +13 -16
  193. package/esm/src/agent/conversation-bootstrap.d.ts.map +1 -1
  194. package/esm/src/agent/conversation-bootstrap.js +19 -12
  195. package/esm/src/agent/conversation-hosted-lifecycle.d.ts.map +1 -1
  196. package/esm/src/agent/conversation-run-context.d.ts +1 -10
  197. package/esm/src/agent/conversation-run-context.d.ts.map +1 -1
  198. package/esm/src/agent/conversation-run-events.d.ts +9 -5
  199. package/esm/src/agent/conversation-run-events.d.ts.map +1 -1
  200. package/esm/src/agent/conversation-run-events.js +6 -4
  201. package/esm/src/agent/default-hosted-invoke-agent-tool.d.ts +37 -16
  202. package/esm/src/agent/default-hosted-invoke-agent-tool.d.ts.map +1 -1
  203. package/esm/src/agent/default-hosted-invoke-agent-tool.js +10 -5
  204. package/esm/src/agent/durable.d.ts +70 -129
  205. package/esm/src/agent/durable.d.ts.map +1 -1
  206. package/esm/src/agent/durable.js +107 -109
  207. package/esm/src/agent/hosted-ag-ui-chat-request.d.ts +29 -11
  208. package/esm/src/agent/hosted-ag-ui-chat-request.d.ts.map +1 -1
  209. package/esm/src/agent/hosted-ag-ui-chat-request.js +16 -15
  210. package/esm/src/agent/hosted-agent-service-config.d.ts +6 -6
  211. package/esm/src/agent/hosted-agent-service-routes.d.ts.map +1 -1
  212. package/esm/src/agent/hosted-agent-service-routes.js +4 -3
  213. package/esm/src/agent/hosted-chat-request-parser.d.ts.map +1 -1
  214. package/esm/src/agent/hosted-chat-request-parser.js +7 -4
  215. package/esm/src/agent/hosted-chat-request.d.ts +291 -20
  216. package/esm/src/agent/hosted-chat-request.d.ts.map +1 -1
  217. package/esm/src/agent/hosted-chat-request.js +33 -31
  218. package/esm/src/agent/hosted-child-fork-step-message-preparation.d.ts.map +1 -1
  219. package/esm/src/agent/hosted-child-status.d.ts.map +1 -1
  220. package/esm/src/agent/hosted-child-status.js +2 -0
  221. package/esm/src/agent/hosted-child-tool-input.d.ts +21 -11
  222. package/esm/src/agent/hosted-child-tool-input.d.ts.map +1 -1
  223. package/esm/src/agent/hosted-child-tool-input.js +12 -10
  224. package/esm/src/agent/hosted-form-input-tool.d.ts +78 -86
  225. package/esm/src/agent/hosted-form-input-tool.d.ts.map +1 -1
  226. package/esm/src/agent/hosted-form-input-tool.js +10 -3
  227. package/esm/src/agent/human-input.d.ts +337 -277
  228. package/esm/src/agent/human-input.d.ts.map +1 -1
  229. package/esm/src/agent/human-input.js +88 -72
  230. package/esm/src/agent/index.d.ts +8 -7
  231. package/esm/src/agent/index.d.ts.map +1 -1
  232. package/esm/src/agent/index.js +8 -7
  233. package/esm/src/agent/input-request-protocol.d.ts +461 -1611
  234. package/esm/src/agent/input-request-protocol.d.ts.map +1 -1
  235. package/esm/src/agent/input-request-protocol.js +120 -107
  236. package/esm/src/agent/invoke-agent-child-runs.d.ts +109 -107
  237. package/esm/src/agent/invoke-agent-child-runs.d.ts.map +1 -1
  238. package/esm/src/agent/invoke-agent-child-runs.js +36 -29
  239. package/esm/src/agent/runtime-ag-ui-contract.d.ts +206 -206
  240. package/esm/src/agent/runtime-ag-ui-contract.d.ts.map +1 -1
  241. package/esm/src/agent/runtime-ag-ui-contract.js +96 -91
  242. package/esm/src/agent/runtime-agent-definition.d.ts +47 -24
  243. package/esm/src/agent/runtime-agent-definition.d.ts.map +1 -1
  244. package/esm/src/agent/runtime-agent-definition.js +26 -20
  245. package/esm/src/agent/runtime-agent-invocation-contract.d.ts +306 -168
  246. package/esm/src/agent/runtime-agent-invocation-contract.d.ts.map +1 -1
  247. package/esm/src/agent/runtime-agent-invocation-contract.js +116 -101
  248. package/esm/src/agent/runtime-builtin-skill-files.d.ts.map +1 -1
  249. package/esm/src/agent/runtime-builtin-skill-files.js +3 -2
  250. package/esm/src/agent/runtime-client-profile.d.ts +23 -32
  251. package/esm/src/agent/runtime-client-profile.d.ts.map +1 -1
  252. package/esm/src/agent/runtime-client-profile.js +29 -27
  253. package/esm/src/agent/runtime-load-skill-tool.d.ts +6 -7
  254. package/esm/src/agent/runtime-load-skill-tool.d.ts.map +1 -1
  255. package/esm/src/agent/runtime-load-skill-tool.js +7 -6
  256. package/esm/src/agent/runtime-project-files-client.d.ts +19 -10
  257. package/esm/src/agent/runtime-project-files-client.d.ts.map +1 -1
  258. package/esm/src/agent/runtime-project-files-client.js +33 -35
  259. package/esm/src/agent/runtime-skill-metadata.d.ts +6 -20
  260. package/esm/src/agent/runtime-skill-metadata.d.ts.map +1 -1
  261. package/esm/src/agent/runtime-skill-metadata.js +24 -18
  262. package/esm/src/agent/runtime-upload-url-client.d.ts.map +1 -1
  263. package/esm/src/agent/runtime-upload-url-client.js +19 -25
  264. package/esm/src/agent/schemas/agent.schema.d.ts +258 -307
  265. package/esm/src/agent/schemas/agent.schema.d.ts.map +1 -1
  266. package/esm/src/agent/schemas/agent.schema.js +105 -101
  267. package/esm/src/agent/schemas/index.d.ts +2 -2
  268. package/esm/src/agent/schemas/index.d.ts.map +1 -1
  269. package/esm/src/agent/schemas/index.js +2 -2
  270. package/esm/src/agent/schemas/tool.schema.d.ts +5 -5
  271. package/esm/src/agent/schemas/tool.schema.d.ts.map +1 -1
  272. package/esm/src/agent/schemas/tool.schema.js +4 -4
  273. package/esm/src/cache/schemas/cache-backend.schema.d.ts +15 -14
  274. package/esm/src/cache/schemas/cache-backend.schema.d.ts.map +1 -1
  275. package/esm/src/cache/schemas/cache-backend.schema.js +10 -7
  276. package/esm/src/cache/schemas/cache-key.schema.d.ts +12 -10
  277. package/esm/src/cache/schemas/cache-key.schema.d.ts.map +1 -1
  278. package/esm/src/cache/schemas/cache-key.schema.js +8 -6
  279. package/esm/src/channels/control-plane.d.ts +246 -156
  280. package/esm/src/channels/control-plane.d.ts.map +1 -1
  281. package/esm/src/channels/control-plane.js +80 -73
  282. package/esm/src/channels/invoke.d.ts +220 -134
  283. package/esm/src/channels/invoke.d.ts.map +1 -1
  284. package/esm/src/channels/invoke.js +105 -93
  285. package/esm/src/chat/ag-ui.d.ts +494 -273
  286. package/esm/src/chat/ag-ui.d.ts.map +1 -1
  287. package/esm/src/chat/ag-ui.js +164 -180
  288. package/esm/src/chat/conversation.d.ts +273 -183
  289. package/esm/src/chat/conversation.d.ts.map +1 -1
  290. package/esm/src/chat/conversation.js +97 -111
  291. package/esm/src/chat/types.d.ts +635 -14
  292. package/esm/src/chat/types.d.ts.map +1 -1
  293. package/esm/src/chat/types.js +146 -174
  294. package/esm/src/config/schemas/config.schema.d.ts +799 -395
  295. package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
  296. package/esm/src/config/schemas/config.schema.js +300 -268
  297. package/esm/src/data/schemas/data.schema.d.ts +89 -48
  298. package/esm/src/data/schemas/data.schema.d.ts.map +1 -1
  299. package/esm/src/data/schemas/data.schema.js +36 -29
  300. package/esm/src/extensions/builtin-extensions.d.ts.map +1 -1
  301. package/esm/src/extensions/builtin-extensions.js +9 -0
  302. package/esm/src/extensions/schema/index.d.ts +1 -1
  303. package/esm/src/extensions/schema/index.d.ts.map +1 -1
  304. package/esm/src/extensions/schema/json-schema.d.ts +23 -0
  305. package/esm/src/extensions/schema/json-schema.d.ts.map +1 -0
  306. package/esm/src/extensions/schema/json-schema.js +8 -0
  307. package/esm/src/extensions/schema/schema-validator.d.ts +97 -4
  308. package/esm/src/extensions/schema/schema-validator.d.ts.map +1 -1
  309. package/esm/src/html/hydration-script-builder/hydration-data-generator.js +1 -1
  310. package/esm/src/html/schemas/html.schema.d.ts +107 -90
  311. package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
  312. package/esm/src/html/schemas/html.schema.js +60 -52
  313. package/esm/src/html/utils.d.ts.map +1 -1
  314. package/esm/src/html/utils.js +1 -1
  315. package/esm/src/integrations/schema.d.ts +455 -433
  316. package/esm/src/integrations/schema.d.ts.map +1 -1
  317. package/esm/src/integrations/schema.js +105 -95
  318. package/esm/src/internal-agents/ag-ui-sse.d.ts.map +1 -1
  319. package/esm/src/internal-agents/ag-ui-sse.js +60 -82
  320. package/esm/src/internal-agents/control-plane-auth.d.ts +10 -10
  321. package/esm/src/internal-agents/control-plane-auth.d.ts.map +1 -1
  322. package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
  323. package/esm/src/internal-agents/run-stream.js +3 -2
  324. package/esm/src/internal-agents/schema.d.ts +272 -281
  325. package/esm/src/internal-agents/schema.d.ts.map +1 -1
  326. package/esm/src/internal-agents/schema.js +55 -47
  327. package/esm/src/issues/core.d.ts.map +1 -1
  328. package/esm/src/issues/mcp.d.ts.map +1 -1
  329. package/esm/src/issues/mcp.js +47 -41
  330. package/esm/src/issues/schemas/index.d.ts +1 -1
  331. package/esm/src/issues/schemas/index.d.ts.map +1 -1
  332. package/esm/src/issues/schemas/index.js +1 -1
  333. package/esm/src/issues/schemas/issue.schema.d.ts +151 -116
  334. package/esm/src/issues/schemas/issue.schema.d.ts.map +1 -1
  335. package/esm/src/issues/schemas/issue.schema.js +64 -55
  336. package/esm/src/jobs/schemas.d.ts +1087 -658
  337. package/esm/src/jobs/schemas.d.ts.map +1 -1
  338. package/esm/src/jobs/schemas.js +244 -214
  339. package/esm/src/mcp/index.d.ts +6 -2
  340. package/esm/src/mcp/index.d.ts.map +1 -1
  341. package/esm/src/mcp/index.js +6 -2
  342. package/esm/src/mcp/schemas/index.d.ts +1 -1
  343. package/esm/src/mcp/schemas/index.d.ts.map +1 -1
  344. package/esm/src/mcp/schemas/index.js +1 -1
  345. package/esm/src/mcp/schemas/mcp.schema.d.ts +59 -31
  346. package/esm/src/mcp/schemas/mcp.schema.d.ts.map +1 -1
  347. package/esm/src/mcp/schemas/mcp.schema.js +28 -24
  348. package/esm/src/mcp/types.d.ts +2 -2
  349. package/esm/src/mcp/types.d.ts.map +1 -1
  350. package/esm/src/oauth/providers/atlassian.d.ts +36 -30
  351. package/esm/src/oauth/providers/atlassian.d.ts.map +1 -1
  352. package/esm/src/oauth/providers/common.d.ts +312 -260
  353. package/esm/src/oauth/providers/common.d.ts.map +1 -1
  354. package/esm/src/oauth/providers/google.d.ts +48 -40
  355. package/esm/src/oauth/providers/google.d.ts.map +1 -1
  356. package/esm/src/oauth/providers/microsoft.d.ts +48 -40
  357. package/esm/src/oauth/providers/microsoft.d.ts.map +1 -1
  358. package/esm/src/oauth/schemas/oauth.schema.d.ts +180 -92
  359. package/esm/src/oauth/schemas/oauth.schema.d.ts.map +1 -1
  360. package/esm/src/oauth/schemas/oauth.schema.js +67 -59
  361. package/esm/src/platform/adapters/fs/github/github-api-client.d.ts.map +1 -1
  362. package/esm/src/platform/adapters/fs/github/github-api-client.js +4 -4
  363. package/esm/src/platform/adapters/fs/github/index.d.ts +1 -1
  364. package/esm/src/platform/adapters/fs/github/index.d.ts.map +1 -1
  365. package/esm/src/platform/adapters/fs/github/index.js +1 -1
  366. package/esm/src/platform/adapters/fs/github/schemas/github-api.schema.d.ts +97 -140
  367. package/esm/src/platform/adapters/fs/github/schemas/github-api.schema.d.ts.map +1 -1
  368. package/esm/src/platform/adapters/fs/github/schemas/github-api.schema.js +40 -37
  369. package/esm/src/platform/adapters/fs/github/schemas/index.d.ts +1 -1
  370. package/esm/src/platform/adapters/fs/github/schemas/index.d.ts.map +1 -1
  371. package/esm/src/platform/adapters/fs/github/schemas/index.js +1 -1
  372. package/esm/src/platform/adapters/fs/veryfront/proxy-manager.d.ts.map +1 -1
  373. package/esm/src/platform/adapters/fs/veryfront/proxy-manager.js +7 -4
  374. package/esm/src/platform/adapters/fs/veryfront/schemas/index.d.ts +1 -1
  375. package/esm/src/platform/adapters/fs/veryfront/schemas/index.d.ts.map +1 -1
  376. package/esm/src/platform/adapters/fs/veryfront/schemas/index.js +1 -1
  377. package/esm/src/platform/adapters/fs/veryfront/schemas/proxy-manager.schema.d.ts +11 -11
  378. package/esm/src/platform/adapters/fs/veryfront/schemas/proxy-manager.schema.d.ts.map +1 -1
  379. package/esm/src/platform/adapters/fs/veryfront/schemas/proxy-manager.schema.js +10 -10
  380. package/esm/src/platform/adapters/fs/veryfront/stat-operations.d.ts.map +1 -1
  381. package/esm/src/platform/adapters/fs/veryfront/stat-operations.js +1 -0
  382. package/esm/src/platform/adapters/veryfront-api-client/client.d.ts +63 -63
  383. package/esm/src/platform/adapters/veryfront-api-client/index.d.ts +1 -1
  384. package/esm/src/platform/adapters/veryfront-api-client/index.d.ts.map +1 -1
  385. package/esm/src/platform/adapters/veryfront-api-client/index.js +1 -1
  386. package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts.map +1 -1
  387. package/esm/src/platform/adapters/veryfront-api-client/operations.js +11 -21
  388. package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.d.ts +444 -471
  389. package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.d.ts.map +1 -1
  390. package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.js +150 -122
  391. package/esm/src/platform/adapters/veryfront-api-client/schemas/index.d.ts +1 -1
  392. package/esm/src/platform/adapters/veryfront-api-client/schemas/index.d.ts.map +1 -1
  393. package/esm/src/platform/adapters/veryfront-api-client/schemas/index.js +1 -1
  394. package/esm/src/prompt/schemas/prompt.schema.d.ts +10 -9
  395. package/esm/src/prompt/schemas/prompt.schema.d.ts.map +1 -1
  396. package/esm/src/prompt/schemas/prompt.schema.js +8 -8
  397. package/esm/src/proxy/handler.d.ts.map +1 -1
  398. package/esm/src/proxy/handler.js +0 -1
  399. package/esm/src/repositories/schemas/repository.schema.d.ts +40 -25
  400. package/esm/src/repositories/schemas/repository.schema.d.ts.map +1 -1
  401. package/esm/src/repositories/schemas/repository.schema.js +23 -19
  402. package/esm/src/resource/index.d.ts +6 -2
  403. package/esm/src/resource/index.d.ts.map +1 -1
  404. package/esm/src/resource/index.js +6 -2
  405. package/esm/src/resource/schemas/index.d.ts +1 -1
  406. package/esm/src/resource/schemas/index.d.ts.map +1 -1
  407. package/esm/src/resource/schemas/index.js +1 -1
  408. package/esm/src/resource/schemas/resource.schema.d.ts +13 -16
  409. package/esm/src/resource/schemas/resource.schema.d.ts.map +1 -1
  410. package/esm/src/resource/schemas/resource.schema.js +9 -6
  411. package/esm/src/resource/types.d.ts +3 -3
  412. package/esm/src/resource/types.d.ts.map +1 -1
  413. package/esm/src/routing/api/openapi/types.d.ts +4 -4
  414. package/esm/src/routing/api/openapi/types.d.ts.map +1 -1
  415. package/esm/src/sandbox/hosted-tools.d.ts.map +1 -1
  416. package/esm/src/sandbox/hosted-tools.js +11 -13
  417. package/esm/src/schemas/common.d.ts +48 -28
  418. package/esm/src/schemas/common.d.ts.map +1 -1
  419. package/esm/src/schemas/common.js +67 -28
  420. package/esm/src/schemas/define.d.ts +3 -2
  421. package/esm/src/schemas/define.d.ts.map +1 -1
  422. package/esm/src/schemas/define.js +12 -6
  423. package/esm/src/schemas/index.d.ts +8 -4
  424. package/esm/src/schemas/index.d.ts.map +1 -1
  425. package/esm/src/schemas/index.js +8 -7
  426. package/esm/src/schemas/json-schema.d.ts +25 -0
  427. package/esm/src/schemas/json-schema.d.ts.map +1 -0
  428. package/esm/src/schemas/json-schema.js +27 -0
  429. package/esm/src/schemas/primitives.d.ts +34 -23
  430. package/esm/src/schemas/primitives.d.ts.map +1 -1
  431. package/esm/src/schemas/primitives.js +25 -18
  432. package/esm/src/security/input-validation/handler.d.ts +3 -3
  433. package/esm/src/security/input-validation/handler.d.ts.map +1 -1
  434. package/esm/src/security/input-validation/parsers.d.ts +4 -4
  435. package/esm/src/security/input-validation/parsers.d.ts.map +1 -1
  436. package/esm/src/security/input-validation/parsers.js +35 -45
  437. package/esm/src/server/bootstrap.js +2 -2
  438. package/esm/src/server/dev-ui/manifest.js +1 -1
  439. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  440. package/esm/src/server/handlers/dev/framework-candidates.generated.js +1 -0
  441. package/esm/src/server/handlers/request/agent-run-cancel.handler.d.ts.map +1 -1
  442. package/esm/src/server/handlers/request/agent-run-cancel.handler.js +2 -3
  443. package/esm/src/server/handlers/request/agent-run-resume.handler.d.ts.map +1 -1
  444. package/esm/src/server/handlers/request/agent-run-resume.handler.js +4 -5
  445. package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
  446. package/esm/src/server/handlers/request/agent-stream.handler.js +3 -4
  447. package/esm/src/server/handlers/request/internal-agents-list.handler.d.ts.map +1 -1
  448. package/esm/src/server/handlers/request/internal-agents-list.handler.js +2 -4
  449. package/esm/src/server/runtime-handler/environment-resolution.d.ts.map +1 -1
  450. package/esm/src/server/runtime-handler/environment-resolution.js +4 -5
  451. package/esm/src/server/runtime-handler/request-utils.d.ts.map +1 -1
  452. package/esm/src/server/runtime-handler/request-utils.js +1 -2
  453. package/esm/src/server/schemas/action.schema.d.ts +10 -6
  454. package/esm/src/server/schemas/action.schema.d.ts.map +1 -1
  455. package/esm/src/server/schemas/action.schema.js +7 -5
  456. package/esm/src/skill/tools.d.ts.map +1 -1
  457. package/esm/src/skill/tools.js +24 -21
  458. package/esm/src/tool/factory.d.ts +1 -1
  459. package/esm/src/tool/factory.d.ts.map +1 -1
  460. package/esm/src/tool/factory.js +12 -1
  461. package/esm/src/tool/host-tools.d.ts +1 -1
  462. package/esm/src/tool/host-tools.d.ts.map +1 -1
  463. package/esm/src/tool/host-tools.js +17 -3
  464. package/esm/src/tool/index.d.ts +9 -5
  465. package/esm/src/tool/index.d.ts.map +1 -1
  466. package/esm/src/tool/index.js +9 -5
  467. package/esm/src/tool/remote-source-tools.d.ts.map +1 -1
  468. package/esm/src/tool/remote-source-tools.js +9 -2
  469. package/esm/src/tool/schema/json-schema.d.ts +8 -15
  470. package/esm/src/tool/schema/json-schema.d.ts.map +1 -1
  471. package/esm/src/tool/schema/json-schema.js +7 -0
  472. package/esm/src/tool/schema/zod-json-schema.d.ts +33 -4
  473. package/esm/src/tool/schema/zod-json-schema.d.ts.map +1 -1
  474. package/esm/src/tool/schema/zod-json-schema.js +70 -159
  475. package/esm/src/tool/sleep.d.ts +21 -11
  476. package/esm/src/tool/sleep.d.ts.map +1 -1
  477. package/esm/src/tool/sleep.js +42 -4
  478. package/esm/src/tool/types.d.ts +12 -8
  479. package/esm/src/tool/types.d.ts.map +1 -1
  480. package/esm/src/transforms/npm-import-rewrites.d.ts +1 -1
  481. package/esm/src/transforms/npm-import-rewrites.d.ts.map +1 -1
  482. package/esm/src/transforms/npm-import-rewrites.js +1 -3
  483. package/esm/src/utils/version-constant.d.ts +1 -1
  484. package/esm/src/utils/version-constant.js +1 -1
  485. package/esm/src/workflow/api.d.ts +22 -22
  486. package/esm/src/workflow/blob/veryfront-cloud-storage.d.ts.map +1 -1
  487. package/esm/src/workflow/blob/veryfront-cloud-storage.js +37 -33
  488. package/esm/src/workflow/claude-code/tool.d.ts +37 -44
  489. package/esm/src/workflow/claude-code/tool.d.ts.map +1 -1
  490. package/esm/src/workflow/claude-code/tool.js +11 -19
  491. package/esm/src/workflow/dsl/workflow.d.ts +3 -3
  492. package/esm/src/workflow/dsl/workflow.d.ts.map +1 -1
  493. package/esm/src/workflow/schemas/index.d.ts +1 -1
  494. package/esm/src/workflow/schemas/index.d.ts.map +1 -1
  495. package/esm/src/workflow/schemas/index.js +1 -1
  496. package/esm/src/workflow/schemas/workflow.schema.d.ts +194 -177
  497. package/esm/src/workflow/schemas/workflow.schema.d.ts.map +1 -1
  498. package/esm/src/workflow/schemas/workflow.schema.js +101 -83
  499. package/esm/src/workflow/types.d.ts +3 -3
  500. package/esm/src/workflow/types.d.ts.map +1 -1
  501. package/package.json +4 -1
  502. package/src/cli/commands/analyze-chunks/handler.ts +9 -5
  503. package/src/cli/commands/build/handler.ts +20 -15
  504. package/src/cli/commands/clean/command.ts +1 -1
  505. package/src/cli/commands/clean/handler.ts +12 -8
  506. package/src/cli/commands/demo/handler.ts +12 -7
  507. package/src/cli/commands/deploy/command.ts +17 -12
  508. package/src/cli/commands/dev/handler.ts +11 -7
  509. package/src/cli/commands/doctor/handler.ts +8 -4
  510. package/src/cli/commands/files/command.ts +64 -44
  511. package/src/cli/commands/generate/handler.ts +9 -5
  512. package/src/cli/commands/generate/integration-generator-helpers.ts +4 -4
  513. package/src/cli/commands/generate/integration-generator.ts +8 -4
  514. package/src/cli/commands/install/detect.ts +1 -1
  515. package/src/cli/commands/install/handler.ts +10 -6
  516. package/src/cli/commands/install/install.ts +20 -12
  517. package/src/cli/commands/install/types.ts +58 -41
  518. package/src/cli/commands/install/uninstall.ts +6 -2
  519. package/src/cli/commands/knowledge/command.ts +60 -52
  520. package/src/cli/commands/lock/handler.ts +13 -9
  521. package/src/cli/commands/mcp/handler.ts +8 -4
  522. package/src/cli/commands/merge/command.ts +14 -9
  523. package/src/cli/commands/open/command.ts +12 -7
  524. package/src/cli/commands/pull/command.ts +20 -15
  525. package/src/cli/commands/push/command.ts +17 -12
  526. package/src/cli/commands/routes/handler.ts +9 -5
  527. package/src/cli/commands/schema/handler.ts +8 -4
  528. package/src/cli/commands/serve/handler.ts +15 -11
  529. package/src/cli/commands/start/handler.ts +11 -7
  530. package/src/cli/commands/studio/handler.ts +10 -6
  531. package/src/cli/commands/styles/command.ts +22 -17
  532. package/src/cli/commands/styles/handler.ts +12 -7
  533. package/src/cli/commands/task/handler.ts +12 -7
  534. package/src/cli/commands/test/handler.ts +9 -5
  535. package/src/cli/commands/up/command.ts +11 -6
  536. package/src/cli/commands/uploads/command.ts +72 -52
  537. package/src/cli/commands/worker/handler.ts +16 -11
  538. package/src/cli/commands/workflow/handler.ts +13 -8
  539. package/src/cli/mcp/jsonrpc.ts +32 -19
  540. package/src/cli/mcp/remote-file-tools.ts +134 -97
  541. package/src/cli/mcp/server.ts +2 -80
  542. package/src/cli/mcp/tools/bootstrap-tool.ts +11 -7
  543. package/src/cli/mcp/tools/build-tool.ts +32 -28
  544. package/src/cli/mcp/tools/catalog-tools.ts +53 -42
  545. package/src/cli/mcp/tools/context7-tools.ts +29 -25
  546. package/src/cli/mcp/tools/deploy-tool.ts +17 -13
  547. package/src/cli/mcp/tools/dev-tools.ts +90 -66
  548. package/src/cli/mcp/tools/introspection-tools.ts +8 -6
  549. package/src/cli/mcp/tools/project-tools.ts +45 -32
  550. package/src/cli/mcp/tools/run-lint-tool.ts +11 -7
  551. package/src/cli/mcp/tools/run-tests-tool.ts +17 -13
  552. package/src/cli/mcp/tools/scaffold-tools.ts +43 -36
  553. package/src/cli/mcp/tools/skill-tools.ts +17 -12
  554. package/src/cli/mcp/tools.ts +65 -51
  555. package/src/cli/shared/args.ts +12 -9
  556. package/src/cli/shared/config.ts +32 -22
  557. package/src/cli/shared/project-source-context.ts +1 -1
  558. package/src/cli/shared/types.ts +5 -3
  559. package/src/cli/skills/types.ts +29 -24
  560. package/src/cli/templates/manifest.js +211 -211
  561. package/src/deno.js +10 -4
  562. package/src/extensions/ext-zod/src/adapter.ts +238 -0
  563. package/src/extensions/ext-zod/src/index.ts +36 -0
  564. package/src/extensions/ext-zod/src/json-schema.ts +311 -0
  565. package/src/src/agent/ag-ui-detached-start.ts +44 -21
  566. package/src/src/agent/ag-ui-forwarded-context.ts +6 -4
  567. package/src/src/agent/ag-ui-handler.ts +7 -3
  568. package/src/src/agent/ag-ui-host-support.ts +84 -66
  569. package/src/src/agent/ag-ui-request-shared.ts +16 -2
  570. package/src/src/agent/ag-ui-run-control.ts +26 -15
  571. package/src/src/agent/ag-ui-runtime-handler.ts +7 -3
  572. package/src/src/agent/ag-ui-sse-parser.ts +306 -0
  573. package/src/src/agent/ag-ui-tool-shared.ts +5 -2
  574. package/src/src/agent/chat-handler.ts +89 -67
  575. package/src/src/agent/composition/composition.ts +2 -2
  576. package/src/src/agent/conversation-bootstrap.ts +38 -17
  577. package/src/src/agent/conversation-hosted-lifecycle.ts +12 -10
  578. package/src/src/agent/conversation-run-events.ts +13 -5
  579. package/src/src/agent/default-hosted-invoke-agent-tool.ts +19 -8
  580. package/src/src/agent/durable.ts +186 -144
  581. package/src/src/agent/hosted-ag-ui-chat-request.ts +26 -16
  582. package/src/src/agent/hosted-agent-service-routes.ts +4 -3
  583. package/src/src/agent/hosted-chat-request-parser.ts +8 -4
  584. package/src/src/agent/hosted-chat-request.ts +46 -32
  585. package/src/src/agent/hosted-child-fork-step-message-preparation.ts +3 -1
  586. package/src/src/agent/hosted-child-status.ts +8 -1
  587. package/src/src/agent/hosted-child-tool-input.ts +27 -19
  588. package/src/src/agent/hosted-durable-child-fork-execution.ts +3 -3
  589. package/src/src/agent/hosted-form-input-tool.ts +15 -5
  590. package/src/src/agent/human-input.ts +129 -92
  591. package/src/src/agent/index.ts +38 -20
  592. package/src/src/agent/input-request-protocol.ts +193 -124
  593. package/src/src/agent/invoke-agent-child-runs.ts +64 -44
  594. package/src/src/agent/runtime-ag-ui-contract.ts +159 -123
  595. package/src/src/agent/runtime-agent-definition.ts +45 -24
  596. package/src/src/agent/runtime-agent-invocation-contract.ts +241 -174
  597. package/src/src/agent/runtime-builtin-skill-files.ts +3 -2
  598. package/src/src/agent/runtime-client-profile.ts +51 -34
  599. package/src/src/agent/runtime-load-skill-tool.ts +19 -12
  600. package/src/src/agent/runtime-project-files-client.ts +51 -39
  601. package/src/src/agent/runtime-skill-metadata.ts +41 -24
  602. package/src/src/agent/runtime-upload-url-client.ts +24 -24
  603. package/src/src/agent/schemas/agent.schema.ts +179 -142
  604. package/src/src/agent/schemas/index.ts +15 -15
  605. package/src/src/agent/schemas/tool.schema.ts +8 -5
  606. package/src/src/cache/schemas/cache-backend.schema.ts +18 -9
  607. package/src/src/cache/schemas/cache-key.schema.ts +13 -7
  608. package/src/src/channels/control-plane.ts +132 -96
  609. package/src/src/channels/invoke.ts +165 -120
  610. package/src/src/chat/ag-ui.ts +229 -225
  611. package/src/src/chat/conversation.ts +121 -124
  612. package/src/src/chat/types.ts +230 -205
  613. package/src/src/config/schemas/config.schema.ts +653 -610
  614. package/src/src/data/schemas/data.schema.ts +62 -39
  615. package/src/src/extensions/builtin-extensions.ts +9 -0
  616. package/src/src/extensions/schema/index.ts +3 -0
  617. package/src/src/extensions/schema/json-schema.ts +23 -0
  618. package/src/src/extensions/schema/schema-validator.ts +105 -6
  619. package/src/src/html/html-shell-generator.ts +1 -1
  620. package/src/src/html/hydration-script-builder/hydration-data-generator.ts +2 -2
  621. package/src/src/html/schemas/html.schema.ts +81 -65
  622. package/src/src/html/utils.ts +4 -1
  623. package/src/src/integrations/schema.ts +140 -111
  624. package/src/src/internal-agents/ag-ui-sse.ts +85 -83
  625. package/src/src/internal-agents/run-stream.ts +4 -2
  626. package/src/src/internal-agents/schema.ts +120 -89
  627. package/src/src/issues/core.ts +3 -1
  628. package/src/src/issues/mcp.ts +81 -58
  629. package/src/src/issues/schemas/index.ts +11 -0
  630. package/src/src/issues/schemas/issue.schema.ts +99 -73
  631. package/src/src/jobs/jobs-client.ts +4 -4
  632. package/src/src/jobs/schemas.ts +414 -297
  633. package/src/src/mcp/index.ts +6 -2
  634. package/src/src/mcp/schemas/index.ts +3 -0
  635. package/src/src/mcp/schemas/mcp.schema.ts +45 -29
  636. package/src/src/mcp/types.ts +2 -3
  637. package/src/src/oauth/schemas/oauth.schema.ts +96 -70
  638. package/src/src/platform/adapters/fs/github/github-api-client.ts +6 -6
  639. package/src/src/platform/adapters/fs/github/index.ts +5 -5
  640. package/src/src/platform/adapters/fs/github/schemas/github-api.schema.ts +58 -42
  641. package/src/src/platform/adapters/fs/github/schemas/index.ts +5 -5
  642. package/src/src/platform/adapters/fs/veryfront/proxy-manager.ts +9 -5
  643. package/src/src/platform/adapters/fs/veryfront/schemas/index.ts +1 -1
  644. package/src/src/platform/adapters/fs/veryfront/schemas/proxy-manager.schema.ts +14 -11
  645. package/src/src/platform/adapters/fs/veryfront/stat-operations.ts +1 -0
  646. package/src/src/platform/adapters/veryfront-api-client/index.ts +17 -16
  647. package/src/src/platform/adapters/veryfront-api-client/operations.ts +20 -31
  648. package/src/src/platform/adapters/veryfront-api-client/schemas/api.schema.ts +231 -150
  649. package/src/src/platform/adapters/veryfront-api-client/schemas/index.ts +17 -16
  650. package/src/src/prompt/schemas/prompt.schema.ts +13 -10
  651. package/src/src/proxy/handler.ts +0 -1
  652. package/src/src/rendering/orchestrator/html-project-css.ts +1 -1
  653. package/src/src/rendering/renderer.ts +2 -2
  654. package/src/src/repositories/schemas/repository.schema.ts +36 -22
  655. package/src/src/resource/index.ts +6 -2
  656. package/src/src/resource/schemas/index.ts +2 -0
  657. package/src/src/resource/schemas/resource.schema.ts +17 -8
  658. package/src/src/resource/types.ts +3 -3
  659. package/src/src/routing/api/openapi/types.ts +5 -5
  660. package/src/src/sandbox/hosted-tools.ts +17 -13
  661. package/src/src/schemas/common.ts +83 -31
  662. package/src/src/schemas/define.ts +13 -6
  663. package/src/src/schemas/index.ts +29 -17
  664. package/src/src/schemas/json-schema.ts +33 -0
  665. package/src/src/schemas/primitives.ts +71 -35
  666. package/src/src/security/http/config.ts +1 -1
  667. package/src/src/security/input-validation/handler.ts +3 -3
  668. package/src/src/security/input-validation/parsers.ts +40 -45
  669. package/src/src/server/bootstrap.ts +3 -3
  670. package/src/src/server/dev-ui/manifest.js +1 -1
  671. package/src/src/server/handlers/dev/framework-candidates.generated.ts +1 -0
  672. package/src/src/server/handlers/request/agent-run-cancel.handler.ts +2 -6
  673. package/src/src/server/handlers/request/agent-run-resume.handler.ts +4 -9
  674. package/src/src/server/handlers/request/agent-stream.handler.ts +2 -4
  675. package/src/src/server/handlers/request/internal-agents-list.handler.ts +2 -5
  676. package/src/src/server/runtime-handler/environment-resolution.ts +4 -5
  677. package/src/src/server/runtime-handler/request-utils.ts +1 -2
  678. package/src/src/server/schemas/action.schema.ts +12 -6
  679. package/src/src/skill/tools.ts +37 -25
  680. package/src/src/tool/factory.ts +23 -5
  681. package/src/src/tool/host-tools.ts +16 -6
  682. package/src/src/tool/index.ts +9 -5
  683. package/src/src/tool/remote-source-tools.ts +10 -2
  684. package/src/src/tool/schema/json-schema.ts +9 -15
  685. package/src/src/tool/schema/zod-json-schema.ts +75 -209
  686. package/src/src/tool/sleep.ts +55 -7
  687. package/src/src/tool/types.ts +12 -8
  688. package/src/src/transforms/npm-import-rewrites.ts +1 -3
  689. package/src/src/utils/version-constant.ts +1 -1
  690. package/src/src/workflow/blob/veryfront-cloud-storage.ts +53 -39
  691. package/src/src/workflow/claude-code/tool.ts +29 -38
  692. package/src/src/workflow/dsl/workflow.ts +3 -3
  693. package/src/src/workflow/schemas/index.ts +17 -0
  694. package/src/src/workflow/schemas/workflow.schema.ts +183 -123
  695. package/src/src/workflow/types.ts +3 -3
  696. package/esm/src/schemas/zod-adapter.d.ts +0 -25
  697. package/esm/src/schemas/zod-adapter.d.ts.map +0 -1
  698. package/esm/src/schemas/zod-adapter.js +0 -120
  699. package/src/src/schemas/zod-adapter.ts +0 -180
@@ -9,7 +9,7 @@
9
9
  * @module
10
10
  */
11
11
 
12
- import { z } from "zod";
12
+ import { defineSchema } from "../schemas/index.js";
13
13
  import { tool } from "../tool/factory.js";
14
14
  import type { Tool } from "../tool/index.js";
15
15
  import { readTextFile } from "../platform/compat/fs.js";
@@ -30,6 +30,39 @@ import {
30
30
  /** Maximum allowed script execution timeout in milliseconds (5 minutes) */
31
31
  const MAX_SCRIPT_TIMEOUT_MS = 300_000;
32
32
 
33
+ const getLoadSkillInputSchema = defineSchema((v) =>
34
+ v.object({
35
+ skillId: v.string().describe("The ID of the skill to load"),
36
+ })
37
+ );
38
+
39
+ const getLoadSkillReferenceInputSchema = defineSchema((v) =>
40
+ v.object({
41
+ skillId: v.string().describe("The ID of the skill"),
42
+ reference: v.string().describe(
43
+ "Relative path to the reference file (e.g. 'references/CLAUSES.md')",
44
+ ),
45
+ })
46
+ );
47
+
48
+ const getExecuteSkillScriptInputSchema = defineSchema((v) =>
49
+ v.object({
50
+ skillId: v.string().describe("The ID of the skill"),
51
+ script: v.string().describe("Relative path to the script (e.g. 'scripts/setup.sh')"),
52
+ args: v.array(v.string()).optional().describe("Arguments to pass to the script"),
53
+ env: v.record(v.string(), v.string()).optional().describe(
54
+ "Environment variables for the script",
55
+ ),
56
+ timeoutMs: v
57
+ .number()
58
+ .int()
59
+ .positive()
60
+ .max(MAX_SCRIPT_TIMEOUT_MS)
61
+ .optional()
62
+ .describe(`Optional execution timeout in milliseconds (max ${MAX_SCRIPT_TIMEOUT_MS})`),
63
+ })
64
+ );
65
+
33
66
  /**
34
67
  * Read a file from a skill directory.
35
68
  * Uses skill.fsAdapter if available (VFS/cloud), otherwise falls back to compat readTextFile.
@@ -63,9 +96,7 @@ export function createLoadSkillTool(): Tool {
63
96
  id: "load-skill",
64
97
  description: "Load a skill's full instructions. Returns the skill's markdown instructions, " +
65
98
  "allowed tools policy, and lists of available reference files and scripts.",
66
- inputSchema: z.object({
67
- skillId: z.string().describe("The ID of the skill to load"),
68
- }),
99
+ inputSchema: getLoadSkillInputSchema(),
69
100
  execute: async (input): Promise<SkillContent> => {
70
101
  const skill = skillRegistry.get(input.skillId);
71
102
  if (!skill) {
@@ -120,12 +151,7 @@ export function createLoadSkillReferenceTool(): Tool {
120
151
  id: "load-skill-reference",
121
152
  description: "Read a reference file from a skill. Only files in the skill's " +
122
153
  "references/ and assets/ directories are accessible.",
123
- inputSchema: z.object({
124
- skillId: z.string().describe("The ID of the skill"),
125
- reference: z.string().describe(
126
- "Relative path to the reference file (e.g. 'references/CLAUSES.md')",
127
- ),
128
- }),
154
+ inputSchema: getLoadSkillReferenceInputSchema(),
129
155
  execute: async (input): Promise<{ content: string; path: string }> => {
130
156
  const skill = skillRegistry.get(input.skillId);
131
157
  if (!skill) {
@@ -160,21 +186,7 @@ export function createExecuteSkillScriptTool(): Tool {
160
186
  id: "execute-skill-script",
161
187
  description:
162
188
  "Execute a script from a skill's scripts/ directory. Returns stdout, stderr, and exit code.",
163
- inputSchema: z.object({
164
- skillId: z.string().describe("The ID of the skill"),
165
- script: z.string().describe("Relative path to the script (e.g. 'scripts/setup.sh')"),
166
- args: z.array(z.string()).optional().describe("Arguments to pass to the script"),
167
- env: z.record(z.string(), z.string()).optional().describe(
168
- "Environment variables for the script",
169
- ),
170
- timeoutMs: z
171
- .number()
172
- .int()
173
- .positive()
174
- .max(MAX_SCRIPT_TIMEOUT_MS)
175
- .optional()
176
- .describe(`Optional execution timeout in milliseconds (max ${MAX_SCRIPT_TIMEOUT_MS})`),
177
- }),
189
+ inputSchema: getExecuteSkillScriptInputSchema(),
178
190
  execute: async (input) => {
179
191
  const skill = skillRegistry.get(input.skillId);
180
192
  if (!skill) {
@@ -1,6 +1,5 @@
1
1
  import type { Tool, ToolConfig, ToolExecutionContext } from "./types.js";
2
- import type { JsonSchema } from "./schema/json-schema.js";
3
- import type { z } from "zod";
2
+ import type { JsonSchema, Schema } from "../extensions/schema/index.js";
4
3
  import { zodToJsonSchema } from "./schema/zod-json-schema.js";
5
4
  import { agentLogger } from "../utils/logger/logger.js";
6
5
  import { createError, getErrorMessage, toError } from "../errors/veryfront-error.js";
@@ -14,10 +13,26 @@ interface ZodLikeSchema {
14
13
  parse?: (input: unknown) => void;
15
14
  }
16
15
 
16
+ interface ContractSchemaShape {
17
+ __zod?: unknown;
18
+ _output?: unknown;
19
+ parse: (input: unknown) => unknown;
20
+ safeParse?: (input: unknown) => unknown;
21
+ }
22
+
17
23
  interface SchemaWithParse {
18
24
  parse: (input: unknown) => unknown;
19
25
  }
20
26
 
27
+ function isContractSchema(value: unknown): value is ContractSchemaShape {
28
+ if (value === null || typeof value !== "object") return false;
29
+ if ("__zod" in value) return true;
30
+ return (
31
+ "_output" in value &&
32
+ typeof (value as { parse?: unknown }).parse === "function"
33
+ );
34
+ }
35
+
21
36
  function hasValidZodTypeName(schema: unknown): schema is ZodLikeSchema {
22
37
  if (schema === null || typeof schema !== "object") return false;
23
38
  if (!("_def" in schema)) return false;
@@ -88,9 +103,12 @@ function convertSchemaToJson(
88
103
  logPrefix: string,
89
104
  permissive = false,
90
105
  ): JsonSchema {
91
- if (hasValidZodTypeName(schema)) {
106
+ // Modern path: contract Schema<T> (defineSchema-produced) — route through
107
+ // the SchemaValidator contract via zodToJsonSchema (which detects both
108
+ // wrapped and raw zod shapes).
109
+ if (isContractSchema(schema) || hasValidZodTypeName(schema)) {
92
110
  const result = tryConvert(
93
- () => zodToJsonSchema(schema as z.ZodTypeAny),
111
+ () => zodToJsonSchema(schema),
94
112
  toolId,
95
113
  logPrefix,
96
114
  permissive,
@@ -196,7 +214,7 @@ export function dynamicTool(config: DynamicToolConfig): Tool<unknown, unknown> {
196
214
  id,
197
215
  type: "dynamic" as const,
198
216
  description: config.description,
199
- inputSchema: config.inputSchema as z.ZodSchema<unknown>,
217
+ inputSchema: config.inputSchema as Schema<unknown>,
200
218
  inputSchemaJson,
201
219
  execute: async (input: unknown, context?: ToolExecutionContext) => {
202
220
  if (hasSchemaParse(config.inputSchema)) {
@@ -1,7 +1,6 @@
1
1
  import * as dntShim from "../../_dnt.shims.js";
2
- import { z } from "zod";
3
2
  import { dynamicTool, tool } from "./factory.js";
4
- import type { JsonSchema } from "./schema/json-schema.js";
3
+ import type { JsonSchema, Schema } from "../extensions/schema/index.js";
5
4
  import type { Tool, ToolConfig, ToolExecutionContext, ToolSet } from "./types.js";
6
5
 
7
6
  type HostToolExecute = {
@@ -25,7 +24,7 @@ export type HostToolSet = Record<string, HostToolDefinition>;
25
24
 
26
25
  type RunnableHostToolDefinition = HostToolDefinition & {
27
26
  description: string;
28
- inputSchema: z.ZodSchema<unknown>;
27
+ inputSchema: Schema<unknown>;
29
28
  execute: HostToolExecute;
30
29
  };
31
30
 
@@ -37,8 +36,19 @@ function isRecord(value: unknown): value is Record<string, unknown> {
37
36
  return typeof value === "object" && value !== null && !Array.isArray(value);
38
37
  }
39
38
 
40
- function isZodSchema(value: unknown): value is z.ZodSchema<unknown> {
41
- if (!isRecord(value) || typeof value.parse !== "function") return false;
39
+ /**
40
+ * Detect a contract `Schema<T>` (defineSchema-produced wrapper) or a raw
41
+ * zod schema. Both are accepted during the migration window so host tools
42
+ * can feed either into the framework without bespoke conversion.
43
+ */
44
+ function isSchemaLike(value: unknown): value is Schema<unknown> {
45
+ if (!isRecord(value)) return false;
46
+ if (typeof value.parse !== "function") return false;
47
+ // Contract Schema<T> brand from the ext-zod adapter.
48
+ if ("__zod" in value) return true;
49
+ // defineSchema wrapper without a brand yet — match on the contract surface.
50
+ if ("_output" in value && typeof value.safeParse === "function") return true;
51
+ // Raw zod schema (legacy host paths still hand us bare zod instances).
42
52
  if (!isRecord(value._def)) return false;
43
53
  return typeof value._def.typeName === "string" || typeof value._def.type === "string";
44
54
  }
@@ -47,7 +57,7 @@ function isHostToolDefinition(value: unknown): value is RunnableHostToolDefiniti
47
57
  return (
48
58
  isRecord(value) &&
49
59
  typeof value.description === "string" &&
50
- isZodSchema(value.inputSchema) &&
60
+ isSchemaLike(value.inputSchema) &&
51
61
  typeof value.execute === "function"
52
62
  );
53
63
  }
@@ -1,17 +1,19 @@
1
1
  /**
2
- * Define tools with Zod schemas for agents and MCP.
2
+ * Define tools with `defineSchema`-built input schemas for agents and MCP.
3
3
  *
4
4
  * @module tool
5
5
  *
6
6
  * @example Basic tool
7
7
  * ```ts
8
8
  * import { tool } from "veryfront/tool";
9
- * import { z } from "zod";
9
+ * import { defineSchema } from "veryfront/schemas";
10
+ *
11
+ * const getWeatherInputSchema = defineSchema((v) => v.object({ city: v.string() }));
10
12
  *
11
13
  * const weather = tool({
12
14
  * id: "weather",
13
15
  * description: "Get current weather for a city",
14
- * inputSchema: z.object({ city: z.string() }),
16
+ * inputSchema: getWeatherInputSchema(),
15
17
  * execute: async ({ city }) => {
16
18
  * const res = await fetch(`https://api.weather.com/${city}`);
17
19
  * return res.json();
@@ -23,12 +25,14 @@
23
25
  * ```ts
24
26
  * import { tool } from "veryfront/tool";
25
27
  * import { agent } from "veryfront/agent";
26
- * import { z } from "zod";
28
+ * import { defineSchema } from "veryfront/schemas";
29
+ *
30
+ * const getWeatherInputSchema = defineSchema((v) => v.object({ city: v.string() }));
27
31
  *
28
32
  * const weather = tool({
29
33
  * id: "weather",
30
34
  * description: "Get current weather for a city",
31
- * inputSchema: z.object({ city: z.string() }),
35
+ * inputSchema: getWeatherInputSchema(),
32
36
  * execute: async ({ city }) => {
33
37
  * const res = await fetch(`https://api.weather.com/${city}`);
34
38
  * return res.json();
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { defineSchema } from "../schemas/index.js";
2
2
  import { dynamicTool } from "./factory.js";
3
3
  import type { RemoteToolSource, Tool, ToolDefinition, ToolExecutionContext } from "./types.js";
4
4
 
@@ -7,6 +7,14 @@ export interface RemoteToolMaterializationOptions {
7
7
  toolNameAliases?: Record<string, string>;
8
8
  }
9
9
 
10
+ /**
11
+ * Permissive input schema used for remote tools whose JSON Schema is
12
+ * sourced from the remote and we only need a no-op contract `Schema<T>` to
13
+ * satisfy the runtime input-validation pass. Equivalent to
14
+ * `z.object({}).passthrough()`.
15
+ */
16
+ const getRemoteToolPassthroughSchema = defineSchema((v) => v.object({}).passthrough());
17
+
10
18
  function toToolInputRecord(input: unknown): Record<string, unknown> {
11
19
  if (typeof input !== "object" || input === null || Array.isArray(input)) {
12
20
  return {};
@@ -29,7 +37,7 @@ export function createToolsFromRemoteDefinitions(
29
37
  dynamicTool({
30
38
  id: toolName,
31
39
  description: definition.description,
32
- inputSchema: z.object({}).passthrough(),
40
+ inputSchema: getRemoteToolPassthroughSchema(),
33
41
  inputSchemaJson: definition.parameters,
34
42
  mcp: {
35
43
  title: definition.title,
@@ -1,15 +1,9 @@
1
- export type JsonSchema = {
2
- type?: "string" | "number" | "integer" | "boolean" | "object" | "array" | "null";
3
- description?: string;
4
- enum?: unknown[];
5
- const?: unknown;
6
- default?: unknown;
7
- properties?: Record<string, JsonSchema>;
8
- required?: string[];
9
- items?: JsonSchema;
10
- additionalProperties?: boolean | JsonSchema;
11
- anyOf?: JsonSchema[];
12
- prefixItems?: JsonSchema[];
13
- minItems?: number;
14
- maxItems?: number;
15
- };
1
+ /**
2
+ * Back-compat re-export. The canonical `JsonSchema` type now lives in
3
+ * `src/extensions/schema/json-schema.ts` so the `SchemaValidator`
4
+ * contract can reference it without an upward import.
5
+ *
6
+ * @module tool/schema/json-schema
7
+ */
8
+
9
+ export type { JsonSchema } from "../../extensions/schema/json-schema.js";
@@ -1,221 +1,87 @@
1
- import type { z } from "zod";
2
- import type { JsonSchema } from "./json-schema.js";
3
- import { INVALID_ARGUMENT } from "../../errors/index.js";
4
-
5
- /** Zod internal _def shape covers fields from both v3 and v4. */
6
- interface ZodDef {
7
- typeName?: string; // v3
8
- type?: string; // v4
9
- value?: unknown; // v3 literal
10
- values?: unknown; // v3 enum / v4 literal
11
- entries?: Record<string, unknown>; // v4 enum
12
- shape?: (() => Record<string, z.ZodTypeAny>) | Record<string, z.ZodTypeAny>;
13
- element?: z.ZodTypeAny; // v4 array/record
14
- items?: z.ZodTypeAny[]; // tuple
15
- options?: z.ZodTypeAny[] | Map<string, z.ZodTypeAny>; // union
16
- valueType?: z.ZodTypeAny; // record
17
- innerType?: z.ZodTypeAny; // optional/nullable/default (v3)
18
- schema?: z.ZodTypeAny; // effects/optional/nullable (v3/v4)
19
- in?: z.ZodTypeAny; // pipe input (v4)
20
- getter?: () => z.ZodTypeAny; // lazy
21
- defaultValue?: (() => unknown) | unknown;
1
+ /**
2
+ * Schema JSON Schema conversion shim.
3
+ *
4
+ * Historically this module was the in-tree zod-to-JSON-Schema converter.
5
+ * After Phase B2 the conversion lives behind the `SchemaValidator`
6
+ * contract (`toJsonSchema` / `isOptional`) and the zod-aware logic moved
7
+ * to `extensions/ext-zod/src/json-schema.ts`. This file is kept as a
8
+ * back-compat surface so existing callers (`tool/registry.ts`,
9
+ * `tool/factory.ts`, `workflow/registry.ts`, `routing/api/openapi/...`,
10
+ * `mcp/server.ts`, `cli/mcp/server.ts`) continue to compile.
11
+ *
12
+ * Inputs may be either an opaque `Schema<T>` produced by `defineSchema`
13
+ * (the modern path) or a raw zod schema (legacy path during the migration
14
+ * window). Both shapes are routed through the `SchemaValidator` contract
15
+ * so no zod-specific logic remains in this file.
16
+ *
17
+ * @module tool/schema/zod-json-schema
18
+ */
19
+
20
+ import type { JsonSchema, Schema } from "../../extensions/schema/index.js";
21
+ import {
22
+ isOptionalSchema as schemaIsOptional,
23
+ schemaToJsonSchema,
24
+ } from "../../schemas/json-schema.js";
25
+
26
+ /** Detect contract `Schema<T>` (carries a `__zod` brand from the ext-zod adapter). */
27
+ function isContractSchema(value: unknown): value is Schema<unknown> {
28
+ if (value === null || typeof value !== "object") return false;
29
+ if ("__zod" in value) return true;
30
+ // Fallback: defineSchema-produced wrappers expose `_output`, `parse`, and
31
+ // `safeParse`. Some test doubles may construct these directly.
32
+ return (
33
+ "_output" in value &&
34
+ typeof (value as { parse?: unknown }).parse === "function" &&
35
+ typeof (value as { safeParse?: unknown }).safeParse === "function"
36
+ );
22
37
  }
23
38
 
24
- const LITERAL_TYPE_MAP: Record<string, "string" | "number" | "boolean"> = {
25
- string: "string",
26
- number: "number",
27
- boolean: "boolean",
28
- };
29
-
30
- function getLiteralType(value: unknown): "string" | "number" | "boolean" | undefined {
31
- return LITERAL_TYPE_MAP[typeof value];
39
+ /** Detect a raw zod schema: object with `_def` carrying `typeName` (v3) or `type` (v4). */
40
+ function isRawZodSchema(value: unknown): value is { _def: { typeName?: string; type?: string } } {
41
+ if (value === null || typeof value !== "object") return false;
42
+ if (!("_def" in value)) return false;
43
+ const def = (value as { _def: unknown })._def as { typeName?: unknown; type?: unknown } | null;
44
+ if (!def || typeof def !== "object") return false;
45
+ return typeof def.typeName === "string" || typeof def.type === "string";
32
46
  }
33
47
 
34
- function getDef(schema: z.ZodTypeAny): ZodDef {
35
- return schema._def as ZodDef;
48
+ /**
49
+ * Adapter that wraps a raw zod schema in the contract's `Schema<unknown>`
50
+ * shape so the contract's `toJsonSchema` / `isOptional` can unwrap it via
51
+ * the `__zod` brand.
52
+ */
53
+ function wrapRawZod(value: unknown): Schema<unknown> {
54
+ return { __zod: value } as unknown as Schema<unknown>;
36
55
  }
37
56
 
38
- /** Get the internal type tag from a zod schema (_def.typeName in v3, _def.type in v4). */
39
- function getTypeTag(schema: z.ZodTypeAny): string | undefined {
40
- const def = getDef(schema);
41
- return def.typeName ?? def.type;
42
- }
43
-
44
- export function zodToJsonSchema(schema: z.ZodTypeAny): JsonSchema {
45
- // Guard against invalid schemas (can happen with different zod instances in npm bundle)
46
- if (!schema || typeof schema !== "object" || !("_def" in schema)) {
47
- throw INVALID_ARGUMENT.create({ detail: "Invalid Zod schema: missing _def property" });
57
+ /**
58
+ * Convert a `Schema<T>` (or, transitionally, a raw zod schema) into a
59
+ * JSON Schema document.
60
+ *
61
+ * Throws if the input is neither a contract schema nor a raw zod schema —
62
+ * matches the pre-B2 behavior of the original `zodToJsonSchema` guard.
63
+ */
64
+ export function zodToJsonSchema(schema: unknown): JsonSchema {
65
+ if (isContractSchema(schema)) {
66
+ return schemaToJsonSchema(schema);
48
67
  }
49
-
50
- const { schema: unwrapped, nullable } = unwrapSchema(schema);
51
- const json = convert(unwrapped);
52
-
53
- return nullable ? { anyOf: [json, { type: "null" }] } : json;
54
- }
55
-
56
- export function isOptionalSchema(schema: z.ZodTypeAny): boolean {
57
- return unwrapSchema(schema).optional;
58
- }
59
-
60
- function convert(schema: z.ZodTypeAny): JsonSchema {
61
- const tag = getTypeTag(schema);
62
- const def = getDef(schema);
63
-
64
- switch (tag) {
65
- case "ZodString":
66
- case "string":
67
- return { type: "string" };
68
-
69
- case "ZodNumber":
70
- case "number":
71
- return { type: "number" };
72
-
73
- case "ZodBoolean":
74
- case "boolean":
75
- return { type: "boolean" };
76
-
77
- case "ZodBigInt":
78
- case "bigint":
79
- return { type: "integer" };
80
-
81
- case "ZodLiteral":
82
- case "literal": {
83
- // v3: _def.value, v4: _def.values (array of accepted values)
84
- const literal = def.value ?? (Array.isArray(def.values) ? def.values[0] : def.values);
85
- return { const: literal, type: getLiteralType(literal) };
86
- }
87
-
88
- case "ZodEnum":
89
- case "ZodNativeEnum":
90
- case "enum": {
91
- // v3: _def.values (array), v4: _def.entries (object {key: value})
92
- const values = def.values ?? (def.entries ? Object.values(def.entries) : []);
93
- if (Array.isArray(values)) {
94
- return { type: "string", enum: values };
95
- }
96
- // Native enum: filter out reverse-mapped numeric keys
97
- return {
98
- enum: Object.values(values).filter((value) => typeof value !== "number"),
99
- };
100
- }
101
-
102
- case "ZodObject":
103
- case "object": {
104
- const shape = typeof def.shape === "function" ? def.shape() : def.shape;
105
- const properties: Record<string, JsonSchema> = {};
106
- const required: string[] = [];
107
-
108
- for (const [key, value] of Object.entries(shape ?? {})) {
109
- const zodSchema = value as z.ZodTypeAny;
110
- properties[key] = zodToJsonSchema(zodSchema);
111
- if (!isOptionalSchema(zodSchema)) required.push(key);
112
- }
113
-
114
- const json: JsonSchema = { type: "object", properties };
115
- if (required.length) json.required = required;
116
-
117
- return json;
118
- }
119
-
120
- case "ZodArray":
121
- case "array": {
122
- // v3: _def.type (item schema), v4: _def.element (item schema)
123
- const itemType = def.element ?? (def.type as unknown as z.ZodTypeAny | undefined);
124
- if (!itemType || typeof itemType === "string") return { type: "array" };
125
- return { type: "array", items: zodToJsonSchema(itemType) };
126
- }
127
-
128
- case "ZodTuple":
129
- case "tuple": {
130
- const items = def.items ?? [];
131
- return {
132
- type: "array",
133
- prefixItems: items.map((item: z.ZodTypeAny) => zodToJsonSchema(item)),
134
- minItems: items.length,
135
- maxItems: items.length,
136
- };
137
- }
138
-
139
- case "ZodUnion":
140
- case "ZodDiscriminatedUnion":
141
- case "union": {
142
- const options = def.options ?? [];
143
- const optionArray = options instanceof Map ? Array.from(options.values()) : options;
144
- return { anyOf: optionArray.map((option: z.ZodTypeAny) => zodToJsonSchema(option)) };
145
- }
146
-
147
- case "ZodRecord":
148
- case "record": {
149
- const valueSchema = def.valueType ?? def.element;
150
- if (!valueSchema) return { type: "object" };
151
- return { type: "object", additionalProperties: zodToJsonSchema(valueSchema) };
152
- }
153
-
154
- case "ZodDefault":
155
- case "default": {
156
- const innerType = def.innerType ?? def.schema;
157
- if (!innerType) return { type: "object" };
158
- const inner = zodToJsonSchema(innerType);
159
- const defaultValue = typeof def.defaultValue === "function"
160
- ? def.defaultValue()
161
- : def.defaultValue;
162
-
163
- if (typeof inner === "object" && !("anyOf" in inner) && defaultValue !== undefined) {
164
- inner.default = defaultValue;
165
- }
166
-
167
- return inner;
168
- }
169
-
170
- case "ZodLazy":
171
- case "lazy":
172
- return def.getter ? convert(def.getter()) : { type: "object" };
173
-
174
- case "ZodEffects":
175
- case "pipe": {
176
- // v3: ZodEffects wraps schema in _def.schema
177
- // v4: pipe wraps in _def.in (input schema)
178
- const innerSchema = def.schema ?? def.in;
179
- return innerSchema ? convert(innerSchema) : { type: "object" };
180
- }
181
-
182
- default:
183
- return { type: "object" };
68
+ if (isRawZodSchema(schema)) {
69
+ return schemaToJsonSchema(wrapRawZod(schema));
184
70
  }
71
+ throw new Error("Invalid Zod schema: missing _def property");
185
72
  }
186
73
 
187
- function unwrapSchema(
188
- schema: z.ZodTypeAny,
189
- ): { schema: z.ZodTypeAny; nullable: boolean; optional: boolean } {
190
- let current: z.ZodTypeAny = schema;
191
- let nullable = false;
192
- let optional = false;
193
-
194
- while (true) {
195
- const tag = getTypeTag(current);
196
- const def = getDef(current);
197
-
198
- switch (tag) {
199
- case "ZodNullable":
200
- case "nullable":
201
- nullable = true;
202
- current = (def.innerType ?? def.schema)!;
203
- break;
204
-
205
- case "ZodOptional":
206
- case "optional":
207
- optional = true;
208
- current = (def.innerType ?? def.schema)!;
209
- break;
210
-
211
- case "ZodEffects":
212
- case "pipe":
213
- current = def.schema ?? def.in ?? current;
214
- if (current === schema) return { schema: current, nullable, optional };
215
- break;
216
-
217
- default:
218
- return { schema: current, nullable, optional };
219
- }
74
+ /**
75
+ * Returns `true` when the schema permits `undefined`. Accepts both
76
+ * contract `Schema<T>` and raw zod schemas for the same compatibility
77
+ * reasons as `zodToJsonSchema` above.
78
+ */
79
+ export function isOptionalSchema(schema: unknown): boolean {
80
+ if (isContractSchema(schema)) {
81
+ return schemaIsOptional(schema);
82
+ }
83
+ if (isRawZodSchema(schema)) {
84
+ return schemaIsOptional(wrapRawZod(schema));
220
85
  }
86
+ return false;
221
87
  }