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
+ export interface FileLock {
2
+ filePath: string;
3
+ agent: string;
4
+ taskId: string;
5
+ timestamp: string;
6
+ expiresAt: number;
7
+ _release?: () => Promise<void>;
8
+ }
9
+ /**
10
+ * Try to acquire a lock on a file using proper-lockfile
11
+ */
12
+ export declare function tryAcquireLock(directory: string, filePath: string, agent: string, taskId: string): Promise<{
13
+ acquired: true;
14
+ lock: FileLock;
15
+ } | {
16
+ acquired: false;
17
+ existing?: FileLock;
18
+ }>;
19
+ /**
20
+ * Release a lock on a file.
21
+ *
22
+ * The preferred release path is `lockResult.lock._release()` at the call site.
23
+ * This function is kept for API compatibility but is a no-op: callers that
24
+ * stored a proper-lockfile release function on `lock._release` should call
25
+ * that directly. Callers that do not have the release function (e.g. tests
26
+ * that write lock sentinel files by hand) can ignore the return value.
27
+ */
28
+ export declare function releaseLock(_directory: string, _filePath: string, _taskId: string): Promise<boolean>;
29
+ /**
30
+ * Check if a file is locked
31
+ */
32
+ export declare function isLocked(directory: string, filePath: string): FileLock | null;
33
+ /**
34
+ * Clean up expired locks
35
+ */
36
+ export declare function cleanupExpiredLocks(directory: string): number;
37
+ /**
38
+ * List all active locks
39
+ */
40
+ export declare function listActiveLocks(directory: string): FileLock[];
@@ -0,0 +1,5 @@
1
+ export { EvidenceLockTimeoutError, withEvidenceLock, } from '../evidence/lock.js';
2
+ export { type DependencyGraph, getDependencyChain, getExecutionOrder, getRunnableTasks, isTaskBlocked, parseDependencyGraph, type TaskNode, } from './dependency-graph.js';
3
+ export { cleanupExpiredLocks, type FileLock, isLocked, listActiveLocks, releaseLock, tryAcquireLock, } from './file-locks.js';
4
+ export { extractMetaSummaries, getLatestTaskSummary, indexMetaSummaries, type MetaSummaryEntry, querySummaries, } from './meta-indexer.js';
5
+ export { type ComplexityMetrics, computeComplexity, type ReviewDepth, type ReviewRouting, routeReview, routeReviewForChanges, shouldParallelizeReview, } from './review-router.js';
@@ -0,0 +1,32 @@
1
+ export interface MetaSummaryEntry {
2
+ timestamp: string;
3
+ phase?: number;
4
+ taskId?: string;
5
+ agent?: string;
6
+ summary: string;
7
+ source?: string;
8
+ }
9
+ /**
10
+ * Extract meta.summary from event JSONL files
11
+ */
12
+ export declare function extractMetaSummaries(eventsPath: string): MetaSummaryEntry[];
13
+ /**
14
+ * Index meta summaries to external knowledge store
15
+ */
16
+ export declare function indexMetaSummaries(directory: string, externalKnowledgeDir?: string): Promise<{
17
+ indexed: number;
18
+ path: string;
19
+ }>;
20
+ /**
21
+ * Query indexed summaries
22
+ */
23
+ export declare function querySummaries(directory: string, options?: {
24
+ phase?: number;
25
+ taskId?: string;
26
+ agent?: string;
27
+ since?: string;
28
+ }): MetaSummaryEntry[];
29
+ /**
30
+ * Get latest summary for a task
31
+ */
32
+ export declare function getLatestTaskSummary(directory: string, taskId: string): MetaSummaryEntry | undefined;
@@ -0,0 +1,29 @@
1
+ export type ReviewDepth = 'single' | 'double';
2
+ export interface ReviewRouting {
3
+ reviewerCount: number;
4
+ testEngineerCount: number;
5
+ depth: ReviewDepth;
6
+ reason: string;
7
+ }
8
+ export interface ComplexityMetrics {
9
+ fileCount: number;
10
+ functionCount: number;
11
+ astChangeCount: number;
12
+ maxFileComplexity: number;
13
+ }
14
+ /**
15
+ * Compute complexity metrics for a set of files
16
+ */
17
+ export declare function computeComplexity(directory: string, changedFiles: string[]): Promise<ComplexityMetrics>;
18
+ /**
19
+ * Determine review routing based on complexity
20
+ */
21
+ export declare function routeReview(metrics: ComplexityMetrics): ReviewRouting;
22
+ /**
23
+ * Route review with full analysis
24
+ */
25
+ export declare function routeReviewForChanges(directory: string, changedFiles: string[]): Promise<ReviewRouting>;
26
+ /**
27
+ * Check if review should be parallelized
28
+ */
29
+ export declare function shouldParallelizeReview(routing: ReviewRouting): boolean;
@@ -0,0 +1,25 @@
1
+ import { type Plan } from '../config/plan-schema';
2
+ /**
3
+ * Write SWARM_PLAN.json and SWARM_PLAN.md inside the .swarm/ directory under the project root.
4
+ * Non-blocking: logs a warning on failure but never throws.
5
+ * @param directory - The working directory (project root)
6
+ */
7
+ export declare function writeCheckpoint(directory: string): Promise<void>;
8
+ /**
9
+ * Result of an importCheckpoint operation.
10
+ */
11
+ export interface ImportCheckpointResult {
12
+ success: boolean;
13
+ plan?: Plan;
14
+ error?: string;
15
+ }
16
+ /**
17
+ * Import a checkpoint from .swarm/SWARM_PLAN.json (with backward-compat fallback to project root).
18
+ * Validates the checkpoint against PlanSchema, persists it as the live plan
19
+ * via savePlan, and appends a 'plan_rebuilt' ledger event.
20
+ *
21
+ * @param directory - The working directory (project root)
22
+ * @param source - Optional source identifier for the ledger event (defaults to 'external_reseed')
23
+ * @returns ImportCheckpointResult indicating success or failure with error message
24
+ */
25
+ export declare function importCheckpoint(directory: string, source?: string): Promise<ImportCheckpointResult>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export { derivePlanMarkdown, loadPlan, migrateLegacyPlan, savePlan, updateTaskStatus, } from './manager';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for ledger integrity functions: readLedgerEventsWithIntegrity,
3
+ * quarantineLedgerSuffix, and replayWithIntegrity
4
+ */
5
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,286 @@
1
+ /**
2
+ * Append-only Plan Ledger
3
+ *
4
+ * Provides durable, immutable audit trail of plan evolution events.
5
+ * Each event is written as a JSON line to .swarm/plan-ledger.jsonl
6
+ */
7
+ import { type Plan } from '../config/plan-schema';
8
+ /**
9
+ * Ledger schema version
10
+ */
11
+ export declare const LEDGER_SCHEMA_VERSION = "1.0.0";
12
+ /**
13
+ * Valid ledger event types
14
+ */
15
+ export declare const LEDGER_EVENT_TYPES: readonly ["plan_created", "task_added", "task_updated", "task_status_changed", "task_reordered", "phase_completed", "plan_rebuilt", "plan_exported", "plan_reset", "snapshot", "execution_profile_set", "execution_profile_locked"];
16
+ export type LedgerEventType = (typeof LEDGER_EVENT_TYPES)[number];
17
+ /**
18
+ * A ledger event representing a plan mutation.
19
+ * All fields are required unless marked optional.
20
+ */
21
+ export interface LedgerEvent {
22
+ /** Monotonically increasing sequence number (starts at 1) */
23
+ seq: number;
24
+ /** ISO 8601 timestamp when event was recorded */
25
+ timestamp: string;
26
+ /** Unique identifier for the plan */
27
+ plan_id: string;
28
+ /** Type of event that occurred */
29
+ event_type: LedgerEventType;
30
+ /** Task ID when event relates to a specific task */
31
+ task_id?: string;
32
+ /** Phase ID when event relates to a specific phase */
33
+ phase_id?: number;
34
+ /** Previous status (for status change events) */
35
+ from_status?: string;
36
+ /** New status (for status change events) */
37
+ to_status?: string;
38
+ /** What triggered this event */
39
+ source: string;
40
+ /** SHA-256 hash of plan state before this event */
41
+ plan_hash_before: string;
42
+ /** SHA-256 hash of plan state after this event */
43
+ plan_hash_after: string;
44
+ /** Schema version for this ledger entry */
45
+ schema_version: string;
46
+ /** Optional payload for events that carry additional data */
47
+ payload?: Record<string, unknown>;
48
+ }
49
+ /**
50
+ * Input type for appendLedgerEvent (excludes auto-generated fields)
51
+ */
52
+ export type LedgerEventInput = Omit<LedgerEvent, 'seq' | 'timestamp' | 'plan_hash_before' | 'plan_hash_after' | 'schema_version'>;
53
+ /**
54
+ * Payload for snapshot ledger events.
55
+ * Embeds the full Plan payload for ledger-only rebuild.
56
+ */
57
+ export interface SnapshotEventPayload {
58
+ plan: Plan;
59
+ payload_hash: string;
60
+ }
61
+ /**
62
+ * Error thrown when a writer attempts to append to the ledger with stale state.
63
+ * Indicates another writer has modified the ledger since the caller last read it.
64
+ */
65
+ export declare class LedgerStaleWriterError extends Error {
66
+ constructor(message: string);
67
+ }
68
+ /**
69
+ * Compute a SHA-256 hash of the plan state.
70
+ * Uses deterministic JSON serialization for consistent hashing.
71
+ *
72
+ * @param plan - The plan to hash
73
+ * @returns Hex-encoded SHA-256 hash
74
+ */
75
+ export declare function computePlanHash(plan: Plan): string;
76
+ /**
77
+ * Read the current plan.json and compute its hash.
78
+ *
79
+ * @param directory - The working directory
80
+ * @returns Hash of current plan.json, or empty string if not found
81
+ */
82
+ export declare function computeCurrentPlanHash(directory: string): string;
83
+ /**
84
+ * Check if the ledger file exists.
85
+ *
86
+ * @param directory - The working directory
87
+ * @returns true if ledger file exists
88
+ */
89
+ export declare function ledgerExists(directory: string): Promise<boolean>;
90
+ /**
91
+ * Get the latest sequence number in the ledger.
92
+ *
93
+ * @param directory - The working directory
94
+ * @returns Highest seq value, or 0 if ledger is empty/doesn't exist
95
+ */
96
+ export declare function getLatestLedgerSeq(directory: string): Promise<number>;
97
+ /**
98
+ * Read all events from the ledger.
99
+ *
100
+ * @param directory - The working directory
101
+ * @returns Array of LedgerEvent sorted by seq
102
+ */
103
+ export declare function readLedgerEvents(directory: string): Promise<LedgerEvent[]>;
104
+ /**
105
+ * Initialize a new ledger with a plan_created event.
106
+ * Only call this if the ledger doesn't exist.
107
+ *
108
+ * @param directory - The working directory
109
+ * @param planId - Unique identifier for the plan
110
+ */
111
+ export declare function initLedger(directory: string, planId: string, initialPlanHash?: string, initialPlan?: Plan): Promise<void>;
112
+ /**
113
+ * Append a new event to the ledger.
114
+ * Uses atomic write: write to temp file then rename.
115
+ *
116
+ * @param directory - The working directory
117
+ * @param eventInput - Event data to append (without seq, timestamp, hashes)
118
+ * @param options - Optional concurrency control options
119
+ * @returns The full LedgerEvent that was written
120
+ */
121
+ export declare function appendLedgerEvent(directory: string, eventInput: LedgerEventInput, options?: {
122
+ expectedSeq?: number;
123
+ expectedHash?: string;
124
+ planHashAfter?: string;
125
+ }): Promise<LedgerEvent>;
126
+ /**
127
+ * Append a ledger event with optimistic retry on stale-writer conflicts.
128
+ *
129
+ * When another writer advances the ledger between the caller's read and
130
+ * their append, `appendLedgerEvent` throws `LedgerStaleWriterError`. This
131
+ * helper wraps that call in a bounded retry loop, refreshing the
132
+ * `expectedHash` concurrency token against the current plan.json before
133
+ * each retry.
134
+ *
135
+ * IMPORTANT: refreshing the hash is only safe when the event input is
136
+ * *still semantically valid* after the intervening write. For audit
137
+ * events computed from an in-memory plan the caller is about to persist,
138
+ * it is always valid. For `task_status_changed` events, pass a
139
+ * `verifyValid` callback that returns false when the transition no
140
+ * longer applies (e.g. the task's on-disk status already matches the
141
+ * `to_status`, or has moved past it). When `verifyValid` returns false,
142
+ * the retry loop exits and the helper returns `null` to signal that the
143
+ * event was skipped — it is not an error.
144
+ *
145
+ * @param directory - Working directory containing `.swarm/plan-ledger.jsonl`
146
+ * @param eventInput - Event to append (required fields minus auto-generated)
147
+ * @param options - Concurrency and retry configuration:
148
+ * - expectedHash: the hash of plan.json the caller observed (REQUIRED)
149
+ * - planHashAfter: precomputed hash of the mutated plan
150
+ * - maxRetries: max stale-writer retries (default: 3)
151
+ * - backoffMs: base delay in milliseconds (default: 10; exponential)
152
+ * - verifyValid: callback invoked before each retry to confirm the
153
+ * event input is still meaningful. Returning false aborts and
154
+ * resolves the helper to `null`.
155
+ * @returns The written LedgerEvent, or `null` if verifyValid aborted.
156
+ * @throws LedgerStaleWriterError if retries are exhausted.
157
+ */
158
+ export declare function appendLedgerEventWithRetry(directory: string, eventInput: LedgerEventInput, options: {
159
+ expectedHash: string;
160
+ planHashAfter?: string;
161
+ maxRetries?: number;
162
+ backoffMs?: number;
163
+ verifyValid?: () => Promise<boolean> | boolean;
164
+ }): Promise<LedgerEvent | null>;
165
+ /**
166
+ * Take a snapshot event and append it to the ledger.
167
+ * The snapshot embeds the full Plan payload for ledger-only rebuild.
168
+ *
169
+ * @param directory - The working directory
170
+ * @param plan - The current plan state to snapshot
171
+ * @param options - Optional configuration:
172
+ * - planHashAfter: precomputed hash of the mutated plan (bypasses the
173
+ * on-disk plan.json read when available)
174
+ * - source: attribution string stored on the ledger event. Defaults to
175
+ * `'takeSnapshotEvent'`. Use `'critic_approved'` to mark a snapshot as
176
+ * the immutable phase-approved checkpoint readable by
177
+ * `loadLastApprovedPlan`.
178
+ * - approvalMetadata: optional free-form metadata embedded into the
179
+ * snapshot payload (e.g. phase number, verdict, summary) so that
180
+ * downstream readers can filter without decoding prompts.
181
+ * @returns The LedgerEvent that was written
182
+ */
183
+ export declare function takeSnapshotEvent(directory: string, plan: Plan, options?: {
184
+ planHashAfter?: string;
185
+ source?: string;
186
+ approvalMetadata?: Record<string, unknown>;
187
+ }): Promise<LedgerEvent>;
188
+ /**
189
+ * Options for replayFromLedger
190
+ */
191
+ interface ReplayOptions {
192
+ /** If true, use the latest snapshot to speed up replay */
193
+ useSnapshot?: boolean;
194
+ }
195
+ /**
196
+ * Replay ledger events to reconstruct plan state.
197
+ * Loads plan.json as the base state and applies ledger events in sequence.
198
+ *
199
+ * NOTE: This function requires plan.json to exist as the base state.
200
+ * The ledger only stores task_status_changed events, not the full plan payload.
201
+ * If plan.json is missing, replay cannot proceed — this is a known limitation.
202
+ * The fix would be to store the initial plan payload in the ledger, but that
203
+ * is a larger architectural change beyond the current scope.
204
+ *
205
+ * @param directory - The working directory
206
+ * @param options - Optional replay options
207
+ * @returns Reconstructed Plan from ledger events, or null if plan.json doesn't exist or ledger is empty
208
+ */
209
+ export declare function replayFromLedger(directory: string, _options?: ReplayOptions): Promise<Plan | null>;
210
+ /**
211
+ * Result type for readLedgerEventsWithIntegrity
212
+ */
213
+ export interface LedgerIntegrityResult {
214
+ /** Valid events up to (but not including) the first malformed line */
215
+ events: LedgerEvent[];
216
+ /** True if a bad line was found and replay was stopped early */
217
+ truncated: boolean;
218
+ /** Raw content from the first bad line to end of file, for quarantine */
219
+ badSuffix: string | null;
220
+ }
221
+ /**
222
+ * Read ledger events with integrity checking.
223
+ * Stops at the first malformed/unparseable line and returns the remainder for quarantine.
224
+ *
225
+ * @param directory - The working directory
226
+ * @returns LedgerIntegrityResult with events, truncated flag, and bad suffix
227
+ */
228
+ export declare function readLedgerEventsWithIntegrity(directory: string): Promise<LedgerIntegrityResult>;
229
+ /**
230
+ * Quarantine a corrupted ledger suffix to a separate file.
231
+ * Does NOT modify the ledger file itself.
232
+ *
233
+ * @param directory - The working directory
234
+ * @param badSuffix - The corrupted content to quarantine
235
+ */
236
+ export declare function quarantineLedgerSuffix(directory: string, badSuffix: string): Promise<void>;
237
+ /**
238
+ * Replay ledger events with integrity checking.
239
+ * If corruption is detected, quarantines the bad suffix and falls back to snapshot+prefix replay.
240
+ * Never throws — all errors return null.
241
+ *
242
+ * @param directory - The working directory
243
+ * @returns Reconstructed Plan from ledger events, or null if replay fails
244
+ */
245
+ export declare function replayWithIntegrity(directory: string): Promise<Plan | null>;
246
+ /**
247
+ * Metadata describing an approved snapshot recovered from the ledger.
248
+ */
249
+ export interface ApprovedSnapshotInfo {
250
+ /** The immutable plan payload captured at critic approval time */
251
+ plan: Plan;
252
+ /** The ledger sequence number of the snapshot event */
253
+ seq: number;
254
+ /** ISO 8601 timestamp of the snapshot event */
255
+ timestamp: string;
256
+ /** Arbitrary metadata the caller attached (phase, verdict, summary, ...) */
257
+ approval?: Record<string, unknown>;
258
+ /** Hash of the plan payload at snapshot time */
259
+ payloadHash: string;
260
+ }
261
+ /**
262
+ * Find the most recent critic-approved immutable plan snapshot in the ledger.
263
+ *
264
+ * Snapshots are tagged at write time with a distinguishing `source` string
265
+ * (see `takeSnapshotEvent`). The `critic_approved` marker identifies snapshots
266
+ * persisted by the orchestrator after a phase Critic returns APPROVED. This
267
+ * function scans the ledger in reverse order and returns the first matching
268
+ * snapshot, including its embedded plan payload and approval metadata.
269
+ *
270
+ * Intended for use as a fallback when plan.json is lost, overwritten, or
271
+ * suspected of drift: the Architect can fall back to the last approved plan
272
+ * and the Critic can drift-check against it.
273
+ *
274
+ * SAFETY: when `expectedPlanId` is supplied, only snapshots whose event
275
+ * `plan_id` matches are considered. Callers MUST pass an expected identity
276
+ * whenever they have one (e.g. from the ledger's first `plan_created` anchor)
277
+ * to prevent cross-identity contamination: a stale `critic_approved` snapshot
278
+ * left in a reused directory could otherwise be resurrected as the active plan.
279
+ *
280
+ * @param directory - Working directory containing `.swarm/plan-ledger.jsonl`
281
+ * @param expectedPlanId - Optional plan identity filter. When provided, only
282
+ * snapshots whose ledger event `plan_id` matches are considered.
283
+ * @returns The most recent approved snapshot info, or null if none exists
284
+ */
285
+ export declare function loadLastApprovedPlan(directory: string, expectedPlanId?: string): Promise<ApprovedSnapshotInfo | null>;
286
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tests for retryCasWithBackoff — Phase 4 (CAS retry with exponential backoff).
3
+ *
4
+ * Verifies:
5
+ * - Backoff schedule: 5ms start, doubles each attempt, cap 250ms, ±25% jitter
6
+ * - plan_ledger_cas_retry telemetry is emitted on each retry (hash prefixes only)
7
+ * - PlanConcurrentModificationError is thrown when retries are exhausted
8
+ * - verifyValid returning false causes early exit without error
9
+ */
10
+ export {};
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Typed error for concurrent plan modification (#444 item 3).
3
+ * Thrown when savePlan exhausts CAS retries due to concurrent writers.
4
+ * Callers can catch this specifically to refresh and retry at the outer level.
5
+ */
6
+ export declare class PlanConcurrentModificationError extends Error {
7
+ constructor(message: string);
8
+ }
9
+ import { type Plan, type RuntimePlan, type TaskStatus } from '../config/plan-schema';
10
+ import { type LedgerEvent, type LedgerEventInput } from './ledger';
11
+ /** Reset the startup ledger check flag. For testing only. */
12
+ export declare function resetStartupLedgerCheck(): void;
13
+ /**
14
+ * Append a ledger event with exponential-backoff retry on stale-writer conflicts.
15
+ *
16
+ * Replaces the raw `appendLedgerEventWithRetry` call in savePlan with a helper
17
+ * that uses the project-standard backoff schedule and emits observable telemetry
18
+ * on each retry. Hash values in telemetry are truncated to 8-char prefixes to
19
+ * avoid leaking full content hashes into event streams.
20
+ *
21
+ * Backoff schedule: start=5ms, doubles each attempt, cap=250ms, ±25% jitter.
22
+ */
23
+ export declare function retryCasWithBackoff(directory: string, eventInput: LedgerEventInput, options: {
24
+ expectedHash: string;
25
+ planHashAfter?: string;
26
+ verifyValid?: () => Promise<boolean> | boolean;
27
+ maxRetries?: number;
28
+ }): Promise<LedgerEvent | null>;
29
+ /**
30
+ * Load plan.json ONLY without auto-migration from plan.md.
31
+ * Returns null if plan.json doesn't exist or is invalid.
32
+ * Use this when you want to check for structured plans without triggering migration.
33
+ */
34
+ export declare function loadPlanJsonOnly(directory: string): Promise<Plan | null>;
35
+ /**
36
+ * Regenerate plan.md from valid plan.json (auto-heal case 1).
37
+ */
38
+ export declare function regeneratePlanMarkdown(directory: string, plan: Plan): Promise<void>;
39
+ /**
40
+ * Load and validate plan from .swarm/plan.json with auto-heal sync.
41
+ *
42
+ * 4-step precedence with auto-heal:
43
+ * 1. .swarm/plan.json exists AND validates ->
44
+ * a) If plan.md missing or stale -> regenerate plan.md from plan.json
45
+ * b) Return parsed Plan
46
+ * 2. .swarm/plan.json exists but FAILS validation ->
47
+ * a) If plan.md exists -> migrate from plan.md, save valid plan.json, then derive plan.md
48
+ * b) Return migrated Plan
49
+ * 3. .swarm/plan.md exists only -> migrate from plan.md, save both files, return Plan
50
+ * 4. Neither exists -> return null
51
+ */
52
+ export declare function loadPlan(directory: string): Promise<RuntimePlan | null>;
53
+ /**
54
+ * Validate against PlanSchema (throw on invalid), write to .swarm/plan.json via atomic temp+rename pattern,
55
+ * then derive and write .swarm/plan.md
56
+ */
57
+ export declare function savePlan(directory: string, plan: Plan, options?: {
58
+ preserveCompletedStatuses?: boolean;
59
+ }): Promise<void>;
60
+ /**
61
+ * Rebuild plan from ledger events.
62
+ * Replays the ledger to reconstruct plan state, then writes the result.
63
+ * Uses direct atomic writes to avoid circular ledger append (savePlan appends ledger events).
64
+ *
65
+ * @param directory - The working directory
66
+ * @returns Reconstructed Plan from ledger, or null if ledger is empty/missing
67
+ */
68
+ export declare function rebuildPlan(directory: string, plan?: Plan): Promise<Plan | null>;
69
+ /**
70
+ * Load plan → find task by ID → update status → save → return updated plan.
71
+ * Throw if plan not found or task not found.
72
+ *
73
+ * Uses loadPlan() (not loadPlanJsonOnly) so that legitimate same-identity ledger
74
+ * drift is detected and healed before the status update is applied. Without this,
75
+ * a stale plan.json would silently overwrite ledger-ahead task state with only the
76
+ * one targeted status change applied on top.
77
+ *
78
+ * The migration guard in loadPlan() (plan_id identity check) prevents destructive
79
+ * revert after a swarm rename — so this is safe even in post-migration scenarios.
80
+ */
81
+ export declare function updateTaskStatus(directory: string, taskId: string, status: TaskStatus): Promise<Plan>;
82
+ /**
83
+ * Generate deterministic markdown view from plan object.
84
+ * Ensures stable ordering: phases by ID (ascending), tasks by ID (natural numeric).
85
+ */
86
+ export declare function derivePlanMarkdown(plan: Plan): string;
87
+ /**
88
+ * Convert existing plan.md to plan.json. PURE function — no I/O.
89
+ */
90
+ export declare function migrateLegacyPlan(planContent: string, swarmId?: string): Plan;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tests for the migration-aware identity guard in loadPlan()'s validation-failure
3
+ * catch path (lines ~299-323 of manager.ts).
4
+ *
5
+ * When plan.json fails schema validation, the old code unconditionally called
6
+ * replayFromLedger(). This allowed a post-migration ledger (old identity) to
7
+ * overwrite a schema-invalid but correctly migrated plan.json.
8
+ *
9
+ * The fix: extract swarm+title from the raw JSON (even if schema validation
10
+ * fails), compare against the first ledger event's plan_id, and only replay
11
+ * when identities match.
12
+ */
13
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Regression tests for GitHub issues #383/#384:
3
+ * PlanSyncWorker Aggressively Reverts Plan Files
4
+ *
5
+ * These tests verify that the fixes introduced in the debug-issues-383-384 branch
6
+ * prevent the destructive revert behavior and related edge cases.
7
+ */
8
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * PRM Pattern Detector Tests
3
+ * Comprehensive tests for all 5 pattern detectors and orchestration function
4
+ */
5
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TRAJECTORY STORE TESTS
3
+ *
4
+ * Unit tests for the session-level trajectory storage module.
5
+ * Uses real file operations in a temp directory to verify behavior.
6
+ */
7
+ export {};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Course Correction Module
3
+ * Generates structured guidance messages from pattern detection results
4
+ */
5
+ import type { CourseCorrection, PatternMatch, TrajectoryEntry } from './types';
6
+ /**
7
+ * Generates a structured CourseCorrection guidance message from a PatternMatch and trajectory context
8
+ *
9
+ * @param match - The pattern match result from pattern detection
10
+ * @param trajectory - The trajectory entries providing context for the correction
11
+ * @returns A structured CourseCorrection object with alert, category, guidance, action, pattern, and stepRange
12
+ */
13
+ export declare function generateCourseCorrection(match: PatternMatch, trajectory: TrajectoryEntry[]): CourseCorrection;
14
+ /**
15
+ * Formats a CourseCorrection for injection into agent messages
16
+ *
17
+ * @param correction - The course correction to format
18
+ * @returns A formatted string suitable for injection into messages
19
+ */
20
+ export declare function formatCourseCorrectionForInjection(correction: CourseCorrection): string;