@joshuafolkken/kit 1.1784.0 → 1.2116.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 (690) hide show
  1. package/.claude/agents/reviewer-verification.md +19 -0
  2. package/.claude/agents/reviewer.md +19 -0
  3. package/.claude/settings.json +5 -6
  4. package/.claude/skills/dependency-update/SKILL.md +9 -10
  5. package/.claude/skills/workflow-commands/SKILL.md +6 -6
  6. package/.claude/skills/workflow-commands/background-commands.md +8 -5
  7. package/.claude/skills/workflow-commands/backlogrun-child.md +3 -1
  8. package/.claude/skills/workflow-commands/backlogrun-lanes.md +1 -1
  9. package/.claude/skills/workflow-commands/backlogrun-park.md +5 -2
  10. package/.claude/skills/workflow-commands/backlogrun-progress.md +2 -3
  11. package/.claude/skills/workflow-commands/backlogrun-recovery.md +1 -1
  12. package/.claude/skills/workflow-commands/backlogrun-steps.md +3 -2
  13. package/.claude/skills/workflow-commands/backlogrun.md +1 -1
  14. package/.claude/skills/workflow-commands/chain-rule.md +41 -32
  15. package/.claude/skills/workflow-commands/delegation.md +6 -6
  16. package/.claude/skills/workflow-commands/entry-sequence.md +2 -2
  17. package/.claude/skills/workflow-commands/followup.md +7 -5
  18. package/.claude/skills/workflow-commands/fullrun-steps.md +6 -6
  19. package/.claude/skills/workflow-commands/fullrun.md +1 -1
  20. package/.claude/skills/workflow-commands/issue-comments.md +9 -4
  21. package/.claude/skills/workflow-commands/issue-fold-existing.md +2 -1
  22. package/.claude/skills/workflow-commands/kickoff.md +2 -2
  23. package/.claude/skills/workflow-commands/observation-filing.md +1 -1
  24. package/.claude/skills/workflow-commands/observation-ledger.md +6 -4
  25. package/.claude/skills/workflow-commands/pre-gate-cut.md +9 -7
  26. package/.claude/skills/workflow-commands/prerequisite.md +3 -2
  27. package/.claude/skills/workflow-commands/retrospective.md +2 -2
  28. package/.claude/skills/workflow-commands/split-assessment.md +7 -5
  29. package/.codex/hooks.json +5 -5
  30. package/.github/actions/setup-pnpm/action.yml +9 -16
  31. package/.github/dependabot.yml +16 -0
  32. package/.github/workflows/auto-tag.yml +45 -0
  33. package/.github/workflows/ci.yml +155 -15
  34. package/.github/workflows/dependabot-auto-merge.yml +63 -4
  35. package/.github/workflows/production.yml +8 -0
  36. package/.github/workflows/publish.yml +60 -45
  37. package/.vscode/settings.json +19 -0
  38. package/CLAUDE.md +5 -12
  39. package/SECURITY.md +2 -2
  40. package/dist/CLAUDE.md +5 -12
  41. package/dist/commands/document-read-cli.js +2 -1
  42. package/dist/commands/document-section-main.js +2 -1
  43. package/dist/commands/read-set-cli.js +194 -134
  44. package/dist/commands/run-prep-main.js +9694 -10173
  45. package/dist/commands/run-step-cli.js +22138 -18285
  46. package/dist/hooks/audit-provision.js +23 -5
  47. package/dist/hooks/chunk-3GKE653K.js +6204 -0
  48. package/dist/hooks/chunk-45CJJOO7.js +1243 -0
  49. package/dist/hooks/{chunk-CWMBGKYW.js → chunk-5PM2JRGV.js} +2153 -856
  50. package/dist/hooks/{chunk-WR2KQAYZ.js → chunk-7SIUNQXK.js} +1207 -1470
  51. package/dist/hooks/{chunk-O2YBIDSI.js → chunk-CQD4LJE6.js} +1682 -1130
  52. package/dist/hooks/{chunk-VWWCFGWK.js → chunk-OPSRGWFU.js} +1 -1
  53. package/dist/hooks/{chunk-XGBNSWEI.js → chunk-UJ3FPMMM.js} +132 -49
  54. package/dist/hooks/chunk-VVNYJWEI.js +30 -0
  55. package/dist/hooks/chunk-Z6DQJKH3.js +2806 -0
  56. package/dist/hooks/codex-hook-adapter.js +8 -8
  57. package/dist/hooks/format-edited.js +4 -5
  58. package/dist/hooks/inputs.json +386 -360
  59. package/dist/hooks/pretool-guard.js +7 -6
  60. package/dist/hooks/session-lang.js +101 -258
  61. package/dist/hooks/stop-guard.js +1744 -2576
  62. package/dist/josh.js +7133 -6368
  63. package/dist/version/index.js +161 -1
  64. package/eslint/rules/comment-why-only.js +108 -0
  65. package/package.json +16 -9
  66. package/prompts/coding-standards.md +1 -1
  67. package/prompts/collaboration-workflow/file-edits.md +14 -11
  68. package/prompts/collaboration-workflow/issue-citation.md +0 -4
  69. package/prompts/collaboration-workflow/issue-template.md +40 -21
  70. package/prompts/collaboration-workflow/lane-instructions.md +3 -1
  71. package/prompts/collaboration-workflow/measurement.md +8 -1
  72. package/prompts/collaboration-workflow/operating-rules.md +11 -2
  73. package/prompts/collaboration-workflow/output-bounds.md +6 -2
  74. package/prompts/collaboration-workflow/plan-comment.md +1 -1
  75. package/prompts/collaboration-workflow/principles.md +9 -0
  76. package/prompts/collaboration-workflow/residency.md +3 -2
  77. package/prompts/collaboration-workflow/rule-delivery.md +13 -1
  78. package/prompts/collaboration-workflow/upstream-interrupt.md +2 -2
  79. package/prompts/collaboration-workflow/wip-cap.md +3 -1
  80. package/prompts/review-rubric.md +8 -0
  81. package/prompts/review.md +31 -22
  82. package/prompts/testing-guide.md +1 -0
  83. package/scripts/agent/agent-argv.ts +14 -16
  84. package/scripts/agent/agent-provider.ts +138 -0
  85. package/scripts/agent/agent-role-profile.ts +108 -156
  86. package/scripts/agent/agent-safe-text.ts +20 -5
  87. package/scripts/agent/api-usage-limit.ts +65 -0
  88. package/scripts/agent/claude-agent-argv.ts +19 -9
  89. package/scripts/agent/codex-agent-argv.ts +118 -22
  90. package/scripts/agent/usage-limit-reset.ts +179 -0
  91. package/scripts/auth/claude-token-output.ts +2 -2
  92. package/scripts/auto-ok/auto-ok-author.ts +53 -0
  93. package/scripts/auto-ok/auto-ok-cli.ts +20 -9
  94. package/scripts/backlog/backlog-defect-priority.ts +1 -1
  95. package/scripts/backlog/backlog-drive-cli.ts +6 -1
  96. package/scripts/backlog/backlog-drive-hold.ts +3 -3
  97. package/scripts/backlog/backlog-drive-idle.ts +10 -0
  98. package/scripts/backlog/backlog-drive-launch-pass.ts +90 -0
  99. package/scripts/backlog/backlog-drive-launch.ts +8 -2
  100. package/scripts/backlog/backlog-drive-named-offer.ts +73 -30
  101. package/scripts/backlog/backlog-drive-named.ts +28 -7
  102. package/scripts/backlog/backlog-drive-paused.ts +5 -4
  103. package/scripts/backlog/backlog-drive-restore.ts +11 -3
  104. package/scripts/backlog/backlog-drive.ts +21 -60
  105. package/scripts/backlog/backlog-gate-scope.ts +61 -0
  106. package/scripts/backlog/backlog-measure-close.ts +112 -0
  107. package/scripts/backlog/backlog-next.ts +39 -49
  108. package/scripts/backlog/backlog-occupied.ts +2 -2
  109. package/scripts/backlog/backlog-overlap.ts +42 -8
  110. package/scripts/backlog/backlog-plan-cli.ts +4 -1
  111. package/scripts/backlog/backlog-plan-comment.ts +81 -0
  112. package/scripts/backlog/backlog-plan-read.ts +19 -6
  113. package/scripts/backlog/backlog-pool.ts +50 -12
  114. package/scripts/backlog/backlog-rank.ts +60 -13
  115. package/scripts/backlog/backlog-stalled-detect.ts +2 -1
  116. package/scripts/backlog/backlog-waves.ts +17 -2
  117. package/scripts/backlog/backlogrun-launch.ts +7 -4
  118. package/scripts/cost-runtime/context-cut-payback.ts +27 -25
  119. package/scripts/cost-runtime/cost-cli.ts +37 -16
  120. package/scripts/cost-runtime/cost-pricing.ts +9 -0
  121. package/scripts/cost-runtime/cost-verdict.ts +4 -1
  122. package/scripts/delegation/delegation-policy.ts +2 -2
  123. package/scripts/delegation/duplicate-read-guard.ts +1 -0
  124. package/scripts/delegation/investigation-guard.ts +14 -2
  125. package/scripts/delegation/investigation-reads.ts +45 -23
  126. package/scripts/dependabot/dependabot-cooldown.ts +3 -2
  127. package/scripts/discovery/repo-party.ts +80 -20
  128. package/scripts/discovery/session-owner-pin.ts +51 -0
  129. package/scripts/document/capped-print.ts +1 -1
  130. package/scripts/document/command-reference-line-budget.ts +42 -0
  131. package/scripts/document/document-byte-budget.ts +17 -7
  132. package/scripts/document/document-checks.ts +20 -0
  133. package/scripts/document/document-ratchet-check.ts +101 -0
  134. package/scripts/document/document-section.ts +1 -0
  135. package/scripts/document/entry-read-budget.ts +7 -3
  136. package/scripts/document/issue-citation-budget.ts +94 -0
  137. package/scripts/epic/epic-cli-argv.ts +2 -2
  138. package/scripts/epic/epic-fetch.ts +4 -2
  139. package/scripts/epic/epic-graph.ts +7 -2
  140. package/scripts/epic/epic-issue.ts +3 -1
  141. package/scripts/epic/epic-rank.ts +5 -0
  142. package/scripts/exports/unused-members-check.ts +62 -0
  143. package/scripts/exports/unused-members-cli.ts +6 -51
  144. package/scripts/followup/followup-ci-path.ts +67 -0
  145. package/scripts/followup/followup-coderabbit-retrigger.ts +261 -0
  146. package/scripts/followup/followup-coderabbit-wait.ts +13 -10
  147. package/scripts/followup/followup-failed-tests.ts +160 -0
  148. package/scripts/followup/followup-job-needs.ts +100 -0
  149. package/scripts/followup/followup-job-rerun.ts +303 -0
  150. package/scripts/followup/followup-main-move.ts +113 -0
  151. package/scripts/followup/git-followup-finish.ts +43 -11
  152. package/scripts/followup/git-followup-pending.ts +3 -3
  153. package/scripts/followup/git-followup-stages.ts +41 -11
  154. package/scripts/followup/git-pr-followup-checks.ts +55 -16
  155. package/scripts/followup/git-pr-followup-wrapup.ts +24 -5
  156. package/scripts/followup/git-pr-followup.ts +62 -27
  157. package/scripts/fresh-machine/fresh-machine-script.ts +5 -9
  158. package/scripts/fresh-machine/specs/kit-test-backlogrun-python.json +2 -2
  159. package/scripts/fresh-machine/specs/kit-test-backlogrun.json +2 -2
  160. package/scripts/gate/busy-average.ts +34 -2
  161. package/scripts/gate/check-related-pinned.ts +43 -0
  162. package/scripts/gate/check-related-reuse.ts +64 -0
  163. package/scripts/gate/check-related-section.ts +57 -0
  164. package/scripts/gate/check-related-unplanned.ts +34 -0
  165. package/scripts/gate/check-related.ts +265 -0
  166. package/scripts/gate/command-memory.ts +1 -1
  167. package/scripts/gate/core-admission.ts +24 -6
  168. package/scripts/gate/core-budget-timing.ts +20 -6
  169. package/scripts/gate/core-budget.ts +40 -11
  170. package/scripts/gate/core-wait-record.ts +3 -2
  171. package/scripts/gate/core-wait.ts +25 -2
  172. package/scripts/gate/core-weights.ts +15 -7
  173. package/scripts/gate/gate-labels.ts +46 -0
  174. package/scripts/gate/gate-ledger.ts +14 -6
  175. package/scripts/gate/gate-plan.ts +103 -58
  176. package/scripts/gate/gate-report.ts +9 -7
  177. package/scripts/gate/gate-run-steps.ts +26 -3
  178. package/scripts/gate/gate-skip.ts +45 -6
  179. package/scripts/gate/gate-static-group.ts +60 -0
  180. package/scripts/gate/gate-steps.ts +2 -1
  181. package/scripts/gate/gate-tree.ts +4 -2
  182. package/scripts/gate/hook-gate-reuse.ts +19 -2
  183. package/scripts/gate/metrics-totals.ts +59 -0
  184. package/scripts/gate/scoped-green.ts +68 -15
  185. package/scripts/gate/since-green.ts +14 -6
  186. package/scripts/gate/structural-checks.ts +96 -0
  187. package/scripts/gate/verification-gate.ts +51 -16
  188. package/scripts/gate/verification-inputs.ts +21 -6
  189. package/scripts/gate/verification-tail.ts +52 -0
  190. package/scripts/gh/gh-author-association.ts +23 -2
  191. package/scripts/gh/git-ai-review-scan.ts +1 -1
  192. package/scripts/gh/git-gh-api-path.ts +12 -3
  193. package/scripts/gh/git-gh-comments-unreadable.ts +36 -0
  194. package/scripts/gh/git-gh-exec.ts +32 -2
  195. package/scripts/gh/git-gh-issue-read.ts +4 -2
  196. package/scripts/gh/git-gh-issue-rest.ts +1 -0
  197. package/scripts/gh/git-gh-issue-write.ts +8 -2
  198. package/scripts/gh/git-gh-issue.ts +12 -5
  199. package/scripts/gh/git-gh-pr-auto-merge.ts +13 -6
  200. package/scripts/gh/git-gh-pr-graphql-state.ts +56 -0
  201. package/scripts/gh/git-gh-pr-read.ts +74 -13
  202. package/scripts/gh/git-gh-pr-rest.ts +3 -1
  203. package/scripts/gh/git-gh-pr-snapshot.ts +22 -7
  204. package/scripts/gh/git-gh-pr-too-large.ts +20 -0
  205. package/scripts/gh/git-gh-pr.ts +21 -7
  206. package/scripts/gh/git-gh-retry.ts +141 -0
  207. package/scripts/gh/git-pr-ai-review.ts +15 -6
  208. package/scripts/gh/git-pr-checks-eval.ts +3 -0
  209. package/scripts/gh/git-pr-checks.ts +5 -5
  210. package/scripts/git/base-tree.ts +30 -0
  211. package/scripts/git/change-base.ts +4 -10
  212. package/scripts/git/changed-paths-sync.ts +63 -0
  213. package/scripts/git/changed-paths.ts +16 -1
  214. package/scripts/git/git-common-directory.ts +11 -1
  215. package/scripts/git/git-diff-reads.ts +66 -20
  216. package/scripts/git/git-error.ts +9 -2
  217. package/scripts/git/git-schemas.ts +13 -0
  218. package/scripts/git/git-worktree.ts +13 -0
  219. package/scripts/git/gone-branch.ts +4 -1
  220. package/scripts/git/main-merge-budget-conflict.ts +89 -0
  221. package/scripts/git/main-merge-guard.ts +55 -18
  222. package/scripts/git/main-merge-regenerate.ts +59 -25
  223. package/scripts/git/main-merge.ts +53 -5
  224. package/scripts/git/no-base-checkout.ts +127 -0
  225. package/scripts/git/stash/git-stash.ts +11 -2
  226. package/scripts/git/stash/stash-push-cli.ts +10 -0
  227. package/scripts/hooks/batch-guard.ts +40 -21
  228. package/scripts/hooks/edited-cspell.ts +37 -11
  229. package/scripts/hooks/format-edited-file.ts +22 -2
  230. package/scripts/hooks/lane-plan-guard.ts +50 -0
  231. package/scripts/hooks/pre-commit-lint-switch.ts +9 -0
  232. package/scripts/hooks/pre-commit-lint.ts +14 -1
  233. package/scripts/hooks/pre-push-related-switch.ts +10 -0
  234. package/scripts/hooks/pre-push-unit.ts +76 -10
  235. package/scripts/hooks/pretool-guard.ts +2 -0
  236. package/scripts/hooks/reserved-run.ts +14 -1
  237. package/scripts/hooks/run-hook.sh +23 -8
  238. package/scripts/hooks/step-zero-notice.ts +6 -1
  239. package/scripts/hooks/stop-actions.ts +3 -15
  240. package/scripts/hooks/stop-guard.ts +7 -6
  241. package/scripts/init/distributed-paths.ts +1 -0
  242. package/scripts/init/hook-command-rewrite.ts +5 -1
  243. package/scripts/init/hook-launch.ts +4 -2
  244. package/scripts/issue/aggregation-split.ts +52 -0
  245. package/scripts/issue/defect-origin-line.ts +19 -1
  246. package/scripts/issue/defect-rate-cli.ts +5 -102
  247. package/scripts/issue/defect-report.ts +4 -4
  248. package/scripts/issue/effect-audit-cli.ts +178 -0
  249. package/scripts/issue/effect-audit.ts +185 -0
  250. package/scripts/issue/expected-effect-lint.ts +64 -9
  251. package/scripts/issue/git-next-issues.ts +5 -0
  252. package/scripts/issue/issue-body-or-comment.ts +38 -4
  253. package/scripts/issue/issue-cite-cli.ts +1 -3
  254. package/scripts/issue/issue-classification.ts +1 -0
  255. package/scripts/issue/issue-closing-pr.ts +8 -1
  256. package/scripts/issue/issue-evidence-exit.ts +4 -2
  257. package/scripts/issue/issue-file-cap.ts +58 -0
  258. package/scripts/issue/issue-file-cli.ts +111 -38
  259. package/scripts/issue/issue-file-deferral.ts +52 -0
  260. package/scripts/issue/issue-file-fold.ts +29 -10
  261. package/scripts/issue/issue-file-interrupt.ts +85 -0
  262. package/scripts/issue/issue-file-lane-hint.ts +30 -0
  263. package/scripts/issue/issue-file.ts +43 -6
  264. package/scripts/issue/issue-labels.ts +19 -2
  265. package/scripts/issue/issue-lint-cli.ts +27 -2
  266. package/scripts/issue/issue-measured-cli.ts +13 -35
  267. package/scripts/issue/issue-measured-close.ts +58 -0
  268. package/scripts/issue/issue-not-before-label.ts +2 -2
  269. package/scripts/issue/issue-not-before.ts +4 -1
  270. package/scripts/issue/issue-priority-cli.ts +60 -0
  271. package/scripts/issue/issue-priority-raise.ts +55 -0
  272. package/scripts/issue/issue-priority.ts +174 -43
  273. package/scripts/issue/issue-rank.ts +21 -4
  274. package/scripts/issue/issue-read-cli.ts +32 -6
  275. package/scripts/issue/issue-read.ts +37 -12
  276. package/scripts/issue/issue-sample-gate.ts +95 -74
  277. package/scripts/issue/issue-sample-prime.ts +127 -0
  278. package/scripts/issue/issue-sample-required.ts +57 -0
  279. package/scripts/issue/issue-sample-source.ts +12 -11
  280. package/scripts/issue/issue-search.ts +124 -0
  281. package/scripts/issue/issue-state.ts +13 -1
  282. package/scripts/issue/issue-template-section.ts +43 -0
  283. package/scripts/issue/issue-watch-diff.ts +31 -1
  284. package/scripts/issue/issue-watch-hook.ts +11 -2
  285. package/scripts/issue/issue-watch.ts +55 -12
  286. package/scripts/issue/markdown-section.ts +1 -0
  287. package/scripts/issue/measure-declaration.ts +121 -0
  288. package/scripts/issue/measure-rerun-cli.ts +7 -70
  289. package/scripts/issue/plan-consumers-section.ts +22 -1
  290. package/scripts/issue/reproduction-measure.ts +3 -1
  291. package/scripts/issue/size-estimate.ts +90 -0
  292. package/scripts/issue/trusted-measure.ts +84 -0
  293. package/scripts/josh/command-usage.ts +3 -2
  294. package/scripts/josh/durable-state-migrate.ts +105 -0
  295. package/scripts/josh/durable-state.ts +112 -0
  296. package/scripts/josh/josh-aliases.ts +95 -0
  297. package/scripts/josh/josh-command-map.ts +1 -82
  298. package/scripts/josh/josh-commands-agent-hooks.ts +6 -6
  299. package/scripts/josh/josh-commands-ai.ts +5 -5
  300. package/scripts/josh/josh-commands-development.ts +59 -58
  301. package/scripts/josh/josh-commands-issue-write.ts +23 -4
  302. package/scripts/josh/josh-commands-issue.ts +32 -0
  303. package/scripts/josh/josh-commands-lane.ts +87 -4
  304. package/scripts/josh/josh-commands-lint.ts +16 -3
  305. package/scripts/josh/josh-commands-maintenance.ts +15 -0
  306. package/scripts/josh/josh-commands-review.ts +41 -6
  307. package/scripts/josh/josh-commands-ship.ts +56 -8
  308. package/scripts/josh/josh-commands-test-check.ts +80 -0
  309. package/scripts/josh/josh-commands-workflow.ts +1 -1
  310. package/scripts/josh/josh-environment-file.ts +43 -3
  311. package/scripts/josh/josh-in-process.ts +2 -2
  312. package/scripts/josh/josh-logic.ts +5 -3
  313. package/scripts/josh/josh-run.ts +19 -1
  314. package/scripts/josh/run-record-path.ts +15 -0
  315. package/scripts/josh/stamp-file.ts +11 -2
  316. package/scripts/lane/lane-adopt-cli.ts +98 -0
  317. package/scripts/lane/lane-adopt.ts +208 -0
  318. package/scripts/lane/lane-await.ts +5 -8
  319. package/scripts/lane/lane-baseline.ts +123 -0
  320. package/scripts/lane/lane-breakdown-cli.ts +64 -0
  321. package/scripts/lane/lane-breakdown-implement.ts +170 -0
  322. package/scripts/lane/lane-breakdown-laps.ts +107 -0
  323. package/scripts/lane/lane-breakdown-pinned.ts +76 -0
  324. package/scripts/lane/lane-breakdown-text.ts +145 -0
  325. package/scripts/lane/lane-breakdown.ts +239 -0
  326. package/scripts/lane/lane-check-stats.ts +29 -8
  327. package/scripts/lane/lane-child-invocation.ts +9 -2
  328. package/scripts/lane/lane-child-mark-keys.ts +12 -0
  329. package/scripts/lane/lane-child-marker.ts +20 -1
  330. package/scripts/lane/lane-ci-path-stats.ts +73 -0
  331. package/scripts/lane/lane-claim-stats.ts +84 -0
  332. package/scripts/lane/lane-close.ts +8 -3
  333. package/scripts/lane/lane-dispatch-log.ts +3 -3
  334. package/scripts/lane/lane-dispatch.ts +2 -2
  335. package/scripts/lane/lane-gap-stats.ts +7 -6
  336. package/scripts/lane/lane-guard-policy.ts +7 -1
  337. package/scripts/lane/lane-implement-stats.ts +207 -0
  338. package/scripts/lane/lane-implement-subagents.ts +90 -0
  339. package/scripts/lane/lane-investigation-switch.ts +16 -0
  340. package/scripts/lane/lane-ledger-kind.ts +31 -0
  341. package/scripts/lane/lane-ledger-schema-ship.ts +49 -0
  342. package/scripts/lane/lane-ledger-schema.ts +119 -36
  343. package/scripts/lane/lane-ledger-write.ts +257 -0
  344. package/scripts/lane/lane-ledger.ts +31 -177
  345. package/scripts/lane/lane-load.ts +1 -1
  346. package/scripts/lane/lane-measure-cli.ts +176 -59
  347. package/scripts/lane/lane-net-read.ts +44 -0
  348. package/scripts/lane/lane-net-time.ts +212 -0
  349. package/scripts/lane/lane-open.ts +16 -7
  350. package/scripts/lane/lane-output.ts +2 -4
  351. package/scripts/lane/lane-overrun-prompt.ts +147 -0
  352. package/scripts/lane/lane-overrun.ts +274 -0
  353. package/scripts/lane/lane-paths.ts +24 -1
  354. package/scripts/lane/lane-pause-cli.ts +4 -1
  355. package/scripts/lane/lane-paused-spans.ts +97 -0
  356. package/scripts/lane/lane-plan-check.ts +207 -0
  357. package/scripts/lane/lane-plan-cli.ts +41 -0
  358. package/scripts/lane/lane-plan.ts +144 -0
  359. package/scripts/lane/lane-registry.ts +14 -1
  360. package/scripts/lane/lane-relaunch.ts +1 -1
  361. package/scripts/lane/lane-round-one-stats.ts +51 -0
  362. package/scripts/lane/lane-sampler.ts +23 -4
  363. package/scripts/lane/lane-session-action.ts +93 -18
  364. package/scripts/lane/lane-session-broker.ts +49 -21
  365. package/scripts/lane/lane-session-reread-main.ts +14 -0
  366. package/scripts/lane/lane-session-reread.ts +51 -0
  367. package/scripts/lane/lane-ship-lap-stats.ts +74 -0
  368. package/scripts/lane/lane-sleep.ts +58 -0
  369. package/scripts/lane/lane-spent.ts +1 -1
  370. package/scripts/lane/lane-split-stats.ts +28 -0
  371. package/scripts/lane/lane-stage-stats.ts +13 -1
  372. package/scripts/lane/lane-state.ts +41 -9
  373. package/scripts/lane/lane-stats-tables.ts +58 -0
  374. package/scripts/lane/lane-stats.ts +21 -5
  375. package/scripts/lane/lane-stop-stats.ts +51 -19
  376. package/scripts/lane/lane-tail-stats.ts +32 -0
  377. package/scripts/lane/lane-transcript-calls.ts +67 -10
  378. package/scripts/lane/lane-transcript-stats.ts +44 -12
  379. package/scripts/lane/lane-value-cell.ts +72 -0
  380. package/scripts/lane/lane-value.ts +118 -0
  381. package/scripts/lane/lane-withdraw-closed.ts +124 -0
  382. package/scripts/lane/lane-withdraw.ts +108 -31
  383. package/scripts/lane/lane-yield.ts +85 -0
  384. package/scripts/lane/openai-lane-ship.ts +12 -11
  385. package/scripts/lane/openai-lane-supervisor-decision.ts +6 -8
  386. package/scripts/lane/openai-lane-supervisor-owner.ts +5 -8
  387. package/scripts/lane/openai-lane-supervisor.ts +5 -4
  388. package/scripts/lib/poll.ts +38 -9
  389. package/scripts/lib/settled-together.ts +10 -0
  390. package/scripts/lib/shell-quote.ts +21 -0
  391. package/scripts/lib/token-shape.ts +111 -0
  392. package/scripts/lint/eslint-daemon-sources.ts +79 -0
  393. package/scripts/lint/eslint-daemon.ts +45 -6
  394. package/scripts/lint/eslint-warm-cli.ts +7 -0
  395. package/scripts/lint/eslint-warm.ts +66 -0
  396. package/scripts/lint/import-graph.ts +141 -11
  397. package/scripts/lint/lint-gate-scope.ts +2 -2
  398. package/scripts/lint/lint-parallel.ts +54 -6
  399. package/scripts/lint/lint-related.ts +154 -33
  400. package/scripts/lint/rename-cli.ts +179 -0
  401. package/scripts/lint/rename-identifier.ts +192 -0
  402. package/scripts/lint/type-only-imports.ts +58 -0
  403. package/scripts/notify/telegram-notify.ts +12 -3
  404. package/scripts/observations/observation-record.ts +42 -16
  405. package/scripts/observations/observations-flush.ts +32 -9
  406. package/scripts/overrides/overrides-check.ts +9 -1
  407. package/scripts/release/release-approval-prune.ts +7 -1
  408. package/scripts/repo/required-checks-logic.ts +4 -1
  409. package/scripts/repo/ruleset-check.ts +4 -3
  410. package/scripts/report/markdown-shape.ts +28 -0
  411. package/scripts/report/report-format-reference.ts +15 -1
  412. package/scripts/report/report-labels.ts +12 -1
  413. package/scripts/report/report-lint-child-summary.ts +94 -0
  414. package/scripts/report/report-lint-cli.ts +26 -7
  415. package/scripts/report/report-lint.ts +2 -20
  416. package/scripts/review/prose-stale-cli.ts +88 -0
  417. package/scripts/review/prose-stale-scan.ts +152 -0
  418. package/scripts/review/review-attest.ts +73 -23
  419. package/scripts/review/review-brief-cli.ts +68 -19
  420. package/scripts/review/review-brief-paths.ts +22 -0
  421. package/scripts/review/review-brief.ts +14 -7
  422. package/scripts/review/review-comment-carry.ts +47 -0
  423. package/scripts/review/review-comment-round.ts +85 -22
  424. package/scripts/review/review-finding-ledger.ts +109 -7
  425. package/scripts/review/review-finding-text.ts +43 -0
  426. package/scripts/review/review-interaction.ts +11 -0
  427. package/scripts/review/review-lane-handover.ts +68 -0
  428. package/scripts/review/review-lint-cli.ts +57 -0
  429. package/scripts/review/review-lint-findings.ts +92 -0
  430. package/scripts/review/review-lint-sections.ts +80 -0
  431. package/scripts/review/review-lint.ts +221 -0
  432. package/scripts/review/review-prior-findings.ts +102 -0
  433. package/scripts/review/review-readers-scan.ts +4 -2
  434. package/scripts/review/review-record-cli.ts +177 -54
  435. package/scripts/review/review-record-code-round.ts +55 -0
  436. package/scripts/review/review-record-comment.ts +60 -0
  437. package/scripts/review/review-record-interaction.ts +35 -0
  438. package/scripts/review/review-record-pinned.ts +108 -0
  439. package/scripts/review/review-record.ts +25 -1
  440. package/scripts/review/review-reviewed-tree.ts +307 -0
  441. package/scripts/review/review-round-one-closure.ts +62 -0
  442. package/scripts/review/review-round-reuse.ts +106 -0
  443. package/scripts/review/review-round2-cli.ts +91 -29
  444. package/scripts/review/review-round2-skip-comment.ts +55 -0
  445. package/scripts/review/review-round2.ts +24 -8
  446. package/scripts/review/review-stamps.ts +7 -3
  447. package/scripts/review/review-stop-log.ts +20 -6
  448. package/scripts/review/review-stops-cli.ts +2 -1
  449. package/scripts/review/review-submit-cli.ts +101 -0
  450. package/scripts/rules/agent-model.ts +1 -1
  451. package/scripts/rules/bash-triggers.ts +3 -3
  452. package/scripts/rules/concise-reply.ts +88 -0
  453. package/scripts/rules/credential-body.ts +77 -0
  454. package/scripts/rules/decision-oracle.ts +1 -1
  455. package/scripts/rules/delivered-rules.ts +36 -17
  456. package/scripts/rules/destructive-command.ts +3 -11
  457. package/scripts/rules/direct-issue-comment.ts +34 -12
  458. package/scripts/rules/direct-issue-read.ts +191 -0
  459. package/scripts/rules/direct-pr-create.ts +4 -24
  460. package/scripts/rules/early-heartbeat.ts +2 -0
  461. package/scripts/rules/edit-tool.ts +27 -0
  462. package/scripts/rules/file-edit-rows.ts +17 -0
  463. package/scripts/rules/file-rewrite.ts +146 -0
  464. package/scripts/rules/firing-point.ts +3 -2
  465. package/scripts/rules/gh-api.ts +128 -7
  466. package/scripts/rules/gh-repo-selector.ts +84 -0
  467. package/scripts/rules/git-force.ts +2 -2
  468. package/scripts/rules/guard-remedy.ts +14 -5
  469. package/scripts/rules/implementation-cut.ts +61 -28
  470. package/scripts/rules/investigator-foreground.ts +231 -0
  471. package/scripts/rules/issue-citation.ts +15 -60
  472. package/scripts/rules/issue-comments.ts +9 -4
  473. package/scripts/rules/josh-git-bare.ts +1 -1
  474. package/scripts/rules/lane-background.ts +41 -13
  475. package/scripts/rules/lane-direct-tool.ts +107 -9
  476. package/scripts/rules/lane-interactive-ask.ts +4 -1
  477. package/scripts/rules/lane-park.ts +4 -2
  478. package/scripts/rules/lane-spilled-read.ts +90 -0
  479. package/scripts/rules/lane-split-park.ts +1 -1
  480. package/scripts/rules/lane-switch-main.ts +4 -4
  481. package/scripts/rules/last-prompt.ts +20 -47
  482. package/scripts/rules/oracle-consulted.ts +1 -1
  483. package/scripts/rules/permission-guards.ts +5 -1
  484. package/scripts/rules/piped-verification-shapes.ts +110 -0
  485. package/scripts/rules/piped-verification.ts +67 -17
  486. package/scripts/rules/poll-loop.ts +72 -9
  487. package/scripts/rules/pr-merge.ts +5 -5
  488. package/scripts/rules/pre-gate-cut.ts +3 -3
  489. package/scripts/rules/protected-files.ts +88 -24
  490. package/scripts/rules/reply-language.ts +3 -17
  491. package/scripts/rules/reply-prose.ts +34 -0
  492. package/scripts/rules/repo-admin.ts +132 -0
  493. package/scripts/rules/reviewer-foreground.ts +88 -0
  494. package/scripts/rules/round-one-check-related.ts +120 -0
  495. package/scripts/rules/rule-body-guard.ts +5 -15
  496. package/scripts/rules/rule-value-cache.ts +53 -5
  497. package/scripts/rules/rule-value-candidates.ts +84 -0
  498. package/scripts/rules/rule-value-cli.ts +59 -11
  499. package/scripts/rules/rule-value.ts +17 -4
  500. package/scripts/rules/run-tail-rule.ts +1 -1
  501. package/scripts/rules/sed-in-place.ts +196 -0
  502. package/scripts/rules/shell-segments.ts +10 -2
  503. package/scripts/rules/stop-rule-rows.ts +1 -13
  504. package/scripts/rules/stop-rules.ts +33 -58
  505. package/scripts/rules/test-declared-commit.ts +1 -1
  506. package/scripts/rules/third-party-write.ts +110 -23
  507. package/scripts/rules/timed-rerun.ts +1 -1
  508. package/scripts/rules/turn-filings.ts +90 -0
  509. package/scripts/rules/worktree-guard.ts +22 -7
  510. package/scripts/run/board/run-board-ending-reason.ts +6 -2
  511. package/scripts/run/board/run-board-fit.ts +24 -1
  512. package/scripts/run/board/run-board-found.ts +134 -0
  513. package/scripts/run/board/run-board-header.ts +8 -0
  514. package/scripts/run/board/run-board-labels.ts +11 -1
  515. package/scripts/run/board/run-board-lane-time.ts +1 -0
  516. package/scripts/run/board/run-board-link.ts +15 -2
  517. package/scripts/run/board/run-board-notes.ts +7 -1
  518. package/scripts/run/board/run-board-operation.ts +4 -2
  519. package/scripts/run/board/run-board-phase.ts +2 -5
  520. package/scripts/run/board/run-board-plan.ts +1 -1
  521. package/scripts/run/board/run-board-read.ts +46 -1
  522. package/scripts/run/board/run-board-reason.ts +20 -8
  523. package/scripts/run/board/run-board-render-checks.ts +3 -2
  524. package/scripts/run/board/run-board-render-drawn.ts +11 -0
  525. package/scripts/run/board/run-board-render-found.ts +157 -0
  526. package/scripts/run/board/run-board-render-lead.ts +9 -0
  527. package/scripts/run/board/run-board-render-legend.ts +19 -0
  528. package/scripts/run/board/run-board-render-tail.ts +1 -1
  529. package/scripts/run/board/run-board-render.ts +82 -18
  530. package/scripts/run/board/run-board-spin.ts +1 -3
  531. package/scripts/run/board/run-board-status.ts +2 -0
  532. package/scripts/run/board/run-board-tick.ts +39 -10
  533. package/scripts/run/carry/run-carry-ended.ts +3 -2
  534. package/scripts/run/carry/run-carry.ts +3 -2
  535. package/scripts/run/cut/run-cut-cli.ts +33 -133
  536. package/scripts/run/cut/run-cut-digest.ts +152 -0
  537. package/scripts/run/cut/run-cut-handoff.ts +52 -8
  538. package/scripts/run/cut/run-cut-report.ts +24 -3
  539. package/scripts/run/cut/run-cut-resume.ts +129 -0
  540. package/scripts/run/cut/run-cut-review.ts +105 -0
  541. package/scripts/run/cut/run-cut.ts +18 -7
  542. package/scripts/run/detached-launch.ts +1 -1
  543. package/scripts/run/entry/run-entry-cli.ts +88 -19
  544. package/scripts/run/entry/run-entry-spill.ts +83 -0
  545. package/scripts/run/entry/run-entry-stop.ts +5 -1
  546. package/scripts/run/entry/run-entry-trust.ts +91 -0
  547. package/scripts/run/event/run-event-baseline.ts +56 -0
  548. package/scripts/run/event/run-event-filed.ts +9 -3
  549. package/scripts/run/event/run-event-overrun.ts +197 -0
  550. package/scripts/run/event/run-event-render.ts +4 -0
  551. package/scripts/run/event/run-event-stream.ts +25 -3
  552. package/scripts/run/hold/run-stop-notify.ts +3 -8
  553. package/scripts/run/merge/run-merge-cap.ts +57 -0
  554. package/scripts/run/merge/run-merge-cli.ts +66 -23
  555. package/scripts/run/merge/run-merge-outcome.ts +2 -0
  556. package/scripts/run/merge/run-merge-ship.ts +13 -3
  557. package/scripts/run/merge/run-merge-signals.ts +40 -23
  558. package/scripts/run/merge/run-merge-steps.ts +56 -36
  559. package/scripts/run/merge/run-merge-usage-limit.ts +53 -0
  560. package/scripts/run/merge/run-merge-withdrawn.ts +53 -0
  561. package/scripts/run/merge/run-merge.ts +41 -14
  562. package/scripts/run/review/run-review-cli.ts +306 -20
  563. package/scripts/run/review/run-review-early-push.ts +121 -0
  564. package/scripts/run/review/run-review-join-read.ts +94 -0
  565. package/scripts/run/review/run-review-pinned-accepted.ts +126 -0
  566. package/scripts/run/review/run-review-pinned-join.ts +216 -0
  567. package/scripts/run/review/run-review-pinned-steps.ts +383 -0
  568. package/scripts/run/review/run-review-pinned-tree.ts +37 -0
  569. package/scripts/run/review/run-review-pinned.ts +53 -0
  570. package/scripts/run/review/run-review-steps.ts +70 -34
  571. package/scripts/run/review/run-review.ts +26 -6
  572. package/scripts/run/run-parent-cut-hook.ts +3 -4
  573. package/scripts/run/run-prep.ts +1 -0
  574. package/scripts/run/run-stage-read.ts +2 -6
  575. package/scripts/run/run-step-cli.ts +17 -5
  576. package/scripts/run/run-step-lane-plan.ts +27 -0
  577. package/scripts/run/run-step-section.ts +26 -7
  578. package/scripts/run/run-step.ts +5 -2
  579. package/scripts/run/ship/run-ship-args.ts +19 -0
  580. package/scripts/run/ship/run-ship-brokered-review.ts +106 -0
  581. package/scripts/run/ship/run-ship-cli.ts +131 -39
  582. package/scripts/run/ship/run-ship-conflict-probe.ts +59 -0
  583. package/scripts/run/ship/run-ship-detach.ts +10 -4
  584. package/scripts/run/ship/run-ship-handover.ts +106 -0
  585. package/scripts/run/ship/run-ship-infra-retry.ts +16 -1
  586. package/scripts/run/ship/run-ship-lap.ts +63 -0
  587. package/scripts/run/ship/run-ship-next.ts +27 -26
  588. package/scripts/run/ship/run-ship-overlap.ts +8 -3
  589. package/scripts/run/ship/run-ship-place.ts +9 -2
  590. package/scripts/run/ship/run-ship-planned.ts +92 -0
  591. package/scripts/run/ship/run-ship-pre-detach-pinned.ts +197 -0
  592. package/scripts/run/ship/run-ship-pre-detach-timed.ts +7 -8
  593. package/scripts/run/ship/run-ship-pre-detach.ts +77 -23
  594. package/scripts/run/ship/run-ship-preflight.ts +16 -4
  595. package/scripts/run/ship/run-ship-probe.ts +23 -9
  596. package/scripts/run/ship/run-ship-relaunch-cap.ts +43 -7
  597. package/scripts/run/ship/run-ship-relaunch.ts +51 -0
  598. package/scripts/run/ship/run-ship-return.ts +103 -29
  599. package/scripts/run/ship/run-ship-review-reason.ts +24 -0
  600. package/scripts/run/ship/run-ship-review-steps.ts +230 -59
  601. package/scripts/run/ship/run-ship-review.ts +171 -51
  602. package/scripts/run/ship/run-ship-reviewer.ts +138 -42
  603. package/scripts/run/ship/run-ship-scoped.ts +39 -10
  604. package/scripts/run/ship/run-ship-stage.ts +49 -13
  605. package/scripts/run/ship/run-ship-steps.ts +24 -4
  606. package/scripts/run/ship/run-ship-stop-cause.ts +43 -2
  607. package/scripts/run/ship/run-ship-stop-context.ts +50 -13
  608. package/scripts/run/ship/run-ship-sync.ts +171 -30
  609. package/scripts/run/ship/run-ship-synced-scope.ts +178 -0
  610. package/scripts/run/ship/run-ship-wait-cli.ts +145 -0
  611. package/scripts/run/ship/run-ship-waiter.ts +114 -0
  612. package/scripts/run/ship/run-ship.ts +16 -2
  613. package/scripts/run/wake/run-wake-caffeinate.ts +48 -0
  614. package/scripts/run/wake/run-wake-cli.ts +6 -113
  615. package/scripts/run/wake/run-wake-code.ts +53 -11
  616. package/scripts/run/wake/run-wake-driver.ts +5 -3
  617. package/scripts/run/wake/run-wake-finish.ts +137 -0
  618. package/scripts/run/wake/run-wake-loop.ts +5 -3
  619. package/scripts/run/wake/run-wake-ports.ts +11 -3
  620. package/scripts/run/wake/run-wake-session.ts +2 -0
  621. package/scripts/run/wake/run-wake.ts +3 -2
  622. package/scripts/safe-chain/ci-installer-pin.ts +49 -8
  623. package/scripts/safe-chain/project-config.ts +3 -2
  624. package/scripts/security/secretlint-scan.ts +42 -9
  625. package/scripts/security/security-audit-provision-main.ts +9 -1
  626. package/scripts/security/security-audit-provision.ts +1 -1
  627. package/scripts/security/security-audit.ts +21 -1
  628. package/scripts/security/sonar-file.ts +10 -5
  629. package/scripts/split/split-assess.ts +12 -3
  630. package/scripts/split/split-early-notice.ts +116 -0
  631. package/scripts/split/split-measure.ts +20 -2
  632. package/scripts/split/split-resolution.ts +107 -0
  633. package/scripts/test/direct-importers.ts +185 -0
  634. package/scripts/test/pure-files-entries.ts +83 -0
  635. package/scripts/test/related-heavy-tests.ts +81 -0
  636. package/scripts/test/test-no-base.ts +88 -0
  637. package/scripts/test/test-pinned-cache-logic.ts +363 -0
  638. package/scripts/test/test-pinned-cache.ts +337 -0
  639. package/scripts/test/test-pinned-emit.ts +49 -0
  640. package/scripts/test/test-pinned-functions.ts +116 -0
  641. package/scripts/test/test-pinned-ledger.ts +80 -0
  642. package/scripts/test/test-pinned-logic.ts +208 -20
  643. package/scripts/test/test-pinned-main.ts +84 -18
  644. package/scripts/test/test-pinned-pool.ts +73 -0
  645. package/scripts/test/test-pinned-probe.ts +254 -0
  646. package/scripts/test/test-pinned-prune-logic.ts +118 -0
  647. package/scripts/test/test-pinned-reach.ts +194 -0
  648. package/scripts/test/test-pinned-record.ts +196 -0
  649. package/scripts/test/test-pinned-rewire.ts +148 -0
  650. package/scripts/test/test-pinned-spawn.ts +81 -0
  651. package/scripts/test/test-pinned-stage.ts +70 -0
  652. package/scripts/test/test-pinned.ts +258 -47
  653. package/scripts/test/test-reach-cli.ts +61 -0
  654. package/scripts/test/test-read-map.ts +35 -11
  655. package/scripts/test/test-read-recording.ts +17 -5
  656. package/scripts/test/test-read-trace.ts +26 -8
  657. package/scripts/test/test-red-logic.ts +46 -7
  658. package/scripts/test/test-red.ts +34 -14
  659. package/scripts/test/test-related-claim.ts +37 -0
  660. package/scripts/test/test-related-main.ts +4 -1
  661. package/scripts/test/test-related-moved.ts +91 -0
  662. package/scripts/test/test-related-record.ts +43 -23
  663. package/scripts/test/test-related-scope.ts +99 -34
  664. package/scripts/test/test-related-synced.ts +135 -0
  665. package/scripts/test/test-related-touched.ts +84 -0
  666. package/scripts/test/test-related.ts +167 -83
  667. package/scripts/test/test-unit-guard.ts +28 -5
  668. package/scripts/test/unit-durations.ts +41 -0
  669. package/scripts/test/unit-worker-share.ts +5 -4
  670. package/scripts/test/vitest-cache-directory.ts +19 -0
  671. package/scripts/test/vitest-cli-excludes.ts +14 -0
  672. package/scripts/test/vitest-failure-summary.ts +111 -0
  673. package/scripts/test/whole-suite-files.ts +12 -1
  674. package/scripts/time-runtime/time-batch-guard.ts +42 -4
  675. package/scripts/time-runtime/time-bundle-call.ts +1 -1
  676. package/scripts/time-runtime/time-bundles.ts +36 -5
  677. package/scripts/time-runtime/time-markers.ts +2 -2
  678. package/scripts/time-runtime/time-search-call.ts +38 -0
  679. package/scripts/time-runtime/time-shell.ts +1 -1
  680. package/scripts/time-runtime/time-transcript-line.ts +17 -5
  681. package/scripts/version/development-engines-verdict.ts +124 -0
  682. package/scripts/version/latest-corepack.ts +2 -0
  683. package/templates/gitignore +2 -0
  684. package/templates/workflows/ci.yml +41 -0
  685. package/dist/hooks/chunk-AZX4FGQ3.js +0 -207
  686. package/dist/hooks/chunk-PT5R6UJD.js +0 -7131
  687. package/dist/hooks/chunk-TUIFS5E7.js +0 -72
  688. package/dist/hooks/chunk-YCDOIR3I.js +0 -3456
  689. package/scripts/cost-runtime/context-cut-threshold.ts +0 -11
  690. package/scripts/rules/filing-cap.ts +0 -139
