@feigi/fleet-ctl 3.76.6 → 3.76.7
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/package.json +1 -1
- package/scripts/tier-check.mjs +23 -6
- package/skills/run-team/SKILL.md +5 -4
package/package.json
CHANGED
package/scripts/tier-check.mjs
CHANGED
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
// readers — a member with no assistant turn yet still resolves off its
|
|
23
23
|
// dispatch-time `session_init` record, never treated as absent). An
|
|
24
24
|
// entry that names neither a `session` nor a `transcript` takes the
|
|
25
|
-
// `session` the phase-0 receipt `.fleet/phase0.json` records
|
|
26
|
-
//
|
|
25
|
+
// `session` the phase-0 receipt `.fleet/phase0.json` records — the one
|
|
26
|
+
// in the workspace holding `--ledger`, or the cwd's when `--ledger` is
|
|
27
|
+
// omitted, resolved the same way the default ledger is — and is exit 2
|
|
28
|
+
// naming the receipt when it records none. That session is taken
|
|
27
29
|
// as the receipt stands: whether the receipt is this run's is judged by
|
|
28
30
|
// fleet-tick.mjs's phase-0 gate, not here, and a message about it names
|
|
29
31
|
// the receipt's session where it would name `--session`.
|
|
@@ -77,14 +79,16 @@
|
|
|
77
79
|
// LIVE member may yet write one; a member settled `PR#M`, `bailed`, `blocked`
|
|
78
80
|
// or `tier-mismatch` ran, so its transcript exists and the `session` is the
|
|
79
81
|
// wrong directory; a `session` that is empty, missing or not a directory,
|
|
80
|
-
// or omitted with none in the phase-0 receipt
|
|
81
|
-
//
|
|
82
|
+
// or omitted with none in the phase-0 receipt — a `--ledger` outside any
|
|
83
|
+
// repository or in a directory that does not exist among them, since no
|
|
84
|
+
// workspace holds it and so there is no receipt to read — is exit 2 whether
|
|
85
|
+
// the member is live or settled; and a session
|
|
82
86
|
// directory that cannot be searched (EACCES) is exit 2 naming the errno,
|
|
83
87
|
// never read as holding no transcript.
|
|
84
88
|
|
|
85
89
|
import { readFileSync, existsSync, statSync } from "node:fs";
|
|
86
90
|
import { execFileSync } from "node:child_process";
|
|
87
|
-
import { join, dirname, isAbsolute } from "node:path";
|
|
91
|
+
import { join, dirname, isAbsolute, resolve } from "node:path";
|
|
88
92
|
import { fileURLToPath } from "node:url";
|
|
89
93
|
import { isCLI } from "./is-cli.mjs";
|
|
90
94
|
import { makeDie, defineFlags } from "./arg.mjs";
|
|
@@ -328,6 +332,19 @@ function sessionLacksTranscript(repoRoot, sessionPath, member) {
|
|
|
328
332
|
// tier can still be judged.
|
|
329
333
|
const NO_TRANSCRIPT_OUTCOMES = new Set(["killed", "released"]);
|
|
330
334
|
|
|
335
|
+
// Where the phase-0 receipt is read from: the workspace the ledger in use
|
|
336
|
+
// belongs to, so a `--ledger` naming another workspace's judges that
|
|
337
|
+
// workspace's transcripts, not the cwd's. `--ledger` takes any path, not
|
|
338
|
+
// always one under a `.fleet/` — so the workspace is the one git names for
|
|
339
|
+
// the ledger's directory, the same answer ledger.mjs's own default gives
|
|
340
|
+
// from the cwd. A ledger under no repository, or in a directory that does not
|
|
341
|
+
// exist, has no workspace and so no receipt: sessionFromReceipt refuses
|
|
342
|
+
// naming why, and the whole batch is exit 2 with nothing written. Omitted,
|
|
343
|
+
// the cwd's.
|
|
344
|
+
function receiptOpts(ledgerFile) {
|
|
345
|
+
return ledgerFile ? { cwd: dirname(resolve(ledgerFile)) } : undefined;
|
|
346
|
+
}
|
|
347
|
+
|
|
331
348
|
function runLedger(ledgerFile, args, what) {
|
|
332
349
|
try {
|
|
333
350
|
return execFileSync(process.execPath, [LEDGER_SCRIPT, ...(ledgerFile ? ["--file", ledgerFile] : []), ...args], { encoding: "utf8" });
|
|
@@ -480,7 +497,7 @@ function main() {
|
|
|
480
497
|
// session directory the phase-0 receipt records — read once per
|
|
481
498
|
// batch — and refuses naming the receipt when it records none. A
|
|
482
499
|
// given one always wins.
|
|
483
|
-
const session = raw.session ?? (raw.transcript ? undefined : (receiptSession ??= sessionFromReceipt()));
|
|
500
|
+
const session = raw.session ?? (raw.transcript ? undefined : (receiptSession ??= sessionFromReceipt(receiptOpts(ledgerFile))));
|
|
484
501
|
// Said as the caller's flag only when the caller gave it.
|
|
485
502
|
const where = raw.session ? `--session ${session}` : `the phase-0 receipt's session ${session}`;
|
|
486
503
|
if (session) {
|
package/skills/run-team/SKILL.md
CHANGED
|
@@ -740,10 +740,11 @@ dispatched under.
|
|
|
740
740
|
Pull, a batch of one, the member just dispatched: `{member}`.
|
|
741
741
|
`member` is the AgentId the dispatch returns (`impl-<N>`). An entry that
|
|
742
742
|
names neither `session` nor `transcript` takes the session directory phase
|
|
743
|
-
0's receipt `.fleet/phase0.json`
|
|
744
|
-
|
|
745
|
-
`<session>/<member>.jsonl
|
|
746
|
-
still resolves off its dispatch-time
|
|
743
|
+
0's receipt `.fleet/phase0.json` of `--ledger`'s workspace (else the cwd's,
|
|
744
|
+
resolved as the default ledger is) records, and is exit 2 naming the receipt
|
|
745
|
+
when it records none; the check reads `<session>/<member>.jsonl`, so a
|
|
746
|
+
member with no assistant turn yet still resolves off its dispatch-time
|
|
747
|
+
record. A `session` the entry gives
|
|
747
748
|
wins over the receipt's; a caller already holding the exact transcript path
|
|
748
749
|
may give `transcript` instead. The agent type an implementer was dispatched
|
|
749
750
|
as lives only in its transcript. `resolvedModel`
|