@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
@@ -1634,7 +1634,7 @@ var init_output_contracts_data = __esm({
1634
1634
  init_service();
1635
1635
  tasksShowOutputContract = {
1636
1636
  operation: "tasks.show",
1637
- shapeNote: "The task record is nested under `task` \u2014 use /data/task/<field>, not /data/<field>. `view` may be null. `acRows` and `relations` are conditional. The listed pointers are the default (MVI) projection \u2014 `verification`, `acceptance`, `description`, and `evidence` live only in the full record (`cleo show <id> --full`); `--field` resolves them transparently when they exist (T12108).",
1637
+ shapeNote: "The task record is nested under `task` \u2014 use /data/task/<field>, not /data/<field>. Mutation envelopes are FLAT by contrast (/data/created/0, /data/updated/0), which is the asymmetry that produced GH #1225/#1239/#1231. `view` may be null. `acRows` and `relations` are conditional. `description`, `acceptance` and `verification` are withheld by the default (MVI) projection but `--field` resolves them transparently (T12108) \u2014 no `--full` needed. Evidence is NOT a task field: it lives at /data/task/verification/evidence (keyed by gate), alongside /data/task/verification/gates. T12127 (GH #1231) \u2014 the previous wording advertised `/data/task/evidence`, which does not exist, in the very text shown to an agent whose pointer had just failed.",
1638
1638
  dataSchema: {
1639
1639
  type: "object",
1640
1640
  required: ["task", "view", "attachments"],
@@ -1678,6 +1678,16 @@ var init_output_contracts_data = __esm({
1678
1678
  "/data/task/priority",
1679
1679
  "/data/task/type",
1680
1680
  "/data/task/parentId",
1681
+ // T12127 (GH #1231) — withheld by the MVI projection but resolvable
1682
+ // through `--field` since T12108. They were absent from this list, so the
1683
+ // remediation an agent is shown on a failed pointer never mentioned the
1684
+ // fields it most often wanted, and `cleo show --field /data/task` came
1685
+ // back looking like a write that had silently done nothing.
1686
+ "/data/task/description",
1687
+ "/data/task/acceptance",
1688
+ "/data/task/verification",
1689
+ "/data/task/verification/gates",
1690
+ "/data/task/verification/evidence",
1681
1691
  "/data/view/id",
1682
1692
  "/data/view/title"
1683
1693
  ]
@@ -2348,19 +2358,31 @@ var init_operations_registry = __esm({
2348
2358
  { name: "status", type: "string", required: false, description: "Filter by task status" },
2349
2359
  { name: "priority", type: "string", required: false, description: "Filter by task priority" },
2350
2360
  { name: "type", type: "string", required: false, description: "Filter by task type" },
2361
+ {
2362
+ name: "severity",
2363
+ type: "string",
2364
+ required: false,
2365
+ description: "Filter by severity axis (P0|P1|P2|P3); invalid values are rejected"
2366
+ },
2367
+ {
2368
+ name: "kind",
2369
+ type: "string",
2370
+ required: false,
2371
+ description: "Filter by kind axis (work|research|experiment|bug|spike|release); invalid values are rejected"
2372
+ },
2351
2373
  { name: "phase", type: "string", required: false, description: "Filter by task phase" },
2352
2374
  { name: "label", type: "string", required: false, description: "Filter by task label" },
2353
2375
  {
2354
2376
  name: "children",
2355
2377
  type: "boolean",
2356
2378
  required: false,
2357
- description: "Limit parent queries to direct children"
2379
+ description: "DEPRECATED (no effect; slated for removal in a future major): --parent already returns DIRECT children only, for every parent type including sagas. Do not use."
2358
2380
  },
2359
2381
  {
2360
2382
  name: "limit",
2361
2383
  type: "number",
2362
2384
  required: false,
2363
- description: "Maximum number of tasks to return"
2385
+ description: "Maximum number of tasks to return (default 10). Use --all to return every match. (--limit 0 also returns every match, but only on this command \u2014 prefer --all.)"
2364
2386
  },
2365
2387
  {
2366
2388
  name: "offset",
@@ -15836,6 +15858,13 @@ var init_collection_keys = __esm({
15836
15858
  }
15837
15859
  });
15838
15860
 
15861
+ // packages/contracts/src/task-id.ts
15862
+ var init_task_id = __esm({
15863
+ "packages/contracts/src/task-id.ts"() {
15864
+ "use strict";
15865
+ }
15866
+ });
15867
+
15839
15868
  // packages/contracts/src/index.ts
15840
15869
  var init_src = __esm({
15841
15870
  "packages/contracts/src/index.ts"() {
@@ -15905,6 +15934,7 @@ var init_src = __esm({
15905
15934
  init_workgraph();
15906
15935
  init_caamp_markers();
15907
15936
  init_collection_keys();
15937
+ init_task_id();
15908
15938
  }
15909
15939
  });
15910
15940
 
@@ -33344,15 +33374,15 @@ function isProvisioned(provider) {
33344
33374
  const cred = resolveCredentials(provider);
33345
33375
  return (cred.apiKey?.trim().length ?? 0) > 0;
33346
33376
  }
33347
- function reconcileOllamaModel(preferred, installed) {
33348
- if (installed.length === 0) return preferred;
33349
- if (installed.includes(preferred)) return preferred;
33377
+ function reconcileOllamaModel(preferred, installed2) {
33378
+ if (installed2.length === 0) return preferred;
33379
+ if (installed2.includes(preferred)) return preferred;
33350
33380
  const family = preferred.split(":")[0];
33351
33381
  if (family !== void 0 && family !== "") {
33352
- const sameFamily = installed.find((m) => m.split(":")[0] === family);
33382
+ const sameFamily = installed2.find((m) => m.split(":")[0] === family);
33353
33383
  if (sameFamily !== void 0) return sameFamily;
33354
33384
  }
33355
- return installed[0] ?? preferred;
33385
+ return installed2[0] ?? preferred;
33356
33386
  }
33357
33387
  function scoreProvider(provider, providerTier, taskTier, ollamaAlive, costInputPerMillion) {
33358
33388
  let score = TIER_BASE[providerTier];
@@ -34209,6 +34239,39 @@ var init_system_resolver2 = __esm({
34209
34239
  }
34210
34240
  });
34211
34241
 
34242
+ // packages/core/src/llm/ai-sdk-warnings.ts
34243
+ function installAiSdkWarningHandler() {
34244
+ if (installed) return false;
34245
+ const g = globalThis;
34246
+ if (g.AI_SDK_LOG_WARNINGS !== void 0) {
34247
+ installed = true;
34248
+ return false;
34249
+ }
34250
+ g.AI_SDK_LOG_WARNINGS = (payload) => {
34251
+ const log9 = getLogger("llm:ai-sdk");
34252
+ for (const warning of payload.warnings) {
34253
+ log9.warn(
34254
+ {
34255
+ provider: payload.provider,
34256
+ model: payload.model,
34257
+ warning: typeof warning === "object" && warning !== null && "message" in warning ? warning.message : warning
34258
+ },
34259
+ "AI SDK warning"
34260
+ );
34261
+ }
34262
+ };
34263
+ installed = true;
34264
+ return true;
34265
+ }
34266
+ var installed;
34267
+ var init_ai_sdk_warnings = __esm({
34268
+ "packages/core/src/llm/ai-sdk-warnings.ts"() {
34269
+ "use strict";
34270
+ init_logger();
34271
+ installed = false;
34272
+ }
34273
+ });
34274
+
34212
34275
  // packages/core/src/llm/error-classifier.ts
34213
34276
  function classifyError(err, context) {
34214
34277
  const message = extractMessage(err);
@@ -66306,6 +66369,7 @@ var init_model_runner = __esm({
66306
66369
  "packages/core/src/llm/model-runner.ts"() {
66307
66370
  "use strict";
66308
66371
  init_logger();
66372
+ init_ai_sdk_warnings();
66309
66373
  init_api_mode();
66310
66374
  init_concrete_session();
66311
66375
  init_kimi_code();
@@ -66329,6 +66393,7 @@ var init_model_runner = __esm({
66329
66393
  chat_completions: buildChatCompletionsTransport
66330
66394
  };
66331
66395
  OLLAMA_OPENAI_COMPAT_BASE_URL = "http://localhost:11434/v1";
66396
+ installAiSdkWarningHandler();
66332
66397
  ModelRunner = {
66333
66398
  /**
66334
66399
  * Construct the transport for a descriptor. This is the ONLY home for