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
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/src/skill/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA2C7C;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAmD1C;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAkCnD;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAmDnD"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/src/skill/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA4E7C;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAiD1C;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA6BnD;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAqCnD"}
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * @module
10
10
  */
11
- import { z } from "zod";
11
+ import { defineSchema } from "../schemas/index.js";
12
12
  import { tool } from "../tool/factory.js";
13
13
  import { readTextFile } from "../platform/compat/fs.js";
14
14
  import { join } from "../platform/compat/path/index.js";
@@ -20,6 +20,26 @@ import { getSkillScriptExecutor } from "./executor.js";
20
20
  import { SKILL_ASSETS_DIR, SKILL_MD_FILENAME, SKILL_REFERENCES_DIR, SKILL_SCRIPTS_DIR, } from "./types.js";
21
21
  /** Maximum allowed script execution timeout in milliseconds (5 minutes) */
22
22
  const MAX_SCRIPT_TIMEOUT_MS = 300_000;
23
+ const getLoadSkillInputSchema = defineSchema((v) => v.object({
24
+ skillId: v.string().describe("The ID of the skill to load"),
25
+ }));
26
+ const getLoadSkillReferenceInputSchema = defineSchema((v) => v.object({
27
+ skillId: v.string().describe("The ID of the skill"),
28
+ reference: v.string().describe("Relative path to the reference file (e.g. 'references/CLAUSES.md')"),
29
+ }));
30
+ const getExecuteSkillScriptInputSchema = defineSchema((v) => v.object({
31
+ skillId: v.string().describe("The ID of the skill"),
32
+ script: v.string().describe("Relative path to the script (e.g. 'scripts/setup.sh')"),
33
+ args: v.array(v.string()).optional().describe("Arguments to pass to the script"),
34
+ env: v.record(v.string(), v.string()).optional().describe("Environment variables for the script"),
35
+ timeoutMs: v
36
+ .number()
37
+ .int()
38
+ .positive()
39
+ .max(MAX_SCRIPT_TIMEOUT_MS)
40
+ .optional()
41
+ .describe(`Optional execution timeout in milliseconds (max ${MAX_SCRIPT_TIMEOUT_MS})`),
42
+ }));
23
43
  /**
24
44
  * Read a file from a skill directory.
25
45
  * Uses skill.fsAdapter if available (VFS/cloud), otherwise falls back to compat readTextFile.
@@ -51,9 +71,7 @@ export function createLoadSkillTool() {
51
71
  id: "load-skill",
52
72
  description: "Load a skill's full instructions. Returns the skill's markdown instructions, " +
53
73
  "allowed tools policy, and lists of available reference files and scripts.",
54
- inputSchema: z.object({
55
- skillId: z.string().describe("The ID of the skill to load"),
56
- }),
74
+ inputSchema: getLoadSkillInputSchema(),
57
75
  execute: async (input) => {
58
76
  const skill = skillRegistry.get(input.skillId);
59
77
  if (!skill) {
@@ -93,10 +111,7 @@ export function createLoadSkillReferenceTool() {
93
111
  id: "load-skill-reference",
94
112
  description: "Read a reference file from a skill. Only files in the skill's " +
95
113
  "references/ and assets/ directories are accessible.",
96
- inputSchema: z.object({
97
- skillId: z.string().describe("The ID of the skill"),
98
- reference: z.string().describe("Relative path to the reference file (e.g. 'references/CLAUSES.md')"),
99
- }),
114
+ inputSchema: getLoadSkillReferenceInputSchema(),
100
115
  execute: async (input) => {
101
116
  const skill = skillRegistry.get(input.skillId);
102
117
  if (!skill) {
@@ -120,19 +135,7 @@ export function createExecuteSkillScriptTool() {
120
135
  return tool({
121
136
  id: "execute-skill-script",
122
137
  description: "Execute a script from a skill's scripts/ directory. Returns stdout, stderr, and exit code.",
123
- inputSchema: z.object({
124
- skillId: z.string().describe("The ID of the skill"),
125
- script: z.string().describe("Relative path to the script (e.g. 'scripts/setup.sh')"),
126
- args: z.array(z.string()).optional().describe("Arguments to pass to the script"),
127
- env: z.record(z.string(), z.string()).optional().describe("Environment variables for the script"),
128
- timeoutMs: z
129
- .number()
130
- .int()
131
- .positive()
132
- .max(MAX_SCRIPT_TIMEOUT_MS)
133
- .optional()
134
- .describe(`Optional execution timeout in milliseconds (max ${MAX_SCRIPT_TIMEOUT_MS})`),
135
- }),
138
+ inputSchema: getExecuteSkillScriptInputSchema(),
136
139
  execute: async (input) => {
137
140
  const skill = skillRegistry.get(input.skillId);
138
141
  if (!skill) {
@@ -1,5 +1,5 @@
1
1
  import type { Tool, ToolConfig, ToolExecutionContext } from "./types.js";
2
- import type { JsonSchema } from "./schema/json-schema.js";
2
+ import type { JsonSchema } from "../extensions/schema/index.js";
3
3
  export declare function tool<TInput = unknown, TOutput = unknown>(config: ToolConfig<TInput, TOutput>): Tool<TInput, TOutput>;
4
4
  export interface DynamicToolConfig {
5
5
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/tool/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAuI1D,wBAAgB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACtD,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAqCvB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACxF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAC7C,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CA4B7E"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/tool/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,+BAA+B,CAAC;AAyJxE,wBAAgB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACtD,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAqCvB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACxF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAC7C,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CA4B7E"}
@@ -1,6 +1,14 @@
1
1
  import { zodToJsonSchema } from "./schema/zod-json-schema.js";
2
2
  import { agentLogger } from "../utils/logger/logger.js";
3
3
  import { createError, getErrorMessage, toError } from "../errors/veryfront-error.js";
4
+ function isContractSchema(value) {
5
+ if (value === null || typeof value !== "object")
6
+ return false;
7
+ if ("__zod" in value)
8
+ return true;
9
+ return ("_output" in value &&
10
+ typeof value.parse === "function");
11
+ }
4
12
  function hasValidZodTypeName(schema) {
5
13
  if (schema === null || typeof schema !== "object")
6
14
  return false;
@@ -49,7 +57,10 @@ function logSchemaResult(logPrefix, toolId, method, schema) {
49
57
  agentLogger.info(`[${logPrefix}] ${method} schema for "${toolId}": ${Object.keys(schema.properties || {}).length} properties`);
50
58
  }
51
59
  function convertSchemaToJson(schema, toolId, logPrefix, permissive = false) {
52
- if (hasValidZodTypeName(schema)) {
60
+ // Modern path: contract Schema<T> (defineSchema-produced) — route through
61
+ // the SchemaValidator contract via zodToJsonSchema (which detects both
62
+ // wrapped and raw zod shapes).
63
+ if (isContractSchema(schema) || hasValidZodTypeName(schema)) {
53
64
  const result = tryConvert(() => zodToJsonSchema(schema), toolId, logPrefix, permissive, "input schema conversion failed");
54
65
  logSchemaResult(logPrefix, toolId, "Pre-converted", result);
55
66
  return result;
@@ -1,4 +1,4 @@
1
- import type { JsonSchema } from "./schema/json-schema.js";
1
+ import type { JsonSchema } from "../extensions/schema/index.js";
2
2
  import type { Tool, ToolConfig, ToolExecutionContext, ToolSet } from "./types.js";
3
3
  type HostToolExecute = {
4
4
  bivarianceHack: (input: unknown, options?: ToolExecutionContext) => Promise<unknown> | unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"host-tools.d.ts","sourceRoot":"","sources":["../../../src/src/tool/host-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAElF,KAAK,eAAe,GAAG;IACrB,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAChG,CAAC,gBAAgB,CAAC,CAAC;AAEpB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;IAC5C,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAQ7D,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACnD;AAwCD,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC;AACX,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC"}
1
+ {"version":3,"file":"host-tools.d.ts","sourceRoot":"","sources":["../../../src/src/tool/host-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAElF,KAAK,eAAe,GAAG;IACrB,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAChG,CAAC,gBAAgB,CAAC,CAAC;AAEpB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;IAC5C,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAQ7D,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACnD;AAmDD,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC;AACX,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC"}
@@ -3,9 +3,23 @@ import { dynamicTool, tool } from "./factory.js";
3
3
  function isRecord(value) {
4
4
  return typeof value === "object" && value !== null && !Array.isArray(value);
5
5
  }
6
- function isZodSchema(value) {
7
- if (!isRecord(value) || typeof value.parse !== "function")
6
+ /**
7
+ * Detect a contract `Schema<T>` (defineSchema-produced wrapper) or a raw
8
+ * zod schema. Both are accepted during the migration window so host tools
9
+ * can feed either into the framework without bespoke conversion.
10
+ */
11
+ function isSchemaLike(value) {
12
+ if (!isRecord(value))
8
13
  return false;
14
+ if (typeof value.parse !== "function")
15
+ return false;
16
+ // Contract Schema<T> brand from the ext-zod adapter.
17
+ if ("__zod" in value)
18
+ return true;
19
+ // defineSchema wrapper without a brand yet — match on the contract surface.
20
+ if ("_output" in value && typeof value.safeParse === "function")
21
+ return true;
22
+ // Raw zod schema (legacy host paths still hand us bare zod instances).
9
23
  if (!isRecord(value._def))
10
24
  return false;
11
25
  return typeof value._def.typeName === "string" || typeof value._def.type === "string";
@@ -13,7 +27,7 @@ function isZodSchema(value) {
13
27
  function isHostToolDefinition(value) {
14
28
  return (isRecord(value) &&
15
29
  typeof value.description === "string" &&
16
- isZodSchema(value.inputSchema) &&
30
+ isSchemaLike(value.inputSchema) &&
17
31
  typeof value.execute === "function");
18
32
  }
19
33
  function defaultToolCallId(toolName) {
@@ -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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/tool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EACV,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,8BAA8B,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACxF,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oCAAoC,EACpC,wCAAwC,EACxC,mCAAmC,EACnC,6BAA6B,EAC7B,uBAAuB,EACvB,gCAAgC,EAChC,uCAAuC,GACxC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,sCAAsC,EACtC,8BAA8B,EAC9B,qCAAqC,EACrC,uCAAuC,EACvC,kCAAkC,EAClC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,GAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/tool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EACV,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,8BAA8B,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACxF,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oCAAoC,EACpC,wCAAwC,EACxC,mCAAmC,EACnC,6BAA6B,EAC7B,uBAAuB,EACvB,gCAAgC,EAChC,uCAAuC,GACxC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,sCAAsC,EACtC,8BAA8B,EAC9B,qCAAqC,EACrC,uCAAuC,EACvC,kCAAkC,EAClC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,GAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
@@ -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 +1 @@
1
- {"version":3,"file":"remote-source-tools.d.ts","sourceRoot":"","sources":["../../../src/src/tool/remote-source-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE/F,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAUD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,OAAO,GAAE,IAAI,CAAC,gCAAgC,EAAE,SAAS,CAAM,GAC9D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAsBxC;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAKjD"}
1
+ {"version":3,"file":"remote-source-tools.d.ts","sourceRoot":"","sources":["../../../src/src/tool/remote-source-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE/F,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAkBD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,OAAO,GAAE,IAAI,CAAC,gCAAgC,EAAE,SAAS,CAAM,GAC9D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAsBxC;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAKjD"}
@@ -1,5 +1,12 @@
1
- import { z } from "zod";
1
+ import { defineSchema } from "../schemas/index.js";
2
2
  import { dynamicTool } from "./factory.js";
3
+ /**
4
+ * Permissive input schema used for remote tools whose JSON Schema is
5
+ * sourced from the remote and we only need a no-op contract `Schema<T>` to
6
+ * satisfy the runtime input-validation pass. Equivalent to
7
+ * `z.object({}).passthrough()`.
8
+ */
9
+ const getRemoteToolPassthroughSchema = defineSchema((v) => v.object({}).passthrough());
3
10
  function toToolInputRecord(input) {
4
11
  if (typeof input !== "object" || input === null || Array.isArray(input)) {
5
12
  return {};
@@ -14,7 +21,7 @@ export function createToolsFromRemoteDefinitions(source, definitions, options =
14
21
  dynamicTool({
15
22
  id: toolName,
16
23
  description: definition.description,
17
- inputSchema: z.object({}).passthrough(),
24
+ inputSchema: getRemoteToolPassthroughSchema(),
18
25
  inputSchemaJson: definition.parameters,
19
26
  mcp: {
20
27
  title: definition.title,
@@ -1,16 +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
+ export type { JsonSchema } from "../../extensions/schema/json-schema.js";
16
9
  //# sourceMappingURL=json-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../../../src/src/tool/schema/json-schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../../../src/src/tool/schema/json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC"}
@@ -1 +1,8 @@
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
+ */
1
8
  export {};
@@ -1,5 +1,34 @@
1
- import type { z } from "zod";
2
- import type { JsonSchema } from "./json-schema.js";
3
- export declare function zodToJsonSchema(schema: z.ZodTypeAny): JsonSchema;
4
- export declare function isOptionalSchema(schema: z.ZodTypeAny): boolean;
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
+ import type { JsonSchema } from "../../extensions/schema/index.js";
20
+ /**
21
+ * Convert a `Schema<T>` (or, transitionally, a raw zod schema) into a
22
+ * JSON Schema document.
23
+ *
24
+ * Throws if the input is neither a contract schema nor a raw zod schema —
25
+ * matches the pre-B2 behavior of the original `zodToJsonSchema` guard.
26
+ */
27
+ export declare function zodToJsonSchema(schema: unknown): JsonSchema;
28
+ /**
29
+ * Returns `true` when the schema permits `undefined`. Accepts both
30
+ * contract `Schema<T>` and raw zod schemas for the same compatibility
31
+ * reasons as `zodToJsonSchema` above.
32
+ */
33
+ export declare function isOptionalSchema(schema: unknown): boolean;
5
34
  //# sourceMappingURL=zod-json-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-json-schema.d.ts","sourceRoot":"","sources":["../../../../src/src/tool/schema/zod-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA0CnD,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,CAUhE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,OAAO,CAE9D"}
1
+ {"version":3,"file":"zod-json-schema.d.ts","sourceRoot":"","sources":["../../../../src/src/tool/schema/zod-json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,kCAAkC,CAAC;AAqC3E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAQ3D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAQzD"}
@@ -1,169 +1,80 @@
1
- import { INVALID_ARGUMENT } from "../../errors/index.js";
2
- const LITERAL_TYPE_MAP = {
3
- string: "string",
4
- number: "number",
5
- boolean: "boolean",
6
- };
7
- function getLiteralType(value) {
8
- return LITERAL_TYPE_MAP[typeof value];
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
+ import { isOptionalSchema as schemaIsOptional, schemaToJsonSchema, } from "../../schemas/json-schema.js";
20
+ /** Detect contract `Schema<T>` (carries a `__zod` brand from the ext-zod adapter). */
21
+ function isContractSchema(value) {
22
+ if (value === null || typeof value !== "object")
23
+ return false;
24
+ if ("__zod" in value)
25
+ return true;
26
+ // Fallback: defineSchema-produced wrappers expose `_output`, `parse`, and
27
+ // `safeParse`. Some test doubles may construct these directly.
28
+ return ("_output" in value &&
29
+ typeof value.parse === "function" &&
30
+ typeof value.safeParse === "function");
9
31
  }
10
- function getDef(schema) {
11
- return schema._def;
32
+ /** Detect a raw zod schema: object with `_def` carrying `typeName` (v3) or `type` (v4). */
33
+ function isRawZodSchema(value) {
34
+ if (value === null || typeof value !== "object")
35
+ return false;
36
+ if (!("_def" in value))
37
+ return false;
38
+ const def = value._def;
39
+ if (!def || typeof def !== "object")
40
+ return false;
41
+ return typeof def.typeName === "string" || typeof def.type === "string";
12
42
  }
13
- /** Get the internal type tag from a zod schema (_def.typeName in v3, _def.type in v4). */
14
- function getTypeTag(schema) {
15
- const def = getDef(schema);
16
- return def.typeName ?? def.type;
43
+ /**
44
+ * Adapter that wraps a raw zod schema in the contract's `Schema<unknown>`
45
+ * shape so the contract's `toJsonSchema` / `isOptional` can unwrap it via
46
+ * the `__zod` brand.
47
+ */
48
+ function wrapRawZod(value) {
49
+ return { __zod: value };
17
50
  }
51
+ /**
52
+ * Convert a `Schema<T>` (or, transitionally, a raw zod schema) into a
53
+ * JSON Schema document.
54
+ *
55
+ * Throws if the input is neither a contract schema nor a raw zod schema —
56
+ * matches the pre-B2 behavior of the original `zodToJsonSchema` guard.
57
+ */
18
58
  export function zodToJsonSchema(schema) {
19
- // Guard against invalid schemas (can happen with different zod instances in npm bundle)
20
- if (!schema || typeof schema !== "object" || !("_def" in schema)) {
21
- throw INVALID_ARGUMENT.create({ detail: "Invalid Zod schema: missing _def property" });
59
+ if (isContractSchema(schema)) {
60
+ return schemaToJsonSchema(schema);
22
61
  }
23
- const { schema: unwrapped, nullable } = unwrapSchema(schema);
24
- const json = convert(unwrapped);
25
- return nullable ? { anyOf: [json, { type: "null" }] } : json;
62
+ if (isRawZodSchema(schema)) {
63
+ return schemaToJsonSchema(wrapRawZod(schema));
64
+ }
65
+ throw new Error("Invalid Zod schema: missing _def property");
26
66
  }
67
+ /**
68
+ * Returns `true` when the schema permits `undefined`. Accepts both
69
+ * contract `Schema<T>` and raw zod schemas for the same compatibility
70
+ * reasons as `zodToJsonSchema` above.
71
+ */
27
72
  export function isOptionalSchema(schema) {
28
- return unwrapSchema(schema).optional;
29
- }
30
- function convert(schema) {
31
- const tag = getTypeTag(schema);
32
- const def = getDef(schema);
33
- switch (tag) {
34
- case "ZodString":
35
- case "string":
36
- return { type: "string" };
37
- case "ZodNumber":
38
- case "number":
39
- return { type: "number" };
40
- case "ZodBoolean":
41
- case "boolean":
42
- return { type: "boolean" };
43
- case "ZodBigInt":
44
- case "bigint":
45
- return { type: "integer" };
46
- case "ZodLiteral":
47
- case "literal": {
48
- // v3: _def.value, v4: _def.values (array of accepted values)
49
- const literal = def.value ?? (Array.isArray(def.values) ? def.values[0] : def.values);
50
- return { const: literal, type: getLiteralType(literal) };
51
- }
52
- case "ZodEnum":
53
- case "ZodNativeEnum":
54
- case "enum": {
55
- // v3: _def.values (array), v4: _def.entries (object {key: value})
56
- const values = def.values ?? (def.entries ? Object.values(def.entries) : []);
57
- if (Array.isArray(values)) {
58
- return { type: "string", enum: values };
59
- }
60
- // Native enum: filter out reverse-mapped numeric keys
61
- return {
62
- enum: Object.values(values).filter((value) => typeof value !== "number"),
63
- };
64
- }
65
- case "ZodObject":
66
- case "object": {
67
- const shape = typeof def.shape === "function" ? def.shape() : def.shape;
68
- const properties = {};
69
- const required = [];
70
- for (const [key, value] of Object.entries(shape ?? {})) {
71
- const zodSchema = value;
72
- properties[key] = zodToJsonSchema(zodSchema);
73
- if (!isOptionalSchema(zodSchema))
74
- required.push(key);
75
- }
76
- const json = { type: "object", properties };
77
- if (required.length)
78
- json.required = required;
79
- return json;
80
- }
81
- case "ZodArray":
82
- case "array": {
83
- // v3: _def.type (item schema), v4: _def.element (item schema)
84
- const itemType = def.element ?? def.type;
85
- if (!itemType || typeof itemType === "string")
86
- return { type: "array" };
87
- return { type: "array", items: zodToJsonSchema(itemType) };
88
- }
89
- case "ZodTuple":
90
- case "tuple": {
91
- const items = def.items ?? [];
92
- return {
93
- type: "array",
94
- prefixItems: items.map((item) => zodToJsonSchema(item)),
95
- minItems: items.length,
96
- maxItems: items.length,
97
- };
98
- }
99
- case "ZodUnion":
100
- case "ZodDiscriminatedUnion":
101
- case "union": {
102
- const options = def.options ?? [];
103
- const optionArray = options instanceof Map ? Array.from(options.values()) : options;
104
- return { anyOf: optionArray.map((option) => zodToJsonSchema(option)) };
105
- }
106
- case "ZodRecord":
107
- case "record": {
108
- const valueSchema = def.valueType ?? def.element;
109
- if (!valueSchema)
110
- return { type: "object" };
111
- return { type: "object", additionalProperties: zodToJsonSchema(valueSchema) };
112
- }
113
- case "ZodDefault":
114
- case "default": {
115
- const innerType = def.innerType ?? def.schema;
116
- if (!innerType)
117
- return { type: "object" };
118
- const inner = zodToJsonSchema(innerType);
119
- const defaultValue = typeof def.defaultValue === "function"
120
- ? def.defaultValue()
121
- : def.defaultValue;
122
- if (typeof inner === "object" && !("anyOf" in inner) && defaultValue !== undefined) {
123
- inner.default = defaultValue;
124
- }
125
- return inner;
126
- }
127
- case "ZodLazy":
128
- case "lazy":
129
- return def.getter ? convert(def.getter()) : { type: "object" };
130
- case "ZodEffects":
131
- case "pipe": {
132
- // v3: ZodEffects wraps schema in _def.schema
133
- // v4: pipe wraps in _def.in (input schema)
134
- const innerSchema = def.schema ?? def.in;
135
- return innerSchema ? convert(innerSchema) : { type: "object" };
136
- }
137
- default:
138
- return { type: "object" };
73
+ if (isContractSchema(schema)) {
74
+ return schemaIsOptional(schema);
139
75
  }
140
- }
141
- function unwrapSchema(schema) {
142
- let current = schema;
143
- let nullable = false;
144
- let optional = false;
145
- while (true) {
146
- const tag = getTypeTag(current);
147
- const def = getDef(current);
148
- switch (tag) {
149
- case "ZodNullable":
150
- case "nullable":
151
- nullable = true;
152
- current = (def.innerType ?? def.schema);
153
- break;
154
- case "ZodOptional":
155
- case "optional":
156
- optional = true;
157
- current = (def.innerType ?? def.schema);
158
- break;
159
- case "ZodEffects":
160
- case "pipe":
161
- current = def.schema ?? def.in ?? current;
162
- if (current === schema)
163
- return { schema: current, nullable, optional };
164
- break;
165
- default:
166
- return { schema: current, nullable, optional };
167
- }
76
+ if (isRawZodSchema(schema)) {
77
+ return schemaIsOptional(wrapRawZod(schema));
168
78
  }
79
+ return false;
169
80
  }