@joshuafolkken/kit 1.1471.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.
- package/.claude/agents/investigator.md +1 -1
- package/.claude/settings.json +6 -6
- package/.claude/skills/epic-commands/SKILL.md +26 -77
- package/.claude/skills/epic-commands/epic-bundle.md +12 -6
- package/.claude/skills/epic-commands/execution-waves.md +1 -2
- package/.claude/skills/verify-ui/SKILL.md +1 -2
- package/.claude/skills/workflow-commands/SKILL.md +12 -14
- package/.claude/skills/workflow-commands/background-commands.md +8 -12
- package/.claude/skills/workflow-commands/backlogrun-child.md +13 -18
- package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +7 -25
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +23 -28
- package/.claude/skills/workflow-commands/backlogrun-park.md +16 -31
- package/.claude/skills/workflow-commands/backlogrun-progress.md +12 -21
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +12 -12
- package/.claude/skills/workflow-commands/backlogrun-steps.md +12 -20
- package/.claude/skills/workflow-commands/backlogrun.md +32 -51
- package/.claude/skills/workflow-commands/chain-rule.md +18 -11
- package/.claude/skills/workflow-commands/delegation.md +13 -8
- package/.claude/skills/workflow-commands/entry-sequence.md +10 -12
- package/.claude/skills/workflow-commands/followup.md +10 -35
- package/.claude/skills/workflow-commands/fullrun-steps.md +38 -49
- package/.claude/skills/workflow-commands/fullrun.md +6 -8
- package/.claude/skills/workflow-commands/halfrun.md +20 -32
- package/.claude/skills/workflow-commands/into-target.md +1 -2
- package/.claude/skills/workflow-commands/issue-comments.md +19 -15
- package/.claude/skills/workflow-commands/issue-scout.md +5 -4
- package/.claude/skills/workflow-commands/kickoff.md +24 -23
- package/.claude/skills/workflow-commands/latest-gate.md +9 -18
- package/.claude/skills/workflow-commands/needs-human-review.md +11 -19
- package/.claude/skills/workflow-commands/observation-filing.md +4 -50
- package/.claude/skills/workflow-commands/observation-ledger.md +5 -10
- package/.claude/skills/workflow-commands/pre-gate-cut.md +22 -44
- package/.claude/skills/workflow-commands/prerequisite.md +11 -18
- package/.claude/skills/workflow-commands/progress-watcher.md +3 -8
- package/.claude/skills/workflow-commands/prrun.md +6 -12
- package/.claude/skills/workflow-commands/retrospective.md +5 -5
- package/.claude/skills/workflow-commands/split-assessment.md +14 -4
- package/.claude/skills/workflow-commands/target-repository.md +1 -2
- package/.claude/skills/workflow-commands/working-tree-hold.md +11 -13
- package/.codex/hooks.json +6 -6
- package/.github/actions/setup-node/action.yml +10 -1
- package/.github/actions/setup-pnpm/action.yml +1 -1
- package/.github/dependabot.yml +16 -0
- package/.github/release.yml +0 -2
- package/.github/workflows/ci.yml +121 -11
- package/.github/workflows/publish.yml +10 -3
- package/.github/workflows/sonar-qube.yml +1 -0
- package/.prettierignore +2 -0
- package/.vscode/tasks.json +1 -2
- package/CLAUDE.md +4 -8
- package/README.md +4 -2
- package/SECURITY.md +1 -1
- package/cspell/index.yaml +7 -0
- package/dist/CLAUDE.md +4 -8
- package/dist/commands/document-read-cli.js +882 -0
- package/dist/commands/{document-section-cli.js → document-section-main.js} +137 -62
- package/dist/commands/read-set-cli.js +1867 -0
- package/dist/commands/run-prep-main.js +21653 -0
- package/dist/commands/run-step-cli.js +23880 -0
- package/dist/config-merge/index.js +5 -1
- package/dist/hooks/audit-provision.js +20 -35
- package/dist/hooks/{chunk-DGT54IH5.js → chunk-AZX4FGQ3.js} +63 -17
- package/dist/hooks/chunk-CWMBGKYW.js +6483 -0
- package/dist/hooks/chunk-O2YBIDSI.js +4306 -0
- package/dist/hooks/{chunk-AS74OU3D.js → chunk-PT5R6UJD.js} +4582 -2118
- package/dist/hooks/chunk-TUIFS5E7.js +72 -0
- package/dist/hooks/{chunk-723HKZO5.js → chunk-VWWCFGWK.js} +1 -1
- package/dist/hooks/{chunk-E7OIKX5Z.js → chunk-WR2KQAYZ.js} +1863 -382
- package/dist/hooks/{chunk-KC5AK2GF.js → chunk-XGBNSWEI.js} +248 -46
- package/dist/hooks/chunk-YCDOIR3I.js +3456 -0
- package/dist/hooks/codex-hook-adapter.js +10 -19
- package/dist/hooks/format-edited.js +5 -5
- package/dist/hooks/inputs.json +436 -257
- package/dist/hooks/pretool-guard.js +7 -22
- package/dist/hooks/session-lang.js +380 -42
- package/dist/hooks/stop-guard.js +8711 -782
- package/dist/josh.js +5263 -997
- package/dist/self-sync-guard/index.js +74 -10
- package/dist/version/index.js +115 -406
- package/eslint/base.js +1 -1
- package/lefthook/base.yml +8 -4
- package/package.json +17 -53
- package/pnpm-workspace.yaml +4 -2
- package/prompts/coding-standards.md +1 -1
- package/prompts/collaboration-workflow/file-edits.md +1 -9
- package/prompts/collaboration-workflow/gh-rest.md +1 -2
- package/prompts/collaboration-workflow/issue-citation.md +2 -4
- package/prompts/collaboration-workflow/issue-template.md +42 -17
- package/prompts/collaboration-workflow/lane-instructions.md +34 -0
- package/prompts/collaboration-workflow/measurement.md +37 -0
- package/prompts/collaboration-workflow/operating-rules.md +6 -12
- package/prompts/collaboration-workflow/output-bounds.md +4 -9
- package/prompts/collaboration-workflow/overview.md +1 -1
- package/prompts/collaboration-workflow/plan-comment.md +3 -42
- package/prompts/collaboration-workflow/principles.md +19 -8
- package/prompts/collaboration-workflow/report-format.md +37 -57
- package/prompts/collaboration-workflow/residency.md +12 -8
- package/prompts/collaboration-workflow/rule-delivery.md +3 -11
- package/prompts/collaboration-workflow/shell-body.md +8 -18
- package/prompts/collaboration-workflow/turn-batching.md +4 -6
- package/prompts/collaboration-workflow/upstream-interrupt.md +16 -6
- package/prompts/collaboration-workflow/wip-cap.md +7 -7
- package/prompts/collaboration-workflow.md +4 -7
- package/prompts/refactoring.md +1 -1
- package/prompts/review-rubric.md +1 -2
- package/prompts/review.md +45 -26
- package/prompts/testing-guide.md +10 -45
- package/scripts/agent/agent-argv.ts +20 -4
- package/scripts/agent/agent-event.ts +15 -15
- package/scripts/agent/agent-exit-record.ts +13 -1
- package/scripts/agent/agent-role-profile.ts +101 -45
- package/scripts/agent/agent-safe-text.ts +60 -0
- package/scripts/agent/api-auth.ts +41 -0
- package/scripts/agent/api-outage.ts +1 -1
- package/scripts/agent/claude-agent-argv.ts +14 -0
- package/scripts/agent/codex-agent-argv.ts +2 -0
- package/scripts/agent/lane-instructions.ts +144 -0
- package/scripts/auto-ok/auto-ok-cli.ts +14 -16
- package/scripts/auto-ok/auto-ok-judge-read.ts +12 -3
- package/scripts/auto-ok/auto-ok-judge-write.ts +46 -19
- package/scripts/auto-ok/auto-ok-judge.ts +13 -2
- package/scripts/auto-ok/auto-ok-main.ts +17 -0
- package/scripts/backlog/backlog-arrival.ts +14 -3
- package/scripts/backlog/backlog-budget-cli.ts +7 -33
- package/scripts/backlog/backlog-budget-main.ts +16 -0
- package/scripts/backlog/backlog-budget.ts +6 -7
- package/scripts/backlog/backlog-defect-priority.ts +4 -3
- package/scripts/backlog/backlog-drive-adopt.ts +67 -0
- package/scripts/backlog/backlog-drive-args.ts +4 -5
- package/scripts/backlog/backlog-drive-cli.ts +113 -28
- package/scripts/backlog/backlog-drive-hold.ts +162 -0
- package/scripts/backlog/backlog-drive-idle.ts +151 -0
- package/scripts/backlog/backlog-drive-judge.ts +25 -0
- package/scripts/backlog/backlog-drive-memory.ts +126 -0
- package/scripts/backlog/backlog-drive-named-offer.ts +5 -10
- package/scripts/backlog/backlog-drive-named.ts +54 -7
- package/scripts/backlog/backlog-drive-offer-argv.ts +3 -8
- package/scripts/backlog/backlog-drive-paused.ts +169 -0
- package/scripts/backlog/backlog-drive-restore.ts +39 -8
- package/scripts/backlog/backlog-drive-seats.ts +18 -8
- package/scripts/backlog/backlog-drive-token-handling.ts +38 -0
- package/scripts/backlog/backlog-drive.ts +79 -75
- package/scripts/backlog/backlog-next-main.ts +16 -0
- package/scripts/backlog/backlog-next-shared.ts +73 -0
- package/scripts/backlog/backlog-next.ts +48 -16
- package/scripts/backlog/backlog-occupied.ts +69 -0
- package/scripts/backlog/backlog-offer-cli.ts +6 -21
- package/scripts/backlog/backlog-offer-exclude.ts +15 -0
- package/scripts/backlog/backlog-offer-main.ts +12 -0
- package/scripts/backlog/backlog-offer.ts +36 -3
- package/scripts/backlog/backlog-overlap.ts +22 -4
- package/scripts/backlog/backlog-plan-read.ts +6 -2
- package/scripts/backlog/backlog-plan.ts +18 -4
- package/scripts/backlog/backlog-pool.ts +10 -10
- package/scripts/backlog/backlog-rank.ts +10 -2
- package/scripts/backlog/backlog-ready.ts +137 -18
- package/scripts/backlog/backlog-stalled-detect.ts +109 -36
- package/scripts/backlog/backlog-stalled.ts +52 -16
- package/scripts/backlog/backlog-wait-cause.ts +86 -0
- package/scripts/backlog/backlog-waves.ts +39 -13
- package/scripts/backlog/backlogrun-args.ts +19 -7
- package/scripts/backlog/backlogrun-cli.ts +19 -5
- package/scripts/backlog/backlogrun-launch.ts +6 -0
- package/scripts/backlog/backlogrun-restart.ts +97 -0
- package/scripts/backlog/backlogrun-stop.ts +79 -7
- package/scripts/behavior/behavior-cli.ts +2 -2
- package/scripts/behavior/behavior-rules.ts +47 -24
- package/scripts/build/build-bin.ts +2 -16
- package/scripts/build/build-claude-md.ts +0 -7
- package/scripts/build/build-commands.ts +0 -13
- package/scripts/build/build-hooks.ts +49 -48
- package/scripts/build/hook-bundle-stamp.ts +29 -11
- package/scripts/build/local-bin.ts +1 -1
- package/scripts/cases/cases-cli.ts +25 -13
- package/scripts/cases/cases-interaction-scan.ts +134 -0
- package/scripts/cases/cases-interaction.ts +183 -0
- package/scripts/cases/cases-logic.ts +39 -6
- package/scripts/ci/pr-classification-main.ts +18 -0
- package/scripts/ci/pr-classification.ts +10 -17
- package/scripts/clone/clone-scan.ts +1 -1
- package/scripts/cost-runtime/cost-blocks.ts +22 -37
- package/scripts/cost-runtime/cost-cli.ts +31 -14
- package/scripts/cost-runtime/cost-main.ts +12 -0
- package/scripts/cost-runtime/cost-transcript.ts +1 -0
- package/scripts/delegation/delegation-policy.ts +17 -4
- package/scripts/delegation/duplicate-read-guard.ts +2 -10
- package/scripts/delegation/investigation-guard.ts +15 -73
- package/scripts/delegation/investigation-reads.ts +3 -5
- package/scripts/dependabot/dependabot-cooldown.ts +194 -0
- package/scripts/discovery/repo-discovery.ts +24 -6
- package/scripts/doctor/doctor-consumer.ts +2 -5
- package/scripts/document/document-byte-budget.ts +9 -6
- package/scripts/document/document-scan.ts +1 -1
- package/scripts/document/document-section-cli.ts +17 -13
- package/scripts/document/document-section-main.ts +12 -0
- package/scripts/document/entry-read-budget.ts +2 -2
- package/scripts/document/read-set-cli.ts +4 -1
- package/scripts/epic/epic-audit-cli.ts +12 -6
- package/scripts/epic/epic-audit-orphans.ts +5 -8
- package/scripts/epic/epic-audit.ts +52 -1
- package/scripts/epic/epic-bundle-apply.ts +137 -0
- package/scripts/epic/epic-bundle-cli.ts +32 -121
- package/scripts/epic/epic-bundle-evidence.ts +49 -26
- package/scripts/epic/epic-bundle-format.ts +116 -0
- package/scripts/epic/epic-bundle-main.ts +17 -0
- package/scripts/epic/epic-bundle-referenced.ts +14 -3
- package/scripts/epic/epic-bundle.ts +17 -9
- package/scripts/epic/epic-busy.ts +5 -12
- package/scripts/epic/epic-classify.ts +24 -15
- package/scripts/epic/epic-cli-argv.ts +31 -0
- package/scripts/epic/epic-cli-decide.ts +42 -0
- package/scripts/epic/epic-cli.ts +6 -38
- package/scripts/epic/epic-close.ts +112 -55
- package/scripts/epic/epic-cross-repo.ts +4 -7
- package/scripts/epic/epic-decide.ts +119 -0
- package/scripts/epic/epic-decision.ts +9 -0
- package/scripts/epic/epic-fetch.ts +4 -0
- package/scripts/epic/epic-graph.ts +2 -0
- package/scripts/epic/epic-issue.ts +5 -1
- package/scripts/epic/epic-label-age.ts +1 -1
- package/scripts/epic/epic-lane-offer.ts +39 -4
- package/scripts/epic/epic-next-main.ts +24 -0
- package/scripts/epic/epic-next.ts +6 -24
- package/scripts/epic/epic-outside-blocker.ts +6 -2
- package/scripts/epic/epic-parse.ts +9 -3
- package/scripts/epic/epic-read.ts +1 -0
- package/scripts/epic/epic-reconcile.ts +39 -0
- package/scripts/epic/epic-run.ts +10 -1
- package/scripts/epic/epic-solo.ts +50 -14
- package/scripts/epic/epic.ts +41 -7
- package/scripts/exports/unused-members-cli.ts +2 -2
- package/scripts/followup/followup-checks-event.ts +8 -3
- package/scripts/followup/followup-coderabbit-wait.ts +82 -0
- package/scripts/followup/followup-review-gates.ts +81 -0
- package/scripts/followup/git-followup-stages.ts +13 -3
- package/scripts/followup/git-followup-workflow.ts +31 -60
- package/scripts/followup/git-pr-followup-wrapup.ts +9 -14
- package/scripts/followup/git-pr-followup.ts +36 -8
- package/scripts/fresh-machine/fresh-machine-cli.ts +1 -1
- package/scripts/fresh-machine/fresh-machine-run.ts +8 -8
- package/scripts/fresh-machine/specs/kit-test-backlogrun.json +1 -1
- package/scripts/gate/busy-average.ts +58 -0
- package/scripts/gate/check-cpu.ts +60 -0
- package/scripts/gate/check-inputs.ts +73 -0
- package/scripts/gate/check-reuse.ts +141 -0
- package/scripts/gate/command-memory.ts +192 -0
- package/scripts/gate/core-admission.ts +218 -28
- package/scripts/gate/core-budget-timing.ts +37 -0
- package/scripts/gate/core-budget.ts +150 -119
- package/scripts/gate/core-wait-record.ts +48 -0
- package/scripts/gate/core-wait.ts +162 -0
- package/scripts/gate/core-weights.ts +86 -0
- package/scripts/gate/free-cores.ts +72 -0
- package/scripts/gate/gate-ledger.ts +49 -7
- package/scripts/gate/gate-plan.ts +44 -15
- package/scripts/gate/gate-report.ts +29 -4
- package/scripts/gate/gate-run-steps.ts +195 -0
- package/scripts/gate/gate-skip.ts +12 -2
- package/scripts/gate/gate-steps.ts +12 -1
- package/scripts/gate/held-mark.ts +55 -0
- package/scripts/gate/input-fingerprint.ts +42 -0
- package/scripts/gate/machine-capacity.ts +124 -31
- package/scripts/gate/moved-paths.ts +67 -0
- package/scripts/gate/pre-commit-type-check.ts +14 -1
- package/scripts/gate/project-checks.ts +5 -12
- package/scripts/gate/scoped-green.ts +12 -8
- package/scripts/gate/since-green.ts +62 -0
- package/scripts/gate/toolchain-inputs.ts +115 -0
- package/scripts/gate/verification-gate.ts +65 -129
- package/scripts/gate/verification-inputs.ts +250 -0
- package/scripts/gh/gh-author-association.ts +96 -9
- package/scripts/gh/git-ai-review-scan.ts +4 -2
- package/scripts/gh/git-gh-api-path.ts +15 -0
- package/scripts/gh/git-gh-branch-rules.ts +73 -0
- package/scripts/gh/git-gh-conditional.ts +5 -2
- package/scripts/gh/git-gh-issue-read.ts +5 -1
- package/scripts/gh/git-gh-issue-rest.ts +1 -0
- package/scripts/gh/git-gh-issue-write.ts +77 -17
- package/scripts/gh/git-gh-issue.ts +7 -3
- package/scripts/gh/git-gh-poll-read.ts +89 -0
- package/scripts/gh/git-gh-pr-auto-merge.ts +8 -3
- package/scripts/gh/git-gh-pr-rest.ts +1 -1
- package/scripts/gh/git-gh-pr-snapshot.ts +33 -20
- package/scripts/gh/git-gh-pr.ts +27 -15
- package/scripts/gh/git-pr-checks-eval.ts +39 -7
- package/scripts/gh/git-pr-checks-parse.ts +39 -9
- package/scripts/gh/git-pr-merge-checked.ts +80 -0
- package/scripts/gh/git-pr.ts +13 -1
- package/scripts/git/base-tree.ts +19 -2
- package/scripts/git/changed-file-scope.ts +6 -4
- package/scripts/git/changed-paths.ts +18 -1
- package/scripts/git/git-diff-reads.ts +27 -2
- package/scripts/git/git-grep-hits.ts +85 -0
- package/scripts/git/git-location-environment.ts +1 -1
- package/scripts/git/git-merge-conflicts.ts +83 -0
- package/scripts/git/git-preflight.ts +37 -12
- package/scripts/git/git-push-transport.ts +1 -2
- package/scripts/git/git-schemas.ts +17 -7
- package/scripts/git/git-spawn.ts +1 -2
- package/scripts/git/git-status.ts +4 -4
- package/scripts/git/main-merge-main.ts +12 -0
- package/scripts/git/main-merge-regenerate.ts +78 -0
- package/scripts/git/main-merge.ts +39 -14
- package/scripts/git/main-sync-main.ts +12 -0
- package/scripts/git/main-sync.ts +0 -9
- package/scripts/git/stash/git-stash.ts +27 -4
- package/scripts/git/stash/{stash-pop-args.ts → stash-args.ts} +13 -10
- package/scripts/git/stash/stash-pop-cli.ts +6 -12
- package/scripts/git/stash/stash-pop-main.ts +12 -0
- package/scripts/git/stash/stash-push-cli.ts +76 -0
- package/scripts/git/stash/stash-push-main.ts +12 -0
- package/scripts/hooks/batch-guard.ts +5 -16
- package/scripts/hooks/check-commit-message-main.ts +8 -0
- package/scripts/hooks/check-commit-message.ts +4 -7
- package/scripts/hooks/format-edited-file.ts +8 -24
- package/scripts/hooks/pre-commit-lint.ts +118 -0
- package/scripts/hooks/pre-push-unit.ts +4 -2
- package/scripts/hooks/pretool-guard-cli.ts +1 -8
- package/scripts/hooks/pretool-guard.ts +57 -69
- package/scripts/hooks/reserved-run.ts +67 -8
- package/scripts/hooks/run-hook.sh +18 -11
- package/scripts/hooks/shell-rules-notice.ts +37 -0
- package/scripts/hooks/stop-actions.ts +185 -0
- package/scripts/hooks/stop-guard.ts +72 -27
- package/scripts/init/hook-command-rewrite.ts +19 -5
- package/scripts/init/hook-launch.ts +15 -12
- package/scripts/init/init-actions.ts +0 -6
- package/scripts/init/init-ai-copy.ts +10 -36
- package/scripts/init/init-bootstrap.ts +9 -8
- package/scripts/init/init-dry-run-report.ts +1 -1
- package/scripts/init/init-dry-run.ts +1 -1
- package/scripts/init/init-file-action.ts +7 -9
- package/scripts/init/init-logic-json-merge.ts +2 -2
- package/scripts/init/init-logic-migrate.ts +9 -82
- package/scripts/init/init-logic.ts +3 -2
- package/scripts/init/init-main.ts +12 -0
- package/scripts/init/init.ts +5 -12
- package/scripts/init/kit-development-versions.ts +3 -7
- package/scripts/init/kit-written-paths.ts +2 -2
- package/scripts/init/project-profile.ts +5 -4
- package/scripts/init/tsconfig-preset-migration.ts +2 -1
- package/scripts/init/vscode-tasks.ts +1 -1
- package/scripts/issue/defect-origin-cli.ts +106 -0
- package/scripts/issue/defect-origin-line.ts +60 -0
- package/scripts/issue/defect-origin-main.ts +11 -0
- package/scripts/issue/defect-origin.ts +114 -0
- package/scripts/issue/defect-rate-cli.ts +34 -78
- package/scripts/issue/defect-rate.ts +0 -16
- package/scripts/issue/defect-report-cli.ts +128 -0
- package/scripts/issue/defect-report-format.ts +56 -0
- package/scripts/issue/defect-report-main.ts +11 -0
- package/scripts/issue/defect-report.ts +160 -0
- package/scripts/issue/expected-effect-lint.ts +60 -0
- package/scripts/issue/issue-already-done-cli.ts +62 -0
- package/scripts/issue/issue-body-or-comment.ts +40 -0
- package/scripts/issue/issue-cite-cli.ts +33 -22
- package/scripts/issue/issue-cite-main.ts +12 -0
- package/scripts/issue/issue-classification.ts +13 -8
- package/scripts/issue/issue-comment-cli.ts +10 -24
- package/scripts/issue/issue-comment-main.ts +12 -0
- package/scripts/issue/issue-evidence-exit.ts +100 -0
- package/scripts/issue/issue-file-cli.ts +29 -7
- package/scripts/issue/issue-file.ts +19 -19
- package/scripts/issue/issue-fold-cli.ts +2 -11
- package/scripts/issue/issue-fold-main.ts +12 -0
- package/scripts/issue/issue-labels.ts +81 -90
- package/scripts/issue/issue-lint-cli.ts +7 -13
- package/scripts/issue/issue-lint-main.ts +12 -0
- package/scripts/issue/issue-measured-cli.ts +56 -0
- package/scripts/issue/issue-merged.ts +19 -2
- package/scripts/issue/issue-not-before-label.ts +135 -0
- package/scripts/issue/issue-not-before.ts +111 -0
- package/scripts/issue/issue-number-shape.ts +15 -1
- package/scripts/issue/issue-park.ts +28 -0
- package/scripts/issue/issue-plan-cli.ts +151 -0
- package/scripts/issue/issue-priority.ts +151 -0
- package/scripts/issue/issue-rank.ts +7 -1
- package/scripts/issue/issue-read-cli.ts +3 -10
- package/scripts/issue/issue-read-main.ts +12 -0
- package/scripts/issue/issue-read.ts +29 -5
- package/scripts/issue/issue-release-cli.ts +0 -10
- package/scripts/issue/issue-release-main.ts +13 -0
- package/scripts/issue/issue-release.ts +7 -12
- package/scripts/issue/issue-sample-gate.ts +192 -0
- package/scripts/issue/issue-sample-source.ts +76 -0
- package/scripts/issue/issue-scout-cli.ts +19 -25
- package/scripts/issue/issue-scout-main.ts +14 -0
- package/scripts/issue/issue-state-cli.ts +0 -10
- package/scripts/issue/issue-state-main.ts +12 -0
- package/scripts/issue/issue-watch-diff.ts +56 -15
- package/scripts/issue/issue-watch.ts +2 -1
- package/scripts/issue/issue-wip.ts +2 -7
- package/scripts/issue/markdown-section.ts +19 -5
- package/scripts/issue/measure-rerun-cli.ts +13 -8
- package/scripts/issue/plan-consumers-cli.ts +39 -0
- package/scripts/issue/plan-consumers-main.ts +11 -0
- package/scripts/issue/plan-consumers-section.ts +55 -0
- package/scripts/issue/plan-consumers.ts +127 -0
- package/scripts/josh/agent-session-environment.ts +1 -1
- package/scripts/josh/command-usage.ts +82 -0
- package/scripts/josh/file-map-stamp.ts +49 -16
- package/scripts/josh/hook-decision.ts +32 -20
- package/scripts/josh/josh-command-map.ts +6 -1
- package/scripts/josh/josh-command-types.ts +65 -13
- package/scripts/josh/josh-commands-agent-hooks.ts +83 -0
- package/scripts/josh/josh-commands-ai.ts +169 -157
- package/scripts/josh/josh-commands-backlog.ts +82 -16
- package/scripts/josh/josh-commands-clone.ts +1 -0
- package/scripts/josh/josh-commands-development.ts +111 -71
- package/scripts/josh/josh-commands-document.ts +43 -1
- package/scripts/josh/josh-commands-epic.ts +171 -0
- package/scripts/josh/josh-commands-hooks.ts +31 -2
- package/scripts/josh/josh-commands-issue-write.ts +181 -0
- package/scripts/josh/josh-commands-issue.ts +124 -24
- package/scripts/josh/josh-commands-lane.ts +112 -2
- package/scripts/josh/josh-commands-lint.ts +19 -8
- package/scripts/josh/josh-commands-maintenance.ts +112 -4
- package/scripts/josh/josh-commands-pause.ts +29 -0
- package/scripts/josh/josh-commands-progress.ts +87 -0
- package/scripts/josh/josh-commands-project.ts +138 -9
- package/scripts/josh/josh-commands-review.ts +124 -0
- package/scripts/josh/josh-commands-run.ts +211 -23
- package/scripts/josh/josh-commands-ship.ts +169 -0
- package/scripts/josh/josh-commands-split.ts +9 -0
- package/scripts/josh/josh-commands-versioning.ts +49 -2
- package/scripts/josh/josh-commands-workflow.ts +149 -6
- package/scripts/josh/josh-logic.ts +11 -27
- package/scripts/josh/josh.ts +14 -5
- package/scripts/josh/package-directory.ts +18 -0
- package/scripts/josh/process-identity.ts +13 -4
- package/scripts/josh/session-language-cli.ts +4 -8
- package/scripts/josh/session-language-main.ts +13 -0
- package/scripts/josh/session-language.ts +6 -1
- package/scripts/josh/shared-cache.ts +90 -0
- package/scripts/josh/stamp-file.ts +9 -15
- package/scripts/lane/lane-await.ts +51 -12
- package/scripts/lane/lane-cache.ts +5 -30
- package/scripts/lane/lane-capacity.ts +19 -22
- package/scripts/lane/lane-check-stats.ts +97 -0
- package/scripts/lane/lane-child-invocation.ts +43 -4
- package/scripts/lane/lane-cli.ts +15 -5
- package/scripts/lane/lane-close.ts +86 -18
- package/scripts/lane/lane-core-wait-stats.ts +66 -0
- package/scripts/lane/lane-dispatch.ts +27 -6
- package/scripts/lane/lane-gap-stats.ts +156 -0
- package/scripts/lane/lane-guard-policy.ts +2 -2
- package/scripts/lane/lane-handoff.ts +76 -1
- package/scripts/lane/lane-held-stats.ts +129 -0
- package/scripts/lane/lane-install.ts +16 -15
- package/scripts/lane/lane-launch-cli.ts +0 -9
- package/scripts/lane/lane-launch-main.ts +12 -0
- package/scripts/lane/lane-ledger-schema.ts +266 -0
- package/scripts/lane/lane-ledger.ts +108 -97
- package/scripts/lane/lane-limit-cli.ts +19 -9
- package/scripts/lane/lane-measure-cli.ts +58 -10
- package/scripts/lane/lane-open.ts +9 -1
- package/scripts/lane/lane-parked.ts +3 -3
- package/scripts/lane/lane-pause-cli.ts +130 -0
- package/scripts/lane/lane-pause.ts +158 -0
- package/scripts/lane/lane-preserve.ts +29 -1
- package/scripts/lane/lane-process-table.ts +166 -0
- package/scripts/lane/lane-reap-settle.ts +124 -0
- package/scripts/lane/lane-reap.ts +50 -15
- package/scripts/lane/lane-registry.ts +33 -10
- package/scripts/lane/lane-residents.ts +162 -0
- package/scripts/lane/lane-restart.ts +26 -27
- package/scripts/lane/lane-round-two-stats.ts +49 -0
- package/scripts/lane/lane-sampler.ts +4 -0
- package/scripts/lane/lane-session-action.ts +160 -0
- package/scripts/lane/lane-session-broker.ts +134 -134
- package/scripts/lane/lane-snapshot-trace.ts +84 -0
- package/scripts/lane/lane-spans.ts +51 -0
- package/scripts/lane/lane-spent.ts +6 -3
- package/scripts/lane/lane-stage-stats.ts +7 -2
- package/scripts/lane/lane-state.ts +302 -0
- package/scripts/lane/lane-stats.ts +58 -4
- package/scripts/lane/lane-stop-stats.ts +113 -37
- package/scripts/lane/lane-test-related-stats.ts +127 -0
- package/scripts/lane/lane-transcript-calls.ts +145 -0
- package/scripts/lane/lane-transcript-stats.ts +168 -0
- package/scripts/lane/lane-vacant.ts +13 -3
- package/scripts/lane/lane-withdraw-cli.ts +72 -0
- package/scripts/lane/lane-withdraw.ts +183 -0
- package/scripts/lane/process-directories.ts +70 -0
- package/scripts/lane/process-lane-marks.ts +94 -0
- package/scripts/lib/atomic-write.ts +62 -0
- package/scripts/lib/buffered-process.ts +12 -5
- package/scripts/lib/cli-flags.ts +53 -0
- package/scripts/lib/figure-format.ts +63 -0
- package/scripts/lib/json-value.ts +9 -1
- package/scripts/lib/package-manifest.ts +35 -0
- package/scripts/lib/read-file.ts +3 -1
- package/scripts/lib/stamped-memo.ts +63 -0
- package/scripts/lib/stdout-on-stderr.ts +24 -0
- package/scripts/lib/timeouts.ts +9 -0
- package/scripts/lib/transcript-record.ts +91 -0
- package/scripts/lines/effective-limit.ts +1 -1
- package/scripts/lint/eslint-cache-dependencies.ts +145 -0
- package/scripts/lint/eslint-daemon.ts +265 -0
- package/scripts/lint/format.ts +14 -5
- package/scripts/lint/import-graph.ts +279 -0
- package/scripts/lint/lint-gate-scope.ts +102 -0
- package/scripts/lint/lint-parallel-main.ts +19 -0
- package/scripts/lint/lint-parallel.ts +72 -33
- package/scripts/lint/lint-related-scope.ts +33 -24
- package/scripts/lint/lint-related.ts +38 -6
- package/scripts/notify/confirmation-options.ts +1 -2
- package/scripts/notify/telegram-notify.ts +20 -20
- package/scripts/notify/telegram-test-logic.ts +0 -1
- package/scripts/notify/telegram-test-main.ts +8 -0
- package/scripts/notify/telegram-test.ts +12 -11
- package/scripts/observations/observation-ledger.ts +13 -0
- package/scripts/observations/observations-flush-landing.ts +5 -3
- package/scripts/observations/observations-flush.ts +6 -1
- package/scripts/overrides/overrides-check.ts +2 -5
- package/scripts/overrides/overrides-files.ts +2 -1
- package/scripts/overrides/overrides-logic.ts +3 -6
- package/scripts/package/verify-optional-eslint-install.ts +8 -6
- package/scripts/propagate/propagate-publish.ts +2 -7
- package/scripts/propagate/propagate-targets.ts +4 -12
- package/scripts/refactor/import-graph.ts +9 -7
- package/scripts/release/github-release-runs.ts +17 -6
- package/scripts/release/release-approval-prune.ts +18 -0
- package/scripts/release/release-history.ts +1 -3
- package/scripts/release/release-progress.ts +42 -22
- package/scripts/release/release-publish-run.ts +39 -0
- package/scripts/release/release-publish.ts +6 -6
- package/scripts/release/release-scope-cli.ts +0 -10
- package/scripts/release/release-scope-main.ts +12 -0
- package/scripts/repo/repo-setting.ts +3 -6
- package/scripts/repo/required-checks-logic.ts +6 -15
- package/scripts/report/report-format-reference.ts +4 -0
- package/scripts/report/report-labels.ts +155 -0
- package/scripts/report/report-lint-cli.ts +3 -0
- package/scripts/report/report-lint.ts +85 -110
- package/scripts/report/report-template-cli.ts +59 -0
- package/scripts/report/report-template.ts +112 -0
- package/scripts/review/acceptance-map-check.ts +61 -0
- package/scripts/review/acceptance-map.ts +206 -0
- package/scripts/review/removed-tests-check.ts +86 -0
- package/scripts/review/removed-tests.ts +149 -0
- package/scripts/review/review-brief-cli.ts +82 -16
- package/scripts/review/review-brief-main.ts +12 -0
- package/scripts/review/review-brief.ts +31 -3
- package/scripts/review/review-code-tree.ts +10 -6
- package/scripts/review/review-comment-round.ts +26 -8
- package/scripts/review/review-finding-ledger.ts +30 -15
- package/scripts/review/review-interaction.ts +94 -0
- package/scripts/review/review-readers-scan.ts +163 -0
- package/scripts/review/review-record-cli.ts +69 -30
- package/scripts/review/review-record-main.ts +12 -0
- package/scripts/review/review-round-one-blobs.ts +221 -0
- package/scripts/review/review-round2-cli.ts +49 -12
- package/scripts/review/review-round2.ts +80 -12
- package/scripts/review/review-stamps.ts +19 -1
- package/scripts/review/review-stop-log.ts +96 -0
- package/scripts/review/review-stops-cli.ts +85 -0
- package/scripts/review/review-tree.ts +6 -17
- package/scripts/review/review-untouched-readers.ts +146 -0
- package/scripts/review/test-titles.ts +118 -0
- package/scripts/rules/agent-model.ts +67 -0
- package/scripts/rules/bash-triggers.ts +46 -3
- package/scripts/rules/decision-oracle-batch.ts +9 -1
- package/scripts/rules/decision-oracle.ts +2 -2
- package/scripts/rules/delivered-rules.ts +90 -3
- package/scripts/rules/destructive-command.ts +8 -1
- package/scripts/rules/direct-filing.ts +10 -2
- package/scripts/rules/direct-issue-comment.ts +117 -0
- package/scripts/rules/direct-pr-create.ts +69 -3
- package/scripts/rules/early-heartbeat.ts +2 -1
- package/scripts/rules/file-body.ts +7 -0
- package/scripts/rules/filing-cap.ts +8 -0
- package/scripts/rules/firing-point.ts +6 -5
- package/scripts/rules/git-argv.ts +72 -14
- package/scripts/rules/git-force.ts +12 -2
- package/scripts/rules/guard-remedy.ts +121 -0
- package/scripts/rules/implementation-cut-verdict.ts +1 -1
- package/scripts/rules/implementation-cut.ts +11 -3
- package/scripts/rules/index-guard.ts +8 -1
- package/scripts/rules/issue-comments.ts +76 -7
- package/scripts/rules/josh-git-bare.ts +7 -0
- package/scripts/rules/lane-background.ts +67 -25
- package/scripts/rules/lane-carry-conflict.ts +6 -0
- package/scripts/rules/lane-direct-tool.ts +74 -0
- package/scripts/rules/lane-interactive-ask.ts +9 -2
- package/scripts/rules/lane-park.ts +45 -23
- package/scripts/rules/lane-split-park.ts +10 -2
- package/scripts/rules/lane-switch-main.ts +7 -0
- package/scripts/rules/last-prompt.ts +50 -5
- package/scripts/rules/oracle-consulted.ts +10 -0
- package/scripts/rules/oracle-firing.ts +1 -0
- package/scripts/rules/oracle-list-cli.ts +7 -0
- package/scripts/rules/permission-guards.ts +3 -0
- package/scripts/rules/piped-verification.ts +4 -2
- package/scripts/rules/poll-loop.ts +7 -0
- package/scripts/rules/pr-merge.ts +123 -0
- package/scripts/rules/protected-files.ts +32 -5
- package/scripts/rules/raw-field-body.ts +6 -0
- package/scripts/rules/rule-body-guard.ts +8 -0
- package/scripts/rules/rule-list.ts +12 -28
- package/scripts/rules/rule-rewrite.ts +114 -0
- package/scripts/rules/rule-value-cache.ts +4 -9
- package/scripts/rules/rule-value-cli.ts +51 -32
- package/scripts/rules/rule-value.ts +8 -2
- package/scripts/rules/shell-segments.ts +50 -0
- package/scripts/rules/stop-decision.ts +77 -0
- package/scripts/rules/stop-rule-rows.ts +64 -0
- package/scripts/rules/stop-rules.ts +150 -51
- package/scripts/rules/tail-commands.ts +15 -1
- package/scripts/rules/test-declared-commit.ts +11 -1
- package/scripts/rules/third-party-write.ts +7 -0
- package/scripts/rules/timed-rerun.ts +69 -0
- package/scripts/rules/worktree-guard.ts +13 -3
- package/scripts/run/board/run-board-app-name.ts +23 -0
- package/scripts/run/board/run-board-cli.ts +65 -30
- package/scripts/run/board/run-board-closed.ts +8 -2
- package/scripts/run/board/run-board-earlier.ts +94 -0
- package/scripts/run/board/run-board-ending-reason.ts +67 -0
- package/scripts/run/board/run-board-estimate-schedule.ts +103 -0
- package/scripts/run/board/run-board-estimate.ts +98 -0
- package/scripts/run/board/run-board-fit.ts +153 -36
- package/scripts/run/board/run-board-fold.ts +123 -0
- package/scripts/run/board/run-board-fresh.ts +2 -2
- package/scripts/run/board/run-board-gather-live.ts +29 -0
- package/scripts/run/board/run-board-gather-thread.ts +189 -0
- package/scripts/run/board/run-board-gather-worker.ts +29 -0
- package/scripts/run/board/run-board-gather.ts +187 -0
- package/scripts/run/board/run-board-github.ts +119 -31
- package/scripts/run/board/run-board-header.ts +86 -21
- package/scripts/run/board/run-board-keys.ts +58 -0
- package/scripts/run/board/run-board-kind.ts +20 -6
- package/scripts/run/board/run-board-labels.ts +118 -71
- package/scripts/run/board/run-board-lane-state.ts +109 -0
- package/scripts/run/board/run-board-lane-time.ts +122 -0
- package/scripts/run/board/run-board-layout.ts +240 -61
- package/scripts/run/board/run-board-length.ts +52 -0
- package/scripts/run/board/run-board-machine.ts +8 -4
- package/scripts/run/board/run-board-main.ts +12 -0
- package/scripts/run/board/run-board-notes.ts +52 -31
- package/scripts/run/board/run-board-now.ts +1 -1
- package/scripts/run/board/run-board-operation.ts +15 -33
- package/scripts/run/board/run-board-phase.ts +1 -1
- package/scripts/run/board/run-board-plan-shared.ts +115 -0
- package/scripts/run/board/run-board-plan.ts +55 -3
- package/scripts/run/board/run-board-planning.ts +45 -0
- package/scripts/run/board/run-board-priority.ts +44 -0
- package/scripts/run/board/run-board-process-groups.ts +195 -0
- package/scripts/run/board/run-board-read.ts +153 -13
- package/scripts/run/board/run-board-reason.ts +238 -45
- package/scripts/run/board/run-board-released.ts +35 -0
- package/scripts/run/board/run-board-render-checks.ts +39 -5
- package/scripts/run/board/run-board-render-condition.ts +96 -0
- package/scripts/run/board/run-board-render-drawn.ts +67 -0
- package/scripts/run/board/run-board-render-foot.ts +59 -0
- package/scripts/run/board/run-board-render-icon.ts +35 -0
- package/scripts/run/board/run-board-render-lanes.ts +145 -0
- package/scripts/run/board/run-board-render-lead.ts +80 -0
- package/scripts/run/board/run-board-render-legend.ts +117 -47
- package/scripts/run/board/run-board-render-notes.ts +156 -29
- package/scripts/run/board/run-board-render-processes.ts +196 -0
- package/scripts/run/board/run-board-render-section.ts +119 -0
- package/scripts/run/board/run-board-render-slot.ts +3 -36
- package/scripts/run/board/run-board-render-tail.ts +115 -48
- package/scripts/run/board/run-board-render-time.ts +56 -0
- package/scripts/run/board/run-board-render-title.ts +117 -24
- package/scripts/run/board/run-board-render-waits.ts +125 -0
- package/scripts/run/board/run-board-render.ts +206 -259
- package/scripts/run/board/run-board-roots.ts +54 -0
- package/scripts/run/board/run-board-row-yield.ts +10 -4
- package/scripts/run/board/run-board-setup.ts +1 -12
- package/scripts/run/board/run-board-snapshot.ts +111 -0
- package/scripts/run/board/run-board-spin.ts +2 -2
- package/scripts/run/board/run-board-state.ts +23 -29
- package/scripts/run/board/run-board-status.ts +206 -79
- package/scripts/run/board/run-board-thanks-read.ts +2 -2
- package/scripts/run/board/run-board-tick.ts +123 -104
- package/scripts/run/board/run-board-usage-board.ts +78 -0
- package/scripts/run/board/run-board-usage-lanes.ts +113 -0
- package/scripts/run/board/run-board-usage-listing.ts +93 -0
- package/scripts/run/board/run-board-usage-read.ts +120 -150
- package/scripts/run/board/run-board-usage-rusage.ts +19 -7
- package/scripts/run/board/run-board-usage-text.ts +139 -51
- package/scripts/run/board/run-board-usage-top.ts +102 -0
- package/scripts/run/board/run-board-usage.ts +89 -72
- package/scripts/run/board/run-board-usual.ts +20 -9
- package/scripts/run/carry/run-carry-args.ts +4 -7
- package/scripts/run/carry/run-carry-conversation.ts +1 -1
- package/scripts/run/carry/run-carry.ts +9 -4
- package/scripts/run/cut/run-cut-cli.ts +3 -2
- package/scripts/run/cut/run-cut-handoff.ts +2 -2
- package/scripts/run/cut/run-cut-report.ts +16 -0
- package/scripts/run/detached-launch.ts +23 -4
- package/scripts/run/entry/run-entry-cli.ts +8 -1
- package/scripts/run/event/run-event-cli.ts +1 -5
- package/scripts/run/event/run-event-filed.ts +12 -6
- package/scripts/run/event/run-event-follow.ts +2 -3
- package/scripts/run/event/run-event-render.ts +7 -10
- package/scripts/run/event/run-event-scope.ts +20 -2
- package/scripts/run/event/run-event-stream-emit.ts +78 -11
- package/scripts/run/event/run-event-stream.ts +37 -7
- package/scripts/run/hold/run-hold-adopt.ts +65 -0
- package/scripts/run/hold/run-hold-cli.ts +93 -22
- package/scripts/run/hold/run-hold-main.ts +12 -0
- package/scripts/run/hold/run-hold-member.ts +37 -0
- package/scripts/run/hold/run-hold-session.ts +46 -0
- package/scripts/run/hold/run-hold.ts +7 -1
- package/scripts/run/hold/run-stop-notify.ts +183 -0
- package/scripts/run/launch-priority.ts +32 -0
- package/scripts/run/merge/run-merge-auth.ts +31 -0
- package/scripts/run/merge/run-merge-cli.ts +72 -107
- package/scripts/run/merge/run-merge-close.ts +74 -0
- package/scripts/run/merge/run-merge-collect.ts +6 -13
- package/scripts/run/merge/run-merge-driver.ts +71 -0
- package/scripts/run/merge/run-merge-main.ts +12 -0
- package/scripts/run/merge/run-merge-outcome.ts +23 -0
- package/scripts/run/merge/run-merge-restart.ts +39 -0
- package/scripts/run/merge/run-merge-ship.ts +20 -4
- package/scripts/run/merge/run-merge-signals.ts +123 -0
- package/scripts/run/merge/run-merge-steps.ts +128 -83
- package/scripts/run/merge/run-merge.ts +53 -40
- package/scripts/run/park/run-park-cli.ts +91 -0
- package/scripts/run/park/run-park.ts +88 -0
- package/scripts/run/park/run-stalled.ts +68 -0
- package/scripts/run/pause/run-pause-cli.ts +73 -0
- package/scripts/run/pause/run-pause.ts +251 -0
- package/scripts/run/progress/run-progress-cli.ts +4 -12
- package/scripts/run/progress/run-progress-clock.ts +1 -1
- package/scripts/run/progress/run-progress-config.ts +6 -14
- package/scripts/run/progress/run-progress-main.ts +12 -0
- package/scripts/run/progress/run-progress.ts +1 -4
- package/scripts/run/review/run-review.ts +2 -1
- package/scripts/run/run-ending.ts +1 -0
- package/scripts/run/run-invocation.ts +5 -6
- package/scripts/run/run-liveness-cli.ts +6 -8
- package/scripts/run/run-liveness.ts +61 -30
- package/scripts/run/run-next.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +2 -2
- package/scripts/run/run-poll-hook.ts +157 -0
- package/scripts/run/run-preflight.ts +18 -3
- package/scripts/run/run-prep-cli.ts +1 -10
- package/scripts/run/run-prep-locate.ts +7 -50
- package/scripts/run/run-prep-main.ts +12 -0
- package/scripts/run/run-prep.ts +6 -0
- package/scripts/run/run-report-cli.ts +101 -13
- package/scripts/run/run-report-handoff.ts +114 -0
- package/scripts/run/run-step-cli.ts +22 -15
- package/scripts/run/run-step-section.ts +85 -0
- package/scripts/run/run-step.ts +1 -1
- package/scripts/run/run-stranded-detect.ts +13 -0
- package/scripts/run/run-watcher-guard-cli.ts +1 -1
- package/scripts/run/run-watcher-guard.ts +1 -1
- package/scripts/run/ship/run-ship-args.ts +121 -0
- package/scripts/run/ship/run-ship-body-draft.ts +110 -0
- package/scripts/run/ship/run-ship-cli.ts +67 -151
- package/scripts/run/ship/run-ship-detach.ts +27 -7
- package/scripts/run/ship/run-ship-infra-retry.ts +59 -0
- package/scripts/run/ship/run-ship-next.ts +27 -3
- package/scripts/run/ship/run-ship-overlap.ts +232 -0
- package/scripts/run/ship/run-ship-place.ts +96 -0
- package/scripts/run/ship/run-ship-pre-detach-timed.ts +43 -0
- package/scripts/run/ship/run-ship-pre-detach.ts +102 -27
- package/scripts/run/ship/run-ship-preflight.ts +161 -30
- package/scripts/run/ship/run-ship-probe.ts +11 -3
- package/scripts/run/ship/run-ship-relaunch-cap.ts +70 -0
- package/scripts/run/ship/run-ship-removed-rows.ts +61 -0
- package/scripts/run/ship/run-ship-return.ts +123 -15
- package/scripts/run/ship/run-ship-review-steps.ts +105 -149
- package/scripts/run/ship/run-ship-review.ts +73 -6
- package/scripts/run/ship/run-ship-reviewer.ts +207 -0
- package/scripts/run/ship/run-ship-stage.ts +55 -6
- package/scripts/run/ship/run-ship-steps.ts +46 -15
- package/scripts/run/ship/run-ship-stop-cause.ts +135 -0
- package/scripts/run/ship/run-ship-stop-context.ts +206 -0
- package/scripts/run/ship/run-ship-stop-text.ts +11 -6
- package/scripts/run/ship/run-ship-sync.ts +57 -12
- package/scripts/run/ship/run-ship.ts +30 -2
- package/scripts/run/tidy/run-tidy-cli.ts +0 -4
- package/scripts/run/tidy/run-tidy-lanes.ts +3 -0
- package/scripts/run/tidy/run-tidy-main.ts +8 -0
- package/scripts/run/wake/run-wake-cli.ts +119 -100
- package/scripts/run/wake/run-wake-code.ts +83 -0
- package/scripts/run/wake/run-wake-driver.ts +19 -8
- package/scripts/run/wake/run-wake-loop.ts +34 -3
- package/scripts/run/wake/run-wake-main.ts +13 -0
- package/scripts/run/wake/run-wake-ports.ts +90 -0
- package/scripts/run/wake/run-wake-takeover.ts +66 -0
- package/scripts/run/wake/run-wake.ts +2 -1
- package/scripts/safe-chain/pack-hook.ts +2 -2
- package/scripts/safe-chain/preinstall-command.ts +2 -1
- package/scripts/safe-chain/project-config.ts +3 -9
- package/scripts/security/security-audit-main.ts +8 -0
- package/scripts/security/security-audit-provision-logic.ts +0 -11
- package/scripts/security/security-audit-provision-main.ts +12 -0
- package/scripts/security/security-audit-provision.ts +11 -26
- package/scripts/security/security-audit.ts +6 -7
- package/scripts/self-sync-guard/self-sync-guard-logic.ts +6 -13
- package/scripts/split/split-assess-cli.ts +2 -2
- package/scripts/split/split-assess.ts +15 -0
- package/scripts/split/split-measure.ts +65 -0
- package/scripts/sync/claude-settings-merge.ts +8 -15
- package/scripts/sync/directory-copy-guard.ts +4 -9
- package/scripts/sync/file-content.ts +78 -8
- package/scripts/sync/sync-ai-files.ts +3 -5
- package/scripts/sync/sync-configs.ts +11 -23
- package/scripts/sync/sync-hook-safety.ts +4 -10
- package/scripts/sync/sync-main.ts +11 -0
- package/scripts/sync/sync.ts +25 -37
- package/scripts/test/test-declared-changed.ts +2 -2
- package/scripts/test/test-declared.ts +1 -1
- package/scripts/test/test-e2e-guard.ts +55 -6
- package/scripts/test/test-e2e-stamp.ts +38 -0
- package/scripts/test/test-pinned-logic.ts +145 -0
- package/scripts/test/test-pinned-main.ts +78 -0
- package/scripts/test/test-pinned.ts +100 -0
- package/scripts/test/test-read-map.ts +264 -0
- package/scripts/test/test-read-recording.ts +91 -0
- package/scripts/test/test-read-trace.ts +148 -0
- package/scripts/test/test-red-main.ts +12 -0
- package/scripts/test/test-red.ts +12 -30
- package/scripts/test/test-related-main.ts +18 -0
- package/scripts/test/test-related-record.ts +119 -0
- package/scripts/test/test-related-scope.ts +229 -43
- package/scripts/test/test-related.ts +300 -22
- package/scripts/test/test-unit-guard-main.ts +15 -0
- package/scripts/test/test-unit-guard.ts +54 -21
- package/scripts/test/unit-count-file.ts +37 -0
- package/scripts/test/unit-run-marker.ts +162 -0
- package/scripts/test/unit-setup-files.ts +51 -0
- package/scripts/test/unit-worker-share.ts +71 -137
- package/scripts/test/whole-suite-files.ts +63 -0
- package/scripts/time-runtime/time-background.ts +20 -2
- package/scripts/time-runtime/time-bundles.ts +4 -3
- package/scripts/time-runtime/time-density-hook.ts +8 -6
- package/scripts/time-runtime/time-followup-stage.ts +1 -3
- package/scripts/time-runtime/time-format.ts +5 -28
- package/scripts/time-runtime/time-markers.ts +10 -1
- package/scripts/time-runtime/time-shell.ts +126 -14
- package/scripts/time-runtime/time-spans.ts +1 -0
- package/scripts/time-runtime/time-tool-call.ts +7 -0
- package/scripts/time-runtime/time-transcript-line.ts +49 -62
- package/scripts/uninstall/uninstall.ts +1 -1
- package/scripts/version/bump-version-main.ts +12 -0
- package/scripts/version/bump-version.ts +25 -25
- package/scripts/version/effective-upstream.ts +6 -12
- package/scripts/version/latest-corepack.ts +17 -32
- package/scripts/version/latest-if-required-cli.ts +93 -0
- package/scripts/version/latest-lane-guard-main.ts +8 -0
- package/scripts/version/latest-lane-guard.ts +0 -4
- package/scripts/version/latest-scope-cli.ts +0 -9
- package/scripts/version/latest-scope-main.ts +12 -0
- package/scripts/version/latest-update.ts +5 -5
- package/scripts/version/npm-registry.ts +44 -6
- package/scripts/version/publishable-range-check.ts +5 -16
- package/scripts/version/release-age.ts +1 -1
- package/scripts/version/release-hold.ts +1 -1
- package/scripts/version/release-window.ts +38 -0
- package/scripts/version/running-binary.ts +1 -1
- package/scripts/version/safe-chain-version-update.ts +3 -8
- package/scripts/version/version-targets.ts +6 -28
- package/templates/dependabot.yml +29 -0
- package/templates/gitignore +10 -3
- package/templates/pnpm-workspace.basic.yaml +1 -1
- package/templates/sonar-project.properties +3 -2
- package/templates/workflows/ci.yml +12 -4
- package/templates/workflows/github-release.yml +4 -0
- package/tsconfig.sonar.json +1 -1
- package/.ncurc.json +0 -3
- package/dist/hooks/batch-guard.js +0 -29
- package/dist/hooks/chunk-43ZHT22P.js +0 -3495
- package/dist/hooks/chunk-CDY4NFQG.js +0 -15
- package/dist/hooks/chunk-EUMACUK2.js +0 -2038
- package/dist/hooks/chunk-H5HVWYXK.js +0 -359
- package/dist/hooks/chunk-IIGFYXKC.js +0 -7104
- package/dist/hooks/chunk-IX6TTTI6.js +0 -95
- package/dist/hooks/chunk-J47HU5H5.js +0 -237
- package/dist/hooks/chunk-K4EOONYM.js +0 -45
- package/dist/hooks/chunk-K4LMBQC2.js +0 -68
- package/dist/hooks/chunk-SHGPANFB.js +0 -56
- package/dist/hooks/chunk-YHBZAJSV.js +0 -79
- package/dist/hooks/chunk-YYPI7SJZ.js +0 -131
- package/dist/hooks/duplicate-read-guard.js +0 -30
- package/dist/hooks/investigation-guard.js +0 -32
- package/scripts/backlog/backlog-stalled-cli.ts +0 -30
- package/scripts/cost-runtime/cost-format.ts +0 -29
- package/scripts/init/basic-path-migration.ts +0 -24
- package/scripts/issue/issue-backlinks-cli.ts +0 -93
- package/scripts/josh/josh-commands-guard.ts +0 -38
- package/scripts/lint/cross-file-recheck.ts +0 -155
- package/scripts/registry-migration/migrate-logic.ts +0 -237
- package/scripts/registry-migration/migrate.ts +0 -292
- package/scripts/registry-migration/user-npmrc.ts +0 -15
- package/scripts/rules/rule-guard.ts +0 -23
- package/scripts/rules/rule-registry-rows.ts +0 -282
- package/scripts/rules/rule-registry.ts +0 -109
- package/scripts/run/run-stranded-cli.ts +0 -27
|
@@ -1,32 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
import {
|
|
3
3
|
pretool_guard
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-YYPI7SJZ.js";
|
|
6
|
-
import "./chunk-43ZHT22P.js";
|
|
7
|
-
import "./chunk-IX6TTTI6.js";
|
|
8
|
-
import "./chunk-EUMACUK2.js";
|
|
9
|
-
import "./chunk-CDY4NFQG.js";
|
|
10
|
-
import "./chunk-YHBZAJSV.js";
|
|
11
|
-
import "./chunk-K4LMBQC2.js";
|
|
12
|
-
import "./chunk-H5HVWYXK.js";
|
|
13
|
-
import "./chunk-SHGPANFB.js";
|
|
4
|
+
} from "./chunk-O2YBIDSI.js";
|
|
14
5
|
import {
|
|
15
6
|
hook_decision
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
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";
|
|
21
12
|
|
|
22
13
|
// scripts/hooks/pretool-guard-cli.ts
|
|
23
|
-
import { text } from "node:stream/consumers";
|
|
24
14
|
import { fileURLToPath } from "node:url";
|
|
25
15
|
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
26
|
-
|
|
27
|
-
else {
|
|
28
|
-
const raw_payload = await text(process.stdin);
|
|
29
|
-
hook_decision.load_environment_file();
|
|
30
|
-
await pretool_guard.respond(raw_payload);
|
|
31
|
-
}
|
|
16
|
+
await hook_decision.respond_from_stdin("pretool:guard", pretool_guard.respond);
|
|
32
17
|
}
|
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
import {
|
|
3
|
+
OBSERVATION_LEDGER_DIRECTORY,
|
|
3
4
|
agent_role_profile,
|
|
4
5
|
detached_launch,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
run_event_stream,
|
|
8
|
-
run_event_stream_emit,
|
|
6
|
+
distributed_paths,
|
|
7
|
+
josh_environment_file,
|
|
9
8
|
run_headless,
|
|
10
9
|
session_language
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import {
|
|
13
|
-
error_text
|
|
14
|
-
} from "./chunk-CDY4NFQG.js";
|
|
15
|
-
import {
|
|
16
|
-
josh_environment_file
|
|
17
|
-
} from "./chunk-K4EOONYM.js";
|
|
10
|
+
} from "./chunk-YCDOIR3I.js";
|
|
18
11
|
import {
|
|
19
12
|
agent_session_environment,
|
|
13
|
+
ancestor_directories,
|
|
14
|
+
file_reader,
|
|
15
|
+
git_common_directory,
|
|
16
|
+
issue_cite,
|
|
20
17
|
json_value,
|
|
18
|
+
package_manifest,
|
|
21
19
|
process_identity,
|
|
22
|
-
run_carry
|
|
23
|
-
|
|
20
|
+
run_carry,
|
|
21
|
+
run_event_stream,
|
|
22
|
+
run_event_stream_emit
|
|
23
|
+
} from "./chunk-WR2KQAYZ.js";
|
|
24
24
|
import {
|
|
25
|
+
error_text,
|
|
25
26
|
stamp_file
|
|
26
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-AZX4FGQ3.js";
|
|
27
28
|
|
|
28
|
-
// scripts/josh/session-language-
|
|
29
|
-
import { fileURLToPath } from "node:url";
|
|
29
|
+
// scripts/josh/session-language-main.ts
|
|
30
|
+
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
30
31
|
|
|
31
32
|
// scripts/backlog/backlogrun-launch.ts
|
|
32
33
|
import { randomUUID } from "node:crypto";
|
|
@@ -99,8 +100,331 @@ function check(profile, ports = default_ports) {
|
|
|
99
100
|
var agent_diagnostics = { check };
|
|
100
101
|
|
|
101
102
|
// scripts/agent/claude-agent-argv.ts
|
|
102
|
-
import { existsSync } from "node:fs";
|
|
103
|
+
import { existsSync as existsSync2 } from "node:fs";
|
|
104
|
+
import path2 from "node:path";
|
|
105
|
+
|
|
106
|
+
// scripts/agent/lane-instructions.ts
|
|
103
107
|
import path from "node:path";
|
|
108
|
+
import { fileURLToPath } from "node:url";
|
|
109
|
+
|
|
110
|
+
// scripts/cost-runtime/cost-tokens.ts
|
|
111
|
+
var ASCII_CHARS_PER_TOKEN = 3;
|
|
112
|
+
var WIDE_TOKENS_PER_CHAR = 1;
|
|
113
|
+
var ASCII_LIMIT = 128;
|
|
114
|
+
function count_chars(text) {
|
|
115
|
+
let ascii_chars = 0;
|
|
116
|
+
let wide_chars = 0;
|
|
117
|
+
for (const char of text) {
|
|
118
|
+
if ((char.codePointAt(0) ?? 0) < ASCII_LIMIT) ascii_chars += 1;
|
|
119
|
+
else wide_chars += 1;
|
|
120
|
+
}
|
|
121
|
+
return { ascii_chars, wide_chars };
|
|
122
|
+
}
|
|
123
|
+
function estimate(text) {
|
|
124
|
+
const { ascii_chars, wide_chars } = count_chars(text);
|
|
125
|
+
return Math.round(ascii_chars / ASCII_CHARS_PER_TOKEN) + wide_chars * WIDE_TOKENS_PER_CHAR;
|
|
126
|
+
}
|
|
127
|
+
function ascii_bytes_to_tokens(bytes) {
|
|
128
|
+
return Math.round(bytes / ASCII_CHARS_PER_TOKEN);
|
|
129
|
+
}
|
|
130
|
+
var cost_tokens = {
|
|
131
|
+
ASCII_CHARS_PER_TOKEN,
|
|
132
|
+
count_chars,
|
|
133
|
+
estimate,
|
|
134
|
+
ascii_bytes_to_tokens
|
|
135
|
+
};
|
|
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
|
+
// scripts/agent/lane-instructions.ts
|
|
349
|
+
var LANE_DOCUMENT = "prompts/collaboration-workflow/lane-instructions.md";
|
|
350
|
+
var RULES_FILE = "CLAUDE.md";
|
|
351
|
+
var POINTER_FILE = "AGENTS.md";
|
|
352
|
+
var INCLUDE_PATTERN = /^<!-- include: CLAUDE\.md → "(?<wanted>.+)" -->$/u;
|
|
353
|
+
var PROMPT_FILE_FLAG = "--append-system-prompt-file";
|
|
354
|
+
var SETTINGS_FLAG = "--settings";
|
|
355
|
+
var PROMPT_FILE_PREFIX = "josh-lane-instructions-";
|
|
356
|
+
var PROMPT_FILE_SUFFIX = ".md";
|
|
357
|
+
var PACKAGE_DIRECTORY = find_package_directory(path.dirname(fileURLToPath(import.meta.url)));
|
|
358
|
+
function expand_line(line, rules) {
|
|
359
|
+
const wanted = INCLUDE_PATTERN.exec(line)?.groups?.["wanted"];
|
|
360
|
+
if (wanted === void 0) return line;
|
|
361
|
+
return document_section.section(rules, wanted)?.text;
|
|
362
|
+
}
|
|
363
|
+
function compose(lane_markdown, rules) {
|
|
364
|
+
const expanded = lane_markdown.split("\n").map((line) => expand_line(line, rules));
|
|
365
|
+
if (expanded.includes(void 0)) return void 0;
|
|
366
|
+
return expanded.join("\n");
|
|
367
|
+
}
|
|
368
|
+
function rules_sources(cwd) {
|
|
369
|
+
const imported = distributed_paths.CLAUDE_MD_IMPORT_LINE.replace(/^@/u, "");
|
|
370
|
+
return [path.join(cwd, RULES_FILE), path.join(cwd, imported)];
|
|
371
|
+
}
|
|
372
|
+
function composed_from(lane_markdown, rules_path) {
|
|
373
|
+
const rules = document_section.read_optional(rules_path);
|
|
374
|
+
return rules === void 0 ? void 0 : compose(lane_markdown, rules);
|
|
375
|
+
}
|
|
376
|
+
function composed_set(cwd, package_directory) {
|
|
377
|
+
const lane_markdown = document_section.read_optional(path.join(package_directory, LANE_DOCUMENT));
|
|
378
|
+
if (lane_markdown === void 0) return void 0;
|
|
379
|
+
for (const rules_path of rules_sources(cwd)) {
|
|
380
|
+
const text = composed_from(lane_markdown, rules_path);
|
|
381
|
+
if (text !== void 0) return { text, rules_path };
|
|
382
|
+
}
|
|
383
|
+
return void 0;
|
|
384
|
+
}
|
|
385
|
+
function composed_in(cwd, package_directory = PACKAGE_DIRECTORY) {
|
|
386
|
+
return composed_set(cwd, package_directory)?.text;
|
|
387
|
+
}
|
|
388
|
+
function written(text) {
|
|
389
|
+
const file_path = stamp_file.stamp_path(PROMPT_FILE_PREFIX, text, PROMPT_FILE_SUFFIX);
|
|
390
|
+
if (stamp_file.read_stamp_text(file_path) === text) return file_path;
|
|
391
|
+
try {
|
|
392
|
+
return stamp_file.replace_text_stamp(file_path, text);
|
|
393
|
+
} catch {
|
|
394
|
+
return void 0;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
function excluded_settings(rules_path, cwd) {
|
|
398
|
+
return JSON.stringify({ claudeMdExcludes: [rules_path, path.join(cwd, POINTER_FILE)] });
|
|
399
|
+
}
|
|
400
|
+
function flags(cwd = process.cwd()) {
|
|
401
|
+
const set = composed_set(cwd, PACKAGE_DIRECTORY);
|
|
402
|
+
const prompt_file = set === void 0 ? void 0 : written(set.text);
|
|
403
|
+
if (set === void 0 || prompt_file === void 0) return [];
|
|
404
|
+
return [PROMPT_FILE_FLAG, prompt_file, SETTINGS_FLAG, excluded_settings(set.rules_path, cwd)];
|
|
405
|
+
}
|
|
406
|
+
function tokens_of(text) {
|
|
407
|
+
return cost_tokens.estimate(text).toLocaleString("en-US");
|
|
408
|
+
}
|
|
409
|
+
function rules_tokens(rules_path) {
|
|
410
|
+
return tokens_of(document_section.read_optional(rules_path) ?? "");
|
|
411
|
+
}
|
|
412
|
+
function resident_line(cwd = process.cwd()) {
|
|
413
|
+
const set = composed_set(cwd, PACKAGE_DIRECTORY);
|
|
414
|
+
const rules = rules_tokens(set?.rules_path ?? path.join(cwd, RULES_FILE));
|
|
415
|
+
const lane_tokens = set === void 0 ? "not composed" : `${tokens_of(set.text)} tok`;
|
|
416
|
+
return ` resident: lane instructions ${lane_tokens} in place of ${RULES_FILE} ${rules} tok`;
|
|
417
|
+
}
|
|
418
|
+
var lane_instructions = {
|
|
419
|
+
PROMPT_FILE_FLAG,
|
|
420
|
+
SETTINGS_FLAG,
|
|
421
|
+
compose,
|
|
422
|
+
composed_in,
|
|
423
|
+
flags,
|
|
424
|
+
resident_line
|
|
425
|
+
};
|
|
426
|
+
|
|
427
|
+
// scripts/agent/claude-agent-argv.ts
|
|
104
428
|
var AGENT_COMMAND = "claude";
|
|
105
429
|
var PERMISSION_FLAGS = ["--permission-mode", "bypassPermissions"];
|
|
106
430
|
var AGENT_FLAGS = [
|
|
@@ -137,23 +461,29 @@ function session_id_flags(session_id) {
|
|
|
137
461
|
return session_id === void 0 ? [] : [SESSION_ID_FLAG, session_id];
|
|
138
462
|
}
|
|
139
463
|
function tool_flags(cwd = process.cwd()) {
|
|
140
|
-
const mcp_config =
|
|
141
|
-
const mcp_flags =
|
|
464
|
+
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];
|
|
142
466
|
return [TOOLS_FLAG, LAUNCHED_TOOLS.join(","), ...mcp_flags];
|
|
143
467
|
}
|
|
468
|
+
function instruction_flags(profile, cwd) {
|
|
469
|
+
if (profile.role === agent_role_profile.SCHEDULER) return [];
|
|
470
|
+
return lane_instructions.flags(cwd);
|
|
471
|
+
}
|
|
144
472
|
function build(invocation, profile, session_id, cwd) {
|
|
145
473
|
return {
|
|
146
474
|
command: AGENT_COMMAND,
|
|
147
475
|
args: [
|
|
148
476
|
...AGENT_FLAGS,
|
|
149
477
|
...tool_flags(cwd),
|
|
478
|
+
...instruction_flags(profile, cwd),
|
|
150
479
|
...session_id_flags(session_id),
|
|
151
480
|
MODEL_FLAG,
|
|
152
481
|
profile.model,
|
|
153
482
|
EFFORT_FLAG,
|
|
154
483
|
profile.effort,
|
|
155
484
|
invocation
|
|
156
|
-
]
|
|
485
|
+
],
|
|
486
|
+
ends_with_prompt: true
|
|
157
487
|
};
|
|
158
488
|
}
|
|
159
489
|
function build_resume(invocation, profile, session_id, cwd) {
|
|
@@ -162,6 +492,7 @@ function build_resume(invocation, profile, session_id, cwd) {
|
|
|
162
492
|
args: [
|
|
163
493
|
...AGENT_FLAGS,
|
|
164
494
|
...tool_flags(cwd),
|
|
495
|
+
...instruction_flags(profile, cwd),
|
|
165
496
|
RESUME_FLAG,
|
|
166
497
|
session_id,
|
|
167
498
|
MODEL_FLAG,
|
|
@@ -169,7 +500,8 @@ function build_resume(invocation, profile, session_id, cwd) {
|
|
|
169
500
|
EFFORT_FLAG,
|
|
170
501
|
profile.effort,
|
|
171
502
|
invocation
|
|
172
|
-
]
|
|
503
|
+
],
|
|
504
|
+
ends_with_prompt: true
|
|
173
505
|
};
|
|
174
506
|
}
|
|
175
507
|
function with_profile(invocation, profile) {
|
|
@@ -191,14 +523,7 @@ var claude_agent_argv = {
|
|
|
191
523
|
|
|
192
524
|
// scripts/agent/codex-agent-argv.ts
|
|
193
525
|
import { lstatSync, mkdirSync } from "node:fs";
|
|
194
|
-
import
|
|
195
|
-
|
|
196
|
-
// scripts/observations/observation-ledger.ts
|
|
197
|
-
var OBSERVATION_LEDGER_DIRECTORY = ".josh/observations";
|
|
198
|
-
var LEDGER_FILE_EXTENSION = ".md";
|
|
199
|
-
var LEGACY_LEDGER_FILE = `legacy${LEDGER_FILE_EXTENSION}`;
|
|
200
|
-
|
|
201
|
-
// scripts/agent/codex-agent-argv.ts
|
|
526
|
+
import path3 from "node:path";
|
|
202
527
|
var AGENT_COMMAND2 = "codex";
|
|
203
528
|
var AGENT_FLAGS2 = ["exec", "--sandbox", "workspace-write"];
|
|
204
529
|
var MODEL_FLAG2 = "--model";
|
|
@@ -209,12 +534,12 @@ var SQLITE_CACHE_PATH = ["node_modules", ".cache", "josh", "openai"];
|
|
|
209
534
|
var EPHEMERAL_FLAG = "--ephemeral";
|
|
210
535
|
var ADD_DIRECTORY_FLAG = "--add-dir";
|
|
211
536
|
var GIT_DIRECTORY = ".git";
|
|
212
|
-
var LEDGER_DIRECTORY =
|
|
537
|
+
var LEDGER_DIRECTORY = path3.dirname(OBSERVATION_LEDGER_DIRECTORY);
|
|
213
538
|
function effort_config(profile) {
|
|
214
539
|
return `model_reasoning_effort="${profile.effort}"`;
|
|
215
540
|
}
|
|
216
541
|
function sqlite_config(cwd) {
|
|
217
|
-
return `sqlite_home=${JSON.stringify(
|
|
542
|
+
return `sqlite_home=${JSON.stringify(path3.resolve(cwd, ...SQLITE_CACHE_PATH))}`;
|
|
218
543
|
}
|
|
219
544
|
function persistence_arguments(profile) {
|
|
220
545
|
return profile.role === agent_role_profile.WORKER ? [] : [EPHEMERAL_FLAG];
|
|
@@ -227,10 +552,10 @@ function ensure_ledger_directory(directory) {
|
|
|
227
552
|
}
|
|
228
553
|
}
|
|
229
554
|
function ledger_arguments(common_directory, profile) {
|
|
230
|
-
if (common_directory === void 0 || profile.role !== agent_role_profile.WORKER ||
|
|
555
|
+
if (common_directory === void 0 || profile.role !== agent_role_profile.WORKER || path3.basename(common_directory) !== GIT_DIRECTORY) {
|
|
231
556
|
return [];
|
|
232
557
|
}
|
|
233
|
-
const directory =
|
|
558
|
+
const directory = path3.join(path3.dirname(common_directory), LEDGER_DIRECTORY);
|
|
234
559
|
ensure_ledger_directory(directory);
|
|
235
560
|
return [ADD_DIRECTORY_FLAG, directory];
|
|
236
561
|
}
|
|
@@ -259,7 +584,8 @@ function build2(invocation, profile, cwd) {
|
|
|
259
584
|
...cwd === void 0 ? [] : lane_arguments(cwd, profile),
|
|
260
585
|
JSON_FLAG,
|
|
261
586
|
invocation
|
|
262
|
-
]
|
|
587
|
+
],
|
|
588
|
+
ends_with_prompt: true
|
|
263
589
|
};
|
|
264
590
|
}
|
|
265
591
|
var codex_agent_argv = { build: build2 };
|
|
@@ -297,13 +623,19 @@ function resume_argv(invocation, profile, phase, cwd) {
|
|
|
297
623
|
const resolved = agent_role_profile.resolve(agent_role_profile.WORKER, process.env, phase);
|
|
298
624
|
return resolved.kind === "rejected" ? resolved : with_profile_in(invocation, resolved.profile, cwd);
|
|
299
625
|
}
|
|
300
|
-
function
|
|
301
|
-
const resolved = agent_role_profile.resolve(role, environment);
|
|
626
|
+
function profiled_in(invocation, resolved, cwd) {
|
|
302
627
|
return resolved.kind === "rejected" ? resolved : with_profile_in(invocation, resolved.profile, cwd);
|
|
303
628
|
}
|
|
629
|
+
function resolve_in(invocation, role, cwd, environment = process.env) {
|
|
630
|
+
return profiled_in(invocation, agent_role_profile.resolve(role, environment), cwd);
|
|
631
|
+
}
|
|
632
|
+
function review_in(invocation, round, cwd, environment = process.env) {
|
|
633
|
+
return profiled_in(invocation, agent_role_profile.resolve_review(round, environment), cwd);
|
|
634
|
+
}
|
|
304
635
|
var agent_argv = {
|
|
305
636
|
resolve: resolve2,
|
|
306
637
|
resolve_in,
|
|
638
|
+
review_in,
|
|
307
639
|
resume_argv,
|
|
308
640
|
with_profile: with_profile2,
|
|
309
641
|
with_profile_in,
|
|
@@ -452,6 +784,9 @@ function signal_parent(pid) {
|
|
|
452
784
|
note_to_stderr(`process ${String(pid)} could not be signalled; its launch record is removed.`);
|
|
453
785
|
}
|
|
454
786
|
}
|
|
787
|
+
function running_parent(git_directory) {
|
|
788
|
+
return live_launch(git_directory)?.pid;
|
|
789
|
+
}
|
|
455
790
|
function stop_parent(git_directory) {
|
|
456
791
|
const record = live_launch(git_directory);
|
|
457
792
|
stamp_file.remove_stamp(launch_path(git_directory));
|
|
@@ -492,6 +827,7 @@ var backlogrun_launch = {
|
|
|
492
827
|
chosen_environment,
|
|
493
828
|
is_running,
|
|
494
829
|
pending_launch,
|
|
830
|
+
running_parent,
|
|
495
831
|
start,
|
|
496
832
|
started_for,
|
|
497
833
|
stop_parent
|
|
@@ -519,8 +855,7 @@ async function is_run_live(ports = LIVE_PORTS) {
|
|
|
519
855
|
function prompt_lines(resolution, is_live) {
|
|
520
856
|
return [format_line(resolution), is_live ? BOARD_LINE : ""].filter((line) => line !== "");
|
|
521
857
|
}
|
|
522
|
-
async function
|
|
523
|
-
josh_environment_file.load_environment_file();
|
|
858
|
+
async function print_prompt_lines() {
|
|
524
859
|
const lines = prompt_lines(resolve_session_lang(), await is_run_live());
|
|
525
860
|
for (const line of lines) console.info(line);
|
|
526
861
|
}
|
|
@@ -530,10 +865,13 @@ var session_language_cli = {
|
|
|
530
865
|
ENV_KEY,
|
|
531
866
|
format_line,
|
|
532
867
|
is_run_live,
|
|
868
|
+
print_prompt_lines,
|
|
533
869
|
prompt_lines,
|
|
534
870
|
resolve_session_lang
|
|
535
871
|
};
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
872
|
+
|
|
873
|
+
// scripts/josh/session-language-main.ts
|
|
874
|
+
if (process.argv[1] === fileURLToPath2(import.meta.url)) {
|
|
875
|
+
josh_environment_file.load_environment_file();
|
|
876
|
+
await session_language_cli.print_prompt_lines();
|
|
877
|
+
}
|