@joshuafolkken/kit 1.1387.0 → 1.1453.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/skills/epic-commands/SKILL.md +1 -1
- package/.claude/skills/epic-commands/epic-bundle.md +5 -0
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +5 -3
- package/.claude/skills/workflow-commands/backlogrun-park.md +2 -0
- package/.claude/skills/workflow-commands/backlogrun-steps.md +13 -10
- package/.claude/skills/workflow-commands/backlogrun.md +3 -2
- package/.claude/skills/workflow-commands/chain-rule.md +4 -2
- 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-comments.md +6 -0
- package/.claude/skills/workflow-commands/kickoff.md +12 -13
- package/.claude/skills/workflow-commands/observation-filing.md +1 -1
- package/.claude/skills/workflow-commands/observation-ledger.md +3 -2
- package/.claude/skills/workflow-commands/pre-gate-cut.md +5 -3
- package/.claude/skills/workflow-commands/prerequisite.md +6 -0
- package/.claude/skills/workflow-commands/retrospective.md +5 -5
- package/.claude/skills/workflow-commands/split-assessment.md +2 -2
- package/README.md +27 -4
- package/dist/hooks/audit-provision.js +2 -2
- package/dist/hooks/batch-guard.js +7 -7
- package/dist/hooks/{chunk-2YSW3CXH.js → chunk-3C4XRYG6.js} +35 -11
- package/dist/hooks/{chunk-GJ7JPIHN.js → chunk-5C7L6FRC.js} +2704 -190
- package/dist/hooks/{chunk-FZ6FUSBM.js → chunk-723HKZO5.js} +1 -1
- package/dist/hooks/{chunk-STDSEPWU.js → chunk-D3NJXN5M.js} +4 -4
- package/dist/hooks/{chunk-NEC4AT4Z.js → chunk-DGT54IH5.js} +4 -0
- package/dist/hooks/{chunk-LMWBRJIP.js → chunk-EF5GQ6WS.js} +3 -3
- package/dist/hooks/{chunk-JBBMAPC4.js → chunk-IX6TTTI6.js} +4 -0
- package/dist/hooks/{chunk-IYVOLN6A.js → chunk-LBFYEOXJ.js} +3 -3
- package/dist/hooks/{chunk-SL4GQ2XP.js → chunk-MBJYQPEK.js} +106 -23
- package/dist/hooks/{chunk-WNFJLBXI.js → chunk-NO4AALP5.js} +3 -3
- package/dist/hooks/{chunk-J3KSS7II.js → chunk-OLMO72ON.js} +1 -1
- package/dist/hooks/{chunk-DCY2GWHC.js → chunk-SHYUQOIS.js} +5 -5
- package/dist/hooks/{chunk-EAQEGME7.js → chunk-UT7YC3N2.js} +1 -1
- package/dist/hooks/{chunk-EBSHN25W.js → chunk-W5ZKGTSY.js} +4 -4
- package/dist/hooks/{chunk-GNDJ7NJ7.js → chunk-Y3GKIKGW.js} +209 -56
- package/dist/hooks/{chunk-U32VSRNG.js → chunk-Z4XI7CZS.js} +89 -34
- package/dist/hooks/codex-hook-adapter.js +15 -15
- package/dist/hooks/duplicate-read-guard.js +8 -8
- package/dist/hooks/format-edited.js +5 -5
- package/dist/hooks/inputs.json +261 -201
- package/dist/hooks/investigation-guard.js +8 -8
- package/dist/hooks/pretool-guard.js +14 -14
- package/dist/hooks/session-lang.js +69 -16
- package/dist/hooks/stop-guard.js +13 -38
- package/dist/josh.js +95 -19
- package/package.json +4 -3
- package/prompts/collaboration-workflow/issue-template.md +10 -8
- package/prompts/review.md +30 -4
- package/scripts/agent/claude-agent-argv.ts +13 -1
- package/scripts/auth/auth-setup-cli.ts +101 -0
- package/scripts/auth/claude-token-output.ts +78 -0
- package/scripts/auth/claude-token.ts +68 -0
- package/scripts/auto-ok/auto-ok-judge-cli.ts +125 -0
- package/scripts/auto-ok/auto-ok-judge-read.ts +95 -0
- package/scripts/auto-ok/auto-ok-judge-write.ts +109 -0
- package/scripts/auto-ok/auto-ok-judge.ts +67 -0
- package/scripts/backlog/backlog-drive-cli.ts +14 -0
- package/scripts/backlog/backlog-drive-epic.ts +24 -8
- package/scripts/backlog/backlog-drive-launch.ts +3 -0
- package/scripts/backlog/backlog-drive-named-offer.ts +7 -2
- package/scripts/backlog/backlog-drive-named.ts +4 -2
- package/scripts/backlog/backlog-drive-unread.ts +56 -0
- package/scripts/backlog/backlog-drive.ts +38 -11
- package/scripts/backlog/backlog-overlap.ts +22 -5
- package/scripts/backlog/backlog-ready.ts +1 -3
- package/scripts/backlog/backlogrun-args.ts +13 -2
- package/scripts/backlog/backlogrun-cli.ts +91 -19
- package/scripts/backlog/backlogrun-launch.ts +24 -0
- package/scripts/backlog/backlogrun-replace.ts +166 -0
- package/scripts/backlog/backlogrun-stop.ts +178 -0
- package/scripts/behavior/behavior-cli.ts +6 -1
- package/scripts/doctor/doctor-io.ts +60 -9
- package/scripts/doctor/doctor.ts +20 -1
- package/scripts/document/document-byte-budget.ts +3 -3
- package/scripts/epic/epic-bundle-cli.ts +8 -8
- package/scripts/epic/epic-bundle-referenced.ts +2 -5
- package/scripts/epic/epic-bundle.ts +39 -4
- package/scripts/exports/unused-members-cli.ts +2 -1
- package/scripts/followup/followup-checks-event.ts +82 -0
- package/scripts/followup/git-followup-finish.ts +16 -2
- package/scripts/followup/git-followup-workflow.ts +5 -2
- package/scripts/followup/git-pr-followup-checks.ts +18 -4
- package/scripts/followup/git-pr-followup-wrapup.ts +5 -0
- package/scripts/followup/git-pr-followup.ts +4 -1
- package/scripts/fresh-machine/fresh-machine-cli.ts +204 -0
- package/scripts/fresh-machine/fresh-machine-docker.ts +65 -0
- package/scripts/fresh-machine/fresh-machine-image.ts +62 -0
- package/scripts/fresh-machine/fresh-machine-log.ts +61 -0
- package/scripts/fresh-machine/fresh-machine-patterns.ts +175 -0
- package/scripts/fresh-machine/fresh-machine-run.ts +215 -0
- package/scripts/fresh-machine/fresh-machine-script.ts +45 -0
- package/scripts/fresh-machine/fresh-machine-spec.ts +57 -0
- package/scripts/fresh-machine/specs/kit-test-backlogrun-python.json +34 -0
- package/scripts/fresh-machine/specs/kit-test-backlogrun.json +31 -0
- package/scripts/gate/gate-report.ts +70 -15
- package/scripts/gate/project-checks.ts +18 -4
- package/scripts/gate/scoped-green.ts +2 -1
- package/scripts/gate/verification-gate.ts +4 -3
- package/scripts/gh/gh-author-association.ts +14 -0
- package/scripts/gh/git-gh-conditional.ts +66 -0
- package/scripts/gh/git-gh-exec.ts +1 -1
- package/scripts/gh/git-gh-issue-read.ts +6 -3
- package/scripts/gh/git-gh-issue-rest.ts +1 -0
- package/scripts/gh/git-gh-issue-write.ts +5 -1
- package/scripts/gh/git-gh-issue.ts +13 -1
- package/scripts/gh/git-pr-checks-eval.ts +13 -0
- package/scripts/gh/git-pr-checks-parse.ts +8 -1
- package/scripts/gh/git-pr-checks-watch.ts +11 -4
- package/scripts/gh/git-pr-checks.ts +36 -2
- package/scripts/git/git-command.ts +16 -4
- package/scripts/git/git-schemas.ts +1 -0
- package/scripts/git/git-spawn-sync.ts +1 -1
- package/scripts/hooks/pretool-guard.ts +3 -1
- package/scripts/init/hook-command-rewrite.ts +31 -0
- package/scripts/init/init-actions.ts +7 -4
- package/scripts/init/init-ai-copy.ts +34 -11
- package/scripts/init/init-basic.ts +9 -4
- package/scripts/init/init-bootstrap.ts +6 -2
- package/scripts/init/init-dry-run-report.ts +150 -0
- package/scripts/init/init-dry-run.ts +189 -0
- package/scripts/init/init-install.ts +8 -1
- package/scripts/init/init-logic-toolchain.ts +76 -0
- package/scripts/init/init-logic.ts +2 -0
- package/scripts/init/init.ts +62 -42
- package/scripts/init/kit-setup-state.ts +11 -17
- package/scripts/init/own-formatter.ts +21 -0
- package/scripts/init/project-profile.ts +60 -12
- package/scripts/init/start-dry-run.ts +70 -0
- package/scripts/init/start-exec.ts +27 -1
- package/scripts/init/start-plan.ts +23 -3
- package/scripts/init/start-setup-pr.ts +13 -24
- package/scripts/init/start-steps.ts +62 -1
- package/scripts/init/start.ts +38 -17
- package/scripts/init/workflow-mark.ts +35 -0
- package/scripts/init/working-tree.ts +116 -0
- package/scripts/issue/issue-ack-cli.ts +84 -0
- package/scripts/issue/issue-auto-ok.ts +68 -99
- package/scripts/issue/issue-file-cli.ts +17 -17
- package/scripts/issue/issue-file.ts +1 -6
- package/scripts/issue/issue-labels.ts +46 -10
- package/scripts/issue/issue-release-cli.ts +69 -23
- package/scripts/issue/issue-release.ts +3 -1
- package/scripts/issue/issue-state-cli.ts +14 -4
- package/scripts/issue/issue-watch-diff.ts +152 -0
- package/scripts/issue/issue-watch-gate.ts +81 -0
- package/scripts/issue/issue-watch-hook.ts +54 -0
- package/scripts/issue/issue-watch.ts +240 -0
- package/scripts/issue/measure-rerun-cli.ts +3 -4
- package/scripts/josh/josh-command-map.ts +4 -0
- package/scripts/josh/josh-commands-ai.ts +11 -0
- package/scripts/josh/josh-commands-backlog.ts +2 -2
- package/scripts/josh/josh-commands-development.ts +1 -1
- package/scripts/josh/josh-commands-issue.ts +10 -3
- package/scripts/josh/josh-commands-lane.ts +11 -2
- package/scripts/josh/josh-commands-project.ts +26 -2
- package/scripts/josh/josh-verdict.ts +33 -4
- package/scripts/josh/process-identity.ts +32 -6
- package/scripts/lane/claude-lane-broker.ts +142 -0
- package/scripts/lane/lane-await.ts +6 -2
- package/scripts/lane/lane-broker-server.ts +69 -0
- package/scripts/lane/lane-cache.ts +37 -7
- package/scripts/lane/lane-capacity.ts +8 -6
- package/scripts/lane/lane-child-invocation.ts +1 -0
- package/scripts/lane/lane-cli.ts +15 -1
- package/scripts/lane/lane-close.ts +15 -6
- package/scripts/lane/lane-dispatch.ts +36 -10
- package/scripts/lane/lane-environment.ts +1 -1
- package/scripts/lane/lane-launch-cli.ts +13 -4
- package/scripts/lane/lane-ledger.ts +21 -3
- package/scripts/lane/lane-measure-cli.ts +10 -2
- package/scripts/lane/lane-open.ts +9 -1
- package/scripts/lane/lane-preserve.ts +49 -0
- package/scripts/lane/lane-reap.ts +20 -5
- package/scripts/lane/lane-registry.ts +6 -0
- package/scripts/lane/lane-restart-cli.ts +51 -0
- package/scripts/lane/lane-restart.ts +175 -0
- package/scripts/lane/lane-session-broker.ts +363 -0
- package/scripts/lane/lane-spent.ts +195 -0
- package/scripts/lane/lane-stage-stats.ts +27 -3
- package/scripts/lane/lane-stop-stats.ts +96 -0
- package/scripts/lane/openai-lane-supervisor.ts +2 -2
- package/scripts/lane/process-tools.ts +31 -0
- package/scripts/lib/buffered-process.ts +36 -2
- package/scripts/lib/pnpm-reach.ts +27 -0
- package/scripts/lib/status-icons.ts +5 -1
- package/scripts/lint/lint-parallel.ts +19 -2
- package/scripts/observations/observation-ledger-home.ts +1 -0
- package/scripts/observations/observation-ledger-migrate.ts +3 -15
- package/scripts/release/release-issue-close.ts +133 -0
- package/scripts/release/release-publish.ts +12 -1
- package/scripts/repo/repository-labels.ts +11 -1
- package/scripts/review/comment-ranges.ts +199 -0
- package/scripts/review/review-attest-cli.ts +21 -6
- package/scripts/review/review-brief-cli.ts +24 -7
- package/scripts/review/review-code-tree.ts +119 -0
- package/scripts/review/review-comment-round.ts +114 -0
- package/scripts/review/review-record-cli.ts +39 -17
- package/scripts/review/review-round2-cli.ts +16 -5
- package/scripts/review/review-round2.ts +30 -10
- package/scripts/review/review-stamps.ts +22 -1
- package/scripts/rules/implementation-cut.ts +3 -3
- package/scripts/rules/pre-gate-cut.ts +1 -1
- package/scripts/run/board/run-board-checks.ts +42 -0
- package/scripts/run/board/run-board-cli.ts +2 -0
- package/scripts/run/board/run-board-every.ts +3 -1
- package/scripts/run/board/run-board-fit.ts +16 -5
- package/scripts/run/board/run-board-fresh.ts +64 -0
- package/scripts/run/board/run-board-header.ts +129 -53
- package/scripts/run/board/run-board-labels.ts +47 -4
- package/scripts/run/board/run-board-lane-event.ts +66 -0
- package/scripts/run/board/run-board-layout.ts +57 -9
- package/scripts/run/board/run-board-now.ts +234 -0
- package/scripts/run/board/run-board-operation-read.ts +75 -0
- package/scripts/run/board/run-board-operation.ts +150 -0
- package/scripts/run/board/run-board-phase.ts +26 -1
- package/scripts/run/board/run-board-plan.ts +4 -6
- package/scripts/run/board/run-board-read.ts +49 -3
- package/scripts/run/board/run-board-reason.ts +124 -0
- package/scripts/run/board/run-board-render-checks.ts +55 -0
- package/scripts/run/board/run-board-render-legend.ts +12 -3
- package/scripts/run/board/run-board-render-slot.ts +2 -2
- package/scripts/run/board/run-board-render-tail.ts +128 -0
- package/scripts/run/board/run-board-render-thanks.ts +50 -0
- package/scripts/run/board/run-board-render-title.ts +58 -0
- package/scripts/run/board/run-board-render.ts +96 -80
- package/scripts/run/board/run-board-row-yield.ts +32 -0
- package/scripts/run/board/run-board-setup.ts +61 -13
- package/scripts/run/board/run-board-state.ts +10 -0
- package/scripts/run/board/run-board-status.ts +66 -7
- package/scripts/run/board/run-board-thanks-csv.ts +71 -0
- package/scripts/run/board/run-board-thanks-read.ts +112 -0
- package/scripts/run/board/run-board-thanks.ts +53 -0
- package/scripts/run/board/run-board-tick.ts +50 -21
- package/scripts/run/board/run-board-usual.ts +44 -0
- package/scripts/run/carry/run-carry-args.ts +9 -1
- package/scripts/run/carry/run-carry-cli.ts +2 -45
- package/scripts/run/carry/run-carry-end.ts +73 -0
- package/scripts/run/carry/run-carry.ts +8 -1
- package/scripts/run/entry/run-entry-cli.ts +5 -0
- package/scripts/run/event/run-event-checks.ts +54 -0
- package/scripts/run/event/run-event-render.ts +2 -0
- package/scripts/run/event/run-event-scope.ts +1 -0
- package/scripts/run/event/run-event-setup.ts +55 -11
- package/scripts/run/event/run-event-stream.ts +27 -11
- package/scripts/run/merge/run-merge-cli.ts +7 -4
- package/scripts/run/merge/run-merge-ship.ts +61 -0
- package/scripts/run/merge/run-merge-steps.ts +7 -14
- package/scripts/run/merge/run-merge-token.ts +16 -2
- package/scripts/run/run-headless.ts +1 -0
- package/scripts/run/run-step.ts +2 -0
- package/scripts/run/ship/run-ship-cli.ts +22 -2
- package/scripts/run/ship/run-ship-return.ts +31 -13
- package/scripts/run/ship/run-ship-review-steps.ts +17 -4
- package/scripts/run/ship/run-ship-stage.ts +1 -0
- package/scripts/run/wake/run-wake-await.ts +130 -0
- package/scripts/run/wake/run-wake-cli.ts +60 -71
- package/scripts/run/wake/run-wake-describe.ts +34 -2
- package/scripts/run/wake/run-wake-driver.ts +11 -4
- package/scripts/run/wake/run-wake-session.ts +20 -3
- package/scripts/run/wake/run-wake-stop.ts +37 -0
- package/scripts/run/wake/run-wake-supervise.ts +44 -0
- package/scripts/sync/claude-settings-merge.ts +144 -0
- package/scripts/sync/sync-ai-files.ts +28 -3
- package/scripts/sync/sync.ts +15 -0
- package/scripts/test/project-test-script.ts +73 -0
- package/scripts/test/skip-marker.ts +14 -1
- package/scripts/test/test-related.ts +3 -2
- package/scripts/test/test-unit-guard.ts +78 -14
- package/scripts/time-runtime/time-reported-failure.ts +11 -3
- package/scripts/uninstall/distributed-files.ts +92 -0
- package/scripts/uninstall/uninstall-plan.ts +119 -0
- package/scripts/uninstall/uninstall-report.ts +61 -0
- package/scripts/uninstall/uninstall.ts +206 -0
- package/templates/AGENTS.basic.md +4 -0
- package/templates/GEMINI.basic.md +6 -0
- package/dist/hooks/chunk-6V5OPIUU.js +0 -13
- package/scripts/lane/openai-review-broker.ts +0 -262
- package/scripts/run/board/run-board-track.ts +0 -22
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolve_local_bin,
|
|
3
3
|
resolve_package_bin
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IX6TTTI6.js";
|
|
5
5
|
import {
|
|
6
6
|
ESLINT_EDIT_CACHE_FLAGS,
|
|
7
7
|
time_density_hook
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MBJYQPEK.js";
|
|
9
9
|
import {
|
|
10
10
|
file_reader,
|
|
11
11
|
json_value
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3C4XRYG6.js";
|
|
13
13
|
import {
|
|
14
14
|
HOOK_PROCESS_TIMEOUT_MS
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-DGT54IH5.js";
|
|
16
16
|
|
|
17
17
|
// scripts/hooks/format-edited-file.ts
|
|
18
18
|
import { existsSync as existsSync2 } from "node:fs";
|
|
@@ -3,6 +3,9 @@ import path from "node:path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
var PACKAGE_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
5
5
|
var PROJECT_ROOT = process.cwd();
|
|
6
|
+
function package_path(relative_path) {
|
|
7
|
+
return path.join(PACKAGE_DIR, relative_path);
|
|
8
|
+
}
|
|
6
9
|
|
|
7
10
|
// scripts/josh/stamp-file.ts
|
|
8
11
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -144,6 +147,7 @@ var SUITE_TIMEOUT_MS = 18e5;
|
|
|
144
147
|
|
|
145
148
|
export {
|
|
146
149
|
PROJECT_ROOT,
|
|
150
|
+
package_path,
|
|
147
151
|
PLATFORM_TEMP_ROOT,
|
|
148
152
|
platform_temporary,
|
|
149
153
|
stamp_file,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
lane_guard_policy
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UT7YC3N2.js";
|
|
4
4
|
import {
|
|
5
5
|
hook_decision
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-W5ZKGTSY.js";
|
|
7
7
|
import {
|
|
8
8
|
time_batch_guard
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MBJYQPEK.js";
|
|
10
10
|
|
|
11
11
|
// scripts/hooks/batch-guard.ts
|
|
12
12
|
import { text } from "node:stream/consumers";
|
|
@@ -85,6 +85,10 @@ function resolve_package_bin(base_directory, package_name, bin_name) {
|
|
|
85
85
|
|
|
86
86
|
export {
|
|
87
87
|
ancestor_directories,
|
|
88
|
+
vscode_settings_schema,
|
|
89
|
+
json_object_schema,
|
|
90
|
+
string_array_schema,
|
|
91
|
+
string_record_schema,
|
|
88
92
|
resolve_local_bin,
|
|
89
93
|
find_local_bin_upwards,
|
|
90
94
|
resolve_package_bin
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
investigation_reads
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NO4AALP5.js";
|
|
4
4
|
import {
|
|
5
5
|
lane_guard_policy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UT7YC3N2.js";
|
|
7
7
|
import {
|
|
8
8
|
hook_decision
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-W5ZKGTSY.js";
|
|
10
10
|
|
|
11
11
|
// scripts/delegation/investigation-guard.ts
|
|
12
12
|
import { text } from "node:stream/consumers";
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
process_owner_schema,
|
|
7
7
|
run_carry,
|
|
8
8
|
time_instant
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3C4XRYG6.js";
|
|
10
10
|
import {
|
|
11
11
|
PLATFORM_TEMP_ROOT,
|
|
12
12
|
PROBE_TIMEOUT_MS,
|
|
13
13
|
stamp_file
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-DGT54IH5.js";
|
|
15
15
|
|
|
16
16
|
// scripts/cost-runtime/cost-blocks.ts
|
|
17
17
|
import { z } from "zod";
|
|
@@ -147,10 +147,10 @@ var BACKLOG_COMMANDS = {
|
|
|
147
147
|
// Started from a terminal: the `backlogrun` keyword's launcher, and the board.
|
|
148
148
|
backlogrun: {
|
|
149
149
|
script: "scripts/backlog/backlogrun-cli.ts",
|
|
150
|
-
description: "Start a backlogrun in the background and show its board; with one already running, only show the board",
|
|
150
|
+
description: "Start a backlogrun in the background and show its board; with one already running, only show the board, or replace it when it is idle and the invocation differs; --stop stops it",
|
|
151
151
|
category: "AI tools",
|
|
152
152
|
reference: [
|
|
153
|
-
"[
|
|
153
|
+
"[<n>...] [--only] [--max <n>] [--idle <minutes>] [--agent claude|codex] | --stop",
|
|
154
154
|
"developer",
|
|
155
155
|
["files", "network", "processes"]
|
|
156
156
|
]
|
|
@@ -260,6 +260,12 @@ var GUARD_COMMANDS = {
|
|
|
260
260
|
// scripts/josh/josh-commands-issue.ts
|
|
261
261
|
var ISSUES_WITH_REPO = "<issue...> [--repo <owner/repo>]";
|
|
262
262
|
var ISSUE_COMMANDS = {
|
|
263
|
+
"issue:ack": {
|
|
264
|
+
script: "scripts/issue/issue-ack-cli.ts",
|
|
265
|
+
description: "Record that the run read a person's update to its issue, printing the update it acknowledges",
|
|
266
|
+
category: "AI tools",
|
|
267
|
+
reference: ["<issue>", "automation", ["network"]]
|
|
268
|
+
},
|
|
263
269
|
"issue:read": {
|
|
264
270
|
script: "scripts/issue/issue-read-cli.ts",
|
|
265
271
|
description: "Print each issue's title, body and every comment on it, in one call",
|
|
@@ -313,16 +319,16 @@ var ISSUE_COMMANDS = {
|
|
|
313
319
|
description: "File an Issue with every filing step: lint, Origin, fold, WIP cap, duplicate scout, labels, then epic:bundle",
|
|
314
320
|
category: "AI tools",
|
|
315
321
|
reference: [
|
|
316
|
-
"<title> --body-file <path> --depth <0|1|2> [--route <route>] [--label <name>] [--repo <owner/repo>] [--distinct <N,\u2026>] [--over-cap] [--no-auto-ok] [--
|
|
322
|
+
"<title> --body-file <path> --depth <0|1|2> [--route <route>] [--label <name>] [--repo <owner/repo>] [--distinct <N,\u2026>] [--over-cap] [--no-auto-ok] [--release]",
|
|
317
323
|
"automation",
|
|
318
324
|
["network"]
|
|
319
325
|
]
|
|
320
326
|
},
|
|
321
327
|
"issue:release": {
|
|
322
328
|
script: "scripts/issue/issue-release-cli.ts",
|
|
323
|
-
description: "Link an Issue to the repository's open release Issue as its blocker, filing one when none is open",
|
|
329
|
+
description: "Link an Issue to the repository's open release Issue as its blocker (or, with --wait, as waiting on it), filing one when none is open",
|
|
324
330
|
category: "AI tools",
|
|
325
|
-
reference: ["<issue>", "automation", ["network"]]
|
|
331
|
+
reference: ["<issue> [--wait]", "automation", ["network"]]
|
|
326
332
|
}
|
|
327
333
|
};
|
|
328
334
|
|
|
@@ -358,7 +364,7 @@ var LANE_COMMANDS = {
|
|
|
358
364
|
},
|
|
359
365
|
"lane:prune": {
|
|
360
366
|
...LANE_ARGUMENTS,
|
|
361
|
-
description: "Close every lane an interruption left without its work tree, then sweep unregistered leftovers under the lanes root",
|
|
367
|
+
description: "Close every lane an interruption left without its work tree and every spent lane, then sweep unregistered leftovers under the lanes root",
|
|
362
368
|
category: "AI tools",
|
|
363
369
|
reference: ["", "automation", ["files", "git"]],
|
|
364
370
|
default_script_arguments: ["prune"]
|
|
@@ -390,6 +396,14 @@ var LANE_COMMANDS = {
|
|
|
390
396
|
category: "AI tools",
|
|
391
397
|
reference: ["<issue> [--stash <message>]", "automation", ["files", "git", "processes"]]
|
|
392
398
|
},
|
|
399
|
+
// `.env` is read for `JOSH_LANE_ROOT`, as every lane command reads it, so the lane is found.
|
|
400
|
+
"lane:restart": {
|
|
401
|
+
script: "scripts/lane/lane-restart-cli.ts",
|
|
402
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
403
|
+
description: "Stop a running lane child, stash its uncommitted work and re-dispatch its issue in a fresh session \u2014 not counted as an outage or a failure",
|
|
404
|
+
category: "AI tools",
|
|
405
|
+
reference: ["<issue>", "developer", ["files", "git", "processes", "network"]]
|
|
406
|
+
},
|
|
393
407
|
// A live run's lane limit: `.env` is read so the bare form reports the
|
|
394
408
|
// `JOSH_LANE_LIMIT` a person set there when no override stands.
|
|
395
409
|
"lane:limit": {
|
|
@@ -410,7 +424,7 @@ var LANE_COMMANDS = {
|
|
|
410
424
|
},
|
|
411
425
|
"lane:stats": {
|
|
412
426
|
...MEASURE_ARGUMENTS,
|
|
413
|
-
description: "Print one table row of lane throughput, gate duration and machine load over a period,
|
|
427
|
+
description: "Print one table row of lane throughput, gate duration and machine load over a period, the per-stage durations of a lane under it, and the wait after each ship stop reason under those",
|
|
414
428
|
category: "AI tools",
|
|
415
429
|
reference: ["--period <days> [--limit <lane-limit>]", "maintainer", ["none"]],
|
|
416
430
|
default_script_arguments: ["stats"]
|
|
@@ -599,6 +613,16 @@ var AI_COMMANDS = {
|
|
|
599
613
|
category: "AI tools",
|
|
600
614
|
reference: ["[--exclude <n>[,<n>...]] [--label <name>]", "automation", ["network"]]
|
|
601
615
|
},
|
|
616
|
+
"auto-ok:judge": {
|
|
617
|
+
script: "scripts/auto-ok/auto-ok-judge-cli.ts",
|
|
618
|
+
description: "List the open issues backlogrun owes an auto-ok judgement, or record one (--apply / --decline)",
|
|
619
|
+
category: "AI tools",
|
|
620
|
+
reference: [
|
|
621
|
+
"[--apply <n> (--lane | --solo) | --decline <n> --reason <text>]",
|
|
622
|
+
"automation",
|
|
623
|
+
["network"]
|
|
624
|
+
]
|
|
625
|
+
},
|
|
602
626
|
...BACKLOG_COMMANDS,
|
|
603
627
|
cost: {
|
|
604
628
|
script: "scripts/cost-runtime/cost-cli.ts",
|
|
@@ -1307,17 +1331,27 @@ import { availableParallelism as availableParallelism4 } from "node:os";
|
|
|
1307
1331
|
// scripts/lib/status-icons.ts
|
|
1308
1332
|
var FAIL_ICON = "\u2717";
|
|
1309
1333
|
var PASS_ICON = "\u2714";
|
|
1310
|
-
var
|
|
1334
|
+
var WARN_ICON = "\u26A0";
|
|
1335
|
+
var status_icons = { FAIL_ICON, PASS_ICON, WARN_ICON };
|
|
1311
1336
|
|
|
1312
1337
|
// scripts/josh/josh-verdict.ts
|
|
1313
|
-
var { FAIL_ICON: FAIL_ICON2, PASS_ICON: PASS_ICON2 } = status_icons;
|
|
1338
|
+
var { FAIL_ICON: FAIL_ICON2, PASS_ICON: PASS_ICON2, WARN_ICON: WARN_ICON2 } = status_icons;
|
|
1314
1339
|
var GATE_SUBJECT = "verification gate";
|
|
1315
1340
|
var GATE_PASSED_PREFIX = `${PASS_ICON2} ${GATE_SUBJECT} passed`;
|
|
1316
1341
|
var GATE_FAILED_PREFIX = `${FAIL_ICON2} ${GATE_SUBJECT} failed`;
|
|
1342
|
+
var GATE_UNVERIFIED_PREFIX = `${WARN_ICON2} ${GATE_SUBJECT} not verified`;
|
|
1317
1343
|
var PASSED_VERDICT = "passed";
|
|
1318
1344
|
var FAILED_VERDICT = "failed";
|
|
1319
|
-
|
|
1320
|
-
|
|
1345
|
+
var UNVERIFIED_VERDICT = "unverified";
|
|
1346
|
+
function format_counts(counts) {
|
|
1347
|
+
if (counts.skipped === 0) return `${String(counts.ran)} checks`;
|
|
1348
|
+
return `${String(counts.ran)} ran, ${String(counts.skipped)} skipped`;
|
|
1349
|
+
}
|
|
1350
|
+
function format_gate_passed(counts, total) {
|
|
1351
|
+
return `${GATE_PASSED_PREFIX} (${format_counts(counts)}) in ${total}.`;
|
|
1352
|
+
}
|
|
1353
|
+
function format_gate_unverified(skipped, total) {
|
|
1354
|
+
return `${GATE_UNVERIFIED_PREFIX} (0 ran, ${String(skipped)} skipped) in ${total}.`;
|
|
1321
1355
|
}
|
|
1322
1356
|
function format_gate_failed(failed_labels, total) {
|
|
1323
1357
|
return `${GATE_FAILED_PREFIX}: ${failed_labels} (${total})`;
|
|
@@ -1332,13 +1366,16 @@ function read_verdict(line) {
|
|
|
1332
1366
|
const trimmed = line.trimStart();
|
|
1333
1367
|
if (trimmed.startsWith(GATE_FAILED_PREFIX)) return FAILED_VERDICT;
|
|
1334
1368
|
if (trimmed.startsWith(GATE_PASSED_PREFIX)) return PASSED_VERDICT;
|
|
1369
|
+
if (trimmed.startsWith(GATE_UNVERIFIED_PREFIX)) return UNVERIFIED_VERDICT;
|
|
1335
1370
|
return void 0;
|
|
1336
1371
|
}
|
|
1337
1372
|
var josh_verdict = {
|
|
1338
1373
|
PASSED_VERDICT,
|
|
1339
1374
|
FAILED_VERDICT,
|
|
1375
|
+
UNVERIFIED_VERDICT,
|
|
1340
1376
|
format_gate_passed,
|
|
1341
1377
|
format_gate_failed,
|
|
1378
|
+
format_gate_unverified,
|
|
1342
1379
|
GATE_OPENING_MARK,
|
|
1343
1380
|
GATE_OPENING_PREFIX,
|
|
1344
1381
|
is_gate_opening,
|
|
@@ -1671,7 +1708,7 @@ var DEV_COMMANDS = {
|
|
|
1671
1708
|
},
|
|
1672
1709
|
"test:unit": {
|
|
1673
1710
|
script: "scripts/test/test-unit-guard.ts",
|
|
1674
|
-
description: "Run unit tests with Vitest (
|
|
1711
|
+
description: "Run unit tests with Vitest (without Vitest: a basic project runs its own test script, others skip; fails when Vitest has no tests)",
|
|
1675
1712
|
category: "Development",
|
|
1676
1713
|
reference: [FILTER_ARGUMENTS, "developer", ["processes"]],
|
|
1677
1714
|
core_weight: gate_plan.direct_unit_weight,
|
|
@@ -1903,7 +1940,7 @@ var PROJECT_COMMANDS = {
|
|
|
1903
1940
|
description: "Set a project up for the GitHub Issue workflow, from git init to the setup PR",
|
|
1904
1941
|
category: "Project",
|
|
1905
1942
|
reference: [
|
|
1906
|
-
`${PROFILE_ARGUMENTS} [--yes] [--github] [--public] [--init-command <command>] [--push-preflight-command <command>]`,
|
|
1943
|
+
`${PROFILE_ARGUMENTS} [--yes] [--github] [--public] [--dry-run] [--init-command <command>] [--push-preflight-command <command>]`,
|
|
1907
1944
|
"developer",
|
|
1908
1945
|
["files", "git", "network", "processes"]
|
|
1909
1946
|
]
|
|
@@ -1915,12 +1952,28 @@ var PROJECT_COMMANDS = {
|
|
|
1915
1952
|
reference: ["<dir>", "automation", ["files", "git"]],
|
|
1916
1953
|
is_kit_only: true
|
|
1917
1954
|
},
|
|
1955
|
+
"fresh:run": {
|
|
1956
|
+
script: "scripts/fresh-machine/fresh-machine-cli.ts",
|
|
1957
|
+
description: "Run an install scenario in a Docker container of a machine with nothing installed, and keep the log",
|
|
1958
|
+
category: "Project",
|
|
1959
|
+
reference: [
|
|
1960
|
+
"<pattern> | --spec <file.json> [--package-version <version>] [--log-dir <dir>] [--rebuild] | --list",
|
|
1961
|
+
"maintainer",
|
|
1962
|
+
["files", "network", "processes"]
|
|
1963
|
+
]
|
|
1964
|
+
},
|
|
1965
|
+
"auth:setup": {
|
|
1966
|
+
script: "scripts/auth/auth-setup-cli.ts",
|
|
1967
|
+
description: "Save the long-lived Claude Code token `claude setup-token` prints in the macOS keychain, for josh fresh:run",
|
|
1968
|
+
category: "Project",
|
|
1969
|
+
reference: ["[--check]", "maintainer", ["network", "processes"]]
|
|
1970
|
+
},
|
|
1918
1971
|
init: {
|
|
1919
1972
|
script: "scripts/init/init.ts",
|
|
1920
1973
|
description: "Initialize config in a new project",
|
|
1921
1974
|
category: "Project",
|
|
1922
1975
|
reference: [
|
|
1923
|
-
`${PROFILE_ARGUMENTS} [--no-install]`,
|
|
1976
|
+
`${PROFILE_ARGUMENTS} [--no-install] [--dry-run]`,
|
|
1924
1977
|
"developer",
|
|
1925
1978
|
["files", "network", "processes"]
|
|
1926
1979
|
]
|
|
@@ -1931,6 +1984,12 @@ var PROJECT_COMMANDS = {
|
|
|
1931
1984
|
category: "Project",
|
|
1932
1985
|
reference: ["", "developer", ["files"]]
|
|
1933
1986
|
},
|
|
1987
|
+
uninstall: {
|
|
1988
|
+
script: "scripts/uninstall/uninstall.ts",
|
|
1989
|
+
description: "Remove what kit added to a project and list what is left to review by hand",
|
|
1990
|
+
category: "Project",
|
|
1991
|
+
reference: [`${PROFILE_ARGUMENTS} [--yes]`, "developer", ["files", "processes"]]
|
|
1992
|
+
},
|
|
1934
1993
|
"registry:migrate": {
|
|
1935
1994
|
script: "scripts/registry-migration/migrate.ts",
|
|
1936
1995
|
description: "Migrate a project from GitHub Packages to public npm",
|
|
@@ -2184,6 +2243,7 @@ var ALIASES = {
|
|
|
2184
2243
|
pf: "profile",
|
|
2185
2244
|
st: "start",
|
|
2186
2245
|
sy: "sync",
|
|
2246
|
+
un: "uninstall",
|
|
2187
2247
|
rmi: "registry:migrate",
|
|
2188
2248
|
g: "git",
|
|
2189
2249
|
gp: "pr",
|
|
@@ -2209,9 +2269,12 @@ var ALIASES = {
|
|
|
2209
2269
|
rvf: "review:findings",
|
|
2210
2270
|
ruv: "rule:value",
|
|
2211
2271
|
ev: "eval",
|
|
2272
|
+
fr: "fresh:run",
|
|
2273
|
+
as: "auth:setup",
|
|
2212
2274
|
lsm: "lane:sample",
|
|
2213
2275
|
lst: "lane:stats",
|
|
2214
2276
|
lli: "lane:limit",
|
|
2277
|
+
lrs: "lane:restart",
|
|
2215
2278
|
blr: "backlogrun"
|
|
2216
2279
|
};
|
|
2217
2280
|
function canonical_command(name) {
|
|
@@ -2444,7 +2507,8 @@ var rollup_item_schema = z3.looseObject({
|
|
|
2444
2507
|
status: z3.string().optional(),
|
|
2445
2508
|
conclusion: z3.string().optional(),
|
|
2446
2509
|
name: z3.string().optional(),
|
|
2447
|
-
context: z3.string().optional()
|
|
2510
|
+
context: z3.string().optional(),
|
|
2511
|
+
description: z3.string().nullish()
|
|
2448
2512
|
});
|
|
2449
2513
|
var pr_raw_schema = z3.object({
|
|
2450
2514
|
statusCheckRollup: z3.array(rollup_item_schema).optional(),
|
|
@@ -2517,6 +2581,7 @@ var KEY_STATUS = "status";
|
|
|
2517
2581
|
var KEY_CONCLUSION = "conclusion";
|
|
2518
2582
|
var KEY_NAME = "name";
|
|
2519
2583
|
var KEY_CONTEXT = "context";
|
|
2584
|
+
var KEY_DESCRIPTION = "description";
|
|
2520
2585
|
function read_string(value) {
|
|
2521
2586
|
if (typeof value !== "string") return void 0;
|
|
2522
2587
|
const trimmed = value.trim();
|
|
@@ -2552,7 +2617,9 @@ function read_rollup_array(parsed) {
|
|
|
2552
2617
|
function parse_rollup_item(item) {
|
|
2553
2618
|
const name = read_string(item[KEY_NAME]) ?? read_string(item[KEY_CONTEXT]);
|
|
2554
2619
|
if (name === void 0) return void 0;
|
|
2555
|
-
|
|
2620
|
+
const check = { name, status: parse_rollup_status(item) };
|
|
2621
|
+
const description = read_string(item[KEY_DESCRIPTION]);
|
|
2622
|
+
return description === void 0 ? check : { ...check, description };
|
|
2556
2623
|
}
|
|
2557
2624
|
function parse_rollup_checks(raw_json) {
|
|
2558
2625
|
const parsed = json_value.parse_or_undefined(raw_json);
|
|
@@ -2693,7 +2760,8 @@ var KIND = {
|
|
|
2693
2760
|
GATE: "gate",
|
|
2694
2761
|
LOAD: "load",
|
|
2695
2762
|
DISPATCH: "dispatch",
|
|
2696
|
-
STAGE: "stage"
|
|
2763
|
+
STAGE: "stage",
|
|
2764
|
+
STOP: "stop"
|
|
2697
2765
|
};
|
|
2698
2766
|
var merge_schema = z4.object({ kind: z4.literal(KIND.MERGE), at: z4.string(), issue: z4.number() });
|
|
2699
2767
|
var gate_schema = z4.object({
|
|
@@ -2728,12 +2796,19 @@ var stage_schema = z4.object({
|
|
|
2728
2796
|
elapsed_ms: z4.number(),
|
|
2729
2797
|
issue: z4.number().optional()
|
|
2730
2798
|
});
|
|
2799
|
+
var stop_schema = z4.object({
|
|
2800
|
+
kind: z4.literal(KIND.STOP),
|
|
2801
|
+
at: z4.string(),
|
|
2802
|
+
issue: z4.number(),
|
|
2803
|
+
reason: z4.string()
|
|
2804
|
+
});
|
|
2731
2805
|
var entry_schema = z4.discriminatedUnion("kind", [
|
|
2732
2806
|
merge_schema,
|
|
2733
2807
|
gate_schema,
|
|
2734
2808
|
load_schema,
|
|
2735
2809
|
dispatch_schema,
|
|
2736
|
-
stage_schema
|
|
2810
|
+
stage_schema,
|
|
2811
|
+
stop_schema
|
|
2737
2812
|
]);
|
|
2738
2813
|
function target_of(repository) {
|
|
2739
2814
|
return stamp_file.stamp_path(LEDGER_PREFIX, repository, LEDGER_SUFFIX);
|
|
@@ -2779,6 +2854,9 @@ async function record_dispatch(issue, path4) {
|
|
|
2779
2854
|
async function record_stage(stage, path4) {
|
|
2780
2855
|
await record({ kind: KIND.STAGE, at: now_iso(), ...stage }, path4);
|
|
2781
2856
|
}
|
|
2857
|
+
async function record_stop(stop, path4) {
|
|
2858
|
+
await record({ kind: KIND.STOP, at: now_iso(), ...stop }, path4);
|
|
2859
|
+
}
|
|
2782
2860
|
function parse_line2(line) {
|
|
2783
2861
|
return entry_schema.safeParse(json_value.parse_or_undefined(line)).data;
|
|
2784
2862
|
}
|
|
@@ -2800,6 +2878,7 @@ var lane_ledger = {
|
|
|
2800
2878
|
record_gate,
|
|
2801
2879
|
record_merge,
|
|
2802
2880
|
record_stage,
|
|
2881
|
+
record_stop,
|
|
2803
2882
|
target,
|
|
2804
2883
|
target_of
|
|
2805
2884
|
};
|
|
@@ -2984,8 +3063,12 @@ function is_failure_line(line) {
|
|
|
2984
3063
|
function is_failed_verdict(line) {
|
|
2985
3064
|
return josh_verdict.read_verdict(line) === josh_verdict.FAILED_VERDICT;
|
|
2986
3065
|
}
|
|
2987
|
-
|
|
2988
|
-
|
|
3066
|
+
var GREEN_VERDICTS = /* @__PURE__ */ new Set([
|
|
3067
|
+
josh_verdict.PASSED_VERDICT,
|
|
3068
|
+
josh_verdict.UNVERIFIED_VERDICT
|
|
3069
|
+
]);
|
|
3070
|
+
function is_green_verdict(line) {
|
|
3071
|
+
return GREEN_VERDICTS.has(josh_verdict.read_verdict(line));
|
|
2989
3072
|
}
|
|
2990
3073
|
function new_scan() {
|
|
2991
3074
|
return {
|
|
@@ -3009,7 +3092,7 @@ function note_failure(scan) {
|
|
|
3009
3092
|
scan.has_failure_before_region = true;
|
|
3010
3093
|
}
|
|
3011
3094
|
function scan_line(scan, line) {
|
|
3012
|
-
if (
|
|
3095
|
+
if (is_green_verdict(line)) {
|
|
3013
3096
|
close_region(scan);
|
|
3014
3097
|
return;
|
|
3015
3098
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
hook_decision
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-W5ZKGTSY.js";
|
|
4
4
|
import {
|
|
5
5
|
cost_blocks,
|
|
6
6
|
time_batch_guard,
|
|
7
7
|
time_bundle_call,
|
|
8
8
|
time_shell,
|
|
9
9
|
time_spans
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MBJYQPEK.js";
|
|
11
11
|
import {
|
|
12
12
|
cost_transcript
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-3C4XRYG6.js";
|
|
14
14
|
|
|
15
15
|
// scripts/delegation/investigation-reads.ts
|
|
16
16
|
import path2 from "node:path";
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
investigation_reads
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NO4AALP5.js";
|
|
4
4
|
import {
|
|
5
5
|
lane_guard_policy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UT7YC3N2.js";
|
|
7
7
|
import {
|
|
8
8
|
hook_decision
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-W5ZKGTSY.js";
|
|
10
10
|
import {
|
|
11
11
|
time_spans
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MBJYQPEK.js";
|
|
13
13
|
import {
|
|
14
14
|
json_value
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-3C4XRYG6.js";
|
|
16
16
|
|
|
17
17
|
// scripts/delegation/duplicate-read-guard.ts
|
|
18
18
|
import { statSync } from "node:fs";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
time_density_hook,
|
|
3
3
|
time_hook_transcript
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MBJYQPEK.js";
|
|
5
5
|
import {
|
|
6
6
|
josh_environment_file
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OLMO72ON.js";
|
|
8
8
|
import {
|
|
9
9
|
json_value
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3C4XRYG6.js";
|
|
11
11
|
import {
|
|
12
12
|
stamp_file
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-DGT54IH5.js";
|
|
14
14
|
|
|
15
15
|
// scripts/josh/hook-decision.ts
|
|
16
16
|
import { z } from "zod";
|