opencode-swarm 7.158.1 → 7.159.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 (84) hide show
  1. package/README.md +4 -2
  2. package/dist/cli/{coder-settlement-nrtcjr0h.js → coder-settlement-d89tqam8.js} +9 -9
  3. package/dist/cli/{config-doctor-hs0x10ty.js → config-doctor-8zawz3qh.js} +2 -2
  4. package/dist/cli/{core-a42bexs1.js → core-pp64ys5v.js} +1 -1
  5. package/dist/cli/{curation-policy-vn3m5nq2.js → curation-policy-2gq8307w.js} +6 -6
  6. package/dist/cli/{curator-llm-factory-21vqqvn3.js → curator-llm-factory-m3yw6sn5.js} +30 -30
  7. package/dist/cli/{curator-yawrnk3t.js → curator-mpqpbr0r.js} +30 -30
  8. package/dist/cli/{evidence-summary-service-kmc92b95.js → evidence-summary-service-qaq1eba9.js} +12 -12
  9. package/dist/cli/{gate-evidence-6tzhdxb2.js → gate-evidence-r0c71n04.js} +6 -6
  10. package/dist/cli/{guardrail-explain-7xrdp18c.js → guardrail-explain-5z64w3ah.js} +31 -31
  11. package/dist/cli/{guardrail-log-f16sdc3p.js → guardrail-log-f9nf687y.js} +5 -5
  12. package/dist/cli/{guardrail-reset-0ks08s0t.js → guardrail-reset-yjwk20rb.js} +30 -30
  13. package/dist/cli/{hive-promoter-d661k3qq.js → hive-promoter-zjtgbh4w.js} +30 -30
  14. package/dist/cli/{index-nwkr6tvv.js → index-0zerbq1v.js} +1 -1
  15. package/dist/cli/{index-mc9qgkwd.js → index-1qpagg2t.js} +3 -3
  16. package/dist/cli/{index-tc14d2zy.js → index-29wav1x0.js} +4 -4
  17. package/dist/cli/{index-ygxb3jw4.js → index-2z00wqvb.js} +3 -3
  18. package/dist/cli/{index-4wy9kzjg.js → index-36sgq7n9.js} +32 -32
  19. package/dist/cli/{index-xzhk2hav.js → index-3rcqxbwt.js} +1 -1
  20. package/dist/cli/{index-6x9jq0cd.js → index-3scbg6n2.js} +2 -2
  21. package/dist/cli/{index-zy60xd05.js → index-4k9pqbxw.js} +2 -2
  22. package/dist/cli/{index-mfv7mfgg.js → index-4nc9npx5.js} +2 -2
  23. package/dist/cli/{index-pfnj5pvs.js → index-54pkyasv.js} +1 -1
  24. package/dist/cli/{index-86vvhe8m.js → index-60mzwj91.js} +15 -1
  25. package/dist/cli/{index-8fqb0ynp.js → index-6z53bew2.js} +1 -1
  26. package/dist/cli/{index-jz216dhj.js → index-7yg4ypyg.js} +26 -2
  27. package/dist/cli/{index-ac8rwjsg.js → index-86dvzyac.js} +785 -235
  28. package/dist/cli/{index-tppnfxkm.js → index-8819vcke.js} +4 -4
  29. package/dist/cli/{index-ff8xjr1c.js → index-9fphcxes.js} +2 -2
  30. package/dist/cli/{index-hrrzxz3q.js → index-9yxyc1gb.js} +6 -6
  31. package/dist/cli/{index-zcmwwp1x.js → index-a5w29k1t.js} +1 -1
  32. package/dist/cli/{index-xagq35tf.js → index-av3gnekk.js} +1 -1
  33. package/dist/cli/{index-xscjecyq.js → index-bea260ta.js} +6 -6
  34. package/dist/cli/{index-dr2tfawg.js → index-bz7ayg01.js} +5 -5
  35. package/dist/cli/{index-7qvfkgyk.js → index-f3yphmk6.js} +7 -7
  36. package/dist/cli/{index-5zgf140g.js → index-g6d8xam2.js} +1 -1
  37. package/dist/cli/{index-azx50qge.js → index-gkw7kq6z.js} +5 -5
  38. package/dist/cli/{index-203fqkqk.js → index-k6y6btb6.js} +3 -3
  39. package/dist/cli/{index-h1g8w4v0.js → index-prknc0xn.js} +129 -44
  40. package/dist/cli/{index-z54qw70y.js → index-tvz43tea.js} +1 -1
  41. package/dist/cli/{index-h52hs4e9.js → index-v3jy0tc6.js} +2 -2
  42. package/dist/cli/{index-t8g88esk.js → index-ve3v09kq.js} +1 -1
  43. package/dist/cli/{index-mt6qjp4c.js → index-wae55z9w.js} +81 -72
  44. package/dist/cli/{index-nphnjeh8.js → index-wttqayp1.js} +2 -2
  45. package/dist/cli/{index-5erwyk1b.js → index-yw26j0q7.js} +7 -7
  46. package/dist/cli/{index-2j07670d.js → index-zmc8mm7v.js} +4 -4
  47. package/dist/cli/{index-7s1hmrfh.js → index-zxkv8x5n.js} +2 -2
  48. package/dist/cli/index.js +38 -46
  49. package/dist/cli/{knowledge-escalator-9py5r6c9.js → knowledge-escalator-585m4927.js} +11 -11
  50. package/dist/cli/{knowledge-events-vcbece74.js → knowledge-events-ssegqfmy.js} +9 -9
  51. package/dist/cli/{knowledge-link-cj2abbae.js → knowledge-link-a9fafeb3.js} +5 -5
  52. package/dist/cli/{knowledge-store-0rdfjv20.js → knowledge-store-nznky6cv.js} +6 -6
  53. package/dist/cli/{knowledge-validator-nwjnjgf5.js → knowledge-validator-3byea8gp.js} +8 -8
  54. package/dist/cli/{pending-delegations-ht1vgaze.js → pending-delegations-qrjq3s29.js} +3 -3
  55. package/dist/cli/{pr-review-reentry-authorization-857b9rvv.js → pr-review-reentry-authorization-w8ja0m2p.js} +30 -30
  56. package/dist/cli/{pr-subscriptions-j9j70bmd.js → pr-subscriptions-fvmey1x6.js} +4 -4
  57. package/dist/cli/{runner-sj5sf36c.js → runner-atbehryj.js} +6 -6
  58. package/dist/cli/{scan-cursor-59yj7tp9.js → scan-cursor-kv9scb2v.js} +7 -7
  59. package/dist/cli/{schema-8a7fyp87.js → schema-a7f88yc3.js} +1 -1
  60. package/dist/cli/{scope-persistence-prdxtcr3.js → scope-persistence-x6de46s4.js} +8 -8
  61. package/dist/cli/{skill-generator-v2jkgp63.js → skill-generator-vwcrfrw3.js} +13 -13
  62. package/dist/cli/{telemetry-r8e8zey7.js → telemetry-3rh94wv3.js} +1 -1
  63. package/dist/cli/{worktree-collision-ownership-6x03w8h7.js → worktree-collision-ownership-7kf9mm5z.js} +5 -5
  64. package/dist/cli/{worktree-isolation-s0setq2a.js → worktree-isolation-6zh5bxrd.js} +30 -30
  65. package/dist/commands/close.d.ts +2 -0
  66. package/dist/config/loader.d.ts +3 -0
  67. package/dist/config/project-init.d.ts +11 -7
  68. package/dist/config/schema.d.ts +21 -0
  69. package/dist/evaluation/contracts.d.ts +5 -5
  70. package/dist/evaluation/ephemeral-agent-dispatcher.d.ts +2 -0
  71. package/dist/evaluation/model-dispatcher.d.ts +2 -2
  72. package/dist/index.js +478 -475
  73. package/dist/observability/catalog.d.ts +5 -3
  74. package/dist/review/contracts.d.ts +2 -1
  75. package/dist/review/evidence.d.ts +12 -0
  76. package/dist/services/cost-accounting.d.ts +100 -0
  77. package/dist/services/status-service.d.ts +12 -0
  78. package/dist/telemetry.d.ts +1 -1
  79. package/dist/tools/repo-graph/query.d.ts +1 -0
  80. package/dist/tools/repo-graph/symbol-query.d.ts +47 -0
  81. package/dist/tools/repo-graph/types.d.ts +267 -1
  82. package/dist/tools/repo-graph.d.ts +3 -1
  83. package/opencode-swarm.schema.json +5200 -0
  84. package/package.json +4 -2
