@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
@@ -11,6 +11,6 @@
11
11
  "$lib/*": ["./src/lib/*"]
12
12
  }
13
13
  },
14
- "include": ["src/**/*.js", "src/**/*.ts", "src/**/*.svelte", "scripts/**/*.ts"],
14
+ "include": ["src/**/*.js", "src/**/*.ts", "src/**/*.svelte", "scripts/**/*.ts", "tools/**/*.ts"],
15
15
  "exclude": ["node_modules", "build", ".svelte-kit"]
16
16
  }
package/.ncurc.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "cooldown": 1
3
- }
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env tsx
2
- import {
3
- DISABLED_VALUES,
4
- SWITCH_ENV_KEY,
5
- batch_outcome,
6
- batch_refusal,
7
- deny_envelope,
8
- is_enabled,
9
- load_environment_file,
10
- notice_refusal_path,
11
- refusal_path
12
- } from "./chunk-A65Y4YOR.js";
13
- import "./chunk-JP45SOCJ.js";
14
- import "./chunk-6TS2JD6D.js";
15
- import "./chunk-TNUMY6NL.js";
16
- import "./chunk-LAOV7NLM.js";
17
- import "./chunk-APUO6U4J.js";
18
- import "./chunk-DGT54IH5.js";
19
- export {
20
- DISABLED_VALUES,
21
- SWITCH_ENV_KEY,
22
- batch_outcome,
23
- batch_refusal,
24
- deny_envelope,
25
- is_enabled,
26
- load_environment_file,
27
- notice_refusal_path,
28
- refusal_path
29
- };
@@ -1,66 +0,0 @@
1
- // scripts/observations/observation-ledger.ts
2
- var OBSERVATION_LEDGER_DIRECTORY = ".josh/observations";
3
- var LEGACY_OBSERVATION_LEDGER_DIRECTORY = "docs/maintainers/observations";
4
- var LEDGER_DIRECTORIES = [
5
- OBSERVATION_LEDGER_DIRECTORY,
6
- LEGACY_OBSERVATION_LEDGER_DIRECTORY
7
- ];
8
- var LEDGER_FILE_EXTENSION = ".md";
9
- var LEGACY_LEDGER_FILE = `legacy${LEDGER_FILE_EXTENSION}`;
10
- var LEGACY_OBSERVATION_LEDGER_PATHS = [
11
- "docs/maintainers/observations.md",
12
- "docs/observations.md"
13
- ];
14
- var STATUS_PATH_INDEX = 3;
15
- function status_path(line) {
16
- return line.slice(STATUS_PATH_INDEX).trim();
17
- }
18
- function ledger_file(name) {
19
- return `${OBSERVATION_LEDGER_DIRECTORY}/${String(name)}${LEDGER_FILE_EXTENSION}`;
20
- }
21
- function is_ledger_file_name(name) {
22
- return name.endsWith(LEDGER_FILE_EXTENSION);
23
- }
24
- var MIGRATION_CLAIM_SUFFIX = ".migrating";
25
- function is_legacy_directory_file(file_path) {
26
- return file_path.startsWith(`${LEGACY_OBSERVATION_LEDGER_DIRECTORY}/`);
27
- }
28
- function is_migration_claim(file_path) {
29
- if (!file_path.endsWith(MIGRATION_CLAIM_SUFFIX)) return false;
30
- return is_legacy_directory_file(file_path) || LEGACY_OBSERVATION_LEDGER_PATHS.some((legacy) => file_path.startsWith(`${legacy}.`));
31
- }
32
- function is_in_directory(file_path) {
33
- return LEDGER_DIRECTORIES.some((directory) => file_path.startsWith(`${directory}/`));
34
- }
35
- function is_ledger_path(file_path) {
36
- return is_in_directory(file_path) || LEGACY_OBSERVATION_LEDGER_PATHS.includes(file_path) || is_migration_claim(file_path);
37
- }
38
- function is_ledger_line(line) {
39
- return is_ledger_path(status_path(line));
40
- }
41
- function ledger_paths(status_output) {
42
- return status_output.split("\n").filter((line) => is_ledger_line(line)).map((line) => status_path(line));
43
- }
44
- function has_pending_append(status_output) {
45
- return status_output.split("\n").some((line) => is_ledger_line(line));
46
- }
47
- var observation_ledger = {
48
- has_pending_append,
49
- is_ledger_file_name,
50
- is_ledger_line,
51
- is_ledger_path,
52
- is_migration_claim,
53
- ledger_file,
54
- ledger_paths,
55
- status_path
56
- };
57
-
58
- export {
59
- OBSERVATION_LEDGER_DIRECTORY,
60
- LEGACY_OBSERVATION_LEDGER_DIRECTORY,
61
- LEDGER_FILE_EXTENSION,
62
- LEGACY_LEDGER_FILE,
63
- LEGACY_OBSERVATION_LEDGER_PATHS,
64
- MIGRATION_CLAIM_SUFFIX,
65
- observation_ledger
66
- };
@@ -1,237 +0,0 @@
1
- import {
2
- time_density_hook,
3
- time_hook_transcript
4
- } from "./chunk-TNUMY6NL.js";
5
- import {
6
- josh_environment_file
7
- } from "./chunk-LAOV7NLM.js";
8
- import {
9
- json_value
10
- } from "./chunk-APUO6U4J.js";
11
- import {
12
- stamp_file
13
- } from "./chunk-DGT54IH5.js";
14
-
15
- // scripts/josh/hook-decision.ts
16
- import { z } from "zod";
17
- var payload_schema = z.object({
18
- transcript_path: z.string().min(1),
19
- // **`nullish`, not `optional`.** A payload spelling the absent agent as `null` has to read as "no
20
- // fork"; rejected, it would fail `safeParse` for the whole payload and take the guard off every
21
- // call of the main line, in silence — the failure every other path here is written to avoid.
22
- agent_id: z.string().nullish(),
23
- tool_name: z.string().min(1),
24
- tool_input: z.unknown()
25
- });
26
- var refusal_schema = z.object({ refused_at_ms: z.number() });
27
- var HOOK_EVENT_NAME = "PreToolUse";
28
- var DENY_DECISION = "deny";
29
- var ALLOW_DECISION = "allow";
30
- var NEVER_MS = 0;
31
- var MISSING_FILE = "ENOENT";
32
- var DISABLED_VALUES = ["off", "0", "false", "no"];
33
- function is_switch_enabled(key) {
34
- return !DISABLED_VALUES.includes((process.env[key] ?? "").trim().toLowerCase());
35
- }
36
- var ENABLED_VALUES = ["on", "1", "true", "yes"];
37
- function is_switch_opt_in(key) {
38
- return ENABLED_VALUES.includes((process.env[key] ?? "").trim().toLowerCase());
39
- }
40
- function parse_hook_payload(raw_payload) {
41
- const parsed = payload_schema.safeParse(JSON.parse(raw_payload));
42
- return parsed.success ? parsed.data : void 0;
43
- }
44
- function deny_envelope(reason) {
45
- return JSON.stringify({
46
- hookSpecificOutput: {
47
- hookEventName: HOOK_EVENT_NAME,
48
- permissionDecision: DENY_DECISION,
49
- permissionDecisionReason: reason
50
- }
51
- });
52
- }
53
- function rewrite_envelope(updated_input, context) {
54
- return JSON.stringify({
55
- systemMessage: context,
56
- hookSpecificOutput: {
57
- hookEventName: HOOK_EVENT_NAME,
58
- permissionDecision: ALLOW_DECISION,
59
- updatedInput: updated_input,
60
- additionalContext: context
61
- }
62
- });
63
- }
64
- function flow_rewrite_envelope(updated_input, context) {
65
- return JSON.stringify({
66
- systemMessage: context,
67
- hookSpecificOutput: {
68
- hookEventName: HOOK_EVENT_NAME,
69
- updatedInput: updated_input,
70
- additionalContext: context
71
- }
72
- });
73
- }
74
- function notice_envelope(notice) {
75
- return JSON.stringify({
76
- systemMessage: notice,
77
- hookSpecificOutput: { hookEventName: HOOK_EVENT_NAME, additionalContext: notice }
78
- });
79
- }
80
- function stamp_fault(switch_key) {
81
- return `\u26A0 ${switch_key}: the run is past the limit but the refusal stamp could not be written, so this call was allowed rather than refused. Without the stamp a refusal could repeat and wedge the run. Batch the calls that do not need each other anyway, and check the temp directory is writable.`;
82
- }
83
- function is_missing_file(error) {
84
- if (!(error instanceof Error) || !("code" in error)) return false;
85
- return typeof error.code === "string" && error.code === MISSING_FILE;
86
- }
87
- function error_text(error) {
88
- if (error instanceof Error) return error.message;
89
- return typeof error === "string" ? error : "a value that is not an error";
90
- }
91
- function fault_notice(switch_key, error) {
92
- if (is_missing_file(error)) return void 0;
93
- const detail = error_text(error);
94
- return `\u26A0 ${switch_key}: the guard could not read the run's history, so this call was allowed without being checked \u2014 silence here is not evidence that the run is batching. Cause: ${detail}`;
95
- }
96
- function last_refusal_ms(target) {
97
- const raw = stamp_file.read_stamp_text(target);
98
- if (raw === void 0) return NEVER_MS;
99
- return json_value.parse_with(raw, refusal_schema)?.refused_at_ms ?? NEVER_MS;
100
- }
101
- function record_refusal(target, now_ms) {
102
- try {
103
- stamp_file.write_stamp(target, { refused_at_ms: now_ms });
104
- return true;
105
- } catch {
106
- return false;
107
- }
108
- }
109
- function create_refusal_stamp(prefix) {
110
- function path(transcript_path) {
111
- return stamp_file.stamp_path(prefix, transcript_path);
112
- }
113
- return { path, last_ms: last_refusal_ms, record: record_refusal };
114
- }
115
- var { load_environment_file } = josh_environment_file;
116
- var NO_OUTCOME = { reason: void 0, notice: void 0, fault: void 0 };
117
- function fire_once(stamp, run, should_fire, switch_key) {
118
- const target = stamp.path(run.transcript);
119
- if (!should_fire(stamp.last_ms(target))) return { fired: false, fault: void 0 };
120
- if (!stamp.record(target, run.now_ms)) return { fired: false, fault: stamp_fault(switch_key) };
121
- return { fired: true, fault: void 0 };
122
- }
123
- function block_outcome(context) {
124
- const { spec, stamp, tail, call, run } = context;
125
- const result = fire_once(
126
- stamp,
127
- run,
128
- (last_fired_ms) => spec.should_block(tail, call, last_fired_ms, run),
129
- spec.switch_key
130
- );
131
- if (result.fired) return { reason: spec.reason, notice: void 0, fault: void 0 };
132
- return { reason: void 0, notice: void 0, fault: result.fault };
133
- }
134
- function notify_outcome(context) {
135
- const { spec, notify_stamp, tail, call, run } = context;
136
- if (notify_stamp === void 0 || spec.notify === void 0) return NO_OUTCOME;
137
- const { notify } = spec;
138
- const result = fire_once(
139
- notify_stamp,
140
- run,
141
- (last_fired_ms) => notify.should_notify(tail, call, last_fired_ms, run),
142
- spec.switch_key
143
- );
144
- if (result.fired) return { reason: void 0, notice: notify.text(call, tail), fault: void 0 };
145
- return { reason: void 0, notice: void 0, fault: result.fault };
146
- }
147
- function is_clear(outcome) {
148
- return outcome.reason === void 0 && outcome.notice === void 0 && outcome.fault === void 0;
149
- }
150
- function guard_reason_for_payload(parts, payload, now_ms) {
151
- const call = { name: payload.tool_name, input: payload.tool_input };
152
- if (!parts.spec.is_candidate(call)) return NO_OUTCOME;
153
- const transcript = time_hook_transcript.transcript_of(payload.transcript_path, payload.agent_id);
154
- const tail = time_density_hook.read_tail(transcript);
155
- const context = { ...parts, tail, call, run: { transcript, now_ms } };
156
- const blocked = block_outcome(context);
157
- if (!is_clear(blocked)) return blocked;
158
- return notify_outcome(context);
159
- }
160
- function guard_outcome(parts, raw_payload, now_ms) {
161
- const payload = parse_hook_payload(raw_payload);
162
- if (payload === void 0 || !is_switch_enabled(parts.spec.switch_key)) return NO_OUTCOME;
163
- return guard_reason_for_payload(parts, payload, now_ms);
164
- }
165
- function create_transcript_guard(spec) {
166
- const stamp = create_refusal_stamp(spec.prefix);
167
- const notify_stamp = spec.notify ? create_refusal_stamp(spec.notify.prefix) : void 0;
168
- const parts = { spec, stamp, notify_stamp };
169
- function is_enabled() {
170
- return is_switch_enabled(spec.switch_key);
171
- }
172
- function refusal_path(transcript_path) {
173
- return stamp.path(transcript_path);
174
- }
175
- function outcome(raw_payload, now_ms = Date.now()) {
176
- try {
177
- return guard_outcome(parts, raw_payload, now_ms);
178
- } catch (error) {
179
- return { reason: void 0, notice: void 0, fault: fault_notice(spec.switch_key, error) };
180
- }
181
- }
182
- function refusal(raw_payload, now_ms = Date.now()) {
183
- return outcome(raw_payload, now_ms).reason;
184
- }
185
- return { is_enabled, outcome, refusal, refusal_path };
186
- }
187
- function emit_outcome(outcome) {
188
- const { reason, notice, fault } = outcome;
189
- if (reason !== void 0) process.stdout.write(`${deny_envelope(reason)}
190
- `);
191
- else if (notice !== void 0) process.stdout.write(`${notice_envelope(notice)}
192
- `);
193
- else if (fault !== void 0) process.stdout.write(`${notice_envelope(fault)}
194
- `);
195
- }
196
- function write_outcome(raw_payload, outcome) {
197
- load_environment_file();
198
- emit_outcome(outcome(raw_payload));
199
- }
200
- function write_decision(raw_payload, refusal) {
201
- write_outcome(raw_payload, (raw) => ({
202
- reason: refusal(raw),
203
- notice: void 0,
204
- fault: void 0
205
- }));
206
- }
207
- function report_no_payload(command) {
208
- process.stderr.write(
209
- `${command} reads a Claude Code hook payload on stdin; it is not run by hand.
210
- `
211
- );
212
- }
213
- var hook_decision = {
214
- DISABLED_VALUES,
215
- ENABLED_VALUES,
216
- NEVER_MS,
217
- create_refusal_stamp,
218
- create_transcript_guard,
219
- deny_envelope,
220
- emit_outcome,
221
- fault_notice,
222
- flow_rewrite_envelope,
223
- is_switch_enabled,
224
- is_switch_opt_in,
225
- load_environment_file,
226
- notice_envelope,
227
- parse_hook_payload,
228
- report_no_payload,
229
- rewrite_envelope,
230
- stamp_fault,
231
- write_decision,
232
- write_outcome
233
- };
234
-
235
- export {
236
- hook_decision
237
- };
@@ -1,50 +0,0 @@
1
- import {
2
- investigation_reads
3
- } from "./chunk-PTICX4OL.js";
4
- import {
5
- agent_session_role
6
- } from "./chunk-UPUZF3AN.js";
7
- import {
8
- lane_guard_policy
9
- } from "./chunk-JP45SOCJ.js";
10
- import {
11
- hook_decision
12
- } from "./chunk-6TS2JD6D.js";
13
-
14
- // scripts/delegation/investigation-guard.ts
15
- import { text } from "node:stream/consumers";
16
- import { fileURLToPath } from "node:url";
17
- var SWITCH_ENV_KEY = "JOSH_INVESTIGATION_GUARD";
18
- var STAMP_PREFIX = "josh-investigation-guard-";
19
- function should_block(tail, call, refused_at_ms, run) {
20
- if (agent_session_role.is_reviewer() || lane_guard_policy.mode_here("investigation") !== "refuse") {
21
- return false;
22
- }
23
- return investigation_reads.should_block(tail, call, refused_at_ms, run);
24
- }
25
- var GUARD = hook_decision.create_transcript_guard({
26
- prefix: STAMP_PREFIX,
27
- switch_key: SWITCH_ENV_KEY,
28
- is_candidate: investigation_reads.is_refusable_call,
29
- should_block,
30
- reason: investigation_reads.REASON
31
- });
32
- var investigation_refusal = GUARD.refusal;
33
- var investigation_outcome = GUARD.outcome;
34
- var { is_enabled, refusal_path } = GUARD;
35
- var { deny_envelope, load_environment_file, DISABLED_VALUES } = hook_decision;
36
- if (process.argv[1] === fileURLToPath(import.meta.url)) {
37
- if (process.stdin.isTTY) hook_decision.report_no_payload("investigation:guard");
38
- else hook_decision.write_outcome(await text(process.stdin), investigation_outcome);
39
- }
40
-
41
- export {
42
- SWITCH_ENV_KEY,
43
- investigation_refusal,
44
- investigation_outcome,
45
- is_enabled,
46
- refusal_path,
47
- deny_envelope,
48
- load_environment_file,
49
- DISABLED_VALUES
50
- };
@@ -1,79 +0,0 @@
1
- import {
2
- lane_guard_policy
3
- } from "./chunk-JP45SOCJ.js";
4
- import {
5
- hook_decision
6
- } from "./chunk-6TS2JD6D.js";
7
- import {
8
- time_batch_guard
9
- } from "./chunk-TNUMY6NL.js";
10
-
11
- // scripts/hooks/batch-guard.ts
12
- import { text } from "node:stream/consumers";
13
- import { fileURLToPath } from "node:url";
14
- var SWITCH_ENV_KEY = "JOSH_BATCH_GUARD";
15
- function is_batch_candidate(call) {
16
- return time_batch_guard.is_guarded_call(call) || time_batch_guard.is_notice_call(call);
17
- }
18
- function batching_mode() {
19
- return lane_guard_policy.mode_here("batching");
20
- }
21
- function is_candidate(call) {
22
- return is_batch_candidate(call) && batching_mode() !== "off";
23
- }
24
- function should_block_here(tail, call, refused_at_ms) {
25
- if (batching_mode() !== "refuse") return false;
26
- return time_batch_guard.should_block(tail, call, refused_at_ms);
27
- }
28
- function should_notify_here(tail, call, notified_at_ms) {
29
- if (time_batch_guard.should_notify(tail, call, notified_at_ms)) return true;
30
- if (batching_mode() !== "notice") return false;
31
- return time_batch_guard.should_block(
32
- tail,
33
- call,
34
- notified_at_ms,
35
- time_batch_guard.NOTICE_REFIRE_EVERY
36
- );
37
- }
38
- function notice_text(call, tail) {
39
- const base = time_batch_guard.is_notice_call(call) ? time_batch_guard.NOTICE : time_batch_guard.LANE_NOTICE;
40
- return `${base}${time_batch_guard.recent_candidates(tail)}`;
41
- }
42
- var GUARD = hook_decision.create_transcript_guard({
43
- prefix: time_batch_guard.STAMP_PREFIX,
44
- switch_key: SWITCH_ENV_KEY,
45
- is_candidate,
46
- should_block: should_block_here,
47
- reason: time_batch_guard.REASON,
48
- // The whole-file write is notified rather than refused, on a record of its own so it never spends
49
- // the refusal's stamp; the lane-child refusable-call notice kit#2164 added
50
- // here fires again since kit#2276 restored batching to `notice` in a lane child.
51
- notify: {
52
- prefix: time_batch_guard.NOTICE_STAMP_PREFIX,
53
- should_notify: should_notify_here,
54
- text: notice_text
55
- }
56
- });
57
- var batch_refusal = GUARD.refusal;
58
- var batch_outcome = GUARD.outcome;
59
- var { is_enabled, refusal_path } = GUARD;
60
- var notice_refusal_path = hook_decision.create_refusal_stamp(
61
- time_batch_guard.NOTICE_STAMP_PREFIX
62
- ).path;
63
- var { deny_envelope, load_environment_file, DISABLED_VALUES } = hook_decision;
64
- if (process.argv[1] === fileURLToPath(import.meta.url)) {
65
- if (process.stdin.isTTY) hook_decision.report_no_payload("batch:guard");
66
- else hook_decision.write_outcome(await text(process.stdin), batch_outcome);
67
- }
68
-
69
- export {
70
- SWITCH_ENV_KEY,
71
- batch_refusal,
72
- batch_outcome,
73
- is_enabled,
74
- refusal_path,
75
- notice_refusal_path,
76
- deny_envelope,
77
- load_environment_file,
78
- DISABLED_VALUES
79
- };
@@ -1,15 +0,0 @@
1
- // scripts/lib/error-message.ts
2
- function message_of(error) {
3
- return error instanceof Error ? error.message : String(error);
4
- }
5
- var DEBUG_ENV_KEY = "JOSH_DEBUG";
6
- function trace_swallowed(where, error) {
7
- if ((process.env[DEBUG_ENV_KEY] ?? "").trim() === "") return;
8
- process.stderr.write(`josh debug: ${where}: ${message_of(error)}
9
- `);
10
- }
11
- var error_text = { message_of, trace_swallowed };
12
-
13
- export {
14
- error_text
15
- };
@@ -1,81 +0,0 @@
1
- import {
2
- ancestor_directories
3
- } from "./chunk-GP4IEC4O.js";
4
-
5
- // scripts/build/local-bin.ts
6
- import { existsSync, readFileSync } from "node:fs";
7
- import { createRequire } from "node:module";
8
- import path from "node:path";
9
-
10
- // scripts/lib/schemas.ts
11
- import { z } from "zod";
12
- var overrides_snapshot_schema = z.record(z.string(), z.string());
13
- var package_version_schema = z.object({ version: z.string() });
14
- var package_named_version_schema = z.looseObject({ name: z.string(), version: z.string() });
15
- var package_with_version_schema = z.looseObject({ version: z.string() });
16
- var ls_global_dependency_schema = z.looseObject({ version: z.string() });
17
- var ls_global_dependencies_schema = z.record(z.string(), ls_global_dependency_schema).optional();
18
- var pnpm_ls_global_schema = z.array(
19
- z.looseObject({
20
- dependencies: ls_global_dependencies_schema
21
- })
22
- );
23
- var vscode_settings_schema = z.record(z.string(), z.unknown());
24
- var with_scripts_schema = z.looseObject({
25
- scripts: z.record(z.string(), z.string()).optional()
26
- });
27
- var with_development_deps_schema = z.looseObject({
28
- devDependencies: z.record(z.string(), z.string()).optional()
29
- });
30
- var with_package_manager_schema = z.looseObject({
31
- packageManager: z.string().optional()
32
- });
33
- var with_development_engine_schema = z.looseObject({
34
- devEngines: z.record(z.string(), z.unknown()).optional()
35
- });
36
- var bin_entry_schema = z.union([z.string(), z.record(z.string(), z.string())]).optional();
37
- var package_bin_schema = z.looseObject({ bin: bin_entry_schema });
38
- var json_object_schema = z.record(z.string(), z.unknown());
39
- var string_array_schema = z.array(z.string());
40
- var string_record_schema = z.record(z.string(), z.string());
41
-
42
- // scripts/build/local-bin.ts
43
- var NODE_MODULES = "node_modules";
44
- var BIN_DIR = ".bin";
45
- var WINDOWS_PLATFORM = "win32";
46
- var WINDOWS_SHIM_SUFFIX = ".cmd";
47
- var PACKAGE_JSON = "package.json";
48
- function resolve_local_bin(project_root, bin_name) {
49
- const shim = process.platform === WINDOWS_PLATFORM ? `${bin_name}${WINDOWS_SHIM_SUFFIX}` : bin_name;
50
- return path.join(project_root, NODE_MODULES, BIN_DIR, shim);
51
- }
52
- function find_local_bin_upwards(start_directory, bin_name) {
53
- return ancestor_directories.list(start_directory).map((directory) => resolve_local_bin(directory, bin_name)).find((candidate) => existsSync(candidate));
54
- }
55
- function read_bin_entry(manifest_path, package_name, bin_name) {
56
- const { bin } = package_bin_schema.parse(JSON.parse(readFileSync(manifest_path, "utf8")));
57
- if (typeof bin === "string") return bin_name === path.basename(package_name) ? bin : void 0;
58
- return bin?.[bin_name];
59
- }
60
- function resolve_package_bin(base_directory, package_name, bin_name) {
61
- try {
62
- const resolve_from = createRequire(path.join(base_directory, PACKAGE_JSON));
63
- const manifest_path = resolve_from.resolve(`${package_name}/${PACKAGE_JSON}`);
64
- const bin_entry = read_bin_entry(manifest_path, package_name, bin_name);
65
- if (bin_entry === void 0) return void 0;
66
- const cli_entry = path.join(path.dirname(manifest_path), bin_entry);
67
- return existsSync(cli_entry) ? cli_entry : void 0;
68
- } catch {
69
- return void 0;
70
- }
71
- }
72
-
73
- export {
74
- vscode_settings_schema,
75
- json_object_schema,
76
- string_array_schema,
77
- string_record_schema,
78
- resolve_local_bin,
79
- find_local_bin_upwards,
80
- resolve_package_bin
81
- };
@@ -1,20 +0,0 @@
1
- // scripts/lib/ancestor-directories.ts
2
- import path from "node:path";
3
- var MAX_DEPTH = 64;
4
- function list(start_directory) {
5
- const directories = [];
6
- let current = path.resolve(start_directory);
7
- while (directories.length < MAX_DEPTH && !directories.includes(current)) {
8
- directories.push(current);
9
- current = path.dirname(current);
10
- }
11
- return directories;
12
- }
13
- function nearest(start_directory, is_match) {
14
- return list(start_directory).find((directory) => is_match(directory));
15
- }
16
- var ancestor_directories = { list, nearest };
17
-
18
- export {
19
- ancestor_directories
20
- };
@@ -1,56 +0,0 @@
1
- import {
2
- lane_child_marker
3
- } from "./chunk-LAOV7NLM.js";
4
-
5
- // scripts/lane/lane-guard-policy.ts
6
- var DEFAULT_MODE = "refuse";
7
- var OFF_MODE = "off";
8
- var LANE_GUARD_POLICY = [
9
- {
10
- id: "investigation",
11
- mode_in_lane_child: "refuse",
12
- because: "the notice was measured not to move the reading \u2014 52% of lane cost stayed in main-line exploration \u2014 and the refusal fires once per accumulation, a round trip the child survives as it survives the rule row, so the child is refused like the main line"
13
- },
14
- {
15
- id: "batching",
16
- mode_in_lane_child: "off",
17
- because: "a refusal ends a child turn and every advisory notice was measured not to move the call density, so the guard is off and the density stays readable through `josh time:density`"
18
- },
19
- {
20
- id: "duplicate-read",
21
- mode_in_lane_child: "notice",
22
- because: "a refusal ends a child turn, yet unchanged re-reads are measured in lane children above all, so the child is nudged to scroll up to the earlier read by a notice rather than killed"
23
- },
24
- {
25
- id: "rule",
26
- mode_in_lane_child: "refuse",
27
- because: "it carries the lane-only rules a child depends on (`pre-gate-cut`, `implementation-cut`, `lane-park`) and the safety rules it must still obey, and a notice was rejected despite the collateral a refusal costs a batched sibling, because a cut carried as prose was measured never to fire"
28
- }
29
- ];
30
- var KNOWN_GUARD_IDS = LANE_GUARD_POLICY.map((entry) => entry.id);
31
- function entry_for(id) {
32
- return LANE_GUARD_POLICY.find((entry) => entry.id === id.trim());
33
- }
34
- function mode_in_lane_child(id) {
35
- return entry_for(id)?.mode_in_lane_child ?? DEFAULT_MODE;
36
- }
37
- function mode_here(id, directory = process.cwd(), source = process.env) {
38
- const lane_mode = mode_in_lane_child(id);
39
- if (lane_mode === DEFAULT_MODE) return DEFAULT_MODE;
40
- return lane_child_marker.is_child_of(directory, source) ? lane_mode : DEFAULT_MODE;
41
- }
42
- function is_suppressed_here(id, directory = process.cwd(), source = process.env) {
43
- return mode_here(id, directory, source) === OFF_MODE;
44
- }
45
- var lane_guard_policy = {
46
- LANE_GUARD_POLICY,
47
- KNOWN_GUARD_IDS,
48
- entry_for,
49
- mode_in_lane_child,
50
- mode_here,
51
- is_suppressed_here
52
- };
53
-
54
- export {
55
- lane_guard_policy
56
- };