@@ -1,14 +1,15 @@
1
1
  #!/usr/bin/env tsx
2
2
  import {
3
3
  pretool_guard
4
- } from "./chunk-O2YBIDSI.js";
4
+ } from "./chunk-CQD4LJE6.js";
5
5
  import {
6
6
  hook_decision
7
- } from "./chunk-CWMBGKYW.js";
8
- import "./chunk-PT5R6UJD.js";
9
- import "./chunk-YCDOIR3I.js";
10
- import "./chunk-WR2KQAYZ.js";
11
- import "./chunk-AZX4FGQ3.js";
7
+ } from "./chunk-5PM2JRGV.js";
8
+ import "./chunk-Z6DQJKH3.js";
9
+ import "./chunk-3GKE653K.js";
10
+ import "./chunk-7SIUNQXK.js";
11
+ import "./chunk-VVNYJWEI.js";
12
+ import "./chunk-45CJJOO7.js";
12
13
 
13
14
  // scripts/hooks/pretool-guard-cli.ts
14
15
  import { fileURLToPath } from "node:url";
@@ -4,27 +4,27 @@ import {
4
4
  agent_role_profile,
5
5
  detached_launch,
6
6
  distributed_paths,
7
+ document_section,
8
+ find_package_directory,
7
9
  josh_environment_file,
8
10
  run_headless,
9
11
  session_language
10
- } from "./chunk-YCDOIR3I.js";
12
+ } from "./chunk-3GKE653K.js";
11
13
  import {
12
14
  agent_session_environment,
13
- ancestor_directories,
14
- file_reader,
15
- git_common_directory,
15
+ durable_state,
16
16
  issue_cite,
17
17
  json_value,
18
- package_manifest,
19
18
  process_identity,
20
19
  run_carry,
21
20
  run_event_stream,
22
21
  run_event_stream_emit
23
- } from "./chunk-WR2KQAYZ.js";
22
+ } from "./chunk-7SIUNQXK.js";
24
23
  import {
25
24
  error_text,
25
+ git_common_directory,
26
26
  stamp_file
27
- } from "./chunk-AZX4FGQ3.js";
27
+ } from "./chunk-45CJJOO7.js";
28
28
 
