prismalens 0.5.0 → 0.5.1

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 (1377) hide show
  1. package/NOTICE +23 -0
  2. package/README.md +56 -8
  3. package/THIRD_PARTY_NOTICES.txt +4581 -0
  4. package/dist/bin/prismalens.js +9 -22
  5. package/dist/chunk-2SF6M3PV.js +270 -0
  6. package/dist/chunk-32MOXOOZ.js +143 -0
  7. package/dist/chunk-7JF4AL64.js +180 -0
  8. package/dist/chunk-AVNZQGTA.js +174 -0
  9. package/dist/chunk-ESW2KNAG.js +408 -0
  10. package/dist/chunk-HPE5CTO4.js +22 -0
  11. package/dist/chunk-XFZNYLW3.js +105 -0
  12. package/dist/chunk-ZZ3DOHTJ.js +62 -0
  13. package/dist/src/cli/doctor.js +268 -51
  14. package/dist/src/cli/instance-check.js +16 -0
  15. package/dist/src/cli/pair.js +176 -0
  16. package/dist/src/cli/reset.js +80 -0
  17. package/dist/src/cli/service-unit.js +20 -0
  18. package/dist/src/cli/service.js +27 -0
  19. package/dist/src/cli/tailscale.js +20 -0
  20. package/dist/src/cli/up-console.js +25 -3
  21. package/dist/src/cli/up.js +168 -6
  22. package/dist/src/cli/update-notice.js +24 -0
  23. package/dist/src/cli/upgrade-trial.js +39 -0
  24. package/dist/src/cli/upgrade.js +288 -0
  25. package/node_modules/@prisma/adapter-better-sqlite3/LICENSE +201 -0
  26. package/node_modules/@prisma/adapter-better-sqlite3/README.md +3 -0
  27. package/node_modules/@prisma/adapter-better-sqlite3/dist/index.js +687 -0
  28. package/node_modules/@prisma/adapter-better-sqlite3/dist/index.mjs +650 -0
  29. package/node_modules/@prisma/adapter-better-sqlite3/package.json +43 -0
  30. package/node_modules/@prismalens/agent-adapters/dist/index.js +36 -0
  31. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/LICENSE +191 -0
  32. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/README.md +49 -0
  33. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/acp-agent.js +8306 -0
  34. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/acp-subagents.js +13 -0
  35. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/air-extension.js +65 -0
  36. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/async-tasks.js +617 -0
  37. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/auth-status.js +271 -0
  38. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/clear-context-coordinator.js +78 -0
  39. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/context-compaction-meta.js +15 -0
  40. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/context-compaction.js +375 -0
  41. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/diff.js +131 -0
  42. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/elicitation.js +353 -0
  43. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/exit-plan.js +154 -0
  44. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/file-change-audit.js +248 -0
  45. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/fork-session.js +143 -0
  46. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/goal-extension.js +50 -0
  47. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/hide-claude-auth.js +240 -0
  48. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/index.js +95 -0
  49. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/lib.js +8 -0
  50. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/managed-policy.js +31 -0
  51. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/native-subagents.js +425 -0
  52. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/effects.js +166 -0
  53. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/modes.js +43 -0
  54. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/normalization.js +100 -0
  55. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/options/filesystem.js +124 -0
  56. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/options/shared.js +64 -0
  57. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/options/shell.js +100 -0
  58. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/options/tools.js +133 -0
  59. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/options.js +73 -0
  60. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/presentation.js +88 -0
  61. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/permissions/response.js +19 -0
  62. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/resumed-session.js +42 -0
  63. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/session-config-ids.js +3 -0
  64. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/session-effort.js +93 -0
  65. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/session-failure-extension.js +364 -0
  66. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/session-mode.js +248 -0
  67. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/session-model.js +395 -0
  68. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/session-notices.js +69 -0
  69. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/session-timing.js +20 -0
  70. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/session-titles.js +199 -0
  71. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/settings.js +185 -0
  72. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/tool-result-meta.js +19 -0
  73. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/tools.js +1272 -0
  74. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/usage-markdown.js +154 -0
  75. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/dist/utils.js +81 -0
  76. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/claude-agent-acp/package.json +87 -0
  77. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/codex-acp/LICENSE +190 -0
  78. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/codex-acp/README.md +105 -0
  79. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/codex-acp/dist/index.js +40624 -0
  80. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/codex-acp/package.json +75 -0
  81. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/LICENSE +191 -0
  82. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/README.md +70 -0
  83. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/acp.js +1869 -0
  84. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/connection.js +490 -0
  85. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/cookie-store.js +96 -0
  86. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/examples/agent.js +232 -0
  87. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/examples/client.js +132 -0
  88. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/examples/dual-version-agent.js +221 -0
  89. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/examples/http-client.js +86 -0
  90. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/examples/http-server.js +112 -0
  91. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/examples/ws-client.js +88 -0
  92. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/http-stream.js +435 -0
  93. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.js +1076 -0
  94. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/line-buffer.js +64 -0
  95. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/node-adapter.js +426 -0
  96. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/protocol-router.js +474 -0
  97. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/protocol.js +69 -0
  98. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/schema/guards.gen.js +207 -0
  99. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/schema/index.js +52 -0
  100. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/schema/types.gen.js +3 -0
  101. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.js +3084 -0
  102. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/schema-deserialize.js +98 -0
  103. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/server-sse.js +88 -0
  104. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/server.js +386 -0
  105. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/sse.js +91 -0
  106. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/stream.js +115 -0
  107. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/test-support/streams.js +51 -0
  108. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/test-support/test-agent.js +163 -0
  109. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/test-support/test-http-server.js +74 -0
  110. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js +1484 -0
  111. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.js +1046 -0
  112. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.js +43 -0
  113. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/v2/schema/types.gen.js +3 -0
  114. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.js +3199 -0
  115. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/ws-server.js +357 -0
  116. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/ws-stream.js +253 -0
  117. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/dist/ws-utils.js +78 -0
  118. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/package.json +104 -0
  119. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/schema/schema.json +8967 -0
  120. package/node_modules/@prismalens/agent-adapters/node_modules/@agentclientprotocol/sdk/schema/v2/schema.unstable.json +10242 -0
  121. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/LICENSE.md +1 -0
  122. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/README.md +65 -0
  123. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/bridge.mjs +240 -0
  124. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/browser-sdk.js +193 -0
  125. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/extractFromBunfs.js +156 -0
  126. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/manifest.json +84 -0
  127. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/manifest.zst.json +92 -0
  128. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/package.json +84 -0
  129. package/node_modules/@prismalens/agent-adapters/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +232 -0
  130. package/node_modules/@prismalens/agent-adapters/node_modules/@openai/codex/README.md +81 -0
  131. package/node_modules/@prismalens/agent-adapters/node_modules/@openai/codex/bin/codex.js +295 -0
  132. package/node_modules/@prismalens/agent-adapters/node_modules/@openai/codex/package.json +30 -0
  133. package/node_modules/@prismalens/agent-adapters/node_modules/bundle-name/index.js +16 -0
  134. package/node_modules/@prismalens/agent-adapters/node_modules/bundle-name/license +9 -0
  135. package/node_modules/@prismalens/agent-adapters/node_modules/bundle-name/package.json +45 -0
  136. package/node_modules/@prismalens/agent-adapters/node_modules/bundle-name/readme.md +23 -0
  137. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser/index.js +34 -0
  138. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser/license +9 -0
  139. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser/package.json +54 -0
  140. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser/readme.md +24 -0
  141. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser/windows.js +59 -0
  142. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser-id/index.js +25 -0
  143. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser-id/license +9 -0
  144. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser-id/package.json +41 -0
  145. package/node_modules/@prismalens/agent-adapters/node_modules/default-browser-id/readme.md +19 -0
  146. package/node_modules/@prismalens/agent-adapters/node_modules/define-lazy-prop/index.js +18 -0
  147. package/node_modules/@prismalens/agent-adapters/node_modules/define-lazy-prop/license +9 -0
  148. package/node_modules/@prismalens/agent-adapters/node_modules/define-lazy-prop/package.json +51 -0
  149. package/node_modules/@prismalens/agent-adapters/node_modules/define-lazy-prop/readme.md +55 -0
  150. package/node_modules/@prismalens/agent-adapters/node_modules/diff/CONTRIBUTING.md +28 -0
  151. package/node_modules/@prismalens/agent-adapters/node_modules/diff/LICENSE +29 -0
  152. package/node_modules/@prismalens/agent-adapters/node_modules/diff/README.md +468 -0
  153. package/node_modules/@prismalens/agent-adapters/node_modules/diff/dist/diff.js +2313 -0
  154. package/node_modules/@prismalens/agent-adapters/node_modules/diff/dist/diff.min.js +1 -0
  155. package/node_modules/@prismalens/agent-adapters/node_modules/diff/eslint.config.mjs +182 -0
  156. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/convert/dmp.js +24 -0
  157. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/convert/xml.js +34 -0
  158. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/diff/array.js +23 -0
  159. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/diff/base.js +256 -0
  160. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/diff/character.js +14 -0
  161. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/diff/css.js +17 -0
  162. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/diff/json.js +86 -0
  163. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/diff/line.js +74 -0
  164. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/diff/sentence.js +50 -0
  165. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/diff/word.js +289 -0
  166. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/index.js +67 -0
  167. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/package.json +1 -0
  168. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/patch/apply.js +264 -0
  169. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/patch/create.js +364 -0
  170. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/patch/line-endings.js +50 -0
  171. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/patch/parse.js +515 -0
  172. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/patch/reverse.js +63 -0
  173. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/types.js +2 -0
  174. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/util/array.js +21 -0
  175. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/util/distance-iterator.js +40 -0
  176. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/util/params.js +17 -0
  177. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libcjs/util/string.js +199 -0
  178. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/convert/dmp.js +21 -0
  179. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/convert/xml.js +31 -0
  180. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/diff/array.js +16 -0
  181. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/diff/base.js +253 -0
  182. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/diff/character.js +7 -0
  183. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/diff/css.js +10 -0
  184. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/diff/json.js +78 -0
  185. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/diff/line.js +65 -0
  186. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/diff/sentence.js +43 -0
  187. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/diff/word.js +281 -0
  188. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/index.js +30 -0
  189. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/package.json +1 -0
  190. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/patch/apply.js +257 -0
  191. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/patch/create.js +357 -0
  192. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/patch/line-endings.js +44 -0
  193. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/patch/parse.js +512 -0
  194. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/patch/reverse.js +60 -0
  195. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/types.js +1 -0
  196. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/util/array.js +17 -0
  197. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/util/distance-iterator.js +37 -0
  198. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/util/params.js +14 -0
  199. package/node_modules/@prismalens/agent-adapters/node_modules/diff/libesm/util/string.js +184 -0
  200. package/node_modules/@prismalens/agent-adapters/node_modules/diff/package.json +130 -0
  201. package/node_modules/@prismalens/agent-adapters/node_modules/diff/release-notes.md +474 -0
  202. package/node_modules/@prismalens/agent-adapters/node_modules/is-docker/cli.js +5 -0
  203. package/node_modules/@prismalens/agent-adapters/node_modules/is-docker/index.js +29 -0
  204. package/node_modules/@prismalens/agent-adapters/node_modules/is-docker/license +9 -0
  205. package/node_modules/@prismalens/agent-adapters/node_modules/is-docker/package.json +44 -0
  206. package/node_modules/@prismalens/agent-adapters/node_modules/is-docker/readme.md +27 -0
  207. package/node_modules/@prismalens/agent-adapters/node_modules/is-in-ssh/index.js +7 -0
  208. package/node_modules/@prismalens/agent-adapters/node_modules/is-in-ssh/license +9 -0
  209. package/node_modules/@prismalens/agent-adapters/node_modules/is-in-ssh/package.json +43 -0
  210. package/node_modules/@prismalens/agent-adapters/node_modules/is-in-ssh/readme.md +43 -0
  211. package/node_modules/@prismalens/agent-adapters/node_modules/is-inside-container/cli.js +5 -0
  212. package/node_modules/@prismalens/agent-adapters/node_modules/is-inside-container/index.js +23 -0
  213. package/node_modules/@prismalens/agent-adapters/node_modules/is-inside-container/license +9 -0
  214. package/node_modules/@prismalens/agent-adapters/node_modules/is-inside-container/package.json +51 -0
  215. package/node_modules/@prismalens/agent-adapters/node_modules/is-inside-container/readme.md +36 -0
  216. package/node_modules/@prismalens/agent-adapters/node_modules/is-wsl/index.js +36 -0
  217. package/node_modules/@prismalens/agent-adapters/node_modules/is-wsl/license +9 -0
  218. package/node_modules/@prismalens/agent-adapters/node_modules/is-wsl/package.json +58 -0
  219. package/node_modules/@prismalens/agent-adapters/node_modules/is-wsl/readme.md +21 -0
  220. package/node_modules/@prismalens/agent-adapters/node_modules/open/index.js +432 -0
  221. package/node_modules/@prismalens/agent-adapters/node_modules/open/license +9 -0
  222. package/node_modules/@prismalens/agent-adapters/node_modules/open/package.json +70 -0
  223. package/node_modules/@prismalens/agent-adapters/node_modules/open/readme.md +197 -0
  224. package/node_modules/@prismalens/agent-adapters/node_modules/open/xdg-open +1267 -0
  225. package/node_modules/@prismalens/agent-adapters/node_modules/powershell-utils/index.js +79 -0
  226. package/node_modules/@prismalens/agent-adapters/node_modules/powershell-utils/license +9 -0
  227. package/node_modules/@prismalens/agent-adapters/node_modules/powershell-utils/package.json +47 -0
  228. package/node_modules/@prismalens/agent-adapters/node_modules/powershell-utils/readme.md +209 -0
  229. package/node_modules/@prismalens/agent-adapters/node_modules/run-applescript/index.js +37 -0
  230. package/node_modules/@prismalens/agent-adapters/node_modules/run-applescript/license +9 -0
  231. package/node_modules/@prismalens/agent-adapters/node_modules/run-applescript/package.json +42 -0
  232. package/node_modules/@prismalens/agent-adapters/node_modules/run-applescript/readme.md +78 -0
  233. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/License.txt +11 -0
  234. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/README.md +54 -0
  235. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/eslint.config.js +12 -0
  236. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/browser/main.js +83 -0
  237. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/browser/ril.js +210 -0
  238. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/api.js +87 -0
  239. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/cancellation.js +132 -0
  240. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/connection.js +1271 -0
  241. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  242. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  243. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/events.js +135 -0
  244. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/is.js +34 -0
  245. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +412 -0
  246. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +155 -0
  247. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/messageReader.js +246 -0
  248. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +157 -0
  249. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/messages.js +436 -0
  250. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  251. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/semaphore.js +74 -0
  252. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +77 -0
  253. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/node/main.js +296 -0
  254. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/lib/node/ril.js +163 -0
  255. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/package.json +54 -0
  256. package/node_modules/@prismalens/agent-adapters/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  257. package/node_modules/@prismalens/agent-adapters/node_modules/wsl-utils/index.js +126 -0
  258. package/node_modules/@prismalens/agent-adapters/node_modules/wsl-utils/license +9 -0
  259. package/node_modules/@prismalens/agent-adapters/node_modules/wsl-utils/package.json +48 -0
  260. package/node_modules/@prismalens/agent-adapters/node_modules/wsl-utils/readme.md +223 -0
  261. package/node_modules/@prismalens/agent-adapters/node_modules/wsl-utils/utilities.js +19 -0
  262. package/node_modules/@prismalens/agent-adapters/node_modules/zod/LICENSE +21 -0
  263. package/node_modules/@prismalens/agent-adapters/node_modules/zod/README.md +218 -0
  264. package/node_modules/@prismalens/agent-adapters/node_modules/zod/compile.cjs +96 -0
  265. package/node_modules/@prismalens/agent-adapters/node_modules/zod/compile.d.cts +1 -0
  266. package/node_modules/@prismalens/agent-adapters/node_modules/zod/compile.js +52 -0
  267. package/node_modules/@prismalens/agent-adapters/node_modules/zod/index.cjs +52 -0
  268. package/node_modules/@prismalens/agent-adapters/node_modules/zod/index.d.cts +3 -0
  269. package/node_modules/@prismalens/agent-adapters/node_modules/zod/index.js +7 -0
  270. package/node_modules/@prismalens/agent-adapters/node_modules/zod/locales/index.cjs +36 -0
  271. package/node_modules/@prismalens/agent-adapters/node_modules/zod/locales/index.d.cts +1 -0
  272. package/node_modules/@prismalens/agent-adapters/node_modules/zod/locales/index.js +1 -0
  273. package/node_modules/@prismalens/agent-adapters/node_modules/zod/locales/package.json +7 -0
  274. package/node_modules/@prismalens/agent-adapters/node_modules/zod/mini/index.cjs +51 -0
  275. package/node_modules/@prismalens/agent-adapters/node_modules/zod/mini/index.d.cts +3 -0
  276. package/node_modules/@prismalens/agent-adapters/node_modules/zod/mini/index.js +3 -0
  277. package/node_modules/@prismalens/agent-adapters/node_modules/zod/mini/package.json +7 -0
  278. package/node_modules/@prismalens/agent-adapters/node_modules/zod/package.json +147 -0
  279. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/compile.ts +56 -0
  280. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/index.ts +7 -0
  281. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/locales/index.ts +1 -0
  282. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/mini/index.ts +3 -0
  283. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/ZodError.ts +340 -0
  284. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  285. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  286. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  287. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  288. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  289. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  290. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  291. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  292. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  293. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/errors.ts +13 -0
  294. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/external.ts +6 -0
  295. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  296. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  297. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  298. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  299. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  300. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/helpers/util.ts +224 -0
  301. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/index.ts +4 -0
  302. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/locales/en.ts +124 -0
  303. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/standard-schema.ts +113 -0
  304. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  305. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  306. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  307. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  308. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  309. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  310. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  311. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  312. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  313. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  314. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  315. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
  316. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  317. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  318. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  319. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  320. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  321. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  322. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  323. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/error.test.ts +586 -0
  324. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  325. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  326. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/function.test.ts +261 -0
  327. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  328. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  329. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/intersection.test.ts +128 -0
  330. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  331. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/language-server.test.ts +206 -0
  332. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  333. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  334. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  335. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  336. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
  337. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  338. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  339. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  340. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  341. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  342. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/object.test.ts +431 -0
  343. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  344. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  345. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  346. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  347. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  348. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  349. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  350. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  351. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  352. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/readonly.test.ts +114 -0
  353. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  354. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  355. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  356. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  357. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  358. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  359. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/string.test.ts +922 -0
  360. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  361. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  362. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  363. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  364. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  365. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v3/types.ts +5138 -0
  366. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/checks.ts +33 -0
  367. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  368. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/compat.ts +78 -0
  369. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  370. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/errors.ts +97 -0
  371. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/external.ts +57 -0
  372. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/from-json-schema.ts +944 -0
  373. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  374. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/index.ts +5 -0
  375. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/iso.ts +20 -0
  376. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/parse.ts +88 -0
  377. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/schemas.ts +2937 -0
  378. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  379. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/apply.test.ts +86 -0
  380. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  381. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/assignability.test.ts +402 -0
  382. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  383. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  384. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  385. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/bigint.test.ts +89 -0
  386. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
  387. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/catch.test.ts +604 -0
  388. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  389. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +572 -0
  390. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/codec.test.ts +704 -0
  391. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  392. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
  393. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  394. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  395. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +985 -0
  396. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/date.test.ts +92 -0
  397. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/datetime.test.ts +316 -0
  398. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  399. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  400. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/default.test.ts +455 -0
  401. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  402. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  403. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +221 -0
  404. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +942 -0
  405. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/enum.test.ts +305 -0
  406. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +917 -0
  407. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/error.test.ts +1108 -0
  408. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
  409. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
  410. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  411. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +1467 -0
  412. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/function.test.ts +391 -0
  413. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  414. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/global-config.test.ts +32 -0
  415. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/hash.test.ts +67 -0
  416. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  417. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  418. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/index.test.ts +958 -0
  419. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +319 -0
  420. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +127 -0
  421. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/intersection.test.ts +334 -0
  422. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +215 -0
  423. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +39 -0
  424. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
  425. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/lazy.test.ts +262 -0
  426. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/literal.test.ts +128 -0
  427. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
  428. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
  429. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/map.test.ts +342 -0
  430. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  431. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  432. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
  433. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  434. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/number.test.ts +401 -0
  435. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/object.test.ts +1006 -0
  436. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +235 -0
  437. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/optional.test.ts +366 -0
  438. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/partial.test.ts +497 -0
  439. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
  440. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
  441. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/prefault.test.ts +144 -0
  442. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +44 -0
  443. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
  444. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  445. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  446. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  447. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  448. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/readonly.test.ts +184 -0
  449. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/record.test.ts +885 -0
  450. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +707 -0
  451. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  452. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/refine.test.ts +693 -0
  453. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
  454. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/set.test.ts +190 -0
  455. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +153 -0
  456. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
  457. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/string.test.ts +1440 -0
  458. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +124 -0
  459. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +812 -0
  460. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  461. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +4733 -0
  462. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
  463. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/tuple.test.ts +511 -0
  464. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/union.test.ts +310 -0
  465. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  466. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/validate.test.ts +645 -0
  467. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  468. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  469. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/api.ts +1875 -0
  470. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/checks.ts +1266 -0
  471. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/compile.ts +2313 -0
  472. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/core.ts +230 -0
  473. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/doc.ts +52 -0
  474. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/errors.ts +543 -0
  475. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/index.ts +19 -0
  476. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/json-schema-generator.ts +131 -0
  477. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/json-schema-processors.ts +934 -0
  478. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/json-schema.ts +148 -0
  479. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/memoizer.ts +331 -0
  480. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/parse.ts +309 -0
  481. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/regexes.ts +217 -0
  482. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/registries.ts +105 -0
  483. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/schemas.ts +5192 -0
  484. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
  485. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  486. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +1004 -0
  487. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  488. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  489. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  490. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  491. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/compile.test.ts +2036 -0
  492. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  493. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  494. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  495. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  496. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/el.test.ts +214 -0
  497. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  498. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/es.test.ts +180 -0
  499. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
  500. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  501. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
  502. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  503. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  504. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  505. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  506. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  507. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  508. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
  509. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  510. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
  511. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  512. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  513. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +133 -0
  514. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/to-json-schema.ts +857 -0
  515. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/util.ts +1280 -0
  516. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/versions.ts +5 -0
  517. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/visit.ts +193 -0
  518. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/core/zsf.ts +323 -0
  519. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/index.ts +4 -0
  520. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ar.ts +120 -0
  521. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/az.ts +116 -0
  522. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/be.ts +188 -0
  523. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/bg.ts +133 -0
  524. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/bn.ts +123 -0
  525. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ca.ts +121 -0
  526. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ckb.ts +140 -0
  527. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/cs.ts +123 -0
  528. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/da.ts +128 -0
  529. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/de.ts +121 -0
  530. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/el.ts +124 -0
  531. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/en.ts +136 -0
  532. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/eo.ts +123 -0
  533. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/es.ts +145 -0
  534. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/fa.ts +131 -0
  535. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/fi.ts +126 -0
  536. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/fr-CA.ts +121 -0
  537. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/fr.ts +139 -0
  538. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/gu.ts +123 -0
  539. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/he.ts +253 -0
  540. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/hi.ts +126 -0
  541. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/hr.ts +135 -0
  542. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/hu.ts +122 -0
  543. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/hy.ts +175 -0
  544. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/id.ts +120 -0
  545. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/index.ts +63 -0
  546. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/is.ts +124 -0
  547. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/it.ts +121 -0
  548. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ja.ts +119 -0
  549. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ka.ts +128 -0
  550. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/kh.ts +7 -0
  551. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/km.ts +124 -0
  552. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/kn.ts +126 -0
  553. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ko.ts +126 -0
  554. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/lt.ts +243 -0
  555. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/mk.ts +123 -0
  556. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ms.ts +120 -0
  557. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ne.ts +128 -0
  558. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/nl.ts +126 -0
  559. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/nn.ts +121 -0
  560. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/no.ts +121 -0
  561. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ota.ts +122 -0
  562. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/pl.ts +123 -0
  563. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ps.ts +131 -0
  564. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/pt-BR.ts +161 -0
  565. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/pt.ts +159 -0
  566. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ro.ts +132 -0
  567. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ru.ts +188 -0
  568. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/sk.ts +123 -0
  569. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/sl.ts +123 -0
  570. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/sv.ts +124 -0
  571. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ta.ts +123 -0
  572. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/tg.ts +135 -0
  573. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/th.ts +124 -0
  574. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/tk.ts +113 -0
  575. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/tr.ts +116 -0
  576. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ua.ts +7 -0
  577. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/uk.ts +122 -0
  578. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/ur.ts +124 -0
  579. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/uz.ts +120 -0
  580. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/vi.ts +122 -0
  581. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/yo.ts +129 -0
  582. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/zh-CN.ts +121 -0
  583. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/locales/zh-TW.ts +120 -0
  584. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/checks.ts +33 -0
  585. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/coerce.ts +27 -0
  586. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  587. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/external.ts +52 -0
  588. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  589. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/index.ts +3 -0
  590. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/iso.ts +66 -0
  591. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/parse.ts +16 -0
  592. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/schemas.ts +2051 -0
  593. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/apply.test.ts +57 -0
  594. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/assignability.test.ts +190 -0
  595. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
  596. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/checks.test.ts +158 -0
  597. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/codec.test.ts +582 -0
  598. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/computed.test.ts +30 -0
  599. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  600. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  601. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/error.test.ts +41 -0
  602. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/functions.test.ts +14 -0
  603. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/index.test.ts +1146 -0
  604. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/number.test.ts +109 -0
  605. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/object.test.ts +292 -0
  606. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  607. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +341 -0
  608. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  609. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4/mini/tests/string.test.ts +396 -0
  610. package/node_modules/@prismalens/agent-adapters/node_modules/zod/src/v4-mini/index.ts +3 -0
  611. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/ZodError.cjs +167 -0
  612. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/ZodError.d.cts +164 -0
  613. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/ZodError.js +143 -0
  614. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/errors.cjs +36 -0
  615. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/errors.d.cts +5 -0
  616. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/errors.js +9 -0
  617. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/external.cjs +41 -0
  618. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/external.d.cts +6 -0
  619. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/external.js +6 -0
  620. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/enumUtil.cjs +21 -0
  621. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  622. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  623. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/errorUtil.cjs +28 -0
  624. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  625. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  626. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/parseUtil.cjs +143 -0
  627. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  628. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  629. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/partialUtil.cjs +21 -0
  630. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  631. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  632. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/typeAliases.cjs +21 -0
  633. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  634. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  635. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/util.cjs +156 -0
  636. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/util.d.cts +85 -0
  637. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/helpers/util.js +133 -0
  638. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/index.cjs +52 -0
  639. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/index.d.cts +4 -0
  640. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/index.js +4 -0
  641. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/locales/en.cjs +112 -0
  642. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/locales/en.d.cts +3 -0
  643. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/locales/en.js +109 -0
  644. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/package.json +7 -0
  645. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/standard-schema.cjs +21 -0
  646. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/standard-schema.d.cts +102 -0
  647. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/standard-schema.js +1 -0
  648. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/types.cjs +3798 -0
  649. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/types.d.cts +1034 -0
  650. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v3/types.js +3697 -0
  651. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/checks.cjs +53 -0
  652. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/checks.d.cts +1 -0
  653. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/checks.js +1 -0
  654. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/coerce.cjs +66 -0
  655. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  656. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/coerce.js +17 -0
  657. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/compat.cjs +80 -0
  658. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/compat.d.cts +48 -0
  659. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/compat.js +31 -0
  660. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/deep-partial.cjs +58 -0
  661. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  662. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/deep-partial.js +13 -0
  663. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/errors.cjs +102 -0
  664. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/errors.d.cts +29 -0
  665. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/errors.js +57 -0
  666. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/external.cjs +97 -0
  667. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/external.d.cts +19 -0
  668. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/external.js +17 -0
  669. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/from-json-schema.cjs +926 -0
  670. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
  671. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/from-json-schema.js +881 -0
  672. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/in-out.cjs +82 -0
  673. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  674. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/in-out.js +36 -0
  675. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/index.cjs +52 -0
  676. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/index.d.cts +3 -0
  677. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/index.js +4 -0
  678. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/iso.cjs +68 -0
  679. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/iso.d.cts +7 -0
  680. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/iso.js +15 -0
  681. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/package.json +7 -0
  682. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/parse.cjs +63 -0
  683. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/parse.d.cts +44 -0
  684. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/parse.js +16 -0
  685. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/schemas.cjs +1676 -0
  686. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/schemas.d.cts +816 -0
  687. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/classic/schemas.js +1535 -0
  688. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/api.cjs +1269 -0
  689. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/api.d.cts +335 -0
  690. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/api.js +1107 -0
  691. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/checks.cjs +561 -0
  692. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/checks.d.cts +294 -0
  693. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/checks.js +516 -0
  694. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/compile.cjs +1908 -0
  695. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/compile.d.cts +65 -0
  696. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/compile.js +1858 -0
  697. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/core.cjs +167 -0
  698. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/core.d.cts +82 -0
  699. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/core.js +141 -0
  700. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/doc.cjs +61 -0
  701. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/doc.d.cts +16 -0
  702. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/doc.js +38 -0
  703. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/errors.cjs +317 -0
  704. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/errors.d.cts +225 -0
  705. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/errors.js +267 -0
  706. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/index.cjs +70 -0
  707. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/index.d.cts +19 -0
  708. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/index.js +19 -0
  709. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema-generator.cjs +122 -0
  710. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
  711. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema-generator.js +99 -0
  712. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema-processors.cjs +929 -0
  713. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema-processors.d.cts +65 -0
  714. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema-processors.js +843 -0
  715. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema.cjs +21 -0
  716. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema.d.cts +89 -0
  717. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/json-schema.js +1 -0
  718. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/memoizer.cjs +360 -0
  719. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  720. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/memoizer.js +311 -0
  721. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/package.json +7 -0
  722. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/parse.cjs +233 -0
  723. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/parse.d.cts +52 -0
  724. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/parse.js +175 -0
  725. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/regexes.cjs +209 -0
  726. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/regexes.d.cts +90 -0
  727. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/regexes.js +156 -0
  728. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/registries.cjs +75 -0
  729. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/registries.d.cts +35 -0
  730. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/registries.js +51 -0
  731. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/schemas.cjs +2669 -0
  732. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/schemas.d.cts +1273 -0
  733. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/schemas.js +2606 -0
  734. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/standard-schema.cjs +21 -0
  735. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
  736. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/standard-schema.js +1 -0
  737. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/to-json-schema.cjs +681 -0
  738. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/to-json-schema.d.cts +154 -0
  739. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/to-json-schema.js +651 -0
  740. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/util.cjs +949 -0
  741. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/util.d.cts +278 -0
  742. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/util.js +859 -0
  743. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/versions.cjs +27 -0
  744. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/versions.d.cts +5 -0
  745. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/versions.js +5 -0
  746. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/visit.cjs +214 -0
  747. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/visit.d.cts +30 -0
  748. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/core/visit.js +169 -0
  749. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/index.cjs +51 -0
  750. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/index.d.cts +3 -0
  751. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/index.js +4 -0
  752. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ar.cjs +138 -0
  753. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ar.d.cts +5 -0
  754. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ar.js +111 -0
  755. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/az.cjs +137 -0
  756. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/az.d.cts +5 -0
  757. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/az.js +110 -0
  758. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/be.cjs +195 -0
  759. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/be.d.cts +5 -0
  760. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/be.js +168 -0
  761. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/bg.cjs +152 -0
  762. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/bg.d.cts +5 -0
  763. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/bg.js +125 -0
  764. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/bn.cjs +140 -0
  765. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/bn.d.cts +5 -0
  766. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/bn.js +113 -0
  767. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ca.cjs +139 -0
  768. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ca.d.cts +5 -0
  769. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ca.js +112 -0
  770. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ckb.cjs +160 -0
  771. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  772. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ckb.js +133 -0
  773. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/cs.cjs +143 -0
  774. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/cs.d.cts +5 -0
  775. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/cs.js +116 -0
  776. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/da.cjs +147 -0
  777. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/da.d.cts +5 -0
  778. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/da.js +120 -0
  779. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/de.cjs +140 -0
  780. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/de.d.cts +5 -0
  781. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/de.js +113 -0
  782. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/el.cjs +139 -0
  783. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/el.d.cts +5 -0
  784. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/el.js +112 -0
  785. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/en.cjs +152 -0
  786. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/en.d.cts +5 -0
  787. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/en.js +125 -0
  788. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/eo.cjs +141 -0
  789. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/eo.d.cts +5 -0
  790. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/eo.js +114 -0
  791. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/es.cjs +163 -0
  792. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/es.d.cts +5 -0
  793. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/es.js +136 -0
  794. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fa.cjs +146 -0
  795. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fa.d.cts +5 -0
  796. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fa.js +119 -0
  797. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fi.cjs +144 -0
  798. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fi.d.cts +5 -0
  799. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fi.js +117 -0
  800. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fr-CA.cjs +139 -0
  801. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
  802. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fr-CA.js +112 -0
  803. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fr.cjs +156 -0
  804. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fr.d.cts +5 -0
  805. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/fr.js +129 -0
  806. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/gu.cjs +140 -0
  807. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/gu.d.cts +5 -0
  808. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/gu.js +113 -0
  809. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/he.cjs +248 -0
  810. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/he.d.cts +5 -0
  811. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/he.js +221 -0
  812. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hi.cjs +138 -0
  813. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hi.d.cts +5 -0
  814. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hi.js +111 -0
  815. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hr.cjs +153 -0
  816. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hr.d.cts +5 -0
  817. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hr.js +126 -0
  818. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hu.cjs +140 -0
  819. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hu.d.cts +5 -0
  820. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hu.js +113 -0
  821. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hy.cjs +185 -0
  822. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hy.d.cts +5 -0
  823. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/hy.js +158 -0
  824. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/id.cjs +138 -0
  825. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/id.d.cts +5 -0
  826. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/id.js +111 -0
  827. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/index.cjs +152 -0
  828. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/index.d.cts +63 -0
  829. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/index.js +63 -0
  830. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/is.cjs +141 -0
  831. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/is.d.cts +5 -0
  832. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/is.js +114 -0
  833. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/it.cjs +140 -0
  834. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/it.d.cts +5 -0
  835. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/it.js +113 -0
  836. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ja.cjs +139 -0
  837. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ja.d.cts +5 -0
  838. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ja.js +112 -0
  839. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ka.cjs +144 -0
  840. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ka.d.cts +5 -0
  841. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ka.js +117 -0
  842. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/kh.cjs +12 -0
  843. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/kh.d.cts +5 -0
  844. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/kh.js +5 -0
  845. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/km.cjs +142 -0
  846. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/km.d.cts +5 -0
  847. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/km.js +115 -0
  848. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/kn.cjs +143 -0
  849. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/kn.d.cts +5 -0
  850. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/kn.js +116 -0
  851. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ko.cjs +143 -0
  852. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ko.d.cts +5 -0
  853. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ko.js +116 -0
  854. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/lt.cjs +234 -0
  855. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/lt.d.cts +5 -0
  856. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/lt.js +207 -0
  857. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/mk.cjs +141 -0
  858. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/mk.d.cts +5 -0
  859. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/mk.js +114 -0
  860. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ms.cjs +139 -0
  861. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ms.d.cts +5 -0
  862. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ms.js +112 -0
  863. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ne.cjs +138 -0
  864. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ne.d.cts +5 -0
  865. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ne.js +111 -0
  866. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/nl.cjs +142 -0
  867. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/nl.d.cts +5 -0
  868. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/nl.js +115 -0
  869. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/nn.cjs +140 -0
  870. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/nn.d.cts +5 -0
  871. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/nn.js +113 -0
  872. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/no.cjs +140 -0
  873. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/no.d.cts +5 -0
  874. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/no.js +113 -0
  875. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ota.cjs +141 -0
  876. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ota.d.cts +5 -0
  877. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ota.js +114 -0
  878. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/package.json +7 -0
  879. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pl.cjs +141 -0
  880. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pl.d.cts +5 -0
  881. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pl.js +114 -0
  882. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ps.cjs +146 -0
  883. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ps.d.cts +5 -0
  884. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ps.js +119 -0
  885. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pt-BR.cjs +170 -0
  886. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  887. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pt-BR.js +143 -0
  888. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pt.cjs +169 -0
  889. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pt.d.cts +5 -0
  890. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/pt.js +142 -0
  891. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ro.cjs +149 -0
  892. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ro.d.cts +5 -0
  893. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ro.js +122 -0
  894. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ru.cjs +195 -0
  895. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ru.d.cts +5 -0
  896. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ru.js +168 -0
  897. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sk.cjs +143 -0
  898. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sk.d.cts +5 -0
  899. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sk.js +116 -0
  900. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sl.cjs +141 -0
  901. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sl.d.cts +5 -0
  902. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sl.js +114 -0
  903. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sv.cjs +142 -0
  904. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sv.d.cts +5 -0
  905. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/sv.js +115 -0
  906. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ta.cjs +142 -0
  907. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ta.d.cts +5 -0
  908. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ta.js +115 -0
  909. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tg.cjs +144 -0
  910. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tg.d.cts +5 -0
  911. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tg.js +117 -0
  912. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/th.cjs +142 -0
  913. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/th.d.cts +5 -0
  914. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/th.js +115 -0
  915. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tk.cjs +134 -0
  916. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tk.d.cts +5 -0
  917. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tk.js +107 -0
  918. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tr.cjs +137 -0
  919. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tr.d.cts +5 -0
  920. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/tr.js +110 -0
  921. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ua.cjs +12 -0
  922. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ua.d.cts +5 -0
  923. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ua.js +5 -0
  924. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/uk.cjs +140 -0
  925. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/uk.d.cts +5 -0
  926. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/uk.js +113 -0
  927. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ur.cjs +142 -0
  928. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ur.d.cts +5 -0
  929. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/ur.js +115 -0
  930. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/uz.cjs +140 -0
  931. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/uz.d.cts +5 -0
  932. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/uz.js +113 -0
  933. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/vi.cjs +140 -0
  934. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/vi.d.cts +5 -0
  935. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/vi.js +113 -0
  936. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/yo.cjs +139 -0
  937. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/yo.d.cts +5 -0
  938. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/yo.js +112 -0
  939. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/zh-CN.cjs +141 -0
  940. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
  941. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/zh-CN.js +114 -0
  942. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/zh-TW.cjs +139 -0
  943. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
  944. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/locales/zh-TW.js +112 -0
  945. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/checks.cjs +54 -0
  946. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/checks.d.cts +1 -0
  947. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/checks.js +1 -0
  948. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/coerce.cjs +71 -0
  949. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  950. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/coerce.js +22 -0
  951. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/deep-partial.cjs +58 -0
  952. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  953. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/deep-partial.js +13 -0
  954. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/external.cjs +95 -0
  955. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/external.d.cts +16 -0
  956. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/external.js +16 -0
  957. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/in-out.cjs +82 -0
  958. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  959. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/in-out.js +36 -0
  960. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/index.cjs +51 -0
  961. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/index.d.cts +3 -0
  962. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/index.js +3 -0
  963. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/iso.cjs +83 -0
  964. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/iso.d.cts +22 -0
  965. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/iso.js +34 -0
  966. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/package.json +7 -0
  967. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/parse.cjs +37 -0
  968. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/parse.d.cts +1 -0
  969. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/parse.js +1 -0
  970. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/schemas.cjs +1147 -0
  971. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/schemas.d.cts +480 -0
  972. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/mini/schemas.js +1002 -0
  973. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4/package.json +7 -0
  974. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4-mini/index.cjs +51 -0
  975. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4-mini/index.d.cts +3 -0
  976. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4-mini/index.js +3 -0
  977. package/node_modules/@prismalens/agent-adapters/node_modules/zod/v4-mini/package.json +7 -0
  978. package/node_modules/@prismalens/agent-adapters/package.json +23 -0
  979. package/node_modules/@prismalens/api/dist/src/app.module.js +18 -3
  980. package/node_modules/@prismalens/api/dist/src/core/auth/auth.guard.js +15 -12
  981. package/node_modules/@prismalens/api/dist/src/core/auth/auth.module.js +13 -5
  982. package/node_modules/@prismalens/api/dist/src/core/auth/device-cookie.js +49 -0
  983. package/node_modules/@prismalens/api/dist/src/core/auth/index.js +1 -3
  984. package/node_modules/@prismalens/api/dist/src/core/auth/instance-identity.js +39 -0
  985. package/node_modules/@prismalens/api/dist/src/core/auth/instance.controller.js +43 -0
  986. package/node_modules/@prismalens/api/dist/src/core/auth/operator.controller.js +55 -0
  987. package/node_modules/@prismalens/api/dist/src/core/auth/operator.resolver.js +45 -0
  988. package/node_modules/@prismalens/api/dist/src/core/auth/pairing.controller.js +205 -0
  989. package/node_modules/@prismalens/api/dist/src/core/harness/git-credential.js +128 -0
  990. package/node_modules/@prismalens/api/dist/src/core/harness/git-env.js +90 -0
  991. package/node_modules/@prismalens/api/dist/src/core/harness/git-failure.js +73 -0
  992. package/node_modules/@prismalens/api/dist/src/core/harness/git-spawn.js +141 -0
  993. package/node_modules/@prismalens/api/dist/src/core/harness/harness-models.service.js +83 -0
  994. package/node_modules/@prismalens/api/dist/src/core/harness/harness-probe.service.js +48 -2
  995. package/node_modules/@prismalens/api/dist/src/core/harness/harness.module.js +13 -2
  996. package/node_modules/@prismalens/api/dist/src/core/harness/harness.service.js +226 -18
  997. package/node_modules/@prismalens/api/dist/src/core/harness/repo-source.service.js +88 -39
  998. package/node_modules/@prismalens/api/dist/src/core/lifecycle/workspace-lock-shutdown.service.js +23 -0
  999. package/node_modules/@prismalens/api/dist/src/core/live/live-changes.js +92 -0
  1000. package/node_modules/@prismalens/api/dist/src/core/{users/dto/create-user.dto.js → live/live.controller.js} +21 -20
  1001. package/node_modules/@prismalens/api/dist/src/core/{users/users.controller.js → live/live.module.js} +8 -7
  1002. package/node_modules/@prismalens/api/dist/src/core/prisma/prisma.service.js +43 -26
  1003. package/node_modules/@prismalens/api/dist/src/core/settings/about.service.js +66 -0
  1004. package/node_modules/@prismalens/api/dist/src/core/settings/settings.controller.js +59 -7
  1005. package/node_modules/@prismalens/api/dist/src/core/settings/settings.module.js +2 -1
  1006. package/node_modules/@prismalens/api/dist/src/core/settings/settings.service.js +87 -26
  1007. package/node_modules/@prismalens/api/dist/src/core/setup/setup.controller.js +8 -81
  1008. package/node_modules/@prismalens/api/dist/src/core/setup/setup.module.js +1 -2
  1009. package/node_modules/@prismalens/api/dist/src/core/telemetry/telemetry.module.js +26 -0
  1010. package/node_modules/@prismalens/api/dist/src/core/telemetry/telemetry.service.js +416 -0
  1011. package/node_modules/@prismalens/api/dist/src/core/throttle/mutation-throttle.guard.js +23 -0
  1012. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatch.module.js +2 -0
  1013. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatch.service.js +618 -47
  1014. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatcher.js +6 -1
  1015. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/event-bus.js +6 -0
  1016. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/in-process-runner.js +34 -1
  1017. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/investigation-run.js +696 -116
  1018. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/job-store.js +28 -0
  1019. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/prisma-investigation-store.js +75 -9
  1020. package/node_modules/@prismalens/api/dist/src/infrastructure/health/health.controller.js +12 -4
  1021. package/node_modules/@prismalens/api/dist/src/main.js +44 -5
  1022. package/node_modules/@prismalens/api/dist/src/modules/alerts/alert-pull.service.js +610 -0
  1023. package/node_modules/@prismalens/api/dist/src/modules/alerts/alertmanager-fingerprint.js +32 -0
  1024. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.controller.js +23 -3
  1025. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.module.js +8 -3
  1026. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.service.js +62 -22
  1027. package/node_modules/@prismalens/api/dist/src/modules/alerts/incident-correlation.service.js +77 -9
  1028. package/node_modules/@prismalens/api/dist/src/modules/changes/change-events.service.js +373 -0
  1029. package/node_modules/@prismalens/api/dist/src/modules/changes/changes.controller.js +46 -0
  1030. package/node_modules/@prismalens/api/dist/src/modules/changes/changes.module.js +24 -0
  1031. package/node_modules/@prismalens/api/dist/src/modules/changes/git-history.js +93 -0
  1032. package/node_modules/@prismalens/api/dist/src/modules/delivery/report-delivery.controller.js +39 -0
  1033. package/node_modules/@prismalens/api/dist/src/modules/delivery/report-delivery.module.js +38 -0
  1034. package/node_modules/@prismalens/api/dist/src/modules/delivery/report-delivery.service.js +156 -0
  1035. package/node_modules/@prismalens/api/dist/src/modules/fixes/fixes.controller.js +39 -0
  1036. package/node_modules/@prismalens/api/dist/src/{core/users/users.module.js → modules/fixes/fixes.module.js} +12 -12
  1037. package/node_modules/@prismalens/api/dist/src/modules/fixes/fixes.service.js +239 -0
  1038. package/node_modules/@prismalens/api/dist/src/modules/impact/impact.controller.js +43 -0
  1039. package/node_modules/@prismalens/api/dist/src/modules/impact/impact.module.js +24 -0
  1040. package/node_modules/@prismalens/api/dist/src/modules/impact/impact.service.js +483 -0
  1041. package/node_modules/@prismalens/api/dist/src/modules/impact/metric-unit.js +165 -0
  1042. package/node_modules/@prismalens/api/dist/src/modules/impact/promql-shape.js +125 -0
  1043. package/node_modules/@prismalens/api/dist/src/modules/impact/series-scope.js +22 -0
  1044. package/node_modules/@prismalens/api/dist/src/modules/incidents/dto/create-incident.dto.js +1 -0
  1045. package/node_modules/@prismalens/api/dist/src/modules/incidents/dto/update-incident.dto.js +6 -0
  1046. package/node_modules/@prismalens/api/dist/src/modules/incidents/incidents.controller.js +264 -30
  1047. package/node_modules/@prismalens/api/dist/src/modules/incidents/incidents.service.js +577 -24
  1048. package/node_modules/@prismalens/api/dist/src/modules/integrations/connector-resolver.service.js +91 -0
  1049. package/node_modules/@prismalens/api/dist/src/modules/integrations/git-credential.service.js +380 -0
  1050. package/node_modules/@prismalens/api/dist/src/modules/integrations/host-token.js +52 -0
  1051. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.controller.js +57 -52
  1052. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.module.js +15 -2
  1053. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.service.js +308 -242
  1054. package/node_modules/@prismalens/api/dist/src/modules/integrations/token-refresh.processor.js +5 -0
  1055. package/node_modules/@prismalens/api/dist/src/modules/investigations/attachments.service.js +157 -0
  1056. package/node_modules/@prismalens/api/dist/src/modules/investigations/context-pack.service.js +299 -0
  1057. package/node_modules/@prismalens/api/dist/src/modules/investigations/dto/investigation-result.dto.js +8 -1
  1058. package/node_modules/@prismalens/api/dist/src/modules/investigations/dto/recommendation.dto.js +7 -1
  1059. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigation-trigger.service.js +78 -13
  1060. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigation-update.service.js +31 -8
  1061. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.controller.js +209 -12
  1062. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.module.js +10 -0
  1063. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.service.js +219 -60
  1064. package/node_modules/@prismalens/api/dist/src/modules/investigations/report-markdown.js +90 -0
  1065. package/node_modules/@prismalens/api/dist/src/modules/openapi/openapi.controller.js +3 -2
  1066. package/node_modules/@prismalens/api/dist/src/modules/overlay/overlay.logic.js +24 -15
  1067. package/node_modules/@prismalens/api/dist/src/modules/overlay/overlay.service.js +12 -4
  1068. package/node_modules/@prismalens/api/dist/src/modules/recommendations/recommendations.controller.js +1 -1
  1069. package/node_modules/@prismalens/api/dist/src/modules/recommendations/recommendations.service.js +5 -5
  1070. package/node_modules/@prismalens/api/dist/src/modules/repositories/dto/index.js +0 -1
  1071. package/node_modules/@prismalens/api/dist/src/modules/repositories/repositories.controller.js +18 -18
  1072. package/node_modules/@prismalens/api/dist/src/modules/repositories/repositories.service.js +87 -61
  1073. package/node_modules/@prismalens/api/dist/src/modules/repositories/serialize-repository.js +2 -1
  1074. package/node_modules/@prismalens/api/dist/src/modules/services/services.controller.js +32 -9
  1075. package/node_modules/@prismalens/api/dist/src/modules/services/services.module.js +2 -0
  1076. package/node_modules/@prismalens/api/dist/src/modules/services/services.service.js +98 -2
  1077. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhook-signature.guard.js +20 -0
  1078. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhooks.controller.js +53 -41
  1079. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhooks.service.js +114 -10
  1080. package/node_modules/@prismalens/api/dist/src/shared/constants/routes.js +1 -0
  1081. package/node_modules/@prismalens/api/dist/src/shared/utils/service-version.js +13 -6
  1082. package/node_modules/@prismalens/api/public/THIRD_PARTY_NOTICES.txt +4581 -0
  1083. package/node_modules/@prismalens/api/public/assets/Field-dI7mth89.js +1 -0
  1084. package/node_modules/@prismalens/api/public/assets/Hint-D3aC42I-.js +41 -0
  1085. package/node_modules/@prismalens/api/public/assets/MergeDialog-DDE8tX3n.js +1 -0
  1086. package/node_modules/@prismalens/api/public/assets/Mono-9RkwFQz6.js +1 -0
  1087. package/node_modules/@prismalens/api/public/assets/NewIncident-Zw5Jcao6.js +1 -0
  1088. package/node_modules/@prismalens/api/public/assets/ResolveDialog-D-swl2ib.js +1 -0
  1089. package/node_modules/@prismalens/api/public/assets/RunsMenu-CEu6e24R.js +3 -0
  1090. package/node_modules/@prismalens/api/public/assets/ServiceFormDialog-CtxQGmaD.js +1 -0
  1091. package/node_modules/@prismalens/api/public/assets/_authenticated-BH_Nr03P.js +1 -0
  1092. package/node_modules/@prismalens/api/public/assets/_authenticated-EivYBtHs.js +1 -0
  1093. package/node_modules/@prismalens/api/public/assets/_id-B6W3_quZ.js +1 -0
  1094. package/node_modules/@prismalens/api/public/assets/_id-B8h5SPwz.js +1 -0
  1095. package/node_modules/@prismalens/api/public/assets/_id-C9BUtx3G.js +1 -0
  1096. package/node_modules/@prismalens/api/public/assets/_id-Due91CTg.js +1 -0
  1097. package/node_modules/@prismalens/api/public/assets/alert-dialog-D5xZvMIR.js +3 -0
  1098. package/node_modules/@prismalens/api/public/assets/alerts-D8oKAWDJ.js +1 -0
  1099. package/node_modules/@prismalens/api/public/assets/app-CBBy-1nv.css +2 -0
  1100. package/node_modules/@prismalens/api/public/assets/bundle-mjs-cJTHqqzI.js +1 -0
  1101. package/node_modules/@prismalens/api/public/assets/button-Cr8PrWdC.js +1 -0
  1102. package/node_modules/@prismalens/api/public/assets/chevron-right-tMCvSyxl.js +1 -0
  1103. package/node_modules/@prismalens/api/public/assets/conversation-DHY3T60s.js +158 -0
  1104. package/node_modules/@prismalens/api/public/assets/desktop-B9RvObhX.js +58 -0
  1105. package/node_modules/@prismalens/api/public/assets/dist-zoA3XqRA.js +1 -0
  1106. package/node_modules/@prismalens/api/public/assets/fixes-D-FUCZJt.js +1 -0
  1107. package/node_modules/@prismalens/api/public/assets/format-time-CGRUxfR2.js +1 -0
  1108. package/node_modules/@prismalens/api/public/assets/get-error-message-XWlcOfOx.js +1 -0
  1109. package/node_modules/@prismalens/api/public/assets/highlighted-body-KQOG7T2V-C0hkD05-.js +1 -0
  1110. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
  1111. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
  1112. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
  1113. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
  1114. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
  1115. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
  1116. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
  1117. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
  1118. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  1119. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  1120. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  1121. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  1122. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
  1123. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
  1124. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
  1125. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
  1126. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
  1127. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
  1128. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
  1129. package/node_modules/@prismalens/api/public/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
  1130. package/node_modules/@prismalens/api/public/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2 +0 -0
  1131. package/node_modules/@prismalens/api/public/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2 +0 -0
  1132. package/node_modules/@prismalens/api/public/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2 +0 -0
  1133. package/node_modules/@prismalens/api/public/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2 +0 -0
  1134. package/node_modules/@prismalens/api/public/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2 +0 -0
  1135. package/node_modules/@prismalens/api/public/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2 +0 -0
  1136. package/node_modules/@prismalens/api/public/assets/incident-attention-Edky2Ay0.js +1 -0
  1137. package/node_modules/@prismalens/api/public/assets/incidents-BdT8KicR.js +1 -0
  1138. package/node_modules/@prismalens/api/public/assets/index-CAX__NsJ.js +21 -0
  1139. package/node_modules/@prismalens/api/public/assets/{useRouter-B64lGpJS.js → jsx-runtime-B-hcVAMW.js} +1 -1
  1140. package/node_modules/@prismalens/api/public/assets/lazyRouteComponent-C-LOuZQf.js +1 -0
  1141. package/node_modules/@prismalens/api/public/assets/live-refresh-BjrOGhpR.js +1 -0
  1142. package/node_modules/@prismalens/api/public/assets/loader-circle-CfKw5wFE.js +1 -0
  1143. package/node_modules/@prismalens/api/public/assets/matchContext-DyXrH4xk.js +1 -0
  1144. package/node_modules/@prismalens/api/public/assets/mermaid-MCJ5UELQ-DHfZwKb6.js +1 -0
  1145. package/node_modules/@prismalens/api/public/assets/model-selector-DDUMPzEw.js +2 -0
  1146. package/node_modules/@prismalens/api/public/assets/pair-DuWT-CtT.js +1 -0
  1147. package/node_modules/@prismalens/api/public/assets/plus-BV1g6VPp.js +1 -0
  1148. package/node_modules/@prismalens/api/public/assets/preload-helper-BZ1Pz5am.js +1 -0
  1149. package/node_modules/@prismalens/api/public/assets/react-dom-Cix4fOWO.js +1 -0
  1150. package/node_modules/@prismalens/api/public/assets/route-1TSuy85Z.js +1 -0
  1151. package/node_modules/@prismalens/api/public/assets/route-BCBYAoCj.js +1 -0
  1152. package/node_modules/@prismalens/api/public/assets/route-Cc4UeO_y.js +1 -0
  1153. package/node_modules/@prismalens/api/public/assets/route-CurA5hZv.js +1 -0
  1154. package/node_modules/@prismalens/api/public/assets/select-ywBitXld.js +1 -0
  1155. package/node_modules/@prismalens/api/public/assets/services-CXVezw7r.js +1 -0
  1156. package/node_modules/@prismalens/api/public/assets/settings-BPFYV0nc.js +1 -0
  1157. package/node_modules/@prismalens/api/public/assets/skeleton-BmmBz9ps.js +1 -0
  1158. package/node_modules/@prismalens/api/public/assets/state-tone-Ba9ig-4k.js +1 -0
  1159. package/node_modules/@prismalens/api/public/assets/textarea-Cqcau6oZ.js +1 -0
  1160. package/node_modules/@prismalens/api/public/assets/use-back-BO8UKjVe.js +1 -0
  1161. package/node_modules/@prismalens/api/public/assets/use-escape-back-CgXRn8uv.js +1 -0
  1162. package/node_modules/@prismalens/api/public/assets/use-first-open-Bi42wite.js +1 -0
  1163. package/node_modules/@prismalens/api/public/assets/use-sliding-mark-E_-I6D6E.js +1 -0
  1164. package/node_modules/@prismalens/api/public/assets/useInvestigationRun-C352wvI5.js +1 -0
  1165. package/node_modules/@prismalens/api/public/assets/useLocation-abth45bR.js +1 -0
  1166. package/node_modules/@prismalens/api/public/assets/useNavigate-zph-3gLZ.js +1 -0
  1167. package/node_modules/@prismalens/api/public/assets/useRouter-BGpAXxmD.js +1 -0
  1168. package/node_modules/@prismalens/api/public/assets/useSearch-BT67bTwQ.js +1 -0
  1169. package/node_modules/@prismalens/api/public/assets/useSelector-CMoDyMzz.js +1 -0
  1170. package/node_modules/@prismalens/api/public/assets/utils-BZQvbTCD.js +1 -0
  1171. package/node_modules/@prismalens/api/public/assets/utils-DjD33h0z.js +1 -0
  1172. package/node_modules/@prismalens/api/public/favicon.svg +10 -0
  1173. package/node_modules/@prismalens/api/public/index.html +0 -0
  1174. package/node_modules/@prismalens/auth/dist/device-cookie.js +12 -0
  1175. package/node_modules/@prismalens/auth/dist/index.js +9 -1
  1176. package/node_modules/@prismalens/auth/dist/pairing.js +220 -0
  1177. package/node_modules/@prismalens/auth/dist/workspace.js +49 -0
  1178. package/node_modules/@prismalens/auth/package.json +3 -3
  1179. package/node_modules/@prismalens/config/dist/env/server.js +7 -6
  1180. package/node_modules/@prismalens/config/dist/harness-selection.js +85 -29
  1181. package/node_modules/@prismalens/config/dist/harness.js +2 -1
  1182. package/node_modules/@prismalens/config/dist/index.js +8 -1
  1183. package/node_modules/@prismalens/config/dist/integrations.js +1 -0
  1184. package/node_modules/@prismalens/config/dist/investigation.js +4 -6
  1185. package/node_modules/@prismalens/config/dist/providers/harness.js +354 -74
  1186. package/node_modules/@prismalens/config/dist/providers/model-catalogue.js +72 -0
  1187. package/node_modules/@prismalens/config/dist/providers/model-catalogue.json +39 -0
  1188. package/node_modules/@prismalens/config/dist/utils/background-service.js +67 -0
  1189. package/node_modules/@prismalens/config/dist/utils/encryption-key.js +8 -1
  1190. package/node_modules/@prismalens/config/dist/utils/install-channel.js +72 -0
  1191. package/node_modules/@prismalens/config/dist/utils/instance-file.js +85 -0
  1192. package/node_modules/@prismalens/config/dist/utils/update-check.js +151 -0
  1193. package/node_modules/@prismalens/config/dist/utils/workspace-lock.js +450 -0
  1194. package/node_modules/@prismalens/config/dist/utils/wsl.js +11 -0
  1195. package/node_modules/@prismalens/config/package.json +1 -1
  1196. package/node_modules/@prismalens/contracts/dist/contracts/alerts.js +14 -1
  1197. package/node_modules/@prismalens/contracts/dist/contracts/changes.js +23 -0
  1198. package/node_modules/@prismalens/contracts/dist/contracts/fixes.js +64 -0
  1199. package/node_modules/@prismalens/contracts/dist/contracts/impact.js +23 -0
  1200. package/node_modules/@prismalens/contracts/dist/contracts/incidents.js +87 -2
  1201. package/node_modules/@prismalens/contracts/dist/contracts/index.js +23 -3
  1202. package/node_modules/@prismalens/contracts/dist/contracts/instance.js +30 -0
  1203. package/node_modules/@prismalens/contracts/dist/contracts/integrations.js +2 -68
  1204. package/node_modules/@prismalens/contracts/dist/contracts/investigations.js +51 -1
  1205. package/node_modules/@prismalens/contracts/dist/contracts/live.js +28 -0
  1206. package/node_modules/@prismalens/contracts/dist/contracts/operator.js +36 -0
  1207. package/node_modules/@prismalens/contracts/dist/contracts/pairing.js +101 -0
  1208. package/node_modules/@prismalens/contracts/dist/contracts/repositories.js +9 -12
  1209. package/node_modules/@prismalens/contracts/dist/contracts/services.js +13 -0
  1210. package/node_modules/@prismalens/contracts/dist/contracts/settings.js +69 -1
  1211. package/node_modules/@prismalens/contracts/dist/contracts/setup.js +4 -37
  1212. package/node_modules/@prismalens/contracts/dist/contracts/webhooks.js +34 -0
  1213. package/node_modules/@prismalens/contracts/dist/schemas/alert.js +12 -0
  1214. package/node_modules/@prismalens/contracts/dist/schemas/change-event.js +97 -1
  1215. package/node_modules/@prismalens/contracts/dist/schemas/context-pack.js +3 -3
  1216. package/node_modules/@prismalens/contracts/dist/schemas/impact.js +174 -0
  1217. package/node_modules/@prismalens/contracts/dist/schemas/incident.js +169 -1
  1218. package/node_modules/@prismalens/contracts/dist/schemas/index.js +4 -0
  1219. package/node_modules/@prismalens/contracts/dist/schemas/integration.js +21 -30
  1220. package/node_modules/@prismalens/contracts/dist/schemas/investigation.js +321 -19
  1221. package/node_modules/@prismalens/contracts/dist/schemas/overlay.js +14 -11
  1222. package/node_modules/@prismalens/contracts/dist/schemas/repository.js +38 -12
  1223. package/node_modules/@prismalens/contracts/dist/schemas/safe-url.js +22 -0
  1224. package/node_modules/@prismalens/contracts/dist/schemas/service.js +9 -0
  1225. package/node_modules/@prismalens/contracts/dist/schemas/settings.js +254 -15
  1226. package/node_modules/@prismalens/contracts/dist/schemas/state-labels.js +190 -0
  1227. package/node_modules/@prismalens/contracts/dist/schemas/state-semantics.js +267 -0
  1228. package/node_modules/@prismalens/contracts/package.json +1 -1
  1229. package/node_modules/@prismalens/database/dist/prisma/generated/internal/class.js +4 -4
  1230. package/node_modules/@prismalens/database/dist/prisma/generated/internal/prismaNamespace.js +58 -2
  1231. package/node_modules/@prismalens/database/dist/prisma/generated/models/Attachment.js +2 -0
  1232. package/node_modules/@prismalens/database/dist/prisma/generated/models/DeviceSession.js +2 -0
  1233. package/node_modules/@prismalens/database/dist/prisma/generated/models/PairingLink.js +2 -0
  1234. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260919203756_incident_actual_cause/migration.sql +3 -0
  1235. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260922192943_device_pairing/migration.sql +32 -0
  1236. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260922194029_connection_user_optional/migration.sql +34 -0
  1237. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260923120000_pairing_link_scopes/migration.sql +2 -0
  1238. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260926200000_source_alert_last_pulled_at/migration.sql +2 -0
  1239. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261001100000_investigation_run_facts/migration.sql +4 -0
  1240. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261001110000_investigation_resume/migration.sql +3 -0
  1241. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261003020040_incident_lifecycle/migration.sql +9 -0
  1242. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261006090000_attachments/migration.sql +15 -0
  1243. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261007135949_investigation_kind_agent_mode/migration.sql +8 -0
  1244. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261008075532_incident_merged_into/migration.sql +6 -0
  1245. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261008120000_investigation_effort/migration.sql +3 -0
  1246. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261008200000_investigation_turns/migration.sql +4 -0
  1247. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261009120000_investigation_asks/migration.sql +10 -0
  1248. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261010082105_investigation_access_mode/migration.sql +3 -0
  1249. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20261010120000_change_event_dedupe_key/migration.sql +6 -0
  1250. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/app.prisma +51 -0
  1251. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/auth.prisma +39 -0
  1252. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/integrations.prisma +3 -2
  1253. package/node_modules/@prismalens/database/dist/src/migrator/runner.js +0 -0
  1254. package/node_modules/@prismalens/engine/dist/adapter/acp-adapter.js +185 -17
  1255. package/node_modules/@prismalens/engine/dist/index.js +6 -6
  1256. package/node_modules/@prismalens/engine/dist/launch/process.js +260 -0
  1257. package/node_modules/@prismalens/engine/dist/run/conductor.js +9 -0
  1258. package/node_modules/@prismalens/engine/dist/run/connectors.js +67 -0
  1259. package/node_modules/@prismalens/engine/dist/run/fence.js +13 -2
  1260. package/node_modules/@prismalens/engine/dist/run/harness-doctor.js +84 -19
  1261. package/node_modules/@prismalens/engine/dist/run/investigate.js +446 -42
  1262. package/node_modules/@prismalens/engine/dist/run/local-default.js +187 -0
  1263. package/node_modules/@prismalens/engine/dist/run/permission.js +133 -141
  1264. package/node_modules/@prismalens/engine/dist/run/prompt.js +106 -21
  1265. package/node_modules/@prismalens/engine/dist/run/report.js +31 -7
  1266. package/node_modules/@prismalens/engine/dist/run/sandbox-check.js +270 -0
  1267. package/node_modules/@prismalens/engine/dist/runner/acp-client.js +540 -45
  1268. package/node_modules/@prismalens/engine/package.json +1 -1
  1269. package/node_modules/@prismalens/integrations/dist/engine/index.js +2 -2
  1270. package/node_modules/@prismalens/integrations/dist/engine/oauth2-flow.js +31 -2
  1271. package/node_modules/@prismalens/integrations/dist/engine/permission-check.js +0 -36
  1272. package/node_modules/@prismalens/integrations/dist/engine/token-refresh.js +10 -50
  1273. package/node_modules/@prismalens/integrations/dist/engine/token-vault.js +10 -2
  1274. package/node_modules/@prismalens/integrations/dist/engine/url-only-request.js +21 -0
  1275. package/node_modules/@prismalens/integrations/dist/index.js +6 -4
  1276. package/node_modules/@prismalens/integrations/dist/providers/github/github.adapter.js +4 -55
  1277. package/node_modules/@prismalens/integrations/dist/providers/index.js +8 -2
  1278. package/node_modules/@prismalens/integrations/dist/providers/metrics.interface.js +10 -0
  1279. package/node_modules/@prismalens/integrations/dist/providers/prometheus/index.js +4 -0
  1280. package/node_modules/@prismalens/integrations/dist/providers/prometheus/prometheus.adapter.js +105 -0
  1281. package/node_modules/@prismalens/integrations/dist/templates/alertmanager.js +38 -0
  1282. package/node_modules/@prismalens/integrations/dist/templates/git-host-token.js +38 -0
  1283. package/node_modules/@prismalens/integrations/dist/templates/github.js +4 -125
  1284. package/node_modules/@prismalens/integrations/dist/templates/index.js +14 -4
  1285. package/node_modules/@prismalens/integrations/dist/templates/legacy.js +6 -0
  1286. package/node_modules/@prismalens/integrations/dist/templates/prometheus.js +38 -0
  1287. package/node_modules/@prismalens/integrations/dist/types.js +1 -6
  1288. package/package.json +26 -13
  1289. package/dist/chunk-HKIFAYVZ.js +0 -53
  1290. package/node_modules/@prismalens/api/dist/src/core/auth/auth.controller.js +0 -41
  1291. package/node_modules/@prismalens/api/dist/src/core/auth/auth.service.js +0 -84
  1292. package/node_modules/@prismalens/api/dist/src/core/auth/current-user.decorator.js +0 -10
  1293. package/node_modules/@prismalens/api/dist/src/core/auth/orpc-auth.utils.js +0 -11
  1294. package/node_modules/@prismalens/api/dist/src/core/auth/session-cookies.js +0 -8
  1295. package/node_modules/@prismalens/api/dist/src/core/users/users.service.js +0 -52
  1296. package/node_modules/@prismalens/api/dist/src/modules/repositories/dto/create-repository.dto.js +0 -68
  1297. package/node_modules/@prismalens/api/public/assets/ClientOnly-oQFvh3ix.js +0 -1
  1298. package/node_modules/@prismalens/api/public/assets/InvestigationPanel-BvmE4cR6.js +0 -1
  1299. package/node_modules/@prismalens/api/public/assets/MutationError-KTNVqQEE.js +0 -1
  1300. package/node_modules/@prismalens/api/public/assets/ServiceFormDialog-C7dLyL7N.js +0 -1
  1301. package/node_modules/@prismalens/api/public/assets/_authenticated-BppNdFba.js +0 -1
  1302. package/node_modules/@prismalens/api/public/assets/_authenticated-wCisuJM_.js +0 -1
  1303. package/node_modules/@prismalens/api/public/assets/_id-BrdzzQIF.js +0 -1
  1304. package/node_modules/@prismalens/api/public/assets/_id-C8NXhNAK.js +0 -1
  1305. package/node_modules/@prismalens/api/public/assets/_id-CK1erj0d.js +0 -1
  1306. package/node_modules/@prismalens/api/public/assets/alert-CS2Wmto0.js +0 -1
  1307. package/node_modules/@prismalens/api/public/assets/alerts-CQ_N0W0-.js +0 -1
  1308. package/node_modules/@prismalens/api/public/assets/app-B7_kgVWH.css +0 -2
  1309. package/node_modules/@prismalens/api/public/assets/arrow-left-BOFDa8ux.js +0 -1
  1310. package/node_modules/@prismalens/api/public/assets/auth-wZ7azlRE.js +0 -3
  1311. package/node_modules/@prismalens/api/public/assets/button-BpffP5tM.js +0 -1
  1312. package/node_modules/@prismalens/api/public/assets/card-CReVHG_n.js +0 -1
  1313. package/node_modules/@prismalens/api/public/assets/chevron-right-BOWPjY4S.js +0 -1
  1314. package/node_modules/@prismalens/api/public/assets/circle-check-big-cg0UNmWv.js +0 -1
  1315. package/node_modules/@prismalens/api/public/assets/circle-x-DKryDPn4.js +0 -1
  1316. package/node_modules/@prismalens/api/public/assets/collapsible-DdpheXBx.js +0 -1
  1317. package/node_modules/@prismalens/api/public/assets/configure-C1u6gEO2.js +0 -1
  1318. package/node_modules/@prismalens/api/public/assets/dist-CqgV8s4C.js +0 -1
  1319. package/node_modules/@prismalens/api/public/assets/dist-I12loRoA.js +0 -41
  1320. package/node_modules/@prismalens/api/public/assets/empty-state-KM3G8QLx.js +0 -1
  1321. package/node_modules/@prismalens/api/public/assets/external-link-DhpTX__a.js +0 -1
  1322. package/node_modules/@prismalens/api/public/assets/eye-dV62okMp.js +0 -1
  1323. package/node_modules/@prismalens/api/public/assets/folder-git-2-B4vrLWuH.js +0 -1
  1324. package/node_modules/@prismalens/api/public/assets/git-branch-81sGnyw5.js +0 -1
  1325. package/node_modules/@prismalens/api/public/assets/github-icon-CVmm6oeW.js +0 -1
  1326. package/node_modules/@prismalens/api/public/assets/hooks-Cf_sMPxR.js +0 -1
  1327. package/node_modules/@prismalens/api/public/assets/incidents-PxIr2Mj_.js +0 -1
  1328. package/node_modules/@prismalens/api/public/assets/incidents-snzRV5Kv.js +0 -55
  1329. package/node_modules/@prismalens/api/public/assets/index-CpSQ0CqN.js +0 -18
  1330. package/node_modules/@prismalens/api/public/assets/integration-icons-BFpnKW2W.js +0 -1
  1331. package/node_modules/@prismalens/api/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  1332. package/node_modules/@prismalens/api/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  1333. package/node_modules/@prismalens/api/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  1334. package/node_modules/@prismalens/api/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  1335. package/node_modules/@prismalens/api/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  1336. package/node_modules/@prismalens/api/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  1337. package/node_modules/@prismalens/api/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  1338. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  1339. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  1340. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  1341. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  1342. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  1343. package/node_modules/@prismalens/api/public/assets/label-Dgrl4rFp.js +0 -1
  1344. package/node_modules/@prismalens/api/public/assets/layout-CSTP97CY.js +0 -1
  1345. package/node_modules/@prismalens/api/public/assets/lib-CxLMTIZP.js +0 -4
  1346. package/node_modules/@prismalens/api/public/assets/link-CYimRxHJ.js +0 -1
  1347. package/node_modules/@prismalens/api/public/assets/list-CNt7sLLg.js +0 -1
  1348. package/node_modules/@prismalens/api/public/assets/login-Cx_HB4n6.js +0 -1
  1349. package/node_modules/@prismalens/api/public/assets/orpc-client-D4Uc7lTE.js +0 -58
  1350. package/node_modules/@prismalens/api/public/assets/preload-helper-ZV40CQ2j.js +0 -1
  1351. package/node_modules/@prismalens/api/public/assets/progress-jWV8sxYw.js +0 -6
  1352. package/node_modules/@prismalens/api/public/assets/radio-group-CtY79PeV.js +0 -1
  1353. package/node_modules/@prismalens/api/public/assets/refresh-cw-DMSsuw7T.js +0 -1
  1354. package/node_modules/@prismalens/api/public/assets/select-C5DNoS_d.js +0 -1
  1355. package/node_modules/@prismalens/api/public/assets/services-nMYHaqTp.js +0 -1
  1356. package/node_modules/@prismalens/api/public/assets/settings-2-DUzYfEmR.js +0 -1
  1357. package/node_modules/@prismalens/api/public/assets/settings-ClDES8rE.js +0 -1
  1358. package/node_modules/@prismalens/api/public/assets/setup-BXY21KAX.js +0 -1
  1359. package/node_modules/@prismalens/api/public/assets/setup-CxS2DteT.js +0 -1
  1360. package/node_modules/@prismalens/api/public/assets/skeleton-_nFhh22s.js +0 -1
  1361. package/node_modules/@prismalens/api/public/assets/table-BgvCpLYs.js +0 -1
  1362. package/node_modules/@prismalens/api/public/assets/tabs-fi3R6fmK.js +0 -1
  1363. package/node_modules/@prismalens/api/public/assets/textarea-CAM3kKS0.js +0 -1
  1364. package/node_modules/@prismalens/api/public/assets/tooltip-DTm50KM9.js +0 -1
  1365. package/node_modules/@prismalens/api/public/assets/use-investigations-orpc-Ck0Rl3_n.js +0 -1
  1366. package/node_modules/@prismalens/api/public/assets/useNavigate-CdMJ9pQ0.js +0 -1
  1367. package/node_modules/@prismalens/api/public/assets/useSelector-CLaKw48R.js +0 -1
  1368. package/node_modules/@prismalens/api/public/assets/wrench-DZZjIXsU.js +0 -1
  1369. package/node_modules/@prismalens/auth/dist/auth.js +0 -81
  1370. package/node_modules/@prismalens/auth/dist/client.js +0 -47
  1371. package/node_modules/@prismalens/engine/dist/sandbox/e2b.js +0 -374
  1372. package/node_modules/@prismalens/engine/dist/sandbox/process-floor.js +0 -102
  1373. package/node_modules/@prismalens/engine/dist/sandbox/select.js +0 -104
  1374. package/node_modules/@prismalens/engine/dist/sandbox/srt.js +0 -397
  1375. package/node_modules/@prismalens/engine/dist/sandbox/wsl.js +0 -22
  1376. package/node_modules/@prismalens/integrations/dist/engine/github-app-flow.js +0 -151
  1377. /package/node_modules/@prismalens/engine/dist/{sandbox → launch}/types.js +0 -0
