dsh-super-code 0.3.11 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (907) hide show
  1. package/LICENSE +1 -1
  2. package/README.en.md +50 -18
  3. package/README.md +50 -18
  4. package/builtin/README.md +22 -0
  5. package/builtin/skills/mattpocock/LICENSE +21 -0
  6. package/builtin/skills/mattpocock/UPSTREAM.md +11 -0
  7. package/builtin/skills/mattpocock/distribution.json +352 -0
  8. package/builtin/skills/mattpocock/skills/ask-matt/PHASE-BOUNDARIES.md +55 -0
  9. package/builtin/skills/mattpocock/skills/ask-matt/SKILL.md +97 -0
  10. package/builtin/skills/mattpocock/skills/ask-matt/agents/openai.yaml +5 -0
  11. package/builtin/skills/mattpocock/skills/code-review/SKILL.md +89 -0
  12. package/builtin/skills/mattpocock/skills/code-review/agents/openai.yaml +3 -0
  13. package/builtin/skills/mattpocock/skills/codebase-design/DEEPENING.md +37 -0
  14. package/builtin/skills/mattpocock/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  15. package/builtin/skills/mattpocock/skills/codebase-design/SKILL.md +114 -0
  16. package/builtin/skills/mattpocock/skills/codebase-design/agents/openai.yaml +3 -0
  17. package/builtin/skills/mattpocock/skills/diagnosing-bugs/SKILL.md +138 -0
  18. package/builtin/skills/mattpocock/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  19. package/builtin/skills/mattpocock/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +44 -0
  20. package/builtin/skills/mattpocock/skills/domain-modeling/ADR-FORMAT.md +47 -0
  21. package/builtin/skills/mattpocock/skills/domain-modeling/GLOSSARY-FORMAT.md +60 -0
  22. package/builtin/skills/mattpocock/skills/domain-modeling/SKILL.md +74 -0
  23. package/builtin/skills/mattpocock/skills/domain-modeling/agents/openai.yaml +3 -0
  24. package/builtin/skills/mattpocock/skills/grill-me/SKILL.md +7 -0
  25. package/builtin/skills/mattpocock/skills/grill-me/agents/openai.yaml +5 -0
  26. package/builtin/skills/mattpocock/skills/grill-with-docs/SKILL.md +7 -0
  27. package/builtin/skills/mattpocock/skills/grill-with-docs/agents/openai.yaml +5 -0
  28. package/builtin/skills/mattpocock/skills/grilling/SKILL.md +30 -0
  29. package/builtin/skills/mattpocock/skills/grilling/agents/openai.yaml +3 -0
  30. package/builtin/skills/mattpocock/skills/handoff/SKILL.md +16 -0
  31. package/builtin/skills/mattpocock/skills/handoff/agents/openai.yaml +5 -0
  32. package/builtin/skills/mattpocock/skills/implement/SKILL.md +17 -0
  33. package/builtin/skills/mattpocock/skills/implement/agents/openai.yaml +5 -0
  34. package/builtin/skills/mattpocock/skills/implement-spec/SKILL.md +42 -0
  35. package/builtin/skills/mattpocock/skills/implement-spec/agents/openai.yaml +5 -0
  36. package/builtin/skills/mattpocock/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  37. package/builtin/skills/mattpocock/skills/improve-codebase-architecture/SKILL.md +71 -0
  38. package/builtin/skills/mattpocock/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  39. package/builtin/skills/mattpocock/skills/pr/CREDITS.md +3 -0
  40. package/builtin/skills/mattpocock/skills/pr/SKILL.md +170 -0
  41. package/builtin/skills/mattpocock/skills/pr/agents/openai.yaml +3 -0
  42. package/builtin/skills/mattpocock/skills/prototype/LOGIC.md +67 -0
  43. package/builtin/skills/mattpocock/skills/prototype/SKILL.md +26 -0
  44. package/builtin/skills/mattpocock/skills/prototype/UI.md +112 -0
  45. package/builtin/skills/mattpocock/skills/prototype/agents/openai.yaml +3 -0
  46. package/builtin/skills/mattpocock/skills/research/SKILL.md +12 -0
  47. package/builtin/skills/mattpocock/skills/research/agents/openai.yaml +3 -0
  48. package/builtin/skills/mattpocock/skills/retro/SKILL.md +44 -0
  49. package/builtin/skills/mattpocock/skills/retro/agents/openai.yaml +5 -0
  50. package/builtin/skills/mattpocock/skills/setup-matt-pocock-skills/SKILL.md +120 -0
  51. package/builtin/skills/mattpocock/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  52. package/builtin/skills/mattpocock/skills/setup-matt-pocock-skills/domain.md +51 -0
  53. package/builtin/skills/mattpocock/skills/setup-matt-pocock-skills/issue-tracker-github.md +50 -0
  54. package/builtin/skills/mattpocock/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
  55. package/builtin/skills/mattpocock/skills/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
  56. package/builtin/skills/mattpocock/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  57. package/builtin/skills/mattpocock/skills/tdd/SKILL.md +38 -0
  58. package/builtin/skills/mattpocock/skills/tdd/agents/openai.yaml +3 -0
  59. package/builtin/skills/mattpocock/skills/tdd/mocking.md +59 -0
  60. package/builtin/skills/mattpocock/skills/tdd/tests.md +77 -0
  61. package/builtin/skills/mattpocock/skills/teach/GLOSSARY-FORMAT.md +35 -0
  62. package/builtin/skills/mattpocock/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  63. package/builtin/skills/mattpocock/skills/teach/MISSION-FORMAT.md +31 -0
  64. package/builtin/skills/mattpocock/skills/teach/RESOURCES-FORMAT.md +32 -0
  65. package/builtin/skills/mattpocock/skills/teach/SKILL.md +140 -0
  66. package/builtin/skills/mattpocock/skills/teach/agents/openai.yaml +5 -0
  67. package/builtin/skills/mattpocock/skills/to-questionnaire/SKILL.md +54 -0
  68. package/builtin/skills/mattpocock/skills/to-questionnaire/agents/openai.yaml +5 -0
  69. package/builtin/skills/mattpocock/skills/to-spec/SKILL.md +75 -0
  70. package/builtin/skills/mattpocock/skills/to-spec/agents/openai.yaml +5 -0
  71. package/builtin/skills/mattpocock/skills/to-tickets/SKILL.md +105 -0
  72. package/builtin/skills/mattpocock/skills/to-tickets/agents/openai.yaml +5 -0
  73. package/builtin/skills/mattpocock/skills/triage/AGENT-BRIEF.md +207 -0
  74. package/builtin/skills/mattpocock/skills/triage/OUT-OF-SCOPE.md +105 -0
  75. package/builtin/skills/mattpocock/skills/triage/SKILL.md +112 -0
  76. package/builtin/skills/mattpocock/skills/triage/agents/openai.yaml +5 -0
  77. package/builtin/skills/mattpocock/skills/wait-what/SKILL.md +7 -0
  78. package/builtin/skills/mattpocock/skills/wait-what/agents/openai.yaml +5 -0
  79. package/builtin/skills/mattpocock/skills/wayfinder/SKILL.md +128 -0
  80. package/builtin/skills/mattpocock/skills/wayfinder/agents/openai.yaml +5 -0
  81. package/builtin/skills/mattpocock/skills/wizard/SKILL.md +44 -0
  82. package/builtin/skills/mattpocock/skills/wizard/agents/openai.yaml +3 -0
  83. package/builtin/skills/mattpocock/skills/wizard/template.sh +223 -0
  84. package/builtin/skills/mattpocock/skills/writing-for-agents/SKILL-MECHANICS.md +22 -0
  85. package/builtin/skills/mattpocock/skills/writing-for-agents/SKILL.md +81 -0
  86. package/builtin/skills/mattpocock/skills/writing-for-agents/agents/openai.yaml +3 -0
  87. package/builtin/skills/oil-ui/LICENSE +21 -0
  88. package/builtin/skills/oil-ui/SKILL.md +163 -0
  89. package/builtin/skills/oil-ui/UPSTREAM.md +14 -0
  90. package/builtin/skills/oil-ui/assets/fonts/instrument-serif/InstrumentSerif-Regular.ttf +0 -0
  91. package/builtin/skills/oil-ui/assets/fonts/instrument-serif/OFL.txt +93 -0
  92. package/builtin/skills/oil-ui/assets/logo.png +0 -0
  93. package/builtin/skills/oil-ui/assets/style-explorer.html +433 -0
  94. package/builtin/skills/oil-ui/distribution.json +5 -0
  95. package/builtin/skills/oil-ui/references/design-direction.md +233 -0
  96. package/builtin/skills/oil-ui/references/direction-persuasion.md +25 -0
  97. package/builtin/skills/oil-ui/references/image-ideation.md +130 -0
  98. package/builtin/skills/oil-ui/references/layout-and-viewport.md +24 -0
  99. package/builtin/skills/oil-ui/references/media.md +158 -0
  100. package/builtin/skills/oil-ui/references/motion.md +123 -0
  101. package/builtin/skills/oil-ui/references/play.md +29 -0
  102. package/builtin/skills/oil-ui/references/reviewer-manual.md +73 -0
  103. package/builtin/skills/oil-ui/references/scroll-narrative.md +97 -0
  104. package/builtin/skills/oil-ui/references/style-explorer.md +48 -0
  105. package/builtin/skills/oil-ui/references/task-explore.md +28 -0
  106. package/builtin/skills/oil-ui/references/task-review.md +8 -0
  107. package/builtin/skills/oil-ui/references/tools.md +75 -0
  108. package/builtin/skills/oil-ui/references/ux-review.md +23 -0
  109. package/builtin/skills/oil-ui/references/ux-reviewer.md +10 -0
  110. package/builtin/skills/oil-ui/references/visual-language.md +103 -0
  111. package/builtin/skills/oil-ui/references/visual-review.md +35 -0
  112. package/builtin/skills/oil-ui/references/workdir.md +64 -0
  113. package/builtin/skills/oil-ui/scripts/build_explorer.py +958 -0
  114. package/builtin/skills/oil-ui/scripts/chrome.mjs +115 -0
  115. package/builtin/skills/oil-ui/scripts/curate-media.mjs +726 -0
  116. package/builtin/skills/oil-ui/scripts/measure_reference.py +543 -0
  117. package/builtin/skills/oil-ui/scripts/oiloil-image.mjs +388 -0
  118. package/builtin/skills/oil-ui/scripts/prep-image.mjs +287 -0
  119. package/builtin/skills/oil-ui/scripts/recommend_once.py +65 -0
  120. package/builtin/skills/oil-ui/scripts/shoot.mjs +2067 -0
  121. package/builtin/skills/openspec/LICENSE +22 -0
  122. package/builtin/skills/openspec/UPSTREAM.md +11 -0
  123. package/builtin/skills/openspec/distribution.json +73 -0
  124. package/builtin/skills/openspec/skills/README.md +19 -0
  125. package/builtin/skills/openspec/skills/openspec-apply-change/SKILL.md +205 -0
  126. package/builtin/skills/openspec/skills/openspec-archive-change/SKILL.md +220 -0
  127. package/builtin/skills/openspec/skills/openspec-bulk-archive-change/SKILL.md +376 -0
  128. package/builtin/skills/openspec/skills/openspec-continue-change/SKILL.md +137 -0
  129. package/builtin/skills/openspec/skills/openspec-explore/SKILL.md +355 -0
  130. package/builtin/skills/openspec/skills/openspec-ff-change/SKILL.md +128 -0
  131. package/builtin/skills/openspec/skills/openspec-new-change/SKILL.md +87 -0
  132. package/builtin/skills/openspec/skills/openspec-onboard/SKILL.md +574 -0
  133. package/builtin/skills/openspec/skills/openspec-propose/SKILL.md +174 -0
  134. package/builtin/skills/openspec/skills/openspec-sync-specs/SKILL.md +289 -0
  135. package/builtin/skills/openspec/skills/openspec-update-change/SKILL.md +108 -0
  136. package/builtin/skills/openspec/skills/openspec-verify-change/SKILL.md +222 -0
  137. package/builtin/skills/pstack/LICENSE +21 -0
  138. package/builtin/skills/pstack/UPSTREAM.md +17 -0
  139. package/builtin/skills/pstack/distribution.json +2299 -0
  140. package/builtin/skills/pstack/dsh/DSH.md +59 -0
  141. package/builtin/skills/pstack/dsh/LICENSE +21 -0
  142. package/builtin/skills/pstack/dsh/README.md +9 -0
  143. package/builtin/skills/pstack/dsh/adaptation.json +2930 -0
  144. package/builtin/skills/pstack/dsh/agents/comment-sicko.md +32 -0
  145. package/builtin/skills/pstack/dsh/agents/poteto-agent.md +5 -0
  146. package/builtin/skills/pstack/dsh/assets/logo.png +0 -0
  147. package/builtin/skills/pstack/dsh/authoring.md +7 -0
  148. package/builtin/skills/pstack/dsh/docs/guide/01-setup.md +68 -0
  149. package/builtin/skills/pstack/dsh/docs/guide/02-poteto-mode.md +141 -0
  150. package/builtin/skills/pstack/dsh/docs/guide/03-understand.md +81 -0
  151. package/builtin/skills/pstack/dsh/docs/guide/04-design.md +135 -0
  152. package/builtin/skills/pstack/dsh/docs/guide/05-build-and-clean.md +85 -0
  153. package/builtin/skills/pstack/dsh/docs/guide/06-verify-and-ship.md +164 -0
  154. package/builtin/skills/pstack/dsh/docs/guide/07-overnight.md +124 -0
  155. package/builtin/skills/pstack/dsh/docs/guide/08-principles.md +74 -0
  156. package/builtin/skills/pstack/dsh/docs/guide/09-make-it-yours.md +102 -0
  157. package/builtin/skills/pstack/dsh/docs/guide/10-recipes-and-pitfalls.md +184 -0
  158. package/builtin/skills/pstack/dsh/docs/guide/README.md +40 -0
  159. package/builtin/skills/pstack/dsh/docs/guide/images/design.jpg +0 -0
  160. package/builtin/skills/pstack/dsh/docs/guide/images/overnight.jpg +0 -0
  161. package/builtin/skills/pstack/dsh/docs/guide/images/recipes.jpg +0 -0
  162. package/builtin/skills/pstack/dsh/docs/guide/images/router.jpg +0 -0
  163. package/builtin/skills/pstack/dsh/docs/guide/images/understanding.jpg +0 -0
  164. package/builtin/skills/pstack/dsh/docs/guide/images/verification.jpg +0 -0
  165. package/builtin/skills/pstack/dsh/docs/harness/claude-code.md +69 -0
  166. package/builtin/skills/pstack/dsh/scripts/capture.mjs +80 -0
  167. package/builtin/skills/pstack/dsh/skills/architect/SKILL.md +82 -0
  168. package/builtin/skills/pstack/dsh/skills/architect/references/design-red-flags.md +57 -0
  169. package/builtin/skills/pstack/dsh/skills/architect/references/rationale-template.md +35 -0
  170. package/builtin/skills/pstack/dsh/skills/architect/references/runner-prompt.md +20 -0
  171. package/builtin/skills/pstack/dsh/skills/arena/SKILL.md +51 -0
  172. package/builtin/skills/pstack/dsh/skills/automate-me/SKILL.md +19 -0
  173. package/builtin/skills/pstack/dsh/skills/benchmark-checklist/SKILL.md +42 -0
  174. package/builtin/skills/pstack/dsh/skills/blast-radius/SKILL.md +53 -0
  175. package/builtin/skills/pstack/dsh/skills/bro/SKILL.md +10 -0
  176. package/builtin/skills/pstack/dsh/skills/correct/SKILL.md +35 -0
  177. package/builtin/skills/pstack/dsh/skills/create-formal-verification-skill/SKILL.md +46 -0
  178. package/builtin/skills/pstack/dsh/skills/create-verification-skill/SKILL.md +47 -0
  179. package/builtin/skills/pstack/dsh/skills/create-verification-skill/references/feature-map-example/README.md +47 -0
  180. package/builtin/skills/pstack/dsh/skills/create-verification-skill/references/feature-map-example/create-note.md +39 -0
  181. package/builtin/skills/pstack/dsh/skills/create-verification-skill/references/feature-map-example/search.md +45 -0
  182. package/builtin/skills/pstack/dsh/skills/figure-it-out/SKILL.md +55 -0
  183. package/builtin/skills/pstack/dsh/skills/how/SKILL.md +39 -0
  184. package/builtin/skills/pstack/dsh/skills/how/references/explainer-prompt.md +55 -0
  185. package/builtin/skills/pstack/dsh/skills/how/references/explorer-prompt.md +35 -0
  186. package/builtin/skills/pstack/dsh/skills/in-your-own-words/SKILL.md +10 -0
  187. package/builtin/skills/pstack/dsh/skills/interrogate/SKILL.md +34 -0
  188. package/builtin/skills/pstack/dsh/skills/ketchup/SKILL.md +46 -0
  189. package/builtin/skills/pstack/dsh/skills/ketchup-video/SKILL.md +32 -0
  190. package/builtin/skills/pstack/dsh/skills/maintain-formal-verification-skill/SKILL.md +61 -0
  191. package/builtin/skills/pstack/dsh/skills/maintain-verification-skill/SKILL.md +42 -0
  192. package/builtin/skills/pstack/dsh/skills/make-bot-ui/SKILL.md +22 -0
  193. package/builtin/skills/pstack/dsh/skills/make-bot-ui/references/submissions.md +44 -0
  194. package/builtin/skills/pstack/dsh/skills/make-bot-ui/scripts/submissions.mjs +86 -0
  195. package/builtin/skills/pstack/dsh/skills/no-comments/SKILL.md +27 -0
  196. package/builtin/skills/pstack/dsh/skills/poteto-help/SKILL.md +42 -0
  197. package/builtin/skills/pstack/dsh/skills/poteto-help/references/prompting.md +51 -0
  198. package/builtin/skills/pstack/dsh/skills/poteto-help/references/recipes.md +51 -0
  199. package/builtin/skills/pstack/dsh/skills/poteto-mode/SKILL.md +153 -0
  200. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/authoring-a-skill.md +8 -0
  201. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/autonomous-run.md +12 -0
  202. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/autopilot-full.md +25 -0
  203. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/autopilot-stack.md +8 -0
  204. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/babysit.md +23 -0
  205. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/bug-fix.md +15 -0
  206. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/eval.md +25 -0
  207. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/feature.md +21 -0
  208. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/hillclimb.md +21 -0
  209. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/investigation.md +14 -0
  210. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/multi-phase-plan.md +155 -0
  211. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/opening-a-pr.md +34 -0
  212. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/orchestrate.md +14 -0
  213. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/pause-safely.md +8 -0
  214. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/perf-issue.md +25 -0
  215. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/prototype.md +14 -0
  216. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/refactoring.md +16 -0
  217. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/runtime-forensics.md +11 -0
  218. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/session-pickup.md +9 -0
  219. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/shipping.md +12 -0
  220. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/trace-forensics.md +14 -0
  221. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/visual-parity.md +11 -0
  222. package/builtin/skills/pstack/dsh/skills/poteto-mode/playbooks/worktree-cleanup.md +9 -0
  223. package/builtin/skills/pstack/dsh/skills/poteto-mode/references/bugbot-triage.md +142 -0
  224. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/bootstrap.ts +62 -0
  225. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/bun.lock +67 -0
  226. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/check-plan.mjs +205 -0
  227. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/check-plan.test.ts +110 -0
  228. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/package.json +16 -0
  229. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/cli.test.ts +224 -0
  230. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/cli.ts +223 -0
  231. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +129 -0
  232. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/github.test.ts +498 -0
  233. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/github.ts +726 -0
  234. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/policy.test.ts +482 -0
  235. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/policy.ts +842 -0
  236. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/render.ts +169 -0
  237. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/tsconfig.json +13 -0
  238. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/types.compile.ts +93 -0
  239. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/types.ts +414 -0
  240. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/watch-pr/watch-pr +6 -0
  241. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/worktree-audit.mjs +52 -0
  242. package/builtin/skills/pstack/dsh/skills/poteto-mode/scripts/worktree-audit.sh +4 -0
  243. package/builtin/skills/pstack/dsh/skills/principle-attack-the-premise/SKILL.md +24 -0
  244. package/builtin/skills/pstack/dsh/skills/principle-boundary-discipline/SKILL.md +37 -0
  245. package/builtin/skills/pstack/dsh/skills/principle-build-the-lever/SKILL.md +26 -0
  246. package/builtin/skills/pstack/dsh/skills/principle-encode-lessons-in-structure/SKILL.md +14 -0
  247. package/builtin/skills/pstack/dsh/skills/principle-exhaust-the-design-space/SKILL.md +12 -0
  248. package/builtin/skills/pstack/dsh/skills/principle-experience-first/SKILL.md +22 -0
  249. package/builtin/skills/pstack/dsh/skills/principle-explain-the-number/SKILL.md +21 -0
  250. package/builtin/skills/pstack/dsh/skills/principle-fix-root-causes/SKILL.md +24 -0
  251. package/builtin/skills/pstack/dsh/skills/principle-foundational-thinking/SKILL.md +24 -0
  252. package/builtin/skills/pstack/dsh/skills/principle-guard-the-context-window/SKILL.md +15 -0
  253. package/builtin/skills/pstack/dsh/skills/principle-laziness-protocol/SKILL.md +13 -0
  254. package/builtin/skills/pstack/dsh/skills/principle-make-operations-idempotent/SKILL.md +25 -0
  255. package/builtin/skills/pstack/dsh/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +17 -0
  256. package/builtin/skills/pstack/dsh/skills/principle-minimize-reader-load/SKILL.md +21 -0
  257. package/builtin/skills/pstack/dsh/skills/principle-model-the-domain/SKILL.md +27 -0
  258. package/builtin/skills/pstack/dsh/skills/principle-never-block-on-the-human/SKILL.md +18 -0
  259. package/builtin/skills/pstack/dsh/skills/principle-outcome-oriented-execution/SKILL.md +24 -0
  260. package/builtin/skills/pstack/dsh/skills/principle-prove-it-works/SKILL.md +25 -0
  261. package/builtin/skills/pstack/dsh/skills/principle-redesign-from-first-principles/SKILL.md +19 -0
  262. package/builtin/skills/pstack/dsh/skills/principle-separate-before-serializing-shared-state/SKILL.md +19 -0
  263. package/builtin/skills/pstack/dsh/skills/principle-sequence-verifiable-units/SKILL.md +20 -0
  264. package/builtin/skills/pstack/dsh/skills/principle-subtract-before-you-add/SKILL.md +21 -0
  265. package/builtin/skills/pstack/dsh/skills/principle-test-behavior-not-implementation/SKILL.md +23 -0
  266. package/builtin/skills/pstack/dsh/skills/principle-type-system-discipline/SKILL.md +16 -0
  267. package/builtin/skills/pstack/dsh/skills/recall/SKILL.md +19 -0
  268. package/builtin/skills/pstack/dsh/skills/reflect/SKILL.md +19 -0
  269. package/builtin/skills/pstack/dsh/skills/reflect/references/divergent-reviewer.md +38 -0
  270. package/builtin/skills/pstack/dsh/skills/reflect/references/judgment-reviewer.md +37 -0
  271. package/builtin/skills/pstack/dsh/skills/reflect/references/synthesizer.md +56 -0
  272. package/builtin/skills/pstack/dsh/skills/reflect/references/tooling-reviewer.md +48 -0
  273. package/builtin/skills/pstack/dsh/skills/setup-pstack/SKILL.md +80 -0
  274. package/builtin/skills/pstack/dsh/skills/sharpen/SKILL.md +19 -0
  275. package/builtin/skills/pstack/dsh/skills/show-me-your-work/SKILL.md +85 -0
  276. package/builtin/skills/pstack/dsh/skills/show-me-your-work/references/decision-log-template.tsv +1 -0
  277. package/builtin/skills/pstack/dsh/skills/show-me-your-work/scripts/audit-log.mjs +43 -0
  278. package/builtin/skills/pstack/dsh/skills/show-me-your-work/scripts/log.sh +42 -0
  279. package/builtin/skills/pstack/dsh/skills/statechart/SKILL.md +85 -0
  280. package/builtin/skills/pstack/dsh/skills/statechart/references/render.md +93 -0
  281. package/builtin/skills/pstack/dsh/skills/statechart/scripts/backends/cfg.mjs +31 -0
  282. package/builtin/skills/pstack/dsh/skills/statechart/scripts/backends/cfg.ts +33 -0
  283. package/builtin/skills/pstack/dsh/skills/statechart/scripts/backends/mermaid.mjs +223 -0
  284. package/builtin/skills/pstack/dsh/skills/statechart/scripts/backends/mermaid.ts +201 -0
  285. package/builtin/skills/pstack/dsh/skills/statechart/scripts/backends/plain-text.mjs +68 -0
  286. package/builtin/skills/pstack/dsh/skills/statechart/scripts/backends/plain-text.ts +72 -0
  287. package/builtin/skills/pstack/dsh/skills/statechart/scripts/backends/report.mjs +123 -0
  288. package/builtin/skills/pstack/dsh/skills/statechart/scripts/backends/report.ts +177 -0
  289. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/config.mjs +258 -0
  290. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/config.ts +276 -0
  291. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/dot.mjs +68 -0
  292. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/dot.ts +74 -0
  293. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/marks.mjs +102 -0
  294. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/marks.ts +93 -0
  295. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/messages.mjs +53 -0
  296. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/messages.ts +52 -0
  297. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/spec.mjs +89 -0
  298. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/spec.ts +114 -0
  299. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/trace.mjs +24 -0
  300. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/trace.ts +24 -0
  301. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/value.mjs +181 -0
  302. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/value.ts +166 -0
  303. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/verdict.mjs +38 -0
  304. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/verdict.ts +40 -0
  305. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/view.mjs +107 -0
  306. package/builtin/skills/pstack/dsh/skills/statechart/scripts/frontends/view.ts +119 -0
  307. package/builtin/skills/pstack/dsh/skills/statechart/scripts/ir.mjs +317 -0
  308. package/builtin/skills/pstack/dsh/skills/statechart/scripts/ir.ts +547 -0
  309. package/builtin/skills/pstack/dsh/skills/statechart/scripts/package.json +11 -0
  310. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/annotate.mjs +102 -0
  311. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/annotate.ts +128 -0
  312. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/label.mjs +217 -0
  313. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/label.ts +269 -0
  314. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/lift.mjs +89 -0
  315. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/lift.ts +85 -0
  316. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/loop-check.mjs +57 -0
  317. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/loop-check.ts +68 -0
  318. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/paths.mjs +50 -0
  319. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/paths.ts +60 -0
  320. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/reach.mjs +134 -0
  321. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/reach.ts +135 -0
  322. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/region-check.mjs +94 -0
  323. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/region-check.ts +97 -0
  324. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/regions.mjs +296 -0
  325. package/builtin/skills/pstack/dsh/skills/statechart/scripts/passes/regions.ts +295 -0
  326. package/builtin/skills/pstack/dsh/skills/statechart/scripts/pipeline.mjs +63 -0
  327. package/builtin/skills/pstack/dsh/skills/statechart/scripts/pipeline.ts +76 -0
  328. package/builtin/skills/pstack/dsh/skills/statechart/scripts/run.mjs +432 -0
  329. package/builtin/skills/pstack/dsh/skills/statechart/scripts/run.ts +481 -0
  330. package/builtin/skills/pstack/dsh/skills/statechart/scripts/statechart +29 -0
  331. package/builtin/skills/pstack/dsh/skills/statechart/scripts/statechart.mjs +149 -0
  332. package/builtin/skills/pstack/dsh/skills/statechart/scripts/statechart.ts +164 -0
  333. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/ConfigOracle.java +63 -0
  334. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/chart.test.ts +1210 -0
  335. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/charts/Braces.mmd +7 -0
  336. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/charts/Escapes.mmd +11 -0
  337. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/charts/Phases.mmd +29 -0
  338. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/cli.test.ts +1314 -0
  339. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/config-fuzz.test.ts +263 -0
  340. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Counter/ChartRun.out +57 -0
  341. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Counter/Counter.cfg +3 -0
  342. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Counter/Counter.tla +10 -0
  343. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Counter/chart.mmd +9 -0
  344. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Counter/graph.dot +16 -0
  345. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Counter/report.md +7 -0
  346. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Counter/sany.out +2 -0
  347. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Counter/verdict-1.out +49 -0
  348. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/ChartRun.out +60 -0
  349. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/CounterAction.cfg +4 -0
  350. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/CounterAction.tla +22 -0
  351. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/chart.mmd +26 -0
  352. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/graph.dot +19 -0
  353. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/report.md +20 -0
  354. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/sany.out +2 -0
  355. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/verdict-1.exit +1 -0
  356. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/verdict-1.out +56 -0
  357. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/verdict-2.exit +1 -0
  358. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/verdict-2.out +82 -0
  359. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterAction/verdict-3.out +57 -0
  360. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/ChartRun.out +59 -0
  361. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/CounterDeadlock.cfg +3 -0
  362. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/CounterDeadlock.tla +11 -0
  363. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/chart.mmd +22 -0
  364. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/graph.dot +16 -0
  365. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/report.md +17 -0
  366. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/sany.out +2 -0
  367. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-1.exit +1 -0
  368. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-1.out +56 -0
  369. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-2.exit +1 -0
  370. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-2.out +77 -0
  371. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/ChartRun.out +69 -0
  372. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/CounterFan.cfg +2 -0
  373. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/CounterFan.tla +11 -0
  374. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/chart.mmd +85 -0
  375. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/graph.dot +70 -0
  376. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/report.md +12 -0
  377. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/sany.out +2 -0
  378. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/verdict-1.exit +1 -0
  379. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/verdict-1.out +67 -0
  380. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterFan/verdict-2.out +57 -0
  381. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/ChartRun.exit +1 -0
  382. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/ChartRun.out +85 -0
  383. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/CounterGuard.cfg +6 -0
  384. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/CounterGuard.tla +13 -0
  385. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/chart.mmd +5 -0
  386. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/graph.dot +10 -0
  387. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/report.md +31 -0
  388. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/sany.out +2 -0
  389. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/verdict-1.exit +1 -0
  390. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/verdict-1.out +64 -0
  391. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/verdict-2.exit +1 -0
  392. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterGuard/verdict-2.out +77 -0
  393. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/ChartRun.out +55 -0
  394. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/CounterInitPast.cfg +3 -0
  395. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/CounterInitPast.tla +10 -0
  396. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/chart.mmd +12 -0
  397. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/graph.dot +6 -0
  398. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/report.md +12 -0
  399. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/sany.out +2 -0
  400. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-1.exit +1 -0
  401. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-1.out +33 -0
  402. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-2.out +54 -0
  403. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPastHolds/ChartRun.out +54 -0
  404. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPastHolds/CounterInitPastHolds.cfg +3 -0
  405. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPastHolds/CounterInitPastHolds.tla +10 -0
  406. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPastHolds/chart.mmd +1 -0
  407. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPastHolds/graph.dot +6 -0
  408. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPastHolds/report.md +7 -0
  409. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPastHolds/sany.out +2 -0
  410. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInitPastHolds/verdict-1.out +46 -0
  411. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/ChartRun.out +59 -0
  412. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/CounterInstance.cfg +2 -0
  413. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/CounterInstance.tla +10 -0
  414. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/CounterSteps.tla +6 -0
  415. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/chart.mmd +17 -0
  416. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/graph.dot +15 -0
  417. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/report.md +14 -0
  418. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/sany.out +3 -0
  419. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/verdict-1.exit +1 -0
  420. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterInstance/verdict-1.out +78 -0
  421. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/ChartRun.out +59 -0
  422. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/CounterJump.cfg +3 -0
  423. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/CounterJump.tla +19 -0
  424. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/chart.mmd +26 -0
  425. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/graph.dot +22 -0
  426. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/report.md +12 -0
  427. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/sany.out +2 -0
  428. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/verdict-1.exit +1 -0
  429. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/verdict-1.out +58 -0
  430. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterJump/verdict-2.out +57 -0
  431. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/ChartRun.out +57 -0
  432. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/CounterLoop.cfg +2 -0
  433. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/CounterLoop.tla +11 -0
  434. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/chart.mmd +17 -0
  435. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/graph.dot +15 -0
  436. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/report.md +14 -0
  437. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/sany.out +2 -0
  438. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/verdict-1.exit +1 -0
  439. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterLoop/verdict-1.out +76 -0
  440. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/ChartRun.out +59 -0
  441. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/CounterOrder.cfg +3 -0
  442. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/CounterOrder.tla +11 -0
  443. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/chart.mmd +19 -0
  444. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/graph.dot +10 -0
  445. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/report.md +15 -0
  446. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/sany.out +2 -0
  447. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/verdict-1.exit +1 -0
  448. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/verdict-1.out +56 -0
  449. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/verdict-2.exit +1 -0
  450. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterOrder/verdict-2.out +67 -0
  451. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/ChartRun.out +62 -0
  452. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/CounterRules.cfg +6 -0
  453. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/CounterRules.tla +24 -0
  454. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/Moves.tla +5 -0
  455. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/chart.mmd +22 -0
  456. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/graph.dot +10 -0
  457. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/report.md +23 -0
  458. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/sany.out +3 -0
  459. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/verdict-1.exit +1 -0
  460. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/verdict-1.out +58 -0
  461. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/verdict-2.exit +1 -0
  462. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/verdict-2.out +66 -0
  463. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/verdict-3.exit +1 -0
  464. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/verdict-3.out +74 -0
  465. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterRules/verdict-4.out +59 -0
  466. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/ChartRun.out +58 -0
  467. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/CounterStart.cfg +3 -0
  468. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/CounterStart.tla +15 -0
  469. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/chart.mmd +18 -0
  470. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/graph.dot +13 -0
  471. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/report.md +11 -0
  472. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/sany.out +2 -0
  473. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/verdict-1.exit +1 -0
  474. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/verdict-1.out +33 -0
  475. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStart/verdict-2.out +57 -0
  476. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStop/ChartRun.out +57 -0
  477. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStop/CounterStop.cfg +3 -0
  478. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStop/CounterStop.tla +15 -0
  479. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStop/chart.mmd +7 -0
  480. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStop/graph.dot +13 -0
  481. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStop/report.md +6 -0
  482. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStop/sany.out +2 -0
  483. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterStop/verdict-1.out +49 -0
  484. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/ChartRun.out +61 -0
  485. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/CounterTie.cfg +4 -0
  486. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/CounterTie.tla +14 -0
  487. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/chart.mmd +30 -0
  488. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/graph.dot +19 -0
  489. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/report.md +27 -0
  490. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/sany.out +2 -0
  491. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/verdict-1.exit +1 -0
  492. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/verdict-1.out +56 -0
  493. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/verdict-2.exit +1 -0
  494. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/verdict-2.out +64 -0
  495. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/verdict-3.exit +1 -0
  496. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/verdict-3.out +87 -0
  497. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTie/verdict-4.out +57 -0
  498. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/ChartRun.out +60 -0
  499. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/CounterTieInGraph.cfg +3 -0
  500. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/CounterTieInGraph.tla +12 -0
  501. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/chart.mmd +23 -0
  502. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/graph.dot +19 -0
  503. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/report.md +11 -0
  504. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/sany.out +2 -0
  505. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-1.exit +1 -0
  506. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-1.out +56 -0
  507. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-2.out +57 -0
  508. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/ChartRun.out +61 -0
  509. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/CounterView.cfg +4 -0
  510. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/CounterView.tla +14 -0
  511. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/chart.mmd +23 -0
  512. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/graph.dot +19 -0
  513. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/report.md +27 -0
  514. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/sany.out +2 -0
  515. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/verdict-1.exit +1 -0
  516. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/verdict-1.out +56 -0
  517. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/verdict-2.exit +1 -0
  518. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/verdict-2.out +64 -0
  519. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/verdict-3.exit +1 -0
  520. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/verdict-3.out +87 -0
  521. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/verdict-4.out +57 -0
  522. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/CounterView/view.mjs +1 -0
  523. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/ChartRun.out +59 -0
  524. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/DieHard.cfg +4 -0
  525. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/DieHard.tla +38 -0
  526. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/chart.mmd +92 -0
  527. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/graph.dot +126 -0
  528. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/report.md +17 -0
  529. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/sany.out +2 -0
  530. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/verdict-1.exit +1 -0
  531. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/verdict-1.out +91 -0
  532. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/DieHard/verdict-2.out +57 -0
  533. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/ChartRun.out +61 -0
  534. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/FirstRule.cfg +6 -0
  535. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/FirstRule.tla +11 -0
  536. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/chart.mmd +22 -0
  537. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/graph.dot +16 -0
  538. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/report.md +25 -0
  539. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/sany.out +2 -0
  540. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/verdict-1.exit +1 -0
  541. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/verdict-1.out +56 -0
  542. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/verdict-2.exit +1 -0
  543. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/verdict-2.out +64 -0
  544. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/verdict-3.exit +1 -0
  545. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/verdict-3.out +64 -0
  546. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/verdict-4.exit +1 -0
  547. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/FirstRule/verdict-4.out +77 -0
  548. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/ChartRun.out +57 -0
  549. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/HiddenClock.cfg +4 -0
  550. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/HiddenClock.tla +11 -0
  551. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/chart.mmd +13 -0
  552. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/graph.dot +12 -0
  553. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/report.md +11 -0
  554. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/sany.out +2 -0
  555. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/verdict-1.exit +1 -0
  556. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/HiddenClock/verdict-1.out +72 -0
  557. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/ChartRun.out +57 -0
  558. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/Login.cfg +3 -0
  559. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/Login.tla +62 -0
  560. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/chart.mmd +27 -0
  561. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/graph.dot +40 -0
  562. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/report.md +7 -0
  563. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/sany.out +1 -0
  564. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/verdict-1.out +47 -0
  565. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Login/view.mjs +1 -0
  566. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/ChartRun.out +57 -0
  567. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/LoginGuarded.cfg +2 -0
  568. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/LoginGuarded.tla +64 -0
  569. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/chart.mmd +28 -0
  570. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/graph.dot +37 -0
  571. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/report.md +8 -0
  572. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/sany.out +1 -0
  573. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/verdict-1.out +47 -0
  574. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginGuarded/view.mjs +1 -0
  575. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/ChartRun.out +60 -0
  576. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/LoginParallel.cfg +3 -0
  577. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/LoginParallel.tla +64 -0
  578. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/chart.mmd +44 -0
  579. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/graph.dot +58 -0
  580. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/report.md +17 -0
  581. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/sany.out +1 -0
  582. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/verdict-1.exit +1 -0
  583. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/verdict-1.out +83 -0
  584. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/verdict-2.out +57 -0
  585. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/LoginParallel/view.mjs +1 -0
  586. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/ChartRun.out +60 -0
  587. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/MediaPlayer.cfg +3 -0
  588. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/MediaPlayer.tla +103 -0
  589. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/chart.mmd +43 -0
  590. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/graph.dot +93 -0
  591. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/report.md +14 -0
  592. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/sany.out +1 -0
  593. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-1.exit +1 -0
  594. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-1.out +59 -0
  595. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-2.out +72 -0
  596. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayer/view.mjs +3 -0
  597. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/ChartRun.out +57 -0
  598. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/MediaPlayerFixed.cfg +2 -0
  599. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/MediaPlayerFixed.tla +100 -0
  600. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/chart.mmd +31 -0
  601. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/graph.dot +85 -0
  602. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/report.md +9 -0
  603. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/sany.out +1 -0
  604. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/verdict-1.out +47 -0
  605. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerFixed/view.mjs +3 -0
  606. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/ChartRun.out +59 -0
  607. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayer.tla +103 -0
  608. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayerProps.cfg +3 -0
  609. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayerProps.tla +6 -0
  610. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/chart.mmd +42 -0
  611. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/graph.dot +93 -0
  612. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/report.md +19 -0
  613. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/sany.out +2 -0
  614. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-1.exit +1 -0
  615. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-1.out +61 -0
  616. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-2.out +59 -0
  617. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-3.out +61 -0
  618. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-4.exit +1 -0
  619. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-4.out +66 -0
  620. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-5.exit +1 -0
  621. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-5.out +58 -0
  622. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-6.out +49 -0
  623. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/MediaPlayerProps/view.mjs +3 -0
  624. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/PickWorker/ChartRun.out +57 -0
  625. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/PickWorker/PickWorker.cfg +6 -0
  626. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/PickWorker/PickWorker.tla +11 -0
  627. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/PickWorker/chart.mmd +5 -0
  628. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/PickWorker/graph.dot +11 -0
  629. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/PickWorker/report.md +7 -0
  630. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/PickWorker/sany.out +5 -0
  631. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/PickWorker/verdict-1.out +70 -0
  632. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/ChartRun.out +61 -0
  633. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/Shadow.cfg +4 -0
  634. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/Shadow.tla +11 -0
  635. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/ShadowLib.tla +6 -0
  636. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/ShadowSub.tla +3 -0
  637. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/chart.mmd +9 -0
  638. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/graph.dot +16 -0
  639. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/report.md +8 -0
  640. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/sany.out +4 -0
  641. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/Shadow/verdict-1.out +65 -0
  642. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/ChartRun.out +59 -0
  643. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/SpacedNames.cfg +2 -0
  644. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/SpacedNames.tla +9 -0
  645. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/chart.mmd +23 -0
  646. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/graph.dot +17 -0
  647. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/report.md +15 -0
  648. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/sany.out +1 -0
  649. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/verdict-1.exit +1 -0
  650. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/verdict-1.out +65 -0
  651. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/verdict-2.exit +1 -0
  652. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/SpacedNames/verdict-2.out +75 -0
  653. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/ChartRun.out +69 -0
  654. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/TwoPhase.cfg +3 -0
  655. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/TwoPhase.tla +75 -0
  656. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/chart.mmd +60 -0
  657. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/graph.dot +297 -0
  658. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/report.md +20 -0
  659. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/sany.out +1 -0
  660. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/verdict-1.exit +1 -0
  661. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/verdict-1.out +95 -0
  662. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/verdict-2.out +57 -0
  663. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhase/view.mjs +1 -0
  664. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/ChartRun.out +57 -0
  665. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/TwoPhaseFixed.cfg +3 -0
  666. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/TwoPhaseFixed.tla +75 -0
  667. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/chart.mmd +37 -0
  668. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/graph.dot +223 -0
  669. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/report.md +11 -0
  670. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/sany.out +1 -0
  671. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/verdict-1.out +47 -0
  672. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TwoPhaseFixed/view.mjs +1 -0
  673. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/ChartRun.exit +1 -0
  674. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/ChartRun.out +75 -0
  675. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/TypeGuard.cfg +5 -0
  676. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/TypeGuard.tla +11 -0
  677. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/chart.mmd +18 -0
  678. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/graph.dot +14 -0
  679. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/report.md +29 -0
  680. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/sany.out +2 -0
  681. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/verdict-1.exit +1 -0
  682. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/verdict-1.out +64 -0
  683. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/verdict-2.exit +1 -0
  684. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/TypeGuard/verdict-2.out +75 -0
  685. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/ChartRun.out +58 -0
  686. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/UserNoDeadlock.cfg +2 -0
  687. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/UserNoDeadlock.tla +8 -0
  688. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/chart.mmd +22 -0
  689. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/graph.dot +16 -0
  690. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/report.md +15 -0
  691. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/sany.out +2 -0
  692. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-1.exit +1 -0
  693. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-1.out +56 -0
  694. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-2.exit +1 -0
  695. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-2.out +77 -0
  696. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/corpus.test.ts +403 -0
  697. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/differential.test.ts +565 -0
  698. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/grid/Grid.cfg +2 -0
  699. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/grid/Grid.tla +9 -0
  700. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/grid/sany.out +2 -0
  701. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/java.ts +63 -0
  702. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/labels.ts +643 -0
  703. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/messages.test.ts +212 -0
  704. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/pipeline.test.ts +270 -0
  705. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/plain-tlc.test.ts +255 -0
  706. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/render.test.ts +81 -0
  707. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/tlc-out.test.ts +90 -0
  708. package/builtin/skills/pstack/dsh/skills/statechart/scripts/test/tlc.ts +158 -0
  709. package/builtin/skills/pstack/dsh/skills/statechart/scripts/tsconfig.json +11 -0
  710. package/builtin/skills/pstack/dsh/skills/statechart/scripts/worker.mjs +32 -0
  711. package/builtin/skills/pstack/dsh/skills/statechart/scripts/worker.ts +35 -0
  712. package/builtin/skills/pstack/dsh/skills/swarm/SKILL.md +44 -0
  713. package/builtin/skills/pstack/dsh/skills/tdd/SKILL.md +45 -0
  714. package/builtin/skills/pstack/dsh/skills/teach/SKILL.md +24 -0
  715. package/builtin/skills/pstack/dsh/skills/technical-writing/SKILL.md +109 -0
  716. package/builtin/skills/pstack/dsh/skills/typescript-best-practices/SKILL.md +34 -0
  717. package/builtin/skills/pstack/dsh/skills/typescript-best-practices/references/patterns.md +328 -0
  718. package/builtin/skills/pstack/dsh/skills/unslop/SKILL.md +65 -0
  719. package/builtin/skills/pstack/dsh/skills/why/SKILL.md +99 -0
  720. package/builtin/skills/pstack/dsh/skills/why/references/epistemics.md +71 -0
  721. package/builtin/skills/pstack/dsh/skills/why/references/investigator-prompt.md +84 -0
  722. package/builtin/skills/pstack/dsh/skills/why/references/source-playbook.md +17 -0
  723. package/builtin/skills/pstack/dsh/skills/why/references/sources/code-archaeology.md +51 -0
  724. package/builtin/skills/pstack/dsh/skills/why/references/sources/databricks.md +70 -0
  725. package/builtin/skills/pstack/dsh/skills/why/references/sources/datadog.md +97 -0
  726. package/builtin/skills/pstack/dsh/skills/why/references/sources/incident-postmortem.md +5 -0
  727. package/builtin/skills/pstack/dsh/skills/why/references/sources/linear.md +48 -0
  728. package/builtin/skills/pstack/dsh/skills/why/references/sources/notion.md +55 -0
  729. package/builtin/skills/pstack/dsh/skills/why/references/sources/sentry.md +66 -0
  730. package/builtin/skills/pstack/dsh/skills/why/references/sources/slack.md +17 -0
  731. package/builtin/skills/pstack/dsh/skills/why/references/synthesizer-prompt.md +129 -0
  732. package/client/index.js +350 -85
  733. package/cordis.patch.yml +5 -13
  734. package/docs/Acknowledgements.md +24 -12
  735. package/docs/Changelog.md +27 -0
  736. package/docs/Compatibility.md +66 -3
  737. package/docs/EvaluationResults.md +8 -6
  738. package/docs/UsageGuide.md +61 -7
  739. package/docs/en/Acknowledgements.md +24 -12
  740. package/docs/en/Changelog.md +27 -0
  741. package/docs/en/Compatibility.md +66 -3
  742. package/docs/en/EvaluationResults.md +8 -6
  743. package/docs/en/UsageGuide.md +61 -7
  744. package/docs/images/agent-tree-preview.png +0 -0
  745. package/docs/images/agent-tree.png +0 -0
  746. package/docs/images/install-tgz-preview.png +0 -0
  747. package/docs/images/install-tgz.png +0 -0
  748. package/docs/images/npm-downloads-dark.svg +22 -0
  749. package/docs/images/npm-downloads.svg +22 -0
  750. package/docs/images/preset-settings-preview.png +0 -0
  751. package/docs/images/star-history-dark.svg +22 -0
  752. package/docs/images/star-history.svg +22 -0
  753. package/docs/images/task-status-preview.png +0 -0
  754. package/docs/images/task-status.png +0 -0
  755. package/lib/connection/approvals.d.ts +4 -0
  756. package/lib/connection/approvals.d.ts.map +1 -1
  757. package/lib/connection/approvals.js.map +1 -1
  758. package/lib/connection/client.d.ts.map +1 -1
  759. package/lib/connection/client.js +20 -3
  760. package/lib/connection/client.js.map +1 -1
  761. package/lib/connection/git.d.ts.map +1 -1
  762. package/lib/connection/git.js +17 -12
  763. package/lib/connection/git.js.map +1 -1
  764. package/lib/connection/http.d.ts.map +1 -1
  765. package/lib/connection/http.js +20 -1
  766. package/lib/connection/http.js.map +1 -1
  767. package/lib/connection/service.d.ts +3 -2
  768. package/lib/connection/service.d.ts.map +1 -1
  769. package/lib/connection/service.js +8 -3
  770. package/lib/connection/service.js.map +1 -1
  771. package/lib/connection/store.d.ts +1 -0
  772. package/lib/connection/store.d.ts.map +1 -1
  773. package/lib/connection/store.js +84 -35
  774. package/lib/connection/store.js.map +1 -1
  775. package/lib/connection/tasks.d.ts +4 -2
  776. package/lib/connection/tasks.d.ts.map +1 -1
  777. package/lib/connection/tasks.js +47 -42
  778. package/lib/connection/tasks.js.map +1 -1
  779. package/lib/connection/types.d.ts +2 -1
  780. package/lib/connection/types.d.ts.map +1 -1
  781. package/lib/core/batch-policy.js +2 -2
  782. package/lib/core/batch-policy.js.map +1 -1
  783. package/lib/core/delegation.d.ts +3 -0
  784. package/lib/core/delegation.d.ts.map +1 -1
  785. package/lib/core/delegation.js +2 -2
  786. package/lib/core/delegation.js.map +1 -1
  787. package/lib/core/deletion-command.d.ts.map +1 -1
  788. package/lib/core/deletion-command.js +192 -19
  789. package/lib/core/deletion-command.js.map +1 -1
  790. package/lib/core/tool-evidence.d.ts.map +1 -1
  791. package/lib/core/tool-evidence.js +9 -2
  792. package/lib/core/tool-evidence.js.map +1 -1
  793. package/lib/dsh/budget-settings.d.ts +11 -0
  794. package/lib/dsh/budget-settings.d.ts.map +1 -1
  795. package/lib/dsh/budget-settings.js +43 -9
  796. package/lib/dsh/budget-settings.js.map +1 -1
  797. package/lib/dsh/budgets.d.ts +5 -0
  798. package/lib/dsh/budgets.d.ts.map +1 -1
  799. package/lib/dsh/budgets.js +15 -0
  800. package/lib/dsh/budgets.js.map +1 -1
  801. package/lib/dsh/bundled-skills.d.ts +17 -0
  802. package/lib/dsh/bundled-skills.d.ts.map +1 -0
  803. package/lib/dsh/bundled-skills.js +94 -0
  804. package/lib/dsh/bundled-skills.js.map +1 -0
  805. package/lib/dsh/connection-approval.d.ts.map +1 -1
  806. package/lib/dsh/connection-approval.js +24 -2
  807. package/lib/dsh/connection-approval.js.map +1 -1
  808. package/lib/dsh/connection-history.d.ts +2 -1
  809. package/lib/dsh/connection-history.d.ts.map +1 -1
  810. package/lib/dsh/connection-history.js +22 -4
  811. package/lib/dsh/connection-history.js.map +1 -1
  812. package/lib/dsh/connection-host.d.ts +0 -1
  813. package/lib/dsh/connection-host.d.ts.map +1 -1
  814. package/lib/dsh/connection-host.js +59 -26
  815. package/lib/dsh/connection-host.js.map +1 -1
  816. package/lib/dsh/connection.d.ts.map +1 -1
  817. package/lib/dsh/connection.js +10 -5
  818. package/lib/dsh/connection.js.map +1 -1
  819. package/lib/dsh/directory-metadata.d.ts +4 -0
  820. package/lib/dsh/directory-metadata.d.ts.map +1 -0
  821. package/lib/dsh/directory-metadata.js +4 -0
  822. package/lib/dsh/directory-metadata.js.map +1 -0
  823. package/lib/dsh/index.d.ts.map +1 -1
  824. package/lib/dsh/index.js +2 -0
  825. package/lib/dsh/index.js.map +1 -1
  826. package/lib/dsh/memory-library.d.ts.map +1 -1
  827. package/lib/dsh/memory-library.js +8 -4
  828. package/lib/dsh/memory-library.js.map +1 -1
  829. package/lib/dsh/official-budgets.d.ts.map +1 -1
  830. package/lib/dsh/official-budgets.js +3 -2
  831. package/lib/dsh/official-budgets.js.map +1 -1
  832. package/lib/dsh/openspec-shell.d.ts +3 -0
  833. package/lib/dsh/openspec-shell.d.ts.map +1 -0
  834. package/lib/dsh/openspec-shell.js +25 -0
  835. package/lib/dsh/openspec-shell.js.map +1 -0
  836. package/lib/dsh/preset-declaration.d.ts +3 -0
  837. package/lib/dsh/preset-declaration.d.ts.map +1 -1
  838. package/lib/dsh/preset-declaration.js +39 -36
  839. package/lib/dsh/preset-declaration.js.map +1 -1
  840. package/lib/dsh/preset-files.d.ts.map +1 -1
  841. package/lib/dsh/preset-files.js +16 -1
  842. package/lib/dsh/preset-files.js.map +1 -1
  843. package/lib/dsh/preset-installation.d.ts +1 -0
  844. package/lib/dsh/preset-installation.d.ts.map +1 -1
  845. package/lib/dsh/preset-installation.js +5 -3
  846. package/lib/dsh/preset-installation.js.map +1 -1
  847. package/lib/dsh/preset-metadata.d.ts.map +1 -1
  848. package/lib/dsh/preset-metadata.js +18 -6
  849. package/lib/dsh/preset-metadata.js.map +1 -1
  850. package/lib/dsh/preset-recovery-runtime.d.ts.map +1 -1
  851. package/lib/dsh/preset-recovery-runtime.js +34 -12
  852. package/lib/dsh/preset-recovery-runtime.js.map +1 -1
  853. package/lib/dsh/preset-recovery.d.ts.map +1 -1
  854. package/lib/dsh/preset-recovery.js +79 -13
  855. package/lib/dsh/preset-recovery.js.map +1 -1
  856. package/lib/dsh/preset-version.d.ts +1 -0
  857. package/lib/dsh/preset-version.d.ts.map +1 -1
  858. package/lib/dsh/preset-version.js +1 -1
  859. package/lib/dsh/preset-version.js.map +1 -1
  860. package/lib/dsh/ptc-budget.d.ts.map +1 -1
  861. package/lib/dsh/ptc-budget.js +4 -2
  862. package/lib/dsh/ptc-budget.js.map +1 -1
  863. package/lib/dsh/skill-directory.d.ts +45 -0
  864. package/lib/dsh/skill-directory.d.ts.map +1 -0
  865. package/lib/dsh/skill-directory.js +113 -0
  866. package/lib/dsh/skill-directory.js.map +1 -0
  867. package/lib/dsh/skill-installation.d.ts +8 -0
  868. package/lib/dsh/skill-installation.d.ts.map +1 -0
  869. package/lib/dsh/skill-installation.js +131 -0
  870. package/lib/dsh/skill-installation.js.map +1 -0
  871. package/lib/dsh/skill-packages.d.ts +6 -0
  872. package/lib/dsh/skill-packages.d.ts.map +1 -0
  873. package/lib/dsh/skill-packages.js +8 -0
  874. package/lib/dsh/skill-packages.js.map +1 -0
  875. package/lib/dsh/super-code.d.ts.map +1 -1
  876. package/lib/dsh/super-code.js +143 -166
  877. package/lib/dsh/super-code.js.map +1 -1
  878. package/lib/dsh/tool-contracts.d.ts +53 -0
  879. package/lib/dsh/tool-contracts.d.ts.map +1 -0
  880. package/lib/dsh/tool-contracts.js +129 -0
  881. package/lib/dsh/tool-contracts.js.map +1 -0
  882. package/lib/dsh/windows-shell.d.ts +2 -2
  883. package/lib/dsh/windows-shell.d.ts.map +1 -1
  884. package/lib/dsh/windows-shell.js +11 -1
  885. package/lib/dsh/windows-shell.js.map +1 -1
  886. package/lib/long-memory.d.ts +2 -2
  887. package/lib/long-memory.d.ts.map +1 -1
  888. package/lib/long-memory.js +16 -9
  889. package/lib/long-memory.js.map +1 -1
  890. package/lib/memory-usage-projection.d.ts.map +1 -1
  891. package/lib/memory-usage-projection.js +13 -9
  892. package/lib/memory-usage-projection.js.map +1 -1
  893. package/lib/task-feedback-projection.d.ts +1 -0
  894. package/lib/task-feedback-projection.d.ts.map +1 -1
  895. package/lib/task-feedback-projection.js +65 -21
  896. package/lib/task-feedback-projection.js.map +1 -1
  897. package/lib/task-memory-store.d.ts.map +1 -1
  898. package/lib/task-memory-store.js +7 -1
  899. package/lib/task-memory-store.js.map +1 -1
  900. package/package.json +24 -4
  901. package/presets/super-code/agent.cordis.yml +4 -6
  902. package/runtime/skills/openspec/bin/openspec +2 -0
  903. package/runtime/skills/openspec/bin/openspec.cmd +6 -0
  904. package/presets/super-code/skills/super-code-frontend/SKILL.md +0 -33
  905. package/presets/super-code/skills/super-code-frontend/references/browser-validation.md +0 -59
  906. package/presets/super-code/skills/super-code-frontend/references/interaction-states.md +0 -51
  907. package/presets/super-code/skills/super-code-frontend/references/visual-design.md +0 -43
