dsh-pstack 0.3.0-beta.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +122 -76
- package/README.zh.md +116 -70
- package/assets/agent-presets.png +0 -0
- package/assets/plugin-configure.png +0 -0
- package/assets/plugin-recommended.png +0 -0
- package/assets/plugin-roles.png +0 -0
- package/assets/session-preset.png +0 -0
- package/cordis.patch.yml +332 -24
- package/dist/budget.d.mts +82 -0
- package/dist/budget.mjs +293 -0
- package/dist/catalogue-wgVaGeUx.d.mts +27 -0
- package/dist/catalogue.d.mts +2 -0
- package/dist/catalogue.mjs +116 -0
- package/dist/client.js +4072 -0
- package/dist/index.d.mts +2 -87
- package/dist/index.mjs +3 -394
- package/dist/models.d.mts +11 -40
- package/dist/models.mjs +47 -107
- package/dist/paths.d.mts +13 -0
- package/dist/paths.mjs +26 -0
- package/dist/poteto-mode.d.mts +37 -0
- package/dist/poteto-mode.mjs +61 -0
- package/dist/preset-copy.d.mts +12 -0
- package/dist/preset-copy.mjs +64 -0
- package/dist/preset.d.mts +31 -0
- package/dist/preset.mjs +51 -0
- package/dist/pstack/docs/harness/dsh.md +40 -40
- package/dist/pstack/plugin.json +21 -0
- package/dist/pstack/skills/poteto-mode/scripts/bootstrap.ts +62 -0
- package/dist/pstack/skills/poteto-mode/scripts/bun.lock +67 -0
- package/dist/pstack/skills/poteto-mode/scripts/check-plan.mjs +70 -83
- package/dist/pstack/skills/poteto-mode/scripts/{check-plan.test.mjs → check-plan.test.ts} +24 -42
- package/dist/pstack/skills/poteto-mode/scripts/package.json +16 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.ts +224 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/cli.ts +223 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +129 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/github.test.ts +498 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/github.ts +726 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.ts +482 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/policy.ts +842 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/render.ts +169 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/tsconfig.json +13 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/types.compile.ts +93 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/types.ts +414 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr +6 -0
- package/dist/pstack/skills/poteto-mode/scripts/worktree-audit.sh +134 -0
- package/dist/pstack/skills/show-me-your-work/scripts/log.sh +42 -0
- package/dist/pstack/skills/statechart/scripts/backends/cfg.ts +33 -0
- package/dist/pstack/skills/statechart/scripts/backends/mermaid.ts +201 -0
- package/dist/pstack/skills/statechart/scripts/backends/plain-text.ts +72 -0
- package/dist/pstack/skills/statechart/scripts/backends/report.ts +177 -0
- package/dist/pstack/skills/statechart/scripts/frontends/config.ts +276 -0
- package/dist/pstack/skills/statechart/scripts/frontends/dot.ts +74 -0
- package/dist/pstack/skills/statechart/scripts/frontends/marks.ts +93 -0
- package/dist/pstack/skills/statechart/scripts/frontends/messages.ts +52 -0
- package/dist/pstack/skills/statechart/scripts/frontends/spec.ts +114 -0
- package/dist/pstack/skills/statechart/scripts/frontends/trace.ts +24 -0
- package/dist/pstack/skills/statechart/scripts/frontends/value.ts +166 -0
- package/dist/pstack/skills/statechart/scripts/frontends/verdict.ts +40 -0
- package/dist/pstack/skills/statechart/scripts/frontends/view.ts +119 -0
- package/dist/pstack/skills/statechart/scripts/ir.ts +547 -0
- package/dist/pstack/skills/statechart/scripts/package.json +11 -0
- package/dist/pstack/skills/statechart/scripts/passes/annotate.ts +128 -0
- package/dist/pstack/skills/statechart/scripts/passes/label.ts +269 -0
- package/dist/pstack/skills/statechart/scripts/passes/lift.ts +85 -0
- package/dist/pstack/skills/statechart/scripts/passes/loop-check.ts +68 -0
- package/dist/pstack/skills/statechart/scripts/passes/paths.ts +60 -0
- package/dist/pstack/skills/statechart/scripts/passes/reach.ts +135 -0
- package/dist/pstack/skills/statechart/scripts/passes/region-check.ts +97 -0
- package/dist/pstack/skills/statechart/scripts/passes/regions.ts +295 -0
- package/dist/pstack/skills/statechart/scripts/pipeline.ts +76 -0
- package/dist/pstack/skills/statechart/scripts/run.ts +481 -0
- package/dist/pstack/skills/statechart/scripts/statechart +29 -0
- package/dist/pstack/skills/statechart/scripts/statechart.ts +164 -0
- package/dist/pstack/skills/statechart/scripts/test/ConfigOracle.java +63 -0
- package/dist/pstack/skills/statechart/scripts/test/chart.test.ts +1210 -0
- package/dist/pstack/skills/statechart/scripts/test/charts/Braces.mmd +7 -0
- package/dist/pstack/skills/statechart/scripts/test/charts/Escapes.mmd +11 -0
- package/dist/pstack/skills/statechart/scripts/test/charts/Phases.mmd +29 -0
- package/dist/pstack/skills/statechart/scripts/test/cli.test.ts +1314 -0
- package/dist/pstack/skills/statechart/scripts/test/config-fuzz.test.ts +263 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Counter/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Counter/Counter.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Counter/Counter.tla +10 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Counter/chart.mmd +9 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Counter/graph.dot +16 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Counter/report.md +7 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Counter/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Counter/verdict-1.out +49 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/ChartRun.out +60 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/CounterAction.cfg +4 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/CounterAction.tla +22 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/chart.mmd +26 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/graph.dot +19 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/report.md +20 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-1.out +56 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-2.out +82 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-3.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/ChartRun.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/CounterDeadlock.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/CounterDeadlock.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/chart.mmd +22 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/graph.dot +16 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/report.md +17 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-1.out +56 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-2.out +77 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/ChartRun.out +69 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/CounterFan.cfg +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/CounterFan.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/chart.mmd +85 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/graph.dot +70 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/report.md +12 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/verdict-1.out +67 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterFan/verdict-2.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/ChartRun.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/ChartRun.out +85 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/CounterGuard.cfg +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/CounterGuard.tla +13 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/chart.mmd +5 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/graph.dot +10 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/report.md +31 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/verdict-1.out +64 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterGuard/verdict-2.out +77 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/ChartRun.out +55 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/CounterInitPast.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/CounterInitPast.tla +10 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/chart.mmd +12 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/graph.dot +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/report.md +12 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-1.out +33 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-2.out +54 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/ChartRun.out +54 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/CounterInitPastHolds.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/CounterInitPastHolds.tla +10 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/chart.mmd +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/graph.dot +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/report.md +7 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/verdict-1.out +46 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/ChartRun.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/CounterInstance.cfg +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/CounterInstance.tla +10 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/CounterSteps.tla +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/chart.mmd +17 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/graph.dot +15 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/report.md +14 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/sany.out +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterInstance/verdict-1.out +78 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/ChartRun.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/CounterJump.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/CounterJump.tla +19 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/chart.mmd +26 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/graph.dot +22 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/report.md +12 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/verdict-1.out +58 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterJump/verdict-2.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/CounterLoop.cfg +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/CounterLoop.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/chart.mmd +17 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/graph.dot +15 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/report.md +14 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterLoop/verdict-1.out +76 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/ChartRun.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/CounterOrder.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/CounterOrder.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/chart.mmd +19 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/graph.dot +10 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/report.md +15 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/verdict-1.out +56 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterOrder/verdict-2.out +67 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/ChartRun.out +62 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/CounterRules.cfg +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/CounterRules.tla +24 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/Moves.tla +5 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/chart.mmd +22 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/graph.dot +10 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/report.md +23 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/sany.out +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-1.out +58 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-2.out +66 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-3.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-3.out +74 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-4.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/ChartRun.out +58 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/CounterStart.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/CounterStart.tla +15 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/chart.mmd +18 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/graph.dot +13 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/report.md +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/verdict-1.out +33 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStart/verdict-2.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStop/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStop/CounterStop.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStop/CounterStop.tla +15 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStop/chart.mmd +7 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStop/graph.dot +13 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStop/report.md +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStop/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterStop/verdict-1.out +49 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/ChartRun.out +61 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/CounterTie.cfg +4 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/CounterTie.tla +14 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/chart.mmd +30 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/graph.dot +19 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/report.md +27 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-1.out +56 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-2.out +64 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-3.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-3.out +87 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-4.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/ChartRun.out +60 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/CounterTieInGraph.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/CounterTieInGraph.tla +12 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/chart.mmd +23 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/graph.dot +19 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/report.md +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-1.out +56 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-2.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/ChartRun.out +61 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/CounterView.cfg +4 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/CounterView.tla +14 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/chart.mmd +23 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/graph.dot +19 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/report.md +27 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-1.out +56 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-2.out +64 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-3.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-3.out +87 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-4.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/CounterView/view.mjs +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/ChartRun.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/DieHard.cfg +4 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/DieHard.tla +38 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/chart.mmd +92 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/graph.dot +126 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/report.md +17 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/verdict-1.out +91 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/DieHard/verdict-2.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/ChartRun.out +61 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/FirstRule.cfg +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/FirstRule.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/chart.mmd +22 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/graph.dot +16 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/report.md +25 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-1.out +56 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-2.out +64 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-3.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-3.out +64 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-4.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-4.out +77 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/HiddenClock.cfg +4 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/HiddenClock.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/chart.mmd +13 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/graph.dot +12 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/report.md +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/HiddenClock/verdict-1.out +72 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/Login.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/Login.tla +62 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/chart.mmd +27 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/graph.dot +40 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/report.md +7 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/sany.out +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/verdict-1.out +47 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Login/view.mjs +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/LoginGuarded.cfg +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/LoginGuarded.tla +64 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/chart.mmd +28 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/graph.dot +37 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/report.md +8 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/sany.out +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/verdict-1.out +47 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/view.mjs +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/ChartRun.out +60 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/LoginParallel.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/LoginParallel.tla +64 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/chart.mmd +44 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/graph.dot +58 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/report.md +17 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/sany.out +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/verdict-1.out +83 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/verdict-2.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/LoginParallel/view.mjs +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/ChartRun.out +60 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/MediaPlayer.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/MediaPlayer.tla +103 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/chart.mmd +43 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/graph.dot +93 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/report.md +14 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/sany.out +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-1.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-2.out +72 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/view.mjs +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/MediaPlayerFixed.cfg +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/MediaPlayerFixed.tla +100 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/chart.mmd +31 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/graph.dot +85 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/report.md +9 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/sany.out +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/verdict-1.out +47 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/view.mjs +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/ChartRun.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayer.tla +103 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayerProps.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayerProps.tla +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/chart.mmd +42 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/graph.dot +93 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/report.md +19 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-1.out +61 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-2.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-3.out +61 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-4.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-4.out +66 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-5.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-5.out +58 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-6.out +49 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/view.mjs +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/PickWorker/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/PickWorker/PickWorker.cfg +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/PickWorker/PickWorker.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/PickWorker/chart.mmd +5 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/PickWorker/graph.dot +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/PickWorker/report.md +7 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/PickWorker/sany.out +5 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/PickWorker/verdict-1.out +70 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/ChartRun.out +61 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/Shadow.cfg +4 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/Shadow.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/ShadowLib.tla +6 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/ShadowSub.tla +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/chart.mmd +9 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/graph.dot +16 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/report.md +8 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/sany.out +4 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/Shadow/verdict-1.out +65 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/ChartRun.out +59 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/SpacedNames.cfg +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/SpacedNames.tla +9 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/chart.mmd +23 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/graph.dot +17 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/report.md +15 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/sany.out +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/verdict-1.out +65 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/SpacedNames/verdict-2.out +75 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/ChartRun.out +69 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/TwoPhase.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/TwoPhase.tla +75 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/chart.mmd +60 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/graph.dot +297 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/report.md +20 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/sany.out +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/verdict-1.out +95 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/verdict-2.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhase/view.mjs +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/ChartRun.out +57 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/TwoPhaseFixed.cfg +3 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/TwoPhaseFixed.tla +75 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/chart.mmd +37 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/graph.dot +223 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/report.md +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/sany.out +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/verdict-1.out +47 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/view.mjs +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/ChartRun.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/ChartRun.out +75 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/TypeGuard.cfg +5 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/TypeGuard.tla +11 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/chart.mmd +18 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/graph.dot +14 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/report.md +29 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/verdict-1.out +64 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/TypeGuard/verdict-2.out +75 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/ChartRun.out +58 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/UserNoDeadlock.cfg +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/UserNoDeadlock.tla +8 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/chart.mmd +22 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/graph.dot +16 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/report.md +15 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-1.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-1.out +56 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-2.exit +1 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-2.out +77 -0
- package/dist/pstack/skills/statechart/scripts/test/corpus.test.ts +403 -0
- package/dist/pstack/skills/statechart/scripts/test/differential.test.ts +565 -0
- package/dist/pstack/skills/statechart/scripts/test/grid/Grid.cfg +2 -0
- package/dist/pstack/skills/statechart/scripts/test/grid/Grid.tla +9 -0
- package/dist/pstack/skills/statechart/scripts/test/grid/sany.out +2 -0
- package/dist/pstack/skills/statechart/scripts/test/java.ts +63 -0
- package/dist/pstack/skills/statechart/scripts/test/labels.ts +643 -0
- package/dist/pstack/skills/statechart/scripts/test/messages.test.ts +212 -0
- package/dist/pstack/skills/statechart/scripts/test/pipeline.test.ts +270 -0
- package/dist/pstack/skills/statechart/scripts/test/plain-tlc.test.ts +255 -0
- package/dist/pstack/skills/statechart/scripts/test/render.test.ts +81 -0
- package/dist/pstack/skills/statechart/scripts/test/tlc-out.test.ts +90 -0
- package/dist/pstack/skills/statechart/scripts/test/tlc.ts +158 -0
- package/dist/pstack/skills/statechart/scripts/tsconfig.json +11 -0
- package/dist/pstack/skills/statechart/scripts/worker.ts +35 -0
- package/dist/readonly.d.mts +3 -0
- package/dist/readonly.mjs +9 -0
- package/dist/role-catalog.d.mts +11 -24
- package/dist/role-catalog.mjs +17 -32
- package/dist/role-config.d.mts +41 -0
- package/dist/role-config.mjs +112 -0
- package/dist/role-editor.d.mts +25 -0
- package/dist/role-editor.mjs +372 -0
- package/dist/role-file-CIVHnhBg.d.mts +53 -0
- package/dist/role-file.d.mts +2 -0
- package/dist/role-file.mjs +121 -0
- package/dist/{role-manifest-8OERX9-s.d.mts → role-manifest-D1npMjqZ.d.mts} +21 -10
- package/dist/role-manifest.d.mts +2 -0
- package/dist/{role-manifest-79cnFfDM.mjs → role-manifest.mjs} +20 -16
- package/dist/role-remote.d.mts +23 -0
- package/dist/role-remote.mjs +106 -0
- package/dist/{roles.d.mts → role-service.d.mts} +8 -4
- package/dist/role-service.mjs +43 -0
- package/dist/role-wire.d.mts +54 -0
- package/dist/role-wire.mjs +127 -0
- package/dist/route-7SqXDYrL.d.mts +36 -0
- package/dist/route.d.mts +2 -0
- package/dist/route.mjs +78 -0
- package/dist/skill.d.mts +9 -23
- package/dist/skill.mjs +28 -37
- package/dist/skills/authored/docs-drift/SKILL.md +4 -4
- package/dist/skills/authored/docs-drift/SKILL.zh.md +4 -4
- package/dist/skills/vendored/control-cli/SKILL.md +109 -0
- package/dist/skills/vendored/control-ui/SKILL.md +109 -0
- package/dist/skills/vendored/deslop/SKILL.md +22 -0
- package/dist/subagent.d.mts +60 -169
- package/dist/subagent.mjs +344 -587
- package/dist/wire-error-D_r-UW4w.d.mts +5 -0
- package/dist/wire-error.d.mts +2 -0
- package/dist/wire-error.mjs +9 -0
- package/locale/en.json +1 -1
- package/package.json +51 -35
- package/assets/pstack-config-entry.png +0 -0
- package/dist/client.mjs +0 -2482
- package/dist/client.mjs.map +0 -1
- package/dist/host-contract-CUPSpeNk.d.mts +0 -22
- package/dist/paths-yji9SNak.mjs +0 -47
- package/dist/pstack/skills/poteto-mode/scripts/expect.mjs +0 -254
- package/dist/pstack/skills/poteto-mode/scripts/support.mjs +0 -93
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/cli.mjs +0 -123
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.mjs +0 -217
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.mjs +0 -119
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/github.mjs +0 -626
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/github.test.mjs +0 -521
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/policy.mjs +0 -657
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.mjs +0 -523
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/render.mjs +0 -106
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/types.mjs +0 -9
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr.mjs +0 -5
- package/dist/pstack/skills/poteto-mode/scripts/worktree-audit.mjs +0 -668
- package/dist/pstack/skills/poteto-mode/scripts/worktree-audit.test.mjs +0 -134
- package/dist/pstack/skills/show-me-your-work/scripts/log.mjs +0 -106
- package/dist/pstack/skills/show-me-your-work/scripts/log.test.mjs +0 -56
- package/dist/pstack/skills/statechart/scripts/backends/cfg.mjs +0 -31
- package/dist/pstack/skills/statechart/scripts/backends/mermaid.mjs +0 -186
- package/dist/pstack/skills/statechart/scripts/backends/plain-text.mjs +0 -62
- package/dist/pstack/skills/statechart/scripts/backends/report.mjs +0 -84
- package/dist/pstack/skills/statechart/scripts/frontends/config.mjs +0 -268
- package/dist/pstack/skills/statechart/scripts/frontends/dot.mjs +0 -67
- package/dist/pstack/skills/statechart/scripts/frontends/marks.mjs +0 -94
- package/dist/pstack/skills/statechart/scripts/frontends/messages.mjs +0 -48
- package/dist/pstack/skills/statechart/scripts/frontends/spec.mjs +0 -101
- package/dist/pstack/skills/statechart/scripts/frontends/trace.mjs +0 -39
- package/dist/pstack/skills/statechart/scripts/frontends/value.mjs +0 -180
- package/dist/pstack/skills/statechart/scripts/frontends/verdict.mjs +0 -40
- package/dist/pstack/skills/statechart/scripts/frontends/view.mjs +0 -99
- package/dist/pstack/skills/statechart/scripts/ir.mjs +0 -277
- package/dist/pstack/skills/statechart/scripts/passes/annotate.mjs +0 -92
- package/dist/pstack/skills/statechart/scripts/passes/label.mjs +0 -210
- package/dist/pstack/skills/statechart/scripts/passes/lift.mjs +0 -84
- package/dist/pstack/skills/statechart/scripts/passes/loop-check.mjs +0 -47
- package/dist/pstack/skills/statechart/scripts/passes/paths.mjs +0 -72
- package/dist/pstack/skills/statechart/scripts/passes/reach.mjs +0 -135
- package/dist/pstack/skills/statechart/scripts/passes/region-check.mjs +0 -82
- package/dist/pstack/skills/statechart/scripts/passes/regions.mjs +0 -268
- package/dist/pstack/skills/statechart/scripts/pipeline.mjs +0 -72
- package/dist/pstack/skills/statechart/scripts/run.mjs +0 -440
- package/dist/pstack/skills/statechart/scripts/statechart.mjs +0 -155
- package/dist/pstack/skills/statechart/scripts/statechart.test.mjs +0 -198
- package/dist/pstack/skills/statechart/scripts/worker.mjs +0 -31
- package/dist/remote.d.mts +0 -27
- package/dist/remote.mjs +0 -235
- package/dist/role-config-a4JpVdc-.mjs +0 -379
- package/dist/role-wire-CAJsVA6e.d.mts +0 -54
- package/dist/roles.mjs +0 -293
- package/dist/script.d.mts +0 -91
- package/dist/script.mjs +0 -485
package/dist/index.d.mts
CHANGED
|
@@ -1,89 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LoadSkillResult, SkillResourceResult, SkillsHost, TOOL_NAME, createPstackSkillTool, readSkillResource, renderLoadedSkill } from "./skill.mjs";
|
|
3
|
-
/**
|
|
4
|
-
* Package-internal resource locations.
|
|
5
|
-
*
|
|
6
|
-
* Every shipped resource is read from `dist/` and nowhere else. The bundler writes the
|
|
7
|
-
* public entries at `dist/*.mjs` and shared helper chunks under `dist/internal/`, the
|
|
8
|
-
* pstack build writes `dist/pstack/`, and the packaging step writes `dist/skills/`.
|
|
9
|
-
*
|
|
10
|
-
* `PACKAGE_ROOT` therefore sits either one level above this module (an entry bundle in
|
|
11
|
-
* `dist/`) or two (a helper chunk in `dist/internal/`). Both layouts are known, so the
|
|
12
|
-
* directory name decides instead of probing for `dist` first and falling back.
|
|
13
|
-
*/
|
|
14
|
-
/** Absolute path of the package root. */
|
|
15
|
-
export declare const PACKAGE_ROOT: string;
|
|
16
|
-
/** Absolute path of the generated pstack tree. */
|
|
17
|
-
export declare const PORT_ROOT: string;
|
|
18
|
-
/** Absolute path of the ported pstack skill directories. */
|
|
19
|
-
export declare const SKILLS_ROOT: string;
|
|
20
|
-
/** Absolute path of the vendored skill directories (`skills/vendored` at pack time). */
|
|
21
|
-
export declare const VENDORED_SKILLS_ROOT: string;
|
|
22
|
-
/** Absolute path of the skills authored in this repository. */
|
|
23
|
-
export declare const AUTHORED_SKILLS_ROOT: string;
|
|
24
|
-
/** Absolute path of the shipped harness mapping document. */
|
|
25
|
-
export declare const HARNESS_DOC_PATH: string;
|
|
26
|
-
/** One skill root the provider loads, labelled for collision errors. */
|
|
27
|
-
interface SkillRoot {
|
|
28
|
-
readonly path: string;
|
|
29
|
-
readonly label: string;
|
|
30
|
-
}
|
|
31
|
-
/** Every skill root, in load order. Recursive discovery handles each root's nesting. */
|
|
32
|
-
export declare const SKILL_ROOTS: readonly SkillRoot[];
|
|
33
|
-
/** Standard precedence rank for packaged skill providers. */
|
|
34
|
-
export declare const BUNDLED_SKILL_RANK = 600;
|
|
35
|
-
/** Default provider name. */
|
|
36
|
-
export declare const DEFAULT_PROVIDER_NAME = "pstack";
|
|
37
|
-
/** One validated on-disk bundled skill. */
|
|
38
|
-
interface BundledSkill {
|
|
39
|
-
readonly name: string;
|
|
40
|
-
readonly description: string;
|
|
41
|
-
readonly whenToUse?: string;
|
|
42
|
-
readonly invocation: SkillInvocationPolicy;
|
|
43
|
-
/** Absolute skill directory; also the resource base. */
|
|
44
|
-
readonly directory: string;
|
|
45
|
-
/** Absolute `SKILL.md` path. */
|
|
46
|
-
readonly instructionFile: string;
|
|
47
|
-
}
|
|
48
|
-
/** Validated skills keyed by their absolute directory. */
|
|
49
|
-
type BundledSkillIndex = ReadonlyMap<string, BundledSkill>;
|
|
50
|
-
/** Raised when a bundled asset violates the provider contract. */
|
|
51
|
-
export declare class BundledSkillError extends Error {
|
|
52
|
-
constructor(message: string);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Read and validate every bundled skill under every root.
|
|
56
|
-
*
|
|
57
|
-
* A skill name may appear in only one root; a duplicate is a packaging mistake, so it
|
|
58
|
-
* fails activation rather than letting one silently shadow the other. A root that does
|
|
59
|
-
* not exist is skipped, but an empty merged catalog fails.
|
|
60
|
-
*/
|
|
61
|
-
export declare function loadBundledSkillIndexes(roots: readonly SkillRoot[]): BundledSkillIndex;
|
|
62
|
-
/**
|
|
63
|
-
* Build the provider over an already validated index.
|
|
64
|
-
*
|
|
65
|
-
* The catalog is sorted by name so two installs present the same order, and it never
|
|
66
|
-
* changes until the package does.
|
|
67
|
-
*/
|
|
68
|
-
export declare function createPstackSkillProvider(index: BundledSkillIndex, providerName?: string): SkillProvider;
|
|
69
|
-
/** Cordis row name, used by Loader diagnostics. */
|
|
1
|
+
import { Context } from "@deepseek-ai/cordis";
|
|
70
2
|
export declare const name = "pstack";
|
|
71
|
-
/** The row needs the skill registry and the tool registry. */
|
|
72
3
|
export declare const inject: string[];
|
|
73
|
-
|
|
74
|
-
export interface PstackSkillHost {
|
|
75
|
-
readonly skills: SkillsHost & {
|
|
76
|
-
registerProvider(create: (control: SkillProviderControl) => SkillProvider): () => void;
|
|
77
|
-
};
|
|
78
|
-
readonly tools: ToolsHost;
|
|
79
|
-
/** Optional-service read for `systemPrompt`; absent is fine. */
|
|
80
|
-
get?(name: string): unknown;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Register the bundled pstack skill provider and the trusted loader.
|
|
84
|
-
*
|
|
85
|
-
* @param ctx - host context carrying the skill and tool registries.
|
|
86
|
-
* @throws {import("./internal/skill-provider.ts").BundledSkillError} when the tree is malformed.
|
|
87
|
-
*/
|
|
88
|
-
export declare function apply(ctx: PstackSkillHost): void;
|
|
89
|
-
export { type LoadSkillResult, TOOL_NAME as PSTACK_SKILL_TOOL_NAME, type SkillResourceResult, type SkillRoot, createPstackSkillTool, readSkillResource, renderLoadedSkill };
|
|
4
|
+
export declare function apply(ctx: Context): void;
|
package/dist/index.mjs
CHANGED
|
@@ -1,399 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TOOL_NAME, apply as apply$1, createPstackSkillTool, readSkillResource, renderLoadedSkill } from "./skill.mjs";
|
|
3
|
-
import { basename, join } from "node:path";
|
|
4
|
-
import { readFileSync, readdirSync } from "node:fs";
|
|
5
|
-
// src/internal/audit-context.ts
|
|
6
|
-
/** Default repository-relative directory for plans, trails, and orchestration state. */
|
|
7
|
-
const AUDIT_DIRECTORY = ".audit";
|
|
8
|
-
const AUDIT_CONTEXT = {
|
|
9
|
-
name: "pstack:audit-store",
|
|
10
|
-
order: 500,
|
|
11
|
-
text: `pstack writes working files that are not deliverables — plans, decision trails, and orchestration state — under \`${AUDIT_DIRECTORY}/\` in the repository unless the operator names another directory. Nothing outside the repository is assigned for this, and nothing resumes from that directory on its own: a resumed or recreated child must be handed its instructions again rather than told to re-read them. \`${AUDIT_DIRECTORY}/\` stays out of version control; commit a trail only when a reviewer needs it to trust the result.`,
|
|
12
|
-
required: true
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Register the placement rule, tolerating a host without `systemPrompt`.
|
|
16
|
-
*
|
|
17
|
-
* The service is read through `get`, never as a property: a row whose `inject` does not
|
|
18
|
-
* name `systemPrompt` would throw on property access, and index must not inject it or a
|
|
19
|
-
* composition without a prompt registry would drop every bundled skill.
|
|
20
|
-
*/
|
|
21
|
-
function registerAuditContext(host) {
|
|
22
|
-
const registry = host.get?.("systemPrompt");
|
|
23
|
-
if (registry === void 0 || registry === null) return false;
|
|
24
|
-
const candidate = registry;
|
|
25
|
-
if (typeof candidate.context !== "function") return false;
|
|
26
|
-
candidate.context(AUDIT_CONTEXT);
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
// src/internal/frontmatter.ts
|
|
30
|
-
var FrontmatterError = class extends Error {
|
|
31
|
-
constructor(message) {
|
|
32
|
-
super(message);
|
|
33
|
-
this.name = "FrontmatterError";
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const SKILL_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
37
|
-
const MAX_SKILL_NAME_LENGTH = 64;
|
|
38
|
-
/** Parse a leading `---` frontmatter block and the body after it. */
|
|
39
|
-
function parseFrontmatter(source) {
|
|
40
|
-
const eol = detectEol(source);
|
|
41
|
-
const lines = (eol === "\r\n" ? source.replaceAll("\r\n", "\n") : source).split("\n");
|
|
42
|
-
if (lines[0] !== "---") throw new FrontmatterError("frontmatter: file must start with a \"---\" line");
|
|
43
|
-
const closing = lines.indexOf("---", 1);
|
|
44
|
-
if (closing === -1) throw new FrontmatterError("frontmatter: missing closing \"---\" delimiter");
|
|
45
|
-
const data = parseBlock(lines.slice(1, closing));
|
|
46
|
-
const body = lines.slice(closing + 1).join("\n");
|
|
47
|
-
return {
|
|
48
|
-
data,
|
|
49
|
-
body: eol === "\r\n" ? body.replaceAll("\n", eol) : body
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/** Read the fields a skill needs, ignoring every other upstream field. */
|
|
53
|
-
function validateSkillFrontmatter(data, source) {
|
|
54
|
-
const name = readName(data, source);
|
|
55
|
-
const description = readDescription(data, source);
|
|
56
|
-
const whenToUse = data["whenToUse"];
|
|
57
|
-
if (whenToUse !== void 0 && whenToUse.trim() === "") throw new FrontmatterError(`${source}: "whenToUse" must not be empty`);
|
|
58
|
-
return {
|
|
59
|
-
name,
|
|
60
|
-
description,
|
|
61
|
-
disableModelInvocation: readBoolean(data, "disable-model-invocation", source, false),
|
|
62
|
-
userInvocable: readBoolean(data, "user-invocable", source, true),
|
|
63
|
-
...whenToUse === void 0 ? {} : { whenToUse }
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
function detectEol(source) {
|
|
67
|
-
if (!source.includes("\r\n")) return "\n";
|
|
68
|
-
const withoutCrlf = source.replaceAll("\r\n", "");
|
|
69
|
-
if (withoutCrlf.includes("\r") || withoutCrlf.includes("\n")) throw new FrontmatterError("frontmatter: mixed line endings are not supported");
|
|
70
|
-
return "\r\n";
|
|
71
|
-
}
|
|
72
|
-
function parseBlock(lines) {
|
|
73
|
-
const data = {};
|
|
74
|
-
for (let index = 0; index < lines.length; index += 1) {
|
|
75
|
-
const line = lines[index];
|
|
76
|
-
const trimmed = line.trim();
|
|
77
|
-
if (trimmed === "" || trimmed.startsWith("#")) continue;
|
|
78
|
-
if (trimmed !== line) throw new FrontmatterError(`frontmatter: unexpected indented line "${trimmed}"`);
|
|
79
|
-
const entry = /^([A-Za-z_][A-Za-z0-9_-]*):(.*)$/.exec(line);
|
|
80
|
-
if (entry === null) throw new FrontmatterError(`frontmatter: expected "key: value", got "${line}"`);
|
|
81
|
-
const key = entry[1];
|
|
82
|
-
const rest = entry[2];
|
|
83
|
-
if (rest !== "" && !rest.startsWith(" ")) throw new FrontmatterError(`frontmatter: missing space after "${key}:"`);
|
|
84
|
-
if (Object.hasOwn(data, key)) throw new FrontmatterError(`frontmatter: duplicate key "${key}"`);
|
|
85
|
-
const raw = rest.trim();
|
|
86
|
-
if (raw === ">" || raw === ">-" || raw === "|" || raw === "|-") {
|
|
87
|
-
const block = [];
|
|
88
|
-
let cursor = index + 1;
|
|
89
|
-
while (cursor < lines.length) {
|
|
90
|
-
const candidate = lines[cursor];
|
|
91
|
-
if (candidate.trim() !== "" && !candidate.startsWith(" ") && !candidate.startsWith(" ")) break;
|
|
92
|
-
block.push(candidate);
|
|
93
|
-
cursor += 1;
|
|
94
|
-
}
|
|
95
|
-
while (block.length > 0 && block.at(-1).trim() === "") block.pop();
|
|
96
|
-
if (block.length === 0) throw new FrontmatterError(`frontmatter: "${key}" has an empty ${raw} block`);
|
|
97
|
-
data[key] = parseBlockScalar(block, raw, key);
|
|
98
|
-
index = cursor - 1;
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
data[key] = parseScalar(raw, key);
|
|
102
|
-
}
|
|
103
|
-
return data;
|
|
104
|
-
}
|
|
105
|
-
function parseScalar(raw, key) {
|
|
106
|
-
if (raw === "") return "";
|
|
107
|
-
if (raw.startsWith("\"")) return parseDoubleQuoted(raw, key);
|
|
108
|
-
if (raw.startsWith("'")) return parseSingleQuoted(raw, key);
|
|
109
|
-
return raw;
|
|
110
|
-
}
|
|
111
|
-
function parseDoubleQuoted(raw, key) {
|
|
112
|
-
if (raw.length < 2 || !raw.endsWith("\"")) throw new FrontmatterError(`frontmatter: unterminated double-quoted value for "${key}"`);
|
|
113
|
-
const inner = raw.slice(1, -1);
|
|
114
|
-
let value = "";
|
|
115
|
-
for (let index = 0; index < inner.length; index += 1) {
|
|
116
|
-
const character = inner[index];
|
|
117
|
-
if (character !== "\\") {
|
|
118
|
-
value += character;
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
const escaped = inner[index += 1];
|
|
122
|
-
if (escaped === "\"") value += "\"";
|
|
123
|
-
else if (escaped === "\\") value += "\\";
|
|
124
|
-
else if (escaped === "n") value += "\n";
|
|
125
|
-
else throw new FrontmatterError(`frontmatter: unsupported escape "\\${escaped ?? ""}" in "${key}"`);
|
|
126
|
-
}
|
|
127
|
-
return value;
|
|
128
|
-
}
|
|
129
|
-
function parseSingleQuoted(raw, key) {
|
|
130
|
-
if (raw.length < 2 || !raw.endsWith("'")) throw new FrontmatterError(`frontmatter: unterminated single-quoted value for "${key}"`);
|
|
131
|
-
const inner = raw.slice(1, -1);
|
|
132
|
-
let value = "";
|
|
133
|
-
for (let index = 0; index < inner.length; index += 1) {
|
|
134
|
-
const character = inner[index];
|
|
135
|
-
if (character !== "'") {
|
|
136
|
-
value += character;
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
if (inner[index + 1] === "'") {
|
|
140
|
-
value += "'";
|
|
141
|
-
index += 1;
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
throw new FrontmatterError(`frontmatter: unescaped single quote in "${key}"`);
|
|
145
|
-
}
|
|
146
|
-
return value;
|
|
147
|
-
}
|
|
148
|
-
function parseBlockScalar(lines, indicator, key) {
|
|
149
|
-
const indents = lines.filter((line) => line.trim() !== "").map((line) => /^\s*/.exec(line)[0].length);
|
|
150
|
-
const indent = Math.min(...indents);
|
|
151
|
-
const content = lines.map((line) => line.trim() === "" ? "" : line.slice(indent));
|
|
152
|
-
const text = indicator.startsWith("|") ? content.join("\n") : fold(content);
|
|
153
|
-
if (text.trim() === "") throw new FrontmatterError(`frontmatter: "${key}" block is empty`);
|
|
154
|
-
return indicator.endsWith("-") ? text : `${text}\n`;
|
|
155
|
-
}
|
|
156
|
-
function fold(lines) {
|
|
157
|
-
const paragraphs = [[]];
|
|
158
|
-
for (const line of lines) if (line === "") paragraphs.push([]);
|
|
159
|
-
else paragraphs.at(-1).push(line);
|
|
160
|
-
return paragraphs.map((paragraph) => paragraph.join(" ")).join("\n");
|
|
161
|
-
}
|
|
162
|
-
function readName(data, source) {
|
|
163
|
-
const value = data["name"];
|
|
164
|
-
if (value === void 0 || value.trim() === "") throw new FrontmatterError(`${source}: missing "name"`);
|
|
165
|
-
if (!SKILL_NAME_PATTERN.test(value)) throw new FrontmatterError(`${source}: "name" must be kebab-case, got "${value}"`);
|
|
166
|
-
if (value.length > MAX_SKILL_NAME_LENGTH) throw new FrontmatterError(`${source}: "name" is longer than ${MAX_SKILL_NAME_LENGTH} characters`);
|
|
167
|
-
return value;
|
|
168
|
-
}
|
|
169
|
-
function readDescription(data, source) {
|
|
170
|
-
const value = data["description"];
|
|
171
|
-
if (value === void 0 || value.trim() === "") throw new FrontmatterError(`${source}: missing "description"`);
|
|
172
|
-
return value;
|
|
173
|
-
}
|
|
174
|
-
function readBoolean(data, key, source, fallback) {
|
|
175
|
-
const value = data[key];
|
|
176
|
-
if (value === void 0) return fallback;
|
|
177
|
-
if (value === "true") return true;
|
|
178
|
-
if (value === "false") return false;
|
|
179
|
-
throw new FrontmatterError(`${source}: "${key}" must be true or false, got "${value}"`);
|
|
180
|
-
}
|
|
181
|
-
// src/internal/skill-provider.ts
|
|
182
|
-
/**
|
|
183
|
-
* The bundled pstack skill provider: one provider over the generated skills and the
|
|
184
|
-
* independent skill trees that ship inside this package.
|
|
185
|
-
*
|
|
186
|
-
* Roots hold skills at different depths (`pstack/skills/<skill>`,
|
|
187
|
-
* `skills/vendored/<source>/<skill>`, `skills/authored/<skill>`), so discovery walks
|
|
188
|
-
* down until it finds a directory with a `SKILL.md` and stops there. A malformed
|
|
189
|
-
* bundled skill fails the whole index instead of disappearing from the catalog: a
|
|
190
|
-
* broken asset is a startup error, not a skill users silently cannot see.
|
|
191
|
-
*
|
|
192
|
-
* `get()` accepts only a locator this provider produced, so a caller cannot name an
|
|
193
|
-
* arbitrary path.
|
|
194
|
-
*/
|
|
195
|
-
/** Standard precedence rank for packaged skill providers. */
|
|
196
|
-
const BUNDLED_SKILL_RANK = 600;
|
|
197
|
-
/** Default provider name. */
|
|
198
|
-
const DEFAULT_PROVIDER_NAME = "pstack";
|
|
199
|
-
/** Raised when a bundled asset violates the provider contract. */
|
|
200
|
-
var BundledSkillError = class extends Error {
|
|
201
|
-
constructor(message) {
|
|
202
|
-
super(message);
|
|
203
|
-
this.name = "BundledSkillError";
|
|
204
|
-
}
|
|
205
|
-
};
|
|
206
|
-
/**
|
|
207
|
-
* Read and validate every bundled skill under every root.
|
|
208
|
-
*
|
|
209
|
-
* A skill name may appear in only one root; a duplicate is a packaging mistake, so it
|
|
210
|
-
* fails activation rather than letting one silently shadow the other. A root that does
|
|
211
|
-
* not exist is skipped, but an empty merged catalog fails.
|
|
212
|
-
*/
|
|
213
|
-
function loadBundledSkillIndexes(roots) {
|
|
214
|
-
const merged = /* @__PURE__ */ new Map();
|
|
215
|
-
const byName = /* @__PURE__ */ new Map();
|
|
216
|
-
for (const root of roots) for (const skill of loadRoot(root).values()) {
|
|
217
|
-
const previous = byName.get(skill.name);
|
|
218
|
-
if (previous !== void 0) throw new BundledSkillError(`bundled skills: "${skill.name}" is offered by both "${previous}" and "${skill.directory}"; one name belongs to one source`);
|
|
219
|
-
byName.set(skill.name, skill.directory);
|
|
220
|
-
merged.set(skill.directory, skill);
|
|
221
|
-
}
|
|
222
|
-
if (merged.size === 0) throw new BundledSkillError(`bundled skills: no skill directories under ${roots.map((root) => `"${root.path}"`).join(", ")}`);
|
|
223
|
-
return merged;
|
|
224
|
-
}
|
|
225
|
-
/** Validate every skill under one root. */
|
|
226
|
-
function loadRoot(root) {
|
|
227
|
-
const index = /* @__PURE__ */ new Map();
|
|
228
|
-
for (const directory of discoverSkillDirectories(root.path)) {
|
|
229
|
-
const instructionFile = join(directory, "SKILL.md");
|
|
230
|
-
const frontmatter = readSkillFrontmatter(readSkillFile(instructionFile), instructionFile);
|
|
231
|
-
if (frontmatter.name !== basename(directory)) throw new BundledSkillError(`${instructionFile}: skill name "${frontmatter.name}" does not match its directory "${basename(directory)}"`);
|
|
232
|
-
index.set(directory, {
|
|
233
|
-
name: frontmatter.name,
|
|
234
|
-
description: frontmatter.description,
|
|
235
|
-
...frontmatter.whenToUse === void 0 ? {} : { whenToUse: frontmatter.whenToUse },
|
|
236
|
-
invocation: {
|
|
237
|
-
modelInvocable: !frontmatter.disableModelInvocation,
|
|
238
|
-
userInvocable: frontmatter.userInvocable
|
|
239
|
-
},
|
|
240
|
-
directory,
|
|
241
|
-
instructionFile
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
return index;
|
|
245
|
-
}
|
|
246
|
-
/** Directories that hold a `SKILL.md`, discovered recursively. A found skill is a leaf. */
|
|
247
|
-
function discoverSkillDirectories(root) {
|
|
248
|
-
let entries;
|
|
249
|
-
try {
|
|
250
|
-
entries = readdirSync(root, { withFileTypes: true });
|
|
251
|
-
} catch (error) {
|
|
252
|
-
if (errorCode(error) === "ENOENT") return [];
|
|
253
|
-
throw new BundledSkillError(`bundled skills: cannot read "${root}": ${messageOf(error)}`);
|
|
254
|
-
}
|
|
255
|
-
if (entries.some((entry) => entry.isFile() && entry.name === "SKILL.md")) return [root];
|
|
256
|
-
const found = [];
|
|
257
|
-
const children = entries.filter((entry) => entry.isDirectory()).sort((left, right) => left.name < right.name ? -1 : 1);
|
|
258
|
-
for (const child of children) found.push(...discoverSkillDirectories(join(root, child.name)));
|
|
259
|
-
return found;
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Build the provider over an already validated index.
|
|
263
|
-
*
|
|
264
|
-
* The catalog is sorted by name so two installs present the same order, and it never
|
|
265
|
-
* changes until the package does.
|
|
266
|
-
*/
|
|
267
|
-
function createPstackSkillProvider(index, providerName = DEFAULT_PROVIDER_NAME) {
|
|
268
|
-
const ordered = [...index.values()].sort((left, right) => left.name < right.name ? -1 : left.name > right.name ? 1 : 0);
|
|
269
|
-
return {
|
|
270
|
-
name: providerName,
|
|
271
|
-
async list(options) {
|
|
272
|
-
throwIfAborted(options?.signal);
|
|
273
|
-
return ordered.map((skill) => ({
|
|
274
|
-
name: skill.name,
|
|
275
|
-
description: skill.description,
|
|
276
|
-
...skill.whenToUse === void 0 ? {} : { whenToUse: skill.whenToUse },
|
|
277
|
-
invocation: skill.invocation,
|
|
278
|
-
source: "bundled",
|
|
279
|
-
provider: providerName,
|
|
280
|
-
rank: 600,
|
|
281
|
-
locator: {
|
|
282
|
-
kind: "bundled-skill",
|
|
283
|
-
directory: skill.directory,
|
|
284
|
-
instructionFile: skill.instructionFile
|
|
285
|
-
},
|
|
286
|
-
path: skill.instructionFile,
|
|
287
|
-
resourceBase: {
|
|
288
|
-
kind: "directory",
|
|
289
|
-
path: skill.directory
|
|
290
|
-
}
|
|
291
|
-
}));
|
|
292
|
-
},
|
|
293
|
-
async get(candidate, options) {
|
|
294
|
-
const locator = asBundledSkillLocator(candidate.locator);
|
|
295
|
-
if (locator === void 0) return void 0;
|
|
296
|
-
const skill = index.get(locator.directory);
|
|
297
|
-
if (skill === void 0 || skill.instructionFile !== locator.instructionFile || skill.name !== candidate.name) return;
|
|
298
|
-
throwIfAborted(options?.signal);
|
|
299
|
-
const text = readOptionalSkillFile(skill.instructionFile);
|
|
300
|
-
if (text === void 0) return void 0;
|
|
301
|
-
const { body } = parseFrontmatter(text);
|
|
302
|
-
return {
|
|
303
|
-
name: skill.name,
|
|
304
|
-
description: skill.description,
|
|
305
|
-
...skill.whenToUse === void 0 ? {} : { whenToUse: skill.whenToUse },
|
|
306
|
-
invocation: skill.invocation,
|
|
307
|
-
source: "bundled",
|
|
308
|
-
provider: providerName,
|
|
309
|
-
path: skill.instructionFile,
|
|
310
|
-
resourceBase: {
|
|
311
|
-
kind: "directory",
|
|
312
|
-
path: skill.directory
|
|
313
|
-
},
|
|
314
|
-
content: body
|
|
315
|
-
};
|
|
316
|
-
}
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
function asBundledSkillLocator(locator) {
|
|
320
|
-
if (typeof locator !== "object" || locator === null) return void 0;
|
|
321
|
-
const candidate = locator;
|
|
322
|
-
if (candidate.kind !== "bundled-skill") return void 0;
|
|
323
|
-
if (typeof candidate.directory !== "string") return void 0;
|
|
324
|
-
if (typeof candidate.instructionFile !== "string") return void 0;
|
|
325
|
-
return {
|
|
326
|
-
kind: "bundled-skill",
|
|
327
|
-
directory: candidate.directory,
|
|
328
|
-
instructionFile: candidate.instructionFile
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
|
-
function readSkillFile(instructionFile) {
|
|
332
|
-
try {
|
|
333
|
-
return readFileSync(instructionFile, "utf8");
|
|
334
|
-
} catch (error) {
|
|
335
|
-
throw new BundledSkillError(`bundled skills: cannot read "${instructionFile}": ${messageOf(error)}`);
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
function readSkillFrontmatter(text, instructionFile) {
|
|
339
|
-
try {
|
|
340
|
-
const { data } = parseFrontmatter(text);
|
|
341
|
-
return validateSkillFrontmatter(data, instructionFile);
|
|
342
|
-
} catch (error) {
|
|
343
|
-
const message = messageOf(error);
|
|
344
|
-
throw new BundledSkillError(message.includes(instructionFile) ? message : `${instructionFile}: ${message}`);
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
function readOptionalSkillFile(instructionFile) {
|
|
348
|
-
try {
|
|
349
|
-
return readFileSync(instructionFile, "utf8");
|
|
350
|
-
} catch (error) {
|
|
351
|
-
if (errorCode(error) === "ENOENT") return void 0;
|
|
352
|
-
throw error;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
function throwIfAborted(signal) {
|
|
356
|
-
if (signal?.aborted !== true) return;
|
|
357
|
-
throw signal.reason ?? /* @__PURE__ */ new Error("skill provider work was aborted");
|
|
358
|
-
}
|
|
359
|
-
function errorCode(error) {
|
|
360
|
-
if (typeof error !== "object" || error === null) return void 0;
|
|
361
|
-
const code = error.code;
|
|
362
|
-
return typeof code === "string" ? code : void 0;
|
|
363
|
-
}
|
|
364
|
-
function messageOf(error) {
|
|
365
|
-
return error instanceof Error ? error.message : String(error);
|
|
366
|
-
}
|
|
1
|
+
import { apply as apply$1 } from "./skill.mjs";
|
|
367
2
|
// src/index.ts
|
|
368
|
-
/**
|
|
369
|
-
* dsh-pstack Host entry: the bundled skill provider and `pstack_skill`.
|
|
370
|
-
*
|
|
371
|
-
* One `ctx.skills` provider serves the generated pstack tree and the independent skill
|
|
372
|
-
* trees. The catalog is built once at activation and never watched; reinstalling the
|
|
373
|
-
* package is the refresh boundary. A malformed bundled skill fails activation with a
|
|
374
|
-
* path-qualified error instead of removing one skill from the catalog.
|
|
375
|
-
*
|
|
376
|
-
* `pstack_skill` is registered from the same row because it is the other half of the
|
|
377
|
-
* provider: the provider keeps hidden skills out of the model catalog, and the tool
|
|
378
|
-
* gives trusted pstack routing a way to load them by name.
|
|
379
|
-
*/
|
|
380
|
-
/** Cordis row name, used by Loader diagnostics. */
|
|
381
3
|
const name = "pstack";
|
|
382
|
-
/** The row needs the skill registry and the tool registry. */
|
|
383
4
|
const inject = ["skills", "tools"];
|
|
384
|
-
/**
|
|
385
|
-
* Register the bundled pstack skill provider and the trusted loader.
|
|
386
|
-
*
|
|
387
|
-
* @param ctx - host context carrying the skill and tool registries.
|
|
388
|
-
* @throws {import("./internal/skill-provider.ts").BundledSkillError} when the tree is malformed.
|
|
389
|
-
*/
|
|
390
5
|
function apply(ctx) {
|
|
391
|
-
|
|
392
|
-
ctx.skills.registerProvider((_control) => createPstackSkillProvider(index, DEFAULT_PROVIDER_NAME));
|
|
393
|
-
registerAuditContext(ctx);
|
|
394
|
-
apply$1({
|
|
395
|
-
skills: ctx.skills,
|
|
396
|
-
tools: ctx.tools
|
|
397
|
-
});
|
|
6
|
+
apply$1(ctx);
|
|
398
7
|
}
|
|
399
|
-
export {
|
|
8
|
+
export { apply, inject, name };
|
package/dist/models.d.mts
CHANGED
|
@@ -1,44 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { i as ProviderEntry, n as CatalogueResult, r as ModelEntry } from "./catalogue-wgVaGeUx.mjs";
|
|
2
|
+
import { Context } from "@deepseek-ai/cordis";
|
|
3
|
+
import { ToolDefinition } from "@deepseek-ai/dsh-tools";
|
|
4
|
+
import { LlmRuntime } from "@deepseek-ai/dsh-llm";
|
|
3
5
|
export declare const name = "pstack-models";
|
|
4
|
-
/** The hard dependencies: the adapter registry and the tool registry. */
|
|
5
6
|
export declare const inject: string[];
|
|
6
|
-
/** Model-facing tool name. */
|
|
7
7
|
export declare const TOOL_NAME = "pstack_models";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
readonly id: string;
|
|
12
|
-
readonly name: string;
|
|
13
|
-
readonly description?: string;
|
|
14
|
-
readonly contextWindow?: number;
|
|
15
|
-
readonly maxTokens?: number;
|
|
16
|
-
/** Advertised reasoning efforts, in the adapter's least-to-greatest order. */
|
|
17
|
-
readonly efforts: readonly string[];
|
|
18
|
-
readonly defaultEffort?: string;
|
|
19
|
-
/** Set when this one model could not be resolved; the route is still listed. */
|
|
20
|
-
readonly error?: string;
|
|
21
|
-
}
|
|
22
|
-
export interface ProviderEntry {
|
|
23
|
-
readonly provider: string;
|
|
24
|
-
readonly name: string;
|
|
25
|
-
readonly models: readonly ModelEntry[];
|
|
26
|
-
/** Set when this provider's model list could not be read. */
|
|
27
|
-
readonly error?: string;
|
|
28
|
-
}
|
|
29
|
-
export interface CatalogueResult {
|
|
30
|
-
readonly providers: readonly ProviderEntry[];
|
|
31
|
-
readonly truncated: boolean;
|
|
32
|
-
readonly providerFilter?: string;
|
|
33
|
-
}
|
|
34
|
-
/** Collect the catalogue from the live adapters. */
|
|
35
|
-
export declare function collectCatalogue(llm: LlmHost, providerFilter: string | undefined, signal: AbortSignal): Promise<CatalogueResult>;
|
|
8
|
+
/** Collect the live catalogue with bounded provider/model counts. */
|
|
9
|
+
export declare function collectCatalogue(llm: LlmRuntime, providerFilter: string | undefined, signal: AbortSignal): Promise<CatalogueResult>;
|
|
10
|
+
/** Render the catalogue as compact model-facing text. */
|
|
36
11
|
export declare function renderCatalogue(result: CatalogueResult): string;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
export
|
|
40
|
-
|
|
41
|
-
readonly tools: ToolsHost;
|
|
42
|
-
}
|
|
43
|
-
/** Register `pstack_models`. */
|
|
44
|
-
export declare function apply(ctx: PstackModelsHost): void;
|
|
12
|
+
/** Build `pstack_models` for one LLM service. */
|
|
13
|
+
export declare function createPstackModelsTool(llm: LlmRuntime): ToolDefinition;
|
|
14
|
+
export declare function apply(ctx: Context): void;
|
|
15
|
+
export type { CatalogueResult, ModelEntry, ProviderEntry };
|