opencode-swarm 7.0.0-beta.1 → 7.0.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 (541) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1265 -40
  3. package/dist/__tests__/acknowledge-spec-drift.test.d.ts +1 -0
  4. package/dist/__tests__/cli-version.adversarial.test.d.ts +1 -0
  5. package/dist/__tests__/cli-version.test.d.ts +1 -0
  6. package/dist/__tests__/conflict-resolution.test.d.ts +1 -0
  7. package/dist/__tests__/convene-general-council.test.d.ts +10 -0
  8. package/dist/__tests__/critic_drift_verifier-whitelist.test.d.ts +1 -0
  9. package/dist/__tests__/critic_hallucination_verifier-whitelist.test.d.ts +1 -0
  10. package/dist/__tests__/disagreement-detector.test.d.ts +7 -0
  11. package/dist/__tests__/evidence-lock.adversarial.test.d.ts +8 -0
  12. package/dist/__tests__/evidence-lock.test.d.ts +6 -0
  13. package/dist/__tests__/gate-evidence.adversarial.test.d.ts +7 -0
  14. package/dist/__tests__/general-council-service.test.d.ts +7 -0
  15. package/dist/__tests__/lint-spec.test.d.ts +1 -0
  16. package/dist/__tests__/preflight-phase.test.d.ts +1 -0
  17. package/dist/__tests__/qa-gate-hardening.test.d.ts +12 -0
  18. package/dist/__tests__/req-coverage.test.d.ts +1 -0
  19. package/dist/__tests__/security-adversarial.test.d.ts +1 -0
  20. package/dist/__tests__/sounding-board-parser.test.d.ts +1 -0
  21. package/dist/__tests__/spec-hash.test.d.ts +1 -0
  22. package/dist/__tests__/spec-schema.test.d.ts +1 -0
  23. package/dist/__tests__/web-search-provider.test.d.ts +6 -0
  24. package/dist/__tests__/write-drift-evidence-requirement-coverage.test.d.ts +4 -0
  25. package/dist/adversarial-tests.test.d.ts +1 -0
  26. package/dist/agents/architect-permission.adversarial.test.d.ts +5 -0
  27. package/dist/agents/architect.commands-list.adversarial.test.d.ts +1 -0
  28. package/dist/agents/architect.commands-list.test.d.ts +1 -0
  29. package/dist/agents/architect.d.ts +57 -0
  30. package/dist/agents/architect.dark-matter.test.d.ts +1 -0
  31. package/dist/agents/architect.designer-gate.test.d.ts +1 -0
  32. package/dist/agents/coder.d.ts +2 -0
  33. package/dist/agents/council-member.d.ts +30 -0
  34. package/dist/agents/council-member.test.d.ts +8 -0
  35. package/dist/agents/council-moderator.d.ts +20 -0
  36. package/dist/agents/critic.d.ts +34 -0
  37. package/dist/agents/curator-agent.d.ts +14 -0
  38. package/dist/agents/designer.d.ts +2 -0
  39. package/dist/agents/docs.d.ts +2 -0
  40. package/dist/agents/explorer-consumer-contract.test.d.ts +1 -0
  41. package/dist/agents/explorer-role-boundary.test.d.ts +1 -0
  42. package/dist/agents/explorer.d.ts +5 -0
  43. package/dist/agents/index.d.ts +52 -0
  44. package/dist/agents/reviewer.d.ts +5 -0
  45. package/dist/agents/sme.d.ts +2 -0
  46. package/dist/agents/test-engineer.adversarial.test.d.ts +5 -0
  47. package/dist/agents/test-engineer.d.ts +2 -0
  48. package/dist/agents/test-engineer.security.test.d.ts +1 -0
  49. package/dist/background/circuit-breaker.d.ts +149 -0
  50. package/dist/background/event-bus.d.ts +60 -0
  51. package/dist/background/evidence-summary-integration.d.ts +73 -0
  52. package/dist/background/index.d.ts +22 -0
  53. package/dist/background/manager.d.ts +122 -0
  54. package/dist/background/plan-sync-worker.d.ts +122 -0
  55. package/dist/background/queue.d.ts +117 -0
  56. package/dist/background/status-artifact.d.ts +115 -0
  57. package/dist/background/trigger.d.ts +179 -0
  58. package/dist/background/trigger.vulnerability.test.d.ts +1 -0
  59. package/dist/background/worker.d.ts +92 -0
  60. package/dist/cli/index.d.ts +37 -0
  61. package/dist/cli/index.js +31346 -11426
  62. package/dist/commands/acknowledge-spec-drift.d.ts +5 -0
  63. package/dist/commands/brainstorm.d.ts +13 -0
  64. package/dist/commands/brainstorm.test.d.ts +1 -0
  65. package/dist/commands/checkpoint.d.ts +5 -0
  66. package/dist/commands/close.d.ts +11 -0
  67. package/dist/commands/command-adapters.security.test.d.ts +14 -0
  68. package/dist/commands/commands.test.d.ts +1 -0
  69. package/dist/commands/config.d.ts +5 -0
  70. package/dist/commands/council.d.ts +17 -0
  71. package/dist/commands/council.test.d.ts +4 -0
  72. package/dist/commands/curate.test.d.ts +1 -0
  73. package/dist/commands/doctor.d.ts +17 -0
  74. package/dist/commands/full-auto-config-guard.test.d.ts +7 -0
  75. package/dist/commands/full-auto-discoverability.test.d.ts +8 -0
  76. package/dist/commands/full-auto-registration.test.d.ts +5 -0
  77. package/dist/commands/full-auto-sessionid.test.d.ts +5 -0
  78. package/dist/commands/full-auto.d.ts +10 -0
  79. package/dist/commands/full-auto.regression.test.d.ts +10 -0
  80. package/dist/commands/full-auto.test.d.ts +6 -0
  81. package/dist/commands/index.d.ts +50 -0
  82. package/dist/commands/index.help-text.test.d.ts +1 -0
  83. package/dist/commands/issue.d.ts +13 -0
  84. package/dist/{knowledge.d.ts → commands/knowledge.d.ts} +2 -0
  85. package/dist/commands/pr-review.d.ts +11 -0
  86. package/dist/commands/qa-gates.d.ts +15 -0
  87. package/dist/commands/qa-gates.test.d.ts +1 -0
  88. package/dist/commands/registry-documentation.test.d.ts +1 -0
  89. package/dist/commands/registry-type.test.d.ts +1 -0
  90. package/dist/commands/registry.d.ts +282 -0
  91. package/dist/commands/reset-session.d.ts +7 -0
  92. package/dist/{reset.d.ts → commands/reset.d.ts} +1 -1
  93. package/dist/commands/shortcut-routing.test.d.ts +11 -0
  94. package/dist/{sync-plan.d.ts → commands/sync-plan.d.ts} +3 -1
  95. package/dist/commands/turbo-registration.test.d.ts +5 -0
  96. package/dist/commands/turbo-sessionid.test.d.ts +5 -0
  97. package/dist/commands/turbo.regression.test.d.ts +11 -0
  98. package/dist/commands/turbo.test.d.ts +5 -0
  99. package/dist/config/agent-categories.d.ts +12 -0
  100. package/dist/config/cache-paths.d.ts +17 -0
  101. package/dist/config/constants.architect-whitelist.test.d.ts +1 -0
  102. package/dist/config/constants.d.ts +72 -0
  103. package/dist/config/evidence-schema.d.ts +1352 -0
  104. package/dist/config/index.d.ts +11 -0
  105. package/dist/{config.d.ts → config/loader.d.ts} +11 -6
  106. package/dist/config/plan-schema.d.ts +191 -0
  107. package/dist/config/schema.d.ts +1078 -0
  108. package/dist/config/spec-schema.d.ts +113 -0
  109. package/dist/context/role-filter.d.ts +27 -0
  110. package/dist/context/zone-classifier.d.ts +17 -0
  111. package/dist/council/__tests__/council-evidence-writer.adversarial.test.d.ts +6 -0
  112. package/dist/council/council-advisory.d.ts +46 -0
  113. package/dist/council/council-evidence-writer.d.ts +18 -0
  114. package/dist/council/council-service.d.ts +21 -0
  115. package/dist/council/criteria-store.d.ts +9 -0
  116. package/dist/council/disagreement-detector.d.ts +24 -0
  117. package/dist/council/general-council-advisory.d.ts +29 -0
  118. package/dist/council/general-council-service.d.ts +22 -0
  119. package/dist/council/general-council-types.d.ts +98 -0
  120. package/dist/council/types.d.ts +126 -0
  121. package/dist/council/web-search-provider.d.ts +35 -0
  122. package/dist/db/global-db.d.ts +22 -0
  123. package/dist/db/global-db.test.d.ts +7 -0
  124. package/dist/db/index.d.ts +13 -0
  125. package/dist/db/project-db.d.ts +40 -0
  126. package/dist/db/project-db.test.d.ts +4 -0
  127. package/dist/db/qa-gate-profile.d.ts +107 -0
  128. package/dist/db/qa-gate-profile.test.d.ts +4 -0
  129. package/dist/diff/__tests__/semantic-classifier.test.d.ts +1 -0
  130. package/dist/diff/__tests__/summary-generator.test.d.ts +1 -0
  131. package/dist/diff/ast-diff.d.ts +21 -0
  132. package/dist/diff/semantic-classifier.d.ts +59 -0
  133. package/dist/diff/summary-generator.d.ts +33 -0
  134. package/dist/environment/index.d.ts +3 -0
  135. package/dist/environment/profile.d.ts +50 -0
  136. package/dist/environment/prompt-renderer.d.ts +6 -0
  137. package/dist/evidence/index.d.ts +2 -0
  138. package/dist/evidence/lock.d.ts +36 -0
  139. package/dist/evidence/manager.d.ts +78 -0
  140. package/dist/gate-evidence.d.ts +69 -0
  141. package/dist/gate-evidence.test.d.ts +1 -0
  142. package/dist/git/branch.d.ts +70 -0
  143. package/dist/git/index.d.ts +22 -0
  144. package/dist/git/pr.d.ts +28 -0
  145. package/dist/graph/graph-builder.d.ts +39 -0
  146. package/dist/graph/graph-query.d.ts +42 -0
  147. package/dist/graph/graph-store.d.ts +27 -0
  148. package/dist/graph/import-extractor.d.ts +44 -0
  149. package/dist/graph/index.d.ts +16 -0
  150. package/dist/graph/symbol-extractor.d.ts +17 -0
  151. package/dist/graph/types.d.ts +84 -0
  152. package/dist/hooks/__tests__/semantic-diff-injection.test.d.ts +1 -0
  153. package/dist/hooks/adversarial-detector.d.ts +50 -0
  154. package/dist/hooks/agent-activity.d.ts +38 -0
  155. package/dist/hooks/co-change-suggester.d.ts +51 -0
  156. package/dist/hooks/compaction-customizer.d.ts +11 -0
  157. package/dist/hooks/conflict-resolution.d.ts +12 -0
  158. package/dist/hooks/context-budget.d.ts +34 -0
  159. package/dist/hooks/context-scoring.d.ts +70 -0
  160. package/dist/hooks/curator-drift-advisory.test.d.ts +1 -0
  161. package/dist/hooks/curator-drift.d.ts +30 -0
  162. package/dist/hooks/curator-llm-factory.d.ts +20 -0
  163. package/dist/hooks/curator-types.d.ts +103 -0
  164. package/dist/hooks/curator.d.ts +108 -0
  165. package/dist/hooks/dark-matter-detector.d.ts +38 -0
  166. package/dist/hooks/delegation-gate.d.ts +78 -0
  167. package/dist/hooks/delegation-gate.evidence.test.d.ts +4 -0
  168. package/dist/hooks/delegation-gate.getEvidenceTaskId.test.d.ts +20 -0
  169. package/dist/hooks/delegation-gate.plan-fallback-security.test.d.ts +13 -0
  170. package/dist/hooks/delegation-gate.plan-fallback.test.d.ts +5 -0
  171. package/dist/hooks/delegation-gate.seed-state.test.d.ts +1 -0
  172. package/dist/hooks/delegation-gate.turbo-evidence.test.d.ts +8 -0
  173. package/dist/hooks/delegation-gate.verify.test.d.ts +11 -0
  174. package/dist/hooks/delegation-ledger.d.ts +37 -0
  175. package/dist/hooks/delegation-ledger.test.d.ts +11 -0
  176. package/dist/hooks/delegation-sanitizer.d.ts +24 -0
  177. package/dist/hooks/delegation-tracker.d.ts +15 -0
  178. package/dist/hooks/diff-scope.d.ts +12 -0
  179. package/dist/hooks/diff-scope.test.d.ts +1 -0
  180. package/dist/hooks/extractors.d.ts +53 -0
  181. package/dist/hooks/full-auto-intercept.d.ts +77 -0
  182. package/dist/hooks/guardrails.d.ts +174 -0
  183. package/dist/hooks/hive-promoter.d.ts +40 -0
  184. package/dist/hooks/incremental-verify.d.ts +34 -0
  185. package/dist/hooks/incremental-verify.test.d.ts +1 -0
  186. package/dist/hooks/index.d.ts +20 -0
  187. package/dist/hooks/knowledge-curator.d.ts +27 -0
  188. package/dist/hooks/knowledge-injector.d.ts +20 -0
  189. package/dist/hooks/knowledge-migrator.d.ts +11 -0
  190. package/dist/hooks/knowledge-reader.d.ts +22 -0
  191. package/dist/hooks/knowledge-store.d.ts +30 -0
  192. package/dist/hooks/knowledge-types.d.ts +131 -0
  193. package/dist/hooks/knowledge-validator.d.ts +29 -0
  194. package/dist/hooks/loop-detector.d.ts +17 -0
  195. package/dist/hooks/loop-detector.test.d.ts +1 -0
  196. package/dist/hooks/message-priority.d.ts +105 -0
  197. package/dist/hooks/messages-transform.d.ts +13 -0
  198. package/dist/hooks/model-limits.d.ts +96 -0
  199. package/dist/hooks/normalize-tool-name.d.ts +25 -0
  200. package/dist/hooks/phase-monitor.d.ts +29 -0
  201. package/dist/hooks/pipeline-tracker.d.ts +41 -0
  202. package/dist/hooks/repo-graph-builder.d.ts +32 -0
  203. package/dist/hooks/repo-graph-injection.d.ts +45 -0
  204. package/dist/hooks/review-receipt.d.ts +189 -0
  205. package/dist/hooks/scope-guard-throw-behavior.test.d.ts +15 -0
  206. package/dist/hooks/scope-guard.adversarial.test.d.ts +1 -0
  207. package/dist/hooks/scope-guard.d.ts +43 -0
  208. package/dist/hooks/scope-guard.test.d.ts +14 -0
  209. package/dist/hooks/self-review.d.ts +14 -0
  210. package/dist/hooks/self-review.test.d.ts +14 -0
  211. package/dist/hooks/semantic-diff-injection.d.ts +24 -0
  212. package/dist/hooks/slop-detector.adversarial.test.d.ts +1 -0
  213. package/dist/hooks/slop-detector.d.ts +17 -0
  214. package/dist/hooks/slop-detector.test.d.ts +1 -0
  215. package/dist/hooks/spawn-helper.d.ts +5 -0
  216. package/dist/hooks/spawn-helper.test.d.ts +1 -0
  217. package/dist/hooks/steering-consumed.d.ts +30 -0
  218. package/dist/hooks/system-enhancer.d.ts +30 -0
  219. package/dist/hooks/tool-summarizer.d.ts +28 -0
  220. package/dist/hooks/trajectory-logger.d.ts +69 -0
  221. package/dist/hooks/utils.d.ts +20 -0
  222. package/dist/hooks/watchdog.integration.test.d.ts +9 -0
  223. package/dist/index.adversarial-bootstrap.test.d.ts +1 -0
  224. package/dist/index.bootstrap-adversarial.test.d.ts +1 -0
  225. package/dist/index.bootstrap-directory.test.d.ts +1 -0
  226. package/dist/index.d.ts +8 -1
  227. package/dist/index.js +74690 -47646
  228. package/dist/knowledge/identity.d.ts +25 -0
  229. package/dist/knowledge/index.d.ts +2 -0
  230. package/dist/lang/detector.d.ts +20 -0
  231. package/dist/lang/framework-detector.d.ts +98 -0
  232. package/dist/lang/grammars/tree-sitter-dart.wasm +0 -0
  233. package/dist/lang/grammars/tree-sitter-kotlin.wasm +0 -0
  234. package/dist/lang/grammars/tree-sitter-swift.wasm +0 -0
  235. package/dist/lang/grammars/tree-sitter.wasm +0 -0
  236. package/dist/lang/index.d.ts +4 -0
  237. package/dist/lang/profiles.d.ts +72 -0
  238. package/dist/lang/registry.d.ts +24 -0
  239. package/dist/lang/runtime.d.ts +35 -0
  240. package/dist/model-fallback.adversarial.test.d.ts +22 -0
  241. package/dist/model-fallback.test.d.ts +12 -0
  242. package/dist/mutation/__tests__/engine.adversarial.test.d.ts +1 -0
  243. package/dist/mutation/__tests__/engine.test.d.ts +1 -0
  244. package/dist/mutation/__tests__/equivalence.adversarial.test.d.ts +1 -0
  245. package/dist/mutation/__tests__/equivalence.test.d.ts +1 -0
  246. package/dist/mutation/__tests__/gate.adversarial.test.d.ts +1 -0
  247. package/dist/mutation/__tests__/gate.test.d.ts +1 -0
  248. package/dist/mutation/__tests__/generator.test.d.ts +1 -0
  249. package/dist/mutation/engine.d.ts +47 -0
  250. package/dist/mutation/equivalence.d.ts +35 -0
  251. package/dist/mutation/gate.d.ts +28 -0
  252. package/dist/mutation/generator.d.ts +16 -0
  253. package/dist/output/agent-writer.d.ts +27 -0
  254. package/dist/output/index.d.ts +1 -0
  255. package/dist/parallel/dependency-graph.d.ts +34 -0
  256. package/dist/parallel/dispatcher/index.d.ts +12 -0
  257. package/dist/parallel/dispatcher/noop-dispatcher.d.ts +18 -0
  258. package/dist/parallel/dispatcher/noop-dispatcher.test.d.ts +10 -0
  259. package/dist/parallel/dispatcher/parallel-dispatcher.d.ts +18 -0
  260. package/dist/parallel/dispatcher/types.d.ts +33 -0
  261. package/dist/parallel/file-locks.d.ts +40 -0
  262. package/dist/parallel/index.d.ts +5 -0
  263. package/dist/parallel/meta-indexer.d.ts +32 -0
  264. package/dist/parallel/review-router.d.ts +29 -0
  265. package/dist/plan/checkpoint.d.ts +25 -0
  266. package/dist/plan/checkpoint.test.d.ts +1 -0
  267. package/dist/plan/index.d.ts +1 -0
  268. package/dist/plan/ledger-integrity.test.d.ts +5 -0
  269. package/dist/plan/ledger-snapshot-adversarial.test.d.ts +1 -0
  270. package/dist/plan/ledger.d.ts +286 -0
  271. package/dist/plan/ledger.test.d.ts +1 -0
  272. package/dist/plan/manager.cas-backoff.test.d.ts +10 -0
  273. package/dist/plan/manager.d.ts +90 -0
  274. package/dist/plan/manager.ledger-aware.test.d.ts +1 -0
  275. package/dist/plan/manager.loadplan-validation-guard.test.d.ts +13 -0
  276. package/dist/plan/manager.update-task-status.test.d.ts +1 -0
  277. package/dist/plan/migration-revert.regression.test.d.ts +8 -0
  278. package/dist/prm/__tests__/course-correction.test.d.ts +1 -0
  279. package/dist/prm/__tests__/escalation-queue-drain.test.d.ts +1 -0
  280. package/dist/prm/__tests__/escalation.test.d.ts +1 -0
  281. package/dist/prm/__tests__/index.test.d.ts +1 -0
  282. package/dist/prm/__tests__/integration.test.d.ts +1 -0
  283. package/dist/prm/__tests__/pattern-detector.test.d.ts +5 -0
  284. package/dist/prm/__tests__/replay.test.d.ts +1 -0
  285. package/dist/prm/__tests__/trajectory-store.test.d.ts +7 -0
  286. package/dist/prm/course-correction.d.ts +20 -0
  287. package/dist/prm/escalation.d.ts +73 -0
  288. package/dist/prm/index.d.ts +58 -0
  289. package/dist/prm/pattern-detector.d.ts +71 -0
  290. package/dist/prm/replay.d.ts +44 -0
  291. package/dist/prm/trajectory-store.d.ts +66 -0
  292. package/dist/prm/types.d.ts +120 -0
  293. package/dist/quality/index.d.ts +1 -0
  294. package/dist/quality/metrics.d.ts +25 -0
  295. package/dist/sast/rules/c.d.ts +9 -0
  296. package/dist/sast/rules/csharp.d.ts +9 -0
  297. package/dist/sast/rules/go.d.ts +9 -0
  298. package/dist/sast/rules/index.d.ts +72 -0
  299. package/dist/sast/rules/java.d.ts +9 -0
  300. package/dist/sast/rules/javascript.d.ts +9 -0
  301. package/dist/sast/rules/php.d.ts +9 -0
  302. package/dist/sast/rules/python.d.ts +9 -0
  303. package/dist/sast/semgrep.d.ts +68 -0
  304. package/dist/sast/semgrep.test.d.ts +1 -0
  305. package/dist/sbom/cyclonedx.d.ts +101 -0
  306. package/dist/sbom/detectors/dart.d.ts +7 -0
  307. package/dist/sbom/detectors/dotnet.d.ts +7 -0
  308. package/dist/sbom/detectors/go.d.ts +7 -0
  309. package/dist/sbom/detectors/index.d.ts +53 -0
  310. package/dist/sbom/detectors/java.d.ts +7 -0
  311. package/dist/sbom/detectors/nodejs.d.ts +7 -0
  312. package/dist/sbom/detectors/python.d.ts +7 -0
  313. package/dist/sbom/detectors/rust.d.ts +7 -0
  314. package/dist/sbom/detectors/swift.d.ts +7 -0
  315. package/dist/scope/scope-persistence.d.ts +109 -0
  316. package/dist/scope/scope-persistence.test.d.ts +13 -0
  317. package/dist/services/compaction-service.d.ts +28 -0
  318. package/dist/services/compaction-service.test.d.ts +1 -0
  319. package/dist/services/config-doctor.d.ts +125 -0
  320. package/dist/services/config-doctor.security.test.d.ts +1 -0
  321. package/dist/services/config-doctor.test.d.ts +1 -0
  322. package/dist/services/context-budget-service.d.ts +101 -0
  323. package/dist/services/decision-drift-analyzer.d.ts +96 -0
  324. package/dist/services/diagnose-service.d.ts +41 -0
  325. package/dist/services/evidence-service.d.ts +65 -0
  326. package/dist/services/evidence-summary-service.d.ts +75 -0
  327. package/dist/services/export-service.d.ts +30 -0
  328. package/dist/services/handoff-service.d.ts +74 -0
  329. package/dist/services/history-service.d.ts +35 -0
  330. package/dist/services/index.d.ts +13 -0
  331. package/dist/services/plan-service.d.ts +25 -0
  332. package/dist/services/preflight-integration.d.ts +38 -0
  333. package/dist/services/preflight-service.d.ts +62 -0
  334. package/dist/services/run-memory.d.ts +66 -0
  335. package/dist/services/status-service.d.ts +35 -0
  336. package/dist/services/status-service.turbo-indicator.test.d.ts +5 -0
  337. package/dist/services/tool-doctor.d.ts +26 -0
  338. package/dist/services/tool-doctor.test.d.ts +1 -0
  339. package/dist/services/version-check.d.ts +28 -0
  340. package/dist/services/warning-buffer.d.ts +9 -0
  341. package/dist/session/snapshot-reader.d.ts +37 -0
  342. package/dist/session/snapshot-writer.d.ts +115 -0
  343. package/dist/skills/index.d.ts +30 -0
  344. package/dist/state/agent-run-context.d.ts +24 -0
  345. package/dist/state.agent-run-context.test.d.ts +10 -0
  346. package/dist/state.d.ts +501 -1
  347. package/dist/state.rehydrate.test.d.ts +1 -0
  348. package/dist/state.rehydration-adversarial.test.d.ts +1 -0
  349. package/dist/state.rehydration-integration.test.d.ts +1 -0
  350. package/dist/state.session-restart.test.d.ts +7 -0
  351. package/dist/summaries/index.d.ts +2 -0
  352. package/dist/summaries/manager.d.ts +29 -0
  353. package/dist/summaries/summarizer.d.ts +38 -0
  354. package/dist/telemetry.d.ts +59 -0
  355. package/dist/telemetry.test.d.ts +1 -0
  356. package/dist/test-impact/__tests__/analyzer-import-fix.adversarial.test.d.ts +1 -0
  357. package/dist/test-impact/__tests__/analyzer-import-fix.test.d.ts +1 -0
  358. package/dist/test-impact/__tests__/analyzer.adversarial.test.d.ts +1 -0
  359. package/dist/test-impact/__tests__/analyzer.test.d.ts +1 -0
  360. package/dist/test-impact/__tests__/council-fixes.test.d.ts +1 -0
  361. package/dist/test-impact/__tests__/failure-classifier.adversarial.test.d.ts +1 -0
  362. package/dist/test-impact/__tests__/failure-classifier.test.d.ts +1 -0
  363. package/dist/test-impact/__tests__/flaky-detector.adversarial.test.d.ts +1 -0
  364. package/dist/test-impact/__tests__/flaky-detector.test.d.ts +1 -0
  365. package/dist/test-impact/__tests__/history-store.adversarial.test.d.ts +1 -0
  366. package/dist/test-impact/__tests__/history-store.test.d.ts +1 -0
  367. package/dist/test-impact/__tests__/test-impact.adversarial.test.d.ts +1 -0
  368. package/dist/test-impact/__tests__/test-impact.test.d.ts +1 -0
  369. package/dist/test-impact/analyzer.d.ts +9 -0
  370. package/dist/test-impact/failure-classifier.d.ts +26 -0
  371. package/dist/test-impact/flaky-detector.d.ts +14 -0
  372. package/dist/test-impact/history-store.d.ts +15 -0
  373. package/dist/tools/__tests__/barrel-exports.test.d.ts +1 -0
  374. package/dist/tools/__tests__/diff-ast-fallback.test.d.ts +1 -0
  375. package/dist/tools/__tests__/diff-markdown-summary.test.d.ts +1 -0
  376. package/dist/tools/__tests__/diff-semantic.test.d.ts +1 -0
  377. package/dist/tools/__tests__/diff-summary.adversarial.test.d.ts +1 -0
  378. package/dist/tools/__tests__/diff-summary.test.d.ts +1 -0
  379. package/dist/tools/__tests__/mutation-test.adversarial.test.d.ts +1 -0
  380. package/dist/tools/__tests__/mutation-test.sourcefiles.test.d.ts +1 -0
  381. package/dist/tools/__tests__/mutation-test.test.d.ts +1 -0
  382. package/dist/tools/__tests__/test-runner-history.test.d.ts +1 -0
  383. package/dist/tools/__tests__/test-runner-impact.adversarial.test.d.ts +1 -0
  384. package/dist/tools/__tests__/test-runner-impact.test.d.ts +1 -0
  385. package/dist/tools/__tests__/test-runner-source-files.test.d.ts +1 -0
  386. package/dist/tools/barrel-export-check-gate-status.test.d.ts +6 -0
  387. package/dist/tools/batch-symbols.d.ts +24 -0
  388. package/dist/tools/batch-symbols.test.d.ts +1 -0
  389. package/dist/tools/build-check.d.ts +50 -0
  390. package/dist/tools/check-gate-status.adversarial.test.d.ts +1 -0
  391. package/dist/tools/check-gate-status.d.ts +7 -0
  392. package/dist/tools/check-gate-status.gates.test.d.ts +1 -0
  393. package/dist/tools/check-gate-status.plugin-registration.test.d.ts +1 -0
  394. package/dist/tools/checkpoint.d.ts +12 -0
  395. package/dist/tools/co-change-analyzer.d.ts +45 -0
  396. package/dist/tools/completion-verify.d.ts +25 -0
  397. package/dist/tools/complexity-hotspots.d.ts +2 -0
  398. package/dist/tools/convene-council.d.ts +53 -0
  399. package/dist/tools/convene-general-council.d.ts +25 -0
  400. package/dist/{create-tool.d.ts → tools/create-tool.d.ts} +13 -1
  401. package/dist/tools/curator-analyze.d.ts +7 -0
  402. package/dist/tools/curator-analyze.test.d.ts +1 -0
  403. package/dist/tools/declare-council-criteria.d.ts +14 -0
  404. package/dist/tools/declare-scope.d.ts +50 -0
  405. package/dist/tools/diff-summary.d.ts +12 -0
  406. package/dist/tools/diff.d.ts +24 -0
  407. package/dist/tools/doc-scan.d.ts +38 -0
  408. package/dist/tools/domain-detector.d.ts +6 -0
  409. package/dist/tools/evidence-check.d.ts +8 -0
  410. package/dist/tools/file-extractor.d.ts +9 -0
  411. package/dist/tools/generate-mutants.d.ts +15 -0
  412. package/dist/tools/get-approved-plan.d.ts +55 -0
  413. package/dist/tools/get-qa-gate-profile.d.ts +27 -0
  414. package/dist/tools/gitingest.d.ts +18 -0
  415. package/dist/tools/imports.d.ts +5 -0
  416. package/dist/tools/index.d.ts +66 -0
  417. package/dist/tools/knowledge-add.d.ts +2 -0
  418. package/dist/tools/knowledge-query.d.ts +5 -0
  419. package/dist/tools/knowledge-recall.d.ts +2 -0
  420. package/dist/tools/knowledge-remove.d.ts +2 -0
  421. package/dist/tools/knowledge-tools.integration.test.d.ts +1 -0
  422. package/dist/tools/lint-spec.d.ts +2 -0
  423. package/dist/tools/lint.d.ts +63 -0
  424. package/dist/tools/mutation-test.d.ts +2 -0
  425. package/dist/tools/mutation-test.security.test.d.ts +1 -0
  426. package/dist/tools/phase-complete.d.ts +25 -0
  427. package/dist/tools/pkg-audit.d.ts +2 -0
  428. package/dist/tools/placeholder-scan.d.ts +28 -0
  429. package/dist/tools/plugin-registration-adversarial.test.d.ts +1 -0
  430. package/dist/tools/pre-check-batch.d.ts +89 -0
  431. package/dist/tools/quality-budget.d.ts +26 -0
  432. package/dist/tools/repo-graph.d.ts +226 -0
  433. package/dist/tools/repo-map.d.ts +2 -0
  434. package/dist/tools/req-coverage.d.ts +47 -0
  435. package/dist/tools/resolve-working-directory.d.ts +35 -0
  436. package/dist/tools/resolve-working-directory.test.d.ts +1 -0
  437. package/dist/tools/retrieve-summary.d.ts +2 -0
  438. package/dist/tools/sast-baseline.d.ts +126 -0
  439. package/dist/tools/sast-scan.d.ts +87 -0
  440. package/dist/tools/save-plan.d.ts +95 -0
  441. package/dist/tools/save-plan.subdirectory-rejection.test.d.ts +1 -0
  442. package/dist/tools/sbom-generate.d.ts +26 -0
  443. package/dist/tools/schema-drift.d.ts +2 -0
  444. package/dist/tools/search.adversarial.test.d.ts +1 -0
  445. package/dist/tools/search.d.ts +29 -0
  446. package/dist/tools/search.test.d.ts +1 -0
  447. package/dist/tools/secretscan.d.ts +35 -0
  448. package/dist/tools/set-qa-gates.d.ts +40 -0
  449. package/dist/tools/suggest-patch.adversarial.test.d.ts +1 -0
  450. package/dist/tools/suggest-patch.d.ts +37 -0
  451. package/dist/tools/suggest-patch.test.d.ts +1 -0
  452. package/dist/tools/symbols.d.ts +21 -0
  453. package/dist/tools/syntax-check.d.ts +37 -0
  454. package/dist/tools/test-impact.d.ts +2 -0
  455. package/dist/tools/test-runner.d.ts +86 -0
  456. package/dist/tools/test-runner.security-adversarial.test.d.ts +5 -0
  457. package/dist/tools/todo-extract.d.ts +2 -0
  458. package/dist/tools/tool-names.d.ts +10 -0
  459. package/dist/tools/update-task-status.adversarial.test.d.ts +13 -0
  460. package/dist/tools/update-task-status.d.ts +114 -0
  461. package/dist/tools/update-task-status.gates.test.d.ts +1 -0
  462. package/dist/tools/update-task-status.test.d.ts +1 -0
  463. package/dist/tools/update-task-status.turbo-bypass.test.d.ts +1 -0
  464. package/dist/tools/verify-six-tools-registration.test.d.ts +9 -0
  465. package/dist/tools/web-search.d.ts +13 -0
  466. package/dist/tools/write-drift-evidence.d.ts +31 -0
  467. package/dist/tools/write-hallucination-evidence.d.ts +30 -0
  468. package/dist/tools/write-mutation-evidence.d.ts +34 -0
  469. package/dist/tools/write-mutation-evidence.test.d.ts +1 -0
  470. package/dist/tools/write-retro.d.ts +55 -0
  471. package/dist/transient-retry.test.d.ts +10 -0
  472. package/dist/types/delegation.d.ts +24 -0
  473. package/dist/types/events.d.ts +125 -0
  474. package/dist/utils/errors.d.ts +33 -0
  475. package/dist/utils/gitignore-warning.d.ts +17 -0
  476. package/dist/utils/index.d.ts +4 -0
  477. package/dist/utils/logger.d.ts +3 -0
  478. package/dist/utils/merge.d.ts +5 -0
  479. package/dist/utils/path-security.d.ts +36 -0
  480. package/dist/utils/regex.d.ts +30 -0
  481. package/dist/utils/spec-hash.d.ts +15 -0
  482. package/dist/utils/tool-output.d.ts +12 -0
  483. package/dist/validation/task-id.d.ts +43 -0
  484. package/package.json +21 -14
  485. package/dist/architect.d.ts +0 -7
  486. package/dist/checkpoint.d.ts +0 -7
  487. package/dist/co-change-analyzer.d.ts +0 -1
  488. package/dist/compat.d.ts +0 -12
  489. package/dist/config-doctor.d.ts +0 -1
  490. package/dist/detector.d.ts +0 -7
  491. package/dist/diagnose-service.d.ts +0 -1
  492. package/dist/doctor.d.ts +0 -5
  493. package/dist/evidence-schema.d.ts +0 -2
  494. package/dist/evidence-service.d.ts +0 -1
  495. package/dist/export-service.d.ts +0 -1
  496. package/dist/handoff-service.d.ts +0 -1
  497. package/dist/history-service.d.ts +0 -1
  498. package/dist/hive-promoter.d.ts +0 -2
  499. package/dist/knowledge-migrator.d.ts +0 -2
  500. package/dist/knowledge-store.d.ts +0 -1
  501. package/dist/knowledge-types.d.ts +0 -1
  502. package/dist/knowledge-validator.d.ts +0 -2
  503. package/dist/loader.d.ts +0 -1
  504. package/dist/manager.d.ts +0 -1
  505. package/dist/models.d.ts +0 -1
  506. package/dist/plan-service.d.ts +0 -1
  507. package/dist/preflight-service.d.ts +0 -1
  508. package/dist/profiles.d.ts +0 -7
  509. package/dist/register.d.ts +0 -36
  510. package/dist/schema.d.ts +0 -2
  511. package/dist/snapshot-writer.d.ts +0 -1
  512. package/dist/status-service.d.ts +0 -15
  513. package/dist/telemetry/src/events.d.ts +0 -308
  514. package/dist/telemetry/src/guards.d.ts +0 -14
  515. package/dist/telemetry/src/index.d.ts +0 -4
  516. package/dist/telemetry/src/version.d.ts +0 -1
  517. package/dist/utils.d.ts +0 -1
  518. package/dist/write-retro.d.ts +0 -1
  519. /package/dist/{discovery.d.ts → build/discovery.d.ts} +0 -0
  520. /package/dist/{agents.d.ts → commands/agents.d.ts} +0 -0
  521. /package/dist/{analyze.d.ts → commands/analyze.d.ts} +0 -0
  522. /package/dist/{archive.d.ts → commands/archive.d.ts} +0 -0
  523. /package/dist/{benchmark.d.ts → commands/benchmark.d.ts} +0 -0
  524. /package/dist/{clarify.d.ts → commands/clarify.d.ts} +0 -0
  525. /package/dist/{curate.d.ts → commands/curate.d.ts} +0 -0
  526. /package/dist/{dark-matter.d.ts → commands/dark-matter.d.ts} +0 -0
  527. /package/dist/{diagnose.d.ts → commands/diagnose.d.ts} +0 -0
  528. /package/dist/{evidence.d.ts → commands/evidence.d.ts} +0 -0
  529. /package/dist/{export.d.ts → commands/export.d.ts} +0 -0
  530. /package/dist/{handoff.d.ts → commands/handoff.d.ts} +0 -0
  531. /package/dist/{history.d.ts → commands/history.d.ts} +0 -0
  532. /package/dist/{plan.d.ts → commands/plan.d.ts} +0 -0
  533. /package/dist/{preflight.d.ts → commands/preflight.d.ts} +0 -0
  534. /package/dist/{promote.d.ts → commands/promote.d.ts} +0 -0
  535. /package/dist/{retrieve.d.ts → commands/retrieve.d.ts} +0 -0
  536. /package/dist/{rollback.d.ts → commands/rollback.d.ts} +0 -0
  537. /package/dist/{simulate.d.ts → commands/simulate.d.ts} +0 -0
  538. /package/dist/{specify.d.ts → commands/specify.d.ts} +0 -0
  539. /package/dist/{status.d.ts → commands/status.d.ts} +0 -0
  540. /package/dist/{turbo.d.ts → commands/turbo.d.ts} +0 -0
  541. /package/dist/{write_retro.d.ts → commands/write-retro.d.ts} +0 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Per-project SQLite database for opencode-swarm.
