@joshuafolkken/kit 1.1514.0 → 1.1784.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 (858) hide show
  1. package/.claude/agents/investigator.md +1 -1
  2. package/.claude/settings.json +5 -5
  3. package/.claude/skills/epic-commands/SKILL.md +26 -65
  4. package/.claude/skills/epic-commands/epic-bundle.md +3 -1
  5. package/.claude/skills/workflow-commands/SKILL.md +5 -5
  6. package/.claude/skills/workflow-commands/background-commands.md +5 -5
  7. package/.claude/skills/workflow-commands/backlogrun-child.md +10 -8
  8. package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +7 -25
  9. package/.claude/skills/workflow-commands/backlogrun-lanes.md +17 -13
  10. package/.claude/skills/workflow-commands/backlogrun-park.md +14 -23
  11. package/.claude/skills/workflow-commands/backlogrun-progress.md +2 -2
  12. package/.claude/skills/workflow-commands/backlogrun-recovery.md +5 -5
  13. package/.claude/skills/workflow-commands/backlogrun-steps.md +10 -10
  14. package/.claude/skills/workflow-commands/backlogrun.md +1 -1
  15. package/.claude/skills/workflow-commands/chain-rule.md +13 -7
  16. package/.claude/skills/workflow-commands/delegation.md +6 -5
  17. package/.claude/skills/workflow-commands/entry-sequence.md +9 -9
  18. package/.claude/skills/workflow-commands/followup.md +9 -31
  19. package/.claude/skills/workflow-commands/fullrun-steps.md +36 -45
  20. package/.claude/skills/workflow-commands/fullrun.md +2 -2
  21. package/.claude/skills/workflow-commands/halfrun.md +17 -25
  22. package/.claude/skills/workflow-commands/issue-comments.md +16 -12
  23. package/.claude/skills/workflow-commands/issue-scout.md +2 -2
  24. package/.claude/skills/workflow-commands/kickoff.md +24 -23
  25. package/.claude/skills/workflow-commands/latest-gate.md +7 -12
  26. package/.claude/skills/workflow-commands/needs-human-review.md +9 -14
  27. package/.claude/skills/workflow-commands/observation-filing.md +4 -36
  28. package/.claude/skills/workflow-commands/observation-ledger.md +1 -1
  29. package/.claude/skills/workflow-commands/pre-gate-cut.md +13 -30
  30. package/.claude/skills/workflow-commands/prerequisite.md +10 -16
  31. package/.claude/skills/workflow-commands/progress-watcher.md +1 -1
  32. package/.claude/skills/workflow-commands/prrun.md +3 -7
  33. package/.claude/skills/workflow-commands/retrospective.md +1 -1
  34. package/.claude/skills/workflow-commands/split-assessment.md +13 -1
  35. package/.claude/skills/workflow-commands/working-tree-hold.md +9 -9
  36. package/.codex/hooks.json +5 -5
  37. package/.github/actions/setup-node/action.yml +9 -0
  38. package/.github/actions/setup-pnpm/action.yml +1 -1
  39. package/.github/dependabot.yml +16 -0
  40. package/.github/release.yml +0 -2
  41. package/.github/workflows/ci.yml +120 -10
  42. package/.github/workflows/publish.yml +8 -1
  43. package/.github/workflows/sonar-qube.yml +1 -0
  44. package/.prettierignore +2 -0
  45. package/.vscode/tasks.json +1 -2
  46. package/CLAUDE.md +3 -7
  47. package/README.md +4 -2
  48. package/SECURITY.md +1 -1
  49. package/dist/CLAUDE.md +3 -7
  50. package/dist/commands/document-read-cli.js +882 -0
  51. package/dist/commands/{document-section-cli.js → document-section-main.js} +79 -37
  52. package/dist/commands/read-set-cli.js +1867 -0
  53. package/dist/commands/run-prep-main.js +21653 -0
  54. package/dist/commands/run-step-cli.js +23880 -0
  55. package/dist/config-merge/index.js +5 -1
  56. package/dist/hooks/audit-provision.js +20 -35
  57. package/dist/hooks/{chunk-DGT54IH5.js → chunk-AZX4FGQ3.js} +63 -17
  58. package/dist/hooks/chunk-CWMBGKYW.js +6483 -0
  59. package/dist/hooks/chunk-O2YBIDSI.js +4306 -0
  60. package/dist/hooks/{chunk-TNUMY6NL.js → chunk-PT5R6UJD.js} +4193 -1900
  61. package/dist/hooks/chunk-TUIFS5E7.js +72 -0
  62. package/dist/hooks/{chunk-723HKZO5.js → chunk-VWWCFGWK.js} +1 -1
  63. package/dist/hooks/{chunk-APUO6U4J.js → chunk-WR2KQAYZ.js} +1843 -440
  64. package/dist/hooks/{chunk-O6GDRNJB.js → chunk-XGBNSWEI.js} +248 -46
  65. package/dist/hooks/chunk-YCDOIR3I.js +3456 -0
  66. package/dist/hooks/codex-hook-adapter.js +10 -22
  67. package/dist/hooks/format-edited.js +5 -6
  68. package/dist/hooks/inputs.json +443 -317
  69. package/dist/hooks/pretool-guard.js +7 -25
  70. package/dist/hooks/session-lang.js +44 -51
  71. package/dist/hooks/stop-guard.js +7716 -2187
  72. package/dist/josh.js +6002 -3583
  73. package/dist/self-sync-guard/index.js +74 -10
  74. package/dist/version/index.js +115 -406
  75. package/eslint/base.js +1 -1
  76. package/lefthook/base.yml +3 -1
  77. package/package.json +10 -48
  78. package/pnpm-workspace.yaml +4 -2
  79. package/prompts/coding-standards.md +1 -1
  80. package/prompts/collaboration-workflow/file-edits.md +1 -7
  81. package/prompts/collaboration-workflow/issue-citation.md +1 -1
  82. package/prompts/collaboration-workflow/issue-template.md +33 -16
  83. package/prompts/collaboration-workflow/lane-instructions.md +1 -2
  84. package/prompts/collaboration-workflow/measurement.md +37 -0
  85. package/prompts/collaboration-workflow/operating-rules.md +4 -6
  86. package/prompts/collaboration-workflow/output-bounds.md +2 -7
  87. package/prompts/collaboration-workflow/plan-comment.md +3 -42
  88. package/prompts/collaboration-workflow/principles.md +5 -0
  89. package/prompts/collaboration-workflow/report-format.md +31 -60
  90. package/prompts/collaboration-workflow/residency.md +2 -2
  91. package/prompts/collaboration-workflow/shell-body.md +6 -16
  92. package/prompts/collaboration-workflow/turn-batching.md +0 -2
  93. package/prompts/collaboration-workflow/upstream-interrupt.md +14 -4
  94. package/prompts/collaboration-workflow/wip-cap.md +1 -1
  95. package/prompts/collaboration-workflow.md +3 -7
  96. package/prompts/refactoring.md +1 -1
  97. package/prompts/review-rubric.md +1 -2
  98. package/prompts/review.md +41 -21
  99. package/prompts/testing-guide.md +8 -43
  100. package/scripts/agent/agent-event.ts +15 -15
  101. package/scripts/agent/agent-exit-record.ts +13 -1
  102. package/scripts/agent/api-auth.ts +41 -0
  103. package/scripts/agent/api-outage.ts +1 -1
  104. package/scripts/auto-ok/auto-ok-cli.ts +14 -16
  105. package/scripts/auto-ok/auto-ok-judge-read.ts +12 -3
  106. package/scripts/auto-ok/auto-ok-judge-write.ts +46 -19
  107. package/scripts/auto-ok/auto-ok-judge.ts +13 -2
  108. package/scripts/auto-ok/auto-ok-main.ts +17 -0
  109. package/scripts/backlog/backlog-arrival.ts +14 -3
  110. package/scripts/backlog/backlog-budget-cli.ts +7 -33
  111. package/scripts/backlog/backlog-budget-main.ts +16 -0
  112. package/scripts/backlog/backlog-budget.ts +2 -3
  113. package/scripts/backlog/backlog-defect-priority.ts +4 -3
  114. package/scripts/backlog/backlog-drive-adopt.ts +67 -0
  115. package/scripts/backlog/backlog-drive-args.ts +4 -5
  116. package/scripts/backlog/backlog-drive-cli.ts +113 -28
  117. package/scripts/backlog/backlog-drive-hold.ts +162 -0
  118. package/scripts/backlog/backlog-drive-idle.ts +151 -0
  119. package/scripts/backlog/backlog-drive-judge.ts +25 -0
  120. package/scripts/backlog/backlog-drive-memory.ts +126 -0
  121. package/scripts/backlog/backlog-drive-named-offer.ts +5 -10
  122. package/scripts/backlog/backlog-drive-named.ts +53 -6
  123. package/scripts/backlog/backlog-drive-offer-argv.ts +3 -8
  124. package/scripts/backlog/backlog-drive-paused.ts +169 -0
  125. package/scripts/backlog/backlog-drive-restore.ts +30 -7
  126. package/scripts/backlog/backlog-drive-seats.ts +18 -8
  127. package/scripts/backlog/backlog-drive-token-handling.ts +38 -0
  128. package/scripts/backlog/backlog-drive.ts +79 -75
  129. package/scripts/backlog/backlog-next-main.ts +16 -0
  130. package/scripts/backlog/backlog-next-shared.ts +73 -0
  131. package/scripts/backlog/backlog-next.ts +48 -16
  132. package/scripts/backlog/backlog-occupied.ts +52 -39
  133. package/scripts/backlog/backlog-offer-cli.ts +6 -21
  134. package/scripts/backlog/backlog-offer-exclude.ts +15 -0
  135. package/scripts/backlog/backlog-offer-main.ts +12 -0
  136. package/scripts/backlog/backlog-offer.ts +36 -3
  137. package/scripts/backlog/backlog-overlap.ts +22 -4
  138. package/scripts/backlog/backlog-plan-read.ts +6 -2
  139. package/scripts/backlog/backlog-plan.ts +18 -4
  140. package/scripts/backlog/backlog-pool.ts +10 -10
  141. package/scripts/backlog/backlog-rank.ts +10 -2
  142. package/scripts/backlog/backlog-ready.ts +112 -30
  143. package/scripts/backlog/backlog-stalled-detect.ts +109 -36
  144. package/scripts/backlog/backlog-stalled.ts +52 -16
  145. package/scripts/backlog/backlog-wait-cause.ts +86 -0
  146. package/scripts/backlog/backlog-waves.ts +39 -13
  147. package/scripts/backlog/backlogrun-args.ts +19 -7
  148. package/scripts/backlog/backlogrun-cli.ts +19 -5
  149. package/scripts/backlog/backlogrun-launch.ts +6 -0
  150. package/scripts/backlog/backlogrun-restart.ts +97 -0
  151. package/scripts/backlog/backlogrun-stop.ts +79 -7
  152. package/scripts/behavior/behavior-cli.ts +2 -2
  153. package/scripts/behavior/behavior-rules.ts +47 -24
  154. package/scripts/build/build-bin.ts +2 -16
  155. package/scripts/build/build-claude-md.ts +0 -7
  156. package/scripts/build/build-commands.ts +0 -13
  157. package/scripts/build/build-hooks.ts +49 -48
  158. package/scripts/build/hook-bundle-stamp.ts +29 -11
  159. package/scripts/build/local-bin.ts +1 -1
  160. package/scripts/cases/cases-cli.ts +25 -13
  161. package/scripts/cases/cases-interaction-scan.ts +134 -0
  162. package/scripts/cases/cases-interaction.ts +183 -0
  163. package/scripts/cases/cases-logic.ts +39 -6
  164. package/scripts/ci/pr-classification-main.ts +18 -0
  165. package/scripts/ci/pr-classification.ts +10 -17
  166. package/scripts/clone/clone-scan.ts +1 -1
  167. package/scripts/cost-runtime/cost-blocks.ts +22 -37
  168. package/scripts/cost-runtime/cost-cli.ts +31 -14
  169. package/scripts/cost-runtime/cost-main.ts +12 -0
  170. package/scripts/cost-runtime/cost-transcript.ts +1 -0
  171. package/scripts/delegation/delegation-policy.ts +17 -4
  172. package/scripts/delegation/duplicate-read-guard.ts +0 -8
  173. package/scripts/delegation/investigation-guard.ts +0 -8
  174. package/scripts/delegation/investigation-reads.ts +3 -4
  175. package/scripts/dependabot/dependabot-cooldown.ts +194 -0
  176. package/scripts/discovery/repo-discovery.ts +24 -6
  177. package/scripts/doctor/doctor-consumer.ts +2 -5
  178. package/scripts/document/document-byte-budget.ts +8 -6
  179. package/scripts/document/document-scan.ts +1 -1
  180. package/scripts/document/document-section-cli.ts +0 -8
  181. package/scripts/document/document-section-main.ts +12 -0
  182. package/scripts/epic/epic-audit-cli.ts +12 -6
  183. package/scripts/epic/epic-bundle-apply.ts +137 -0
  184. package/scripts/epic/epic-bundle-cli.ts +32 -121
  185. package/scripts/epic/epic-bundle-format.ts +116 -0
  186. package/scripts/epic/epic-bundle-main.ts +17 -0
  187. package/scripts/epic/epic-busy.ts +5 -12
  188. package/scripts/epic/epic-classify.ts +24 -15
  189. package/scripts/epic/epic-cli-argv.ts +31 -0
  190. package/scripts/epic/epic-cli-decide.ts +42 -0
  191. package/scripts/epic/epic-cli.ts +6 -38
  192. package/scripts/epic/epic-close.ts +112 -55
  193. package/scripts/epic/epic-cross-repo.ts +4 -7
  194. package/scripts/epic/epic-decide.ts +119 -0
  195. package/scripts/epic/epic-decision.ts +9 -0
  196. package/scripts/epic/epic-fetch.ts +4 -0
  197. package/scripts/epic/epic-graph.ts +2 -0
  198. package/scripts/epic/epic-issue.ts +5 -1
  199. package/scripts/epic/epic-label-age.ts +1 -1
  200. package/scripts/epic/epic-lane-offer.ts +39 -4
  201. package/scripts/epic/epic-next-main.ts +24 -0
  202. package/scripts/epic/epic-next.ts +6 -24
  203. package/scripts/epic/epic-outside-blocker.ts +6 -2
  204. package/scripts/epic/epic-parse.ts +9 -3
  205. package/scripts/epic/epic-read.ts +1 -0
  206. package/scripts/epic/epic-reconcile.ts +39 -0
  207. package/scripts/epic/epic-run.ts +10 -1
  208. package/scripts/epic/epic-solo.ts +50 -14
  209. package/scripts/epic/epic.ts +41 -7
  210. package/scripts/exports/unused-members-cli.ts +2 -2
  211. package/scripts/followup/followup-checks-event.ts +8 -3
  212. package/scripts/followup/followup-coderabbit-wait.ts +82 -0
  213. package/scripts/followup/followup-review-gates.ts +81 -0
  214. package/scripts/followup/git-followup-stages.ts +13 -3
  215. package/scripts/followup/git-followup-workflow.ts +19 -66
  216. package/scripts/followup/git-pr-followup-wrapup.ts +9 -14
  217. package/scripts/followup/git-pr-followup.ts +36 -8
  218. package/scripts/fresh-machine/fresh-machine-cli.ts +1 -1
  219. package/scripts/fresh-machine/fresh-machine-run.ts +8 -8
  220. package/scripts/fresh-machine/specs/kit-test-backlogrun.json +1 -1
  221. package/scripts/gate/busy-average.ts +58 -0
  222. package/scripts/gate/check-cpu.ts +60 -0
  223. package/scripts/gate/check-inputs.ts +39 -95
  224. package/scripts/gate/check-reuse.ts +33 -54
  225. package/scripts/gate/command-memory.ts +192 -0
  226. package/scripts/gate/core-admission.ts +218 -28
  227. package/scripts/gate/core-budget-timing.ts +37 -0
  228. package/scripts/gate/core-budget.ts +80 -98
  229. package/scripts/gate/core-wait-record.ts +48 -0
  230. package/scripts/gate/core-wait.ts +37 -5
  231. package/scripts/gate/core-weights.ts +86 -0
  232. package/scripts/gate/free-cores.ts +27 -4
  233. package/scripts/gate/gate-ledger.ts +32 -4
  234. package/scripts/gate/gate-plan.ts +41 -34
  235. package/scripts/gate/gate-report.ts +14 -2
  236. package/scripts/gate/gate-run-steps.ts +53 -8
  237. package/scripts/gate/gate-skip.ts +12 -2
  238. package/scripts/gate/gate-steps.ts +12 -1
  239. package/scripts/gate/input-fingerprint.ts +42 -0
  240. package/scripts/gate/machine-capacity.ts +65 -31
  241. package/scripts/gate/moved-paths.ts +67 -0
  242. package/scripts/gate/project-checks.ts +5 -12
  243. package/scripts/gate/scoped-green.ts +12 -8
  244. package/scripts/gate/since-green.ts +62 -0
  245. package/scripts/gate/toolchain-inputs.ts +115 -0
  246. package/scripts/gate/verification-gate.ts +27 -24
  247. package/scripts/gate/verification-inputs.ts +250 -0
  248. package/scripts/gh/gh-author-association.ts +96 -9
  249. package/scripts/gh/git-ai-review-scan.ts +4 -2
  250. package/scripts/gh/git-gh-api-path.ts +15 -0
  251. package/scripts/gh/git-gh-branch-rules.ts +73 -0
  252. package/scripts/gh/git-gh-conditional.ts +5 -2
  253. package/scripts/gh/git-gh-issue-read.ts +5 -1
  254. package/scripts/gh/git-gh-issue-write.ts +67 -29
  255. package/scripts/gh/git-gh-issue.ts +7 -3
  256. package/scripts/gh/git-gh-poll-read.ts +89 -0
  257. package/scripts/gh/git-gh-pr-auto-merge.ts +8 -3
  258. package/scripts/gh/git-gh-pr-rest.ts +1 -1
  259. package/scripts/gh/git-gh-pr-snapshot.ts +33 -20
  260. package/scripts/gh/git-gh-pr.ts +27 -15
  261. package/scripts/gh/git-pr-checks-eval.ts +39 -7
  262. package/scripts/gh/git-pr-checks-parse.ts +39 -9
  263. package/scripts/gh/git-pr-merge-checked.ts +80 -0
  264. package/scripts/git/base-tree.ts +19 -2
  265. package/scripts/git/changed-file-scope.ts +6 -4
  266. package/scripts/git/changed-paths.ts +18 -1
  267. package/scripts/git/git-diff-reads.ts +27 -2
  268. package/scripts/git/git-grep-hits.ts +85 -0
  269. package/scripts/git/git-location-environment.ts +1 -1
  270. package/scripts/git/git-merge-conflicts.ts +83 -0
  271. package/scripts/git/git-preflight.ts +37 -12
  272. package/scripts/git/git-push-transport.ts +1 -2
  273. package/scripts/git/git-schemas.ts +17 -7
  274. package/scripts/git/git-spawn.ts +1 -2
  275. package/scripts/git/git-status.ts +4 -4
  276. package/scripts/git/main-merge-main.ts +12 -0
  277. package/scripts/git/main-merge-regenerate.ts +2 -2
  278. package/scripts/git/main-merge.ts +25 -9
  279. package/scripts/git/main-sync-main.ts +12 -0
  280. package/scripts/git/main-sync.ts +0 -9
  281. package/scripts/git/stash/git-stash.ts +27 -4
  282. package/scripts/git/stash/{stash-pop-args.ts → stash-args.ts} +13 -10
  283. package/scripts/git/stash/stash-pop-cli.ts +6 -12
  284. package/scripts/git/stash/stash-pop-main.ts +12 -0
  285. package/scripts/git/stash/stash-push-cli.ts +76 -0
  286. package/scripts/git/stash/stash-push-main.ts +12 -0
  287. package/scripts/hooks/batch-guard.ts +0 -8
  288. package/scripts/hooks/check-commit-message-main.ts +8 -0
  289. package/scripts/hooks/check-commit-message.ts +4 -7
  290. package/scripts/hooks/format-edited-file.ts +8 -24
  291. package/scripts/hooks/pre-commit-lint.ts +30 -3
  292. package/scripts/hooks/pre-push-unit.ts +4 -2
  293. package/scripts/hooks/pretool-guard-cli.ts +1 -8
  294. package/scripts/hooks/pretool-guard.ts +32 -19
  295. package/scripts/hooks/reserved-run.ts +67 -9
  296. package/scripts/hooks/run-hook.sh +13 -4
  297. package/scripts/hooks/shell-rules-notice.ts +37 -0
  298. package/scripts/hooks/stop-actions.ts +2 -21
  299. package/scripts/hooks/stop-guard.ts +13 -9
  300. package/scripts/init/hook-command-rewrite.ts +19 -5
  301. package/scripts/init/hook-launch.ts +15 -17
  302. package/scripts/init/init-actions.ts +0 -6
  303. package/scripts/init/init-ai-copy.ts +10 -36
  304. package/scripts/init/init-bootstrap.ts +9 -8
  305. package/scripts/init/init-dry-run-report.ts +1 -1
  306. package/scripts/init/init-dry-run.ts +1 -1
  307. package/scripts/init/init-file-action.ts +7 -9
  308. package/scripts/init/init-logic-json-merge.ts +2 -2
  309. package/scripts/init/init-logic-migrate.ts +9 -82
  310. package/scripts/init/init-logic.ts +3 -2
  311. package/scripts/init/init-main.ts +12 -0
  312. package/scripts/init/init.ts +5 -12
  313. package/scripts/init/kit-development-versions.ts +3 -7
  314. package/scripts/init/kit-written-paths.ts +2 -2
  315. package/scripts/init/project-profile.ts +5 -4
  316. package/scripts/init/tsconfig-preset-migration.ts +2 -1
  317. package/scripts/init/vscode-tasks.ts +1 -1
  318. package/scripts/issue/defect-origin-cli.ts +106 -0
  319. package/scripts/issue/defect-origin-line.ts +60 -0
  320. package/scripts/issue/defect-origin-main.ts +11 -0
  321. package/scripts/issue/defect-origin.ts +114 -0
  322. package/scripts/issue/defect-rate-cli.ts +34 -78
  323. package/scripts/issue/defect-rate.ts +0 -16
  324. package/scripts/issue/defect-report-cli.ts +128 -0
  325. package/scripts/issue/defect-report-format.ts +56 -0
  326. package/scripts/issue/defect-report-main.ts +11 -0
  327. package/scripts/issue/defect-report.ts +160 -0
  328. package/scripts/issue/expected-effect-lint.ts +1 -0
  329. package/scripts/issue/issue-already-done-cli.ts +62 -0
  330. package/scripts/issue/issue-body-or-comment.ts +40 -0
  331. package/scripts/issue/issue-cite-cli.ts +0 -9
  332. package/scripts/issue/issue-cite-main.ts +12 -0
  333. package/scripts/issue/issue-classification.ts +12 -7
  334. package/scripts/issue/issue-comment-cli.ts +10 -24
  335. package/scripts/issue/issue-comment-main.ts +12 -0
  336. package/scripts/issue/issue-evidence-exit.ts +100 -0
  337. package/scripts/issue/issue-file-cli.ts +29 -7
  338. package/scripts/issue/issue-file.ts +19 -19
  339. package/scripts/issue/issue-fold-cli.ts +2 -11
  340. package/scripts/issue/issue-fold-main.ts +12 -0
  341. package/scripts/issue/issue-labels.ts +81 -90
  342. package/scripts/issue/issue-lint-cli.ts +2 -10
  343. package/scripts/issue/issue-lint-main.ts +12 -0
  344. package/scripts/issue/issue-measured-cli.ts +56 -0
  345. package/scripts/issue/issue-merged.ts +19 -2
  346. package/scripts/issue/issue-not-before-label.ts +135 -0
  347. package/scripts/issue/issue-not-before.ts +111 -0
  348. package/scripts/issue/issue-number-shape.ts +15 -1
  349. package/scripts/issue/issue-park.ts +28 -0
  350. package/scripts/issue/issue-plan-cli.ts +151 -0
  351. package/scripts/issue/issue-priority.ts +151 -0
  352. package/scripts/issue/issue-rank.ts +7 -1
  353. package/scripts/issue/issue-read-cli.ts +3 -10
  354. package/scripts/issue/issue-read-main.ts +12 -0
  355. package/scripts/issue/issue-read.ts +29 -5
  356. package/scripts/issue/issue-release-cli.ts +0 -10
  357. package/scripts/issue/issue-release-main.ts +13 -0
  358. package/scripts/issue/issue-release.ts +7 -12
  359. package/scripts/issue/issue-sample-gate.ts +192 -0
  360. package/scripts/issue/issue-sample-source.ts +76 -0
  361. package/scripts/issue/issue-scout-cli.ts +0 -11
  362. package/scripts/issue/issue-scout-main.ts +14 -0
  363. package/scripts/issue/issue-state-cli.ts +0 -10
  364. package/scripts/issue/issue-state-main.ts +12 -0
  365. package/scripts/issue/issue-watch-diff.ts +56 -15
  366. package/scripts/issue/issue-watch.ts +2 -1
  367. package/scripts/issue/issue-wip.ts +2 -7
  368. package/scripts/issue/measure-rerun-cli.ts +13 -8
  369. package/scripts/issue/plan-consumers-cli.ts +39 -0
  370. package/scripts/issue/plan-consumers-main.ts +11 -0
  371. package/scripts/issue/plan-consumers-section.ts +55 -0
  372. package/scripts/issue/plan-consumers.ts +127 -0
  373. package/scripts/josh/agent-session-environment.ts +1 -1
  374. package/scripts/josh/command-usage.ts +15 -43
  375. package/scripts/josh/file-map-stamp.ts +49 -16
  376. package/scripts/josh/hook-decision.ts +32 -20
  377. package/scripts/josh/josh-command-map.ts +4 -1
  378. package/scripts/josh/josh-command-types.ts +12 -6
  379. package/scripts/josh/josh-commands-agent-hooks.ts +83 -0
  380. package/scripts/josh/josh-commands-ai.ts +157 -158
  381. package/scripts/josh/josh-commands-backlog.ts +82 -16
  382. package/scripts/josh/josh-commands-clone.ts +1 -0
  383. package/scripts/josh/josh-commands-development.ts +111 -71
  384. package/scripts/josh/josh-commands-document.ts +43 -1
  385. package/scripts/josh/josh-commands-epic.ts +171 -0
  386. package/scripts/josh/josh-commands-hooks.ts +25 -2
  387. package/scripts/josh/josh-commands-issue-write.ts +181 -0
  388. package/scripts/josh/josh-commands-issue.ts +124 -24
  389. package/scripts/josh/josh-commands-lane.ts +103 -2
  390. package/scripts/josh/josh-commands-lint.ts +19 -8
  391. package/scripts/josh/josh-commands-maintenance.ts +112 -4
  392. package/scripts/josh/josh-commands-pause.ts +29 -0
  393. package/scripts/josh/josh-commands-progress.ts +87 -0
  394. package/scripts/josh/josh-commands-project.ts +138 -9
  395. package/scripts/josh/josh-commands-review.ts +124 -0
  396. package/scripts/josh/josh-commands-run.ts +211 -23
  397. package/scripts/josh/josh-commands-ship.ts +169 -0
  398. package/scripts/josh/josh-commands-split.ts +9 -0
  399. package/scripts/josh/josh-commands-versioning.ts +49 -2
  400. package/scripts/josh/josh-commands-workflow.ts +144 -6
  401. package/scripts/josh/josh-logic.ts +6 -13
  402. package/scripts/josh/package-directory.ts +2 -4
  403. package/scripts/josh/process-identity.ts +13 -4
  404. package/scripts/josh/session-language-cli.ts +4 -8
  405. package/scripts/josh/session-language-main.ts +13 -0
  406. package/scripts/josh/session-language.ts +6 -1
  407. package/scripts/josh/shared-cache.ts +90 -0
  408. package/scripts/josh/stamp-file.ts +9 -15
  409. package/scripts/lane/lane-await.ts +51 -12
  410. package/scripts/lane/lane-cache.ts +5 -30
  411. package/scripts/lane/lane-capacity.ts +14 -23
  412. package/scripts/lane/lane-check-stats.ts +62 -21
  413. package/scripts/lane/lane-child-invocation.ts +8 -0
  414. package/scripts/lane/lane-cli.ts +15 -5
  415. package/scripts/lane/lane-close.ts +86 -18
  416. package/scripts/lane/lane-core-wait-stats.ts +66 -0
  417. package/scripts/lane/lane-dispatch.ts +24 -3
  418. package/scripts/lane/lane-gap-stats.ts +156 -0
  419. package/scripts/lane/lane-handoff.ts +69 -1
  420. package/scripts/lane/lane-held-stats.ts +129 -0
  421. package/scripts/lane/lane-install.ts +4 -11
  422. package/scripts/lane/lane-launch-cli.ts +0 -9
  423. package/scripts/lane/lane-launch-main.ts +12 -0
  424. package/scripts/lane/lane-ledger-schema.ts +266 -0
  425. package/scripts/lane/lane-ledger.ts +92 -123
  426. package/scripts/lane/lane-limit-cli.ts +12 -1
  427. package/scripts/lane/lane-measure-cli.ts +57 -11
  428. package/scripts/lane/lane-open.ts +9 -1
  429. package/scripts/lane/lane-parked.ts +3 -3
  430. package/scripts/lane/lane-pause-cli.ts +130 -0
  431. package/scripts/lane/lane-pause.ts +158 -0
  432. package/scripts/lane/lane-process-table.ts +166 -0
  433. package/scripts/lane/lane-reap-settle.ts +124 -0
  434. package/scripts/lane/lane-reap.ts +50 -15
  435. package/scripts/lane/lane-registry.ts +24 -3
  436. package/scripts/lane/lane-residents.ts +162 -0
  437. package/scripts/lane/lane-restart.ts +22 -2
  438. package/scripts/lane/lane-round-two-stats.ts +49 -0
  439. package/scripts/lane/lane-sampler.ts +4 -0
  440. package/scripts/lane/lane-session-action.ts +19 -5
  441. package/scripts/lane/lane-session-broker.ts +102 -21
  442. package/scripts/lane/lane-snapshot-trace.ts +84 -0
  443. package/scripts/lane/lane-spans.ts +51 -0
  444. package/scripts/lane/lane-spent.ts +6 -3
  445. package/scripts/lane/lane-stage-stats.ts +7 -2
  446. package/scripts/lane/lane-state.ts +302 -0
  447. package/scripts/lane/lane-stats.ts +58 -4
  448. package/scripts/lane/lane-stop-stats.ts +113 -37
  449. package/scripts/lane/lane-test-related-stats.ts +127 -0
  450. package/scripts/lane/lane-transcript-calls.ts +145 -0
  451. package/scripts/lane/lane-transcript-stats.ts +168 -0
  452. package/scripts/lane/lane-vacant.ts +13 -3
  453. package/scripts/lane/lane-withdraw-cli.ts +5 -4
  454. package/scripts/lane/lane-withdraw.ts +50 -49
  455. package/scripts/lane/process-directories.ts +70 -0
  456. package/scripts/lane/process-lane-marks.ts +94 -0
  457. package/scripts/lib/atomic-write.ts +62 -0
  458. package/scripts/lib/buffered-process.ts +12 -5
  459. package/scripts/lib/cli-flags.ts +53 -0
  460. package/scripts/lib/figure-format.ts +63 -0
  461. package/scripts/lib/json-value.ts +9 -1
  462. package/scripts/lib/package-manifest.ts +35 -0
  463. package/scripts/lib/read-file.ts +3 -1
  464. package/scripts/lib/stamped-memo.ts +63 -0
  465. package/scripts/lib/stdout-on-stderr.ts +24 -0
  466. package/scripts/lib/timeouts.ts +9 -0
  467. package/scripts/lib/transcript-record.ts +91 -0
  468. package/scripts/lines/effective-limit.ts +1 -1
  469. package/scripts/lint/eslint-cache-dependencies.ts +145 -0
  470. package/scripts/lint/eslint-daemon.ts +265 -0
  471. package/scripts/lint/format.ts +11 -2
  472. package/scripts/lint/import-graph.ts +279 -0
  473. package/scripts/lint/lint-gate-scope.ts +102 -0
  474. package/scripts/lint/lint-parallel-main.ts +19 -0
  475. package/scripts/lint/lint-parallel.ts +62 -30
  476. package/scripts/lint/lint-related-scope.ts +30 -24
  477. package/scripts/lint/lint-related.ts +38 -6
  478. package/scripts/notify/confirmation-options.ts +1 -2
  479. package/scripts/notify/telegram-notify.ts +20 -20
  480. package/scripts/notify/telegram-test-logic.ts +0 -1
  481. package/scripts/notify/telegram-test-main.ts +8 -0
  482. package/scripts/notify/telegram-test.ts +2 -6
  483. package/scripts/observations/observation-ledger.ts +13 -0
  484. package/scripts/observations/observations-flush-landing.ts +5 -3
  485. package/scripts/observations/observations-flush.ts +6 -1
  486. package/scripts/overrides/overrides-check.ts +2 -5
  487. package/scripts/overrides/overrides-files.ts +2 -1
  488. package/scripts/overrides/overrides-logic.ts +3 -6
  489. package/scripts/package/verify-optional-eslint-install.ts +8 -6
  490. package/scripts/propagate/propagate-publish.ts +2 -7
  491. package/scripts/propagate/propagate-targets.ts +4 -12
  492. package/scripts/refactor/import-graph.ts +9 -7
  493. package/scripts/release/github-release-runs.ts +17 -6
  494. package/scripts/release/release-approval-prune.ts +18 -0
  495. package/scripts/release/release-history.ts +1 -3
  496. package/scripts/release/release-progress.ts +42 -22
  497. package/scripts/release/release-publish-run.ts +39 -0
  498. package/scripts/release/release-publish.ts +6 -6
  499. package/scripts/release/release-scope-cli.ts +0 -10
  500. package/scripts/release/release-scope-main.ts +12 -0
  501. package/scripts/repo/repo-setting.ts +3 -6
  502. package/scripts/repo/required-checks-logic.ts +6 -15
  503. package/scripts/report/report-format-reference.ts +2 -0
  504. package/scripts/report/report-labels.ts +155 -0
  505. package/scripts/report/report-lint-cli.ts +3 -0
  506. package/scripts/report/report-lint.ts +85 -110
  507. package/scripts/report/report-template-cli.ts +59 -0
  508. package/scripts/report/report-template.ts +112 -0
  509. package/scripts/review/acceptance-map.ts +1 -0
  510. package/scripts/review/removed-tests-check.ts +86 -0
  511. package/scripts/review/removed-tests.ts +149 -0
  512. package/scripts/review/review-brief-cli.ts +81 -15
  513. package/scripts/review/review-brief-main.ts +12 -0
  514. package/scripts/review/review-brief.ts +31 -3
  515. package/scripts/review/review-code-tree.ts +10 -6
  516. package/scripts/review/review-comment-round.ts +26 -8
  517. package/scripts/review/review-finding-ledger.ts +30 -15
  518. package/scripts/review/review-interaction.ts +94 -0
  519. package/scripts/review/review-readers-scan.ts +163 -0
  520. package/scripts/review/review-record-cli.ts +69 -30
  521. package/scripts/review/review-record-main.ts +12 -0
  522. package/scripts/review/review-round-one-blobs.ts +221 -0
  523. package/scripts/review/review-round2-cli.ts +49 -12
  524. package/scripts/review/review-round2.ts +80 -12
  525. package/scripts/review/review-stamps.ts +19 -1
  526. package/scripts/review/review-stop-log.ts +96 -0
  527. package/scripts/review/review-stops-cli.ts +85 -0
  528. package/scripts/review/review-tree.ts +6 -17
  529. package/scripts/review/review-untouched-readers.ts +146 -0
  530. package/scripts/review/test-titles.ts +118 -0
  531. package/scripts/rules/agent-model.ts +8 -0
  532. package/scripts/rules/bash-triggers.ts +46 -3
  533. package/scripts/rules/decision-oracle-batch.ts +9 -1
  534. package/scripts/rules/decision-oracle.ts +2 -2
  535. package/scripts/rules/delivered-rules.ts +80 -2
  536. package/scripts/rules/destructive-command.ts +8 -1
  537. package/scripts/rules/direct-filing.ts +10 -2
  538. package/scripts/rules/direct-issue-comment.ts +117 -0
  539. package/scripts/rules/direct-pr-create.ts +69 -3
  540. package/scripts/rules/early-heartbeat.ts +2 -1
  541. package/scripts/rules/file-body.ts +7 -0
  542. package/scripts/rules/filing-cap.ts +7 -0
  543. package/scripts/rules/git-argv.ts +72 -14
  544. package/scripts/rules/git-force.ts +12 -2
  545. package/scripts/rules/guard-remedy.ts +4 -0
  546. package/scripts/rules/implementation-cut-verdict.ts +1 -1
  547. package/scripts/rules/implementation-cut.ts +11 -3
  548. package/scripts/rules/index-guard.ts +8 -1
  549. package/scripts/rules/issue-comments.ts +9 -1
  550. package/scripts/rules/josh-git-bare.ts +7 -0
  551. package/scripts/rules/lane-background.ts +67 -25
  552. package/scripts/rules/lane-carry-conflict.ts +6 -0
  553. package/scripts/rules/lane-direct-tool.ts +74 -0
  554. package/scripts/rules/lane-interactive-ask.ts +9 -2
  555. package/scripts/rules/lane-park.ts +45 -23
  556. package/scripts/rules/lane-split-park.ts +10 -2
  557. package/scripts/rules/lane-switch-main.ts +7 -0
  558. package/scripts/rules/oracle-consulted.ts +10 -0
  559. package/scripts/rules/oracle-firing.ts +1 -0
  560. package/scripts/rules/permission-guards.ts +3 -0
  561. package/scripts/rules/piped-verification.ts +1 -1
  562. package/scripts/rules/poll-loop.ts +7 -0
  563. package/scripts/rules/pr-merge.ts +123 -0
  564. package/scripts/rules/protected-files.ts +32 -5
  565. package/scripts/rules/raw-field-body.ts +6 -0
  566. package/scripts/rules/rule-body-guard.ts +8 -0
  567. package/scripts/rules/rule-list.ts +9 -28
  568. package/scripts/rules/rule-value-cache.ts +4 -9
  569. package/scripts/rules/rule-value-cli.ts +51 -32
  570. package/scripts/rules/rule-value.ts +1 -1
  571. package/scripts/rules/shell-segments.ts +35 -0
  572. package/scripts/rules/stop-rule-rows.ts +64 -0
  573. package/scripts/rules/stop-rules.ts +3 -4
  574. package/scripts/rules/test-declared-commit.ts +11 -1
  575. package/scripts/rules/third-party-write.ts +7 -0
  576. package/scripts/rules/timed-rerun.ts +69 -0
  577. package/scripts/rules/worktree-guard.ts +13 -3
  578. package/scripts/run/board/run-board-app-name.ts +23 -0
  579. package/scripts/run/board/run-board-cli.ts +65 -32
  580. package/scripts/run/board/run-board-earlier.ts +94 -0
  581. package/scripts/run/board/run-board-ending-reason.ts +67 -0
  582. package/scripts/run/board/run-board-estimate-schedule.ts +103 -0
  583. package/scripts/run/board/run-board-estimate.ts +98 -0
  584. package/scripts/run/board/run-board-fit.ts +153 -36
  585. package/scripts/run/board/run-board-fold.ts +123 -0
  586. package/scripts/run/board/run-board-fresh.ts +2 -2
  587. package/scripts/run/board/run-board-gather-live.ts +29 -0
  588. package/scripts/run/board/run-board-gather-thread.ts +189 -0
  589. package/scripts/run/board/run-board-gather-worker.ts +29 -0
  590. package/scripts/run/board/run-board-gather.ts +187 -0
  591. package/scripts/run/board/run-board-github.ts +118 -38
  592. package/scripts/run/board/run-board-header.ts +82 -20
  593. package/scripts/run/board/run-board-keys.ts +58 -0
  594. package/scripts/run/board/run-board-kind.ts +20 -6
  595. package/scripts/run/board/run-board-labels.ts +116 -71
  596. package/scripts/run/board/run-board-lane-state.ts +109 -0
  597. package/scripts/run/board/run-board-lane-time.ts +122 -0
  598. package/scripts/run/board/run-board-layout.ts +239 -60
  599. package/scripts/run/board/run-board-length.ts +52 -0
  600. package/scripts/run/board/run-board-machine.ts +8 -4
  601. package/scripts/run/board/run-board-main.ts +12 -0
  602. package/scripts/run/board/run-board-notes.ts +52 -31
  603. package/scripts/run/board/run-board-now.ts +1 -1
  604. package/scripts/run/board/run-board-operation.ts +15 -33
  605. package/scripts/run/board/run-board-phase.ts +1 -1
  606. package/scripts/run/board/run-board-plan-shared.ts +115 -0
  607. package/scripts/run/board/run-board-plan.ts +55 -3
  608. package/scripts/run/board/run-board-planning.ts +45 -0
  609. package/scripts/run/board/run-board-priority.ts +44 -0
  610. package/scripts/run/board/run-board-process-groups.ts +195 -0
  611. package/scripts/run/board/run-board-read.ts +151 -27
  612. package/scripts/run/board/run-board-reason.ts +235 -51
  613. package/scripts/run/board/run-board-released.ts +35 -0
  614. package/scripts/run/board/run-board-render-checks.ts +39 -5
  615. package/scripts/run/board/run-board-render-condition.ts +96 -0
  616. package/scripts/run/board/run-board-render-drawn.ts +67 -0
  617. package/scripts/run/board/run-board-render-foot.ts +59 -0
  618. package/scripts/run/board/run-board-render-icon.ts +35 -0
  619. package/scripts/run/board/run-board-render-lanes.ts +145 -0
  620. package/scripts/run/board/run-board-render-lead.ts +80 -0
  621. package/scripts/run/board/run-board-render-legend.ts +117 -48
  622. package/scripts/run/board/run-board-render-notes.ts +156 -29
  623. package/scripts/run/board/run-board-render-processes.ts +196 -0
  624. package/scripts/run/board/run-board-render-section.ts +119 -0
  625. package/scripts/run/board/run-board-render-slot.ts +3 -36
  626. package/scripts/run/board/run-board-render-tail.ts +115 -48
  627. package/scripts/run/board/run-board-render-time.ts +56 -0
  628. package/scripts/run/board/run-board-render-title.ts +117 -24
  629. package/scripts/run/board/run-board-render-waits.ts +104 -20
  630. package/scripts/run/board/run-board-render.ts +207 -265
  631. package/scripts/run/board/run-board-roots.ts +54 -0
  632. package/scripts/run/board/run-board-row-yield.ts +9 -4
  633. package/scripts/run/board/run-board-setup.ts +1 -12
  634. package/scripts/run/board/run-board-snapshot.ts +111 -0
  635. package/scripts/run/board/run-board-spin.ts +2 -2
  636. package/scripts/run/board/run-board-state.ts +22 -33
  637. package/scripts/run/board/run-board-status.ts +147 -71
  638. package/scripts/run/board/run-board-thanks-read.ts +2 -2
  639. package/scripts/run/board/run-board-tick.ts +122 -107
  640. package/scripts/run/board/run-board-usage-board.ts +78 -0
  641. package/scripts/run/board/run-board-usage-lanes.ts +113 -0
  642. package/scripts/run/board/run-board-usage-listing.ts +93 -0
  643. package/scripts/run/board/run-board-usage-read.ts +120 -150
  644. package/scripts/run/board/run-board-usage-rusage.ts +19 -7
  645. package/scripts/run/board/run-board-usage-text.ts +139 -51
  646. package/scripts/run/board/run-board-usage-top.ts +102 -0
  647. package/scripts/run/board/run-board-usage.ts +89 -72
  648. package/scripts/run/board/run-board-usual.ts +20 -9
  649. package/scripts/run/carry/run-carry-args.ts +4 -7
  650. package/scripts/run/carry/run-carry-conversation.ts +1 -1
  651. package/scripts/run/carry/run-carry.ts +9 -4
  652. package/scripts/run/cut/run-cut-handoff.ts +2 -2
  653. package/scripts/run/event/run-event-cli.ts +1 -5
  654. package/scripts/run/event/run-event-filed.ts +12 -6
  655. package/scripts/run/event/run-event-follow.ts +2 -3
  656. package/scripts/run/event/run-event-render.ts +6 -10
  657. package/scripts/run/event/run-event-scope.ts +2 -2
  658. package/scripts/run/event/run-event-stream-emit.ts +82 -22
  659. package/scripts/run/event/run-event-stream.ts +34 -8
  660. package/scripts/run/hold/run-hold-adopt.ts +65 -0
  661. package/scripts/run/hold/run-hold-cli.ts +93 -22
  662. package/scripts/run/hold/run-hold-main.ts +12 -0
  663. package/scripts/run/hold/run-hold-member.ts +37 -0
  664. package/scripts/run/hold/run-stop-notify.ts +183 -0
  665. package/scripts/run/merge/run-merge-auth.ts +31 -0
  666. package/scripts/run/merge/run-merge-cli.ts +62 -48
  667. package/scripts/run/merge/run-merge-close.ts +74 -0
  668. package/scripts/run/merge/run-merge-collect.ts +6 -13
  669. package/scripts/run/merge/run-merge-driver.ts +71 -0
  670. package/scripts/run/merge/run-merge-main.ts +12 -0
  671. package/scripts/run/merge/run-merge-outcome.ts +23 -0
  672. package/scripts/run/merge/run-merge-restart.ts +39 -0
  673. package/scripts/run/merge/run-merge-ship.ts +20 -4
  674. package/scripts/run/merge/run-merge-signals.ts +33 -9
  675. package/scripts/run/merge/run-merge-steps.ts +120 -85
  676. package/scripts/run/merge/run-merge.ts +38 -37
  677. package/scripts/run/park/run-park-cli.ts +91 -0
  678. package/scripts/run/park/run-park.ts +88 -0
  679. package/scripts/run/park/run-stalled.ts +68 -0
  680. package/scripts/run/pause/run-pause-cli.ts +73 -0
  681. package/scripts/run/pause/run-pause.ts +251 -0
  682. package/scripts/run/progress/run-progress-cli.ts +4 -12
  683. package/scripts/run/progress/run-progress-clock.ts +1 -1
  684. package/scripts/run/progress/run-progress-config.ts +6 -14
  685. package/scripts/run/progress/run-progress-main.ts +12 -0
  686. package/scripts/run/progress/run-progress.ts +1 -4
  687. package/scripts/run/review/run-review.ts +2 -1
  688. package/scripts/run/run-ending.ts +1 -0
  689. package/scripts/run/run-invocation.ts +5 -6
  690. package/scripts/run/run-liveness-cli.ts +6 -8
  691. package/scripts/run/run-liveness.ts +60 -29
  692. package/scripts/run/run-next.ts +1 -1
  693. package/scripts/run/run-parent-cut-hook.ts +2 -2
  694. package/scripts/run/run-preflight.ts +18 -3
  695. package/scripts/run/run-prep-cli.ts +1 -10
  696. package/scripts/run/run-prep-locate.ts +7 -50
  697. package/scripts/run/run-prep-main.ts +12 -0
  698. package/scripts/run/run-prep.ts +6 -0
  699. package/scripts/run/run-report-cli.ts +101 -13
  700. package/scripts/run/run-report-handoff.ts +114 -0
  701. package/scripts/run/run-step.ts +1 -1
  702. package/scripts/run/run-stranded-detect.ts +13 -0
  703. package/scripts/run/run-watcher-guard-cli.ts +1 -1
  704. package/scripts/run/run-watcher-guard.ts +1 -1
  705. package/scripts/run/ship/run-ship-args.ts +121 -0
  706. package/scripts/run/ship/run-ship-body-draft.ts +110 -0
  707. package/scripts/run/ship/run-ship-cli.ts +63 -140
  708. package/scripts/run/ship/run-ship-detach.ts +19 -8
  709. package/scripts/run/ship/run-ship-infra-retry.ts +59 -0
  710. package/scripts/run/ship/run-ship-next.ts +18 -2
  711. package/scripts/run/ship/run-ship-overlap.ts +42 -5
  712. package/scripts/run/ship/run-ship-place.ts +96 -0
  713. package/scripts/run/ship/run-ship-pre-detach-timed.ts +43 -0
  714. package/scripts/run/ship/run-ship-pre-detach.ts +81 -24
  715. package/scripts/run/ship/run-ship-preflight.ts +137 -32
  716. package/scripts/run/ship/run-ship-probe.ts +11 -3
  717. package/scripts/run/ship/run-ship-relaunch-cap.ts +70 -0
  718. package/scripts/run/ship/run-ship-removed-rows.ts +61 -0
  719. package/scripts/run/ship/run-ship-return.ts +107 -23
  720. package/scripts/run/ship/run-ship-review-steps.ts +105 -151
  721. package/scripts/run/ship/run-ship-review.ts +73 -6
  722. package/scripts/run/ship/run-ship-reviewer.ts +207 -0
  723. package/scripts/run/ship/run-ship-stage.ts +55 -6
  724. package/scripts/run/ship/run-ship-steps.ts +46 -15
  725. package/scripts/run/ship/run-ship-stop-cause.ts +135 -0
  726. package/scripts/run/ship/run-ship-stop-text.ts +11 -6
  727. package/scripts/run/ship/run-ship-sync.ts +43 -6
  728. package/scripts/run/ship/run-ship.ts +30 -2
  729. package/scripts/run/tidy/run-tidy-cli.ts +0 -4
  730. package/scripts/run/tidy/run-tidy-lanes.ts +3 -0
  731. package/scripts/run/tidy/run-tidy-main.ts +8 -0
  732. package/scripts/run/wake/run-wake-cli.ts +119 -100
  733. package/scripts/run/wake/run-wake-code.ts +83 -0
  734. package/scripts/run/wake/run-wake-driver.ts +19 -8
  735. package/scripts/run/wake/run-wake-loop.ts +34 -3
  736. package/scripts/run/wake/run-wake-main.ts +13 -0
  737. package/scripts/run/wake/run-wake-ports.ts +90 -0
  738. package/scripts/run/wake/run-wake-takeover.ts +66 -0
  739. package/scripts/run/wake/run-wake.ts +2 -1
  740. package/scripts/safe-chain/pack-hook.ts +2 -2
  741. package/scripts/safe-chain/preinstall-command.ts +2 -1
  742. package/scripts/safe-chain/project-config.ts +3 -9
  743. package/scripts/security/security-audit-main.ts +8 -0
  744. package/scripts/security/security-audit-provision-logic.ts +0 -11
  745. package/scripts/security/security-audit-provision-main.ts +12 -0
  746. package/scripts/security/security-audit-provision.ts +11 -26
  747. package/scripts/security/security-audit.ts +6 -7
  748. package/scripts/self-sync-guard/self-sync-guard-logic.ts +6 -13
  749. package/scripts/split/split-assess-cli.ts +2 -2
  750. package/scripts/split/split-assess.ts +15 -0
  751. package/scripts/split/split-measure.ts +65 -0
  752. package/scripts/sync/claude-settings-merge.ts +8 -15
  753. package/scripts/sync/directory-copy-guard.ts +4 -9
  754. package/scripts/sync/file-content.ts +78 -8
  755. package/scripts/sync/sync-ai-files.ts +3 -5
  756. package/scripts/sync/sync-configs.ts +11 -23
  757. package/scripts/sync/sync-hook-safety.ts +4 -10
  758. package/scripts/sync/sync-main.ts +11 -0
  759. package/scripts/sync/sync.ts +25 -37
  760. package/scripts/test/test-declared-changed.ts +2 -2
  761. package/scripts/test/test-declared.ts +1 -1
  762. package/scripts/test/test-e2e-guard.ts +25 -1
  763. package/scripts/test/test-e2e-stamp.ts +38 -0
  764. package/scripts/test/test-pinned-logic.ts +145 -0
  765. package/scripts/test/test-pinned-main.ts +78 -0
  766. package/scripts/test/test-pinned.ts +100 -0
  767. package/scripts/test/test-read-map.ts +264 -0
  768. package/scripts/test/test-read-recording.ts +91 -0
  769. package/scripts/test/test-read-trace.ts +148 -0
  770. package/scripts/test/test-red-main.ts +12 -0
  771. package/scripts/test/test-red.ts +12 -30
  772. package/scripts/test/test-related-main.ts +18 -0
  773. package/scripts/test/test-related-record.ts +119 -0
  774. package/scripts/test/test-related-scope.ts +229 -43
  775. package/scripts/test/test-related.ts +300 -22
  776. package/scripts/test/test-unit-guard-main.ts +15 -0
  777. package/scripts/test/test-unit-guard.ts +42 -24
  778. package/scripts/test/unit-count-file.ts +37 -0
  779. package/scripts/test/unit-run-marker.ts +162 -0
  780. package/scripts/test/unit-setup-files.ts +51 -0
  781. package/scripts/test/unit-worker-share.ts +61 -149
  782. package/scripts/test/whole-suite-files.ts +63 -0
  783. package/scripts/time-runtime/time-background.ts +20 -2
  784. package/scripts/time-runtime/time-bundles.ts +4 -3
  785. package/scripts/time-runtime/time-density-hook.ts +8 -6
  786. package/scripts/time-runtime/time-followup-stage.ts +1 -3
  787. package/scripts/time-runtime/time-format.ts +5 -28
  788. package/scripts/time-runtime/time-markers.ts +10 -1
  789. package/scripts/time-runtime/time-shell.ts +97 -10
  790. package/scripts/time-runtime/time-transcript-line.ts +49 -62
  791. package/scripts/uninstall/uninstall.ts +1 -1
  792. package/scripts/version/bump-version-main.ts +12 -0
  793. package/scripts/version/bump-version.ts +25 -25
  794. package/scripts/version/effective-upstream.ts +6 -12
  795. package/scripts/version/latest-corepack.ts +17 -32
  796. package/scripts/version/latest-if-required-cli.ts +93 -0
  797. package/scripts/version/latest-lane-guard-main.ts +8 -0
  798. package/scripts/version/latest-lane-guard.ts +0 -4
  799. package/scripts/version/latest-scope-cli.ts +0 -9
  800. package/scripts/version/latest-scope-main.ts +12 -0
  801. package/scripts/version/latest-update.ts +5 -5
  802. package/scripts/version/npm-registry.ts +44 -6
  803. package/scripts/version/publishable-range-check.ts +5 -16
  804. package/scripts/version/release-age.ts +1 -1
  805. package/scripts/version/release-hold.ts +1 -1
  806. package/scripts/version/release-window.ts +38 -0
  807. package/scripts/version/running-binary.ts +1 -1
  808. package/scripts/version/safe-chain-version-update.ts +3 -8
  809. package/scripts/version/version-targets.ts +6 -28
  810. package/templates/dependabot.yml +29 -0
  811. package/templates/gitignore +4 -1
  812. package/templates/pnpm-workspace.basic.yaml +1 -1
  813. package/templates/sonar-project.properties +3 -2
  814. package/templates/workflows/ci.yml +12 -4
  815. package/templates/workflows/github-release.yml +4 -0
  816. package/tsconfig.sonar.json +1 -1
  817. package/.ncurc.json +0 -3
  818. package/dist/hooks/batch-guard.js +0 -29
  819. package/dist/hooks/chunk-4KKD2UTK.js +0 -66
  820. package/dist/hooks/chunk-6TS2JD6D.js +0 -237
  821. package/dist/hooks/chunk-7DSBJVFH.js +0 -50
  822. package/dist/hooks/chunk-A65Y4YOR.js +0 -79
  823. package/dist/hooks/chunk-CDY4NFQG.js +0 -15
  824. package/dist/hooks/chunk-EFXE6C37.js +0 -81
  825. package/dist/hooks/chunk-GP4IEC4O.js +0 -20
  826. package/dist/hooks/chunk-JP45SOCJ.js +0 -56
  827. package/dist/hooks/chunk-LAOV7NLM.js +0 -45
  828. package/dist/hooks/chunk-M4HGZV7U.js +0 -83
  829. package/dist/hooks/chunk-PF2NZL2A.js +0 -131
  830. package/dist/hooks/chunk-PTICX4OL.js +0 -358
  831. package/dist/hooks/chunk-RT27QRJW.js +0 -6247
  832. package/dist/hooks/chunk-SYOTDYCI.js +0 -3533
  833. package/dist/hooks/chunk-UPUZF3AN.js +0 -279
  834. package/dist/hooks/chunk-WK6SMBIC.js +0 -3180
  835. package/dist/hooks/duplicate-read-guard.js +0 -30
  836. package/dist/hooks/investigation-guard.js +0 -29
  837. package/scripts/backlog/backlog-stalled-cli.ts +0 -30
  838. package/scripts/cost-runtime/cost-format.ts +0 -29
  839. package/scripts/init/basic-path-migration.ts +0 -24
  840. package/scripts/issue/issue-backlinks-cli.ts +0 -93
  841. package/scripts/josh/josh-commands-guard.ts +0 -38
  842. package/scripts/josh/josh-usage-automation.ts +0 -121
  843. package/scripts/josh/josh-usage-backlog.ts +0 -180
  844. package/scripts/josh/josh-usage-developer.ts +0 -230
  845. package/scripts/josh/josh-usage-hooks.ts +0 -38
  846. package/scripts/josh/josh-usage-issue.ts +0 -205
  847. package/scripts/josh/josh-usage-review.ts +0 -101
  848. package/scripts/josh/josh-usage-run.ts +0 -252
  849. package/scripts/josh/josh-usage-session.ts +0 -238
  850. package/scripts/josh/josh-usage-workflow.ts +0 -212
  851. package/scripts/lint/cross-file-recheck.ts +0 -155
  852. package/scripts/registry-migration/migrate-logic.ts +0 -237
  853. package/scripts/registry-migration/migrate.ts +0 -292
  854. package/scripts/registry-migration/user-npmrc.ts +0 -15
  855. package/scripts/rules/rule-guard.ts +0 -23
  856. package/scripts/rules/rule-registry-rows.ts +0 -292
  857. package/scripts/rules/rule-registry.ts +0 -112
  858. package/scripts/run/run-stranded-cli.ts +0 -27