@@ -21,7 +21,7 @@ var package_default;
21
21
  var init_package = __esm(() => {
22
22
  package_default = {
23
23
  name: "opencode-swarm",
24
- version: "7.158.1",
24
+ version: "7.159.1",
25
25
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
26
26
  main: "dist/index.js",
27
27
  types: "dist/index.d.ts",
@@ -105,18 +105,20 @@ var init_package = __esm(() => {
105
105
  ".opencode/skills/orchestrating-subagents",
106
106
  ".opencode/skills/durable-session-state",
107
107
  "tests/fixtures/memory-recall",
108
+ "opencode-swarm.schema.json",
108
109
  "README.md",
109
110
  "LICENSE"
110
111
  ],
111
112
  scripts: {
112
113
  clean: `bun -e "require('fs').rmSync('dist',{recursive:true,force:true})"`,
113
- build: "bun run clean && bun run scripts/copy-grammars.ts && bun build src/index.ts --outdir dist --target node --format esm --external web-tree-sitter --minify-whitespace --minify-syntax && bun build src/cli/index.ts --outdir dist/cli --target bun --format esm --external bash-parser --splitting && bun run scripts/copy-grammars.ts --to-dist && tsc --emitDeclarationOnly",
114
+ build: "bun run clean && bun run scripts/generate-config-schema.ts && bun run scripts/copy-grammars.ts && bun build src/index.ts --outdir dist --target node --format esm --external web-tree-sitter --minify-whitespace --minify-syntax && bun build src/cli/index.ts --outdir dist/cli --target bun --format esm --external bash-parser --splitting && bun run scripts/copy-grammars.ts --to-dist && tsc --emitDeclarationOnly",
114
115
  typecheck: "tsc --noEmit",
115
116
  test: "bun test",
116
117
  lint: "biome lint .",
117
118
  "lint:ci": "biome ci .",
118
119
  "test:unit:ci": "bun scripts/ci/run-unit-tests-local.ts",
119
120
  "drift:check": "bun run scripts/drift-check.ts",
121
+ "schema:generate": "bun run scripts/generate-config-schema.ts",
120
122
  "check:runtime-src-refs": "bun run scripts/check-runtime-src-refs.ts",
121
123
  "drift:fix": "bun run scripts/drift-check.ts --fix --confirm",
122
124
  "skills:sync": "bun run scripts/sync-qa-gate-skills.ts",
@@ -358,6 +360,12 @@ var init_schema = __esm(() => {
358
360
  cache_per_million: exports_external.number().min(0).optional()
359
361
  });
360
362
  PricingConfigSchema = exports_external.object({
363
+ currency: exports_external.literal("USD").optional().default("USD"),
364
+ version: exports_external.string().min(1).max(128).optional(),
365
+ effective_at: exports_external.string().datetime().optional(),
366
+ billing_basis: exports_external.enum(["token", "request", "subscription"]).optional(),
367
+ reported_cost_currency: exports_external.record(exports_external.string().min(1).max(128), exports_external.literal("USD")).optional().default({}),
368
+ subscription_unbilled: exports_external.boolean().optional().default(false),
361
369
  models: exports_external.record(exports_external.string().min(1), ModelPricingConfigSchema).optional().default({})
362
370
  });
363
371
  HooksConfigSchema = exports_external.object({
@@ -1652,14 +1660,15 @@ var init_schema = __esm(() => {
1652
1660
  circuit_open_duration_ms: exports_external.number().int().min(1000).max(1800000).default(60000)
1653
1661
  }).strict();
1654
1662
  PluginConfigSchema = exports_external.object({
1655
- config_format_version: exports_external.number().int().min(0).default(1),
1656
- agents: exports_external.record(exports_external.string(), AgentOverrideConfigSchema).optional(),
1663
+ $schema: exports_external.string().optional().catch(undefined).describe("JSON Schema URL for editor validation/autocomplete of this file (issue #1663). Ignored at runtime; malformed values are ignored too."),
1664
+ config_format_version: exports_external.number().int().min(0).default(1).describe("Config format version for the migration table. Increment when fields are deprecated. Distinct from knowledge.schema_version."),
1665
+ agents: exports_external.record(exports_external.string(), AgentOverrideConfigSchema).optional().describe('Per-agent overrides keyed by agent name for the default swarm (e.g. "architect", "coder"). Multi-swarm setups configure agents under swarms.<id>.agents instead.'),
1657
1666
  default_agent: exports_external.string().optional().transform((v) => {
1658
1667
  if (v === undefined)
1659
1668
  return;
1660
1669
  const trimmed = v.trim();
1661
1670
  return trimmed === "" ? undefined : trimmed;
1662
- }),
1671
+ }).describe('Agent set as the primary mode. Omitted: every generated *_architect is primary. Exact generated name (e.g. "local_architect"): only that agent. Base role name (e.g. "coder"): every generated agent with that base role. Unknown strings warn once and fall back to architect primaries.'),
1663
1672
  auto_select_architect: exports_external.union([exports_external.boolean(), exports_external.string()]).optional().transform((v) => {
1664
1673
  if (v === undefined)
1665
1674
  return;
@@ -1667,77 +1676,77 @@ var init_schema = __esm(() => {
1667
1676
  return v;
1668
1677
  const trimmed = v.trim();
1669
1678
  return trimmed === "" ? false : trimmed;
1670
- }),
1671
- swarms: exports_external.record(exports_external.string().regex(/^[^_]+$/, "Swarm ID must not contain underscores"), SwarmConfigSchema).optional(),
1672
- max_iterations: exports_external.number().min(1).max(10).default(5),
1673
- pipeline: PipelineConfigSchema.optional(),
1674
- phase_complete: PhaseCompleteConfigSchema.optional(),
1675
- qa_retry_limit: exports_external.number().min(1).max(10).default(3),
1676
- execution_mode: exports_external.enum(["strict", "balanced", "fast"]).default("balanced"),
1677
- inject_phase_reminders: exports_external.boolean().default(true),
1678
- hooks: HooksConfigSchema.optional(),
1679
- pr_review_resilience: PrReviewResilienceConfigSchema.optional(),
1680
- gates: GateConfigSchema.optional(),
1681
- context_budget: ContextBudgetConfigSchema.optional(),
1682
- pricing: PricingConfigSchema.optional(),
1683
- guardrails: GuardrailsConfigSchema.optional(),
1684
- watchdog: WatchdogConfigSchema.optional(),
1685
- self_review: SelfReviewConfigSchema.optional(),
1686
- auto_review: AutoReviewConfigSchema.optional(),
1687
- tool_filter: ToolFilterConfigSchema.optional(),
1688
- authority: AuthorityConfigSchema.optional(),
1689
- plan_cursor: PlanCursorConfigSchema.optional(),
1690
- context_map: ContextMapConfigSchema.optional(),
1691
- repo_graph: RepoGraphConfigSchema.prefault({}),
1692
- evidence: EvidenceConfigSchema.optional(),
1693
- summaries: SummaryConfigSchema.optional(),
1694
- review_passes: ReviewPassesConfigSchema.optional(),
1695
- adversarial_detection: AdversarialDetectionConfigSchema.optional(),
1696
- adversarial_testing: AdversarialTestingConfigSchema.optional(),
1697
- integration_analysis: IntegrationAnalysisConfigSchema.optional(),
1698
- docs: DocsConfigSchema.optional(),
1699
- design_docs: DesignDocsConfigSchema.optional(),
1700
- git: GitConfigSchema.optional(),
1701
- ui_review: UIReviewConfigSchema.optional(),
1702
- compaction_advisory: CompactionAdvisoryConfigSchema.optional(),
1703
- lint: LintConfigSchema.optional(),
1704
- secretscan: SecretscanConfigSchema.optional(),
1705
- checkpoint: CheckpointConfigSchema.optional(),
1706
- apply_patch: ApplyPatchConfigSchema.optional(),
1707
- automation: AutomationConfigSchema.optional(),
1708
- knowledge: KnowledgeConfigSchema.optional(),
1709
- memory: MemoryConfigSchema.optional(),
1710
- learning: LearningConfigSchema.optional(),
1711
- consensus: ConsensusConfigSchema.optional(),
1712
- curator: CuratorConfigSchema.optional(),
1713
- architectural_supervision: ArchitecturalSupervisionConfigSchema.optional(),
1714
- knowledge_application: KnowledgeApplicationConfigSchema.optional(),
1715
- skillPropagation: SkillPropagationConfigSchema.optional(),
1716
- skill_improver: SkillImproverConfigSchema.optional(),
1717
- harness_evolution: HarnessEvolutionConfigSchema.optional(),
1718
- spec_writer: SpecWriterConfigSchema.optional(),
1679
+ }).describe('Auto-select the swarm architect for new sessions instead of OpenCode built-ins. Omitted or false: manual selection (omitted behaves as false). true: enable auto-select and disable built-in build/plan agents. "<architect_name>" (e.g. "mega_architect"): enable targeting one architect in multi-swarm setups.'),
1680
+ swarms: exports_external.record(exports_external.string().regex(/^[^_]+$/, "Swarm ID must not contain underscores"), SwarmConfigSchema).optional().describe('Multiple swarms keyed by swarm ID (no underscores allowed). The first swarm, or one named "default", provides the primary architect.'),
1681
+ max_iterations: exports_external.number().min(1).max(10).default(5).describe("Maximum pipeline iterations per task (1-10)."),
1682
+ pipeline: PipelineConfigSchema.optional().describe("Pipeline stage/model settings."),
1683
+ phase_complete: PhaseCompleteConfigSchema.optional().describe("Phase-completion gate settings."),
1684
+ qa_retry_limit: exports_external.number().min(1).max(10).default(3).describe("Maximum QA retry rounds per task (1-10)."),
1685
+ execution_mode: exports_external.enum(["strict", "balanced", "fast"]).default("balanced").describe('Performance mode controlling optional hook execution overhead: "strict", "balanced", or "fast".'),
1686
+ inject_phase_reminders: exports_external.boolean().default(true).describe("Inject phase reminder directives during execution."),
1687
+ hooks: HooksConfigSchema.optional().describe("Hook subsystem toggles and settings."),
1688
+ pr_review_resilience: PrReviewResilienceConfigSchema.optional().describe("PR review base-wave staged canary/fanout resilience settings."),
1689
+ gates: GateConfigSchema.optional().describe("Quality gate configuration (v6.9 anti-slop features)."),
1690
+ context_budget: ContextBudgetConfigSchema.optional().describe("Context budget thresholds."),
1691
+ pricing: PricingConfigSchema.optional().describe("Token/cost estimation fallback table. Provider-reported cost wins when present; entries only estimate from usage tokens when reports omit cost."),
1692
+ guardrails: GuardrailsConfigSchema.optional().describe("Loop containment and safety guardrails: tool-call caps, denial tracking, destructive-command blocking, shell audit."),
1693
+ watchdog: WatchdogConfigSchema.optional().describe("Scope-guard and delegation-ledger watchdog settings."),
1694
+ self_review: SelfReviewConfigSchema.optional().describe("Advisory self-review after coder delegation."),
1695
+ auto_review: AutoReviewConfigSchema.optional().describe("Opt-in execution-diff review by the reviewer model in a fresh ephemeral session at task/phase boundaries."),
1696
+ tool_filter: ToolFilterConfigSchema.optional().describe("Controls which tools each agent is allowed to use."),
1697
+ authority: AuthorityConfigSchema.optional().describe("Per-agent file write authority rules."),
1698
+ plan_cursor: PlanCursorConfigSchema.optional().describe("Compressed plan summary injection settings."),
1699
+ context_map: ContextMapConfigSchema.optional().describe("Context Map (issue #1104, FR-006) \u2014 opt-in."),
1700
+ repo_graph: RepoGraphConfigSchema.prefault({}).describe("Repository dependency-graph settings (builder excludes, incremental refresh). Nested defaults materialize when the whole section is omitted."),
1701
+ evidence: EvidenceConfigSchema.optional().describe("Evidence retention and storage settings."),
1702
+ summaries: SummaryConfigSchema.optional().describe("Summary generation settings."),
1703
+ review_passes: ReviewPassesConfigSchema.optional().describe("Dual-pass security review settings."),
1704
+ adversarial_detection: AdversarialDetectionConfigSchema.optional().describe("Same-model adversarial checker detection settings."),
1705
+ adversarial_testing: AdversarialTestingConfigSchema.optional().describe("Cross-model adversarial testing settings."),
1706
+ integration_analysis: IntegrationAnalysisConfigSchema.optional().describe("Integration analysis settings."),
1707
+ docs: DocsConfigSchema.optional().describe("Documentation synthesizer (docs agent) settings."),
1708
+ design_docs: DesignDocsConfigSchema.optional().describe("Structured design-doc generation (issue #1080, docs_design agent) \u2014 opt-in."),
1709
+ git: GitConfigSchema.optional().describe("Git executable resolution override (issue #2236 hardening)."),
1710
+ ui_review: UIReviewConfigSchema.optional().describe("UI/UX review (designer agent) settings."),
1711
+ compaction_advisory: CompactionAdvisoryConfigSchema.optional().describe("Compaction advisory settings."),
1712
+ lint: LintConfigSchema.optional().describe("Lint gate settings."),
1713
+ secretscan: SecretscanConfigSchema.optional().describe("Secret scanning settings."),
1714
+ checkpoint: CheckpointConfigSchema.optional().describe("Checkpoint settings."),
1715
+ apply_patch: ApplyPatchConfigSchema.optional().describe("Apply-patch opt-in fuzzy matching fallback (issue #1718)."),
1716
+ automation: AutomationConfigSchema.optional().describe("Background automation mode and per-feature toggles (v6.7 background-first rollout)."),
1717
+ knowledge: KnowledgeConfigSchema.optional().describe("Two-tier cross-project knowledge base (v6.17)."),
1718
+ memory: MemoryConfigSchema.optional().describe("Swarm memory substrate \u2014 disabled by default so existing flows are unchanged."),
1719
+ learning: LearningConfigSchema.optional().describe("Learning subsystem: real-time admission, PRM persistence, dedup sweep (issue #1821)."),
1720
+ consensus: ConsensusConfigSchema.optional().describe("Consensus mining over completed run evidence (issue #1821)."),
1721
+ curator: CuratorConfigSchema.optional().describe("Phase context consolidation and drift detection."),
1722
+ architectural_supervision: ArchitecturalSupervisionConfigSchema.optional().describe("Hierarchical summary review (issue #893)."),
1723
+ knowledge_application: KnowledgeApplicationConfigSchema.optional().describe("Knowledge-application contract (v2): warn or enforce modes, ack tracking."),
1724
+ skillPropagation: SkillPropagationConfigSchema.optional().describe("Skill propagation gate/injection settings."),
1725
+ skill_improver: SkillImproverConfigSchema.optional().describe("Low-frequency, expensive-model skill improvement loop (issue #629, v2)."),
1726
+ harness_evolution: HarnessEvolutionConfigSchema.optional().describe("Declarative, non-executing HarnessOpt mutation policy (issue #1825)."),
1727
+ spec_writer: SpecWriterConfigSchema.optional().describe("Spec writer agent (v2) \u2014 independent model for .swarm/spec.md authorship."),
1719
1728
  tool_output: exports_external.object({
1720
1729
  truncation_enabled: exports_external.boolean().default(true),
1721
1730
  max_lines: exports_external.number().min(10).max(500).default(150),
1722
1731
  per_tool: exports_external.record(exports_external.string(), exports_external.number()).optional(),
1723
1732
  truncation_tools: exports_external.array(exports_external.string()).optional().describe("Tools to apply output truncation to. Defaults to diff, symbols, bash, shell, test_runner, lint, pre_check_batch, complexity_hotspots, pkg_audit, sbom_generate, schema_drift.")
1724
- }).optional(),
1725
- slop_detector: SlopDetectorConfigSchema.optional(),
1733
+ }).optional().describe("Tool output truncation settings (enable/disable, max lines, per-tool overrides)."),
1734
+ slop_detector: SlopDetectorConfigSchema.optional().describe("Slop detector settings (v6.29)."),
1726
1735
  todo_gate: exports_external.object({
1727
1736
  enabled: exports_external.boolean().default(true),
1728
1737
  max_high_priority: exports_external.number().int().min(-1).default(0).describe("Max new high-priority TODOs (FIXME/HACK/XXX) before warning. 0 = warn on any. Set to -1 to disable."),
1729
1738
  block_on_threshold: exports_external.boolean().default(false).describe("If true, block phase completion when threshold exceeded. Default: advisory only.")
1730
- }).optional(),
1731
- incremental_verify: IncrementalVerifyConfigSchema.optional(),
1732
- compaction_service: CompactionConfigSchema.optional(),
1733
- prm: PrmConfigSchema.optional(),
1734
- council: CouncilConfigSchema.optional(),
1735
- parallelization: ParallelizationConfigSchema.optional(),
1736
- worktree: WorktreeIsolationConfigSchema.optional(),
1737
- turbo: TurboConfigSchema.optional(),
1738
- turbo_mode: exports_external.boolean().default(false).optional(),
1739
- quiet: exports_external.boolean().default(true).optional(),
1740
- version_check: exports_external.boolean().default(true).optional(),
1739
+ }).optional().describe("TODO gate (v6.32): warn or block on new high-priority TODOs (FIXME/HACK/XXX)."),
1740
+ incremental_verify: IncrementalVerifyConfigSchema.optional().describe("Incremental verification settings (v6.29)."),
1741
+ compaction_service: CompactionConfigSchema.optional().describe("Compaction service settings (v6.29)."),
1742
+ prm: PrmConfigSchema.optional().describe("PRM (Process Remediation Manager) settings."),
1743
+ council: CouncilConfigSchema.optional().describe("Work Complete Council \u2014 parallel four-member verification gate, off by default."),
1744
+ parallelization: ParallelizationConfigSchema.optional().describe("Parallelization (PR 1 dark foundation) \u2014 disabled by default; no production code path branches on enabled=true yet."),
1745
+ worktree: WorktreeIsolationConfigSchema.optional().describe("Worktree isolation policy for parallel coder dispatch lanes (general surface; Lean Turbo keeps its legacy per-mode fields)."),
1746
+ turbo: TurboConfigSchema.optional().describe("Turbo execution strategy block (Phase 1). Absent means current behavior unchanged."),
1747
+ turbo_mode: exports_external.boolean().default(false).optional().describe("Bypass reviewer/test gates for rapid iteration (v6.40)."),
1748
+ quiet: exports_external.boolean().default(true).optional().describe("Suppress non-critical startup warnings (default true keeps the TUI clean). Set false to restore verbose warnings for debugging."),
1749
+ version_check: exports_external.boolean().default(true).optional().describe("Background staleness check against npm, throttled to once per 24h (issue #675). Set false to fully disable the network call."),
1741
1750
  full_auto: exports_external.object({
1742
1751
  enabled: exports_external.boolean().default(false),
1743
1752
  locked: exports_external.boolean().default(false),
@@ -1896,11 +1905,11 @@ var init_schema = __esm(() => {
1896
1905
  total_timeout_ms: 120000,
1897
1906
  cleanup_timeout_ms: 2000
1898
1907
  }
1899
- })),
1900
- pr_monitor: PrMonitorConfigSchema.optional(),
1901
- external_skills: ExternalSkillsConfigSchema.optional(),
1902
- skills: SkillsConfigSchema.optional(),
1903
- skill_opt: SkillOptConfigSchema.optional()
1908
+ })).describe("Full-auto autonomous orchestration with critic oversight: permission policy, denial accounting, oversight cadence triggers (v2 preserves v1 fields so existing configs load unchanged)."),
1909
+ pr_monitor: PrMonitorConfigSchema.optional().describe("GitHub PR subscription and polling (FR-001) \u2014 disabled by default; opt-in for real-time PR status updates."),
1910
+ external_skills: ExternalSkillsConfigSchema.optional().describe("External skills: candidate model, discovery, and quarantine store (FR-001) \u2014 all subsystems opt-in."),
1911
+ skills: SkillsConfigSchema.optional().describe("Opt-in gate for the 7 skill_* management tools (FR-004). Default false: the tools are absent from the architect tool surface."),
1912
+ skill_opt: SkillOptConfigSchema.optional().describe("Governed skill optimizer (issue #1822). Disabled by default; /swarm skill-opt run requires enabled: true. All other subcommands are proposal-only/read-only by default.")
1904
1913
  });