@@ -0,0 +1,388 @@
1
+ #!/usr/bin/env node
2
+ // Optional oiloil image CLI for hosts without image tools. Node 22+, no dependencies.
3
+ import fs from 'node:fs/promises';
4
+ import os from 'node:os';
5
+ import path from 'node:path';
6
+ import { randomUUID } from 'node:crypto';
7
+ import { fileURLToPath } from 'node:url';
8
+
9
+ const ACCOUNT = 'https://ui.oiloil.org/account/?tab=images';
10
+ const LOGIN = 'npx github:oil-oil/oil-cli login';
11
+ const MIME_EXT = { 'image/png': '.png', 'image/jpeg': '.jpg', 'image/webp': '.webp' };
12
+ const EXT_MIME = { '.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.webp': 'image/webp' };
13
+ const MAX_REF = 2 * 1024 * 1024;
14
+ const HELP = `用法:node <skill>/scripts/oiloil-image.mjs <image|balance|status> [选项]
15
+ 需要 Node 22+,无第三方依赖。image 使用 oiloil 积分生图;加 --ref 则改图。
16
+
17
+ 常用命令:
18
+ node <skill>/scripts/oiloil-image.mjs image "<图片说明>" --out assets/generated.png
19
+ node <skill>/scripts/oiloil-image.mjs image --prompt "<图片说明>" --size 2k --out assets/generated.webp
20
+ node <skill>/scripts/oiloil-image.mjs image "<修改说明>" --ref assets/input.png --size 1024x1536
21
+ node <skill>/scripts/oiloil-image.mjs image "<物件说明>" --background transparent --out assets/cutout.webp
22
+ node <skill>/scripts/oiloil-image.mjs balance
23
+ node <skill>/scripts/oiloil-image.mjs status <幂等键>
24
+
25
+ image 选项:
26
+ --prompt, -p <说明> 也可直接写在命令后;未加引号的多段文字会用空格连接
27
+ --size, -s <尺寸> 1K|2K|4K 或 宽x高,默认 1K;大小写、X 和 × 均可
28
+ 自定义宽高须为 16 的倍数,长边 ≤ 3840,比例 ≤ 3:1,
29
+ 总像素 655360..8294400
30
+ --out, -o <文件> 默认 assets/generated.png;目录自动创建
31
+ --ref, -r <文件> 仅一张本地 PNG/JPEG/WebP,最多 2 MiB;按文件内容识别格式
32
+ --background, -b <值> transparent 生成透明底素材(也可写“透明”);opaque 或 auto 同接口
33
+
34
+ status 选项:
35
+ 只接受一个 image 请求使用过的幂等键,查询 running、completed 或 failed 状态。
36
+ --out, -o <文件> 恢复已完成请求的原图;不加时只查询,不写入图片。
37
+ 成功结果保留 24 小时;过期或早期请求只能查询状态。
38
+
39
+ 通用选项:
40
+ --timeout <毫秒> 请求超时,image 默认 120000,其他命令默认 10000;1..900000
41
+ --help, -h 打印帮助
42
+ 选项可放在子命令前后,可用 --名字=值、--名字 值;-- 之后按位置参数读取。
43
+ 不提供画质参数,服务端固定 medium。已有文件不覆盖,自动加序号;
44
+ --out 后缀与返回格式不符时按实际格式保存,成功输出实际绝对路径、扣除积分和剩余积分。
45
+ 可能已生成或结果不确定的响应保留供恢复;输出写入失败时保存到备用目录。
46
+ 生成请求不自动重试;网络中断后用 status 查询原请求,避免重复生成。
47
+
48
+ 令牌先读 OIL_TOKEN,再读 oil CLI config.json 的 token:
49
+ macOS/Linux:$XDG_CONFIG_HOME/oil/config.json,未设时用 ~/.config/oil/config.json
50
+ Windows:%APPDATA%\\oil\\config.json,未设时用用户目录的 AppData\\Roaming\\oil\\config.json
51
+ 脚本不登录,也不读取配置中的 api;登录命令:${LOGIN}
52
+ 余额与充值:${ACCOUNT}
53
+ OIL_IMAGE_API 可覆盖图像 API 根地址(默认 https://api.oiloil.org,不含 /v1)。
54
+ OIL_API 仍只用于画廊、oil CLI 和更新检查,不改变图像 API 地址。
55
+ 令牌、图片说明和参考图只发给图像 API;脚本不输出令牌,也不把请求头写入恢复文件。
56
+
57
+ 退出码:0 成功;1 本地读写失败;2 参数错误;3 未登录;4 余额不足;
58
+ 5 登录失效;6 网络错误或超时;7 接口或响应异常;8 保存失败(保留响应)。
59
+ 成功写到标准输出,说明和错误写到标准错误,不打印堆栈。`;
60
+
61
+ class CliError extends Error {
62
+ constructor(code, message) { super(message); this.code = code; }
63
+ }
64
+ const usage = message => { throw new CliError(2, `${message}。用 node <skill>/scripts/oiloil-image.mjs --help 查看用法。`); };
65
+ const quoted = value => JSON.stringify(value);
66
+ export function shellQuote(value, platform = process.platform) {
67
+ const text = String(value);
68
+ return platform === 'win32' ? `'${text.replaceAll("'", "''")}'` : `'${text.replaceAll("'", "'\\''")}'`;
69
+ }
70
+
71
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
72
+
73
+ export function parseArgs(argv) {
74
+ const flags = argv.slice(0, argv.includes('--') ? argv.indexOf('--') : argv.length);
75
+ if (!argv.length || flags.includes('--help') || flags.includes('-h')) return { help: true };
76
+ const aliases = { p: 'prompt', s: 'size', o: 'out', r: 'ref', b: 'background' };
77
+ const opts = {}, words = [];
78
+ let command, literal = false;
79
+ for (let i = 0; i < argv.length; i++) {
80
+ const arg = argv[i];
81
+ if (!literal && arg === '--') { literal = true; continue; }
82
+ if (!literal && arg.startsWith('-')) {
83
+ const match = arg.match(/^(?:--([a-z-]+)|-([psorb]))(?:=(.*))?$/s);
84
+ const key = match && (match[1] ?? aliases[match[2]]);
85
+ if (!['prompt', 'size', 'out', 'ref', 'background', 'timeout'].includes(key)) usage(`不支持选项 ${arg}`);
86
+ if (key in opts) usage(`--${key} 只能写一次${key === 'ref' ? ',参考图仅支持一张' : ''}`);
87
+ const value = match[3] ?? argv[++i];
88
+ if (!value?.trim() || (match[3] === undefined && value.startsWith('-'))) usage(`--${key} 缺少值`);
89
+ opts[key] = value;
90
+ } else if (!command) {
91
+ if (!['image', 'balance', 'status'].includes(arg)) usage(`未知命令 ${arg}`);
92
+ command = arg;
93
+ } else words.push(arg);
94
+ }
95
+ if (!command) usage('缺少 image、balance 或 status 子命令');
96
+ if (command === 'status') {
97
+ if (Object.keys(opts).some(key => !['timeout', 'out'].includes(key))) usage('status 只接受一个幂等键、--out 和 --timeout');
98
+ if (words.length !== 1 || !UUID_RE.test(words[0])) usage('status 需要一个有效的 image 请求幂等键');
99
+ if (opts.out && /[\\/]$/.test(opts.out)) usage('--out 应为文件路径');
100
+ if (opts.out) opts.out = path.resolve(opts.out);
101
+ opts.key = words[0];
102
+ } else if (command === 'balance') {
103
+ if (words.length || Object.keys(opts).some(key => key !== 'timeout')) usage('balance 只接受 --timeout');
104
+ } else {
105
+ if (opts.prompt && words.length) usage('说明文字请用位置参数或 --prompt 中的一种');
106
+ opts.prompt = (opts.prompt ?? words.join(' ')).trim();
107
+ if (!opts.prompt) usage('image 缺少图片说明');
108
+ const size = (opts.size ?? '1K').trim().toUpperCase();
109
+ const dimensions = size.match(/^([1-9]\d*)\s*[X×]\s*([1-9]\d*)$/);
110
+ if (!['1K', '2K', '4K'].includes(size) && !dimensions) usage('--size 应为 1K、2K、4K 或 宽x高');
111
+ if (dimensions) {
112
+ const width = Number(dimensions[1]), height = Number(dimensions[2]);
113
+ const pixels = width * height;
114
+ if (width % 16 !== 0 || height % 16 !== 0 || Math.max(width, height) > 3840
115
+ || Math.max(width, height) / Math.min(width, height) > 3
116
+ || pixels < 655360 || pixels > 8294400) {
117
+ usage('自定义 --size 需满足:宽高为 16 的倍数,长边不超过 3840,比例不超过 3:1,总像素为 655360..8294400');
118
+ }
119
+ }
120
+ opts.size = dimensions ? `${dimensions[1]}x${dimensions[2]}` : size;
121
+ if (opts.background !== undefined) {
122
+ const bg = opts.background.trim().toLowerCase();
123
+ opts.background = bg === '透明' ? 'transparent' : bg;
124
+ if (!['transparent', 'opaque', 'auto'].includes(opts.background)) usage('--background 应为 transparent、opaque 或 auto');
125
+ }
126
+ if (opts.out && /[\\/]$/.test(opts.out)) usage('--out 应为文件路径');
127
+ opts.out = path.resolve(opts.out ?? 'assets/generated.png');
128
+ }
129
+ opts.timeout = Number(opts.timeout ?? (command === 'image' ? 120000 : 10000));
130
+ if (!Number.isInteger(opts.timeout) || opts.timeout < 1 || opts.timeout > 900000) usage('--timeout 应为 1..900000 的整数');
131
+ return { command, opts };
132
+ }
133
+
134
+ export function tokenConfigPath(env = process.env, platform = process.platform, home = os.homedir()) {
135
+ const p = platform === 'win32' ? path.win32 : path.posix;
136
+ const root = platform === 'win32'
137
+ ? env.APPDATA || p.join(home, 'AppData', 'Roaming')
138
+ : env.XDG_CONFIG_HOME || p.join(home, '.config');
139
+ return p.join(root, 'oil', 'config.json');
140
+ }
141
+
142
+ export async function readOilToken(env = process.env, platform = process.platform, home = os.homedir()) {
143
+ if (env.OIL_TOKEN?.trim()) return env.OIL_TOKEN.trim();
144
+ try {
145
+ const config = JSON.parse(await fs.readFile(tokenConfigPath(env, platform, home), 'utf8'));
146
+ return typeof config?.token === 'string' ? config.token.trim() : '';
147
+ } catch { return ''; }
148
+ }
149
+
150
+ function apiRoot() {
151
+ try {
152
+ const url = new URL(process.env.OIL_IMAGE_API?.trim() || 'https://api.oiloil.org');
153
+ if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password || url.search || url.hash) throw new Error();
154
+ return url.href.replace(/\/+$/, '');
155
+ } catch { usage('OIL_IMAGE_API 应为不带凭据、查询参数或片段的 HTTP(S) 根地址'); }
156
+ }
157
+
158
+ async function referenceImage(file) {
159
+ try {
160
+ const info = await fs.stat(file);
161
+ if (!info.isFile()) usage('--ref 应为本地图片文件');
162
+ if (info.size > MAX_REF) usage('oiloil 参考图上限为 2 MiB,请缩小图片或去掉 --ref');
163
+ const bytes = await fs.readFile(file);
164
+ if (bytes.length > MAX_REF) usage('oiloil 参考图上限为 2 MiB,请缩小图片或去掉 --ref');
165
+ const mime = bytes.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10])) ? 'image/png'
166
+ : bytes[0] === 255 && bytes[1] === 216 && bytes[2] === 255 ? 'image/jpeg'
167
+ : bytes.toString('ascii', 0, 4) === 'RIFF' && bytes.toString('ascii', 8, 12) === 'WEBP' ? 'image/webp' : null;
168
+ if (!mime) usage('--ref 仅支持 PNG、JPEG 或 WebP 文件');
169
+ return `data:${mime};base64,${bytes.toString('base64')}`;
170
+ } catch (error) {
171
+ if (error instanceof CliError) throw error;
172
+ throw new CliError(1, '无法读取参考图,请检查 --ref 路径和文件权限;本次未发送生成请求。');
173
+ }
174
+ }
175
+
176
+ // Reserve writable recovery storage BEFORE sending a potentially charged request.
177
+ async function prepareOutput(out, idempotencyKey) {
178
+ let dir, handle, requestHandle;
179
+ try {
180
+ await fs.mkdir(path.dirname(out), { recursive: true });
181
+ const info = await fs.lstat(out).catch(error => { if (error.code !== 'ENOENT') throw error; });
182
+ if (info?.isDirectory()) usage('--out 应为文件路径');
183
+ dir = await fs.mkdtemp(path.join(os.tmpdir(), 'oiloil-image-'));
184
+ const requestFile = path.join(dir, 'request.json');
185
+ requestHandle = await fs.open(requestFile, 'wx', 0o600);
186
+ await requestHandle.writeFile(JSON.stringify({ endpoint: 'images', idempotency_key: idempotencyKey }), 'utf8');
187
+ await requestHandle.sync();
188
+ await requestHandle.close();
189
+ requestHandle = undefined;
190
+ const file = path.join(dir, 'response.json');
191
+ handle = await fs.open(file, 'wx', 0o600);
192
+ return { dir, file, requestFile, handle, idempotencyKey, out };
193
+ } catch (error) {
194
+ await requestHandle?.close().catch(() => {});
195
+ await handle?.close().catch(() => {});
196
+ if (dir) await fs.rm(dir, { recursive: true, force: true }).catch(() => {});
197
+ if (error instanceof CliError) throw error;
198
+ throw new CliError(1, '无法准备输出或恢复目录,请检查 --out 和临时目录的权限及可用空间;本次未发送生成请求。');
199
+ }
200
+ }
201
+
202
+ async function request(command, opts, token, root, recovery) {
203
+ let response, raw;
204
+ const endpoint = command === 'image' ? 'images' : command === 'balance' ? 'credits' : `requests/${opts.key}?endpoint=images`;
205
+ try {
206
+ response = await fetch(`${root}/v1/${endpoint}`, {
207
+ method: command === 'image' ? 'POST' : 'GET',
208
+ headers: {
209
+ Authorization: `Bearer ${token}`,
210
+ ...(command === 'image' ? { 'Content-Type': 'application/json', 'Idempotency-Key': opts.idempotencyKey } : {}),
211
+ },
212
+ ...(command === 'image' ? { body: JSON.stringify(opts.body) } : {}),
213
+ signal: AbortSignal.timeout(opts.timeout),
214
+ redirect: 'error',
215
+ });
216
+ raw = await response.text();
217
+ } catch {
218
+ if (recovery) recovery.statusRequired = true;
219
+ throw new CliError(6, command === 'image'
220
+ ? `连接 oiloil 失败或请求超时,暂时没有拿到图片,无法确认本次是否扣费。请用随后给出的 status 命令查询原请求,或到 ${ACCOUNT} 核对记录;不要直接重新生成。`
221
+ : command === 'status'
222
+ ? '连接 oiloil 失败或请求超时,暂时无法查询原请求状态。请检查网络后用同一命令重试;不要重新生图。'
223
+ : `连接 oiloil 失败或请求超时,暂时无法查询余额。请检查网络后重试,或到 ${ACCOUNT} 查看;任务照常继续。`);
224
+ }
225
+ if (response.status === 401) throw new CliError(5, `oiloil 登录状态已失效。可运行 ${LOGIN} 重新登录,并在 ${ACCOUNT} 查看余额或充值;任务照常继续,合适时友好提示一次即可。`);
226
+ if (response.status === 402) throw new CliError(4, `oiloil 余额不足,本次生图未开始。可在 ${ACCOUNT} 充值;任务照常继续,合适时友好提示一次即可。`);
227
+ if (command === 'status' && response.status === 404) {
228
+ throw new CliError(7, '未找到这个 image 请求。请核对幂等键;不要重新生图,必要时到账户页核对记录。');
229
+ }
230
+ if (response.status === 400) {
231
+ let detail = '';
232
+ try {
233
+ const result = JSON.parse(raw);
234
+ if (typeof result?.error?.message === 'string') detail = result.error.message.replace(/\s+/g, ' ').trim().slice(0, 300);
235
+ } catch {}
236
+ throw new CliError(2, `oiloil 参数错误${detail ? `:${detail}` : '(HTTP 400)'}。请修正后重试。`);
237
+ }
238
+ if (response.status === 409 && command === 'image') {
239
+ recovery.statusRequired = true;
240
+ throw new CliError(7, 'oiloil 检测到重复的幂等键。请用随后给出的 status 命令查询原请求,不要直接重新生成。');
241
+ }
242
+ if (response.status >= 400 && response.status < 500) {
243
+ throw new CliError(7, `oiloil 拒绝了请求(HTTP ${response.status}),未收到图片。请检查请求后重试。`);
244
+ }
245
+ if (recovery) {
246
+ // Persist before validating image/usage, so a malformed paid result is recoverable.
247
+ try {
248
+ await recovery.handle.writeFile(raw, 'utf8');
249
+ await recovery.handle.sync();
250
+ } catch {
251
+ // A second filesystem may still be writable; do not throw away the in-memory result.
252
+ try { recovery.extra = await writeUnique(path.join(path.dirname(opts.out), `oiloil-response-${randomUUID()}.json`), Buffer.from(raw), 0o600); }
253
+ catch { recovery.writeFailed = true; }
254
+ }
255
+ recovery.received = true;
256
+ }
257
+ if (!response.ok) {
258
+ if (recovery) recovery.statusRequired = true;
259
+ throw new CliError(7, `oiloil 接口返回异常(HTTP ${response.status}),未自动重试。请查询原请求或到 ${ACCOUNT} 核对记录后再决定是否重试;任务照常继续。`);
260
+ }
261
+ try { return JSON.parse(raw); }
262
+ catch { throw new CliError(7, 'oiloil 返回了无法解析的响应,未自动重试;请先核对账户记录。'); }
263
+ }
264
+
265
+ async function writeUnique(target, bytes, mode = 0o644) {
266
+ const ext = path.extname(target), stem = target.slice(0, target.length - ext.length);
267
+ for (let suffix = 0; ; suffix++) {
268
+ const file = suffix ? `${stem}-${suffix}${ext}` : target;
269
+ let handle;
270
+ try { handle = await fs.open(file, 'wx', mode); }
271
+ catch (error) { if (error.code === 'EEXIST') continue; throw error; }
272
+ try {
273
+ await handle.writeFile(bytes);
274
+ await handle.sync();
275
+ await handle.close();
276
+ return file;
277
+ } catch (error) {
278
+ await handle.close().catch(() => {});
279
+ await fs.rm(file, { force: true }).catch(() => {});
280
+ throw error;
281
+ }
282
+ }
283
+ }
284
+
285
+ const validNumber = value => typeof value === 'number' && Number.isFinite(value) && value >= 0;
286
+
287
+ function decodeImage(result) {
288
+ const mime = result?.image?.mime_type, data = result?.image?.data;
289
+ const ext = Object.hasOwn(MIME_EXT, mime) ? MIME_EXT[mime] : null;
290
+ if (!ext || typeof data !== 'string' || !data) {
291
+ throw new CliError(7, 'oiloil 返回的图片格式或数据异常,未自动重试;请保留响应并先核对账户记录。');
292
+ }
293
+ const bytes = Buffer.from(data, 'base64');
294
+ // A repeated-group base64 regexp can overflow V8's stack on large images.
295
+ if (!bytes.length || bytes.toString('base64') !== data) {
296
+ throw new CliError(7, 'oiloil 返回的图片数据为空或不是有效 base64,未自动重试;请先核对账户记录。');
297
+ }
298
+ return { mime, ext, bytes };
299
+ }
300
+
301
+ async function saveImage(result, opts, recovery) {
302
+ const { mime, ext, bytes } = decodeImage(result);
303
+ const requestedExt = path.extname(opts.out);
304
+ const target = EXT_MIME[requestedExt.toLowerCase()] === mime ? opts.out
305
+ : `${opts.out.slice(0, opts.out.length - requestedExt.length)}${ext}`;
306
+ let actual, fallback = false;
307
+ try { actual = await writeUnique(target, bytes); }
308
+ catch {
309
+ fallback = true;
310
+ try { actual = await writeUnique(path.join(recovery.dir, `generated${ext}`), bytes); }
311
+ catch { throw new CliError(8, '图片已返回,但输出和备用图片都未能写入。请保留响应、检查磁盘空间和权限;不要重新生图。'); }
312
+ }
313
+ if (!validNumber(result?.usage?.credits) || !validNumber(result?.usage?.balance)) {
314
+ throw new CliError(7, `图片已保存到 ${quoted(actual)},但接口未返回有效的扣除积分或余额。请到 ${ACCOUNT} 核对;不要重新生图。`);
315
+ }
316
+ console.log(`图片已保存到 ${quoted(actual)};本次扣除 ${result.usage.credits} 积分,剩余 ${result.usage.balance} 积分。${fallback ? '原输出位置写入失败,已保存到备用目录。' : ''}`);
317
+ return fallback;
318
+ }
319
+
320
+ export async function main(argv = process.argv.slice(2)) {
321
+ let recovery, keepRecovery = false;
322
+ try {
323
+ const parsed = parseArgs(argv);
324
+ if (parsed.help) { console.log(HELP); return 0; }
325
+ const { command, opts } = parsed;
326
+ const token = await readOilToken();
327
+ if (!token) throw new CliError(3, `尚未登录 oiloil,暂时无法${command === 'image' ? '使用积分生图' : '查询账户信息'}。可运行 ${LOGIN} 登录,并在 ${ACCOUNT} 查看余额或充值;任务照常继续,合适时友好提示一次即可。`);
328
+ const root = apiRoot();
329
+ if (command === 'image') {
330
+ opts.body = { prompt: opts.prompt, size: opts.size };
331
+ if (opts.background && opts.background !== 'auto') opts.body.background = opts.background;
332
+ if (opts.ref) opts.body.reference_image = await referenceImage(opts.ref);
333
+ }
334
+ if (command === 'image' || (command === 'status' && opts.out)) {
335
+ opts.idempotencyKey = command === 'image' ? randomUUID() : opts.key;
336
+ recovery = await prepareOutput(opts.out, opts.idempotencyKey);
337
+ }
338
+ const result = await request(command, opts, token, root, recovery);
339
+ if (command === 'balance') {
340
+ if (!validNumber(result?.balance)) throw new CliError(7, 'oiloil 未返回有效余额,请稍后查询或到账户页面查看。');
341
+ console.log(`oiloil 余额:${result.balance} 积分。`);
342
+ } else if (command === 'status') {
343
+ if (typeof result?.request_id !== 'string' || !result.request_id
344
+ || !['running', 'completed', 'failed'].includes(result?.state) || !validNumber(result?.credits)
345
+ || (result.state !== 'completed' && (result.credits !== 0 || result.image !== undefined))) {
346
+ throw new CliError(7, 'oiloil 未返回有效的原请求状态,请稍后重试或到账户页面核对。');
347
+ }
348
+ const recoverable = result.state === 'completed' && result.image !== undefined;
349
+ if (recoverable && result.usage && result.usage.credits !== result.credits) {
350
+ throw new CliError(7, 'oiloil 返回的原请求积分不一致,请先到账户页面核对;不要重新生图。');
351
+ }
352
+ if (result.state === 'completed' && !recoverable && opts.out) {
353
+ if (recovery) recovery.received = false;
354
+ throw new CliError(7, '原请求已完成,但原图已过期或该请求早于结果恢复功能,无法通过 status 取回;请先核对账户记录,不要直接重新生图。');
355
+ }
356
+ if (recoverable && !opts.out) {
357
+ if (!validNumber(result.usage?.credits) || !validNumber(result.usage?.balance)) throw new CliError(7, 'oiloil 未返回有效的原请求积分,请稍后重试或到账户页面核对。');
358
+ decodeImage(result);
359
+ }
360
+ const note = result.state === 'running' ? '请求仍在处理,请勿重新生成。'
361
+ : result.state === 'failed' ? '需要重试时请使用新的幂等键。'
362
+ : recoverable ? (opts.out ? '' : '原图可恢复;用同一命令加 --out <文件> 保存。')
363
+ : '原图已过期或该请求早于结果恢复功能,无法通过 status 取回。';
364
+ if (!recoverable || !opts.out) console.log(`原请求状态:${result.state};请求编号:${result.request_id};已结算 ${result.credits} 积分。${note}`);
365
+ if (recoverable && opts.out) keepRecovery = await saveImage(result, opts, recovery);
366
+ } else keepRecovery = await saveImage(result, opts, recovery);
367
+ return 0;
368
+ } catch (error) {
369
+ const failure = error instanceof CliError ? error : new CliError(1, '本地操作失败,请检查文件路径、权限和可用空间。');
370
+ console.error(failure.message);
371
+ keepRecovery = Boolean(recovery && (recovery.received || recovery.statusRequired));
372
+ if (recovery?.received) console.error(`生成响应保留在 ${quoted(recovery.extra ?? recovery.file)}${recovery.writeFailed ? '(写入未完成,请检查磁盘空间)' : ''};请先恢复已返回的结果,不要重新生图。`);
373
+ if (recovery?.statusRequired) console.error(`原请求幂等键:${recovery.idempotencyKey}。可运行 node <skill>/scripts/oiloil-image.mjs status ${recovery.idempotencyKey}${recovery.out ? ` --out ${shellQuote(recovery.out.replaceAll(path.sep, '/'))}` : ''} 查询并恢复原图;请求信息保留在 ${quoted(recovery.requestFile)}。`);
374
+ return failure.code;
375
+ } finally {
376
+ await recovery?.handle.close().catch(() => {});
377
+ if (recovery && !recovery.received) await fs.rm(recovery.file, { force: true }).catch(() => {});
378
+ if (recovery && !keepRecovery) {
379
+ await fs.rm(recovery.dir, { recursive: true, force: true }).catch(() => {});
380
+ if (recovery.extra) await fs.rm(recovery.extra, { force: true }).catch(() => {});
381
+ }
382
+ }
383
+ }
384
+
385
+ const real = file => fs.realpath(file).catch(() => path.resolve(file));
386
+ if (process.argv[1] && await real(process.argv[1]) === await real(fileURLToPath(import.meta.url))) {
387
+ process.exitCode = await main();
388
+ }