@@ -62,9 +62,8 @@ function create_version_command_config(options) {
62
62
  }
63
63
 
64
64
  // scripts/version/effective-upstream.ts
65
- import { existsSync, readFileSync } from "node:fs";
66
65
  import { createRequire } from "node:module";
67
- import path2 from "node:path";
66
+ import path3 from "node:path";
68
67
 
69
68
  // scripts/lib/ancestor-directories.ts
70
69
  import path from "node:path";
@@ -83,6 +82,10 @@ function nearest(start_directory, is_match) {
83
82
  }
84
83
  var ancestor_directories = { list, nearest };
85
84
 
85
+ // scripts/lib/package-manifest.ts
86
+ import { readFileSync as readFileSync2 } from "node:fs";
87
+ import path2 from "node:path";
88
+
86
89
  // scripts/lib/json-value.ts
87
90
  function parse_or_undefined(text) {
88
91
  try {
@@ -97,10 +100,56 @@ function parse_with(text, schema) {
97
100
  const parsed = schema.safeParse(value);
98
101
  return parsed.success ? parsed.data : void 0;
99
102
  }
103
+ function parse_array(text) {
104
+ const value = parse_or_undefined(text);
105
+ return Array.isArray(value) ? value : void 0;
106
+ }
100
107
  function is_record(value) {
101
108
  return typeof value === "object" && value !== null && !Array.isArray(value);
102
109
  }
103
- var json_value = { parse_or_undefined, parse_with, is_record };
110
+ var json_value = { parse_or_undefined, parse_with, parse_array, is_record };
111
+
112
+ // scripts/lib/read-file.ts
113
+ import { readFileSync } from "node:fs";
114
+ var ABSENT_CODE = "ENOENT";
115
+ function is_absent(error) {
116
+ return error instanceof Error && "code" in error && error.code === ABSENT_CODE;
117
+ }
118
+ function read_optional(path7) {
119
+ try {
120
+ return readFileSync(path7, "utf8");
121
+ } catch (error) {
122
+ if (is_absent(error)) return void 0;
123
+ throw error;
124
+ }
125
+ }
126
+ function read_file_or_empty(path7) {
127
+ return read_optional(path7) ?? "";
128
+ }
129
+ function read_if_readable(path7) {
130
+ try {
131
+ return readFileSync(path7, "utf8");
132
+ } catch {
133
+ return void 0;
134
+ }
135
+ }
136
+ var file_reader = { is_absent, read_optional, read_file_or_empty, read_if_readable };
137
+
138
+ // scripts/lib/package-manifest.ts
139
+ var PACKAGE_JSON = "package.json";
140
+ function manifest_path(directory) {
141
+ return path2.join(directory, PACKAGE_JSON);
142
+ }
143
+ function read_manifest(directory, schema) {
144
+ const text = readFileSync2(manifest_path(directory), "utf8");
145
+ return schema.parse(JSON.parse(text));
146
+ }
147
+ function read_manifest_if_valid(directory, schema) {
148
+ const text = file_reader.read_if_readable(manifest_path(directory));
149
+ if (text === void 0) return void 0;
150
+ return json_value.parse_with(text, schema);
151
+ }
152
+ var package_manifest = { manifest_path, read_manifest, read_manifest_if_valid };
104
153
 
105
154
  // scripts/lib/schemas.ts
106
155
  import { z } from "zod";
@@ -135,18 +184,14 @@ var string_array_schema = z.array(z.string());
135
184
  var string_record_schema = z.record(z.string(), z.string());
136
185
 
137
186
  // scripts/version/effective-upstream.ts
138
- var PACKAGE_JSON = "package.json";
139
- function read_matching_version(manifest_path, package_name) {
140
- if (!existsSync(manifest_path)) return void 0;
141
- const parsed = package_named_version_schema.safeParse(
142
- json_value.parse_or_undefined(readFileSync(manifest_path, "utf8"))
143
- );
144
- if (!parsed.success || parsed.data.name !== package_name) return void 0;
145
- return parsed.data.version;
187
+ function read_matching_version(directory, package_name) {
188
+ const manifest = package_manifest.read_manifest_if_valid(directory, package_named_version_schema);
189
+ if (manifest?.name !== package_name) return void 0;
190
+ return manifest.version;
146
191
  }
147
192
  function walk_up_for_version(start_directory, package_name) {
148
193
  for (const directory of ancestor_directories.list(start_directory)) {
149
- const version = read_matching_version(path2.join(directory, PACKAGE_JSON), package_name);
194
+ const version = read_matching_version(directory, package_name);
150
195
  if (version !== void 0) return version;
151
196
  }
152
197
  return void 0;
@@ -161,10 +206,13 @@ function resolve_from_base(base_url, package_name, resolve_marker = package_name
161
206
  function resolve_effective_upstream_version(base_url, package_name, options = {}) {
162
207
  const resolved = resolve_from_base(base_url, package_name, options.resolve_marker);
163
208
  if (resolved === void 0) return void 0;
164
- return walk_up_for_version(path2.dirname(resolved), package_name);
209
+ return walk_up_for_version(path3.dirname(resolved), package_name);
165
210
  }
166
211
 
167
212
  // scripts/lib/timeouts.ts
213
+ var MS_PER_SECOND = 1e3;
214
+ var SECONDS_PER_MINUTE = 60;
215
+ var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
168
216
  var FETCH_TIMEOUT_MS = 1e4;
169
217
  var COMMAND_TIMEOUT_MS = 3e4;
170
218
  var INSTALL_TIMEOUT_MS = 6e5;
@@ -173,8 +221,8 @@ var INSTALL_TIMEOUT_MS = 6e5;
173
221
  import { execaSync as execaSync4 } from "execa";
174
222
 
175
223
  // scripts/version/release-age.ts
176
- import { readFileSync as readFileSync2 } from "node:fs";
177
- import path3 from "node:path";
224
+ import { readFileSync as readFileSync3 } from "node:fs";
225
+ import path4 from "node:path";
178
226
 
179
227
  // scripts/lib/yaml-document.ts
180
228
  import { load, loadAll, YAMLException } from "js-yaml";
@@ -208,7 +256,6 @@ var NO_QUARANTINE_MINUTES = 0;
208
256
  var WORKSPACE_PATH = "pnpm-workspace.yaml";
209
257
  var workspace_age_schema = z2.object({ minimumReleaseAge: z2.number().int().nonnegative() });
210
258
  var release_times_schema = z2.record(z2.string(), z2.string());
211
- var MS_PER_MINUTE = 6e4;
212
259
  function parse_workspace(workspace_content) {
213
260
  try {
214
261
  return yaml_document.parse_yaml(workspace_content);
@@ -240,7 +287,7 @@ function select_aged_version(times, major, minimum_age_minutes, now_ms) {
240
287
  }
241
288
  function read_declared_minimum_release_age(workspace_path) {
242
289
  try {
243
- return parse_declared_minimum_release_age(readFileSync2(workspace_path, "utf8"));
290
+ return parse_declared_minimum_release_age(readFileSync3(workspace_path, "utf8"));
244
291
  } catch {
245
292
  return void 0;
246
293
  }
@@ -249,14 +296,14 @@ function read_minimum_release_age(workspace_path = WORKSPACE_PATH) {
249
296
  return read_declared_minimum_release_age(workspace_path) ?? NO_QUARANTINE_MINUTES;
250
297
  }
251
298
  function find_declared_minimum_release_age(start, boundary) {
252
- const declared = read_declared_minimum_release_age(path3.join(start, WORKSPACE_PATH));
299
+ const declared = read_declared_minimum_release_age(path4.join(start, WORKSPACE_PATH));
253
300
  if (declared !== void 0) return declared;
254
301
  if (start === boundary) return void 0;
255
- const parent = path3.dirname(start);
302
+ const parent = path4.dirname(start);
256
303
  return parent === start ? void 0 : find_declared_minimum_release_age(parent, boundary);
257
304
  }
258
305
  function read_nearest_minimum_release_age(start, boundary) {
259
- return find_declared_minimum_release_age(path3.resolve(start), boundary) ?? NO_QUARANTINE_MINUTES;
306
+ return find_declared_minimum_release_age(path4.resolve(start), boundary) ?? NO_QUARANTINE_MINUTES;
260
307
  }
261
308
  var release_age = {
262
309
  release_times_schema,
@@ -270,14 +317,13 @@ var release_age = {
270
317
  // scripts/version/release-hold.ts
271
318
  import semver2 from "semver";
272
319
  var MINUTES_PER_HOUR = 60;
273
- var MS_PER_MINUTE2 = 6e4;
274
320
  var HOLD_LABEL = "Held:";
275
321
  function is_latest_withheld(times, latest, minimum_age_minutes, now_ms) {
276
322
  const published_at = times[latest];
277
323
  if (published_at === void 0) return false;
278
324
  const published_ms = Date.parse(published_at);
279
325
  if (!Number.isFinite(published_ms)) return false;
280
- return published_ms > now_ms - minimum_age_minutes * MS_PER_MINUTE2;
326
+ return published_ms > now_ms - minimum_age_minutes * MS_PER_MINUTE;
281
327
  }
282
328
  function resolve_installable(times, latest, minimum_age_minutes, now_ms) {
283
329
  if (times === void 0 || !is_latest_withheld(times, latest, minimum_age_minutes, now_ms)) {
@@ -320,21 +366,20 @@ var release_hold = {
320
366
  };
321
367
 
322
368
  // scripts/version/running-binary.ts
323
- import { existsSync as existsSync2, readFileSync as readFileSync3 } from "node:fs";
324
- import path4 from "node:path";
325
- var PACKAGE_JSON2 = "package.json";
369
+ import { existsSync, readFileSync as readFileSync4 } from "node:fs";
370
+ import path5 from "node:path";
326
371
  var SCRIPT_DEPTH_FROM_ROOT = ["..", ".."];
327
372
  function resolve_self_package_path(self_directory) {
328
- return path4.join(self_directory, ...SCRIPT_DEPTH_FROM_ROOT, PACKAGE_JSON2);
373
+ return path5.join(self_directory, ...SCRIPT_DEPTH_FROM_ROOT, PACKAGE_JSON);
329
374
  }
330
375
  function running_package_directory(self_directory) {
331
- return path4.resolve(self_directory, ...SCRIPT_DEPTH_FROM_ROOT);
376
+ return path5.resolve(self_directory, ...SCRIPT_DEPTH_FROM_ROOT);
332
377
  }
333
378
  function read_running_version(self_directory) {
334
379
  const package_path = resolve_self_package_path(self_directory);
335
- if (!existsSync2(package_path)) return void 0;
380
+ if (!existsSync(package_path)) return void 0;
336
381
  const parsed = package_version_schema.safeParse(
337
- json_value.parse_or_undefined(readFileSync3(package_path, "utf8"))
382
+ json_value.parse_or_undefined(readFileSync4(package_path, "utf8"))
338
383
  );
339
384
  return parsed.success ? parsed.data.version : void 0;
340
385
  }
@@ -764,20 +809,20 @@ function parse_status_line(output) {
764
809
  function status_of_failure(error) {
765
810
  return has_stdout_field(error) ? parse_status_line(error.stdout) : void 0;
766
811
  }
767
- async function exec_gh_api_status(path6, timeout_ms) {
812
+ async function exec_gh_api_status(path7, timeout_ms) {
768
813
  const options = to_spawn_options(timeout_ms);
769
814
  try {
770
815
  await check_gh_installed();
771
- const { stdout } = await execa2("gh", ["api", "--include", "--silent", path6], options);
816
+ const { stdout } = await execa2("gh", ["api", "--include", "--silent", path7], options);
772
817
  return parse_status_line(stdout);
773
818
  } catch (error) {
774
819
  return status_of_failure(error);
775
820
  }
776
821
  }
777
- function exec_gh_api_status_sync(path6, timeout_ms) {
822
+ function exec_gh_api_status_sync(path7, timeout_ms) {
778
823
  const options = to_spawn_options(timeout_ms);
779
824
  try {
780
- const { stdout } = execaSync("gh", ["api", "--include", "--silent", path6], options);
825
+ const { stdout } = execaSync("gh", ["api", "--include", "--silent", path7], options);
781
826
  return parse_status_line(stdout);
782
827
  } catch (error) {
783
828
  return status_of_failure(error);
@@ -846,328 +891,21 @@ var git_gh_exec = {
846
891
  parse_status_line
847
892
  };
848
893
 
849
- // scripts/gh/fix-gh-packages-logic.ts
850
- import { loadAll as loadAll2 } from "js-yaml";
851
- import { z as z4 } from "zod";
852
- var GH_PACKAGES_HOST = "npm.pkg.github.com";
853
- var RESOLUTION_BLOCK = "\n resolution:\n";
854
- var INTEGRITY_PREFIX = " integrity: ";
855
- var TARBALL_PREFIX = " tarball: ";
856
- var FLOW_RESOLUTION_LINE_START = "\n resolution: {";
857
- var FLOW_TARBALL_KEY = ", tarball: ";
858
- var NPMRC_AUTH_TOKEN_PREFIX = `//${GH_PACKAGES_HOST}/:_authToken=`;
859
- var REGISTRY_KEY = ":registry=";
860
- var lockfile_resolution_schema = z4.looseObject({
861
- integrity: z4.string().optional(),
862
- tarball: z4.string().optional()
863
- });
864
- var lockfile_package_schema = z4.looseObject({
865
- resolution: lockfile_resolution_schema.optional()
866
- });
867
- var lockfile_document_schema = z4.looseObject({
868
- packages: z4.record(z4.string(), lockfile_package_schema).optional()
869
- });
870
- function parse_lockfile_packages(raw) {
871
- const merged = {};
872
- for (const document of loadAll2(raw)) {
873
- const { packages } = lockfile_document_schema.parse(document);
874
- if (packages !== void 0) Object.assign(merged, packages);
875
- }
876
- return merged;
877
- }
878
- function extract_gh_registry_scope(line) {
879
- const trimmed = line.trim();
880
- if (!trimmed.startsWith("@")) return void 0;
881
- const eq_index = trimmed.indexOf(REGISTRY_KEY);
882
- if (eq_index === -1) return void 0;
883
- const registry = trimmed.slice(eq_index + REGISTRY_KEY.length).trim().replace(/\/$/u, "");
884
- if (registry !== `https://${GH_PACKAGES_HOST}`) return void 0;
885
- return trimmed.slice(0, eq_index);
886
- }
887
- function parse_gh_scopes(npmrc) {
888
- const scopes = /* @__PURE__ */ new Set();
889
- for (const line of npmrc.split("\n")) {
890
- const scope = extract_gh_registry_scope(line);
891
- if (scope !== void 0) scopes.add(scope);
892
- }
893
- return scopes;
894
- }
895
- function extract_auth_token_from_line(line) {
896
- const trimmed = line.trim();
897
- if (!trimmed.startsWith(NPMRC_AUTH_TOKEN_PREFIX)) return void 0;
898
- const value = trimmed.slice(NPMRC_AUTH_TOKEN_PREFIX.length);
899
- if (value.startsWith("${") || value.length === 0) return void 0;
900
- return value;
901
- }
902
- function parse_npmrc_auth_token(npmrc) {
903
- for (const line of npmrc.split("\n")) {
904
- const token = extract_auth_token_from_line(line);
905
- if (token !== void 0) return token;
906
- }
907
- return void 0;
908
- }
909
- function scope_from_key(key) {
910
- return key.startsWith("@") ? key.split("/", 1)[0] ?? "" : "";
911
- }
912
- function has_tarball(entry) {
913
- return entry.resolution?.tarball !== void 0;
914
- }
915
- function package_path_from_key(key) {
916
- const start = key.startsWith("@") ? 1 : 0;
917
- const at_index = key.indexOf("@", start);
918
- return at_index === -1 ? key : key.slice(0, at_index);
919
- }
920
- function package_version_from_key(key) {
921
- const start = key.startsWith("@") ? 1 : 0;
922
- const at_index = key.indexOf("@", start);
923
- if (at_index === -1) return "";
924
- return key.slice(at_index + 1).split("(", 1)[0] ?? "";
925
- }
926
- function should_fix_tarball(key, entry, scopes) {
927
- if (has_tarball(entry)) return false;
928
- const scope = scope_from_key(key);
929
- return scope.length > 0 && scopes.has(scope);
930
- }
931
- function find_entry_start(content, package_key) {
932
- const single = content.indexOf(`
933
- '${package_key}':
934
- `);
935
- if (single !== -1) return single;
936
- return content.indexOf(`
937
- "${package_key}":
938
- `);
939
- }
940
- function find_entry_end(content, entry_start) {
941
- const next_match = /\n {2}['"]/u.exec(content.slice(entry_start + 1));
942
- return next_match === null ? content.length : entry_start + 1 + next_match.index;
943
- }
944
- function find_integrity_eol_in_entry(entry_content) {
945
- const resolution_pos = entry_content.indexOf(RESOLUTION_BLOCK);
946
- if (resolution_pos === -1) return -1;
947
- const integrity_pos = entry_content.indexOf(INTEGRITY_PREFIX, resolution_pos);
948
- if (integrity_pos === -1) return -1;
949
- return entry_content.indexOf("\n", integrity_pos);
950
- }
951
- function find_flow_resolution_brace(entry_content) {
952
- const pos = entry_content.indexOf(FLOW_RESOLUTION_LINE_START);
953
- if (pos === -1) return -1;
954
- const line_end = entry_content.indexOf("\n", pos + 1);
955
- const search_end = line_end === -1 ? entry_content.length : line_end;
956
- const brace = entry_content.lastIndexOf("}", search_end);
957
- if (brace <= pos) return -1;
958
- return brace;
959
- }
960
- function insert_expanded_tarball(content, entry_start, entry_end, tarball) {
961
- const entry_content = content.slice(entry_start, entry_end);
962
- const integrity_eol = find_integrity_eol_in_entry(entry_content);
963
- if (integrity_eol === -1) return void 0;
964
- if (entry_content.slice(integrity_eol + 1).startsWith(TARBALL_PREFIX)) return content;
965
- const patched = `${entry_content.slice(0, integrity_eol + 1)}${TARBALL_PREFIX}${tarball}
966
- ${entry_content.slice(integrity_eol + 1)}`;
967
- return content.slice(0, entry_start) + patched + content.slice(entry_end);
968
- }
969
- function insert_flow_tarball(content, entry_start, entry_end, tarball) {
970
- const entry_content = content.slice(entry_start, entry_end);
971
- const brace_pos = find_flow_resolution_brace(entry_content);
972
- if (brace_pos === -1) return void 0;
973
- const open_brace = entry_content.lastIndexOf("{", brace_pos);
974
- if (open_brace === -1) return void 0;
975
- const flow_body = entry_content.slice(open_brace + 1, brace_pos);
976
- if (/\btarball\s*:/u.test(flow_body)) return content;
977
- const patched = `${entry_content.slice(0, brace_pos)}${FLOW_TARBALL_KEY}${tarball}${entry_content.slice(brace_pos)}`;
978
- return content.slice(0, entry_start) + patched + content.slice(entry_end);
979
- }
980
- function insert_tarball_for_key(content, package_key, tarball) {
981
- const entry_start = find_entry_start(content, package_key);
982
- if (entry_start === -1) return content;
983
- const entry_end = find_entry_end(content, entry_start);
984
- return insert_expanded_tarball(content, entry_start, entry_end, tarball) ?? insert_flow_tarball(content, entry_start, entry_end, tarball) ?? content;
985
- }
986
- function patch_lockfile(content, patches) {
987
- let result = content;
988
- for (const [key, tarball] of patches) {
989
- result = insert_tarball_for_key(result, key, tarball);
990
- }
991
- return result;
992
- }
993
- function resolve_token(environment_token, npmrc_token, get_fallback_token) {
994
- if (environment_token !== void 0 && environment_token.length > 0) return environment_token;
995
- if (npmrc_token !== void 0) return npmrc_token;
996
- return get_fallback_token();
997
- }
998
- var fix_gh_packages_logic = {
999
- parse_gh_scopes,
1000
- parse_npmrc_auth_token,
1001
- parse_lockfile_packages,
1002
- package_path_from_key,
1003
- package_version_from_key,
1004
- needs_tarball_fix: should_fix_tarball,
1005
- insert_tarball_for_key,
1006
- patch_lockfile,
1007
- resolve_token
1008
- };
1009
-
1010
- // scripts/registry-migration/migrate-logic.ts
1011
- var SCOPE = "@joshuafolkken";
1012
- var REGISTRY_KEY2 = `${SCOPE}:registry`;
1013
- var PUBLIC_REGISTRY = "https://registry.npmjs.org/";
1014
- var GITHUB_REGISTRY = "https://npm.pkg.github.com/";
1015
- var MAPPING = `${REGISTRY_KEY2}=${PUBLIC_REGISTRY}`;
1016
- var REGISTRY_VALUE_INDEX = 1;
1017
- var SPLIT_LIMIT = 2;
1018
- function normalized_registry(value) {
1019
- let normalized = value.trim();
1020
- while (normalized.endsWith("/")) normalized = normalized.slice(0, -1);
1021
- return `${normalized}/`;
1022
- }
1023
- function mapping_lines(content) {
1024
- return content.split(/\r?\n/u).filter((line) => line.trimStart().startsWith(`${REGISTRY_KEY2}=`));
1025
- }
1026
- function registry_of(content) {
1027
- const lines = mapping_lines(content);
1028
- if (lines.length !== 1) return void 0;
1029
- return normalized_registry(lines[0]?.split("=", SPLIT_LIMIT)[REGISTRY_VALUE_INDEX] ?? "");
1030
- }
1031
- function scoped_packages(lockfile) {
1032
- const packages = fix_gh_packages_logic.parse_lockfile_packages(lockfile);
1033
- return Object.keys(packages).filter((key) => key.startsWith(`${SCOPE}/`)).map((key) => fix_gh_packages_logic.package_path_from_key(key)).filter((name, index, names) => names.indexOf(name) === index);
1034
- }
1035
- function scoped_versions(lockfile) {
1036
- const packages = fix_gh_packages_logic.parse_lockfile_packages(lockfile);
1037
- return Object.keys(packages).filter((key) => key.startsWith(`${SCOPE}/`)).map(
1038
- (key) => [
1039
- fix_gh_packages_logic.package_path_from_key(key),
1040
- fix_gh_packages_logic.package_version_from_key(key)
1041
- ]
1042
- );
1043
- }
1044
- function is_github_tarball(value) {
1045
- try {
1046
- const url = new URL(value);
1047
- return url.protocol === "https:" && url.hostname === "npm.pkg.github.com";
1048
- } catch {
1049
- return false;
1050
- }
1051
- }
1052
- function github_tarballs(lockfile) {
1053
- const packages = fix_gh_packages_logic.parse_lockfile_packages(lockfile);
1054
- return Object.entries(packages).filter(
1055
- ([key, entry]) => key.startsWith(`${SCOPE}/`) && entry.resolution?.tarball !== void 0 && is_github_tarball(entry.resolution.tarball)
1056
- ).map(([key]) => key);
1057
- }
1058
- function remove_flow_tarball(line) {
1059
- const marker = ", tarball: https://npm.pkg.github.com/";
1060
- const start = line.indexOf(marker);
1061
- if (start === -1) return line;
1062
- const end = line.indexOf("}", start);
1063
- if (end === -1) return line;
1064
- return `${line.slice(0, start)}${line.slice(end)}`;
1065
- }
1066
- function is_package_entry(line) {
1067
- return /^ {2}[^ ]/u.test(line);
1068
- }
1069
- function is_github_tarball_line(line) {
1070
- return line.trimStart().startsWith("tarball: https://npm.pkg.github.com/");
1071
- }
1072
- function package_id(key) {
1073
- const name = fix_gh_packages_logic.package_path_from_key(key);
1074
- return `${name}@${fix_gh_packages_logic.package_version_from_key(key)}`;
1075
- }
1076
- function clean_scoped_line(line, id, integrities) {
1077
- if (!id) return line;
1078
- if (is_github_tarball_line(line)) return void 0;
1079
- const cleaned = remove_flow_tarball(line);
1080
- const pair = integrities.get(id);
1081
- if (pair === void 0) return cleaned;
1082
- return cleaned.split(`integrity: ${pair[0]}`).join(`integrity: ${pair[1]}`);
1083
- }
1084
- function next_scoped_id(line, id) {
1085
- if (!is_package_entry(line)) return id;
1086
- const prefix = ` '${SCOPE}/`;
1087
- if (!line.startsWith(prefix)) return "";
1088
- return package_id(line.slice(" '".length).split("'", 1)[0] ?? "");
1089
- }
1090
- function integrity_pair(old_integrity, npm_integrity) {
1091
- if (old_integrity === void 0 || npm_integrity === void 0) return void 0;
1092
- return [old_integrity, npm_integrity];
1093
- }
1094
- function lock_integrities(lockfile, npm_integrities) {
1095
- const packages = fix_gh_packages_logic.parse_lockfile_packages(lockfile);
1096
- const pairs = /* @__PURE__ */ new Map();
1097
- const scoped_entries = Object.entries(packages).filter(([key]) => key.startsWith(`${SCOPE}/`));
1098
- for (const [key, entry] of scoped_entries) {
1099
- const id = package_id(key);
1100
- const pair = integrity_pair(entry.resolution?.integrity, npm_integrities.get(id));
1101
- if (pair !== void 0) pairs.set(id, pair);
1102
- }
1103
- return pairs;
1104
- }
1105
- function push_if_defined(lines, cleaned) {
1106
- if (cleaned !== void 0) lines.push(cleaned);
1107
- }
1108
- function rewrite_scoped_lockfile(lockfile, npm_integrities) {
1109
- let id = "";
1110
- const lines = [];
1111
- const integrities = lock_integrities(lockfile, npm_integrities);
1112
- for (const line of lockfile.split("\n")) {
1113
- id = next_scoped_id(line, id);
1114
- const cleaned = clean_scoped_line(line, id, integrities);
1115
- push_if_defined(lines, cleaned);
1116
- }
1117
- return lines.join("\n");
1118
- }
1119
- function append_mapping(content, eol) {
1120
- const separator = content && !content.endsWith("\n") ? eol : "";
1121
- return `${content}${separator}${MAPPING}${eol}`;
1122
- }
1123
- function replace_mapping(content) {
1124
- const lines = mapping_lines(content);
1125
- const eol = content.includes("\r\n") ? "\r\n" : "\n";
1126
- if (lines.length === 0) return append_mapping(content, eol);
1127
- return content.split(/\r?\n/u).map((line) => line === lines[0] ? MAPPING : line).join(eol);
1128
- }
1129
- function unsupported_registry(project_npmrc) {
1130
- const registry = registry_of(project_npmrc);
1131
- if (registry === void 0 || [GITHUB_REGISTRY, PUBLIC_REGISTRY].includes(registry)) {
1132
- return void 0;
1133
- }
1134
- return `unsupported project registry: ${registry}`;
1135
- }
1136
- function has_duplicate_mapping(project_npmrc, user_npmrc) {
1137
- return mapping_lines(project_npmrc).length > 1 || mapping_lines(user_npmrc).length > 1;
1138
- }
1139
- function previous_registry(project_npmrc, user_npmrc) {
1140
- return registry_of(project_npmrc) ?? registry_of(user_npmrc) ?? "default npm";
1141
- }
1142
- function plan(project_npmrc, user_npmrc, lockfile) {
1143
- const packages = scoped_packages(lockfile);
1144
- const blocked = [];
1145
- if (has_duplicate_mapping(project_npmrc, user_npmrc)) blocked.push("duplicate registry mappings");
1146
- const unsupported = unsupported_registry(project_npmrc);
1147
- if (unsupported !== void 0) blocked.push(unsupported);
1148
- const before = previous_registry(project_npmrc, user_npmrc);
1149
- const change = `${before} \u2192 ${PUBLIC_REGISTRY}`;
1150
- return { content: replace_mapping(project_npmrc), packages, blocked, change };
1151
- }
1152
- var migrate_logic = {
1153
- plan,
1154
- github_tarballs,
1155
- is_github_tarball,
1156
- rewrite_scoped_lockfile,
1157
- scoped_versions
1158
- };
1159
-
1160
894
  // scripts/version/npm-registry.ts
1161
895
  import { execaSync as execaSync2 } from "execa";
1162
896
  import semver3 from "semver";
1163
- import { z as z5 } from "zod";
1164
- var PUBLIC_REGISTRY2 = "https://registry.npmjs.org";
897
+ import { z as z4 } from "zod";
898
+ var PUBLIC_REGISTRY = "https://registry.npmjs.org";
1165
899
  var ABBREVIATED_ACCEPT = "application/vnd.npm.install-v1+json";
1166
900
  var FULL_ACCEPT = "application/json";
1167
901
  var SCOPE_SEPARATOR = "/";
1168
902
  var ENCODED_SCOPE_SEPARATOR = "%2f";
1169
903
  var SCOPE_PATTERN = /^@[^/]+(?=\/)/u;
1170
904
  var SCOPE_REGISTRY_SUFFIX = ":registry";
905
+ var GITHUB_REGISTRY_HOST = "npm.pkg.github.com";
906
+ var PNPM = "pnpm";
907
+ var JSON_FLAG = "--json";
908
+ var FAILURE_EXIT_CODE = 1;
1171
909
  var github_scopes = /* @__PURE__ */ new Map();
1172
910
  var FETCH_SCRIPT = [
1173
911
  "const [url, accept] = process.argv.slice(1)",
@@ -1175,11 +913,11 @@ var FETCH_SCRIPT = [
1175
913
  "if (!response.ok) process.exit(1)",
1176
914
  "process.stdout.write(await response.text())"
1177
915
  ].join("\n");
1178
- var version_schema = z5.string().refine((value) => semver3.valid(value) === value);
1179
- var latest_schema = z5.looseObject({ "dist-tags": z5.looseObject({ latest: version_schema }) });
1180
- var times_schema = z5.looseObject({ time: release_age.release_times_schema });
916
+ var version_schema = z4.string().refine((value) => semver3.valid(value) === value);
917
+ var latest_schema = z4.looseObject({ "dist-tags": z4.looseObject({ latest: version_schema }) });
918
+ var times_schema = z4.looseObject({ time: release_age.release_times_schema });
1181
919
  function packument_url(package_name) {
1182
- return `${PUBLIC_REGISTRY2}/${package_name.replace(SCOPE_SEPARATOR, () => ENCODED_SCOPE_SEPARATOR)}`;
920
+ return `${PUBLIC_REGISTRY}/${package_name.replace(SCOPE_SEPARATOR, () => ENCODED_SCOPE_SEPARATOR)}`;
1183
921
  }
1184
922
  function read_packument(package_name, accept) {
1185
923
  const result = execaSync2(
@@ -1190,14 +928,22 @@ function read_packument(package_name, accept) {
1190
928
  if (result.exitCode !== 0) return void 0;
1191
929
  return json_value.parse_or_undefined(result.stdout);
1192
930
  }
931
+ function is_github_registry(value) {
932
+ try {
933
+ const url = new URL(value);
934
+ return url.protocol === "https:" && url.hostname === GITHUB_REGISTRY_HOST;
935
+ } catch {
936
+ return false;
937
+ }
938
+ }
1193
939
  function is_github_scope(scope) {
1194
940
  const is_cached_github = github_scopes.get(scope);
1195
941
  if (is_cached_github !== void 0) return is_cached_github;
1196
- const result = execaSync2("pnpm", ["config", "get", `${scope}${SCOPE_REGISTRY_SUFFIX}`], {
942
+ const result = execaSync2(PNPM, ["config", "get", `${scope}${SCOPE_REGISTRY_SUFFIX}`], {
1197
943
  reject: false,
1198
944
  timeout: FETCH_TIMEOUT_MS
1199
945
  });
1200
- const is_github = result.exitCode === 0 && migrate_logic.is_github_tarball(result.stdout.trim());
946
+ const is_github = result.exitCode === 0 && is_github_registry(result.stdout.trim());
1201
947
  github_scopes.set(scope, is_github);
1202
948
  return is_github;
1203
949
  }
@@ -1219,6 +965,14 @@ function has_public_version(package_name, version) {
1219
965
  const parsed = times_schema.safeParse(read_packument(package_name, FULL_ACCEPT));
1220
966
  return parsed.success && parsed.data.time[version] !== void 0;
1221
967
  }
968
+ function view(spec, field, format = "text") {
969
+ const format_arguments = format === "json" ? [JSON_FLAG] : [];
970
+ const result = execaSync2(PNPM, ["view", spec, field, ...format_arguments], {
971
+ reject: false,
972
+ timeout: COMMAND_TIMEOUT_MS
973
+ });
974
+ return { exit_code: result.exitCode ?? FAILURE_EXIT_CODE, stdout: result.stdout };
975
+ }
1222
976
  function valid_version(value) {
1223
977
  return version_schema.safeParse(value).success ? value : void 0;
1224
978
  }
@@ -1227,7 +981,8 @@ var npm_registry = {
1227
981
  packument_url,
1228
982
  read_latest,
1229
983
  read_release_times,
1230
- valid_version
984
+ valid_version,
985
+ view
1231
986
  };
1232
987
 
1233
988
  // scripts/version/version-remote.ts
@@ -1284,38 +1039,9 @@ function fetch_release_times(versions_endpoint, package_name) {
1284
1039
  }
1285
1040
 
1286
1041
  // scripts/version/version-targets.ts
1287
- import path5 from "node:path";
1288
-
1289
- // scripts/lib/read-file.ts
1290
- import { readFileSync as readFileSync4 } from "node:fs";
1291
- var ABSENT_CODE = "ENOENT";
1292
- function is_absent(error) {
1293
- return error instanceof Error && "code" in error && error.code === ABSENT_CODE;
1294
- }
1295
- function read_optional(path6) {
1296
- try {
1297
- return readFileSync4(path6, "utf8");
1298
- } catch (error) {
1299
- if (is_absent(error)) return void 0;
1300
- throw error;
1301
- }
1302
- }
1303
- function read_file_or_empty(path6) {
1304
- return read_optional(path6) ?? "";
1305
- }
1306
- function read_if_readable(path6) {
1307
- try {
1308
- return readFileSync4(path6, "utf8");
1309
- } catch {
1310
- return void 0;
1311
- }
1312
- }
1313
- var file_reader = { read_optional, read_file_or_empty, read_if_readable };
1314
-
1315
- // scripts/version/version-targets.ts
1042
+ import path6 from "node:path";
1316
1043
  import { execaSync as execaSync3 } from "execa";
1317
1044
  var NODE_MODULES2 = "node_modules";
1318
- var PACKAGE_JSON3 = "package.json";
1319
1045
  function build_pnpm_ls_arguments(package_name) {
1320
1046
  return ["ls", "-g", "--json", package_name];
1321
1047
  }
@@ -1324,44 +1050,27 @@ function parse_global_version(stdout, package_name) {
1324
1050
  if (!parsed.success) return void 0;
1325
1051
  return parsed.data[0]?.dependencies?.[package_name]?.version;
1326
1052
  }
1327
- function parse_project_version(raw) {
1328
- if (raw === void 0) return void 0;
1329
- const parsed = package_version_schema.safeParse(json_value.parse_or_undefined(raw));
1330
- return parsed.success ? parsed.data.version : void 0;
1331
- }
1332
1053
  function read_global_version(package_name) {
1333
1054
  const result = execaSync3("pnpm", build_pnpm_ls_arguments(package_name), { reject: false });
1334
1055
  return parse_global_version(result.stdout, package_name);
1335
1056
  }
1336
- function project_package_path(cwd, package_name) {
1337
- return path5.join(cwd, NODE_MODULES2, package_name, PACKAGE_JSON3);
1338
- }
1339
1057
  function read_project_version(cwd, package_name) {
1340
- const package_path = project_package_path(cwd, package_name);
1341
- const raw = file_reader.read_optional(package_path);
1342
- return parse_project_version(raw);
1058
+ const package_directory = path6.join(cwd, NODE_MODULES2, package_name);
1059
+ return package_manifest.read_manifest_if_valid(package_directory, package_version_schema)?.version;
1343
1060
  }
1344
1061
  function read_workspace_version(cwd) {
1345
- const package_path = path5.join(cwd, PACKAGE_JSON3);
1346
- const raw = file_reader.read_optional(package_path);
1347
- return parse_project_version(raw);
1062
+ return package_manifest.read_manifest_if_valid(cwd, package_version_schema)?.version;
1348
1063
  }
1349
1064
  var version_targets = {
1350
1065
  build_pnpm_ls_arguments,
1351
1066
  parse_global_version,
1352
- parse_project_version,
1353
1067
  read_global_version,
1354
1068
  read_project_version,
1355
- project_package_path,
1356
- read_workspace_version,
1357
- // The manifest's filename. Exported rather than re-declared in each of `josh release`'s two
1358
- // halves: the module that already owns "where the project's manifest is"
1359
- // is where the name belongs.
1360
- PACKAGE_JSON: PACKAGE_JSON3
1069
+ read_workspace_version
1361
1070
  };
1362
1071
 
1363
1072
  // scripts/version/version-commands.ts
1364
- var FAILURE_EXIT_CODE = 1;
1073
+ var FAILURE_EXIT_CODE2 = 1;
1365
1074
  var ALREADY_UP_TO_DATE = "Already up to date";
1366
1075
  var NO_QUARANTINE_MINUTES2 = 0;
1367
1076
  function read_release_hold(package_config, latest, versions) {
@@ -1455,7 +1164,7 @@ function run_upgrade_step(step) {
1455
1164
  reject: false,
1456
1165
  timeout: INSTALL_TIMEOUT_MS
1457
1166
  });
1458
- return result.exitCode ?? FAILURE_EXIT_CODE;
1167
+ return result.exitCode ?? FAILURE_EXIT_CODE2;
1459
1168
  }
1460
1169
  function run_upgrade_command(command) {
1461
1170
  for (const step of command.steps) {