prismatica 0.2.0

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 (1815) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +403 -0
  3. package/dist/agent-runner.js +656 -0
  4. package/dist/agent-runner.js.map +1 -0
  5. package/dist/assurance/mainpush.js +533 -0
  6. package/dist/assurance/mainpush.js.map +1 -0
  7. package/dist/assurance/outcome.js +165 -0
  8. package/dist/assurance/outcome.js.map +1 -0
  9. package/dist/assurance/passport.js +98 -0
  10. package/dist/assurance/passport.js.map +1 -0
  11. package/dist/assurance/proofinputs.js +425 -0
  12. package/dist/assurance/proofinputs.js.map +1 -0
  13. package/dist/atlas/diff.js +102 -0
  14. package/dist/atlas/diff.js.map +1 -0
  15. package/dist/atlas/evidence.js +31 -0
  16. package/dist/atlas/evidence.js.map +1 -0
  17. package/dist/atlas/hygiene.js +288 -0
  18. package/dist/atlas/hygiene.js.map +1 -0
  19. package/dist/atlas/impact.js +312 -0
  20. package/dist/atlas/impact.js.map +1 -0
  21. package/dist/atlas/labels.js +121 -0
  22. package/dist/atlas/labels.js.map +1 -0
  23. package/dist/atlas/next.js +327 -0
  24. package/dist/atlas/next.js.map +1 -0
  25. package/dist/atlas/packs.js +169 -0
  26. package/dist/atlas/packs.js.map +1 -0
  27. package/dist/atlas/presentation.js +349 -0
  28. package/dist/atlas/presentation.js.map +1 -0
  29. package/dist/atlas/render.js +269 -0
  30. package/dist/atlas/render.js.map +1 -0
  31. package/dist/atlas/store.js +389 -0
  32. package/dist/atlas/store.js.map +1 -0
  33. package/dist/board/html.js +1382 -0
  34. package/dist/board/html.js.map +1 -0
  35. package/dist/board/model.js +369 -0
  36. package/dist/board/model.js.map +1 -0
  37. package/dist/board/server.js +325 -0
  38. package/dist/board/server.js.map +1 -0
  39. package/dist/board/understand.js +128 -0
  40. package/dist/board/understand.js.map +1 -0
  41. package/dist/change.js +104 -0
  42. package/dist/change.js.map +1 -0
  43. package/dist/checkengine.js +220 -0
  44. package/dist/checkengine.js.map +1 -0
  45. package/dist/claudehook.js +189 -0
  46. package/dist/claudehook.js.map +1 -0
  47. package/dist/cli.js +1120 -0
  48. package/dist/cli.js.map +1 -0
  49. package/dist/clipboard.js +33 -0
  50. package/dist/clipboard.js.map +1 -0
  51. package/dist/commands/abandon.js +329 -0
  52. package/dist/commands/abandon.js.map +1 -0
  53. package/dist/commands/accept.js +85 -0
  54. package/dist/commands/accept.js.map +1 -0
  55. package/dist/commands/amend.js +158 -0
  56. package/dist/commands/amend.js.map +1 -0
  57. package/dist/commands/check.js +128 -0
  58. package/dist/commands/check.js.map +1 -0
  59. package/dist/commands/close.js +274 -0
  60. package/dist/commands/close.js.map +1 -0
  61. package/dist/commands/context.js +46 -0
  62. package/dist/commands/context.js.map +1 -0
  63. package/dist/commands/delta.js +192 -0
  64. package/dist/commands/delta.js.map +1 -0
  65. package/dist/commands/discover.js +173 -0
  66. package/dist/commands/discover.js.map +1 -0
  67. package/dist/commands/doctor.js +384 -0
  68. package/dist/commands/doctor.js.map +1 -0
  69. package/dist/commands/flow.js +929 -0
  70. package/dist/commands/flow.js.map +1 -0
  71. package/dist/commands/forget.js +33 -0
  72. package/dist/commands/forget.js.map +1 -0
  73. package/dist/commands/frame.js +231 -0
  74. package/dist/commands/frame.js.map +1 -0
  75. package/dist/commands/gate.js +48 -0
  76. package/dist/commands/gate.js.map +1 -0
  77. package/dist/commands/guide.js +17 -0
  78. package/dist/commands/guide.js.map +1 -0
  79. package/dist/commands/init.js +257 -0
  80. package/dist/commands/init.js.map +1 -0
  81. package/dist/commands/merge.js +188 -0
  82. package/dist/commands/merge.js.map +1 -0
  83. package/dist/commands/next.js +352 -0
  84. package/dist/commands/next.js.map +1 -0
  85. package/dist/commands/open.js +255 -0
  86. package/dist/commands/open.js.map +1 -0
  87. package/dist/commands/pack.js +165 -0
  88. package/dist/commands/pack.js.map +1 -0
  89. package/dist/commands/propose.js +102 -0
  90. package/dist/commands/propose.js.map +1 -0
  91. package/dist/commands/ready.js +931 -0
  92. package/dist/commands/ready.js.map +1 -0
  93. package/dist/commands/review.js +434 -0
  94. package/dist/commands/review.js.map +1 -0
  95. package/dist/commands/rules.js +399 -0
  96. package/dist/commands/rules.js.map +1 -0
  97. package/dist/commands/seal.js +52 -0
  98. package/dist/commands/seal.js.map +1 -0
  99. package/dist/commands/ship.js +333 -0
  100. package/dist/commands/ship.js.map +1 -0
  101. package/dist/commands/start.js +1164 -0
  102. package/dist/commands/start.js.map +1 -0
  103. package/dist/commands/stats.js +100 -0
  104. package/dist/commands/stats.js.map +1 -0
  105. package/dist/commands/view.js +23 -0
  106. package/dist/commands/view.js.map +1 -0
  107. package/dist/config.js +46 -0
  108. package/dist/config.js.map +1 -0
  109. package/dist/detect.js +495 -0
  110. package/dist/detect.js.map +1 -0
  111. package/dist/errors.js +13 -0
  112. package/dist/errors.js.map +1 -0
  113. package/dist/evidence.js +20 -0
  114. package/dist/evidence.js.map +1 -0
  115. package/dist/executor.js +256 -0
  116. package/dist/executor.js.map +1 -0
  117. package/dist/gate.js +109 -0
  118. package/dist/gate.js.map +1 -0
  119. package/dist/gh.js +236 -0
  120. package/dist/gh.js.map +1 -0
  121. package/dist/git.js +589 -0
  122. package/dist/git.js.map +1 -0
  123. package/dist/guide.js +2038 -0
  124. package/dist/guide.js.map +1 -0
  125. package/dist/ids.js +60 -0
  126. package/dist/ids.js.map +1 -0
  127. package/dist/keys.js +58 -0
  128. package/dist/keys.js.map +1 -0
  129. package/dist/ledger.js +197 -0
  130. package/dist/ledger.js.map +1 -0
  131. package/dist/paths.js +109 -0
  132. package/dist/paths.js.map +1 -0
  133. package/dist/planning/context.js +94 -0
  134. package/dist/planning/context.js.map +1 -0
  135. package/dist/planning/materialise.js +210 -0
  136. package/dist/planning/materialise.js.map +1 -0
  137. package/dist/planning/pack.js +290 -0
  138. package/dist/planning/pack.js.map +1 -0
  139. package/dist/planning/schema.js +296 -0
  140. package/dist/planning/schema.js.map +1 -0
  141. package/dist/planning/snapshot.js +308 -0
  142. package/dist/planning/snapshot.js.map +1 -0
  143. package/dist/planning/validate.js +417 -0
  144. package/dist/planning/validate.js.map +1 -0
  145. package/dist/prepush.js +192 -0
  146. package/dist/prepush.js.map +1 -0
  147. package/dist/records/store.js +268 -0
  148. package/dist/records/store.js.map +1 -0
  149. package/dist/records/types.js +836 -0
  150. package/dist/records/types.js.map +1 -0
  151. package/dist/registry.js +68 -0
  152. package/dist/registry.js.map +1 -0
  153. package/dist/render.js +275 -0
  154. package/dist/render.js.map +1 -0
  155. package/dist/runtime.js +47 -0
  156. package/dist/runtime.js.map +1 -0
  157. package/dist/scope.js +62 -0
  158. package/dist/scope.js.map +1 -0
  159. package/dist/secrets.js +24 -0
  160. package/dist/secrets.js.map +1 -0
  161. package/dist/selfhost.js +199 -0
  162. package/dist/selfhost.js.map +1 -0
  163. package/dist/shellquote.js +5 -0
  164. package/dist/shellquote.js.map +1 -0
  165. package/dist/skills.js +398 -0
  166. package/dist/skills.js.map +1 -0
  167. package/dist/state.js +62 -0
  168. package/dist/state.js.map +1 -0
  169. package/dist/templates.js +264 -0
  170. package/dist/templates.js.map +1 -0
  171. package/dist/tier.js +48 -0
  172. package/dist/tier.js.map +1 -0
  173. package/dist/ui.js +94 -0
  174. package/dist/ui.js.map +1 -0
  175. package/dist/vitestreport.js +59 -0
  176. package/dist/vitestreport.js.map +1 -0
  177. package/dist/worktree.js +31 -0
  178. package/dist/worktree.js.map +1 -0
  179. package/node_modules/@inquirer/ansi/LICENSE +22 -0
  180. package/node_modules/@inquirer/ansi/README.md +89 -0
  181. package/node_modules/@inquirer/ansi/dist/index.d.ts +14 -0
  182. package/node_modules/@inquirer/ansi/dist/index.js +21 -0
  183. package/node_modules/@inquirer/ansi/package.json +78 -0
  184. package/node_modules/@inquirer/checkbox/LICENSE +22 -0
  185. package/node_modules/@inquirer/checkbox/README.md +195 -0
  186. package/node_modules/@inquirer/checkbox/dist/index.d.ts +56 -0
  187. package/node_modules/@inquirer/checkbox/dist/index.js +210 -0
  188. package/node_modules/@inquirer/checkbox/package.json +92 -0
  189. package/node_modules/@inquirer/confirm/LICENSE +22 -0
  190. package/node_modules/@inquirer/confirm/README.md +92 -0
  191. package/node_modules/@inquirer/confirm/dist/index.d.ts +10 -0
  192. package/node_modules/@inquirer/confirm/dist/index.js +48 -0
  193. package/node_modules/@inquirer/confirm/package.json +90 -0
  194. package/node_modules/@inquirer/core/LICENSE +22 -0
  195. package/node_modules/@inquirer/core/README.md +386 -0
  196. package/node_modules/@inquirer/core/dist/index.d.ts +13 -0
  197. package/node_modules/@inquirer/core/dist/index.js +12 -0
  198. package/node_modules/@inquirer/core/dist/lib/Separator.d.ts +10 -0
  199. package/node_modules/@inquirer/core/dist/lib/Separator.js +21 -0
  200. package/node_modules/@inquirer/core/dist/lib/create-prompt.d.ts +4 -0
  201. package/node_modules/@inquirer/core/dist/lib/create-prompt.js +165 -0
  202. package/node_modules/@inquirer/core/dist/lib/errors.d.ts +20 -0
  203. package/node_modules/@inquirer/core/dist/lib/errors.js +21 -0
  204. package/node_modules/@inquirer/core/dist/lib/hook-engine.d.ts +23 -0
  205. package/node_modules/@inquirer/core/dist/lib/hook-engine.js +111 -0
  206. package/node_modules/@inquirer/core/dist/lib/key.d.ts +15 -0
  207. package/node_modules/@inquirer/core/dist/lib/key.js +34 -0
  208. package/node_modules/@inquirer/core/dist/lib/make-theme.d.ts +3 -0
  209. package/node_modules/@inquirer/core/dist/lib/make-theme.js +32 -0
  210. package/node_modules/@inquirer/core/dist/lib/pagination/use-pagination.d.ts +16 -0
  211. package/node_modules/@inquirer/core/dist/lib/pagination/use-pagination.js +121 -0
  212. package/node_modules/@inquirer/core/dist/lib/promise-polyfill.d.ts +7 -0
  213. package/node_modules/@inquirer/core/dist/lib/promise-polyfill.js +14 -0
  214. package/node_modules/@inquirer/core/dist/lib/screen-manager.d.ts +14 -0
  215. package/node_modules/@inquirer/core/dist/lib/screen-manager.js +84 -0
  216. package/node_modules/@inquirer/core/dist/lib/theme.d.ts +166 -0
  217. package/node_modules/@inquirer/core/dist/lib/theme.js +29 -0
  218. package/node_modules/@inquirer/core/dist/lib/use-effect.d.ts +2 -0
  219. package/node_modules/@inquirer/core/dist/lib/use-effect.js +11 -0
  220. package/node_modules/@inquirer/core/dist/lib/use-keypress.d.ts +3 -0
  221. package/node_modules/@inquirer/core/dist/lib/use-keypress.js +20 -0
  222. package/node_modules/@inquirer/core/dist/lib/use-memo.d.ts +1 -0
  223. package/node_modules/@inquirer/core/dist/lib/use-memo.js +14 -0
  224. package/node_modules/@inquirer/core/dist/lib/use-prefix.d.ts +5 -0
  225. package/node_modules/@inquirer/core/dist/lib/use-prefix.js +35 -0
  226. package/node_modules/@inquirer/core/dist/lib/use-ref.d.ts +6 -0
  227. package/node_modules/@inquirer/core/dist/lib/use-ref.js +4 -0
  228. package/node_modules/@inquirer/core/dist/lib/use-state.d.ts +4 -0
  229. package/node_modules/@inquirer/core/dist/lib/use-state.js +23 -0
  230. package/node_modules/@inquirer/core/dist/lib/utils.d.ts +13 -0
  231. package/node_modules/@inquirer/core/dist/lib/utils.js +25 -0
  232. package/node_modules/@inquirer/core/package.json +97 -0
  233. package/node_modules/@inquirer/editor/LICENSE +22 -0
  234. package/node_modules/@inquirer/editor/README.md +101 -0
  235. package/node_modules/@inquirer/editor/dist/index.d.ts +21 -0
  236. package/node_modules/@inquirer/editor/dist/index.js +73 -0
  237. package/node_modules/@inquirer/editor/package.json +91 -0
  238. package/node_modules/@inquirer/expand/LICENSE +22 -0
  239. package/node_modules/@inquirer/expand/README.md +141 -0
  240. package/node_modules/@inquirer/expand/dist/index.d.ts +24 -0
  241. package/node_modules/@inquirer/expand/dist/index.js +110 -0
  242. package/node_modules/@inquirer/expand/package.json +90 -0
  243. package/node_modules/@inquirer/external-editor/LICENSE +22 -0
  244. package/node_modules/@inquirer/external-editor/README.md +154 -0
  245. package/node_modules/@inquirer/external-editor/dist/errors/CreateFileError.d.ts +10 -0
  246. package/node_modules/@inquirer/external-editor/dist/errors/CreateFileError.js +13 -0
  247. package/node_modules/@inquirer/external-editor/dist/errors/LaunchEditorError.d.ts +10 -0
  248. package/node_modules/@inquirer/external-editor/dist/errors/LaunchEditorError.js +13 -0
  249. package/node_modules/@inquirer/external-editor/dist/errors/ReadFileError.d.ts +10 -0
  250. package/node_modules/@inquirer/external-editor/dist/errors/ReadFileError.js +13 -0
  251. package/node_modules/@inquirer/external-editor/dist/errors/RemoveFileError.d.ts +10 -0
  252. package/node_modules/@inquirer/external-editor/dist/errors/RemoveFileError.js +13 -0
  253. package/node_modules/@inquirer/external-editor/dist/errors.d.ts +20 -0
  254. package/node_modules/@inquirer/external-editor/dist/errors.js +32 -0
  255. package/node_modules/@inquirer/external-editor/dist/index.d.ts +35 -0
  256. package/node_modules/@inquirer/external-editor/dist/index.js +146 -0
  257. package/node_modules/@inquirer/external-editor/dist/parse-editor-command.d.ts +5 -0
  258. package/node_modules/@inquirer/external-editor/dist/parse-editor-command.js +28 -0
  259. package/node_modules/@inquirer/external-editor/package.json +97 -0
  260. package/node_modules/@inquirer/figures/LICENSE +22 -0
  261. package/node_modules/@inquirer/figures/dist/index.d.ts +275 -0
  262. package/node_modules/@inquirer/figures/dist/index.js +315 -0
  263. package/node_modules/@inquirer/figures/package.json +80 -0
  264. package/node_modules/@inquirer/input/LICENSE +22 -0
  265. package/node_modules/@inquirer/input/README.md +101 -0
  266. package/node_modules/@inquirer/input/dist/index.d.ts +20 -0
  267. package/node_modules/@inquirer/input/dist/index.js +99 -0
  268. package/node_modules/@inquirer/input/package.json +90 -0
  269. package/node_modules/@inquirer/number/LICENSE +22 -0
  270. package/node_modules/@inquirer/number/README.md +95 -0
  271. package/node_modules/@inquirer/number/dist/index.d.ts +13 -0
  272. package/node_modules/@inquirer/number/dist/index.js +95 -0
  273. package/node_modules/@inquirer/number/package.json +90 -0
  274. package/node_modules/@inquirer/password/LICENSE +22 -0
  275. package/node_modules/@inquirer/password/README.md +93 -0
  276. package/node_modules/@inquirer/password/dist/index.d.ts +15 -0
  277. package/node_modules/@inquirer/password/dist/index.js +60 -0
  278. package/node_modules/@inquirer/password/package.json +91 -0
  279. package/node_modules/@inquirer/prompts/LICENSE +22 -0
  280. package/node_modules/@inquirer/prompts/README.md +543 -0
  281. package/node_modules/@inquirer/prompts/dist/index.d.ts +10 -0
  282. package/node_modules/@inquirer/prompts/dist/index.js +10 -0
  283. package/node_modules/@inquirer/prompts/package.json +101 -0
  284. package/node_modules/@inquirer/rawlist/LICENSE +22 -0
  285. package/node_modules/@inquirer/rawlist/README.md +135 -0
  286. package/node_modules/@inquirer/rawlist/dist/index.d.ts +23 -0
  287. package/node_modules/@inquirer/rawlist/dist/index.js +145 -0
  288. package/node_modules/@inquirer/rawlist/package.json +90 -0
  289. package/node_modules/@inquirer/search/LICENSE +22 -0
  290. package/node_modules/@inquirer/search/README.md +213 -0
  291. package/node_modules/@inquirer/search/dist/index.d.ts +33 -0
  292. package/node_modules/@inquirer/search/dist/index.js +195 -0
  293. package/node_modules/@inquirer/search/package.json +91 -0
  294. package/node_modules/@inquirer/select/LICENSE +22 -0
  295. package/node_modules/@inquirer/select/README.md +188 -0
  296. package/node_modules/@inquirer/select/dist/index.d.ts +34 -0
  297. package/node_modules/@inquirer/select/dist/index.js +191 -0
  298. package/node_modules/@inquirer/select/package.json +92 -0
  299. package/node_modules/@inquirer/type/LICENSE +22 -0
  300. package/node_modules/@inquirer/type/dist/index.d.ts +2 -0
  301. package/node_modules/@inquirer/type/dist/index.js +2 -0
  302. package/node_modules/@inquirer/type/dist/inquirer.d.ts +35 -0
  303. package/node_modules/@inquirer/type/dist/inquirer.js +1 -0
  304. package/node_modules/@inquirer/type/dist/utils.d.ts +29 -0
  305. package/node_modules/@inquirer/type/dist/utils.js +2 -0
  306. package/node_modules/@inquirer/type/package.json +87 -0
  307. package/node_modules/@sec-ant/readable-stream/LICENSE +21 -0
  308. package/node_modules/@sec-ant/readable-stream/README.md +230 -0
  309. package/node_modules/@sec-ant/readable-stream/dist/core/asyncIterablePrototype.d.ts +1 -0
  310. package/node_modules/@sec-ant/readable-stream/dist/core/asyncIterator.d.ts +27 -0
  311. package/node_modules/@sec-ant/readable-stream/dist/core/fromAnyIterable.d.ts +6 -0
  312. package/node_modules/@sec-ant/readable-stream/dist/index/asyncIterator.d.ts +2 -0
  313. package/node_modules/@sec-ant/readable-stream/dist/index/asyncIterator.js +5 -0
  314. package/node_modules/@sec-ant/readable-stream/dist/index/fromAnyIterable.d.ts +2 -0
  315. package/node_modules/@sec-ant/readable-stream/dist/index/fromAnyIterable.js +5 -0
  316. package/node_modules/@sec-ant/readable-stream/dist/index/index.d.ts +2 -0
  317. package/node_modules/@sec-ant/readable-stream/dist/index/index.js +8 -0
  318. package/node_modules/@sec-ant/readable-stream/dist/polyfill/asyncIterator.d.ts +1 -0
  319. package/node_modules/@sec-ant/readable-stream/dist/polyfill/asyncIterator.js +3 -0
  320. package/node_modules/@sec-ant/readable-stream/dist/polyfill/fromAnyIterable.d.ts +1 -0
  321. package/node_modules/@sec-ant/readable-stream/dist/polyfill/fromAnyIterable.js +2 -0
  322. package/node_modules/@sec-ant/readable-stream/dist/polyfill/index.d.ts +2 -0
  323. package/node_modules/@sec-ant/readable-stream/dist/polyfill/index.js +4 -0
  324. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.d.ts +1 -0
  325. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js +89 -0
  326. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.d.ts +1 -0
  327. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js +34 -0
  328. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.d.ts +2 -0
  329. package/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js +6 -0
  330. package/node_modules/@sec-ant/readable-stream/dist/types/async-iterator.d.ts +11 -0
  331. package/node_modules/@sec-ant/readable-stream/package.json +96 -0
  332. package/node_modules/@sindresorhus/merge-streams/index.d.ts +44 -0
  333. package/node_modules/@sindresorhus/merge-streams/index.js +265 -0
  334. package/node_modules/@sindresorhus/merge-streams/license +9 -0
  335. package/node_modules/@sindresorhus/merge-streams/package.json +49 -0
  336. package/node_modules/@sindresorhus/merge-streams/readme.md +53 -0
  337. package/node_modules/argparse/LICENSE +21 -0
  338. package/node_modules/argparse/README.md +257 -0
  339. package/node_modules/argparse/index.js +3 -0
  340. package/node_modules/argparse/lib/action/append/constant.js +47 -0
  341. package/node_modules/argparse/lib/action/append.js +53 -0
  342. package/node_modules/argparse/lib/action/count.js +40 -0
  343. package/node_modules/argparse/lib/action/help.js +47 -0
  344. package/node_modules/argparse/lib/action/store/constant.js +43 -0
  345. package/node_modules/argparse/lib/action/store/false.js +27 -0
  346. package/node_modules/argparse/lib/action/store/true.js +26 -0
  347. package/node_modules/argparse/lib/action/store.js +50 -0
  348. package/node_modules/argparse/lib/action/subparsers.js +149 -0
  349. package/node_modules/argparse/lib/action/version.js +47 -0
  350. package/node_modules/argparse/lib/action.js +146 -0
  351. package/node_modules/argparse/lib/action_container.js +482 -0
  352. package/node_modules/argparse/lib/argparse.js +14 -0
  353. package/node_modules/argparse/lib/argument/error.js +50 -0
  354. package/node_modules/argparse/lib/argument/exclusive.js +54 -0
  355. package/node_modules/argparse/lib/argument/group.js +75 -0
  356. package/node_modules/argparse/lib/argument_parser.js +1161 -0
  357. package/node_modules/argparse/lib/const.js +21 -0
  358. package/node_modules/argparse/lib/help/added_formatters.js +87 -0
  359. package/node_modules/argparse/lib/help/formatter.js +795 -0
  360. package/node_modules/argparse/lib/namespace.js +76 -0
  361. package/node_modules/argparse/lib/utils.js +57 -0
  362. package/node_modules/argparse/package.json +34 -0
  363. package/node_modules/chardet/LICENSE +19 -0
  364. package/node_modules/chardet/README.md +135 -0
  365. package/node_modules/chardet/lib/encoding/ascii.d.ts +6 -0
  366. package/node_modules/chardet/lib/encoding/ascii.js +23 -0
  367. package/node_modules/chardet/lib/encoding/ascii.js.map +1 -0
  368. package/node_modules/chardet/lib/encoding/index.d.ts +14 -0
  369. package/node_modules/chardet/lib/encoding/index.js +3 -0
  370. package/node_modules/chardet/lib/encoding/index.js.map +1 -0
  371. package/node_modules/chardet/lib/encoding/iso2022.d.ts +23 -0
  372. package/node_modules/chardet/lib/encoding/iso2022.js +114 -0
  373. package/node_modules/chardet/lib/encoding/iso2022.js.map +1 -0
  374. package/node_modules/chardet/lib/encoding/mbcs.d.ts +50 -0
  375. package/node_modules/chardet/lib/encoding/mbcs.js +347 -0
  376. package/node_modules/chardet/lib/encoding/mbcs.js.map +1 -0
  377. package/node_modules/chardet/lib/encoding/sbcs.d.ts +94 -0
  378. package/node_modules/chardet/lib/encoding/sbcs.js +935 -0
  379. package/node_modules/chardet/lib/encoding/sbcs.js.map +1 -0
  380. package/node_modules/chardet/lib/encoding/unicode.d.ts +27 -0
  381. package/node_modules/chardet/lib/encoding/unicode.js +109 -0
  382. package/node_modules/chardet/lib/encoding/unicode.js.map +1 -0
  383. package/node_modules/chardet/lib/encoding/utf8.d.ts +6 -0
  384. package/node_modules/chardet/lib/encoding/utf8.js +72 -0
  385. package/node_modules/chardet/lib/encoding/utf8.js.map +1 -0
  386. package/node_modules/chardet/lib/fs/browser.d.ts +2 -0
  387. package/node_modules/chardet/lib/fs/browser.js +6 -0
  388. package/node_modules/chardet/lib/fs/browser.js.map +1 -0
  389. package/node_modules/chardet/lib/fs/node.d.ts +2 -0
  390. package/node_modules/chardet/lib/fs/node.js +11 -0
  391. package/node_modules/chardet/lib/fs/node.js.map +1 -0
  392. package/node_modules/chardet/lib/index.d.ts +20 -0
  393. package/node_modules/chardet/lib/index.js +177 -0
  394. package/node_modules/chardet/lib/index.js.map +1 -0
  395. package/node_modules/chardet/lib/match.d.ts +9 -0
  396. package/node_modules/chardet/lib/match.js +8 -0
  397. package/node_modules/chardet/lib/match.js.map +1 -0
  398. package/node_modules/chardet/lib/utils.d.ts +1 -0
  399. package/node_modules/chardet/lib/utils.js +10 -0
  400. package/node_modules/chardet/lib/utils.js.map +1 -0
  401. package/node_modules/chardet/package.json +100 -0
  402. package/node_modules/cli-width/LICENSE +13 -0
  403. package/node_modules/cli-width/README.md +71 -0
  404. package/node_modules/cli-width/index.d.ts +13 -0
  405. package/node_modules/cli-width/index.js +49 -0
  406. package/node_modules/cli-width/package.json +40 -0
  407. package/node_modules/commander/LICENSE +22 -0
  408. package/node_modules/commander/Readme.md +1172 -0
  409. package/node_modules/commander/index.js +21 -0
  410. package/node_modules/commander/lib/argument.js +147 -0
  411. package/node_modules/commander/lib/command.js +2790 -0
  412. package/node_modules/commander/lib/error.js +36 -0
  413. package/node_modules/commander/lib/help.js +731 -0
  414. package/node_modules/commander/lib/option.js +377 -0
  415. package/node_modules/commander/lib/suggestSimilar.js +99 -0
  416. package/node_modules/commander/package-support.json +19 -0
  417. package/node_modules/commander/package.json +64 -0
  418. package/node_modules/commander/typings/index.d.ts +1113 -0
  419. package/node_modules/cross-spawn/LICENSE +21 -0
  420. package/node_modules/cross-spawn/README.md +89 -0
  421. package/node_modules/cross-spawn/index.js +39 -0
  422. package/node_modules/cross-spawn/lib/enoent.js +59 -0
  423. package/node_modules/cross-spawn/lib/parse.js +91 -0
  424. package/node_modules/cross-spawn/lib/util/escape.js +47 -0
  425. package/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  426. package/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  427. package/node_modules/cross-spawn/package.json +73 -0
  428. package/node_modules/esprima/LICENSE.BSD +21 -0
  429. package/node_modules/esprima/README.md +46 -0
  430. package/node_modules/esprima/bin/esparse.js +139 -0
  431. package/node_modules/esprima/bin/esvalidate.js +236 -0
  432. package/node_modules/esprima/dist/esprima.js +6709 -0
  433. package/node_modules/esprima/package.json +112 -0
  434. package/node_modules/execa/index.d.ts +27 -0
  435. package/node_modules/execa/index.js +28 -0
  436. package/node_modules/execa/lib/arguments/command.js +20 -0
  437. package/node_modules/execa/lib/arguments/cwd.js +39 -0
  438. package/node_modules/execa/lib/arguments/encoding-option.js +50 -0
  439. package/node_modules/execa/lib/arguments/escape.js +88 -0
  440. package/node_modules/execa/lib/arguments/fd-options.js +108 -0
  441. package/node_modules/execa/lib/arguments/file-url.js +25 -0
  442. package/node_modules/execa/lib/arguments/options.js +96 -0
  443. package/node_modules/execa/lib/arguments/shell.js +11 -0
  444. package/node_modules/execa/lib/arguments/specific.js +111 -0
  445. package/node_modules/execa/lib/convert/add.js +15 -0
  446. package/node_modules/execa/lib/convert/concurrent.js +33 -0
  447. package/node_modules/execa/lib/convert/duplex.js +69 -0
  448. package/node_modules/execa/lib/convert/iterable.js +34 -0
  449. package/node_modules/execa/lib/convert/readable.js +113 -0
  450. package/node_modules/execa/lib/convert/shared.js +46 -0
  451. package/node_modules/execa/lib/convert/writable.js +90 -0
  452. package/node_modules/execa/lib/io/contents.js +116 -0
  453. package/node_modules/execa/lib/io/input-sync.js +44 -0
  454. package/node_modules/execa/lib/io/iterate.js +110 -0
  455. package/node_modules/execa/lib/io/max-buffer.js +89 -0
  456. package/node_modules/execa/lib/io/output-async.js +80 -0
  457. package/node_modules/execa/lib/io/output-sync.js +135 -0
  458. package/node_modules/execa/lib/io/pipeline.js +48 -0
  459. package/node_modules/execa/lib/io/strip-newline.js +12 -0
  460. package/node_modules/execa/lib/ipc/array.js +4 -0
  461. package/node_modules/execa/lib/ipc/buffer-messages.js +47 -0
  462. package/node_modules/execa/lib/ipc/forward.js +56 -0
  463. package/node_modules/execa/lib/ipc/get-each.js +89 -0
  464. package/node_modules/execa/lib/ipc/get-one.js +69 -0
  465. package/node_modules/execa/lib/ipc/graceful.js +72 -0
  466. package/node_modules/execa/lib/ipc/incoming.js +79 -0
  467. package/node_modules/execa/lib/ipc/ipc-input.js +44 -0
  468. package/node_modules/execa/lib/ipc/methods.js +49 -0
  469. package/node_modules/execa/lib/ipc/outgoing.js +47 -0
  470. package/node_modules/execa/lib/ipc/reference.js +44 -0
  471. package/node_modules/execa/lib/ipc/send.js +91 -0
  472. package/node_modules/execa/lib/ipc/strict.js +113 -0
  473. package/node_modules/execa/lib/ipc/validation.js +111 -0
  474. package/node_modules/execa/lib/methods/bind.js +23 -0
  475. package/node_modules/execa/lib/methods/command.js +43 -0
  476. package/node_modules/execa/lib/methods/create.js +65 -0
  477. package/node_modules/execa/lib/methods/main-async.js +194 -0
  478. package/node_modules/execa/lib/methods/main-sync.js +163 -0
  479. package/node_modules/execa/lib/methods/node.js +51 -0
  480. package/node_modules/execa/lib/methods/parameters.js +31 -0
  481. package/node_modules/execa/lib/methods/promise.js +15 -0
  482. package/node_modules/execa/lib/methods/script.js +22 -0
  483. package/node_modules/execa/lib/methods/template.js +153 -0
  484. package/node_modules/execa/lib/pipe/abort.js +20 -0
  485. package/node_modules/execa/lib/pipe/pipe-arguments.js +91 -0
  486. package/node_modules/execa/lib/pipe/sequence.js +24 -0
  487. package/node_modules/execa/lib/pipe/setup.js +72 -0
  488. package/node_modules/execa/lib/pipe/streaming.js +51 -0
  489. package/node_modules/execa/lib/pipe/throw.js +58 -0
  490. package/node_modules/execa/lib/resolve/all-async.js +46 -0
  491. package/node_modules/execa/lib/resolve/all-sync.js +33 -0
  492. package/node_modules/execa/lib/resolve/exit-async.js +54 -0
  493. package/node_modules/execa/lib/resolve/exit-sync.js +25 -0
  494. package/node_modules/execa/lib/resolve/stdio.js +47 -0
  495. package/node_modules/execa/lib/resolve/wait-stream.js +96 -0
  496. package/node_modules/execa/lib/resolve/wait-subprocess.js +146 -0
  497. package/node_modules/execa/lib/return/duration.js +8 -0
  498. package/node_modules/execa/lib/return/early-error.js +60 -0
  499. package/node_modules/execa/lib/return/final-error.js +40 -0
  500. package/node_modules/execa/lib/return/message.js +157 -0
  501. package/node_modules/execa/lib/return/reject.js +13 -0
  502. package/node_modules/execa/lib/return/result.js +186 -0
  503. package/node_modules/execa/lib/stdio/direction.js +76 -0
  504. package/node_modules/execa/lib/stdio/duplicate.js +116 -0
  505. package/node_modules/execa/lib/stdio/handle-async.js +52 -0
  506. package/node_modules/execa/lib/stdio/handle-sync.js +57 -0
  507. package/node_modules/execa/lib/stdio/handle.js +214 -0
  508. package/node_modules/execa/lib/stdio/input-option.js +50 -0
  509. package/node_modules/execa/lib/stdio/native.js +106 -0
  510. package/node_modules/execa/lib/stdio/stdio-option.js +60 -0
  511. package/node_modules/execa/lib/stdio/type.js +173 -0
  512. package/node_modules/execa/lib/terminate/cancel.js +20 -0
  513. package/node_modules/execa/lib/terminate/cleanup.js +16 -0
  514. package/node_modules/execa/lib/terminate/graceful.js +71 -0
  515. package/node_modules/execa/lib/terminate/kill.js +93 -0
  516. package/node_modules/execa/lib/terminate/signal.js +70 -0
  517. package/node_modules/execa/lib/terminate/timeout.js +21 -0
  518. package/node_modules/execa/lib/transform/encoding-transform.js +51 -0
  519. package/node_modules/execa/lib/transform/generator.js +107 -0
  520. package/node_modules/execa/lib/transform/normalize.js +111 -0
  521. package/node_modules/execa/lib/transform/object-mode.js +41 -0
  522. package/node_modules/execa/lib/transform/run-async.js +60 -0
  523. package/node_modules/execa/lib/transform/run-sync.js +50 -0
  524. package/node_modules/execa/lib/transform/split.js +110 -0
  525. package/node_modules/execa/lib/transform/validate.js +43 -0
  526. package/node_modules/execa/lib/utils/abort-signal.js +8 -0
  527. package/node_modules/execa/lib/utils/deferred.js +7 -0
  528. package/node_modules/execa/lib/utils/max-listeners.js +14 -0
  529. package/node_modules/execa/lib/utils/standard-stream.js +6 -0
  530. package/node_modules/execa/lib/utils/uint-array.js +69 -0
  531. package/node_modules/execa/lib/verbose/complete.js +24 -0
  532. package/node_modules/execa/lib/verbose/custom.js +26 -0
  533. package/node_modules/execa/lib/verbose/default.js +54 -0
  534. package/node_modules/execa/lib/verbose/error.js +13 -0
  535. package/node_modules/execa/lib/verbose/info.js +39 -0
  536. package/node_modules/execa/lib/verbose/ipc.js +15 -0
  537. package/node_modules/execa/lib/verbose/log.js +54 -0
  538. package/node_modules/execa/lib/verbose/output.js +60 -0
  539. package/node_modules/execa/lib/verbose/start.js +15 -0
  540. package/node_modules/execa/lib/verbose/values.js +33 -0
  541. package/node_modules/execa/license +9 -0
  542. package/node_modules/execa/package.json +105 -0
  543. package/node_modules/execa/readme.md +461 -0
  544. package/node_modules/execa/types/arguments/encoding-option.d.ts +19 -0
  545. package/node_modules/execa/types/arguments/fd-options.d.ts +8 -0
  546. package/node_modules/execa/types/arguments/options.d.ts +400 -0
  547. package/node_modules/execa/types/arguments/specific.d.ts +52 -0
  548. package/node_modules/execa/types/convert.d.ts +58 -0
  549. package/node_modules/execa/types/ipc.d.ts +156 -0
  550. package/node_modules/execa/types/methods/command.d.ts +114 -0
  551. package/node_modules/execa/types/methods/main-async.d.ts +379 -0
  552. package/node_modules/execa/types/methods/main-sync.d.ts +59 -0
  553. package/node_modules/execa/types/methods/node.d.ts +62 -0
  554. package/node_modules/execa/types/methods/script.d.ts +115 -0
  555. package/node_modules/execa/types/methods/template.d.ts +18 -0
  556. package/node_modules/execa/types/pipe.d.ts +58 -0
  557. package/node_modules/execa/types/return/final-error.d.ts +51 -0
  558. package/node_modules/execa/types/return/ignore.d.ts +26 -0
  559. package/node_modules/execa/types/return/result-all.d.ts +30 -0
  560. package/node_modules/execa/types/return/result-ipc.d.ts +27 -0
  561. package/node_modules/execa/types/return/result-stdio.d.ts +17 -0
  562. package/node_modules/execa/types/return/result-stdout.d.ts +50 -0
  563. package/node_modules/execa/types/return/result.d.ts +203 -0
  564. package/node_modules/execa/types/stdio/array.d.ts +16 -0
  565. package/node_modules/execa/types/stdio/direction.d.ts +12 -0
  566. package/node_modules/execa/types/stdio/option.d.ts +40 -0
  567. package/node_modules/execa/types/stdio/type.d.ts +170 -0
  568. package/node_modules/execa/types/subprocess/all.d.ts +17 -0
  569. package/node_modules/execa/types/subprocess/stdio.d.ts +18 -0
  570. package/node_modules/execa/types/subprocess/stdout.d.ts +22 -0
  571. package/node_modules/execa/types/subprocess/subprocess.d.ts +117 -0
  572. package/node_modules/execa/types/transform/normalize.d.ts +57 -0
  573. package/node_modules/execa/types/transform/object-mode.d.ts +21 -0
  574. package/node_modules/execa/types/utils.d.ts +13 -0
  575. package/node_modules/execa/types/verbose.d.ts +98 -0
  576. package/node_modules/extend-shallow/LICENSE +21 -0
  577. package/node_modules/extend-shallow/README.md +61 -0
  578. package/node_modules/extend-shallow/index.js +33 -0
  579. package/node_modules/extend-shallow/package.json +56 -0
  580. package/node_modules/fast-string-truncated-width/dist/index.d.ts +4 -0
  581. package/node_modules/fast-string-truncated-width/dist/index.js +111 -0
  582. package/node_modules/fast-string-truncated-width/dist/types.d.ts +19 -0
  583. package/node_modules/fast-string-truncated-width/dist/types.js +2 -0
  584. package/node_modules/fast-string-truncated-width/dist/utils.d.ts +4 -0
  585. package/node_modules/fast-string-truncated-width/dist/utils.js +20 -0
  586. package/node_modules/fast-string-truncated-width/license +21 -0
  587. package/node_modules/fast-string-truncated-width/package.json +35 -0
  588. package/node_modules/fast-string-truncated-width/readme.md +59 -0
  589. package/node_modules/fast-string-width/dist/index.d.ts +4 -0
  590. package/node_modules/fast-string-width/dist/index.js +14 -0
  591. package/node_modules/fast-string-width/license +21 -0
  592. package/node_modules/fast-string-width/package.json +34 -0
  593. package/node_modules/fast-string-width/readme.md +42 -0
  594. package/node_modules/fast-wrap-ansi/LICENSE +23 -0
  595. package/node_modules/fast-wrap-ansi/README.md +26 -0
  596. package/node_modules/fast-wrap-ansi/lib/main.d.ts +6 -0
  597. package/node_modules/fast-wrap-ansi/lib/main.js +218 -0
  598. package/node_modules/fast-wrap-ansi/package.json +51 -0
  599. package/node_modules/figures/index.d.ts +279 -0
  600. package/node_modules/figures/index.js +292 -0
  601. package/node_modules/figures/license +9 -0
  602. package/node_modules/figures/package.json +49 -0
  603. package/node_modules/figures/readme.md +337 -0
  604. package/node_modules/get-stream/license +9 -0
  605. package/node_modules/get-stream/package.json +60 -0
  606. package/node_modules/get-stream/readme.md +303 -0
  607. package/node_modules/get-stream/source/array-buffer.js +84 -0
  608. package/node_modules/get-stream/source/array.js +32 -0
  609. package/node_modules/get-stream/source/buffer.js +19 -0
  610. package/node_modules/get-stream/source/contents.js +121 -0
  611. package/node_modules/get-stream/source/exports.js +5 -0
  612. package/node_modules/get-stream/source/index.d.ts +121 -0
  613. package/node_modules/get-stream/source/index.js +13 -0
  614. package/node_modules/get-stream/source/stream.js +65 -0
  615. package/node_modules/get-stream/source/string.js +41 -0
  616. package/node_modules/get-stream/source/utils.js +11 -0
  617. package/node_modules/gray-matter/LICENSE +21 -0
  618. package/node_modules/gray-matter/README.md +565 -0
  619. package/node_modules/gray-matter/gray-matter.d.ts +114 -0
  620. package/node_modules/gray-matter/index.js +228 -0
  621. package/node_modules/gray-matter/lib/defaults.js +18 -0
  622. package/node_modules/gray-matter/lib/engine.js +30 -0
  623. package/node_modules/gray-matter/lib/engines.js +54 -0
  624. package/node_modules/gray-matter/lib/excerpt.js +32 -0
  625. package/node_modules/gray-matter/lib/parse.js +13 -0
  626. package/node_modules/gray-matter/lib/stringify.js +56 -0
  627. package/node_modules/gray-matter/lib/to-file.js +43 -0
  628. package/node_modules/gray-matter/lib/utils.js +66 -0
  629. package/node_modules/gray-matter/package.json +127 -0
  630. package/node_modules/human-signals/LICENSE +201 -0
  631. package/node_modules/human-signals/README.md +171 -0
  632. package/node_modules/human-signals/build/src/core.js +273 -0
  633. package/node_modules/human-signals/build/src/main.d.ts +206 -0
  634. package/node_modules/human-signals/build/src/main.js +70 -0
  635. package/node_modules/human-signals/build/src/realtime.js +16 -0
  636. package/node_modules/human-signals/build/src/signals.js +34 -0
  637. package/node_modules/human-signals/package.json +66 -0
  638. package/node_modules/iconv-lite/LICENSE +21 -0
  639. package/node_modules/iconv-lite/README.md +138 -0
  640. package/node_modules/iconv-lite/encodings/dbcs-codec.js +532 -0
  641. package/node_modules/iconv-lite/encodings/dbcs-data.js +185 -0
  642. package/node_modules/iconv-lite/encodings/index.js +23 -0
  643. package/node_modules/iconv-lite/encodings/internal.js +218 -0
  644. package/node_modules/iconv-lite/encodings/sbcs-codec.js +75 -0
  645. package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  646. package/node_modules/iconv-lite/encodings/sbcs-data.js +180 -0
  647. package/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  648. package/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  649. package/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  650. package/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  651. package/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  652. package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  653. package/node_modules/iconv-lite/encodings/tables/gbk-added.json +56 -0
  654. package/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  655. package/node_modules/iconv-lite/encodings/utf16.js +187 -0
  656. package/node_modules/iconv-lite/encodings/utf32.js +314 -0
  657. package/node_modules/iconv-lite/encodings/utf7.js +283 -0
  658. package/node_modules/iconv-lite/lib/bom-handling.js +48 -0
  659. package/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
  660. package/node_modules/iconv-lite/lib/index.d.ts +129 -0
  661. package/node_modules/iconv-lite/lib/index.js +182 -0
  662. package/node_modules/iconv-lite/lib/streams.js +105 -0
  663. package/node_modules/iconv-lite/package.json +70 -0
  664. package/node_modules/iconv-lite/types/encodings.d.ts +425 -0
  665. package/node_modules/is-extendable/LICENSE +21 -0
  666. package/node_modules/is-extendable/README.md +72 -0
  667. package/node_modules/is-extendable/index.js +13 -0
  668. package/node_modules/is-extendable/package.json +51 -0
  669. package/node_modules/is-plain-obj/index.d.ts +35 -0
  670. package/node_modules/is-plain-obj/index.js +8 -0
  671. package/node_modules/is-plain-obj/license +9 -0
  672. package/node_modules/is-plain-obj/package.json +41 -0
  673. package/node_modules/is-plain-obj/readme.md +58 -0
  674. package/node_modules/is-stream/index.d.ts +90 -0
  675. package/node_modules/is-stream/index.js +37 -0
  676. package/node_modules/is-stream/license +9 -0
  677. package/node_modules/is-stream/package.json +48 -0
  678. package/node_modules/is-stream/readme.md +57 -0
  679. package/node_modules/is-unicode-supported/index.d.ts +12 -0
  680. package/node_modules/is-unicode-supported/index.js +21 -0
  681. package/node_modules/is-unicode-supported/license +9 -0
  682. package/node_modules/is-unicode-supported/package.json +47 -0
  683. package/node_modules/is-unicode-supported/readme.md +35 -0
  684. package/node_modules/isexe/.npmignore +2 -0
  685. package/node_modules/isexe/LICENSE +15 -0
  686. package/node_modules/isexe/README.md +51 -0
  687. package/node_modules/isexe/index.js +57 -0
  688. package/node_modules/isexe/mode.js +41 -0
  689. package/node_modules/isexe/package.json +31 -0
  690. package/node_modules/isexe/test/basic.js +221 -0
  691. package/node_modules/isexe/windows.js +42 -0
  692. package/node_modules/js-yaml/LICENSE +21 -0
  693. package/node_modules/js-yaml/README.md +302 -0
  694. package/node_modules/js-yaml/bin/js-yaml.js +132 -0
  695. package/node_modules/js-yaml/dist/js-yaml.js +4011 -0
  696. package/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
  697. package/node_modules/js-yaml/index.js +7 -0
  698. package/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
  699. package/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
  700. package/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
  701. package/node_modules/js-yaml/lib/js-yaml/loader.js +1666 -0
  702. package/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
  703. package/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  704. package/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  705. package/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  706. package/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  707. package/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  708. package/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
  709. package/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
  710. package/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
  711. package/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
  712. package/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
  713. package/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
  714. package/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
  715. package/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  716. package/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  717. package/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  718. package/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
  719. package/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
  720. package/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
  721. package/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  722. package/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
  723. package/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  724. package/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
  725. package/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  726. package/node_modules/js-yaml/lib/js-yaml.js +39 -0
  727. package/node_modules/js-yaml/package.json +52 -0
  728. package/node_modules/kind-of/LICENSE +21 -0
  729. package/node_modules/kind-of/README.md +367 -0
  730. package/node_modules/kind-of/index.js +129 -0
  731. package/node_modules/kind-of/package.json +88 -0
  732. package/node_modules/mute-stream/LICENSE +15 -0
  733. package/node_modules/mute-stream/README.md +68 -0
  734. package/node_modules/mute-stream/lib/index.js +142 -0
  735. package/node_modules/mute-stream/package.json +54 -0
  736. package/node_modules/npm-run-path/index.d.ts +90 -0
  737. package/node_modules/npm-run-path/index.js +55 -0
  738. package/node_modules/npm-run-path/license +9 -0
  739. package/node_modules/npm-run-path/node_modules/path-key/index.d.ts +31 -0
  740. package/node_modules/npm-run-path/node_modules/path-key/index.js +12 -0
  741. package/node_modules/npm-run-path/node_modules/path-key/license +9 -0
  742. package/node_modules/npm-run-path/node_modules/path-key/package.json +41 -0
  743. package/node_modules/npm-run-path/node_modules/path-key/readme.md +57 -0
  744. package/node_modules/npm-run-path/package.json +52 -0
  745. package/node_modules/npm-run-path/readme.md +104 -0
  746. package/node_modules/parse-ms/index.d.ts +30 -0
  747. package/node_modules/parse-ms/index.js +45 -0
  748. package/node_modules/parse-ms/license +9 -0
  749. package/node_modules/parse-ms/package.json +47 -0
  750. package/node_modules/parse-ms/readme.md +46 -0
  751. package/node_modules/path-key/index.d.ts +40 -0
  752. package/node_modules/path-key/index.js +16 -0
  753. package/node_modules/path-key/license +9 -0
  754. package/node_modules/path-key/package.json +39 -0
  755. package/node_modules/path-key/readme.md +61 -0
  756. package/node_modules/picomatch/LICENSE +21 -0
  757. package/node_modules/picomatch/README.md +743 -0
  758. package/node_modules/picomatch/index.js +17 -0
  759. package/node_modules/picomatch/lib/constants.js +184 -0
  760. package/node_modules/picomatch/lib/parse.js +1416 -0
  761. package/node_modules/picomatch/lib/picomatch.js +361 -0
  762. package/node_modules/picomatch/lib/scan.js +391 -0
  763. package/node_modules/picomatch/lib/utils.js +72 -0
  764. package/node_modules/picomatch/package.json +83 -0
  765. package/node_modules/picomatch/posix.js +3 -0
  766. package/node_modules/pretty-ms/index.d.ts +157 -0
  767. package/node_modules/pretty-ms/index.js +149 -0
  768. package/node_modules/pretty-ms/license +9 -0
  769. package/node_modules/pretty-ms/package.json +55 -0
  770. package/node_modules/pretty-ms/readme.md +179 -0
  771. package/node_modules/safer-buffer/LICENSE +21 -0
  772. package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  773. package/node_modules/safer-buffer/Readme.md +156 -0
  774. package/node_modules/safer-buffer/dangerous.js +58 -0
  775. package/node_modules/safer-buffer/package.json +34 -0
  776. package/node_modules/safer-buffer/safer.js +77 -0
  777. package/node_modules/safer-buffer/tests.js +406 -0
  778. package/node_modules/section-matter/LICENSE +21 -0
  779. package/node_modules/section-matter/README.md +236 -0
  780. package/node_modules/section-matter/index.js +136 -0
  781. package/node_modules/section-matter/package.json +55 -0
  782. package/node_modules/shebang-command/index.js +19 -0
  783. package/node_modules/shebang-command/license +9 -0
  784. package/node_modules/shebang-command/package.json +34 -0
  785. package/node_modules/shebang-command/readme.md +34 -0
  786. package/node_modules/shebang-regex/index.d.ts +22 -0
  787. package/node_modules/shebang-regex/index.js +2 -0
  788. package/node_modules/shebang-regex/license +9 -0
  789. package/node_modules/shebang-regex/package.json +35 -0
  790. package/node_modules/shebang-regex/readme.md +33 -0
  791. package/node_modules/signal-exit/LICENSE.txt +16 -0
  792. package/node_modules/signal-exit/README.md +74 -0
  793. package/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
  794. package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
  795. package/node_modules/signal-exit/dist/cjs/browser.js +10 -0
  796. package/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
  797. package/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
  798. package/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
  799. package/node_modules/signal-exit/dist/cjs/index.js +279 -0
  800. package/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
  801. package/node_modules/signal-exit/dist/cjs/package.json +3 -0
  802. package/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
  803. package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
  804. package/node_modules/signal-exit/dist/cjs/signals.js +42 -0
  805. package/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
  806. package/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
  807. package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
  808. package/node_modules/signal-exit/dist/mjs/browser.js +4 -0
  809. package/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
  810. package/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
  811. package/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
  812. package/node_modules/signal-exit/dist/mjs/index.js +275 -0
  813. package/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
  814. package/node_modules/signal-exit/dist/mjs/package.json +3 -0
  815. package/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
  816. package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
  817. package/node_modules/signal-exit/dist/mjs/signals.js +39 -0
  818. package/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
  819. package/node_modules/signal-exit/package.json +106 -0
  820. package/node_modules/sprintf-js/.npmignore +1 -0
  821. package/node_modules/sprintf-js/LICENSE +24 -0
  822. package/node_modules/sprintf-js/README.md +88 -0
  823. package/node_modules/sprintf-js/bower.json +14 -0
  824. package/node_modules/sprintf-js/demo/angular.html +20 -0
  825. package/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
  826. package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
  827. package/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
  828. package/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
  829. package/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
  830. package/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
  831. package/node_modules/sprintf-js/gruntfile.js +36 -0
  832. package/node_modules/sprintf-js/package.json +22 -0
  833. package/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
  834. package/node_modules/sprintf-js/src/sprintf.js +208 -0
  835. package/node_modules/sprintf-js/test/test.js +82 -0
  836. package/node_modules/strip-bom-string/LICENSE +21 -0
  837. package/node_modules/strip-bom-string/README.md +66 -0
  838. package/node_modules/strip-bom-string/index.js +15 -0
  839. package/node_modules/strip-bom-string/package.json +60 -0
  840. package/node_modules/strip-final-newline/index.d.ts +18 -0
  841. package/node_modules/strip-final-newline/index.js +26 -0
  842. package/node_modules/strip-final-newline/license +9 -0
  843. package/node_modules/strip-final-newline/package.json +49 -0
  844. package/node_modules/strip-final-newline/readme.md +34 -0
  845. package/node_modules/unicorn-magic/default.d.ts +13 -0
  846. package/node_modules/unicorn-magic/default.js +14 -0
  847. package/node_modules/unicorn-magic/license +9 -0
  848. package/node_modules/unicorn-magic/node.d.ts +125 -0
  849. package/node_modules/unicorn-magic/node.js +49 -0
  850. package/node_modules/unicorn-magic/package.json +62 -0
  851. package/node_modules/unicorn-magic/readme.md +25 -0
  852. package/node_modules/which/LICENSE +15 -0
  853. package/node_modules/which/README.md +54 -0
  854. package/node_modules/which/bin/node-which +52 -0
  855. package/node_modules/which/package.json +43 -0
  856. package/node_modules/which/which.js +125 -0
  857. package/node_modules/yaml/LICENSE +13 -0
  858. package/node_modules/yaml/README.md +172 -0
  859. package/node_modules/yaml/bin.mjs +11 -0
  860. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  861. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  862. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  863. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  864. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  865. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  866. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  867. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  868. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  869. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  870. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
  871. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  872. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  873. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  874. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  875. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  876. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  877. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  878. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  879. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  880. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  881. package/node_modules/yaml/browser/dist/errors.js +57 -0
  882. package/node_modules/yaml/browser/dist/index.js +17 -0
  883. package/node_modules/yaml/browser/dist/log.js +11 -0
  884. package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
  885. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  886. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  887. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  888. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  889. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  890. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  891. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  892. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  893. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  894. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  895. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  896. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  897. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  898. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  899. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  900. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  901. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  902. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  903. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  904. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  905. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  906. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  907. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  908. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  909. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  910. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  911. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  912. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  913. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  914. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  915. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  916. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  917. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  918. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  919. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  920. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  921. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  922. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  923. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  924. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  925. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  926. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  927. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  928. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  929. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  930. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  931. package/node_modules/yaml/browser/dist/util.js +11 -0
  932. package/node_modules/yaml/browser/dist/visit.js +233 -0
  933. package/node_modules/yaml/browser/index.js +5 -0
  934. package/node_modules/yaml/browser/package.json +3 -0
  935. package/node_modules/yaml/dist/cli.d.ts +8 -0
  936. package/node_modules/yaml/dist/cli.mjs +201 -0
  937. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  938. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  939. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  940. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  941. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  942. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  943. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  944. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  945. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  946. package/node_modules/yaml/dist/compose/composer.js +224 -0
  947. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  948. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  949. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  950. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  951. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  952. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  953. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  954. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  955. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  956. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  957. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  958. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
  959. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  960. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  961. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  962. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  963. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  964. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  965. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  966. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  967. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  968. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  969. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  970. package/node_modules/yaml/dist/doc/Document.js +337 -0
  971. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  972. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  973. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  974. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  975. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  976. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  977. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  978. package/node_modules/yaml/dist/doc/directives.js +178 -0
  979. package/node_modules/yaml/dist/errors.d.ts +21 -0
  980. package/node_modules/yaml/dist/errors.js +62 -0
  981. package/node_modules/yaml/dist/index.d.ts +25 -0
  982. package/node_modules/yaml/dist/index.js +50 -0
  983. package/node_modules/yaml/dist/log.d.ts +3 -0
  984. package/node_modules/yaml/dist/log.js +19 -0
  985. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  986. package/node_modules/yaml/dist/nodes/Alias.js +118 -0
  987. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  988. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  989. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  990. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  991. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  992. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  993. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  994. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  995. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  996. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  997. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  998. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  999. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  1000. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  1001. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  1002. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  1003. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  1004. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  1005. package/node_modules/yaml/dist/options.d.ts +350 -0
  1006. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  1007. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  1008. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  1009. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  1010. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  1011. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  1012. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  1013. package/node_modules/yaml/dist/parse/cst.js +112 -0
  1014. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  1015. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  1016. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  1017. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  1018. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  1019. package/node_modules/yaml/dist/parse/parser.js +980 -0
  1020. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  1021. package/node_modules/yaml/dist/public-api.js +107 -0
  1022. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  1023. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  1024. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  1025. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  1026. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  1027. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  1028. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  1029. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  1030. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  1031. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  1032. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  1033. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  1034. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  1035. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  1036. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  1037. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  1038. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  1039. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  1040. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  1041. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  1042. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  1043. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  1044. package/node_modules/yaml/dist/schema/tags.js +99 -0
  1045. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  1046. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  1047. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  1048. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  1049. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  1050. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  1051. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  1052. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  1053. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  1054. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  1055. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  1056. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  1057. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  1058. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  1059. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  1060. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  1061. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  1062. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  1063. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  1064. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  1065. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  1066. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  1067. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  1068. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  1069. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  1070. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  1071. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  1072. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  1073. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  1074. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  1075. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  1076. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  1077. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  1078. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  1079. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  1080. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  1081. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  1082. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  1083. package/node_modules/yaml/dist/test-events.js +134 -0
  1084. package/node_modules/yaml/dist/util.d.ts +16 -0
  1085. package/node_modules/yaml/dist/util.js +28 -0
  1086. package/node_modules/yaml/dist/visit.d.ts +102 -0
  1087. package/node_modules/yaml/dist/visit.js +236 -0
  1088. package/node_modules/yaml/package.json +97 -0
  1089. package/node_modules/yaml/util.js +2 -0
  1090. package/node_modules/yoctocolors/base.d.ts +47 -0
  1091. package/node_modules/yoctocolors/base.js +94 -0
  1092. package/node_modules/yoctocolors/index.d.ts +2 -0
  1093. package/node_modules/yoctocolors/index.js +2 -0
  1094. package/node_modules/yoctocolors/license +9 -0
  1095. package/node_modules/yoctocolors/package.json +69 -0
  1096. package/node_modules/yoctocolors/readme.md +138 -0
  1097. package/node_modules/zod/LICENSE +21 -0
  1098. package/node_modules/zod/README.md +191 -0
  1099. package/node_modules/zod/index.cjs +33 -0
  1100. package/node_modules/zod/index.d.cts +4 -0
  1101. package/node_modules/zod/index.d.ts +4 -0
  1102. package/node_modules/zod/index.js +4 -0
  1103. package/node_modules/zod/locales/index.cjs +17 -0
  1104. package/node_modules/zod/locales/index.d.cts +1 -0
  1105. package/node_modules/zod/locales/index.d.ts +1 -0
  1106. package/node_modules/zod/locales/index.js +1 -0
  1107. package/node_modules/zod/locales/package.json +7 -0
  1108. package/node_modules/zod/mini/index.cjs +32 -0
  1109. package/node_modules/zod/mini/index.d.cts +3 -0
  1110. package/node_modules/zod/mini/index.d.ts +3 -0
  1111. package/node_modules/zod/mini/index.js +3 -0
  1112. package/node_modules/zod/mini/package.json +7 -0
  1113. package/node_modules/zod/package.json +135 -0
  1114. package/node_modules/zod/src/index.ts +4 -0
  1115. package/node_modules/zod/src/locales/index.ts +1 -0
  1116. package/node_modules/zod/src/mini/index.ts +3 -0
  1117. package/node_modules/zod/src/v3/ZodError.ts +330 -0
  1118. package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  1119. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  1120. package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  1121. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  1122. package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  1123. package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  1124. package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  1125. package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  1126. package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  1127. package/node_modules/zod/src/v3/errors.ts +13 -0
  1128. package/node_modules/zod/src/v3/external.ts +6 -0
  1129. package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  1130. package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  1131. package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  1132. package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  1133. package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  1134. package/node_modules/zod/src/v3/helpers/util.ts +224 -0
  1135. package/node_modules/zod/src/v3/index.ts +4 -0
  1136. package/node_modules/zod/src/v3/locales/en.ts +124 -0
  1137. package/node_modules/zod/src/v3/standard-schema.ts +113 -0
  1138. package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  1139. package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  1140. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  1141. package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  1142. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  1143. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  1144. package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  1145. package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  1146. package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  1147. package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  1148. package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  1149. package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
  1150. package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  1151. package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  1152. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  1153. package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  1154. package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  1155. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  1156. package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  1157. package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  1158. package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  1159. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  1160. package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
  1161. package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  1162. package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  1163. package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  1164. package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  1165. package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  1166. package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  1167. package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  1168. package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  1169. package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  1170. package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
  1171. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  1172. package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  1173. package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  1174. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  1175. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  1176. package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  1177. package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  1178. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  1179. package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  1180. package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  1181. package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  1182. package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  1183. package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  1184. package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  1185. package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  1186. package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  1187. package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  1188. package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  1189. package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  1190. package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  1191. package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  1192. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  1193. package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  1194. package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  1195. package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  1196. package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  1197. package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  1198. package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  1199. package/node_modules/zod/src/v3/types.ts +5138 -0
  1200. package/node_modules/zod/src/v4/classic/checks.ts +32 -0
  1201. package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  1202. package/node_modules/zod/src/v4/classic/compat.ts +70 -0
  1203. package/node_modules/zod/src/v4/classic/errors.ts +82 -0
  1204. package/node_modules/zod/src/v4/classic/external.ts +52 -0
  1205. package/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
  1206. package/node_modules/zod/src/v4/classic/index.ts +5 -0
  1207. package/node_modules/zod/src/v4/classic/iso.ts +90 -0
  1208. package/node_modules/zod/src/v4/classic/parse.ts +82 -0
  1209. package/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
  1210. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  1211. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
  1212. package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  1213. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
  1214. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  1215. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  1216. package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  1217. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  1218. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
  1219. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
  1220. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  1221. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
  1222. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
  1223. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  1224. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
  1225. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  1226. package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
  1227. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
  1228. package/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
  1229. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  1230. package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  1231. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
  1232. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
  1233. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  1234. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
  1235. package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  1236. package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
  1237. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
  1238. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  1239. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
  1240. package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
  1241. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  1242. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
  1243. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
  1244. package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
  1245. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
  1246. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
  1247. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
  1248. package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
  1249. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  1250. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
  1251. package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
  1252. package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
  1253. package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
  1254. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  1255. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  1256. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
  1257. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  1258. package/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
  1259. package/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
  1260. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
  1261. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
  1262. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
  1263. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
  1264. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
  1265. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
  1266. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
  1267. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  1268. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  1269. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  1270. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  1271. package/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
  1272. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
  1273. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
  1274. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
  1275. package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
  1276. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
  1277. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
  1278. package/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
  1279. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
  1280. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
  1281. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  1282. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
  1283. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
  1284. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
  1285. package/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
  1286. package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  1287. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  1288. package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  1289. package/node_modules/zod/src/v4/core/api.ts +1823 -0
  1290. package/node_modules/zod/src/v4/core/checks.ts +1293 -0
  1291. package/node_modules/zod/src/v4/core/config.ts +15 -0
  1292. package/node_modules/zod/src/v4/core/core.ts +153 -0
  1293. package/node_modules/zod/src/v4/core/doc.ts +44 -0
  1294. package/node_modules/zod/src/v4/core/errors.ts +455 -0
  1295. package/node_modules/zod/src/v4/core/index.ts +16 -0
  1296. package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
  1297. package/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
  1298. package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
  1299. package/node_modules/zod/src/v4/core/parse.ts +195 -0
  1300. package/node_modules/zod/src/v4/core/regexes.ts +190 -0
  1301. package/node_modules/zod/src/v4/core/registries.ts +105 -0
  1302. package/node_modules/zod/src/v4/core/schemas.ts +4730 -0
  1303. package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
  1304. package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  1305. package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  1306. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  1307. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
  1308. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  1309. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
  1310. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
  1311. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  1312. package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
  1313. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  1314. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  1315. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  1316. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
  1317. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
  1318. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  1319. package/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
  1320. package/node_modules/zod/src/v4/core/util.ts +983 -0
  1321. package/node_modules/zod/src/v4/core/versions.ts +5 -0
  1322. package/node_modules/zod/src/v4/core/zsf.ts +323 -0
  1323. package/node_modules/zod/src/v4/index.ts +4 -0
  1324. package/node_modules/zod/src/v4/locales/ar.ts +115 -0
  1325. package/node_modules/zod/src/v4/locales/az.ts +111 -0
  1326. package/node_modules/zod/src/v4/locales/be.ts +176 -0
  1327. package/node_modules/zod/src/v4/locales/bg.ts +128 -0
  1328. package/node_modules/zod/src/v4/locales/ca.ts +116 -0
  1329. package/node_modules/zod/src/v4/locales/cs.ts +118 -0
  1330. package/node_modules/zod/src/v4/locales/da.ts +123 -0
  1331. package/node_modules/zod/src/v4/locales/de.ts +116 -0
  1332. package/node_modules/zod/src/v4/locales/el.ts +121 -0
  1333. package/node_modules/zod/src/v4/locales/en.ts +123 -0
  1334. package/node_modules/zod/src/v4/locales/eo.ts +118 -0
  1335. package/node_modules/zod/src/v4/locales/es.ts +141 -0
  1336. package/node_modules/zod/src/v4/locales/fa.ts +126 -0
  1337. package/node_modules/zod/src/v4/locales/fi.ts +121 -0
  1338. package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
  1339. package/node_modules/zod/src/v4/locales/fr.ts +132 -0
  1340. package/node_modules/zod/src/v4/locales/he.ts +246 -0
  1341. package/node_modules/zod/src/v4/locales/hr.ts +131 -0
  1342. package/node_modules/zod/src/v4/locales/hu.ts +117 -0
  1343. package/node_modules/zod/src/v4/locales/hy.ts +164 -0
  1344. package/node_modules/zod/src/v4/locales/id.ts +115 -0
  1345. package/node_modules/zod/src/v4/locales/index.ts +52 -0
  1346. package/node_modules/zod/src/v4/locales/is.ts +119 -0
  1347. package/node_modules/zod/src/v4/locales/it.ts +116 -0
  1348. package/node_modules/zod/src/v4/locales/ja.ts +114 -0
  1349. package/node_modules/zod/src/v4/locales/ka.ts +123 -0
  1350. package/node_modules/zod/src/v4/locales/kh.ts +7 -0
  1351. package/node_modules/zod/src/v4/locales/km.ts +119 -0
  1352. package/node_modules/zod/src/v4/locales/ko.ts +121 -0
  1353. package/node_modules/zod/src/v4/locales/lt.ts +239 -0
  1354. package/node_modules/zod/src/v4/locales/mk.ts +118 -0
  1355. package/node_modules/zod/src/v4/locales/ms.ts +115 -0
  1356. package/node_modules/zod/src/v4/locales/nl.ts +121 -0
  1357. package/node_modules/zod/src/v4/locales/no.ts +116 -0
  1358. package/node_modules/zod/src/v4/locales/ota.ts +117 -0
  1359. package/node_modules/zod/src/v4/locales/pl.ts +118 -0
  1360. package/node_modules/zod/src/v4/locales/ps.ts +126 -0
  1361. package/node_modules/zod/src/v4/locales/pt.ts +116 -0
  1362. package/node_modules/zod/src/v4/locales/ro.ts +129 -0
  1363. package/node_modules/zod/src/v4/locales/ru.ts +176 -0
  1364. package/node_modules/zod/src/v4/locales/sl.ts +118 -0
  1365. package/node_modules/zod/src/v4/locales/sv.ts +119 -0
  1366. package/node_modules/zod/src/v4/locales/ta.ts +118 -0
  1367. package/node_modules/zod/src/v4/locales/th.ts +119 -0
  1368. package/node_modules/zod/src/v4/locales/tr.ts +111 -0
  1369. package/node_modules/zod/src/v4/locales/ua.ts +7 -0
  1370. package/node_modules/zod/src/v4/locales/uk.ts +117 -0
  1371. package/node_modules/zod/src/v4/locales/ur.ts +119 -0
  1372. package/node_modules/zod/src/v4/locales/uz.ts +117 -0
  1373. package/node_modules/zod/src/v4/locales/vi.ts +117 -0
  1374. package/node_modules/zod/src/v4/locales/yo.ts +124 -0
  1375. package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
  1376. package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
  1377. package/node_modules/zod/src/v4/mini/checks.ts +32 -0
  1378. package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
  1379. package/node_modules/zod/src/v4/mini/external.ts +41 -0
  1380. package/node_modules/zod/src/v4/mini/index.ts +3 -0
  1381. package/node_modules/zod/src/v4/mini/iso.ts +66 -0
  1382. package/node_modules/zod/src/v4/mini/parse.ts +14 -0
  1383. package/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
  1384. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
  1385. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  1386. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
  1387. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  1388. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
  1389. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  1390. package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  1391. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
  1392. package/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
  1393. package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  1394. package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
  1395. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  1396. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
  1397. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  1398. package/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
  1399. package/node_modules/zod/src/v4-mini/index.ts +3 -0
  1400. package/node_modules/zod/v3/ZodError.cjs +138 -0
  1401. package/node_modules/zod/v3/ZodError.d.cts +164 -0
  1402. package/node_modules/zod/v3/ZodError.d.ts +164 -0
  1403. package/node_modules/zod/v3/ZodError.js +133 -0
  1404. package/node_modules/zod/v3/errors.cjs +17 -0
  1405. package/node_modules/zod/v3/errors.d.cts +5 -0
  1406. package/node_modules/zod/v3/errors.d.ts +5 -0
  1407. package/node_modules/zod/v3/errors.js +9 -0
  1408. package/node_modules/zod/v3/external.cjs +22 -0
  1409. package/node_modules/zod/v3/external.d.cts +6 -0
  1410. package/node_modules/zod/v3/external.d.ts +6 -0
  1411. package/node_modules/zod/v3/external.js +6 -0
  1412. package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  1413. package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  1414. package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  1415. package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  1416. package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  1417. package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  1418. package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  1419. package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  1420. package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  1421. package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  1422. package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  1423. package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  1424. package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  1425. package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  1426. package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  1427. package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  1428. package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  1429. package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  1430. package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  1431. package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  1432. package/node_modules/zod/v3/helpers/util.cjs +137 -0
  1433. package/node_modules/zod/v3/helpers/util.d.cts +85 -0
  1434. package/node_modules/zod/v3/helpers/util.d.ts +85 -0
  1435. package/node_modules/zod/v3/helpers/util.js +133 -0
  1436. package/node_modules/zod/v3/index.cjs +33 -0
  1437. package/node_modules/zod/v3/index.d.cts +4 -0
  1438. package/node_modules/zod/v3/index.d.ts +4 -0
  1439. package/node_modules/zod/v3/index.js +4 -0
  1440. package/node_modules/zod/v3/locales/en.cjs +112 -0
  1441. package/node_modules/zod/v3/locales/en.d.cts +3 -0
  1442. package/node_modules/zod/v3/locales/en.d.ts +3 -0
  1443. package/node_modules/zod/v3/locales/en.js +109 -0
  1444. package/node_modules/zod/v3/package.json +7 -0
  1445. package/node_modules/zod/v3/standard-schema.cjs +2 -0
  1446. package/node_modules/zod/v3/standard-schema.d.cts +102 -0
  1447. package/node_modules/zod/v3/standard-schema.d.ts +102 -0
  1448. package/node_modules/zod/v3/standard-schema.js +1 -0
  1449. package/node_modules/zod/v3/types.cjs +3777 -0
  1450. package/node_modules/zod/v3/types.d.cts +1034 -0
  1451. package/node_modules/zod/v3/types.d.ts +1034 -0
  1452. package/node_modules/zod/v3/types.js +3695 -0
  1453. package/node_modules/zod/v4/classic/checks.cjs +33 -0
  1454. package/node_modules/zod/v4/classic/checks.d.cts +1 -0
  1455. package/node_modules/zod/v4/classic/checks.d.ts +1 -0
  1456. package/node_modules/zod/v4/classic/checks.js +1 -0
  1457. package/node_modules/zod/v4/classic/coerce.cjs +47 -0
  1458. package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  1459. package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  1460. package/node_modules/zod/v4/classic/coerce.js +17 -0
  1461. package/node_modules/zod/v4/classic/compat.cjs +61 -0
  1462. package/node_modules/zod/v4/classic/compat.d.cts +50 -0
  1463. package/node_modules/zod/v4/classic/compat.d.ts +50 -0
  1464. package/node_modules/zod/v4/classic/compat.js +31 -0
  1465. package/node_modules/zod/v4/classic/errors.cjs +74 -0
  1466. package/node_modules/zod/v4/classic/errors.d.cts +30 -0
  1467. package/node_modules/zod/v4/classic/errors.d.ts +30 -0
  1468. package/node_modules/zod/v4/classic/errors.js +48 -0
  1469. package/node_modules/zod/v4/classic/external.cjs +73 -0
  1470. package/node_modules/zod/v4/classic/external.d.cts +16 -0
  1471. package/node_modules/zod/v4/classic/external.d.ts +16 -0
  1472. package/node_modules/zod/v4/classic/external.js +20 -0
  1473. package/node_modules/zod/v4/classic/from-json-schema.cjs +625 -0
  1474. package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
  1475. package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
  1476. package/node_modules/zod/v4/classic/from-json-schema.js +599 -0
  1477. package/node_modules/zod/v4/classic/index.cjs +33 -0
  1478. package/node_modules/zod/v4/classic/index.d.cts +4 -0
  1479. package/node_modules/zod/v4/classic/index.d.ts +4 -0
  1480. package/node_modules/zod/v4/classic/index.js +4 -0
  1481. package/node_modules/zod/v4/classic/iso.cjs +60 -0
  1482. package/node_modules/zod/v4/classic/iso.d.cts +22 -0
  1483. package/node_modules/zod/v4/classic/iso.d.ts +22 -0
  1484. package/node_modules/zod/v4/classic/iso.js +30 -0
  1485. package/node_modules/zod/v4/classic/package.json +7 -0
  1486. package/node_modules/zod/v4/classic/parse.cjs +41 -0
  1487. package/node_modules/zod/v4/classic/parse.d.cts +31 -0
  1488. package/node_modules/zod/v4/classic/parse.d.ts +31 -0
  1489. package/node_modules/zod/v4/classic/parse.js +15 -0
  1490. package/node_modules/zod/v4/classic/schemas.cjs +1511 -0
  1491. package/node_modules/zod/v4/classic/schemas.d.cts +767 -0
  1492. package/node_modules/zod/v4/classic/schemas.d.ts +767 -0
  1493. package/node_modules/zod/v4/classic/schemas.js +1395 -0
  1494. package/node_modules/zod/v4/core/api.cjs +1227 -0
  1495. package/node_modules/zod/v4/core/api.d.cts +325 -0
  1496. package/node_modules/zod/v4/core/api.d.ts +325 -0
  1497. package/node_modules/zod/v4/core/api.js +1087 -0
  1498. package/node_modules/zod/v4/core/checks.cjs +601 -0
  1499. package/node_modules/zod/v4/core/checks.d.cts +278 -0
  1500. package/node_modules/zod/v4/core/checks.d.ts +278 -0
  1501. package/node_modules/zod/v4/core/checks.js +575 -0
  1502. package/node_modules/zod/v4/core/core.cjs +85 -0
  1503. package/node_modules/zod/v4/core/core.d.cts +70 -0
  1504. package/node_modules/zod/v4/core/core.d.ts +70 -0
  1505. package/node_modules/zod/v4/core/core.js +78 -0
  1506. package/node_modules/zod/v4/core/doc.cjs +39 -0
  1507. package/node_modules/zod/v4/core/doc.d.cts +14 -0
  1508. package/node_modules/zod/v4/core/doc.d.ts +14 -0
  1509. package/node_modules/zod/v4/core/doc.js +35 -0
  1510. package/node_modules/zod/v4/core/errors.cjs +216 -0
  1511. package/node_modules/zod/v4/core/errors.d.cts +221 -0
  1512. package/node_modules/zod/v4/core/errors.d.ts +221 -0
  1513. package/node_modules/zod/v4/core/errors.js +185 -0
  1514. package/node_modules/zod/v4/core/index.cjs +47 -0
  1515. package/node_modules/zod/v4/core/index.d.cts +16 -0
  1516. package/node_modules/zod/v4/core/index.d.ts +16 -0
  1517. package/node_modules/zod/v4/core/index.js +16 -0
  1518. package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
  1519. package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
  1520. package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
  1521. package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
  1522. package/node_modules/zod/v4/core/json-schema-processors.cjs +644 -0
  1523. package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
  1524. package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
  1525. package/node_modules/zod/v4/core/json-schema-processors.js +601 -0
  1526. package/node_modules/zod/v4/core/json-schema.cjs +2 -0
  1527. package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
  1528. package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
  1529. package/node_modules/zod/v4/core/json-schema.js +1 -0
  1530. package/node_modules/zod/v4/core/package.json +7 -0
  1531. package/node_modules/zod/v4/core/parse.cjs +131 -0
  1532. package/node_modules/zod/v4/core/parse.d.cts +49 -0
  1533. package/node_modules/zod/v4/core/parse.d.ts +49 -0
  1534. package/node_modules/zod/v4/core/parse.js +93 -0
  1535. package/node_modules/zod/v4/core/regexes.cjs +172 -0
  1536. package/node_modules/zod/v4/core/regexes.d.cts +85 -0
  1537. package/node_modules/zod/v4/core/regexes.d.ts +85 -0
  1538. package/node_modules/zod/v4/core/regexes.js +139 -0
  1539. package/node_modules/zod/v4/core/registries.cjs +56 -0
  1540. package/node_modules/zod/v4/core/registries.d.cts +35 -0
  1541. package/node_modules/zod/v4/core/registries.d.ts +35 -0
  1542. package/node_modules/zod/v4/core/registries.js +51 -0
  1543. package/node_modules/zod/v4/core/schemas.cjs +2270 -0
  1544. package/node_modules/zod/v4/core/schemas.d.cts +1184 -0
  1545. package/node_modules/zod/v4/core/schemas.d.ts +1184 -0
  1546. package/node_modules/zod/v4/core/schemas.js +2239 -0
  1547. package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  1548. package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
  1549. package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
  1550. package/node_modules/zod/v4/core/standard-schema.js +1 -0
  1551. package/node_modules/zod/v4/core/to-json-schema.cjs +457 -0
  1552. package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
  1553. package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
  1554. package/node_modules/zod/v4/core/to-json-schema.js +448 -0
  1555. package/node_modules/zod/v4/core/util.cjs +734 -0
  1556. package/node_modules/zod/v4/core/util.d.cts +200 -0
  1557. package/node_modules/zod/v4/core/util.d.ts +200 -0
  1558. package/node_modules/zod/v4/core/util.js +674 -0
  1559. package/node_modules/zod/v4/core/versions.cjs +8 -0
  1560. package/node_modules/zod/v4/core/versions.d.cts +5 -0
  1561. package/node_modules/zod/v4/core/versions.d.ts +5 -0
  1562. package/node_modules/zod/v4/core/versions.js +5 -0
  1563. package/node_modules/zod/v4/index.cjs +22 -0
  1564. package/node_modules/zod/v4/index.d.cts +3 -0
  1565. package/node_modules/zod/v4/index.d.ts +3 -0
  1566. package/node_modules/zod/v4/index.js +3 -0
  1567. package/node_modules/zod/v4/locales/ar.cjs +133 -0
  1568. package/node_modules/zod/v4/locales/ar.d.cts +5 -0
  1569. package/node_modules/zod/v4/locales/ar.d.ts +4 -0
  1570. package/node_modules/zod/v4/locales/ar.js +106 -0
  1571. package/node_modules/zod/v4/locales/az.cjs +132 -0
  1572. package/node_modules/zod/v4/locales/az.d.cts +5 -0
  1573. package/node_modules/zod/v4/locales/az.d.ts +4 -0
  1574. package/node_modules/zod/v4/locales/az.js +105 -0
  1575. package/node_modules/zod/v4/locales/be.cjs +183 -0
  1576. package/node_modules/zod/v4/locales/be.d.cts +5 -0
  1577. package/node_modules/zod/v4/locales/be.d.ts +4 -0
  1578. package/node_modules/zod/v4/locales/be.js +156 -0
  1579. package/node_modules/zod/v4/locales/bg.cjs +147 -0
  1580. package/node_modules/zod/v4/locales/bg.d.cts +5 -0
  1581. package/node_modules/zod/v4/locales/bg.d.ts +4 -0
  1582. package/node_modules/zod/v4/locales/bg.js +120 -0
  1583. package/node_modules/zod/v4/locales/ca.cjs +134 -0
  1584. package/node_modules/zod/v4/locales/ca.d.cts +5 -0
  1585. package/node_modules/zod/v4/locales/ca.d.ts +4 -0
  1586. package/node_modules/zod/v4/locales/ca.js +107 -0
  1587. package/node_modules/zod/v4/locales/cs.cjs +138 -0
  1588. package/node_modules/zod/v4/locales/cs.d.cts +5 -0
  1589. package/node_modules/zod/v4/locales/cs.d.ts +4 -0
  1590. package/node_modules/zod/v4/locales/cs.js +111 -0
  1591. package/node_modules/zod/v4/locales/da.cjs +142 -0
  1592. package/node_modules/zod/v4/locales/da.d.cts +5 -0
  1593. package/node_modules/zod/v4/locales/da.d.ts +4 -0
  1594. package/node_modules/zod/v4/locales/da.js +115 -0
  1595. package/node_modules/zod/v4/locales/de.cjs +135 -0
  1596. package/node_modules/zod/v4/locales/de.d.cts +5 -0
  1597. package/node_modules/zod/v4/locales/de.d.ts +4 -0
  1598. package/node_modules/zod/v4/locales/de.js +108 -0
  1599. package/node_modules/zod/v4/locales/el.cjs +136 -0
  1600. package/node_modules/zod/v4/locales/el.d.cts +5 -0
  1601. package/node_modules/zod/v4/locales/el.d.ts +4 -0
  1602. package/node_modules/zod/v4/locales/el.js +109 -0
  1603. package/node_modules/zod/v4/locales/en.cjs +140 -0
  1604. package/node_modules/zod/v4/locales/en.d.cts +5 -0
  1605. package/node_modules/zod/v4/locales/en.d.ts +4 -0
  1606. package/node_modules/zod/v4/locales/en.js +113 -0
  1607. package/node_modules/zod/v4/locales/eo.cjs +136 -0
  1608. package/node_modules/zod/v4/locales/eo.d.cts +5 -0
  1609. package/node_modules/zod/v4/locales/eo.d.ts +4 -0
  1610. package/node_modules/zod/v4/locales/eo.js +109 -0
  1611. package/node_modules/zod/v4/locales/es.cjs +159 -0
  1612. package/node_modules/zod/v4/locales/es.d.cts +5 -0
  1613. package/node_modules/zod/v4/locales/es.d.ts +4 -0
  1614. package/node_modules/zod/v4/locales/es.js +132 -0
  1615. package/node_modules/zod/v4/locales/fa.cjs +141 -0
  1616. package/node_modules/zod/v4/locales/fa.d.cts +5 -0
  1617. package/node_modules/zod/v4/locales/fa.d.ts +4 -0
  1618. package/node_modules/zod/v4/locales/fa.js +114 -0
  1619. package/node_modules/zod/v4/locales/fi.cjs +139 -0
  1620. package/node_modules/zod/v4/locales/fi.d.cts +5 -0
  1621. package/node_modules/zod/v4/locales/fi.d.ts +4 -0
  1622. package/node_modules/zod/v4/locales/fi.js +112 -0
  1623. package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
  1624. package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
  1625. package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  1626. package/node_modules/zod/v4/locales/fr-CA.js +107 -0
  1627. package/node_modules/zod/v4/locales/fr.cjs +152 -0
  1628. package/node_modules/zod/v4/locales/fr.d.cts +5 -0
  1629. package/node_modules/zod/v4/locales/fr.d.ts +4 -0
  1630. package/node_modules/zod/v4/locales/fr.js +125 -0
  1631. package/node_modules/zod/v4/locales/he.cjs +241 -0
  1632. package/node_modules/zod/v4/locales/he.d.cts +5 -0
  1633. package/node_modules/zod/v4/locales/he.d.ts +4 -0
  1634. package/node_modules/zod/v4/locales/he.js +214 -0
  1635. package/node_modules/zod/v4/locales/hr.cjs +149 -0
  1636. package/node_modules/zod/v4/locales/hr.d.cts +5 -0
  1637. package/node_modules/zod/v4/locales/hr.d.ts +4 -0
  1638. package/node_modules/zod/v4/locales/hr.js +122 -0
  1639. package/node_modules/zod/v4/locales/hu.cjs +135 -0
  1640. package/node_modules/zod/v4/locales/hu.d.cts +5 -0
  1641. package/node_modules/zod/v4/locales/hu.d.ts +4 -0
  1642. package/node_modules/zod/v4/locales/hu.js +108 -0
  1643. package/node_modules/zod/v4/locales/hy.cjs +174 -0
  1644. package/node_modules/zod/v4/locales/hy.d.cts +5 -0
  1645. package/node_modules/zod/v4/locales/hy.d.ts +4 -0
  1646. package/node_modules/zod/v4/locales/hy.js +147 -0
  1647. package/node_modules/zod/v4/locales/id.cjs +133 -0
  1648. package/node_modules/zod/v4/locales/id.d.cts +5 -0
  1649. package/node_modules/zod/v4/locales/id.d.ts +4 -0
  1650. package/node_modules/zod/v4/locales/id.js +106 -0
  1651. package/node_modules/zod/v4/locales/index.cjs +111 -0
  1652. package/node_modules/zod/v4/locales/index.d.cts +52 -0
  1653. package/node_modules/zod/v4/locales/index.d.ts +52 -0
  1654. package/node_modules/zod/v4/locales/index.js +52 -0
  1655. package/node_modules/zod/v4/locales/is.cjs +136 -0
  1656. package/node_modules/zod/v4/locales/is.d.cts +5 -0
  1657. package/node_modules/zod/v4/locales/is.d.ts +4 -0
  1658. package/node_modules/zod/v4/locales/is.js +109 -0
  1659. package/node_modules/zod/v4/locales/it.cjs +135 -0
  1660. package/node_modules/zod/v4/locales/it.d.cts +5 -0
  1661. package/node_modules/zod/v4/locales/it.d.ts +4 -0
  1662. package/node_modules/zod/v4/locales/it.js +108 -0
  1663. package/node_modules/zod/v4/locales/ja.cjs +134 -0
  1664. package/node_modules/zod/v4/locales/ja.d.cts +5 -0
  1665. package/node_modules/zod/v4/locales/ja.d.ts +4 -0
  1666. package/node_modules/zod/v4/locales/ja.js +107 -0
  1667. package/node_modules/zod/v4/locales/ka.cjs +139 -0
  1668. package/node_modules/zod/v4/locales/ka.d.cts +5 -0
  1669. package/node_modules/zod/v4/locales/ka.d.ts +4 -0
  1670. package/node_modules/zod/v4/locales/ka.js +112 -0
  1671. package/node_modules/zod/v4/locales/kh.cjs +12 -0
  1672. package/node_modules/zod/v4/locales/kh.d.cts +5 -0
  1673. package/node_modules/zod/v4/locales/kh.d.ts +5 -0
  1674. package/node_modules/zod/v4/locales/kh.js +5 -0
  1675. package/node_modules/zod/v4/locales/km.cjs +137 -0
  1676. package/node_modules/zod/v4/locales/km.d.cts +5 -0
  1677. package/node_modules/zod/v4/locales/km.d.ts +4 -0
  1678. package/node_modules/zod/v4/locales/km.js +110 -0
  1679. package/node_modules/zod/v4/locales/ko.cjs +138 -0
  1680. package/node_modules/zod/v4/locales/ko.d.cts +5 -0
  1681. package/node_modules/zod/v4/locales/ko.d.ts +4 -0
  1682. package/node_modules/zod/v4/locales/ko.js +111 -0
  1683. package/node_modules/zod/v4/locales/lt.cjs +230 -0
  1684. package/node_modules/zod/v4/locales/lt.d.cts +5 -0
  1685. package/node_modules/zod/v4/locales/lt.d.ts +4 -0
  1686. package/node_modules/zod/v4/locales/lt.js +203 -0
  1687. package/node_modules/zod/v4/locales/mk.cjs +136 -0
  1688. package/node_modules/zod/v4/locales/mk.d.cts +5 -0
  1689. package/node_modules/zod/v4/locales/mk.d.ts +4 -0
  1690. package/node_modules/zod/v4/locales/mk.js +109 -0
  1691. package/node_modules/zod/v4/locales/ms.cjs +134 -0
  1692. package/node_modules/zod/v4/locales/ms.d.cts +5 -0
  1693. package/node_modules/zod/v4/locales/ms.d.ts +4 -0
  1694. package/node_modules/zod/v4/locales/ms.js +107 -0
  1695. package/node_modules/zod/v4/locales/nl.cjs +137 -0
  1696. package/node_modules/zod/v4/locales/nl.d.cts +5 -0
  1697. package/node_modules/zod/v4/locales/nl.d.ts +4 -0
  1698. package/node_modules/zod/v4/locales/nl.js +110 -0
  1699. package/node_modules/zod/v4/locales/no.cjs +135 -0
  1700. package/node_modules/zod/v4/locales/no.d.cts +5 -0
  1701. package/node_modules/zod/v4/locales/no.d.ts +4 -0
  1702. package/node_modules/zod/v4/locales/no.js +108 -0
  1703. package/node_modules/zod/v4/locales/ota.cjs +136 -0
  1704. package/node_modules/zod/v4/locales/ota.d.cts +5 -0
  1705. package/node_modules/zod/v4/locales/ota.d.ts +4 -0
  1706. package/node_modules/zod/v4/locales/ota.js +109 -0
  1707. package/node_modules/zod/v4/locales/package.json +7 -0
  1708. package/node_modules/zod/v4/locales/pl.cjs +136 -0
  1709. package/node_modules/zod/v4/locales/pl.d.cts +5 -0
  1710. package/node_modules/zod/v4/locales/pl.d.ts +4 -0
  1711. package/node_modules/zod/v4/locales/pl.js +109 -0
  1712. package/node_modules/zod/v4/locales/ps.cjs +141 -0
  1713. package/node_modules/zod/v4/locales/ps.d.cts +5 -0
  1714. package/node_modules/zod/v4/locales/ps.d.ts +4 -0
  1715. package/node_modules/zod/v4/locales/ps.js +114 -0
  1716. package/node_modules/zod/v4/locales/pt.cjs +135 -0
  1717. package/node_modules/zod/v4/locales/pt.d.cts +5 -0
  1718. package/node_modules/zod/v4/locales/pt.d.ts +4 -0
  1719. package/node_modules/zod/v4/locales/pt.js +108 -0
  1720. package/node_modules/zod/v4/locales/ro.cjs +146 -0
  1721. package/node_modules/zod/v4/locales/ro.d.cts +5 -0
  1722. package/node_modules/zod/v4/locales/ro.d.ts +4 -0
  1723. package/node_modules/zod/v4/locales/ro.js +119 -0
  1724. package/node_modules/zod/v4/locales/ru.cjs +183 -0
  1725. package/node_modules/zod/v4/locales/ru.d.cts +5 -0
  1726. package/node_modules/zod/v4/locales/ru.d.ts +4 -0
  1727. package/node_modules/zod/v4/locales/ru.js +156 -0
  1728. package/node_modules/zod/v4/locales/sl.cjs +136 -0
  1729. package/node_modules/zod/v4/locales/sl.d.cts +5 -0
  1730. package/node_modules/zod/v4/locales/sl.d.ts +4 -0
  1731. package/node_modules/zod/v4/locales/sl.js +109 -0
  1732. package/node_modules/zod/v4/locales/sv.cjs +137 -0
  1733. package/node_modules/zod/v4/locales/sv.d.cts +5 -0
  1734. package/node_modules/zod/v4/locales/sv.d.ts +4 -0
  1735. package/node_modules/zod/v4/locales/sv.js +110 -0
  1736. package/node_modules/zod/v4/locales/ta.cjs +137 -0
  1737. package/node_modules/zod/v4/locales/ta.d.cts +5 -0
  1738. package/node_modules/zod/v4/locales/ta.d.ts +4 -0
  1739. package/node_modules/zod/v4/locales/ta.js +110 -0
  1740. package/node_modules/zod/v4/locales/th.cjs +137 -0
  1741. package/node_modules/zod/v4/locales/th.d.cts +5 -0
  1742. package/node_modules/zod/v4/locales/th.d.ts +4 -0
  1743. package/node_modules/zod/v4/locales/th.js +110 -0
  1744. package/node_modules/zod/v4/locales/tr.cjs +132 -0
  1745. package/node_modules/zod/v4/locales/tr.d.cts +5 -0
  1746. package/node_modules/zod/v4/locales/tr.d.ts +4 -0
  1747. package/node_modules/zod/v4/locales/tr.js +105 -0
  1748. package/node_modules/zod/v4/locales/ua.cjs +12 -0
  1749. package/node_modules/zod/v4/locales/ua.d.cts +5 -0
  1750. package/node_modules/zod/v4/locales/ua.d.ts +5 -0
  1751. package/node_modules/zod/v4/locales/ua.js +5 -0
  1752. package/node_modules/zod/v4/locales/uk.cjs +135 -0
  1753. package/node_modules/zod/v4/locales/uk.d.cts +5 -0
  1754. package/node_modules/zod/v4/locales/uk.d.ts +4 -0
  1755. package/node_modules/zod/v4/locales/uk.js +108 -0
  1756. package/node_modules/zod/v4/locales/ur.cjs +137 -0
  1757. package/node_modules/zod/v4/locales/ur.d.cts +5 -0
  1758. package/node_modules/zod/v4/locales/ur.d.ts +4 -0
  1759. package/node_modules/zod/v4/locales/ur.js +110 -0
  1760. package/node_modules/zod/v4/locales/uz.cjs +137 -0
  1761. package/node_modules/zod/v4/locales/uz.d.cts +5 -0
  1762. package/node_modules/zod/v4/locales/uz.d.ts +4 -0
  1763. package/node_modules/zod/v4/locales/uz.js +110 -0
  1764. package/node_modules/zod/v4/locales/vi.cjs +135 -0
  1765. package/node_modules/zod/v4/locales/vi.d.cts +5 -0
  1766. package/node_modules/zod/v4/locales/vi.d.ts +4 -0
  1767. package/node_modules/zod/v4/locales/vi.js +108 -0
  1768. package/node_modules/zod/v4/locales/yo.cjs +134 -0
  1769. package/node_modules/zod/v4/locales/yo.d.cts +5 -0
  1770. package/node_modules/zod/v4/locales/yo.d.ts +4 -0
  1771. package/node_modules/zod/v4/locales/yo.js +107 -0
  1772. package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
  1773. package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
  1774. package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  1775. package/node_modules/zod/v4/locales/zh-CN.js +109 -0
  1776. package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
  1777. package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
  1778. package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  1779. package/node_modules/zod/v4/locales/zh-TW.js +107 -0
  1780. package/node_modules/zod/v4/mini/checks.cjs +34 -0
  1781. package/node_modules/zod/v4/mini/checks.d.cts +1 -0
  1782. package/node_modules/zod/v4/mini/checks.d.ts +1 -0
  1783. package/node_modules/zod/v4/mini/checks.js +1 -0
  1784. package/node_modules/zod/v4/mini/coerce.cjs +52 -0
  1785. package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  1786. package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  1787. package/node_modules/zod/v4/mini/coerce.js +22 -0
  1788. package/node_modules/zod/v4/mini/external.cjs +63 -0
  1789. package/node_modules/zod/v4/mini/external.d.cts +13 -0
  1790. package/node_modules/zod/v4/mini/external.d.ts +13 -0
  1791. package/node_modules/zod/v4/mini/external.js +14 -0
  1792. package/node_modules/zod/v4/mini/index.cjs +32 -0
  1793. package/node_modules/zod/v4/mini/index.d.cts +3 -0
  1794. package/node_modules/zod/v4/mini/index.d.ts +3 -0
  1795. package/node_modules/zod/v4/mini/index.js +3 -0
  1796. package/node_modules/zod/v4/mini/iso.cjs +64 -0
  1797. package/node_modules/zod/v4/mini/iso.d.cts +22 -0
  1798. package/node_modules/zod/v4/mini/iso.d.ts +22 -0
  1799. package/node_modules/zod/v4/mini/iso.js +34 -0
  1800. package/node_modules/zod/v4/mini/package.json +7 -0
  1801. package/node_modules/zod/v4/mini/parse.cjs +16 -0
  1802. package/node_modules/zod/v4/mini/parse.d.cts +1 -0
  1803. package/node_modules/zod/v4/mini/parse.d.ts +1 -0
  1804. package/node_modules/zod/v4/mini/parse.js +1 -0
  1805. package/node_modules/zod/v4/mini/schemas.cjs +1083 -0
  1806. package/node_modules/zod/v4/mini/schemas.d.cts +445 -0
  1807. package/node_modules/zod/v4/mini/schemas.d.ts +445 -0
  1808. package/node_modules/zod/v4/mini/schemas.js +961 -0
  1809. package/node_modules/zod/v4/package.json +7 -0
  1810. package/node_modules/zod/v4-mini/index.cjs +32 -0
  1811. package/node_modules/zod/v4-mini/index.d.cts +3 -0
  1812. package/node_modules/zod/v4-mini/index.d.ts +3 -0
  1813. package/node_modules/zod/v4-mini/index.js +3 -0
  1814. package/node_modules/zod/v4-mini/package.json +7 -0
  1815. package/package.json +57 -0