3
+ *
4
+ * Owns `.swarm/swarm.db` in each project directory. Stores per-project
5
+ * constraints and QA gate profiles. One cached instance per normalized
6
+ * directory path.
7
+ */
8
+ import type { Database } from 'bun:sqlite';
9
+ /**
10
+ * Run all pending migrations on the provided database.
11
+ * Idempotent: existing migrations are not re-applied.
12
+ */
13
+ export declare function runProjectMigrations(db: Database): void;
14
+ /**
15
+ * Return the absolute path to `.swarm/swarm.db` for the given directory.
16
+ * Does not create the file or any parent directory.
17
+ */
18
+ export declare function projectDbPath(directory: string): string;
19
+ /**
20
+ * Return true iff the project DB file already exists on disk. Does not
21
+ * open the DB, create `.swarm/`, or run migrations. Intended for
22
+ * read-only callers (e.g. `getProfile`) that must avoid mutating the
23
+ * workspace just to check for a missing record.
24
+ */
25
+ export declare function projectDbExists(directory: string): boolean;
26
+ /**
27
+ * Return the cached project database for the given directory, opening it
28
+ * if needed. Creates `.swarm/` if absent and enables WAL + foreign keys.
29
+ */
30
+ export declare function getProjectDb(directory: string): Database;
31
+ /**
32
+ * Close and remove the cached project database for the given directory.
33
+ * Test-only.
34
+ */
35
+ export declare function closeProjectDb(directory: string): void;
36
+ /**
37
+ * Close and remove all cached project databases.
38
+ * Test-only.
39
+ */
40
+ export declare function closeAllProjectDbs(): void;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Tests for src/db/project-db.ts.
3
+ */
4
+ export {};
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Service layer for the `qa_gate_profile` table in the per-project database.
3
+ *
4
+ * A QA gate profile is keyed by plan_id and captures which QA gates are
5
+ * enabled for that plan. Profiles are locked after critic approval; once
6
+ * locked, row updates are rejected by a SQLite trigger and by this service.
7
+ * Sessions can only ratchet gates tighter (enable more), never disable them.
8
+ */
9
+ /**
10
+ * QA gate flags. All ten gates are tracked explicitly.
11
+ */
12
+ export interface QaGates {
13
+ reviewer: boolean;
14
+ test_engineer: boolean;
15
+ council_mode: boolean;
16
+ sme_enabled: boolean;
17
+ critic_pre_plan: boolean;
18
+ hallucination_guard: boolean;
19
+ sast_enabled: boolean;
20
+ mutation_test: boolean;
21
+ council_general_review: boolean;
22
+ drift_check: boolean;
23
+ }
24
+ /**
25
+ * Default QA gate configuration for newly-created profiles.
26
+ */
27
+ export declare const DEFAULT_QA_GATES: QaGates;
28
+ /**
29
+ * Row-level representation of a persisted QA gate profile.
30
+ */
31
+ export interface QaGateProfile {
32
+ id: number;
33
+ plan_id: string;
34
+ created_at: string;
35
+ project_type: string | null;
36
+ gates: QaGates;
37
+ locked_at: string | null;
38
+ locked_by_snapshot_seq: number | null;
39
+ }
40
+ /**
41
+ * Fetch the profile for `planId` or return null if none exists.
42
+ *
43
+ * Read-only: if `.swarm/swarm.db` does not exist yet, returns null
44
+ * without creating the DB file or running migrations. This keeps callers
45
+ * on read-only paths (`get_approved_plan`, `get_qa_gate_profile`, the
46
+ * `qa-gates show` command) from silently mutating the workspace just by
47
+ * looking for a profile. Write paths (`getOrCreateProfile`, `setGates`,
48
+ * `lockProfile`) continue to initialize the DB on demand.
49
+ */
50
+ export declare function getProfile(directory: string, planId: string): QaGateProfile | null;
51
+ /**
52
+ * Return the existing profile for `planId`, or create a new one seeded with
53
+ * `DEFAULT_QA_GATES` if none exists. Tolerates races on the UNIQUE index.
54
+ */
55
+ export declare function getOrCreateProfile(directory: string, planId: string, projectType?: string): QaGateProfile;
56
+ /**
57
+ * Update gates for `planId`. Gates can only be ratcheted tighter —
58
+ * attempting to disable a currently-enabled gate throws. Throws if the
59
+ * profile is locked.
60
+ */
61
+ export declare function setGates(directory: string, planId: string, gates: Partial<QaGates>): QaGateProfile;
62
+ /**
63
+ * Lock the profile for `planId`, recording the snapshot seq that anchors it.
64
+ * Idempotent: locking an already-locked profile returns it unchanged.
65
+ */
66
+ export declare function lockProfile(directory: string, planId: string, snapshotSeq: number): QaGateProfile;
67
+ /**
68
+ * Compute a SHA-256 hex digest over the stable identity of a profile.
69
+ * Used by `get_approved_plan` for drift detection.
70
+ */
71
+ export declare function computeProfileHash(profile: QaGateProfile): string;
72
+ /**
73
+ * Merge session-level gate overrides on top of the spec-level profile.
74
+ * Session overrides can only ratchet gates tighter (set to true); false
75
+ * values in overrides are ignored.
76
+ *
77
+ * IMPORTANT — caller responsibility: this function is the *computation*
78
+ * of effective gates, not an enforcement point. Enforcement consumers
79
+ * must call this at their own check sites, passing the current profile
80
+ * from `getProfile` and the agent session's `qaGateSessionOverrides ?? {}`.
81
+ * Reading raw `profile.gates` directly from an enforcement site will
82
+ * silently ignore operator-applied session overrides.
83
+ *
84
+ * Active enforcement consumers (keep this list in sync when wiring new gates):
85
+ * - reviewer / test_engineer — src/hooks/delegation-gate.ts (Stage B state
86
+ * machine; blocks coder→next-coder advancement until reviewer + test_engineer
87
+ * delegations observed).
88
+ * - council_mode — src/state.ts isCouncilGateActive + src/hooks/delegation-gate.ts
89
+ * (Stage B replaced by submit_council_verdicts verdict).
90
+ * - sme_enabled — consumed during MODE: BRAINSTORM/SPECIFY architect dialogue.
91
+ * - critic_pre_plan — consumed by MODE: PLAN critic delegation before save_plan.
92
+ * - sast_enabled — consumed inside pre_check_batch tool.
93
+ * - hallucination_guard — src/tools/phase-complete.ts Gate 3 (blocks phase_complete
94
+ * until .swarm/evidence/{phase}/hallucination-guard.json has APPROVED verdict).
95
+ * - mutation_test — src/tools/phase-complete.ts Gate 4 (blocks phase_complete
96
+ * until .swarm/evidence/{phase}/mutation-gate.json has pass verdict; warn does not block)
97
+ * - council_general_review — src/agents/architect.ts SPECIFY-COUNCIL-REVIEW
98
+ * (fires when gate is true; runs convene_general_council on draft spec before
99
+ * critic-gate to fold multi-model deliberation into the spec).
100
+ * - drift_check — src/tools/phase-complete.ts Gate 2 (blocks phase_complete when
101
+ * drift-verifier.json missing or rejected)
102
+ *
103
+ * Session overrides are intentionally ephemeral — they live only in
104
+ * in-memory `AgentSessionState.qaGateSessionOverrides` and are NOT
105
+ * persisted to the session snapshot. Process restart clears them.
106
+ */
107
+ export declare function getEffectiveGates(profile: QaGateProfile, sessionOverrides: Partial<QaGates>): QaGates;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Tests for src/db/qa-gate-profile.ts.
3
+ */
4
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ export interface ASTChange {
2
+ type: 'added' | 'modified' | 'removed' | 'renamed';
3
+ category: 'function' | 'class' | 'type' | 'export' | 'import' | 'variable' | 'other';
4
+ name: string;
5
+ lineStart: number;
6
+ lineEnd: number;
7
+ signature?: string;
8
+ renamedFrom?: string;
9
+ }
10
+ export interface ASTDiffResult {
11
+ filePath: string;
12
+ language: string | null;
13
+ changes: ASTChange[];
14
+ durationMs: number;
15
+ usedAST: boolean;
16
+ error?: string;
17
+ }
18
+ /**
19
+ * Compute AST-level diff between old and new file content
20
+ */
21
+ export declare function computeASTDiff(filePath: string, oldContent: string, newContent: string): Promise<ASTDiffResult>;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Semantic classifier for AST changes.
3
+ * Classifies AST changes into semantic categories with risk ranking.
4
+ * @module diff/semantic-classifier
5
+ */
6
+ import type { ASTDiffResult } from '../diff/ast-diff.js';
7
+ /**
8
+ * Semantic categories for classified changes.
9
+ * Describes the nature of the change from a code impact perspective.
10
+ */
11
+ export type ChangeCategory = 'SIGNATURE_CHANGE' | 'API_CHANGE' | 'GUARD_REMOVED' | 'LOGIC_CHANGE' | 'DELETED_FUNCTION' | 'NEW_FUNCTION' | 'REFACTOR' | 'COSMETIC' | 'UNCLASSIFIED';
12
+ /**
13
+ * Risk level associated with a classified change.
14
+ * Indicates the potential impact severity of the change.
15
+ */
16
+ export type RiskLevel = 'Critical' | 'High' | 'Medium' | 'Low';
17
+ /**
18
+ * A classified AST change with semantic categorization and risk assessment.
19
+ */
20
+ export interface ClassifiedChange {
21
+ /** Semantic category of the change */
22
+ category: ChangeCategory;
23
+ /** Risk level indicating potential impact severity */
24
+ riskLevel: RiskLevel;
25
+ /** Path to the file containing this change */
26
+ filePath: string;
27
+ /** Name of the symbol (function, class, etc.) affected */
28
+ symbolName: string;
29
+ /** Type of change operation */
30
+ changeType: 'added' | 'modified' | 'removed' | 'renamed';
31
+ /** Starting line number of the change */
32
+ lineStart: number;
33
+ /** Ending line number of the change */
34
+ lineEnd: number;
35
+ /** Human-readable description of what was detected */
36
+ description: string;
37
+ /** Original AST change signature detail (if available) */
38
+ signature?: string;
39
+ /** Original name before rename, if this is a renamed symbol */
40
+ renamedFrom?: string;
41
+ /** Number of files that depend on this file (blast radius indicator) */
42
+ consumersCount?: number;
43
+ }
44
+ /**
45
+ * Classify an array of AST diff results into semantic categories with risk levels.
46
+ *
47
+ * @param astDiffs - Array of ASTDiffResult from the AST differ
48
+ * @returns Array of ClassifiedChange with semantic categorization
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const diffs = await astDiff(oldCode, newCode);
53
+ * const classified = classifyChanges(diffs);
54
+ * for (const change of classified) {
55
+ * console.log(`[${change.riskLevel}] ${change.category}: ${change.symbolName}`);
56
+ * }
57
+ * ```
58
+ */
59
+ export declare function classifyChanges(astDiffs: ASTDiffResult[], fileConsumers?: Record<string, number>): ClassifiedChange[];
@@ -0,0 +1,33 @@
1
+ import type { ChangeCategory, ClassifiedChange, RiskLevel } from './semantic-classifier.js';
2
+ /**
3
+ * Structured summary of classified semantic diff changes.
4
+ * Provides multiple views for different review workflows.
5
+ */
6
+ export interface SemanticDiffSummary {
7
+ /** Number of files with changes */
8
+ totalFiles: number;
9
+ /** Total number of classified changes */
10
+ totalChanges: number;
11
+ /** Changes grouped by risk level */
12
+ byRisk: Record<RiskLevel, ClassifiedChange[]>;
13
+ /** Changes grouped by category */
14
+ byCategory: Record<ChangeCategory, ClassifiedChange[]>;
15
+ /** Quick access to Critical items for gate checks */
16
+ criticalItems: ClassifiedChange[];
17
+ }
18
+ /**
19
+ * Generates a structured summary from classified changes.
20
+ * Provides by-risk and by-category groupings plus critical item quick access.
21
+ *
22
+ * @param changes - Array of classified changes to summarize
23
+ * @returns SemanticDiffSummary with all grouping views
24
+ */
25
+ export declare function generateSummary(changes: ClassifiedChange[]): SemanticDiffSummary;
26
+ /**
27
+ * Generates reviewer-ready markdown summary from a SemanticDiffSummary.
28
+ * Format groups by risk level with file:category annotations.
29
+ *
30
+ * @param summary - The structured summary to render as markdown
31
+ * @returns Markdown-formatted string ready for PR review
32
+ */
33
+ export declare function generateSummaryMarkdown(summary: SemanticDiffSummary): string;
@@ -0,0 +1,3 @@
1
+ export type { CommandPolicy, EnvironmentProfile, ExecutionMode, HostOS, OperatingMode, ShellFamily, } from './profile.js';
2
+ export { deriveCommandPolicy, detectEnvironmentProfile } from './profile.js';
3
+ export { renderEnvironmentPrompt } from './prompt-renderer.js';
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Session-level execution environment profiling for opencode-swarm.
3
+ * Computed once per session; never re-detected within a session.
4
+ */
5
+ export type HostOS = 'windows' | 'linux' | 'macos' | 'unknown';
6
+ export type ShellFamily = 'powershell' | 'cmd' | 'bash' | 'zsh' | 'sh' | 'unknown';
7
+ export type ExecutionMode = 'native' | 'docker' | 'wsl' | 'unknown';
8
+ export type OperatingMode = 'linux' | 'macos-native' | 'windows-native' | 'unknown';
9
+ export interface EnvironmentProfile {
10
+ hostOS: HostOS;
11
+ shellFamily: ShellFamily;
12
+ executionMode: ExecutionMode;
13
+ operatingMode: OperatingMode;
14
+ isWindowsNative: boolean;
15
+ isWindowsDocker: boolean;
16
+ isWSL: boolean;
17
+ pathStyle: 'windows' | 'posix';
18
+ shellCommandPreference: 'powershell-native' | 'posix-native';
19
+ evidence: {
20
+ processPlatform: string;
21
+ comspec?: string;
22
+ psModulePath?: string;
23
+ termProgram?: string;
24
+ shell?: string;
25
+ wslDistroName?: string;
26
+ containerMarkers: string[];
27
+ };
28
+ }
29
+ export interface CommandPolicy {
30
+ preferredShell: ShellFamily;
31
+ avoidPosixExamples: boolean;
32
+ preferNodeApis: boolean;
33
+ preferToolingOverShell: boolean;
34
+ pathExampleStyle: 'windows' | 'posix';
35
+ examples: {
36
+ listDir: string;
37
+ removeFile: string;
38
+ setEnv: string;
39
+ printEnv: string;
40
+ searchText: string;
41
+ };
42
+ }
43
+ /**
44
+ * Detect the current execution environment. Call once per session.
45
+ */
46
+ export declare function detectEnvironmentProfile(): EnvironmentProfile;
47
+ /**
48
+ * Derive a CommandPolicy from a detected EnvironmentProfile.
49
+ */
50
+ export declare function deriveCommandPolicy(profile: EnvironmentProfile): CommandPolicy;
@@ -0,0 +1,6 @@
1
+ import type { EnvironmentProfile } from './profile.js';
2
+ /**
3
+ * Renders a concise runtime environment block for agent prompts.
4
+ * Audience: 'coder' or 'testengineer'
5
+ */
6
+ export declare function renderEnvironmentPrompt(profile: EnvironmentProfile, audience: 'coder' | 'testengineer'): string;
@@ -0,0 +1,2 @@
1
+ export type { LoadEvidenceResult } from './manager';
2
+ export { archiveEvidence, deleteEvidence, listEvidenceTaskIds, loadEvidence, sanitizeTaskId, saveEvidence, } from './manager';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Evidence write-lock helper (PR 1 — dark foundation).
3
+ *
4
+ * Wraps every evidence read-modify-write path with a proper-lockfile-backed
5
+ * exclusive lock so that concurrent writers cannot interleave their
6
+ * read-compute-write cycles. The underlying temp-file-plus-rename atomic
7
+ * write is preserved; this lock adds a coordinating layer on top.
8
+ *
9
+ * Telemetry events emitted:
10
+ * evidence_lock_acquired — lock obtained, fn executing
11
+ * evidence_lock_contended — lock busy, backing off before retry
12
+ * evidence_lock_stale_recovered — stale lock detected and recovered by proper-lockfile
13
+ * (timeout path emits nothing extra; EvidenceLockTimeoutError is thrown instead)
14
+ */
15
+ export declare class EvidenceLockTimeoutError extends Error {
16
+ readonly directory: string;
17
+ readonly evidencePath: string;
18
+ readonly agent: string;
19
+ readonly taskId: string;
20
+ constructor(directory: string, evidencePath: string, agent: string, taskId: string, timeoutMs: number);
21
+ }
22
+ /**
23
+ * Acquire an exclusive evidence lock, execute `fn`, then release the lock.
24
+ *
25
+ * Retries with exponential backoff until `evidenceLockTimeoutMs` elapses,
26
+ * then throws `EvidenceLockTimeoutError`. Always releases the lock in a
27
+ * `finally` block even if `fn` throws.
28
+ *
29
+ * @param directory Project root directory
30
+ * @param evidencePath Relative path of the evidence file to lock
31
+ * @param agent Acquiring agent name (for diagnostics)
32
+ * @param taskId Task identifier (for diagnostics)
33
+ * @param fn Callback that performs the read-modify-write
34
+ * @param timeoutMs Maximum wait time before EvidenceLockTimeoutError (default 60 000)
35
+ */
36
+ export declare function withEvidenceLock<T>(directory: string, evidencePath: string, agent: string, taskId: string, fn: () => Promise<T>, timeoutMs?: number): Promise<T>;
@@ -0,0 +1,78 @@
1
+ import { type BuildEvidence, type Evidence, type EvidenceBundle, type PlaceholderEvidence, type QualityBudgetEvidence, type SastEvidence, type SbomEvidence, type SecretscanEvidence, type SyntaxEvidence } from '../config/evidence-schema';
2
+ /**
3
+ * Discriminated union returned by loadEvidence.
4
+ * - 'found': file exists and passed Zod schema validation
5
+ * - 'not_found': file does not exist on disk
6
+ * - 'invalid_schema': file exists but failed Zod validation; errors contains field names
7
+ */
8
+ export type LoadEvidenceResult = {
9
+ status: 'found';
10
+ bundle: EvidenceBundle;
11
+ } | {
12
+ status: 'not_found';
13
+ } | {
14
+ status: 'invalid_schema';
15
+ errors: string[];
16
+ };
17
+ /**
18
+ * All valid evidence types (13 total)
19
+ */
20
+ export declare const VALID_EVIDENCE_TYPES: readonly ["review", "test", "diff", "approval", "note", "retrospective", "syntax", "placeholder", "sast", "sbom", "build", "quality_budget", "secretscan"];
21
+ /**
22
+ * Check if a string is a valid evidence type.
23
+ * Returns true if the type is recognized, false otherwise.
24
+ */
25
+ export declare function isValidEvidenceType(type: string): type is (typeof VALID_EVIDENCE_TYPES)[number];
26
+ /**
27
+ * Type guards for new evidence types
28
+ */
29
+ export declare function isSyntaxEvidence(evidence: Evidence): evidence is SyntaxEvidence;
30
+ export declare function isPlaceholderEvidence(evidence: Evidence): evidence is PlaceholderEvidence;
31
+ export declare function isSastEvidence(evidence: Evidence): evidence is SastEvidence;
32
+ export declare function isSbomEvidence(evidence: Evidence): evidence is SbomEvidence;
33
+ export declare function isBuildEvidence(evidence: Evidence): evidence is BuildEvidence;
34
+ export declare function isQualityBudgetEvidence(evidence: Evidence): evidence is QualityBudgetEvidence;
35
+ /**
36
+ * Type guard for secretscan evidence
37
+ */
38
+ export declare function isSecretscanEvidence(evidence: Evidence): evidence is SecretscanEvidence;
39
+ import { sanitizeTaskId as _sanitizeTaskId } from '../validation/task-id';
40
+ export declare const sanitizeTaskId: typeof _sanitizeTaskId;
41
+ /**
42
+ * Save evidence to a task's evidence bundle.
43
+ * Creates new bundle if doesn't exist, appends to existing.
44
+ * Performs atomic write via temp file + rename.
45
+ * @throws Error if task ID is invalid or size limit would be exceeded
46
+ */
47
+ export declare function saveEvidence(directory: string, taskId: string, evidence: Evidence): Promise<EvidenceBundle>;
48
+ /**
49
+ * Load evidence bundle for a task.
50
+ * Returns a LoadEvidenceResult discriminated union.
51
+ */
52
+ export declare function loadEvidence(directory: string, taskId: string): Promise<LoadEvidenceResult>;
53
+ /**
54
+ * List all task IDs that have evidence bundles.
55
+ * Returns sorted array of valid task IDs.
56
+ * Returns empty array if evidence directory doesn't exist.
57
+ */
58
+ export declare function listEvidenceTaskIds(directory: string): Promise<string[]>;
59
+ /**
60
+ * Delete evidence bundle for a task.
61
+ * Returns true if deleted, false if didn't exist or deletion failed.
62
+ */
63
+ export declare function deleteEvidence(directory: string, taskId: string): Promise<boolean>;
64
+ /**
65
+ * Check if a requirement coverage file exists for a given phase.
66
+ * Looks for .swarm/evidence/req-coverage-phase-{N}.json
67
+ */
68
+ export declare function checkRequirementCoverage(phase: number, directory: string): Promise<{
69
+ exists: boolean;
70
+ path: string;
71
+ }>;
72
+ /**
73
+ * Archive old evidence bundles based on retention policy.
74
+ * Removes evidence older than maxAgeDays.
75
+ * If maxBundles is provided, enforces a maximum bundle count by deleting oldest first.
76
+ * Returns array of archived (deleted) task IDs.
77
+ */
78
+ export declare function archiveEvidence(directory: string, maxAgeDays: number, maxBundles?: number): Promise<string[]>;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Gate Evidence Store
3
+ *
4
+ * Durable, task-scoped evidence for QA gate completion.
5
+ * Evidence is recorded on disk (.swarm/evidence/{taskId}.json) by the
6
+ * delegation-gate toolAfter hook and read by checkReviewerGate at
7
+ * update_task_status(completed) time.
8
+ *
9
+ * Evidence files survive session restarts (unlike in-memory state).
10
+ * Agents never write these files directly — only the hook does.
11
+ * Gates are append-only: required_gates can only grow, never shrink.
12
+ */
13
+ export interface GateEvidence {
14
+ sessionId: string;
15
+ timestamp: string;
16
+ agent: string;
17
+ }
18
+ export interface TaskEvidence {
19
+ taskId: string;
20
+ required_gates: string[];
21
+ gates: Record<string, GateEvidence>;
22
+ turbo?: boolean;
23
+ }
24
+ export declare const DEFAULT_REQUIRED_GATES: string[];
25
+ /**
26
+ * Canonical task-id validation helper.
27
+ * Delegates to the shared strict validator (#452 item 2).
28
+ * Re-exported for backward compatibility with existing callers.
29
+ */
30
+ export declare function isValidTaskId(taskId: string): boolean;
31
+ /**
32
+ * Maps the first-dispatched agent type to the initial required_gates array.
33
+ * Unknown agent types fall back to the safe default ["reviewer", "test_engineer"].
34
+ */
35
+ export declare function deriveRequiredGates(agentType: string): string[];
36
+ /**
37
+ * Returns the union of existingGates and deriveRequiredGates(newAgentType).
38
+ * Sorted, deduplicated. Gates can only grow, never shrink.
39
+ */
40
+ export declare function expandRequiredGates(existingGates: string[], newAgentType: string): string[];
41
+ /**
42
+ * Creates or updates .swarm/evidence/{taskId}.json with a gate pass entry.
43
+ * If file doesn't exist: creates with required_gates from deriveRequiredGates(gate).
44
+ * If file exists: merges gate entry, expands required_gates via expandRequiredGates.
45
+ * Atomic write: temp file + rename.
46
+ */
47
+ export declare function recordGateEvidence(directory: string, taskId: string, gate: string, sessionId: string, turbo?: boolean): Promise<void>;
48
+ /**
49
+ * Sets or expands required_gates WITHOUT recording a gate pass.
50
+ * Used when non-gate agents are dispatched (coder, explorer, sme, etc.).
51
+ * Creates evidence file if it doesn't exist yet.
52
+ */
53
+ export declare function recordAgentDispatch(directory: string, taskId: string, agentType: string, turbo?: boolean): Promise<void>;
54
+ /**
55
+ * Returns the TaskEvidence for a task, or null if file missing or parse error.
56
+ * Never throws.
57
+ */
58
+ export declare function readTaskEvidence(directory: string, taskId: string): Promise<TaskEvidence | null>;
59
+ /**
60
+ * Returns the TaskEvidence for a task, or null if the file does not exist (ENOENT).
61
+ * Throws on malformed JSON, permission errors, or other non-ENOENT issues.
62
+ * Used by checkReviewerGate for evidence-first gate checking with proper error handling.
63
+ */
64
+ export declare function readTaskEvidenceRaw(directory: string, taskId: string): TaskEvidence | null;
65
+ /**
66
+ * Returns true only when every required_gate has a matching gates entry.
67
+ * Returns false if no evidence file exists.
68
+ */
69
+ export declare function hasPassedAllGates(directory: string, taskId: string): Promise<boolean>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Check if we're in a git repository
3
+ */
4
+ export declare function isGitRepo(cwd: string): boolean;
5
+ /**
6
+ * Get current branch name
7
+ */
8
+ export declare function getCurrentBranch(cwd: string): string;
9
+ /**
10
+ * Create a new branch
11
+ * @param cwd - Working directory
12
+ * @param branchName - Name of the branch to create
13
+ * @param remote - Remote name (default: 'origin')
14
+ */
15
+ export declare function createBranch(cwd: string, branchName: string, remote?: string): void;
16
+ /**
17
+ * Get list of changed files compared to main/master
18
+ * @param cwd - Working directory
19
+ * @param branch - Base branch to compare against (optional, auto-detected if not provided)
20
+ * @returns Array of changed file paths, or empty array if error occurs
21
+ */
22
+ export declare function getChangedFiles(cwd: string, branch?: string): string[];
23
+ /**
24
+ * Get default base branch (main or master)
25
+ */
26
+ export declare function getDefaultBaseBranch(cwd: string): string;
27
+ /**
28
+ * Stage specific files for commit
29
+ * @param cwd - Working directory
30
+ * @param files - Array of file paths to stage (must not be empty)
31
+ * @throws Error if files array is empty
32
+ */
33
+ export declare function stageFiles(cwd: string, files: string[]): void;
34
+ /**
35
+ * Stage all files in the working directory
36
+ * @param cwd - Working directory
37
+ */
38
+ export declare function stageAll(cwd: string): void;
39
+ /**
40
+ * Commit changes
41
+ */
42
+ export declare function commitChanges(cwd: string, message: string): void;
43
+ /**
44
+ * Get current commit SHA
45
+ */
46
+ export declare function getCurrentSha(cwd: string): string;
47
+ /**
48
+ * Check if there are uncommitted changes
49
+ */
50
+ export declare function hasUncommittedChanges(cwd: string): boolean;
51
+ export interface ResetToRemoteBranchResult {
52
+ success: boolean;
53
+ targetBranch: string;
54
+ localBranch: string;
55
+ message: string;
56
+ alreadyAligned: boolean;
57
+ prunedBranches: string[];
58
+ warnings: string[];
59
+ }
60
+ /**
61
+ * Reset local branch to align with its remote counterpart.
62
+ * Safely handles uncommitted changes, unpushed commits, and detached HEAD states.
63
+ *
64
+ * @param cwd - Working directory
65
+ * @param options - Options including pruneBranches flag
66
+ * @returns Result object with success status and details
67
+ */
68
+ export declare function resetToRemoteBranch(cwd: string, options?: {
69
+ pruneBranches?: boolean;
70
+ }): ResetToRemoteBranchResult;
@@ -0,0 +1,22 @@
1
+ import { createBranch, isGitRepo } from './branch.js';
2
+ import { isAuthenticated, isGhAvailable } from './pr.js';
3
+ export interface PRWorkflowOptions {
4
+ title: string;
5
+ body?: string;
6
+ branch?: string;
7
+ }
8
+ export interface PRWorkflowResult {
9
+ success: boolean;
10
+ url?: string;
11
+ number?: number;
12
+ error?: string;
13
+ }
14
+ /**
15
+ * Full PR workflow: create branch → commit → push → create PR
16
+ */
17
+ export declare function runPRWorkflow(cwd: string, options: PRWorkflowOptions): Promise<PRWorkflowResult>;
18
+ /**
19
+ * Generate evidence summary without creating PR
20
+ */
21
+ export declare function prepareEvidence(cwd: string): string;
22
+ export { isGhAvailable, isAuthenticated, isGitRepo, createBranch };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Sanitize input string to prevent command injection
3
+ * Removes or escapes shell metacharacters
4
+ */
5
+ export declare function sanitizeInput(input: string): string;
6
+ /**
7
+ * Check if gh CLI is available
8
+ */
9
+ export declare function isGhAvailable(cwd: string): boolean;
10
+ /**
11
+ * Check if authenticated with gh
12
+ */
13
+ export declare function isAuthenticated(cwd: string): boolean;
14
+ /**
15
+ * Create evidence.md summary
16
+ */
17
+ export declare function generateEvidenceMd(cwd: string): string;
18
+ /**
19
+ * Create a pull request
20
+ */
21
+ export declare function createPullRequest(cwd: string, title: string, body?: string, baseBranch?: string): Promise<{
22
+ url: string;
23
+ number: number;
24
+ }>;
25
+ /**
26
+ * Commit and push current changes
27
+ */
28
+ export declare function commitAndPush(cwd: string, message: string): void;