29
29
  // scripts/josh/session-language-main.ts
30
30
  import { fileURLToPath as fileURLToPath2 } from "node:url";
@@ -100,7 +100,7 @@ function check(profile, ports = default_ports) {
100
100
  var agent_diagnostics = { check };
101
101
 
102
102
  // scripts/agent/claude-agent-argv.ts
103
- import { existsSync as existsSync2 } from "node:fs";
103
+ import { existsSync } from "node:fs";
104
104
  import path2 from "node:path";
105
105
 
106
106
  // scripts/agent/lane-instructions.ts
@@ -134,217 +134,6 @@ var cost_tokens = {
134
134
  ascii_bytes_to_tokens
135
135
  };
136
136
 
137
- // scripts/document/document-scan.ts
138
- var COMMAND_PATTERN = /`(?:pnpm )?josh ([a-z][a-z0-9:-]+)/gu;
139
- var LABEL_PATTERN = /(?:labels\[\]=|\/labels\/|labels -f name=)([a-z][a-z0-9:_-]*)/gu;
140
- var SECTION_PATTERN = /(?<![\w./:`-])(?<tick>`?)(?<file>[\w./-]+\.md)\k<tick>\s*→\s*(?:§\w+,\s*)?["「](?<heading>[^"」]+)["」]/gu;
141
- var ADJACENT_PATTERN = /["「](?<heading>[^"「」]+)["」]\s+(?:above|below)\b/gu;
142
- var BARE_ARROW_PATTERN = /→\s*(?:§\w+,\s*)?["「](?<heading>[^"「」]+)["」]/gu;
143
- var LINK_TARGET_PATTERN = /\]\([^)\s]*\)/gu;
144
- var LINK_PATTERN = /\]\(([\w./-]+\.(?:md|png|jpe?g|gif|svg|webp))(?:#[\w-]+)?\)/gu;
145
- var PLACEHOLDER_FILES = /* @__PURE__ */ new Set(["x.md", "foo.md", "file.md", "path.md"]);
146
- function matches(text, pattern) {
147
- return [...text.matchAll(pattern)];
148
- }
149
- function command_references(text) {
150
- return matches(text, COMMAND_PATTERN).map((match) => match[1] ?? "").filter((name) => !name.endsWith(":"));
151
- }
152
- function is_real_label(token) {
153
- return token.length > 0 && !token.endsWith(":") && !token.includes("<");
154
- }
155
- function label_references(text) {
156
- return matches(text, LABEL_PATTERN).map((match) => match[1] ?? "").filter((token) => is_real_label(token));
157
- }
158
- function base_name(path4) {
159
- return path4.split("/").at(-1) ?? path4;
160
- }
161
- function is_placeholder_file(name) {
162
- return name.includes("<") || PLACEHOLDER_FILES.has(base_name(name).toLowerCase());
163
- }
164
- function section_references(text) {
165
- return matches(text.replaceAll(LINK_TARGET_PATTERN, ""), SECTION_PATTERN).map(({ groups }) => ({ file: groups?.["file"] ?? "", heading: groups?.["heading"] ?? "" })).filter((reference) => !is_placeholder_file(reference.file));
166
- }
167
- function headings_matching(text, pattern) {
168
- return matches(text, pattern).map(({ groups }) => groups?.["heading"] ?? "");
169
- }
170
- function adjacent_references(text) {
171
- return headings_matching(text, ADJACENT_PATTERN);
172
- }
173
- function bare_arrow_references(text) {
174
- const unfiled = text.replaceAll(LINK_TARGET_PATTERN, "").replaceAll(SECTION_PATTERN, "");
175
- return headings_matching(unfiled, BARE_ARROW_PATTERN);
176
- }
177
- function link_targets(text) {
178
- return matches(text, LINK_PATTERN).map((match) => match[1] ?? "").filter((file) => !is_placeholder_file(file));
179
- }
180
- function normalize_reference(heading) {
181
- return heading.replaceAll("`", "").split(/\s+/u).filter((word) => word !== ">").join(" ");
182
- }
183
- function reference_forms(title) {
184
- const normalized = normalize_reference(title);
185
- return [normalized, normalized.replace(/^\d+[a-z]?\. /u, "")];
186
- }
187
- var document_scan = {
188
- adjacent_references,
189
- bare_arrow_references,
190
- command_references,
191
- label_references,
192
- link_targets,
193
- normalize_reference,
194
- reference_forms,
195
- section_references
196
- };
197
-
198
- // scripts/document/document-section.ts
199
- var HEADING_PATTERN = /^(?<hashes>#{1,6}) (?<title>.*)$/u;
200
- var FENCE = "```";
201
- var SINGLE_MATCH = 1;
202
- var BOLD_LABEL_PATTERN = /\*\*([^*]+?)\*\*/gu;
203
- var BOLD_DELIMITER = "**";
204
- var CODE_SPAN_PATTERN = /``[^\n]*?``|`[^`\n]*`/gu;
205
- var LABEL_LEVEL = 7;
206
- var LIST_ITEM_PATTERN = /^(?<indent>\s*)(?:[-*]|\d+\.) /u;
207
- function to_heading(line, index) {
208
- const groups = HEADING_PATTERN.exec(line)?.groups;
209
- if (groups === void 0) return void 0;
210
- const { hashes = "", title = "" } = groups;
211
- return { level: hashes.length, title: title.trim(), line: index };
212
- }
213
- function push_heading(found, line, index) {
214
- const heading = to_heading(line, index);
215
- if (heading !== void 0) found.push(heading);
216
- }
217
- function fenced_flags(lines) {
218
- let is_inside_fence = false;
219
- return lines.map(function is_fenced(line) {
220
- if (!line.startsWith(FENCE)) return is_inside_fence;
221
- is_inside_fence = !is_inside_fence;
222
- return true;
223
- });
224
- }
225
- function headings(markdown) {
226
- const lines = markdown.split("\n");
227
- const fenced = fenced_flags(lines);
228
- const found = [];
229
- for (const [index, line] of lines.entries()) {
230
- if (fenced[index] !== true) push_heading(found, line, index);
231
- }
232
- return found;
233
- }
234
- function titles(markdown) {
235
- return headings(markdown).map((heading) => heading.title);
236
- }
237
- function line_starts(markdown) {
238
- return [...markdown.matchAll(/\n/gu)].map((match) => match.index + SINGLE_MATCH);
239
- }
240
- function line_of(starts, offset) {
241
- return starts.filter((start2) => start2 <= offset).length;
242
- }
243
- function unfenced_text(markdown) {
244
- const lines = markdown.split("\n");
245
- const fenced = fenced_flags(lines);
246
- return lines.map((line, index) => fenced[index] === true ? "" : line).join("\n");
247
- }
248
- function code_masked(text) {
249
- return text.replaceAll(CODE_SPAN_PATTERN, (span) => span.replaceAll("*", " "));
250
- }
251
- function labels(markdown) {
252
- const text = unfenced_text(markdown);
253
- const starts = line_starts(text);
254
- return [...code_masked(text).matchAll(BOLD_LABEL_PATTERN)].map((match) => ({
255
- level: LABEL_LEVEL,
256
- title: text.slice(
257
- match.index + BOLD_DELIMITER.length,
258
- match.index + match[0].length - BOLD_DELIMITER.length
259
- ),
260
- line: line_of(starts, match.index)
261
- }));
262
- }
263
- function is_match(heading, wanted) {
264
- return document_scan.reference_forms(heading.title).some((form) => form.startsWith(wanted));
265
- }
266
- function prefixed(found, wanted) {
267
- const normalized = document_scan.normalize_reference(wanted);
268
- return found.filter((heading) => is_match(heading, normalized));
269
- }
270
- function is_exact(heading, wanted) {
271
- return document_scan.reference_forms(heading.title).includes(wanted);
272
- }
273
- function select(found, wanted) {
274
- const normalized = document_scan.normalize_reference(wanted);
275
- const exact = found.find((heading) => is_exact(heading, normalized));
276
- if (exact !== void 0) return exact;
277
- const near = prefixed(found, wanted);
278
- return near.length === SINGLE_MATCH ? near[0] : void 0;
279
- }
280
- function last_line_of(found, chosen, total_lines) {
281
- const next = found.find((heading) => heading.line > chosen.line && heading.level <= chosen.level);
282
- return (next === void 0 ? total_lines : next.line) - SINGLE_MATCH;
283
- }
284
- function indent_of(line) {
285
- return line.length - line.trimStart().length;
286
- }
287
- function is_sibling_item(line, depth) {
288
- const { indent } = LIST_ITEM_PATTERN.exec(line)?.groups ?? {};
289
- return indent !== void 0 && indent.length <= depth;
290
- }
291
- function ends_block(line, depth) {
292
- if (line.trim() === "" || HEADING_PATTERN.test(line)) return true;
293
- return is_sibling_item(line, depth);
294
- }
295
- function label_last_line(lines, label) {
296
- const depth = indent_of(lines[label.line] ?? "");
297
- const end = lines.findIndex((line, index) => index > label.line && ends_block(line, depth));
298
- return (end === -1 ? lines.length : end) - SINGLE_MATCH;
299
- }
300
- function choose(markdown, wanted) {
301
- const found = headings(markdown);
302
- if (prefixed(found, wanted).length > 0) return select(found, wanted);
303
- return select(labels(markdown), wanted);
304
- }
305
- function extent_of(markdown, chosen) {
306
- const lines = markdown.split("\n");
307
- if (chosen.level === LABEL_LEVEL) return label_last_line(lines, chosen);
308
- return last_line_of(headings(markdown), chosen, lines.length);
309
- }
310
- function section(markdown, wanted) {
311
- const chosen = choose(markdown, wanted);
312
- if (chosen === void 0) return void 0;
313
- const last_line = extent_of(markdown, chosen);
314
- const lines = markdown.split("\n").slice(chosen.line, last_line + SINGLE_MATCH);
315
- return {
316
- title: chosen.title,
317
- level: chosen.level,
318
- first_line: chosen.line,
319
- last_line,
320
- text: lines.join("\n")
321
- };
322
- }
323
- function candidates(markdown, wanted) {
324
- const near = prefixed(headings(markdown), wanted);
325
- const listed = near.length > 0 ? near : prefixed(labels(markdown), wanted);
326
- return listed.map((heading) => heading.title);
327
- }
328
- function read_optional(file_path) {
329
- return file_reader.read_if_readable(file_path);
330
- }
331
- var document_section = {
332
- candidates,
333
- headings,
334
- read_optional,
335
- section,
336
- titles
337
- };
338
-
339
- // scripts/josh/package-directory.ts
340
- import { existsSync } from "node:fs";
341
- function find_package_directory(start_directory) {
342
- return ancestor_directories.nearest(
343
- start_directory,
344
- (directory) => existsSync(package_manifest.manifest_path(directory))
345
- ) ?? start_directory;
346
- }
347
-
348
137
  // scripts/agent/lane-instructions.ts
349
138
  var LANE_DOCUMENT = "prompts/collaboration-workflow/lane-instructions.md";
350
139
  var RULES_FILE = "CLAUDE.md";
@@ -449,10 +238,9 @@ var LAUNCHED_TOOLS = [
449
238
  "SendMessage",
450
239
  "TaskStop",
451
240
  "Monitor",
452
- "TodoWrite",
453
- "WebSearch",
454
- "WebFetch"
241
+ "TodoWrite"
455
242
  ];
243
+ var NESTING_TOOLS = /* @__PURE__ */ new Set(["Agent", "Skill"]);
456
244
  var TOOLS_FLAG = "--tools";
457
245
  var STRICT_MCP_FLAG = "--strict-mcp-config";
458
246
  var MCP_CONFIG_FLAG = "--mcp-config";
@@ -460,10 +248,14 @@ var PROJECT_MCP_FILE = ".mcp.json";
460
248
  function session_id_flags(session_id) {
461
249
  return session_id === void 0 ? [] : [SESSION_ID_FLAG, session_id];
462
250
  }
463
- function tool_flags(cwd = process.cwd()) {
251
+ function launched_tools(role) {
252
+ if (role !== agent_role_profile.REVIEWER) return LAUNCHED_TOOLS;
253
+ return LAUNCHED_TOOLS.filter((tool) => !NESTING_TOOLS.has(tool));
254
+ }
255
+ function tool_flags(role, cwd = process.cwd()) {
464
256
  const mcp_config = path2.join(cwd, PROJECT_MCP_FILE);
465
- const mcp_flags = existsSync2(mcp_config) ? [STRICT_MCP_FLAG, MCP_CONFIG_FLAG, mcp_config] : [STRICT_MCP_FLAG];
466
- return [TOOLS_FLAG, LAUNCHED_TOOLS.join(","), ...mcp_flags];
257
+ const mcp_flags = existsSync(mcp_config) ? [STRICT_MCP_FLAG, MCP_CONFIG_FLAG, mcp_config] : [STRICT_MCP_FLAG];
258
+ return [TOOLS_FLAG, launched_tools(role).join(","), ...mcp_flags];
467
259
  }
468
260
  function instruction_flags(profile, cwd) {
469
261
  if (profile.role === agent_role_profile.SCHEDULER) return [];
@@ -474,7 +266,7 @@ function build(invocation, profile, session_id, cwd) {
474
266
  command: AGENT_COMMAND,
475
267
  args: [
476
268
  ...AGENT_FLAGS,
477
- ...tool_flags(cwd),
269
+ ...tool_flags(profile.role, cwd),
478
270
  ...instruction_flags(profile, cwd),
479
271
  ...session_id_flags(session_id),
480
272
  MODEL_FLAG,
@@ -491,7 +283,7 @@ function build_resume(invocation, profile, session_id, cwd) {
491
283
  command: AGENT_COMMAND,
492
284
  args: [
493
285
  ...AGENT_FLAGS,
494
- ...tool_flags(cwd),
286
+ ...tool_flags(profile.role, cwd),
495
287
  ...instruction_flags(profile, cwd),
496
288
  RESUME_FLAG,
497
289
  session_id,
@@ -522,19 +314,32 @@ var claude_agent_argv = {
522
314
  };
523
315
 
524
316
  // scripts/agent/codex-agent-argv.ts
525
- import { lstatSync, mkdirSync } from "node:fs";
317
+ import { existsSync as existsSync2, lstatSync, mkdirSync, readdirSync, realpathSync } from "node:fs";
526
318
  import path3 from "node:path";
527
319
  var AGENT_COMMAND2 = "codex";
528
- var AGENT_FLAGS2 = ["exec", "--sandbox", "workspace-write"];
320
+ var AGENT_FLAGS2 = ["exec"];
529
321
  var MODEL_FLAG2 = "--model";
530
322
  var CONFIG_FLAG = "-c";
531
323
  var JSON_FLAG = "--json";
532
- var NETWORK_CONFIG = "sandbox_workspace_write.network_access=true";
533
324
  var SQLITE_CACHE_PATH = ["node_modules", ".cache", "josh", "openai"];
534
325
  var EPHEMERAL_FLAG = "--ephemeral";
535
- var ADD_DIRECTORY_FLAG = "--add-dir";
536
326
  var GIT_DIRECTORY = ".git";
537
327
  var LEDGER_DIRECTORY = path3.dirname(OBSERVATION_LEDGER_DIRECTORY);
328
+ var WORKTREE_REGISTRY = "worktrees";
329
+ var READ = "read";
330
+ var WRITE = "write";
331
+ var PERMISSION_PROFILE = "josh_lane";
332
+ var PROFILE_CONFIG = `default_permissions="${PERMISSION_PROFILE}"`;
333
+ var NETWORK_CONFIG = `permissions.${PERMISSION_PROFILE}.network.enabled=true`;
334
+ var FILESYSTEM_KEY = `permissions.${PERMISSION_PROFILE}.filesystem`;
335
+ var BASE_GRANTS = [
336
+ [":root", READ],
337
+ [":workspace_roots", WRITE],
338
+ [":slash_tmp", WRITE],
339
+ [":tmpdir", WRITE]
340
+ ];
341
+ var PINNED_WORKTREE_ENTRIES = ["commondir", "config.worktree"];
342
+ var PINNED_ENTRIES = ["hooks", "config", ...PINNED_WORKTREE_ENTRIES];
538
343
  function effort_config(profile) {
539
344
  return `model_reasoning_effort="${profile.effort}"`;
540
345
  }
@@ -544,32 +349,72 @@ function sqlite_config(cwd) {
544
349
  function persistence_arguments(profile) {
545
350
  return profile.role === agent_role_profile.WORKER ? [] : [EPHEMERAL_FLAG];
546
351
  }
547
- function ensure_ledger_directory(directory) {
352
+ function ensure_writable_directory(directory, mode) {
548
353
  const current = lstatSync(directory, { throwIfNoEntry: false });
549
- if (current === void 0) mkdirSync(directory, { recursive: true });
354
+ if (current === void 0) mkdirSync(directory, { recursive: true, mode });
550
355
  else if (!current.isDirectory() || current.isSymbolicLink()) {
551
- throw new Error(`Ledger directory must be a real directory: ${directory}`);
356
+ throw new Error(`Writable root must be a real directory: ${directory}`);
552
357
  }
553
358
  }
554
- function ledger_arguments(common_directory, profile) {
359
+ function pinned(directory, entries) {
360
+ return entries.map((entry) => [path3.join(directory, entry), READ]);
361
+ }
362
+ function registered_worktrees(common_directory) {
363
+ const registry = path3.join(common_directory, WORKTREE_REGISTRY);
364
+ if (!existsSync2(registry)) return [];
365
+ return readdirSync(registry, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => path3.join(registry, entry.name));
366
+ }
367
+ function git_grants(common_directory) {
368
+ if (common_directory === void 0) return [];
369
+ const root = realpathSync(common_directory);
370
+ return [
371
+ [root, WRITE],
372
+ ...pinned(root, PINNED_ENTRIES),
373
+ ...registered_worktrees(root).flatMap((worktree) => pinned(worktree, PINNED_WORKTREE_ENTRIES))
374
+ ];
375
+ }
376
+ function ledger_grants(common_directory, profile) {
555
377
  if (common_directory === void 0 || profile.role !== agent_role_profile.WORKER || path3.basename(common_directory) !== GIT_DIRECTORY) {
556
378
  return [];
557
379
  }
558
- const directory = path3.join(path3.dirname(common_directory), LEDGER_DIRECTORY);
559
- ensure_ledger_directory(directory);
560
- return [ADD_DIRECTORY_FLAG, directory];
380
+ const ledger = path3.join(path3.dirname(common_directory), LEDGER_DIRECTORY);
381
+ ensure_writable_directory(ledger);
382
+ return [[realpathSync(ledger), WRITE]];
561
383
  }
562
- function lane_arguments(cwd, profile) {
384
+ function filesystem_config(grants) {
385
+ const pairs = grants.map(
386
+ ([target, access]) => `${JSON.stringify(target)}=${JSON.stringify(access)}`
387
+ );
388
+ return `${FILESYSTEM_KEY}={${pairs.join(",")}}`;
389
+ }
390
+ function state_grants(cwd) {
391
+ const repository = git_common_directory.repository(cwd);
392
+ if (repository === void 0) return [];
393
+ const state = durable_state.root_for(repository);
394
+ ensure_writable_directory(state, durable_state.STATE_DIRECTORY_MODE);
395
+ return [[realpathSync(state), WRITE]];
396
+ }
397
+ function lane_grants(cwd, profile) {
398
+ if (cwd === void 0) return [];
563
399
  const common_directory = git_common_directory.resolve(cwd);
564
- const additional_directory = common_directory === void 0 ? [] : [ADD_DIRECTORY_FLAG, common_directory];
400
+ if (common_directory === void 0) return state_grants(cwd);
401
+ return [...git_grants(common_directory), ...ledger_grants(common_directory, profile)];
402
+ }
403
+ function permission_arguments(cwd, profile) {
404
+ const grants = [...BASE_GRANTS, ...lane_grants(cwd, profile)];
565
405
  return [
566
406
  CONFIG_FLAG,
567
- sqlite_config(cwd),
568
- ...persistence_arguments(profile),
569
- ...additional_directory,
570
- ...ledger_arguments(common_directory, profile)
407
+ PROFILE_CONFIG,
408
+ CONFIG_FLAG,
409
+ filesystem_config(grants),
410
+ CONFIG_FLAG,
411
+ NETWORK_CONFIG
571
412
  ];
572
413
  }
414
+ function lane_arguments(cwd, profile) {
415
+ if (cwd === void 0) return [];
416
+ return [CONFIG_FLAG, sqlite_config(cwd), ...persistence_arguments(profile)];
417
+ }
573
418
  function build2(invocation, profile, cwd) {
574
419
  return {
575
420
  command: AGENT_COMMAND2,
@@ -579,9 +424,8 @@ function build2(invocation, profile, cwd) {
579
424
  profile.model,
580
425
  CONFIG_FLAG,
581
426
  effort_config(profile),
582
- CONFIG_FLAG,
583
- NETWORK_CONFIG,
584
- ...cwd === void 0 ? [] : lane_arguments(cwd, profile),
427
+ ...permission_arguments(cwd, profile),
428
+ ...lane_arguments(cwd, profile),
585
429
  JSON_FLAG,
586
430
  invocation
587
431
  ],
@@ -616,16 +460,13 @@ function resolve2(invocation, role, environment = process.env) {
616
460
  const resolved = agent_role_profile.resolve(role, environment);
617
461
  return resolved.kind === "rejected" ? resolved : with_profile2(invocation, resolved.profile);
618
462
  }
619
- function resume_argv(invocation, profile, phase, cwd) {
620
- if (profile !== void 0) {
621
- return with_profile_in(invocation, agent_role_profile.with_phase_effort(profile, phase), cwd);
622
- }
623
- const resolved = agent_role_profile.resolve(agent_role_profile.WORKER, process.env, phase);
624
- return resolved.kind === "rejected" ? resolved : with_profile_in(invocation, resolved.profile, cwd);
625
- }
626
463
  function profiled_in(invocation, resolved, cwd) {
627
464
  return resolved.kind === "rejected" ? resolved : with_profile_in(invocation, resolved.profile, cwd);
628
465
  }
466
+ function resume_argv(invocation, profile, phase, cwd) {
467
+ const resolved = profile === void 0 ? agent_role_profile.resolve(agent_role_profile.WORKER, process.env, phase) : agent_role_profile.with_phase(profile, phase);
468
+ return profiled_in(invocation, resolved, cwd);
469
+ }
629
470
  function resolve_in(invocation, role, cwd, environment = process.env) {
630
471
  return profiled_in(invocation, agent_role_profile.resolve(role, environment), cwd);
631
472
  }
@@ -703,8 +544,8 @@ var run_event_setup = {
703
544
 
704
545
  // scripts/backlog/backlogrun-launch.ts
705
546
  import { z } from "zod";
706
- var LAUNCH_PREFIX = "josh-backlogrun-launch-";
707
- var LOG_PREFIX = "josh-backlogrun-log-";
547
+ var LAUNCH_PREFIX = durable_state.PREFIX.BACKLOGRUN_LAUNCH;
548
+ var LOG_PREFIX = durable_state.PREFIX.BACKLOGRUN_LOG;
708
549
  var LOG_SUFFIX = ".log";
709
550
  var launch_schema = z.object({
710
551
  pid: z.number(),
@@ -716,10 +557,10 @@ var launch_schema = z.object({
716
557
  started_at: z.string().optional()
717
558
  });
718
559
  function launch_path(git_directory) {
719
- return stamp_file.stamp_path(LAUNCH_PREFIX, git_directory);
560
+ return durable_state.path(LAUNCH_PREFIX, git_directory);
720
561
  }
721
562
  function log_path(git_directory) {
722
- return stamp_file.stamp_path(LOG_PREFIX, git_directory, LOG_SUFFIX);
563
+ return durable_state.path(LOG_PREFIX, git_directory, LOG_SUFFIX);
723
564
  }
724
565
  function read_launch(target) {
725
566
  return json_value.parse_with(stamp_file.read_stamp_text(target) ?? "", launch_schema);
@@ -826,6 +667,8 @@ var backlogrun_launch = {
826
667
  argv_of,
827
668
  chosen_environment,
828
669
  is_running,
670
+ launch_path,
671
+ log_path,
829
672
  pending_launch,
830
673
  running_parent,
831
674
  start,