1905
1914
  });
1906
1915
 
@@ -14,14 +14,14 @@ import {
14
14
  detectWindowsWrites,
15
15
  getSharedClassifierGuardrailBlock,
16
16
  resolveWriteTargets
17
- } from "./index-ac8rwjsg.js";
17
+ } from "./index-86dvzyac.js";
18
18
  import {
19
19
  checkFileAuthority,
20
20
  classifyFile,
21
21
  isInDeclaredScope,
22
22
  redactPath,
23
23
  redactShellCommand
24
- } from "./index-ff8xjr1c.js";
24
+ } from "./index-9fphcxes.js";
25
25
 
26
26
  // src/services/guardrail-explain-service.ts
27
27
  import path from "path";
@@ -4,26 +4,26 @@ import {
4
4
  } from "./index-dtn0pne5.js";
5
5
  import {
6
6
  loadPluginConfigWithMeta
7
- } from "./index-jz216dhj.js";
7
+ } from "./index-7yg4ypyg.js";
8
8
  import {
9
9
  KnowledgeConfigSchema,
10
10
  init_schema
11
- } from "./index-mt6qjp4c.js";
11
+ } from "./index-wae55z9w.js";
12
12
  import {
13
13
  resolveHiveEventsPath
14
14
  } from "./index-ae75rja9.js";