@@ -0,0 +1,1467 @@
1
+ import { expect, test } from "vitest";
2
+ import { fromJSONSchema } from "../from-json-schema.js";
3
+ import * as z from "../index.js";
4
+
5
+ test("basic string schema", () => {
6
+ const schema = fromJSONSchema({ type: "string" });
7
+ expect(schema.parse("hello")).toBe("hello");
8
+ expect(() => schema.parse(123)).toThrow();
9
+ });
10
+
11
+ test("string with constraints", () => {
12
+ const schema = fromJSONSchema({
13
+ type: "string",
14
+ minLength: 3,
15
+ maxLength: 10,
16
+ pattern: "^[a-z]+$",
17
+ });
18
+ expect(schema.parse("hello")).toBe("hello");
19
+ expect(schema.parse("helloworld")).toBe("helloworld"); // exactly 10 chars - valid
20
+ expect(() => schema.parse("hi")).toThrow(); // too short
21
+ expect(() => schema.parse("helloworld1")).toThrow(); // too long (11 chars)
22
+ expect(() => schema.parse("Hello")).toThrow(); // pattern mismatch
23
+ });
24
+
25
+ test("pattern is not implicitly anchored", () => {
26
+ // JSON Schema patterns match anywhere in the string, not just the full string
27
+ const schema = fromJSONSchema({
28
+ type: "string",
29
+ pattern: "foo",
30
+ });
31
+ expect(schema.parse("foo")).toBe("foo");
32
+ expect(schema.parse("foobar")).toBe("foobar"); // matches at start
33
+ expect(schema.parse("barfoo")).toBe("barfoo"); // matches at end
34
+ expect(schema.parse("barfoobar")).toBe("barfoobar"); // matches in middle
35
+ expect(() => schema.parse("bar")).toThrow(); // no match
36
+ });
37
+
38
+ test("number schema", () => {
39
+ const schema = fromJSONSchema({ type: "number" });
40
+ expect(schema.parse(42)).toBe(42);
41
+ expect(() => schema.parse("42")).toThrow();
42
+ });
43
+
44
+ test("number with constraints", () => {
45
+ const schema = fromJSONSchema({
46
+ type: "number",
47
+ minimum: 0,
48
+ maximum: 100,
49
+ multipleOf: 5,
50
+ });
51
+ expect(schema.parse(50)).toBe(50);
52
+ expect(() => schema.parse(-1)).toThrow();
53
+ expect(() => schema.parse(101)).toThrow();
54
+ expect(() => schema.parse(47)).toThrow(); // not multiple of 5
55
+ });
56
+
57
+ test("draft-04 boolean exclusive bounds do not emit a redundant inclusive bound", () => {
58
+ const schema = fromJSONSchema({
59
+ type: "number",
60
+ minimum: 5,
61
+ maximum: 10,
62
+ exclusiveMinimum: true,
63
+ exclusiveMaximum: true,
64
+ });
65
+ // exclusive on both ends: boundaries rejected, interior accepted
66
+ expect(() => schema.parse(5)).toThrow();
67
+ expect(() => schema.parse(10)).toThrow();
68
+ expect(schema.parse(7)).toBe(7);
69
+ // the dominated inclusive bound would otherwise report a second, weaker issue alongside the exclusive one
70
+ expect(schema.safeParse(4).error!.issues).toHaveLength(1);
71
+ expect(schema.safeParse(11).error!.issues).toHaveLength(1);
72
+ // the inclusive .min()/.max() must be skipped so only the exclusive checks remain
73
+ const checks = (schema as any)._zod.def.checks.map((c: any) => [
74
+ c._zod.def.check,
75
+ c._zod.def.value,
76
+ c._zod.def.inclusive,
77
+ ]);
78
+ expect(checks).toEqual([
79
+ ["greater_than", 5, false],
80
+ ["less_than", 10, false],
81
+ ]);
82
+ });
83
+
84
+ test("integer schema", () => {
85
+ const schema = fromJSONSchema({ type: "integer" });
86
+ expect(schema.parse(42)).toBe(42);
87
+ expect(() => schema.parse(42.5)).toThrow();
88
+ });
89
+
90
+ test("boolean schema", () => {
91
+ const schema = fromJSONSchema({ type: "boolean" });
92
+ expect(schema.parse(true)).toBe(true);
93
+ expect(schema.parse(false)).toBe(false);
94
+ expect(() => schema.parse("true")).toThrow();
95
+ });
96
+
97
+ test("null schema", () => {
98
+ const schema = fromJSONSchema({ type: "null" });
99
+ expect(schema.parse(null)).toBe(null);
100
+ expect(() => schema.parse(undefined)).toThrow();
101
+ });
102
+
103
+ test("object schema", () => {
104
+ const schema = fromJSONSchema({
105
+ type: "object",
106
+ properties: {
107
+ name: { type: "string" },
108
+ age: { type: "number" },
109
+ },
110
+ required: ["name"],
111
+ });
112
+ expect(schema.parse({ name: "John", age: 30 })).toEqual({ name: "John", age: 30 });
113
+ expect(schema.parse({ name: "John" })).toEqual({ name: "John" });
114
+ expect(() => schema.parse({ age: 30 })).toThrow(); // missing required
115
+ });
116
+
117
+ test("object with additionalProperties false", () => {
118
+ const schema = fromJSONSchema({
119
+ type: "object",
120
+ properties: {
121
+ name: { type: "string" },
122
+ },
123
+ additionalProperties: false,
124
+ });
125
+ expect(schema.parse({ name: "John" })).toEqual({ name: "John" });
126
+ expect(() => schema.parse({ name: "John", extra: "field" })).toThrow();
127
+ });
128
+
129
+ test("array schema", () => {
130
+ const schema = fromJSONSchema({
131
+ type: "array",
132
+ items: { type: "string" },
133
+ });
134
+ expect(schema.parse(["a", "b", "c"])).toEqual(["a", "b", "c"]);
135
+ expect(() => schema.parse([1, 2, 3])).toThrow();
136
+ });
137
+
138
+ test("array with constraints", () => {
139
+ const schema = fromJSONSchema({
140
+ type: "array",
141
+ items: { type: "number" },
142
+ minItems: 2,
143
+ maxItems: 4,
144
+ });
145
+ expect(schema.parse([1, 2])).toEqual([1, 2]);
146
+ expect(schema.parse([1, 2, 3, 4])).toEqual([1, 2, 3, 4]);
147
+ expect(() => schema.parse([1])).toThrow();
148
+ expect(() => schema.parse([1, 2, 3, 4, 5])).toThrow();
149
+ });
150
+
151
+ test("tuple with prefixItems (draft-2020-12)", () => {
152
+ const schema = fromJSONSchema({
153
+ $schema: "https://json-schema.org/draft/2020-12/schema",
154
+ type: "array",
155
+ prefixItems: [{ type: "string" }, { type: "number" }],
156
+ });
157
+ expect(schema.parse([])).toEqual([]);
158
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
159
+ expect(schema.parse(["hello", 42])).toEqual(["hello", 42]);
160
+ // no `items`, so the tail is unconstrained
161
+ expect(schema.parse(["hello", 42, "extra"])).toEqual(["hello", 42, "extra"]);
162
+ expect(() => schema.parse([1])).toThrow();
163
+ expect(() => schema.parse(["hello", "world"])).toThrow();
164
+ });
165
+
166
+ test("tuple with prefixItems and minItems (draft-2020-12)", () => {
167
+ const partialItems = fromJSONSchema({
168
+ $schema: "https://json-schema.org/draft/2020-12/schema",
169
+ type: "array",
170
+ prefixItems: [{ type: "string" }, { type: "number" }],
171
+ minItems: 1,
172
+ });
173
+ expect(() => partialItems.parse([])).toThrow();
174
+ expect(partialItems.parse(["hello"])).toEqual(["hello"]);
175
+
176
+ const allRequired = fromJSONSchema({
177
+ $schema: "https://json-schema.org/draft/2020-12/schema",
178
+ type: "array",
179
+ prefixItems: [{ type: "string" }, { type: "number" }],
180
+ minItems: 2,
181
+ });
182
+ expect(() => allRequired.parse(["hello"])).toThrow();
183
+ expect(allRequired.parse(["hello", 42])).toEqual(["hello", 42]);
184
+ });
185
+
186
+ test("tuple with prefixItems allows extra items by default (draft-2020-12)", () => {
187
+ const schema = fromJSONSchema({
188
+ $schema: "https://json-schema.org/draft/2020-12/schema",
189
+ type: "array",
190
+ prefixItems: [{ type: "string" }],
191
+ });
192
+ expect(schema.parse(["hello", 42, true])).toEqual(["hello", 42, true]);
193
+ });
194
+
195
+ test("tuple with prefixItems respects items schema (draft-2020-12)", () => {
196
+ const schema = fromJSONSchema({
197
+ $schema: "https://json-schema.org/draft/2020-12/schema",
198
+ type: "array",
199
+ prefixItems: [{ type: "string" }],
200
+ items: { type: "number" },
201
+ });
202
+ expect(schema.parse(["hello", 1, 2])).toEqual(["hello", 1, 2]);
203
+ expect(() => schema.parse(["hello", 1, "extra"])).toThrow();
204
+ });
205
+
206
+ test("tuple with prefixItems and items true allows extra items (draft-2020-12)", () => {
207
+ const schema = fromJSONSchema({
208
+ $schema: "https://json-schema.org/draft/2020-12/schema",
209
+ type: "array",
210
+ prefixItems: [{ type: "string" }, { type: "number" }],
211
+ items: true,
212
+ });
213
+ expect(schema.parse(["hello", 42, "extra", true])).toEqual(["hello", 42, "extra", true]);
214
+ });
215
+
216
+ test("tuple with prefixItems and items false rejects extra items (draft-2020-12)", () => {
217
+ const schema = fromJSONSchema({
218
+ $schema: "https://json-schema.org/draft/2020-12/schema",
219
+ type: "array",
220
+ prefixItems: [{ type: "string" }],
221
+ items: false,
222
+ });
223
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
224
+ expect(() => schema.parse(["hello", 42])).toThrow();
225
+ });
226
+
227
+ test("tuple with items array (draft-7)", () => {
228
+ const schema = fromJSONSchema({
229
+ $schema: "http://json-schema.org/draft-07/schema#",
230
+ type: "array",
231
+ items: [{ type: "string" }, { type: "number" }],
232
+ additionalItems: false,
233
+ });
234
+ expect(schema.parse([])).toEqual([]);
235
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
236
+ expect(schema.parse(["hello", 42])).toEqual(["hello", 42]);
237
+ expect(() => schema.parse([1])).toThrow();
238
+ expect(() => schema.parse(["hello", "world"])).toThrow();
239
+ expect(() => schema.parse(["hello", 42, "extra"])).toThrow();
240
+ });
241
+
242
+ test("tuple with items array and minItems (draft-7)", () => {
243
+ const partialItems = fromJSONSchema({
244
+ $schema: "http://json-schema.org/draft-07/schema#",
245
+ type: "array",
246
+ items: [{ type: "string" }, { type: "number" }],
247
+ additionalItems: false,
248
+ minItems: 1,
249
+ });
250
+ expect(() => partialItems.parse([])).toThrow();
251
+ expect(partialItems.parse(["hello"])).toEqual(["hello"]);
252
+
253
+ const allRequired = fromJSONSchema({
254
+ $schema: "http://json-schema.org/draft-07/schema#",
255
+ type: "array",
256
+ items: [{ type: "string" }, { type: "number" }],
257
+ additionalItems: false,
258
+ minItems: 2,
259
+ });
260
+ expect(() => allRequired.parse(["hello"])).toThrow();
261
+ expect(allRequired.parse(["hello", 42])).toEqual(["hello", 42]);
262
+ });
263
+
264
+ test("tuple with items array allows extra items by default (draft-7)", () => {
265
+ const schema = fromJSONSchema({
266
+ $schema: "http://json-schema.org/draft-07/schema#",
267
+ type: "array",
268
+ items: [{ type: "string" }],
269
+ });
270
+ expect(schema.parse(["hello", 42, true])).toEqual(["hello", 42, true]);
271
+ });
272
+
273
+ test("tuple with items array and additionalItems true allows extra items (draft-7)", () => {
274
+ const schema = fromJSONSchema({
275
+ $schema: "http://json-schema.org/draft-07/schema#",
276
+ type: "array",
277
+ items: [{ type: "string" }, { type: "number" }],
278
+ additionalItems: true,
279
+ });
280
+ expect(schema.parse(["hello", 42, "extra", true])).toEqual(["hello", 42, "extra", true]);
281
+ });
282
+
283
+ test("tuple with items array respects additionalItems schema (draft-7)", () => {
284
+ const schema = fromJSONSchema({
285
+ $schema: "http://json-schema.org/draft-07/schema#",
286
+ type: "array",
287
+ items: [{ type: "string" }],
288
+ additionalItems: { type: "number" },
289
+ });
290
+ expect(schema.parse(["hello", 1, 2])).toEqual(["hello", 1, 2]);
291
+ expect(() => schema.parse(["hello", 1, "extra"])).toThrow();
292
+ });
293
+
294
+ test("enum schema", () => {
295
+ const schema = fromJSONSchema({
296
+ enum: ["red", "green", "blue"],
297
+ });
298
+ expect(schema.parse("red")).toBe("red");
299
+ expect(() => schema.parse("yellow")).toThrow();
300
+ });
301
+
302
+ test("const schema", () => {
303
+ const schema = fromJSONSchema({
304
+ const: "hello",
305
+ });
306
+ expect(schema.parse("hello")).toBe("hello");
307
+ expect(() => schema.parse("world")).toThrow();
308
+ });
309
+
310
+ test("anyOf schema", () => {
311
+ const schema = fromJSONSchema({
312
+ anyOf: [{ type: "string" }, { type: "number" }],
313
+ });
314
+ expect(schema.parse("hello")).toBe("hello");
315
+ expect(schema.parse(42)).toBe(42);
316
+ expect(() => schema.parse(true)).toThrow();
317
+ });
318
+
319
+ test("allOf schema", () => {
320
+ const schema = fromJSONSchema({
321
+ allOf: [
322
+ { type: "object", properties: { name: { type: "string" } }, required: ["name"] },
323
+ { type: "object", properties: { age: { type: "number" } }, required: ["age"] },
324
+ ],
325
+ });
326
+ const result = schema.parse({ name: "John", age: 30 }) as { name: string; age: number };
327
+ expect(result.name).toBe("John");
328
+ expect(result.age).toBe(30);
329
+ });
330
+
331
+ test("allOf with empty array", () => {
332
+ // Empty allOf without explicit type returns any
333
+ const schema1 = fromJSONSchema({
334
+ allOf: [],
335
+ });
336
+ expect(schema1.parse("hello")).toBe("hello");
337
+ expect(schema1.parse(123)).toBe(123);
338
+ expect(schema1.parse({})).toEqual({});
339
+
340
+ // Empty allOf with explicit type returns base schema
341
+ const schema2 = fromJSONSchema({
342
+ type: "string",
343
+ allOf: [],
344
+ });
345
+ expect(schema2.parse("hello")).toBe("hello");
346
+ expect(() => schema2.parse(123)).toThrow();
347
+ });
348
+
349
+ test("oneOf schema (exclusive union)", () => {
350
+ const schema = fromJSONSchema({
351
+ oneOf: [{ type: "string" }, { type: "number" }],
352
+ });
353
+ expect(schema.parse("hello")).toBe("hello");
354
+ expect(schema.parse(42)).toBe(42);
355
+ expect(() => schema.parse(true)).toThrow();
356
+ });
357
+
358
+ test("type with anyOf creates intersection", () => {
359
+ // type: string AND (type:string,minLength:5 OR type:string,pattern:^a)
360
+ const schema = fromJSONSchema({
361
+ type: "string",
362
+ anyOf: [
363
+ { type: "string", minLength: 5 },
364
+ { type: "string", pattern: "^a" },
365
+ ],
366
+ });
367
+ // Should pass: string AND (minLength:5 OR pattern:^a) - matches minLength
368
+ expect(schema.parse("hello")).toBe("hello");
369
+ // Should pass: string AND (minLength:5 OR pattern:^a) - matches pattern
370
+ expect(schema.parse("abc")).toBe("abc");
371
+ // Should fail: string but neither minLength nor pattern match
372
+ expect(() => schema.parse("hi")).toThrow();
373
+ // Should fail: not a string
374
+ expect(() => schema.parse(123)).toThrow();
375
+ });
376
+
377
+ test("type with oneOf creates intersection", () => {
378
+ // type: string AND (exactly one of: type:string,minLength:5 OR type:string,pattern:^a)
379
+ const schema = fromJSONSchema({
380
+ type: "string",
381
+ oneOf: [
382
+ { type: "string", minLength: 5 },
383
+ { type: "string", pattern: "^a" },
384
+ ],
385
+ });
386
+ // Should pass: string AND minLength:5 (exactly one match - "hello" length 5 >= 5, doesn't start with 'a')
387
+ expect(schema.parse("hello")).toBe("hello");
388
+ // Should pass: string AND pattern:^a (exactly one match - "abc" starts with 'a', length 3 < 5)
389
+ expect(schema.parse("abc")).toBe("abc");
390
+ // Should fail: string but neither match
391
+ expect(() => schema.parse("hi")).toThrow();
392
+ // Should fail: not a string
393
+ expect(() => schema.parse(123)).toThrow();
394
+ // Should fail: matches both (length >= 5 AND starts with 'a') - exclusive union fails
395
+ expect(() => schema.parse("apple")).toThrow();
396
+ });
397
+
398
+ test("unevaluatedItems throws error", () => {
399
+ expect(() => {
400
+ fromJSONSchema({
401
+ type: "array",
402
+ unevaluatedItems: false,
403
+ });
404
+ }).toThrow("unevaluatedItems is not supported");
405
+ });
406
+
407
+ test("unevaluatedProperties throws error", () => {
408
+ expect(() => {
409
+ fromJSONSchema({
410
+ type: "object",
411
+ unevaluatedProperties: false,
412
+ });
413
+ }).toThrow("unevaluatedProperties is not supported");
414
+ });
415
+
416
+ test("if/then/else throws error", () => {
417
+ expect(() => {
418
+ fromJSONSchema({
419
+ if: { type: "string" },
420
+ then: { type: "number" },
421
+ });
422
+ }).toThrow("Conditional schemas");
423
+ });
424
+
425
+ test("external $ref throws error", () => {
426
+ expect(() => {
427
+ fromJSONSchema({
428
+ $ref: "https://example.com/schema#/definitions/User",
429
+ });
430
+ }).toThrow("External $ref is not supported");
431
+ });
432
+
433
+ test("local $ref resolution", () => {
434
+ const schema = fromJSONSchema({
435
+ $defs: {
436
+ User: {
437
+ type: "object",
438
+ properties: {
439
+ name: { type: "string" },
440
+ },
441
+ required: ["name"],
442
+ },
443
+ },
444
+ $ref: "#/$defs/User",
445
+ });
446
+ expect(schema.parse({ name: "John" })).toEqual({ name: "John" });
447
+ expect(() => schema.parse({})).toThrow();
448
+ });
449
+
450
+ test("local $ref resolution unescapes JSON Pointer tokens", () => {
451
+ // `~1` must be decoded before `~0`, so the id "a~1b" survives as itself and not as "a/b".
452
+ for (const id of ["Shared/User", "My~Model", "a~b/c", "a~1b"]) {
453
+ const inner = z.object({ name: z.string() }).meta({ id });
454
+ const schema = fromJSONSchema(z.toJSONSchema(z.object({ inner })));
455
+ expect(schema.parse({ inner: { name: "John" } })).toEqual({ inner: { name: "John" } });
456
+ }
457
+ });
458
+
459
+ test("circular $ref with lazy", () => {
460
+ const schema = fromJSONSchema({
461
+ $defs: {
462
+ Node: {
463
+ type: "object",
464
+ properties: {
465
+ value: { type: "string" },
466
+ children: {
467
+ type: "array",
468
+ items: { $ref: "#/$defs/Node" },
469
+ },
470
+ },
471
+ },
472
+ },
473
+ $ref: "#/$defs/Node",
474
+ });
475
+ type Node = { value: string; children: Node[] };
476
+ const result = schema.parse({
477
+ value: "root",
478
+ children: [{ value: "child", children: [] }],
479
+ }) as Node;
480
+ expect(result.value).toBe("root");
481
+ expect(result.children[0]?.value).toBe("child");
482
+ });
483
+
484
+ test("patternProperties", () => {
485
+ const schema = fromJSONSchema({
486
+ type: "object",
487
+ patternProperties: {
488
+ "^S_": { type: "string" },
489
+ },
490
+ });
491
+ const result = schema.parse({ S_name: "John", S_age: "30" }) as Record<string, string>;
492
+ expect(result.S_name).toBe("John");
493
+ expect(result.S_age).toBe("30");
494
+ });
495
+
496
+ test("propertyNames with enum does not require keys", () => {
497
+ const schema = fromJSONSchema({
498
+ type: "object",
499
+ propertyNames: { enum: ["a", "b"] },
500
+ additionalProperties: { type: "string" },
501
+ });
502
+ expect(schema.parse({ a: "x" })).toEqual({ a: "x" });
503
+ expect(schema.parse({ b: "y" })).toEqual({ b: "y" });
504
+ expect(schema.parse({})).toEqual({});
505
+ expect(() => schema.parse({ c: "z" })).toThrow();
506
+ });
507
+
508
+ test("propertyNames with enum alongside properties", () => {
509
+ const schema = fromJSONSchema({
510
+ type: "object",
511
+ properties: { a: { type: "string" } },
512
+ propertyNames: { enum: ["a", "b"] },
513
+ additionalProperties: { type: "string" },
514
+ });
515
+ expect(schema.parse({ a: "x" })).toEqual({ a: "x" });
516
+ expect(schema.parse({})).toEqual({});
517
+ expect(() => schema.parse({ c: "z" })).toThrow();
518
+ expect(() => schema.parse({ a: "x", c: "z" })).toThrow();
519
+ });
520
+
521
+ test("propertyNames with enum still honors required", () => {
522
+ const schema = fromJSONSchema({
523
+ type: "object",
524
+ properties: { a: { type: "string" }, b: { type: "string" } },
525
+ required: ["a"],
526
+ propertyNames: { enum: ["a", "b"] },
527
+ additionalProperties: { type: "string" },
528
+ });
529
+ expect(schema.parse({ a: "x" })).toEqual({ a: "x" });
530
+ expect(schema.parse({ a: "x", b: "y" })).toEqual({ a: "x", b: "y" });
531
+ expect(() => schema.parse({})).toThrow();
532
+ expect(() => schema.parse({ b: "y" })).toThrow();
533
+ });
534
+
535
+ test("propertyNames does not apply additionalProperties to declared properties", () => {
536
+ const schema = fromJSONSchema({
537
+ type: "object",
538
+ properties: { a: { type: "number" } },
539
+ propertyNames: { enum: ["a", "b"] },
540
+ additionalProperties: { type: "string" },
541
+ });
542
+ expect(schema.parse({ a: 1 })).toEqual({ a: 1 });
543
+ expect(schema.parse({ a: 1, b: "x" })).toEqual({ a: 1, b: "x" });
544
+ expect(() => schema.parse({ b: 1 })).toThrow();
545
+ });
546
+
547
+ test("propertyNames alongside additionalProperties: false", () => {
548
+ const schema = fromJSONSchema({
549
+ type: "object",
550
+ properties: { a: { type: "string" } },
551
+ propertyNames: { enum: ["a", "b"] },
552
+ additionalProperties: false,
553
+ });
554
+ expect(schema.parse({ a: "x" })).toEqual({ a: "x" });
555
+ expect(() => schema.parse({ a: "x", b: "y" })).toThrow();
556
+ expect(() => schema.parse({ c: "z" })).toThrow();
557
+ });
558
+
559
+ test("propertyNames alongside patternProperties", () => {
560
+ const schema = fromJSONSchema({
561
+ type: "object",
562
+ patternProperties: { "^S_": { type: "string" } },
563
+ propertyNames: { type: "string", pattern: "^S_" },
564
+ });
565
+ expect(schema.parse({ S_a: "x" })).toEqual({ S_a: "x" });
566
+ expect(() => schema.parse({ S_a: 1 })).toThrow();
567
+ expect(() => schema.parse({ other: "x" })).toThrow();
568
+ });
569
+
570
+ test("propertyNames rejects keys the object parse would drop or synthesize", () => {
571
+ const schema = fromJSONSchema({ type: "object", propertyNames: { enum: ["a"] } });
572
+ // An object parse strips `__proto__`, so the guard has to see the raw input.
573
+ expect(() => schema.parse(JSON.parse('{"__proto__":1}'))).toThrow();
574
+
575
+ // A property `default` adds a key that was never in the instance.
576
+ const withDefault = fromJSONSchema({
577
+ type: "object",
578
+ properties: { AB: { type: "string", default: "x" } },
579
+ propertyNames: { type: "string", pattern: "^[a-z]+$" },
580
+ });
581
+ expect(withDefault.parse({})).toEqual({ AB: "x" });
582
+ });
583
+
584
+ test("propertyNames subschema without a type still constrains keys", () => {
585
+ const schema = fromJSONSchema({
586
+ type: "object",
587
+ propertyNames: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" },
588
+ });
589
+ expect(schema.parse({ valid_key: "x" })).toEqual({ valid_key: "x" });
590
+ expect(() => schema.parse({ "001 invalid": "x" })).toThrow();
591
+ });
592
+
593
+ test("boolean propertyNames", () => {
594
+ expect(() => fromJSONSchema({ type: "object", propertyNames: false }).parse({ a: 1 })).toThrow();
595
+ expect(fromJSONSchema({ type: "object", propertyNames: false }).parse({})).toEqual({});
596
+ expect(fromJSONSchema({ type: "object", propertyNames: true }).parse({ anything: 1 })).toEqual({ anything: 1 });
597
+ });
598
+
599
+ test("propertyNames metadata is not attached where it is inert", () => {
600
+ // Not an object: nothing enforces it, so it must not be advertised either.
601
+ expect(z.toJSONSchema(fromJSONSchema({ type: "string", propertyNames: { enum: ["a"] } }))).not.toHaveProperty(
602
+ "propertyNames"
603
+ );
604
+
605
+ // A $ref target is shared by every reference to it; metadata must not leak onto it.
606
+ const shared = z.toJSONSchema(
607
+ fromJSONSchema({
608
+ $defs: { N: { type: "object", properties: { v: { type: "string" } } } },
609
+ type: "object",
610
+ properties: { a: { $ref: "#/$defs/N", propertyNames: { enum: ["v"] } }, b: { $ref: "#/$defs/N" } },
611
+ })
612
+ ) as any;
613
+ expect(shared.properties.b).not.toHaveProperty("propertyNames");
614
+ });
615
+
616
+ test("propertyNames survives a toJSONSchema round trip", () => {
617
+ const roundTripped = z.toJSONSchema(
618
+ fromJSONSchema({
619
+ type: "object",
620
+ propertyNames: { enum: ["a", "b"] },
621
+ additionalProperties: { type: "string" },
622
+ })
623
+ ) as Record<string, unknown>;
624
+ expect(roundTripped.propertyNames).toEqual({ enum: ["a", "b"] });
625
+ expect(roundTripped.required).toBeUndefined();
626
+
627
+ // The key guard is a pipe; neither side may swallow the object it wraps.
628
+ for (const io of ["input", "output"] as const) {
629
+ const out = z.toJSONSchema(
630
+ fromJSONSchema({
631
+ type: "object",
632
+ properties: { a: { type: "string" } },
633
+ propertyNames: { enum: ["a", "b"] },
634
+ additionalProperties: { type: "string" },
635
+ }),
636
+ { io }
637
+ ) as Record<string, unknown>;
638
+ expect(out.type).toBe("object");
639
+ expect(out.properties).toEqual({ a: { type: "string" } });
640
+ expect(out.propertyNames).toEqual({ enum: ["a", "b"] });
641
+ }
642
+ });
643
+
644
+ test("patternProperties with regular properties", () => {
645
+ // Note: When patternProperties is combined with properties, the intersection validates all keys against the pattern. This test uses a pattern that matches the regular property name as well.
646
+ const schema = fromJSONSchema({
647
+ type: "object",
648
+ properties: {
649
+ S_name: { type: "string" },
650
+ },
651
+ patternProperties: {
652
+ "^S_": { type: "string" },
653
+ },
654
+ required: ["S_name"],
655
+ });
656
+ const result = schema.parse({ S_name: "John", S_extra: "value" }) as Record<string, string>;
657
+ expect(result.S_name).toBe("John");
658
+ expect(result.S_extra).toBe("value");
659
+ });
660
+
661
+ test("multiple patternProperties", () => {
662
+ const schema = fromJSONSchema({
663
+ type: "object",
664
+ patternProperties: {
665
+ "^S_": { type: "string" },
666
+ "^N_": { type: "number" },
667
+ },
668
+ });
669
+ const result = schema.parse({ S_name: "John", N_count: 123 }) as Record<string, string | number>;
670
+ expect(result.S_name).toBe("John");
671
+ expect(result.N_count).toBe(123);
672
+ // Keys not matching any pattern should pass through
673
+ const result2 = schema.parse({ S_name: "John", N_count: 123, other: "value" }) as Record<string, string | number>;
674
+ expect(result2.other).toBe("value");
675
+ });
676
+
677
+ test("multiple overlapping patternProperties", () => {
678
+ // If a key matches multiple patterns, value must satisfy all schemas
679
+ const schema = fromJSONSchema({
680
+ type: "object",
681
+ patternProperties: {
682
+ "^S_": { type: "string" },
683
+ "^S_N": { type: "string", minLength: 3 },
684
+ },
685
+ });
686
+ // S_name matches ^S_ but not ^S_N
687
+ expect(schema.parse({ S_name: "John" })).toEqual({ S_name: "John" });
688
+ // S_N matches both patterns - must satisfy both (string with minLength 3)
689
+ expect(schema.parse({ S_N: "abc" })).toEqual({ S_N: "abc" });
690
+ expect(() => schema.parse({ S_N: "ab" })).toThrow(); // too short for ^S_N pattern
691
+ });
692
+
693
+ test("patternProperties with additionalProperties false", () => {
694
+ const schema = fromJSONSchema({
695
+ type: "object",
696
+ patternProperties: {
697
+ "^S_": { type: "string" },
698
+ },
699
+ additionalProperties: false,
700
+ });
701
+ expect(schema.parse({ S_name: "ok" })).toEqual({ S_name: "ok" });
702
+ expect(() => schema.parse({ X_A: false })).toThrow();
703
+ expect(() => schema.parse({ S_name: 1 })).toThrow();
704
+ });
705
+
706
+ test("patternProperties and properties with additionalProperties false", () => {
707
+ const schema = fromJSONSchema({
708
+ type: "object",
709
+ properties: {
710
+ name: { type: "string" },
711
+ },
712
+ patternProperties: {
713
+ "^S_": { type: "string" },
714
+ },
715
+ additionalProperties: false,
716
+ required: ["name"],
717
+ });
718
+ expect(schema.parse({ name: "ok", S_count: "1" })).toEqual({ name: "ok", S_count: "1" });
719
+ expect(() => schema.parse({ name: "ok", S_count: 1 })).toThrow();
720
+ expect(() => schema.parse({ name: "ok", other: "value" })).toThrow();
721
+ });
722
+
723
+ test("multiple patternProperties with additionalProperties false", () => {
724
+ const schema = fromJSONSchema({
725
+ type: "object",
726
+ patternProperties: {
727
+ "^S_": { type: "string" },
728
+ "^N_": { type: "number" },
729
+ },
730
+ additionalProperties: false,
731
+ });
732
+ expect(schema.parse({ S_a: "a", N_b: 1 })).toEqual({ S_a: "a", N_b: 1 });
733
+ expect(() => schema.parse({ S_a: "a", N_b: 1, other: "value" })).toThrow();
734
+ });
735
+
736
+ test("default value", () => {
737
+ const schema = fromJSONSchema({
738
+ type: "string",
739
+ default: "hello",
740
+ });
741
+ // Default is applied during parsing if value is missing/undefined. This depends on Zod's default behavior
742
+ expect(schema.parse("world")).toBe("world");
743
+ });
744
+
745
+ test("description metadata", () => {
746
+ const schema = fromJSONSchema({
747
+ type: "string",
748
+ description: "A string value",
749
+ });
750
+ expect(schema.parse("hello")).toBe("hello");
751
+ });
752
+
753
+ test("version detection - draft-2020-12", () => {
754
+ const schema = fromJSONSchema({
755
+ $schema: "https://json-schema.org/draft/2020-12/schema",
756
+ type: "array",
757
+ prefixItems: [{ type: "string" }],
758
+ });
759
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
760
+ });
761
+
762
+ test("version detection - draft-7", () => {
763
+ const schema = fromJSONSchema({
764
+ $schema: "http://json-schema.org/draft-07/schema#",
765
+ type: "array",
766
+ items: [{ type: "string" }],
767
+ });
768
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
769
+ });
770
+
771
+ test("version detection - draft-4", () => {
772
+ const schema = fromJSONSchema({
773
+ $schema: "http://json-schema.org/draft-04/schema#",
774
+ type: "array",
775
+ items: [{ type: "string" }],
776
+ });
777
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
778
+ });
779
+
780
+ test("default version (draft-2020-12)", () => {
781
+ const schema = fromJSONSchema({
782
+ type: "array",
783
+ prefixItems: [{ type: "string" }],
784
+ });
785
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
786
+ });
787
+
788
+ test("string format - email", () => {
789
+ const schema = fromJSONSchema({
790
+ type: "string",
791
+ format: "email",
792
+ });
793
+ expect(schema.parse("test@example.com")).toBe("test@example.com");
794
+ });
795
+
796
+ test("string format - uuid", () => {
797
+ const schema = fromJSONSchema({
798
+ type: "string",
799
+ format: "uuid",
800
+ });
801
+ const uuid = "550e8400-e29b-41d4-a716-446655440000";
802
+ expect(schema.parse(uuid)).toBe(uuid);
803
+ });
804
+
805
+ test("string format - date-time", () => {
806
+ const schema = fromJSONSchema({
807
+ type: "string",
808
+ format: "date-time",
809
+ });
810
+ expect(schema.safeParse("2026-07-29T14:30:00Z").success).toBe(true);
811
+ expect(schema.safeParse("2026-07-29T16:30:00+02:00").success).toBe(true);
812
+ expect(schema.safeParse("2026-07-29T14:30:00").success).toBe(false);
813
+ expect(schema.safeParse("2026-07-29T16:30:00+0200").success).toBe(false);
814
+
815
+ const zuluOnly = fromJSONSchema({
816
+ type: "string",
817
+ format: "date-time",
818
+ pattern: "Z$",
819
+ });
820
+ expect(zuluOnly.safeParse("2026-07-29T14:30:00Z").success).toBe(true);
821
+ expect(zuluOnly.safeParse("2026-07-29T16:30:00+02:00").success).toBe(false);
822
+ expect(zuluOnly.safeParse("garbageZ").success).toBe(false);
823
+
824
+ const roundTripped = fromJSONSchema(z.toJSONSchema(z.iso.datetime({ offset: true })));
825
+ expect(roundTripped.safeParse("2026-07-29T16:30:00+02:00").success).toBe(true);
826
+ });
827
+
828
+ test("string format - time", () => {
829
+ const schema = fromJSONSchema({
830
+ type: "string",
831
+ format: "time",
832
+ });
833
+ // full-time, so seconds and an offset are both required
834
+ expect(schema.safeParse("14:30:00Z").success).toBe(true);
835
+ expect(schema.safeParse("16:30:00+02:00").success).toBe(true);
836
+ expect(schema.safeParse("16:30:00.123-05:30").success).toBe(true);
837
+ expect(schema.safeParse("14:30:00").success).toBe(false);
838
+ expect(schema.safeParse("14:30Z").success).toBe(false);
839
+ expect(schema.safeParse("16:30:00+0200").success).toBe(false);
840
+ expect(schema.safeParse("16:30:00+24:00").success).toBe(false);
841
+ });
842
+
843
+ test("string format - hostname", () => {
844
+ const schema = fromJSONSchema({
845
+ type: "string",
846
+ format: "hostname",
847
+ });
848
+ expect(schema.parse("example.com")).toBe("example.com");
849
+ expect(() => schema.parse("not a hostname!")).toThrow();
850
+ });
851
+
852
+ test("exclusiveMinimum and exclusiveMaximum", () => {
853
+ const schema = fromJSONSchema({
854
+ type: "number",
855
+ exclusiveMinimum: 0,
856
+ exclusiveMaximum: 100,
857
+ });
858
+ expect(schema.parse(50)).toBe(50);
859
+ expect(() => schema.parse(0)).toThrow();
860
+ expect(() => schema.parse(100)).toThrow();
861
+ });
862
+
863
+ test("boolean schema (true/false)", () => {
864
+ const trueSchema = fromJSONSchema(true);
865
+ expect(trueSchema.parse("anything")).toBe("anything");
866
+
867
+ const falseSchema = fromJSONSchema(false);
868
+ expect(() => falseSchema.parse("anything")).toThrow();
869
+ });
870
+
871
+ test("empty object schema", () => {
872
+ const schema = fromJSONSchema({
873
+ type: "object",
874
+ });
875
+ expect(schema.parse({})).toEqual({});
876
+ expect(schema.parse({ extra: "field" })).toEqual({ extra: "field" });
877
+ });
878
+
879
+ test("array without items", () => {
880
+ const schema = fromJSONSchema({
881
+ type: "array",
882
+ });
883
+ expect(schema.parse([1, "string", true])).toEqual([1, "string", true]);
884
+ });
885
+
886
+ test("mixed enum types", () => {
887
+ const schema = fromJSONSchema({
888
+ enum: ["string", 42, true, null],
889
+ });
890
+ expect(schema.parse("string")).toBe("string");
891
+ expect(schema.parse(42)).toBe(42);
892
+ expect(schema.parse(true)).toBe(true);
893
+ expect(schema.parse(null)).toBe(null);
894
+ });
895
+
896
+ test("nullable in OpenAPI 3.0", () => {
897
+ // General nullable case (not just enum: [null])
898
+ const stringSchema = fromJSONSchema(
899
+ {
900
+ type: "string",
901
+ nullable: true,
902
+ },
903
+ { defaultTarget: "openapi-3.0" }
904
+ );
905
+ expect(stringSchema.parse("hello")).toBe("hello");
906
+ expect(stringSchema.parse(null)).toBe(null);
907
+ expect(() => stringSchema.parse(123)).toThrow();
908
+
909
+ const numberSchema = fromJSONSchema(
910
+ {
911
+ type: "number",
912
+ nullable: true,
913
+ },
914
+ { defaultTarget: "openapi-3.0" }
915
+ );
916
+ expect(numberSchema.parse(42)).toBe(42);
917
+ expect(numberSchema.parse(null)).toBe(null);
918
+ expect(() => numberSchema.parse("string")).toThrow();
919
+
920
+ const objectSchema = fromJSONSchema(
921
+ {
922
+ type: "object",
923
+ properties: { name: { type: "string" } },
924
+ nullable: true,
925
+ },
926
+ { defaultTarget: "openapi-3.0" }
927
+ );
928
+ expect(objectSchema.parse({ name: "John" })).toEqual({ name: "John" });
929
+ expect(objectSchema.parse(null)).toBe(null);
930
+ });
931
+
932
+ // Metadata extraction tests
933
+
934
+ test("unrecognized keys stored in globalRegistry by default", () => {
935
+ const schema = fromJSONSchema({
936
+ type: "string",
937
+ title: "My String",
938
+ deprecated: true,
939
+ examples: ["hello", "world"],
940
+ "x-custom": "custom value",
941
+ });
942
+
943
+ const meta = z.globalRegistry.get(schema);
944
+ expect(meta).toBeDefined();
945
+ expect(meta?.title).toBe("My String");
946
+ expect(meta?.deprecated).toBe(true);
947
+ expect(meta?.examples).toEqual(["hello", "world"]);
948
+ expect((meta as any)?.["x-custom"]).toBe("custom value");
949
+
950
+ // Clean up
951
+ z.globalRegistry.remove(schema);
952
+ });
953
+
954
+ test("unrecognized keys stored in custom registry", () => {
955
+ const customRegistry = z.registry<{ title?: string; deprecated?: boolean }>();
956
+
957
+ const schema = fromJSONSchema(
958
+ {
959
+ type: "number",
960
+ title: "Age",
961
+ deprecated: true,
962
+ },
963
+ { registry: customRegistry }
964
+ );
965
+
966
+ // Should be in custom registry
967
+ const meta = customRegistry.get(schema);
968
+ expect(meta).toBeDefined();
969
+ expect(meta?.title).toBe("Age");
970
+ expect(meta?.deprecated).toBe(true);
971
+
972
+ // Should NOT be in globalRegistry
973
+ expect(z.globalRegistry.get(schema)).toBeUndefined();
974
+ });
975
+
976
+ test("$id and id are captured as metadata", () => {
977
+ const customRegistry = z.registry<{ $id?: string; id?: string }>();
978
+
979
+ const schema1 = fromJSONSchema(
980
+ {
981
+ $id: "https://example.com/schemas/user",
982
+ type: "object",
983
+ },
984
+ { registry: customRegistry }
985
+ );
986
+ expect(customRegistry.get(schema1)?.$id).toBe("https://example.com/schemas/user");
987
+
988
+ const schema2 = fromJSONSchema(
989
+ {
990
+ id: "legacy-id",
991
+ type: "string",
992
+ },
993
+ { registry: customRegistry }
994
+ );
995
+ expect(customRegistry.get(schema2)?.id).toBe("legacy-id");
996
+ });
997
+
998
+ test("x-* extension keys are captured as metadata", () => {
999
+ const customRegistry = z.registry<Record<string, unknown>>();
1000
+
1001
+ const schema = fromJSONSchema(
1002
+ {
1003
+ type: "string",
1004
+ "x-openapi-example": "example value",
1005
+ "x-internal": true,
1006
+ "x-tags": ["api", "public"],
1007
+ },
1008
+ { registry: customRegistry }
1009
+ );
1010
+
1011
+ const meta = customRegistry.get(schema);
1012
+ expect(meta?.["x-openapi-example"]).toBe("example value");
1013
+ expect(meta?.["x-internal"]).toBe(true);
1014
+ expect(meta?.["x-tags"]).toEqual(["api", "public"]);
1015
+ });
1016
+
1017
+ test("metadata on nested schemas", () => {
1018
+ const customRegistry = z.registry<Record<string, unknown>>();
1019
+
1020
+ const parentSchema = fromJSONSchema(
1021
+ {
1022
+ type: "object",
1023
+ title: "User",
1024
+ properties: {
1025
+ name: {
1026
+ type: "string",
1027
+ title: "Name",
1028
+ "x-field-order": 1,
1029
+ },
1030
+ age: {
1031
+ type: "number",
1032
+ title: "Age",
1033
+ deprecated: true,
1034
+ },
1035
+ },
1036
+ },
1037
+ { registry: customRegistry }
1038
+ );
1039
+
1040
+ // Verify parent schema has its metadata
1041
+ expect(customRegistry.get(parentSchema)?.title).toBe("User");
1042
+
1043
+ // We can't easily access nested schemas directly, but we can verify the registry is being used correctly by checking a separate schema
1044
+ const simpleSchema = fromJSONSchema(
1045
+ {
1046
+ type: "string",
1047
+ title: "Simple",
1048
+ },
1049
+ { registry: customRegistry }
1050
+ );
1051
+ expect(customRegistry.get(simpleSchema)?.title).toBe("Simple");
1052
+ });
1053
+
1054
+ test("no metadata added when no unrecognized keys", () => {
1055
+ const customRegistry = z.registry<Record<string, unknown>>();
1056
+
1057
+ const schema = fromJSONSchema(
1058
+ {
1059
+ type: "string",
1060
+ minLength: 1,
1061
+ maxLength: 100,
1062
+ description: "A regular string",
1063
+ },
1064
+ { registry: customRegistry }
1065
+ );
1066
+
1067
+ // description is handled via .describe(), so it shouldn't be in metadata. All other keys are recognized, so no metadata should be added
1068
+ expect(customRegistry.get(schema)).toBeUndefined();
1069
+ });
1070
+
1071
+ test("writeOnly and examples are captured as metadata", () => {
1072
+ const customRegistry = z.registry<{ writeOnly?: boolean; examples?: unknown[] }>();
1073
+
1074
+ const schema = fromJSONSchema(
1075
+ {
1076
+ type: "string",
1077
+ writeOnly: true,
1078
+ examples: ["password123", "secret"],
1079
+ },
1080
+ { registry: customRegistry }
1081
+ );
1082
+
1083
+ const meta = customRegistry.get(schema);
1084
+ expect(meta?.writeOnly).toBe(true);
1085
+ expect(meta?.examples).toEqual(["password123", "secret"]);
1086
+ });
1087
+
1088
+ test("$comment and $anchor are captured as metadata", () => {
1089
+ const customRegistry = z.registry<{ $comment?: string; $anchor?: string }>();
1090
+
1091
+ const schema = fromJSONSchema(
1092
+ {
1093
+ type: "string",
1094
+ $comment: "This is a developer note",
1095
+ $anchor: "my-anchor",
1096
+ },
1097
+ { registry: customRegistry }
1098
+ );
1099
+
1100
+ const meta = customRegistry.get(schema);
1101
+ expect(meta?.$comment).toBe("This is a developer note");
1102
+ expect(meta?.$anchor).toBe("my-anchor");
1103
+ });
1104
+
1105
+ test("contentEncoding and contentMediaType are stored as metadata", () => {
1106
+ const customRegistry = z.registry<{ contentEncoding?: string; contentMediaType?: string }>();
1107
+
1108
+ const schema = fromJSONSchema(
1109
+ {
1110
+ type: "string",
1111
+ contentEncoding: "base64",
1112
+ contentMediaType: "image/png",
1113
+ },
1114
+ { registry: customRegistry }
1115
+ );
1116
+
1117
+ // Should just be a string schema
1118
+ expect(schema.parse("aGVsbG8gd29ybGQ=")).toBe("aGVsbG8gd29ybGQ=");
1119
+
1120
+ // Content keywords should be in metadata
1121
+ const meta = customRegistry.get(schema);
1122
+ expect(meta?.contentEncoding).toBe("base64");
1123
+ expect(meta?.contentMediaType).toBe("image/png");
1124
+ });
1125
+
1126
+ test("description on enum schema is applied", () => {
1127
+ const schema = fromJSONSchema({
1128
+ enum: ["red", "green", "blue"],
1129
+ description: "A color value",
1130
+ });
1131
+ expect(schema.description).toBe("A color value");
1132
+ expect(schema.parse("red")).toBe("red");
1133
+ });
1134
+
1135
+ test("description on const schema is applied", () => {
1136
+ const schema = fromJSONSchema({
1137
+ const: "hello",
1138
+ description: "A greeting",
1139
+ });
1140
+ expect(schema.description).toBe("A greeting");
1141
+ expect(schema.parse("hello")).toBe("hello");
1142
+ });
1143
+
1144
+ test("description on not: {} (never) schema is applied", () => {
1145
+ const schema = fromJSONSchema({
1146
+ not: {},
1147
+ description: "A never schema",
1148
+ });
1149
+ expect(schema.description).toBe("A never schema");
1150
+ expect(() => schema.parse("anything")).toThrow();
1151
+ });
1152
+
1153
+ test("default on enum schema is applied", () => {
1154
+ const schema = fromJSONSchema({
1155
+ enum: ["red", "green", "blue"],
1156
+ default: "red",
1157
+ });
1158
+ expect(schema.parse(undefined)).toBe("red");
1159
+ });
1160
+
1161
+ test("default on const schema is applied", () => {
1162
+ const schema = fromJSONSchema({
1163
+ const: "hello",
1164
+ default: "hello",
1165
+ });
1166
+ expect(schema.parse(undefined)).toBe("hello");
1167
+ });
1168
+
1169
+ test("description and default on enum schema are both applied", () => {
1170
+ const schema = fromJSONSchema({
1171
+ enum: ["red", "green", "blue"],
1172
+ description: "A color value",
1173
+ default: "red",
1174
+ });
1175
+ expect(schema.description).toBe("A color value");
1176
+ expect(schema.parse(undefined)).toBe("red");
1177
+ expect(schema.parse("green")).toBe("green");
1178
+ });
1179
+
1180
+ test("description on type-array schema is applied", () => {
1181
+ const schema = fromJSONSchema({
1182
+ type: ["string", "number"],
1183
+ description: "A string or number",
1184
+ } as any);
1185
+ expect(schema.description).toBe("A string or number");
1186
+ expect(schema.parse("hello")).toBe("hello");
1187
+ expect(schema.parse(42)).toBe(42);
1188
+ });
1189
+
1190
+ test("default on type-array schema is applied", () => {
1191
+ const schema = fromJSONSchema({
1192
+ type: ["string", "number"],
1193
+ default: "fallback",
1194
+ } as any);
1195
+ expect(schema.parse(undefined)).toBe("fallback");
1196
+ expect(schema.parse("hello")).toBe("hello");
1197
+ expect(schema.parse(42)).toBe(42);
1198
+ });
1199
+
1200
+ test("description on schema with anyOf is applied to the outer schema", () => {
1201
+ const schema = fromJSONSchema({
1202
+ description: "Either a string or a number",
1203
+ anyOf: [{ type: "string" }, { type: "number" }],
1204
+ });
1205
+ expect(schema.description).toBe("Either a string or a number");
1206
+ expect(schema.parse("hello")).toBe("hello");
1207
+ expect(schema.parse(42)).toBe(42);
1208
+ });
1209
+
1210
+ test("default on schema with anyOf is applied to the outer schema", () => {
1211
+ const schema = fromJSONSchema({
1212
+ default: "fallback",
1213
+ anyOf: [{ type: "string" }, { type: "number" }],
1214
+ });
1215
+ expect(schema.parse(undefined)).toBe("fallback");
1216
+ expect(schema.parse(42)).toBe(42);
1217
+ });
1218
+
1219
+ test("description and unrecognized metadata coexist on the same schema", () => {
1220
+ const customRegistry = z.registry<{ "x-custom"?: string; description?: string }>();
1221
+ const schema = fromJSONSchema(
1222
+ {
1223
+ type: "string",
1224
+ description: "A custom string",
1225
+ "x-custom": "value",
1226
+ },
1227
+ { registry: customRegistry }
1228
+ );
1229
+ expect(schema.description).toBe("A custom string");
1230
+ expect(customRegistry.get(schema)?.["x-custom"]).toBe("value");
1231
+ });
1232
+
1233
+ test("circular input throws a clear error", () => {
1234
+ const person: any = {
1235
+ type: "object",
1236
+ properties: { name: { type: "string" } },
1237
+ required: ["name"],
1238
+ };
1239
+ person.properties.bestFriend = person;
1240
+ expect(() => fromJSONSchema(person)).toThrow(/not valid JSON/);
1241
+ });
1242
+
1243
+ test("getter-based input that synthesizes a cycle throws", () => {
1244
+ const root: any = { type: "object", properties: { name: { type: "string" } } };
1245
+ Object.defineProperty(root.properties, "self", {
1246
+ enumerable: true,
1247
+ get() {
1248
+ return root;
1249
+ },
1250
+ });
1251
+ expect(() => fromJSONSchema(root)).toThrow(/not valid JSON/);
1252
+ });
1253
+
1254
+ test("BigInt in input throws", () => {
1255
+ const input: any = { type: "integer", minimum: 1n };
1256
+ expect(() => fromJSONSchema(input)).toThrow(/not valid JSON/);
1257
+ });
1258
+
1259
+ test("class-instance input is normalized to a plain object", () => {
1260
+ class StringSchema {
1261
+ type = "string" as const;
1262
+ minLength = 2;
1263
+ }
1264
+ const schema = fromJSONSchema(new StringSchema() as any);
1265
+ expect(schema.parse("hi")).toBe("hi");
1266
+ expect(() => schema.parse("h")).toThrow();
1267
+ });
1268
+
1269
+ test("getter-based properties are materialized", () => {
1270
+ const input: any = { type: "object", properties: {}, required: [] };
1271
+ Object.defineProperty(input.properties, "name", {
1272
+ enumerable: true,
1273
+ get() {
1274
+ return { type: "string" };
1275
+ },
1276
+ });
1277
+ const schema = fromJSONSchema(input);
1278
+ expect(schema.parse({ name: "Alice" })).toEqual({ name: "Alice" });
1279
+ });
1280
+
1281
+ test("Date default is coerced to its JSON string form", () => {
1282
+ const date = new Date("2026-01-02T03:04:05.000Z");
1283
+ const schema = fromJSONSchema({ type: "string", default: date as any });
1284
+ expect(schema.parse(undefined)).toBe(date.toISOString());
1285
+ });
1286
+
1287
+ // An object literal can't express an own "__proto__" key — `{ __proto__: x }` sets the literal's prototype instead. JSON.parse is both the realistic source of a JSON Schema and the only way to write these cases.
1288
+ test("required __proto__ property is represented in the shape but stripped during parsing", () => {
1289
+ const schema = fromJSONSchema(
1290
+ JSON.parse(`{
1291
+ "type": "object",
1292
+ "properties": { "__proto__": { "type": "string", "const": "admin" }, "role": { "type": "string" } },
1293
+ "required": ["__proto__", "role"]
1294
+ }`)
1295
+ );
1296
+
1297
+ expect(Object.prototype.hasOwnProperty.call((schema as z.ZodObject).shape, "__proto__")).toBe(true);
1298
+ expect(schema.parse({ role: "x" })).toEqual({ role: "x" });
1299
+ expect(schema.parse(JSON.parse(`{ "role": "x", "__proto__": "wrong" }`))).toEqual({ role: "x" });
1300
+ expect(schema.parse(JSON.parse(`{ "role": "x", "__proto__": "admin" }`))).toEqual({ role: "x" });
1301
+ });
1302
+
1303
+ test("__proto__ annotation key reaches the registry", () => {
1304
+ const registry = z.registry<Record<string, unknown>>();
1305
+ const schema = fromJSONSchema(JSON.parse(`{ "type": "string", "__proto__": { "custom": 1 } }`), { registry });
1306
+
1307
+ const meta = registry.get(schema)!;
1308
+ expect(Object.prototype.hasOwnProperty.call(meta, "__proto__")).toBe(true);
1309
+ expect(meta.__proto__).toEqual({ custom: 1 });
1310
+ });
1311
+
1312
+ test("minProperties and maxProperties count the raw input", () => {
1313
+ const schema = fromJSONSchema({
1314
+ type: "object",
1315
+ properties: { a: { type: "string" } },
1316
+ minProperties: 1,
1317
+ maxProperties: 2,
1318
+ });
1319
+ expect(schema.safeParse({ a: "x" }).success).toBe(true);
1320
+ expect(schema.safeParse({}).error!.issues[0]).toMatchObject({ code: "too_small", origin: "object", minimum: 1 });
1321
+ expect(schema.safeParse({ a: "x", b: 1, c: 2 }).error!.issues[0]).toMatchObject({
1322
+ code: "too_big",
1323
+ origin: "object",
1324
+ maximum: 2,
1325
+ });
1326
+ // raw input: a defaulted property does not satisfy the minimum, and a dropped __proto__ still counts
1327
+ const defaulted = fromJSONSchema({
1328
+ type: "object",
1329
+ properties: { a: { type: "string", default: "x" } },
1330
+ minProperties: 1,
1331
+ });
1332
+ expect(defaulted.safeParse({}).success).toBe(false);
1333
+ const capped = fromJSONSchema({ type: "object", maxProperties: 1 });
1334
+ expect(capped.safeParse(JSON.parse('{"__proto__":1,"a":1}')).success).toBe(false);
1335
+ expect(z.toJSONSchema(schema)).toMatchObject({ minProperties: 1, maxProperties: 2 });
1336
+ });
1337
+
1338
+ test("minProperties composes with propertyNames in one guard", () => {
1339
+ const schema = fromJSONSchema({ type: "object", propertyNames: { pattern: "^a" }, minProperties: 1 });
1340
+ expect(schema.safeParse({}).error!.issues[0]!.code).toBe("too_small");
1341
+ expect(schema.safeParse({ b: 1 }).error!.issues[0]!.code).toBe("invalid_key");
1342
+ expect(schema.safeParse({ a: 1 }).success).toBe(true);
1343
+ });
1344
+
1345
+ test("uniqueItems rejects structural duplicates", () => {
1346
+ const schema = fromJSONSchema({ type: "array", uniqueItems: true });
1347
+ expect(
1348
+ schema.safeParse([
1349
+ { a: 1, b: 2 },
1350
+ { b: 2, a: 1 },
1351
+ ]).error!.issues[0]
1352
+ ).toMatchObject({
1353
+ code: "custom",
1354
+ path: [1],
1355
+ });
1356
+ expect(schema.safeParse([1, "1", true, 1]).success).toBe(false);
1357
+ expect(schema.safeParse([{ a: 1 }, { a: 2 }, [1], [2]]).success).toBe(true);
1358
+ expect(z.toJSONSchema(schema)).toMatchObject({ uniqueItems: true });
1359
+ });
1360
+
1361
+ test("contains with minContains and maxContains", () => {
1362
+ const schema = fromJSONSchema({ type: "array", contains: { type: "integer" } });
1363
+ expect(schema.safeParse(["a"]).success).toBe(false);
1364
+ expect(schema.safeParse(["a", 1]).success).toBe(true);
1365
+ const bounded = fromJSONSchema({ type: "array", contains: { type: "integer" }, minContains: 2, maxContains: 3 });
1366
+ expect(bounded.safeParse([1, "a"]).success).toBe(false);
1367
+ expect(bounded.safeParse([1, 2, "a"]).success).toBe(true);
1368
+ expect(bounded.safeParse([1, 2, 3, 4]).success).toBe(false);
1369
+ // minContains: 0 accepts an array with no matches at all
1370
+ expect(fromJSONSchema({ type: "array", contains: { type: "integer" }, minContains: 0 }).safeParse([]).success).toBe(
1371
+ true
1372
+ );
1373
+ expect(z.toJSONSchema(bounded)).toMatchObject({ contains: { type: "integer" }, minContains: 2, maxContains: 3 });
1374
+ });
1375
+
1376
+ test("uniqueItems and contains see the raw instance, not the parsed output", () => {
1377
+ const items = { type: "object", properties: { a: { type: "string", default: "x" } } } as const;
1378
+ // no instance item carries `a`; the default must not synthesize the match
1379
+ const contains = fromJSONSchema({
1380
+ type: "array",
1381
+ items,
1382
+ contains: { type: "object", properties: { a: { const: "x" } }, required: ["a"] },
1383
+ });
1384
+ expect(contains.safeParse([{}]).success).toBe(false);
1385
+ expect(contains.safeParse([{ a: "x" }]).success).toBe(true);
1386
+ // the instance items differ; the default must not collapse them into duplicates
1387
+ const unique = fromJSONSchema({ type: "array", items, uniqueItems: true });
1388
+ expect(unique.safeParse([{ a: "x" }, {}]).success).toBe(true);
1389
+ expect(unique.safeParse([{}, {}]).error!.issues[0]).toMatchObject({ code: "custom", path: [1] });
1390
+ });
1391
+
1392
+ test("a guard keyword takes precedence over the length keywords", () => {
1393
+ const schema = fromJSONSchema({ type: "array", items: { type: "integer" }, minItems: 3, uniqueItems: true });
1394
+ // the guard runs on the input side of the pipe, so its issue aborts before minItems is reached
1395
+ expect(schema.safeParse([1, 1]).error!.issues.map((i) => i.code)).toEqual(["custom"]);
1396
+ expect(schema.safeParse([1, 2]).error!.issues.map((i) => i.code)).toEqual(["too_small"]);
1397
+ });
1398
+
1399
+ test("a guard keyword drops default and examples from the input-mode document", () => {
1400
+ // the guard is a transform on the pipe's input side, and toJSONSchema strips annotations from a transforming schema in input mode
1401
+ const schema = fromJSONSchema({ type: "array", uniqueItems: true, default: [], examples: [[1]] });
1402
+ expect(z.toJSONSchema(schema, { io: "input" })).not.toHaveProperty("default");
1403
+ expect(z.toJSONSchema(schema, { io: "output" })).toMatchObject({ default: [], examples: [[1]] });
1404
+ // without a guard keyword both modes carry them
1405
+ const plain = fromJSONSchema({ type: "array", default: [], examples: [[1]] });
1406
+ expect(z.toJSONSchema(plain, { io: "input" })).toMatchObject({ default: [], examples: [[1]] });
1407
+ });
1408
+
1409
+ test("uniqueItems equality follows JSON semantics", () => {
1410
+ const schema = fromJSONSchema({ type: "array", uniqueItems: true });
1411
+ expect(schema.safeParse([1, "1", true, null]).success).toBe(true);
1412
+ expect(schema.safeParse([{ a: undefined }, {}]).success).toBe(true);
1413
+ expect(
1414
+ schema.safeParse([
1415
+ [1, [2]],
1416
+ [1, [2]],
1417
+ ]).success
1418
+ ).toBe(false);
1419
+ expect(schema.safeParse([{ a: "b=c" }, { "a=b": "c" }]).success).toBe(true);
1420
+ // every duplicate is reported against the first element it matches
1421
+ expect(schema.safeParse([1, 1, 1]).error!.issues.map((i) => i.path[0])).toEqual([1, 2]);
1422
+ // a cycle cannot be compared, so it is never called a duplicate rather than hanging
1423
+ const cyclic: any = {};
1424
+ cyclic.self = cyclic;
1425
+ expect(schema.safeParse([cyclic, cyclic]).success).toBe(true);
1426
+ });
1427
+
1428
+ test("a carried subschema that references $defs is dropped rather than emitted dangling", () => {
1429
+ const schema = fromJSONSchema({
1430
+ type: "array",
1431
+ contains: { $ref: "#/$defs/Hit" },
1432
+ $defs: { Hit: { type: "object", properties: { id: { type: "string" } }, required: ["id"] } },
1433
+ });
1434
+ // enforcement is unaffected; only the round trip gives the keyword up
1435
+ expect(schema.safeParse([{ id: "a" }]).success).toBe(true);
1436
+ expect(schema.safeParse([{}]).success).toBe(false);
1437
+ expect(JSON.stringify(z.toJSONSchema(schema))).not.toContain("$ref");
1438
+ expect(z.toJSONSchema(schema)).not.toHaveProperty("contains");
1439
+ // an inline subschema is self-contained, so it still round-trips
1440
+ const inline = fromJSONSchema({ type: "array", contains: { type: "integer" } });
1441
+ expect(z.toJSONSchema(inline)).toMatchObject({ contains: { type: "integer" } });
1442
+ // only schema positions are walked, so a `$ref` key in instance data or an unknown annotation still travels
1443
+ for (const annotation of [{ default: { $ref: "literal" } }, { "x-note": { $ref: "literal" } }]) {
1444
+ const annotated = fromJSONSchema({ type: "array", contains: { type: "integer", ...annotation } });
1445
+ expect(annotated.safeParse(["x"]).success).toBe(false);
1446
+ expect(z.toJSONSchema(annotated)).toMatchObject({ contains: { type: "integer" } });
1447
+ }
1448
+ // draft-7 `dependencies` is a schema map; its array form names properties and holds no reference
1449
+ const dependent = fromJSONSchema({
1450
+ type: "array",
1451
+ contains: { type: "object", dependencies: { a: { $ref: "#/definitions/Hit" } } },
1452
+ definitions: { Hit: { type: "object" } },
1453
+ });
1454
+ expect(z.toJSONSchema(dependent)).not.toHaveProperty("contains");
1455
+ const named = fromJSONSchema({
1456
+ type: "array",
1457
+ contains: { type: "object", dependencies: { a: ["b"] } },
1458
+ });
1459
+ expect(z.toJSONSchema(named)).toMatchObject({ contains: { dependencies: { a: ["b"] } } });
1460
+ // a reference nested in a schema position is still caught
1461
+ const nested = fromJSONSchema({
1462
+ type: "array",
1463
+ contains: { type: "array", items: { $ref: "#/$defs/Hit" } },
1464
+ $defs: { Hit: { type: "string" } },
1465
+ });
1466
+ expect(z.toJSONSchema(nested)).not.toHaveProperty("contains");
1467
+ });