@joshuafolkken/kit 1.1166.0 → 1.1229.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/.claude-plugin/plugin.json +1 -1
- package/.claude/settings.json +2 -2
- package/.claude/skills/dependency-update/SKILL.md +4 -8
- package/.claude/skills/epic-commands/SKILL.md +2 -2
- package/.claude/skills/epic-commands/epic-bundle.md +1 -1
- package/.claude/skills/workflow-commands/SKILL.md +2 -4
- package/.claude/skills/workflow-commands/backlogrun-child.md +6 -4
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +9 -5
- package/.claude/skills/workflow-commands/backlogrun-park.md +29 -9
- package/.claude/skills/workflow-commands/backlogrun-progress.md +7 -2
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +4 -3
- package/.claude/skills/workflow-commands/backlogrun-steps.md +24 -15
- package/.claude/skills/workflow-commands/chain-rule.md +1 -1
- package/.claude/skills/workflow-commands/delegation.md +2 -2
- package/.claude/skills/workflow-commands/followup.md +5 -0
- package/.claude/skills/workflow-commands/fullrun-steps.md +1 -1
- package/.claude/skills/workflow-commands/halfrun.md +1 -1
- package/.claude/skills/workflow-commands/issue-scout.md +1 -1
- package/.claude/skills/workflow-commands/kickoff.md +1 -1
- package/.claude/skills/workflow-commands/observation-ledger.md +3 -3
- package/.claude/skills/workflow-commands/pre-gate-cut.md +10 -5
- package/.claude/skills/workflow-commands/prerequisite.md +2 -2
- package/.claude/skills/workflow-commands/progress-watcher.md +1 -1
- package/.claude/skills/workflow-commands/working-tree-hold.md +1 -1
- package/.codex/hooks.json +2 -2
- package/.cursorrules +6 -41
- package/.github/actions/setup-node/action.yml +1 -1
- package/.github/workflows/auto-tag.yml +3 -4
- package/.github/workflows/ci.yml +47 -33
- package/.github/workflows/dependabot-auto-merge.yml +13 -6
- package/.github/workflows/publish.yml +48 -4
- package/.github/workflows/sonar-qube.yml +3 -0
- package/.pnpmfile.mjs +4 -3
- package/.prettierignore +8 -2
- package/CLAUDE.md +18 -20
- package/README.md +26 -19
- package/SECURITY.md +15 -1
- package/dist/CLAUDE.md +18 -20
- package/dist/commands/document-section-cli.js +734 -0
- package/dist/hooks/audit-provision.js +346 -0
- package/dist/hooks/batch-guard.js +5 -4
- package/dist/hooks/{chunk-DYAVAM6S.js → chunk-55HHG5PX.js} +1405 -631
- package/dist/hooks/{chunk-A6P7PN7P.js → chunk-5VMKCCC4.js} +25 -10
- package/dist/hooks/chunk-5VNDSNG3.js +12 -0
- package/dist/hooks/{chunk-5KTCMCOT.js → chunk-6HJJXRBX.js} +4 -2
- package/dist/hooks/chunk-CDY4NFQG.js +15 -0
- package/dist/hooks/chunk-ELCN5LCH.js +135 -0
- package/dist/hooks/{chunk-ENA7P5FB.js → chunk-F56MFS4B.js} +3 -3
- package/dist/hooks/{chunk-ANJ2WGFD.js → chunk-FIVDHQGT.js} +7 -6
- package/dist/hooks/{chunk-3V37IID6.js → chunk-JBBMAPC4.js} +23 -14
- package/dist/hooks/{chunk-GU5MATVE.js → chunk-JUDKDCDP.js} +499 -389
- package/dist/hooks/{chunk-ZDZ555YH.js → chunk-NV2JRZZO.js} +743 -909
- package/dist/hooks/{chunk-V2BTOZHT.js → chunk-RNWHN5BP.js} +3 -3
- package/dist/hooks/{chunk-URJA6XY4.js → chunk-TQNPDZNH.js} +4 -4
- package/dist/hooks/{chunk-GYNGP7HI.js → chunk-VC3PZPZO.js} +1 -1
- package/dist/hooks/codex-hook-adapter.js +14 -12
- package/dist/hooks/duplicate-read-guard.js +6 -5
- package/dist/hooks/format-edited.js +4 -3
- package/dist/hooks/inputs.json +232 -210
- package/dist/hooks/investigation-guard.js +6 -5
- package/dist/hooks/pretool-guard.js +12 -10
- package/dist/hooks/session-lang.js +2 -4
- package/dist/hooks/stop-guard.js +81 -59
- package/dist/josh.js +872 -75
- package/dist/version/index.d.ts +7 -2
- package/dist/version/index.js +152 -75
- package/eslint/base.js +23 -1
- package/eslint/rules/code-quality.js +3 -0
- package/eslint/rules/early-return-one-liner.js +98 -0
- package/eslint/rules/unicorn.js +16 -1
- package/package.json +7 -6
- package/pnpm-workspace.yaml +9 -4
- package/prettier/basic.d.ts +3 -1
- package/prettier/index.d.ts +3 -1
- package/prettier/static.d.ts +3 -1
- package/prompts/coding-standards.md +1 -1
- package/prompts/collaboration-workflow/file-edits.md +4 -4
- package/prompts/collaboration-workflow/glossary.md +1 -1
- package/prompts/collaboration-workflow/operating-rules.md +17 -9
- package/prompts/collaboration-workflow/overview.md +2 -2
- package/prompts/collaboration-workflow/principles.md +14 -12
- package/prompts/collaboration-workflow/report-format.md +1 -1
- package/prompts/collaboration-workflow/residency.md +1 -1
- package/prompts/collaboration-workflow/rule-delivery.md +6 -6
- package/prompts/collaboration-workflow/shell-body.md +6 -6
- package/prompts/collaboration-workflow/turn-batching.md +1 -1
- package/prompts/collaboration-workflow/upstream-interrupt.md +12 -2
- package/prompts/collaboration-workflow/wip-cap.md +10 -10
- package/prompts/review-rubric.md +1 -2
- package/prompts/review.md +1 -1
- package/scripts/agent/agent-headless.ts +29 -0
- package/scripts/agent/agent-launch-environment.ts +6 -2
- package/scripts/agent/codex-agent-argv.ts +2 -1
- package/scripts/auto-ok/auto-ok-cli.ts +1 -1
- package/scripts/backlog/backlog-arrival.ts +3 -3
- package/scripts/backlog/backlog-budget.ts +1 -1
- package/scripts/backlog/backlog-drive-args.ts +135 -0
- package/scripts/backlog/backlog-drive-cli.ts +11 -137
- package/scripts/backlog/backlog-drive-launch.ts +39 -0
- package/scripts/backlog/backlog-drive-named-offer.ts +3 -5
- package/scripts/backlog/backlog-drive-named.ts +3 -3
- package/scripts/backlog/backlog-drive-offer-argv.ts +1 -1
- package/scripts/backlog/backlog-drive-owner.ts +1 -1
- package/scripts/backlog/backlog-drive-restore.ts +1 -1
- package/scripts/backlog/backlog-drive-retrospective.ts +1 -1
- package/scripts/backlog/backlog-drive.ts +1 -1
- package/scripts/backlog/backlog-next.ts +31 -9
- package/scripts/backlog/backlog-offer-cli.ts +6 -6
- package/scripts/backlog/backlog-offer.ts +1 -1
- package/scripts/backlog/backlog-plan-cli.ts +7 -6
- package/scripts/backlog/backlog-pool.ts +57 -11
- package/scripts/backlog/backlog-rank.ts +18 -9
- package/scripts/backlog/backlog-ready.ts +1 -1
- package/scripts/backlog/backlog-restructure.ts +152 -0
- package/scripts/backlog/backlog-scope.ts +1 -1
- package/scripts/backlog/backlog-stalled-detect.ts +2 -2
- package/scripts/backlog/backlog-stalled.ts +1 -1
- package/scripts/backlog/backlog-waves.ts +15 -17
- package/scripts/build/build-codex-hooks.ts +3 -1
- package/scripts/build/build-commands.ts +66 -0
- package/scripts/build/build-hooks.ts +2 -1
- package/scripts/build/build-library.ts +12 -3
- package/scripts/build/build.ts +70 -0
- package/scripts/build/local-bin.ts +3 -13
- package/scripts/cost-runtime/context-cut-threshold.ts +1 -9
- package/scripts/cost-runtime/cost-verdict.ts +15 -28
- package/scripts/delegation/investigation-reads.ts +3 -1
- package/scripts/discovery/repo-origin.ts +5 -5
- package/scripts/doctor/doctor-consumer.ts +2 -2
- package/scripts/doctor/doctor-io.ts +2 -3
- package/scripts/document/capped-print-part.ts +30 -0
- package/scripts/document/capped-print.ts +3 -4
- package/scripts/document/document-byte-budget.ts +11 -2
- package/scripts/document/document-scan.ts +117 -0
- package/scripts/document/document-section.ts +143 -16
- package/scripts/document/entry-read-budget.ts +5 -3
- package/scripts/document/entry-read-set.ts +10 -89
- package/scripts/document/read-set-cost.ts +98 -0
- package/scripts/epic/epic-add-body.ts +1 -0
- package/scripts/epic/epic-audit-checks.ts +1 -1
- package/scripts/epic/epic-audit-rationale.ts +4 -3
- package/scripts/epic/epic-bundle-cli.ts +14 -3
- package/scripts/epic/epic-bundle-poll.ts +41 -0
- package/scripts/epic/epic-busy.ts +1 -1
- package/scripts/epic/epic-candidate-confirm.ts +3 -2
- package/scripts/epic/epic-classify.ts +1 -1
- package/scripts/epic/epic-cli-argv.ts +78 -46
- package/scripts/epic/epic-cli-remove.ts +11 -19
- package/scripts/epic/epic-cli.ts +74 -73
- package/scripts/epic/epic-close-comment.ts +1 -1
- package/scripts/epic/epic-close.ts +1 -1
- package/scripts/epic/epic-cross-repo.ts +5 -5
- package/scripts/epic/epic-graph.ts +1 -1
- package/scripts/epic/epic-index.ts +1 -1
- package/scripts/epic/epic-issue.ts +2 -6
- package/scripts/epic/epic-lane-offer.ts +2 -2
- package/scripts/epic/epic-next.ts +29 -42
- package/scripts/epic/epic-solo-stale.ts +1 -1
- package/scripts/epic/epic-triage.ts +8 -4
- package/scripts/epic/epic-validate.ts +1 -1
- package/scripts/followup/git-followup-finish.ts +2 -2
- package/scripts/followup/git-followup-label.ts +2 -2
- package/scripts/followup/git-followup-merged.ts +2 -2
- package/scripts/followup/git-followup-stages.ts +9 -0
- package/scripts/followup/git-pr-followup-checks.ts +142 -0
- package/scripts/followup/git-pr-followup.ts +5 -130
- package/scripts/gate/core-budget.ts +69 -1
- package/scripts/gate/gate-plan.ts +47 -7
- package/scripts/gate/gate-skip.ts +38 -7
- package/scripts/gate/hook-gate-reuse.ts +12 -10
- package/scripts/gate/pre-commit-type-check.ts +4 -1
- package/scripts/gate/project-checks.ts +6 -9
- package/scripts/gate/type-check-step.ts +2 -3
- package/scripts/gate/verification-gate.ts +27 -8
- package/scripts/gh/git-gh-api-path.ts +2 -2
- package/scripts/gh/git-gh-issue-rest.ts +3 -3
- package/scripts/gh/git-gh-issue-write.ts +53 -7
- package/scripts/gh/git-gh-issue.ts +5 -3
- package/scripts/gh/git-gh-pr-read.ts +68 -19
- package/scripts/gh/git-gh-pr-rest.ts +1 -1
- package/scripts/gh/git-gh-pr.ts +5 -1
- package/scripts/gh/git-pr-ai-review.ts +1 -1
- package/scripts/gh/git-pr-checks-eval.ts +9 -3
- package/scripts/gh/git-pr-checks-parse.ts +1 -1
- package/scripts/gh/git-pr-checks-watch.ts +6 -5
- package/scripts/gh/git-pr-checks.ts +18 -6
- package/scripts/gh/git-pr-coderabbit.ts +1 -1
- package/scripts/gh/git-pr-error.ts +1 -3
- package/scripts/gh/git-pr.ts +9 -13
- package/scripts/gh/github-issue-url.ts +2 -2
- package/scripts/git/constants.ts +12 -6
- package/scripts/git/git-command.ts +20 -218
- package/scripts/git/git-diff-reads.ts +225 -0
- package/scripts/git/git-error.ts +4 -12
- package/scripts/git/git-pre-push-hook.ts +139 -0
- package/scripts/git/git-prompt.ts +2 -6
- package/scripts/git/{schemas.ts → git-schemas.ts} +2 -0
- package/scripts/git/git-spawn-sync.ts +3 -1
- package/scripts/git/git-spawn.ts +1 -1
- package/scripts/git/git-staging.ts +4 -6
- package/scripts/git/git-status.ts +3 -9
- package/scripts/git/main-merge.ts +57 -21
- package/scripts/hooks/codex-hook-adapter.ts +1 -1
- package/scripts/hooks/edited-cspell.ts +2 -4
- package/scripts/hooks/format-edited-file.ts +3 -12
- package/scripts/hooks/pre-push-unit.ts +31 -9
- package/scripts/hooks/reserved-run.ts +2 -2
- package/scripts/hooks/run-hook.sh +5 -4
- package/scripts/hooks/stop-guard.ts +5 -3
- package/scripts/init/init-actions.ts +0 -5
- package/scripts/init/init-ai-copy.ts +13 -2
- package/scripts/init/init-logic-json-merge.ts +19 -0
- package/scripts/init/init-logic-secretlint.ts +7 -7
- package/scripts/init/init-logic-workspace.ts +41 -2
- package/scripts/init/init-logic.ts +16 -26
- package/scripts/init/init.ts +5 -15
- package/scripts/init/initial-commit.ts +4 -4
- package/scripts/init/kit-development-versions.ts +40 -0
- package/scripts/init/kit-setup-state.ts +2 -2
- package/scripts/init/start-exec.ts +68 -19
- package/scripts/init/start-setup-pr.ts +9 -9
- package/scripts/init/start-steps.ts +6 -10
- package/scripts/issue/defect-rate-cli.ts +1 -1
- package/scripts/issue/git-next-issues.ts +1 -1
- package/scripts/issue/issue-auto-ok.ts +1 -1
- package/scripts/issue/issue-backlinks-cli.ts +2 -2
- package/scripts/issue/issue-backlinks.ts +9 -9
- package/scripts/issue/issue-comment-cli.ts +19 -13
- package/scripts/issue/issue-file-cli.ts +45 -18
- package/scripts/issue/issue-file.ts +24 -1
- package/scripts/issue/issue-scout-closed.ts +1 -1
- package/scripts/issue/issue-state-cli.ts +30 -74
- package/scripts/josh/josh-command-map.ts +2 -0
- package/scripts/josh/josh-command-types.ts +11 -0
- package/scripts/josh/josh-commands-ai.ts +4 -4
- package/scripts/josh/josh-commands-backlog.ts +4 -1
- package/scripts/josh/josh-commands-development.ts +11 -1
- package/scripts/josh/josh-commands-document.ts +1 -0
- package/scripts/josh/josh-commands-lane.ts +22 -0
- package/scripts/josh/josh-commands-maintenance.ts +4 -4
- package/scripts/josh/josh-commands-run.ts +12 -7
- package/scripts/josh/josh-in-process.ts +28 -9
- package/scripts/josh/josh-logic.ts +33 -15
- package/scripts/josh/process-identity.ts +1 -3
- package/scripts/josh/session-language-cli.ts +3 -4
- package/scripts/lane/lane-await.ts +5 -1
- package/scripts/lane/lane-child-invocation.ts +2 -2
- package/scripts/lane/lane-cli.ts +3 -3
- package/scripts/lane/lane-dispatch.ts +14 -10
- package/scripts/lane/lane-environment.ts +5 -1
- package/scripts/lane/lane-handoff.ts +1 -1
- package/scripts/lane/lane-install.ts +2 -13
- package/scripts/lane/lane-launch-cli.ts +35 -3
- package/scripts/lane/lane-ledger.ts +145 -0
- package/scripts/lane/lane-leftover.ts +1 -1
- package/scripts/lane/lane-load.ts +108 -0
- package/scripts/lane/lane-measure-cli.ts +149 -0
- package/scripts/lane/lane-occupancy.ts +3 -0
- package/scripts/lane/lane-reap.ts +1 -3
- package/scripts/lane/lane-relaunch.ts +1 -1
- package/scripts/lane/lane-stats.ts +224 -0
- package/scripts/lane/lane-vacant.ts +36 -0
- package/scripts/lane/openai-lane-ship.ts +2 -2
- package/scripts/lane/openai-lane-supervisor-owner.ts +180 -0
- package/scripts/lane/openai-lane-supervisor.ts +7 -165
- package/scripts/lane/openai-review-broker.ts +2 -4
- package/scripts/lib/ancestor-directories.ts +35 -0
- package/scripts/lib/animation-helpers.ts +2 -2
- package/scripts/lib/buffered-process.ts +3 -7
- package/scripts/lib/cli-flags.ts +71 -1
- package/scripts/lib/spawn-exit.ts +2 -2
- package/scripts/lib/timeouts.ts +35 -2
- package/scripts/lines/line-budget.ts +4 -6
- package/scripts/notify/telegram-notify.ts +26 -1
- package/scripts/notify/telegram-test.ts +6 -0
- package/scripts/observations/observation-ledger-line.ts +6 -6
- package/scripts/observations/observation-ledger-migrate.ts +55 -4
- package/scripts/observations/observation-ledger.ts +26 -7
- package/scripts/overrides/lockfile-overrides.ts +1 -1
- package/scripts/overrides/overrides-logic.ts +1 -1
- package/scripts/propagate/propagate-git.ts +1 -1
- package/scripts/propagate/propagate-publish.ts +2 -2
- package/scripts/propagate/propagate-steps.ts +20 -15
- package/scripts/propagate/propagate.ts +36 -27
- package/scripts/refactor/import-graph.ts +18 -1
- package/scripts/refactor/refactor-lint.ts +4 -4
- package/scripts/repo/repository-labels.ts +2 -2
- package/scripts/repo/required-checks-logic.ts +1 -3
- package/scripts/review/live-evidence.ts +2 -4
- package/scripts/review/review-brief-cli.ts +1 -1
- package/scripts/review/review-finding-ledger.ts +1 -1
- package/scripts/review/review-findings-cli.ts +1 -3
- package/scripts/rules/decision-oracle-batch.ts +128 -0
- package/scripts/rules/decision-oracle-tokens.ts +21 -0
- package/scripts/rules/decision-oracle.ts +8 -120
- package/scripts/rules/delivered-rules.ts +26 -182
- package/scripts/rules/direct-filing.ts +1 -1
- package/scripts/rules/early-heartbeat.ts +3 -3
- package/scripts/rules/git-argv.ts +1 -1
- package/scripts/rules/git-force.ts +1 -1
- package/scripts/rules/implementation-cut.ts +2 -2
- package/scripts/rules/index-guard.ts +1 -1
- package/scripts/rules/issue-comments.ts +118 -0
- package/scripts/rules/{issue-fold.ts → issue-fold-rule.ts} +2 -2
- package/scripts/rules/lane-background.ts +2 -2
- package/scripts/rules/lane-park.ts +18 -0
- package/scripts/rules/lane-split-park.ts +128 -0
- package/scripts/rules/oracle-firing.ts +1 -1
- package/scripts/rules/poll-loop.ts +1 -1
- package/scripts/rules/pre-gate-cut.ts +3 -3
- package/scripts/rules/protected-files.ts +59 -4
- package/scripts/rules/{run-tail.ts → run-tail-rule.ts} +2 -2
- package/scripts/rules/shell-body-trigger.ts +1 -1
- package/scripts/rules/stop-rules.ts +18 -7
- package/scripts/rules/test-declared-commit.ts +4 -4
- package/scripts/rules/wip-cap.ts +63 -0
- package/scripts/run/{run-carry-args.ts → carry/run-carry-args.ts} +37 -13
- package/scripts/run/{run-carry-change.ts → carry/run-carry-change.ts} +29 -7
- package/scripts/run/{run-carry-cli.ts → carry/run-carry-cli.ts} +4 -6
- package/scripts/run/{run-carry.ts → carry/run-carry.ts} +12 -6
- package/scripts/run/{run-cut-args.ts → cut/run-cut-args.ts} +1 -1
- package/scripts/run/{run-cut-cli.ts → cut/run-cut-cli.ts} +3 -3
- package/scripts/run/{run-cut-report.ts → cut/run-cut-report.ts} +2 -2
- package/scripts/run/{run-cut.ts → cut/run-cut.ts} +1 -1
- package/scripts/run/{run-entry-cli.ts → entry/run-entry-cli.ts} +11 -11
- package/scripts/run/{run-entry.ts → entry/run-entry.ts} +2 -2
- package/scripts/run/{run-event-scope.ts → event/run-event-scope.ts} +1 -1
- package/scripts/run/{run-event-stream-emit.ts → event/run-event-stream-emit.ts} +1 -1
- package/scripts/run/{run-event-stream.ts → event/run-event-stream.ts} +16 -2
- package/scripts/run/{run-hold-cli.ts → hold/run-hold-cli.ts} +5 -5
- package/scripts/run/{run-merge-cli.ts → merge/run-merge-cli.ts} +10 -5
- package/scripts/run/{run-merge-steps.ts → merge/run-merge-steps.ts} +53 -5
- package/scripts/run/{run-merge.ts → merge/run-merge.ts} +1 -1
- package/scripts/run/{run-progress-cli.ts → progress/run-progress-cli.ts} +1 -1
- package/scripts/run/{run-progress-config.ts → progress/run-progress-config.ts} +2 -17
- package/scripts/run/{run-progress-read.ts → progress/run-progress-read.ts} +5 -5
- package/scripts/run/{run-progress.ts → progress/run-progress.ts} +1 -1
- package/scripts/run/{run-review-steps.ts → review/run-review-steps.ts} +2 -3
- package/scripts/run/run-ending.ts +2 -2
- package/scripts/run/run-halfrun-resume.ts +6 -1
- package/scripts/run/run-headless.ts +1 -1
- package/scripts/run/run-invocation.ts +85 -84
- package/scripts/run/run-liveness.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +1 -1
- package/scripts/run/run-preflight.ts +6 -6
- package/scripts/run/run-prep-cli.ts +1 -1
- package/scripts/run/run-prrun-resume.ts +1 -1
- package/scripts/run/run-report-cli.ts +4 -4
- package/scripts/run/run-report.ts +2 -2
- package/scripts/run/run-status-cli.ts +1 -1
- package/scripts/run/run-step-cli.ts +3 -3
- package/scripts/run/run-step.ts +2 -2
- package/scripts/run/run-stop-notify.ts +1 -1
- package/scripts/run/run-stranded-detect.ts +4 -4
- package/scripts/run/run-stranded.ts +2 -2
- package/scripts/run/run-watcher-guard-cli.ts +1 -1
- package/scripts/run/run-watcher-guard.ts +5 -3
- package/scripts/run/run-watcher-hook.ts +1 -1
- package/scripts/run/{run-ship-cli.ts → ship/run-ship-cli.ts} +29 -8
- package/scripts/run/{run-ship-detach.ts → ship/run-ship-detach.ts} +3 -3
- package/scripts/run/ship/run-ship-lock.ts +50 -0
- package/scripts/run/{run-ship-next.ts → ship/run-ship-next.ts} +13 -0
- package/scripts/run/ship/run-ship-pre-detach.ts +66 -0
- package/scripts/run/{run-ship-preflight.ts → ship/run-ship-preflight.ts} +6 -2
- package/scripts/run/{run-ship-probe.ts → ship/run-ship-probe.ts} +2 -2
- package/scripts/run/{run-ship-return.ts → ship/run-ship-return.ts} +10 -6
- package/scripts/run/{run-ship-review-steps.ts → ship/run-ship-review-steps.ts} +3 -3
- package/scripts/run/{run-ship-scoped.ts → ship/run-ship-scoped.ts} +10 -1
- package/scripts/run/{run-ship-stage.ts → ship/run-ship-stage.ts} +13 -0
- package/scripts/run/{run-ship-steps.ts → ship/run-ship-steps.ts} +15 -8
- package/scripts/run/ship/run-ship-stop-text.ts +13 -0
- package/scripts/run/ship/run-ship-sync.ts +128 -0
- package/scripts/run/{run-ship.ts → ship/run-ship.ts} +6 -0
- package/scripts/run/{run-tidy-lanes.ts → tidy/run-tidy-lanes.ts} +1 -1
- package/scripts/run/{run-wake-cli.ts → wake/run-wake-cli.ts} +31 -9
- package/scripts/run/{run-wake-describe.ts → wake/run-wake-describe.ts} +3 -3
- package/scripts/run/{run-wake-driver.ts → wake/run-wake-driver.ts} +99 -17
- package/scripts/run/{run-wake-handoff.ts → wake/run-wake-handoff.ts} +1 -1
- package/scripts/run/{run-wake-loop.ts → wake/run-wake-loop.ts} +8 -2
- package/scripts/run/wake/run-wake-restart.ts +58 -0
- package/scripts/run/{run-wake-session.ts → wake/run-wake-session.ts} +3 -3
- package/scripts/run/{run-wake.ts → wake/run-wake.ts} +1 -1
- package/scripts/safe-chain/preinstall-command.ts +20 -21
- package/scripts/safe-chain/project-config.ts +19 -15
- package/scripts/sync/sync-ai-files.ts +1 -1
- package/scripts/sync/sync-configs.ts +2 -1
- package/scripts/sync/sync.ts +15 -2
- package/scripts/test/test-red-logic.ts +17 -2
- package/scripts/test/test-red.ts +8 -7
- package/scripts/test/unit-worker-share.ts +1 -0
- package/scripts/time-runtime/time-background.ts +5 -1
- package/scripts/time-runtime/time-instant.ts +3 -1
- package/scripts/time-runtime/time-spans.ts +6 -139
- package/scripts/time-runtime/time-tool-call.ts +160 -0
- package/scripts/time-runtime/time-transcript-line.ts +27 -1
- package/scripts/version/effective-upstream.ts +2 -20
- package/scripts/version/latest-corepack.ts +17 -17
- package/scripts/version/latest-regression.ts +1 -1
- package/scripts/version/latest-update.ts +4 -4
- package/scripts/version/npm-registry.ts +20 -5
- package/scripts/version/publishable-range-check.ts +2 -2
- package/scripts/version/publishable-range.ts +1 -1
- package/scripts/version/release-age.ts +48 -38
- package/scripts/version/release-hold.ts +1 -1
- package/scripts/version/safe-chain-version-update.ts +40 -0
- package/scripts/version/upgrade-shell-command.ts +48 -8
- package/scripts/version/version-check-logic.ts +23 -14
- package/scripts/version/version-commands.ts +23 -11
- package/scripts/version/version-remote.ts +28 -13
- package/templates/pnpm-workspace.basic.yaml +4 -0
- package/templates/workflows/dependabot-auto-merge.yml +5 -5
- package/templates/workflows/github-release.yml +2 -0
- package/scripts/build/build-config-merge.ts +0 -27
- package/scripts/build/build-managed-marker.ts +0 -27
- package/scripts/build/build-self-sync-guard.ts +0 -27
- package/scripts/build/build-version.ts +0 -26
- package/scripts/version/preinstall-version-update.ts +0 -86
- /package/scripts/overrides/{schemas.ts → overrides-schemas.ts} +0 -0
- /package/scripts/run/{run-carry-conversation.ts → carry/run-carry-conversation.ts} +0 -0
- /package/scripts/run/{run-carry-reclaim.ts → carry/run-carry-reclaim.ts} +0 -0
- /package/scripts/run/{run-carry-stash.ts → carry/run-carry-stash.ts} +0 -0
- /package/scripts/run/{run-carry-streak.ts → carry/run-carry-streak.ts} +0 -0
- /package/scripts/run/{run-cut-handoff.ts → cut/run-cut-handoff.ts} +0 -0
- /package/scripts/run/{run-entry-stop.ts → entry/run-entry-stop.ts} +0 -0
- /package/scripts/run/{run-event-cli.ts → event/run-event-cli.ts} +0 -0
- /package/scripts/run/{run-event-follow.ts → event/run-event-follow.ts} +0 -0
- /package/scripts/run/{run-event-render.ts → event/run-event-render.ts} +0 -0
- /package/scripts/run/{run-event-watch.ts → event/run-event-watch.ts} +0 -0
- /package/scripts/run/{run-hold.ts → hold/run-hold.ts} +0 -0
- /package/scripts/run/{run-progress-args.ts → progress/run-progress-args.ts} +0 -0
- /package/scripts/run/{run-progress-clock.ts → progress/run-progress-clock.ts} +0 -0
- /package/scripts/run/{run-review-cli.ts → review/run-review-cli.ts} +0 -0
- /package/scripts/run/{run-review.ts → review/run-review.ts} +0 -0
- /package/scripts/run/{run-ship-review.ts → ship/run-ship-review.ts} +0 -0
- /package/scripts/run/{run-tidy-cli.ts → tidy/run-tidy-cli.ts} +0 -0
- /package/scripts/run/{run-tidy-stashes.ts → tidy/run-tidy-stashes.ts} +0 -0
- /package/scripts/run/{run-tidy.ts → tidy/run-tidy.ts} +0 -0
package/dist/hooks/stop-guard.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
import {
|
|
3
|
-
FETCH_TIMEOUT_MS,
|
|
4
3
|
RUN_LANE_LABEL,
|
|
5
4
|
RUN_SOLO_LABEL,
|
|
5
|
+
agent_headless,
|
|
6
6
|
agent_role_profile,
|
|
7
7
|
backlog_budget,
|
|
8
8
|
filing_cap,
|
|
@@ -15,8 +15,6 @@ import {
|
|
|
15
15
|
lane_handoff,
|
|
16
16
|
lane_park,
|
|
17
17
|
lane_registry,
|
|
18
|
-
process_identity,
|
|
19
|
-
process_owner_schema,
|
|
20
18
|
repo_party,
|
|
21
19
|
run_carry,
|
|
22
20
|
run_cut,
|
|
@@ -25,24 +23,32 @@ import {
|
|
|
25
23
|
run_headless,
|
|
26
24
|
run_hold,
|
|
27
25
|
run_invocation
|
|
28
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-NV2JRZZO.js";
|
|
29
27
|
import {
|
|
30
28
|
session_language
|
|
31
29
|
} from "./chunk-6V5OPIUU.js";
|
|
30
|
+
import {
|
|
31
|
+
timed_fetch
|
|
32
|
+
} from "./chunk-5VNDSNG3.js";
|
|
33
|
+
import "./chunk-CDY4NFQG.js";
|
|
32
34
|
import {
|
|
33
35
|
hook_decision,
|
|
34
36
|
lane_child_marker
|
|
35
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-6HJJXRBX.js";
|
|
36
38
|
import {
|
|
37
|
-
PROJECT_ROOT,
|
|
38
39
|
json_value,
|
|
39
|
-
|
|
40
|
+
process_identity,
|
|
41
|
+
process_owner_schema,
|
|
40
42
|
time_density_hook,
|
|
41
43
|
time_hook_transcript,
|
|
42
44
|
time_reported_failure
|
|
43
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-55HHG5PX.js";
|
|
44
46
|
import "./chunk-WPALEIRX.js";
|
|
45
47
|
import "./chunk-RKUAD3I6.js";
|
|
48
|
+
import {
|
|
49
|
+
PROJECT_ROOT,
|
|
50
|
+
stamp_file
|
|
51
|
+
} from "./chunk-ELCN5LCH.js";
|
|
46
52
|
|
|
47
53
|
// scripts/hooks/stop-guard.ts
|
|
48
54
|
import { text } from "node:stream/consumers";
|
|
@@ -244,10 +250,12 @@ var issue_citation = {
|
|
|
244
250
|
|
|
245
251
|
// scripts/epic/epic-triage.ts
|
|
246
252
|
var TRIAGE_VERDICT = "triage";
|
|
247
|
-
function
|
|
248
|
-
const { labels } = child;
|
|
253
|
+
function has_triage_label(labels) {
|
|
249
254
|
return has_label_name(labels, RUN_SOLO_LABEL) || has_label_name(labels, RUN_LANE_LABEL);
|
|
250
255
|
}
|
|
256
|
+
function is_triaged(child) {
|
|
257
|
+
return has_triage_label(child.labels);
|
|
258
|
+
}
|
|
251
259
|
function untriaged(children) {
|
|
252
260
|
return children.filter((child) => !is_triaged(child));
|
|
253
261
|
}
|
|
@@ -258,7 +266,7 @@ function message(children, repo) {
|
|
|
258
266
|
repo
|
|
259
267
|
);
|
|
260
268
|
}
|
|
261
|
-
var epic_triage = { TRIAGE_VERDICT, is_triaged, message, untriaged };
|
|
269
|
+
var epic_triage = { TRIAGE_VERDICT, has_triage_label, is_triaged, message, untriaged };
|
|
262
270
|
|
|
263
271
|
// scripts/backlog/backlog-stalled.ts
|
|
264
272
|
var STALL_THRESHOLD_MINUTES = 10;
|
|
@@ -411,14 +419,12 @@ function get_repo_name_with_owner_within(timeout_ms) {
|
|
|
411
419
|
}
|
|
412
420
|
var gh_spawn = { get_repo_name_with_owner, get_repo_name_with_owner_within };
|
|
413
421
|
|
|
414
|
-
// scripts/lib/timed-fetch.ts
|
|
415
|
-
async function timed_fetch(url, init = {}, timeout_ms = FETCH_TIMEOUT_MS) {
|
|
416
|
-
return await fetch(url, { ...init, signal: AbortSignal.timeout(timeout_ms) });
|
|
417
|
-
}
|
|
418
|
-
|
|
419
422
|
// scripts/notify/telegram-notify.ts
|
|
420
423
|
import { z } from "zod";
|
|
421
424
|
var TELEGRAM_API_BASE = "https://api.telegram.org";
|
|
425
|
+
var TELEGRAM_TEXT_LIMIT = 4096;
|
|
426
|
+
var BODY_TRUNCATION_MARK = "\n...";
|
|
427
|
+
var TRAILING_HIGH_SURROGATE = /[\uD800-\uDBFF]$/u;
|
|
422
428
|
var telegram_environment_schema = z.object({
|
|
423
429
|
telegram_bot_token: z.string().min(1, { message: "TELEGRAM_BOT_TOKEN is required" }),
|
|
424
430
|
telegram_chat_id: z.string().min(1, { message: "TELEGRAM_CHAT_ID is required" })
|
|
@@ -502,9 +508,20 @@ function build_blocks(input) {
|
|
|
502
508
|
blocks.push(...build_url_parts(input));
|
|
503
509
|
return blocks;
|
|
504
510
|
}
|
|
505
|
-
function
|
|
511
|
+
function join_blocks(input) {
|
|
506
512
|
return build_blocks(input).join("\n\n");
|
|
507
513
|
}
|
|
514
|
+
function head_of(body, kept) {
|
|
515
|
+
const head = body.slice(0, kept);
|
|
516
|
+
return TRAILING_HIGH_SURROGATE.test(head) ? head.slice(0, -1) : head;
|
|
517
|
+
}
|
|
518
|
+
function build_text(input) {
|
|
519
|
+
const text2 = join_blocks(input);
|
|
520
|
+
const overflow = text2.length - TELEGRAM_TEXT_LIMIT;
|
|
521
|
+
if (overflow <= 0 || input.body === void 0) return text2;
|
|
522
|
+
const kept = Math.max(0, input.body.length - overflow - BODY_TRUNCATION_MARK.length);
|
|
523
|
+
return join_blocks({ ...input, body: `${head_of(input.body, kept)}${BODY_TRUNCATION_MARK}` });
|
|
524
|
+
}
|
|
508
525
|
async function post_message(config, text2) {
|
|
509
526
|
const url = `${TELEGRAM_API_BASE}/bot${config.bot_token}/sendMessage`;
|
|
510
527
|
const response = await timed_fetch(url, {
|
|
@@ -846,7 +863,7 @@ var FILING_OFFER_REASON = '\u26D4 filing offer: your reply offers to file an Iss
|
|
|
846
863
|
var HEADLESS_WAIT_MARKER = "\u26D4 headless parent:";
|
|
847
864
|
var HEADLESS_REFUSAL_CAP = 3;
|
|
848
865
|
var HEADLESS_WAIT_CALLS = ['"command":"pnpm josh lane:await'];
|
|
849
|
-
var HEADLESS_WAIT_BODY = ' this is a `claude -p` `backlogrun` parent (`JOSH_RUN_HEADLESS`) with lanes still in flight, and ending this turn ends the process \u2014 its background waits are killed with it and the lanes are left without a parent.
|
|
866
|
+
var HEADLESS_WAIT_BODY = ' this is a `claude -p` `backlogrun` parent (`JOSH_RUN_HEADLESS`) with lanes still in flight, and ending this turn ends the process \u2014 its background waits are killed with it and the lanes are left without a parent. Do not watch them yourself: the `run:wake` supervisor\'s driver watches the lanes and wakes a session only for a branch that needs judging. Hand the loop back with `pnpm josh run:carry --cut --owner "$PPID"` (or `--end` when the run is over), then end the turn (`backlogrun-progress.md` \u2192 "Picking the lanes up in the fresh session").';
|
|
850
867
|
var HEADLESS_WAIT_REASON = `${HEADLESS_WAIT_MARKER}${HEADLESS_WAIT_BODY}`;
|
|
851
868
|
var INDEX_COMMAND_PATTERN = /git (?:add|stage|rm --cached|restore --staged|restore -S)\b/u;
|
|
852
869
|
var PERMISSION_PATTERN = /許可|承認|permission|approve|approval|authorization/iu;
|
|
@@ -885,9 +902,13 @@ function citation_reason(context) {
|
|
|
885
902
|
if (references.length === 0) return void 0;
|
|
886
903
|
return build_citation_reason(references);
|
|
887
904
|
}
|
|
905
|
+
function wording_reason(context) {
|
|
906
|
+
if (context.headless_agent) return void 0;
|
|
907
|
+
return citation_reason(context) ?? language_reason(context);
|
|
908
|
+
}
|
|
888
909
|
function reply_reason(context) {
|
|
889
910
|
if (needs_filing(context)) return FILING_OFFER_REASON;
|
|
890
|
-
return
|
|
911
|
+
return wording_reason(context);
|
|
891
912
|
}
|
|
892
913
|
function is_headless_held(context) {
|
|
893
914
|
if (!context.headless_waiting) return false;
|
|
@@ -1004,45 +1025,7 @@ var run_halfrun_resume = {
|
|
|
1004
1025
|
take_over
|
|
1005
1026
|
};
|
|
1006
1027
|
|
|
1007
|
-
// scripts/run/run-
|
|
1008
|
-
var RECOVERY_COMMAND = "pnpm josh run:wake --start";
|
|
1009
|
-
var LIVE = "live";
|
|
1010
|
-
var GONE = "gone";
|
|
1011
|
-
var UNKNOWN = "unknown";
|
|
1012
|
-
var STRANDED = "stranded";
|
|
1013
|
-
var OK2 = "ok";
|
|
1014
|
-
function supervisor_liveness(wake, same_process = process_identity.is_same_process) {
|
|
1015
|
-
if (wake === void 0) return GONE;
|
|
1016
|
-
const is_same = same_process(wake.pid, wake.process_start);
|
|
1017
|
-
if (is_same === void 0) return UNKNOWN;
|
|
1018
|
-
return is_same ? LIVE : GONE;
|
|
1019
|
-
}
|
|
1020
|
-
function is_stranded(input) {
|
|
1021
|
-
if (input.read.kind !== "carried" || input.read.carry.is_handed_off !== true || input.is_owner_live) {
|
|
1022
|
-
return false;
|
|
1023
|
-
}
|
|
1024
|
-
return input.supervisor === GONE;
|
|
1025
|
-
}
|
|
1026
|
-
function describe2(carry) {
|
|
1027
|
-
return `Run stranded \u2014 ${run_carry.describe_carry(carry)}. The owner is gone, no cut successor claimed the budget, and no supervisor is watching.`;
|
|
1028
|
-
}
|
|
1029
|
-
function verdict_of(is_run_stranded) {
|
|
1030
|
-
return is_run_stranded ? STRANDED : OK2;
|
|
1031
|
-
}
|
|
1032
|
-
var run_stranded = {
|
|
1033
|
-
GONE,
|
|
1034
|
-
LIVE,
|
|
1035
|
-
OK: OK2,
|
|
1036
|
-
RECOVERY_COMMAND,
|
|
1037
|
-
STRANDED,
|
|
1038
|
-
UNKNOWN,
|
|
1039
|
-
describe: describe2,
|
|
1040
|
-
is_stranded,
|
|
1041
|
-
supervisor_liveness,
|
|
1042
|
-
verdict_of
|
|
1043
|
-
};
|
|
1044
|
-
|
|
1045
|
-
// scripts/run/run-wake.ts
|
|
1028
|
+
// scripts/run/wake/run-wake.ts
|
|
1046
1029
|
import { z as z4 } from "zod";
|
|
1047
1030
|
var WAKE_PREFIX = "josh-run-wake-";
|
|
1048
1031
|
var WAKE_LOG_PREFIX = "josh-run-wake-log-";
|
|
@@ -1246,6 +1229,44 @@ var run_wake = {
|
|
|
1246
1229
|
write_wake
|
|
1247
1230
|
};
|
|
1248
1231
|
|
|
1232
|
+
// scripts/run/run-stranded.ts
|
|
1233
|
+
var RECOVERY_COMMAND = "pnpm josh run:wake --start";
|
|
1234
|
+
var LIVE = "live";
|
|
1235
|
+
var GONE = "gone";
|
|
1236
|
+
var UNKNOWN = "unknown";
|
|
1237
|
+
var STRANDED = "stranded";
|
|
1238
|
+
var OK2 = "ok";
|
|
1239
|
+
function supervisor_liveness(wake, same_process = process_identity.is_same_process) {
|
|
1240
|
+
if (wake === void 0) return GONE;
|
|
1241
|
+
const is_same = same_process(wake.pid, wake.process_start);
|
|
1242
|
+
if (is_same === void 0) return UNKNOWN;
|
|
1243
|
+
return is_same ? LIVE : GONE;
|
|
1244
|
+
}
|
|
1245
|
+
function is_stranded(input) {
|
|
1246
|
+
if (input.read.kind !== "carried" || input.read.carry.is_handed_off !== true || input.is_owner_live) {
|
|
1247
|
+
return false;
|
|
1248
|
+
}
|
|
1249
|
+
return input.supervisor === GONE;
|
|
1250
|
+
}
|
|
1251
|
+
function describe2(carry) {
|
|
1252
|
+
return `Run stranded \u2014 ${run_carry.describe_carry(carry)}. The owner is gone, no cut successor claimed the budget, and no supervisor is watching.`;
|
|
1253
|
+
}
|
|
1254
|
+
function verdict_of(is_run_stranded) {
|
|
1255
|
+
return is_run_stranded ? STRANDED : OK2;
|
|
1256
|
+
}
|
|
1257
|
+
var run_stranded = {
|
|
1258
|
+
GONE,
|
|
1259
|
+
LIVE,
|
|
1260
|
+
OK: OK2,
|
|
1261
|
+
RECOVERY_COMMAND,
|
|
1262
|
+
STRANDED,
|
|
1263
|
+
UNKNOWN,
|
|
1264
|
+
describe: describe2,
|
|
1265
|
+
is_stranded,
|
|
1266
|
+
supervisor_liveness,
|
|
1267
|
+
verdict_of
|
|
1268
|
+
};
|
|
1269
|
+
|
|
1249
1270
|
// scripts/run/run-stranded-detect.ts
|
|
1250
1271
|
var STRAND_RECOVERY = `Restart supervision with \`${run_stranded.RECOVERY_COMMAND}\` \u2014 it wakes a fresh successor to claim the budget; the cutting session must not resume it itself.`;
|
|
1251
1272
|
async function real_resolve_targets() {
|
|
@@ -1333,7 +1354,8 @@ async function build_context(transcript_path, payload_tail) {
|
|
|
1333
1354
|
background_pending: lane_background.pending_background_ids(tail).length > 0,
|
|
1334
1355
|
agent_pending: lane_background.pending_agent_ids(tail).length > 0,
|
|
1335
1356
|
handed_off: lane_handoff.is_handed_off(process.cwd()),
|
|
1336
|
-
session_lang: session_lang()
|
|
1357
|
+
session_lang: session_lang(),
|
|
1358
|
+
headless_agent: agent_headless.is_headless()
|
|
1337
1359
|
};
|
|
1338
1360
|
}
|
|
1339
1361
|
async function stop_outcome_for_payload(raw_payload) {
|