opencode-swarm 7.188.12 → 7.190.0

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 (177) hide show
  1. package/README.md +42 -6
  2. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  3. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  4. package/dist/agents/architect.d.ts +1 -1
  5. package/dist/background/completion-observer.d.ts +6 -0
  6. package/dist/cli/{auto-checkpoint-4g963859.js → auto-checkpoint-qvk04fya.js} +9 -9
  7. package/dist/cli/{checkpoint-y9nbjper.js → checkpoint-9q2r5c3j.js} +18 -20
  8. package/dist/cli/{coder-settlement-q8ea2jkw.js → coder-settlement-xcparbf3.js} +13 -13
  9. package/dist/cli/{config-doctor-4v5m6v30.js → config-doctor-by0ak49m.js} +23 -20
  10. package/dist/cli/{core-879105xb.js → core-b1b3kxzy.js} +4 -4
  11. package/dist/cli/{curation-policy-65ckmmd5.js → curation-policy-6p6fcfjb.js} +6 -6
  12. package/dist/cli/{curator-t7g3hamd.js → curator-d7b88mzr.js} +44 -44
  13. package/dist/cli/{curator-drift-satfdnp2.js → curator-drift-6v604220.js} +9 -9
  14. package/dist/cli/curator-llm-factory-yvbktznk.js +82 -0
  15. package/dist/cli/{doctor-knowledge-receipt-phase-id-y3ft2v24.js → doctor-knowledge-receipt-phase-id-kwrvnps9.js} +9 -9
  16. package/dist/cli/{evidence-summary-service-56rqzmrf.js → evidence-summary-service-mzr2q4bn.js} +21 -22
  17. package/dist/cli/{gate-evidence-zzmgph9z.js → gate-evidence-78jes9kq.js} +8 -8
  18. package/dist/cli/guardrail-explain-8kt2mxmw.js +83 -0
  19. package/dist/cli/{guardrail-log-sxv7q0xw.js → guardrail-log-2sthykag.js} +8 -8
  20. package/dist/cli/{guardrail-reset-37cr442b.js → guardrail-reset-2n746rzv.js} +44 -44
  21. package/dist/cli/{hive-promoter-hyeta8d6.js → hive-promoter-s7a5gwhz.js} +44 -44
  22. package/dist/cli/{index-e638qt2d.js → index-0qc7a88d.js} +3 -3
  23. package/dist/cli/{index-kap0d52p.js → index-1s95jrgc.js} +3 -3
  24. package/dist/cli/{index-9tvjwv01.js → index-2fpv2wmc.js} +1 -1
  25. package/dist/cli/{index-jgr1rsr1.js → index-2kpqqcch.js} +4 -4
  26. package/dist/cli/{index-msvf6p5y.js → index-3t9t9q2q.js} +44 -44
  27. package/dist/cli/{index-8q8783g0.js → index-3zwhxk98.js} +1 -1
  28. package/dist/cli/{index-0b172h6r.js → index-49e65y51.js} +5 -5
  29. package/dist/cli/{index-5pafc9x6.js → index-69tgdm9t.js} +18 -8
  30. package/dist/cli/{index-d3rjvm9e.js → index-7vnr5cmp.js} +2 -2
  31. package/dist/cli/{index-twb3f4tk.js → index-8bx6vhzk.js} +1 -1
  32. package/dist/cli/{index-84pwb6cz.js → index-9gcqmgbc.js} +5 -5
  33. package/dist/cli/{index-9sps637v.js → index-9xxqdzp4.js} +4 -4
  34. package/dist/cli/{index-j0qep2zr.js → index-a5ca62vt.js} +1 -1
  35. package/dist/cli/{index-xy2403g9.js → index-ajzgeb2s.js} +2 -2
  36. package/dist/cli/{index-8xabhfwr.js → index-b2j231jy.js} +2 -2
  37. package/dist/cli/{index-19yt5p2t.js → index-dmq7p8s9.js} +6 -6
  38. package/dist/cli/{index-95pzyv9a.js → index-ej1hdw16.js} +5 -5
  39. package/dist/cli/{index-1krdj1sc.js → index-ejk34dnw.js} +127 -13
  40. package/dist/cli/{index-tbyvvq50.js → index-fb5s32c2.js} +862 -1221
  41. package/dist/cli/{index-ntda6tje.js → index-feaxsjrt.js} +10 -2
  42. package/dist/cli/{index-94fgbb34.js → index-ffgcdf49.js} +22147 -15396
  43. package/dist/cli/{index-fhtcx5ag.js → index-h0xhec3d.js} +4 -4
  44. package/dist/cli/{index-kaqdzhj3.js → index-kfevm0n5.js} +2 -2
  45. package/dist/cli/{index-z7gakzb5.js → index-kp8k95v9.js} +4 -4
  46. package/dist/cli/{index-x1eh2636.js → index-mcv0v2dp.js} +1 -1
  47. package/dist/cli/{index-9czp2dcg.js → index-mjfpaxw3.js} +7 -7
  48. package/dist/cli/{index-tmn4pf7q.js → index-mp1s7b0n.js} +7 -7
  49. package/dist/cli/{index-f0jn2nvs.js → index-mseerehd.js} +26 -10
  50. package/dist/cli/{index-f6exny9m.js → index-n8q43eff.js} +2 -2
  51. package/dist/cli/{index-7hr5m7yp.js → index-nkgzkt7c.js} +1 -1
  52. package/dist/cli/{index-8jy605yf.js → index-npe10823.js} +7 -7
  53. package/dist/cli/{index-yc0y5fjt.js → index-p69k8v0e.js} +1 -1
  54. package/dist/cli/{index-p2tqzwh6.js → index-qs9myayh.js} +5 -10
  55. package/dist/cli/{index-hh7pa3yk.js → index-r9yvpr2m.js} +2 -2
  56. package/dist/cli/{index-qha2p47y.js → index-rgkzcw2a.js} +5 -5
  57. package/dist/cli/{index-zfbxfm2m.js → index-s8b67e6h.js} +33 -12
  58. package/dist/cli/{index-m3hhaf61.js → index-s92a5ta3.js} +4 -4
  59. package/dist/cli/{index-dd6p8xb5.js → index-sm01zpqe.js} +46 -46
  60. package/dist/cli/{index-q9kefh33.js → index-sxj143a4.js} +1 -1
  61. package/dist/cli/{index-2h13hjbf.js → index-t0gj8s46.js} +77 -16
  62. package/dist/cli/{index-3dqazqk4.js → index-t73adn9b.js} +2 -2
  63. package/dist/cli/{index-5cksakjf.js → index-tkhenmms.js} +101 -13
  64. package/dist/cli/{index-zsrtt42s.js → index-v3bmwmqw.js} +25 -1
  65. package/dist/cli/{index-w9tfb0am.js → index-vhn4e6rm.js} +7 -7
  66. package/dist/cli/{index-yjjyapbf.js → index-xyvrfram.js} +2 -2
  67. package/dist/cli/{index-k8sarme1.js → index-y9v41185.js} +1 -1
  68. package/dist/cli/{index-1xa8wq76.js → index-z3ahy9c2.js} +2 -2
  69. package/dist/cli/{index-wrdktgpy.js → index-zk6ttjkt.js} +2 -2
  70. package/dist/cli/{index-7z2pxxye.js → index-zyg1m9d0.js} +4 -4
  71. package/dist/cli/index.js +45 -45
  72. package/dist/cli/{knowledge-escalator-dzd35eb3.js → knowledge-escalator-n1ezv1zp.js} +15 -15
  73. package/dist/cli/{knowledge-events-wkr5ne5f.js → knowledge-events-nyqk3mr7.js} +13 -13
  74. package/dist/cli/{knowledge-link-h4pdcnya.js → knowledge-link-6hw3z6wn.js} +5 -5
  75. package/dist/cli/{knowledge-store-sme6sqrb.js → knowledge-store-mnxqcyet.js} +6 -6
  76. package/dist/cli/{knowledge-validator-jgzeawa8.js → knowledge-validator-z30113mp.js} +8 -8
  77. package/dist/cli/{mcp-egrbh8na.js → mcp-mnbqw2s5.js} +1 -1
  78. package/dist/cli/{model-preflight-h7azh4m4.js → model-preflight-ex482fsy.js} +44 -44
  79. package/dist/cli/{pending-delegations-pg284vsk.js → pending-delegations-j18afz5z.js} +12 -12
  80. package/dist/cli/{pr-subscriptions-hzc4fg25.js → pr-subscriptions-yngda8mz.js} +12 -12
  81. package/dist/cli/{pr-workflow-gate-j3r3g3q7.js → pr-workflow-gate-0vt614f0.js} +44 -44
  82. package/dist/cli/{runner-4hfmp1ag.js → runner-ssnsje35.js} +6 -6
  83. package/dist/cli/{scan-cursor-zg0a56c1.js → scan-cursor-8pwfg5g9.js} +7 -7
  84. package/dist/cli/{schema-p246rqkt.js → schema-e58ytmqt.js} +14 -2
  85. package/dist/cli/{scope-persistence-7qtsmx5c.js → scope-persistence-9qfx6ext.js} +16 -16
  86. package/dist/cli/{server-twhpwhgq.js → server-wxcfwsdx.js} +45 -45
  87. package/dist/cli/{skill-generator-7vfbmyrw.js → skill-generator-tbd4tq9r.js} +17 -17
  88. package/dist/cli/{snapshot-coordination-init-050hf69t.js → snapshot-coordination-init-sckyzb94.js} +44 -44
  89. package/dist/cli/{speckit-checkoff-d3v522cb.js → speckit-checkoff-k5jm0abh.js} +5 -5
  90. package/dist/cli/{telemetry-kvhe94gs.js → telemetry-9szfdfqv.js} +1 -1
  91. package/dist/cli/{workspace-snapshot-30kdf018.js → workspace-snapshot-9f12p1s1.js} +3 -3
  92. package/dist/cli/{worktree-collision-ownership-yy1tp8t9.js → worktree-collision-ownership-3wwfc72t.js} +14 -14
  93. package/dist/cli/{worktree-isolation-e56skbfw.js → worktree-isolation-zfk7zk6a.js} +46 -44
  94. package/dist/commands/coupling.d.ts +21 -4
  95. package/dist/commands/epic-learning.d.ts +28 -0
  96. package/dist/commands/epic.d.ts +81 -36
  97. package/dist/commands/registry.d.ts +8 -8
  98. package/dist/commands/turbo.d.ts +16 -1
  99. package/dist/config/constants.d.ts +11 -1
  100. package/dist/config/loader.d.ts +2 -0
  101. package/dist/config/schema.d.ts +291 -77
  102. package/dist/db/coordination-store.d.ts +6 -0
  103. package/dist/epic/close.d.ts +209 -0
  104. package/dist/{turbo/epic → epic}/cochange-conflict.d.ts +5 -4
  105. package/dist/{turbo/epic → epic}/cochange-source.d.ts +10 -1
  106. package/dist/epic/components.d.ts +238 -0
  107. package/dist/epic/config-gate.d.ts +25 -0
  108. package/dist/epic/config.d.ts +101 -0
  109. package/dist/{turbo/epic → epic}/coupling-report.d.ts +3 -1
  110. package/dist/epic/declared-scopes.d.ts +37 -0
  111. package/dist/epic/epic-branch.d.ts +157 -0
  112. package/dist/epic/gate-policy.d.ts +114 -0
  113. package/dist/epic/git-once.d.ts +26 -0
  114. package/dist/epic/learning-store.d.ts +176 -0
  115. package/dist/epic/learning.d.ts +198 -0
  116. package/dist/epic/legacy-migration.d.ts +26 -0
  117. package/dist/epic/lifecycle.d.ts +437 -0
  118. package/dist/epic/markers.d.ts +123 -0
  119. package/dist/epic/merge-epoch.d.ts +90 -0
  120. package/dist/epic/next-wave-format.d.ts +101 -0
  121. package/dist/epic/next-wave.d.ts +102 -0
  122. package/dist/epic/phase-readiness.d.ts +221 -0
  123. package/dist/epic/plan-key.d.ts +104 -0
  124. package/dist/epic/plan-shaping-seam.d.ts +112 -0
  125. package/dist/epic/planning-signals.d.ts +38 -0
  126. package/dist/epic/report.d.ts +152 -0
  127. package/dist/epic/residue-commit.d.ts +151 -0
  128. package/dist/epic/scorecard.d.ts +130 -0
  129. package/dist/epic/shaping-sizing.d.ts +108 -0
  130. package/dist/epic/shaping-suggestions.d.ts +172 -0
  131. package/dist/epic/shaping.d.ts +112 -0
  132. package/dist/epic/sizing.d.ts +60 -0
  133. package/dist/epic/start.d.ts +187 -0
  134. package/dist/epic/task-landing.d.ts +83 -0
  135. package/dist/epic/wave-close.d.ts +112 -0
  136. package/dist/epic/wave-select.d.ts +95 -0
  137. package/dist/evaluation/contracts.d.ts +1 -1
  138. package/dist/evaluation/public-api.d.ts +1 -1
  139. package/dist/full-auto/policy.d.ts +12 -1
  140. package/dist/hooks/delegation-gate/worktree-isolation.d.ts +16 -0
  141. package/dist/hooks/delegation-gate.d.ts +11 -0
  142. package/dist/hooks/guardrails/index.d.ts +7 -0
  143. package/dist/hooks/promotion-evidence-store.d.ts +2 -2
  144. package/dist/index.js +814 -807
  145. package/dist/plan/manager.d.ts +6 -8
  146. package/dist/plan/parallel-verdict.d.ts +13 -2
  147. package/dist/retention/caps.d.ts +1 -1
  148. package/dist/review/contracts.d.ts +8 -1
  149. package/dist/services/config-doctor.d.ts +38 -0
  150. package/dist/session/snapshot-reader.d.ts +2 -0
  151. package/dist/session/snapshot-writer.d.ts +13 -2
  152. package/dist/state.d.ts +13 -18
  153. package/dist/tools/epic-next-wave.d.ts +20 -0
  154. package/dist/tools/epic-phase-review.d.ts +43 -0
  155. package/dist/tools/index.d.ts +2 -3
  156. package/dist/tools/manifest.d.ts +2 -3
  157. package/dist/tools/phase-complete.d.ts +5 -1
  158. package/dist/tools/save-plan.d.ts +7 -0
  159. package/dist/tools/tool-metadata.d.ts +4 -8
  160. package/dist/worktree/merge.d.ts +14 -1
  161. package/opencode-swarm.schema.json +273 -28
  162. package/package.json +1 -1
  163. package/dist/cli/curator-llm-factory-fx1qnpsh.js +0 -82
  164. package/dist/cli/guardrail-explain-g03manbh.js +0 -83
  165. package/dist/tools/epic-plan-waves.d.ts +0 -79
  166. package/dist/tools/epic-record-divergence.d.ts +0 -73
  167. package/dist/tools/epic-run-phase.d.ts +0 -179
  168. package/dist/turbo/epic/activation.d.ts +0 -193
  169. package/dist/turbo/epic/calibration-engine.d.ts +0 -88
  170. package/dist/turbo/epic/calibration.d.ts +0 -80
  171. package/dist/turbo/epic/divergence-recorder.d.ts +0 -123
  172. package/dist/turbo/epic/index.d.ts +0 -24
  173. package/dist/turbo/epic/promotion-evidence.d.ts +0 -42
  174. package/dist/turbo/epic/state.d.ts +0 -69
  175. package/dist/turbo/epic/task-commit.d.ts +0 -110
  176. package/dist/turbo/epic/upstream-commits.d.ts +0 -82
  177. package/dist/turbo/epic/wave-planner.d.ts +0 -83
