@shapeshift-labs/frontier-swarm-codex 0.5.49 → 0.5.51
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/README.md +18 -1
- package/dist/cli-help.d.ts +2 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +38 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/cli.js +81 -64
- package/dist/cli.js.map +1 -1
- package/dist/codex-job-paths.d.ts +4 -0
- package/dist/codex-job-paths.d.ts.map +1 -0
- package/dist/codex-job-paths.js +23 -0
- package/dist/codex-job-paths.js.map +1 -0
- package/dist/codex-resume.d.ts +7 -0
- package/dist/codex-resume.d.ts.map +1 -0
- package/dist/codex-resume.js +203 -0
- package/dist/codex-resume.js.map +1 -0
- package/dist/codex-run-health.d.ts +4 -0
- package/dist/codex-run-health.d.ts.map +1 -0
- package/dist/codex-run-health.js +27 -0
- package/dist/codex-run-health.js.map +1 -0
- package/dist/codex-run.d.ts.map +1 -1
- package/dist/codex-run.js +4 -21
- package/dist/codex-run.js.map +1 -1
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -0
- package/dist/constants.js.map +1 -1
- package/dist/dependency-health.d.ts +4 -0
- package/dist/dependency-health.d.ts.map +1 -0
- package/dist/dependency-health.js +195 -0
- package/dist/dependency-health.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/types-dependency-health.d.ts +48 -0
- package/dist/types-dependency-health.d.ts.map +1 -0
- package/dist/types-dependency-health.js +2 -0
- package/dist/types-dependency-health.js.map +1 -0
- package/dist/types-resume.d.ts +45 -0
- package/dist/types-resume.d.ts.map +1 -0
- package/dist/types-resume.js +2 -0
- package/dist/types-resume.js.map +1 -0
- package/dist/types-run.d.ts +2 -0
- package/dist/types-run.d.ts.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -220,6 +220,15 @@ frontier-swarm-codex run \
|
|
|
220
220
|
--semantic-import \
|
|
221
221
|
--sandbox workspace-write
|
|
222
222
|
|
|
223
|
+
frontier-swarm doctor \
|
|
224
|
+
--semantic-import \
|
|
225
|
+
--out agent-runs/codex-swarm/dependency-health.json
|
|
226
|
+
|
|
227
|
+
frontier-swarm resume \
|
|
228
|
+
--run agent-runs/codex-swarm/run-1 \
|
|
229
|
+
--outDir agent-runs/codex-swarm/run-1-resume \
|
|
230
|
+
--max-concurrency 4
|
|
231
|
+
|
|
223
232
|
frontier-swarm stop --run agent-runs/codex-swarm/run-1
|
|
224
233
|
|
|
225
234
|
frontier-swarm collect \
|
|
@@ -268,6 +277,10 @@ Use `modelPolicy: 'config-default'` for portable swarms that should respect each
|
|
|
268
277
|
|
|
269
278
|
Pass `--semantic-import` or `semanticImport: true` to write a `semantic-imports.json` sidecar for changed source files. The sidecar uses the optional `@shapeshift-labs/frontier-lang` dependency to import supported native sources into Frontier Lang universal ASTs, summarize source maps/losses/semantic indexes/dependency relations/universal AST layers/proof-spec records/paradigm semantics records, record native compile/projection readiness when available, and attach semantic merge-candidate metadata to each worker merge bundle. Use `--semantic-import-include`, `--semantic-import-exclude`, `--semantic-import-max-files`, and `--semantic-import-max-bytes` to keep the import pass scoped. In copied/snapshot workspaces, semantic import selects changed source paths plus concrete task source/target refs so a worker can still produce symbols, call/use dependency edges, ownership regions, universal AST layer quality, proof obligation status, paradigm/lowering hints, and patch hints when changed-path collection is filtered. Include globs support `**` and can match stripped copied-workspace suffixes, so a parent-root glob such as `snes/packages/domain/src/**/*.js` still matches a minimal workspace rooted at `packages/domain` or `src`. Use `--semantic-import-expected` when zero selected/imported files or zero universal AST layers should be called out in patch intent and collection dashboards.
|
|
270
279
|
|
|
280
|
+
Every run writes `dependency-health.json` before launching workers unless `dependencyHealth: false` or `--dependency-health=false` is passed. The preflight checks the adapter-local package resolution path plus the caller root, verifies the installed `@shapeshift-labs/frontier-swarm` version, and fails fast when semantic import would resolve a stale or missing optional `@shapeshift-labs/frontier-lang`. Use `frontier-swarm doctor --semantic-import` to run the same check without starting workers. This catches nested optional dependency drift after npm updates before a swarm spends time producing empty semantic sidecars.
|
|
281
|
+
|
|
282
|
+
Use `frontier-swarm resume --run <prior-run-dir>` when a run was stopped or partially completed. The command reads the prior `swarm-plan.json`, `swarm-results.json`, merge bundles, evidence summaries, and `last-message.md` files, writes a `resume-overlay.json`, filters out completed jobs by default, and relaunches only unfinished shards. Each resumed worker prompt starts with the prior evidence paths and status so the worker can continue from the partial handoff instead of rediscovering the same facts. Programmatic callers can use `createCodexResumeOverlay`, `createCodexResumePlan`, `renderCodexResumePromptPrefix`, or `resumeCodexSwarmRun`.
|
|
283
|
+
|
|
271
284
|
## Minimal Repro Workspaces
|
|
272
285
|
|
|
273
286
|
Large monorepos do not need one full git worktree per worker. The adapter supports four workspace modes:
|
|
@@ -287,7 +300,7 @@ Task JSON may declare `dependsOn`, `concurrencyKey`, `budget`, and `review`; the
|
|
|
287
300
|
|
|
288
301
|
After updating npm packages in a local multi-package checkout, use `frontier-swarm repair-links` to restore local workspace symlinks without replacing packages you intentionally want from npm. The command reads scoped dependencies from the target `package.json`, discovers matching local packages under one-level package roots, skips `--exclude-package` entries, and writes a JSON plan by default. Add `--write` to create or update symlinks. Existing real package directories are reported as conflicts unless `--replace` is passed, so npm-installed packages are preserved unless replacement is explicit.
|
|
289
302
|
|
|
290
|
-
Each run writes event streams under `streams/`, a `coordinator-dashboard.json` snapshot, `pids.json`, workspace proofs, patch files, merge bundles, per-job `evidence/evidence.json`, `patch-intent.json`, `log-summary.json`, and job results with merge-readiness classification. The normalized evidence file records changed paths, semantic regions, command pass/fail summaries, source citations, semantic sidecar stats, and ready-to-port patch hunk counts. `patch-intent.json` is the short review surface: what changed, why, risk, exact verification, semantic import quality, warnings, and whether the patch is safe to port manually. Raw Codex stdout/stderr capture is compacted by default; `log-summary.json` records original bytes, written bytes, and truncation counts, and `--max-event-bytes` / `--max-stderr-bytes` can tune the limits. `discoverCodexHandoffArtifacts` scans job directories for `last-message.md`, debug handoffs, replay logs, watchpoints, traces, diagnostics, logs, evidence JSON, and patches; `runCodexJob` adds those paths to result evidence and `metadata.codexHandoffArtifacts` so coordinator dashboards can link directly to replay/debug artifacts. `frontier-swarm stop --run <run-dir>` reads the pid manifest and terminates live worker processes without manually hunting process state.
|
|
303
|
+
Each run writes event streams under `streams/`, a `coordinator-dashboard.json` snapshot, `pids.json`, `dependency-health.json`, workspace proofs, patch files, merge bundles, per-job `evidence/evidence.json`, `patch-intent.json`, `log-summary.json`, and job results with merge-readiness classification. The normalized evidence file records changed paths, semantic regions, command pass/fail summaries, source citations, semantic sidecar stats, and ready-to-port patch hunk counts. `patch-intent.json` is the short review surface: what changed, why, risk, exact verification, semantic import quality, warnings, and whether the patch is safe to port manually. Raw Codex stdout/stderr capture is compacted by default; `log-summary.json` records original bytes, written bytes, and truncation counts, and `--max-event-bytes` / `--max-stderr-bytes` can tune the limits. `discoverCodexHandoffArtifacts` scans job directories for `last-message.md`, debug handoffs, replay logs, watchpoints, traces, diagnostics, logs, evidence JSON, and patches; `runCodexJob` adds those paths to result evidence and `metadata.codexHandoffArtifacts` so coordinator dashboards can link directly to replay/debug artifacts. `frontier-swarm stop --run <run-dir>` reads the pid manifest and terminates live worker processes without manually hunting process state.
|
|
291
304
|
|
|
292
305
|
`frontier-swarm collect --run <run-dir>` derives status from immutable worker overlays instead of asking workers to edit a central queue. It scans `merge.json` files and writes:
|
|
293
306
|
|
|
@@ -319,6 +332,8 @@ It also writes `merge-index.json`, `queue-overlay.json`, `evidence-index.json`,
|
|
|
319
332
|
- `initFileSwarmEventStream`, `appendFileSwarmEvent`, `writeSwarmCoordinatorSnapshot`
|
|
320
333
|
- `appendCodexPidManifest`, `readCodexPidManifest`, `stopCodexSwarmRun`
|
|
321
334
|
- `repairCodexWorkspacePackageLinks`
|
|
335
|
+
- `checkCodexDependencyHealth`, `writeCodexDependencyHealthReport`
|
|
336
|
+
- `createCodexResumeOverlay`, `createCodexResumePlan`, `resumeCodexSwarmRun`
|
|
322
337
|
- `collectCodexSwarmRun`
|
|
323
338
|
- `applyCodexSwarmCollection`
|
|
324
339
|
- `scoreCodexSwarmPatches`
|
|
@@ -327,6 +342,8 @@ It also writes `merge-index.json`, `queue-overlay.json`, `evidence-index.json`,
|
|
|
327
342
|
- `FRONTIER_SWARM_CODEX_SEMANTIC_IMPORT_KIND`
|
|
328
343
|
- `FRONTIER_SWARM_CODEX_PATCH_INTENT_KIND`
|
|
329
344
|
- `FRONTIER_SWARM_CODEX_COMPACT_DASHBOARD_KIND`
|
|
345
|
+
- `FRONTIER_SWARM_CODEX_DEPENDENCY_HEALTH_KIND`
|
|
346
|
+
- `FRONTIER_SWARM_CODEX_RESUME_OVERLAY_KIND`
|
|
330
347
|
|
|
331
348
|
## Benchmarks
|
|
332
349
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-help.d.ts","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,IAAI,CAoChC"}
|
package/dist/cli-help.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export function printHelp() {
|
|
2
|
+
console.log([
|
|
3
|
+
'frontier-swarm <command> [options]',
|
|
4
|
+
'',
|
|
5
|
+
'Commands:',
|
|
6
|
+
' plan Build a swarm plan from --manifest and --tasks',
|
|
7
|
+
' run Run planned jobs through the Codex CLI',
|
|
8
|
+
' resume Resume unfinished jobs from a prior run directory',
|
|
9
|
+
' doctor Check package resolution before launching workers',
|
|
10
|
+
' stop Stop a run using pids.json',
|
|
11
|
+
' collect Collect merge bundles into ready/needs-port/failed/stale buckets',
|
|
12
|
+
' score Score collected patches in throwaway workspaces',
|
|
13
|
+
' apply Dry-run or apply collected patch bundles',
|
|
14
|
+
' repair-links Restore local workspace package symlinks after npm installs',
|
|
15
|
+
' verify Verify a swarm-results.json proof',
|
|
16
|
+
'',
|
|
17
|
+
'Useful options:',
|
|
18
|
+
' --model-policy config-default|plan|explicit',
|
|
19
|
+
' --approval never|on-request|on-failure|untrusted',
|
|
20
|
+
' --workspace current|copy|snapshot|git-worktree',
|
|
21
|
+
' --replace-workspace false|true',
|
|
22
|
+
' --include <path> --exclude <path> --link <path>',
|
|
23
|
+
' --semantic-import --semantic-import-include <glob> --semantic-import-exclude <glob>',
|
|
24
|
+
' --semantic-import-max-files <n> --semantic-import-max-bytes <n>',
|
|
25
|
+
' --semantic-import-expected',
|
|
26
|
+
' --dependency-health=false --dependency-health-out <file>',
|
|
27
|
+
' --adaptive --adaptive-mode observe|conservative|balanced|aggressive',
|
|
28
|
+
' --adaptive-min-concurrency <n> --adaptive-max-concurrency <n>',
|
|
29
|
+
' --compact-logs --max-event-bytes <n> --max-stderr-bytes <n>',
|
|
30
|
+
' --focused-command <cmd> --global-command <cmd>',
|
|
31
|
+
' --package-root <dir> --exclude-package <name> --write --replace',
|
|
32
|
+
' --resume-overlay <file> --include-failed=false --include-blocked=false',
|
|
33
|
+
'',
|
|
34
|
+
'Workers write last-message.md, codex-events.jsonl, resource-allocation.json,',
|
|
35
|
+
'merge.json, changes.patch, dependency-health.json, and discovered debug/replay/watchpoint/trace artifacts.'
|
|
36
|
+
].join('\n'));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=cli-help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC;QACV,oCAAoC;QACpC,EAAE;QACF,WAAW;QACX,4DAA4D;QAC5D,oDAAoD;QACpD,+DAA+D;QAC/D,+DAA+D;QAC/D,wCAAwC;QACxC,8EAA8E;QAC9E,6DAA6D;QAC7D,sDAAsD;QACtD,4EAA4E;QAC5E,+CAA+C;QAC/C,EAAE;QACF,iBAAiB;QACjB,+CAA+C;QAC/C,oDAAoD;QACpD,kDAAkD;QAClD,kCAAkC;QAClC,mDAAmD;QACnD,uFAAuF;QACvF,mEAAmE;QACnE,8BAA8B;QAC9B,4DAA4D;QAC5D,uEAAuE;QACvE,iEAAiE;QACjE,+DAA+D;QAC/D,kDAAkD;QAClD,mEAAmE;QACnE,0EAA0E;QAC1E,EAAE;QACF,8EAA8E;QAC9E,4GAA4G;KAC7G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { applyCodexSwarmCollection, coerceCodexSwarmManifestInput, coerceCodexSwarmTasksInput, collectCodexSwarmRun, createCodexSwarmPlan, repairCodexWorkspacePackageLinks, runCodexSwarm, scoreCodexSwarmPatches, stopCodexSwarmRun } from './index.js';
|
|
4
|
+
import { applyCodexSwarmCollection, checkCodexDependencyHealth, coerceCodexSwarmManifestInput, coerceCodexSwarmTasksInput, collectCodexSwarmRun, createCodexSwarmPlan, repairCodexWorkspacePackageLinks, resumeCodexSwarmRun, runCodexSwarm, scoreCodexSwarmPatches, stopCodexSwarmRun, writeCodexDependencyHealthReport } from './index.js';
|
|
5
|
+
import { printHelp } from './cli-help.js';
|
|
5
6
|
const args = parseArgs(process.argv.slice(2));
|
|
6
7
|
const command = args._[0] ?? 'plan';
|
|
7
8
|
try {
|
|
@@ -18,41 +19,43 @@ try {
|
|
|
18
19
|
else if (command === 'run') {
|
|
19
20
|
const plan = args.plan ? JSON.parse(await fs.readFile(String(args.plan), 'utf8')) : await loadPlan(args);
|
|
20
21
|
const outDir = path.resolve(String(args.outDir ?? args.out ?? `agent-runs/frontier-swarm-codex/${stamp()}`));
|
|
21
|
-
const result = await runCodexSwarm(plan,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
semanticImport: semanticImportArg(args),
|
|
39
|
-
workspace: {
|
|
40
|
-
mode: readWorkspaceMode(args.workspace),
|
|
41
|
-
root: stringArg(args.worktreeRoot ?? args['worktree-root']),
|
|
42
|
-
create: boolArg(args.createWorktrees ?? args['create-worktrees'], false),
|
|
43
|
-
replace: optionalBoolArg(args.replaceWorkspace ?? args['replace-workspace']),
|
|
44
|
-
includes: listArg(args.include),
|
|
45
|
-
excludes: listArg(args.exclude),
|
|
46
|
-
artifactIncludes: listArg(args.artifact ?? args['artifact-include']),
|
|
47
|
-
linkPaths: listArg(args.link ?? args['link-path']),
|
|
48
|
-
linkNodeModules: boolArg(args.linkNodeModules ?? args['link-node-modules'], true),
|
|
49
|
-
skipGitRepoCheck: boolArg(args.skipGitRepoCheck ?? args['skip-git-repo-check'], readWorkspaceMode(args.workspace) !== 'git-worktree')
|
|
50
|
-
}
|
|
22
|
+
const result = await runCodexSwarm(plan, runOptionsArg(args, outDir));
|
|
23
|
+
console.log(JSON.stringify(result, null, 2));
|
|
24
|
+
if (!result.ok)
|
|
25
|
+
process.exitCode = 1;
|
|
26
|
+
}
|
|
27
|
+
else if (command === 'resume') {
|
|
28
|
+
const run = String(args.run ?? '');
|
|
29
|
+
if (!run)
|
|
30
|
+
throw new Error('resume requires --run <prior-run-dir|swarm-results.json>');
|
|
31
|
+
const outDir = path.resolve(String(args.outDir ?? args.out ?? `agent-runs/frontier-swarm-codex/${stamp()}-resume`));
|
|
32
|
+
const result = await resumeCodexSwarmRun({
|
|
33
|
+
...runOptionsArg(args, outDir),
|
|
34
|
+
run,
|
|
35
|
+
includeCompleted: boolArg(args.includeCompleted ?? args['include-completed'], false),
|
|
36
|
+
includeFailed: optionalBoolArg(args.includeFailed ?? args['include-failed']),
|
|
37
|
+
includeBlocked: optionalBoolArg(args.includeBlocked ?? args['include-blocked']),
|
|
38
|
+
outFile: stringArg(args.resumeOverlay ?? args['resume-overlay'])
|
|
51
39
|
});
|
|
52
40
|
console.log(JSON.stringify(result, null, 2));
|
|
53
41
|
if (!result.ok)
|
|
54
42
|
process.exitCode = 1;
|
|
55
43
|
}
|
|
44
|
+
else if (command === 'doctor') {
|
|
45
|
+
const outFile = stringArg(args.out ?? args.outFile ?? args['out-file']);
|
|
46
|
+
const result = await checkCodexDependencyHealth({
|
|
47
|
+
root: stringArg(args.root),
|
|
48
|
+
packageRoot: stringArg(args.packageRoot ?? args['package-root']),
|
|
49
|
+
semanticImport: boolArg(args.semanticImport ?? args['semantic-import'], false),
|
|
50
|
+
outFile,
|
|
51
|
+
failOnWarnings: boolArg(args.failOnWarnings ?? args['fail-on-warnings'], false)
|
|
52
|
+
});
|
|
53
|
+
if (outFile)
|
|
54
|
+
await writeCodexDependencyHealthReport(result, path.resolve(outFile));
|
|
55
|
+
console.log(JSON.stringify(result, null, 2));
|
|
56
|
+
if (!result.ok)
|
|
57
|
+
process.exitCode = 1;
|
|
58
|
+
}
|
|
56
59
|
else if (command === 'verify') {
|
|
57
60
|
const runFile = String(args.run ?? args.results ?? '');
|
|
58
61
|
if (!runFile)
|
|
@@ -147,39 +150,6 @@ catch (error) {
|
|
|
147
150
|
console.error(error instanceof Error ? error.message : String(error));
|
|
148
151
|
process.exitCode = 1;
|
|
149
152
|
}
|
|
150
|
-
function printHelp() {
|
|
151
|
-
console.log([
|
|
152
|
-
'frontier-swarm <command> [options]',
|
|
153
|
-
'',
|
|
154
|
-
'Commands:',
|
|
155
|
-
' plan Build a swarm plan from --manifest and --tasks',
|
|
156
|
-
' run Run planned jobs through the Codex CLI',
|
|
157
|
-
' stop Stop a run using pids.json',
|
|
158
|
-
' collect Collect merge bundles into ready/needs-port/failed/stale buckets',
|
|
159
|
-
' score Score collected patches in throwaway workspaces',
|
|
160
|
-
' apply Dry-run or apply collected patch bundles',
|
|
161
|
-
' repair-links Restore local workspace package symlinks after npm installs',
|
|
162
|
-
' verify Verify a swarm-results.json proof',
|
|
163
|
-
'',
|
|
164
|
-
'Useful options:',
|
|
165
|
-
' --model-policy config-default|plan|explicit',
|
|
166
|
-
' --approval never|on-request|on-failure|untrusted',
|
|
167
|
-
' --workspace current|copy|snapshot|git-worktree',
|
|
168
|
-
' --replace-workspace false|true',
|
|
169
|
-
' --include <path> --exclude <path> --link <path>',
|
|
170
|
-
' --semantic-import --semantic-import-include <glob> --semantic-import-exclude <glob>',
|
|
171
|
-
' --semantic-import-max-files <n> --semantic-import-max-bytes <n>',
|
|
172
|
-
' --semantic-import-expected',
|
|
173
|
-
' --adaptive --adaptive-mode observe|conservative|balanced|aggressive',
|
|
174
|
-
' --adaptive-min-concurrency <n> --adaptive-max-concurrency <n>',
|
|
175
|
-
' --compact-logs --max-event-bytes <n> --max-stderr-bytes <n>',
|
|
176
|
-
' --focused-command <cmd> --global-command <cmd>',
|
|
177
|
-
' --package-root <dir> --exclude-package <name> --write --replace',
|
|
178
|
-
'',
|
|
179
|
-
'Workers write last-message.md, codex-events.jsonl, resource-allocation.json,',
|
|
180
|
-
'merge.json, changes.patch, and discovered debug/replay/watchpoint/trace artifacts.'
|
|
181
|
-
].join('\n'));
|
|
182
|
-
}
|
|
183
153
|
async function loadPlan(options) {
|
|
184
154
|
const manifestPath = String(options.manifest ?? '');
|
|
185
155
|
const tasksPath = String(options.tasks ?? '');
|
|
@@ -290,6 +260,53 @@ function compactLogsArg(args) {
|
|
|
290
260
|
maxStderrBytes: numberArg(args.maxStderrBytes ?? args['max-stderr-bytes'], undefined)
|
|
291
261
|
};
|
|
292
262
|
}
|
|
263
|
+
function runOptionsArg(args, outDir) {
|
|
264
|
+
return {
|
|
265
|
+
outDir,
|
|
266
|
+
codexPath: stringArg(args.codex),
|
|
267
|
+
maxConcurrency: numberArg(args.maxConcurrency ?? args['max-concurrency'], 1),
|
|
268
|
+
adaptiveConcurrency: adaptiveConcurrencyArg(args),
|
|
269
|
+
compactLogs: compactLogsArg(args),
|
|
270
|
+
dependencyHealth: dependencyHealthArg(args),
|
|
271
|
+
semanticImportExpected: boolArg(args.semanticImportExpected ?? args['semantic-import-expected'], false),
|
|
272
|
+
sandbox: stringArg(args.sandbox),
|
|
273
|
+
approval: stringArg(args.approval ?? args['ask-for-approval'] ?? args['approval-policy']),
|
|
274
|
+
model: stringArg(args.model),
|
|
275
|
+
modelPolicy: modelPolicyArg(args.modelPolicy ?? args['model-policy']),
|
|
276
|
+
forwardPlanModel: boolArg(args.forwardPlanModel ?? args['forward-plan-model'], false),
|
|
277
|
+
forwardPlanReasoningEffort: boolArg(args.forwardPlanReasoningEffort ?? args['forward-plan-reasoning-effort'], false),
|
|
278
|
+
reasoningEffort: stringArg(args.reasoningEffort ?? args['reasoning-effort']),
|
|
279
|
+
profile: stringArg(args.profile),
|
|
280
|
+
dryRun: boolArg(args.dryRun ?? args['dry-run'], false),
|
|
281
|
+
runVerification: boolArg(args.verify, false),
|
|
282
|
+
semanticImport: semanticImportArg(args),
|
|
283
|
+
workspace: workspaceArg(args)
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
function workspaceArg(args) {
|
|
287
|
+
return {
|
|
288
|
+
mode: readWorkspaceMode(args.workspace),
|
|
289
|
+
root: stringArg(args.worktreeRoot ?? args['worktree-root']),
|
|
290
|
+
create: boolArg(args.createWorktrees ?? args['create-worktrees'], false),
|
|
291
|
+
replace: optionalBoolArg(args.replaceWorkspace ?? args['replace-workspace']),
|
|
292
|
+
includes: listArg(args.include),
|
|
293
|
+
excludes: listArg(args.exclude),
|
|
294
|
+
artifactIncludes: listArg(args.artifact ?? args['artifact-include']),
|
|
295
|
+
linkPaths: listArg(args.link ?? args['link-path']),
|
|
296
|
+
linkNodeModules: boolArg(args.linkNodeModules ?? args['link-node-modules'], true),
|
|
297
|
+
skipGitRepoCheck: boolArg(args.skipGitRepoCheck ?? args['skip-git-repo-check'], readWorkspaceMode(args.workspace) !== 'git-worktree')
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
function dependencyHealthArg(args) {
|
|
301
|
+
const raw = args.dependencyHealth ?? args['dependency-health'];
|
|
302
|
+
if (raw !== undefined && !boolArg(raw, true))
|
|
303
|
+
return false;
|
|
304
|
+
return {
|
|
305
|
+
semanticImport: boolArg(args.semanticImport ?? args['semantic-import'] ?? args.semanticImportExpected ?? args['semantic-import-expected'], false),
|
|
306
|
+
outFile: stringArg(args.dependencyHealthOut ?? args['dependency-health-out']),
|
|
307
|
+
failOnWarnings: boolArg(args.failOnWarnings ?? args['fail-on-warnings'], false)
|
|
308
|
+
};
|
|
309
|
+
}
|
|
293
310
|
function commandListArg(value) {
|
|
294
311
|
if (value === undefined)
|
|
295
312
|
return undefined;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { FrontierSwarmJob } from '@shapeshift-labs/frontier-swarm';
|
|
2
|
+
import type { FrontierCodexJobPaths, FrontierCodexSwarmRunOptions } from './index.js';
|
|
3
|
+
export declare function createCodexJobPaths(outDir: string, job: FrontierSwarmJob, options: FrontierCodexSwarmRunOptions): Promise<FrontierCodexJobPaths>;
|
|
4
|
+
//# sourceMappingURL=codex-job-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-job-paths.d.ts","sourceRoot":"","sources":["../src/codex-job-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAEtF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAmBhC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export async function createCodexJobPaths(outDir, job, options) {
|
|
4
|
+
const jobDir = path.join(outDir, job.id);
|
|
5
|
+
const paths = {
|
|
6
|
+
jobDir,
|
|
7
|
+
promptPath: path.join(jobDir, 'prompt.md'),
|
|
8
|
+
eventsPath: path.join(jobDir, 'codex-events.jsonl'),
|
|
9
|
+
stderrPath: path.join(jobDir, 'codex-stderr.log'),
|
|
10
|
+
lastMessagePath: path.join(jobDir, 'last-message.md'),
|
|
11
|
+
evidenceDir: path.join(jobDir, 'evidence'),
|
|
12
|
+
resourceAllocationPath: path.join(jobDir, 'evidence', 'resource-allocation.json'),
|
|
13
|
+
workspaceProofPath: path.join(jobDir, 'evidence', 'workspace-proof.json'),
|
|
14
|
+
patchPath: path.join(jobDir, 'evidence', 'changes.patch'),
|
|
15
|
+
mergeBundlePath: path.join(jobDir, 'evidence', 'merge.json'),
|
|
16
|
+
patchIntentPath: path.join(jobDir, 'evidence', 'patch-intent.json'),
|
|
17
|
+
logSummaryPath: path.join(jobDir, 'evidence', 'log-summary.json'),
|
|
18
|
+
pidManifestPath: path.resolve(options.cwd ?? process.cwd(), options.pidManifestPath ?? path.join(outDir, 'pids.json'))
|
|
19
|
+
};
|
|
20
|
+
await fs.mkdir(paths.evidenceDir, { recursive: true });
|
|
21
|
+
return paths;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=codex-job-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-job-paths.js","sourceRoot":"","sources":["../src/codex-job-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,GAAqB,EACrB,OAAqC;IAErC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG;QACZ,MAAM;QACN,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;QAC1C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC;QACnD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC;QACjD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;QACrD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;QAC1C,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,0BAA0B,CAAC;QACjF,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,sBAAsB,CAAC;QACzE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC;QACzD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;QAC5D,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC;QACnE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC;QACjE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACvH,CAAC;IACF,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FrontierSwarmPlan } from '@shapeshift-labs/frontier-swarm';
|
|
2
|
+
import type { FrontierCodexResumeOptions, FrontierCodexResumeOverlay, FrontierCodexResumeRunOptions, FrontierCodexResumeRunResult } from './types-resume.js';
|
|
3
|
+
export declare function createCodexResumeOverlay(options: FrontierCodexResumeOptions): Promise<FrontierCodexResumeOverlay>;
|
|
4
|
+
export declare function resumeCodexSwarmRun(options: FrontierCodexResumeRunOptions): Promise<FrontierCodexResumeRunResult>;
|
|
5
|
+
export declare function createCodexResumePlan(plan: FrontierSwarmPlan, overlay: FrontierCodexResumeOverlay): FrontierSwarmPlan;
|
|
6
|
+
export declare function renderCodexResumePromptPrefix(overlay: FrontierCodexResumeOverlay, jobId: string): string;
|
|
7
|
+
//# sourceMappingURL=codex-resume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-resume.d.ts","sourceRoot":"","sources":["../src/codex-resume.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA4C,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAOnH,OAAO,KAAK,EAGV,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,mBAAmB,CAAC;AAE3B,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAoBvH;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAiBvH;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,0BAA0B,GAAG,iBAAiB,CAErH;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExG"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { FRONTIER_SWARM_CODEX_RESUME_OVERLAY_KIND, FRONTIER_SWARM_CODEX_RESUME_OVERLAY_VERSION } from './constants.js';
|
|
4
|
+
import { isObject, pathExists, uniqueStrings } from './common.js';
|
|
5
|
+
import { runCodexSwarm } from './codex-run.js';
|
|
6
|
+
export async function createCodexResumeOverlay(options) {
|
|
7
|
+
const runDir = await resolveRunDir(options.run);
|
|
8
|
+
const sourcePlanPath = path.join(runDir, 'swarm-plan.json');
|
|
9
|
+
const sourceResultsPath = await pathExists(path.join(runDir, 'swarm-results.json'))
|
|
10
|
+
? path.join(runDir, 'swarm-results.json')
|
|
11
|
+
: undefined;
|
|
12
|
+
const plan = await readJson(sourcePlanPath);
|
|
13
|
+
const results = await readPreviousResults(runDir, plan);
|
|
14
|
+
const jobs = await Promise.all(plan.jobs.map((job) => inspectResumeJob(runDir, job, results.get(job.id), options)));
|
|
15
|
+
return {
|
|
16
|
+
kind: FRONTIER_SWARM_CODEX_RESUME_OVERLAY_KIND,
|
|
17
|
+
version: FRONTIER_SWARM_CODEX_RESUME_OVERLAY_VERSION,
|
|
18
|
+
generatedAt: Date.now(),
|
|
19
|
+
sourceRunDir: runDir,
|
|
20
|
+
sourcePlanPath,
|
|
21
|
+
...(sourceResultsPath ? { sourceResultsPath } : {}),
|
|
22
|
+
resumeJobIds: jobs.filter((job) => job.shouldResume).map((job) => job.jobId),
|
|
23
|
+
jobs,
|
|
24
|
+
summary: summarizeResumeJobs(jobs)
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export async function resumeCodexSwarmRun(options) {
|
|
28
|
+
const overlay = await createCodexResumeOverlay(options);
|
|
29
|
+
const plan = createResumePlan(await readJson(overlay.sourcePlanPath), overlay);
|
|
30
|
+
const outDir = path.resolve(options.cwd ?? process.cwd(), options.outDir);
|
|
31
|
+
await fs.mkdir(outDir, { recursive: true });
|
|
32
|
+
const resumeOverlayPath = path.resolve(options.cwd ?? process.cwd(), options.outFile ?? path.join(outDir, 'resume-overlay.json'));
|
|
33
|
+
await fs.writeFile(resumeOverlayPath, JSON.stringify(overlay, null, 2) + '\n');
|
|
34
|
+
const originalRender = options.renderJobPrompt;
|
|
35
|
+
const result = await runCodexSwarm(plan, {
|
|
36
|
+
...options,
|
|
37
|
+
outDir,
|
|
38
|
+
renderJobPrompt: async (input) => {
|
|
39
|
+
const base = originalRender ? await originalRender(input) : input.prompt;
|
|
40
|
+
return renderResumePromptPrefix(overlay, input.job.id) + base;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return { ...result, resumeOverlay: overlay, resumeOverlayPath };
|
|
44
|
+
}
|
|
45
|
+
export function createCodexResumePlan(plan, overlay) {
|
|
46
|
+
return createResumePlan(plan, overlay);
|
|
47
|
+
}
|
|
48
|
+
export function renderCodexResumePromptPrefix(overlay, jobId) {
|
|
49
|
+
return renderResumePromptPrefix(overlay, jobId);
|
|
50
|
+
}
|
|
51
|
+
async function inspectResumeJob(runDir, job, result, options) {
|
|
52
|
+
const paths = await discoverResumeEvidence(runDir, job, result);
|
|
53
|
+
const status = classifyResumeStatus(result, paths);
|
|
54
|
+
return {
|
|
55
|
+
jobId: job.id,
|
|
56
|
+
taskId: job.taskId,
|
|
57
|
+
lane: job.lane,
|
|
58
|
+
status,
|
|
59
|
+
shouldResume: shouldResumeStatus(status, options),
|
|
60
|
+
reason: resumeReason(status),
|
|
61
|
+
evidencePaths: paths.evidence,
|
|
62
|
+
...(paths.lastMessage ? { lastMessagePath: paths.lastMessage } : {}),
|
|
63
|
+
...(result ? { previousResultPath: path.join(runDir, 'swarm-results.json') } : {})
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async function discoverResumeEvidence(runDir, job, result) {
|
|
67
|
+
const jobDir = path.join(runDir, job.id);
|
|
68
|
+
const candidates = [
|
|
69
|
+
path.join(jobDir, 'last-message.md'),
|
|
70
|
+
path.join(jobDir, 'evidence', 'evidence.json'),
|
|
71
|
+
path.join(jobDir, 'evidence', 'merge.json'),
|
|
72
|
+
path.join(jobDir, 'evidence', 'patch-intent.json'),
|
|
73
|
+
path.join(jobDir, 'evidence', 'semantic-imports.json'),
|
|
74
|
+
path.join(jobDir, 'evidence', 'log-summary.json'),
|
|
75
|
+
...(result?.evidencePaths ?? [])
|
|
76
|
+
];
|
|
77
|
+
const existing = [];
|
|
78
|
+
for (const candidate of uniqueStrings(candidates))
|
|
79
|
+
if (await pathExists(candidate))
|
|
80
|
+
existing.push(candidate);
|
|
81
|
+
const lastMessage = existing.find((entry) => entry.endsWith('last-message.md'));
|
|
82
|
+
return { evidence: existing, ...(lastMessage ? { lastMessage } : {}) };
|
|
83
|
+
}
|
|
84
|
+
async function readPreviousResults(runDir, plan) {
|
|
85
|
+
const out = new Map();
|
|
86
|
+
const resultsFile = path.join(runDir, 'swarm-results.json');
|
|
87
|
+
const resultsEnvelope = await readOptionalJson(resultsFile);
|
|
88
|
+
const run = isObject(resultsEnvelope?.run) ? resultsEnvelope.run : undefined;
|
|
89
|
+
for (const result of run?.results ?? [])
|
|
90
|
+
if (result.jobId)
|
|
91
|
+
out.set(result.jobId, result);
|
|
92
|
+
for (const job of plan.jobs) {
|
|
93
|
+
if (out.has(job.id))
|
|
94
|
+
continue;
|
|
95
|
+
const bundle = await readOptionalJson(path.join(runDir, job.id, 'evidence', 'merge.json'));
|
|
96
|
+
const result = isObject(bundle?.result) ? bundle.result : undefined;
|
|
97
|
+
if (result?.jobId)
|
|
98
|
+
out.set(result.jobId, result);
|
|
99
|
+
}
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
function createResumePlan(plan, overlay) {
|
|
103
|
+
const resumeIds = new Set(overlay.resumeJobIds);
|
|
104
|
+
const jobs = plan.jobs.filter((job) => resumeIds.has(job.id));
|
|
105
|
+
return {
|
|
106
|
+
...plan,
|
|
107
|
+
runId: `${plan.runId}:resume:${overlay.generatedAt}`,
|
|
108
|
+
createdAt: Date.now(),
|
|
109
|
+
jobs,
|
|
110
|
+
graph: filterGraph(plan.graph, resumeIds),
|
|
111
|
+
summary: { ...plan.summary, jobCount: jobs.length }
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function filterGraph(graph, jobIds) {
|
|
115
|
+
const nodes = graph.nodes.filter((node) => jobIds.has(node));
|
|
116
|
+
const edges = graph.edges.filter((edge) => jobIds.has(edge.from) && jobIds.has(edge.to));
|
|
117
|
+
return {
|
|
118
|
+
...graph,
|
|
119
|
+
nodes,
|
|
120
|
+
edges,
|
|
121
|
+
roots: nodes.filter((node) => !edges.some((edge) => edge.to === node)),
|
|
122
|
+
leaves: nodes.filter((node) => !edges.some((edge) => edge.from === node)),
|
|
123
|
+
dependentsByJobId: filterGraphMap(graph.dependentsByJobId, jobIds),
|
|
124
|
+
dependenciesByJobId: filterGraphMap(graph.dependenciesByJobId, jobIds)
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function filterGraphMap(input, jobIds) {
|
|
128
|
+
const out = {};
|
|
129
|
+
for (const id of jobIds)
|
|
130
|
+
out[id] = (input[id] ?? []).filter((entry) => jobIds.has(entry));
|
|
131
|
+
return out;
|
|
132
|
+
}
|
|
133
|
+
function renderResumePromptPrefix(overlay, jobId) {
|
|
134
|
+
const job = overlay.jobs.find((entry) => entry.jobId === jobId);
|
|
135
|
+
if (!job)
|
|
136
|
+
return '';
|
|
137
|
+
return [
|
|
138
|
+
'# Resume Context',
|
|
139
|
+
'',
|
|
140
|
+
`This job is resuming from ${overlay.sourceRunDir}.`,
|
|
141
|
+
`Previous status: ${job.status}. Reason: ${job.reason}.`,
|
|
142
|
+
job.lastMessagePath ? `Previous last message: ${job.lastMessagePath}.` : undefined,
|
|
143
|
+
job.evidencePaths.length ? `Previous evidence paths:\n${job.evidencePaths.map((entry) => `- ${entry}`).join('\n')}` : undefined,
|
|
144
|
+
'',
|
|
145
|
+
'Use the prior evidence to continue the same shard. Do not repeat already-proven investigation unless required by stale evidence.',
|
|
146
|
+
'',
|
|
147
|
+
'---',
|
|
148
|
+
''
|
|
149
|
+
].filter(Boolean).join('\n');
|
|
150
|
+
}
|
|
151
|
+
function classifyResumeStatus(result, paths) {
|
|
152
|
+
if (result?.status === 'completed')
|
|
153
|
+
return 'completed';
|
|
154
|
+
if (result?.status === 'failed')
|
|
155
|
+
return 'failed';
|
|
156
|
+
if (result?.status === 'blocked')
|
|
157
|
+
return 'blocked';
|
|
158
|
+
return paths.evidence.length > 0 ? 'partial' : 'missing';
|
|
159
|
+
}
|
|
160
|
+
function shouldResumeStatus(status, options) {
|
|
161
|
+
if (status === 'completed')
|
|
162
|
+
return options.includeCompleted === true;
|
|
163
|
+
if (status === 'failed')
|
|
164
|
+
return options.includeFailed !== false;
|
|
165
|
+
if (status === 'blocked')
|
|
166
|
+
return options.includeBlocked !== false;
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
function resumeReason(status) {
|
|
170
|
+
if (status === 'completed')
|
|
171
|
+
return 'completed in previous run';
|
|
172
|
+
if (status === 'failed')
|
|
173
|
+
return 'previous worker failed and may need continuation or rerun';
|
|
174
|
+
if (status === 'blocked')
|
|
175
|
+
return 'previous worker reported a blocker';
|
|
176
|
+
if (status === 'partial')
|
|
177
|
+
return 'partial evidence exists without a completed result';
|
|
178
|
+
return 'no prior result was found';
|
|
179
|
+
}
|
|
180
|
+
function summarizeResumeJobs(jobs) {
|
|
181
|
+
const summary = { total: jobs.length, completed: 0, failed: 0, blocked: 0, partial: 0, missing: 0, resume: 0 };
|
|
182
|
+
for (const job of jobs) {
|
|
183
|
+
summary[job.status] += 1;
|
|
184
|
+
if (job.shouldResume)
|
|
185
|
+
summary.resume += 1;
|
|
186
|
+
}
|
|
187
|
+
return summary;
|
|
188
|
+
}
|
|
189
|
+
async function resolveRunDir(run) {
|
|
190
|
+
const resolved = path.resolve(run);
|
|
191
|
+
const stat = await fs.stat(resolved);
|
|
192
|
+
return stat.isDirectory() ? resolved : path.dirname(resolved);
|
|
193
|
+
}
|
|
194
|
+
async function readJson(file) {
|
|
195
|
+
return JSON.parse(await fs.readFile(file, 'utf8'));
|
|
196
|
+
}
|
|
197
|
+
async function readOptionalJson(file) {
|
|
198
|
+
if (!await pathExists(file))
|
|
199
|
+
return undefined;
|
|
200
|
+
const parsed = JSON.parse(await fs.readFile(file, 'utf8'));
|
|
201
|
+
return isObject(parsed) ? parsed : undefined;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=codex-resume.js.map
|