veryfront 0.1.324 → 0.1.326

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 (271) hide show
  1. package/esm/cli/commands/extension/init-command.js +2 -2
  2. package/esm/cli/commands/extension/validate-command.js +1 -1
  3. package/esm/deno.d.ts +7 -0
  4. package/esm/deno.js +8 -1
  5. package/esm/deps/esm.sh/react-dom@19.2.4/client.d.ts +2 -0
  6. package/esm/deps/esm.sh/react-dom@19.2.4/client.d.ts.map +1 -0
  7. package/esm/deps/esm.sh/react-dom@19.2.4/client.js +5 -0
  8. package/esm/deps/esm.sh/scheduler@^0.27.0.d.ts +2 -0
  9. package/esm/deps/esm.sh/scheduler@^0.27.0.d.ts.map +1 -0
  10. package/esm/deps/esm.sh/scheduler@^0.27.0.js +3 -0
  11. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.d.ts +30 -0
  12. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.d.ts.map +1 -0
  13. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.js +47 -0
  14. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.d.ts +29 -0
  15. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.js +65 -0
  17. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.d.ts +17 -0
  18. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.js +23 -0
  20. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.d.ts +26 -0
  21. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.js +30 -0
  23. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.d.ts +25 -0
  24. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.js +194 -0
  26. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.d.ts +37 -0
  27. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.js +61 -0
  29. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.d.ts +18 -0
  30. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.js +27 -0
  32. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.d.ts +15 -0
  33. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.js +20 -0
  35. package/esm/deps/jsr.io/@std/assert/1.0.19/false.d.ts +19 -0
  36. package/esm/deps/jsr.io/@std/assert/1.0.19/false.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/assert/1.0.19/false.js +23 -0
  38. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.d.ts +20 -0
  39. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.d.ts.map +1 -0
  40. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.js +29 -0
  41. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.d.ts +20 -0
  42. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.d.ts.map +1 -0
  43. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.js +29 -0
  44. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.d.ts +23 -0
  45. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.d.ts.map +1 -0
  46. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.js +52 -0
  47. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.d.ts +25 -0
  48. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.d.ts.map +1 -0
  49. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.js +53 -0
  50. package/esm/deps/jsr.io/@std/assert/1.0.19/less.d.ts +19 -0
  51. package/esm/deps/jsr.io/@std/assert/1.0.19/less.d.ts.map +1 -0
  52. package/esm/deps/jsr.io/@std/assert/1.0.19/less.js +28 -0
  53. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.d.ts +20 -0
  54. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.d.ts.map +1 -0
  55. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.js +29 -0
  56. package/esm/deps/jsr.io/@std/assert/1.0.19/match.d.ts +18 -0
  57. package/esm/deps/jsr.io/@std/assert/1.0.19/match.d.ts.map +1 -0
  58. package/esm/deps/jsr.io/@std/assert/1.0.19/match.js +26 -0
  59. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.d.ts +44 -0
  60. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.d.ts.map +1 -0
  61. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.js +45 -0
  62. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.d.ts +27 -0
  63. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.d.ts.map +1 -0
  64. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.js +39 -0
  65. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.d.ts +20 -0
  66. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.d.ts.map +1 -0
  67. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.js +29 -0
  68. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.d.ts +18 -0
  69. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.d.ts.map +1 -0
  70. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.js +26 -0
  71. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.d.ts +23 -0
  72. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.d.ts.map +1 -0
  73. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.js +32 -0
  74. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.d.ts +29 -0
  75. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.d.ts.map +1 -0
  76. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.js +177 -0
  77. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.d.ts +42 -0
  78. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.d.ts.map +1 -0
  79. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.js +53 -0
  80. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.d.ts +24 -0
  81. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.d.ts.map +1 -0
  82. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.js +58 -0
  83. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.d.ts +18 -0
  84. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.d.ts.map +1 -0
  85. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.js +26 -0
  86. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.d.ts +45 -0
  87. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.d.ts.map +1 -0
  88. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.js +44 -0
  89. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.d.ts +15 -0
  90. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.d.ts.map +1 -0
  91. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.js +20 -0
  92. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.d.ts +15 -0
  93. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.d.ts.map +1 -0
  94. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.js +20 -0
  95. package/esm/deps/jsr.io/@std/internal/1.0.13/assertion_state.d.ts +150 -0
  96. package/esm/deps/jsr.io/@std/internal/1.0.13/assertion_state.d.ts.map +1 -0
  97. package/esm/deps/jsr.io/@std/internal/1.0.13/assertion_state.js +224 -0
  98. package/esm/deps/jsr.io/@std/internal/1.0.13/build_message.d.ts +80 -0
  99. package/esm/deps/jsr.io/@std/internal/1.0.13/build_message.d.ts.map +1 -0
  100. package/esm/deps/jsr.io/@std/internal/1.0.13/build_message.js +116 -0
  101. package/esm/deps/jsr.io/@std/internal/1.0.13/diff.d.ts +140 -0
  102. package/esm/deps/jsr.io/@std/internal/1.0.13/diff.d.ts.map +1 -0
  103. package/esm/deps/jsr.io/@std/internal/1.0.13/diff.js +276 -0
  104. package/esm/deps/jsr.io/@std/internal/1.0.13/diff_str.d.ts +99 -0
  105. package/esm/deps/jsr.io/@std/internal/1.0.13/diff_str.d.ts.map +1 -0
  106. package/esm/deps/jsr.io/@std/internal/1.0.13/diff_str.js +182 -0
  107. package/esm/deps/jsr.io/@std/internal/1.0.13/format.d.ts +29 -0
  108. package/esm/deps/jsr.io/@std/internal/1.0.13/format.d.ts.map +1 -0
  109. package/esm/deps/jsr.io/@std/internal/1.0.13/format.js +70 -0
  110. package/esm/deps/jsr.io/@std/internal/1.0.13/styles.d.ts +159 -0
  111. package/esm/deps/jsr.io/@std/internal/1.0.13/styles.d.ts.map +1 -0
  112. package/esm/deps/jsr.io/@std/internal/1.0.13/styles.js +207 -0
  113. package/esm/deps/jsr.io/@std/internal/1.0.13/types.d.ts +25 -0
  114. package/esm/deps/jsr.io/@std/internal/1.0.13/types.d.ts.map +1 -0
  115. package/esm/deps/jsr.io/@std/internal/1.0.13/types.js +3 -0
  116. package/esm/deps/jsr.io/@std/testing/1.0.18/_test_suite.d.ts +80 -0
  117. package/esm/deps/jsr.io/@std/testing/1.0.18/_test_suite.d.ts.map +1 -0
  118. package/esm/deps/jsr.io/@std/testing/1.0.18/_test_suite.js +348 -0
  119. package/esm/deps/jsr.io/@std/testing/1.0.18/bdd.d.ts +738 -0
  120. package/esm/deps/jsr.io/@std/testing/1.0.18/bdd.d.ts.map +1 -0
  121. package/esm/deps/jsr.io/@std/testing/1.0.18/bdd.js +656 -0
  122. package/esm/src/agent/fork-runtime-stream.d.ts +143 -0
  123. package/esm/src/agent/fork-runtime-stream.d.ts.map +1 -0
  124. package/esm/src/agent/fork-runtime-stream.js +505 -0
  125. package/esm/src/agent/index.d.ts +1 -0
  126. package/esm/src/agent/index.d.ts.map +1 -1
  127. package/esm/src/agent/index.js +1 -0
  128. package/esm/src/chat/conversation.d.ts +5 -5
  129. package/esm/src/modules/index.d.ts +12 -0
  130. package/esm/src/modules/index.d.ts.map +1 -0
  131. package/esm/src/modules/index.js +10 -0
  132. package/esm/src/modules/module-resolver.d.ts +28 -0
  133. package/esm/src/modules/module-resolver.d.ts.map +1 -0
  134. package/esm/src/modules/module-resolver.js +106 -0
  135. package/esm/src/rendering/cleanup.d.ts +7 -0
  136. package/esm/src/rendering/cleanup.d.ts.map +1 -0
  137. package/esm/src/rendering/cleanup.js +22 -0
  138. package/esm/src/rendering/ssr/index.d.ts +10 -0
  139. package/esm/src/rendering/ssr/index.d.ts.map +1 -0
  140. package/esm/src/rendering/ssr/index.js +8 -0
  141. package/esm/src/rendering/ssr/mdx-module-loader.d.ts +5 -0
  142. package/esm/src/rendering/ssr/mdx-module-loader.d.ts.map +1 -0
  143. package/esm/src/rendering/ssr/mdx-module-loader.js +150 -0
  144. package/esm/src/rendering/ssr/mdx-renderer.d.ts +4 -0
  145. package/esm/src/rendering/ssr/mdx-renderer.d.ts.map +1 -0
  146. package/esm/src/rendering/ssr/mdx-renderer.js +44 -0
  147. package/esm/src/rendering/ssr/types.d.ts +13 -0
  148. package/esm/src/rendering/ssr/types.d.ts.map +1 -0
  149. package/esm/src/rendering/ssr/types.js +1 -0
  150. package/esm/src/sandbox/index.d.ts +1 -0
  151. package/esm/src/sandbox/index.d.ts.map +1 -1
  152. package/esm/src/sandbox/index.js +1 -0
  153. package/esm/src/sandbox/shell-tools.d.ts +39 -0
  154. package/esm/src/sandbox/shell-tools.d.ts.map +1 -0
  155. package/esm/src/sandbox/shell-tools.js +177 -0
  156. package/esm/src/server/shared/index.d.ts +7 -0
  157. package/esm/src/server/shared/index.d.ts.map +1 -0
  158. package/esm/src/server/shared/index.js +6 -0
  159. package/esm/src/testing/assert.d.ts +22 -0
  160. package/esm/src/testing/assert.d.ts.map +1 -0
  161. package/esm/src/testing/assert.js +217 -0
  162. package/esm/src/testing/bdd.d.ts +67 -0
  163. package/esm/src/testing/bdd.d.ts.map +1 -0
  164. package/esm/src/testing/bdd.js +401 -0
  165. package/esm/src/testing/deno-compat.d.ts +26 -0
  166. package/esm/src/testing/deno-compat.d.ts.map +1 -0
  167. package/esm/src/testing/deno-compat.js +146 -0
  168. package/esm/src/testing/index.d.ts +28 -0
  169. package/esm/src/testing/index.d.ts.map +1 -0
  170. package/esm/src/testing/index.js +27 -0
  171. package/esm/src/testing/init.d.ts +2 -0
  172. package/esm/src/testing/init.d.ts.map +1 -0
  173. package/esm/src/testing/init.js +18 -0
  174. package/esm/src/testing/isolation.d.ts +30 -0
  175. package/esm/src/testing/isolation.d.ts.map +1 -0
  176. package/esm/src/testing/isolation.js +151 -0
  177. package/esm/src/testing/timing.d.ts +4 -0
  178. package/esm/src/testing/timing.d.ts.map +1 -0
  179. package/esm/src/testing/timing.js +22 -0
  180. package/esm/src/testing/utils.d.ts +6 -0
  181. package/esm/src/testing/utils.d.ts.map +1 -0
  182. package/esm/src/testing/utils.js +49 -0
  183. package/esm/src/types/global-guards.d.ts +11 -0
  184. package/esm/src/types/global-guards.d.ts.map +1 -0
  185. package/esm/src/types/global-guards.js +12 -0
  186. package/esm/src/utils/cache/keys/namespace.d.ts +3 -0
  187. package/esm/src/utils/cache/keys/namespace.d.ts.map +1 -0
  188. package/esm/src/utils/cache/keys/namespace.js +19 -0
  189. package/esm/src/utils/clsx.d.ts +3 -3
  190. package/esm/src/utils/clsx.d.ts.map +1 -1
  191. package/esm/src/utils/clsx.js +2 -3
  192. package/esm/src/utils/mime-types.d.ts +0 -6
  193. package/esm/src/utils/mime-types.d.ts.map +1 -1
  194. package/esm/src/utils/mime-types.js +0 -1
  195. package/esm/src/utils/version-constant.d.ts +1 -1
  196. package/esm/src/utils/version-constant.js +1 -1
  197. package/package.json +14 -1
  198. package/src/cli/commands/extension/init-command.ts +2 -2
  199. package/src/cli/commands/extension/validate-command.ts +1 -1
  200. package/src/deno.js +8 -1
  201. package/src/deps/esm.sh/@types/react-dom@19.2.3/client.d.ts +105 -0
  202. package/src/deps/esm.sh/@types/react@19.2.3/global.d.ts +165 -0
  203. package/src/deps/esm.sh/@types/react@19.2.3/index.d.ts +4301 -0
  204. package/src/deps/esm.sh/@types/scheduler@0.26.0/index.d.ts +30 -0
  205. package/src/deps/esm.sh/csstype@3.2.3/index.d.ts +22569 -0
  206. package/src/deps/esm.sh/react-dom@19.2.4/client.d.ts +105 -0
  207. package/src/deps/esm.sh/react-dom@19.2.4/client.js +5 -0
  208. package/src/deps/esm.sh/scheduler@^0.27.0.d.ts +30 -0
  209. package/src/deps/esm.sh/scheduler@^0.27.0.js +3 -0
  210. package/src/deps/jsr.io/@std/assert/1.0.19/almost_equals.ts +56 -0
  211. package/src/deps/jsr.io/@std/assert/1.0.19/array_includes.ts +76 -0
  212. package/src/deps/jsr.io/@std/assert/1.0.19/assert.ts +24 -0
  213. package/src/deps/jsr.io/@std/assert/1.0.19/assertion_error.ts +31 -0
  214. package/src/deps/jsr.io/@std/assert/1.0.19/equal.ts +226 -0
  215. package/src/deps/jsr.io/@std/assert/1.0.19/equals.ts +68 -0
  216. package/src/deps/jsr.io/@std/assert/1.0.19/exists.ts +31 -0
  217. package/src/deps/jsr.io/@std/assert/1.0.19/fail.ts +21 -0
  218. package/src/deps/jsr.io/@std/assert/1.0.19/false.ts +27 -0
  219. package/src/deps/jsr.io/@std/assert/1.0.19/greater.ts +30 -0
  220. package/src/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.ts +36 -0
  221. package/src/deps/jsr.io/@std/assert/1.0.19/instance_of.ts +64 -0
  222. package/src/deps/jsr.io/@std/assert/1.0.19/is_error.ts +65 -0
  223. package/src/deps/jsr.io/@std/assert/1.0.19/less.ts +29 -0
  224. package/src/deps/jsr.io/@std/assert/1.0.19/less_or_equal.ts +36 -0
  225. package/src/deps/jsr.io/@std/assert/1.0.19/match.ts +30 -0
  226. package/src/deps/jsr.io/@std/assert/1.0.19/mod.ts +47 -0
  227. package/src/deps/jsr.io/@std/assert/1.0.19/not_equals.ts +43 -0
  228. package/src/deps/jsr.io/@std/assert/1.0.19/not_instance_of.ts +33 -0
  229. package/src/deps/jsr.io/@std/assert/1.0.19/not_match.ts +30 -0
  230. package/src/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.ts +42 -0
  231. package/src/deps/jsr.io/@std/assert/1.0.19/object_match.ts +224 -0
  232. package/src/deps/jsr.io/@std/assert/1.0.19/rejects.ts +123 -0
  233. package/src/deps/jsr.io/@std/assert/1.0.19/strict_equals.ts +68 -0
  234. package/src/deps/jsr.io/@std/assert/1.0.19/string_includes.ts +30 -0
  235. package/src/deps/jsr.io/@std/assert/1.0.19/throws.ts +111 -0
  236. package/src/deps/jsr.io/@std/assert/1.0.19/unimplemented.ts +21 -0
  237. package/src/deps/jsr.io/@std/assert/1.0.19/unreachable.ts +21 -0
  238. package/src/deps/jsr.io/@std/internal/1.0.13/assertion_state.ts +248 -0
  239. package/src/deps/jsr.io/@std/internal/1.0.13/build_message.ts +147 -0
  240. package/src/deps/jsr.io/@std/internal/1.0.13/diff.ts +317 -0
  241. package/src/deps/jsr.io/@std/internal/1.0.13/diff_str.ts +208 -0
  242. package/src/deps/jsr.io/@std/internal/1.0.13/format.ts +89 -0
  243. package/src/deps/jsr.io/@std/internal/1.0.13/styles.ts +233 -0
  244. package/src/deps/jsr.io/@std/internal/1.0.13/types.ts +30 -0
  245. package/src/deps/jsr.io/@std/testing/1.0.18/_test_suite.ts +461 -0
  246. package/src/deps/jsr.io/@std/testing/1.0.18/bdd.ts +1294 -0
  247. package/src/src/agent/fork-runtime-stream.ts +780 -0
  248. package/src/src/agent/index.ts +16 -0
  249. package/src/src/modules/index.ts +43 -0
  250. package/src/src/modules/module-resolver.ts +145 -0
  251. package/src/src/rendering/cleanup.ts +27 -0
  252. package/src/src/rendering/ssr/index.ts +10 -0
  253. package/src/src/rendering/ssr/mdx-module-loader.ts +185 -0
  254. package/src/src/rendering/ssr/mdx-renderer.ts +66 -0
  255. package/src/src/rendering/ssr/types.ts +14 -0
  256. package/src/src/sandbox/index.ts +9 -0
  257. package/src/src/sandbox/shell-tools.ts +242 -0
  258. package/src/src/server/shared/index.ts +12 -0
  259. package/src/src/testing/assert.ts +352 -0
  260. package/src/src/testing/bdd.ts +618 -0
  261. package/src/src/testing/deno-compat.ts +206 -0
  262. package/src/src/testing/index.ts +92 -0
  263. package/src/src/testing/init.ts +21 -0
  264. package/src/src/testing/isolation.ts +177 -0
  265. package/src/src/testing/timing.ts +27 -0
  266. package/src/src/testing/utils.ts +44 -0
  267. package/src/src/types/global-guards.ts +21 -0
  268. package/src/src/utils/cache/keys/namespace.ts +25 -0
  269. package/src/src/utils/clsx.ts +2 -4
  270. package/src/src/utils/mime-types.ts +0 -2
  271. package/src/src/utils/version-constant.ts +1 -1