@@ -1542,36 +1542,133 @@ export declare const LeanTurboConfigSchema: z.ZodObject<{
1542
1542
  }, z.core.$strip>;
1543
1543
  export type LeanTurboConfig = z.infer<typeof LeanTurboConfigSchema>;
1544
1544
  /**
1545
- * Epic mode — co-change-aware conflict detection settings.
1545
+ * Epic config keys retired by Epic v2: `epic.mode` keys (C5:
1546
+ * `min_commits_for_signal`, read by nothing since the activation gate was
1547
+ * removed) and whole `epic` blocks (C6: `calibration` — the Epic v1
1548
+ * self-calibration knobs, replaced by `epic.learning`). A retired key is
1549
+ * accepted and stripped before the strict object validates, and never read —
1550
+ * under the top-level `epic` block and under the legacy `turbo.epic` path
1551
+ * alike. (Without this, the loader's unknown-key recovery would also drop
1552
+ * it, but as an "unrecognized key" with a `stripped_keys` recovery.)
1553
+ * Instead the loader warns once per distinct set with a precise "retired"
1554
+ * message, `/swarm config doctor` reports each one (`retired-config-key`),
1555
+ * and the JSON schema keeps it as `deprecated` so editors do not reject it.
1556
+ */
1557
+ export declare const RETIRED_EPIC_MODE_KEYS: readonly string[];
1558
+ export declare const RETIRED_EPIC_KEYS: readonly string[];
1559
+ /**
1560
+ * What replaced a retired Epic key, for the warning / doctor finding. Keyed by
1561
+ * the key's path relative to the Epic block (`calibration`, `mode.<key>`), so
1562
+ * the same hint serves `epic.*` and the legacy `turbo.epic.*` path.
1563
+ */
1564
+ export declare const RETIRED_EPIC_KEY_REPLACEMENTS: Readonly<Record<string, string>>;
1565
+ /** The replacement hint for a dotted retired-key path from {@link findRetiredEpicConfigKeys}. */
1566
+ export declare function retiredEpicKeyReplacement(dotted: string): string | undefined;
1567
+ /**
1568
+ * Dotted paths of retired Epic keys present in a raw (pre-parse) config
1569
+ * object, under the top-level `epic` block and the legacy `turbo.epic` path,
1570
+ * as the user wrote them — e.g. `epic.mode.min_commits_for_signal`,
1571
+ * `epic.calibration`.
1572
+ */
1573
+ export declare function findRetiredEpicConfigKeys(raw: unknown): string[];
1574
+ /**
1575
+ * Epic Mode settings — the top-level `epic` block (legacy path: `turbo.epic`,
1576
+ * accepted permanently and migrated by the loader; see `src/epic/config.ts`).
1577
+ * Every Epic reader resolves them through `resolveEpicConfig`
1578
+ * (`src/epic/config.ts`); Epic needs no `turbo` block.
1546
1579
  *
1547
- * Epic mode is an additive layer that composes Lean Turbo (it never modifies it).
1548
- * Capability A surfaces git co-change history as an extra conflict signal so
1549
- * pairs of files that historically change together can be treated as conflicting
1550
- * even when path-based rules would not catch the coupling.
1580
+ * Epic Mode reuses Lean Turbo's conflict predicates (it never modifies Lean
1581
+ * Turbo) and dispatches promoted waves itself via visible `Task` calls.
1551
1582
  *
1552
- * With `cochange.enabled: false` (the default), no Epic-mode code runs in any
1553
- * existing flow — behavior is identical to upstream Lean Turbo.
1583
+ * Two independent opt-in master gates, both default `false` and both read
1584
+ * through `src/epic/config-gate.ts`:
1585
+ * - `mode.enabled` gates Epic Mode itself: `/swarm epic start`, the Epic
1586
+ * tools (`epic_next_wave`, `epic_phase_review`), and the
1587
+ * project-scoped open-epic probe (required worktree isolation and
1588
+ * commit-at-landing for epic coders, residue commits, the epic refs,
1589
+ * the Epic phase-readiness gate in `phase_complete`). With it off, none of those
1590
+ * run (an already-open epic is inert until re-enabled or closed).
1591
+ * - `cochange.enabled` gates only Capability A's git co-change conflict
1592
+ * signal. With it off, `epic_next_wave` keeps a wave's tasks apart on
1593
+ * declared-path conflicts only, and `/swarm coupling` records
1594
+ * `cochangeSignal: 'disabled-by-config'`.
1554
1595
  */