15
15
  import {
16
16
  resolveKnowledgeStoreDir
17
- } from "./index-5zgf140g.js";
17
+ } from "./index-g6d8xam2.js";
18
18
  import {
19
19
  atomicWriteFile
20
- } from "./index-h52hs4e9.js";
20
+ } from "./index-v3jy0tc6.js";
21
21
  import {
22
22
  assertProjectRoot
23
- } from "./index-xagq35tf.js";
23
+ } from "./index-av3gnekk.js";
24
24
  import {
25
25
  emit
26
- } from "./index-h1g8w4v0.js";
26
+ } from "./index-prknc0xn.js";
27
27
  import {
28
28
  require_proper_lockfile
29
29
  } from "./index-7g4c7s5r.js";
@@ -2793,7 +2793,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
2793
2793
  }
2794
2794
  let bumps = 0;
2795
2795
  if (deltas.length > 0) {
2796
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-0rdfjv20.js");
2796
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-nznky6cv.js");
2797
2797
  bumps = await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
2798
2798
  }
2799
2799
  return {
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  autoCommitDirty,
4
4
  cleanUntrackedFiles
5
- } from "./index-t8g88esk.js";
5
+ } from "./index-ve3v09kq.js";
6
6
  import {
7
7
  isPathWithinDeclaredScope,
8
8
  unsafePathTextReason
@@ -26,13 +26,13 @@ import {
26
26
  atomicWriteFile,
27
27
  taskEvidencePath,
28
28
  withTaskEvidenceLock
29
- } from "./index-h52hs4e9.js";
29
+ } from "./index-v3jy0tc6.js";
30
30
  import {
31
31
  assertProjectRoot
32
- } from "./index-xagq35tf.js";
32
+ } from "./index-av3gnekk.js";
33
33
  import {
34
34
  telemetry
35
- } from "./index-h1g8w4v0.js";
35
+ } from "./index-prknc0xn.js";
36
36
  import {
37
37
  exports_external,
38
38
  init_zod
@@ -9,11 +9,11 @@ import {
9
9
  } from "./index-txdagbh7.js";
10
10
  import {
11
11
  atomicWriteFile
12
- } from "./index-h52hs4e9.js";
12
+ } from "./index-v3jy0tc6.js";
13
13
  import {
14
14
  assertProjectRoot,
15
15
  withEvidenceLock
16
- } from "./index-xagq35tf.js";
16
+ } from "./index-av3gnekk.js";
17
17
  import {
18
18
  exports_external,
19
19
  init_zod
package/dist/cli/index.js CHANGED
@@ -11,53 +11,53 @@ import {
11
11
  readCachePackageVersion,
12
12
  resolveCommand,
13
13
  safeRealpathSync
14
- } from "./index-ac8rwjsg.js";
15
- import"./index-z54qw70y.js";
16
- import"./index-ff8xjr1c.js";
17
- import"./index-86vvhe8m.js";
18
- import"./index-7qvfkgyk.js";
19
- import"./index-7s1hmrfh.js";
14
+ } from "./index-86dvzyac.js";
15
+ import"./index-tvz43tea.js";
16
+ import"./index-9fphcxes.js";
17
+ import"./index-60mzwj91.js";
18
+ import"./index-f3yphmk6.js";
19
+ import"./index-zxkv8x5n.js";
20
20
  import"./index-txdagbh7.js";