package/dist/guide.js ADDED
@@ -0,0 +1,2038 @@
1
+ /**
2
+ * The built-in user guide. One source of truth: `prismatica guide [topic]`
3
+ * prints from here, and docs/USER_GUIDE.md is this same content rendered to a
4
+ * file (a test keeps the two identical forever).
5
+ *
6
+ * Written for a non-expert owner: plain words, copy-paste commands, and one
7
+ * line on what each command does and why you are running it.
8
+ */
9
+ export const GUIDE_TOPICS = [
10
+ {
11
+ id: 'gettingstarted',
12
+ title: 'Getting started',
13
+ body: `Prismatica is a safety layer for software that AI agents write for you.
14
+ The agent builds. Prismatica inspects. Nothing ships until the intent, the
15
+ proof, and you agree.
16
+
17
+ It is not an AI and never talks to one — it trusts only two things: what Git
18
+ says changed, and what your tests prove. Everything it knows is written as
19
+ plain files inside your repo, under \`.prismatica/\`, so you can read every
20
+ record yourself and nothing is locked in.
21
+
22
+ Install the command once (from the Prismatica source folder):
23
+
24
+ npm install && npm run build # build the CLI
25
+ npm link # put "prismatica" on your PATH
26
+
27
+ Now \`prismatica\` works in any repo. (If you edit Prismatica's own source
28
+ later, run \`npm run build\` again.) Set it up once per repo:
29
+
30
+ prismatica init
31
+ # detects the tools your repo already has, writes .prismatica/ and the
32
+ # merge gate, and shows a table of what is Enforced, Checked, or Missing
33
+
34
+ git add .prismatica .github .gitignore && git commit -m "adopt prismatica"
35
+ # the records live in git, versioned with the code they describe
36
+
37
+ The shortest normal workflow is one conversation and one command, and it
38
+ STARTS IN YOUR CODING AGENT rather than here:
39
+
40
+ 1. Open the agent you already use and activate Prismatica Start.
41
+ 2. Describe what you need, and settle the plan with it in conversation.
42
+ 3. It reads your repository and hands you one command.
43
+ 4. You run that command, in your own terminal:
44
+
45
+ prismatica start --import <proposal.json>
46
+ # revalidates that plan strictly here against a FRESH reading, shows you
47
+ # the whole plan and the exact GitHub issue it will file, and asks once:
48
+ # "Start this change?" (default No). Nothing at all is
49
+ # created until you say yes to the second one.
50
+
51
+ Neither command takes your description. You and the agent agree the wording
52
+ between you, and the plan carries it back in its \`request\` field — so the
53
+ contract, the issue and the reviewer all quote the same agreed sentence
54
+ instead of a one-liner you happened to type twice.
55
+
56
+ That does by itself what \`frame\` + \`pack\` do by hand, and it works when you
57
+ cannot yet name the files involved. \`frame\` is still there for when you know
58
+ exactly what you want (see "manual frame").
59
+
60
+ Either way the change then follows the same loop, described under "the loop"
61
+ below: start (or frame) → pack → build → check → review → seal → (accept) →
62
+ ship → verify. You do not need to remember any of that, though — whenever
63
+ you're not sure what to run, ask:
64
+
65
+ prismatica next
66
+ # prints the one command to run right now, and why (see "next" below)`,
67
+ },
68
+ {
69
+ id: 'loop',
70
+ title: 'The loop — one change, start to finish',
71
+ body: `The whole shape, in one line:
72
+
73
+ describe need → your agent plans it → you confirm → start build →
74
+ Builder → fresh reviewer → deterministic gate
75
+
76
+ 1. Start it — the usual way. In your coding agent, use Prismatica Start: say
77
+ what you need, settle the plan with it, and it hands you the one command
78
+ below to run yourself:
79
+
80
+ prismatica start --import <proposal.json>
81
+ # strict local revalidation against a FRESH snapshot → your own words,
82
+ # the whole plan and the issue text in full → "Start this change?" →
83
+ # issue, lane, approved intent, Delta or Planned Flow, and the builder
84
+ # brief. Nothing is created before that yes.
85
+
86
+ Steps 2 and 3 below are already done for you at this point — skip to 4.
87
+
88
+ Prefer full manual control, or already know the exact scope? Frame it
89
+ yourself instead (see "manual frame" for every flag spelled out):
90
+
91
+ prismatica frame "Add signup validation" --issue "#12" \\
92
+ --allow "src/signup/**" --check "rejects empty email | signup.test.ts"
93
+ # writes the contract and opens a safe lane (a separate working copy)
94
+ # so the agent cannot touch your main checkout
95
+
96
+ 2. Pack it — build the brief you hand to the agent (\`start\` did this):
97
+
98
+ prismatica pack <id>
99
+ # a scoped, self-contained brief; if the contract changes later,
100
+ # this brief goes stale and Prismatica refuses to use it
101
+
102
+ 3. Open it — hand the brief over:
103
+
104
+ prismatica open claude <id> # opens Claude Code inside the lane
105
+ prismatica open --copy <id> # or copy the brief for any other agent
106
+
107
+ A known agent is started in the lane with ONE short pointer at the pack and
108
+ the contract, both of which are already on disk there — never the brief
109
+ itself, in argv or anywhere else. \`--copy\` is the exception, and the reason
110
+ for it: a chat agent has no lane to read from, so it gets the full text.
111
+
112
+ 4. Check it — after the agent commits its work in the lane:
113
+
114
+ prismatica check
115
+ # runs your own tools (typecheck, lint, tests, build, journeys, secret
116
+ # scan) plus Prismatica's own checks: did the diff stay in scope, does
117
+ # every acceptance check trace to a passing test, were docs updated
118
+
119
+ 5. Review and seal it — fresh eyes on the exact diff:
120
+
121
+ prismatica review --agent claude # a review brief bound to the diff,
122
+ # then a fresh READ-ONLY session on
123
+ # it in the lane
124
+ prismatica seal # binds an APPROVE verdict to it; if
125
+ # the code moves later, the seal
126
+ # breaks and review redoes
127
+ prismatica seal --request-changes # the reviewer said no — this stops
128
+ # the change, it does not merely
129
+ # note an opinion
130
+
131
+ 6. Accept it (heavy changes only) — your signed decision:
132
+
133
+ prismatica accept
134
+ # signs your approval over this exact diff with your private key;
135
+ # the gate verifies the signature — nobody can fake your sign-off
136
+
137
+ 7. Ship it:
138
+
139
+ prismatica ship <id>
140
+ # pushes the exact committed head and opens the pull request; the gate
141
+ # re-runs everything on GitHub and blocks the merge unless every
142
+ # requirement holds — including a signed decision, and the changed
143
+ # files' own risk-tier floor (touching auth/payments/data always needs
144
+ # at least the tier that implies)
145
+
146
+ 8. Merge it — once the gate is green:
147
+
148
+ prismatica merge <id>
149
+ # an exact-SHA, owner-guarded merge: refuses a draft, missing, closed,
150
+ # pending, failed, stale, or ambiguous PR, requires a passing
151
+ # prismatica-gate check for this EXACT head, then merges (--merge only
152
+ # — never a silent squash or rebase). Reported as "Checked —
153
+ # owner-guarded": this command is the guard, not a claim that GitHub
154
+ # itself enforces it (GitHub Free private repos don't offer that)
155
+
156
+ 9. Close it — remove the lane once GitHub confirms the merge:
157
+
158
+ prismatica close <id>
159
+ # requires the exact registered lane, refuses a dirty one, and only
160
+ # removes the worktree (+ local branch) once GitHub's own record shows
161
+ # a merged PR at exactly this lane's HEAD — never a remote branch,
162
+ # never uncertain, never partial-and-unrecoverable
163
+
164
+ 10. Verify it — after the merge deploys:
165
+
166
+ prismatica ship <id> --verify --deploy-result "deployed to prod" \\
167
+ --rollback "revert the PR, redeploy"
168
+ # runs one live smoke journey; only if it passes is the passport
169
+ # written: what shipped, its proof, and a tested way back. This writes
170
+ # onto your main checkout, not the (already-closed) lane
171
+
172
+ Run each command from inside the change's lane and you can leave the <id> off —
173
+ Prismatica works out which change you mean from the branch. Lost? \`prismatica
174
+ next\` always tells you exactly which of these to run next, including while
175
+ waiting on the gate or a merged-but-not-yet-closed PR.
176
+
177
+ **Steps 3 to 5 can be driven for you, up to the point where you decide.** Ask
178
+ your coding agent to get the change ready and it runs build → \`check\` → fresh
179
+ review as a bounded loop of disposable sessions, handing back at your next
180
+ decision — the seal in step 5 included. That is a role any agent can take
181
+ (Prismatica packages it where it can — in Claude Code, \`/prismatica:ready\`),
182
+ and it is a convenience rather than a shortcut: every command above still runs,
183
+ and the gate is unmoved by whether one was typed by you or started for you. See
184
+ "roles" for the one owner-only command a controller may run, and why that one
185
+ cannot advance anything.`,
186
+ },
187
+ {
188
+ id: 'next',
189
+ title: "next — the one command, when you don't know what to run",
190
+ body: `You do not need to memorise the loop above. From anywhere in the repo:
191
+
192
+ prismatica next
193
+ # prints exactly one command, one reason, and what to run after —
194
+ # never a guess, never a placeholder you have to fill in yourself
195
+
196
+ It reads what is already on record — no Flows yet? it says \`discover\`. A
197
+ draft waiting? \`view\`. An approved delta not yet turned into a change?
198
+ \`frame --from-delta\`. Mid-change? whichever of pack / open / check / review /
199
+ seal / accept / ship / merge / close fits where that change actually is right
200
+ now — never \`git add -A\`, always the exact files that changed. Nothing to
201
+ do? "all quiet."
202
+
203
+ It never runs your checks itself (that would make asking "what's next" as
204
+ slow as a full proof run) — it only reads the record of what already
205
+ happened. The one exception: once you have actually shipped, it makes a
206
+ single read-only check of the PR and its \`prismatica-gate\` check (never
207
+ writes anything back to GitHub) so it can tell "wait for the gate" apart from
208
+ "ready to merge" apart from "merged — go close it". If GitHub cannot be
209
+ reached, it says so honestly and falls back to a safe, retry-able suggestion
210
+ — never a guess dressed up as certainty. Add \`--copy\` to copy the command
211
+ straight to your clipboard.
212
+
213
+ **Every git command it prints names the directory it belongs in.** \`next\` runs
214
+ from anywhere — main, a lane, a subdirectory of either — so a bare \`git add\`
215
+ would stage whichever worktree you happened to be standing in. The advice is
216
+ always \`git -C <the exact lane> …\`, quoted, so a paste does the same thing from
217
+ every directory.
218
+
219
+ **It also tells you when main itself has fallen behind.** That sits second from
220
+ last in the order, below real work in a lane and below stale Flow evidence: a
221
+ behind main is housekeeping, and interrupting the change you asked about to
222
+ report it would bury the answer. It outranks only "all quiet", which is the one
223
+ answer it genuinely contradicts — the next change framed from a stale main
224
+ would take a stale baseline, and \`frame\` refuses outright for that reason.
225
+
226
+ git -C /path/to/repo pull --ff-only origin main
227
+
228
+ Nothing is ever pulled for you, and nothing is fetched to work this out: it
229
+ reports what your last fetch already told this repo. If that cannot be
230
+ established — no remote, no upstream ref — it says nothing at all. "We do not
231
+ know" is never printed as "you are behind".
232
+
233
+ Between \`prismatica view\` (see everything), \`prismatica delta new\` (say what
234
+ should change about a Flow), and \`prismatica next\` (what do I do now), that
235
+ is the whole owner-facing surface — everything else is what those three
236
+ commands walk you through.
237
+
238
+ **Every \`prismatica\` command above is location-independent.** Run it from
239
+ main, from a lane, or from a subdirectory of either, and it resolves which
240
+ change you mean from the record — never from your current directory. A
241
+ manually opened agent is the one exception: when \`prismatica open <agent>
242
+ --no-spawn\` (or \`review --agent <agent> --no-spawn\`) prints a command instead
243
+ of launching one, or after \`open --copy\`/\`review --copy\` hand you a brief or
244
+ pointer to paste, what you run yourself is a plain agent process, and that
245
+ process inherits YOUR shell's current directory, not Prismatica's resolved
246
+ one. That is why the printed command always starts with \`cd <lane> &&\` —
247
+ quoted, so a lane path with a space or a quote in it still reaches \`cd\` as one
248
+ argument — and why it carries \`PRISMATICA_EXECUTOR=agent\`: a spawned launch
249
+ always sets that marker, and a hand-run missing it would look, to Prismatica,
250
+ like you at your own terminal rather than the agent it is. Paste the printed
251
+ line as-is; Prismatica never runs it for you, never changes your shell's own
252
+ directory, and never opens a nested shell to do so.
253
+
254
+ **One special case: Prismatica's own repository — a self-host EXCEPTION, not
255
+ an ordinary application workflow.** If the lane being advised is a checkout of
256
+ Prismatica itself, the \`prismatica\` on your PATH is some other copy, and
257
+ running it would exercise code the lane does not contain. There, \`next\`
258
+ (and \`doctor\`) name the lane's own build instead, in whichever of three
259
+ states that checkout is actually in — never a guess, and never something
260
+ Prismatica installs or builds on your behalf:
261
+
262
+ cd <lane> && npm ci # no node_modules yet — install first
263
+ cd <lane> && npm run build # installed, but dist/cli.js is not built
264
+ cd <lane> && node dist/cli.js … # ready — runs the lane's own build
265
+
266
+ Only the third line is ever \`prismatica\`'s advice rewritten to point at code;
267
+ the first two are the ONE exact recovery for that lane's state, never chained
268
+ onto a command that cannot yet run. \`next\` also prints where both copies
269
+ live, without claiming either is newer, because nothing here can know that.
270
+ This is advice and nothing else: no gate, no checksum, no version handshake,
271
+ and — outside this one narrow exception — \`npm ci\`/\`npm run build\` are never
272
+ part of Prismatica's own advice for an ordinary application repository.
273
+ Ordinary repositories, and every \`git\` or \`gh\` command, are untouched.
274
+
275
+ Every command that acts on a change says the same thing once — one note on
276
+ stderr, the first time, only in Prismatica's own repository and only when you
277
+ are at a terminal. Piped output, CI and every other repository print nothing.
278
+ \`prismatica doctor\` states it plainly too: which checkout holds the build
279
+ that produced the report, and which checkout the report is about. None of it
280
+ changes a single check result.`,
281
+ },
282
+ {
283
+ id: 'understandapp',
284
+ title: 'Scenario — understand an app you already have',
285
+ body: `You have an app. You want to know what it actually does today, and how much
286
+ of that is genuinely proven rather than assumed. Start here.
287
+
288
+ In your coding agent, use Prismatica Understand: ask it to map this app.
289
+ It reads the real code and describes it as Flows (routes through your app)
290
+ and Rules (things that must stay true), saves a json answer, and hands you:
291
+
292
+ prismatica discover --import <proposal.json>
293
+ # materialises that answer as proposals. It proposes; nothing is
294
+ # accepted automatically.
295
+
296
+ prismatica flow list
297
+ # what the app does, in reading order, grouped by journey when your
298
+ # records say which journey they belong to
299
+
300
+ A Flow is one complete route through your app — "log a practice session",
301
+ start to finish. The list leads with a short title and a one-sentence outcome,
302
+ and it stays quiet unless something needs you: a stale step, an unverified
303
+ flow, a pending update, or an open change that touches it.
304
+
305
+ Read one properly:
306
+
307
+ prismatica flow show log-a-practice-session
308
+ # the story: what it is for, where it starts and ends, what happens in
309
+ # order, and how solid the evidence is
310
+
311
+ Then accept what is right and discard what is not:
312
+
313
+ prismatica flow approve log-a-practice-session
314
+ prismatica flow dismiss guess-at-billing
315
+
316
+ Same for the app-wide guardrails:
317
+
318
+ prismatica rules list # every rule's complete text, wrapped
319
+ prismatica rules list --details # plus which flows cite each one
320
+ prismatica rules approve offline-first
321
+
322
+ Prefer to read in a browser? \`prismatica view\` opens the same Flow Map and
323
+ Storyboards, backed by exactly the same data.`,
324
+ },
325
+ {
326
+ id: 'changeflow',
327
+ title: 'Scenario — change something an existing Flow does',
328
+ body: `The app already does something, and you want it to do something different.
329
+ Say it in Flow language first — before anyone writes code.
330
+
331
+ A Delta is one sentence of intent: which flow, what happens today, what should
332
+ happen instead, and what must not change.
333
+
334
+ prismatica delta new \\
335
+ --flow log-a-practice-session \\
336
+ --today "Saving a session with an empty title succeeds silently" \\
337
+ --instead "An empty title is rejected with an inline message" \\
338
+ --keep "Offline saving still queues and syncs later" \\
339
+ --show-me "A test that saves an empty title and expects a rejection"
340
+
341
+ prismatica delta list # what has been proposed
342
+ prismatica delta approve <id> # this is the change you want
343
+
344
+ Approving a Delta does not touch the Flow — it records the intent. Turn it
345
+ into a contract and a safe lane to build in:
346
+
347
+ prismatica frame --from-delta <id>
348
+
349
+ From there it is the ordinary loop (see "loop"): the agent builds in the lane,
350
+ \`prismatica check\` proves it, \`review\` and \`seal\` bind fresh eyes to the
351
+ exact diff, and the Flow itself only changes when an agent PROPOSES an update
352
+ and you run \`prismatica flow approve\`. No lane can ever write an approved
353
+ Flow directly.
354
+
355
+ While the change is open, every affected Flow says so on the Flow Map and in
356
+ \`flow list\` — "Directly affected by open change …" — so you are never
357
+ reading a map that quietly went out of date.`,
358
+ },
359
+ {
360
+ id: 'newflow',
361
+ title: 'Scenario — define and approve a new Planned Flow',
362
+ body: `Something the app does not do yet, but should. Write it as a Planned Flow so
363
+ it is visible and reviewable before a single line exists.
364
+
365
+ Ask your agent to draft it (a proposal file under
366
+ \`.prismatica/flows/proposals/\`), with \`status: planned\` and a truth block:
367
+ goal, starts when, needs, steps, ends with. A realistic one:
368
+
369
+ id: export-a-practice-log
370
+ status: planned
371
+ truth:
372
+ goal: Export a practice log as a CSV file a coach can open
373
+ startsWhen: The user taps 'Export' on the history screen
374
+ needs:
375
+ - They are signed in
376
+ - At least one session exists
377
+ steps:
378
+ - actor: User
379
+ action: chooses a date range and taps Export
380
+ shows: A progress row while the file is built
381
+ - actor: App
382
+ action: writes the CSV and hands it to the share sheet
383
+ shows: The system share sheet with the file attached
384
+ changes: An export record with the row count and range
385
+ endsWith: The coach receives a CSV that opens cleanly in a spreadsheet
386
+
387
+ Then review and accept it exactly like any other proposal:
388
+
389
+ prismatica flow show export-a-practice-log # read it as a story
390
+ prismatica flow approve export-a-practice-log # sign it as approved truth
391
+
392
+ Approving records a fingerprint of the truth block and, in a governed repo,
393
+ signs it with your key. A Planned Flow shows as "Planned" everywhere until it
394
+ is real; when it is, flip it in one command — no ceremony, because the honest
395
+ guard is the visible evidence, not a lock:
396
+
397
+ prismatica flow status export-a-practice-log works
398
+ prismatica flow verify export-a-practice-log --step 2`,
399
+ },
400
+ {
401
+ id: 'proof',
402
+ title: 'Scenario — inspect the proof, and the code behind it',
403
+ body: `The default story is deliberately short. When you want to interrogate it, open
404
+ one layer at a time — the flags compose, and nothing is hidden that you cannot
405
+ ask for.
406
+
407
+ prismatica flow show prove-a-change-with-check
408
+ # the owner story: outcome, start/end, steps in order, evidence summary
409
+
410
+ prismatica flow show prove-a-change-with-check --proof
411
+ # how EVERY step was verified: manually, by test, inferred from the
412
+ # code, or not at all. Evidence attaches to the exact step, never to
413
+ # the whole flow, so one passing test can never read as "it all works".
414
+
415
+ prismatica flow show prove-a-change-with-check --details
416
+ # the assumptions each step relies on. Every guardrail's complete text
417
+ # is already shown, with no flag needed — never clipped to a label
418
+
419
+ prismatica flow show prove-a-change-with-check --code
420
+ # where it lives: touchpoints, routes, components, entities, tests
421
+
422
+ prismatica flow show prove-a-change-with-check --json | jq '.steps[].result'
423
+ # the same view as stable JSON, for scripts
424
+
425
+ "Stale" is the word to watch for. A step is stale when the code it depends on
426
+ changed after the last time that step was verified — the record is not wrong,
427
+ it is simply no longer known to be right. Re-confirm it yourself with:
428
+
429
+ prismatica flow verify prove-a-change-with-check --step 3
430
+
431
+ Only real implementation and test changes count. Approving or dismissing a
432
+ Flow/Rule proposal elsewhere in the repo touches files under \`.prismatica/\`,
433
+ and that alone never stales a step's evidence — even for a Flow (like this
434
+ one, or "Map the app with atlas discovery") whose own mechanics legitimately
435
+ live under \`.prismatica/\`. Only a later change to the actual code or test
436
+ files a step is mapped to does.`,
437
+ },
438
+ {
439
+ id: 'mergepath',
440
+ title: 'Scenario — merge on a private repo with no branch protection',
441
+ body: `GitHub Free does not offer required status checks on private repositories.
442
+ Prismatica does not pretend otherwise: it gives you an owner-guarded merge
443
+ path and describes it honestly as "Checked — owner-guarded", never as
444
+ "enforced by GitHub".
445
+
446
+ prismatica ship 20260728-add-signup-validation-a1b2
447
+ # pre-flights the gate locally, requires an exact clean lane HEAD,
448
+ # pushes that exact commit, and opens (or reuses) the pull request
449
+
450
+ The gate then runs on GitHub for that push, in a clean checkout: scope, tests,
451
+ docs, the sealed review, your signature where the risk tier demands one.
452
+
453
+ prismatica merge 20260728-add-signup-validation-a1b2
454
+ # the guard. It refuses a draft, missing, closed, pending, failed,
455
+ # stale, or ambiguous PR, and requires a PASSING prismatica-gate check
456
+ # for this exact head commit before calling gh pr merge --merge —
457
+ # never a silent squash or rebase, never a merge of a different SHA
458
+ # than the one that was proven
459
+
460
+ prismatica doctor
461
+ # tells you plainly which level of assurance you actually have:
462
+ # absent, unexercised, "Checked — owner-guarded", unavailable on this
463
+ # plan, unknown, or genuinely server-enforced
464
+
465
+ Know exactly what that compromise buys you, and what it does not.
466
+ \`prismatica merge\` is exact-head and owner-guarded: it will not merge anything
467
+ but the exact commit a passing prismatica-gate check covers. What it cannot do
468
+ is guard a route it never runs on. Without server-side protection, merging the
469
+ pull request in the GitHub browser UI, or pushing straight to main, is still
470
+ possible — Prismatica is the guard you choose to walk through, not a locked door.
471
+
472
+ On a private GitHub Free repo, doctor says "unavailable on this plan" and
473
+ prints no settings fix, because there is no setting to change. That is not a
474
+ failure of yours, and it does not count against your adoption score.
475
+
476
+ If GitHub cannot be reached, both commands fail closed and say so. An unknown
477
+ state is never treated as a green one — and, just as importantly, it is never
478
+ reported as an absent one. "We could not ask GitHub" reads as "unknown", never
479
+ as "this branch is unprotected".`,
480
+ },
481
+ {
482
+ id: 'verifyclose',
483
+ title: 'Scenario — verify the live deploy, then close the change',
484
+ body: `Merged is not the same as working. Close the loop in that order: merge, close
485
+ the lane, deploy, then prove the deploy.
486
+
487
+ prismatica close 20260728-add-signup-validation-a1b2
488
+ # removes the lane ONLY once GitHub's own record confirms a merged PR
489
+ # at exactly this lane's HEAD. It refuses any real uncommitted work,
490
+ # and refuses ignored local files it cannot prove are disposable — a
491
+ # local .env, a log, an evidence blob, or a hand-edited hook survives.
492
+ # It never deletes the remote branch.
493
+
494
+ A successful \`close\` always ends by telling you to catch main up, because the
495
+ merge happened on GitHub and this checkout has not seen it yet:
496
+
497
+ git -C /path/to/repo pull --ff-only origin main
498
+
499
+ That prints every time, not only when something went wrong — an owner told
500
+ nothing discovers the staleness at the next \`frame\`, which refuses. If the
501
+ local branch could not be deleted (git refuses a \`-d\` while the checkout has
502
+ not seen the merge), the safe delete is printed too, and only AFTER the pull
503
+ that makes it possible. It stays \`-d\`, never \`-D\`: if git still refuses
504
+ afterwards, there really is unmerged work there. Nothing is pulled for you.
505
+
506
+ Deploy however you normally deploy. Then, and only then:
507
+
508
+ prismatica ship 20260728-add-signup-validation-a1b2 --verify \\
509
+ --deploy-result "deployed to production at 14:20 UTC" \\
510
+ --rollback "revert PR #48 and redeploy image v1.9.3"
511
+ # runs one live smoke journey against the real app; the passport is
512
+ # written only if it passes
513
+
514
+ No passport is written for a broken deploy. The rollback route recorded is one
515
+ you actually described, because the only rollback worth having is one somebody
516
+ has thought through.
517
+
518
+ \`--verify\` proves the change against the ONE commit that merged, and it stays
519
+ provable however long you leave it. It requires GitHub to confirm the PR merged,
520
+ into your configured main branch, from this contract's own branch; that the
521
+ merged head produces exactly the patch-id your proof covers (the approved sealed
522
+ review above \`light\` tier, the passing check's own commit at \`light\`); and
523
+ that exactly one \`prismatica-gate\` check ran on that head and passed. Missing,
524
+ pending, failed, ambiguous, or unreadable gate evidence all refuse, before the
525
+ smoke journey and before anything is written.
526
+
527
+ It does NOT re-run the local gate. That question decays: after the merge it
528
+ would compare your baseline against whatever main is today, so every change
529
+ that merged after yours would count as your out-of-scope files. The gate's own
530
+ recorded result on your exact merged head is the honest replacement — and a
531
+ real one, since without GitHub branch protection a PR merged in the browser
532
+ never had to satisfy any check at all.
533
+
534
+ Unsure where you are in that sequence at any point:
535
+
536
+ prismatica next
537
+ # reads the PR and its checks read-only and names the single next
538
+ # command — or says the state is unknown, if GitHub cannot be reached`,
539
+ },
540
+ {
541
+ id: 'abandon',
542
+ title: 'Scenario — stop a change you are not going to finish',
543
+ body: `Not every change should be finished. The requirement evaporated, the approach
544
+ was wrong, or you started two and only want one. Abandoning is a first-class
545
+ ending, not a failure to clean up after.
546
+
547
+ prismatica abandon 20260728-add-signup-validation-a1b2 \\
548
+ --reason "the customer withdrew the request before we started building"
549
+
550
+ The reason is required, because it is the only part of an abandoned change that
551
+ stays useful a year later.
552
+
553
+ What it does, in this order:
554
+
555
+ 1. **Settles the pull request first.** If one is open, it is closed on GitHub
556
+ before anything else happens — a lane taken away while its PR still passes
557
+ the gate leaves work anyone can merge, with nobody left who intends to
558
+ review it. If gh cannot tell whether a PR exists, the command stops and
559
+ changes nothing: "there is no PR" and "we could not find out" are different
560
+ facts, and only the first is safe to act on. A PR that already merged is
561
+ refused outright — that change shipped, so \`close\` is the command, not
562
+ this one.
563
+ 2. **Closes the linked issue**, best effort. If that fails you are told so,
564
+ with the command to do it yourself. It never fails silently.
565
+ 3. **Archives the records to git history** — the contract, the approved plan,
566
+ the brief, the linked delta and a planned Flow proposal, whichever exist.
567
+ This is the one place Prismatica commits for you, and it is deliberate: the
568
+ records of a freshly started change are usually still uncommitted, and
569
+ removing the lane would destroy the only copy of them. Anything else in the
570
+ lane refuses the whole command — your own uncommitted code, a conflict, a
571
+ file that does not parse as the record its name claims, or an ignored local
572
+ file like a \`.env\` that the removal would delete.
573
+ 4. **Removes the lane**, and only then.
574
+
575
+ **Nothing is deleted.** The local branch is retained, and any remote branch
576
+ that already existed for it is left untouched — abandon never pushes or
577
+ deletes one. The command ends by printing how to bring the lane back:
578
+
579
+ git -C /path/to/repo worktree add /path/to/repo-lanes/<id> change/<id>
580
+
581
+ Everything is exactly where you left it, plus one commit saying why you
582
+ stopped. Changing your mind is a supported outcome.
583
+
584
+ There is no lifecycle stage for this on purpose: abandoning is leaving the
585
+ sequence, not a step along it.`,
586
+ },
587
+ {
588
+ id: 'startbug',
589
+ title: 'Scenario — something is broken and you do not know where',
590
+ body: `You have a bug. You can describe what you see, but you do not know which
591
+ files are involved, whether it touches a Flow, or how risky it is. That is
592
+ exactly the normal case, and it is what \`start\` is for.
593
+
594
+ Open the agent you are already using, activate Prismatica Start, and describe
595
+ it in your own words — "exporting a session over about 10MB does nothing at
596
+ all, no file, no error". Settle it with them there: that conversation is where
597
+ the questions get asked and answered.
598
+
599
+ The skill then reads your repository for itself. It does that through
600
+ \`prismatica context start\`, which writes ONE json file to a private temporary
601
+ directory — outside your repository, so it never shows up in \`git status\` and
602
+ never blocks a check. It contains a read-only snapshot of your repo (the exact
603
+ commit, every Flow and its truth hash, every Rule, what is already pending,
604
+ what changes are in flight), plain-language instructions, and the exact schema
605
+ the answer must match. You do not normally run that command yourself; see
606
+ "prismatica guide handoff" for when you would.
607
+
608
+ Prismatica does not run that agent. It has no adapter to keep working, no
609
+ provider dialect to translate, and no session to leave behind — which is also
610
+ why there is nothing to fall back to when an agent is missing or a version
611
+ changed. Any agent that can read a file and write JSON can answer.
612
+
613
+ When it saves an answer, you import it:
614
+
615
+ prismatica start --import ~/plan.json
616
+
617
+ The plan carries the wording you both agreed (\`request\`) and who will build it
618
+ (\`builder\`), so neither is retyped here and neither can quietly differ from the
619
+ plan you are about to approve.
620
+
621
+ What happens then, in order:
622
+
623
+ 1. Prismatica takes a **fresh** reading of the repository and revalidates the
624
+ plan against it: no unknown fields, no absolute paths, no \`..\`, no secret
625
+ files, every Flow id it cites must really exist, every acceptance check must
626
+ name a real test file or \`manual:OWNER\`, and the risk tier is recomputed
627
+ from the files it proposes to touch. An agent can raise the tier; it can
628
+ never lower it. Nothing the imported document says is ever taken as fact
629
+ about your repo — the document is checked against the repo, not the reverse.
630
+ 2. The plan also echoes the whole snapshot it was written against. Prismatica
631
+ recomputes that snapshot's id from its own contents, so an echo nobody
632
+ actually exported is refused; what it is then used for is one thing only —
633
+ telling you what moved in your repo since the agent read it.
634
+ 3. It shows you your own request first, then the whole plan — scope, risk
635
+ answers, exclusions, desired rules, the Delta or Planned Flow in full — **and
636
+ the exact GitHub issue it will file**, assembled from that plan rather than
637
+ written by the agent. Then it asks once:
638
+
639
+ Start this change? (default: No)
640
+
641
+ **Nothing is created until you say yes.** No issue, no branch, no lane, no
642
+ record. There is no \`--yes\`: the whole point of the question is that a person
643
+ saw the plan and the issue text before either existed anywhere.
644
+
645
+ 4. When you say yes, Prismatica takes a **second** fresh reading and revalidates
646
+ against that one, immediately before the first outward-facing write. A
647
+ confirmation can take minutes, and a plan that was true when it was displayed
648
+ is not thereby true when it is acted on.
649
+
650
+ Then, in this order: the issue is created, the lane is framed, your approved
651
+ intent is written into that lane, the Delta or Planned Flow goes in beside it,
652
+ and the builder brief is generated. If any step fails, whatever already
653
+ succeeded is kept and you get one exact command to carry on from there — a real
654
+ GitHub issue is never silently thrown away.
655
+
656
+ ## If something failed after the lane existed
657
+
658
+ prismatica start --import ~/plan.json --resume 20260729-fix-the-silent-export-failure-a1b2
659
+
660
+ \`--resume\` finishes a change whose **lane already exists** — a live lane, on
661
+ that change's own branch; an archived contract sitting on main will not do.
662
+
663
+ It is the same path, not a shortcut past you: it takes the fresh reading,
664
+ revalidates the plan, shows you the whole preview and asks the same default-No
665
+ question before writing anything. What it changes is only what happens after
666
+ the yes. First it checks that the file you are importing really is the plan
667
+ that lane was framed from — title, scope, non-goals, acceptance checks, docs
668
+ delta and builder, every field the contract was built from — and then it writes
669
+ only the records that are genuinely missing. A record that is already there and
670
+ matches is left exactly as it is, timestamp and all; one that is there and
671
+ DIFFERS is a conflict and it refuses, because the version on disk may be the
672
+ one you edited.
673
+
674
+ Running it twice is a no-op. If framing never happened — only the issue was
675
+ created — that is not a resume: run \`start\` again with \`--issue <url>\` so it
676
+ links the issue you already have rather than opening a second one.
677
+
678
+ ## Naming the builder
679
+
680
+ Whoever planned the change is not thereby its builder, so nothing infers one:
681
+ the plan states it outright, agreed with you during planning, and it is shown
682
+ in the preview before you confirm. You can change it later — see
683
+ "prismatica guide roles".
684
+
685
+ Then it is the ordinary loop:
686
+
687
+ prismatica open claude 20260729-fix-the-silent-export-failure-a1b2`,
688
+ },
689
+ {
690
+ id: 'starttechnical',
691
+ title: 'Scenario — a technical refactor, with no product Flow invented',
692
+ body: `Not every change is a feature. Splitting a 900-line module, replacing a
693
+ deprecated API, speeding up a build — none of these change what a user can do,
694
+ and inventing a product Flow to make them look like features would be a lie
695
+ your map has to carry forever.
696
+
697
+ In Prismatica Start, tell your agent: "src/report/builder.ts has grown to 900
698
+ lines and three responsibilities — split it without changing behaviour". Settle
699
+ it, and run what it hands you:
700
+
701
+ prismatica start --import ~/plan.json
702
+
703
+ The plan classifies this as \`technical\`. That kind is checked, not merely
704
+ labelled: a technical proposal that also carries a Planned Flow or a Delta is
705
+ **rejected**. So you get an honest contract — scope, non-goals, acceptance
706
+ checks, risk tier — and your Flow map is left exactly as it was.
707
+
708
+ The plan will look roughly like:
709
+
710
+ What technical work (no product Flow)
711
+ Why three responsibilities in one file make every change risky
712
+ Instead one module per responsibility, behaviour identical
713
+ Risk tier normal
714
+ Scope src/report/**
715
+ Done when existing report tests still pass — proven by src/report/builder.test.ts
716
+ the public export surface is unchanged — proven by src/report/api.test.ts
717
+
718
+ Confirm it and the loop is identical to any other change. The
719
+ gate does not care that no Flow moved; it cares that the diff stayed in scope,
720
+ every acceptance check traced to a passing test, and the review sealed an
721
+ explicit approval of your exact diff.`,
722
+ },
723
+ {
724
+ id: 'rediscover',
725
+ title: 'Scenario — the app changed; bring the map back up to date',
726
+ body: `You mapped the app months ago. Since then five changes shipped. The map is not
727
+ wrong so much as behind. There is no separate command for this: mapping an app
728
+ for the first time and reconciling it afterwards are the same job, and the
729
+ snapshot already says which Flows exist.
730
+
731
+ In your coding agent: Prismatica Understand, then run what it hands you:
732
+
733
+ prismatica discover --import ~/answer.json
734
+
735
+ The context the skill reads gives the agent the exact picture: your current git HEAD,
736
+ every Flow's stable id, its title, its goal, its truth hash, every Rule and the
737
+ Rules approval hash, and everything already pending. It must echo the commit it
738
+ read back, or the answer is refused — an answer about a tree that has since
739
+ moved is rejected rather than merged.
740
+
741
+ Four guarantees are worth stating plainly:
742
+
743
+ - **Recognised ids become updates, never duplicates.** If the agent returns a
744
+ Flow whose id you already have, it is written as an update to that Flow — no
745
+ near-duplicate under a new name. Prismatica decides this from what is on
746
+ disk, not from what the agent labelled it.
747
+ - **The whole batch is checked before any of it is written.** One unsafe
748
+ touchpoint fails the import with nothing written, rather than leaving you
749
+ half a map.
750
+ - **Re-running is safe.** If a write failed partway, run the same command
751
+ again: a proposal already on disk that is identical to the one being imported
752
+ is left exactly as it is, keeping its original timestamp, and only the
753
+ missing ones are written. A proposal that DIFFERS is a conflict and the whole
754
+ import refuses — it may be a review you have in progress, and overwriting
755
+ that silently is the one outcome nobody recovers from.
756
+ - **Absence is never deletion.** If the agent cannot find a Flow, it goes in a
757
+ "did not find" list for you to look at. That list is advisory: it causes no
758
+ write of any kind, and it cannot fail the run. The code may simply have
759
+ moved, or the agent may have missed it — either way, that is your call.
760
+
761
+ Nothing is archived. A run log is not evidence — no gate, approval, signature or
762
+ patch-id ever read one — and its only real effect was an untracked file sitting
763
+ in front of your next \`git status\`. Rediscovery's output is the proposals.
764
+ Archives written by earlier versions are left exactly where they are; nothing
765
+ deletes them.
766
+
767
+ ## Proposing from inside a change
768
+
769
+ If you notice, while BUILDING, that a Flow's truth no longer matches what the
770
+ code will do, that proposal belongs on the change's own branch rather than on
771
+ main:
772
+
773
+ prismatica propose --import ~/answer.json
774
+
775
+ Same document, same checks, different destination — it writes into the lane, so
776
+ the proposal rides the same pull request as the code that motivated it. Which
777
+ command you run decides where the records land; the document never does.
778
+
779
+ Then review what came back, and see the next scenario for approving it.`,
780
+ },
781
+ {
782
+ id: 'approvebatch',
783
+ title: 'Scenario — review and approve a batch safely',
784
+ body: `Rediscovery can return a dozen proposals at once. Approving them one command at
785
+ a time invites you to stop reading around item four, so there is a batch form —
786
+ and it is deliberately **not** a way to skip reading.
787
+
788
+ prismatica flow list
789
+ # read them first — this is the point
790
+
791
+ prismatica flow approve --all --by ehsan
792
+
793
+ \`--all\` means **one reviewed confirmation, not blind approval**. Before it
794
+ asks anything, it prints every pending item and marks each one NEW or UPDATE —
795
+ decided from what is actually on disk, not from the proposal's own label — and
796
+ it prevalidates the entire batch. If any single item is inconsistent, nothing is
797
+ written and you are told which.
798
+
799
+ Each item is printed **in full**: the complete truth of a new flow, and for an
800
+ update the complete diff against the flow you already approved, field by field
801
+ and step by step. A one-line summary would make your signature consent to
802
+ something you never read. Only then does it ask once:
803
+
804
+ Approve all 7?
805
+
806
+ There is no \`--yes\`, and \`--all\` refuses to run without a terminal. Owner
807
+ approval is the thing this system exists to make real; a flag that skipped the
808
+ human would hollow out the record it produces.
809
+
810
+ Rules work the same way, with one difference that matters:
811
+
812
+ prismatica rules approve --all --by ehsan
813
+
814
+ All rules live in one signed file with one approval hash, so a batch of ten
815
+ produces **one** final signed file — not ten chained signatures over
816
+ intermediate states you never actually approved.
817
+
818
+ If a filesystem error interrupts a batch partway, you are told exactly which
819
+ items completed and which remain, and re-running is safe. Canonical records are
820
+ always written before the proposal is removed, so nothing is lost in between —
821
+ and if the removal is what failed, the next run recognises that canonical truth
822
+ already matches the leftover draft. It lists that item as **already applied**,
823
+ clears the leftover, and signs nothing. Nothing is ever deleted just because it
824
+ was absent from the batch.
825
+
826
+ One thing a batch will refuse: if a pending proposal is rewritten between the
827
+ preview you read and your confirmation, the whole batch stops and nothing is
828
+ written. Your approval is consent to sign the exact records you were shown, so
829
+ a record that changed after you read it is not one you approved.`,
830
+ },
831
+ {
832
+ id: 'handoff',
833
+ title: 'The hand-off — how Prismatica talks to your agent',
834
+ body: `Prismatica runs no agent for planning or mapping. It exports a document, the
835
+ agent you are already using reads it, and you import what it wrote back. That
836
+ is the whole seam, and it has exactly two commands:
837
+
838
+ prismatica context start # → a plan
839
+ prismatica context discover # → Flow/Rule proposals
840
+
841
+ **You do not normally run either.** They are MACHINE-FACING: in the ordinary
842
+ journey the Prismatica Start and Understand skills run them mid-conversation,
843
+ read the file, and hand you back the one import command that is yours. What you
844
+ see is:
845
+
846
+ 1. Open your coding agent and use Prismatica Start (or Understand).
847
+ 2. Describe what you need and settle it in conversation.
848
+ 3. Run the one \`--import\` command it gives you, and confirm.
849
+
850
+ They stay published for two real cases: an agent with no Prismatica plugin,
851
+ which you hand the printed file to by hand; and wanting to see exactly what a
852
+ skill was given. Both work — the seam is the same either way, and the import
853
+ validates identically.
854
+
855
+ Neither takes an argument, and neither takes a destination. What you want is
856
+ settled in the conversation you are already having, and comes back inside the
857
+ answer; the file always lands in a private temporary directory created by your
858
+ operating system — never in your repository, and never at a path a caller
859
+ chooses. A hand-off is scaffolding, not a record: it is read once and is
860
+ meaningless the moment the tree moves. Putting it under \`.prismatica/\` would
861
+ leave untracked scaffolding in front of every \`git status\` the proof path
862
+ reads, and \`check\` refuses an uncommitted file it does not recognise — so a
863
+ repo-local hand-off would block the very change it was written to plan.
864
+
865
+ ## What is in the file
866
+
867
+ - \`format\` — the protocol this hand-off speaks, as one literal. There are
868
+ three: \`prismatica/start@1\`, \`prismatica/discover@1\` and
869
+ \`prismatica/propose@1\`. The answer carries it back, and each import command
870
+ accepts only its own. A document from a future version, a discovery answer
871
+ handed to \`start\`, or a lane proposal pasted into \`discover\` all fail the
872
+ same strict parse that refuses a misspelled field.
873
+ - \`answerFormats\` — which of those literals an answer to THIS file may carry.
874
+ One for \`start\`; two for \`discover\`, because the same reading of the app is
875
+ imported by \`discover --import\` (→ main) or \`propose --import\` (→ the lane
876
+ you are building in), and the document has to say which it was written for.
877
+ - \`snapshot\` — the read-only picture: the exact commit, every Flow with its
878
+ truth hash and touchpoints, every Rule, everything pending, every change in
879
+ flight, and which proof tools this repo actually has.
880
+ - \`instructions\` — plain language: what to read, what to decide, what to
881
+ return. Identical for every agent. There is no per-provider dialect.
882
+ - \`answerSchema\` — the JSON Schema for the answer, **derived from the same
883
+ strict definition that validates it on the way back in**. What Prismatica asks
884
+ for and what it accepts cannot drift apart, because they are one thing.
885
+ - \`importCommands\` — the exact commands you run afterwards, so the agent can
886
+ hand them to you rather than reconstruct them. You run them in your own
887
+ terminal, not inside the agent's session.
888
+
889
+ ## What importing checks
890
+
891
+ Everything, and against your repository rather than against the document. Which
892
+ Flows exist, which ids are taken, the tier rules, the default tier — all of it
893
+ is read from a reading taken fresh at import time.
894
+
895
+ The answer echoes the whole snapshot it was written against, and that echo is a
896
+ **staleness detector and nothing else**. Prismatica recomputes its id from its
897
+ own contents, so an echo that was never exported is refused outright; what a
898
+ genuine one then produces is a list of what moved since — shown to you, not
899
+ used to decide anything. The document supplies no facts about your repo.
900
+
901
+ Prose, a missing field, an extra field, an absolute path, a \`..\`, a secret
902
+ glob, a Flow id that does not exist, an acceptance check with no test behind it,
903
+ a wrong \`format\`, a fabricated snapshot, and (for Flow/Rule proposals) an
904
+ answer about a different commit are all refused, with nothing written.
905
+
906
+ ## Why an agent may run these itself
907
+
908
+ \`context start\` and \`context discover\` are on no owner-only list — which is
909
+ exactly what lets a skill run them for you, mid-conversation, without asking.
910
+ They write
911
+ nothing into the repository, reach nowhere, and hand back only what
912
+ \`flow list\` and \`git status\` already show. \`discover --import\` and
913
+ \`propose --import\` are agent-allowed too: writing PROPOSALS is explicitly the
914
+ agent's half of the rule that reserves canonical Flows and Rules to you.
915
+
916
+ \`start\` is not, and never will be. It invents a contract's scope, files a real
917
+ issue on GitHub, and asks a question only you can answer.
918
+
919
+ ## Choosing the model, and how hard it thinks
920
+
921
+ \`open\` and \`review\` still take the same two options, because they still start
922
+ a real session:
923
+
924
+ prismatica open claude <id> --effort high
925
+ prismatica review <id> --agent claude --effort max
926
+
927
+ Prismatica hard-codes no model names. When either option is present, before
928
+ \`open\` or \`review --agent\` writes the lane it runs the installed provider once
929
+ in an empty OS temporary directory and asks it to print its **own usage** — and
930
+ requires two things of it. The usage must document the exact flags this
931
+ selection will travel through: a flag where the provider has one, and for
932
+ Codex's reasoning effort, its strict configuration form. And it must **name the
933
+ value you chose** among the values it lists for that dial.
934
+
935
+ A value the provider's own usage lists nowhere is **refused**, before the
936
+ routing change or the draft review. It is not quietly accepted, not swapped for
937
+ a default, and not passed through and hoped for: a check that cannot be made is
938
+ reported as one that was not made.
939
+
940
+ Today that means a model name is refused for both providers — neither
941
+ enumerates its models, so \`prismatica open claude <id> --model <model>\` stops
942
+ there and tells you why — and \`--effort\` is refused for Codex, whose reasoning
943
+ effort travels as a configuration key with no value list. Claude Code
944
+ enumerates its effort levels in its usage, so that is the one selection this
945
+ probe can confirm. Run a specific model in the session **you** start yourself,
946
+ where the provider answers for the name directly.
947
+
948
+ That probe asks the provider to describe itself and nothing more. **Prismatica
949
+ never sends a prompt and never calls a model** — not to check a launch, not
950
+ anywhere — and it holds no model catalogue. Those are the only two ways a model
951
+ NAME could be checked here, and both are refused on purpose: a catalogue is
952
+ stale the week it is written, and a prompt is a model call. Nor can any help
953
+ output tell you whether you are signed in. An agent Prismatica has no adapter
954
+ for is refused these options outright rather than receiving guessed flags.
955
+
956
+ \`context\`, \`start\`, \`discover\` and \`propose\` take none of them, and there is
957
+ no time budget to set either. They start no session — the model, the effort and
958
+ how long it may take belong to the session **you** are running.`,
959
+ },
960
+ {
961
+ id: 'roles',
962
+ title: 'Scenario — who does what: Planner, Builder, Fresh Reviewer, Controller',
963
+ body: `Four different jobs, deliberately kept apart. All four can be AI agents; none
964
+ of them decides anything.
965
+
966
+ **Planner** — turns your plain-language need into a scoped, checkable proposal.
967
+ It is a ROLE, not a process Prismatica starts: you hand the exported context to
968
+ the agent you are already using. Whatever it writes is a document you confirm or
969
+ throw away, and it cannot edit a file, create an issue, start a branch, approve
970
+ truth, or lower a risk tier — not because it is sandboxed, but because nothing
971
+ it returns is acted on until you import it and say yes.
972
+
973
+ In your coding agent: Prismatica Start, then run what it hands you:
974
+
975
+ prismatica start --import ~/plan.json
976
+
977
+ **Builder** — implements the approved contract inside the lane, and only inside
978
+ it. The scope hook blocks writes outside the contract's globs, and the diff
979
+ check is the backstop that catches every agent equally.
980
+
981
+ prismatica open codex 20260729-fix-offline-session-loss-9c3e
982
+ prismatica check
983
+
984
+ Which agent builds is YOURS to choose, and to change — and nothing infers it
985
+ from whoever planned the change. Settle it during planning and it is stated in
986
+ the plan's \`builder\` field, shown in the preview before you confirm; otherwise
987
+ \`prismatica frame --builder <agent>\`, or just open that agent. \`next\`, \`pack\`
988
+ and \`start\` all name it from then on. Swap it mid-change by opening the other
989
+ agent; nothing needs unwinding, because this is routing, not a permission.
990
+
991
+ **Fresh Reviewer** — reads the finished diff against the sealed brief, with no
992
+ memory of having written it. A Fresh Reviewer is a NEW SESSION that did not
993
+ build the current diff; **the same provider is fine**. What must not be reused
994
+ is the session that wrote the code, because it already believes the diff is
995
+ right. Both Claude and Codex map this role to a real reviewer skill, and
996
+ neither is named in the BUILDER's brief — recommending the reviewer role to the
997
+ agent about to write the code would be asking it to review itself. Who reviews
998
+ is yours to choose and to swap; the gate never checks it.
999
+
1000
+ prismatica review --agent claude
1001
+ # drafts the review, records "claude" as the reviewer, and starts a
1002
+ # fresh session in the lane that cannot change the repository
1003
+ # (--permission-mode plan for Claude, --sandbox read-only for Codex)
1004
+
1005
+ prismatica review --agent codex
1006
+ prismatica review --copy --reviewer "a chat agent"
1007
+ # copies the same short lane pointer, for a reviewer with no CLI
1008
+
1009
+ \`--agent\` accepts \`claude\` or \`codex\` and nothing else: the read-only flag is
1010
+ that CLI's own, and there is no safe generic guess for a provider Prismatica
1011
+ has never been told about. It refuses to be combined with \`--copy\`, or with
1012
+ \`--reviewer\` — the agent already IS the reviewer label, and recording one name
1013
+ while a different session did the work is exactly the confusion the record
1014
+ exists to prevent.
1015
+
1016
+ The reviewer is handed ONE short pointer, not the brief: read the review record
1017
+ first, then the contract, the pack and the exact \`git diff <baseline>..HEAD\`;
1018
+ change nothing; distrust the builder's summary, an earlier review and a green
1019
+ test run alike; and end with exactly \`SAFE TO SEAL\` or \`DO NOT SEAL\`.
1020
+
1021
+ Nothing is parsed from what the reviewer says. Prismatica never reads that
1022
+ session's output, never infers a verdict from it and never seals on its
1023
+ behalf — **you** record the outcome, and there are exactly two:
1024
+
1025
+ prismatica seal <id> # they said SAFE TO SEAL
1026
+ prismatica seal <id> --request-changes # they said DO NOT SEAL
1027
+
1028
+ If the launch fails, the drafted review still stands and still binds this exact
1029
+ diff — start the session by hand, or fall back to \`review <id> --copy\`.
1030
+
1031
+ Add \`--no-spawn\` to either \`open <agent>\` or \`review --agent <agent>\` to get
1032
+ that same manual command printed instead of run — see "next" for why it starts
1033
+ with \`cd <lane> &&\` and carries \`PRISMATICA_EXECUTOR=agent\`: unlike ordinary
1034
+ \`prismatica\` commands, the agent process it names inherits YOUR shell's
1035
+ current directory, not a resolved one.
1036
+
1037
+ **Controller** — runs the loop between the other two, and stops where your
1038
+ authority begins. It builds nothing and judges nothing: it starts a Builder,
1039
+ runs \`check\`, starts a Fresh Reviewer, and hands you back a card. This job is
1040
+ called **Get Change Ready**. The controller remains an agent role, not a process
1041
+ Prismatica starts. The narrow \`prismatica ready\` command only appends or reads
1042
+ strict run bookkeeping; it launches no agent, calls no LLM, parses no chat,
1043
+ infers no verdict and creates no assurance evidence.
1044
+
1045
+ In your coding agent, on a change that already has a lane:
1046
+ ask it to get the change ready — or, where the agent ships Prismatica's
1047
+ packaged capability, invoke that (in Claude Code: /prismatica:ready)
1048
+
1049
+ Which agent controls is yours to choose, exactly as Builder and Fresh Reviewer
1050
+ are. Prismatica packages the discipline for the agents it has a plugin system to
1051
+ package for — today that is Claude Code — and any other agent runs the same loop
1052
+ by being given the same rules. Nothing in the gate knows or asks which one it
1053
+ was, here or anywhere else.
1054
+
1055
+ The run starts with one CLI-generated UUID and boundary in the append-only
1056
+ \`.prismatica/ready.jsonl\`: boundary HEAD, ledger length and prior
1057
+ Check count, plus the resolved builder and reviewer provider, model and effort.
1058
+
1059
+ That is a SEPARATE file from \`.prismatica/ledger.jsonl\`, which keeps Check and
1060
+ gate rows and nothing else. A ready event appended into the ledger after a Check
1061
+ made the ledger unreadable at exactly the position Prismatica fails closed on —
1062
+ so a change would prove itself and then, by its own bookkeeping, become
1063
+ unprovable. Existing repositories are partitioned in place the first time a Get
1064
+ Change Ready command writes: every recorded event moves across in its original
1065
+ order, byte for byte, and nothing is discarded. Commit the move with your next
1066
+ records.
1067
+ Each later ready event names that run and records one exact Check or review
1068
+ attempt, its evidence, checked commit, verdict, findings, stop state and next
1069
+ owner action. A restarted controller begins with \`prismatica ready status\`,
1070
+ reuses the same plan and counters, and needs no transcript. Checks before the
1071
+ boundary remain pre-run history and spend none of the run's three-Check budget;
1072
+ restarting cannot reset that budget or the three-review budget.
1073
+
1074
+ An attempt is spent by the WORK, not by the bookkeeping. A run event is written
1075
+ after its attempt — a record is never written before the thing it records — so a
1076
+ controller can die in between, and counting only its own events would hand the
1077
+ next one a fourth try. The counters are therefore rebuilt from what each attempt
1078
+ itself left behind: the \`check_run\` ledger row \`check\` wrote, and the review
1079
+ record \`review\` drafted, including the ones this run committed. An attempt
1080
+ nobody recorded still spends its place, and \`ready status\` says so plainly.
1081
+
1082
+ **When a run stops, starting another one is yours.** A run that ends at
1083
+ \`check_budget_exhausted\`, \`review_budget_exhausted\`, \`blocked\` or
1084
+ \`awaiting_owner\` is finished: the controller may append nothing more to it, and
1085
+ re-importing its start simply reconstructs it. Deciding that three attempts were
1086
+ not enough is a decision, so it is one you make:
1087
+
1088
+ prismatica ready record <id> --import <start.json> --new-run
1089
+
1090
+ That appends a second boundary bound to today's HEAD and ledger position, with a
1091
+ new run id and its own three Check and three review attempts. It is refused
1092
+ while the run is still running, refused when there is no run at all, and refused
1093
+ for an agent — the controller cannot hand itself a fourth attempt at the diff it
1094
+ just failed three times. Nothing is rewritten: every earlier run and every event
1095
+ it recorded stays exactly where it was, \`ready status\` reconstructs the LATEST
1096
+ run and lists the earlier ones as history, and the previous run's Checks become
1097
+ ordinary pre-run history that spends none of the new budget.
1098
+
1099
+ The new run may also carry a corrected plan, which is the one repair for a run
1100
+ whose recorded provider, model or effort the launch will refuse — a restart must
1101
+ reuse what was recorded, so such a run can otherwise only be stopped. Inside a
1102
+ run nothing about the plan may change, and that is unchanged.
1103
+
1104
+ A second boundary is only ever read as legitimate when it names the run it
1105
+ replaced and that run had genuinely stopped. A line appended any other way is
1106
+ still reported as an ambiguous run and still fails closed, so an extra boundary
1107
+ cannot quietly reset a budget.
1108
+
1109
+ Every real attempt is still a NEW session handed only the contract, pack, Git
1110
+ state and relevant failure or findings. Multiline findings enter through a
1111
+ strict JSON import file and round-trip as content; they never enter argv, shell
1112
+ interpolation, a heredoc or a commit message. Older sealed reviews whose records
1113
+ never contained findings are reported honestly as \`findings not recorded\` and
1114
+ are never backfilled from memory.
1115
+
1116
+ Installed provider help is authoritative. When model or effort is explicit,
1117
+ before real \`open\` or \`review\` changes the lane Prismatica runs that provider
1118
+ once in an empty OS temporary directory to print its own usage, and requires
1119
+ that usage to document the flags the selection needs and to name the selected
1120
+ value among the accepted values it enumerates. Provider
1121
+ defaults run no probe at all. A provider that will not run, that does not
1122
+ document those flags, or that does not name that value, therefore stops the
1123
+ command before a builder routing change or a draft review, never after it, and
1124
+ never silently uses a default.
1125
+
1126
+ The probe is not a conversation: no prompt is sent and no model runs, here or
1127
+ anywhere else in Prismatica. Neither provider enumerates its model names in
1128
+ usage and Prismatica keeps no catalogue, so explicit model names are refused
1129
+ for both providers; Codex effort is refused too, while Claude Code effort is
1130
+ the one explicit selection the probe can confirm. Whether you are signed in
1131
+ remains the provider's answer when the real session starts.
1132
+
1133
+ The controller never invents provider flags. Prismatica prints the exact, correctly
1134
+ quoted launch line for each role — \`prismatica open <provider> <id> --no-spawn\`
1135
+ for a builder, \`prismatica review <id> --agent <provider> --no-spawn\` for a reviewer
1136
+ — and refuses a dial that provider has no transport for rather than silently
1137
+ running its default. Both write something: \`open\` records the builder and
1138
+ advances the stage, so its contract change rides the builder's own checkpoint
1139
+ commit, and \`review\` writes the draft after any requested provider validation.
1140
+
1141
+ After \`DO NOT SEAL\`, the controller first appends the validated ready event
1142
+ with the exact verdict and findings. It then records the blocking seal, inspects
1143
+ dirty paths, stages only the expected review, ledger, Check evidence and
1144
+ forward-stage contract outputs, checks the staged names and commits with an
1145
+ ordinary content-specific subject before rework. It never uses \`git add -A\`, a
1146
+ findings commit message or a fixed heredoc. A later commit containing only the
1147
+ review, ledger or this change's Check evidence is lifecycle output and cannot
1148
+ unlock another reviewer. Code or a substantive Flow or Rule proposal can.
1149
+
1150
+ Exactly one owner-only command is available to it, because that command never
1151
+ advances a change:
1152
+
1153
+ PRISMATICA_EXECUTOR=agent prismatica seal <id> --request-changes
1154
+
1155
+ \`ready record --new-run\` is the mirror of that exception: an ordinary
1156
+ \`ready record\` is the controller's own bookkeeping and stays its to run, while
1157
+ the one form that GRANTS something — a second run, with fresh budgets — is
1158
+ refused for an agent by the same guard, and names that form rather than the
1159
+ command when it refuses.
1160
+
1161
+ Get Change Ready stops before review at \`light\`. Above \`light\`, the rejection
1162
+ blocks the gate and \`accept\`, while \`next\` returns it to a builder. The
1163
+ approving \`prismatica seal\` is the opposite — it is the record the gate accepts
1164
+ — so it stays yours, along with \`accept\`, \`ship\`, \`merge\`, \`amend\` and the
1165
+ rest. Every Prismatica command the controller runs carries that one-command
1166
+ executor marker, so an accidental owner-only command fails closed even when the
1167
+ plugin session was opened manually.
1168
+
1169
+ Ready events are bookkeeping, not proof — nothing in the assurance path even
1170
+ opens \`ready.jsonl\`. Existing Check, gate, stats and
1171
+ passport readers ignore them and continue to use only real \`check_run\` or
1172
+ \`gate_run\` rows. The scope backstop, Check, merge gate, patch-id seal and your
1173
+ signature remain the assurance path with or without a controller.
1174
+
1175
+ Why keep them apart: the Planner's reading of your app is **advisory** and is
1176
+ labelled that way everywhere it appears. Deterministic code can check that a
1177
+ plan is complete, in scope, correctly bound to a snapshot and correctly tiered.
1178
+ It cannot check whether the plan is a good idea, and it does not pretend to.
1179
+ That judgement is yours, which is why \`start\` shows you the whole plan and the
1180
+ exact issue text, asks once with No as the default, and writes nothing at all
1181
+ until you say yes.
1182
+
1183
+ The builder and reviewer packs both carry the complete approved plan and the
1184
+ complete Delta, verbatim — not a summary of them — so no one downstream is
1185
+ working from a paraphrase.`,
1186
+ },
1187
+ {
1188
+ id: 'manualframe',
1189
+ title: 'Scenario — frame a change by hand, with full control',
1190
+ body: `\`start\` is the short path. \`frame\` is the long one, for when you already know
1191
+ exactly what you want and would rather not have anything proposed to you.
1192
+
1193
+ prismatica frame "Reject empty session titles" \\
1194
+ --issue https://github.com/acme/practice-app/issues/214 \\
1195
+ --allow "src/sessions/**" \\
1196
+ --allow "src/validation/title.ts" \\
1197
+ --forbid "src/billing/**" \\
1198
+ --non-goal "Do not change the offline sync queue" \\
1199
+ --non-goal "Do not touch the session id format" \\
1200
+ --check "an empty title is rejected with an inline message | src/sessions/title.test.ts" \\
1201
+ --check "a whitespace-only title is rejected too | src/sessions/title.test.ts" \\
1202
+ --check "existing sessions with empty titles still load | src/sessions/legacy.test.ts" \\
1203
+ --docs docs/SESSIONS.md \\
1204
+ --data
1205
+
1206
+ Every flag, in plain terms:
1207
+
1208
+ - \`--issue\` is required. No contract without an issue; no merge without a
1209
+ contract.
1210
+ - \`--allow\` is the scope, repeatable. The diff must stay inside it.
1211
+ - \`--forbid\` is the explicit never-touch list, repeatable.
1212
+ - \`--non-goal\` records what this change deliberately does not do, repeatable.
1213
+ It travels into the builder brief.
1214
+ - \`--check\` is \`description | test\`, repeatable. Each one is traced to a real
1215
+ passing test at check and gate time, so \`manual:OWNER\` is the honest form
1216
+ for anything a machine cannot verify.
1217
+ - \`--docs\` names a file that must change in this diff, repeatable.
1218
+ - \`--auth\`, \`--payments\`, \`--data\`, \`--copy-only\` set the risk tier. Here
1219
+ \`--data\` forces **heavy**: full checks, a sealed review, a signed decision,
1220
+ and a tested rollback route.
1221
+
1222
+ The path rules in \`config.json\` are applied on top and can only raise the
1223
+ tier, never lower it — so \`--copy-only\` over \`src/auth/**\` still lands on
1224
+ heavy.
1225
+
1226
+ Then:
1227
+
1228
+ prismatica pack 20260729-reject-empty-session-titles-4d81
1229
+ prismatica open claude 20260729-reject-empty-session-titles-4d81`,
1230
+ },
1231
+ {
1232
+ id: 'terms',
1233
+ title: 'Terms — every word in one plain sentence',
1234
+ body: `repo your project's folder, tracked by git, with its full history.
1235
+ branch a parallel line of work inside the repo.
1236
+ main the branch that is the real product; everything else merges into it.
1237
+ worktree a second folder checked out from the same repo — Prismatica calls
1238
+ a change's worktree its "lane".
1239
+ commit a saved snapshot of the work, with a message.
1240
+ PR pull request — a proposal to merge one branch into main.
1241
+ gate the check that runs on every PR; if it fails, GitHub blocks merging.
1242
+ merge taking a branch's commits into main.
1243
+ deploy putting the merged code in front of real users.
1244
+ diff the exact lines added and removed by a change.
1245
+ hash a fingerprint of content — change anything and it no longer matches.
1246
+ contract the agreed record of one change: goal, allowed files, checks, tier.
1247
+ seal the proof that the review looked at this exact diff (patch-id maths).
1248
+ passport the record written after a change ships, verifies live, and has a
1249
+ tested rollback route.
1250
+
1251
+ Two different levels of "the gate is real", never confused in anything
1252
+ Prismatica prints:
1253
+
1254
+ Checked — owner-guarded \`prismatica merge\` verified the PR itself
1255
+ (state, head, a passing gate check) before
1256
+ asking GitHub to merge — the guard is this
1257
+ command, run by you or your CI. A merge done
1258
+ in the GitHub browser UI, or a direct push to
1259
+ main, goes around it.
1260
+ server-enforced GitHub's own branch protection refuses the
1261
+ merge outright, even in its own UI, because
1262
+ "prismatica-gate" is a required status check.
1263
+ Not available on every plan (notably GitHub
1264
+ Free private repos) — never claimed unless
1265
+ \`prismatica doctor\` actually confirms it.
1266
+
1267
+ And two answers that are not levels of assurance at all, because they are not
1268
+ findings about your repo:
1269
+
1270
+ unavailable required status checks are not offered on this
1271
+ repository's plan. No settings fix is printed,
1272
+ because there is none, and it is left out of
1273
+ the adoption score rather than counted against
1274
+ you.
1275
+ unknown the question could not be answered — gh missing
1276
+ or signed out, no GitHub remote, an ambiguous
1277
+ refusal, an outage, or a probe you skipped.
1278
+ Never reported as "unprotected", and also left
1279
+ out of the adoption score. If nothing at all
1280
+ could be measured, \`doctor\` says "insufficient
1281
+ information" rather than 0%.
1282
+
1283
+ "Unprotected" is only ever printed when GitHub says so twice: the protection
1284
+ endpoint finds no rule AND the branch itself reports it is not protected. That
1285
+ second read matters, because the first endpoint needs admin permission on the
1286
+ repo and answers a plain "not found" to several very different questions. So if
1287
+ you are signed in without admin rights, or the branch named in your config does
1288
+ not exist on the remote, you will see "unknown" — never "unprotected". Same if
1289
+ GitHub reports the branch as protected but will not say which checks it
1290
+ requires: that is a repo Prismatica cannot fully read, not a repo with nothing
1291
+ guarding it.`,
1292
+ },
1293
+ {
1294
+ id: 'adopt',
1295
+ title: 'Adopt — putting an existing app under Prismatica',
1296
+ body: `Prismatica governs changes from now on. Your old code needs no contracts,
1297
+ reviews, or passports — nothing is judged retroactively.
1298
+
1299
+ Get the command first. Prismatica is published on npm, and you name the exact
1300
+ version every time:
1301
+
1302
+ npm install -g prismatica@0.2.0
1303
+ # or run it without installing anything:
1304
+ # npx --yes prismatica@0.2.0 doctor
1305
+
1306
+ Always name the version. Bare \`prismatica\` resolves to whatever the registry
1307
+ serves that minute, and the gate is the one choke point — which reader runs it
1308
+ is a decision you make in a diff someone can review, never one a registry makes
1309
+ for you between two pushes. Upgrading is the same command with a different
1310
+ number; nothing here goes looking for a "latest" on your behalf.
1311
+
1312
+ \`npm link\` is NOT part of adopting an app. It is the self-host EXCEPTION for
1313
+ working on Prismatica's own source checkout — see "prismatica guide next".
1314
+
1315
+ cd your-app && prismatica init
1316
+ # detects what you already have (tests? Playwright? CI? docs?) and
1317
+ # enables only the checks that can actually run
1318
+
1319
+ Read the table it prints: Enforced means the gate blocks on it, Checked means
1320
+ it runs, Missing means it cannot run yet — each Missing row shows the exact
1321
+ fix. You do not have to fix everything today. Two rows are not about your repo
1322
+ at all: Unavailable means the capability cannot exist here (a plan that does
1323
+ not offer it), and Unknown means the probe could not establish an answer.
1324
+ Neither prints a fix, and neither is counted in the adoption score — a
1325
+ question nobody could answer is not a mark against you.
1326
+
1327
+ In your coding agent: Prismatica Understand
1328
+ # ask it to map this app. It READS the repo and DRAFTS flows —
1329
+ # structured, reviewable routes through the app — then hands you
1330
+ # "prismatica discover --import <proposal.json>". You review and approve
1331
+ # each one; Prismatica never writes them itself.
1332
+ # See "prismatica guide flows".
1333
+
1334
+ prismatica doctor
1335
+ # repo health, an adoption score over what could actually be measured,
1336
+ # and the single highest-value next fix
1337
+
1338
+ Only want the map, not the gate yet? Use \`prismatica init --map-only\` instead
1339
+ — Flows and Rules with no gate, no hooks, no signing key (see
1340
+ "prismatica guide flows").
1341
+
1342
+ Moving a map-only repo to full governance later works today as a manual
1343
+ procedure (a dedicated \`prismatica upgrade\` command is planned, but this
1344
+ gets you there now — do NOT just re-run \`prismatica init\` without
1345
+ \`--map-only\`; it leaves mode and the owner key half-migrated):
1346
+
1347
+ 1. Get an owner signing key. If you've run governed \`prismatica init\` on
1348
+ any other repo on this machine, you already have one — it's one key per
1349
+ machine, at \`~/.config/prismatica/owner.key\` (or \`$PRISMATICA_HOME\`).
1350
+ If not, create one now by running \`prismatica init\` in any throwaway
1351
+ git folder; you only ever do this once.
1352
+ 2. Read out its public half (safe, read-only):
1353
+ node -e "console.log(require('crypto').createPublicKey(require('fs').readFileSync(process.env.PRISMATICA_HOME ? process.env.PRISMATICA_HOME + '/owner.key' : require('os').homedir() + '/.config/prismatica/owner.key', 'utf8')).export({type:'spki',format:'pem'}).toString())"
1354
+ 3. Edit \`.prismatica/config.json\` by hand: set \`"mode": "govern"\` and
1355
+ \`"owner": { "publicKey": "<paste the PEM from step 2>" }\`.
1356
+ 4. Add \`.github/workflows/prismatica-gate.yml\` — copy it from any other
1357
+ governed Prismatica repo (the content only varies by main branch name).
1358
+ 5. Re-sign every already-approved Flow and Rule. This is the one required
1359
+ step, not optional: governed mode requires a verifying signature, so an
1360
+ existing map-only approval (hash only, no signature) will show as
1361
+ "tampered" and fail the gate's truth-integrity check until re-signed.
1362
+ For each: copy the canonical file's \`truth:\` (or the rule text) into a
1363
+ new proposal at \`.prismatica/flows/proposals/<id>.md\` (or
1364
+ \`.prismatica/rules/proposals/<id>.md\`) with \`proposalType: update\` and
1365
+ the truth UNCHANGED, then run \`prismatica flow approve <id>\` (or
1366
+ \`rules approve <id>\`) — same hash, now signed.
1367
+ 6. Run \`prismatica doctor\` — it tells you what's still missing (hooks,
1368
+ branch protection) and confirms nothing reads as tampered anymore.
1369
+
1370
+ Two one-time settings on GitHub make the gate real:
1371
+ 1. push the repo to GitHub (prismatica ship does this per change), and
1372
+ 2. Settings → Branches → protect "main" → require the "prismatica-gate" check.
1373
+ After that, nothing merges without passing the gate — not even by accident.
1374
+
1375
+ Which Prismatica does YOUR CI run? \`init\` writes an exact pin:
1376
+
1377
+ - name: prismatica gate
1378
+ run: npx --yes prismatica@0.2.0 gate
1379
+
1380
+ Your app needs no Prismatica dependency of its own — that line fetches one
1381
+ published version straight from the registry. The \`npm ci\` step above it
1382
+ installs YOUR checks (your typechecker, linter, test runner, build), and it is
1383
+ skipped entirely when the repository has no npm lock file at its root, so a
1384
+ Python or Go repo adopts exactly as cleanly as a Node one.
1385
+
1386
+ Adopted before 0.2.0? Your workflow says \`npx prismatica gate\` with no
1387
+ version, so CI runs whatever resolves that minute. \`prismatica doctor\` names
1388
+ it under "Runtime", beside the version you are running locally, so any skew
1389
+ between the two is visible instead of silent. The repair is one line in
1390
+ \`.github/workflows/prismatica-gate.yml\` — change:
1391
+
1392
+ run: npx prismatica gate
1393
+
1394
+ to:
1395
+
1396
+ run: npx --yes prismatica@0.2.0 gate
1397
+
1398
+ \`init\` will never do this for you: it preserves an existing workflow
1399
+ byte-for-byte by design, which is exactly why the pin is yours to move
1400
+ deliberately. Move it BEFORE, or in the same change as, the first time a newer
1401
+ Prismatica writes a record — a newer runtime reads every record an older one
1402
+ wrote, but the promise does not run backwards.`,
1403
+ },
1404
+ {
1405
+ id: 'flows',
1406
+ title: 'Flows — the map of what your app does',
1407
+ body: `A Flow is one complete, real route through your app: where it starts, the
1408
+ steps someone takes, what the app shows and changes along the way, and where
1409
+ it ends. Not a feature list, not a code walkthrough — an outcome someone
1410
+ actually gets, start to finish.
1411
+
1412
+ Every Flow splits into two parts, on purpose:
1413
+
1414
+ - Truth — the goal, the steps, the ending, the rules. This is what the app
1415
+ PROMISES. An agent may only propose a change to it; you approve it.
1416
+ - Mechanics — which files and routes it lives in. This also goes through
1417
+ approval now (the same proposal you review for truth) — a lane can never
1418
+ write the canonical flow file directly, only propose a change to it, so
1419
+ there is exactly one writer of "what's approved": you, via approve.
1420
+
1421
+ Fields, each in one plain word:
1422
+
1423
+ Goal what the user gets done, in a few words
1424
+ Starts when the moment this flow begins
1425
+ Needs first conditions that must already be true (optional)
1426
+ Steps who does what, what the app shows, what data changes
1427
+ Ends with what is true when it finishes well
1428
+ Variations other routes through it (optional — a big one deserves its
1429
+ own flow instead)
1430
+ Rules things that must stay true, no matter what (optional)
1431
+ Status Works now / Planned / Idea / Uncertain
1432
+
1433
+ See a flow, review what is waiting, and decide:
1434
+
1435
+ prismatica flow list # every flow, plus pending drafts
1436
+ prismatica flow show <id> # one flow as a readable story
1437
+ prismatica flow approve <id> # accept a draft or proposed update
1438
+ prismatica flow dismiss <id> # keep what you have; discard it
1439
+ prismatica flow verify <id> # you personally confirm it still works
1440
+ prismatica flow status <id> works # flip status directly — no ceremony
1441
+
1442
+ \`flow show\` is short on purpose: title, outcome, where it starts and ends,
1443
+ the steps in order, and one honest line about the evidence. Ask for more only
1444
+ when you want it — the flags compose, and are covered in "proof":
1445
+
1446
+ --details preconditions each step assumes
1447
+ --proof how every single step was verified
1448
+ --code the files, routes, and tests it lives in
1449
+ --json the same view as stable JSON, for scripts
1450
+
1451
+ A step with nothing visible to show reads "Background step" rather than
1452
+ pretending there is a screen. Variations appear under "Other paths" as
1453
+ alternatives through the WHOLE flow: the record cannot say which step a
1454
+ variation branches from, so nothing claims that it can.
1455
+
1456
+ Presentation is separate from truth. A Flow may optionally carry a short
1457
+ title, a journey name, and a position in that journey — used only for how it
1458
+ is displayed and grouped. It sits outside the truth block, so it is not part
1459
+ of the fingerprint and editing it never invalidates an approval or signature.
1460
+ Records without it are shown with a readable title derived from their id, and
1461
+ nothing is ever backfilled or re-signed on your behalf.
1462
+
1463
+ Approving writes a fingerprint (a hash) of the truth block. If anyone edits an
1464
+ approved flow's truth without going through approve again, that fingerprint no
1465
+ longer matches — \`flow list\` shows it as tampered, immediately. Nothing about
1466
+ truth changes silently. Status and evidence are excluded from that fingerprint
1467
+ on purpose: flipping "planned" to "works now" or marking a step verified
1468
+ should never need a ceremony — the honesty comes from what evidence you can
1469
+ actually see next to each step, not from a lock on the whole record.`,
1470
+ },
1471
+ {
1472
+ id: 'deltas',
1473
+ title: 'Deltas — saying what should change about a Flow',
1474
+ body: `A Delta is how you propose a change, in your own words, without writing a
1475
+ contract yourself: what happens today, what should happen instead, what must
1476
+ not change, and how you will know it worked.
1477
+
1478
+ prismatica delta new --flow <id> \\
1479
+ --today "Minutes can be 0" \\
1480
+ --instead "Minutes must be positive" \\
1481
+ --keep "The offline queue behaviour" \\
1482
+ --show-me "Try saving 0 minutes; it should refuse"
1483
+ # writes a delta record — a plan, not governed truth: no hash, no
1484
+ # signature, because it's your intent, not a fact about the app
1485
+
1486
+ prismatica delta approve <id> # you decide it's worth doing
1487
+ prismatica frame --from-delta <id> # turns it into a contract:
1488
+ # title from Instead, scope suggested from the Flow's mapped files
1489
+ # (override with --allow), Keep becomes non-goals, Show me becomes
1490
+ # the acceptance check an agent's work is judged against
1491
+
1492
+ From there it's the ordinary loop (see "the loop" above) — a Delta is just a
1493
+ faster on-ramp into \`frame\`, never a second product decision or a shortcut
1494
+ around review.
1495
+
1496
+ prismatica delta list # every delta and its status
1497
+ prismatica delta show <id> # one delta, readable
1498
+ prismatica delta reject <id> # not now — discard it`,
1499
+ },
1500
+ {
1501
+ id: 'discover',
1502
+ title: 'Discover — mapping an app you already have',
1503
+ body: `You do not write flows by hand. You ask an agent to read the real code and
1504
+ draft them, then you review.
1505
+
1506
+ In your coding agent: Prismatica Understand
1507
+ # it reads your repo — through "prismatica context discover", which it
1508
+ # runs for itself — and drafts 6-12 flows plus a few candidate app
1509
+ # rules, saves a json answer, and hands you the command below.
1510
+
1511
+ prismatica discover --import ~/answer.json
1512
+ # materialises that answer as files under .prismatica/flows/proposals/
1513
+ # and .prismatica/rules/proposals/ — nothing is accepted automatically.
1514
+
1515
+ An agent that would rather write those proposal files directly still can: the
1516
+ instructions carry both templates, and \`flow list\`, \`rules list\` and the board
1517
+ read them exactly the same way. The import route is the one you can prevalidate,
1518
+ preview and safely retry.
1519
+
1520
+ Then review what it found:
1521
+
1522
+ prismatica flow list # every draft, in one table
1523
+ prismatica view # the same review, visually, in Understand
1524
+
1525
+ For each draft, either:
1526
+
1527
+ prismatica flow approve <id> # this is right — make it the record
1528
+ prismatica flow dismiss <id> # not yet, or not quite — discard it
1529
+
1530
+ The agent is told to be honest: it can only mark a step "code inferred"
1531
+ (it read the code, it did not run it), never "test verified" or "manually
1532
+ verified" — only a passing test or you, running \`prismatica flow verify\`, can
1533
+ say that. Run it again any time; the exported context names the Flows you
1534
+ already have, so the agent proposes what is still missing or has changed rather
1535
+ than re-drafting everything.
1536
+
1537
+ ## Seeing what a Flow is entangled with
1538
+
1539
+ prismatica flow show <flow-id> --json
1540
+
1541
+ Alongside the Flow itself, that reports \`possiblyAffected\`: every other
1542
+ canonical Flow sharing a route, component, entity or test with this one. It is
1543
+ the same math \`check\` and the gate use to decide who must answer a Flow Report,
1544
+ and it states a possibility — sharing a component is a reason to look, never
1545
+ evidence that anything broke.`,
1546
+ },
1547
+ {
1548
+ id: 'frame',
1549
+ title: 'Frame — starting a change safely',
1550
+ body: `Framing writes the contract and opens the lane. It refuses to start from a
1551
+ bad base, and tells you exactly how to fix it:
1552
+
1553
+ - dirty base (uncommitted code): save it first —
1554
+ git switch -c rescue/wip && git add -A && git commit -m "wip"
1555
+ - stale base (behind GitHub): catch up first —
1556
+ git switch main && git pull
1557
+ - too many open changes: the WIP limit (default 2) keeps work small; finish
1558
+ or ship something before starting more.
1559
+
1560
+ The tier is set by what the change touches, and decides how much proof is due:
1561
+ - light — copy, colours, spacing: checks and a screenshot.
1562
+ - normal — a feature or bug: full checks plus a sealed review.
1563
+ - heavy — auth, payments, saved data, schema: all of that plus your signed
1564
+ decision and a tested rollback route.
1565
+
1566
+ If the scope turns out to be wrong mid-build, never start over — amend it with
1567
+ a reason that goes in the audit log:
1568
+
1569
+ prismatica amend <id> --reason "also needs the shared validator" \\
1570
+ --allow "src/shared/**"
1571
+ # widens the scope, refreshes the lane's guard, and marks the old brief
1572
+ # stale so the agent re-packs before continuing
1573
+
1574
+ **Some commands are yours, and only yours.** An agent Prismatica launched is
1575
+ refused every command that makes a decision rather than does work:
1576
+
1577
+ init start frame amend accept seal ship merge close view
1578
+ forget flow approve/dismiss rules approve/dismiss
1579
+ delta approve/reject flow verify rules verify flow status
1580
+
1581
+ \`accept\` is the one that matters most — it signs with your Ed25519 key, so an
1582
+ agent that could run it would be approving its own diff. \`seal\` binds a review
1583
+ to an exact diff, and an agent that could both review and seal is not being
1584
+ reviewed by anyone. \`flow verify\`, \`rules verify\` and \`flow status\` are
1585
+ there for a quieter reason: they write "verified manually" or "works now" onto
1586
+ canonical truth, and manually means a person looked. Nothing may mark its own
1587
+ work proven. \`view\` is there because the board is your window only when you
1588
+ opened it — it can accept a change and approve a Flow through a browser form,
1589
+ so starting it is another way to reach every decision above. \`init\` adopts
1590
+ governance: it generates your signing key, writes the CI gate workflow and
1591
+ offers the pre-push hook — how this repo is governed is your call, and CI runs
1592
+ \`gate\`, never \`init\`. \`forget\` clears the board's list of your repos, which
1593
+ lives outside any repo and is not archived anywhere. The rest either invent
1594
+ scope or reach GitHub.
1595
+
1596
+ Everything the agent actually needs stays open to it: \`check\`, \`review\`
1597
+ (a fresh agent reviewing is the design, not a hole), \`pack\`, \`open\`,
1598
+ \`discover\`, \`delta new\`, \`flow report\`, and every command that only reads —
1599
+ \`flow list\`, \`flow show\`, \`next\`, \`doctor\`, \`stats\`, \`guide\`. \`gate\`
1600
+ and \`prepush\` are untouched, because CI and git hooks run them with no
1601
+ terminal at all.
1602
+
1603
+ **\`amend\` gets a second guard on top.** It moves the boundary every other check
1604
+ is measured against, so it refuses to run unless a person is there:
1605
+
1606
+ - it shows you the scope you are about to widen — current paths, added paths,
1607
+ the reason, and how many times this contract has already been amended — and
1608
+ asks once. There is deliberately no \`--yes\`.
1609
+ - with no terminal attached, it refuses outright rather than assuming a yes.
1610
+ - any agent Prismatica launched carries a marker in its environment, and
1611
+ \`amend\` refuses the moment it sees one. An agent that needs more scope must
1612
+ come and ask you for it.
1613
+
1614
+ Be clear-eyed about what those last two are: guards against a well-meaning
1615
+ agent overstepping, not a cage around a hostile one. An agent with a shell
1616
+ could edit the contract file directly and never call \`amend\` at all. What you
1617
+ genuinely keep is that the unattended path fails closed, every amendment is in
1618
+ the audit log with its reason, and amending invalidates the pack and any seal —
1619
+ so a review can never be carried across a scope change.
1620
+
1621
+ Three or more amendments on one change is a smell, and Prismatica says so: the
1622
+ change was probably two changes.`,
1623
+ },
1624
+ {
1625
+ id: 'check',
1626
+ title: 'Check — proving the work',
1627
+ body: ` prismatica check
1628
+
1629
+ runs everything, identically to how the gate will run it later. It never asks
1630
+ the agent whether the work is done — it runs your tools and reads the results:
1631
+
1632
+ - your repo's own proof: typecheck, lint, unit tests, build, browser journeys
1633
+ - secret scan: gitleaks when installed, a built-in fallback otherwise
1634
+ - scope: the real git diff must stay inside the contract's allowed files
1635
+ - traceability: every acceptance check must point at a passing test
1636
+ (or be marked manual:OWNER, which you attest to at accept)
1637
+ - docs delta: the docs the contract promised must actually change
1638
+
1639
+ Every run writes an evidence record and one ledger line. A failed run counts a
1640
+ "rework loop" — prismatica stats shows the median, which tells you how often
1641
+ agents need retries in this repo.
1642
+
1643
+ Failing is normal and cheap here. The whole point is that a change fails at
1644
+ check, on your machine, in minutes — not at the gate, or worse, in front of
1645
+ users.`,
1646
+ },
1647
+ {
1648
+ id: 'review',
1649
+ title: 'Review and seal — fresh eyes, bound by maths',
1650
+ body: `A review is only worth something if it looked at the code that ships. So
1651
+ Prismatica binds every review to the diff's fingerprint (its patch-id):
1652
+
1653
+ prismatica review --agent claude
1654
+ # writes a review brief bound to the current committed diff, records
1655
+ # "claude" as the reviewer, and starts a fresh read-only session in the
1656
+ # lane with one short pointer at the record, the contract, the pack and
1657
+ # the exact baseline..HEAD diff
1658
+
1659
+ prismatica review --copy --reviewer "a chat agent"
1660
+ # copies the same short lane pointer — the path for a reviewer with no
1661
+ # CLI, and the fallback if a launch fails
1662
+
1663
+ prismatica review --reviewer fresh-agent
1664
+ # draft only: names a reviewer, launches nothing
1665
+
1666
+ prismatica seal
1667
+ # recomputes the fingerprint; if the code changed since the review,
1668
+ # the seal fails and the review must be redone
1669
+
1670
+ prismatica seal --request-changes
1671
+ # the reviewer said no — never advances the change; above light it blocks
1672
+ # the gate and accept, and next sends the work back to the builder
1673
+
1674
+ If anything touches the code after sealing — even one line — the gate notices
1675
+ the fingerprints no longer match and blocks the merge. The model thinks; the
1676
+ maths checks.
1677
+
1678
+ **A Fresh Reviewer is a fresh SESSION, not a different vendor.** The same
1679
+ provider is fine; what must not be reused is the session that wrote the code.
1680
+ \`--agent\` accepts \`claude\` or \`codex\` — the flag that stops the session
1681
+ changing the repository is that CLI's own (\`--permission-mode plan\`,
1682
+ \`--sandbox read-only\`) and no flag is ever guessed for a provider Prismatica
1683
+ has not been told about. Both block WRITES; neither claims to stop the session
1684
+ running commands, and the reviewer only needs the first. It refuses to combine with
1685
+ \`--copy\` or with \`--reviewer\`, because the agent already IS the reviewer label.
1686
+
1687
+ **The reviewer recommends; you record.** The brief and the pointer both end the
1688
+ reviewer on exactly \`SAFE TO SEAL\` or \`DO NOT SEAL\`, and neither ever tells
1689
+ them to seal. Prismatica reads none of that session's output, infers no verdict
1690
+ from it and seals nothing on its behalf — the two outcomes are yours to type,
1691
+ and both are printed for you when the review is drafted.
1692
+
1693
+ **The verdict is enforced, not just recorded.** Above \`light\` tier the gate
1694
+ requires a sealed review carrying an explicit \`approve\`. A
1695
+ \`request_changes\` verdict — or a sealed review with no verdict at all — fails
1696
+ closed: the gate refuses, \`accept\` will not sign over it, \`prismatica next\`
1697
+ sends the change back to the builder, and the board shows it as back with the
1698
+ builder rather than waiting on you. "Sealed" has never meant "approved", and
1699
+ now nothing in the tool pretends otherwise.
1700
+
1701
+ **Commit before you check, and before you review.** A fingerprint can only
1702
+ cover committed work, so both \`check\` and \`review\` refuse while anything is
1703
+ uncommitted in the lane and tell you to commit first. Without that refusal a
1704
+ check of work-in-progress would be recorded as proof, and a review of it would
1705
+ be recorded as a review of the empty diff, with the seal agreeing perfectly.
1706
+
1707
+ That includes Prismatica's own records, with narrow exceptions: the ledger line
1708
+ and the evidence files \`check\` writes, and a review record still in DRAFT that
1709
+ a re-run is about to replace. Those are output, not input. A SEALED review is
1710
+ not exempt — a \`request_changes\` verdict must reach Git history before a
1711
+ fresh review displaces it, or the rework it asked for would erase the only
1712
+ trace that anyone said no. The contract, the pack and a flow report are not
1713
+ exempt either: the brief quotes their scope, their acceptance checks and their
1714
+ impact account, so they have to be the ones riding the pull request, not a
1715
+ newer copy sitting in your working tree. (The one thing tolerated on the
1716
+ contract is Prismatica's own stage line moving forward; every other field must
1717
+ match what is committed.)
1718
+
1719
+ **A rejection has to be worked on before it can be reviewed again.** Once a
1720
+ sealed \`request_changes\` is committed, \`review\` refuses a fresh brief until a
1721
+ later commit contains substantive rework. The review record, ledger and this
1722
+ contract's Check evidence are lifecycle output and do not count, so rerunning
1723
+ Check on unchanged work cannot unlock a fresh reviewer. Rework the code, or make
1724
+ a substantive Flow or Rule proposal change — either passes. No later commit or
1725
+ an empty commit does not: each would put the same work in front of a new
1726
+ reviewer, and a change could shop for a yes at no cost. It is deliberately not a fingerprint
1727
+ comparison — the patch-id leaves \`.prismatica/\` out, so records-only rework is
1728
+ invisible to it — but a question asked of committed history since the rejection
1729
+ was written. Commit the rejection and the rework it asked for separately, in that
1730
+ order, for the same reason a sealed review is never replaced in place.
1731
+
1732
+ prismatica review 20260729-fix-offline-session-loss-9c3e --reconsider
1733
+ # you have decided to look at this exact, unchanged work again anyway
1734
+
1735
+ That escape hatch is yours alone: it needs a real terminal, it refuses an agent,
1736
+ and there is deliberately no \`--yes\`. The rejection it steps past stays exactly
1737
+ where it is in Git history — nothing here deletes or rewrites a record.
1738
+
1739
+ **A check expires when the code moves on.** Every check records the exact
1740
+ commit it inspected, and stays current only while the commits since are the
1741
+ change's own records — committing the ledger line and evidence \`check\` just
1742
+ produced is expected and changes nothing. Commit code, contract terms, the
1743
+ pack, a flow report, a delta, a proposal or a canonical record afterwards and
1744
+ the check no longer describes this commit, so \`review\` refuses and \`next\`
1745
+ sends you back to \`check\`. File your flow report BEFORE the check, not after.
1746
+ A check recorded before this binding existed, or a ledger line written after it
1747
+ that cannot be read, both fail closed the same way: run \`check\` again.
1748
+
1749
+ **Filing that flow report is one command, and it will not lie for you.**
1750
+
1751
+ prismatica flow report --auto
1752
+ # writes one entry per Flow your diff provably touched, naming the
1753
+ # touchpoints that matched and the files that matched them
1754
+
1755
+ \`--auto\` records only what a file diff can establish. It never says a test
1756
+ passed — it runs before \`check\`, so nothing has run yet — and it never says
1757
+ behaviour is unchanged, because no list of filenames can establish that. It
1758
+ leaves two things for you, and prints the exact command for each, last, where
1759
+ you cannot miss them: a Flow that merely SHARES a mechanic with one you
1760
+ touched, and a Flow with no mapped touchpoints at all, which no diff can rule
1761
+ in or out. It never overwrites an entry you wrote.
1762
+
1763
+ Then answer the rest in your own words:
1764
+
1765
+ prismatica flow report --flow log-a-session \\
1766
+ --status unchanged --reason "only the internal helper moved; the user
1767
+ sees exactly the same screens in the same order"
1768
+
1769
+ \`unchanged\` on a Flow your diff touched is a real, accepted answer — that is
1770
+ what it is FOR. Prismatica cannot decide whether behaviour changed and does not
1771
+ pretend to; it only decides who has to answer. If that Flow's own mapped test
1772
+ files also changed in your diff, the report records that fact beside your
1773
+ reason so the reviewer weighs both. It is context, never a veto.
1774
+
1775
+ For heavy changes, your signed decision follows the seal:
1776
+
1777
+ prismatica accept
1778
+ # Ed25519 signature over the contract id + the exact diff fingerprint,
1779
+ # verified by the gate against the public key committed in config.json
1780
+
1781
+ **Feeling like too much ceremony for a small change? Use the tier, not a
1782
+ shortcut.** There is deliberately no \`--skip-review\`: a seal you can switch off
1783
+ proves nothing, and the switch would be the first thing a tired evening reaches
1784
+ for. The dial that exists instead is the risk tier, and it is deterministic —
1785
+ \`light\` changes need no sealed review at all (\`gate.ts\` simply does not ask
1786
+ for one), while \`normal\` and \`heavy\` do.
1787
+
1788
+ prismatica frame "Fix the footer spacing" --issue "#31" --copy-only
1789
+ # copy/colours/spacing → light → checks, no sealed review
1790
+
1791
+ That holds all the way through \`ship --verify\`: a light change's passport
1792
+ binds to the exact commit its passing check recorded, not to a review it never
1793
+ had. The exact-commit guarantee is the same one a sealed review gives; only the
1794
+ proof it is drawn from differs by tier.
1795
+
1796
+ If a whole CLASS of change keeps feeling heavier than it deserves — docs,
1797
+ tests, fixtures — say so once, in \`.prismatica/config.json\`:
1798
+
1799
+ "tierRules": [
1800
+ { "tier": "light", "paths": ["docs/**", "**/*.test.ts"] },
1801
+ { "tier": "heavy", "paths": ["**/auth/**", "**/payments/**"] }
1802
+ ]
1803
+
1804
+ That is a decision recorded in the repo, reviewable in a diff, applied the same
1805
+ way every time — not a flag someone typed once at 11pm. And it cannot be
1806
+ abused: the tier is \`max(what you answered, what the files demand)\`, so an
1807
+ agent can raise a tier and never lower one, and the gate re-derives the floor
1808
+ from the changed files regardless of what the contract claims.`,
1809
+ },
1810
+ {
1811
+ id: 'ship',
1812
+ title: 'Ship, merge, close, verify — out the door, with a way back',
1813
+ body: ` prismatica ship <id>
1814
+ # pre-flights the gate locally (why push something that will bounce?),
1815
+ # requires an exact clean lane HEAD, pushes it, and opens the pull
1816
+ # request via GitHub's gh — never queries or creates a PR after a
1817
+ # failed push, and reuses an already-open PR instead of duplicating it
1818
+
1819
+ The real gate runs on GitHub for every push to the PR. It re-checks everything
1820
+ from scratch in a clean checkout: scope, tests, docs, the sealed review, your
1821
+ signature (heavy), and the risk tier the changed files themselves demand. The
1822
+ gate itself makes zero writes, pass or fail — it only ever reports.
1823
+
1824
+ prismatica merge <id>
1825
+ # once the gate is green: an exact-SHA, owner-guarded merge. Refuses a
1826
+ # draft, missing, closed, pending, failed, stale, or ambiguous PR, and
1827
+ # requires a passing prismatica-gate check for this EXACT head before
1828
+ # calling \`gh pr merge --merge\` — never a silent squash or rebase.
1829
+ # Reported as "Checked — owner-guarded": this command is the guard,
1830
+ # not a claim that GitHub itself enforces it (GitHub Free private
1831
+ # repos don't offer required-status-check protection at all). Without
1832
+ # server-side protection, a merge in the GitHub browser UI or a direct
1833
+ # push to main still bypasses it — see "prismatica guide mergepath"
1834
+
1835
+ prismatica close <id>
1836
+ # removes the lane once GitHub's own record confirms a merged PR at
1837
+ # exactly this lane's HEAD — refuses any real uncommitted work (the
1838
+ # ONE thing it tolerates is ship's own disposable stage-bump, since
1839
+ # ship can never commit for you), refuses any ignored file it can't
1840
+ # prove is disposable (a local .env, log, evidence blob, customized
1841
+ # Claude setting, or hand-edited hook survives; exact generated hook
1842
+ # files and build output don't block it), never a remote branch,
1843
+ # never anything short of certain
1844
+
1845
+ After merge, close, and your deploy is out:
1846
+
1847
+ prismatica ship <id> --verify \\
1848
+ --deploy-result "deployed to production" \\
1849
+ --rollback "revert the PR, redeploy previous image"
1850
+ # runs one live smoke journey against the real app; only when it
1851
+ # passes is the passport written — durably, on your main checkout,
1852
+ # never forcing a new commit into an already-closed lane
1853
+
1854
+ No passport is ever written for a broken deploy or an empty change. \`--deploy-
1855
+ result\` and \`--rollback\` are checked for real content, not just presence:
1856
+ punctuation on its own ("...") and angle-bracket template text copied straight
1857
+ out of a \`--help\` string ("<a rollback route you actually tested>") are both
1858
+ refused before the smoke journey ever runs. A short, real answer ("deployed",
1859
+ "revert PR #48") is never mistaken for a placeholder. The rollback route on
1860
+ the passport is one you actually tested — because the only rollback that
1861
+ counts is one that is known to work.
1862
+
1863
+ Lost mid-flow? \`prismatica next\` reads the PR and its checks (read-only,
1864
+ never network-writing) and tells you exactly which of ship/merge/close/verify
1865
+ comes next — or, if GitHub can't be reached, says so honestly instead of
1866
+ guessing. When a merged contract on main is still missing its passport, the
1867
+ command it hands you is exactly \`prismatica ship <id> --verify\`, with no
1868
+ invented \`--deploy-result\`/\`--rollback\` text tacked on — those are real
1869
+ evidence only you have, and \`ship\` asks for it directly rather than accepting
1870
+ whatever \`next\` printed. A contract created before this repo started
1871
+ tracking release verification (\`releaseTrackingSince\` in config.json, set
1872
+ once by \`init\`) is never queued this way at all — see "prismatica guide
1873
+ releasetracking".`,
1874
+ },
1875
+ {
1876
+ id: 'releasetracking',
1877
+ title: 'Release tracking — why an old contract is never "awaiting verification"',
1878
+ body: `\`ship --verify\` writes a passport once a merged change actually deploys and
1879
+ passes a live check. Until it does, \`next\` and the board both say the
1880
+ contract is "awaiting live verification" — but only for a contract this repo
1881
+ was actually tracking release proof for when it merged.
1882
+
1883
+ \`prismatica init\` writes \`releaseTrackingSince\` into config.json — once, the
1884
+ first time it runs, timestamped to that moment:
1885
+
1886
+ "releaseTrackingSince": "2026-08-06T16:41:25.791Z"
1887
+
1888
+ A contract created BEFORE that timestamp, with no passport, is legacy: nobody
1889
+ was asking it to carry release proof at the time, so \`next\` never queues it
1890
+ for \`ship --verify\`, and neither \`next\` nor the board ever describes it as
1891
+ shipped or verified. It is shown plainly as legacy release proof that was
1892
+ never tracked, distinct from a genuinely pending one.
1893
+
1894
+ The boundary decides what a MISSING passport means, never what a present one
1895
+ means. An old contract that DOES have a passport is a verified release like
1896
+ any other — it merged, deployed and passed a live check, and that record is
1897
+ shown as exactly what it is. Nothing is suppressed for being old.
1898
+
1899
+ A contract created ON OR AFTER the boundary, with no passport yet, is exactly
1900
+ what "awaiting live verification" means — \`next\` surfaces it, and \`ship
1901
+ --verify\` will happily write its passport once you give it real evidence.
1902
+
1903
+ Re-running \`init\` on a repo that adopted Prismatica before this field existed
1904
+ fills the boundary in once, from the moment you re-run it — never earlier,
1905
+ and never moved again on any later run. Nothing is ever backfilled, waived,
1906
+ deleted or overwritten: this only decides who gets ASKED for verification, and
1907
+ a real passport, once written, is never touched by any of this.`,
1908
+ },
1909
+ {
1910
+ id: 'board',
1911
+ title: 'Board — seeing everything at once',
1912
+ body: ` prismatica view
1913
+ # a local page (your machine only) showing every adopted repo
1914
+
1915
+ Four areas, in the order they deserve your attention:
1916
+
1917
+ - Needs you — every decision waiting on you, across all apps, each in one
1918
+ plain sentence. Each card has "Approve and sign" or "Request changes"; both
1919
+ write a signed record into the repo — the gate reads the record, never the
1920
+ board.
1921
+ - Work — every in-flight change as a card in its lifecycle column. Cards move
1922
+ only when records change; there is nothing to drag.
1923
+ - Apps — one row per repo: last shipped, open changes, gate health, red
1924
+ flags, and the folded Enforced/Checked/Missing table. Each row has a "Remove"
1925
+ button that forgets the repo's board pointer (the repo and its records stay).
1926
+ - Releases — three honestly distinct states, never blurred together. Verified
1927
+ releases are passports (what shipped, with proof and a tested rollback).
1928
+ Awaiting live verification is a merged contract with no passport yet, still
1929
+ eligible for \`ship --verify\`. Legacy (release proof not tracked) is a
1930
+ contract created before this repo adopted release tracking — never queued,
1931
+ never called shipped or verified (see "prismatica guide releasetracking").
1932
+ Below that, the plans you confirmed: an Intent is the plan \`prismatica start\`
1933
+ recorded when you confirmed it, its success checks listed as the outcomes it
1934
+ set out to achieve, never as a progress bar. Nothing in Prismatica advances
1935
+ them, so a count would only ever read zero. Whether a change shipped comes
1936
+ from its passport — the one record that means it merged, deployed and passed
1937
+ a live check.
1938
+
1939
+ The board follows your system light/dark theme, with a manual toggle (Auto /
1940
+ Light / Dark) and an optional 10-second auto-refresh, both in the sidebar.
1941
+
1942
+ A fifth sidebar entry, Understand, is a separate view onto what your apps DO
1943
+ rather than what is changing — see the "understand" topic.
1944
+
1945
+ To empty the board from the terminal instead:
1946
+
1947
+ prismatica forget # forget the current repo
1948
+ prismatica forget --gone # forget repos no longer on disk
1949
+ prismatica forget --all # clear the board entirely
1950
+
1951
+ Everything on the board is a record in a repo. If it is not in the repo, it is
1952
+ not on the board. Hover anything to see the real term behind the plain words.`,
1953
+ },
1954
+ {
1955
+ id: 'understand',
1956
+ title: 'Understand — the same Flows and Rules, visually',
1957
+ body: ` prismatica view
1958
+ # then click "Understand" in the sidebar, or go straight to
1959
+ # http://127.0.0.1:<port>/understand
1960
+
1961
+ Understand is where you review what \`prismatica discover --import\` (or
1962
+ \`prismatica propose --import\`, from inside a change) put there, without
1963
+ touching a terminal:
1964
+
1965
+ - Pick an app — each card shows how many Flows and Rules it has, and how many
1966
+ are waiting on you.
1967
+ - Flow Map — one card per Flow: its goal, status (Works now / Planned / Idea
1968
+ / Uncertain), and how its evidence breaks down (for example "3 steps: 2
1969
+ test verified, 1 code inferred"). New drafts and proposed updates carry a
1970
+ "pending review" badge right on the card. Filter by status.
1971
+ - Storyboard — click a Flow to see it step by step: who does what, what the
1972
+ app shows, what changes, and only-if assumptions — plus, collapsed behind
1973
+ "Where it lives in the code", the files an agent already mapped it to.
1974
+ - App rules sit alongside the map — the short list of things that must stay
1975
+ true no matter which Flow you are in.
1976
+
1977
+ Reviewing a draft or a proposed update shows a side-by-side Current /
1978
+ Proposed comparison, then two buttons:
1979
+
1980
+ Approve # writes it as the app's current truth (or rule)
1981
+ Keep current / dismiss # discards the proposal; nothing changes
1982
+
1983
+ Both buttons call the exact same code as \`prismatica flow approve\` and
1984
+ \`prismatica flow dismiss\` — the board is never a second source of truth, only
1985
+ a second way to reach the one approval path (signed automatically if the app
1986
+ is governed, hash-only if it is map-only).`,
1987
+ },
1988
+ ];
1989
+ export function guideTopicIds() {
1990
+ return GUIDE_TOPICS.map((topic) => topic.id);
1991
+ }
1992
+ export function renderGuideTopic(id) {
1993
+ const topic = GUIDE_TOPICS.find((entry) => entry.id === id);
1994
+ if (!topic) {
1995
+ return null;
1996
+ }
1997
+ return `## ${topic.title}\n\n${topic.body}\n`;
1998
+ }
1999
+ /** Topics that answer "I want to do X", listed before the reference material. */
2000
+ export const SCENARIO_TOPIC_IDS = [
2001
+ 'startbug',
2002
+ 'understandapp',
2003
+ 'changeflow',
2004
+ 'newflow',
2005
+ 'starttechnical',
2006
+ 'rediscover',
2007
+ 'approvebatch',
2008
+ 'handoff',
2009
+ 'roles',
2010
+ 'proof',
2011
+ 'mergepath',
2012
+ 'verifyclose',
2013
+ 'abandon',
2014
+ 'manualframe',
2015
+ ];
2016
+ function tocLine(topic) {
2017
+ return `- ${topic.title.toLowerCase().split(' — ')[0]}: prismatica guide ${topic.id}`;
2018
+ }
2019
+ export function renderFullGuide() {
2020
+ const scenarios = GUIDE_TOPICS.filter((topic) => SCENARIO_TOPIC_IDS.includes(topic.id));
2021
+ const reference = GUIDE_TOPICS.filter((topic) => !SCENARIO_TOPIC_IDS.includes(topic.id));
2022
+ return `# The Prismatica guide
2023
+
2024
+ The agent builds. Prismatica inspects. Nothing ships until the intent, the
2025
+ proof, and the owner agree.
2026
+
2027
+ Start from what you are trying to do:
2028
+
2029
+ ${scenarios.map(tocLine).join('\n')}
2030
+
2031
+ Then the reference, when you want the detail behind a step:
2032
+
2033
+ ${reference.map(tocLine).join('\n')}
2034
+
2035
+ ${GUIDE_TOPICS.map((topic) => `## ${topic.title}\n\n${topic.body}`).join('\n\n')}
2036
+ `;
2037
+ }
2038
+ //# sourceMappingURL=guide.js.map