opencode-swarm 7.130.1 → 7.131.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 (77) hide show
  1. package/dist/cli/{config-doctor-489wej17.js → config-doctor-rjvb0hhn.js} +2 -2
  2. package/dist/cli/{curation-policy-aaz0hap6.js → curation-policy-f5bybzmh.js} +2 -2
  3. package/dist/cli/{curator-by14m5fc.js → curator-kjzqa5m7.js} +14 -14
  4. package/dist/cli/{curator-llm-factory-7rz7mvcr.js → curator-llm-factory-ezq4fakt.js} +14 -14
  5. package/dist/cli/{evidence-summary-service-hf7qq777.js → evidence-summary-service-jfagmvrh.js} +1 -1
  6. package/dist/cli/{guardrail-explain-mvct2n9f.js → guardrail-explain-n93qh8k6.js} +15 -15
  7. package/dist/cli/{guardrail-log-2cejc33f.js → guardrail-log-h4tmcjwx.js} +3 -3
  8. package/dist/cli/{hive-promoter-trezcyrd.js → hive-promoter-mammxe5p.js} +14 -14
  9. package/dist/cli/{index-jvyn76xe.js → index-01nyrk95.js} +3 -3
  10. package/dist/cli/{index-kzvwb2se.js → index-03zyn94g.js} +110 -85
  11. package/dist/cli/{index-xa29259t.js → index-1atz85c8.js} +1 -1
  12. package/dist/cli/{index-j0py44fv.js → index-6vg0qczz.js} +2 -2
  13. package/dist/cli/{index-zft4hp35.js → index-cnwh164k.js} +1 -1
  14. package/dist/cli/{index-hjar4crm.js → index-cq22pnd2.js} +1 -1
  15. package/dist/cli/{index-4qrbvrz5.js → index-d2tgc580.js} +2689 -1241
  16. package/dist/cli/{index-jxha73tm.js → index-fepakwhp.js} +1 -1
  17. package/dist/cli/{index-f2y46pda.js → index-h3k62043.js} +20 -6
  18. package/dist/cli/{index-5xxgeksy.js → index-hynbzh7s.js} +46 -2
  19. package/dist/cli/{index-p6qgjkbt.js → index-kbfhyxtv.js} +9 -1
  20. package/dist/cli/{index-3rnkyb60.js → index-m6zfm7cm.js} +5 -5
  21. package/dist/cli/{index-s8h2cedv.js → index-pft1qxqh.js} +1 -1
  22. package/dist/cli/{index-ts9wh1ba.js → index-q68sprcy.js} +60 -8
  23. package/dist/cli/{index-agte9w1e.js → index-szkswbqf.js} +2 -2
  24. package/dist/cli/{index-nr5pr54q.js → index-tw33v84d.js} +1 -1
  25. package/dist/cli/{index-xdx5b4s1.js → index-xhd797bz.js} +16 -16
  26. package/dist/cli/{index-wy3q73j2.js → index-xv2ydncg.js} +18 -14
  27. package/dist/cli/index.js +14 -14
  28. package/dist/cli/{knowledge-escalator-1ypz0266.js → knowledge-escalator-cf1kkmfe.js} +3 -3
  29. package/dist/cli/{knowledge-events-yvcczmja.js → knowledge-events-p8t5ev44.js} +1 -1
  30. package/dist/cli/{knowledge-store-h8bp9eje.js → knowledge-store-vpdmcwem.js} +3 -1
  31. package/dist/cli/{knowledge-validator-sz9v1fdq.js → knowledge-validator-w1t0sw5f.js} +4 -4
  32. package/dist/cli/{scan-cursor-k9zyt374.js → scan-cursor-z4c51902.js} +2 -2
  33. package/dist/cli/{schema-fkpn2r1s.js → schema-yqzzfavj.js} +5 -1
  34. package/dist/cli/{skill-generator-a6a9jxfd.js → skill-generator-aaabj00n.js} +5 -5
  35. package/dist/cli/{workspace-snapshot-jwkjg790.js → workspace-snapshot-35qc0y8a.js} +1 -1
  36. package/dist/commands/consolidate.d.ts +14 -0
  37. package/dist/commands/curate.d.ts +2 -0
  38. package/dist/commands/promote.d.ts +25 -0
  39. package/dist/commands/registry.d.ts +2 -2
  40. package/dist/config/schema.d.ts +101 -0
  41. package/dist/consensus/contracts.d.ts +479 -0
  42. package/dist/consensus/corpus.d.ts +261 -0
  43. package/dist/consensus/miner.d.ts +200 -0
  44. package/dist/consensus/public-api.d.ts +42 -0
  45. package/dist/consensus/store.d.ts +119 -0
  46. package/dist/evidence/immutable-store.d.ts +86 -0
  47. package/dist/evidence/manager.d.ts +31 -1
  48. package/dist/hooks/actionability-predicate.d.ts +36 -0
  49. package/dist/hooks/curator.d.ts +3 -0
  50. package/dist/hooks/hive-policy.d.ts +11 -0
  51. package/dist/hooks/hive-promoter.d.ts +27 -1
  52. package/dist/hooks/knowledge-dedup-sweep.d.ts +145 -0
  53. package/dist/hooks/knowledge-injector.d.ts +4 -0
  54. package/dist/hooks/knowledge-store.d.ts +26 -0
  55. package/dist/hooks/knowledge-types.d.ts +6 -0
  56. package/dist/hooks/knowledge-validator.d.ts +10 -14
  57. package/dist/hooks/micro-reflector.d.ts +106 -2
  58. package/dist/hooks/realtime-learning-nudge.d.ts +19 -0
  59. package/dist/index.js +427 -419
  60. package/dist/knowledge/entry-merge.d.ts +112 -0
  61. package/dist/knowledge/family-migration.d.ts +6 -2
  62. package/dist/learning/admission.d.ts +154 -0
  63. package/dist/learning/candidate-queue.d.ts +178 -0
  64. package/dist/learning/fingerprint.d.ts +56 -0
  65. package/dist/learning/prm-pattern-support.d.ts +124 -0
  66. package/dist/learning/provenance.d.ts +86 -0
  67. package/dist/prm/index.d.ts +46 -1
  68. package/dist/services/recommendation-ledger.d.ts +266 -0
  69. package/dist/services/skill-improver.d.ts +4 -0
  70. package/dist/services/status-service.d.ts +13 -0
  71. package/dist/services/trajectory-cluster.d.ts +65 -2
  72. package/dist/tools/consensus-mine.d.ts +172 -0
  73. package/dist/tools/index.d.ts +1 -0
  74. package/dist/tools/knowledge-add.d.ts +34 -0
  75. package/dist/tools/manifest.d.ts +1 -0
  76. package/dist/tools/tool-metadata.d.ts +4 -0
  77. package/package.json +1 -1