21
21
  import"./index-134d35c1.js";
22
22
  import"./index-nj6rmyeh.js";
23
- import"./index-tc14d2zy.js";
24
- import"./index-azx50qge.js";
25
- import"./index-mfv7mfgg.js";
23
+ import"./index-29wav1x0.js";
24
+ import"./index-gkw7kq6z.js";
25
+ import"./index-4nc9npx5.js";
26
26
  import"./index-70ha9e09.js";
27
27
  import"./index-c8s9a3zh.js";
28
28
  import"./index-9ss2m4rs.js";
29
- import"./index-mc9qgkwd.js";
29
+ import"./index-1qpagg2t.js";
30
30
  import"./index-zsrtt42s.js";
31
- import"./index-hrrzxz3q.js";
31
+ import"./index-9yxyc1gb.js";
32
32
  import"./index-3f7hqtgg.js";
33
- import"./index-8fqb0ynp.js";
34
- import"./index-tppnfxkm.js";
35
- import"./index-pfnj5pvs.js";
33
+ import"./index-6z53bew2.js";
34
+ import"./index-8819vcke.js";
35
+ import"./index-54pkyasv.js";
36
36
  import"./index-rtry5xyf.js";
37
- import"./index-2j07670d.js";
38
- import"./index-t8g88esk.js";
39
- import"./index-zy60xd05.js";
37
+ import"./index-zmc8mm7v.js";
38
+ import"./index-ve3v09kq.js";
39
+ import"./index-4k9pqbxw.js";
40
40
  import"./index-ddszzne4.js";
