@cleocode/core 2026.8.9 → 2026.9.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/dist/conduit/conduit-client.d.ts.map +1 -1
- package/dist/conduit/conduit-client.js +10 -2
- package/dist/conduit/conduit-client.js.map +1 -1
- package/dist/dispatch/mvi-projection.d.ts +38 -0
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +189 -11
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/export-document.js +41 -3
- package/dist/docs/export-document.js.map +2 -2
- package/dist/doctor/acceptance-drift.d.ts +258 -0
- package/dist/doctor/acceptance-drift.d.ts.map +1 -0
- package/dist/doctor/acceptance-drift.js +366 -0
- package/dist/doctor/acceptance-drift.js.map +1 -0
- package/dist/doctor/index.d.ts +4 -0
- package/dist/doctor/index.d.ts.map +1 -1
- package/dist/doctor/index.js +2 -0
- package/dist/doctor/index.js.map +1 -1
- package/dist/doctor/legacy-reaper.d.ts +105 -0
- package/dist/doctor/legacy-reaper.d.ts.map +1 -0
- package/dist/doctor/legacy-reaper.js +151 -0
- package/dist/doctor/legacy-reaper.js.map +1 -0
- package/dist/doctor/malformed-task-ids.d.ts +111 -0
- package/dist/doctor/malformed-task-ids.d.ts.map +1 -0
- package/dist/doctor/malformed-task-ids.js +139 -0
- package/dist/doctor/malformed-task-ids.js.map +1 -0
- package/dist/doctor/nexus-schema-residency.d.ts +115 -0
- package/dist/doctor/nexus-schema-residency.d.ts.map +1 -0
- package/dist/doctor/nexus-schema-residency.js +178 -0
- package/dist/doctor/nexus-schema-residency.js.map +1 -0
- package/dist/error-registry.d.ts.map +1 -1
- package/dist/error-registry.js +18 -0
- package/dist/error-registry.js.map +1 -1
- package/dist/internal.d.ts +1 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -0
- package/dist/internal.js.map +1 -1
- package/dist/llm/ai-sdk-warnings.d.ts +55 -0
- package/dist/llm/ai-sdk-warnings.d.ts.map +1 -0
- package/dist/llm/ai-sdk-warnings.js +83 -0
- package/dist/llm/ai-sdk-warnings.js.map +1 -0
- package/dist/llm/model-runner.d.ts +0 -8
- package/dist/llm/model-runner.d.ts.map +1 -1
- package/dist/llm/model-runner.js +8 -0
- package/dist/llm/model-runner.js.map +1 -1
- package/dist/llm/plugin-facade.js +73 -8
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/embedding-queue.d.ts +12 -0
- package/dist/memory/embedding-queue.d.ts.map +1 -1
- package/dist/memory/embedding-queue.js +39 -5
- package/dist/memory/embedding-queue.js.map +1 -1
- package/dist/orchestrate/worktree-complete.d.ts.map +1 -1
- package/dist/orchestrate/worktree-complete.js +26 -0
- package/dist/orchestrate/worktree-complete.js.map +1 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +25 -0
- package/dist/output.js.map +1 -1
- package/dist/release/pr-evidence.d.ts +13 -0
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +54 -1
- package/dist/release/pr-evidence.js.map +1 -1
- package/dist/render/session/briefing.d.ts.map +1 -1
- package/dist/render/session/briefing.js +9 -0
- package/dist/render/session/briefing.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +73 -8
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sessions/briefing.d.ts +13 -0
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +64 -7
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/handoff.d.ts +32 -4
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +7 -7
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/shutdown-deadline.d.ts +144 -0
- package/dist/shutdown-deadline.d.ts.map +1 -0
- package/dist/shutdown-deadline.js +187 -0
- package/dist/shutdown-deadline.js.map +1 -0
- package/dist/shutdown.d.ts +5 -2
- package/dist/shutdown.d.ts.map +1 -1
- package/dist/shutdown.js +19 -14
- package/dist/shutdown.js.map +1 -1
- package/dist/spawn/branch-lock.d.ts.map +1 -1
- package/dist/spawn/branch-lock.js +33 -0
- package/dist/spawn/branch-lock.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +14 -0
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/tasks-sqlite.d.ts.map +1 -1
- package/dist/store/tasks-sqlite.js +16 -1
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/tasks/ac-immutability.d.ts.map +1 -1
- package/dist/tasks/ac-immutability.js +36 -0
- package/dist/tasks/ac-immutability.js.map +1 -1
- package/dist/tasks/add.d.ts +18 -0
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +28 -5
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/axis-filters.d.ts +53 -0
- package/dist/tasks/axis-filters.d.ts.map +1 -0
- package/dist/tasks/axis-filters.js +77 -0
- package/dist/tasks/axis-filters.js.map +1 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +10 -1
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/duplicate-detector.d.ts +67 -14
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +197 -54
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/evidence.d.ts +139 -0
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +294 -25
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/find.d.ts.map +1 -1
- package/dist/tasks/find.js +9 -2
- package/dist/tasks/find.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +25 -4
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/heavy-tool-env.d.ts +20 -0
- package/dist/tasks/heavy-tool-env.d.ts.map +1 -1
- package/dist/tasks/heavy-tool-env.js +74 -4
- package/dist/tasks/heavy-tool-env.js.map +1 -1
- package/dist/tasks/heavy-tool-limit.d.ts +134 -0
- package/dist/tasks/heavy-tool-limit.d.ts.map +1 -0
- package/dist/tasks/heavy-tool-limit.js +196 -0
- package/dist/tasks/heavy-tool-limit.js.map +1 -0
- package/dist/tasks/index.d.ts +1 -1
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +1 -1
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/infer-add-params.d.ts +28 -0
- package/dist/tasks/infer-add-params.d.ts.map +1 -1
- package/dist/tasks/infer-add-params.js +96 -6
- package/dist/tasks/infer-add-params.js.map +1 -1
- package/dist/tasks/list.d.ts +30 -1
- package/dist/tasks/list.d.ts.map +1 -1
- package/dist/tasks/list.js +14 -0
- package/dist/tasks/list.js.map +1 -1
- package/dist/tasks/ops.d.ts +4 -0
- package/dist/tasks/ops.d.ts.map +1 -1
- package/dist/tasks/ops.js +2 -0
- package/dist/tasks/ops.js.map +1 -1
- package/dist/tasks/session-scope.d.ts +51 -4
- package/dist/tasks/session-scope.d.ts.map +1 -1
- package/dist/tasks/session-scope.js +68 -10
- package/dist/tasks/session-scope.js.map +1 -1
- package/dist/tasks/tool-cache.d.ts +116 -9
- package/dist/tasks/tool-cache.d.ts.map +1 -1
- package/dist/tasks/tool-cache.js +127 -16
- package/dist/tasks/tool-cache.js.map +1 -1
- package/dist/tasks/tool-semaphore.d.ts +91 -0
- package/dist/tasks/tool-semaphore.d.ts.map +1 -1
- package/dist/tasks/tool-semaphore.js +203 -14
- package/dist/tasks/tool-semaphore.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +64 -0
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +249 -0
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +41 -5
- package/dist/validation/engine-ops.js.map +1 -1
- package/package.json +13 -13
- package/templates/CLEO-INJECTION.md +28 -44
- package/dist/backfill/adr-backfill-walker.d.ts +0 -57
- package/dist/backfill/adr-backfill-walker.d.ts.map +0 -1
- package/dist/backfill/adr-backfill-walker.js +0 -631
- package/dist/backfill/adr-backfill-walker.js.map +0 -1
- package/dist/tasks/graph-rag.d.ts +0 -49
- package/dist/tasks/graph-rag.d.ts.map +0 -1
- package/dist/tasks/graph-rag.js +0 -328
- package/dist/tasks/graph-rag.js.map +0 -1
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kernel-enforced memory ceiling for heavy tools CLEO spawns (T12116).
|
|
3
|
+
*
|
|
4
|
+
* ## Why the environment variables were never enough
|
|
5
|
+
*
|
|
6
|
+
* {@link ./heavy-tool-env.ts | heavyToolEnv} bounds a heavy tool by exporting
|
|
7
|
+
* `NODE_OPTIONS`, `VITEST_MAX_WORKERS` and `npm_config_workspace_concurrency`.
|
|
8
|
+
* Every one of those is **advisory and runner-specific**:
|
|
9
|
+
*
|
|
10
|
+
* - `VITEST_MAX_WORKERS` binds vitest. It does nothing for jest, mocha,
|
|
11
|
+
* `cargo test`, `pytest`, `go test`, or a hand-rolled `make test` — and
|
|
12
|
+
* CLEO is a general task runner whose consumers are not all Node projects.
|
|
13
|
+
* - `--max-old-space-size` caps the V8 **old space**, not RSS. Buffers, typed
|
|
14
|
+
* arrays, native allocations and every non-Node child are outside it.
|
|
15
|
+
* - A tool is free to ignore all of them.
|
|
16
|
+
*
|
|
17
|
+
* So the ceiling only ever bound the case we happened to think of. The failure
|
|
18
|
+
* this is written against was not an OOM kill at all: `app.slice` reached its
|
|
19
|
+
* `MemoryHigh`, the kernel throttled and thrashed swap, and the desktop locked
|
|
20
|
+
* up **without logging anything** — which is why repeated OOM hunts found
|
|
21
|
+
* nothing. A throttle-and-thrash freeze is silent.
|
|
22
|
+
*
|
|
23
|
+
* ## What this does instead
|
|
24
|
+
*
|
|
25
|
+
* Spawn the tool inside its own transient systemd scope with a hard
|
|
26
|
+
* `MemoryMax` and, critically, `MemorySwapMax=0`. Two properties follow, and
|
|
27
|
+
* neither depends on the tool's language or cooperation:
|
|
28
|
+
*
|
|
29
|
+
* 1. **The bound is the kernel's**, applied to the whole process tree. A
|
|
30
|
+
* `pnpm -r` fan-out into fifteen packages is still one cgroup.
|
|
31
|
+
* 2. **Breaching it kills the tool, not the host.** With swap denied, the
|
|
32
|
+
* cgroup cannot thrash its way into freezing the desktop; it OOMs inside
|
|
33
|
+
* its own boundary and CLEO reports a failed run. A failed test run is a
|
|
34
|
+
* result. A frozen workstation is not.
|
|
35
|
+
*
|
|
36
|
+
* Verified on Fedora 44 / systemd 258 before this module was written: a scope
|
|
37
|
+
* created with `MemoryMax=512M` reports `memory.max=536870912` and
|
|
38
|
+
* `memory.swap.max=0` from inside, and a Node process touching 2 GiB is killed
|
|
39
|
+
* at ~450 MiB RSS rather than allocating.
|
|
40
|
+
*
|
|
41
|
+
* Where systemd is unavailable (macOS, Windows, a container without a user
|
|
42
|
+
* manager) this degrades to a no-op and the env-var overlay remains the only
|
|
43
|
+
* bound — the same protection as before, never less.
|
|
44
|
+
*
|
|
45
|
+
* @module
|
|
46
|
+
* @task T12116
|
|
47
|
+
*/
|
|
48
|
+
import { spawnSync } from 'node:child_process';
|
|
49
|
+
import { totalmem } from 'node:os';
|
|
50
|
+
import { isHeavyTool } from './heavy-tool-env.js';
|
|
51
|
+
/** Fraction of host RAM one heavy tool invocation may occupy. */
|
|
52
|
+
export const HEAVY_TOOL_RAM_FRACTION = 0.25;
|
|
53
|
+
/** Never grant a single invocation more than this, however large the host. */
|
|
54
|
+
export const HEAVY_TOOL_MEMORY_CEILING_MB = 8_192;
|
|
55
|
+
/** Never grant less than this — a real test suite must be able to run. */
|
|
56
|
+
export const HEAVY_TOOL_MEMORY_FLOOR_MB = 2_048;
|
|
57
|
+
/** Env var an operator can set to override the derived ceiling. */
|
|
58
|
+
export const MEMORY_MAX_ENV = 'CLEO_TOOL_MEMORY_MAX_MB';
|
|
59
|
+
/** Env var to disable cgroup confinement entirely. */
|
|
60
|
+
export const DISABLE_ENV = 'CLEO_NO_TOOL_CGROUP';
|
|
61
|
+
/**
|
|
62
|
+
* Memory ceiling for one heavy-tool invocation, in MiB.
|
|
63
|
+
*
|
|
64
|
+
* Derived from host RAM so a 16 GiB laptop is not handed a 45 GiB allowance,
|
|
65
|
+
* then clamped. The result is per-invocation; total exposure is this times the
|
|
66
|
+
* tool semaphore's concurrency, which is itself RAM-derived (T12091).
|
|
67
|
+
*
|
|
68
|
+
* @param totalRamGib - host RAM in GiB; injectable for deterministic tests.
|
|
69
|
+
* @param env - environment to read the operator override from.
|
|
70
|
+
* @returns the ceiling in MiB.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* resolveMemoryMaxMb(62); // → 8192 (clamped from 15872)
|
|
75
|
+
* resolveMemoryMaxMb(8); // → 2048 (floor)
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export function resolveMemoryMaxMb(totalRamGib = totalmem() / 1024 ** 3, env = process.env) {
|
|
79
|
+
const override = Number.parseInt(env[MEMORY_MAX_ENV] ?? '', 10);
|
|
80
|
+
if (Number.isFinite(override) && override > 0)
|
|
81
|
+
return override;
|
|
82
|
+
const derived = Math.floor(totalRamGib * 1024 * HEAVY_TOOL_RAM_FRACTION);
|
|
83
|
+
return Math.min(HEAVY_TOOL_MEMORY_CEILING_MB, Math.max(HEAVY_TOOL_MEMORY_FLOOR_MB, derived));
|
|
84
|
+
}
|
|
85
|
+
/** Cached result of {@link cgroupConfinementAvailable}. */
|
|
86
|
+
let _available = null;
|
|
87
|
+
/**
|
|
88
|
+
* Whether transient memory-bounded scopes can be created on this host.
|
|
89
|
+
*
|
|
90
|
+
* Probes once per process, because the answer cannot change mid-run and the
|
|
91
|
+
* probe costs a subprocess. Requires both `systemd-run` and a **running user
|
|
92
|
+
* manager** — the binary alone is not enough inside a container.
|
|
93
|
+
*
|
|
94
|
+
* @param env - environment to read {@link DISABLE_ENV} from.
|
|
95
|
+
* @returns `true` when {@link withMemoryLimit} can confine a spawn.
|
|
96
|
+
*/
|
|
97
|
+
export function cgroupConfinementAvailable(env = process.env) {
|
|
98
|
+
if (env[DISABLE_ENV] === '1')
|
|
99
|
+
return false;
|
|
100
|
+
if (process.platform !== 'linux')
|
|
101
|
+
return false;
|
|
102
|
+
if (_available !== null)
|
|
103
|
+
return _available;
|
|
104
|
+
// `spawnSync`, not `execFileSync`: `systemctl is-system-running` prints the
|
|
105
|
+
// state on stdout but exits NON-ZERO for every state except `running` — a
|
|
106
|
+
// `degraded` manager (one failed unit anywhere in the session, which is
|
|
107
|
+
// extremely common) exits 1. `execFileSync` throws on a non-zero exit, so it
|
|
108
|
+
// would discard the very string we need to read and silently disable
|
|
109
|
+
// confinement on most real desktops. Measured on this host: `degraded`,
|
|
110
|
+
// exit 1, with transient scopes working perfectly.
|
|
111
|
+
const probe = spawnSync('systemd-run', ['--user', '--version'], {
|
|
112
|
+
stdio: 'ignore',
|
|
113
|
+
timeout: 5_000,
|
|
114
|
+
});
|
|
115
|
+
if (probe.error || probe.status !== 0) {
|
|
116
|
+
_available = false;
|
|
117
|
+
return _available;
|
|
118
|
+
}
|
|
119
|
+
const state = spawnSync('systemctl', ['--user', 'is-system-running'], {
|
|
120
|
+
encoding: 'utf-8',
|
|
121
|
+
timeout: 5_000,
|
|
122
|
+
});
|
|
123
|
+
const reported = (state.stdout ?? '').trim();
|
|
124
|
+
// A manager that answers at all can host a transient scope. `running` and
|
|
125
|
+
// `degraded` both do; `offline`/`unknown` (or no answer) do not.
|
|
126
|
+
_available = reported === 'running' || reported === 'degraded';
|
|
127
|
+
return _available;
|
|
128
|
+
}
|
|
129
|
+
/** Reset the cached probe. Test-only. @internal */
|
|
130
|
+
export function _resetConfinementCache() {
|
|
131
|
+
_available = null;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Wrap a heavy tool command so the kernel bounds its whole process tree.
|
|
135
|
+
*
|
|
136
|
+
* Applied only to `test` and `build` — the canonicals that fork. Confining
|
|
137
|
+
* `lint` or `typecheck` would add a subprocess to bound a single cheap process.
|
|
138
|
+
*
|
|
139
|
+
* `--scope` (not `--unit`) keeps the tool a child of this process, so CLEO's
|
|
140
|
+
* existing stdio piping, timeout and exit-code handling are unchanged;
|
|
141
|
+
* `--collect` reaps the transient unit so repeated verifies do not accumulate
|
|
142
|
+
* scope units.
|
|
143
|
+
*
|
|
144
|
+
* @param canonical - the tool about to run.
|
|
145
|
+
* @param cmd - executable.
|
|
146
|
+
* @param args - arguments.
|
|
147
|
+
* @param opts - overrides for deterministic tests.
|
|
148
|
+
* @returns the command to spawn, confined where possible.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```ts
|
|
152
|
+
* const c = withMemoryLimit('test', 'pnpm', ['run', 'test']);
|
|
153
|
+
* // c.cmd === 'systemd-run'
|
|
154
|
+
* // c.args === ['--user','--scope','--quiet','--collect',
|
|
155
|
+
* // '-p','MemoryMax=8192M','-p','MemorySwapMax=0',
|
|
156
|
+
* // '--','pnpm','run','test']
|
|
157
|
+
* ```
|
|
158
|
+
*
|
|
159
|
+
* @task T12116
|
|
160
|
+
*/
|
|
161
|
+
export function withMemoryLimit(canonical, cmd, args, opts = {}) {
|
|
162
|
+
const env = opts.env ?? process.env;
|
|
163
|
+
// One definition of "heavy", shared with the worker caps, the semaphore and
|
|
164
|
+
// the spawn deadline. Four independent literals agreeing by coincidence is
|
|
165
|
+
// how a fifth heavy tool gets a long deadline and no memory bound.
|
|
166
|
+
if (!isHeavyTool(canonical)) {
|
|
167
|
+
return { cmd, args, confined: false, memoryMaxMb: null };
|
|
168
|
+
}
|
|
169
|
+
const available = opts.available ?? cgroupConfinementAvailable(env);
|
|
170
|
+
if (!available) {
|
|
171
|
+
return { cmd, args, confined: false, memoryMaxMb: null };
|
|
172
|
+
}
|
|
173
|
+
const memoryMaxMb = resolveMemoryMaxMb(opts.totalRamGib ?? totalmem() / 1024 ** 3, env);
|
|
174
|
+
return {
|
|
175
|
+
cmd: 'systemd-run',
|
|
176
|
+
args: [
|
|
177
|
+
'--user',
|
|
178
|
+
'--scope',
|
|
179
|
+
'--quiet',
|
|
180
|
+
'--collect',
|
|
181
|
+
'-p',
|
|
182
|
+
`MemoryMax=${memoryMaxMb}M`,
|
|
183
|
+
// Denying swap is the point. The failure this guards against was a
|
|
184
|
+
// throttle-and-thrash freeze, not an OOM kill: with swap available the
|
|
185
|
+
// cgroup degrades the whole host instead of failing itself.
|
|
186
|
+
'-p',
|
|
187
|
+
'MemorySwapMax=0',
|
|
188
|
+
'--',
|
|
189
|
+
cmd,
|
|
190
|
+
...args,
|
|
191
|
+
],
|
|
192
|
+
confined: true,
|
|
193
|
+
memoryMaxMb,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=heavy-tool-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heavy-tool-limit.js","sourceRoot":"","sources":["../../src/tasks/heavy-tool-limit.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/index.d.ts
CHANGED
|
@@ -34,6 +34,6 @@ export { taskSyncLinks, taskSyncLinksRemove, taskSyncReconcile } from './sync-op
|
|
|
34
34
|
export { taskAnalyze, taskBatchValidate, taskBlockers, taskCancel, taskClaim, taskComplexityEstimate, taskDepends, taskDeps, taskDepsCycles, taskDepsOverview, taskDepsTree, taskDepsValidate, taskExport, taskHistory, taskImpact, taskImport, taskLint, taskNext, taskPromote, taskRelates, taskRelatesAdd, taskRelatesFind, taskRelatesRemove, taskReopen, taskReorder, taskReparent, taskRestore, taskSlice, taskStats, taskTree, taskUnarchive, taskUnclaim, } from './task-ops.js';
|
|
35
35
|
export { cacheEntryPath, captureDirtyFingerprint, captureHead, clearToolCache, computeCacheKey, type RunToolOptions, readCacheEntry, runToolCached, type ToolCacheEntry, type ToolRunResult, writeCacheEntry, } from './tool-cache.js';
|
|
36
36
|
export { type CanonicalTool, listValidToolNames, type ResolutionSource, type ResolvedToolCommand, type ResolveToolResult, resolveToolCommand, } from './tool-resolver.js';
|
|
37
|
-
export { type AcquireSlotOptions, acquireGlobalSlot, defaultMaxConcurrent, type ReleaseSlotFn, resolveMaxConcurrent, semaphoreDir, } from './tool-semaphore.js';
|
|
37
|
+
export { type AcquireSlotOptions, acquireGlobalSlot, defaultMaxConcurrent, isHolderAlive, listSlotHolders, type ReleaseSlotFn, readHolder, reapOrphanedSlots, reapSlotIfOrphaned, resolveMaxConcurrent, type SlotHolder, semaphoreDir, } from './tool-semaphore.js';
|
|
38
38
|
export { taskUpdate, type UpdateTaskOptions, type UpdateTaskResult, updateTask } from './update.js';
|
|
39
39
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/index.js
CHANGED
|
@@ -46,6 +46,6 @@ export { cacheEntryPath, captureDirtyFingerprint, captureHead, clearToolCache, c
|
|
|
46
46
|
// Project-agnostic tool resolution (T1534 / ADR-061)
|
|
47
47
|
export { listValidToolNames, resolveToolCommand, } from './tool-resolver.js';
|
|
48
48
|
// Cross-process global per-tool concurrency semaphore (T1534 / ADR-061)
|
|
49
|
-
export { acquireGlobalSlot, defaultMaxConcurrent, resolveMaxConcurrent, semaphoreDir, } from './tool-semaphore.js';
|
|
49
|
+
export { acquireGlobalSlot, defaultMaxConcurrent, isHolderAlive, listSlotHolders, readHolder, reapOrphanedSlots, reapSlotIfOrphaned, resolveMaxConcurrent, semaphoreDir, } from './tool-semaphore.js';
|
|
50
50
|
export { taskUpdate, updateTask } from './update.js';
|
|
51
51
|
//# sourceMappingURL=index.js.map
|
package/dist/tasks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,34 @@ export interface InferAddParamsResult {
|
|
|
48
48
|
acceptance?: string[];
|
|
49
49
|
/** Parent task ID inferred from the active session's current task. */
|
|
50
50
|
inferredParent?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Why parent inference produced (or declined to produce) a parent.
|
|
53
|
+
*
|
|
54
|
+
* Always populated when inference was ATTEMPTED — i.e. no explicit
|
|
55
|
+
* `--parent` and a non-epic type. Absent when the caller named a parent, so
|
|
56
|
+
* a present value means "this parent did not come from your command".
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* T12136 (GH #1232/#1238): the inference itself was announced only through
|
|
60
|
+
* `humanInfo`, which is silent under `--json`/`--quiet` — so the population
|
|
61
|
+
* that gets hurt by it (agents) never saw it. The caller then hit
|
|
62
|
+
* `E_CLEO_DEPTH_EXCEEDED` naming a task it had never mentioned, with advice
|
|
63
|
+
* pointing at an epic it had never intended to file under. Carrying the
|
|
64
|
+
* decision in the RESULT, rather than only on a human-only stderr channel,
|
|
65
|
+
* is what lets the machine-readable surfaces name it too.
|
|
66
|
+
*/
|
|
67
|
+
parentInference?: ParentInference;
|
|
68
|
+
}
|
|
69
|
+
/** Outcome of the session-based parent inference step. */
|
|
70
|
+
export interface ParentInference {
|
|
71
|
+
/** `'applied'` when a parent was inferred; otherwise why it was not. */
|
|
72
|
+
outcome: 'applied' | 'no-current-task' | 'stale-terminal' | 'lookup-failed';
|
|
73
|
+
/** The session's `current` pointer, when there was one. */
|
|
74
|
+
candidateId?: string;
|
|
75
|
+
/** Status of the candidate when it was rejected as stale. */
|
|
76
|
+
candidateStatus?: string;
|
|
77
|
+
/** Human-readable statement of what happened, safe to surface verbatim. */
|
|
78
|
+
note: string;
|
|
51
79
|
}
|
|
52
80
|
/**
|
|
53
81
|
* Infer files touched by a task from its title and description using GitNexus.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infer-add-params.d.ts","sourceRoot":"","sources":["../../src/tasks/infer-add-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"infer-add-params.d.ts","sourceRoot":"","sources":["../../src/tasks/infer-add-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,OAAO,EAAE,SAAS,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,CAAC;IAC5E,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAsCnF;AAwKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAY7D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CAkF/B"}
|
|
@@ -14,6 +14,19 @@
|
|
|
14
14
|
import { execFileSync } from 'node:child_process';
|
|
15
15
|
import { getTaskAccessor } from '../store/data-accessor.js';
|
|
16
16
|
import { currentTask } from '../task-work/index.js';
|
|
17
|
+
/**
|
|
18
|
+
* Statuses that disqualify a session's `current` pointer from supplying a
|
|
19
|
+
* parent.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* T12136: a `current` pointer outlives the work it points at. This session's
|
|
23
|
+
* own pointer was `T12100` — set 2026-08-19, status `done`, in a session
|
|
24
|
+
* started 2026-08-01 — and would have parented any new task under a task
|
|
25
|
+
* finished weeks earlier. Inheriting a parent from completed work is never
|
|
26
|
+
* what the caller meant, so a terminal candidate is declined rather than
|
|
27
|
+
* silently used.
|
|
28
|
+
*/
|
|
29
|
+
const NON_INFERABLE_STATUSES = new Set(['done', 'cancelled', 'archived']);
|
|
17
30
|
/**
|
|
18
31
|
* Infer files touched by a task from its title and description using GitNexus.
|
|
19
32
|
*
|
|
@@ -156,11 +169,50 @@ function splitAcceptance(input, delim = '|') {
|
|
|
156
169
|
quote = null;
|
|
157
170
|
buf += ch;
|
|
158
171
|
}
|
|
159
|
-
else if (ch === '"' || ch === "'")
|
|
172
|
+
else if ((ch === '"' || ch === "'") &&
|
|
173
|
+
input.indexOf(ch, i + 1) !== -1 &&
|
|
174
|
+
// An apostrophe INSIDE or AFTER a word is never a quote opener. `doesn't`
|
|
175
|
+
// and `user's` are prose; `'batch'` is a quoted span. The discriminator is
|
|
176
|
+
// the preceding character, and it must be an ALLOWLIST rather than "not
|
|
177
|
+
// alphanumeric": `stash@{2}'s correction` is possessive even though `}` is
|
|
178
|
+
// not a letter or digit, and the not-alphanumeric form admitted it as a
|
|
179
|
+
// quote opener. With a second such possessive later in the string the
|
|
180
|
+
// quotes balance, the lookahead below is satisfied, and the whole span
|
|
181
|
+
// between them merges — supplied 5, parsed 4 (gh#1339).
|
|
182
|
+
//
|
|
183
|
+
// A quote that really opens a span sits at a token boundary: start of
|
|
184
|
+
// input, whitespace, the delimiter itself, or an opening bracket. Nothing
|
|
185
|
+
// else. A closing bracket, a letter, a digit or a period before it means
|
|
186
|
+
// prose.
|
|
187
|
+
/^$|[\s|([{,=:]$/.test(buf.slice(-1))) {
|
|
188
|
+
// gh#1321 — enter a quote context ONLY when a matching close exists later.
|
|
189
|
+
//
|
|
190
|
+
// An UNMATCHED quote used to open a context that nothing could close, so
|
|
191
|
+
// every remaining delimiter was absorbed and the rest of the input became
|
|
192
|
+
// one token. The common trigger is not exotic input — it is a prose
|
|
193
|
+
// apostrophe:
|
|
194
|
+
//
|
|
195
|
+
// "ac one|the user doesn't care|ac three" -> 2 tokens, not 3
|
|
196
|
+
// "ac one|the user's token|ac three" -> 2 tokens, not 3
|
|
197
|
+
//
|
|
198
|
+
// Measured: 804 characters of clean input split correctly, so the
|
|
199
|
+
// length hypothesis in the report was a correlation — an unmatched quote
|
|
200
|
+
// swallows the REMAINDER, so longer input loses more criteria. Length
|
|
201
|
+
// governs severity, not occurrence.
|
|
202
|
+
//
|
|
203
|
+
// The lookahead preserves every gh#409 case, because those quotes are
|
|
204
|
+
// balanced by construction (`'realtime-token'|'batch'`). An unmatched
|
|
205
|
+
// quote is now what it almost always is in prose: a literal character.
|
|
160
206
|
quote = ch;
|
|
161
207
|
buf += ch;
|
|
162
208
|
}
|
|
163
|
-
else if (ch === '(' || ch === '[' || ch === '{')
|
|
209
|
+
else if ((ch === '(' || ch === '[' || ch === '{') &&
|
|
210
|
+
// gh#1321 — only enter a bracket context when its partner exists later.
|
|
211
|
+
// An unbalanced `(` used to absorb the remainder exactly as an unmatched
|
|
212
|
+
// quote did: `"a|see (note|c|d|e"` became 2 tokens instead of 5. The old
|
|
213
|
+
// docblock promised the tail was "emitted as a single trailing token",
|
|
214
|
+
// which described the corruption rather than preventing it.
|
|
215
|
+
input.indexOf(ch === '(' ? ')' : ch === '[' ? ']' : '}', i + 1) !== -1) {
|
|
164
216
|
depth++;
|
|
165
217
|
buf += ch;
|
|
166
218
|
}
|
|
@@ -283,12 +335,50 @@ export async function inferTaskAddParams(projectRoot, input) {
|
|
|
283
335
|
try {
|
|
284
336
|
const accessor = await getTaskAccessor(projectRoot);
|
|
285
337
|
const focusResult = await currentTask(undefined, accessor);
|
|
286
|
-
|
|
287
|
-
|
|
338
|
+
const candidateId = focusResult.currentTask;
|
|
339
|
+
if (!candidateId) {
|
|
340
|
+
result.parentInference = {
|
|
341
|
+
outcome: 'no-current-task',
|
|
342
|
+
note: 'no --parent given and the session has no current task; no parent inferred',
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
// T12136 (GH #1232/#1238) — a `current` pointer outlives its work.
|
|
347
|
+
// Check the candidate is still live BEFORE adopting it, so a task is
|
|
348
|
+
// never filed under work that is already finished.
|
|
349
|
+
const candidate = await accessor.loadSingleTask(candidateId);
|
|
350
|
+
const candidateStatus = candidate?.status;
|
|
351
|
+
if (candidateStatus !== undefined && NON_INFERABLE_STATUSES.has(candidateStatus)) {
|
|
352
|
+
result.parentInference = {
|
|
353
|
+
outcome: 'stale-terminal',
|
|
354
|
+
candidateId,
|
|
355
|
+
candidateStatus,
|
|
356
|
+
note: `no --parent given; declined to inherit ${candidateId} from the session ` +
|
|
357
|
+
`pointer because it is '${candidateStatus}'. Pass --parent <id> explicitly.`,
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
result.inferredParent = candidateId;
|
|
362
|
+
result.parentInference = {
|
|
363
|
+
outcome: 'applied',
|
|
364
|
+
candidateId,
|
|
365
|
+
...(candidateStatus !== undefined ? { candidateStatus } : {}),
|
|
366
|
+
note: `no --parent given; inherited ${candidateId} from the active session ` +
|
|
367
|
+
`pointer (cleo current), not from this command`,
|
|
368
|
+
};
|
|
369
|
+
}
|
|
288
370
|
}
|
|
289
371
|
}
|
|
290
|
-
catch {
|
|
291
|
-
//
|
|
372
|
+
catch (err) {
|
|
373
|
+
// T12136: still non-fatal, but no longer INDISTINGUISHABLE from
|
|
374
|
+
// "there is no current task". A failed lookup and an absent pointer led
|
|
375
|
+
// to the same silent outcome, so a broken session looked identical to a
|
|
376
|
+
// clean one.
|
|
377
|
+
result.parentInference = {
|
|
378
|
+
outcome: 'lookup-failed',
|
|
379
|
+
note: 'no --parent given; the session lookup for parent inference failed, so no ' +
|
|
380
|
+
`parent was inferred (${err instanceof Error ? err.message : String(err)})`,
|
|
381
|
+
};
|
|
292
382
|
}
|
|
293
383
|
}
|
|
294
384
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infer-add-params.js","sourceRoot":"","sources":["../../src/tasks/infer-add-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"infer-add-params.js","sourceRoot":"","sources":["../../src/tasks/infer-add-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAuEpD;;;;;;;;;;;GAWG;AACH,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/F;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,WAAoB;IACvE,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE;YACtF,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;gBAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACrC,IAAI,MAAM,CAAC,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;4BAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;4BACjD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACf,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BACtB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC7B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAC,CAAS;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,CAAS,EAAE,KAAa;IAC7C,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,SAAS,eAAe,CAAC,KAAa,EAAE,KAAK,GAAG,GAAG;IACjD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,uEAAuE;QACvE,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC3E,GAAG,IAAI,KAAK,CAAC;YACb,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,sDAAsD;YACtD,IAAI,EAAE,KAAK,KAAK;gBAAE,KAAK,GAAG,IAAI,CAAC;YAC/B,GAAG,IAAI,EAAE,CAAC;QACZ,CAAC;aAAM,IACL,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAC/B,0EAA0E;YAC1E,2EAA2E;YAC3E,wEAAwE;YACxE,2EAA2E;YAC3E,wEAAwE;YACxE,sEAAsE;YACtE,uEAAuE;YACvE,wDAAwD;YACxD,EAAE;YACF,sEAAsE;YACtE,0EAA0E;YAC1E,yEAAyE;YACzE,SAAS;YACT,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,CAAC;YACD,2EAA2E;YAC3E,EAAE;YACF,yEAAyE;YACzE,0EAA0E;YAC1E,oEAAoE;YACpE,cAAc;YACd,EAAE;YACF,iEAAiE;YACjE,iEAAiE;YACjE,EAAE;YACF,kEAAkE;YAClE,yEAAyE;YACzE,sEAAsE;YACtE,oCAAoC;YACpC,EAAE;YACF,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,KAAK,GAAG,EAAE,CAAC;YACX,GAAG,IAAI,EAAE,CAAC;QACZ,CAAC;aAAM,IACL,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;YACxC,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,uEAAuE;YACvE,4DAA4D;YAC5D,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EACtE,CAAC;YACD,KAAK,EAAE,CAAC;YACR,GAAG,IAAI,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAClD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/B,GAAG,IAAI,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACvC,uEAAuE;YACvE,qEAAqE;YACrE,sEAAsE;YACtE,0DAA0D;YAC1D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,MAAM,mBAAmB,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;YAC7F,IAAI,mBAAmB,EAAE,CAAC;gBACxB,GAAG,IAAI,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,OAAO;oBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,GAAG,GAAG,EAAE,CAAC;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,IAAI,EAAE,CAAC;QACZ,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;IACD,oEAAoE;IACpE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,KAA0B;IAE1B,MAAM,MAAM,GAAyB,EAAE,CAAC;IAExC,+EAA+E;IAC/E,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,+EAA+E;IAC/E,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,CAAC,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;IAED,gFAAgF;IAChF,mBAAmB;IACnB,mFAAmF;IACnF,gEAAgE;IAChE,EAAE;IACF,kFAAkF;IAClF,gFAAgF;IAChF,iFAAiF;IACjF,4EAA4E;IAC5E,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;YAE5C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,CAAC,eAAe,GAAG;oBACvB,OAAO,EAAE,iBAAiB;oBAC1B,IAAI,EAAE,2EAA2E;iBAClF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,mEAAmE;gBACnE,qEAAqE;gBACrE,mDAAmD;gBACnD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,eAAe,GAAG,SAAS,EAAE,MAAM,CAAC;gBAC1C,IAAI,eAAe,KAAK,SAAS,IAAI,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;oBACjF,MAAM,CAAC,eAAe,GAAG;wBACvB,OAAO,EAAE,gBAAgB;wBACzB,WAAW;wBACX,eAAe;wBACf,IAAI,EACF,0CAA0C,WAAW,oBAAoB;4BACzE,0BAA0B,eAAe,mCAAmC;qBAC/E,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,cAAc,GAAG,WAAW,CAAC;oBACpC,MAAM,CAAC,eAAe,GAAG;wBACvB,OAAO,EAAE,SAAS;wBAClB,WAAW;wBACX,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7D,IAAI,EACF,gCAAgC,WAAW,2BAA2B;4BACtE,+CAA+C;qBAClD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,gEAAgE;YAChE,wEAAwE;YACxE,wEAAwE;YACxE,aAAa;YACb,MAAM,CAAC,eAAe,GAAG;gBACvB,OAAO,EAAE,eAAe;gBACxB,IAAI,EACF,2EAA2E;oBAC3E,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/tasks/list.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @task T4460
|
|
4
4
|
* @epic T4454
|
|
5
5
|
*/
|
|
6
|
-
import type { Task, TaskPriority, TaskRecord, TaskStatus, TaskType } from '@cleocode/contracts';
|
|
6
|
+
import type { Task, TaskKind, TaskPriority, TaskRecord, TaskSeverity, TaskStatus, TaskType } from '@cleocode/contracts';
|
|
7
7
|
import type { LAFSPage } from '@cleocode/lafs';
|
|
8
8
|
import { type EngineResult } from '../engine-result.js';
|
|
9
9
|
import type { NextDirectives } from '../mvi-helpers.js';
|
|
@@ -28,9 +28,36 @@ export interface ListTasksOptions {
|
|
|
28
28
|
status?: TaskStatus;
|
|
29
29
|
priority?: TaskPriority;
|
|
30
30
|
type?: TaskType;
|
|
31
|
+
/**
|
|
32
|
+
* Severity axis filter (`P0`-`P3`), orthogonal to {@link priority}.
|
|
33
|
+
* @task T12120 — GH #1245; previously accepted at the CLI and never applied.
|
|
34
|
+
*/
|
|
35
|
+
severity?: TaskSeverity | TaskSeverity[];
|
|
36
|
+
/**
|
|
37
|
+
* Kind axis filter (ADR-066), orthogonal to {@link type}.
|
|
38
|
+
* @task T12120 — GH #1246; previously accepted at the CLI and never applied.
|
|
39
|
+
*/
|
|
40
|
+
kind?: TaskKind | TaskKind[];
|
|
31
41
|
parentId?: string;
|
|
32
42
|
phase?: string;
|
|
33
43
|
label?: string;
|
|
44
|
+
/**
|
|
45
|
+
* No-op, retained for compatibility.
|
|
46
|
+
*
|
|
47
|
+
* @remarks
|
|
48
|
+
* T12120 (GH #1247): `--children` was advertised in `--help` as "limit
|
|
49
|
+
* parent queries to direct children" and threaded through four layers into
|
|
50
|
+
* this options bag, but `listTasks` never read it — because `parentId`
|
|
51
|
+
* ALREADY restricts to direct children on every path (the default query
|
|
52
|
+
* applies `eq(tasks.parentId, ...)`, and the saga branch resolves members
|
|
53
|
+
* through the same `parentId` containment since T10638). There is no
|
|
54
|
+
* transitive mode for it to narrow from, so it cannot change a result.
|
|
55
|
+
*
|
|
56
|
+
* Kept as an accepted field rather than removed so the advertised CLI
|
|
57
|
+
* surface stays stable; `listTasks` asserts the equivalence in tests so a
|
|
58
|
+
* future transitive mode is forced to give this flag real meaning instead
|
|
59
|
+
* of leaving it a lie.
|
|
60
|
+
*/
|
|
34
61
|
children?: boolean;
|
|
35
62
|
limit?: number;
|
|
36
63
|
offset?: number;
|
|
@@ -111,6 +138,8 @@ export declare function taskList(projectRoot: string, params?: {
|
|
|
111
138
|
status?: string;
|
|
112
139
|
priority?: string;
|
|
113
140
|
type?: string;
|
|
141
|
+
severity?: string | string[];
|
|
142
|
+
kind?: string | string[];
|
|
114
143
|
phase?: string;
|
|
115
144
|
label?: string;
|
|
116
145
|
children?: boolean;
|
package/dist/tasks/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tasks/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tasks/list.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/list.js
CHANGED
|
@@ -14,6 +14,7 @@ import { paginate } from '../pagination.js';
|
|
|
14
14
|
import { LIST_BINDING_SAGA_GROUPS, SAGA_GROUPS_RELATION, SAGA_LABEL } from '../sagas/constants.js'; // saga-label-ok: T10638 — SSoT backward-compat re-export
|
|
15
15
|
import { resolveSagaMemberIds } from '../sagas/storage.js';
|
|
16
16
|
import { getTaskAccessor } from '../store/data-accessor.js';
|
|
17
|
+
import { assertTaskAxisFilters } from './axis-filters.js';
|
|
17
18
|
import { tasksToRecords } from './engine-converters.js';
|
|
18
19
|
// Re-export saga constants for backwards-compat (T10123).
|
|
19
20
|
// Test fixtures and external consumers historically imported these from
|
|
@@ -74,6 +75,17 @@ export async function listTasks(options = {}, cwd, accessor) {
|
|
|
74
75
|
queryFilters.phase = options.phase;
|
|
75
76
|
if (options.label)
|
|
76
77
|
queryFilters.label = options.label;
|
|
78
|
+
// T12120 (GH #1245/#1246) — validate BEFORE querying so an unrecognised
|
|
79
|
+
// value raises E_VALIDATION instead of being dropped and widening the
|
|
80
|
+
// result set to every task.
|
|
81
|
+
const axes = assertTaskAxisFilters({
|
|
82
|
+
severity: options.severity,
|
|
83
|
+
kind: options.kind,
|
|
84
|
+
});
|
|
85
|
+
if (axes.severity)
|
|
86
|
+
queryFilters.severity = axes.severity;
|
|
87
|
+
if (axes.kind)
|
|
88
|
+
queryFilters.kind = axes.kind;
|
|
77
89
|
if (options.excludeArchived && options.status !== 'archived') {
|
|
78
90
|
queryFilters.excludeStatus = 'archived';
|
|
79
91
|
}
|
|
@@ -150,6 +162,8 @@ export async function taskList(projectRoot, params) {
|
|
|
150
162
|
status: params?.status,
|
|
151
163
|
priority: params?.priority,
|
|
152
164
|
type: params?.type,
|
|
165
|
+
severity: params?.severity,
|
|
166
|
+
kind: params?.kind,
|
|
153
167
|
phase: params?.phase,
|
|
154
168
|
label: params?.label,
|
|
155
169
|
children: params?.children,
|
package/dist/tasks/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/tasks/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/tasks/list.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/ops.d.ts
CHANGED
|
@@ -54,6 +54,10 @@ export declare function tasksListOp(projectRoot: string, params?: {
|
|
|
54
54
|
status?: TaskStatus;
|
|
55
55
|
priority?: TaskPriority;
|
|
56
56
|
type?: TaskType;
|
|
57
|
+
/** Severity axis filter (P0-P3). @task T12120 — GH #1245 */
|
|
58
|
+
severity?: TaskSeverity | TaskSeverity[];
|
|
59
|
+
/** Kind axis filter (ADR-066). @task T12120 — GH #1246 */
|
|
60
|
+
kind?: TaskKind | TaskKind[];
|
|
57
61
|
phase?: string;
|
|
58
62
|
label?: string;
|
|
59
63
|
children?: boolean;
|