1555
- export declare const EpicConfigSchema: z.ZodObject<{
1596
+ export declare const EpicConfigSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1556
1597
  cochange: z.ZodOptional<z.ZodObject<{
1557
1598
  enabled: z.ZodDefault<z.ZodBoolean>;
1558
1599
  threshold: z.ZodDefault<z.ZodNumber>;
1559
1600
  min_co_changes: z.ZodDefault<z.ZodNumber>;
1560
1601
  }, z.core.$strict>>;
1561
- mode: z.ZodOptional<z.ZodObject<{
1602
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1562
1603
  enabled: z.ZodDefault<z.ZodBoolean>;
1563
1604
  activation_threshold: z.ZodDefault<z.ZodNumber>;
1564
- min_commits_for_signal: z.ZodDefault<z.ZodNumber>;
1565
- }, z.core.$strict>>;
1566
- calibration: z.ZodOptional<z.ZodObject<{
1605
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
1606
+ }, z.core.$strict>>>;
1607
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1608
+ learning: z.ZodOptional<z.ZodObject<{
1567
1609
  enabled: z.ZodDefault<z.ZodBoolean>;
1568
- floor_threshold: z.ZodDefault<z.ZodNumber>;
1569
- tighten_step: z.ZodDefault<z.ZodNumber>;
1570
- loosen_step: z.ZodDefault<z.ZodNumber>;
1571
- loosen_window: z.ZodDefault<z.ZodNumber>;
1610
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
1611
+ half_life_days: z.ZodDefault<z.ZodNumber>;
1612
+ hot_excess: z.ZodDefault<z.ZodNumber>;
1572
1613
  }, z.core.$strict>>;
1573
- }, z.core.$strict>;
1614
+ sizing: z.ZodOptional<z.ZodObject<{
1615
+ min_tasks: z.ZodDefault<z.ZodNumber>;
1616
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
1617
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
1618
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
1619
+ }, z.core.$strict>>;
1620
+ commit_policy: z.ZodOptional<z.ZodEnum<{
1621
+ "epic-branch": "epic-branch";
1622
+ "current-branch": "current-branch";
1623
+ }>>;
1624
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
1625
+ phase_review: z.ZodOptional<z.ZodObject<{
1626
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
1627
+ }, z.core.$strict>>;
1628
+ }, z.core.$strict>>;
1574
1629
  export type EpicConfig = z.infer<typeof EpicConfigSchema>;