41
- import"./index-dr2tfawg.js";
42
- import"./index-203fqkqk.js";
43
- import"./index-nwkr6tvv.js";
41
+ import"./index-bz7ayg01.js";
42
+ import"./index-k6y6btb6.js";
43
+ import"./index-0zerbq1v.js";
44
44
  import"./index-556ja8an.js";
45
45
  import"./index-4fwbbad3.js";
46
46
  import"./index-b43rt5ph.js";
47
47
  import"./index-q7sjgr1y.js";
48
- import"./index-xscjecyq.js";
49
- import"./index-5erwyk1b.js";
50
- import"./index-6x9jq0cd.js";
48
+ import"./index-bea260ta.js";
49
+ import"./index-yw26j0q7.js";
50
+ import"./index-3scbg6n2.js";
51
51
  import"./index-gprxjmm7.js";
52
52
  import"./index-n832052r.js";
53
53
  import"./index-dtn0pne5.js";
54
54
  import"./index-z6xqpmqg.js";
55
55
  import"./index-r3mvsbtq.js";
56
- import"./index-jz216dhj.js";
56
+ import"./index-7yg4ypyg.js";
57
57
  import {
58
58
  init_package,
59
59
  package_default
60
- } from "./index-mt6qjp4c.js";
60
+ } from "./index-wae55z9w.js";
61
61
  import"./index-9e6fdz2h.js";
