@ai-dossier/cli 0.32.0 → 0.33.1
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 +87 -9
- package/dist/cap-log.d.ts +2 -0
- package/dist/cap-log.d.ts.map +1 -1
- package/dist/cap-log.js.map +1 -1
- package/dist/capability.d.ts +26 -2
- package/dist/capability.d.ts.map +1 -1
- package/dist/capability.js +67 -8
- package/dist/capability.js.map +1 -1
- package/dist/commands/cap.d.ts.map +1 -1
- package/dist/commands/cap.js +15 -3
- package/dist/commands/cap.js.map +1 -1
- package/dist/commands/runstate.d.ts.map +1 -1
- package/dist/commands/runstate.js +131 -13
- package/dist/commands/runstate.js.map +1 -1
- package/dist/commands/sched.d.ts.map +1 -1
- package/dist/commands/sched.js +153 -9
- package/dist/commands/sched.js.map +1 -1
- package/dist/runstate-stats.d.ts +124 -1
- package/dist/runstate-stats.d.ts.map +1 -1
- package/dist/runstate-stats.js +324 -14
- package/dist/runstate-stats.js.map +1 -1
- package/dist/runstate.d.ts +50 -4
- package/dist/runstate.d.ts.map +1 -1
- package/dist/runstate.js +156 -11
- package/dist/runstate.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -388,7 +388,8 @@ is required by `post`, `last`, `verify`, `fence`, `check`, and `mint`; `stats` t
|
|
|
388
388
|
either `--issue <n>` or `--issues <list>`, exactly one of the two. `post`, `last`,
|
|
389
389
|
`verify`, `fence`, `check`, and `stats` additionally take `--repo <owner/name>` (a bare
|
|
390
390
|
slug, not a URL; defaults to the repository `gh` resolves for the current directory) and
|
|
391
|
-
`--json`; `fence` also takes `--dry-run
|
|
391
|
+
`--json`; `fence` also takes `--dry-run`, and `verify` also takes `--dispatched-at <iso>`
|
|
392
|
+
(see [`verify`](#verify)). `fence` requires `--run`, `--phase` and
|
|
392
393
|
`--takeover`; `check` requires `--run` and takes `--gen` and `--comment`. `mint` takes
|
|
393
394
|
`--issue` and nothing else.
|
|
394
395
|
|
|
@@ -707,7 +708,7 @@ resume_context={"branch":"feature/440-runstate","worktree":"/repo/worktrees/feat
|
|
|
707
708
|
|
|
708
709
|
| Value | Meaning |
|
|
709
710
|
|---|---|
|
|
710
|
-
| `none` | No milestones on the issue — a fresh run. Also returned when the latest milestone is slot-mode (`slot_trail=present`), a `classify` record, or a batch-phase trail: full-cycle always enters fresh from those (see [classify and batch phases](#classify-and-batch-phases-rfc-0001-batch-cycles)) |
|
|
711
|
+
| `none` | No milestones on the issue — a fresh run. Also returned when the latest milestone is slot-mode (`slot_trail=present`), a `classify` record, or a batch-phase trail: full-cycle always enters fresh from those (see [classify and batch phases](#classify-and-batch-phases-rfc-0001-batch-cycles)) — or when the latest milestone is `report/done` on a still-OPEN issue that predates `--dispatched-at` (a stale prior attempt, #582): `run_id` is then a freshly minted id, `prior_run` carries the old one, and `note=stale-report-trail` |
|
|
711
712
|
| `ship-wait` | The PR is open and mergeable; re-enter `ship` at the CI wait |
|
|
712
713
|
| `ship-teardown` | The PR is already merged; re-enter `ship` at post-merge cleanup |
|
|
713
714
|
| `done` | The `report` milestone is posted and the issue is closed (`note=already complete`) |
|
|
@@ -757,9 +758,31 @@ would be read as a flag (leading `-`) or that is not the absolute path the proto
|
|
|
757
758
|
requires is refused rather than passed to `git`/`gh` — it becomes one of the warnings
|
|
758
759
|
above.
|
|
759
760
|
|
|
760
|
-
`--json` returns the same fields as an object (`resume_from`, `run_id`, `
|
|
761
|
-
`resume_context`, `local_worktree`, plus `slot_trail`, `hard_block`, `note`,
|
|
762
|
-
`warnings` when they apply).
|
|
761
|
+
`--json` returns the same fields as an object (`resume_from`, `run_id`, `generation`,
|
|
762
|
+
`verified`, `resume_context`, `local_worktree`, plus `slot_trail`, `hard_block`, `note`,
|
|
763
|
+
`prior_run`, `dispatched_at`, and `warnings` when they apply).
|
|
764
|
+
|
|
765
|
+
**`--dispatched-at <iso>`** — the time THIS run was dispatched. A `report/done`
|
|
766
|
+
milestone on a still-OPEN issue is ambiguous without it: it may be this run's own
|
|
767
|
+
report (crashed between reporting and closing → resume at `report`, as always), or a
|
|
768
|
+
completed PRIOR attempt that a deliberate re-enqueue (a pilot re-run, `sched abandon` +
|
|
769
|
+
re-enqueue, an issue left open on purpose because its ACs were not met) needs full-cycle
|
|
770
|
+
to redo, not silently re-report over (#582 — the gate/CLI twin of #575/#576's engine-side
|
|
771
|
+
`dispatched_at` fence, `packages/sched/src/groundtruth.ts`). With the flag, a milestone
|
|
772
|
+
whose `at=` predates it (±60s clock-skew tolerance) resumes `resume_from=none` with a
|
|
773
|
+
freshly minted `run_id` and `prior_run=<old run id>` (`note=stale-report-trail`) — enter
|
|
774
|
+
FRESH, do not resume into `report`. Without it, `verify` keeps the old
|
|
775
|
+
`resume_from=report` answer but says so in `note` instead of asserting it silently. The
|
|
776
|
+
value must be an ISO-8601 instant with an explicit zone (e.g. `2026-09-02T10:00:00Z`) — a
|
|
777
|
+
zone-less value would be read as local time and could shift the staleness fence by the
|
|
778
|
+
host's UTC offset, so it is rejected rather than guessed at; a value `Date.parse` cannot
|
|
779
|
+
read at all exits 1 with the expected shape.
|
|
780
|
+
|
|
781
|
+
> **Compatibility.** `--dispatched-at` requires CLI ≥ 0.33.0. An older CLI rejects it
|
|
782
|
+
> outright (`error: unknown option '--dispatched-at'`, exit 1), so a dossier step passing
|
|
783
|
+
> it fails hard rather than degrading — upgrade the fleet before the dossier starts
|
|
784
|
+
> passing it. Omitting the flag on any version is safe: `verify` falls back to
|
|
785
|
+
> `resume_from=report` with the ambiguity noted in `note`.
|
|
763
786
|
|
|
764
787
|
### stats
|
|
765
788
|
|
|
@@ -815,6 +838,22 @@ The `By model:` table answers "which models finish the work", not just "how long
|
|
|
815
838
|
| `blocked` | runs whose last milestone is `blocked`, whatever the phase | `blocked` |
|
|
816
839
|
| `unfinished` | everything else — in flight, parked `awaiting-merge`, `partial`, or fenced | `unfinished` |
|
|
817
840
|
| `rate` | `delivered / runs` | `delivery_rate` |
|
|
841
|
+
| `esc/run` | `escalated=` summed over the runs that reported it, divided by that count | `escalations_per_run` |
|
|
842
|
+
| `not-met` | acceptance criteria scored NOT met, over criteria judged | `conformance_not_met` / `conformance_criteria` |
|
|
843
|
+
|
|
844
|
+
A `-` in `esc/run` or `not-met` means **never measured**, which is not the same claim as a
|
|
845
|
+
measured `0`: a model whose runs all blocked before review has not demonstrated a zero
|
|
846
|
+
escalation rate, it has demonstrated nothing. `esc/run` is a mean, not a fraction — it is the
|
|
847
|
+
one column on this table that is not bounded by 1 — and its denominator is the runs that
|
|
848
|
+
actually carried `escalated=`, so a run that reviewed under a dossier predating the key is
|
|
849
|
+
excluded rather than counted as a zero. `not-met` is weighted by criteria rather than by run,
|
|
850
|
+
and carries its denominator into the cell so `0/4` and `0/200` cannot read alike.
|
|
851
|
+
|
|
852
|
+
A run whose milestones are **all** `classify` is the classifier's own dispatch, not a cycle
|
|
853
|
+
run: it records no `model=` and never ships, so counting it would add an `<unknown>` row that
|
|
854
|
+
never delivered for every issue the classifier has touched. Those runs are excluded from both
|
|
855
|
+
breakdowns — disclosed in a warning, and still present in the per-run table and in `--json`
|
|
856
|
+
`runs[]` with `classify_only: true`.
|
|
818
857
|
|
|
819
858
|
`rate` is a **floor, not a rate**: every run is in the denominator, including ones still
|
|
820
859
|
running, so a model with work in flight reads low until it lands. `delivered` counts `ship
|
|
@@ -874,18 +913,50 @@ than guessing:
|
|
|
874
913
|
- A bucket whose id ends in `-latest` with no entry in `MODEL_ALIASES` is named as a moving
|
|
875
914
|
tag sitting apart from whatever pin it resolves to — one model read as two rows.
|
|
876
915
|
|
|
916
|
+
### The per-model x class breakdown
|
|
917
|
+
|
|
918
|
+
The `By model x class:` table splits the same buckets again by the classifier's own `risk=`
|
|
919
|
+
verdict, so the answer is *which tiers are safe for which classes* rather than one number per
|
|
920
|
+
model — a model's runs over docs chores and over protocol changes otherwise land in one row
|
|
921
|
+
and average each other out.
|
|
922
|
+
|
|
923
|
+
The class is an **issue-level** attribute, read from the issue's `classify` milestone (the
|
|
924
|
+
last one, if an issue was re-classified). The classifier dispatches under its own `run=`, so
|
|
925
|
+
the class is attached to every cycle run of that issue rather than looked up per run. Only the
|
|
926
|
+
protocol's own levels are accepted — `low`, `med`, `high`, case-folded; anything else, and any
|
|
927
|
+
issue with no classify milestone, buckets as `<unclassified>`, which is its own visible row
|
|
928
|
+
rather than being folded into `low`. Rows sort worst-class-first (`high`, `med`, `low`,
|
|
929
|
+
`<unclassified>`), then by model.
|
|
930
|
+
|
|
931
|
+
The cells are the same counters as the by-model table, with two differences: `esc` is a raw
|
|
932
|
+
`escalations/escalation_runs` pair rather than the adjacent table's per-run mean (splitting a
|
|
933
|
+
thin corpus by class leaves most cells at n ≤ 2, where a mean reads like a measurement and is
|
|
934
|
+
not one), and durations are absent for the same reason. When some but not all runs are
|
|
935
|
+
classified, a warning states the unclassified share — the one thing the rows cannot show is
|
|
936
|
+
how thin the axis is.
|
|
937
|
+
|
|
877
938
|
Warnings go to stderr in both human and `--json` mode, so stdout stays parseable and
|
|
878
939
|
`stats` still exits 0 — a degraded read is not a failure. It exits 1 only when nothing in
|
|
879
940
|
the selection could be read.
|
|
880
941
|
|
|
881
|
-
`--json` returns `repo`, `issues`, `runs` (each with `run`, `model`, `
|
|
942
|
+
`--json` returns `repo`, `issues`, `runs` (each with `run`, `model`, `risk_class`,
|
|
943
|
+
`classified_mode`, `classify_only`, `escalated`, `ac_met`, `ac_total`, `last_phase`,
|
|
882
944
|
`last_status`, `total_seconds`, and a `phases` array of
|
|
883
945
|
`{phase, status, started_at, ended_at, seconds}`), `aggregates.phases`,
|
|
884
946
|
`aggregates.models` (each with `model`, `aliases`, `runs`, `samples`,
|
|
885
947
|
`median_total_seconds`, `min_total_seconds`, `max_total_seconds`, `negative_samples`,
|
|
886
|
-
`delivered`, `blocked`, `unfinished`, `delivery_rate`
|
|
948
|
+
`delivered`, `blocked`, `unfinished`, `delivery_rate`, `escalation_runs`, `escalations`,
|
|
949
|
+
`escalations_per_run`, `conformance_runs`, `conformance_criteria`, `conformance_not_met`,
|
|
950
|
+
`conformance_not_met_rate`), `aggregates.classes` (each with `model`, `risk_class`, `runs`,
|
|
951
|
+
`delivered`, `blocked`, `unfinished`, `delivery_rate`, `escalation_runs`, `escalations`,
|
|
952
|
+
`conformance_runs`, `conformance_criteria`, `conformance_not_met`), `issues_without_trail`,
|
|
887
953
|
`issues_failed`, and `warnings`.
|
|
888
954
|
|
|
955
|
+
From `@ai-dossier/cli` 0.33.0, `aggregates.classes` and the counter fields above are additive
|
|
956
|
+
— no existing field changed shape — but `aggregates.models[].runs` no longer counts classify
|
|
957
|
+
dispatches, so a consumer reconciling it against `runs.length` must subtract the entries with
|
|
958
|
+
`classify_only: true`.
|
|
959
|
+
|
|
889
960
|
From `@ai-dossier/cli` 0.25.0, `aggregates.models[].model` is the **canonical** bucket key
|
|
890
961
|
rather than the raw recorded `model=` — a consumer selecting on a routed spelling such as
|
|
891
962
|
`llmgateway/glm-5.3` should look in that bucket's `aliases` instead.
|
|
@@ -1232,6 +1303,11 @@ middle tier of `cap run test.full` (manifest) → `dispatch.suite_command` → a
|
|
|
1232
1303
|
safe default; run exactly as given, never with extra flags appended — set this when the
|
|
1233
1304
|
repo's `test` script delegates to something that cannot take a reporter flag and there is
|
|
1234
1305
|
no `.dossier/automation/` manifest to declare `test.full` in instead);
|
|
1306
|
+
`dispatch.disallowed_tools` — tool names appended as `--disallowedTools <a,b>` to every
|
|
1307
|
+
`claude`-family dispatch argv, #591; defaults to `["Monitor"]` because an agent that arms
|
|
1308
|
+
`Monitor` to wait on a background command and ends its turn abandons the run as an
|
|
1309
|
+
unverified exit — set `[]` to opt out, never applied when the command's binary isn't
|
|
1310
|
+
`claude` (an `opencode` tier has no such flag) or already carries the flag itself;
|
|
1235
1311
|
`pr_poll_interval_ms` (default 150 000) sets the
|
|
1236
1312
|
parked-PR poll cadence; `auto_upgrade` (default false, #537) lets a cron-driven
|
|
1237
1313
|
`sched start --once` self-upgrade when behind npm latest — the `--auto-upgrade` CLI flag
|
|
@@ -1257,6 +1333,7 @@ Library consumers: see [`@ai-dossier/sched`](../packages/sched/README.md).
|
|
|
1257
1333
|
ai-dossier cap list [--json] # inspect .dossier/automation/manifest.yaml
|
|
1258
1334
|
ai-dossier cap run test.focused # execute one capability
|
|
1259
1335
|
ai-dossier cap run test.focused -- --grep auth # extra args are shell-quoted and appended
|
|
1336
|
+
ai-dossier cap run test.focused --tail-bytes 4096 # bytes of output captured on a non-ok outcome (default 8192)
|
|
1260
1337
|
```
|
|
1261
1338
|
|
|
1262
1339
|
A repo declares its deterministic, recurring operations — tests, lint, build, deps
|
|
@@ -1294,8 +1371,9 @@ stdout line**, and the exit code matches:
|
|
|
1294
1371
|
| `capability-unavailable` | 3 | Id not in manifest (or `shadow`) — no fast path |
|
|
1295
1372
|
|
|
1296
1373
|
A repo without `.dossier/automation/` is normal: `cap list` is empty and exits 0. Every
|
|
1297
|
-
run appends telemetry (capability, outcome, exit code, duration, reason, cwd
|
|
1298
|
-
|
|
1374
|
+
run appends telemetry (capability, outcome, exit code, duration, reason, cwd, and —
|
|
1375
|
+
non-`ok` outcomes only — `output_tail`, the last `--tail-bytes` of combined stdout+stderr)
|
|
1376
|
+
to `~/.dossier/caps.jsonl`. Full spec and the capability id vocabulary:
|
|
1299
1377
|
[docs/reference/capabilities.md](../docs/reference/capabilities.md).
|
|
1300
1378
|
|
|
1301
1379
|
---
|
package/dist/cap-log.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export interface CapLogEntry {
|
|
|
20
20
|
/** Signal that killed the command, when abnormal termination occurred. */
|
|
21
21
|
signal: string | null;
|
|
22
22
|
cwd: string;
|
|
23
|
+
/** Last bytes of combined stdout+stderr on a non-ok outcome (#583 AC1/AC3). */
|
|
24
|
+
output_tail?: string;
|
|
23
25
|
}
|
|
24
26
|
declare const CAP_LOG_FILE: string;
|
|
25
27
|
/**
|
package/dist/cap-log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cap-log.d.ts","sourceRoot":"","sources":["../src/cap-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cap-log.d.ts","sourceRoot":"","sources":["../src/cap-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,YAAY,QAAsC,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAErD;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/cap-log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cap-log.js","sourceRoot":"","sources":["../src/cap-log.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;
|
|
1
|
+
{"version":3,"file":"cap-log.js","sourceRoot":"","sources":["../src/cap-log.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AA4BH,oCAEC;AA5BD,0DAA6B;AAE7B,qCAAsC;AACtC,2CAA+C;AAiB/C,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,mBAAU,EAAE,YAAY,CAAC,CAAC;AAUhD,oCAAY;AARrB;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAkB;IAC7C,IAAA,4BAAgB,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC"}
|
package/dist/capability.d.ts
CHANGED
|
@@ -25,6 +25,12 @@ export type CapabilityOutcome = 'ok' | 'task-failed' | 'automation-broken' | 'ca
|
|
|
25
25
|
export type CapabilityLifecycle = 'active' | 'shadow';
|
|
26
26
|
/** The four-way outcome contract, as process exit codes. */
|
|
27
27
|
export declare const CAPABILITY_EXIT_CODES: Record<CapabilityOutcome, number>;
|
|
28
|
+
/**
|
|
29
|
+
* Default byte length of `output_tail` (issue #583 AC1) — the last N bytes of
|
|
30
|
+
* a non-`ok` run's combined stdout+stderr, captured for attribution. Override
|
|
31
|
+
* per invocation with `cap run --tail-bytes <n>`.
|
|
32
|
+
*/
|
|
33
|
+
export declare const DEFAULT_OUTPUT_TAIL_BYTES = 8192;
|
|
28
34
|
/** Supported tool-version comparison operators (single source of truth). */
|
|
29
35
|
declare const TOOL_VERSION_OPS: readonly [">=", ">", "<=", "<", "==", "="];
|
|
30
36
|
type ToolVersionOp = (typeof TOOL_VERSION_OPS)[number];
|
|
@@ -48,6 +54,14 @@ export interface CapabilityEntry {
|
|
|
48
54
|
description?: string;
|
|
49
55
|
/** Per-entry command timeout in ms (default 5 min; timeout → automation-broken). */
|
|
50
56
|
timeoutMs?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Sanity floor (issue #583 AC2): a non-zero exit that finished faster than
|
|
59
|
+
* this many ms is reclassified `automation-broken` instead of `task-failed`
|
|
60
|
+
* — a fast non-zero exit is more likely "the automation didn't really run"
|
|
61
|
+
* (e.g. a filter matched zero projects) than a genuine test failure.
|
|
62
|
+
* Default 0 (no floor) — opt in per capability.
|
|
63
|
+
*/
|
|
64
|
+
minDurationMs?: number;
|
|
51
65
|
}
|
|
52
66
|
export interface CapabilityManifest {
|
|
53
67
|
/** Absolute path of the manifest file, or null when no manifest exists. */
|
|
@@ -88,6 +102,14 @@ export interface CapRunResult {
|
|
|
88
102
|
duration_ms: number;
|
|
89
103
|
/** Why a non-ok outcome happened (probe output, missing command, …). */
|
|
90
104
|
reason: string | null;
|
|
105
|
+
/**
|
|
106
|
+
* Last `tailBytes` of the combined stdout+stderr (issue #583 AC1/AC3),
|
|
107
|
+
* present only for non-`ok` outcomes that actually spawned a process.
|
|
108
|
+
* `undefined` for `ok` (keeps the success envelope small) and for outcomes
|
|
109
|
+
* classified before any subprocess ran (unknown id, shadow lifecycle,
|
|
110
|
+
* failed assumption probe).
|
|
111
|
+
*/
|
|
112
|
+
output_tail?: string;
|
|
91
113
|
}
|
|
92
114
|
/**
|
|
93
115
|
* Quote one argv element so the shell receives it verbatim as a single word.
|
|
@@ -95,14 +117,16 @@ export interface CapRunResult {
|
|
|
95
117
|
* shell syntax — put syntax in the manifest `command`, not in run args.
|
|
96
118
|
*/
|
|
97
119
|
export declare function shellQuote(arg: string): string;
|
|
120
|
+
/** Last `maxBytes` bytes of `text`, UTF-8-safe (never splits by char count). */
|
|
121
|
+
export declare function truncateTailBytes(text: string, maxBytes: number): string;
|
|
98
122
|
/**
|
|
99
123
|
* Resolve and execute one capability for a directory. Never throws for
|
|
100
124
|
* manifest/permission/exec problems — they are reported as outcomes — but a
|
|
101
125
|
* malformed manifest still surfaces as `automation-broken`, not a crash, so
|
|
102
126
|
* callers (the scheduler) can fall back to reasoning.
|
|
103
127
|
*/
|
|
104
|
-
export declare function runCapabilityFromCwd(id: string, args: string[], cwd: string): CapRunResult;
|
|
128
|
+
export declare function runCapabilityFromCwd(id: string, args: string[], cwd: string, tailBytes?: number): CapRunResult;
|
|
105
129
|
/** Execute a capability from an already-loaded manifest. */
|
|
106
|
-
export declare function runCapability(manifest: CapabilityManifest, id: string, args: string[], cwd: string): CapRunResult;
|
|
130
|
+
export declare function runCapability(manifest: CapabilityManifest, id: string, args: string[], cwd: string, tailBytes?: number): CapRunResult;
|
|
107
131
|
export {};
|
|
108
132
|
//# sourceMappingURL=capability.d.ts.map
|
package/dist/capability.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,oFAAoF;AACpF,eAAO,MAAM,cAAc,wBAAwB,CAAC;AACpD,+DAA+D;AAC/D,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,aAAa,GACb,mBAAmB,GACnB,wBAAwB,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAKnE,CAAC;AAcF,4EAA4E;AAC5E,QAAA,MAAM,gBAAgB,4CAA6C,CAAC;AACpE,KAAK,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAgBvD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,aAAa,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
|
package/dist/capability.js
CHANGED
|
@@ -22,11 +22,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.CapManifestError = exports.CAPABILITY_EXIT_CODES = exports.MANIFEST_FILE = exports.AUTOMATION_DIR = void 0;
|
|
25
|
+
exports.CapManifestError = exports.DEFAULT_OUTPUT_TAIL_BYTES = exports.CAPABILITY_EXIT_CODES = exports.MANIFEST_FILE = exports.AUTOMATION_DIR = void 0;
|
|
26
26
|
exports.loadCapabilityManifest = loadCapabilityManifest;
|
|
27
27
|
exports.parseCapabilityManifest = parseCapabilityManifest;
|
|
28
28
|
exports.evaluateProbe = evaluateProbe;
|
|
29
29
|
exports.shellQuote = shellQuote;
|
|
30
|
+
exports.truncateTailBytes = truncateTailBytes;
|
|
30
31
|
exports.runCapabilityFromCwd = runCapabilityFromCwd;
|
|
31
32
|
exports.runCapability = runCapability;
|
|
32
33
|
const node_child_process_1 = require("node:child_process");
|
|
@@ -54,6 +55,14 @@ const SHELL_SIGNAL_EXIT_BASE = 128;
|
|
|
54
55
|
const PROBE_TIMEOUT_MS = 10_000;
|
|
55
56
|
/** Default per-entry command timeout when the manifest does not set `timeout_ms`. */
|
|
56
57
|
const DEFAULT_COMMAND_TIMEOUT_MS = 5 * 60_000;
|
|
58
|
+
/**
|
|
59
|
+
* Default byte length of `output_tail` (issue #583 AC1) — the last N bytes of
|
|
60
|
+
* a non-`ok` run's combined stdout+stderr, captured for attribution. Override
|
|
61
|
+
* per invocation with `cap run --tail-bytes <n>`.
|
|
62
|
+
*/
|
|
63
|
+
exports.DEFAULT_OUTPUT_TAIL_BYTES = 8192;
|
|
64
|
+
/** `spawnSync`'s own default `maxBuffer` (1 MiB) is too small for a real test/build command's combined stdout+stderr — raised so output volume alone never causes a false `automation-broken` (#583 review). */
|
|
65
|
+
const MAX_CAPABILITY_OUTPUT_BYTES = 64 * 1024 * 1024;
|
|
57
66
|
/** Supported tool-version comparison operators (single source of truth). */
|
|
58
67
|
const TOOL_VERSION_OPS = ['>=', '>', '<=', '<', '==', '='];
|
|
59
68
|
const TOOL_VERSION_OPS_DISPLAY = [...TOOL_VERSION_OPS].sort().join(' ');
|
|
@@ -174,6 +183,15 @@ function parseCapabilityEntry(id, raw) {
|
|
|
174
183
|
}
|
|
175
184
|
timeoutMs = entry.timeout_ms;
|
|
176
185
|
}
|
|
186
|
+
let minDurationMs;
|
|
187
|
+
if (entry.min_duration_ms !== undefined) {
|
|
188
|
+
if (typeof entry.min_duration_ms !== 'number' ||
|
|
189
|
+
!Number.isFinite(entry.min_duration_ms) ||
|
|
190
|
+
entry.min_duration_ms < 0) {
|
|
191
|
+
throw new CapManifestError(`capability '${id}': min_duration_ms must be a non-negative number of milliseconds`);
|
|
192
|
+
}
|
|
193
|
+
minDurationMs = entry.min_duration_ms;
|
|
194
|
+
}
|
|
177
195
|
let assumptions;
|
|
178
196
|
if (entry.assumptions !== undefined) {
|
|
179
197
|
if (!Array.isArray(entry.assumptions)) {
|
|
@@ -181,7 +199,7 @@ function parseCapabilityEntry(id, raw) {
|
|
|
181
199
|
}
|
|
182
200
|
assumptions = entry.assumptions.map((probe, i) => parseAssumption(id, i, probe));
|
|
183
201
|
}
|
|
184
|
-
return { command: entry.command, lifecycle, assumptions, description, timeoutMs };
|
|
202
|
+
return { command: entry.command, lifecycle, assumptions, description, timeoutMs, minDurationMs };
|
|
185
203
|
}
|
|
186
204
|
function parseAssumption(id, index, raw) {
|
|
187
205
|
if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
|
|
@@ -269,13 +287,20 @@ function evaluateProbe(probe, cwd) {
|
|
|
269
287
|
function shellQuote(arg) {
|
|
270
288
|
return `'${arg.replace(/'/g, `'\\''`)}'`;
|
|
271
289
|
}
|
|
290
|
+
/** Last `maxBytes` bytes of `text`, UTF-8-safe (never splits by char count). */
|
|
291
|
+
function truncateTailBytes(text, maxBytes) {
|
|
292
|
+
const buf = Buffer.from(text, 'utf-8');
|
|
293
|
+
if (buf.length <= maxBytes)
|
|
294
|
+
return text;
|
|
295
|
+
return buf.subarray(buf.length - maxBytes).toString('utf-8');
|
|
296
|
+
}
|
|
272
297
|
/**
|
|
273
298
|
* Resolve and execute one capability for a directory. Never throws for
|
|
274
299
|
* manifest/permission/exec problems — they are reported as outcomes — but a
|
|
275
300
|
* malformed manifest still surfaces as `automation-broken`, not a crash, so
|
|
276
301
|
* callers (the scheduler) can fall back to reasoning.
|
|
277
302
|
*/
|
|
278
|
-
function runCapabilityFromCwd(id, args, cwd) {
|
|
303
|
+
function runCapabilityFromCwd(id, args, cwd, tailBytes = exports.DEFAULT_OUTPUT_TAIL_BYTES) {
|
|
279
304
|
let manifest;
|
|
280
305
|
try {
|
|
281
306
|
manifest = loadCapabilityManifest(cwd);
|
|
@@ -286,10 +311,10 @@ function runCapabilityFromCwd(id, args, cwd) {
|
|
|
286
311
|
}
|
|
287
312
|
throw err;
|
|
288
313
|
}
|
|
289
|
-
return runCapability(manifest, id, args, cwd);
|
|
314
|
+
return runCapability(manifest, id, args, cwd, tailBytes);
|
|
290
315
|
}
|
|
291
316
|
/** Execute a capability from an already-loaded manifest. */
|
|
292
|
-
function runCapability(manifest, id, args, cwd) {
|
|
317
|
+
function runCapability(manifest, id, args, cwd, tailBytes = exports.DEFAULT_OUTPUT_TAIL_BYTES) {
|
|
293
318
|
const start = Date.now();
|
|
294
319
|
const entry = manifest.capabilities[id];
|
|
295
320
|
if (!entry) {
|
|
@@ -324,16 +349,35 @@ function runCapability(manifest, id, args, cwd) {
|
|
|
324
349
|
}
|
|
325
350
|
const commandLine = [entry.command, ...args.map(shellQuote)].join(' ');
|
|
326
351
|
const timeoutMs = entry.timeoutMs ?? DEFAULT_COMMAND_TIMEOUT_MS;
|
|
352
|
+
// Captured (not `stdio: 'inherit'`) so a non-ok outcome can carry an
|
|
353
|
+
// `output_tail` (issue #583 AC1) — re-emitted below so a human running
|
|
354
|
+
// `cap run` directly still sees it (buffered, not streamed live).
|
|
355
|
+
// `maxBuffer` explicit: `spawnSync`'s default is 1 MiB, and a chatty test
|
|
356
|
+
// suite or verbose build legitimately exceeds that — without raising it,
|
|
357
|
+
// an otherwise-passing command hits `res.error` (ENOBUFS) and gets
|
|
358
|
+
// misclassified `automation-broken`, which the batch gate would then read
|
|
359
|
+
// as a genuine inconclusive result rather than "the command produced a lot
|
|
360
|
+
// of output" (review finding on #583).
|
|
327
361
|
const res = (0, node_child_process_1.spawnSync)(commandLine, {
|
|
328
362
|
shell: true,
|
|
329
363
|
cwd,
|
|
330
|
-
|
|
364
|
+
encoding: 'utf-8',
|
|
331
365
|
timeout: timeoutMs,
|
|
366
|
+
maxBuffer: MAX_CAPABILITY_OUTPUT_BYTES,
|
|
332
367
|
});
|
|
333
|
-
|
|
368
|
+
if (res.stdout)
|
|
369
|
+
process.stdout.write(res.stdout);
|
|
370
|
+
if (res.stderr)
|
|
371
|
+
process.stderr.write(res.stderr);
|
|
372
|
+
const durationMs = Date.now() - start;
|
|
373
|
+
const classified = classifySpawnResult(res, id, commandLine, durationMs, cwd, timeoutMs, entry.minDurationMs ?? 0);
|
|
374
|
+
if (classified.outcome !== 'ok') {
|
|
375
|
+
classified.output_tail = truncateTailBytes(`${res.stdout ?? ''}${res.stderr ?? ''}`, tailBytes);
|
|
376
|
+
}
|
|
377
|
+
return classified;
|
|
334
378
|
}
|
|
335
379
|
/** Map a finished spawn to one of the three executed outcomes (ok / task-failed / automation-broken). */
|
|
336
|
-
function classifySpawnResult(res, id, commandLine, durationMs, cwd, timeoutMs) {
|
|
380
|
+
function classifySpawnResult(res, id, commandLine, durationMs, cwd, timeoutMs, minDurationMs = 0) {
|
|
337
381
|
if (res.error) {
|
|
338
382
|
const code = res.error.code;
|
|
339
383
|
if (code === 'ETIMEDOUT') {
|
|
@@ -383,6 +427,21 @@ function classifySpawnResult(res, id, commandLine, durationMs, cwd, timeoutMs) {
|
|
|
383
427
|
reason: null,
|
|
384
428
|
};
|
|
385
429
|
}
|
|
430
|
+
// #583 AC2: a non-zero exit that finished faster than the capability's
|
|
431
|
+
// declared floor is more likely "the automation didn't really run" than a
|
|
432
|
+
// genuine task failure — reclassify rather than hand the caller a false
|
|
433
|
+
// task-failed.
|
|
434
|
+
if (minDurationMs > 0 && durationMs < minDurationMs) {
|
|
435
|
+
return {
|
|
436
|
+
outcome: 'automation-broken',
|
|
437
|
+
capability: id,
|
|
438
|
+
command: commandLine,
|
|
439
|
+
exit_code: res.status,
|
|
440
|
+
signal: null,
|
|
441
|
+
duration_ms: durationMs,
|
|
442
|
+
reason: `exited ${res.status} after ${durationMs}ms — below min_duration_ms=${minDurationMs}ms; treated as automation-broken, not task-failed`,
|
|
443
|
+
};
|
|
444
|
+
}
|
|
386
445
|
return {
|
|
387
446
|
outcome: 'task-failed',
|
|
388
447
|
capability: id,
|
package/dist/capability.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cap.d.ts","sourceRoot":"","sources":["../../src/commands/cap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cap.d.ts","sourceRoot":"","sources":["../../src/commands/cap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsDzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwFzD"}
|
package/dist/commands/cap.js
CHANGED
|
@@ -26,7 +26,12 @@ function loadOrFail() {
|
|
|
26
26
|
throw err;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* The JSON envelope for `cap run` — nulls, never undefined, for a stable
|
|
31
|
+
* shape. `output_tail` is the one exception: omitted entirely on `ok` (issue
|
|
32
|
+
* #583 AC1) rather than null, so a passing run's envelope stays small; a
|
|
33
|
+
* consumer (e.g. the batch engine) checks for the key's presence.
|
|
34
|
+
*/
|
|
30
35
|
function envelope(result) {
|
|
31
36
|
return JSON.stringify({
|
|
32
37
|
capability: result.capability,
|
|
@@ -36,6 +41,7 @@ function envelope(result) {
|
|
|
36
41
|
signal: result.signal,
|
|
37
42
|
duration_ms: result.duration_ms,
|
|
38
43
|
reason: result.reason,
|
|
44
|
+
...(result.output_tail !== undefined ? { output_tail: result.output_tail } : {}),
|
|
39
45
|
});
|
|
40
46
|
}
|
|
41
47
|
function registerCapCommand(program) {
|
|
@@ -81,10 +87,15 @@ function registerCapCommand(program) {
|
|
|
81
87
|
.command('run <id> [args...]')
|
|
82
88
|
.description('Execute one capability; extra args after -- are shell-quoted and appended to the command. ' +
|
|
83
89
|
'Exit codes: 0 ok, 1 task-failed, 2 automation-broken, 3 capability-unavailable')
|
|
90
|
+
.option('--tail-bytes <n>', `Bytes of combined stdout+stderr to capture on a non-ok outcome (default ${capability_1.DEFAULT_OUTPUT_TAIL_BYTES})`)
|
|
84
91
|
.allowUnknownOption(true)
|
|
85
|
-
.action((id, args) => {
|
|
92
|
+
.action((id, args, opts) => {
|
|
86
93
|
const cwd = process.cwd();
|
|
87
|
-
const
|
|
94
|
+
const tailBytes = opts.tailBytes ? Number(opts.tailBytes) : capability_1.DEFAULT_OUTPUT_TAIL_BYTES;
|
|
95
|
+
if (!Number.isFinite(tailBytes) || tailBytes < 0) {
|
|
96
|
+
(0, helpers_1.fail)([`--tail-bytes must be a non-negative number, got '${opts.tailBytes}'`]);
|
|
97
|
+
}
|
|
98
|
+
const result = (0, capability_1.runCapabilityFromCwd)(id, args, cwd, tailBytes);
|
|
88
99
|
(0, cap_log_1.appendCapLog)({
|
|
89
100
|
timestamp: new Date().toISOString(),
|
|
90
101
|
capability: result.capability,
|
|
@@ -94,6 +105,7 @@ function registerCapCommand(program) {
|
|
|
94
105
|
reason: result.reason,
|
|
95
106
|
signal: result.signal,
|
|
96
107
|
cwd,
|
|
108
|
+
...(result.output_tail !== undefined ? { output_tail: result.output_tail } : {}),
|
|
97
109
|
});
|
|
98
110
|
// Leading newline: a child whose last write had no trailing newline must
|
|
99
111
|
// not end up on the same line as the envelope — the envelope is the
|
package/dist/commands/cap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cap.js","sourceRoot":"","sources":["../../src/commands/cap.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;
|
|
1
|
+
{"version":3,"file":"cap.js","sourceRoot":"","sources":["../../src/commands/cap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runstate.d.ts","sourceRoot":"","sources":["../../src/commands/runstate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"runstate.d.ts","sourceRoot":"","sources":["../../src/commands/runstate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2ezC;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AA+6BlC,6FAA6F;AAC7F,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAY9D"}
|