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,93 +1,93 @@
1
- import { z } from "zod";
1
+ import { defineSchema } from "../../schemas/index.js";
2
2
  import { createError, toError } from "../../errors/veryfront-error.js";
3
3
  // Sub-schemas
4
- const corsSchema = z.union([z.boolean(), z.object({ origin: z.string().optional() }).strict()]);
5
- const basicAuthSchema = z.object({
6
- username: z.string(),
7
- password: z.string(),
8
- realm: z.string().optional(),
9
- });
10
- const bearerAuthSchema = z.object({
11
- token: z.string(),
12
- });
13
- const embeddingDimensionSchema = z.union([
14
- z.literal(768),
15
- z.literal(1024),
16
- z.literal(1536),
17
- z.literal(3072),
18
- z.literal(4096),
19
- ]);
4
+ const getCorsSchema = defineSchema((v) => v.union([v.boolean(), v.object({ origin: v.string().optional() }).strict()]));
5
+ const getBasicAuthSchema = defineSchema((v) => v.object({
6
+ username: v.string(),
7
+ password: v.string(),
8
+ realm: v.string().optional(),
9
+ }));
10
+ const getBearerAuthSchema = defineSchema((v) => v.object({
11
+ token: v.string(),
12
+ }));
13
+ const getEmbeddingDimensionSchema = defineSchema((v) => v.union([
14
+ v.literal(768),
15
+ v.literal(1024),
16
+ v.literal(1536),
17
+ v.literal(3072),
18
+ v.literal(4096),
19
+ ]));
20
20
  // Main config schema