62
62
  import"./index-4rhhvd1a.js";
63
63
  import {
@@ -66,13 +66,13 @@ import {
66
66
  } from "./index-yt75r1er.js";
67
67
  import"./index-zjygnfay.js";
68
68
  import"./index-ae75rja9.js";
69
- import"./index-5zgf140g.js";
70
- import"./index-h52hs4e9.js";
69
+ import"./index-g6d8xam2.js";
70
+ import"./index-v3jy0tc6.js";
71
71
  import"./index-bk5tah7q.js";
72
- import"./index-zcmwwp1x.js";
73
- import"./index-xagq35tf.js";
72
+ import"./index-a5w29k1t.js";
73
+ import"./index-av3gnekk.js";
74
74
  import"./index-ed5ykebp.js";
75
- import"./index-h1g8w4v0.js";
75
+ import"./index-prknc0xn.js";
76
76
  import"./index-7g4c7s5r.js";
77
77
  import"./index-bpmtbmy9.js";
78
78
  import"./index-zgwm4ryv.js";
@@ -85,6 +85,13 @@ import * as os from "os";
85
85
  import * as path from "path";
86
86
  import { fileURLToPath } from "url";
87
87
  init_constants();
88
+
89
+ // src/config/project-init.ts
90
+ init_package();
91
+ init_constants();
92
+ var CONFIG_SCHEMA_REF = `https://unpkg.com/opencode-swarm@${package_default.version}/opencode-swarm.schema.json`;
93
+
94
+ // src/cli/index.ts
88
95
  var { version } = package_default;
89
96
  var PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
90
97
  var CONFIG_DIR = getPluginConfigDir();
@@ -203,21 +210,6 @@ function saveJson(filepath, data) {
203
210
  fs.writeFileSync(filepath, `${JSON.stringify(data, null, 2)}
204
211
  `, "utf-8");
205
212
  }
206
- function writeProjectConfigIfMissing(cwd) {
207
- try {
208
- const opencodeDir = path.join(cwd, ".opencode");
209
- const projectConfigPath = path.join(opencodeDir, "opencode-swarm.json");
210
- if (fs.existsSync(projectConfigPath)) {
211
- return;
212
- }
213
- ensureDir(opencodeDir);
214
- saveJson(projectConfigPath, { agents: {} });
215
- console.log("\u2713 Created project config at:", projectConfigPath);
216
- } catch (error) {
217
- console.warn("\u26A0 Could not create project config \u2014 installation will continue:");
218
- console.warn(` ${error instanceof Error ? error.message : String(error)}`);
219
- }
220
- }
221
213
  async function install() {
222
214
  console.log(`\uD83D\uDC1D Installing OpenCode Swarm...
223
215
  `);
@@ -272,6 +264,7 @@ async function install() {
272
264
  }
273
265
  if (!fs.existsSync(PLUGIN_CONFIG_PATH)) {
274
266
  const defaultConfig = {
267
+ $schema: CONFIG_SCHEMA_REF,
275
268
  agents: { ...DEFAULT_AGENT_CONFIGS },
276
269
  max_iterations: 5
277
270
  };
@@ -280,7 +273,6 @@ async function install() {
280
273
  } else {
281
274
  console.log("\u2713 Plugin config already exists at:", PLUGIN_CONFIG_PATH);
282
275
  }
283
- writeProjectConfigIfMissing(process.cwd());
284
276
  console.log(`
285
277
  \uD83D\uDCC1 Configuration files:`);
286
278
  console.log(` OpenCode config: ${OPENCODE_CONFIG_PATH}`);
@@ -9,29 +9,29 @@ import {
9
9
  maybeEscalateOnViolation,
10
10
  maybeQuarantineOnContradiction,
11
11
  readRecentEscalations
12
- } from "./index-azx50qge.js";
13
- import"./index-xscjecyq.js";
14
- import"./index-5erwyk1b.js";
15
- import"./index-6x9jq0cd.js";
12
+ } from "./index-gkw7kq6z.js";
13
+ import"./index-bea260ta.js";
14
+ import"./index-yw26j0q7.js";
15
+ import"./index-3scbg6n2.js";
16
16
  import"./index-gprxjmm7.js";
17
17
  import"./index-n832052r.js";
18
18
  import"./index-dtn0pne5.js";
19
19
  import"./index-z6xqpmqg.js";
20
20
  import"./index-r3mvsbtq.js";
21
- import"./index-jz216dhj.js";
22
- import"./index-mt6qjp4c.js";
21
+ import"./index-7yg4ypyg.js";
22
+ import"./index-wae55z9w.js";
23
23
  import"./index-9e6fdz2h.js";
24
24
  import"./index-4rhhvd1a.js";
25
25
  import"./index-yt75r1er.js";
26
26
  import"./index-zjygnfay.js";
27
27
  import"./index-ae75rja9.js";
28
- import"./index-5zgf140g.js";
29
- import"./index-h52hs4e9.js";
28
+ import"./index-g6d8xam2.js";
29
+ import"./index-v3jy0tc6.js";
30
30
  import"./index-bk5tah7q.js";
31
- import"./index-zcmwwp1x.js";
32
- import"./index-xagq35tf.js";
31
+ import"./index-a5w29k1t.js";
32
+ import"./index-av3gnekk.js";
33
33
  import"./index-ed5ykebp.js";
34
- import"./index-h1g8w4v0.js";
34
+ import"./index-prknc0xn.js";
35
35
  import"./index-7g4c7s5r.js";
36
36
  import"./index-bpmtbmy9.js";
37
37
  import"./index-zgwm4ryv.js";
@@ -29,27 +29,27 @@ import {
29
29
  resolveKnowledgeCounterBaselinePath,
30
30
  resolveKnowledgeEventsPath,
31
31
  resolveLegacyApplicationLogPath
32
- } from "./index-5erwyk1b.js";
33
- import"./index-6x9jq0cd.js";
32
+ } from "./index-yw26j0q7.js";
33
+ import"./index-3scbg6n2.js";
34
34
  import"./index-gprxjmm7.js";
35
35
  import"./index-n832052r.js";
36
36
  import"./index-dtn0pne5.js";
37
37
  import"./index-z6xqpmqg.js";
38
38
  import"./index-r3mvsbtq.js";
39
- import"./index-jz216dhj.js";
40
- import"./index-mt6qjp4c.js";
39
+ import"./index-7yg4ypyg.js";
40
+ import"./index-wae55z9w.js";
41
41
  import"./index-9e6fdz2h.js";
42
42
  import"./index-4rhhvd1a.js";
43
43
  import"./index-yt75r1er.js";
44
44
  import"./index-zjygnfay.js";
45
45
  import"./index-ae75rja9.js";
46
- import"./index-5zgf140g.js";
47
- import"./index-h52hs4e9.js";
46
+ import"./index-g6d8xam2.js";
47
+ import"./index-v3jy0tc6.js";
48
48
  import"./index-bk5tah7q.js";
49
- import"./index-zcmwwp1x.js";
50
- import"./index-xagq35tf.js";
49
+ import"./index-a5w29k1t.js";
50
+ import"./index-av3gnekk.js";
51
51
  import"./index-ed5ykebp.js";
52
- import"./index-h1g8w4v0.js";
52
+ import"./index-prknc0xn.js";
53
53
  import"./index-7g4c7s5r.js";
54
54
  import"./index-bpmtbmy9.js";
55
55
  import"./index-zgwm4ryv.js";
@@ -12,12 +12,12 @@ import {
12
12
  resolveLinkDir,
13
13
  sanitizeLinkId,
14
14
  writeLinkPointer
15
- } from "./index-5zgf140g.js";
16
- import"./index-h52hs4e9.js";
17
- import"./index-zcmwwp1x.js";
18
- import"./index-xagq35tf.js";
15
+ } from "./index-g6d8xam2.js";
16
+ import"./index-v3jy0tc6.js";
17
+ import"./index-a5w29k1t.js";
18
+ import"./index-av3gnekk.js";
19
19
  import"./index-ed5ykebp.js";
