@joshuafolkken/kit 1.1379.0 → 1.1383.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/workflow-commands/backlogrun-progress.md +2 -3
- package/.claude/skills/workflow-commands/backlogrun-steps.md +2 -4
- package/.claude/skills/workflow-commands/retrospective.md +1 -2
- package/dist/hooks/batch-guard.js +6 -6
- package/dist/hooks/{chunk-YSDAH73S.js → chunk-2X2ART5G.js} +2 -2
- package/dist/hooks/{chunk-RW4XMF47.js → chunk-4MGHBTOM.js} +125 -232
- package/dist/hooks/{chunk-TG2AB3W6.js → chunk-6AC4C2IO.js} +45 -55
- package/dist/hooks/{chunk-HGA4EG5S.js → chunk-6MAW7BCM.js} +12 -12
- package/dist/hooks/{chunk-QARPP36N.js → chunk-7VSZ2N4B.js} +3 -3
- package/dist/hooks/{chunk-DHSKBAQ2.js → chunk-KC6LUZZ2.js} +1 -1
- package/dist/hooks/{chunk-4RWRP3FF.js → chunk-KCF2YE7O.js} +5 -5
- package/dist/hooks/{chunk-E7LZL5AN.js → chunk-LC56R53A.js} +3 -3
- package/dist/hooks/{chunk-546X4PX3.js → chunk-LOJTBU5V.js} +3 -3
- package/dist/hooks/{chunk-7ZM464OW.js → chunk-RYP3TSUJ.js} +3 -3
- package/dist/hooks/{chunk-TORRSNDJ.js → chunk-TT742SIO.js} +2 -2
- package/dist/hooks/{chunk-NBEAGPS4.js → chunk-Y5R47QHU.js} +1 -1
- package/dist/hooks/{chunk-PV3FWDSQ.js → chunk-YKUITFT7.js} +2 -2
- package/dist/hooks/codex-hook-adapter.js +13 -13
- package/dist/hooks/duplicate-read-guard.js +7 -7
- package/dist/hooks/format-edited.js +3 -3
- package/dist/hooks/inputs.json +199 -200
- package/dist/hooks/investigation-guard.js +7 -7
- package/dist/hooks/pretool-guard.js +12 -12
- package/dist/hooks/session-lang.js +3 -3
- package/dist/hooks/stop-guard.js +19 -15
- package/dist/josh.js +1 -1
- package/package.json +1 -1
- package/prompts/collaboration-workflow/upstream-interrupt.md +1 -1
- package/scripts/backlog/backlog-budget-cli.ts +2 -20
- package/scripts/backlog/backlog-budget.ts +72 -109
- package/scripts/backlog/backlog-drive-cli.ts +10 -3
- package/scripts/backlog/backlog-drive.ts +5 -2
- package/scripts/backlog/backlog-offer-cli.ts +1 -15
- package/scripts/epic/epic-candidate-confirm.ts +1 -1
- package/scripts/epic/epic-cross-repo.ts +4 -4
- package/scripts/epic/epic-next.ts +1 -1
- package/scripts/hooks/stop-guard.ts +20 -9
- package/scripts/josh/josh-commands-ai.ts +1 -1
- package/scripts/lane/lane-cli.ts +1 -3
- package/scripts/run/board/run-board-header.ts +107 -84
- package/scripts/run/board/run-board-labels.ts +18 -17
- package/scripts/run/board/run-board-machine.ts +21 -8
- package/scripts/run/board/run-board-render.ts +1 -5
- package/scripts/run/board/run-board-span.ts +0 -1
- package/scripts/run/board/run-board-status.ts +0 -17
- package/scripts/run/board/run-board-tick.ts +1 -0
- package/scripts/run/carry/run-carry-cli.ts +8 -62
- package/scripts/run/carry/run-carry-ended.ts +1 -1
- package/scripts/run/carry/run-carry.ts +22 -68
- package/scripts/run/cut/run-cut.ts +4 -4
- package/scripts/run/event/run-event-render.ts +0 -1
- package/scripts/run/event/run-event-scope.ts +4 -8
- package/scripts/run/event/run-event-stream-emit.ts +0 -25
- package/scripts/run/event/run-event-stream.ts +23 -31
- package/scripts/run/merge/run-merge-collect.ts +1 -1
- package/scripts/run/merge/run-merge-steps.ts +1 -1
- package/scripts/run/progress/run-progress-read.ts +1 -1
- package/scripts/run/run-headless.ts +2 -2
- package/scripts/run/run-status-cli.ts +1 -5
- package/scripts/run/run-step.ts +2 -9
- package/scripts/run/run-stop-notify.ts +1 -1
- package/scripts/run/run-stranded-detect.ts +3 -3
- package/scripts/run/run-stranded.ts +25 -17
- package/scripts/run/wake/run-wake-cli.ts +7 -9
- package/scripts/run/wake/run-wake-describe.ts +3 -5
- package/scripts/run/wake/run-wake-driver.ts +3 -3
- package/scripts/run/wake/run-wake-loop.ts +4 -21
- package/scripts/run/wake/run-wake-restart.ts +1 -1
- package/scripts/run/wake/run-wake.ts +6 -7
- package/scripts/backlog/backlog-idle.ts +0 -88
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
repo_origin,
|
|
9
9
|
repository_lock,
|
|
10
10
|
run_ship_stage
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2X2ART5G.js";
|
|
12
12
|
import {
|
|
13
13
|
error_text
|
|
14
14
|
} from "./chunk-CDY4NFQG.js";
|
|
@@ -30,10 +30,10 @@ import {
|
|
|
30
30
|
time_density_hook,
|
|
31
31
|
time_shell,
|
|
32
32
|
time_transcript_line
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-TT742SIO.js";
|
|
34
34
|
import {
|
|
35
35
|
lane_child_marker
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-Y5R47QHU.js";
|
|
37
37
|
import {
|
|
38
38
|
agent_session_environment,
|
|
39
39
|
backlog_budget,
|
|
@@ -42,9 +42,8 @@ import {
|
|
|
42
42
|
has_timed_out,
|
|
43
43
|
json_value,
|
|
44
44
|
process_identity,
|
|
45
|
-
run_carry
|
|
46
|
-
|
|
47
|
-
} from "./chunk-RW4XMF47.js";
|
|
45
|
+
run_carry
|
|
46
|
+
} from "./chunk-4MGHBTOM.js";
|
|
48
47
|
import {
|
|
49
48
|
COMMAND_TIMEOUT_MS,
|
|
50
49
|
stamp_file
|
|
@@ -339,6 +338,23 @@ var session_cite = {
|
|
|
339
338
|
text
|
|
340
339
|
};
|
|
341
340
|
|
|
341
|
+
// scripts/josh/stamp-record.ts
|
|
342
|
+
var NONE_READ = { kind: "none" };
|
|
343
|
+
var UNREADABLE_READ = { kind: "unreadable" };
|
|
344
|
+
function is_older_than(iso, max_age_ms, now) {
|
|
345
|
+
const at = Date.parse(iso);
|
|
346
|
+
if (Number.isNaN(at)) return true;
|
|
347
|
+
return now.getTime() - at > max_age_ms;
|
|
348
|
+
}
|
|
349
|
+
function classify(raw, spec, now) {
|
|
350
|
+
if (raw === void 0) return NONE_READ;
|
|
351
|
+
const record = spec.parse(raw);
|
|
352
|
+
if (record === void 0) return UNREADABLE_READ;
|
|
353
|
+
const is_expired3 = is_older_than(spec.timestamp_of(record), spec.max_age_ms, now);
|
|
354
|
+
return { kind: is_expired3 ? "expired" : "carried", record };
|
|
355
|
+
}
|
|
356
|
+
var stamp_record = { classify, is_older_than };
|
|
357
|
+
|
|
342
358
|
// scripts/run/hold/run-hold.ts
|
|
343
359
|
import { z } from "zod";
|
|
344
360
|
var HOLD_PREFIX = "josh-run-hold-";
|
|
@@ -350,7 +366,7 @@ var RELEASE_COMMAND = "pnpm josh run:release";
|
|
|
350
366
|
var FORCE_RELEASE_COMMAND = `${RELEASE_COMMAND} --force`;
|
|
351
367
|
var NOT_IDLE = 'that is not "nothing is running here"';
|
|
352
368
|
var FREE_READ = { kind: "free" };
|
|
353
|
-
var
|
|
369
|
+
var UNREADABLE_READ2 = { kind: "unreadable" };
|
|
354
370
|
function hold_path(git_directory) {
|
|
355
371
|
return stamp_file.stamp_path(HOLD_PREFIX, git_directory);
|
|
356
372
|
}
|
|
@@ -386,14 +402,14 @@ function is_owner_gone(hold) {
|
|
|
386
402
|
function is_stale(hold, now) {
|
|
387
403
|
return is_expired(hold, now) || is_owner_gone(hold);
|
|
388
404
|
}
|
|
389
|
-
function
|
|
405
|
+
function classify2(raw, now) {
|
|
390
406
|
if (raw === void 0) return FREE_READ;
|
|
391
407
|
const hold = parse_hold(raw);
|
|
392
|
-
if (hold === void 0) return
|
|
408
|
+
if (hold === void 0) return UNREADABLE_READ2;
|
|
393
409
|
return { kind: is_stale(hold, now) ? "stale" : "held", hold };
|
|
394
410
|
}
|
|
395
411
|
function read_hold(target, now = /* @__PURE__ */ new Date()) {
|
|
396
|
-
return
|
|
412
|
+
return classify2(stamp_file.read_stamp_text(target), now);
|
|
397
413
|
}
|
|
398
414
|
function session_owner(environment = process.env) {
|
|
399
415
|
const pid = Number(environment[agent_session_environment.AGENT_PID_KEY]);
|
|
@@ -475,7 +491,7 @@ var run_hold = {
|
|
|
475
491
|
HOLD_MAX_AGE_MS,
|
|
476
492
|
RELEASE_COMMAND,
|
|
477
493
|
UNNUMBERED_ISSUE,
|
|
478
|
-
classify,
|
|
494
|
+
classify: classify2,
|
|
479
495
|
create_halfrun_stop_hold,
|
|
480
496
|
create_stop_hold,
|
|
481
497
|
HALFRUN_STOP_FIELDS,
|
|
@@ -726,8 +742,8 @@ var run_cut_handoff = {
|
|
|
726
742
|
var CUT_PREFIX = "josh-run-cut-";
|
|
727
743
|
var { PRE_GATE_PHASE, IMPLEMENTATION_PHASE } = agent_role_profile;
|
|
728
744
|
var IMPLEMENTATION_CONTEXT_THRESHOLD = CONTEXT_CUT_THRESHOLD;
|
|
729
|
-
var CUT_MAX_AGE_MS = backlog_budget.
|
|
730
|
-
var CUT_MAX_AGE_HOURS = backlog_budget.
|
|
745
|
+
var CUT_MAX_AGE_MS = backlog_budget.DEFAULT_IDLE_MS;
|
|
746
|
+
var CUT_MAX_AGE_HOURS = backlog_budget.IDLE_WAIT_HOURS;
|
|
731
747
|
var END_COMMAND = "pnpm josh run:cut --end";
|
|
732
748
|
var READ_COMMAND = "pnpm josh run:cut --json";
|
|
733
749
|
var MAX_HANDOFF_BYTES = 8192;
|
|
@@ -762,13 +778,13 @@ var CUT_SPEC = {
|
|
|
762
778
|
function is_expired2(cut, now) {
|
|
763
779
|
return stamp_record.is_older_than(cut_at_of(cut), CUT_MAX_AGE_MS, now);
|
|
764
780
|
}
|
|
765
|
-
function
|
|
781
|
+
function classify3(raw, now) {
|
|
766
782
|
const read = stamp_record.classify(raw, CUT_SPEC, now);
|
|
767
783
|
if (!("record" in read)) return read;
|
|
768
784
|
return { kind: read.kind, cut: read.record };
|
|
769
785
|
}
|
|
770
786
|
function read_cut(target, now = /* @__PURE__ */ new Date()) {
|
|
771
|
-
return
|
|
787
|
+
return classify3(stamp_file.read_stamp_text(target), now);
|
|
772
788
|
}
|
|
773
789
|
function worktree_git_directory_sync() {
|
|
774
790
|
return git_common_directory.own();
|
|
@@ -891,7 +907,7 @@ var run_cut = {
|
|
|
891
907
|
begin_cut,
|
|
892
908
|
busy_message,
|
|
893
909
|
carried_cut_sync,
|
|
894
|
-
classify:
|
|
910
|
+
classify: classify3,
|
|
895
911
|
classify_resume,
|
|
896
912
|
current_state,
|
|
897
913
|
cut_path,
|
|
@@ -1116,11 +1132,6 @@ var EVENT_KIND = {
|
|
|
1116
1132
|
// The position that hands control back: `run:step` prints the command that
|
|
1117
1133
|
// shows the stopped report, so the agent fixes it and relaunches rather than rebuilding the context.
|
|
1118
1134
|
SHIP_STOP: "ship-stop",
|
|
1119
|
-
// The idle watch's window — when the run began waiting on an empty backlog and when that wait ends
|
|
1120
|
-
// `backlog:offer` writes it whenever the window changes, so `run:board` reads
|
|
1121
|
-
// the deadline rather than guessing it. It is a trace: `emit_once`'s drain dedup and `run:step`'s
|
|
1122
|
-
// position both read past it, so a watching loop never re-marks the drain it is waiting after.
|
|
1123
|
-
IDLE: "idle",
|
|
1124
1135
|
// An Issue the run filed on its way, written by `issue:file`, so a run started from the command line
|
|
1125
1136
|
// still surfaces what it found — `run:board`'s findings section reads it.
|
|
1126
1137
|
FILED: "filed",
|
|
@@ -1144,18 +1155,13 @@ var EVENT_KINDS = Object.values(EVENT_KIND);
|
|
|
1144
1155
|
var TRACE_KINDS = /* @__PURE__ */ new Set([
|
|
1145
1156
|
EVENT_KIND.SHIP_STAGE,
|
|
1146
1157
|
EVENT_KIND.HEARTBEAT,
|
|
1147
|
-
EVENT_KIND.IDLE,
|
|
1148
1158
|
EVENT_KIND.FILED,
|
|
1149
1159
|
EVENT_KIND.NOTE,
|
|
1150
1160
|
EVENT_KIND.LANE_PHASE,
|
|
1151
1161
|
EVENT_KIND.ADD,
|
|
1152
1162
|
EVENT_KIND.LANE_LIMIT
|
|
1153
1163
|
]);
|
|
1154
|
-
var DISPOSABLE_KINDS = /* @__PURE__ */ new Set([
|
|
1155
|
-
EVENT_KIND.SHIP_STAGE,
|
|
1156
|
-
EVENT_KIND.HEARTBEAT,
|
|
1157
|
-
EVENT_KIND.IDLE
|
|
1158
|
-
]);
|
|
1164
|
+
var DISPOSABLE_KINDS = /* @__PURE__ */ new Set([EVENT_KIND.SHIP_STAGE, EVENT_KIND.HEARTBEAT]);
|
|
1159
1165
|
var event_schema = z4.object({
|
|
1160
1166
|
pos: z4.number(),
|
|
1161
1167
|
at: z4.string(),
|
|
@@ -1174,11 +1180,14 @@ function is_present(event) {
|
|
|
1174
1180
|
function parse_line(line) {
|
|
1175
1181
|
return event_schema.safeParse(json_value.parse_or_undefined(line)).data;
|
|
1176
1182
|
}
|
|
1177
|
-
function
|
|
1183
|
+
function read_lines(target) {
|
|
1178
1184
|
const raw = stamp_file.read_stamp_text(target);
|
|
1179
1185
|
if (raw === void 0) return [];
|
|
1180
1186
|
return raw.split(LINE_SEPARATOR).map((line) => line.trim()).filter((line) => line.length > 0).map((line) => parse_line(line)).filter(is_present);
|
|
1181
1187
|
}
|
|
1188
|
+
function read_events(target) {
|
|
1189
|
+
return read_lines(target).filter((event) => is_event_kind(event.kind));
|
|
1190
|
+
}
|
|
1182
1191
|
function last_position(events) {
|
|
1183
1192
|
return events[events.length - POSITION_INCREMENT]?.pos ?? FIRST_POSITION;
|
|
1184
1193
|
}
|
|
@@ -1196,15 +1205,12 @@ function is_stage_start(event) {
|
|
|
1196
1205
|
if (event.kind !== EVENT_KIND.SHIP_STAGE) return false;
|
|
1197
1206
|
return event.text.split(WORD_SEPARATOR)[STAGE_PHASE_INDEX] === run_ship_stage.PHASE.START;
|
|
1198
1207
|
}
|
|
1199
|
-
function is_drawn(event) {
|
|
1200
|
-
return event.kind === EVENT_KIND.IDLE || is_stage_start(event);
|
|
1201
|
-
}
|
|
1202
1208
|
function droppable(events) {
|
|
1203
1209
|
const kept = newest_stages(events);
|
|
1204
1210
|
const disposable = events.filter((event) => DISPOSABLE_KINDS.has(event.kind) && !kept.has(event));
|
|
1205
1211
|
return [
|
|
1206
|
-
...disposable.filter((event) => !
|
|
1207
|
-
...disposable.filter((event) =>
|
|
1212
|
+
...disposable.filter((event) => !is_stage_start(event)),
|
|
1213
|
+
...disposable.filter((event) => is_stage_start(event))
|
|
1208
1214
|
];
|
|
1209
1215
|
}
|
|
1210
1216
|
function bounded(events) {
|
|
@@ -1217,9 +1223,8 @@ function serialize(events) {
|
|
|
1217
1223
|
return `${events.map((event) => JSON.stringify(event)).join(LINE_SEPARATOR)}${LINE_SEPARATOR}`;
|
|
1218
1224
|
}
|
|
1219
1225
|
function append_held(target, event) {
|
|
1220
|
-
const
|
|
1221
|
-
const
|
|
1222
|
-
const events = bounded([...existing, { pos: position, ...event }]);
|
|
1226
|
+
const position = last_position(read_lines(target)) + POSITION_INCREMENT;
|
|
1227
|
+
const events = bounded([...read_events(target), { pos: position, ...event }]);
|
|
1223
1228
|
stamp_file.replace_text_stamp(target, serialize(events));
|
|
1224
1229
|
return position;
|
|
1225
1230
|
}
|
|
@@ -1291,10 +1296,8 @@ function scoped_events(events, scope) {
|
|
|
1291
1296
|
return events.filter((event) => is_within(event, floor));
|
|
1292
1297
|
}
|
|
1293
1298
|
function scope_of(read) {
|
|
1294
|
-
if (read.kind
|
|
1295
|
-
|
|
1296
|
-
}
|
|
1297
|
-
return UNKNOWN_EVENT_SCOPE;
|
|
1299
|
+
if (read.kind !== "carried") return UNKNOWN_EVENT_SCOPE;
|
|
1300
|
+
return { kind: SINCE_SCOPE, started_at: read.carry.started_at };
|
|
1298
1301
|
}
|
|
1299
1302
|
function last_scoped_event(events, scope) {
|
|
1300
1303
|
return scoped_events(events, scope)?.findLast(
|
|
@@ -1395,18 +1398,6 @@ async function emit_once(kind, text2) {
|
|
|
1395
1398
|
return false;
|
|
1396
1399
|
}
|
|
1397
1400
|
}
|
|
1398
|
-
async function emit_changed(kind, text2) {
|
|
1399
|
-
try {
|
|
1400
|
-
const target = await stream_target();
|
|
1401
|
-
if (target === void 0) return false;
|
|
1402
|
-
const newest = run_event_stream.read_events(target).findLast((event) => event.kind === kind);
|
|
1403
|
-
if (newest?.text === text2) return false;
|
|
1404
|
-
return run_event_stream.append(target, kind, text2, now_iso()).appended;
|
|
1405
|
-
} catch (error) {
|
|
1406
|
-
error_text.trace_swallowed("run_event_stream_emit.emit_changed", error);
|
|
1407
|
-
return false;
|
|
1408
|
-
}
|
|
1409
|
-
}
|
|
1410
1401
|
function invocation_events(repository, target) {
|
|
1411
1402
|
const events = run_event_stream.read_events(target);
|
|
1412
1403
|
const scope = run_event_scope.scope_of(run_carry.read_carry(run_carry.carry_path(repository)));
|
|
@@ -1461,7 +1452,6 @@ var run_event_stream_emit = {
|
|
|
1461
1452
|
all_events,
|
|
1462
1453
|
current_events,
|
|
1463
1454
|
emit,
|
|
1464
|
-
emit_changed,
|
|
1465
1455
|
emit_heartbeat,
|
|
1466
1456
|
emit_once,
|
|
1467
1457
|
emit_once_since,
|
|
@@ -1888,7 +1878,7 @@ var THIRD_PARTY = "third-party";
|
|
|
1888
1878
|
var UNKNOWN = "unknown";
|
|
1889
1879
|
var GH_REPO_ENV_KEY = "GH_REPO";
|
|
1890
1880
|
var GH_REPO_PATH_SEGMENTS = 2;
|
|
1891
|
-
function
|
|
1881
|
+
function classify4(session_owner2, target) {
|
|
1892
1882
|
if (session_owner2 === void 0 || target === void 0) return UNKNOWN;
|
|
1893
1883
|
return session_owner2.toLowerCase() === target.toLowerCase() ? FIRST_PARTY : THIRD_PARTY;
|
|
1894
1884
|
}
|
|
@@ -1912,7 +1902,7 @@ var repo_party = {
|
|
|
1912
1902
|
FIRST_PARTY,
|
|
1913
1903
|
THIRD_PARTY,
|
|
1914
1904
|
UNKNOWN,
|
|
1915
|
-
classify:
|
|
1905
|
+
classify: classify4,
|
|
1916
1906
|
current_owner,
|
|
1917
1907
|
placeholder_owners,
|
|
1918
1908
|
target_owner
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
duplicate_read_outcome
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KCF2YE7O.js";
|
|
4
4
|
import {
|
|
5
5
|
ALREADY_DONE_LABEL,
|
|
6
6
|
CONTEXT_CUT_THRESHOLD,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
session_cite,
|
|
29
29
|
shell_segments,
|
|
30
30
|
tail_commands
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-6AC4C2IO.js";
|
|
32
32
|
import {
|
|
33
33
|
ancestor_directories,
|
|
34
34
|
find_local_bin_upwards
|
|
@@ -41,25 +41,25 @@ import {
|
|
|
41
41
|
lane_registry,
|
|
42
42
|
repo_origin,
|
|
43
43
|
run_headless
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-2X2ART5G.js";
|
|
45
45
|
import {
|
|
46
46
|
error_text
|
|
47
47
|
} from "./chunk-CDY4NFQG.js";
|
|
48
48
|
import {
|
|
49
49
|
batch_outcome
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-RYP3TSUJ.js";
|
|
51
51
|
import {
|
|
52
52
|
investigation_refusal
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-LOJTBU5V.js";
|
|
54
54
|
import {
|
|
55
55
|
investigation_reads
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-7VSZ2N4B.js";
|
|
57
57
|
import {
|
|
58
58
|
lane_guard_policy
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-KC6LUZZ2.js";
|
|
60
60
|
import {
|
|
61
61
|
hook_decision
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-LC56R53A.js";
|
|
63
63
|
import {
|
|
64
64
|
cost_attribute,
|
|
65
65
|
cost_blocks,
|
|
@@ -67,10 +67,10 @@ import {
|
|
|
67
67
|
time_batch_guard,
|
|
68
68
|
time_density_hook,
|
|
69
69
|
time_shell
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-TT742SIO.js";
|
|
71
71
|
import {
|
|
72
72
|
lane_child_marker
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-Y5R47QHU.js";
|
|
74
74
|
import {
|
|
75
75
|
PORCELAIN_FLAG,
|
|
76
76
|
cli_flags,
|
|
@@ -84,7 +84,7 @@ import {
|
|
|
84
84
|
lane_paths,
|
|
85
85
|
own_session,
|
|
86
86
|
run_carry
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-4MGHBTOM.js";
|
|
88
88
|
import {
|
|
89
89
|
PLATFORM_TEMP_ROOT,
|
|
90
90
|
PROBE_TIMEOUT_MS,
|
|
@@ -4188,7 +4188,7 @@ function is_hold_present(read2) {
|
|
|
4188
4188
|
return read2.kind === "held" || read2.kind === "stale";
|
|
4189
4189
|
}
|
|
4190
4190
|
function is_carry_present(read2) {
|
|
4191
|
-
return read2.kind === "carried"
|
|
4191
|
+
return read2.kind === "carried";
|
|
4192
4192
|
}
|
|
4193
4193
|
function hold_present(worktree) {
|
|
4194
4194
|
return worktree !== void 0 && is_hold_present(run_hold.read_hold(run_hold.hold_path(worktree)));
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
hook_decision
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LC56R53A.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-TT742SIO.js";
|
|
11
11
|
import {
|
|
12
12
|
cost_transcript
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-4MGHBTOM.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-7VSZ2N4B.js";
|
|
4
4
|
import {
|
|
5
5
|
lane_guard_policy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KC6LUZZ2.js";
|
|
7
7
|
import {
|
|
8
8
|
hook_decision
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LC56R53A.js";
|
|
10
10
|
import {
|
|
11
11
|
time_spans
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TT742SIO.js";
|
|
13
13
|
import {
|
|
14
14
|
json_value
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-4MGHBTOM.js";
|
|
16
16
|
|
|
17
17
|
// scripts/delegation/duplicate-read-guard.ts
|
|
18
18
|
import { statSync } from "node:fs";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
time_density_hook,
|
|
3
3
|
time_hook_transcript
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TT742SIO.js";
|
|
5
5
|
import {
|
|
6
6
|
josh_environment_file
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-Y5R47QHU.js";
|
|
8
8
|
import {
|
|
9
9
|
json_value
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4MGHBTOM.js";
|
|
11
11
|
import {
|
|
12
12
|
stamp_file
|
|
13
13
|
} from "./chunk-NEC4AT4Z.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
investigation_reads
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7VSZ2N4B.js";
|
|
4
4
|
import {
|
|
5
5
|
lane_guard_policy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KC6LUZZ2.js";
|
|
7
7
|
import {
|
|
8
8
|
hook_decision
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LC56R53A.js";
|
|
10
10
|
|
|
11
11
|
// scripts/delegation/investigation-guard.ts
|
|
12
12
|
import { text } from "node:stream/consumers";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
lane_guard_policy
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KC6LUZZ2.js";
|
|
4
4
|
import {
|
|
5
5
|
hook_decision
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LC56R53A.js";
|
|
7
7
|
import {
|
|
8
8
|
time_batch_guard
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TT742SIO.js";
|
|
10
10
|
|
|
11
11
|
// scripts/hooks/batch-guard.ts
|
|
12
12
|
import { text } from "node:stream/consumers";
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
process_owner_schema,
|
|
7
7
|
run_carry,
|
|
8
8
|
time_instant
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4MGHBTOM.js";
|
|
10
10
|
import {
|
|
11
11
|
PLATFORM_TEMP_ROOT,
|
|
12
12
|
PROBE_TIMEOUT_MS,
|
|
@@ -739,7 +739,7 @@ var AI_COMMANDS = {
|
|
|
739
739
|
// `.env` rather than the ambient environment: the strand notification needs the Telegram
|
|
740
740
|
// credentials, the same reason `run:wake` carries these flags.
|
|
741
741
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
742
|
-
description: "Report whether the run is stranded \u2014
|
|
742
|
+
description: "Report whether the run is stranded \u2014 owner gone, no successor holding the budget, and no supervisor watching",
|
|
743
743
|
category: "AI tools",
|
|
744
744
|
reference: ["", "automation", ["processes", "notifications"]]
|
|
745
745
|
},
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
ESLINT_EDIT_CACHE_FLAGS,
|
|
7
7
|
time_density_hook
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-TT742SIO.js";
|
|
9
9
|
import {
|
|
10
10
|
file_reader,
|
|
11
11
|
json_value
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-4MGHBTOM.js";
|
|
13
13
|
import {
|
|
14
14
|
HOOK_PROCESS_TIMEOUT_MS
|
|
15
15
|
} from "./chunk-NEC4AT4Z.js";
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
import {
|
|
3
3
|
pretool_guard
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-6MAW7BCM.js";
|
|
5
|
+
import "./chunk-KCF2YE7O.js";
|
|
6
6
|
import {
|
|
7
7
|
bounded_pool
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-6AC4C2IO.js";
|
|
9
9
|
import {
|
|
10
10
|
build_envelope,
|
|
11
11
|
compose_context,
|
|
12
12
|
format_edited_payload
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-YKUITFT7.js";
|
|
14
14
|
import "./chunk-JBBMAPC4.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-2X2ART5G.js";
|
|
16
16
|
import "./chunk-CDY4NFQG.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-RYP3TSUJ.js";
|
|
18
|
+
import "./chunk-LOJTBU5V.js";
|
|
19
|
+
import "./chunk-7VSZ2N4B.js";
|
|
20
|
+
import "./chunk-KC6LUZZ2.js";
|
|
21
21
|
import {
|
|
22
22
|
hook_decision
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-LC56R53A.js";
|
|
24
24
|
import {
|
|
25
25
|
time_density_hook
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import "./chunk-
|
|
26
|
+
} from "./chunk-TT742SIO.js";
|
|
27
|
+
import "./chunk-Y5R47QHU.js";
|
|
28
28
|
import {
|
|
29
29
|
json_value
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-4MGHBTOM.js";
|
|
31
31
|
import "./chunk-NEC4AT4Z.js";
|
|
32
32
|
|
|
33
33
|
// scripts/hooks/codex-hook-adapter.ts
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
is_enabled,
|
|
10
10
|
notice_refusal_path,
|
|
11
11
|
refusal_path
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-KCF2YE7O.js";
|
|
13
|
+
import "./chunk-7VSZ2N4B.js";
|
|
14
|
+
import "./chunk-KC6LUZZ2.js";
|
|
15
|
+
import "./chunk-LC56R53A.js";
|
|
16
|
+
import "./chunk-TT742SIO.js";
|
|
17
|
+
import "./chunk-Y5R47QHU.js";
|
|
18
|
+
import "./chunk-4MGHBTOM.js";
|
|
19
19
|
import "./chunk-NEC4AT4Z.js";
|
|
20
20
|
export {
|
|
21
21
|
DISABLED_VALUES,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
report_no_payload,
|
|
4
4
|
run_hook
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YKUITFT7.js";
|
|
6
6
|
import "./chunk-JBBMAPC4.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-TT742SIO.js";
|
|
8
|
+
import "./chunk-4MGHBTOM.js";
|
|
9
9
|
import "./chunk-NEC4AT4Z.js";
|
|
10
10
|
|
|
11
11
|
// scripts/hooks/format-edited-cli.ts
|