21
- export const veryfrontConfigSchema = z
21
+ export const getVeryfrontConfigSchema = defineSchema((v) => v
22
22
  .object({
23
- projectSlug: z.string().optional(),
24
- title: z.string().optional(),
25
- description: z.string().optional(),
26
- react: z
23
+ projectSlug: v.string().optional(),
24
+ title: v.string().optional(),
25
+ description: v.string().optional(),
26
+ react: v
27
27
  .object({
28
28
  /** React version to use (e.g., "18.3.1", "19.1.1"). Defaults to auto-detect from package.json or 19.1.1 */
29
- version: z.string().optional(),
29
+ version: v.string().optional(),
30
30
  })
31
31
  .partial()
32
32
  .optional(),
33
- directories: z
33
+ directories: v
34
34
  .object({
35
- app: z.string().optional(),
36
- pages: z.string().optional(),
37
- components: z.array(z.string()).optional(),
38
- ai: z.string().optional(),
35
+ app: v.string().optional(),
36
+ pages: v.string().optional(),
37
+ components: v.array(v.string()).optional(),
38
+ ai: v.string().optional(),
39
39
  })
40
40
  .partial()
41
41
  .optional(),
42
- experimental: z
42
+ experimental: v
43
43
  .object({
44
- esmLayouts: z.boolean().optional(),
45
- precompileMDX: z.boolean().optional(),
46
- rsc: z.boolean().optional(),
44
+ esmLayouts: v.boolean().optional(),
45
+ precompileMDX: v.boolean().optional(),
46
+ rsc: v.boolean().optional(),
47
47
  })
48
48
  .partial()
49
49
  .optional(),
50
- router: z.enum(["app", "pages"]).optional(),
50
+ router: v.enum(["app", "pages"]).optional(),
51
51
  /** Path to the layout component (e.g., 'components/layout.tsx'), or false to disable */
52
- layout: z.union([z.string(), z.literal(false)]).optional(),
52
+ layout: v.union([v.string(), v.literal(false)]).optional(),
53
53
  /** Path to the app wrapper component (e.g., 'components/app.tsx'), or false to disable */
54
- app: z.union([z.string(), z.literal(false)]).optional(),
55
- theme: z.object({ colors: z.record(z.string(), z.string()).optional() }).partial().optional(),
56
- build: z
54
+ app: v.union([v.string(), v.literal(false)]).optional(),
55
+ theme: v.object({ colors: v.record(v.string(), v.string()).optional() }).partial().optional(),
56
+ build: v
57
57
  .object({
58
- outDir: z.string().optional(),
59
- trailingSlash: z.boolean().optional(),
60
- esbuild: z
58
+ outDir: v.string().optional(),
59
+ trailingSlash: v.boolean().optional(),
60
+ esbuild: v
61
61
  .object({
62
- wasmURL: z.string().url().optional(),
63
- worker: z.boolean().optional(),
62
+ wasmURL: v.string().url().optional(),
63
+ worker: v.boolean().optional(),
64
64
  })
65
65
  .partial()
66
66
  .optional(),
67
67
  })
68
68
  .partial()
69
69
  .optional(),
70
- cache: z
70
+ cache: v
71
71
  .object({
72
- dir: z.string().optional(),
73
- bundleManifest: z
72
+ dir: v.string().optional(),
73
+ bundleManifest: v
74
74
  .object({
75
- type: z.enum(["redis", "kv", "memory"]).optional(),
76
- redisUrl: z.string().optional(),
77
- keyPrefix: z.string().optional(),
78
- ttl: z.number().int().positive().optional(),
79
- enabled: z.boolean().optional(),
75
+ type: v.enum(["redis", "kv", "memory"]).optional(),
76
+ redisUrl: v.string().optional(),
77
+ keyPrefix: v.string().optional(),
78
+ ttl: v.number().int().positive().optional(),
79
+ enabled: v.boolean().optional(),
80
80
  })
81
81
  .partial()
82
82
  .optional(),
83
- render: z
83
+ render: v
84
84
  .object({
85
- type: z.enum(["memory", "filesystem", "kv", "redis"]).optional(),
86
- ttl: z.number().optional(),
87
- maxEntries: z.number().optional(),
88
- kvPath: z.string().optional(),
89
- redisUrl: z.string().optional(),
90
- redisKeyPrefix: z.string().optional(),
85
+ type: v.enum(["memory", "filesystem", "kv", "redis"]).optional(),
86
+ ttl: v.number().optional(),
87
+ maxEntries: v.number().optional(),
88
+ kvPath: v.string().optional(),
89
+ redisUrl: v.string().optional(),
90
+ redisKeyPrefix: v.string().optional(),
91
91
  })
92
92
  .partial()
93
93
  .optional(),
@@ -109,53 +109,53 @@ export const veryfrontConfigSchema = z
109
109
  * // Only vary cache by specific params
110
110
  * cache: { queryParams: { policy: "include-list", params: ["page", "sort"] } }
111
111
  */
112
- queryParams: z
112
+ queryParams: v
113
113
  .object({
114
- policy: z.enum(["ignore-all", "include-all", "include-list", "exclude-list"])
114
+ policy: v.enum(["ignore-all", "include-all", "include-list", "exclude-list"])
115
115
  .optional(),
116
- params: z.array(z.string()).optional(),
116
+ params: v.array(v.string()).optional(),
117
117
  })
118
118
  .partial()
119
119
  .optional(),
120
120
  })
121
121
  .partial()
122
122
  .optional(),
123
- dev: z
123
+ dev: v
124
124
  .object({
125
- port: z.number().int().positive().optional(),
126
- host: z.string().optional(),
127
- open: z.boolean().optional(),
128
- hmr: z.boolean().optional(),
129
- hmrPort: z.number().optional(),
130
- components: z.array(z.string()).optional(),
131
- moduleServerUrl: z.string().optional(),
125
+ port: v.number().int().positive().optional(),
126
+ host: v.string().optional(),
127
+ open: v.boolean().optional(),
128
+ hmr: v.boolean().optional(),
129
+ hmrPort: v.number().optional(),
130
+ components: v.array(v.string()).optional(),
131
+ moduleServerUrl: v.string().optional(),
132
132
  })
133
133
  .partial()
134
134
  .optional(),
135
- resolve: z
135
+ resolve: v
136
136
  .object({
137
- importMap: z
137
+ importMap: v
138
138
  .object({
139
- imports: z.record(z.string(), z.string()).optional(),
140
- scopes: z.record(z.string(), z.record(z.string(), z.string())).optional(),
139
+ imports: v.record(v.string(), v.string()).optional(),
140
+ scopes: v.record(v.string(), v.record(v.string(), v.string())).optional(),
141
141
  })
142
142
  .partial()
143
143
  .optional(),
144
144
  })
145
145
  .partial()
146
146
  .optional(),
147
- security: z
147
+ security: v
148
148
  .object({
149
- auth: z
149
+ auth: v
150
150
  .object({
151
- basic: basicAuthSchema.optional(),
152
- bearer: bearerAuthSchema.optional(),
151
+ basic: getBasicAuthSchema().optional(),
152
+ bearer: getBearerAuthSchema().optional(),
153
153
  })
154
154
  .partial()
155
155
  .optional(),
156
- csp: z.record(z.string(), z.array(z.string())).optional(),
157
- remoteHosts: z.array(z.string().url()).optional(),
158
- cors: corsSchema.optional(),
156
+ csp: v.record(v.string(), v.array(v.string())).optional(),
157
+ remoteHosts: v.array(v.string().url()).optional(),
158
+ cors: getCorsSchema().optional(),
159
159
  /**
160
160
  * CSRF protection using the double-submit cookie pattern.
161
161
  * Set `true` for defaults, or pass an object to customize.
@@ -167,105 +167,105 @@ export const veryfrontConfigSchema = z
167
167
  * Server Actions (`/_veryfront/rsc/action`) are CSRF-protected;
168
168
  * client code must forward the cookie value as the header.
169
169
  */
170
- csrf: z.union([
171
- z.boolean(),
172
- z.object({
173
- cookieName: z.string().optional(),
174
- headerName: z.string().optional(),
175
- excludePaths: z.array(z.string()).optional(),
176
- ttlSec: z.number().int().positive().optional(),
170
+ csrf: v.union([
171
+ v.boolean(),
172
+ v.object({
173
+ cookieName: v.string().optional(),
174
+ headerName: v.string().optional(),
175
+ excludePaths: v.array(v.string()).optional(),
176
+ ttlSec: v.number().int().positive().optional(),
177
177
  }).strict(),
178
178
  ]).optional(),
179
- coop: z.enum(["same-origin", "same-origin-allow-popups", "unsafe-none"]).optional(),
180
- corp: z.enum(["same-origin", "same-site", "cross-origin"]).optional(),
181
- coep: z.enum(["require-corp", "unsafe-none"]).optional(),
179
+ coop: v.enum(["same-origin", "same-origin-allow-popups", "unsafe-none"]).optional(),
180
+ corp: v.enum(["same-origin", "same-site", "cross-origin"]).optional(),
181
+ coep: v.enum(["require-corp", "unsafe-none"]).optional(),
182
182
  /**
183
183
  * Restrict module imports to specific directories (opt-in security).
184
184
  * When not set, users can import from any directory in the project.
185
185
  * When set, only imports from these directories are allowed.
186
186
  * @example ["app", "pages", "components", "lib", "src", "utils"]
187
187
  */
188
- allowedImportDirs: z.array(z.string()).optional(),
188
+ allowedImportDirs: v.array(v.string()).optional(),
189
189
  })
190
190
  .partial()
191
191
  .optional(),
192
- middleware: z
192
+ middleware: v
193
193
  .object({
194
- custom: z.array(z.any()).optional(),
194
+ custom: v.array(v.any()).optional(),
195
195
  })
196
196
  .partial()
197
197
  .optional(),
198
- theming: z
198
+ theming: v
199
199
  .object({
200
- brandName: z.string().optional(),
201
- logoHtml: z.string().optional(),
200
+ brandName: v.string().optional(),
201
+ logoHtml: v.string().optional(),
202
202
  })
203
203
  .partial()
204
204
  .optional(),
205
- assetPipeline: z
205
+ assetPipeline: v
206
206
  .object({
207
- images: z
207
+ images: v
208
208
  .object({
209
- enabled: z.boolean().optional(),
210
- formats: z.array(z.enum(["webp", "avif", "jpeg", "png"])).optional(),
211
- sizes: z.array(z.number().int().positive()).optional(),
212
- quality: z.number().int().min(1).max(100).optional(),
213
- inputDir: z.string().optional(),
214
- outputDir: z.string().optional(),
215
- preserveOriginal: z.boolean().optional(),
209
+ enabled: v.boolean().optional(),
210
+ formats: v.array(v.enum(["webp", "avif", "jpeg", "png"])).optional(),
211
+ sizes: v.array(v.number().int().positive()).optional(),
212
+ quality: v.number().int().min(1).max(100).optional(),
213
+ inputDir: v.string().optional(),
214
+ outputDir: v.string().optional(),
215
+ preserveOriginal: v.boolean().optional(),
216
216
  })
217
217
  .partial()
218
218
  .optional(),
219
- css: z
219
+ css: v
220
220
  .object({
221
- enabled: z.boolean().optional(),
222
- minify: z.boolean().optional(),
223
- autoprefixer: z.boolean().optional(),
224
- purge: z.boolean().optional(),
225
- criticalCSS: z.boolean().optional(),
226
- inputDir: z.string().optional(),
227
- outputDir: z.string().optional(),
228
- browsers: z.array(z.string()).optional(),
229
- purgeContent: z.array(z.string()).optional(),
230
- sourceMap: z.boolean().optional(),
221
+ enabled: v.boolean().optional(),
222
+ minify: v.boolean().optional(),
223
+ autoprefixer: v.boolean().optional(),
224
+ purge: v.boolean().optional(),
225
+ criticalCSS: v.boolean().optional(),
226
+ inputDir: v.string().optional(),
227
+ outputDir: v.string().optional(),
228
+ browsers: v.array(v.string()).optional(),
229
+ purgeContent: v.array(v.string()).optional(),
230
+ sourceMap: v.boolean().optional(),
231
231
  })
232
232
  .partial()
233
233
  .optional(),
234
234
  })
235
235
  .partial()
236
236
  .optional(),
237
- observability: z
237
+ observability: v
238
238
  .object({
239
- tracing: z
239
+ tracing: v
240
240
  .object({
241
- enabled: z.boolean().optional(),
242
- exporter: z.enum(["jaeger", "zipkin", "otlp", "console"]).optional(),
243
- endpoint: z.string().optional(),
244
- serviceName: z.string().optional(),
245
- sampleRate: z.number().min(0).max(1).optional(),
241
+ enabled: v.boolean().optional(),
242
+ exporter: v.enum(["jaeger", "zipkin", "otlp", "console"]).optional(),
243
+ endpoint: v.string().optional(),
244
+ serviceName: v.string().optional(),
245
+ sampleRate: v.number().min(0).max(1).optional(),
246
246
  })
247
247
  .partial()
248
248
  .optional(),
249
- metrics: z
249
+ metrics: v
250
250
  .object({
251
- enabled: z.boolean().optional(),
252
- exporter: z.enum(["prometheus", "otlp", "console"]).optional(),
253
- endpoint: z.string().optional(),
254
- prefix: z.string().optional(),
255
- collectInterval: z.number().int().positive().optional(),
251
+ enabled: v.boolean().optional(),
252
+ exporter: v.enum(["prometheus", "otlp", "console"]).optional(),
253
+ endpoint: v.string().optional(),
254
+ prefix: v.string().optional(),
255
+ collectInterval: v.number().int().positive().optional(),
256
256
  })
257
257
  .partial()
258
258
  .optional(),
259
- logging: z
259
+ logging: v
260
260
  .object({
261
- file: z
261
+ file: v
262
262
  .object({
263
- enabled: z.boolean().optional(),
264
- path: z.string().optional(),
265
- maxSize: z.union([z.number().int().positive(), z.string()]).optional(),
266
- maxFiles: z.number().int().positive().optional(),
267
- level: z.enum(["debug", "info", "warn", "error"]).optional(),
268
- format: z.enum(["json", "text"]).optional(),
263
+ enabled: v.boolean().optional(),
264
+ path: v.string().optional(),
265
+ maxSize: v.union([v.number().int().positive(), v.string()]).optional(),
266
+ maxFiles: v.number().int().positive().optional(),
267
+ level: v.enum(["debug", "info", "warn", "error"]).optional(),
268
+ format: v.enum(["json", "text"]).optional(),
269
269
  })
270
270
  .partial()
271
271
  .optional(),
@@ -275,96 +275,97 @@ export const veryfrontConfigSchema = z
275
275
  })
276
276
  .partial()
277
277
  .optional(),
278
- search: z
278
+ search: v
279
279
  .object({
280
- enabled: z.boolean().optional(),
281
- embedding: z
280
+ enabled: v.boolean().optional(),
281
+ embedding: v
282
282
  .object({
283
- provider: z.enum(["openai", "cohere", "voyageai", "custom"]).optional(),
284
- model: z.string().optional(),
285
- dimension: embeddingDimensionSchema.optional(),
286
- apiKey: z.string().optional(),
287
- batchSize: z.number().int().positive().optional(),
283
+ provider: v.enum(["openai", "cohere", "voyageai", "custom"]).optional(),
284
+ model: v.string().optional(),
285
+ dimension: getEmbeddingDimensionSchema().optional(),
286
+ apiKey: v.string().optional(),
287
+ batchSize: v.number().int().positive().optional(),
288
288
  })
289
289
  .partial()
290
290
  .optional(),
291
- chunking: z
291
+ chunking: v
292
292
  .object({
293
- maxTokens: z.number().int().positive().optional(),
294
- overlapTokens: z.number().int().min(0).optional(),
295
- include: z.array(z.string()).optional(),
296
- exclude: z.array(z.string()).optional(),
293
+ maxTokens: v.number().int().positive().optional(),
294
+ overlapTokens: v.number().int().min(0).optional(),
295
+ include: v.array(v.string()).optional(),
296
+ exclude: v.array(v.string()).optional(),
297
297
  })
298
298
  .partial()
299
299
  .optional(),
300
- autoIndex: z.boolean().optional(),
300
+ autoIndex: v.boolean().optional(),
301
301
  })
302
302
  .partial()
303
303
  .optional(),
304
- fs: z
304
+ fs: v
305
305
  .object({
306
- type: z.enum(["local", "veryfront-api", "memory", "github"]).optional(),
307
- local: z.object({ baseDir: z.string().optional() }).partial().optional(),
308
- veryfront: z
306
+ type: v.enum(["local", "veryfront-api", "memory", "github"]).optional(),
307
+ local: v.object({ baseDir: v.string().optional() }).partial().optional(),
308
+ veryfront: v
309
309
  .object({
310
- apiBaseUrl: z.string().url(),
310
+ apiBaseUrl: v.string().url(),
311
311
  /** API token - optional in proxy mode (token provided per-request via headers) */
312
- apiToken: z.string().optional(),
312
+ apiToken: v.string().optional(),
313
313
  /** Project slug - optional in proxy mode (slug provided per-request via headers) */
314
- projectSlug: z.string().optional(),
314
+ projectSlug: v.string().optional(),
315
315
  /** Enable proxy mode for multi-project handling (tokens/slugs from headers) */
316
- proxyMode: z.boolean().optional(),
316
+ proxyMode: v.boolean().optional(),
317
317
  /** Production mode - fetch from releases instead of draft files */
318
- productionMode: z.boolean().optional(),
319
- cache: z
318
+ productionMode: v.boolean().optional(),
319
+ cache: v
320
320
  .object({
321
- enabled: z.boolean().optional(),
322
- ttl: z.number().int().positive().optional(),
323
- maxSize: z.number().int().positive().optional(),
321
+ enabled: v.boolean().optional(),
322
+ ttl: v.number().int().positive().optional(),
323
+ maxSize: v.number().int().positive().optional(),
324
324
  })
325
325
  .partial()
326
326
  .optional(),
327
- retry: z
327
+ retry: v
328
328
  .object({
329
- maxRetries: z.number().int().min(0).optional(),
330
- initialDelay: z.number().int().positive().optional(),
331
- maxDelay: z.number().int().positive().optional(),
329
+ maxRetries: v.number().int().min(0).optional(),
330
+ initialDelay: v.number().int().positive().optional(),
331
+ maxDelay: v.number().int().positive().optional(),
332
332
  })
333
333
  .partial()
334
334
  .optional(),
335
335
  })
336
336
  .partial()
337
337
  .optional(),
338
- memory: z
338
+ memory: v
339
339
  .object({
340
- files: z.record(z.string(), z.union([z.string(), z.instanceof(Uint8Array)])).optional(),
340
+ files: v.record(v.string(), v.union([v.string(), v.instanceof(Uint8Array)]))
341
+ .optional(),
341
342
  })
342
343
  .partial()
343
344
  .optional(),
344
- github: z
345
+ github: v
345
346
  .object({
346
347
  /** GitHub Personal Access Token */
347
- token: z.string(),
348
+ token: v.string(),
348
349
  /** Repository owner (user or organization) */
349
- owner: z.string(),
350
+ owner: v.string(),
350
351
  /** Repository name */
351
- repo: z.string(),
352
+ repo: v.string(),
352
353
  /** Branch, tag, or commit SHA (default: "main") */
353
- ref: z.string().optional(),
354
- cache: z
354
+ ref: v.string().optional(),
355
+ cache: v
355
356
  .object({
356
- enabled: z.boolean().optional(),
357
- ttl: z.number().int().positive().optional(),
358
- maxSize: z.number().int().positive().optional(),
359
- maxMemory: z.number().int().positive().optional(),
357
+ enabled: v.boolean().optional(),
358
+ ttl: v.number().int().positive().optional(),
359
+ maxSize: v.number().int().positive().optional(),
360
+ maxMemory: v.number().int().positive().optional(),
360
361
  })
361
362
  .partial()
362
363
  .optional(),
363
- retry: z
364
+ retry: v
364
365
  .object({
365
- maxRetries: z.number().int().min(0).optional(),
366
- initialDelay: z.number().int().positive().optional(),
367
- maxDelay: z.number().int().positive().optional(),
366
+ maxRetries: v.number().int().min(0).optional(),
367
+ initialDelay: v.number().int().positive().optional(),
368
+ maxDelay: v.number().int().positive().optional(),
368
369
  })
369
370
  .partial()
370
371
  .optional(),
@@ -373,125 +374,125 @@ export const veryfrontConfigSchema = z
373
374
  })
374
375
  .partial()
375
376
  .optional(),
376
- ai: z
377
+ ai: v
377
378
  .object({
378
- enabled: z.boolean().optional(),
379
- providers: z.record(z.string(), z.object({
380
- apiKey: z.string().optional(),
381
- baseURL: z.string().optional(),
382
- defaultModel: z.string().optional(),
383
- organization: z.string().optional(),
379
+ enabled: v.boolean().optional(),
380
+ providers: v.record(v.string(), v.object({
381
+ apiKey: v.string().optional(),
382
+ baseURL: v.string().optional(),
383
+ defaultModel: v.string().optional(),
384
+ organization: v.string().optional(),
384
385
  }).passthrough()).optional(),
385
- tools: z
386
+ tools: v
386
387
  .object({
387
- discovery: z
388
+ discovery: v
388
389
  .object({
389
- enabled: z.boolean().optional(),
390
- paths: z.array(z.string()).optional(),
390
+ enabled: v.boolean().optional(),
391
+ paths: v.array(v.string()).optional(),
391
392
  })
392
393
  .partial()
393
394
  .optional(),
394
395
  })
395
396
  .partial()
396
397
  .optional(),
397
- agents: z
398
+ agents: v
398
399
  .object({
399
- discovery: z
400
+ discovery: v
400
401
  .object({
401
- enabled: z.boolean().optional(),
402
- paths: z.array(z.string()).optional(),
402
+ enabled: v.boolean().optional(),
403
+ paths: v.array(v.string()).optional(),
403
404
  })
404
405
  .partial()
405
406
  .optional(),
406
407
  })
407
408
  .partial()
408
409
  .optional(),
409
- skills: z
410
+ skills: v
410
411
  .object({
411
- discovery: z
412
+ discovery: v
412
413
  .object({
413
- enabled: z.boolean().optional(),
414
- paths: z.array(z.string()).optional(),
414
+ enabled: v.boolean().optional(),
415
+ paths: v.array(v.string()).optional(),
415
416
  })
416
417
  .partial()
417
418
  .optional(),
418
419
  })
419
420
  .partial()
420
421
  .optional(),
421
- resources: z
422
+ resources: v
422
423
  .object({
423
- discovery: z
424
+ discovery: v
424
425
  .object({
425
- enabled: z.boolean().optional(),
426
- paths: z.array(z.string()).optional(),
426
+ enabled: v.boolean().optional(),
427
+ paths: v.array(v.string()).optional(),
427
428
  })
428
429
  .partial()
429
430
  .optional(),
430
431
  })
431
432
  .partial()
432
433
  .optional(),
433
- prompts: z
434
+ prompts: v
434
435
  .object({
435
- discovery: z
436
+ discovery: v
436
437
  .object({
437
- enabled: z.boolean().optional(),
438
- paths: z.array(z.string()).optional(),
438
+ enabled: v.boolean().optional(),
439
+ paths: v.array(v.string()).optional(),
439
440
  })
440
441
  .partial()
441
442
  .optional(),
442
443
  })
443
444
  .partial()
444
445
  .optional(),
445
- workflows: z
446
+ workflows: v
446
447
  .object({
447
- discovery: z
448
+ discovery: v
448
449
  .object({
449
- enabled: z.boolean().optional(),
450
- paths: z.array(z.string()).optional(),
450
+ enabled: v.boolean().optional(),
451
+ paths: v.array(v.string()).optional(),
451
452
  })
452
453
  .partial()
453
454
  .optional(),
454
455
  })
455
456
  .partial()
456
457
  .optional(),
457
- tasks: z
458
+ tasks: v
458
459
  .object({
459
- discovery: z
460
+ discovery: v
460
461
  .object({
461
- enabled: z.boolean().optional(),
462
- paths: z.array(z.string()).optional(),
462
+ enabled: v.boolean().optional(),
463
+ paths: v.array(v.string()).optional(),
463
464
  })
464
465
  .partial()
465
466
  .optional(),
466
467
  })
467
468
  .partial()
468
469
  .optional(),
469
- mcp: z
470
+ mcp: v
470
471
  .object({
471
- enabled: z.boolean().optional(),
472
- port: z.number().optional(),
473
- expose: z.array(z.string()).optional(),
472
+ enabled: v.boolean().optional(),
473
+ port: v.number().optional(),
474
+ expose: v.array(v.string()).optional(),
474
475
  })
475
476
  .partial()
476
477
  .optional(),
477
478
  })
478
479
  .partial()
479
480
  .optional(),
480
- client: z
481
+ client: v
481
482
  .object({
482
483
  /** How to resolve veryfront client modules in browser */
483
- moduleResolution: z.enum(["cdn", "self-hosted", "bundled"]).optional(),
484
+ moduleResolution: v.enum(["cdn", "self-hosted", "bundled"]).optional(),
484
485
  /** CDN options when moduleResolution is 'cdn' */
485
- cdn: z
486
+ cdn: v
486
487
  .object({
487
- provider: z.enum(["esm.sh", "unpkg", "jsdelivr"]).optional(),
488
+ provider: v.enum(["esm.sh", "unpkg", "jsdelivr"]).optional(),
488
489
  /** 'auto' detects from package.json, or pin specific versions */
489
- versions: z
490
+ versions: v
490
491
  .union([
491
- z.literal("auto"),
492
- z.object({
493
- react: z.string().optional(),
494
- veryfront: z.string().optional(),
492
+ v.literal("auto"),
493
+ v.object({
494
+ react: v.string().optional(),
495
+ veryfront: v.string().optional(),
495
496
  }),
496
497
  ])
497
498
  .optional(),
@@ -502,44 +503,44 @@ export const veryfrontConfigSchema = z
502
503
  .partial()
503
504
  .optional(),
504
505
  /** CLI generate command preferences */
505
- generate: z
506
+ generate: v
506
507
  .object({
507
508
  /** Preferred router for generated pages */
508
- preferredRouter: z.enum(["app-router", "pages-router"]).optional(),
509
+ preferredRouter: v.enum(["app-router", "pages-router"]).optional(),
509
510
  })
510
511
  .partial()
511
512
  .optional(),
512
- tailwind: z
513
+ tailwind: v
513
514
  .object({
514
515
  /** Path to the global stylesheet (default: "globals.css") */
515
- stylesheet: z.string().optional(),
516
+ stylesheet: v.string().optional(),
516
517
  /** Enable built-in Tailwind CDN plugins (forms, typography, aspect-ratio, container-queries) */
517
- plugins: z.array(z.enum(["forms", "typography", "aspect-ratio", "container-queries"]))
518
+ plugins: v.array(v.enum(["forms", "typography", "aspect-ratio", "container-queries"]))
518
519
  .optional(),
519
520
  /** Extend the Tailwind theme (merged with veryfront defaults) */
520
- theme: z
521
+ theme: v
521
522
  .object({
522
- extend: z.record(z.string(), z.unknown()).optional(),
523
+ extend: v.record(v.string(), v.unknown()).optional(),
523
524
  })
524
525
  .partial()
525
526
  .optional(),
526
527
  /** Custom CSS content to add (for @layer, @apply directives, etc.) */
527
- customCSS: z.string().optional(),
528
+ customCSS: v.string().optional(),
528
529
  })
529
530
  .partial()
530
531
  .optional(),
531
532
  /** Third-party integration configuration (e.g., Slack, GitHub) */
532
- integrations: z
533
- .record(z.string(), z
533
+ integrations: v
534
+ .record(v.string(), v
534
535
  .object({
535
536
  /** Token scope: "project" (shared) or "endUser" (per-end-user OAuth). */
536
- scope: z.enum(["project", "endUser"]).optional(),
537
+ scope: v.enum(["project", "endUser"]).optional(),
537
538
  /** @deprecated Use `scope: "endUser"` instead. */
538
- perUser: z.boolean().optional(),
539
+ perUser: v.boolean().optional(),
539
540
  /** Allowlist of tool IDs to expose. When set, only these tools are registered.
540
541
  * This keeps the MCP context narrow by excluding unused tools.
541
542
  * @example ["list-issues", "create-issue"] */
542
- tools: z.array(z.string()).optional(),
543
+ tools: v.array(v.string()).optional(),
543
544
  })
544
545
  .partial()
545
546
  .optional())
@@ -551,44 +552,44 @@ export const veryfrontConfigSchema = z
551
552
  * disable directive `{ name, enabled: false }` that vetoes an extension
552
553
  * discovered from a lower-priority source. The runtime type is
553
554
  * tightened at the `veryfront/extensions` barrel — we keep this as
554
- * `z.unknown()` here to avoid pulling the extensions module into the
555
+ * `v.unknown()` here to avoid pulling the extensions module into the
555
556
  * config layer (would introduce a circular import).
556
557
  */
557
- extensions: z.array(z.unknown()).optional(),
558
+ extensions: v.array(v.unknown()).optional(),
558
559
  /** OpenAPI documentation configuration */
559
- openapi: z
560
+ openapi: v
560
561
  .object({
561
562
  /** Enable OpenAPI endpoint (default: true) */
562
- enabled: z.boolean().optional(),
563
+ enabled: v.boolean().optional(),
563
564
  /** Enable interactive docs page using Scalar (default: true) */
564
- docs: z.boolean().optional(),
565
+ docs: v.boolean().optional(),
565
566
  /** API title for OpenAPI info section */
566
- title: z.string().optional(),
567
+ title: v.string().optional(),
567
568
  /** API version (default: "1.0.0") */
568
- version: z.string().optional(),
569
+ version: v.string().optional(),
569
570
  /** API description */
570
- description: z.string().optional(),
571
+ description: v.string().optional(),
571
572
  /** Custom path configuration */
572
- paths: z
573
+ paths: v
573
574
  .object({
574
575
  /** Path for JSON spec (default: "/_openapi.json") */
575
- json: z.string().optional(),
576
+ json: v.string().optional(),
576
577
  /** Path for YAML spec (default: "/_openapi.yaml") */
577
- yaml: z.string().optional(),
578
+ yaml: v.string().optional(),
578
579
  /** Path for interactive docs (default: "/_docs") */
579
- docs: z.string().optional(),
580
+ docs: v.string().optional(),
580
581
  })
581
582
  .partial()
582
583
  .optional(),
583
584
  /** MCP integration configuration */
584
- mcp: z
585
+ mcp: v
585
586
  .object({
586
587
  /** Expose OpenAPI spec as MCP resource at openapi://spec (default: true) */
587
- resource: z.boolean().optional(),
588
+ resource: v.boolean().optional(),
588
589
  /** Auto-generate MCP tools from API routes (default: true) */
589
- tools: z.boolean().optional(),
590
+ tools: v.boolean().optional(),
590
591
  /** Tool naming prefix (default: "api") - tools named as prefix:operationId */
591
- toolPrefix: z.string().optional(),
592
+ toolPrefix: v.string().optional(),
592
593
  })
593
594
  .partial()
594
595
  .optional(),
@@ -596,13 +597,15 @@ export const veryfrontConfigSchema = z
596
597
  .partial()
597
598
  .optional(),
598
599
  })
599
- .partial();
600
+ .partial());
601
+ export const veryfrontConfigSchema = getVeryfrontConfigSchema();
600
602
  // Validation function
601
603
  export function validateVeryfrontConfig(input) {
602
- const parsed = veryfrontConfigSchema.safeParse(input);
603
- if (parsed.success)
604
- return parsed.data;
605
- const first = parsed.error.issues[0];
604
+ const result = veryfrontConfigSchema.safeParse(input);
605
+ if (result.success)
606
+ return result.data;
607
+ const issues = result.issues ?? [];
608
+ const first = issues[0];
606
609
  const path = first?.path?.length ? first.path.join(".") : "<root>";
607
610
  const expected = first?.message ?? String(first);
608
611
  const corsHint = path.includes("security.cors")
@@ -621,10 +624,39 @@ export function validateVeryfrontConfig(input) {
621
624
  }));
622
625
  }
623
626
  /**
624
- * Get known top-level keys from the schema definition.
625
- * Uses the schema's shape to avoid duplicating the list of keys.
627
+ * Known top-level keys from the config schema definition.
628
+ * Maintained in sync with the `getVeryfrontConfigSchema` shape above.
626
629
  */
627
- const knownConfigKeys = new Set(Object.keys(veryfrontConfigSchema.shape));
630
+ const knownConfigKeys = new Set([
631
+ "projectSlug",
632
+ "title",
633
+ "description",
634
+ "react",
635
+ "directories",
636
+ "experimental",
637
+ "router",
638
+ "layout",
639
+ "app",
640
+ "theme",
641
+ "build",
642
+ "cache",
643
+ "dev",
644
+ "resolve",
645
+ "security",
646
+ "middleware",
647
+ "theming",
648
+ "assetPipeline",
649
+ "observability",
650
+ "search",
651
+ "fs",
652
+ "ai",
653
+ "client",
654
+ "generate",
655
+ "tailwind",
656
+ "integrations",
657
+ "extensions",
658
+ "openapi",
659
+ ]);
628
660
  export function findUnknownTopLevelKeys(input) {
629
661
  return Object.keys(input).filter((key) => !knownConfigKeys.has(key));
630
662
  }