20
- import"./index-h1g8w4v0.js";
20
+ import"./index-prknc0xn.js";
21
21
  import"./index-7g4c7s5r.js";
22
22
  import"./index-bpmtbmy9.js";
23
23
  import"./index-zgwm4ryv.js";
@@ -42,17 +42,17 @@ import {
42
42
  transactKnowledge,
43
43
  transactKnowledgeWithCas,
44
44
  wordBigrams
45
- } from "./index-xscjecyq.js";
45
+ } from "./index-bea260ta.js";
46
46
  import {
47
47
  resolveHiveDataDir
48
48
  } from "./index-ae75rja9.js";
49
- import"./index-5zgf140g.js";
50
- import"./index-h52hs4e9.js";
49
+ import"./index-g6d8xam2.js";
50
+ import"./index-v3jy0tc6.js";
51
51
  import"./index-bk5tah7q.js";
52
- import"./index-zcmwwp1x.js";
53
- import"./index-xagq35tf.js";
52
+ import"./index-a5w29k1t.js";
53
+ import"./index-av3gnekk.js";
54
54
  import"./index-ed5ykebp.js";
55
- import"./index-h1g8w4v0.js";
55
+ import"./index-prknc0xn.js";
56
56
  import"./index-7g4c7s5r.js";
57
57
  import"./index-bpmtbmy9.js";
58
58
  import"./index-zgwm4ryv.js";
@@ -23,18 +23,18 @@ import {
23
23
  validateLesson,
24
24
  validateSkillCandidatePath,
25
25
  validateSkillPath
26
- } from "./index-tppnfxkm.js";
27
- import"./index-pfnj5pvs.js";
26
+ } from "./index-8819vcke.js";
27
+ import"./index-54pkyasv.js";
28
28
  import"./index-rtry5xyf.js";
29
- import"./index-xscjecyq.js";
29
+ import"./index-bea260ta.js";
30
30
  import"./index-ae75rja9.js";
31
- import"./index-5zgf140g.js";
32
- import"./index-h52hs4e9.js";
31
+ import"./index-g6d8xam2.js";
32
+ import"./index-v3jy0tc6.js";
33
33
  import"./index-bk5tah7q.js";
34
- import"./index-zcmwwp1x.js";
35
- import"./index-xagq35tf.js";
34
+ import"./index-a5w29k1t.js";
35
+ import"./index-av3gnekk.js";
36
36
  import"./index-ed5ykebp.js";
37
- import"./index-h1g8w4v0.js";
37
+ import"./index-prknc0xn.js";
38
38
  import"./index-7g4c7s5r.js";
39
39
  import"./index-bpmtbmy9.js";
40
40
  import"./index-zgwm4ryv.js";