1630
+ /**
1631
+ * `turbo.epic` — the legacy Epic Mode path, accepted PERMANENTLY. The loader
1632
+ * moves it to the file's top-level `epic` before the files are merged and
1633
+ * parsed (per-key merge, the file's top-level `epic` wins; project over user
1634
+ * across files; one advisory warning, a `legacy-epic-config-path` doctor
1635
+ * finding), so a
1636
+ * loaded config never carries it; it stays in the schema so a config parsed
1637
+ * directly keeps validating and the JSON schema marks it `deprecated`.
1638
+ */
1639
+ export declare const LegacyTurboEpicConfigSchema: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1640
+ cochange: z.ZodOptional<z.ZodObject<{
1641
+ enabled: z.ZodDefault<z.ZodBoolean>;
1642
+ threshold: z.ZodDefault<z.ZodNumber>;
1643
+ min_co_changes: z.ZodDefault<z.ZodNumber>;
1644
+ }, z.core.$strict>>;
1645
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1646
+ enabled: z.ZodDefault<z.ZodBoolean>;
1647
+ activation_threshold: z.ZodDefault<z.ZodNumber>;
1648
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
1649
+ }, z.core.$strict>>>;
1650
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1651
+ learning: z.ZodOptional<z.ZodObject<{
1652
+ enabled: z.ZodDefault<z.ZodBoolean>;
1653
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
1654
+ half_life_days: z.ZodDefault<z.ZodNumber>;
1655
+ hot_excess: z.ZodDefault<z.ZodNumber>;
1656
+ }, z.core.$strict>>;
1657
+ sizing: z.ZodOptional<z.ZodObject<{
1658
+ min_tasks: z.ZodDefault<z.ZodNumber>;
1659
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
1660
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
1661
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
1662
+ }, z.core.$strict>>;
1663
+ commit_policy: z.ZodOptional<z.ZodEnum<{
1664
+ "epic-branch": "epic-branch";
1665
+ "current-branch": "current-branch";
1666
+ }>>;
1667
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
1668
+ phase_review: z.ZodOptional<z.ZodObject<{
1669
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
1670
+ }, z.core.$strict>>;
1671
+ }, z.core.$strict>>>;
1575
1672
  export declare const StandardTurboConfigSchema: z.ZodObject<{
1576
1673
  strategy: z.ZodLiteral<"standard">;
1577
1674
  lean: z.ZodOptional<z.ZodObject<{
@@ -1606,25 +1703,39 @@ export declare const StandardTurboConfigSchema: z.ZodObject<{
1606
1703
  cache_redirects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1607
1704
  }, z.core.$strip>>;
1608
1705
  }, z.core.$strip>>;
1609
- epic: z.ZodOptional<z.ZodObject<{
1706
+ epic: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1610
1707
  cochange: z.ZodOptional<z.ZodObject<{
1611
1708
  enabled: z.ZodDefault<z.ZodBoolean>;
1612
1709
  threshold: z.ZodDefault<z.ZodNumber>;
1613
1710
  min_co_changes: z.ZodDefault<z.ZodNumber>;
1614
1711
  }, z.core.$strict>>;
1615
- mode: z.ZodOptional<z.ZodObject<{
1712
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1616
1713
  enabled: z.ZodDefault<z.ZodBoolean>;
1617
1714
  activation_threshold: z.ZodDefault<z.ZodNumber>;
1618
- min_commits_for_signal: z.ZodDefault<z.ZodNumber>;
1619
- }, z.core.$strict>>;
1620
- calibration: z.ZodOptional<z.ZodObject<{
1715
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
1716
+ }, z.core.$strict>>>;
1717
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1718
+ learning: z.ZodOptional<z.ZodObject<{
1621
1719
  enabled: z.ZodDefault<z.ZodBoolean>;
1622
- floor_threshold: z.ZodDefault<z.ZodNumber>;
1623
- tighten_step: z.ZodDefault<z.ZodNumber>;
1624
- loosen_step: z.ZodDefault<z.ZodNumber>;
1625
- loosen_window: z.ZodDefault<z.ZodNumber>;
1720
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
1721
+ half_life_days: z.ZodDefault<z.ZodNumber>;
1722
+ hot_excess: z.ZodDefault<z.ZodNumber>;
1626
1723
  }, z.core.$strict>>;
1627
- }, z.core.$strict>>;
1724
+ sizing: z.ZodOptional<z.ZodObject<{
1725
+ min_tasks: z.ZodDefault<z.ZodNumber>;
1726
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
1727
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
1728
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
1729
+ }, z.core.$strict>>;
1730
+ commit_policy: z.ZodOptional<z.ZodEnum<{
1731
+ "epic-branch": "epic-branch";
1732
+ "current-branch": "current-branch";
1733
+ }>>;
1734
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
1735
+ phase_review: z.ZodOptional<z.ZodObject<{
1736
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
1737
+ }, z.core.$strict>>;
1738
+ }, z.core.$strict>>>;
1628
1739
  }, z.core.$strip>;
