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.
- package/LICENSE +21 -0
- package/README.md +403 -0
- package/dist/agent-runner.js +656 -0
- package/dist/agent-runner.js.map +1 -0
- package/dist/assurance/mainpush.js +533 -0
- package/dist/assurance/mainpush.js.map +1 -0
- package/dist/assurance/outcome.js +165 -0
- package/dist/assurance/outcome.js.map +1 -0
- package/dist/assurance/passport.js +98 -0
- package/dist/assurance/passport.js.map +1 -0
- package/dist/assurance/proofinputs.js +425 -0
- package/dist/assurance/proofinputs.js.map +1 -0
- package/dist/atlas/diff.js +102 -0
- package/dist/atlas/diff.js.map +1 -0
- package/dist/atlas/evidence.js +31 -0
- package/dist/atlas/evidence.js.map +1 -0
- package/dist/atlas/hygiene.js +288 -0
- package/dist/atlas/hygiene.js.map +1 -0
- package/dist/atlas/impact.js +312 -0
- package/dist/atlas/impact.js.map +1 -0
- package/dist/atlas/labels.js +121 -0
- package/dist/atlas/labels.js.map +1 -0
- package/dist/atlas/next.js +327 -0
- package/dist/atlas/next.js.map +1 -0
- package/dist/atlas/packs.js +169 -0
- package/dist/atlas/packs.js.map +1 -0
- package/dist/atlas/presentation.js +349 -0
- package/dist/atlas/presentation.js.map +1 -0
- package/dist/atlas/render.js +269 -0
- package/dist/atlas/render.js.map +1 -0
- package/dist/atlas/store.js +389 -0
- package/dist/atlas/store.js.map +1 -0
- package/dist/board/html.js +1382 -0
- package/dist/board/html.js.map +1 -0
- package/dist/board/model.js +369 -0
- package/dist/board/model.js.map +1 -0
- package/dist/board/server.js +325 -0
- package/dist/board/server.js.map +1 -0
- package/dist/board/understand.js +128 -0
- package/dist/board/understand.js.map +1 -0
- package/dist/change.js +104 -0
- package/dist/change.js.map +1 -0
- package/dist/checkengine.js +220 -0
- package/dist/checkengine.js.map +1 -0
- package/dist/claudehook.js +189 -0
- package/dist/claudehook.js.map +1 -0
- package/dist/cli.js +1120 -0
- package/dist/cli.js.map +1 -0
- package/dist/clipboard.js +33 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/commands/abandon.js +329 -0
- package/dist/commands/abandon.js.map +1 -0
- package/dist/commands/accept.js +85 -0
- package/dist/commands/accept.js.map +1 -0
- package/dist/commands/amend.js +158 -0
- package/dist/commands/amend.js.map +1 -0
- package/dist/commands/check.js +128 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/close.js +274 -0
- package/dist/commands/close.js.map +1 -0
- package/dist/commands/context.js +46 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/delta.js +192 -0
- package/dist/commands/delta.js.map +1 -0
- package/dist/commands/discover.js +173 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/doctor.js +384 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/flow.js +929 -0
- package/dist/commands/flow.js.map +1 -0
- package/dist/commands/forget.js +33 -0
- package/dist/commands/forget.js.map +1 -0
- package/dist/commands/frame.js +231 -0
- package/dist/commands/frame.js.map +1 -0
- package/dist/commands/gate.js +48 -0
- package/dist/commands/gate.js.map +1 -0
- package/dist/commands/guide.js +17 -0
- package/dist/commands/guide.js.map +1 -0
- package/dist/commands/init.js +257 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/merge.js +188 -0
- package/dist/commands/merge.js.map +1 -0
- package/dist/commands/next.js +352 -0
- package/dist/commands/next.js.map +1 -0
- package/dist/commands/open.js +255 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/pack.js +165 -0
- package/dist/commands/pack.js.map +1 -0
- package/dist/commands/propose.js +102 -0
- package/dist/commands/propose.js.map +1 -0
- package/dist/commands/ready.js +931 -0
- package/dist/commands/ready.js.map +1 -0
- package/dist/commands/review.js +434 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/rules.js +399 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/seal.js +52 -0
- package/dist/commands/seal.js.map +1 -0
- package/dist/commands/ship.js +333 -0
- package/dist/commands/ship.js.map +1 -0
- package/dist/commands/start.js +1164 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/stats.js +100 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/view.js +23 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/config.js +46 -0
- package/dist/config.js.map +1 -0
- package/dist/detect.js +495 -0
- package/dist/detect.js.map +1 -0
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -0
- package/dist/evidence.js +20 -0
- package/dist/evidence.js.map +1 -0
- package/dist/executor.js +256 -0
- package/dist/executor.js.map +1 -0
- package/dist/gate.js +109 -0
- package/dist/gate.js.map +1 -0
- package/dist/gh.js +236 -0
- package/dist/gh.js.map +1 -0
- package/dist/git.js +589 -0
- package/dist/git.js.map +1 -0
- package/dist/guide.js +2038 -0
- package/dist/guide.js.map +1 -0
- package/dist/ids.js +60 -0
- package/dist/ids.js.map +1 -0
- package/dist/keys.js +58 -0
- package/dist/keys.js.map +1 -0
- package/dist/ledger.js +197 -0
- package/dist/ledger.js.map +1 -0
- package/dist/paths.js +109 -0
- package/dist/paths.js.map +1 -0
- package/dist/planning/context.js +94 -0
- package/dist/planning/context.js.map +1 -0
- package/dist/planning/materialise.js +210 -0
- package/dist/planning/materialise.js.map +1 -0
- package/dist/planning/pack.js +290 -0
- package/dist/planning/pack.js.map +1 -0
- package/dist/planning/schema.js +296 -0
- package/dist/planning/schema.js.map +1 -0
- package/dist/planning/snapshot.js +308 -0
- package/dist/planning/snapshot.js.map +1 -0
- package/dist/planning/validate.js +417 -0
- package/dist/planning/validate.js.map +1 -0
- package/dist/prepush.js +192 -0
- package/dist/prepush.js.map +1 -0
- package/dist/records/store.js +268 -0
- package/dist/records/store.js.map +1 -0
- package/dist/records/types.js +836 -0
- package/dist/records/types.js.map +1 -0
- package/dist/registry.js +68 -0
- package/dist/registry.js.map +1 -0
- package/dist/render.js +275 -0
- package/dist/render.js.map +1 -0
- package/dist/runtime.js +47 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scope.js +62 -0
- package/dist/scope.js.map +1 -0
- package/dist/secrets.js +24 -0
- package/dist/secrets.js.map +1 -0
- package/dist/selfhost.js +199 -0
- package/dist/selfhost.js.map +1 -0
- package/dist/shellquote.js +5 -0
- package/dist/shellquote.js.map +1 -0
- package/dist/skills.js +398 -0
- package/dist/skills.js.map +1 -0
- package/dist/state.js +62 -0
- package/dist/state.js.map +1 -0
- package/dist/templates.js +264 -0
- package/dist/templates.js.map +1 -0
- package/dist/tier.js +48 -0
- package/dist/tier.js.map +1 -0
- package/dist/ui.js +94 -0
- package/dist/ui.js.map +1 -0
- package/dist/vitestreport.js +59 -0
- package/dist/vitestreport.js.map +1 -0
- package/dist/worktree.js +31 -0
- package/dist/worktree.js.map +1 -0
- package/node_modules/@inquirer/ansi/LICENSE +22 -0
- package/node_modules/@inquirer/ansi/README.md +89 -0
- package/node_modules/@inquirer/ansi/dist/index.d.ts +14 -0
- package/node_modules/@inquirer/ansi/dist/index.js +21 -0
- package/node_modules/@inquirer/ansi/package.json +78 -0
- package/node_modules/@inquirer/checkbox/LICENSE +22 -0
- package/node_modules/@inquirer/checkbox/README.md +195 -0
- package/node_modules/@inquirer/checkbox/dist/index.d.ts +56 -0
- package/node_modules/@inquirer/checkbox/dist/index.js +210 -0
- package/node_modules/@inquirer/checkbox/package.json +92 -0
- package/node_modules/@inquirer/confirm/LICENSE +22 -0
- package/node_modules/@inquirer/confirm/README.md +92 -0
- package/node_modules/@inquirer/confirm/dist/index.d.ts +10 -0
- package/node_modules/@inquirer/confirm/dist/index.js +48 -0
- package/node_modules/@inquirer/confirm/package.json +90 -0
- package/node_modules/@inquirer/core/LICENSE +22 -0
- package/node_modules/@inquirer/core/README.md +386 -0
- package/node_modules/@inquirer/core/dist/index.d.ts +13 -0
- package/node_modules/@inquirer/core/dist/index.js +12 -0
- package/node_modules/@inquirer/core/dist/lib/Separator.d.ts +10 -0
- package/node_modules/@inquirer/core/dist/lib/Separator.js +21 -0
- package/node_modules/@inquirer/core/dist/lib/create-prompt.d.ts +4 -0
- package/node_modules/@inquirer/core/dist/lib/create-prompt.js +165 -0
- package/node_modules/@inquirer/core/dist/lib/errors.d.ts +20 -0
- package/node_modules/@inquirer/core/dist/lib/errors.js +21 -0
- package/node_modules/@inquirer/core/dist/lib/hook-engine.d.ts +23 -0
- package/node_modules/@inquirer/core/dist/lib/hook-engine.js +111 -0
- package/node_modules/@inquirer/core/dist/lib/key.d.ts +15 -0
- package/node_modules/@inquirer/core/dist/lib/key.js +34 -0
- package/node_modules/@inquirer/core/dist/lib/make-theme.d.ts +3 -0
- package/node_modules/@inquirer/core/dist/lib/make-theme.js +32 -0
- package/node_modules/@inquirer/core/dist/lib/pagination/use-pagination.d.ts +16 -0
- package/node_modules/@inquirer/core/dist/lib/pagination/use-pagination.js +121 -0
- package/node_modules/@inquirer/core/dist/lib/promise-polyfill.d.ts +7 -0
- package/node_modules/@inquirer/core/dist/lib/promise-polyfill.js +14 -0
- package/node_modules/@inquirer/core/dist/lib/screen-manager.d.ts +14 -0
- package/node_modules/@inquirer/core/dist/lib/screen-manager.js +84 -0
- package/node_modules/@inquirer/core/dist/lib/theme.d.ts +166 -0
- package/node_modules/@inquirer/core/dist/lib/theme.js +29 -0
- package/node_modules/@inquirer/core/dist/lib/use-effect.d.ts +2 -0
- package/node_modules/@inquirer/core/dist/lib/use-effect.js +11 -0
- package/node_modules/@inquirer/core/dist/lib/use-keypress.d.ts +3 -0
- package/node_modules/@inquirer/core/dist/lib/use-keypress.js +20 -0
- package/node_modules/@inquirer/core/dist/lib/use-memo.d.ts +1 -0
- package/node_modules/@inquirer/core/dist/lib/use-memo.js +14 -0
- package/node_modules/@inquirer/core/dist/lib/use-prefix.d.ts +5 -0
- package/node_modules/@inquirer/core/dist/lib/use-prefix.js +35 -0
- package/node_modules/@inquirer/core/dist/lib/use-ref.d.ts +6 -0
- package/node_modules/@inquirer/core/dist/lib/use-ref.js +4 -0
- package/node_modules/@inquirer/core/dist/lib/use-state.d.ts +4 -0
- package/node_modules/@inquirer/core/dist/lib/use-state.js +23 -0
- package/node_modules/@inquirer/core/dist/lib/utils.d.ts +13 -0
- package/node_modules/@inquirer/core/dist/lib/utils.js +25 -0
- package/node_modules/@inquirer/core/package.json +97 -0
- package/node_modules/@inquirer/editor/LICENSE +22 -0
- package/node_modules/@inquirer/editor/README.md +101 -0
- package/node_modules/@inquirer/editor/dist/index.d.ts +21 -0
- package/node_modules/@inquirer/editor/dist/index.js +73 -0
- package/node_modules/@inquirer/editor/package.json +91 -0
- package/node_modules/@inquirer/expand/LICENSE +22 -0
- package/node_modules/@inquirer/expand/README.md +141 -0
- package/node_modules/@inquirer/expand/dist/index.d.ts +24 -0
- package/node_modules/@inquirer/expand/dist/index.js +110 -0
- package/node_modules/@inquirer/expand/package.json +90 -0
- package/node_modules/@inquirer/external-editor/LICENSE +22 -0
- package/node_modules/@inquirer/external-editor/README.md +154 -0
- package/node_modules/@inquirer/external-editor/dist/errors/CreateFileError.d.ts +10 -0
- package/node_modules/@inquirer/external-editor/dist/errors/CreateFileError.js +13 -0
- package/node_modules/@inquirer/external-editor/dist/errors/LaunchEditorError.d.ts +10 -0
- package/node_modules/@inquirer/external-editor/dist/errors/LaunchEditorError.js +13 -0
- package/node_modules/@inquirer/external-editor/dist/errors/ReadFileError.d.ts +10 -0
- package/node_modules/@inquirer/external-editor/dist/errors/ReadFileError.js +13 -0
- package/node_modules/@inquirer/external-editor/dist/errors/RemoveFileError.d.ts +10 -0
- package/node_modules/@inquirer/external-editor/dist/errors/RemoveFileError.js +13 -0
- package/node_modules/@inquirer/external-editor/dist/errors.d.ts +20 -0
- package/node_modules/@inquirer/external-editor/dist/errors.js +32 -0
- package/node_modules/@inquirer/external-editor/dist/index.d.ts +35 -0
- package/node_modules/@inquirer/external-editor/dist/index.js +146 -0
- package/node_modules/@inquirer/external-editor/dist/parse-editor-command.d.ts +5 -0
- package/node_modules/@inquirer/external-editor/dist/parse-editor-command.js +28 -0
- package/node_modules/@inquirer/external-editor/package.json +97 -0
- package/node_modules/@inquirer/figures/LICENSE +22 -0
- package/node_modules/@inquirer/figures/dist/index.d.ts +275 -0
- package/node_modules/@inquirer/figures/dist/index.js +315 -0
- package/node_modules/@inquirer/figures/package.json +80 -0
- package/node_modules/@inquirer/input/LICENSE +22 -0
- package/node_modules/@inquirer/input/README.md +101 -0
- package/node_modules/@inquirer/input/dist/index.d.ts +20 -0
- package/node_modules/@inquirer/input/dist/index.js +99 -0
- package/node_modules/@inquirer/input/package.json +90 -0
- package/node_modules/@inquirer/number/LICENSE +22 -0
- package/node_modules/@inquirer/number/README.md +95 -0
- package/node_modules/@inquirer/number/dist/index.d.ts +13 -0
- package/node_modules/@inquirer/number/dist/index.js +95 -0
- package/node_modules/@inquirer/number/package.json +90 -0
- package/node_modules/@inquirer/password/LICENSE +22 -0
- package/node_modules/@inquirer/password/README.md +93 -0
- package/node_modules/@inquirer/password/dist/index.d.ts +15 -0
- package/node_modules/@inquirer/password/dist/index.js +60 -0
- package/node_modules/@inquirer/password/package.json +91 -0
- package/node_modules/@inquirer/prompts/LICENSE +22 -0
- package/node_modules/@inquirer/prompts/README.md +543 -0
- package/node_modules/@inquirer/prompts/dist/index.d.ts +10 -0
- package/node_modules/@inquirer/prompts/dist/index.js +10 -0
- package/node_modules/@inquirer/prompts/package.json +101 -0
- package/node_modules/@inquirer/rawlist/LICENSE +22 -0
- package/node_modules/@inquirer/rawlist/README.md +135 -0
- package/node_modules/@inquirer/rawlist/dist/index.d.ts +23 -0
- package/node_modules/@inquirer/rawlist/dist/index.js +145 -0
- package/node_modules/@inquirer/rawlist/package.json +90 -0
- package/node_modules/@inquirer/search/LICENSE +22 -0
- package/node_modules/@inquirer/search/README.md +213 -0
- package/node_modules/@inquirer/search/dist/index.d.ts +33 -0
- package/node_modules/@inquirer/search/dist/index.js +195 -0
- package/node_modules/@inquirer/search/package.json +91 -0
- package/node_modules/@inquirer/select/LICENSE +22 -0
- package/node_modules/@inquirer/select/README.md +188 -0
- package/node_modules/@inquirer/select/dist/index.d.ts +34 -0
- package/node_modules/@inquirer/select/dist/index.js +191 -0
- package/node_modules/@inquirer/select/package.json +92 -0
- package/node_modules/@inquirer/type/LICENSE +22 -0
- package/node_modules/@inquirer/type/dist/index.d.ts +2 -0
- package/node_modules/@inquirer/type/dist/index.js +2 -0
- package/node_modules/@inquirer/type/dist/inquirer.d.ts +35 -0
- package/node_modules/@inquirer/type/dist/inquirer.js +1 -0
- package/node_modules/@inquirer/type/dist/utils.d.ts +29 -0
- package/node_modules/@inquirer/type/dist/utils.js +2 -0
- package/node_modules/@inquirer/type/package.json +87 -0
- package/node_modules/@sec-ant/readable-stream/LICENSE +21 -0
- package/node_modules/@sec-ant/readable-stream/README.md +230 -0
- package/node_modules/@sec-ant/readable-stream/dist/core/asyncIterablePrototype.d.ts +1 -0
- package/node_modules/@sec-ant/readable-stream/dist/core/asyncIterator.d.ts +27 -0
- package/node_modules/@sec-ant/readable-stream/dist/core/fromAnyIterable.d.ts +6 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/asyncIterator.d.ts +2 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/asyncIterator.js +5 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/fromAnyIterable.d.ts +2 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/fromAnyIterable.js +5 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/index.d.ts +2 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/index.js +8 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/asyncIterator.d.ts +1 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/asyncIterator.js +3 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/fromAnyIterable.d.ts +1 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/fromAnyIterable.js +2 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/index.d.ts +2 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/index.js +4 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.d.ts +1 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js +89 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.d.ts +1 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js +34 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.d.ts +2 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js +6 -0
- package/node_modules/@sec-ant/readable-stream/dist/types/async-iterator.d.ts +11 -0
- package/node_modules/@sec-ant/readable-stream/package.json +96 -0
- package/node_modules/@sindresorhus/merge-streams/index.d.ts +44 -0
- package/node_modules/@sindresorhus/merge-streams/index.js +265 -0
- package/node_modules/@sindresorhus/merge-streams/license +9 -0
- package/node_modules/@sindresorhus/merge-streams/package.json +49 -0
- package/node_modules/@sindresorhus/merge-streams/readme.md +53 -0
- package/node_modules/argparse/LICENSE +21 -0
- package/node_modules/argparse/README.md +257 -0
- package/node_modules/argparse/index.js +3 -0
- package/node_modules/argparse/lib/action/append/constant.js +47 -0
- package/node_modules/argparse/lib/action/append.js +53 -0
- package/node_modules/argparse/lib/action/count.js +40 -0
- package/node_modules/argparse/lib/action/help.js +47 -0
- package/node_modules/argparse/lib/action/store/constant.js +43 -0
- package/node_modules/argparse/lib/action/store/false.js +27 -0
- package/node_modules/argparse/lib/action/store/true.js +26 -0
- package/node_modules/argparse/lib/action/store.js +50 -0
- package/node_modules/argparse/lib/action/subparsers.js +149 -0
- package/node_modules/argparse/lib/action/version.js +47 -0
- package/node_modules/argparse/lib/action.js +146 -0
- package/node_modules/argparse/lib/action_container.js +482 -0
- package/node_modules/argparse/lib/argparse.js +14 -0
- package/node_modules/argparse/lib/argument/error.js +50 -0
- package/node_modules/argparse/lib/argument/exclusive.js +54 -0
- package/node_modules/argparse/lib/argument/group.js +75 -0
- package/node_modules/argparse/lib/argument_parser.js +1161 -0
- package/node_modules/argparse/lib/const.js +21 -0
- package/node_modules/argparse/lib/help/added_formatters.js +87 -0
- package/node_modules/argparse/lib/help/formatter.js +795 -0
- package/node_modules/argparse/lib/namespace.js +76 -0
- package/node_modules/argparse/lib/utils.js +57 -0
- package/node_modules/argparse/package.json +34 -0
- package/node_modules/chardet/LICENSE +19 -0
- package/node_modules/chardet/README.md +135 -0
- package/node_modules/chardet/lib/encoding/ascii.d.ts +6 -0
- package/node_modules/chardet/lib/encoding/ascii.js +23 -0
- package/node_modules/chardet/lib/encoding/ascii.js.map +1 -0
- package/node_modules/chardet/lib/encoding/index.d.ts +14 -0
- package/node_modules/chardet/lib/encoding/index.js +3 -0
- package/node_modules/chardet/lib/encoding/index.js.map +1 -0
- package/node_modules/chardet/lib/encoding/iso2022.d.ts +23 -0
- package/node_modules/chardet/lib/encoding/iso2022.js +114 -0
- package/node_modules/chardet/lib/encoding/iso2022.js.map +1 -0
- package/node_modules/chardet/lib/encoding/mbcs.d.ts +50 -0
- package/node_modules/chardet/lib/encoding/mbcs.js +347 -0
- package/node_modules/chardet/lib/encoding/mbcs.js.map +1 -0
- package/node_modules/chardet/lib/encoding/sbcs.d.ts +94 -0
- package/node_modules/chardet/lib/encoding/sbcs.js +935 -0
- package/node_modules/chardet/lib/encoding/sbcs.js.map +1 -0
- package/node_modules/chardet/lib/encoding/unicode.d.ts +27 -0
- package/node_modules/chardet/lib/encoding/unicode.js +109 -0
- package/node_modules/chardet/lib/encoding/unicode.js.map +1 -0
- package/node_modules/chardet/lib/encoding/utf8.d.ts +6 -0
- package/node_modules/chardet/lib/encoding/utf8.js +72 -0
- package/node_modules/chardet/lib/encoding/utf8.js.map +1 -0
- package/node_modules/chardet/lib/fs/browser.d.ts +2 -0
- package/node_modules/chardet/lib/fs/browser.js +6 -0
- package/node_modules/chardet/lib/fs/browser.js.map +1 -0
- package/node_modules/chardet/lib/fs/node.d.ts +2 -0
- package/node_modules/chardet/lib/fs/node.js +11 -0
- package/node_modules/chardet/lib/fs/node.js.map +1 -0
- package/node_modules/chardet/lib/index.d.ts +20 -0
- package/node_modules/chardet/lib/index.js +177 -0
- package/node_modules/chardet/lib/index.js.map +1 -0
- package/node_modules/chardet/lib/match.d.ts +9 -0
- package/node_modules/chardet/lib/match.js +8 -0
- package/node_modules/chardet/lib/match.js.map +1 -0
- package/node_modules/chardet/lib/utils.d.ts +1 -0
- package/node_modules/chardet/lib/utils.js +10 -0
- package/node_modules/chardet/lib/utils.js.map +1 -0
- package/node_modules/chardet/package.json +100 -0
- package/node_modules/cli-width/LICENSE +13 -0
- package/node_modules/cli-width/README.md +71 -0
- package/node_modules/cli-width/index.d.ts +13 -0
- package/node_modules/cli-width/index.js +49 -0
- package/node_modules/cli-width/package.json +40 -0
- package/node_modules/commander/LICENSE +22 -0
- package/node_modules/commander/Readme.md +1172 -0
- package/node_modules/commander/index.js +21 -0
- package/node_modules/commander/lib/argument.js +147 -0
- package/node_modules/commander/lib/command.js +2790 -0
- package/node_modules/commander/lib/error.js +36 -0
- package/node_modules/commander/lib/help.js +731 -0
- package/node_modules/commander/lib/option.js +377 -0
- package/node_modules/commander/lib/suggestSimilar.js +99 -0
- package/node_modules/commander/package-support.json +19 -0
- package/node_modules/commander/package.json +64 -0
- package/node_modules/commander/typings/index.d.ts +1113 -0
- package/node_modules/cross-spawn/LICENSE +21 -0
- package/node_modules/cross-spawn/README.md +89 -0
- package/node_modules/cross-spawn/index.js +39 -0
- package/node_modules/cross-spawn/lib/enoent.js +59 -0
- package/node_modules/cross-spawn/lib/parse.js +91 -0
- package/node_modules/cross-spawn/lib/util/escape.js +47 -0
- package/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
- package/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
- package/node_modules/cross-spawn/package.json +73 -0
- package/node_modules/esprima/LICENSE.BSD +21 -0
- package/node_modules/esprima/README.md +46 -0
- package/node_modules/esprima/bin/esparse.js +139 -0
- package/node_modules/esprima/bin/esvalidate.js +236 -0
- package/node_modules/esprima/dist/esprima.js +6709 -0
- package/node_modules/esprima/package.json +112 -0
- package/node_modules/execa/index.d.ts +27 -0
- package/node_modules/execa/index.js +28 -0
- package/node_modules/execa/lib/arguments/command.js +20 -0
- package/node_modules/execa/lib/arguments/cwd.js +39 -0
- package/node_modules/execa/lib/arguments/encoding-option.js +50 -0
- package/node_modules/execa/lib/arguments/escape.js +88 -0
- package/node_modules/execa/lib/arguments/fd-options.js +108 -0
- package/node_modules/execa/lib/arguments/file-url.js +25 -0
- package/node_modules/execa/lib/arguments/options.js +96 -0
- package/node_modules/execa/lib/arguments/shell.js +11 -0
- package/node_modules/execa/lib/arguments/specific.js +111 -0
- package/node_modules/execa/lib/convert/add.js +15 -0
- package/node_modules/execa/lib/convert/concurrent.js +33 -0
- package/node_modules/execa/lib/convert/duplex.js +69 -0
- package/node_modules/execa/lib/convert/iterable.js +34 -0
- package/node_modules/execa/lib/convert/readable.js +113 -0
- package/node_modules/execa/lib/convert/shared.js +46 -0
- package/node_modules/execa/lib/convert/writable.js +90 -0
- package/node_modules/execa/lib/io/contents.js +116 -0
- package/node_modules/execa/lib/io/input-sync.js +44 -0
- package/node_modules/execa/lib/io/iterate.js +110 -0
- package/node_modules/execa/lib/io/max-buffer.js +89 -0
- package/node_modules/execa/lib/io/output-async.js +80 -0
- package/node_modules/execa/lib/io/output-sync.js +135 -0
- package/node_modules/execa/lib/io/pipeline.js +48 -0
- package/node_modules/execa/lib/io/strip-newline.js +12 -0
- package/node_modules/execa/lib/ipc/array.js +4 -0
- package/node_modules/execa/lib/ipc/buffer-messages.js +47 -0
- package/node_modules/execa/lib/ipc/forward.js +56 -0
- package/node_modules/execa/lib/ipc/get-each.js +89 -0
- package/node_modules/execa/lib/ipc/get-one.js +69 -0
- package/node_modules/execa/lib/ipc/graceful.js +72 -0
- package/node_modules/execa/lib/ipc/incoming.js +79 -0
- package/node_modules/execa/lib/ipc/ipc-input.js +44 -0
- package/node_modules/execa/lib/ipc/methods.js +49 -0
- package/node_modules/execa/lib/ipc/outgoing.js +47 -0
- package/node_modules/execa/lib/ipc/reference.js +44 -0
- package/node_modules/execa/lib/ipc/send.js +91 -0
- package/node_modules/execa/lib/ipc/strict.js +113 -0
- package/node_modules/execa/lib/ipc/validation.js +111 -0
- package/node_modules/execa/lib/methods/bind.js +23 -0
- package/node_modules/execa/lib/methods/command.js +43 -0
- package/node_modules/execa/lib/methods/create.js +65 -0
- package/node_modules/execa/lib/methods/main-async.js +194 -0
- package/node_modules/execa/lib/methods/main-sync.js +163 -0
- package/node_modules/execa/lib/methods/node.js +51 -0
- package/node_modules/execa/lib/methods/parameters.js +31 -0
- package/node_modules/execa/lib/methods/promise.js +15 -0
- package/node_modules/execa/lib/methods/script.js +22 -0
- package/node_modules/execa/lib/methods/template.js +153 -0
- package/node_modules/execa/lib/pipe/abort.js +20 -0
- package/node_modules/execa/lib/pipe/pipe-arguments.js +91 -0
- package/node_modules/execa/lib/pipe/sequence.js +24 -0
- package/node_modules/execa/lib/pipe/setup.js +72 -0
- package/node_modules/execa/lib/pipe/streaming.js +51 -0
- package/node_modules/execa/lib/pipe/throw.js +58 -0
- package/node_modules/execa/lib/resolve/all-async.js +46 -0
- package/node_modules/execa/lib/resolve/all-sync.js +33 -0
- package/node_modules/execa/lib/resolve/exit-async.js +54 -0
- package/node_modules/execa/lib/resolve/exit-sync.js +25 -0
- package/node_modules/execa/lib/resolve/stdio.js +47 -0
- package/node_modules/execa/lib/resolve/wait-stream.js +96 -0
- package/node_modules/execa/lib/resolve/wait-subprocess.js +146 -0
- package/node_modules/execa/lib/return/duration.js +8 -0
- package/node_modules/execa/lib/return/early-error.js +60 -0
- package/node_modules/execa/lib/return/final-error.js +40 -0
- package/node_modules/execa/lib/return/message.js +157 -0
- package/node_modules/execa/lib/return/reject.js +13 -0
- package/node_modules/execa/lib/return/result.js +186 -0
- package/node_modules/execa/lib/stdio/direction.js +76 -0
- package/node_modules/execa/lib/stdio/duplicate.js +116 -0
- package/node_modules/execa/lib/stdio/handle-async.js +52 -0
- package/node_modules/execa/lib/stdio/handle-sync.js +57 -0
- package/node_modules/execa/lib/stdio/handle.js +214 -0
- package/node_modules/execa/lib/stdio/input-option.js +50 -0
- package/node_modules/execa/lib/stdio/native.js +106 -0
- package/node_modules/execa/lib/stdio/stdio-option.js +60 -0
- package/node_modules/execa/lib/stdio/type.js +173 -0
- package/node_modules/execa/lib/terminate/cancel.js +20 -0
- package/node_modules/execa/lib/terminate/cleanup.js +16 -0
- package/node_modules/execa/lib/terminate/graceful.js +71 -0
- package/node_modules/execa/lib/terminate/kill.js +93 -0
- package/node_modules/execa/lib/terminate/signal.js +70 -0
- package/node_modules/execa/lib/terminate/timeout.js +21 -0
- package/node_modules/execa/lib/transform/encoding-transform.js +51 -0
- package/node_modules/execa/lib/transform/generator.js +107 -0
- package/node_modules/execa/lib/transform/normalize.js +111 -0
- package/node_modules/execa/lib/transform/object-mode.js +41 -0
- package/node_modules/execa/lib/transform/run-async.js +60 -0
- package/node_modules/execa/lib/transform/run-sync.js +50 -0
- package/node_modules/execa/lib/transform/split.js +110 -0
- package/node_modules/execa/lib/transform/validate.js +43 -0
- package/node_modules/execa/lib/utils/abort-signal.js +8 -0
- package/node_modules/execa/lib/utils/deferred.js +7 -0
- package/node_modules/execa/lib/utils/max-listeners.js +14 -0
- package/node_modules/execa/lib/utils/standard-stream.js +6 -0
- package/node_modules/execa/lib/utils/uint-array.js +69 -0
- package/node_modules/execa/lib/verbose/complete.js +24 -0
- package/node_modules/execa/lib/verbose/custom.js +26 -0
- package/node_modules/execa/lib/verbose/default.js +54 -0
- package/node_modules/execa/lib/verbose/error.js +13 -0
- package/node_modules/execa/lib/verbose/info.js +39 -0
- package/node_modules/execa/lib/verbose/ipc.js +15 -0
- package/node_modules/execa/lib/verbose/log.js +54 -0
- package/node_modules/execa/lib/verbose/output.js +60 -0
- package/node_modules/execa/lib/verbose/start.js +15 -0
- package/node_modules/execa/lib/verbose/values.js +33 -0
- package/node_modules/execa/license +9 -0
- package/node_modules/execa/package.json +105 -0
- package/node_modules/execa/readme.md +461 -0
- package/node_modules/execa/types/arguments/encoding-option.d.ts +19 -0
- package/node_modules/execa/types/arguments/fd-options.d.ts +8 -0
- package/node_modules/execa/types/arguments/options.d.ts +400 -0
- package/node_modules/execa/types/arguments/specific.d.ts +52 -0
- package/node_modules/execa/types/convert.d.ts +58 -0
- package/node_modules/execa/types/ipc.d.ts +156 -0
- package/node_modules/execa/types/methods/command.d.ts +114 -0
- package/node_modules/execa/types/methods/main-async.d.ts +379 -0
- package/node_modules/execa/types/methods/main-sync.d.ts +59 -0
- package/node_modules/execa/types/methods/node.d.ts +62 -0
- package/node_modules/execa/types/methods/script.d.ts +115 -0
- package/node_modules/execa/types/methods/template.d.ts +18 -0
- package/node_modules/execa/types/pipe.d.ts +58 -0
- package/node_modules/execa/types/return/final-error.d.ts +51 -0
- package/node_modules/execa/types/return/ignore.d.ts +26 -0
- package/node_modules/execa/types/return/result-all.d.ts +30 -0
- package/node_modules/execa/types/return/result-ipc.d.ts +27 -0
- package/node_modules/execa/types/return/result-stdio.d.ts +17 -0
- package/node_modules/execa/types/return/result-stdout.d.ts +50 -0
- package/node_modules/execa/types/return/result.d.ts +203 -0
- package/node_modules/execa/types/stdio/array.d.ts +16 -0
- package/node_modules/execa/types/stdio/direction.d.ts +12 -0
- package/node_modules/execa/types/stdio/option.d.ts +40 -0
- package/node_modules/execa/types/stdio/type.d.ts +170 -0
- package/node_modules/execa/types/subprocess/all.d.ts +17 -0
- package/node_modules/execa/types/subprocess/stdio.d.ts +18 -0
- package/node_modules/execa/types/subprocess/stdout.d.ts +22 -0
- package/node_modules/execa/types/subprocess/subprocess.d.ts +117 -0
- package/node_modules/execa/types/transform/normalize.d.ts +57 -0
- package/node_modules/execa/types/transform/object-mode.d.ts +21 -0
- package/node_modules/execa/types/utils.d.ts +13 -0
- package/node_modules/execa/types/verbose.d.ts +98 -0
- package/node_modules/extend-shallow/LICENSE +21 -0
- package/node_modules/extend-shallow/README.md +61 -0
- package/node_modules/extend-shallow/index.js +33 -0
- package/node_modules/extend-shallow/package.json +56 -0
- package/node_modules/fast-string-truncated-width/dist/index.d.ts +4 -0
- package/node_modules/fast-string-truncated-width/dist/index.js +111 -0
- package/node_modules/fast-string-truncated-width/dist/types.d.ts +19 -0
- package/node_modules/fast-string-truncated-width/dist/types.js +2 -0
- package/node_modules/fast-string-truncated-width/dist/utils.d.ts +4 -0
- package/node_modules/fast-string-truncated-width/dist/utils.js +20 -0
- package/node_modules/fast-string-truncated-width/license +21 -0
- package/node_modules/fast-string-truncated-width/package.json +35 -0
- package/node_modules/fast-string-truncated-width/readme.md +59 -0
- package/node_modules/fast-string-width/dist/index.d.ts +4 -0
- package/node_modules/fast-string-width/dist/index.js +14 -0
- package/node_modules/fast-string-width/license +21 -0
- package/node_modules/fast-string-width/package.json +34 -0
- package/node_modules/fast-string-width/readme.md +42 -0
- package/node_modules/fast-wrap-ansi/LICENSE +23 -0
- package/node_modules/fast-wrap-ansi/README.md +26 -0
- package/node_modules/fast-wrap-ansi/lib/main.d.ts +6 -0
- package/node_modules/fast-wrap-ansi/lib/main.js +218 -0
- package/node_modules/fast-wrap-ansi/package.json +51 -0
- package/node_modules/figures/index.d.ts +279 -0
- package/node_modules/figures/index.js +292 -0
- package/node_modules/figures/license +9 -0
- package/node_modules/figures/package.json +49 -0
- package/node_modules/figures/readme.md +337 -0
- package/node_modules/get-stream/license +9 -0
- package/node_modules/get-stream/package.json +60 -0
- package/node_modules/get-stream/readme.md +303 -0
- package/node_modules/get-stream/source/array-buffer.js +84 -0
- package/node_modules/get-stream/source/array.js +32 -0
- package/node_modules/get-stream/source/buffer.js +19 -0
- package/node_modules/get-stream/source/contents.js +121 -0
- package/node_modules/get-stream/source/exports.js +5 -0
- package/node_modules/get-stream/source/index.d.ts +121 -0
- package/node_modules/get-stream/source/index.js +13 -0
- package/node_modules/get-stream/source/stream.js +65 -0
- package/node_modules/get-stream/source/string.js +41 -0
- package/node_modules/get-stream/source/utils.js +11 -0
- package/node_modules/gray-matter/LICENSE +21 -0
- package/node_modules/gray-matter/README.md +565 -0
- package/node_modules/gray-matter/gray-matter.d.ts +114 -0
- package/node_modules/gray-matter/index.js +228 -0
- package/node_modules/gray-matter/lib/defaults.js +18 -0
- package/node_modules/gray-matter/lib/engine.js +30 -0
- package/node_modules/gray-matter/lib/engines.js +54 -0
- package/node_modules/gray-matter/lib/excerpt.js +32 -0
- package/node_modules/gray-matter/lib/parse.js +13 -0
- package/node_modules/gray-matter/lib/stringify.js +56 -0
- package/node_modules/gray-matter/lib/to-file.js +43 -0
- package/node_modules/gray-matter/lib/utils.js +66 -0
- package/node_modules/gray-matter/package.json +127 -0
- package/node_modules/human-signals/LICENSE +201 -0
- package/node_modules/human-signals/README.md +171 -0
- package/node_modules/human-signals/build/src/core.js +273 -0
- package/node_modules/human-signals/build/src/main.d.ts +206 -0
- package/node_modules/human-signals/build/src/main.js +70 -0
- package/node_modules/human-signals/build/src/realtime.js +16 -0
- package/node_modules/human-signals/build/src/signals.js +34 -0
- package/node_modules/human-signals/package.json +66 -0
- package/node_modules/iconv-lite/LICENSE +21 -0
- package/node_modules/iconv-lite/README.md +138 -0
- package/node_modules/iconv-lite/encodings/dbcs-codec.js +532 -0
- package/node_modules/iconv-lite/encodings/dbcs-data.js +185 -0
- package/node_modules/iconv-lite/encodings/index.js +23 -0
- package/node_modules/iconv-lite/encodings/internal.js +218 -0
- package/node_modules/iconv-lite/encodings/sbcs-codec.js +75 -0
- package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
- package/node_modules/iconv-lite/encodings/sbcs-data.js +180 -0
- package/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
- package/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
- package/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
- package/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
- package/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
- package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
- package/node_modules/iconv-lite/encodings/tables/gbk-added.json +56 -0
- package/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
- package/node_modules/iconv-lite/encodings/utf16.js +187 -0
- package/node_modules/iconv-lite/encodings/utf32.js +314 -0
- package/node_modules/iconv-lite/encodings/utf7.js +283 -0
- package/node_modules/iconv-lite/lib/bom-handling.js +48 -0
- package/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
- package/node_modules/iconv-lite/lib/index.d.ts +129 -0
- package/node_modules/iconv-lite/lib/index.js +182 -0
- package/node_modules/iconv-lite/lib/streams.js +105 -0
- package/node_modules/iconv-lite/package.json +70 -0
- package/node_modules/iconv-lite/types/encodings.d.ts +425 -0
- package/node_modules/is-extendable/LICENSE +21 -0
- package/node_modules/is-extendable/README.md +72 -0
- package/node_modules/is-extendable/index.js +13 -0
- package/node_modules/is-extendable/package.json +51 -0
- package/node_modules/is-plain-obj/index.d.ts +35 -0
- package/node_modules/is-plain-obj/index.js +8 -0
- package/node_modules/is-plain-obj/license +9 -0
- package/node_modules/is-plain-obj/package.json +41 -0
- package/node_modules/is-plain-obj/readme.md +58 -0
- package/node_modules/is-stream/index.d.ts +90 -0
- package/node_modules/is-stream/index.js +37 -0
- package/node_modules/is-stream/license +9 -0
- package/node_modules/is-stream/package.json +48 -0
- package/node_modules/is-stream/readme.md +57 -0
- package/node_modules/is-unicode-supported/index.d.ts +12 -0
- package/node_modules/is-unicode-supported/index.js +21 -0
- package/node_modules/is-unicode-supported/license +9 -0
- package/node_modules/is-unicode-supported/package.json +47 -0
- package/node_modules/is-unicode-supported/readme.md +35 -0
- package/node_modules/isexe/.npmignore +2 -0
- package/node_modules/isexe/LICENSE +15 -0
- package/node_modules/isexe/README.md +51 -0
- package/node_modules/isexe/index.js +57 -0
- package/node_modules/isexe/mode.js +41 -0
- package/node_modules/isexe/package.json +31 -0
- package/node_modules/isexe/test/basic.js +221 -0
- package/node_modules/isexe/windows.js +42 -0
- package/node_modules/js-yaml/LICENSE +21 -0
- package/node_modules/js-yaml/README.md +302 -0
- package/node_modules/js-yaml/bin/js-yaml.js +132 -0
- package/node_modules/js-yaml/dist/js-yaml.js +4011 -0
- package/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
- package/node_modules/js-yaml/index.js +7 -0
- package/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
- package/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
- package/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
- package/node_modules/js-yaml/lib/js-yaml/loader.js +1666 -0
- package/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
- package/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
- package/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
- package/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
- package/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
- package/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
- package/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
- package/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
- package/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
- package/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
- package/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
- package/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
- package/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
- package/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
- package/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
- package/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
- package/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
- package/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
- package/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
- package/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
- package/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
- package/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
- package/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
- package/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
- package/node_modules/js-yaml/lib/js-yaml.js +39 -0
- package/node_modules/js-yaml/package.json +52 -0
- package/node_modules/kind-of/LICENSE +21 -0
- package/node_modules/kind-of/README.md +367 -0
- package/node_modules/kind-of/index.js +129 -0
- package/node_modules/kind-of/package.json +88 -0
- package/node_modules/mute-stream/LICENSE +15 -0
- package/node_modules/mute-stream/README.md +68 -0
- package/node_modules/mute-stream/lib/index.js +142 -0
- package/node_modules/mute-stream/package.json +54 -0
- package/node_modules/npm-run-path/index.d.ts +90 -0
- package/node_modules/npm-run-path/index.js +55 -0
- package/node_modules/npm-run-path/license +9 -0
- package/node_modules/npm-run-path/node_modules/path-key/index.d.ts +31 -0
- package/node_modules/npm-run-path/node_modules/path-key/index.js +12 -0
- package/node_modules/npm-run-path/node_modules/path-key/license +9 -0
- package/node_modules/npm-run-path/node_modules/path-key/package.json +41 -0
- package/node_modules/npm-run-path/node_modules/path-key/readme.md +57 -0
- package/node_modules/npm-run-path/package.json +52 -0
- package/node_modules/npm-run-path/readme.md +104 -0
- package/node_modules/parse-ms/index.d.ts +30 -0
- package/node_modules/parse-ms/index.js +45 -0
- package/node_modules/parse-ms/license +9 -0
- package/node_modules/parse-ms/package.json +47 -0
- package/node_modules/parse-ms/readme.md +46 -0
- package/node_modules/path-key/index.d.ts +40 -0
- package/node_modules/path-key/index.js +16 -0
- package/node_modules/path-key/license +9 -0
- package/node_modules/path-key/package.json +39 -0
- package/node_modules/path-key/readme.md +61 -0
- package/node_modules/picomatch/LICENSE +21 -0
- package/node_modules/picomatch/README.md +743 -0
- package/node_modules/picomatch/index.js +17 -0
- package/node_modules/picomatch/lib/constants.js +184 -0
- package/node_modules/picomatch/lib/parse.js +1416 -0
- package/node_modules/picomatch/lib/picomatch.js +361 -0
- package/node_modules/picomatch/lib/scan.js +391 -0
- package/node_modules/picomatch/lib/utils.js +72 -0
- package/node_modules/picomatch/package.json +83 -0
- package/node_modules/picomatch/posix.js +3 -0
- package/node_modules/pretty-ms/index.d.ts +157 -0
- package/node_modules/pretty-ms/index.js +149 -0
- package/node_modules/pretty-ms/license +9 -0
- package/node_modules/pretty-ms/package.json +55 -0
- package/node_modules/pretty-ms/readme.md +179 -0
- package/node_modules/safer-buffer/LICENSE +21 -0
- package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/node_modules/safer-buffer/Readme.md +156 -0
- package/node_modules/safer-buffer/dangerous.js +58 -0
- package/node_modules/safer-buffer/package.json +34 -0
- package/node_modules/safer-buffer/safer.js +77 -0
- package/node_modules/safer-buffer/tests.js +406 -0
- package/node_modules/section-matter/LICENSE +21 -0
- package/node_modules/section-matter/README.md +236 -0
- package/node_modules/section-matter/index.js +136 -0
- package/node_modules/section-matter/package.json +55 -0
- package/node_modules/shebang-command/index.js +19 -0
- package/node_modules/shebang-command/license +9 -0
- package/node_modules/shebang-command/package.json +34 -0
- package/node_modules/shebang-command/readme.md +34 -0
- package/node_modules/shebang-regex/index.d.ts +22 -0
- package/node_modules/shebang-regex/index.js +2 -0
- package/node_modules/shebang-regex/license +9 -0
- package/node_modules/shebang-regex/package.json +35 -0
- package/node_modules/shebang-regex/readme.md +33 -0
- package/node_modules/signal-exit/LICENSE.txt +16 -0
- package/node_modules/signal-exit/README.md +74 -0
- package/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
- package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
- package/node_modules/signal-exit/dist/cjs/browser.js +10 -0
- package/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
- package/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
- package/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
- package/node_modules/signal-exit/dist/cjs/index.js +279 -0
- package/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
- package/node_modules/signal-exit/dist/cjs/package.json +3 -0
- package/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
- package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
- package/node_modules/signal-exit/dist/cjs/signals.js +42 -0
- package/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
- package/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
- package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
- package/node_modules/signal-exit/dist/mjs/browser.js +4 -0
- package/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
- package/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
- package/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
- package/node_modules/signal-exit/dist/mjs/index.js +275 -0
- package/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
- package/node_modules/signal-exit/dist/mjs/package.json +3 -0
- package/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
- package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
- package/node_modules/signal-exit/dist/mjs/signals.js +39 -0
- package/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
- package/node_modules/signal-exit/package.json +106 -0
- package/node_modules/sprintf-js/.npmignore +1 -0
- package/node_modules/sprintf-js/LICENSE +24 -0
- package/node_modules/sprintf-js/README.md +88 -0
- package/node_modules/sprintf-js/bower.json +14 -0
- package/node_modules/sprintf-js/demo/angular.html +20 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
- package/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
- package/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
- package/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
- package/node_modules/sprintf-js/gruntfile.js +36 -0
- package/node_modules/sprintf-js/package.json +22 -0
- package/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
- package/node_modules/sprintf-js/src/sprintf.js +208 -0
- package/node_modules/sprintf-js/test/test.js +82 -0
- package/node_modules/strip-bom-string/LICENSE +21 -0
- package/node_modules/strip-bom-string/README.md +66 -0
- package/node_modules/strip-bom-string/index.js +15 -0
- package/node_modules/strip-bom-string/package.json +60 -0
- package/node_modules/strip-final-newline/index.d.ts +18 -0
- package/node_modules/strip-final-newline/index.js +26 -0
- package/node_modules/strip-final-newline/license +9 -0
- package/node_modules/strip-final-newline/package.json +49 -0
- package/node_modules/strip-final-newline/readme.md +34 -0
- package/node_modules/unicorn-magic/default.d.ts +13 -0
- package/node_modules/unicorn-magic/default.js +14 -0
- package/node_modules/unicorn-magic/license +9 -0
- package/node_modules/unicorn-magic/node.d.ts +125 -0
- package/node_modules/unicorn-magic/node.js +49 -0
- package/node_modules/unicorn-magic/package.json +62 -0
- package/node_modules/unicorn-magic/readme.md +25 -0
- package/node_modules/which/LICENSE +15 -0
- package/node_modules/which/README.md +54 -0
- package/node_modules/which/bin/node-which +52 -0
- package/node_modules/which/package.json +43 -0
- package/node_modules/which/which.js +125 -0
- package/node_modules/yaml/LICENSE +13 -0
- package/node_modules/yaml/README.md +172 -0
- package/node_modules/yaml/bin.mjs +11 -0
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
- package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
- package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/node_modules/yaml/browser/dist/errors.js +57 -0
- package/node_modules/yaml/browser/dist/index.js +17 -0
- package/node_modules/yaml/browser/dist/log.js +11 -0
- package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
- package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
- package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
- package/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/node_modules/yaml/browser/dist/util.js +11 -0
- package/node_modules/yaml/browser/dist/visit.js +233 -0
- package/node_modules/yaml/browser/index.js +5 -0
- package/node_modules/yaml/browser/package.json +3 -0
- package/node_modules/yaml/dist/cli.d.ts +8 -0
- package/node_modules/yaml/dist/cli.mjs +201 -0
- package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/node_modules/yaml/dist/compose/compose-node.js +112 -0
- package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/node_modules/yaml/dist/compose/composer.js +224 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
- package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/node_modules/yaml/dist/doc/Document.js +337 -0
- package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/node_modules/yaml/dist/doc/directives.js +178 -0
- package/node_modules/yaml/dist/errors.d.ts +21 -0
- package/node_modules/yaml/dist/errors.js +62 -0
- package/node_modules/yaml/dist/index.d.ts +25 -0
- package/node_modules/yaml/dist/index.js +50 -0
- package/node_modules/yaml/dist/log.d.ts +3 -0
- package/node_modules/yaml/dist/log.js +19 -0
- package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/Alias.js +118 -0
- package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
- package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/node_modules/yaml/dist/options.d.ts +350 -0
- package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/node_modules/yaml/dist/parse/cst.js +112 -0
- package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/node_modules/yaml/dist/parse/lexer.js +723 -0
- package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/node_modules/yaml/dist/parse/parser.js +980 -0
- package/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/node_modules/yaml/dist/public-api.js +107 -0
- package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/node_modules/yaml/dist/schema/tags.js +99 -0
- package/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/node_modules/yaml/dist/test-events.js +134 -0
- package/node_modules/yaml/dist/util.d.ts +16 -0
- package/node_modules/yaml/dist/util.js +28 -0
- package/node_modules/yaml/dist/visit.d.ts +102 -0
- package/node_modules/yaml/dist/visit.js +236 -0
- package/node_modules/yaml/package.json +97 -0
- package/node_modules/yaml/util.js +2 -0
- package/node_modules/yoctocolors/base.d.ts +47 -0
- package/node_modules/yoctocolors/base.js +94 -0
- package/node_modules/yoctocolors/index.d.ts +2 -0
- package/node_modules/yoctocolors/index.js +2 -0
- package/node_modules/yoctocolors/license +9 -0
- package/node_modules/yoctocolors/package.json +69 -0
- package/node_modules/yoctocolors/readme.md +138 -0
- package/node_modules/zod/LICENSE +21 -0
- package/node_modules/zod/README.md +191 -0
- package/node_modules/zod/index.cjs +33 -0
- package/node_modules/zod/index.d.cts +4 -0
- package/node_modules/zod/index.d.ts +4 -0
- package/node_modules/zod/index.js +4 -0
- package/node_modules/zod/locales/index.cjs +17 -0
- package/node_modules/zod/locales/index.d.cts +1 -0
- package/node_modules/zod/locales/index.d.ts +1 -0
- package/node_modules/zod/locales/index.js +1 -0
- package/node_modules/zod/locales/package.json +7 -0
- package/node_modules/zod/mini/index.cjs +32 -0
- package/node_modules/zod/mini/index.d.cts +3 -0
- package/node_modules/zod/mini/index.d.ts +3 -0
- package/node_modules/zod/mini/index.js +3 -0
- package/node_modules/zod/mini/package.json +7 -0
- package/node_modules/zod/package.json +135 -0
- package/node_modules/zod/src/index.ts +4 -0
- package/node_modules/zod/src/locales/index.ts +1 -0
- package/node_modules/zod/src/mini/index.ts +3 -0
- package/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/node_modules/zod/src/v3/errors.ts +13 -0
- package/node_modules/zod/src/v3/external.ts +6 -0
- package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/node_modules/zod/src/v3/index.ts +4 -0
- package/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
- package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
- package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
- package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/node_modules/zod/src/v3/types.ts +5138 -0
- package/node_modules/zod/src/v4/classic/checks.ts +32 -0
- package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/node_modules/zod/src/v4/classic/compat.ts +70 -0
- package/node_modules/zod/src/v4/classic/errors.ts +82 -0
- package/node_modules/zod/src/v4/classic/external.ts +52 -0
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
- package/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/node_modules/zod/src/v4/classic/parse.ts +82 -0
- package/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
- package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
- package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
- package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
- package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
- package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
- package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
- package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
- package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
- package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
- package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
- package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
- package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
- package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
- package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
- package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
- package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
- package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
- package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
- package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
- package/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
- package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/node_modules/zod/src/v4/core/api.ts +1823 -0
- package/node_modules/zod/src/v4/core/checks.ts +1293 -0
- package/node_modules/zod/src/v4/core/config.ts +15 -0
- package/node_modules/zod/src/v4/core/core.ts +153 -0
- package/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/node_modules/zod/src/v4/core/errors.ts +455 -0
- package/node_modules/zod/src/v4/core/index.ts +16 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
- package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
- package/node_modules/zod/src/v4/core/parse.ts +195 -0
- package/node_modules/zod/src/v4/core/regexes.ts +190 -0
- package/node_modules/zod/src/v4/core/registries.ts +105 -0
- package/node_modules/zod/src/v4/core/schemas.ts +4730 -0
- package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
- package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
- package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
- package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
- package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
- package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
- package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
- package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
- package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
- package/node_modules/zod/src/v4/core/util.ts +983 -0
- package/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/node_modules/zod/src/v4/index.ts +4 -0
- package/node_modules/zod/src/v4/locales/ar.ts +115 -0
- package/node_modules/zod/src/v4/locales/az.ts +111 -0
- package/node_modules/zod/src/v4/locales/be.ts +176 -0
- package/node_modules/zod/src/v4/locales/bg.ts +128 -0
- package/node_modules/zod/src/v4/locales/ca.ts +116 -0
- package/node_modules/zod/src/v4/locales/cs.ts +118 -0
- package/node_modules/zod/src/v4/locales/da.ts +123 -0
- package/node_modules/zod/src/v4/locales/de.ts +116 -0
- package/node_modules/zod/src/v4/locales/el.ts +121 -0
- package/node_modules/zod/src/v4/locales/en.ts +123 -0
- package/node_modules/zod/src/v4/locales/eo.ts +118 -0
- package/node_modules/zod/src/v4/locales/es.ts +141 -0
- package/node_modules/zod/src/v4/locales/fa.ts +126 -0
- package/node_modules/zod/src/v4/locales/fi.ts +121 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
- package/node_modules/zod/src/v4/locales/fr.ts +132 -0
- package/node_modules/zod/src/v4/locales/he.ts +246 -0
- package/node_modules/zod/src/v4/locales/hr.ts +131 -0
- package/node_modules/zod/src/v4/locales/hu.ts +117 -0
- package/node_modules/zod/src/v4/locales/hy.ts +164 -0
- package/node_modules/zod/src/v4/locales/id.ts +115 -0
- package/node_modules/zod/src/v4/locales/index.ts +52 -0
- package/node_modules/zod/src/v4/locales/is.ts +119 -0
- package/node_modules/zod/src/v4/locales/it.ts +116 -0
- package/node_modules/zod/src/v4/locales/ja.ts +114 -0
- package/node_modules/zod/src/v4/locales/ka.ts +123 -0
- package/node_modules/zod/src/v4/locales/kh.ts +7 -0
- package/node_modules/zod/src/v4/locales/km.ts +119 -0
- package/node_modules/zod/src/v4/locales/ko.ts +121 -0
- package/node_modules/zod/src/v4/locales/lt.ts +239 -0
- package/node_modules/zod/src/v4/locales/mk.ts +118 -0
- package/node_modules/zod/src/v4/locales/ms.ts +115 -0
- package/node_modules/zod/src/v4/locales/nl.ts +121 -0
- package/node_modules/zod/src/v4/locales/no.ts +116 -0
- package/node_modules/zod/src/v4/locales/ota.ts +117 -0
- package/node_modules/zod/src/v4/locales/pl.ts +118 -0
- package/node_modules/zod/src/v4/locales/ps.ts +126 -0
- package/node_modules/zod/src/v4/locales/pt.ts +116 -0
- package/node_modules/zod/src/v4/locales/ro.ts +129 -0
- package/node_modules/zod/src/v4/locales/ru.ts +176 -0
- package/node_modules/zod/src/v4/locales/sl.ts +118 -0
- package/node_modules/zod/src/v4/locales/sv.ts +119 -0
- package/node_modules/zod/src/v4/locales/ta.ts +118 -0
- package/node_modules/zod/src/v4/locales/th.ts +119 -0
- package/node_modules/zod/src/v4/locales/tr.ts +111 -0
- package/node_modules/zod/src/v4/locales/ua.ts +7 -0
- package/node_modules/zod/src/v4/locales/uk.ts +117 -0
- package/node_modules/zod/src/v4/locales/ur.ts +119 -0
- package/node_modules/zod/src/v4/locales/uz.ts +117 -0
- package/node_modules/zod/src/v4/locales/vi.ts +117 -0
- package/node_modules/zod/src/v4/locales/yo.ts +124 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
- package/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
- package/node_modules/zod/src/v4/mini/external.ts +41 -0
- package/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/node_modules/zod/src/v4/mini/iso.ts +66 -0
- package/node_modules/zod/src/v4/mini/parse.ts +14 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
- package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
- package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
- package/node_modules/zod/src/v4-mini/index.ts +3 -0
- package/node_modules/zod/v3/ZodError.cjs +138 -0
- package/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/node_modules/zod/v3/ZodError.js +133 -0
- package/node_modules/zod/v3/errors.cjs +17 -0
- package/node_modules/zod/v3/errors.d.cts +5 -0
- package/node_modules/zod/v3/errors.d.ts +5 -0
- package/node_modules/zod/v3/errors.js +9 -0
- package/node_modules/zod/v3/external.cjs +22 -0
- package/node_modules/zod/v3/external.d.cts +6 -0
- package/node_modules/zod/v3/external.d.ts +6 -0
- package/node_modules/zod/v3/external.js +6 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/node_modules/zod/v3/helpers/util.js +133 -0
- package/node_modules/zod/v3/index.cjs +33 -0
- package/node_modules/zod/v3/index.d.cts +4 -0
- package/node_modules/zod/v3/index.d.ts +4 -0
- package/node_modules/zod/v3/index.js +4 -0
- package/node_modules/zod/v3/locales/en.cjs +112 -0
- package/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/node_modules/zod/v3/locales/en.js +109 -0
- package/node_modules/zod/v3/package.json +7 -0
- package/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/node_modules/zod/v3/standard-schema.js +1 -0
- package/node_modules/zod/v3/types.cjs +3777 -0
- package/node_modules/zod/v3/types.d.cts +1034 -0
- package/node_modules/zod/v3/types.d.ts +1034 -0
- package/node_modules/zod/v3/types.js +3695 -0
- package/node_modules/zod/v4/classic/checks.cjs +33 -0
- package/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/node_modules/zod/v4/classic/checks.js +1 -0
- package/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/node_modules/zod/v4/classic/coerce.js +17 -0
- package/node_modules/zod/v4/classic/compat.cjs +61 -0
- package/node_modules/zod/v4/classic/compat.d.cts +50 -0
- package/node_modules/zod/v4/classic/compat.d.ts +50 -0
- package/node_modules/zod/v4/classic/compat.js +31 -0
- package/node_modules/zod/v4/classic/errors.cjs +74 -0
- package/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/node_modules/zod/v4/classic/errors.js +48 -0
- package/node_modules/zod/v4/classic/external.cjs +73 -0
- package/node_modules/zod/v4/classic/external.d.cts +16 -0
- package/node_modules/zod/v4/classic/external.d.ts +16 -0
- package/node_modules/zod/v4/classic/external.js +20 -0
- package/node_modules/zod/v4/classic/from-json-schema.cjs +625 -0
- package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
- package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
- package/node_modules/zod/v4/classic/from-json-schema.js +599 -0
- package/node_modules/zod/v4/classic/index.cjs +33 -0
- package/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/node_modules/zod/v4/classic/index.js +4 -0
- package/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/node_modules/zod/v4/classic/iso.js +30 -0
- package/node_modules/zod/v4/classic/package.json +7 -0
- package/node_modules/zod/v4/classic/parse.cjs +41 -0
- package/node_modules/zod/v4/classic/parse.d.cts +31 -0
- package/node_modules/zod/v4/classic/parse.d.ts +31 -0
- package/node_modules/zod/v4/classic/parse.js +15 -0
- package/node_modules/zod/v4/classic/schemas.cjs +1511 -0
- package/node_modules/zod/v4/classic/schemas.d.cts +767 -0
- package/node_modules/zod/v4/classic/schemas.d.ts +767 -0
- package/node_modules/zod/v4/classic/schemas.js +1395 -0
- package/node_modules/zod/v4/core/api.cjs +1227 -0
- package/node_modules/zod/v4/core/api.d.cts +325 -0
- package/node_modules/zod/v4/core/api.d.ts +325 -0
- package/node_modules/zod/v4/core/api.js +1087 -0
- package/node_modules/zod/v4/core/checks.cjs +601 -0
- package/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/node_modules/zod/v4/core/checks.js +575 -0
- package/node_modules/zod/v4/core/core.cjs +85 -0
- package/node_modules/zod/v4/core/core.d.cts +70 -0
- package/node_modules/zod/v4/core/core.d.ts +70 -0
- package/node_modules/zod/v4/core/core.js +78 -0
- package/node_modules/zod/v4/core/doc.cjs +39 -0
- package/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/node_modules/zod/v4/core/doc.js +35 -0
- package/node_modules/zod/v4/core/errors.cjs +216 -0
- package/node_modules/zod/v4/core/errors.d.cts +221 -0
- package/node_modules/zod/v4/core/errors.d.ts +221 -0
- package/node_modules/zod/v4/core/errors.js +185 -0
- package/node_modules/zod/v4/core/index.cjs +47 -0
- package/node_modules/zod/v4/core/index.d.cts +16 -0
- package/node_modules/zod/v4/core/index.d.ts +16 -0
- package/node_modules/zod/v4/core/index.js +16 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
- package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +644 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
- package/node_modules/zod/v4/core/json-schema-processors.js +601 -0
- package/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
- package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
- package/node_modules/zod/v4/core/json-schema.js +1 -0
- package/node_modules/zod/v4/core/package.json +7 -0
- package/node_modules/zod/v4/core/parse.cjs +131 -0
- package/node_modules/zod/v4/core/parse.d.cts +49 -0
- package/node_modules/zod/v4/core/parse.d.ts +49 -0
- package/node_modules/zod/v4/core/parse.js +93 -0
- package/node_modules/zod/v4/core/regexes.cjs +172 -0
- package/node_modules/zod/v4/core/regexes.d.cts +85 -0
- package/node_modules/zod/v4/core/regexes.d.ts +85 -0
- package/node_modules/zod/v4/core/regexes.js +139 -0
- package/node_modules/zod/v4/core/registries.cjs +56 -0
- package/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/node_modules/zod/v4/core/registries.js +51 -0
- package/node_modules/zod/v4/core/schemas.cjs +2270 -0
- package/node_modules/zod/v4/core/schemas.d.cts +1184 -0
- package/node_modules/zod/v4/core/schemas.d.ts +1184 -0
- package/node_modules/zod/v4/core/schemas.js +2239 -0
- package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
- package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
- package/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +457 -0
- package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
- package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
- package/node_modules/zod/v4/core/to-json-schema.js +448 -0
- package/node_modules/zod/v4/core/util.cjs +734 -0
- package/node_modules/zod/v4/core/util.d.cts +200 -0
- package/node_modules/zod/v4/core/util.d.ts +200 -0
- package/node_modules/zod/v4/core/util.js +674 -0
- package/node_modules/zod/v4/core/versions.cjs +8 -0
- package/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/node_modules/zod/v4/core/versions.js +5 -0
- package/node_modules/zod/v4/index.cjs +22 -0
- package/node_modules/zod/v4/index.d.cts +3 -0
- package/node_modules/zod/v4/index.d.ts +3 -0
- package/node_modules/zod/v4/index.js +3 -0
- package/node_modules/zod/v4/locales/ar.cjs +133 -0
- package/node_modules/zod/v4/locales/ar.d.cts +5 -0
- package/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/node_modules/zod/v4/locales/ar.js +106 -0
- package/node_modules/zod/v4/locales/az.cjs +132 -0
- package/node_modules/zod/v4/locales/az.d.cts +5 -0
- package/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/node_modules/zod/v4/locales/az.js +105 -0
- package/node_modules/zod/v4/locales/be.cjs +183 -0
- package/node_modules/zod/v4/locales/be.d.cts +5 -0
- package/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/node_modules/zod/v4/locales/be.js +156 -0
- package/node_modules/zod/v4/locales/bg.cjs +147 -0
- package/node_modules/zod/v4/locales/bg.d.cts +5 -0
- package/node_modules/zod/v4/locales/bg.d.ts +4 -0
- package/node_modules/zod/v4/locales/bg.js +120 -0
- package/node_modules/zod/v4/locales/ca.cjs +134 -0
- package/node_modules/zod/v4/locales/ca.d.cts +5 -0
- package/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/node_modules/zod/v4/locales/ca.js +107 -0
- package/node_modules/zod/v4/locales/cs.cjs +138 -0
- package/node_modules/zod/v4/locales/cs.d.cts +5 -0
- package/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/node_modules/zod/v4/locales/cs.js +111 -0
- package/node_modules/zod/v4/locales/da.cjs +142 -0
- package/node_modules/zod/v4/locales/da.d.cts +5 -0
- package/node_modules/zod/v4/locales/da.d.ts +4 -0
- package/node_modules/zod/v4/locales/da.js +115 -0
- package/node_modules/zod/v4/locales/de.cjs +135 -0
- package/node_modules/zod/v4/locales/de.d.cts +5 -0
- package/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/node_modules/zod/v4/locales/de.js +108 -0
- package/node_modules/zod/v4/locales/el.cjs +136 -0
- package/node_modules/zod/v4/locales/el.d.cts +5 -0
- package/node_modules/zod/v4/locales/el.d.ts +4 -0
- package/node_modules/zod/v4/locales/el.js +109 -0
- package/node_modules/zod/v4/locales/en.cjs +140 -0
- package/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/node_modules/zod/v4/locales/en.d.ts +4 -0
- package/node_modules/zod/v4/locales/en.js +113 -0
- package/node_modules/zod/v4/locales/eo.cjs +136 -0
- package/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/node_modules/zod/v4/locales/eo.d.ts +4 -0
- package/node_modules/zod/v4/locales/eo.js +109 -0
- package/node_modules/zod/v4/locales/es.cjs +159 -0
- package/node_modules/zod/v4/locales/es.d.cts +5 -0
- package/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/node_modules/zod/v4/locales/es.js +132 -0
- package/node_modules/zod/v4/locales/fa.cjs +141 -0
- package/node_modules/zod/v4/locales/fa.d.cts +5 -0
- package/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/node_modules/zod/v4/locales/fa.js +114 -0
- package/node_modules/zod/v4/locales/fi.cjs +139 -0
- package/node_modules/zod/v4/locales/fi.d.cts +5 -0
- package/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/node_modules/zod/v4/locales/fi.js +112 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
- package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
- package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr-CA.js +107 -0
- package/node_modules/zod/v4/locales/fr.cjs +152 -0
- package/node_modules/zod/v4/locales/fr.d.cts +5 -0
- package/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr.js +125 -0
- package/node_modules/zod/v4/locales/he.cjs +241 -0
- package/node_modules/zod/v4/locales/he.d.cts +5 -0
- package/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/node_modules/zod/v4/locales/he.js +214 -0
- package/node_modules/zod/v4/locales/hr.cjs +149 -0
- package/node_modules/zod/v4/locales/hr.d.cts +5 -0
- package/node_modules/zod/v4/locales/hr.d.ts +4 -0
- package/node_modules/zod/v4/locales/hr.js +122 -0
- package/node_modules/zod/v4/locales/hu.cjs +135 -0
- package/node_modules/zod/v4/locales/hu.d.cts +5 -0
- package/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/node_modules/zod/v4/locales/hu.js +108 -0
- package/node_modules/zod/v4/locales/hy.cjs +174 -0
- package/node_modules/zod/v4/locales/hy.d.cts +5 -0
- package/node_modules/zod/v4/locales/hy.d.ts +4 -0
- package/node_modules/zod/v4/locales/hy.js +147 -0
- package/node_modules/zod/v4/locales/id.cjs +133 -0
- package/node_modules/zod/v4/locales/id.d.cts +5 -0
- package/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/node_modules/zod/v4/locales/id.js +106 -0
- package/node_modules/zod/v4/locales/index.cjs +111 -0
- package/node_modules/zod/v4/locales/index.d.cts +52 -0
- package/node_modules/zod/v4/locales/index.d.ts +52 -0
- package/node_modules/zod/v4/locales/index.js +52 -0
- package/node_modules/zod/v4/locales/is.cjs +136 -0
- package/node_modules/zod/v4/locales/is.d.cts +5 -0
- package/node_modules/zod/v4/locales/is.d.ts +4 -0
- package/node_modules/zod/v4/locales/is.js +109 -0
- package/node_modules/zod/v4/locales/it.cjs +135 -0
- package/node_modules/zod/v4/locales/it.d.cts +5 -0
- package/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/node_modules/zod/v4/locales/it.js +108 -0
- package/node_modules/zod/v4/locales/ja.cjs +134 -0
- package/node_modules/zod/v4/locales/ja.d.cts +5 -0
- package/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/node_modules/zod/v4/locales/ja.js +107 -0
- package/node_modules/zod/v4/locales/ka.cjs +139 -0
- package/node_modules/zod/v4/locales/ka.d.cts +5 -0
- package/node_modules/zod/v4/locales/ka.d.ts +4 -0
- package/node_modules/zod/v4/locales/ka.js +112 -0
- package/node_modules/zod/v4/locales/kh.cjs +12 -0
- package/node_modules/zod/v4/locales/kh.d.cts +5 -0
- package/node_modules/zod/v4/locales/kh.d.ts +5 -0
- package/node_modules/zod/v4/locales/kh.js +5 -0
- package/node_modules/zod/v4/locales/km.cjs +137 -0
- package/node_modules/zod/v4/locales/km.d.cts +5 -0
- package/node_modules/zod/v4/locales/km.d.ts +4 -0
- package/node_modules/zod/v4/locales/km.js +110 -0
- package/node_modules/zod/v4/locales/ko.cjs +138 -0
- package/node_modules/zod/v4/locales/ko.d.cts +5 -0
- package/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/node_modules/zod/v4/locales/ko.js +111 -0
- package/node_modules/zod/v4/locales/lt.cjs +230 -0
- package/node_modules/zod/v4/locales/lt.d.cts +5 -0
- package/node_modules/zod/v4/locales/lt.d.ts +4 -0
- package/node_modules/zod/v4/locales/lt.js +203 -0
- package/node_modules/zod/v4/locales/mk.cjs +136 -0
- package/node_modules/zod/v4/locales/mk.d.cts +5 -0
- package/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/node_modules/zod/v4/locales/mk.js +109 -0
- package/node_modules/zod/v4/locales/ms.cjs +134 -0
- package/node_modules/zod/v4/locales/ms.d.cts +5 -0
- package/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/node_modules/zod/v4/locales/ms.js +107 -0
- package/node_modules/zod/v4/locales/nl.cjs +137 -0
- package/node_modules/zod/v4/locales/nl.d.cts +5 -0
- package/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/node_modules/zod/v4/locales/nl.js +110 -0
- package/node_modules/zod/v4/locales/no.cjs +135 -0
- package/node_modules/zod/v4/locales/no.d.cts +5 -0
- package/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/node_modules/zod/v4/locales/no.js +108 -0
- package/node_modules/zod/v4/locales/ota.cjs +136 -0
- package/node_modules/zod/v4/locales/ota.d.cts +5 -0
- package/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/node_modules/zod/v4/locales/ota.js +109 -0
- package/node_modules/zod/v4/locales/package.json +7 -0
- package/node_modules/zod/v4/locales/pl.cjs +136 -0
- package/node_modules/zod/v4/locales/pl.d.cts +5 -0
- package/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/node_modules/zod/v4/locales/pl.js +109 -0
- package/node_modules/zod/v4/locales/ps.cjs +141 -0
- package/node_modules/zod/v4/locales/ps.d.cts +5 -0
- package/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/node_modules/zod/v4/locales/ps.js +114 -0
- package/node_modules/zod/v4/locales/pt.cjs +135 -0
- package/node_modules/zod/v4/locales/pt.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt.js +108 -0
- package/node_modules/zod/v4/locales/ro.cjs +146 -0
- package/node_modules/zod/v4/locales/ro.d.cts +5 -0
- package/node_modules/zod/v4/locales/ro.d.ts +4 -0
- package/node_modules/zod/v4/locales/ro.js +119 -0
- package/node_modules/zod/v4/locales/ru.cjs +183 -0
- package/node_modules/zod/v4/locales/ru.d.cts +5 -0
- package/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/node_modules/zod/v4/locales/ru.js +156 -0
- package/node_modules/zod/v4/locales/sl.cjs +136 -0
- package/node_modules/zod/v4/locales/sl.d.cts +5 -0
- package/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/node_modules/zod/v4/locales/sl.js +109 -0
- package/node_modules/zod/v4/locales/sv.cjs +137 -0
- package/node_modules/zod/v4/locales/sv.d.cts +5 -0
- package/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/node_modules/zod/v4/locales/sv.js +110 -0
- package/node_modules/zod/v4/locales/ta.cjs +137 -0
- package/node_modules/zod/v4/locales/ta.d.cts +5 -0
- package/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/node_modules/zod/v4/locales/ta.js +110 -0
- package/node_modules/zod/v4/locales/th.cjs +137 -0
- package/node_modules/zod/v4/locales/th.d.cts +5 -0
- package/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/node_modules/zod/v4/locales/th.js +110 -0
- package/node_modules/zod/v4/locales/tr.cjs +132 -0
- package/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/node_modules/zod/v4/locales/tr.d.ts +4 -0
- package/node_modules/zod/v4/locales/tr.js +105 -0
- package/node_modules/zod/v4/locales/ua.cjs +12 -0
- package/node_modules/zod/v4/locales/ua.d.cts +5 -0
- package/node_modules/zod/v4/locales/ua.d.ts +5 -0
- package/node_modules/zod/v4/locales/ua.js +5 -0
- package/node_modules/zod/v4/locales/uk.cjs +135 -0
- package/node_modules/zod/v4/locales/uk.d.cts +5 -0
- package/node_modules/zod/v4/locales/uk.d.ts +4 -0
- package/node_modules/zod/v4/locales/uk.js +108 -0
- package/node_modules/zod/v4/locales/ur.cjs +137 -0
- package/node_modules/zod/v4/locales/ur.d.cts +5 -0
- package/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/node_modules/zod/v4/locales/ur.js +110 -0
- package/node_modules/zod/v4/locales/uz.cjs +137 -0
- package/node_modules/zod/v4/locales/uz.d.cts +5 -0
- package/node_modules/zod/v4/locales/uz.d.ts +4 -0
- package/node_modules/zod/v4/locales/uz.js +110 -0
- package/node_modules/zod/v4/locales/vi.cjs +135 -0
- package/node_modules/zod/v4/locales/vi.d.cts +5 -0
- package/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/node_modules/zod/v4/locales/vi.js +108 -0
- package/node_modules/zod/v4/locales/yo.cjs +134 -0
- package/node_modules/zod/v4/locales/yo.d.cts +5 -0
- package/node_modules/zod/v4/locales/yo.d.ts +4 -0
- package/node_modules/zod/v4/locales/yo.js +107 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
- package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
- package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-CN.js +109 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
- package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
- package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-TW.js +107 -0
- package/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/node_modules/zod/v4/mini/checks.js +1 -0
- package/node_modules/zod/v4/mini/coerce.cjs +52 -0
- package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/node_modules/zod/v4/mini/coerce.js +22 -0
- package/node_modules/zod/v4/mini/external.cjs +63 -0
- package/node_modules/zod/v4/mini/external.d.cts +13 -0
- package/node_modules/zod/v4/mini/external.d.ts +13 -0
- package/node_modules/zod/v4/mini/external.js +14 -0
- package/node_modules/zod/v4/mini/index.cjs +32 -0
- package/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/node_modules/zod/v4/mini/index.js +3 -0
- package/node_modules/zod/v4/mini/iso.cjs +64 -0
- package/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/node_modules/zod/v4/mini/iso.js +34 -0
- package/node_modules/zod/v4/mini/package.json +7 -0
- package/node_modules/zod/v4/mini/parse.cjs +16 -0
- package/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/node_modules/zod/v4/mini/parse.js +1 -0
- package/node_modules/zod/v4/mini/schemas.cjs +1083 -0
- package/node_modules/zod/v4/mini/schemas.d.cts +445 -0
- package/node_modules/zod/v4/mini/schemas.d.ts +445 -0
- package/node_modules/zod/v4/mini/schemas.js +961 -0
- package/node_modules/zod/v4/package.json +7 -0
- package/node_modules/zod/v4-mini/index.cjs +32 -0
- package/node_modules/zod/v4-mini/index.d.cts +3 -0
- package/node_modules/zod/v4-mini/index.d.ts +3 -0
- package/node_modules/zod/v4-mini/index.js +3 -0
- package/node_modules/zod/v4-mini/package.json +7 -0
- package/package.json +57 -0
|
@@ -0,0 +1,1164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `start` — turn one agent-written plan into a real, framed change.
|
|
3
|
+
*
|
|
4
|
+
* The owner-facing model is one line:
|
|
5
|
+
*
|
|
6
|
+
* describe need to your agent → it plans it → owner imports and confirms →
|
|
7
|
+
* Builder → fresh reviewer → deterministic gate
|
|
8
|
+
*
|
|
9
|
+
* Prismatica does not run the planning agent. It exports a context
|
|
10
|
+
* (`prismatica context discover`'s sibling, `prismatica context start`), the
|
|
11
|
+
* owner's own agent answers it, and `--import` brings that answer back through
|
|
12
|
+
* strict local validation. There is no provider adapter, no capability probe,
|
|
13
|
+
* no structured-output dialect and no second, looser route into the records —
|
|
14
|
+
* there is one document and one validation of it.
|
|
15
|
+
*
|
|
16
|
+
* `start` takes NO positional request. The need is described and clarified in
|
|
17
|
+
* the conversation the owner is already having, and the wording they settle on
|
|
18
|
+
* comes back inside the plan as `request`. Retyping it on the command line
|
|
19
|
+
* would record a second description that can disagree with the one they
|
|
20
|
+
* approved — the same defect that removed the agent-supplied issue text.
|
|
21
|
+
*
|
|
22
|
+
* Four properties matter more than anything else here:
|
|
23
|
+
*
|
|
24
|
+
* 1. **Nothing durable or outward-facing happens before the owner confirms.**
|
|
25
|
+
* No issue, no branch, no lane, no record. An imported-but-unconfirmed plan
|
|
26
|
+
* is ephemeral by design — hidden durable state the owner did not ask for is
|
|
27
|
+
* worse than re-running the command, and it keeps tracked main clean.
|
|
28
|
+
* 2. **The imported document is never a decision input.** Which Flows exist,
|
|
29
|
+
* which ids are taken, the tier rules — all of it is read from a snapshot
|
|
30
|
+
* taken FRESH here. The snapshot the document ECHOES is parsed, checked
|
|
31
|
+
* against its own recomputed id, and then used for one thing only: telling
|
|
32
|
+
* the owner what moved since the agent read the tree.
|
|
33
|
+
* `validateStartProposal` takes the fresh snapshot as a parameter for
|
|
34
|
+
* exactly this reason, and never reads the embedded one.
|
|
35
|
+
* 3. **Fresh state is checked twice.** Snapshot A validates the plan the owner
|
|
36
|
+
* is shown. Snapshot B is taken AFTER they confirm and immediately before
|
|
37
|
+
* the first outward-facing write, and the plan is REVALIDATED against it —
|
|
38
|
+
* not merely diffed. A confirmation can take minutes, and a plan that was
|
|
39
|
+
* true when it was displayed is not thereby true when it is acted on.
|
|
40
|
+
* 4. **`--resume` is the same path, not a bypass.** It runs snapshot A, the
|
|
41
|
+
* full validator, the full preview, the same default-No confirmation and
|
|
42
|
+
* the snapshot-B revalidation, exactly as a first run does. All it changes
|
|
43
|
+
* is what happens afterwards: it verifies each record that already exists
|
|
44
|
+
* instead of creating it, and writes only what is genuinely missing.
|
|
45
|
+
* What it may NOT do is finish a lane with a different plan: framing
|
|
46
|
+
* records `startPlanHash` on the contract, and resume recomputes it from
|
|
47
|
+
* the imported document and requires an exact match.
|
|
48
|
+
*
|
|
49
|
+
* Once the build starts, the ordering is issue → lane → intent → Delta/Planned
|
|
50
|
+
* Flow → pack. Every step that can fail is checked before the step after it
|
|
51
|
+
* runs, and anything already created is preserved with an exact recovery
|
|
52
|
+
* command — never rolled back behind the owner's back. Past the lane, that
|
|
53
|
+
* recovery is `start --resume`, which finishes what this run began.
|
|
54
|
+
*/
|
|
55
|
+
import { createHash } from 'node:crypto';
|
|
56
|
+
import { renderDeltaBody, renderFlowProposalBody } from '../atlas/render.js';
|
|
57
|
+
import { findDeltaForContract, flowProposalExists, readFlowProposal, writeDelta, writeFlowProposal, } from '../atlas/store.js';
|
|
58
|
+
import { listOpenChanges } from '../change.js';
|
|
59
|
+
import { UserError } from '../errors.js';
|
|
60
|
+
import { ghInstalled, ghIssueCreate } from '../gh.js';
|
|
61
|
+
import { makeDeltaId } from '../ids.js';
|
|
62
|
+
import { readAnswerFile } from '../planning/context.js';
|
|
63
|
+
import { sameRecordIgnoring } from '../planning/materialise.js';
|
|
64
|
+
import { compareSnapshots, takeSnapshot, verifyHandoffSnapshot } from '../planning/snapshot.js';
|
|
65
|
+
import { validateStartProposal } from '../planning/validate.js';
|
|
66
|
+
import { DeltaSchema, FlowProposalSchema, IntentSchema, } from '../records/types.js';
|
|
67
|
+
import { contractExists, contractScopeHash, intentExists, packExists, readContract, readIntent, readPack, stableStringify, writeContract, writeIntent, } from '../records/store.js';
|
|
68
|
+
import { renderContractBody } from '../render.js';
|
|
69
|
+
import { stageIndex } from '../state.js';
|
|
70
|
+
import { rewriteForSelfHost, selfHostAdvice } from '../selfhost.js';
|
|
71
|
+
import { shellQuote } from '../shellquote.js';
|
|
72
|
+
import { DEFAULT_BUILDER } from '../skills.js';
|
|
73
|
+
import * as ui from '../ui.js';
|
|
74
|
+
import { runFrame } from './frame.js';
|
|
75
|
+
import { packBrief, runPack } from './pack.js';
|
|
76
|
+
/**
|
|
77
|
+
* Raised after something durable was already created. The message names what
|
|
78
|
+
* survived; the fix is the exact command that carries on from there. Nothing is
|
|
79
|
+
* deleted — a half-started change the owner can finish beats a clean failure
|
|
80
|
+
* that silently threw away a real GitHub issue.
|
|
81
|
+
*/
|
|
82
|
+
function partialFailure(message, command, why) {
|
|
83
|
+
return new UserError(message, { command, why });
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* A recovery command the owner can paste in Prismatica's OWN checkout, where a
|
|
87
|
+
* bare `prismatica …` runs whichever copy is on PATH rather than the one being
|
|
88
|
+
* governed. Gated exactly as `next` gates it: an ordinary repository, or the
|
|
89
|
+
* checkout this CLI is already running from, is returned untouched.
|
|
90
|
+
*
|
|
91
|
+
* The caller MUST hand this the COMPLETE command — `--import`, `--issue`,
|
|
92
|
+
* `--resume` and all — because a checkout that is not yet built has no
|
|
93
|
+
* `dist/cli.js` to name, and `rewriteForSelfHost` then REPLACES the advice with
|
|
94
|
+
* the one `npm ci`/`npm run build` step that fixes it. Appending a flag to that
|
|
95
|
+
* afterwards would produce a line that means nothing at all.
|
|
96
|
+
*/
|
|
97
|
+
function selfHostSafe(command, target) {
|
|
98
|
+
return selfHostAdvice(target) ? rewriteForSelfHost(command, target) : command;
|
|
99
|
+
}
|
|
100
|
+
export function startCommand(options) {
|
|
101
|
+
const args = [`prismatica start --import ${shellQuote(options.importFile)}`];
|
|
102
|
+
if (options.resume?.trim())
|
|
103
|
+
args.push(`--resume ${shellQuote(options.resume.trim())}`);
|
|
104
|
+
if (options.issue?.trim())
|
|
105
|
+
args.push(`--issue ${shellQuote(options.issue.trim())}`);
|
|
106
|
+
if (options.installHook === false)
|
|
107
|
+
args.push('--no-hook');
|
|
108
|
+
return args.join(' ');
|
|
109
|
+
}
|
|
110
|
+
// ── The plan binding ─────────────────────────────────────────────────────────
|
|
111
|
+
/**
|
|
112
|
+
* The ONE canonical digest of an approved Start plan, recorded on the contract
|
|
113
|
+
* at framing and rechecked by `--resume`.
|
|
114
|
+
*
|
|
115
|
+
* It exists because `framedFieldsFor` cannot answer the question resume has to
|
|
116
|
+
* ask. Those are the fields a CONTRACT carries, and two genuinely different
|
|
117
|
+
* plans can produce identical ones while disagreeing about the request, the
|
|
118
|
+
* rationale, current and desired behaviour, the assumptions, the Delta or the
|
|
119
|
+
* Planned Flow — all of which the owner read and approved, and all of which
|
|
120
|
+
* resume goes on to write into the Intent, the Delta and the Flow proposal. One
|
|
121
|
+
* digest over the whole document answers it once; a widening set of partial
|
|
122
|
+
* comparisons only ever covers the fields someone remembered to add.
|
|
123
|
+
*
|
|
124
|
+
* The canonical representation is the PARSED proposal — never the raw file —
|
|
125
|
+
* with `snapshot` omitted:
|
|
126
|
+
*
|
|
127
|
+
* - Parsed, because zod applies `.default([])` and friends. A document that
|
|
128
|
+
* omits an optional array and one that spells it `[]` are the same approved
|
|
129
|
+
* plan, and hashing the raw bytes would make re-importing a run's own file
|
|
130
|
+
* fail whenever the agent had left an optional key out.
|
|
131
|
+
* - `snapshot` omitted, because it is transport: the reading the plan was
|
|
132
|
+
* written against, used for drift reasons and nothing else. It is ephemeral
|
|
133
|
+
* by design — every commit moves it — so including it would mean no plan
|
|
134
|
+
* could ever be resumed. Everything else is meaning the owner approved,
|
|
135
|
+
* `assumptions` and `possibleConflicts` included: they are previewed, and
|
|
136
|
+
* recorded verbatim in the Intent.
|
|
137
|
+
*
|
|
138
|
+
* `stableStringify` is the same key-sorted serialisation `contractScopeHash`
|
|
139
|
+
* and the planning snapshot already use, so JSON key order cannot move it.
|
|
140
|
+
*/
|
|
141
|
+
export function startPlanHash(proposal) {
|
|
142
|
+
const { snapshot: _snapshot, ...meaning } = proposal;
|
|
143
|
+
return createHash('sha256').update(stableStringify(meaning)).digest('hex');
|
|
144
|
+
}
|
|
145
|
+
// ── The plan → records mapping ───────────────────────────────────────────────
|
|
146
|
+
function intentFor(proposal, contractId, now) {
|
|
147
|
+
// IntentSchema takes 2–4 checks; the contract carries the full list.
|
|
148
|
+
return IntentSchema.parse({
|
|
149
|
+
id: contractId,
|
|
150
|
+
title: proposal.summary,
|
|
151
|
+
state: 'open',
|
|
152
|
+
checks: proposal.acceptance.slice(0, 4).map((check, index) => ({
|
|
153
|
+
id: `ac-${index + 1}`,
|
|
154
|
+
description: check.description,
|
|
155
|
+
status: 'unproven',
|
|
156
|
+
})),
|
|
157
|
+
createdAt: now.toISOString(),
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function deltaFor(proposal, contractId, now) {
|
|
161
|
+
const source = proposal.delta;
|
|
162
|
+
return DeltaSchema.parse({
|
|
163
|
+
id: makeDeltaId(source.instead, now),
|
|
164
|
+
flowId: proposal.flowId,
|
|
165
|
+
step: source.step,
|
|
166
|
+
today: source.today,
|
|
167
|
+
instead: source.instead,
|
|
168
|
+
keep: source.keep,
|
|
169
|
+
assumptions: source.assumptions,
|
|
170
|
+
showMe: source.showMe,
|
|
171
|
+
// Approved, because the owner just approved this exact plan — and bound to
|
|
172
|
+
// the contract immediately, so it can never be framed a second time.
|
|
173
|
+
status: 'approved',
|
|
174
|
+
contractId,
|
|
175
|
+
createdAt: now.toISOString(),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* A genuinely new Flow enters through the machinery that already exists for
|
|
180
|
+
* one: a Flow PROPOSAL, `status: planned`, marked `proposedBy: owner`. No new
|
|
181
|
+
* lifecycle type, and nothing is marked `works` — the flow is planned until the
|
|
182
|
+
* work exists and rediscovery finds it, at which point the ordinary
|
|
183
|
+
* `flow approve` path writes the canonical record. `flow approve` remains the
|
|
184
|
+
* single writer of canonical truth; `start` does not become a second one.
|
|
185
|
+
*/
|
|
186
|
+
function plannedFlowFor(proposal, now) {
|
|
187
|
+
const source = proposal.plannedFlow;
|
|
188
|
+
return FlowProposalSchema.parse({
|
|
189
|
+
id: source.id,
|
|
190
|
+
proposalType: 'draft',
|
|
191
|
+
reason: `Planned as part of "${proposal.summary}" — approved by the owner at start`,
|
|
192
|
+
proposedBy: 'owner',
|
|
193
|
+
createdAt: now.toISOString(),
|
|
194
|
+
status: 'planned',
|
|
195
|
+
presentation: source.presentation,
|
|
196
|
+
truth: source.truth,
|
|
197
|
+
mechanics: source.mechanics,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The issue this change will file, built DETERMINISTICALLY from the approved
|
|
202
|
+
* plan — the same inputs always produce the same bytes, and the owner is shown
|
|
203
|
+
* exactly these bytes before confirming.
|
|
204
|
+
*
|
|
205
|
+
* It is assembled here rather than taken verbatim from the agent, which is why
|
|
206
|
+
* the plan carries no `issue` field at all. An agent-supplied title and body
|
|
207
|
+
* were a second, unvalidated description of the change that could disagree with
|
|
208
|
+
* the plan the owner actually approved, and the owner had no way to see it
|
|
209
|
+
* before it was filed on a real repository. Everything below traces to a field
|
|
210
|
+
* the owner just read.
|
|
211
|
+
*/
|
|
212
|
+
export function issueText(input) {
|
|
213
|
+
const { proposal } = input;
|
|
214
|
+
const list = (items, none) => items.length === 0 ? `_${none}_` : items.map((item) => `- ${item}`).join('\n');
|
|
215
|
+
const body = [
|
|
216
|
+
`**What the owner asked for**`,
|
|
217
|
+
'',
|
|
218
|
+
`> ${proposal.request.split('\n').join('\n> ')}`,
|
|
219
|
+
'',
|
|
220
|
+
'## Why',
|
|
221
|
+
'',
|
|
222
|
+
proposal.rationale,
|
|
223
|
+
'',
|
|
224
|
+
'## Today',
|
|
225
|
+
'',
|
|
226
|
+
proposal.currentBehaviour,
|
|
227
|
+
'',
|
|
228
|
+
'## Instead',
|
|
229
|
+
'',
|
|
230
|
+
proposal.desiredBehaviour,
|
|
231
|
+
'',
|
|
232
|
+
'## Done when',
|
|
233
|
+
'',
|
|
234
|
+
proposal.acceptance
|
|
235
|
+
.map((check) => `- ${check.description} — proven by \`${check.test}\``)
|
|
236
|
+
.join('\n'),
|
|
237
|
+
'',
|
|
238
|
+
'## Scope',
|
|
239
|
+
'',
|
|
240
|
+
list([
|
|
241
|
+
...proposal.scope.allow.map((glob) => `\`${glob}\``),
|
|
242
|
+
...proposal.scope.forbid.map((glob) => `never: \`${glob}\``),
|
|
243
|
+
], 'no scope stated'),
|
|
244
|
+
'',
|
|
245
|
+
`**Risk tier:** ${input.tier.tier}${input.tier.raisedByFiles ? ` (raised from ${input.tier.fromAnswers} by the files it touches)` : ''}`,
|
|
246
|
+
`**Builder:** ${proposal.builder}`,
|
|
247
|
+
'',
|
|
248
|
+
'---',
|
|
249
|
+
'',
|
|
250
|
+
'_Planned with an agent, imported and confirmed by the owner via `prismatica start`._',
|
|
251
|
+
].join('\n');
|
|
252
|
+
return { title: proposal.summary, body };
|
|
253
|
+
}
|
|
254
|
+
// ── The command ──────────────────────────────────────────────────────────────
|
|
255
|
+
/** Every refusal that means "this plan no longer describes this repository". */
|
|
256
|
+
const REPLAN = {
|
|
257
|
+
command: 'prismatica context start',
|
|
258
|
+
why: 'nothing was written — export a fresh context and plan against the tree as it is now',
|
|
259
|
+
};
|
|
260
|
+
export async function runStart(options) {
|
|
261
|
+
const now = options.now ?? new Date();
|
|
262
|
+
if (options.importFile.trim() === '') {
|
|
263
|
+
throw new UserError('`start` needs the plan your agent wrote.', {
|
|
264
|
+
command: 'prismatica context start',
|
|
265
|
+
why: 'export the context, let the agent you are already using answer it, then import that answer',
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
const recovery = (target, overrides = {}) => selfHostSafe(startCommand({ ...options, ...overrides }), target);
|
|
269
|
+
const raw = readAnswerFile(options.importFile, {
|
|
270
|
+
command: 'prismatica context start',
|
|
271
|
+
why: 'export the context, let your agent answer it, then import that answer here',
|
|
272
|
+
});
|
|
273
|
+
// ── 1. Snapshot A — the reading the owner's decision is made against ───────
|
|
274
|
+
const snapshotA = await takeSnapshot(options.cwd, now);
|
|
275
|
+
const retry = recovery(snapshotA.repoRoot);
|
|
276
|
+
const validation = validateStartProposal(raw, snapshotA);
|
|
277
|
+
if (!validation.ok) {
|
|
278
|
+
throw new UserError(`The plan that came back is not usable:\n${validation.problems
|
|
279
|
+
.map((problem) => ` - ${problem.field}: ${problem.detail}`)
|
|
280
|
+
.join('\n')}`, { ...REPLAN, why: 'nothing was written — the plan is rejected, not repaired' });
|
|
281
|
+
}
|
|
282
|
+
const { proposal, tier } = validation.value;
|
|
283
|
+
// ── 2. The echoed snapshot: real, then what moved since ────────────────────
|
|
284
|
+
// Recomputing the id from the echo's own contents proves it is a snapshot
|
|
285
|
+
// this repository produced rather than a string the agent composed. What it
|
|
286
|
+
// then supplies is drift REASONS and nothing else — every decision above and
|
|
287
|
+
// below came from `snapshotA`.
|
|
288
|
+
const echoProblem = verifyHandoffSnapshot(proposal.snapshot);
|
|
289
|
+
if (echoProblem) {
|
|
290
|
+
throw new UserError(`The snapshot this plan echoes is not usable — ${echoProblem}.`, REPLAN);
|
|
291
|
+
}
|
|
292
|
+
const drift = compareSnapshots(proposal.snapshot, snapshotA);
|
|
293
|
+
const warnings = [
|
|
294
|
+
...validation.warnings,
|
|
295
|
+
...(drift.moved
|
|
296
|
+
? [
|
|
297
|
+
`the repository moved after this plan was written (${drift.reasons.join('; ')}) — the plan still validates against the tree as it is now, but read it with that in mind`,
|
|
298
|
+
]
|
|
299
|
+
: []),
|
|
300
|
+
];
|
|
301
|
+
// ── 3. Resuming? Prove the lane is live and was framed from THIS plan ──────
|
|
302
|
+
// Before the owner is asked anything, because a mismatched plan or a lane
|
|
303
|
+
// that is not there is not a decision they should have to make.
|
|
304
|
+
const resuming = options.resume ? await verifyResumable(options, options.resume, proposal) : null;
|
|
305
|
+
// ── 4. The whole plan, and the exact issue text ────────────────────────────
|
|
306
|
+
const issue = issueText({ proposal, tier });
|
|
307
|
+
printProposal(proposal, resuming ? tierFromContract(resuming.contract) : tier, warnings, issue, resuming, options.issue?.trim());
|
|
308
|
+
// ── 5. One decision ───────────────────────────────────────────────────────
|
|
309
|
+
// One question, defaulting to No, and no `--yes` anywhere. The plan came from
|
|
310
|
+
// a session the owner was already in; asking twice about a document they have
|
|
311
|
+
// just been shown in full adds ceremony, not consent.
|
|
312
|
+
const approved = await options.prompts.confirm({
|
|
313
|
+
message: resuming ? `Finish ${resuming.contract.id}?` : 'Start this change?',
|
|
314
|
+
default: false,
|
|
315
|
+
});
|
|
316
|
+
if (!approved) {
|
|
317
|
+
// Deliberately nothing is saved. The plan was ephemeral, and it stays
|
|
318
|
+
// ephemeral — no half-state on disk for the owner to discover later. The
|
|
319
|
+
// imported file is still on disk, so re-running costs nothing.
|
|
320
|
+
return { kind: 'declined', proposal, tier, resumeCommand: retry };
|
|
321
|
+
}
|
|
322
|
+
// ── 6. Snapshot B — REVALIDATE, immediately before the first outward write ─
|
|
323
|
+
// Not a diff of A against B: the plan is put through the whole validator
|
|
324
|
+
// again, against the tree as it is now. Referential integrity is the reason —
|
|
325
|
+
// the Flow this Delta targets may have been approved away, and an id that was
|
|
326
|
+
// free when the plan was displayed may have been taken while the owner read
|
|
327
|
+
// it. `compareSnapshots` only supplies the better sentence.
|
|
328
|
+
//
|
|
329
|
+
// Drift between A and B is REFUSED here, unlike drift between the hand-off
|
|
330
|
+
// and A, which is only reported. The two windows are not the same question.
|
|
331
|
+
// The hand-off window is long and the owner is about to READ the plan, so
|
|
332
|
+
// telling them what moved is the useful answer. This window is the seconds
|
|
333
|
+
// between their yes and the first write, and what they said yes to was a
|
|
334
|
+
// preview computed from A — so anything that moved in it is something they
|
|
335
|
+
// approved a picture of and did not see.
|
|
336
|
+
const snapshotB = await takeSnapshot(options.cwd, now);
|
|
337
|
+
const moved = compareSnapshots(snapshotA, snapshotB);
|
|
338
|
+
const revalidation = validateStartProposal(raw, snapshotB);
|
|
339
|
+
if (moved.moved || !revalidation.ok) {
|
|
340
|
+
throw new UserError(moved.moved
|
|
341
|
+
? `The repository changed while this plan was being reviewed (${moved.reasons.join('; ')}).`
|
|
342
|
+
: `The plan no longer validates against the repository:\n${(revalidation.ok ? [] : revalidation.problems)
|
|
343
|
+
.map((problem) => ` - ${problem.field}: ${problem.detail}`)
|
|
344
|
+
.join('\n')}`, { ...REPLAN, why: 'nothing was created — plan against the tree as it is now' });
|
|
345
|
+
}
|
|
346
|
+
if (resuming) {
|
|
347
|
+
const current = await verifyResumable(options, resuming.contract.id, proposal);
|
|
348
|
+
if (!sameRecordIgnoring(resuming.contract, current.contract, []) ||
|
|
349
|
+
!sameBody(resuming.contractBody, current.contractBody)) {
|
|
350
|
+
throw new UserError(`The contract for ${resuming.contract.id} changed while this plan was being reviewed.`, {
|
|
351
|
+
command: retry,
|
|
352
|
+
why: 'nothing was written — review the current contract before resuming',
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
return finishResume(current, proposal, now);
|
|
356
|
+
}
|
|
357
|
+
if (!options.issue?.trim() && !(await ghInstalled())) {
|
|
358
|
+
throw new UserError('An issue is required, and the GitHub CLI (`gh`) is not available.', {
|
|
359
|
+
command: recovery(snapshotB.repoRoot, { issue: '<url-or-#number>' }),
|
|
360
|
+
why: 'no contract without an issue — link one you already have',
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
// ── 5. Create the issue ───────────────────────────────────────────────────
|
|
364
|
+
let issueLink;
|
|
365
|
+
const existing = options.issue?.trim();
|
|
366
|
+
if (existing) {
|
|
367
|
+
issueLink = existing;
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
const created = await ghIssueCreate(snapshotB.repoRoot, issue.title, issue.body);
|
|
371
|
+
if (!created.ok || !created.url) {
|
|
372
|
+
// Two genuinely different facts, never collapsed into one. Telling the
|
|
373
|
+
// owner "nothing was created" when an issue may exist is what produces
|
|
374
|
+
// the duplicate — so when we cannot tell, we say we cannot tell and send
|
|
375
|
+
// them to look, which is the only recovery that cannot create a second.
|
|
376
|
+
throw new UserError(created.uncertain
|
|
377
|
+
? `The GitHub issue may or may not have been created — \`gh\` did not report a usable result: ${created.error ?? 'unknown error'}`
|
|
378
|
+
: `Could not create the GitHub issue: ${created.error ?? 'unknown error'}`, {
|
|
379
|
+
command: created.uncertain
|
|
380
|
+
? `gh issue list --search ${shellQuote(issue.title)} --state open # then: ${recovery(snapshotB.repoRoot, { issue: '<url-or-#number>' })}`
|
|
381
|
+
: recovery(snapshotB.repoRoot, { issue: '<url-or-#number>' }),
|
|
382
|
+
why: created.uncertain
|
|
383
|
+
? 'nothing else was created — check for the issue first and link it, rather than opening a duplicate'
|
|
384
|
+
: 'nothing was created — link an existing issue instead',
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
issueLink = created.url;
|
|
388
|
+
}
|
|
389
|
+
// ── 7. Frame the lane ─────────────────────────────────────────────────────
|
|
390
|
+
let framed;
|
|
391
|
+
try {
|
|
392
|
+
framed = await runFrame({
|
|
393
|
+
cwd: options.cwd,
|
|
394
|
+
issue: issueLink,
|
|
395
|
+
// Exactly the fields `verifyResumable` compares a lane's contract
|
|
396
|
+
// against, from exactly the same function — so "was this lane framed from
|
|
397
|
+
// this plan?" and "what does this plan frame?" can never answer
|
|
398
|
+
// differently.
|
|
399
|
+
...framedFieldsFor(proposal),
|
|
400
|
+
// The durable binding between this lane and the complete plan the owner
|
|
401
|
+
// just approved. Recorded HERE, at the exact point `--resume` becomes
|
|
402
|
+
// possible, so a resume can never be handed a different plan.
|
|
403
|
+
planHash: startPlanHash(proposal),
|
|
404
|
+
answers: {
|
|
405
|
+
touchesAuth: proposal.risk.touchesAuth,
|
|
406
|
+
touchesPayments: proposal.risk.touchesPayments,
|
|
407
|
+
touchesSavedData: proposal.risk.touchesSavedData,
|
|
408
|
+
copyOnly: proposal.risk.copyOnly,
|
|
409
|
+
},
|
|
410
|
+
// The deterministic floor, already computed — an agent can raise the
|
|
411
|
+
// tier by its answers but can never lower what the paths demand.
|
|
412
|
+
tierOverride: tier.tier,
|
|
413
|
+
installHook: options.installHook,
|
|
414
|
+
now,
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
throw partialFailure(`The issue was created (${issueLink}) but the lane could not be framed: ${describe(error)}`, recovery(snapshotB.repoRoot, { issue: issueLink }), 'the issue is real and is kept — re-run with it linked rather than opening a duplicate');
|
|
419
|
+
}
|
|
420
|
+
const { contract: framedContract, worktree } = framed;
|
|
421
|
+
// Past this point the lane exists, so recovery is `--resume`: it verifies
|
|
422
|
+
// what is already there and writes only what is genuinely missing.
|
|
423
|
+
const recover = recovery(snapshotB.repoRoot, { issue: issueLink, resume: framedContract.id });
|
|
424
|
+
// ── 8. Approved intent, into THIS lane ────────────────────────────────────
|
|
425
|
+
let intent;
|
|
426
|
+
try {
|
|
427
|
+
intent = writeApprovedIntent(worktree, framedContract, proposal);
|
|
428
|
+
}
|
|
429
|
+
catch (error) {
|
|
430
|
+
throw partialFailure(`The lane ${worktree} exists, but the approved intent could not be written: ${describe(error)}`, recover, 'the issue and lane are kept — nothing was lost');
|
|
431
|
+
}
|
|
432
|
+
// ── 9. The Delta or the Planned Flow, into the same lane ──────────────────
|
|
433
|
+
let planRecords;
|
|
434
|
+
try {
|
|
435
|
+
planRecords = writePlanRecords(worktree, framedContract.id, proposal, now);
|
|
436
|
+
}
|
|
437
|
+
catch (error) {
|
|
438
|
+
throw partialFailure(`The lane ${worktree} exists, but the approved ${proposal.kind === 'new-flow' ? 'Planned Flow' : 'Delta'} could not be written: ${describe(error)}`, recover, 'the issue, lane and intent are kept — resume completes only what is missing');
|
|
439
|
+
}
|
|
440
|
+
// ── 10. The builder pack ──────────────────────────────────────────────────
|
|
441
|
+
try {
|
|
442
|
+
await runPack({ cwd: worktree, contractId: framedContract.id });
|
|
443
|
+
}
|
|
444
|
+
catch (error) {
|
|
445
|
+
throw partialFailure(`The lane ${worktree} is set up, but the builder brief could not be written: ${describe(error)}`, recover, 'everything before this succeeded — this is the only step left');
|
|
446
|
+
}
|
|
447
|
+
// Re-read, so what we report is what is actually on disk — never what we
|
|
448
|
+
// intended to write. "The build started" is a claim about the filesystem.
|
|
449
|
+
const contract = readContract(worktree, framedContract.id).data;
|
|
450
|
+
return {
|
|
451
|
+
kind: 'started',
|
|
452
|
+
proposal,
|
|
453
|
+
tier,
|
|
454
|
+
contract,
|
|
455
|
+
worktree,
|
|
456
|
+
issue: issueLink,
|
|
457
|
+
intent,
|
|
458
|
+
delta: planRecords.delta,
|
|
459
|
+
plannedFlow: planRecords.plannedFlow,
|
|
460
|
+
hookInstalled: framed.hookInstalled,
|
|
461
|
+
warnings,
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* The contract fields `runFrame` derives from a plan — the plan's "normalised"
|
|
466
|
+
* form, in the sense that matters here.
|
|
467
|
+
*
|
|
468
|
+
* ONE function, used twice: to frame a new lane, and to check that an existing
|
|
469
|
+
* lane really was framed from the plan being imported. Comparing a hand-picked
|
|
470
|
+
* subset instead is how "the title and the acceptance descriptions match, so
|
|
471
|
+
* this must be the same plan" came to be true of two plans with different
|
|
472
|
+
* SCOPE, different non-goals, a different docs delta and a different builder.
|
|
473
|
+
*
|
|
474
|
+
* The risk tier is deliberately not here. It is not a field of the plan: it is
|
|
475
|
+
* decided from the plan's risk answers AND the repository's own tier rules, and
|
|
476
|
+
* the contract's recorded tier is what everything downstream already binds to.
|
|
477
|
+
* Resume reads it back off the contract (`tierFromContract`) and never
|
|
478
|
+
* re-decides it — a repository whose `tierRules` changed after framing must not
|
|
479
|
+
* stop a half-created change from being finished.
|
|
480
|
+
*/
|
|
481
|
+
export function framedFieldsFor(proposal) {
|
|
482
|
+
return {
|
|
483
|
+
title: proposal.summary,
|
|
484
|
+
allowedPaths: proposal.scope.allow,
|
|
485
|
+
forbiddenPaths: proposal.scope.forbid,
|
|
486
|
+
nonGoals: [
|
|
487
|
+
...proposal.mustNotChange,
|
|
488
|
+
...proposal.exclusions,
|
|
489
|
+
...proposal.desiredRules.map((rule) => `Desired rule (not yet truth): ${rule}`),
|
|
490
|
+
],
|
|
491
|
+
acceptanceChecks: proposal.acceptance.map((check, index) => ({
|
|
492
|
+
id: `ac-${index + 1}`,
|
|
493
|
+
description: check.description,
|
|
494
|
+
test: check.test,
|
|
495
|
+
})),
|
|
496
|
+
// The plan named the docs that go stale if this lands; the check engine
|
|
497
|
+
// then requires each of them to have really changed.
|
|
498
|
+
docsDelta: proposal.docsDelta,
|
|
499
|
+
// From the plan, resolved during the planning conversation. Never inferred
|
|
500
|
+
// from whoever planned the change, and no longer settable by a flag that
|
|
501
|
+
// could contradict the document the owner is about to approve.
|
|
502
|
+
builder: proposal.builder,
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* `--resume <id>` finishes a change whose LANE ALREADY EXISTS.
|
|
507
|
+
*
|
|
508
|
+
* It exists for exactly one shape of failure: framing succeeded, and something
|
|
509
|
+
* after it did not. Before framing there is nothing to resume — an issue may
|
|
510
|
+
* have been created, and the recovery for that is an ordinary `start --issue
|
|
511
|
+
* <url>`, which is why this refuses outright when no live lane is there.
|
|
512
|
+
*
|
|
513
|
+
* This half runs BEFORE the owner is shown anything, and establishes two facts:
|
|
514
|
+
*
|
|
515
|
+
* 1. a LIVE lane exists for this contract. `listOpenChanges` is the test,
|
|
516
|
+
* because it means exactly "a worktree on `change/<id>` that carries a
|
|
517
|
+
* contract". The general change resolver deliberately falls back to the
|
|
518
|
+
* current checkout and then to main, which is right for `pack` or `check`
|
|
519
|
+
* and wrong here: an archived contract sitting on main, or an unrelated
|
|
520
|
+
* checkout that happens to hold one, would otherwise satisfy a resume and
|
|
521
|
+
* be "completed" in a tree that is not the change's lane at all.
|
|
522
|
+
* 2. that lane was framed from THIS plan — the WHOLE plan, by the digest
|
|
523
|
+
* framing recorded (`startPlanHash`), not merely the fields a contract
|
|
524
|
+
* happens to carry.
|
|
525
|
+
*
|
|
526
|
+
* The digest is the load-bearing test and the field comparison is kept only for
|
|
527
|
+
* the SENTENCE it produces: an owner who imported the wrong file is better
|
|
528
|
+
* served by "they differ on: allowed scope, builder" than by two hashes. A lane
|
|
529
|
+
* whose contract records NO digest is refused outright rather than falling back
|
|
530
|
+
* to that comparison — it can prove nothing about which plan it was framed
|
|
531
|
+
* from, and accepting it would leave exactly the hole the digest closes.
|
|
532
|
+
*
|
|
533
|
+
* Everything after it — preview, confirmation, snapshot-B revalidation — is the
|
|
534
|
+
* ordinary `start` path, unchanged. Resume is not a quiet route past the owner.
|
|
535
|
+
*/
|
|
536
|
+
async function verifyResumable(options, contractId, proposal) {
|
|
537
|
+
const lane = (await listOpenChanges(options.cwd)).find((change) => change.id === contractId);
|
|
538
|
+
if (!lane || !contractExists(lane.home, contractId)) {
|
|
539
|
+
throw new UserError(`There is no live lane for "${contractId}" to resume.`, {
|
|
540
|
+
command: startCommand({
|
|
541
|
+
...options,
|
|
542
|
+
resume: undefined,
|
|
543
|
+
issue: '<url-or-#number>',
|
|
544
|
+
}),
|
|
545
|
+
why: 'resume finishes a change whose lane exists; if only the issue was created, start again and link it',
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
const record = readContract(lane.home, contractId);
|
|
549
|
+
const contract = record.data;
|
|
550
|
+
const framed = framedFieldsFor(proposal);
|
|
551
|
+
const differences = [
|
|
552
|
+
contract.title !== framed.title ? `title ("${contract.title}" vs "${framed.title}")` : null,
|
|
553
|
+
listsDiffer(contract.allowedPaths, framed.allowedPaths) ? 'allowed scope' : null,
|
|
554
|
+
listsDiffer(contract.forbiddenPaths, framed.forbiddenPaths) ? 'forbidden scope' : null,
|
|
555
|
+
listsDiffer(contract.nonGoals, framed.nonGoals) ? 'non-goals' : null,
|
|
556
|
+
listsDiffer(contract.docsDelta, framed.docsDelta) ? 'docs delta' : null,
|
|
557
|
+
listsDiffer(contract.acceptanceChecks.map((check) => `${check.id}|${check.description}|${check.test}`), framed.acceptanceChecks.map((check) => `${check.id}|${check.description}|${check.test}`))
|
|
558
|
+
? 'acceptance checks'
|
|
559
|
+
: null,
|
|
560
|
+
contract.builder !== undefined && contract.builder !== framed.builder
|
|
561
|
+
? `builder ("${contract.builder}" vs "${framed.builder}")`
|
|
562
|
+
: null,
|
|
563
|
+
].filter((difference) => difference !== null);
|
|
564
|
+
// The digest first, because it is the complete test — the field differences
|
|
565
|
+
// below only make its verdict readable. A plan can match every contract field
|
|
566
|
+
// and still be a different approved document.
|
|
567
|
+
if (contract.planHash === undefined) {
|
|
568
|
+
throw new UserError(`The lane for "${contractId}" records no approved plan, so nothing can prove this file is the one it was framed from.`, {
|
|
569
|
+
command: `prismatica pack ${contractId}`,
|
|
570
|
+
why: 'nothing was written — finish this change with the ordinary commands rather than importing a plan the lane cannot be checked against',
|
|
571
|
+
});
|
|
572
|
+
}
|
|
573
|
+
if (contract.planHash !== startPlanHash(proposal)) {
|
|
574
|
+
throw new UserError(`That plan is not the one ${contractId} was framed from${differences.length > 0 ? ` — they differ on: ${differences.join(', ')}` : ''}.`, {
|
|
575
|
+
command: `prismatica pack ${contractId}`,
|
|
576
|
+
why: differences.length > 0
|
|
577
|
+
? 'resume completes the change this plan started; it is not a way to re-plan an existing one, and the approved intent would otherwise record terms the contract never carried'
|
|
578
|
+
: 'the contract fields match, but the approved plan behind them does not — the meaning the owner said yes to (the request, the reasoning, the Delta or Planned Flow) is not the same document',
|
|
579
|
+
});
|
|
580
|
+
}
|
|
581
|
+
return { contract, contractBody: record.body, worktree: lane.home };
|
|
582
|
+
}
|
|
583
|
+
/** Order-sensitive: `["a","b"]` and `["b","a"]` are two different scopes. */
|
|
584
|
+
function listsDiffer(a, b) {
|
|
585
|
+
return a.length !== b.length || a.some((value, index) => value !== b[index]);
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* The write half of resume: verify each record that already exists, create only
|
|
589
|
+
* what is genuinely missing.
|
|
590
|
+
*
|
|
591
|
+
* A record that exists and is SEMANTICALLY IDENTICAL to the one this run would
|
|
592
|
+
* write is the interrupted run's own work — it is left exactly as it is, with
|
|
593
|
+
* its original timestamp. One that DIFFERS fails closed rather than being
|
|
594
|
+
* overwritten, because the version on disk may be the one the owner edited.
|
|
595
|
+
* Comparison ignores only the deterministic stamps a second run cannot
|
|
596
|
+
* reproduce (`createdAt`, and a Delta's id, which embeds the instant it was
|
|
597
|
+
* made), through the same JSON-round-trip comparison the proposals importer
|
|
598
|
+
* uses — one implementation of "is this the same record", not two.
|
|
599
|
+
*/
|
|
600
|
+
async function finishResume(resumable, proposal, now) {
|
|
601
|
+
const { contract, worktree } = resumable;
|
|
602
|
+
const contractId = contract.id;
|
|
603
|
+
const completed = [];
|
|
604
|
+
const alreadyPresent = [];
|
|
605
|
+
// ── The approved Intent, and the contract link to it ──────────────────────
|
|
606
|
+
// Two writes, so THREE states can be on disk — and the middle one is the
|
|
607
|
+
// reason existence is tested by RECORD and not by link. `writeApprovedIntent`
|
|
608
|
+
// writes `intents/<contractId>.md` first and links it into the contract
|
|
609
|
+
// second, so an interrupted run leaves a valid Intent that the contract does
|
|
610
|
+
// not reference. Asking `contract.intent && intentExists(…)` reports that
|
|
611
|
+
// orphan as absent and OVERWRITES it — destroying a record principle 5 says
|
|
612
|
+
// to preserve. It is not hypothetical: `pack` already fails closed on exactly
|
|
613
|
+
// this state, which is also why the link must be repaired BEFORE `runPack`
|
|
614
|
+
// below rather than after it.
|
|
615
|
+
//
|
|
616
|
+
// The intent id is always the contract id (`intentFor`), so that is the only
|
|
617
|
+
// path to look at; a link pointing anywhere else was not written by this
|
|
618
|
+
// sequence and fails closed rather than being quietly replaced.
|
|
619
|
+
if (contract.intent !== undefined && contract.intent !== contractId) {
|
|
620
|
+
throw new UserError(`The contract for ${contractId} links a different approved intent (${contract.intent}).`, {
|
|
621
|
+
command: `prismatica pack ${contractId}`,
|
|
622
|
+
why: 'nothing was overwritten — resume finishes the plan this lane was framed from, and that link was not written by it',
|
|
623
|
+
});
|
|
624
|
+
}
|
|
625
|
+
if (intentExists(worktree, contractId)) {
|
|
626
|
+
const intended = intentFor(proposal, contractId, new Date(contract.createdAt));
|
|
627
|
+
const onDisk = readIntent(worktree, contractId);
|
|
628
|
+
// THE WHOLE RECORD, frontmatter AND body. The frontmatter is a title, the
|
|
629
|
+
// check descriptions and a timestamp; the body is the approved plan itself,
|
|
630
|
+
// and it is the half `pack` and `review` hand on verbatim. Comparing only
|
|
631
|
+
// the frontmatter reported an Intent whose plan had been rewritten as "the
|
|
632
|
+
// interrupted run's own work, unchanged" — and then a missing pack embedded
|
|
633
|
+
// that rewritten plan as the one the owner approved.
|
|
634
|
+
if (!sameRecordIgnoring(onDisk.data, intended, ['createdAt']) ||
|
|
635
|
+
!sameBody(onDisk.body, approvedIntentBody(proposal, contract.tier))) {
|
|
636
|
+
throw new UserError(`A different approved intent (${contractId}) is already in this lane.`, {
|
|
637
|
+
command: `prismatica pack ${contractId}`,
|
|
638
|
+
why: 'nothing was overwritten — the intent on disk may be the one you edited',
|
|
639
|
+
});
|
|
640
|
+
}
|
|
641
|
+
alreadyPresent.push(`intent ${contractId}`);
|
|
642
|
+
if (contract.intent === undefined) {
|
|
643
|
+
// The interruption window itself: a valid Intent, an unlinked contract.
|
|
644
|
+
// Only the missing link is written; the Intent keeps its bytes and its
|
|
645
|
+
// original timestamp.
|
|
646
|
+
const linked = { ...contract, intent: contractId };
|
|
647
|
+
writeContract(worktree, linked, renderContractBody(linked));
|
|
648
|
+
completed.push(`contract link to intent ${contractId}`);
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
else {
|
|
652
|
+
writeApprovedIntent(worktree, contract, proposal);
|
|
653
|
+
completed.push(`intent ${contractId}`);
|
|
654
|
+
}
|
|
655
|
+
const records = writePlanRecords(worktree, contractId, proposal, now, { resuming: true });
|
|
656
|
+
completed.push(...records.completed);
|
|
657
|
+
alreadyPresent.push(...records.alreadyPresent);
|
|
658
|
+
// ── The pack, and the stage it is supposed to have advanced ───────────────
|
|
659
|
+
// A pack FILE existing does not prove the pack STEP completed: `runPack`
|
|
660
|
+
// writes the brief and only then advances `frame` → `pack`, so a failure
|
|
661
|
+
// between them leaves a perfectly good pack on a contract still at `frame`.
|
|
662
|
+
// Reporting that as resumed would declare a Start finished while one of its
|
|
663
|
+
// postconditions is missing.
|
|
664
|
+
//
|
|
665
|
+
// Re-read the contract first. `contractScopeHash` includes `intent`, so
|
|
666
|
+
// repairing the link above CHANGES the hash — comparing the pack against the
|
|
667
|
+
// stale in-memory contract would call the original run's own pack stale on
|
|
668
|
+
// every orphan-intent resume.
|
|
669
|
+
const current = readContract(worktree, contractId).data;
|
|
670
|
+
const pack = await completePack(worktree, current);
|
|
671
|
+
completed.push(...pack.completed);
|
|
672
|
+
alreadyPresent.push(...pack.alreadyPresent);
|
|
673
|
+
return {
|
|
674
|
+
kind: 'resumed',
|
|
675
|
+
contract: readContract(worktree, contractId).data,
|
|
676
|
+
worktree,
|
|
677
|
+
completed,
|
|
678
|
+
alreadyPresent,
|
|
679
|
+
};
|
|
680
|
+
}
|
|
681
|
+
/**
|
|
682
|
+
* Bring the pack step to its real postcondition: the expected brief on disk AND
|
|
683
|
+
* the contract at (or past) stage `pack`.
|
|
684
|
+
*
|
|
685
|
+
* `packExists` alone is not that predicate. `runPack` writes the brief and then
|
|
686
|
+
* advances the stage in a second write, so the pair can be interrupted between
|
|
687
|
+
* them — and resume reporting success there would leave the change stuck at
|
|
688
|
+
* `frame` with nothing saying so.
|
|
689
|
+
*
|
|
690
|
+
* "The expected pack" is the pack's own staleness test, not a new one: its
|
|
691
|
+
* `contractHash` must still equal `contractScopeHash(contract)`, which is
|
|
692
|
+
* exactly what `open` and the gate already mean by a stale pack. A mismatch
|
|
693
|
+
* (or a brief that will not parse) is therefore REGENERATED rather than
|
|
694
|
+
* refused: a pack is derived, unsigned material with a documented cure, and
|
|
695
|
+
* `runPack` is that cure. Nothing here is the owner's own writing to preserve —
|
|
696
|
+
* unlike the Intent, the Delta and the Flow proposal above, every one of which
|
|
697
|
+
* fails closed on a difference.
|
|
698
|
+
*/
|
|
699
|
+
async function completePack(worktree, contract) {
|
|
700
|
+
const contractId = contract.id;
|
|
701
|
+
if (!(await packIsCurrent(worktree, contract))) {
|
|
702
|
+
// Writes the brief and advances the stage — both postconditions at once.
|
|
703
|
+
await runPack({ cwd: worktree, contractId });
|
|
704
|
+
return { completed: [`pack ${contractId}`], alreadyPresent: [] };
|
|
705
|
+
}
|
|
706
|
+
if (stageIndex(contract.stage) < stageIndex('pack')) {
|
|
707
|
+
const advanced = { ...contract, stage: 'pack' };
|
|
708
|
+
writeContract(worktree, advanced, renderContractBody(advanced));
|
|
709
|
+
return { completed: [`contract stage → pack`], alreadyPresent: [`pack ${contractId}`] };
|
|
710
|
+
}
|
|
711
|
+
return { completed: [], alreadyPresent: [`pack ${contractId}`] };
|
|
712
|
+
}
|
|
713
|
+
/**
|
|
714
|
+
* The pack on disk is the brief this contract produces right now — the BODY, not
|
|
715
|
+
* merely a matching `contractHash`.
|
|
716
|
+
*
|
|
717
|
+
* The hash stays, and stays first: it is exactly what `open` and the gate mean by
|
|
718
|
+
* a stale pack, and it is cheap. But it lives in the FRONTMATTER, so an emptied
|
|
719
|
+
* or edited brief carrying the original hash was read as current — and the brief
|
|
720
|
+
* is the entire thing the builder is handed. So the body is compared against a
|
|
721
|
+
* regenerated one from `packBrief`, the same function `runPack` writes from.
|
|
722
|
+
*
|
|
723
|
+
* ponytail: the brief embeds the ledger-derived progress note and the Intent
|
|
724
|
+
* body, so resuming a lane where a check has already run will see a legitimate
|
|
725
|
+
* mismatch and rebuild. That is non-destructive — derived, unsigned material
|
|
726
|
+
* whose documented cure is `runPack` — but it dirties the lane and costs one
|
|
727
|
+
* re-`check`. Narrow the comparison only if that turns out to bite; resume's real
|
|
728
|
+
* case is a lane framed moments ago, where the two briefs are identical.
|
|
729
|
+
*/
|
|
730
|
+
async function packIsCurrent(worktree, contract) {
|
|
731
|
+
if (!packExists(worktree, contract.id)) {
|
|
732
|
+
return false;
|
|
733
|
+
}
|
|
734
|
+
try {
|
|
735
|
+
const onDisk = readPack(worktree, contract.id);
|
|
736
|
+
if (onDisk.data.contractHash !== contractScopeHash(contract)) {
|
|
737
|
+
return false;
|
|
738
|
+
}
|
|
739
|
+
return sameBody(onDisk.body, (await packBrief({ cwd: worktree, contractId: contract.id })).brief);
|
|
740
|
+
}
|
|
741
|
+
catch {
|
|
742
|
+
// Unreadable is not "conflicting" — it is a derived file that cannot be
|
|
743
|
+
// trusted to be the expected brief, so it is rebuilt from the contract. A
|
|
744
|
+
// `packBrief` that refuses for a real reason raises it properly from
|
|
745
|
+
// `runPack` a moment later.
|
|
746
|
+
return false;
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
/**
|
|
750
|
+
* A record's body as it comes BACK off disk, against the body a write would put
|
|
751
|
+
* there. `writeMarkdownRecord` pads with a newline either side and
|
|
752
|
+
* `readMarkdownRecord` trims, so the comparison is against the trimmed form —
|
|
753
|
+
* one place that knows this, rather than one per record kind.
|
|
754
|
+
*/
|
|
755
|
+
function sameBody(onDisk, expected) {
|
|
756
|
+
return onDisk === expected.trim();
|
|
757
|
+
}
|
|
758
|
+
/**
|
|
759
|
+
* The tier is read back off the contract on resume rather than recomputed. It
|
|
760
|
+
* was decided deterministically when the contract was framed, and recomputing
|
|
761
|
+
* it against a tree that has since moved could only ever disagree with the
|
|
762
|
+
* record everything downstream already binds to.
|
|
763
|
+
*/
|
|
764
|
+
function tierFromContract(contract) {
|
|
765
|
+
return {
|
|
766
|
+
fromAnswers: contract.tier,
|
|
767
|
+
fromFiles: contract.tier,
|
|
768
|
+
tier: contract.tier,
|
|
769
|
+
raisedByFiles: false,
|
|
770
|
+
};
|
|
771
|
+
}
|
|
772
|
+
function writeApprovedIntent(worktree, contract, proposal) {
|
|
773
|
+
const intent = intentFor(proposal, contract.id, new Date(contract.createdAt));
|
|
774
|
+
writeIntent(worktree, intent, approvedIntentBody(proposal, contract.tier));
|
|
775
|
+
const linked = { ...contract, intent: intent.id };
|
|
776
|
+
writeContract(worktree, linked, renderContractBody(linked));
|
|
777
|
+
return intent;
|
|
778
|
+
}
|
|
779
|
+
/**
|
|
780
|
+
* The Delta (existing Flow) or the Planned Flow proposal (new Flow). Technical
|
|
781
|
+
* work writes neither — honest technical work invents no Flow.
|
|
782
|
+
*
|
|
783
|
+
* On a first run an existing record is an error: nothing should be there. On a
|
|
784
|
+
* resume an IDENTICAL record is the interrupted run's own work and is left
|
|
785
|
+
* alone, while a DIFFERENT one fails closed. That asymmetry is the whole point
|
|
786
|
+
* of the flag — "already there" means something different depending on whether
|
|
787
|
+
* this run is meant to have created it.
|
|
788
|
+
*/
|
|
789
|
+
function writePlanRecords(worktree, contractId, proposal, now, options = {}) {
|
|
790
|
+
const completed = [];
|
|
791
|
+
const alreadyPresent = [];
|
|
792
|
+
if (proposal.kind === 'existing-flow') {
|
|
793
|
+
// Found by its `contractId`, never by recomputing the id: a Delta id embeds
|
|
794
|
+
// the instant it was made, so a later run would compute a different one and
|
|
795
|
+
// write a duplicate beside the record it was meant to recognise.
|
|
796
|
+
const existing = findDeltaForContract(worktree, contractId);
|
|
797
|
+
if (existing) {
|
|
798
|
+
if (!options.resuming) {
|
|
799
|
+
throw new Error(`a delta "${existing.id}" already exists in the lane`);
|
|
800
|
+
}
|
|
801
|
+
// The WHOLE record, not a couple of fields. `today`, `keep`, `assumptions`
|
|
802
|
+
// and `showMe` are every bit as much the owner's approved terms as
|
|
803
|
+
// `instead` is, and comparing a subset is how an edited record gets
|
|
804
|
+
// reported as "already there, unchanged". `id` is excluded because a
|
|
805
|
+
// Delta id embeds the instant it was made, so a second run computes a
|
|
806
|
+
// different one for the same content.
|
|
807
|
+
if (!sameRecordIgnoring(existing, deltaFor(proposal, contractId, now), ['id', 'createdAt'])) {
|
|
808
|
+
throw new UserError(`A different Delta (${existing.id}) is already bound to ${contractId}.`, {
|
|
809
|
+
command: `prismatica delta show ${existing.id}`,
|
|
810
|
+
why: 'nothing was overwritten — the Delta on disk may be the one you edited',
|
|
811
|
+
});
|
|
812
|
+
}
|
|
813
|
+
alreadyPresent.push(`delta ${existing.id}`);
|
|
814
|
+
return { delta: existing, plannedFlow: null, completed, alreadyPresent };
|
|
815
|
+
}
|
|
816
|
+
const delta = deltaFor(proposal, contractId, now);
|
|
817
|
+
writeDelta(worktree, delta, renderDeltaBody(delta));
|
|
818
|
+
completed.push(`delta ${delta.id}`);
|
|
819
|
+
return { delta, plannedFlow: null, completed, alreadyPresent };
|
|
820
|
+
}
|
|
821
|
+
if (proposal.kind === 'new-flow') {
|
|
822
|
+
const id = proposal.plannedFlow.id;
|
|
823
|
+
if (flowProposalExists(worktree, id)) {
|
|
824
|
+
if (!options.resuming) {
|
|
825
|
+
throw new Error(`a proposal for "${id}" already exists`);
|
|
826
|
+
}
|
|
827
|
+
const onDisk = readFlowProposal(worktree, id).data;
|
|
828
|
+
// Again the whole record: a Planned Flow's steps, variations, rules and
|
|
829
|
+
// touchpoints are the substance of it, and `status` plus `goal` are two
|
|
830
|
+
// fields that two genuinely different proposals can share.
|
|
831
|
+
if (!sameRecordIgnoring(onDisk, plannedFlowFor(proposal, now), ['createdAt'])) {
|
|
832
|
+
throw new UserError(`A different proposal for "${id}" already exists in this lane.`, {
|
|
833
|
+
command: `prismatica flow show ${id}`,
|
|
834
|
+
why: 'nothing was overwritten — review what is there before replacing it',
|
|
835
|
+
});
|
|
836
|
+
}
|
|
837
|
+
alreadyPresent.push(`flow proposal ${id}`);
|
|
838
|
+
return { delta: null, plannedFlow: onDisk, completed, alreadyPresent };
|
|
839
|
+
}
|
|
840
|
+
const plannedFlow = plannedFlowFor(proposal, now);
|
|
841
|
+
writeFlowProposal(worktree, plannedFlow, renderFlowProposalBody(plannedFlow));
|
|
842
|
+
completed.push(`flow proposal ${plannedFlow.id}`);
|
|
843
|
+
return { delta: null, plannedFlow, completed, alreadyPresent };
|
|
844
|
+
}
|
|
845
|
+
return { delta: null, plannedFlow: null, completed, alreadyPresent };
|
|
846
|
+
}
|
|
847
|
+
function describe(error) {
|
|
848
|
+
return error instanceof Error ? error.message : String(error);
|
|
849
|
+
}
|
|
850
|
+
/**
|
|
851
|
+
* The Intent body: the complete approved plan meaning, deterministically rendered.
|
|
852
|
+
*
|
|
853
|
+
* It reads EXACTLY the two things `--resume` has already pinned, and nothing
|
|
854
|
+
* else. That is the load-bearing property rather than a tidiness one: resume
|
|
855
|
+
* has to tell the interrupted run's own Intent from an altered one, and the
|
|
856
|
+
* frontmatter cannot answer it — `IntentSchema` carries a title, up to four
|
|
857
|
+
* check descriptions and a timestamp, while the BODY carries the plan, and
|
|
858
|
+
* `pack` and `review` both embed that body VERBATIM, so an unchecked one
|
|
859
|
+
* reaches the builder and the reviewer as the plan the owner approved.
|
|
860
|
+
*
|
|
861
|
+
* The two inputs, and why they are the only two admissible:
|
|
862
|
+
*
|
|
863
|
+
* - the plan's MEANING — `proposal` with `snapshot` dropped, which is
|
|
864
|
+
* precisely what `startPlanHash` hashes and therefore precisely what
|
|
865
|
+
* `verifyResumable` has already proved identical. `snapshot` is TRANSPORT
|
|
866
|
+
* and is excluded there because including it "would make every plan
|
|
867
|
+
* unresumable"; reading it here reintroduced that exact defect one layer
|
|
868
|
+
* down, in both the provenance line and the embedded JSON. Two documents
|
|
869
|
+
* that legitimately pass the resume gate can echo different snapshots — the
|
|
870
|
+
* hand-off lives in an OS temp directory the system may reap, so
|
|
871
|
+
* re-exporting and re-planning is an ordinary recovery, not an edge case —
|
|
872
|
+
* and resume answered that with "a different approved intent is already in
|
|
873
|
+
* this lane", a false refusal over the one field the binding says is not
|
|
874
|
+
* part of the plan. Equal `planHash` now implies an equal body BY
|
|
875
|
+
* CONSTRUCTION, rather than by an audit of which inputs happen to be stable.
|
|
876
|
+
* The snapshot is not lost as decision context: `printProposal` shows it
|
|
877
|
+
* before the owner's yes, drift against it is reported, and the echo itself
|
|
878
|
+
* is proved genuine by `verifyHandoffSnapshot`. It is deliberately not a
|
|
879
|
+
* durable part of the approved meaning.
|
|
880
|
+
* - the tier is the contract's own `tier`, the value everything downstream
|
|
881
|
+
* already binds to, with no "raised from X by the files it touches" note.
|
|
882
|
+
* That note needs `fromAnswers`, which needs `config.defaultTier` and the
|
|
883
|
+
* repo's `tierRules` — the very inputs `tierFromContract` exists to keep
|
|
884
|
+
* resume independent of, since a repo whose rules moved must not strand a
|
|
885
|
+
* half-created change. The fact still reaches the owner: `issueText` puts it
|
|
886
|
+
* in the issue body, and `printProposal` shows it before they confirm.
|
|
887
|
+
*
|
|
888
|
+
* Requiring an exact body is the kind of rule that can refuse to READ a record
|
|
889
|
+
* already on disk, which this codebase guards against (`Contract.planHash`, the
|
|
890
|
+
* `builder` pattern). It is safe here for the same reason it was safe there:
|
|
891
|
+
* `--resume` ships in this change, so no Intent any resume can reach predates
|
|
892
|
+
* this body.
|
|
893
|
+
*/
|
|
894
|
+
function approvedIntentBody(proposal, tier) {
|
|
895
|
+
// Dropped at the top, in the same spelling `startPlanHash` uses, so every
|
|
896
|
+
// interpolation below is provably one of the fields that hash pins — there is
|
|
897
|
+
// no `proposal.` left in the template to reach the snapshot through.
|
|
898
|
+
const { snapshot: _snapshot, ...meaning } = proposal;
|
|
899
|
+
return `# Approved intent: ${meaning.summary}
|
|
900
|
+
|
|
901
|
+
The owner imported this plan and confirmed the change. Its approved meaning is
|
|
902
|
+
recorded here verbatim; the transport snapshot is deliberately omitted.
|
|
903
|
+
|
|
904
|
+
- **Kind:** ${meaning.kind}
|
|
905
|
+
- **Risk tier:** ${tier}
|
|
906
|
+
- **Builder:** ${meaning.builder}
|
|
907
|
+
|
|
908
|
+
## What the owner asked for
|
|
909
|
+
|
|
910
|
+
This is the wording the owner and the planning agent settled on together, taken
|
|
911
|
+
from the plan itself — not a description reconstructed afterwards.
|
|
912
|
+
|
|
913
|
+
> ${meaning.request.split('\n').join('\n> ')}
|
|
914
|
+
|
|
915
|
+
## Why
|
|
916
|
+
|
|
917
|
+
${meaning.rationale}
|
|
918
|
+
|
|
919
|
+
## Today
|
|
920
|
+
|
|
921
|
+
${meaning.currentBehaviour}
|
|
922
|
+
|
|
923
|
+
## Instead
|
|
924
|
+
|
|
925
|
+
${meaning.desiredBehaviour}
|
|
926
|
+
|
|
927
|
+
## Advisory — the planning agent's reading, not established fact
|
|
928
|
+
|
|
929
|
+
The two lists below are the planning agent's interpretation. Deterministic code
|
|
930
|
+
checked that this plan is complete, in scope, correctly bound, and correctly
|
|
931
|
+
tiered; it did not and cannot check whether this reading of the app is right.
|
|
932
|
+
Verify them against the code.
|
|
933
|
+
|
|
934
|
+
**Assumptions**
|
|
935
|
+
|
|
936
|
+
${meaning.assumptions.length === 0 ? '_none stated_' : meaning.assumptions.map((a) => `- ${a}`).join('\n')}
|
|
937
|
+
|
|
938
|
+
**Possible conflicts**
|
|
939
|
+
|
|
940
|
+
${meaning.possibleConflicts.length === 0 ? '_none stated_' : meaning.possibleConflicts.map((c) => `- ${c}`).join('\n')}
|
|
941
|
+
|
|
942
|
+
## The complete approved plan
|
|
943
|
+
|
|
944
|
+
\`\`\`json
|
|
945
|
+
${JSON.stringify(meaning, null, 2)}
|
|
946
|
+
\`\`\`
|
|
947
|
+
`;
|
|
948
|
+
}
|
|
949
|
+
// ── Printing ─────────────────────────────────────────────────────────────────
|
|
950
|
+
const KIND_LABEL = {
|
|
951
|
+
'existing-flow': 'a change to an existing Flow',
|
|
952
|
+
'new-flow': 'a genuinely new Flow',
|
|
953
|
+
technical: 'technical work (no product Flow)',
|
|
954
|
+
};
|
|
955
|
+
const RISK_LABEL = [
|
|
956
|
+
{ key: 'touchesAuth', label: 'touches authentication' },
|
|
957
|
+
{ key: 'touchesPayments', label: 'touches payments' },
|
|
958
|
+
{ key: 'touchesSavedData', label: 'touches saved data' },
|
|
959
|
+
{ key: 'copyOnly', label: 'copy/colour/spacing only' },
|
|
960
|
+
];
|
|
961
|
+
/**
|
|
962
|
+
* The whole plan, and nothing summarised away.
|
|
963
|
+
*
|
|
964
|
+
* The REQUEST comes first, because everything below is an answer to it and the
|
|
965
|
+
* owner cannot judge an answer without seeing the question it was given. Then
|
|
966
|
+
* every consequence the confirmation actually buys — the scope, the Delta or
|
|
967
|
+
* Planned Flow in full, the exclusions, the desired rules, the risk answers
|
|
968
|
+
* behind the tier, and the exact GitHub issue bytes. A preview that shows only
|
|
969
|
+
* the headline fields asks for consent to a document the owner has not read.
|
|
970
|
+
*/
|
|
971
|
+
export function printProposal(proposal, tier, warnings, issue, resuming = null, existingIssue, width = ui.terminalWidth()) {
|
|
972
|
+
console.log('');
|
|
973
|
+
if (resuming) {
|
|
974
|
+
console.log(ui.warn(`Finishing ${resuming.contract.id} — its lane already exists.`));
|
|
975
|
+
console.log(ui.dim(` ${resuming.worktree}`));
|
|
976
|
+
console.log(ui.dim(' Records already there and identical are kept; only what is missing is written.'));
|
|
977
|
+
console.log('');
|
|
978
|
+
}
|
|
979
|
+
console.log(ui.bold('What you asked for'));
|
|
980
|
+
console.log('');
|
|
981
|
+
for (const line of proposal.request.split('\n')) {
|
|
982
|
+
console.log(` ${line}`);
|
|
983
|
+
}
|
|
984
|
+
console.log('');
|
|
985
|
+
console.log(ui.bold(proposal.summary));
|
|
986
|
+
console.log('');
|
|
987
|
+
console.log(ui.field('What', KIND_LABEL[proposal.kind], { width }));
|
|
988
|
+
if (proposal.flowId) {
|
|
989
|
+
console.log(ui.field('Flow', proposal.flowId, { width }));
|
|
990
|
+
}
|
|
991
|
+
console.log(ui.field('Why', proposal.rationale, { width }));
|
|
992
|
+
console.log(ui.field('Today', proposal.currentBehaviour, { width }));
|
|
993
|
+
console.log(ui.field('Instead', proposal.desiredBehaviour, { width }));
|
|
994
|
+
console.log(ui.field('Risk tier', tier.raisedByFiles
|
|
995
|
+
? `${tier.tier} (raised from ${tier.fromAnswers} by the files it touches)`
|
|
996
|
+
: tier.tier, { width }));
|
|
997
|
+
console.log(ui.field('Builder', proposal.builder, { width }));
|
|
998
|
+
console.log('');
|
|
999
|
+
console.log(ui.bold('Scope'));
|
|
1000
|
+
for (const glob of proposal.scope.allow) {
|
|
1001
|
+
console.log(ui.bullet(glob, { width }));
|
|
1002
|
+
}
|
|
1003
|
+
for (const glob of proposal.scope.forbid) {
|
|
1004
|
+
console.log(ui.bullet(`never: ${glob}`, { width }));
|
|
1005
|
+
}
|
|
1006
|
+
// The tier is a deterministic decision, so the answers behind it are shown
|
|
1007
|
+
// rather than left to be inferred from the one word it produced.
|
|
1008
|
+
console.log('');
|
|
1009
|
+
console.log(ui.bold('Risk answers'));
|
|
1010
|
+
for (const { key, label } of RISK_LABEL) {
|
|
1011
|
+
console.log(ui.bullet(`${label}: ${proposal.risk[key] ? 'yes' : 'no'}`, { width }));
|
|
1012
|
+
}
|
|
1013
|
+
console.log(ui.bullet(`why: ${proposal.risk.rationale}`, { width }));
|
|
1014
|
+
if (proposal.mustNotChange.length > 0) {
|
|
1015
|
+
console.log('');
|
|
1016
|
+
console.log(ui.bold('Must not change'));
|
|
1017
|
+
for (const item of proposal.mustNotChange) {
|
|
1018
|
+
console.log(ui.bullet(item, { width }));
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
if (proposal.exclusions.length > 0) {
|
|
1022
|
+
console.log('');
|
|
1023
|
+
console.log(ui.bold('Deliberately excluded'));
|
|
1024
|
+
for (const item of proposal.exclusions) {
|
|
1025
|
+
console.log(ui.bullet(item, { width }));
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
if (proposal.desiredRules.length > 0) {
|
|
1029
|
+
console.log('');
|
|
1030
|
+
console.log(ui.bold('Desired rules — contract constraints, not app truth'));
|
|
1031
|
+
for (const rule of proposal.desiredRules) {
|
|
1032
|
+
console.log(ui.bullet(rule, { width }));
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
console.log('');
|
|
1036
|
+
console.log(ui.bold('Done when'));
|
|
1037
|
+
for (const check of proposal.acceptance) {
|
|
1038
|
+
console.log(ui.bullet(`${check.description} — proven by ${check.test}`, { width }));
|
|
1039
|
+
}
|
|
1040
|
+
if (proposal.docsDelta.length > 0) {
|
|
1041
|
+
console.log('');
|
|
1042
|
+
console.log(ui.bold('Docs that must change'));
|
|
1043
|
+
for (const file of proposal.docsDelta) {
|
|
1044
|
+
console.log(ui.bullet(file, { width }));
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
// The Delta and the Planned Flow are records this confirmation WRITES, so
|
|
1048
|
+
// they are shown in the same detail the owner would see in `delta show` or
|
|
1049
|
+
// `flow show` — not reduced to an id.
|
|
1050
|
+
if (proposal.delta) {
|
|
1051
|
+
console.log('');
|
|
1052
|
+
console.log(ui.bold('The Flow Delta this will record (approved)'));
|
|
1053
|
+
if (proposal.delta.step !== undefined) {
|
|
1054
|
+
console.log(ui.field('Step', String(proposal.delta.step), { width }));
|
|
1055
|
+
}
|
|
1056
|
+
console.log(ui.field('Today', proposal.delta.today, { width }));
|
|
1057
|
+
console.log(ui.field('Instead', proposal.delta.instead, { width }));
|
|
1058
|
+
console.log(ui.field('Show me', proposal.delta.showMe, { width }));
|
|
1059
|
+
for (const item of proposal.delta.keep) {
|
|
1060
|
+
console.log(ui.bullet(`keep: ${item}`, { width }));
|
|
1061
|
+
}
|
|
1062
|
+
for (const item of proposal.delta.assumptions) {
|
|
1063
|
+
console.log(ui.bullet(`assumes: ${item}`, { width }));
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
if (proposal.plannedFlow) {
|
|
1067
|
+
const flow = proposal.plannedFlow;
|
|
1068
|
+
console.log('');
|
|
1069
|
+
console.log(ui.bold(`The Planned Flow this will propose — ${flow.id}`));
|
|
1070
|
+
console.log(ui.field('Goal', flow.truth.goal, { width }));
|
|
1071
|
+
console.log(ui.field('Starts when', flow.truth.startsWhen, { width }));
|
|
1072
|
+
console.log(ui.field('Ends with', flow.truth.endsWith, { width }));
|
|
1073
|
+
flow.truth.steps.forEach((step, index) => {
|
|
1074
|
+
console.log(ui.bullet(`${index + 1}. ${step.actor} — ${step.action}`, { width }));
|
|
1075
|
+
});
|
|
1076
|
+
for (const touchpoint of flow.mechanics.touchpoints) {
|
|
1077
|
+
console.log(ui.bullet(`lives in: ${touchpoint}`, { width }));
|
|
1078
|
+
}
|
|
1079
|
+
console.log(ui.dim(' Proposed as `planned` — nothing here is marked as working.'));
|
|
1080
|
+
}
|
|
1081
|
+
if (proposal.assumptions.length > 0 || proposal.possibleConflicts.length > 0) {
|
|
1082
|
+
console.log('');
|
|
1083
|
+
console.log(ui.bold('Advisory — the planning agent’s reading, not checked'));
|
|
1084
|
+
for (const item of [...proposal.assumptions, ...proposal.possibleConflicts]) {
|
|
1085
|
+
console.log(ui.bullet(item, { width }));
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
// Show the outward effect exactly: either the existing issue that will be
|
|
1089
|
+
// linked, or the complete bytes `gh issue create` will receive.
|
|
1090
|
+
if (!resuming) {
|
|
1091
|
+
console.log('');
|
|
1092
|
+
if (existingIssue) {
|
|
1093
|
+
console.log(ui.bold('The existing GitHub issue this will link'));
|
|
1094
|
+
console.log(ui.dim(` ${existingIssue}`));
|
|
1095
|
+
}
|
|
1096
|
+
else {
|
|
1097
|
+
console.log(ui.bold('The GitHub issue this will file'));
|
|
1098
|
+
console.log('');
|
|
1099
|
+
console.log(ui.dim(` ${issue.title}`));
|
|
1100
|
+
for (const line of issue.body.split('\n')) {
|
|
1101
|
+
console.log(ui.dim(` ${line}`));
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
for (const warning of warnings) {
|
|
1106
|
+
console.log('');
|
|
1107
|
+
console.log(ui.warn(`! ${warning}`));
|
|
1108
|
+
}
|
|
1109
|
+
console.log('');
|
|
1110
|
+
console.log(ui.dim(resuming ? 'Nothing has been written yet.' : 'Nothing has been created yet.'));
|
|
1111
|
+
}
|
|
1112
|
+
export function printStartOutcome(outcome) {
|
|
1113
|
+
if (outcome.kind === 'declined') {
|
|
1114
|
+
console.log('');
|
|
1115
|
+
console.log(ui.dim('Not started. Nothing was created.'));
|
|
1116
|
+
console.log('');
|
|
1117
|
+
console.log('The plan is still on disk. When you are ready:');
|
|
1118
|
+
console.log(` ${ui.bold(outcome.resumeCommand)}`);
|
|
1119
|
+
return;
|
|
1120
|
+
}
|
|
1121
|
+
if (outcome.kind === 'resumed') {
|
|
1122
|
+
console.log(ui.ok(`✓ resumed ${outcome.contract.id}`));
|
|
1123
|
+
console.log('');
|
|
1124
|
+
for (const item of outcome.completed) {
|
|
1125
|
+
console.log(` ${ui.bold('wrote')} ${item}`);
|
|
1126
|
+
}
|
|
1127
|
+
for (const item of outcome.alreadyPresent) {
|
|
1128
|
+
console.log(` ${ui.dim('kept')} ${item}`);
|
|
1129
|
+
}
|
|
1130
|
+
console.log('');
|
|
1131
|
+
console.log(ui.bold('Next'));
|
|
1132
|
+
const builder = outcome.contract.builder ?? DEFAULT_BUILDER;
|
|
1133
|
+
console.log(` ${ui.bold(`prismatica open ${builder} ${outcome.contract.id}`)}`);
|
|
1134
|
+
return;
|
|
1135
|
+
}
|
|
1136
|
+
const { contract } = outcome;
|
|
1137
|
+
console.log(ui.ok(`✓ started ${contract.id}`));
|
|
1138
|
+
console.log('');
|
|
1139
|
+
console.log(` ${ui.bold('issue')} ${outcome.issue}`);
|
|
1140
|
+
console.log(` ${ui.bold('tier')} ${contract.tier}`);
|
|
1141
|
+
console.log(` ${ui.bold('lane')} ${outcome.worktree}`);
|
|
1142
|
+
console.log(` ${ui.bold('intent')} ${outcome.intent.id}`);
|
|
1143
|
+
if (outcome.delta) {
|
|
1144
|
+
console.log(` ${ui.bold('delta')} ${outcome.delta.id} → ${outcome.delta.flowId}`);
|
|
1145
|
+
}
|
|
1146
|
+
if (outcome.plannedFlow) {
|
|
1147
|
+
console.log(` ${ui.bold('flow')} ${outcome.plannedFlow.id} (planned — approve it once it is built)`);
|
|
1148
|
+
}
|
|
1149
|
+
// Never let "started" quietly imply "guarded". The hook is a Claude-Code
|
|
1150
|
+
// quality layer over the scope backstop `check`/`gate` always apply, so a
|
|
1151
|
+
// failed install is not fatal — but it is the owner's to know about.
|
|
1152
|
+
if (!outcome.hookInstalled) {
|
|
1153
|
+
console.log('');
|
|
1154
|
+
console.log(ui.warn('! the Claude Code scope hook was NOT installed in this lane'));
|
|
1155
|
+
console.log(ui.dim(' check and gate still enforce scope for every agent — reinstall with: prismatica init --hooks'));
|
|
1156
|
+
}
|
|
1157
|
+
console.log('');
|
|
1158
|
+
console.log(ui.bold('Next'));
|
|
1159
|
+
console.log(' Hand the brief to your builder:');
|
|
1160
|
+
const builder = contract.builder ?? DEFAULT_BUILDER;
|
|
1161
|
+
console.log(` ${ui.bold(`prismatica open ${builder} ${contract.id}`)}`);
|
|
1162
|
+
console.log(` ${ui.bold(`prismatica open --copy ${contract.id}`)} ${ui.dim('(copies the brief)')}`);
|
|
1163
|
+
}
|
|
1164
|
+
//# sourceMappingURL=start.js.map
|