@joshuafolkken/kit 1.1050.0 → 1.1094.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/settings.json +9 -8
- package/.claude/skills/epic-commands/SKILL.md +5 -7
- package/.claude/skills/workflow-commands/SKILL.md +19 -11
- package/.claude/skills/workflow-commands/background-commands.md +4 -3
- package/.claude/skills/workflow-commands/backlogrun-child.md +1 -1
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +8 -6
- package/.claude/skills/workflow-commands/backlogrun-progress.md +1 -1
- package/.claude/skills/workflow-commands/backlogrun-steps.md +10 -10
- package/.claude/skills/workflow-commands/backlogrun.md +2 -2
- package/.claude/skills/workflow-commands/chain-rule.md +4 -2
- package/.claude/skills/workflow-commands/delegation.md +3 -3
- package/.claude/skills/workflow-commands/followup-reference.md +1 -1
- package/.claude/skills/workflow-commands/followup.md +7 -3
- package/.claude/skills/workflow-commands/fullrun-steps.md +3 -2
- package/.claude/skills/workflow-commands/fullrun.md +3 -2
- package/.claude/skills/workflow-commands/halfrun.md +16 -19
- package/.claude/skills/workflow-commands/issue-comments.md +1 -1
- package/.claude/skills/workflow-commands/issue-fold-existing.md +10 -10
- package/.claude/skills/workflow-commands/issue-scout.md +1 -1
- package/.claude/skills/workflow-commands/kickoff.md +9 -4
- package/.claude/skills/workflow-commands/latest-gate.md +1 -1
- package/.claude/skills/workflow-commands/needs-human-review.md +1 -1
- package/.claude/skills/workflow-commands/observation-filing.md +3 -3
- package/.claude/skills/workflow-commands/prerequisite.md +1 -1
- package/.claude/skills/workflow-commands/prrun.md +36 -0
- package/.claude/skills/workflow-commands/retrospective.md +1 -1
- package/.claude/skills/workflow-commands/working-tree-hold.md +22 -2
- package/.codex/hooks.json +16 -20
- package/.github/actions/setup-pnpm/action.yml +93 -0
- package/.github/dependabot.yml +5 -1
- package/.github/workflows/ci.yml +26 -128
- package/.github/workflows/pr-classification.yml +5 -41
- package/.github/workflows/publish.yml +33 -38
- package/.github/workflows/sonar-qube.yml +37 -4
- package/AGENTS.md +12 -2
- package/CLAUDE.md +15 -16
- package/GEMINI.md +14 -2
- package/README.md +59 -18
- package/SECURITY.md +36 -6
- package/cspell/index.yaml +2 -1
- package/dist/CLAUDE.md +15 -16
- package/dist/config-merge/index.js +15 -3
- package/dist/hooks/batch-guard.js +4 -4
- package/dist/hooks/{chunk-HJIISEAC.js → chunk-3C4YCCEF.js} +5 -13
- package/dist/hooks/{chunk-EJDX2TOB.js → chunk-7ZPFAVR7.js} +7 -88
- package/dist/hooks/{chunk-WQ4OSBSS.js → chunk-E54KGFEQ.js} +2 -2
- package/dist/hooks/{chunk-GQ7KP45M.js → chunk-IL27YTPH.js} +2 -2
- package/dist/hooks/{chunk-DMQN45FN.js → chunk-KHWHKJOM.js} +3 -3
- package/dist/hooks/{chunk-5BK3K7V4.js → chunk-M2XDCUKD.js} +997 -478
- package/dist/hooks/{chunk-7VPDUBRN.js → chunk-NKOG3XAV.js} +150 -153
- package/dist/hooks/{chunk-NJQOBE6L.js → chunk-O4LL4HTI.js} +2 -7
- package/dist/hooks/{chunk-NAS4C7GP.js → chunk-OIZUHPJI.js} +2 -2
- package/dist/hooks/{chunk-RLDX5SOC.js → chunk-UD24EAIL.js} +2084 -1412
- package/dist/hooks/codex-hook-adapter.js +10 -11
- package/dist/hooks/duplicate-read-guard.js +5 -5
- package/dist/hooks/format-edited.js +2 -2
- package/dist/hooks/inputs.json +279 -0
- package/dist/hooks/investigation-guard.js +5 -5
- package/dist/hooks/pretool-guard.js +9 -9
- package/dist/hooks/session-lang.js +0 -1
- package/dist/hooks/stop-guard.js +178 -324
- package/dist/josh.js +162 -119
- package/dist/managed-marker/index.js +2 -1
- package/dist/version/index.js +34 -58
- package/eslint/rules/promise.js +5 -0
- package/package.json +9 -4
- package/prompts/collaboration-workflow/issue-citation.md +5 -5
- package/prompts/collaboration-workflow/operating-rules.md +4 -4
- package/prompts/collaboration-workflow/overview.md +13 -1
- package/prompts/collaboration-workflow/report-format.md +1 -1
- package/prompts/collaboration-workflow/residency.md +3 -3
- package/prompts/collaboration-workflow/rule-delivery.md +1 -1
- package/prompts/collaboration-workflow/turn-batching.md +3 -3
- package/prompts/collaboration-workflow/upstream-interrupt.md +1 -1
- package/prompts/collaboration-workflow/wip-cap.md +25 -22
- package/prompts/collaboration-workflow.md +5 -8
- package/prompts/review-rubric.md +1 -1
- package/prompts/review.md +3 -3
- package/prompts/sonar-hotspot-handling.md +11 -3
- package/prompts/testing-guide.md +3 -3
- package/scripts/adopt/adopt-toolkits.ts +0 -2
- package/scripts/adopt/adopt.ts +0 -2
- package/scripts/agent/agent-argv.ts +0 -2
- package/scripts/agent/agent-diagnostics.ts +1 -1
- package/scripts/agent/agent-role-profile.ts +0 -7
- package/scripts/agent/claude-agent-argv.ts +0 -2
- package/scripts/agent/codex-agent-argv.ts +1 -1
- package/scripts/agent/codex-hooks.ts +92 -0
- package/scripts/agent/interactive-ask.ts +1 -1
- package/scripts/auto-ok/auto-ok-cli.ts +6 -16
- package/scripts/backlog/backlog-budget.ts +0 -2
- package/scripts/backlog/backlog-defect-priority.ts +2 -2
- package/scripts/backlog/backlog-drive-cli.ts +10 -8
- package/scripts/backlog/backlog-drive-named-offer.ts +16 -3
- package/scripts/backlog/backlog-drive-named.ts +2 -1
- package/scripts/backlog/backlog-drive.ts +76 -16
- package/scripts/backlog/backlog-named.ts +0 -3
- package/scripts/backlog/backlog-next.ts +9 -15
- package/scripts/backlog/backlog-offer-cli.ts +0 -5
- package/scripts/backlog/backlog-plan-cli.ts +1 -7
- package/scripts/backlog/backlog-plan.ts +1 -1
- package/scripts/backlog/backlog-pool.ts +3 -6
- package/scripts/backlog/backlog-rank.ts +2 -2
- package/scripts/backlog/backlog-ready.ts +19 -3
- package/scripts/backlog/backlog-scope.ts +1 -3
- package/scripts/backlog/backlog-stalled-detect.ts +2 -2
- package/scripts/backlog/backlog-stalled.ts +0 -1
- package/scripts/backlog/backlog-waves.ts +5 -2
- package/scripts/behavior/behavior-cli.ts +1 -1
- package/scripts/build/build-codex-hooks.ts +26 -0
- package/scripts/build/build-hooks.ts +85 -9
- package/scripts/build/hook-bundle-stamp.ts +111 -0
- package/scripts/cases/cases-cli.ts +1 -1
- package/scripts/cases/cases-logic.ts +1 -1
- package/scripts/ci/composite-actions.ts +30 -0
- package/scripts/ci/pr-classification.ts +3 -3
- package/scripts/claude/workflow-destination.ts +10 -1
- package/scripts/clone/clone-fingerprint.ts +0 -1
- package/scripts/clone/clone-scan-cli.ts +1 -1
- package/scripts/clone/clone-scan.ts +1 -1
- package/scripts/config-merge/json-format.ts +0 -1
- package/scripts/config-merge/patch-yaml-list.ts +1 -1
- package/scripts/cost-runtime/codex-usage.ts +2 -9
- package/scripts/cost-runtime/cost-attribute.ts +0 -1
- package/scripts/cost-runtime/cost-cli.ts +0 -3
- package/scripts/cost-runtime/cost-corpus.ts +0 -2
- package/scripts/cost-runtime/cost-format.ts +0 -3
- package/scripts/cost-runtime/cost-pricing.ts +0 -1
- package/scripts/cost-runtime/cost-tokens.ts +0 -1
- package/scripts/delegation/delegation-cli.ts +1 -1
- package/scripts/delegation/delegation-policy.ts +0 -1
- package/scripts/delegation/duplicate-read-guard.ts +0 -8
- package/scripts/delegation/fanout-cli.ts +1 -1
- package/scripts/delegation/fanout.ts +0 -2
- package/scripts/delegation/investigation-reads.ts +1 -164
- package/scripts/discovery/repo-map-logic.ts +0 -1
- package/scripts/discovery/repo-party-cli.ts +1 -1
- package/scripts/doctor/doctor-consumer.ts +4 -6
- package/scripts/doctor/doctor-logic.ts +0 -4
- package/scripts/doctor/doctor.ts +14 -9
- package/scripts/document/document-byte-budget.ts +4 -5
- package/scripts/document/document-byte-check.ts +0 -1
- package/scripts/document/document-read-cli.ts +0 -2
- package/scripts/document/document-section-cli.ts +1 -1
- package/scripts/document/document-section.ts +0 -3
- package/scripts/document/edit-files-cli.ts +0 -1
- package/scripts/document/entry-read-budget.ts +10 -2
- package/scripts/document/lane-child-read-set.ts +1 -6
- package/scripts/document/read-files-cli.ts +0 -4
- package/scripts/document/read-set-cli.ts +0 -2
- package/scripts/document/read-set-point-of-use.ts +1 -0
- package/scripts/document/read-set-pricing.ts +0 -1
- package/scripts/document/read-set-trim.ts +1 -1
- package/scripts/epic/epic-add.ts +1 -1
- package/scripts/epic/epic-audit-cli.ts +1 -4
- package/scripts/epic/epic-audit-orphans.ts +1 -3
- package/scripts/epic/epic-audit-rationale.ts +0 -1
- package/scripts/epic/epic-audit-report.ts +0 -2
- package/scripts/epic/epic-audit.ts +5 -4
- package/scripts/epic/epic-bundle-cli.ts +1 -1
- package/scripts/epic/epic-bundle-evidence.ts +0 -1
- package/scripts/epic/epic-bundle-referenced.ts +1 -5
- package/scripts/epic/epic-bundle.ts +0 -4
- package/scripts/epic/epic-busy.ts +4 -5
- package/scripts/epic/epic-candidate-confirm.ts +0 -5
- package/scripts/epic/epic-classify.ts +2 -2
- package/scripts/epic/epic-cli-argv.ts +0 -1
- package/scripts/epic/epic-close-comment.ts +1 -1
- package/scripts/epic/epic-close.ts +5 -2
- package/scripts/epic/epic-cross-repo.ts +2 -4
- package/scripts/epic/epic-decision.ts +0 -1
- package/scripts/epic/epic-fetch.ts +2 -2
- package/scripts/epic/epic-index.ts +2 -3
- package/scripts/epic/epic-issue.ts +1 -15
- package/scripts/epic/epic-lane-offer.ts +9 -8
- package/scripts/epic/epic-nested.ts +1 -1
- package/scripts/epic/epic-next-read.ts +1 -3
- package/scripts/epic/epic-next-views.ts +0 -1
- package/scripts/epic/epic-next.ts +1 -10
- package/scripts/epic/epic-parse.ts +0 -1
- package/scripts/epic/epic-promote.ts +0 -9
- package/scripts/epic/epic-rank.ts +2 -2
- package/scripts/epic/epic-read.ts +1 -2
- package/scripts/epic/epic-reconcile.ts +1 -1
- package/scripts/epic/epic-reference.ts +1 -13
- package/scripts/epic/epic-relation-recheck.ts +1 -1
- package/scripts/epic/epic-relations.ts +1 -1
- package/scripts/epic/epic-remove.ts +1 -1
- package/scripts/epic/epic-report.ts +0 -1
- package/scripts/epic/epic-run.ts +2 -3
- package/scripts/epic/epic-shape.ts +1 -1
- package/scripts/epic/epic-solo-stale.ts +107 -0
- package/scripts/epic/epic-solo.ts +3 -2
- package/scripts/epic/epic-triage.ts +1 -1
- package/scripts/epic/epic-validate.ts +1 -1
- package/scripts/epic/epic.ts +1 -1
- package/scripts/exports/unused-members-cli.ts +53 -0
- package/scripts/{git → followup}/followup-issue-number.ts +1 -6
- package/scripts/{git → followup}/git-followup-cleanup.ts +2 -1
- package/scripts/{git → followup}/git-followup-finish.ts +1 -3
- package/scripts/{git → followup}/git-followup-flush.ts +2 -2
- package/scripts/{git → followup}/git-followup-issue-close.ts +2 -2
- package/scripts/{git → followup}/git-followup-label.ts +4 -4
- package/scripts/followup/git-followup-merged.ts +112 -0
- package/scripts/{git → followup}/git-followup-pending.ts +1 -1
- package/scripts/{git → followup}/git-followup-workflow.ts +19 -11
- package/scripts/{git → followup}/git-pr-followup-wrapup.ts +9 -3
- package/scripts/{git → followup}/git-pr-followup.ts +53 -16
- package/scripts/gate/core-budget.ts +3 -9
- package/scripts/gate/gate-plan.ts +7 -4
- package/scripts/gate/gate-report.ts +0 -6
- package/scripts/gate/gate-tree.ts +1 -1
- package/scripts/gate/pre-commit-type-check.ts +0 -6
- package/scripts/gate/project-checks.ts +7 -8
- package/scripts/gate/scoped-green.ts +0 -1
- package/scripts/gate/type-check-step.ts +1 -1
- package/scripts/gate/verification-gate.ts +0 -2
- package/scripts/gh/fix-gh-packages.ts +15 -12
- package/scripts/gh/gh-spawn.ts +2 -2
- package/scripts/{git → gh}/git-ai-review-scan.ts +1 -5
- package/scripts/{git → gh}/git-gh-check.ts +2 -1
- package/scripts/{git → gh}/git-gh-exec.ts +1 -1
- package/scripts/{git → gh}/git-gh-failure.ts +1 -1
- package/scripts/{git → gh}/git-gh-helpers.ts +0 -1
- package/scripts/{git → gh}/git-gh-issue-list.ts +2 -0
- package/scripts/{git → gh}/git-gh-issue-read.ts +1 -1
- package/scripts/{git → gh}/git-gh-issue-rest.ts +6 -3
- package/scripts/{git → gh}/git-gh-pr-read.ts +24 -0
- package/scripts/{git → gh}/git-gh-pr-rest.ts +5 -2
- package/scripts/{git → gh}/git-gh-pr-review.ts +2 -2
- package/scripts/{git → gh}/git-gh-pr-rollup.ts +1 -3
- package/scripts/{git → gh}/git-gh-pr.ts +3 -1
- package/scripts/{git → gh}/git-pr-ai-review.ts +2 -5
- package/scripts/{git → gh}/git-pr-checks-eval.ts +0 -10
- package/scripts/{git → gh}/git-pr-checks-parse.ts +4 -20
- package/scripts/{git → gh}/git-pr-checks.ts +2 -1
- package/scripts/{git → gh}/git-pr-coderabbit.ts +2 -5
- package/scripts/{git → gh}/git-pr-confirmation.ts +1 -3
- package/scripts/{git → gh}/git-pr-managed-config.ts +2 -3
- package/scripts/{git → gh}/git-pr.ts +3 -3
- package/scripts/git/changed-file-scope.ts +0 -1
- package/scripts/git/git-branch.ts +3 -6
- package/scripts/git/git-commit.ts +1 -1
- package/scripts/git/git-common-directory.ts +80 -24
- package/scripts/git/git-error.ts +66 -9
- package/scripts/git/git-issue.ts +1 -1
- package/scripts/git/git-preflight.ts +2 -2
- package/scripts/git/git-prompt.ts +6 -31
- package/scripts/git/git-push.ts +1 -1
- package/scripts/git/git-staging.ts +1 -0
- package/scripts/git/git-status.ts +1 -1
- package/scripts/git/git-workflow.ts +1 -1
- package/scripts/git/gone-branch.ts +1 -0
- package/scripts/git/listing-cutoff.ts +1 -1
- package/scripts/git/main-merge.ts +1 -1
- package/scripts/git/main-sync.ts +19 -1
- package/scripts/git/parse-json-array.ts +0 -3
- package/scripts/git/repository-lock.ts +16 -16
- package/scripts/git/{git-stash.ts → stash/git-stash.ts} +1 -1
- package/scripts/git/{stash-pop-args.ts → stash/stash-pop-args.ts} +1 -1
- package/scripts/git/{stash-pop-cli.ts → stash/stash-pop-cli.ts} +0 -1
- package/scripts/git/{stash-sweep-lock.ts → stash/stash-sweep-lock.ts} +3 -3
- package/scripts/hooks/codex-hook-adapter.ts +0 -1
- package/scripts/hooks/edited-cspell.ts +1 -1
- package/scripts/hooks/format-edited-file.ts +2 -0
- package/scripts/hooks/pre-push-unit.ts +0 -4
- package/scripts/hooks/pretool-guard.ts +22 -4
- package/scripts/hooks/reserved-run.ts +1 -1
- package/scripts/hooks/step-zero-notice.ts +76 -0
- package/scripts/hooks/stop-guard.ts +47 -21
- package/scripts/init/claude-plugin-config.ts +4 -5
- package/scripts/init/hook-command-rewrite.ts +16 -8
- package/scripts/init/hook-launch.ts +41 -15
- package/scripts/init/init-basic.ts +2 -5
- package/scripts/init/init-logic.ts +7 -0
- package/scripts/init/init.ts +0 -3
- package/scripts/init/project-profile.ts +6 -11
- package/scripts/init/start-exec.ts +1 -1
- package/scripts/init/start-setup-pr.ts +6 -6
- package/scripts/init/start-steps.ts +1 -0
- package/scripts/issue/behavior-change-lint.ts +0 -1
- package/scripts/issue/defect-rate-cli.ts +3 -3
- package/scripts/issue/defect-rate.ts +1 -2
- package/scripts/{git → issue}/git-next-issues.ts +3 -3
- package/scripts/issue/issue-backlinks-cli.ts +1 -5
- package/scripts/issue/issue-cite-cli.ts +2 -6
- package/scripts/issue/issue-cite.ts +0 -2
- package/scripts/issue/issue-classification.ts +1 -9
- package/scripts/issue/issue-closing-pr.ts +4 -4
- package/scripts/issue/issue-comment-cli.ts +2 -2
- package/scripts/issue/issue-file-cli.ts +5 -5
- package/scripts/issue/issue-file.ts +2 -2
- package/scripts/issue/issue-fold-cli.ts +1 -1
- package/scripts/issue/issue-fold-existing-cli.ts +1 -1
- package/scripts/{git → issue}/issue-labels.ts +8 -0
- package/scripts/issue/issue-lint-cli.ts +1 -1
- package/scripts/issue/issue-merged.ts +2 -2
- package/scripts/{git → issue}/issue-rank.ts +1 -1
- package/scripts/issue/issue-read-cli.ts +8 -47
- package/scripts/issue/issue-read.ts +0 -2
- package/scripts/issue/issue-report-failures.ts +80 -0
- package/scripts/issue/issue-scout-cli.ts +1 -7
- package/scripts/issue/issue-scout-closed.ts +2 -2
- package/scripts/issue/issue-scout.ts +0 -2
- package/scripts/issue/issue-state-cli.ts +5 -46
- package/scripts/issue/issue-state.ts +1 -5
- package/scripts/issue/markdown-section.ts +1 -1
- package/scripts/issue/measure-rerun-cli.ts +1 -1
- package/scripts/issue/reproduction-measure.ts +1 -1
- package/scripts/josh/cli-body.ts +1 -1
- package/scripts/josh/file-map-stamp.ts +0 -3
- package/scripts/josh/josh-command-map.ts +2 -0
- package/scripts/josh/josh-commands-ai.ts +9 -102
- package/scripts/josh/josh-commands-backlog.ts +5 -1
- package/scripts/josh/josh-commands-development.ts +8 -1
- package/scripts/josh/josh-commands-issue.ts +2 -2
- package/scripts/josh/josh-commands-maintenance.ts +7 -0
- package/scripts/josh/josh-commands-project.ts +6 -0
- package/scripts/josh/josh-commands-run.ts +114 -0
- package/scripts/josh/josh-commands-versioning.ts +8 -0
- package/scripts/josh/josh-commands-workflow.ts +2 -2
- package/scripts/josh/path-decision.ts +0 -3
- package/scripts/josh/process-owner.ts +16 -0
- package/scripts/josh/session-language-cli.ts +0 -1
- package/scripts/lane/lane-await.ts +3 -6
- package/scripts/lane/lane-capacity.ts +6 -3
- package/scripts/lane/lane-child-invocation.ts +20 -7
- package/scripts/lane/lane-cli.ts +1 -4
- package/scripts/lane/lane-close.ts +1 -3
- package/scripts/lane/lane-dispatch.ts +3 -4
- package/scripts/lane/lane-environment.ts +0 -9
- package/scripts/lane/lane-handoff.ts +38 -0
- package/scripts/lane/lane-launch-cli.ts +21 -11
- package/scripts/lane/lane-open.ts +0 -3
- package/scripts/lane/lane-output.ts +0 -1
- package/scripts/lane/lane-registry.ts +9 -0
- package/scripts/lane/openai-lane-ship.ts +2 -0
- package/scripts/lane/openai-lane-supervisor-decision.ts +2 -1
- package/scripts/lane/openai-lane-supervisor.ts +6 -4
- package/scripts/lane/openai-review-broker.ts +3 -0
- package/scripts/lib/bounded-pool.ts +1 -0
- package/scripts/lib/json-value.ts +5 -4
- package/scripts/lib/poll.ts +3 -1
- package/scripts/lib/timed-fetch.ts +15 -0
- package/scripts/lib/timeouts.ts +13 -0
- package/scripts/{yaml → lib}/yaml-document.ts +3 -1
- package/scripts/{bytes → lines}/bytes-command.ts +0 -2
- package/scripts/lines/lines-command.ts +0 -1
- package/scripts/lint/lint-related-scope.ts +0 -1
- package/scripts/lint/lint-related.ts +1 -1
- package/scripts/{git → notify}/telegram-notify.ts +2 -2
- package/scripts/{git → notify}/telegram-test.ts +4 -4
- package/scripts/observations/observation-ledger-home.ts +0 -1
- package/scripts/observations/observation-ledger-line.ts +0 -1
- package/scripts/observations/observation-ledger-migrate.ts +1 -1
- package/scripts/observations/observations-flush-landing.ts +3 -3
- package/scripts/observations/observations-flush.ts +2 -2
- package/scripts/overrides/lockfile-overrides.ts +1 -1
- package/scripts/overrides/overrides-logic.ts +1 -1
- package/scripts/package/package-scout-cli.ts +2 -7
- package/scripts/package/package-scout.ts +0 -2
- package/scripts/propagate/propagate-git-failure.ts +0 -1
- package/scripts/propagate/propagate-git.ts +0 -2
- package/scripts/propagate/propagate-publish.ts +2 -3
- package/scripts/propagate/propagate-run.ts +0 -2
- package/scripts/propagate/propagate-steps.ts +3 -5
- package/scripts/propagate/propagate-targets.ts +0 -4
- package/scripts/propagate/propagate.ts +0 -4
- package/scripts/refactor/import-graph.ts +0 -1
- package/scripts/refactor/refactor-lint.ts +0 -2
- package/scripts/refactor/refactor-scan.ts +0 -1
- package/scripts/refactor/refactor-targets.ts +0 -1
- package/scripts/registry-migration/migrate-logic.ts +0 -2
- package/scripts/registry-migration/migrate.ts +19 -9
- package/scripts/release/github-release-cli.ts +8 -6
- package/scripts/release/github-release-environment.ts +46 -0
- package/scripts/release/github-release.ts +151 -94
- package/scripts/release/release-history.ts +0 -1
- package/scripts/release/release-plan.ts +0 -1
- package/scripts/release/release-publish.ts +2 -3
- package/scripts/release/release-scope-cli.ts +1 -2
- package/scripts/release/release-tag.ts +2 -4
- package/scripts/repo/auto-merge-setting-logic.ts +1 -4
- package/scripts/repo/repo-setting.ts +1 -1
- package/scripts/repo/repository-labels.ts +3 -3
- package/scripts/repo/required-checks-logic.ts +206 -0
- package/scripts/repo/required-checks-report.ts +71 -0
- package/scripts/repo/ruleset-check-cli.ts +53 -0
- package/scripts/repo/ruleset-check.ts +147 -0
- package/scripts/report/report-lint-cli.ts +0 -4
- package/scripts/review/disposition-cli.ts +1 -1
- package/scripts/review/live-evidence.ts +1 -1
- package/scripts/review/review-attest-cli.ts +0 -6
- package/scripts/review/review-attest.ts +4 -16
- package/scripts/review/review-brief-cli.ts +23 -6
- package/scripts/review/review-brief.ts +21 -8
- package/scripts/review/review-diff-parts.ts +89 -0
- package/scripts/review/review-diff-write.ts +97 -0
- package/scripts/review/review-finding-ledger.ts +0 -1
- package/scripts/review/review-record-cli.ts +1 -1
- package/scripts/review/review-record.ts +0 -1
- package/scripts/review/review-round2-cli.ts +1 -1
- package/scripts/review/review-stamps.ts +0 -3
- package/scripts/review/review-tree.ts +14 -2
- package/scripts/rules/decision-oracle-stage.ts +18 -0
- package/scripts/rules/decision-oracle.ts +10 -7
- package/scripts/rules/delivered-rules.ts +9 -1
- package/scripts/rules/destructive-command.ts +119 -0
- package/scripts/rules/direct-filing.ts +1 -1
- package/scripts/rules/file-body.ts +0 -3
- package/scripts/rules/filing-cap.ts +0 -2
- package/scripts/rules/gh-api.ts +7 -2
- package/scripts/rules/git-argv.ts +18 -7
- package/scripts/rules/git-force.ts +0 -2
- package/scripts/rules/implementation-cut.ts +0 -1
- package/scripts/rules/index-guard.ts +71 -0
- package/scripts/rules/issue-citation.ts +50 -25
- package/scripts/rules/lane-background.ts +15 -7
- package/scripts/rules/lane-park.ts +13 -6
- package/scripts/rules/last-prompt.ts +1 -0
- package/scripts/rules/oracle-consulted.ts +1 -1
- package/scripts/rules/oracle-firing.ts +1 -0
- package/scripts/rules/oracle-list-cli.ts +0 -3
- package/scripts/rules/permission-guards.ts +14 -0
- package/scripts/rules/protected-files.ts +74 -0
- package/scripts/rules/reply-language.ts +1 -1
- package/scripts/rules/rule-body-guard.ts +0 -3
- package/scripts/rules/rule-value-cli.ts +0 -1
- package/scripts/rules/shell-body-trigger.ts +0 -1
- package/scripts/rules/shell-segments.ts +0 -1
- package/scripts/rules/stop-rules.ts +13 -5
- package/scripts/rules/tail-commands.ts +1 -1
- package/scripts/rules/test-declared-commit.ts +1 -1
- package/scripts/rules/third-party-write.ts +0 -1
- package/scripts/rules/worktree-guard.ts +26 -9
- package/scripts/run/run-carry-cli.ts +0 -2
- package/scripts/run/run-carry-stash.ts +2 -2
- package/scripts/run/run-carry-streak.ts +1 -1
- package/scripts/run/run-cut-cli.ts +0 -7
- package/scripts/run/run-cut.ts +8 -54
- package/scripts/run/run-ending-cli.ts +1 -1
- package/scripts/run/run-ending.ts +1 -4
- package/scripts/run/run-entry-cli.ts +101 -24
- package/scripts/run/run-entry.ts +0 -1
- package/scripts/run/run-event-cli.ts +0 -2
- package/scripts/run/run-event-follow.ts +1 -0
- package/scripts/run/run-event-render.ts +1 -1
- package/scripts/run/run-event-scope.ts +53 -4
- package/scripts/run/run-event-stream.ts +0 -3
- package/scripts/run/run-event-watch.ts +1 -0
- package/scripts/run/run-halfrun-resume.ts +20 -7
- package/scripts/run/run-headless.ts +2 -2
- package/scripts/run/run-hold-cli.ts +33 -10
- package/scripts/run/run-hold.ts +25 -5
- package/scripts/run/run-issue-number.ts +1 -1
- package/scripts/run/run-liveness-cli.ts +1 -1
- package/scripts/run/run-liveness.ts +2 -3
- package/scripts/run/run-merge-cli.ts +5 -13
- package/scripts/run/run-merge-steps.ts +5 -5
- package/scripts/run/run-merge.ts +1 -1
- package/scripts/run/run-next-cli.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +0 -1
- package/scripts/run/run-preflight.ts +2 -9
- package/scripts/run/run-prep-cli.ts +2 -2
- package/scripts/run/run-prep-locate.ts +1 -1
- package/scripts/run/run-progress-cli.ts +4 -7
- package/scripts/run/run-progress-clock.ts +6 -34
- package/scripts/run/run-progress-config.ts +0 -4
- package/scripts/run/run-progress-read.ts +1 -2
- package/scripts/run/run-progress.ts +1 -2
- package/scripts/run/run-prrun-resume.ts +117 -0
- package/scripts/run/run-report-cli.ts +1 -2
- package/scripts/run/run-report.ts +0 -1
- package/scripts/run/run-retrospective.ts +1 -1
- package/scripts/run/run-review-cli.ts +0 -3
- package/scripts/run/run-review-steps.ts +2 -0
- package/scripts/run/run-review.ts +0 -2
- package/scripts/run/run-ship-cli.ts +21 -3
- package/scripts/run/run-ship-detach.ts +1 -0
- package/scripts/run/run-ship-next.ts +106 -0
- package/scripts/run/run-ship-preflight.ts +1 -1
- package/scripts/run/run-ship-return.ts +8 -3
- package/scripts/run/run-ship-review-steps.ts +18 -4
- package/scripts/run/run-ship-review.ts +11 -0
- package/scripts/run/run-ship-scoped.ts +1 -0
- package/scripts/run/run-ship-steps.ts +1 -1
- package/scripts/run/run-ship.ts +0 -1
- package/scripts/run/run-stage-read.ts +62 -0
- package/scripts/run/run-stage.ts +160 -0
- package/scripts/run/run-status-cli.ts +1 -1
- package/scripts/run/run-step-cli.ts +21 -14
- package/scripts/run/run-step.ts +1 -1
- package/scripts/run/run-stop-notify.ts +1 -3
- package/scripts/run/run-stranded-cli.ts +0 -4
- package/scripts/run/run-stranded-detect.ts +2 -2
- package/scripts/run/run-tail-cli.ts +17 -11
- package/scripts/run/run-tail.ts +2 -0
- package/scripts/run/run-tidy-lanes.ts +2 -1
- package/scripts/run/run-tidy-stashes.ts +12 -12
- package/scripts/run/run-wake-cli.ts +2 -3
- package/scripts/run/run-wake-loop.ts +2 -2
- package/scripts/run/run-wake.ts +2 -4
- package/scripts/run/run-watcher-guard-cli.ts +0 -4
- package/scripts/run/run-watcher-guard.ts +9 -7
- package/scripts/run/run-watcher-hook.ts +1 -1
- package/scripts/safe-chain/ci-installer-pin.ts +11 -5
- package/scripts/safe-chain/project-config.ts +1 -1
- package/scripts/security/security-audit-provision-logic.ts +0 -1
- package/scripts/security/security-audit-provision.ts +3 -2
- package/scripts/security/security-audit.ts +0 -1
- package/scripts/security/security-updates-logic.ts +0 -1
- package/scripts/sonar/sonar-hotspots-cli.ts +10 -52
- package/scripts/sonar/sonar-hotspots.ts +0 -1
- package/scripts/sonar/sonar-new-code-cli.ts +150 -0
- package/scripts/sonar/sonar-new-code.ts +79 -0
- package/scripts/sonar/sonar-project.ts +97 -0
- package/scripts/split/split-assess-cli.ts +1 -1
- package/scripts/split/split-assess.ts +2 -5
- package/scripts/sync/managed-config-scope-cli.ts +1 -1
- package/scripts/sync/skill-migration.ts +0 -1
- package/scripts/sync/sync-hook-safety.ts +2 -3
- package/scripts/sync/sync.ts +1 -8
- package/scripts/sync/template-source-logic.ts +0 -1
- package/scripts/sync/workflow-pin-logic.ts +16 -28
- package/scripts/test/test-declared-logic.ts +0 -1
- package/scripts/test/test-declared.ts +0 -2
- package/scripts/test/test-red-commit.ts +2 -2
- package/scripts/test/test-red.ts +14 -7
- package/scripts/test/test-type-logic.ts +1 -1
- package/scripts/test/unit-worker-share.ts +7 -16
- package/scripts/time-runtime/time-batch-guard.ts +1 -2
- package/scripts/time-runtime/time-bundle-call.ts +0 -1
- package/scripts/time-runtime/time-bundles.ts +0 -4
- package/scripts/time-runtime/time-density-hook.ts +0 -2
- package/scripts/time-runtime/time-followup-stage.ts +1 -1
- package/scripts/time-runtime/time-format.ts +0 -73
- package/scripts/time-runtime/time-round-trips.ts +0 -4
- package/scripts/time-runtime/time-single-check.ts +1 -1
- package/scripts/time-runtime/time-spans.ts +1 -1
- package/scripts/time-runtime/time-transcript-line.ts +1 -2
- package/scripts/ui/ui-routes-cli.ts +0 -5
- package/scripts/ui/ui-routes.ts +0 -5
- package/scripts/version/effective-upstream.ts +2 -2
- package/scripts/version/latest-corepack.ts +7 -9
- package/scripts/version/latest-scope-cli.ts +0 -2
- package/scripts/version/latest-update.ts +0 -2
- package/scripts/version/npm-registry.ts +2 -2
- package/scripts/version/publishable-range-check.ts +1 -1
- package/scripts/version/release-hold.ts +0 -4
- package/scripts/version/running-binary.ts +2 -2
- package/scripts/version/version-check-logic.ts +0 -2
- package/scripts/version/version-remote.ts +3 -3
- package/scripts/version/version-targets.ts +4 -4
- package/templates/sonar-project.properties +28 -1
- package/templates/workflows/dependabot-auto-merge.yml +5 -3
- package/templates/workflows/github-release.yml +81 -0
- package/prompts/collaboration-workflow/cross-repo-epic.md +0 -5
- package/prompts/collaboration-workflow/epic-audit.md +0 -5
- package/prompts/collaboration-workflow/epic-bundle.md +0 -5
- package/scripts/init/plugin-install-hint.ts +0 -47
- package/scripts/version/parse-json.ts +0 -13
- /package/scripts/{git → followup}/git-followup-stages.ts +0 -0
- /package/scripts/{git → gh}/git-gh-api-path.ts +0 -0
- /package/scripts/{git → gh}/git-gh-command.ts +0 -0
- /package/scripts/{git → gh}/git-gh-issue-write.ts +0 -0
- /package/scripts/{git → gh}/git-gh-issue.ts +0 -0
- /package/scripts/{git → gh}/git-gh-pr-auto-merge.ts +0 -0
- /package/scripts/{git → gh}/git-gh-pr-snapshot.ts +0 -0
- /package/scripts/{git → gh}/git-gh-reachability.ts +0 -0
- /package/scripts/{git → gh}/git-gh-repo.ts +0 -0
- /package/scripts/{git → gh}/git-gh-rest-state.ts +0 -0
- /package/scripts/{git → gh}/git-pr-checks-watch.ts +0 -0
- /package/scripts/{git → gh}/git-pr-error.ts +0 -0
- /package/scripts/{git → gh}/git-pr-messages.ts +0 -0
- /package/scripts/{git → gh}/github-issue-url.ts +0 -0
- /package/scripts/git/{stash-orphans.ts → stash/stash-orphans.ts} +0 -0
- /package/scripts/{git → issue}/issue-reference.ts +0 -0
- /package/scripts/{git → lib}/animation-helpers.ts +0 -0
- /package/scripts/{git → lib}/git-animation.ts +0 -0
- /package/scripts/{git → notify}/git-notify.ts +0 -0
- /package/scripts/{git → notify}/telegram-test-logic.ts +0 -0
|
@@ -40,6 +40,7 @@ const ALIASES: Record<string, string> = {
|
|
|
40
40
|
f: 'format',
|
|
41
41
|
sd: 'cspell:dot',
|
|
42
42
|
bh: 'behavior',
|
|
43
|
+
eu: 'exports:unused',
|
|
43
44
|
t: 'test',
|
|
44
45
|
tu: 'test:unit',
|
|
45
46
|
tr: 'test:related',
|
|
@@ -62,6 +63,7 @@ const ALIASES: Record<string, string> = {
|
|
|
62
63
|
v: 'version',
|
|
63
64
|
r: 'ranges',
|
|
64
65
|
dr: 'doctor',
|
|
66
|
+
rc: 'ruleset:check',
|
|
65
67
|
pg: 'propagate',
|
|
66
68
|
ad: 'adopt',
|
|
67
69
|
ov: 'overrides',
|
|
@@ -4,10 +4,9 @@ import { DOCUMENT_COMMANDS } from './josh-commands-document'
|
|
|
4
4
|
import { GUARD_COMMANDS } from './josh-commands-guard'
|
|
5
5
|
import { ISSUE_COMMANDS } from './josh-commands-issue'
|
|
6
6
|
import { LANE_COMMANDS } from './josh-commands-lane'
|
|
7
|
+
import { RUN_COMMANDS } from './josh-commands-run'
|
|
7
8
|
import { SPLIT_COMMANDS } from './josh-commands-split'
|
|
8
9
|
|
|
9
|
-
// One script answers both `run:hold` and `run:release`; the flag below is what tells them apart.
|
|
10
|
-
const RUN_HOLD_SCRIPT = 'scripts/run/run-hold-cli.ts'
|
|
11
10
|
const ISSUE_WITH_OPTIONS = '<issue> [options]'
|
|
12
11
|
|
|
13
12
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
@@ -21,7 +20,7 @@ const AI_COMMANDS: Record<string, CommandEntry> = {
|
|
|
21
20
|
reference: ['<keywords> [--size <n>]', 'automation', ['network']],
|
|
22
21
|
},
|
|
23
22
|
'stash:pop': {
|
|
24
|
-
script: 'scripts/git/stash-pop-cli.ts',
|
|
23
|
+
script: 'scripts/git/stash/stash-pop-cli.ts',
|
|
25
24
|
description: 'Pop the stash matching this message, not whichever a shared stack has on top',
|
|
26
25
|
category: 'AI tools',
|
|
27
26
|
reference: ['<message>', 'automation', ['git']],
|
|
@@ -36,7 +35,7 @@ const AI_COMMANDS: Record<string, CommandEntry> = {
|
|
|
36
35
|
script: 'scripts/epic/epic-next.ts',
|
|
37
36
|
description: "List an epic's runnable children, bundled per repository",
|
|
38
37
|
category: 'AI tools',
|
|
39
|
-
reference: ['<epic>', 'automation', ['network']],
|
|
38
|
+
reference: ['<epic>... [--repo <owner/repo>] [--lanes]', 'automation', ['network']],
|
|
40
39
|
},
|
|
41
40
|
'epic:bundle': {
|
|
42
41
|
script: 'scripts/epic/epic-bundle-cli.ts',
|
|
@@ -65,9 +64,10 @@ const AI_COMMANDS: Record<string, CommandEntry> = {
|
|
|
65
64
|
...BACKLOG_COMMANDS,
|
|
66
65
|
cost: {
|
|
67
66
|
script: 'scripts/cost-runtime/cost-cli.ts',
|
|
68
|
-
description:
|
|
67
|
+
description:
|
|
68
|
+
'Say whether the next turn of a run crosses the context-cut threshold (--cut) or a given tokens-per-request figure (--over)',
|
|
69
69
|
category: 'AI tools',
|
|
70
|
-
reference: ['
|
|
70
|
+
reference: ['(--cut | --over <tokens-per-request>) [--path <dir>]', 'automation', ['none']],
|
|
71
71
|
},
|
|
72
72
|
...DOCUMENT_COMMANDS,
|
|
73
73
|
time: {
|
|
@@ -134,100 +134,7 @@ const AI_COMMANDS: Record<string, CommandEntry> = {
|
|
|
134
134
|
category: 'AI tools',
|
|
135
135
|
reference: ['<unit-files> <unit-files> [<unit-files> …]', 'automation', ['none']],
|
|
136
136
|
},
|
|
137
|
-
|
|
138
|
-
script: RUN_HOLD_SCRIPT,
|
|
139
|
-
description: 'Claim this working tree for a run, or say which run already holds it',
|
|
140
|
-
category: 'AI tools',
|
|
141
|
-
reference: ['[issue]', 'automation', ['files']],
|
|
142
|
-
},
|
|
143
|
-
'run:release': {
|
|
144
|
-
script: RUN_HOLD_SCRIPT,
|
|
145
|
-
description: "Release this working tree's run record",
|
|
146
|
-
category: 'AI tools',
|
|
147
|
-
reference: ['[issue|--force]', 'automation', ['files']],
|
|
148
|
-
default_script_arguments: ['--release'],
|
|
149
|
-
},
|
|
150
|
-
'run:tidy': {
|
|
151
|
-
script: 'scripts/run/run-tidy-cli.ts',
|
|
152
|
-
description: 'Close merged lanes and drop stashes whose issues are all merged',
|
|
153
|
-
category: 'AI tools',
|
|
154
|
-
reference: ['', 'automation', ['git', 'network', 'files']],
|
|
155
|
-
},
|
|
156
|
-
'run:carry': {
|
|
157
|
-
script: 'scripts/run/run-carry-cli.ts',
|
|
158
|
-
description: 'Carry one invocation’s budget across its own session cuts',
|
|
159
|
-
category: 'AI tools',
|
|
160
|
-
reference: ['<operation> [arguments...]', 'automation', ['files']],
|
|
161
|
-
},
|
|
162
|
-
'run:wake': {
|
|
163
|
-
script: 'scripts/run/run-wake-cli.ts',
|
|
164
|
-
// `.env` rather than the ambient environment:
|
|
165
|
-
// the failure warning needs the Telegram credentials, the same
|
|
166
|
-
// reasons `notify` and `followup` carry these flags.
|
|
167
|
-
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
168
|
-
description: 'Wake the next session of a cut backlogrun from outside the conversation',
|
|
169
|
-
category: 'AI tools',
|
|
170
|
-
reference: ['[options]', 'automation', ['processes', 'notifications']],
|
|
171
|
-
},
|
|
172
|
-
'run:cut': {
|
|
173
|
-
script: 'scripts/run/run-cut-cli.ts',
|
|
174
|
-
description: 'Cut a lane child before the gate and resume a fresh process',
|
|
175
|
-
category: 'AI tools',
|
|
176
|
-
reference: ['[--resume] <issue> [--impl] [--handoff <path>]', 'automation', ['files']],
|
|
177
|
-
},
|
|
178
|
-
'run:liveness': {
|
|
179
|
-
script: 'scripts/run/run-liveness-cli.ts',
|
|
180
|
-
description: 'Say whether a delegated unit is still working, or stopped without reporting',
|
|
181
|
-
category: 'AI tools',
|
|
182
|
-
reference: ['<issue> --output <path> [options]', 'automation', ['processes']],
|
|
183
|
-
},
|
|
184
|
-
'run:ending': {
|
|
185
|
-
script: 'scripts/run/run-ending-cli.ts',
|
|
186
|
-
description: 'Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)',
|
|
187
|
-
category: 'AI tools',
|
|
188
|
-
reference: ['<issue> --output <path> [--repo <owner/repo>]', 'automation', ['network']],
|
|
189
|
-
},
|
|
190
|
-
'run:progress': {
|
|
191
|
-
script: 'scripts/run/run-progress-cli.ts',
|
|
192
|
-
description: 'Report an unattended run’s progress once it has gone quiet for an interval',
|
|
193
|
-
category: 'AI tools',
|
|
194
|
-
reference: ['[--wait|--mark]', 'automation', ['files']],
|
|
195
|
-
},
|
|
196
|
-
'run:prep': {
|
|
197
|
-
script: 'scripts/run/run-prep-cli.ts',
|
|
198
|
-
description: 'Bundle a run’s pre-edit reads: body, comments, state, dependency scope',
|
|
199
|
-
category: 'AI tools',
|
|
200
|
-
reference: ['<issue>', 'automation', ['network']],
|
|
201
|
-
},
|
|
202
|
-
// The entry sequence a lane opened on, folded into one call (joshuafolkken/kit#2372): claim the tree,
|
|
203
|
-
// read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
|
|
204
|
-
// `cost --cut`, `run:prep` and `run:step` were four round trips re-billing a lane's full context each.
|
|
205
|
-
'run:entry': {
|
|
206
|
-
script: 'scripts/run/run-entry-cli.ts',
|
|
207
|
-
description:
|
|
208
|
-
'Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step',
|
|
209
|
-
category: 'AI tools',
|
|
210
|
-
reference: ['<issue>', 'automation', ['git', 'network', 'files']],
|
|
211
|
-
},
|
|
212
|
-
'run:status': {
|
|
213
|
-
script: 'scripts/run/run-status-cli.ts',
|
|
214
|
-
description: 'Bundle a run’s read-only status: issue state, cost verdict, carry counters',
|
|
215
|
-
category: 'AI tools',
|
|
216
|
-
reference: ['<issue> [--repo <owner/repo>]', 'automation', ['network']],
|
|
217
|
-
},
|
|
218
|
-
'run:next': {
|
|
219
|
-
script: 'scripts/run/run-next-cli.ts',
|
|
220
|
-
description: 'Print the next step a fullrun takes, computed from the run’s state',
|
|
221
|
-
category: 'AI tools',
|
|
222
|
-
reference: ['<issue>', 'automation', ['network']],
|
|
223
|
-
},
|
|
224
|
-
'run:step': {
|
|
225
|
-
script: 'scripts/run/run-step-cli.ts',
|
|
226
|
-
description:
|
|
227
|
-
'Print the run’s next single action, computed from the event stream, carry record and issue state',
|
|
228
|
-
category: 'AI tools',
|
|
229
|
-
reference: ['<issue>', 'automation', ['network', 'files']],
|
|
230
|
-
},
|
|
137
|
+
...RUN_COMMANDS,
|
|
231
138
|
'repo:party': {
|
|
232
139
|
script: 'scripts/discovery/repo-party-cli.ts',
|
|
233
140
|
description:
|
|
@@ -255,7 +162,7 @@ const AI_COMMANDS: Record<string, CommandEntry> = {
|
|
|
255
162
|
'run:tail': {
|
|
256
163
|
script: 'scripts/run/run-tail-cli.ts',
|
|
257
164
|
description:
|
|
258
|
-
'Close a run in one call: commit the observation ledger, read the citations, decide the release scope',
|
|
165
|
+
'Close a run in one call: return to the default branch, commit the observation ledger, read the citations, decide the release scope',
|
|
259
166
|
category: 'AI tools',
|
|
260
167
|
reference: ['[<issue> ...]', 'automation', ['git', 'network']],
|
|
261
168
|
},
|
|
@@ -269,7 +176,7 @@ const AI_COMMANDS: Record<string, CommandEntry> = {
|
|
|
269
176
|
'Ship a change in one call: gate, commit/push/PR, the CI-wait merge and the report bookkeeping, stopping at the first failed step',
|
|
270
177
|
category: 'AI tools',
|
|
271
178
|
reference: [
|
|
272
|
-
'"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
|
|
179
|
+
'"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--body-file <path>] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
|
|
273
180
|
'automation',
|
|
274
181
|
['git', 'network'],
|
|
275
182
|
],
|
|
@@ -33,7 +33,11 @@ const BACKLOG_COMMANDS: Record<string, CommandEntry> = {
|
|
|
33
33
|
description:
|
|
34
34
|
'Print the whole backlog as a plan: ready now, waiting on what, waiting on a person, out of scope',
|
|
35
35
|
category: 'AI tools',
|
|
36
|
-
reference: [
|
|
36
|
+
reference: [
|
|
37
|
+
'[issue...] [--only] [--waves] [--exclude <n>[,<n>...]]',
|
|
38
|
+
'automation',
|
|
39
|
+
['network'],
|
|
40
|
+
],
|
|
37
41
|
},
|
|
38
42
|
'backlog:stalled': {
|
|
39
43
|
script: 'scripts/backlog/backlog-stalled-cli.ts',
|
|
@@ -46,7 +46,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
46
46
|
reference: ['', 'automation', ['processes']],
|
|
47
47
|
},
|
|
48
48
|
bytes: {
|
|
49
|
-
script: 'scripts/
|
|
49
|
+
script: 'scripts/lines/bytes-command.ts',
|
|
50
50
|
description:
|
|
51
51
|
"Print an agent-read document's byte size against its ceiling and the headroom left",
|
|
52
52
|
category: 'Development',
|
|
@@ -128,6 +128,13 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
128
128
|
category: 'Development',
|
|
129
129
|
reference: ['', 'developer', ['files']],
|
|
130
130
|
},
|
|
131
|
+
'exports:unused': {
|
|
132
|
+
script: 'scripts/exports/unused-members-cli.ts',
|
|
133
|
+
description:
|
|
134
|
+
'Report exported namespace members nothing reads (kit only; a consumer project skips it)',
|
|
135
|
+
category: 'Development',
|
|
136
|
+
reference: ['', 'developer', ['none']],
|
|
137
|
+
},
|
|
131
138
|
'test:unit': {
|
|
132
139
|
script: 'scripts/test/test-unit-guard.ts',
|
|
133
140
|
description:
|
|
@@ -29,7 +29,7 @@ const ISSUE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
29
29
|
description:
|
|
30
30
|
'Before filing: say whether an issue like this exists and which epic it belongs to',
|
|
31
31
|
category: 'AI tools',
|
|
32
|
-
reference: ['<title> [--body <summary>]', 'automation', ['network']],
|
|
32
|
+
reference: ['<title> [--body <summary> | --body-file <path>]', 'automation', ['network']],
|
|
33
33
|
},
|
|
34
34
|
'defect:rate': {
|
|
35
35
|
script: 'scripts/issue/defect-rate-cli.ts',
|
|
@@ -49,7 +49,7 @@ const ISSUE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
49
49
|
script: 'scripts/issue/issue-fold-existing-cli.ts',
|
|
50
50
|
description: 'Assess whether a complete draft can join an unstarted issue',
|
|
51
51
|
category: 'AI tools',
|
|
52
|
-
reference: ['<assessment.json>', 'automation', ['none']],
|
|
52
|
+
reference: ['<assessment.json> [--json]', 'automation', ['none']],
|
|
53
53
|
},
|
|
54
54
|
'issue:cite': {
|
|
55
55
|
script: 'scripts/issue/issue-cite-cli.ts',
|
|
@@ -10,6 +10,13 @@ const MAINTENANCE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
10
10
|
reference: ['[--fix]', 'developer', ['files']],
|
|
11
11
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
12
12
|
},
|
|
13
|
+
'ruleset:check': {
|
|
14
|
+
script: 'scripts/repo/ruleset-check-cli.ts',
|
|
15
|
+
description:
|
|
16
|
+
"Check that the default branch requires every status check kit's workflows report (--apply adds the missing ones)",
|
|
17
|
+
category: 'Maintenance',
|
|
18
|
+
reference: ['[--apply]', 'maintainer', ['network']],
|
|
19
|
+
},
|
|
13
20
|
overrides: {
|
|
14
21
|
script: 'scripts/overrides/overrides-check.ts',
|
|
15
22
|
description: 'Check pnpm overrides for drift',
|
|
@@ -57,6 +57,12 @@ const PROJECT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
57
57
|
category: 'Project',
|
|
58
58
|
reference: ['<PR>', 'automation', ['network']],
|
|
59
59
|
},
|
|
60
|
+
'sonar:new-code': {
|
|
61
|
+
script: 'scripts/sonar/sonar-new-code-cli.ts',
|
|
62
|
+
description: 'Fail when a pull request adds any new SonarCloud issue or duplicated block',
|
|
63
|
+
category: 'Project',
|
|
64
|
+
reference: ['<PR>', 'automation', ['network']],
|
|
65
|
+
},
|
|
60
66
|
'ui:routes': {
|
|
61
67
|
script: 'scripts/ui/ui-routes-cli.ts',
|
|
62
68
|
description: 'List the screenshot-target routes the current change touches',
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
// The run-lifecycle registry (`run:hold` through `run:step`), split out of `josh-commands-ai.ts` so
|
|
4
|
+
// that file stays under its 300-code-line limit, as `BACKLOG_COMMANDS` and `LANE_COMMANDS` were
|
|
5
|
+
// (joshuafolkken/kit#2992). It is spread into `AI_COMMANDS` at the place the entries used to sit, so
|
|
6
|
+
// the generated catalog keeps their order.
|
|
7
|
+
|
|
8
|
+
// One script answers both `run:hold` and `run:release`; the flag below is what tells them apart.
|
|
9
|
+
const RUN_HOLD_SCRIPT = 'scripts/run/run-hold-cli.ts'
|
|
10
|
+
|
|
11
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
12
|
+
const RUN_COMMANDS: Record<string, CommandEntry> = {
|
|
13
|
+
'run:hold': {
|
|
14
|
+
script: RUN_HOLD_SCRIPT,
|
|
15
|
+
description: 'Claim this working tree for a run, or say which run already holds it',
|
|
16
|
+
category: 'AI tools',
|
|
17
|
+
reference: ['[<issue> [--fullrun | --halfrun-stop | --prrun-stop]]', 'automation', ['files']],
|
|
18
|
+
},
|
|
19
|
+
'run:release': {
|
|
20
|
+
script: RUN_HOLD_SCRIPT,
|
|
21
|
+
description: "Release this working tree's run record",
|
|
22
|
+
category: 'AI tools',
|
|
23
|
+
reference: ['[issue|--force]', 'automation', ['files']],
|
|
24
|
+
default_script_arguments: ['--release'],
|
|
25
|
+
},
|
|
26
|
+
'run:tidy': {
|
|
27
|
+
script: 'scripts/run/run-tidy-cli.ts',
|
|
28
|
+
description: 'Close merged lanes and drop stashes whose issues are all merged',
|
|
29
|
+
category: 'AI tools',
|
|
30
|
+
reference: ['', 'automation', ['git', 'network', 'files']],
|
|
31
|
+
},
|
|
32
|
+
'run:carry': {
|
|
33
|
+
script: 'scripts/run/run-carry-cli.ts',
|
|
34
|
+
description: 'Carry one invocation’s budget across its own session cuts',
|
|
35
|
+
category: 'AI tools',
|
|
36
|
+
reference: ['<operation> [arguments...]', 'automation', ['files']],
|
|
37
|
+
},
|
|
38
|
+
'run:wake': {
|
|
39
|
+
script: 'scripts/run/run-wake-cli.ts',
|
|
40
|
+
// `.env` rather than the ambient environment:
|
|
41
|
+
// the failure warning needs the Telegram credentials, the same
|
|
42
|
+
// reasons `notify` and `followup` carry these flags.
|
|
43
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
44
|
+
description: 'Wake the next session of a cut backlogrun from outside the conversation',
|
|
45
|
+
category: 'AI tools',
|
|
46
|
+
reference: ['[options]', 'automation', ['processes', 'notifications']],
|
|
47
|
+
},
|
|
48
|
+
'run:cut': {
|
|
49
|
+
script: 'scripts/run/run-cut-cli.ts',
|
|
50
|
+
description: 'Cut a lane child before the gate and resume a fresh process',
|
|
51
|
+
category: 'AI tools',
|
|
52
|
+
reference: ['[--resume] <issue> [--impl] [--handoff <path>]', 'automation', ['files']],
|
|
53
|
+
},
|
|
54
|
+
'run:liveness': {
|
|
55
|
+
script: 'scripts/run/run-liveness-cli.ts',
|
|
56
|
+
description: 'Say whether a delegated unit is still working, or stopped without reporting',
|
|
57
|
+
category: 'AI tools',
|
|
58
|
+
reference: ['<issue> --output <path> [options]', 'automation', ['processes']],
|
|
59
|
+
},
|
|
60
|
+
'run:ending': {
|
|
61
|
+
script: 'scripts/run/run-ending-cli.ts',
|
|
62
|
+
description: 'Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)',
|
|
63
|
+
category: 'AI tools',
|
|
64
|
+
reference: ['<issue> --output <path> [--repo <owner/repo>]', 'automation', ['network']],
|
|
65
|
+
},
|
|
66
|
+
'run:progress': {
|
|
67
|
+
script: 'scripts/run/run-progress-cli.ts',
|
|
68
|
+
description: 'Report an unattended run’s progress once it has gone quiet for an interval',
|
|
69
|
+
category: 'AI tools',
|
|
70
|
+
reference: [
|
|
71
|
+
'[--once | --wait] [--interval <minutes>] [--hours <hours>] [--repo <owner/repo>] [--output <path>] | --mark | --path',
|
|
72
|
+
'automation',
|
|
73
|
+
['files'],
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
'run:prep': {
|
|
77
|
+
script: 'scripts/run/run-prep-cli.ts',
|
|
78
|
+
description: 'Bundle a run’s pre-edit reads: body, comments, state, dependency scope',
|
|
79
|
+
category: 'AI tools',
|
|
80
|
+
reference: ['<issue>', 'automation', ['network']],
|
|
81
|
+
},
|
|
82
|
+
// The entry sequence a lane opened on, folded into one call (joshuafolkken/kit#2372): claim the tree,
|
|
83
|
+
// read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
|
|
84
|
+
// `cost --cut`, `run:prep` and `run:step` were four round trips re-billing a lane's full context each.
|
|
85
|
+
'run:entry': {
|
|
86
|
+
script: 'scripts/run/run-entry-cli.ts',
|
|
87
|
+
description:
|
|
88
|
+
'Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step',
|
|
89
|
+
category: 'AI tools',
|
|
90
|
+
reference: ['<issue> [--to <command>]', 'automation', ['git', 'network', 'files']],
|
|
91
|
+
},
|
|
92
|
+
'run:status': {
|
|
93
|
+
script: 'scripts/run/run-status-cli.ts',
|
|
94
|
+
description: 'Bundle a run’s read-only status: issue state, cost verdict, carry counters',
|
|
95
|
+
category: 'AI tools',
|
|
96
|
+
reference: ['<issue> [--repo <owner/repo>]', 'automation', ['network']],
|
|
97
|
+
},
|
|
98
|
+
'run:next': {
|
|
99
|
+
script: 'scripts/run/run-next-cli.ts',
|
|
100
|
+
description: 'Print the next step a fullrun takes, computed from the run’s state',
|
|
101
|
+
category: 'AI tools',
|
|
102
|
+
reference: ['<issue>', 'automation', ['network']],
|
|
103
|
+
},
|
|
104
|
+
'run:step': {
|
|
105
|
+
script: 'scripts/run/run-step-cli.ts',
|
|
106
|
+
description:
|
|
107
|
+
'Print the run’s next single action, computed from the event stream, carry record and issue state',
|
|
108
|
+
category: 'AI tools',
|
|
109
|
+
reference: ['<issue>', 'automation', ['network', 'files']],
|
|
110
|
+
},
|
|
111
|
+
}
|
|
112
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
113
|
+
|
|
114
|
+
export { RUN_COMMANDS }
|
|
@@ -42,6 +42,14 @@ const VERSIONING_COMMANDS: Record<string, CommandEntry> = {
|
|
|
42
42
|
category: 'Versioning',
|
|
43
43
|
reference: ['[--json]', 'automation', ['none']],
|
|
44
44
|
},
|
|
45
|
+
// Run by the release workflows, kit's and the one sync distributes, after a tag has published
|
|
46
|
+
// (joshuafolkken/kit#3007). Settings come from the environment, so the workflow decides them.
|
|
47
|
+
'release:github': {
|
|
48
|
+
script: 'scripts/release/github-release-cli.ts',
|
|
49
|
+
description: 'Create the GitHub Release for a published tag, with generated notes',
|
|
50
|
+
category: 'Versioning',
|
|
51
|
+
reference: ['', 'automation', ['network', 'release']],
|
|
52
|
+
},
|
|
45
53
|
}
|
|
46
54
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
47
55
|
|
|
@@ -35,7 +35,7 @@ const WORKFLOW_COMMANDS: Record<string, CommandEntry> = {
|
|
|
35
35
|
// than dropped: `telegram_notify.send` now throws on missing credentials and on a failed send, so
|
|
36
36
|
// `josh notify` exits non-zero instead of warning and answering 0.
|
|
37
37
|
followup: {
|
|
38
|
-
script: 'scripts/
|
|
38
|
+
script: 'scripts/followup/git-followup-workflow.ts',
|
|
39
39
|
description: 'Follow-up git workflow',
|
|
40
40
|
category: 'Workflow',
|
|
41
41
|
reference: [
|
|
@@ -46,7 +46,7 @@ const WORKFLOW_COMMANDS: Record<string, CommandEntry> = {
|
|
|
46
46
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
47
47
|
},
|
|
48
48
|
notify: {
|
|
49
|
-
script: 'scripts/
|
|
49
|
+
script: 'scripts/notify/telegram-test.ts',
|
|
50
50
|
description: 'Send Telegram notification',
|
|
51
51
|
category: 'Workflow',
|
|
52
52
|
reference: ['--task-type <type> --body <text>', 'automation', ['notifications']],
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
|
|
3
|
+
// The pair a record names its writing process by, as `process_identity` reads it back
|
|
4
|
+
// (joshuafolkken/kit#1245): the pid, and the opaque start token `process_identity.own_fields` wrote
|
|
5
|
+
// beside it. Every lock, marker and ledger entry that later asks `is_same_process` carries this pair,
|
|
6
|
+
// so its shape is declared once here and each record extends it (joshuafolkken/kit#2986).
|
|
7
|
+
//
|
|
8
|
+
// `process_start` is optional because a record written before joshuafolkken/kit#1245, or on a platform
|
|
9
|
+
// whose start time cannot be read, carries only the pid — `is_same_process` has an answer of its own
|
|
10
|
+
// for that case rather than the record being rejected.
|
|
11
|
+
const process_owner_schema = z.object({ pid: z.number(), process_start: z.string().optional() })
|
|
12
|
+
|
|
13
|
+
type ProcessOwner = z.infer<typeof process_owner_schema>
|
|
14
|
+
|
|
15
|
+
export { process_owner_schema }
|
|
16
|
+
export type { ProcessOwner }
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process'
|
|
2
2
|
import { setTimeout as sleep } from 'node:timers/promises'
|
|
3
|
-
import { git_common_directory } from '#scripts/git/git-common-directory'
|
|
4
|
-
import { run_ship_detach } from '#scripts/run/run-ship-detach'
|
|
5
3
|
import { lane_child_invocation } from './lane-child-invocation'
|
|
4
|
+
import { lane_handoff } from './lane-handoff'
|
|
6
5
|
|
|
7
6
|
// Detached lane children are not harness-tracked processes, so their completion fires no
|
|
8
7
|
// re-invocation event in the parent's session. Without a blocking wait the parent notices only
|
|
@@ -52,11 +51,8 @@ function is_process_running_default(issue: string): boolean {
|
|
|
52
51
|
const result = spawnSync('pgrep', ['-f', pattern], { encoding: 'utf8' })
|
|
53
52
|
|
|
54
53
|
if (result.status === PROCESS_FOUND) return true
|
|
55
|
-
const repository = git_common_directory.repository(process.cwd())
|
|
56
54
|
|
|
57
|
-
return (
|
|
58
|
-
repository !== undefined && run_ship_detach.read_result(repository, issue)?.result === 'running'
|
|
59
|
-
)
|
|
55
|
+
return lane_handoff.is_ship_running(issue, process.cwd())
|
|
60
56
|
}
|
|
61
57
|
|
|
62
58
|
function make_initial_state(): AwaitState {
|
|
@@ -155,6 +151,7 @@ async function wait_for_any(
|
|
|
155
151
|
|
|
156
152
|
if (completed !== undefined) return completed
|
|
157
153
|
|
|
154
|
+
// eslint-disable-next-line no-await-in-loop -- polling: each read waits on the state the previous one saw
|
|
158
155
|
await sleep(config.poll_ms)
|
|
159
156
|
}
|
|
160
157
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { LaneEnvironment } from './lane-paths'
|
|
2
|
+
import { lane_seed_policy } from './lane-seed'
|
|
2
3
|
|
|
3
4
|
// How many lanes one repository may run at once, and how many of them are free
|
|
4
5
|
// (joshuafolkken/kit#1491).
|
|
@@ -54,14 +55,16 @@ function lane_limit(environment: LaneEnvironment = process.env): LimitChoice {
|
|
|
54
55
|
// Never negative: a repository holding more `in-progress` issues than the limit allows — the limit
|
|
55
56
|
// was lowered, or a stale label outlived its run — has no free lane, and a negative count read as
|
|
56
57
|
// "how many to offer" would be a slice nobody meant.
|
|
58
|
+
//
|
|
59
|
+
// **A limit above the seat count is capped at the seats** (joshuafolkken/kit#3027). `lane:open` refuses
|
|
60
|
+
// a tenth lane however high `JOSH_LANE_LIMIT` is set, so counting free lanes past the seats offers a
|
|
61
|
+
// launch that is bound to be refused.
|
|
57
62
|
function free_lanes(limit: number, occupied: number): number {
|
|
58
|
-
return Math.max(NO_LANES, limit - occupied)
|
|
63
|
+
return Math.max(NO_LANES, Math.min(limit, lane_seed_policy.LAST_LANE_SEAT) - occupied)
|
|
59
64
|
}
|
|
60
65
|
|
|
61
66
|
const lane_capacity = {
|
|
62
|
-
DEFAULT_LANE_LIMIT,
|
|
63
67
|
LANE_LIMIT_KEY,
|
|
64
|
-
read_limit,
|
|
65
68
|
lane_limit,
|
|
66
69
|
free_lanes,
|
|
67
70
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { run_issue_number } from '#scripts/run/run-issue-number'
|
|
2
|
+
import { run_ship_next, type ShipResume } from '#scripts/run/run-ship-next'
|
|
3
|
+
import type { Stage } from '#scripts/run/run-ship-stage'
|
|
4
|
+
|
|
5
|
+
interface ShipStop extends ShipResume {
|
|
6
|
+
stage: Stage
|
|
7
|
+
}
|
|
2
8
|
|
|
3
9
|
const CHILD_INVOCATION = 'fullrun'
|
|
4
10
|
const RESUME_GUIDE = '.claude/skills/workflow-commands/pre-gate-cut.md'
|
|
@@ -52,17 +58,24 @@ function outage_resume_invocation(issue: string): string {
|
|
|
52
58
|
|
|
53
59
|
// The prompt a lane child is relaunched with when its detached ship supervisor stopped at a failed
|
|
54
60
|
// stage (joshuafolkken/kit#2428) — a red gate, a High/Medium review, a failed push or red CI. The agent
|
|
55
|
-
// ended at the hand-off, so this is how control comes back to one: it reads the stopped report
|
|
56
|
-
//
|
|
57
|
-
// the
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
// ended at the hand-off, so this is how control comes back to one: it reads the stopped report, fixes it
|
|
62
|
+
// and hands the region back. It ends with `child_invocation` for the reason `resume_invocation` does —
|
|
63
|
+
// the parent's poll keeps matching the relaunched process.
|
|
64
|
+
//
|
|
65
|
+
// **A known stage puts the next command in the prompt** (joshuafolkken/kit#2964), so the relaunched
|
|
66
|
+
// session runs it rather than re-deriving it from `chain-rule.md`. An OpenAI lane's supervisor sees only
|
|
67
|
+
// that the ship failed, not where, so without a stage the prompt points at `run:step` as before.
|
|
68
|
+
function ship_stop_invocation(issue: string, stop?: ShipStop): string {
|
|
69
|
+
const opening = `Resuming the lane child for issue #${issue} after its detached ship supervisor stopped at a failed stage — do not re-read the workflow-commands entry documents (SKILL.md, fullrun.md).`
|
|
70
|
+
const next =
|
|
71
|
+
stop === undefined
|
|
72
|
+
? `Run \`pnpm josh run:step ${issue}\` and read the stopped report it names, fix what stopped the ship, then hand the region back per chain-rule.md.`
|
|
73
|
+
: run_ship_next.next_step(issue, stop.stage, stop)
|
|
60
74
|
|
|
61
|
-
return `${
|
|
75
|
+
return `${opening} ${next} Do not re-plan or re-implement what is already on the branch. ${child_invocation(issue)}`
|
|
62
76
|
}
|
|
63
77
|
|
|
64
78
|
const lane_child_invocation = {
|
|
65
|
-
CHILD_INVOCATION,
|
|
66
79
|
child_invocation,
|
|
67
80
|
outage_resume_invocation,
|
|
68
81
|
process_pattern,
|
package/scripts/lane/lane-cli.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
import { fileURLToPath } from 'node:url'
|
|
3
3
|
import { epic_busy } from '#scripts/epic/epic-busy'
|
|
4
|
-
import { git_gh_command } from '#scripts/
|
|
4
|
+
import { git_gh_command } from '#scripts/gh/git-gh-command'
|
|
5
5
|
import type { OpenIssueData } from '#scripts/git/schemas'
|
|
6
6
|
import { issue_cite, type IssueCiter } from '#scripts/issue/issue-cite'
|
|
7
7
|
import { error_text } from '#scripts/lib/error-message'
|
|
@@ -417,9 +417,6 @@ const lane_cli = {
|
|
|
417
417
|
ALL_FLAG,
|
|
418
418
|
NONE_TOKEN,
|
|
419
419
|
USAGE,
|
|
420
|
-
main,
|
|
421
|
-
parse_issue,
|
|
422
|
-
parse_lane_issue,
|
|
423
420
|
refusal_message,
|
|
424
421
|
run,
|
|
425
422
|
}
|
|
@@ -158,6 +158,7 @@ async function close_each(issues: ReadonlyArray<string>): Promise<SweepOutcome>
|
|
|
158
158
|
const sweep: SweepOutcome = { closed: [], failed: [] }
|
|
159
159
|
|
|
160
160
|
for (const issue of issues) {
|
|
161
|
+
// eslint-disable-next-line no-await-in-loop -- worktree writes contend for the same registration directory
|
|
161
162
|
const bucket = (await try_close(issue)) ? sweep.closed : sweep.failed
|
|
162
163
|
|
|
163
164
|
bucket.push(issue)
|
|
@@ -186,10 +187,7 @@ async function close_all_lanes(): Promise<SweepOutcome> {
|
|
|
186
187
|
const lane_close = {
|
|
187
188
|
close_all_lanes,
|
|
188
189
|
close_lane,
|
|
189
|
-
lane_root_directory,
|
|
190
|
-
lane_targets,
|
|
191
190
|
prune_lanes,
|
|
192
|
-
remove_lane,
|
|
193
191
|
resolve_lane,
|
|
194
192
|
}
|
|
195
193
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { agent_argv, type AgentArgv, type AgentArgvResult } from '#scripts/agent/agent-argv'
|
|
2
2
|
import { agent_role_profile, type AgentProfile } from '#scripts/agent/agent-role-profile'
|
|
3
|
-
import { git_gh_command } from '#scripts/
|
|
4
|
-
import { IN_PROGRESS_LABEL } from '#scripts/
|
|
5
|
-
import { telegram_notify } from '#scripts/
|
|
3
|
+
import { git_gh_command } from '#scripts/gh/git-gh-command'
|
|
4
|
+
import { IN_PROGRESS_LABEL } from '#scripts/issue/issue-labels'
|
|
5
|
+
import { telegram_notify } from '#scripts/notify/telegram-notify'
|
|
6
6
|
import { detached_launch } from '#scripts/run/detached-launch'
|
|
7
7
|
import { run_ending } from '#scripts/run/run-ending'
|
|
8
8
|
import { run_event_stream } from '#scripts/run/run-event-stream'
|
|
@@ -444,7 +444,6 @@ async function warn_of_problem(outcome: DispatchOutcome, issue: string): Promise
|
|
|
444
444
|
}
|
|
445
445
|
|
|
446
446
|
const lane_dispatch = {
|
|
447
|
-
CHILD_INVOCATION: lane_child_invocation.CHILD_INVOCATION,
|
|
448
447
|
child_invocation,
|
|
449
448
|
default_log_path,
|
|
450
449
|
describe,
|
|
@@ -58,10 +58,6 @@ function is_key_line(line: string, key: string): boolean {
|
|
|
58
58
|
return body.slice(key.length).trimStart().startsWith(ASSIGNMENT_SEPARATOR)
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
function is_seed_line(line: string): boolean {
|
|
62
|
-
return is_key_line(line, PORT_SEED_KEY)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
61
|
function is_seat_line(line: string): boolean {
|
|
66
62
|
return is_key_line(line, LANE_SEAT_KEY)
|
|
67
63
|
}
|
|
@@ -235,12 +231,7 @@ function with_lane_output(content: string, output: string, profile?: AgentProfil
|
|
|
235
231
|
}
|
|
236
232
|
|
|
237
233
|
const lane_environment = {
|
|
238
|
-
LANE_OUTPUT_KEY,
|
|
239
|
-
LANE_PROVIDER_KEY,
|
|
240
|
-
LANE_ROLE_KEY,
|
|
241
|
-
is_output_line,
|
|
242
234
|
is_seat_line,
|
|
243
|
-
is_seed_line,
|
|
244
235
|
lane_file_content,
|
|
245
236
|
read_lane_output,
|
|
246
237
|
read_lane_profile,
|