1629
1740
  export declare const LeanTurboStrategyConfigSchema: z.ZodObject<{
1630
1741
  strategy: z.ZodLiteral<"lean">;
@@ -1660,25 +1771,39 @@ export declare const LeanTurboStrategyConfigSchema: z.ZodObject<{
1660
1771
  cache_redirects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1661
1772
  }, z.core.$strip>>;
1662
1773
  }, z.core.$strip>;
1663
- epic: z.ZodOptional<z.ZodObject<{
1774
+ epic: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1664
1775
  cochange: z.ZodOptional<z.ZodObject<{
1665
1776
  enabled: z.ZodDefault<z.ZodBoolean>;
1666
1777
  threshold: z.ZodDefault<z.ZodNumber>;
1667
1778
  min_co_changes: z.ZodDefault<z.ZodNumber>;
1668
1779
  }, z.core.$strict>>;
1669
- mode: z.ZodOptional<z.ZodObject<{
1780
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1670
1781
  enabled: z.ZodDefault<z.ZodBoolean>;
1671
1782
  activation_threshold: z.ZodDefault<z.ZodNumber>;
1672
- min_commits_for_signal: z.ZodDefault<z.ZodNumber>;
1673
- }, z.core.$strict>>;
1674
- calibration: z.ZodOptional<z.ZodObject<{
1783
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
1784
+ }, z.core.$strict>>>;
1785
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1786
+ learning: z.ZodOptional<z.ZodObject<{
1675
1787
  enabled: z.ZodDefault<z.ZodBoolean>;
1676
- floor_threshold: z.ZodDefault<z.ZodNumber>;
1677
- tighten_step: z.ZodDefault<z.ZodNumber>;
1678
- loosen_step: z.ZodDefault<z.ZodNumber>;
1679
- loosen_window: z.ZodDefault<z.ZodNumber>;
1788
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
1789
+ half_life_days: z.ZodDefault<z.ZodNumber>;
1790
+ hot_excess: z.ZodDefault<z.ZodNumber>;
1680
1791
  }, z.core.$strict>>;
1681
- }, z.core.$strict>>;
1792
+ sizing: z.ZodOptional<z.ZodObject<{
1793
+ min_tasks: z.ZodDefault<z.ZodNumber>;
1794
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
1795
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
1796
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
1797
+ }, z.core.$strict>>;
1798
+ commit_policy: z.ZodOptional<z.ZodEnum<{
1799
+ "epic-branch": "epic-branch";
1800
+ "current-branch": "current-branch";
1801
+ }>>;
1802
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
1803
+ phase_review: z.ZodOptional<z.ZodObject<{
1804
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
1805
+ }, z.core.$strict>>;
1806
+ }, z.core.$strict>>>;
1682
1807
  }, z.core.$strip>;