@@ -0,0 +1,177 @@
1
+ const SANDBOX_WORKING_DIRECTORY = "/workspace";
2
+ const SANDBOX_TOOL_PROMPT = "Available tools: agent-browser, awk, cat, column, comm, curl, cut, diff, expand, find, fold, grep, head, iconv, join, jq, nl, node, od, paste, printf, python3, rev, sed, sort, split, strings, tail, tee, tr, unexpand, uniq, veryfront, wc, xargs, xxd, yq, and more";
3
+ const JSON_SCHEMA_TYPES = new Set([
4
+ "string",
5
+ "number",
6
+ "integer",
7
+ "boolean",
8
+ "object",
9
+ "array",
10
+ "null",
11
+ ]);
12
+ function isRecord(value) {
13
+ return typeof value === "object" && value !== null && !Array.isArray(value);
14
+ }
15
+ function normalizeJsonSchemaType(value) {
16
+ if (typeof value !== "string" || !JSON_SCHEMA_TYPES.has(value)) {
17
+ return undefined;
18
+ }
19
+ switch (value) {
20
+ case "string":
21
+ case "number":
22
+ case "integer":
23
+ case "boolean":
24
+ case "object":
25
+ case "array":
26
+ case "null":
27
+ return value;
28
+ }
29
+ }
30
+ function normalizeStringArray(value) {
31
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
32
+ return undefined;
33
+ }
34
+ return value.map(String);
35
+ }
36
+ function normalizeJsonSchemaArray(value) {
37
+ if (!Array.isArray(value)) {
38
+ return undefined;
39
+ }
40
+ const schemas = value.map(normalizeJsonSchema).filter((schema) => schema !== undefined);
41
+ return schemas.length === value.length ? schemas : undefined;
42
+ }
43
+ function normalizeJsonSchemaProperties(value) {
44
+ if (!isRecord(value)) {
45
+ return undefined;
46
+ }
47
+ const properties = {};
48
+ for (const [key, propertyValue] of Object.entries(value)) {
49
+ const schema = normalizeJsonSchema(propertyValue);
50
+ if (schema === undefined) {
51
+ return undefined;
52
+ }
53
+ properties[key] = schema;
54
+ }
55
+ return properties;
56
+ }
57
+ function normalizeJsonSchema(value) {
58
+ if (!isRecord(value)) {
59
+ return undefined;
60
+ }
61
+ const schema = {};
62
+ const type = normalizeJsonSchemaType(value.type);
63
+ const description = typeof value.description === "string" ? value.description : undefined;
64
+ const required = normalizeStringArray(value.required);
65
+ const properties = normalizeJsonSchemaProperties(value.properties);
66
+ const items = normalizeJsonSchema(value.items);
67
+ const anyOf = normalizeJsonSchemaArray(value.anyOf);
68
+ const prefixItems = normalizeJsonSchemaArray(value.prefixItems);
69
+ if (type !== undefined)
70
+ schema.type = type;
71
+ if (description !== undefined)
72
+ schema.description = description;
73
+ if (Array.isArray(value.enum))
74
+ schema.enum = [...value.enum];
75
+ if ("const" in value)
76
+ schema.const = value.const;
77
+ if ("default" in value)
78
+ schema.default = value.default;
79
+ if (properties !== undefined)
80
+ schema.properties = properties;
81
+ if (required !== undefined)
82
+ schema.required = required;
83
+ if (items !== undefined)
84
+ schema.items = items;
85
+ if (typeof value.additionalProperties === "boolean") {
86
+ schema.additionalProperties = value.additionalProperties;
87
+ }
88
+ else {
89
+ const additionalProperties = normalizeJsonSchema(value.additionalProperties);
90
+ if (additionalProperties !== undefined)
91
+ schema.additionalProperties = additionalProperties;
92
+ }
93
+ if (anyOf !== undefined)
94
+ schema.anyOf = anyOf;
95
+ if (prefixItems !== undefined)
96
+ schema.prefixItems = prefixItems;
97
+ if (typeof value.minItems === "number")
98
+ schema.minItems = value.minItems;
99
+ if (typeof value.maxItems === "number")
100
+ schema.maxItems = value.maxItems;
101
+ return schema;
102
+ }
103
+ function normalizeBashTool(toolDefinition) {
104
+ if (!isRecord(toolDefinition)) {
105
+ return {};
106
+ }
107
+ const normalized = {};
108
+ const id = toolDefinition.id;
109
+ const type = toolDefinition.type;
110
+ const description = toolDefinition.description;
111
+ const inputSchema = toolDefinition.inputSchema;
112
+ const inputSchemaJson = normalizeJsonSchema(toolDefinition.inputSchemaJson);
113
+ const executeCandidate = toolDefinition.execute;
114
+ const mcp = toolDefinition.mcp;
115
+ if (typeof id === "string") {
116
+ normalized.id = id;
117
+ }
118
+ if (type === "function" || type === "dynamic") {
119
+ normalized.type = type;
120
+ }
121
+ if (typeof description === "string") {
122
+ normalized.description = description;
123
+ }
124
+ if (inputSchema !== undefined) {
125
+ normalized.inputSchema = inputSchema;
126
+ }
127
+ if (inputSchemaJson !== undefined) {
128
+ normalized.inputSchemaJson = inputSchemaJson;
129
+ }
130
+ if (typeof executeCandidate === "function") {
131
+ normalized.execute = async (input, options) => executeCandidate(input, options);
132
+ }
133
+ if (isRecord(mcp)) {
134
+ normalized.mcp = Object.fromEntries(Object.entries(mcp));
135
+ }
136
+ return normalized;
137
+ }
138
+ export function normalizeBashToolSet(bashTools) {
139
+ return Object.fromEntries(Object.entries(bashTools).map(([name, toolDefinition]) => [name, normalizeBashTool(toolDefinition)]));
140
+ }
141
+ export function renameSandboxFileTools(bashTools) {
142
+ const tools = { ...bashTools };
143
+ const sandboxReadFile = tools.readFile;
144
+ if (sandboxReadFile) {
145
+ tools.sandbox_read_file = {
146
+ ...sandboxReadFile,
147
+ description: "Read a file from the sandbox /workspace filesystem only. This does NOT read project files stored in Veryfront. Use project file tools like get_file/get_files for real project source.",
148
+ };
149
+ delete tools.readFile;
150
+ }
151
+ const sandboxWriteFile = tools.writeFile;
152
+ if (sandboxWriteFile) {
153
+ tools.sandbox_write_file = {
154
+ ...sandboxWriteFile,
155
+ description: "Write a file inside the sandbox /workspace filesystem only. This does NOT update project files stored in Veryfront. Use project file tools like create_file/update_file for real project source.",
156
+ };
157
+ delete tools.writeFile;
158
+ }
159
+ const sandboxBash = tools.bash;
160
+ if (sandboxBash) {
161
+ tools.bash = {
162
+ ...sandboxBash,
163
+ description: "Run shell commands in the sandbox /workspace environment. This is for temporary shell work only and does NOT provide direct access to Veryfront project files.",
164
+ };
165
+ }
166
+ return tools;
167
+ }
168
+ export async function createSandboxShellTools(sandbox, createBashTool) {
169
+ const { tools: bashTools } = await createBashTool({
170
+ sandbox,
171
+ destination: SANDBOX_WORKING_DIRECTORY,
172
+ promptOptions: {
173
+ toolPrompt: SANDBOX_TOOL_PROMPT,
174
+ },
175
+ });
176
+ return renameSandboxFileTools(normalizeBashToolSet(bashTools));
177
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Server Shared
3
+ *
4
+ * @module server/shared
5
+ */
6
+ export { destroyRendererAdapter, getRendererForProject, type RendererAdapter, shouldRejectDueToMemory, } from "./renderer-factory.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/server/shared/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,eAAe,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Server Shared
3
+ *
4
+ * @module server/shared
5
+ */
6
+ export { destroyRendererAdapter, getRendererForProject, shouldRejectDueToMemory, } from "./renderer-factory.js";
@@ -0,0 +1,22 @@
1
+ import "../../_dnt.polyfills.js";
2
+ import "./init.js";
3
+ type ErrorClass = new (...args: any[]) => Error;
4
+ export declare function assertEquals<T>(actual: T, expected: T, msg?: string): void;
5
+ export declare function assertNotEquals<T>(actual: T, expected: T, msg?: string): void;
6
+ export declare function assertStrictEquals<T>(actual: T, expected: T, msg?: string): void;
7
+ export declare function assert(expr: unknown, msg?: string): asserts expr;
8
+ export declare function assertExists<T>(actual: T, msg?: string): asserts actual is NonNullable<T>;
9
+ export declare function assertThrows(fn: () => unknown, errorClassOrMsg?: ErrorClass | string, msgIncludesOrMsg?: string, msg?: string): void;
10
+ export declare function assertRejects(fn: () => Promise<unknown>, errorClassOrMsg?: ErrorClass | string, msgIncludesOrMsg?: string, msg?: string): Promise<unknown>;
11
+ export declare function assertStringIncludes(actual: string, expected: string, msg?: string): void;
12
+ export declare function assertMatch(actual: string, expected: RegExp, msg?: string): void;
13
+ export declare function assertInstanceOf<T>(actual: unknown, expectedType: abstract new (...args: any[]) => T, msg?: string): asserts actual is T;
14
+ export declare function fail(msg?: string): never;
15
+ export declare function assertNotStrictEquals<T>(actual: T, expected: T, msg?: string): void;
16
+ export declare function assertObjectMatch(actual: Record<string, unknown>, expected: Record<string, unknown>, msg?: string): void;
17
+ export declare function assertGreater(actual: number, expected: number, msg?: string): void;
18
+ export declare function assertGreaterOrEqual(actual: number, expected: number, msg?: string): void;
19
+ export declare function assertLess(actual: number, expected: number, msg?: string): void;
20
+ export declare function assertLessOrEqual(actual: number, expected: number, msg?: string): void;
21
+ export {};
22
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/src/testing/assert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ import "../../_dnt.polyfills.js";
2
+ import "./init.js";
3
+ import { isDeno } from "../platform/compat/runtime.js";
4
+ import { deepEquals, safeStringify } from "./utils.js";
5
+ function createNodeAssertImpl() {
6
+ function assertErrorMessageIncludes(error, includes) {
7
+ if (!includes)
8
+ return;
9
+ if (!(error instanceof Error))
10
+ return;
11
+ if (error.message.includes(includes))
12
+ return;
13
+ throw new Error(`Expected error message to include "${includes}", got "${error.message}"`);
14
+ }
15
+ function assertThrowsOrRejects(threw, error, errorClassOrMsg, msgIncludesOrMsg, defaultMsg) {
16
+ if (!threw) {
17
+ throw new Error(typeof errorClassOrMsg === "string" ? errorClassOrMsg : defaultMsg);
18
+ }
19
+ if (typeof errorClassOrMsg !== "function")
20
+ return;
21
+ if (!(error instanceof errorClassOrMsg)) {
22
+ throw new Error(`Expected error to be instance of ${errorClassOrMsg.name}, got ${error?.name ?? typeof error}`);
23
+ }
24
+ assertErrorMessageIncludes(error, msgIncludesOrMsg);
25
+ }
26
+ function assertObjectMatch(actual, expected, msg) {
27
+ for (const key of Object.keys(expected)) {
28
+ const actualVal = actual[key];
29
+ const expectedVal = expected[key];
30
+ if (typeof expectedVal === "object" && expectedVal !== null) {
31
+ if (typeof actualVal !== "object" || actualVal === null) {
32
+ throw new Error(msg || `Expected ${key} to be an object`);
33
+ }
34
+ assertObjectMatch(actualVal, expectedVal, msg);
35
+ continue;
36
+ }
37
+ if (actualVal === expectedVal)
38
+ continue;
39
+ throw new Error(msg ||
40
+ `Expected ${key} to be ${JSON.stringify(expectedVal)}, got ${JSON.stringify(actualVal)}`);
41
+ }
42
+ }
43
+ return {
44
+ assertEquals(actual, expected, msg) {
45
+ if (deepEquals(actual, expected))
46
+ return;
47
+ throw new Error(msg || `Expected ${safeStringify(expected)}, got ${safeStringify(actual)}`);
48
+ },
49
+ assertNotEquals(actual, expected, msg) {
50
+ if (!deepEquals(actual, expected))
51
+ return;
52
+ throw new Error(msg || `Expected values to not be equal: ${safeStringify(actual)}`);
53
+ },
54
+ assertStrictEquals(actual, expected, msg) {
55
+ if (actual === expected)
56
+ return;
57
+ throw new Error(msg || `Expected ${expected}, got ${actual}`);
58
+ },
59
+ assert(expr, msg) {
60
+ if (expr)
61
+ return;
62
+ throw new Error(msg || "Assertion failed: expected truthy value");
63
+ },
64
+ assertExists(actual, msg) {
65
+ if (actual !== null && actual !== undefined)
66
+ return;
67
+ throw new Error(msg || `Expected value to exist, but got ${actual}`);
68
+ },
69
+ assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, _msg) {
70
+ let threw = false;
71
+ let error;
72
+ try {
73
+ fn();
74
+ }
75
+ catch (e) {
76
+ threw = true;
77
+ error = e;
78
+ }
79
+ assertThrowsOrRejects(threw, error, errorClassOrMsg, msgIncludesOrMsg, "Expected function to throw");
80
+ },
81
+ async assertRejects(fn, errorClassOrMsg, msgIncludesOrMsg, _msg) {
82
+ let threw = false;
83
+ let error;
84
+ try {
85
+ await fn();
86
+ }
87
+ catch (e) {
88
+ threw = true;
89
+ error = e;
90
+ }
91
+ assertThrowsOrRejects(threw, error, errorClassOrMsg, msgIncludesOrMsg, "Expected function to reject");
92
+ },
93
+ assertStringIncludes(actual, expected, msg) {
94
+ if (actual.includes(expected))
95
+ return;
96
+ throw new Error(msg || `Expected "${actual}" to include "${expected}"`);
97
+ },
98
+ assertMatch(actual, expected, msg) {
99
+ if (expected.test(actual))
100
+ return;
101
+ throw new Error(msg || `Expected "${actual}" to match ${expected}`);
102
+ },
103
+ assertInstanceOf(actual, expectedType, msg) {
104
+ if (actual instanceof expectedType)
105
+ return;
106
+ throw new Error(msg || `Expected instance of ${expectedType.name}, got ${typeof actual}`);
107
+ },
108
+ fail(msg) {
109
+ throw new Error(msg || "Test failed");
110
+ },
111
+ assertNotStrictEquals(actual, expected, msg) {
112
+ if (actual !== expected)
113
+ return;
114
+ throw new Error(msg || "Expected values to not be strictly equal");
115
+ },
116
+ assertObjectMatch,
117
+ assertGreater(actual, expected, msg) {
118
+ if (actual > expected)
119
+ return;
120
+ throw new Error(msg || `Expected ${actual} to be greater than ${expected}`);
121
+ },
122
+ assertGreaterOrEqual(actual, expected, msg) {
123
+ if (actual >= expected)
124
+ return;
125
+ throw new Error(msg || `Expected ${actual} to be greater than or equal to ${expected}`);
126
+ },
127
+ assertLess(actual, expected, msg) {
128
+ if (actual < expected)
129
+ return;
130
+ throw new Error(msg || `Expected ${actual} to be less than ${expected}`);
131
+ },
132
+ assertLessOrEqual(actual, expected, msg) {
133
+ if (actual <= expected)
134
+ return;
135
+ throw new Error(msg || `Expected ${actual} to be less than or equal to ${expected}`);
136
+ },
137
+ };
138
+ }
139
+ let impl;
140
+ if (isDeno) {
141
+ const denoAssert = await import("../../deps/jsr.io/@std/assert/1.0.19/mod.js");
142
+ impl = {
143
+ assertEquals: denoAssert.assertEquals,
144
+ assertNotEquals: denoAssert.assertNotEquals,
145
+ assertStrictEquals: denoAssert.assertStrictEquals,
146
+ assert: denoAssert.assert,
147
+ assertExists: denoAssert.assertExists,
148
+ assertThrows: denoAssert.assertThrows,
149
+ assertRejects: denoAssert.assertRejects,
150
+ assertStringIncludes: denoAssert.assertStringIncludes,
151
+ assertMatch: denoAssert.assertMatch,
152
+ assertInstanceOf: denoAssert.assertInstanceOf,
153
+ fail: denoAssert.fail,
154
+ assertNotStrictEquals: denoAssert.assertNotStrictEquals,
155
+ assertObjectMatch: denoAssert.assertObjectMatch,
156
+ assertGreater: denoAssert.assertGreater,
157
+ assertGreaterOrEqual: denoAssert.assertGreaterOrEqual,
158
+ assertLess: denoAssert.assertLess,
159
+ assertLessOrEqual: denoAssert.assertLessOrEqual,
160
+ };
161
+ }
162
+ else {
163
+ impl = createNodeAssertImpl();
164
+ }
165
+ export function assertEquals(actual, expected, msg) {
166
+ impl.assertEquals(actual, expected, msg);
167
+ }
168
+ export function assertNotEquals(actual, expected, msg) {
169
+ impl.assertNotEquals(actual, expected, msg);
170
+ }
171
+ export function assertStrictEquals(actual, expected, msg) {
172
+ impl.assertStrictEquals(actual, expected, msg);
173
+ }
174
+ export function assert(expr, msg) {
175
+ impl.assert(expr, msg);
176
+ }
177
+ export function assertExists(actual, msg) {
178
+ impl.assertExists(actual, msg);
179
+ }
180
+ export function assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
181
+ impl.assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, msg);
182
+ }
183
+ export function assertRejects(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
184
+ return impl.assertRejects(fn, errorClassOrMsg, msgIncludesOrMsg, msg);
185
+ }
186
+ export function assertStringIncludes(actual, expected, msg) {
187
+ impl.assertStringIncludes(actual, expected, msg);
188
+ }
189
+ export function assertMatch(actual, expected, msg) {
190
+ impl.assertMatch(actual, expected, msg);
191
+ }
192
+ export function assertInstanceOf(actual,
193
+ // deno-lint-ignore no-explicit-any -- any[] required: constructor params are contravariant
194
+ expectedType, msg) {
195
+ impl.assertInstanceOf(actual, expectedType, msg);
196
+ }
197
+ export function fail(msg) {
198
+ impl.fail(msg);
199
+ }
200
+ export function assertNotStrictEquals(actual, expected, msg) {
201
+ impl.assertNotStrictEquals(actual, expected, msg);
202
+ }
203
+ export function assertObjectMatch(actual, expected, msg) {
204
+ impl.assertObjectMatch(actual, expected, msg);
205
+ }
206
+ export function assertGreater(actual, expected, msg) {
207
+ impl.assertGreater(actual, expected, msg);
208
+ }
209
+ export function assertGreaterOrEqual(actual, expected, msg) {
210
+ impl.assertGreaterOrEqual(actual, expected, msg);
211
+ }
212
+ export function assertLess(actual, expected, msg) {
213
+ impl.assertLess(actual, expected, msg);
214
+ }
215
+ export function assertLessOrEqual(actual, expected, msg) {
216
+ impl.assertLessOrEqual(actual, expected, msg);
217
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Portable BDD testing utilities (describe, it, beforeEach, afterEach).
3
+ *
4
+ * In Deno: Direct re-export from @std/testing/bdd (no wrapper)
5
+ * In Node.js: Uses node:test
6
+ * In Bun: Uses bun:test
7
+ *
8
+ * @module
9
+ */
10
+ import "../../_dnt.polyfills.js";
11
+ /** Test function that can be sync or async */
12
+ type TestFn = () => void | Promise<void>;
13
+ /** Test options for Deno sanitizers (ignored in Node/Bun) */
14
+ export interface TestOptions {
15
+ sanitizeResources?: boolean;
16
+ sanitizeOps?: boolean;
17
+ sanitizeExit?: boolean;
18
+ skip?: boolean;
19
+ only?: boolean;
20
+ ignore?: boolean;
21
+ timeout?: number;
22
+ }
23
+ /** Context passed to hooks and tests (BDD-specific) */
24
+ export interface BddTestContext {
25
+ name: string;
26
+ origin?: string;
27
+ parent?: BddTestContext;
28
+ step?: (name: string, fn: TestFn) => Promise<void>;
29
+ }
30
+ /** Hook function */
31
+ type HookFn = (ctx?: BddTestContext) => void | Promise<void>;
32
+ export declare function describe(nameOrOptions: string | (TestOptions & {
33
+ name: string;
34
+ }), optionsOrFn?: TestOptions | (() => void), fn?: () => void): void;
35
+ export declare namespace describe {
36
+ var skip: (nameOrOptions: string | (TestOptions & {
37
+ name: string;
38
+ }), optionsOrFn?: TestOptions | (() => void), fn?: () => void) => void;
39
+ var ignore: (nameOrOptions: string | (TestOptions & {
40
+ name: string;
41
+ }), optionsOrFn?: TestOptions | (() => void), fn?: () => void) => void;
42
+ var only: (nameOrOptions: string | (TestOptions & {
43
+ name: string;
44
+ }), optionsOrFn?: TestOptions | (() => void), fn?: () => void) => void;
45
+ }
46
+ export declare function it(nameOrOptions: string | (TestOptions & {
47
+ name: string;
48
+ }), optionsOrFn?: TestOptions | TestFn, fn?: TestFn): void;
49
+ export declare namespace it {
50
+ var skip: (nameOrOptions: string | (TestOptions & {
51
+ name: string;
52
+ }), optionsOrFn?: TestOptions | TestFn, fn?: TestFn) => void;
53
+ var ignore: (nameOrOptions: string | (TestOptions & {
54
+ name: string;
55
+ }), optionsOrFn?: TestOptions | TestFn, fn?: TestFn) => void;
56
+ var only: (nameOrOptions: string | (TestOptions & {
57
+ name: string;
58
+ }), optionsOrFn?: TestOptions | TestFn, fn?: TestFn) => void;
59
+ }
60
+ export declare function beforeEach(fn: HookFn): void;
61
+ export declare function afterEach(fn: HookFn): void;
62
+ export declare function beforeAll(fn: HookFn): void;
63
+ export declare function afterAll(fn: HookFn): void;
64
+ export declare const test: typeof it;
65
+ export declare function initBdd(): Promise<void>;
66
+ export {};
67
+ //# sourceMappingURL=bdd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bdd.d.ts","sourceRoot":"","sources":["../../../src/src/testing/bdd.ts"],"names":[],"mappings":"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"}