@cleocode/core 2026.8.8 → 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.
Files changed (171) hide show
  1. package/dist/conduit/conduit-client.d.ts.map +1 -1
  2. package/dist/conduit/conduit-client.js +10 -2
  3. package/dist/conduit/conduit-client.js.map +1 -1
  4. package/dist/dispatch/mvi-projection.d.ts +38 -0
  5. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  6. package/dist/dispatch/mvi-projection.js +189 -11
  7. package/dist/dispatch/mvi-projection.js.map +1 -1
  8. package/dist/docs/export-document.js +41 -3
  9. package/dist/docs/export-document.js.map +2 -2
  10. package/dist/doctor/acceptance-drift.d.ts +258 -0
  11. package/dist/doctor/acceptance-drift.d.ts.map +1 -0
  12. package/dist/doctor/acceptance-drift.js +366 -0
  13. package/dist/doctor/acceptance-drift.js.map +1 -0
  14. package/dist/doctor/index.d.ts +4 -0
  15. package/dist/doctor/index.d.ts.map +1 -1
  16. package/dist/doctor/index.js +2 -0
  17. package/dist/doctor/index.js.map +1 -1
  18. package/dist/doctor/legacy-reaper.d.ts +105 -0
  19. package/dist/doctor/legacy-reaper.d.ts.map +1 -0
  20. package/dist/doctor/legacy-reaper.js +151 -0
  21. package/dist/doctor/legacy-reaper.js.map +1 -0
  22. package/dist/doctor/malformed-task-ids.d.ts +111 -0
  23. package/dist/doctor/malformed-task-ids.d.ts.map +1 -0
  24. package/dist/doctor/malformed-task-ids.js +139 -0
  25. package/dist/doctor/malformed-task-ids.js.map +1 -0
  26. package/dist/doctor/nexus-schema-residency.d.ts +115 -0
  27. package/dist/doctor/nexus-schema-residency.d.ts.map +1 -0
  28. package/dist/doctor/nexus-schema-residency.js +178 -0
  29. package/dist/doctor/nexus-schema-residency.js.map +1 -0
  30. package/dist/error-registry.d.ts.map +1 -1
  31. package/dist/error-registry.js +18 -0
  32. package/dist/error-registry.js.map +1 -1
  33. package/dist/internal.d.ts +1 -0
  34. package/dist/internal.d.ts.map +1 -1
  35. package/dist/internal.js +1 -0
  36. package/dist/internal.js.map +1 -1
  37. package/dist/llm/ai-sdk-warnings.d.ts +55 -0
  38. package/dist/llm/ai-sdk-warnings.d.ts.map +1 -0
  39. package/dist/llm/ai-sdk-warnings.js +83 -0
  40. package/dist/llm/ai-sdk-warnings.js.map +1 -0
  41. package/dist/llm/model-runner.d.ts +0 -8
  42. package/dist/llm/model-runner.d.ts.map +1 -1
  43. package/dist/llm/model-runner.js +8 -0
  44. package/dist/llm/model-runner.js.map +1 -1
  45. package/dist/llm/plugin-facade.js +73 -8
  46. package/dist/llm/plugin-facade.js.map +3 -3
  47. package/dist/memory/embedding-queue.d.ts +12 -0
  48. package/dist/memory/embedding-queue.d.ts.map +1 -1
  49. package/dist/memory/embedding-queue.js +39 -5
  50. package/dist/memory/embedding-queue.js.map +1 -1
  51. package/dist/orchestrate/worktree-complete.d.ts.map +1 -1
  52. package/dist/orchestrate/worktree-complete.js +26 -0
  53. package/dist/orchestrate/worktree-complete.js.map +1 -1
  54. package/dist/output.d.ts.map +1 -1
  55. package/dist/output.js +25 -0
  56. package/dist/output.js.map +1 -1
  57. package/dist/release/pr-evidence.d.ts +13 -0
  58. package/dist/release/pr-evidence.d.ts.map +1 -1
  59. package/dist/release/pr-evidence.js +54 -1
  60. package/dist/release/pr-evidence.js.map +1 -1
  61. package/dist/render/session/briefing.d.ts.map +1 -1
  62. package/dist/render/session/briefing.js +9 -0
  63. package/dist/render/session/briefing.js.map +1 -1
  64. package/dist/selfimprove/fix-gen.js +73 -8
  65. package/dist/selfimprove/fix-gen.js.map +3 -3
  66. package/dist/sessions/briefing.d.ts +13 -0
  67. package/dist/sessions/briefing.d.ts.map +1 -1
  68. package/dist/sessions/briefing.js +64 -7
  69. package/dist/sessions/briefing.js.map +1 -1
  70. package/dist/sessions/handoff.d.ts +32 -4
  71. package/dist/sessions/handoff.d.ts.map +1 -1
  72. package/dist/sessions/handoff.js +7 -7
  73. package/dist/sessions/handoff.js.map +1 -1
  74. package/dist/shutdown-deadline.d.ts +144 -0
  75. package/dist/shutdown-deadline.d.ts.map +1 -0
  76. package/dist/shutdown-deadline.js +187 -0
  77. package/dist/shutdown-deadline.js.map +1 -0
  78. package/dist/shutdown.d.ts +5 -2
  79. package/dist/shutdown.d.ts.map +1 -1
  80. package/dist/shutdown.js +19 -14
  81. package/dist/shutdown.js.map +1 -1
  82. package/dist/spawn/branch-lock.d.ts.map +1 -1
  83. package/dist/spawn/branch-lock.js +33 -0
  84. package/dist/spawn/branch-lock.js.map +1 -1
  85. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  86. package/dist/store/sqlite-data-accessor.js +14 -0
  87. package/dist/store/sqlite-data-accessor.js.map +1 -1
  88. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  89. package/dist/store/tasks-sqlite.js +16 -1
  90. package/dist/store/tasks-sqlite.js.map +1 -1
  91. package/dist/tasks/ac-immutability.d.ts.map +1 -1
  92. package/dist/tasks/ac-immutability.js +36 -0
  93. package/dist/tasks/ac-immutability.js.map +1 -1
  94. package/dist/tasks/add.d.ts +18 -0
  95. package/dist/tasks/add.d.ts.map +1 -1
  96. package/dist/tasks/add.js +28 -5
  97. package/dist/tasks/add.js.map +1 -1
  98. package/dist/tasks/axis-filters.d.ts +53 -0
  99. package/dist/tasks/axis-filters.d.ts.map +1 -0
  100. package/dist/tasks/axis-filters.js +77 -0
  101. package/dist/tasks/axis-filters.js.map +1 -0
  102. package/dist/tasks/complete.d.ts.map +1 -1
  103. package/dist/tasks/complete.js +10 -1
  104. package/dist/tasks/complete.js.map +1 -1
  105. package/dist/tasks/duplicate-detector.d.ts +67 -14
  106. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  107. package/dist/tasks/duplicate-detector.js +197 -54
  108. package/dist/tasks/duplicate-detector.js.map +1 -1
  109. package/dist/tasks/evidence.d.ts +139 -0
  110. package/dist/tasks/evidence.d.ts.map +1 -1
  111. package/dist/tasks/evidence.js +294 -25
  112. package/dist/tasks/evidence.js.map +1 -1
  113. package/dist/tasks/find.d.ts.map +1 -1
  114. package/dist/tasks/find.js +9 -2
  115. package/dist/tasks/find.js.map +1 -1
  116. package/dist/tasks/gate-runner.d.ts.map +1 -1
  117. package/dist/tasks/gate-runner.js +25 -4
  118. package/dist/tasks/gate-runner.js.map +1 -1
  119. package/dist/tasks/heavy-tool-env.d.ts +20 -0
  120. package/dist/tasks/heavy-tool-env.d.ts.map +1 -1
  121. package/dist/tasks/heavy-tool-env.js +74 -4
  122. package/dist/tasks/heavy-tool-env.js.map +1 -1
  123. package/dist/tasks/heavy-tool-limit.d.ts +134 -0
  124. package/dist/tasks/heavy-tool-limit.d.ts.map +1 -0
  125. package/dist/tasks/heavy-tool-limit.js +196 -0
  126. package/dist/tasks/heavy-tool-limit.js.map +1 -0
  127. package/dist/tasks/index.d.ts +1 -1
  128. package/dist/tasks/index.d.ts.map +1 -1
  129. package/dist/tasks/index.js +1 -1
  130. package/dist/tasks/index.js.map +1 -1
  131. package/dist/tasks/infer-add-params.d.ts +28 -0
  132. package/dist/tasks/infer-add-params.d.ts.map +1 -1
  133. package/dist/tasks/infer-add-params.js +96 -6
  134. package/dist/tasks/infer-add-params.js.map +1 -1
  135. package/dist/tasks/list.d.ts +30 -1
  136. package/dist/tasks/list.d.ts.map +1 -1
  137. package/dist/tasks/list.js +14 -0
  138. package/dist/tasks/list.js.map +1 -1
  139. package/dist/tasks/ops.d.ts +4 -0
  140. package/dist/tasks/ops.d.ts.map +1 -1
  141. package/dist/tasks/ops.js +2 -0
  142. package/dist/tasks/ops.js.map +1 -1
  143. package/dist/tasks/session-scope.d.ts +51 -4
  144. package/dist/tasks/session-scope.d.ts.map +1 -1
  145. package/dist/tasks/session-scope.js +68 -10
  146. package/dist/tasks/session-scope.js.map +1 -1
  147. package/dist/tasks/tool-cache.d.ts +116 -9
  148. package/dist/tasks/tool-cache.d.ts.map +1 -1
  149. package/dist/tasks/tool-cache.js +127 -16
  150. package/dist/tasks/tool-cache.js.map +1 -1
  151. package/dist/tasks/tool-semaphore.d.ts +91 -0
  152. package/dist/tasks/tool-semaphore.d.ts.map +1 -1
  153. package/dist/tasks/tool-semaphore.js +203 -14
  154. package/dist/tasks/tool-semaphore.js.map +1 -1
  155. package/dist/validation/doctor/checks.d.ts +64 -0
  156. package/dist/validation/doctor/checks.d.ts.map +1 -1
  157. package/dist/validation/doctor/checks.js +249 -0
  158. package/dist/validation/doctor/checks.js.map +1 -1
  159. package/dist/validation/engine-ops.d.ts.map +1 -1
  160. package/dist/validation/engine-ops.js +41 -5
  161. package/dist/validation/engine-ops.js.map +1 -1
  162. package/package.json +13 -13
  163. package/templates/CLEO-INJECTION.md +28 -44
  164. package/dist/backfill/adr-backfill-walker.d.ts +0 -57
  165. package/dist/backfill/adr-backfill-walker.d.ts.map +0 -1
  166. package/dist/backfill/adr-backfill-walker.js +0 -631
  167. package/dist/backfill/adr-backfill-walker.js.map +0 -1
  168. package/dist/tasks/graph-rag.d.ts +0 -49
  169. package/dist/tasks/graph-rag.d.ts.map +0 -1
  170. package/dist/tasks/graph-rag.js +0 -328
  171. 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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"}