@@ -23,11 +23,11 @@ import {
23
23
  validateLesson,
24
24
  validateSkillCandidatePath,
25
25
  validateSkillPath
26
- } from "./index-wy3q73j2.js";
27
- import"./index-xa29259t.js";
26
+ } from "./index-xv2ydncg.js";
27
+ import"./index-1atz85c8.js";
28
28
  import"./index-rtry5xyf.js";
29
- import"./index-ts9wh1ba.js";
30
- import"./index-jxha73tm.js";
29
+ import"./index-q68sprcy.js";
30
+ import"./index-fepakwhp.js";
31
31
  import"./index-ae75rja9.js";
32
32
  import"./index-q27bajqb.js";
33
33
  import"./index-bk5tah7q.js";
@@ -4,8 +4,8 @@ import {
4
4
  alreadyCuratedThisGeneration,
5
5
  claimNextScanBatch,
6
6
  getScanStatus
7
- } from "./index-s8h2cedv.js";
8
- import"./index-ts9wh1ba.js";
7
+ } from "./index-pft1qxqh.js";
8
+ import"./index-q68sprcy.js";
9
9
  import"./index-ae75rja9.js";
10
10
  import"./index-q27bajqb.js";
11
11
  import"./index-bk5tah7q.js";
@@ -16,6 +16,7 @@ import {
16
16
  CheckpointConfigSchema,
17
17
  CompactionAdvisoryConfigSchema,
18
18
  CompactionConfigSchema,
19
+ ConsensusConfigSchema,
19
20
  ContextBudgetConfigSchema,
20
21
  ContextMapConfigSchema,
21
22
  CouncilConfigSchema,
@@ -48,6 +49,7 @@ import {
48
49
  KnowledgeConfigSchema,
49
50
  LeanTurboConfigSchema,
50
51
  LeanTurboStrategyConfigSchema,
52
+ LearningConfigSchema,
51
53
  LintConfigSchema,
52
54
  MemoryConfigSchema,
53
55
  ModelPricingConfigSchema,
@@ -89,7 +91,7 @@ import {
89
91
  resolveGeneratedAgentRole,
90
92
  resolveGuardrailsConfig,
91
93
  stripKnownSwarmPrefix
92
- } from "./index-5xxgeksy.js";
94
+ } from "./index-hynbzh7s.js";
93
95
  import"./index-bk5tah7q.js";
94
96
  import"./index-zjygnfay.js";
95
97
  import"./index-bpmtbmy9.js";
@@ -137,6 +139,7 @@ export {
137
139
  ModelPricingConfigSchema,
138
140
  MemoryConfigSchema,
139
141
  LintConfigSchema,
142
+ LearningConfigSchema,
140
143
  LeanTurboStrategyConfigSchema,
141
144
  LeanTurboConfigSchema,
142
145
  KnowledgeConfigSchema,
@@ -169,6 +172,7 @@ export {
169
172
  CouncilConfigSchema,
170
173
  ContextMapConfigSchema,
171
174
  ContextBudgetConfigSchema,
175
+ ConsensusConfigSchema,
172
176
  CompactionConfigSchema,
173
177
  CompactionAdvisoryConfigSchema,
174
178
  CheckpointConfigSchema,
@@ -33,12 +33,12 @@ import {
33
33
  sanitizeSlug,
34
34
  selectCandidateEntries,
35
35
  writeEvalStub
36
- } from "./index-jvyn76xe.js";
37
- import"./index-wy3q73j2.js";
38
- import"./index-xa29259t.js";
36
+ } from "./index-01nyrk95.js";
37
+ import"./index-xv2ydncg.js";
38
+ import"./index-1atz85c8.js";
39
39
  import"./index-rtry5xyf.js";
40
- import"./index-ts9wh1ba.js";
41
- import"./index-jxha73tm.js";
40
+ import"./index-q68sprcy.js";
41
+ import"./index-fepakwhp.js";
42
42
  import"./index-ae75rja9.js";
43
43
  import"./index-q27bajqb.js";
44
44
  import"./index-bk5tah7q.js";
@@ -32,7 +32,7 @@ import {
32
32
  resolveRemoteRefsContainingHead,
33
33
  resolveRemoteRefsContainingHeadAsync,
34
34
  workspaceSnapshotMatches
35
- } from "./index-f2y46pda.js";
35
+ } from "./index-h3k62043.js";
36
36
  import"./index-a76rekgs.js";
37
37
  export {
38
38
  workspaceSnapshotMatches,
@@ -1,6 +1,20 @@
1
+ import type { SkillImproveResult } from '../services/skill-improver.js';
2
+ /**
3
+ * Render the success summary for a completed consolidation run.
4
+ *
5
+ * Extracted as a pure function so the reporting surface — in particular the
6
+ * #1821 AC21 duplicate-suppression line, whose only production consumer is this
7
+ * command — is testable without mocking `runSkillConsolidation`.
8
+ */
9
+ declare function buildConsolidateSummary(improver: SkillImproveResult | undefined, statePath: string, fallbackMaxCalls: number): string;
1
10
  export declare function handleConsolidateCommand(directory: string, args: string[], options?: {
2
11
  sessionID?: string;
3
12
  }): Promise<string>;
4
13
  export declare const _internals: {
5
14
  handleConsolidateCommand: typeof handleConsolidateCommand;
6
15
  };
16
+ /** Pure-function seam for tests (writing-tests SKILL.md, Tier 0). */
17
+ export declare const _test_exports: {
18
+ buildConsolidateSummary: typeof buildConsolidateSummary;
19
+ };
20
+ export {};
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * Returns a summary with counts, or zero counts for empty-state.
9
9
  */
10
+ import { loadPluginConfigWithMeta } from '../config/index.js';
10
11
  import { checkHivePromotions } from '../hooks/hive-promoter.js';
11
12
  import { readKnowledge, resolveSwarmKnowledgePath } from '../hooks/knowledge-store.js';
12
13
  import { readSwarmFileAsync } from '../hooks/utils.js';
@@ -15,6 +16,7 @@ export declare const _internals: {
15
16
  readKnowledge: typeof readKnowledge;
16
17
  resolveSwarmKnowledgePath: typeof resolveSwarmKnowledgePath;
17
18
  readSwarmFileAsync: typeof readSwarmFileAsync;
19
+ loadPluginConfigWithMeta: typeof loadPluginConfigWithMeta;
18
20
  loadCuratorDeps: () => Promise<{
19
21
  CuratorConfigSchema: import("zod").ZodObject<{
20
22
  enabled: import("zod").ZodDefault<import("zod").ZodBoolean>;
@@ -9,5 +9,30 @@
9
9
  * - /swarm promote --force --reason "<why>" ... — Override failed policy gates
10
10
  * with a durable, audited override record (issue #1847 §4). An exact entry id
11
11
  * alone is NEVER authorization to bypass policy; an explicit override is.
12
+ * - /swarm promote --applies-to-tools <a,b> --required-actions <a,b> "<text>"
13
+ * — Supply the actionability fields the default-on `actionability_floor`
14
+ * policy gate requires (issue #1821 A3). Without these the direct-text path
15
+ * has no swarm entry to inherit a predicate/scope from and every promotion
16
+ * would be blocked, forcing operators into `--force` and poisoning the
17
+ * override-audit signal. Ignored on `--from-swarm`, which inherits the source
18
+ * entry's own actionable-directive fields.
12
19
  */
20
+ import { type ManualActionabilityFields } from '../hooks/hive-promoter';
21
+ /** Everything `/swarm promote`'s argument vector can express. */
22
+ export interface ParsedPromoteArgs {
23
+ category?: string;
24
+ lessonId?: string;
25
+ lessonText?: string;
26
+ force: boolean;
27
+ reason?: string;
28
+ actionable: ManualActionabilityFields;
29
+ }
30
+ /**
31
+ * Pure argument parser for `/swarm promote`.
32
+ *
33
+ * Exported so the token-classification rules can be tested directly — the
34
+ * command handler itself performs real knowledge-store I/O, which would force a
35
+ * mock around the one thing worth asserting here.
36
+ */
37
+ export declare function parsePromoteArgs(args: string[]): ParsedPromoteArgs;
13
38
  export declare function handlePromoteCommand(directory: string, args: string[]): Promise<string>;
@@ -698,8 +698,8 @@ export declare const COMMAND_REGISTRY: {
698
698
  readonly promote: {
699
699
  readonly handler: (ctx: CommandContext) => Promise<string>;
700
700
  readonly description: "Manually promote lesson to hive knowledge (policy-gated; --force --reason overrides with audit)";
701
- readonly details: "Promotes a lesson directly to hive knowledge (--category flag sets category) or references an existing swarm lesson by ID (--from-swarm). Promotion runs the one policy evaluator inside a single cross-process transaction (#1847). A policy failure blocks promotion unless --force --reason \"<why>\" is supplied, which records a durable, audited override. An exact entry id alone is never authorization to bypass policy. Either direct text or --from-swarm ID is required.";
702
- readonly args: "--category <category>, --from-swarm <lesson-id>, <lesson-text>";
701
+ readonly details: "Promotes a lesson to hive knowledge directly (--category) or via an existing swarm lesson (--from-swarm), in one cross-process policy transaction (#1847). A policy failure blocks promotion unless --force --reason \"<why>\" is given (audited); an entry id alone is not authorization. Requires direct text or --from-swarm. An actionability floor (#1821) needs at least one predicate flag and one scope flag (see args), unless knowledge.promotion_require_actionable=false.";
702
+ readonly args: "--category <category>, --from-swarm <lesson-id>, --applies-to-tools <a,b>, --applies-to-agents <a,b>, --required-actions <a,b>, --forbidden-actions <a,b>, --verification-checks <a,b>, --force --reason <why>, <lesson-text>";
703
703
  readonly category: "utility";
704
704
  readonly toolPolicy: "none";
705
705
  };
@@ -641,6 +641,7 @@ export declare const KnowledgeConfigSchema: z.ZodObject<{
641
641
  promoted_demotion_signal_threshold: z.ZodDefault<z.ZodNumber>;
642
642
  promotion_min_terminal_applications: z.ZodDefault<z.ZodNumber>;
643
643
  promotion_min_distinct_cohorts: z.ZodDefault<z.ZodNumber>;
644
+ promotion_require_actionable: z.ZodDefault<z.ZodBoolean>;
644
645
  realtime_learning_nudge: z.ZodDefault<z.ZodObject<{
645
646
  enabled: z.ZodDefault<z.ZodBoolean>;
646
647
  first_after_tool_calls: z.ZodDefault<z.ZodNumber>;
@@ -663,6 +664,68 @@ export declare const KnowledgeConfigSchema: z.ZodObject<{
663
664
  }, z.core.$strip>>;
664
665
  }, z.core.$strip>;
665
666
  export type KnowledgeConfig = z.infer<typeof KnowledgeConfigSchema>;
667
+ /**
668
+ * Learning subsystem configuration (issue #1821).
669
+ *
670
+ * Governs the three bounded background learning loops: real-time knowledge
671
+ * admission (drains a queue of candidate lessons while a session is live), PRM
672
+ * pattern persistence, and the duplicate-knowledge sweep. Every budget here
673
+ * exists to keep the loops bounded per session (AGENTS.md invariants 1 and 8) —
674
+ * there is no "unlimited" setting by design.
675
+ *
676
+ * Nested blocks use `.prefault({})` rather than `.default({...})`: in Zod 4 a
677
+ * `.default(value)` is returned verbatim without being parsed, so
678
+ * `.default({})` would yield an empty object and silently skip every inner
679
+ * field default. `.prefault({})` runs the substituted value through the object
680
+ * schema, so inner defaults apply and cannot drift from the field declarations.
681
+ */
682
+ export declare const LearningConfigSchema: z.ZodObject<{
683
+ realtime_admission: z.ZodPrefault<z.ZodObject<{
684
+ enabled: z.ZodDefault<z.ZodBoolean>;
685
+ max_queue_size: z.ZodDefault<z.ZodNumber>;
686
+ min_drain: z.ZodDefault<z.ZodNumber>;
687
+ max_drain: z.ZodDefault<z.ZodNumber>;
688
+ drain_depth_factor: z.ZodDefault<z.ZodNumber>;
689
+ drain_velocity_factor: z.ZodDefault<z.ZodNumber>;
690
+ max_llm_calls_per_session: z.ZodDefault<z.ZodNumber>;
691
+ max_tokens_per_session: z.ZodDefault<z.ZodNumber>;
692
+ max_concurrent_admissions: z.ZodDefault<z.ZodNumber>;
693
+ max_retries_per_candidate: z.ZodDefault<z.ZodNumber>;
694
+ per_candidate_llm_timeout_ms: z.ZodDefault<z.ZodNumber>;
695
+ max_drain_wall_time_ms: z.ZodDefault<z.ZodNumber>;
696
+ supersede_nudge: z.ZodDefault<z.ZodBoolean>;
697
+ }, z.core.$strip>>;
698
+ prm_persistence: z.ZodPrefault<z.ZodObject<{
699
+ enabled: z.ZodDefault<z.ZodBoolean>;
700
+ min_support: z.ZodDefault<z.ZodNumber>;
701
+ cooldown_ms: z.ZodDefault<z.ZodNumber>;
702
+ }, z.core.$strip>>;
703
+ dedup_sweep: z.ZodPrefault<z.ZodObject<{
704
+ enabled: z.ZodDefault<z.ZodBoolean>;
705
+ max_comparisons: z.ZodDefault<z.ZodNumber>;
706
+ max_merges_per_sweep: z.ZodDefault<z.ZodNumber>;
707
+ }, z.core.$strip>>;
708
+ }, z.core.$strip>;
709
+ export type LearningConfig = z.infer<typeof LearningConfigSchema>;
710
+ /**
711
+ * Consensus mining configuration (issue #1821).
712
+ *
713
+ * The consensus miner reads completed evaluation/run evidence and proposes
714
+ * lessons that multiple independent runs agree on. Support thresholds gate what
715
+ * counts as consensus; the excerpt and retention caps keep the generated report
716
+ * bounded.
717
+ */
718
+ export declare const ConsensusConfigSchema: z.ZodObject<{
719
+ enabled: z.ZodDefault<z.ZodBoolean>;
720
+ default_min_support: z.ZodDefault<z.ZodNumber>;
721
+ default_min_successful_runs: z.ZodDefault<z.ZodNumber>;
722
+ default_max_evidence_items: z.ZodDefault<z.ZodNumber>;
723
+ max_excerpt_chars: z.ZodDefault<z.ZodNumber>;
724
+ llm_summarization_enabled: z.ZodDefault<z.ZodBoolean>;
725
+ llm_timeout_ms: z.ZodDefault<z.ZodNumber>;
726
+ report_retention: z.ZodDefault<z.ZodNumber>;
727
+ }, z.core.$strip>;
728
+ export type ConsensusConfig = z.infer<typeof ConsensusConfigSchema>;
666
729
  export declare const MemoryConfigSchema: z.ZodObject<{
667
730
  enabled: z.ZodDefault<z.ZodBoolean>;
668
731
  provider: z.ZodDefault<z.ZodEnum<{
@@ -1961,6 +2024,7 @@ export declare const PluginConfigSchema: z.ZodObject<{
1961
2024
  promoted_demotion_signal_threshold: z.ZodDefault<z.ZodNumber>;
1962
2025
  promotion_min_terminal_applications: z.ZodDefault<z.ZodNumber>;
1963
2026
  promotion_min_distinct_cohorts: z.ZodDefault<z.ZodNumber>;
2027
+ promotion_require_actionable: z.ZodDefault<z.ZodBoolean>;
1964
2028
  realtime_learning_nudge: z.ZodDefault<z.ZodObject<{
1965
2029
  enabled: z.ZodDefault<z.ZodBoolean>;
1966
2030
  first_after_tool_calls: z.ZodDefault<z.ZodNumber>;
@@ -2095,6 +2159,43 @@ export declare const PluginConfigSchema: z.ZodObject<{
2095
2159
  latencyBudgetMs: z.ZodDefault<z.ZodNumber>;
2096
2160
  }, z.core.$strip>>;
2097
2161
  }, z.core.$strip>>;
2162
+ learning: z.ZodOptional<z.ZodObject<{
2163
+ realtime_admission: z.ZodPrefault<z.ZodObject<{
2164
+ enabled: z.ZodDefault<z.ZodBoolean>;
2165
+ max_queue_size: z.ZodDefault<z.ZodNumber>;
2166
+ min_drain: z.ZodDefault<z.ZodNumber>;
2167
+ max_drain: z.ZodDefault<z.ZodNumber>;
2168
+ drain_depth_factor: z.ZodDefault<z.ZodNumber>;
2169
+ drain_velocity_factor: z.ZodDefault<z.ZodNumber>;
2170
+ max_llm_calls_per_session: z.ZodDefault<z.ZodNumber>;
2171
+ max_tokens_per_session: z.ZodDefault<z.ZodNumber>;
2172
+ max_concurrent_admissions: z.ZodDefault<z.ZodNumber>;
2173
+ max_retries_per_candidate: z.ZodDefault<z.ZodNumber>;
2174
+ per_candidate_llm_timeout_ms: z.ZodDefault<z.ZodNumber>;
2175
+ max_drain_wall_time_ms: z.ZodDefault<z.ZodNumber>;
2176
+ supersede_nudge: z.ZodDefault<z.ZodBoolean>;
2177
+ }, z.core.$strip>>;
2178
+ prm_persistence: z.ZodPrefault<z.ZodObject<{
2179
+ enabled: z.ZodDefault<z.ZodBoolean>;
2180
+ min_support: z.ZodDefault<z.ZodNumber>;
2181
+ cooldown_ms: z.ZodDefault<z.ZodNumber>;
2182
+ }, z.core.$strip>>;
2183
+ dedup_sweep: z.ZodPrefault<z.ZodObject<{
2184
+ enabled: z.ZodDefault<z.ZodBoolean>;
2185
+ max_comparisons: z.ZodDefault<z.ZodNumber>;
2186
+ max_merges_per_sweep: z.ZodDefault<z.ZodNumber>;
2187
+ }, z.core.$strip>>;
2188
+ }, z.core.$strip>>;
2189
+ consensus: z.ZodOptional<z.ZodObject<{
2190
+ enabled: z.ZodDefault<z.ZodBoolean>;
2191
+ default_min_support: z.ZodDefault<z.ZodNumber>;
2192
+ default_min_successful_runs: z.ZodDefault<z.ZodNumber>;
2193
+ default_max_evidence_items: z.ZodDefault<z.ZodNumber>;
2194
+ max_excerpt_chars: z.ZodDefault<z.ZodNumber>;
2195
+ llm_summarization_enabled: z.ZodDefault<z.ZodBoolean>;
2196
+ llm_timeout_ms: z.ZodDefault<z.ZodNumber>;
2197
+ report_retention: z.ZodDefault<z.ZodNumber>;
2198
+ }, z.core.$strip>>;
2098
2199
  curator: z.ZodOptional<z.ZodObject<{
2099
2200
  enabled: z.ZodDefault<z.ZodBoolean>;
2100
2201
  init_enabled: z.ZodDefault<z.ZodBoolean>;