1683
1808
  export declare const TurboConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1684
1809
  strategy: z.ZodLiteral<"standard">;
@@ -1714,25 +1839,39 @@ export declare const TurboConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1714
1839
  cache_redirects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1715
1840
  }, z.core.$strip>>;
1716
1841
  }, z.core.$strip>>;
1717
- epic: z.ZodOptional<z.ZodObject<{
1842
+ epic: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1718
1843
  cochange: z.ZodOptional<z.ZodObject<{
1719
1844
  enabled: z.ZodDefault<z.ZodBoolean>;
1720
1845
  threshold: z.ZodDefault<z.ZodNumber>;
1721
1846
  min_co_changes: z.ZodDefault<z.ZodNumber>;
1722
1847
  }, z.core.$strict>>;
1723
- mode: z.ZodOptional<z.ZodObject<{
1848
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1724
1849
  enabled: z.ZodDefault<z.ZodBoolean>;
1725
1850
  activation_threshold: z.ZodDefault<z.ZodNumber>;
1726
- min_commits_for_signal: z.ZodDefault<z.ZodNumber>;
1727
- }, z.core.$strict>>;
1728
- calibration: z.ZodOptional<z.ZodObject<{
1851
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
1852
+ }, z.core.$strict>>>;
1853
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1854
+ learning: z.ZodOptional<z.ZodObject<{
1729
1855
  enabled: z.ZodDefault<z.ZodBoolean>;
1730
- floor_threshold: z.ZodDefault<z.ZodNumber>;
1731
- tighten_step: z.ZodDefault<z.ZodNumber>;
1732
- loosen_step: z.ZodDefault<z.ZodNumber>;
1733
- loosen_window: z.ZodDefault<z.ZodNumber>;
1856
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
1857
+ half_life_days: z.ZodDefault<z.ZodNumber>;
1858
+ hot_excess: z.ZodDefault<z.ZodNumber>;
1734
1859
  }, z.core.$strict>>;
1735
- }, z.core.$strict>>;
1860
+ sizing: z.ZodOptional<z.ZodObject<{
1861
+ min_tasks: z.ZodDefault<z.ZodNumber>;
1862
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
1863
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
1864
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
1865
+ }, z.core.$strict>>;
1866
+ commit_policy: z.ZodOptional<z.ZodEnum<{
1867
+ "epic-branch": "epic-branch";
1868
+ "current-branch": "current-branch";
1869
+ }>>;
1870
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
1871
+ phase_review: z.ZodOptional<z.ZodObject<{
1872
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
1873
+ }, z.core.$strict>>;
1874
+ }, z.core.$strict>>>;
1736
1875
  }, z.core.$strip>, z.ZodObject<{
1737
1876
  strategy: z.ZodLiteral<"lean">;
1738
1877
  lean: z.ZodObject<{
@@ -1767,25 +1906,39 @@ export declare const TurboConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1767
1906
  cache_redirects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1768
1907
  }, z.core.$strip>>;
1769
1908
  }, z.core.$strip>;