@@ -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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"}
@@ -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
@@ -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;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAsCnF;AA6HD;;;;;;;;;;;;;;;;;;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,CA0C/B"}
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
- if (focusResult.currentTask) {
287
- result.inferredParent = focusResult.currentTask;
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
- // Session lookup is non-fatal — proceed without inference
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":"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"}
1
+ {"version":3,"file":"infer-add-params.js","sourceRoot":"","sources":["../../src/tasks/infer-add-params.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tasks/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tasks/list.ts"],"names":[],"mappings":"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"}
@@ -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,
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/tasks/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAqB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,+EAA+E;AAC/E,2EAA2E;AAC3E,mEAAmE;AACnE,+DAA+D;AAC/D,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC,CAAC,yDAAyD;AAC7J,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAqB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,0DAA0D;AAC1D,wEAAwE;AACxE,kEAAkE;AAClE,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC,CAAC,yDAAyD;AAEhI,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAcnC,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;KACjC,CAAC;AACJ,CAAC;AAgED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAA4B,EAAE,EAC9B,GAAY,EACZ,QAAuB;IAEvB,MAAM,YAAY,GAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvF,sCAAsC;IACtC,sEAAsE;IACtE,wCAAwC;IACxC,0EAA0E;IAC1E,4EAA4E;IAC5E,uCAAuC;IACvC,IAAI,aAAa,GAAoB,IAAI,CAAC;IAC1C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,aAAa,GAAG,MAAM,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,+BAA+B;IAC/B,MAAM,YAAY,GAAqB;QACrC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;KAC1D,CAAC;IACF,IAAI,OAAO,CAAC,MAAM;QAAE,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACzD,IAAI,OAAO,CAAC,QAAQ;QAAE,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC/D,IAAI,OAAO,CAAC,IAAI;QAAE,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACnD,2EAA2E;IAC3E,yDAAyD;IACzD,IAAI,OAAO,CAAC,QAAQ,IAAI,aAAa,KAAK,IAAI;QAAE,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzF,IAAI,OAAO,CAAC,KAAK;QAAE,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,CAAC,KAAK;QAAE,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC7D,YAAY,CAAC,aAAa,GAAG,UAAU,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,QAAgB,CAAC;IACrB,IAAI,aAAqB,CAAC;IAC1B,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,qEAAqE;QACrE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YACpD,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,EAAE,KAAK,SAAS;gBAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/E,QAAQ,GAAG,YAAY,CAAC;QACxB,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;QAC7B,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,6DAA6D;IAC7D,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;IAE9C,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,KAAK,CAAC;QACjB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;YACtD,CAAC,CAAC,OAAO,CAAC,KAAK;YACf,CAAC,CAAC,uBAAuB,CAAC;IAChC,MAAM,MAAM,GACV,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACjE,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,KAAK,QAAQ;QACpB,CAAC,CAAC;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,gEAAgE;IAChE,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtC,GAAG,CAAC;QACJ,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,KAAK,EAAE,aAAa;QACpB,KAAK;QACL,QAAQ,EAAE,aAAa;QACvB,IAAI;QACJ,UAAU;QACV,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,WAAmB,EACnB,MAWC;IASD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B;YACE,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS;YACrC,MAAM,EAAE,MAAM,EAAE,MAAgC;YAChD,QAAQ,EAAE,MAAM,EAAE,QAAoC;YACtD,IAAI,EAAE,MAAM,EAAE,IAA4B;YAC1C,KAAK,EAAE,MAAM,EAAE,KAAK;YACpB,KAAK,EAAE,MAAM,EAAE,KAAK;YACpB,QAAQ,EAAE,MAAM,EAAE,QAAQ;YAC1B,KAAK,EAAE,MAAM,EAAE,KAAK;YACpB,MAAM,EAAE,MAAM,EAAE,MAAM;SACvB,EACD,WAAW,EACX,QAAQ,CACT,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO;YAC3B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,aAAa,CAClB;YACE,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF,EACD,MAAM,CAAC,IAAI,CACZ,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,oEAAoE;QACpE,wDAAwD;QACxD,OAAO,uBAAuB,CAAC,GAAG,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/tasks/list.ts"],"names":[],"mappings":"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"}
@@ -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;