1770
- epic: z.ZodOptional<z.ZodObject<{
1909
+ epic: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1771
1910
  cochange: z.ZodOptional<z.ZodObject<{
1772
1911
  enabled: z.ZodDefault<z.ZodBoolean>;
1773
1912
  threshold: z.ZodDefault<z.ZodNumber>;
1774
1913
  min_co_changes: z.ZodDefault<z.ZodNumber>;
1775
1914
  }, z.core.$strict>>;
1776
- mode: z.ZodOptional<z.ZodObject<{
1915
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1777
1916
  enabled: z.ZodDefault<z.ZodBoolean>;
1778
1917
  activation_threshold: z.ZodDefault<z.ZodNumber>;
1779
- min_commits_for_signal: z.ZodDefault<z.ZodNumber>;
1780
- }, z.core.$strict>>;
1781
- calibration: z.ZodOptional<z.ZodObject<{
1918
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
1919
+ }, z.core.$strict>>>;
1920
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1921
+ learning: z.ZodOptional<z.ZodObject<{
1782
1922
  enabled: z.ZodDefault<z.ZodBoolean>;
1783
- floor_threshold: z.ZodDefault<z.ZodNumber>;
1784
- tighten_step: z.ZodDefault<z.ZodNumber>;
1785
- loosen_step: z.ZodDefault<z.ZodNumber>;
1786
- loosen_window: z.ZodDefault<z.ZodNumber>;
1923
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
1924
+ half_life_days: z.ZodDefault<z.ZodNumber>;
1925
+ hot_excess: z.ZodDefault<z.ZodNumber>;
1787
1926
  }, z.core.$strict>>;
1788
- }, z.core.$strict>>;
1927
+ sizing: z.ZodOptional<z.ZodObject<{
1928
+ min_tasks: z.ZodDefault<z.ZodNumber>;
1929
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
1930
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
1931
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
1932
+ }, z.core.$strict>>;
1933
+ commit_policy: z.ZodOptional<z.ZodEnum<{
1934
+ "epic-branch": "epic-branch";
1935
+ "current-branch": "current-branch";
1936
+ }>>;
1937
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
1938
+ phase_review: z.ZodOptional<z.ZodObject<{
1939
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
1940
+ }, z.core.$strict>>;
1941
+ }, z.core.$strict>>>;
1789
1942
  }, z.core.$strip>], "strategy">;
1790
1943
  export type TurboConfig = z.infer<typeof TurboConfigSchema>;
1791
1944
  /** Where an external skill candidate was discovered. */
@@ -3047,25 +3200,39 @@ export declare const PluginConfigSchema: z.ZodObject<{
3047
3200
  cache_redirects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3048
3201
  }, z.core.$strip>>;
3049
3202
  }, z.core.$strip>>;
3050
- epic: z.ZodOptional<z.ZodObject<{
3203
+ epic: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
3051
3204
  cochange: z.ZodOptional<z.ZodObject<{
3052
3205
  enabled: z.ZodDefault<z.ZodBoolean>;
3053
3206
  threshold: z.ZodDefault<z.ZodNumber>;
3054
3207
  min_co_changes: z.ZodDefault<z.ZodNumber>;
3055
3208
  }, z.core.$strict>>;
3056
- mode: z.ZodOptional<z.ZodObject<{
3209
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
3057
3210
  enabled: z.ZodDefault<z.ZodBoolean>;
3058
3211
  activation_threshold: z.ZodDefault<z.ZodNumber>;
3059
- min_commits_for_signal: z.ZodDefault<z.ZodNumber>;
3060
- }, z.core.$strict>>;
3061
- calibration: z.ZodOptional<z.ZodObject<{
3212
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
3213
+ }, z.core.$strict>>>;
3214
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3215
+ learning: z.ZodOptional<z.ZodObject<{
3062
3216
  enabled: z.ZodDefault<z.ZodBoolean>;
3063
- floor_threshold: z.ZodDefault<z.ZodNumber>;
3064
- tighten_step: z.ZodDefault<z.ZodNumber>;
3065
- loosen_step: z.ZodDefault<z.ZodNumber>;
3066
- loosen_window: z.ZodDefault<z.ZodNumber>;
3217
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
3218
+ half_life_days: z.ZodDefault<z.ZodNumber>;
3219
+ hot_excess: z.ZodDefault<z.ZodNumber>;
3067
3220
  }, z.core.$strict>>;
3068
- }, z.core.$strict>>;
3221
+ sizing: z.ZodOptional<z.ZodObject<{
3222
+ min_tasks: z.ZodDefault<z.ZodNumber>;
3223
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
3224
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
3225
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
3226
+ }, z.core.$strict>>;
3227
+ commit_policy: z.ZodOptional<z.ZodEnum<{
3228
+ "epic-branch": "epic-branch";
3229
+ "current-branch": "current-branch";
3230
+ }>>;
3231
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
3232
+ phase_review: z.ZodOptional<z.ZodObject<{
3233
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
3234
+ }, z.core.$strict>>;
3235
+ }, z.core.$strict>>>;
3069
3236
  }, z.core.$strip>, z.ZodObject<{
3070
3237
  strategy: z.ZodLiteral<"lean">;
3071
3238
  lean: z.ZodObject<{
@@ -3100,26 +3267,73 @@ export declare const PluginConfigSchema: z.ZodObject<{
3100
3267
  cache_redirects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3101
3268
  }, z.core.$strip>>;
3102
3269
  }, z.core.$strip>;
3103
- epic: z.ZodOptional<z.ZodObject<{
3270
+ epic: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
3104
3271
  cochange: z.ZodOptional<z.ZodObject<{
3105
3272
  enabled: z.ZodDefault<z.ZodBoolean>;
3106
3273
  threshold: z.ZodDefault<z.ZodNumber>;
3107
3274
  min_co_changes: z.ZodDefault<z.ZodNumber>;
3108
3275
  }, z.core.$strict>>;
3109
- mode: z.ZodOptional<z.ZodObject<{
3276
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
3110
3277
  enabled: z.ZodDefault<z.ZodBoolean>;
3111
3278
  activation_threshold: z.ZodDefault<z.ZodNumber>;
3112
- min_commits_for_signal: z.ZodDefault<z.ZodNumber>;
3113
- }, z.core.$strict>>;
3114
- calibration: z.ZodOptional<z.ZodObject<{
3279
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
3280
+ }, z.core.$strict>>>;
3281
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3282
+ learning: z.ZodOptional<z.ZodObject<{
3115
3283
  enabled: z.ZodDefault<z.ZodBoolean>;
3116
- floor_threshold: z.ZodDefault<z.ZodNumber>;
3117
- tighten_step: z.ZodDefault<z.ZodNumber>;
3118
- loosen_step: z.ZodDefault<z.ZodNumber>;
3119
- loosen_window: z.ZodDefault<z.ZodNumber>;
3284
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
3285
+ half_life_days: z.ZodDefault<z.ZodNumber>;
3286
+ hot_excess: z.ZodDefault<z.ZodNumber>;
3120
3287
  }, z.core.$strict>>;
3121
- }, z.core.$strict>>;
3288
+ sizing: z.ZodOptional<z.ZodObject<{
3289
+ min_tasks: z.ZodDefault<z.ZodNumber>;
3290
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
3291
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
3292
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
3293
+ }, z.core.$strict>>;
3294
+ commit_policy: z.ZodOptional<z.ZodEnum<{
3295
+ "epic-branch": "epic-branch";
3296
+ "current-branch": "current-branch";
3297
+ }>>;
3298
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
3299
+ phase_review: z.ZodOptional<z.ZodObject<{
3300
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
3301
+ }, z.core.$strict>>;
3302
+ }, z.core.$strict>>>;
3122
3303
  }, z.core.$strip>], "strategy">>;
3304
+ epic: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
3305
+ cochange: z.ZodOptional<z.ZodObject<{
3306
+ enabled: z.ZodDefault<z.ZodBoolean>;
3307
+ threshold: z.ZodDefault<z.ZodNumber>;
3308
+ min_co_changes: z.ZodDefault<z.ZodNumber>;
3309
+ }, z.core.$strict>>;
3310
+ mode: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
3311
+ enabled: z.ZodDefault<z.ZodBoolean>;
3312
+ activation_threshold: z.ZodDefault<z.ZodNumber>;
3313
+ min_commits_for_signal: z.ZodOptional<z.ZodNumber>;
3314
+ }, z.core.$strict>>>;
3315
+ calibration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3316
+ learning: z.ZodOptional<z.ZodObject<{
3317
+ enabled: z.ZodDefault<z.ZodBoolean>;
3318
+ decay_per_epic: z.ZodDefault<z.ZodNumber>;
3319
+ half_life_days: z.ZodDefault<z.ZodNumber>;
3320
+ hot_excess: z.ZodDefault<z.ZodNumber>;
3321
+ }, z.core.$strict>>;
3322
+ sizing: z.ZodOptional<z.ZodObject<{
3323
+ min_tasks: z.ZodDefault<z.ZodNumber>;
3324
+ min_scope_coverage: z.ZodDefault<z.ZodNumber>;
3325
+ min_effective_speedup: z.ZodDefault<z.ZodNumber>;
3326
+ coder_fraction: z.ZodDefault<z.ZodNumber>;
3327
+ }, z.core.$strict>>;
3328
+ commit_policy: z.ZodOptional<z.ZodEnum<{
3329
+ "epic-branch": "epic-branch";
3330
+ "current-branch": "current-branch";
3331
+ }>>;
3332
+ retain_refs: z.ZodOptional<z.ZodBoolean>;
3333
+ phase_review: z.ZodOptional<z.ZodObject<{
3334
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
3335
+ }, z.core.$strict>>;
3336
+ }, z.core.$strict>>>;
3123
3337
  turbo_mode: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
3124
3338
  quiet: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
3125
3339
  version_check: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
@@ -53,6 +53,12 @@ export declare function getCoordinationStateRaw(directory: string, namespace: st
53
53
  export declare function withCoordinationTransaction<T>(directory: string, fn: () => T): T;
54
54
  export declare function getCoordinationState(directory: string, namespace: string, entityKey: string): CoordinationState | null;
55
55
  export declare function listCoordinationStates(directory: string, namespace: string, limit?: number): CoordinationState[];
56
+ /**
57
+ * Entity keys of one namespace WITHOUT reading or validating payloads
58
+ * (bounded). Recovery code uses it to address rows whose payload is corrupt
59
+ * (a validated listing would throw on them). Returns [] without a database.
60
+ */
61
+ export declare function listCoordinationStateKeys(directory: string, namespace: string, limit: number): string[];
56
62
  /** Return the exact number of authoritative rows in one coordination namespace. */
57
63
  export declare function countCoordinationStates(directory: string, namespace: string): number;
58
64
  export declare function deleteCoordinationState(directory: string, namespace: string, entityKey: string, expectedRevision?: number): boolean;