@cleocode/core 2026.3.59 → 2026.3.60

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 (818) hide show
  1. package/dist/adapters/adapter-registry.js +64 -0
  2. package/dist/adapters/adapter-registry.js.map +1 -0
  3. package/dist/adapters/discovery.js +83 -0
  4. package/dist/adapters/discovery.js.map +1 -0
  5. package/dist/adapters/index.js +9 -0
  6. package/dist/adapters/index.js.map +1 -0
  7. package/dist/adapters/manager.js +260 -0
  8. package/dist/adapters/manager.js.map +1 -0
  9. package/dist/admin/export-tasks.js +171 -0
  10. package/dist/admin/export-tasks.js.map +1 -0
  11. package/dist/admin/export.js +103 -0
  12. package/dist/admin/export.js.map +1 -0
  13. package/dist/admin/help.js +106 -0
  14. package/dist/admin/help.js.map +1 -0
  15. package/dist/admin/import-tasks.js +182 -0
  16. package/dist/admin/import-tasks.js.map +1 -0
  17. package/dist/admin/import.js +129 -0
  18. package/dist/admin/import.js.map +1 -0
  19. package/dist/admin/index.js +13 -0
  20. package/dist/admin/index.js.map +1 -0
  21. package/dist/adrs/find.js +134 -0
  22. package/dist/adrs/find.js.map +1 -0
  23. package/dist/adrs/index.js +15 -0
  24. package/dist/adrs/index.js.map +1 -0
  25. package/dist/adrs/link-pipeline.js +160 -0
  26. package/dist/adrs/link-pipeline.js.map +1 -0
  27. package/dist/adrs/list.js +43 -0
  28. package/dist/adrs/list.js.map +1 -0
  29. package/dist/adrs/parse.js +51 -0
  30. package/dist/adrs/parse.js.map +1 -0
  31. package/dist/adrs/show.js +22 -0
  32. package/dist/adrs/show.js.map +1 -0
  33. package/dist/adrs/sync.js +188 -0
  34. package/dist/adrs/sync.js.map +1 -0
  35. package/dist/adrs/types.js +9 -0
  36. package/dist/adrs/types.js.map +1 -0
  37. package/dist/adrs/validate.js +57 -0
  38. package/dist/adrs/validate.js.map +1 -0
  39. package/dist/agents/agent-registry.js +288 -0
  40. package/dist/agents/agent-registry.js.map +1 -0
  41. package/dist/agents/agent-schema.js +85 -0
  42. package/dist/agents/agent-schema.js.map +1 -0
  43. package/dist/agents/capacity.js +116 -0
  44. package/dist/agents/capacity.js.map +1 -0
  45. package/dist/agents/execution-learning.js +474 -0
  46. package/dist/agents/execution-learning.js.map +1 -0
  47. package/dist/agents/health-monitor.js +217 -0
  48. package/dist/agents/health-monitor.js.map +1 -0
  49. package/dist/agents/index.js +29 -0
  50. package/dist/agents/index.js.map +1 -0
  51. package/dist/agents/registry.js +314 -0
  52. package/dist/agents/registry.js.map +1 -0
  53. package/dist/agents/retry.js +229 -0
  54. package/dist/agents/retry.js.map +1 -0
  55. package/dist/audit-prune.js +94 -0
  56. package/dist/audit-prune.js.map +1 -0
  57. package/dist/audit.js +68 -0
  58. package/dist/audit.js.map +1 -0
  59. package/dist/backfill/index.js +229 -0
  60. package/dist/backfill/index.js.map +1 -0
  61. package/dist/bootstrap.d.ts +2 -1
  62. package/dist/bootstrap.d.ts.map +1 -1
  63. package/dist/bootstrap.js +367 -0
  64. package/dist/bootstrap.js.map +1 -0
  65. package/dist/caamp/adapter.js +434 -0
  66. package/dist/caamp/adapter.js.map +1 -0
  67. package/dist/caamp/capability-check.js +38 -0
  68. package/dist/caamp/capability-check.js.map +1 -0
  69. package/dist/caamp/index.js +23 -0
  70. package/dist/caamp/index.js.map +1 -0
  71. package/dist/caamp-init.js +16 -0
  72. package/dist/caamp-init.js.map +1 -0
  73. package/dist/cleo.d.ts +40 -0
  74. package/dist/cleo.d.ts.map +1 -1
  75. package/dist/cleo.js +267 -0
  76. package/dist/cleo.js.map +1 -0
  77. package/dist/codebase-map/analyzers/architecture.js +130 -0
  78. package/dist/codebase-map/analyzers/architecture.js.map +1 -0
  79. package/dist/codebase-map/analyzers/concerns.js +122 -0
  80. package/dist/codebase-map/analyzers/concerns.js.map +1 -0
  81. package/dist/codebase-map/analyzers/conventions.js +149 -0
  82. package/dist/codebase-map/analyzers/conventions.js.map +1 -0
  83. package/dist/codebase-map/analyzers/integrations.js +108 -0
  84. package/dist/codebase-map/analyzers/integrations.js.map +1 -0
  85. package/dist/codebase-map/analyzers/stack.js +117 -0
  86. package/dist/codebase-map/analyzers/stack.js.map +1 -0
  87. package/dist/codebase-map/analyzers/structure.js +137 -0
  88. package/dist/codebase-map/analyzers/structure.js.map +1 -0
  89. package/dist/codebase-map/analyzers/testing.js +118 -0
  90. package/dist/codebase-map/analyzers/testing.js.map +1 -0
  91. package/dist/codebase-map/index.js +57 -0
  92. package/dist/codebase-map/index.js.map +1 -0
  93. package/dist/codebase-map/store.js +122 -0
  94. package/dist/codebase-map/store.js.map +1 -0
  95. package/dist/codebase-map/summary.js +152 -0
  96. package/dist/codebase-map/summary.js.map +1 -0
  97. package/dist/compliance/index.js +288 -0
  98. package/dist/compliance/index.js.map +1 -0
  99. package/dist/compliance/protocol-enforcement.js +332 -0
  100. package/dist/compliance/protocol-enforcement.js.map +1 -0
  101. package/dist/compliance/protocol-rules.js +786 -0
  102. package/dist/compliance/protocol-rules.js.map +1 -0
  103. package/dist/compliance/protocol-types.js +80 -0
  104. package/dist/compliance/protocol-types.js.map +1 -0
  105. package/dist/compliance/store.js +53 -0
  106. package/dist/compliance/store.js.map +1 -0
  107. package/dist/config/build-config.js +29 -0
  108. package/dist/config/build-config.js.map +1 -0
  109. package/dist/config.js +370 -0
  110. package/dist/config.js.map +1 -0
  111. package/dist/constants.js +18 -0
  112. package/dist/constants.js.map +1 -0
  113. package/dist/context/index.js +137 -0
  114. package/dist/context/index.js.map +1 -0
  115. package/dist/engine-result.js +12 -0
  116. package/dist/engine-result.js.map +1 -0
  117. package/dist/error-catalog.js +404 -0
  118. package/dist/error-catalog.js.map +1 -0
  119. package/dist/error-registry.js +393 -0
  120. package/dist/error-registry.js.map +1 -0
  121. package/dist/errors.js +167 -0
  122. package/dist/errors.js.map +1 -0
  123. package/dist/hooks/handlers/error-hooks.js +43 -0
  124. package/dist/hooks/handlers/error-hooks.js.map +1 -0
  125. package/dist/hooks/handlers/file-hooks.js +80 -0
  126. package/dist/hooks/handlers/file-hooks.js.map +1 -0
  127. package/dist/hooks/handlers/index.js +19 -0
  128. package/dist/hooks/handlers/index.js.map +1 -0
  129. package/dist/hooks/handlers/mcp-hooks.js +80 -0
  130. package/dist/hooks/handlers/mcp-hooks.js.map +1 -0
  131. package/dist/hooks/handlers/session-hooks.js +73 -0
  132. package/dist/hooks/handlers/session-hooks.js.map +1 -0
  133. package/dist/hooks/handlers/task-hooks.js +63 -0
  134. package/dist/hooks/handlers/task-hooks.js.map +1 -0
  135. package/dist/hooks/index.js +13 -0
  136. package/dist/hooks/index.js.map +1 -0
  137. package/dist/hooks/payload-schemas.js +163 -0
  138. package/dist/hooks/payload-schemas.js.map +1 -0
  139. package/dist/hooks/provider-hooks.js +34 -0
  140. package/dist/hooks/provider-hooks.js.map +1 -0
  141. package/dist/hooks/registry.js +176 -0
  142. package/dist/hooks/registry.js.map +1 -0
  143. package/dist/hooks/types.js +62 -0
  144. package/dist/hooks/types.js.map +1 -0
  145. package/dist/hooks.js +136 -0
  146. package/dist/hooks.js.map +1 -0
  147. package/dist/index.js +156 -30
  148. package/dist/index.js.map +3 -3
  149. package/dist/init.js +711 -0
  150. package/dist/init.js.map +1 -0
  151. package/dist/inject/index.js +82 -0
  152. package/dist/inject/index.js.map +1 -0
  153. package/dist/injection.js +343 -0
  154. package/dist/injection.js.map +1 -0
  155. package/dist/intelligence/adaptive-validation.js +497 -0
  156. package/dist/intelligence/adaptive-validation.js.map +1 -0
  157. package/dist/intelligence/impact.js +675 -0
  158. package/dist/intelligence/impact.js.map +1 -0
  159. package/dist/intelligence/index.js +22 -0
  160. package/dist/intelligence/index.js.map +1 -0
  161. package/dist/intelligence/patterns.js +492 -0
  162. package/dist/intelligence/patterns.js.map +1 -0
  163. package/dist/intelligence/prediction.js +499 -0
  164. package/dist/intelligence/prediction.js.map +1 -0
  165. package/dist/intelligence/types.js +13 -0
  166. package/dist/intelligence/types.js.map +1 -0
  167. package/dist/internal.js +267 -0
  168. package/dist/internal.js.map +1 -0
  169. package/dist/issue/create.js +121 -0
  170. package/dist/issue/create.js.map +1 -0
  171. package/dist/issue/diagnostics.js +59 -0
  172. package/dist/issue/diagnostics.js.map +1 -0
  173. package/dist/issue/index.js +10 -0
  174. package/dist/issue/index.js.map +1 -0
  175. package/dist/issue/template-parser.js +267 -0
  176. package/dist/issue/template-parser.js.map +1 -0
  177. package/dist/json-schema-validator.js +76 -0
  178. package/dist/json-schema-validator.js.map +1 -0
  179. package/dist/lib/index.js +10 -0
  180. package/dist/lib/index.js.map +1 -0
  181. package/dist/lib/retry.js +152 -0
  182. package/dist/lib/retry.js.map +1 -0
  183. package/dist/lifecycle/chain-composition.js +152 -0
  184. package/dist/lifecycle/chain-composition.js.map +1 -0
  185. package/dist/lifecycle/chain-store.js +246 -0
  186. package/dist/lifecycle/chain-store.js.map +1 -0
  187. package/dist/lifecycle/consolidate-rcasd.js +352 -0
  188. package/dist/lifecycle/consolidate-rcasd.js.map +1 -0
  189. package/dist/lifecycle/default-chain.js +167 -0
  190. package/dist/lifecycle/default-chain.js.map +1 -0
  191. package/dist/lifecycle/evidence.js +180 -0
  192. package/dist/lifecycle/evidence.js.map +1 -0
  193. package/dist/lifecycle/frontmatter.js +363 -0
  194. package/dist/lifecycle/frontmatter.js.map +1 -0
  195. package/dist/lifecycle/index.js +753 -0
  196. package/dist/lifecycle/index.js.map +1 -0
  197. package/dist/lifecycle/pipeline.js +656 -0
  198. package/dist/lifecycle/pipeline.js.map +1 -0
  199. package/dist/lifecycle/rcasd-index.js +326 -0
  200. package/dist/lifecycle/rcasd-index.js.map +1 -0
  201. package/dist/lifecycle/rcasd-paths.js +220 -0
  202. package/dist/lifecycle/rcasd-paths.js.map +1 -0
  203. package/dist/lifecycle/resume.js +864 -0
  204. package/dist/lifecycle/resume.js.map +1 -0
  205. package/dist/lifecycle/stage-artifacts.js +94 -0
  206. package/dist/lifecycle/stage-artifacts.js.map +1 -0
  207. package/dist/lifecycle/stages.js +534 -0
  208. package/dist/lifecycle/stages.js.map +1 -0
  209. package/dist/lifecycle/state-machine.js +516 -0
  210. package/dist/lifecycle/state-machine.js.map +1 -0
  211. package/dist/lifecycle/tessera-engine.js +249 -0
  212. package/dist/lifecycle/tessera-engine.js.map +1 -0
  213. package/dist/logger.js +140 -0
  214. package/dist/logger.js.map +1 -0
  215. package/dist/mcp/index.js +146 -0
  216. package/dist/mcp/index.js.map +1 -0
  217. package/dist/memory/auto-extract.js +143 -0
  218. package/dist/memory/auto-extract.js.map +1 -0
  219. package/dist/memory/brain-embedding.js +49 -0
  220. package/dist/memory/brain-embedding.js.map +1 -0
  221. package/dist/memory/brain-lifecycle.js +298 -0
  222. package/dist/memory/brain-lifecycle.js.map +1 -0
  223. package/dist/memory/brain-links.js +148 -0
  224. package/dist/memory/brain-links.js.map +1 -0
  225. package/dist/memory/brain-migration.js +149 -0
  226. package/dist/memory/brain-migration.js.map +1 -0
  227. package/dist/memory/brain-reasoning.js +215 -0
  228. package/dist/memory/brain-reasoning.js.map +1 -0
  229. package/dist/memory/brain-retrieval.js +474 -0
  230. package/dist/memory/brain-retrieval.js.map +1 -0
  231. package/dist/memory/brain-row-types.js +10 -0
  232. package/dist/memory/brain-row-types.js.map +1 -0
  233. package/dist/memory/brain-search.js +519 -0
  234. package/dist/memory/brain-search.js.map +1 -0
  235. package/dist/memory/brain-similarity.js +145 -0
  236. package/dist/memory/brain-similarity.js.map +1 -0
  237. package/dist/memory/claude-mem-migration.js +277 -0
  238. package/dist/memory/claude-mem-migration.js.map +1 -0
  239. package/dist/memory/decisions.js +148 -0
  240. package/dist/memory/decisions.js.map +1 -0
  241. package/dist/memory/engine-compat.js +1030 -0
  242. package/dist/memory/engine-compat.js.map +1 -0
  243. package/dist/memory/index.js +773 -0
  244. package/dist/memory/index.js.map +1 -0
  245. package/dist/memory/learnings.js +121 -0
  246. package/dist/memory/learnings.js.map +1 -0
  247. package/dist/memory/memory-bridge.js +289 -0
  248. package/dist/memory/memory-bridge.js.map +1 -0
  249. package/dist/memory/patterns.js +122 -0
  250. package/dist/memory/patterns.js.map +1 -0
  251. package/dist/memory/pipeline-manifest-sqlite.js +975 -0
  252. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -0
  253. package/dist/memory/session-memory.js +226 -0
  254. package/dist/memory/session-memory.js.map +1 -0
  255. package/dist/metrics/ab-test.js +260 -0
  256. package/dist/metrics/ab-test.js.map +1 -0
  257. package/dist/metrics/aggregation.js +363 -0
  258. package/dist/metrics/aggregation.js.map +1 -0
  259. package/dist/metrics/common.js +64 -0
  260. package/dist/metrics/common.js.map +1 -0
  261. package/dist/metrics/enums.js +78 -0
  262. package/dist/metrics/enums.js.map +1 -0
  263. package/dist/metrics/index.js +19 -0
  264. package/dist/metrics/index.js.map +1 -0
  265. package/dist/metrics/model-provider-registry.js +88 -0
  266. package/dist/metrics/model-provider-registry.js.map +1 -0
  267. package/dist/metrics/otel-integration.js +263 -0
  268. package/dist/metrics/otel-integration.js.map +1 -0
  269. package/dist/metrics/provider-detection.js +103 -0
  270. package/dist/metrics/provider-detection.js.map +1 -0
  271. package/dist/metrics/token-estimation.js +253 -0
  272. package/dist/metrics/token-estimation.js.map +1 -0
  273. package/dist/metrics/token-service.js +450 -0
  274. package/dist/metrics/token-service.js.map +1 -0
  275. package/dist/migration/agent-outputs.js +316 -0
  276. package/dist/migration/agent-outputs.js.map +1 -0
  277. package/dist/migration/checksum.js +92 -0
  278. package/dist/migration/checksum.js.map +1 -0
  279. package/dist/migration/index.js +282 -0
  280. package/dist/migration/index.js.map +1 -0
  281. package/dist/migration/logger.js +360 -0
  282. package/dist/migration/logger.js.map +1 -0
  283. package/dist/migration/preflight.js +9 -0
  284. package/dist/migration/preflight.js.map +1 -0
  285. package/dist/migration/state.js +421 -0
  286. package/dist/migration/state.js.map +1 -0
  287. package/dist/migration/validate.js +241 -0
  288. package/dist/migration/validate.js.map +1 -0
  289. package/dist/nexus/deps.js +375 -0
  290. package/dist/nexus/deps.js.map +1 -0
  291. package/dist/nexus/discover.js +288 -0
  292. package/dist/nexus/discover.js.map +1 -0
  293. package/dist/nexus/hash.js +10 -0
  294. package/dist/nexus/hash.js.map +1 -0
  295. package/dist/nexus/index.js +38 -0
  296. package/dist/nexus/index.js.map +1 -0
  297. package/dist/nexus/migrate-json-to-sqlite.js +115 -0
  298. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -0
  299. package/dist/nexus/permissions.js +105 -0
  300. package/dist/nexus/permissions.js.map +1 -0
  301. package/dist/nexus/query.js +175 -0
  302. package/dist/nexus/query.js.map +1 -0
  303. package/dist/nexus/registry.js +584 -0
  304. package/dist/nexus/registry.js.map +1 -0
  305. package/dist/nexus/sharing/index.js +288 -0
  306. package/dist/nexus/sharing/index.js.map +1 -0
  307. package/dist/nexus/transfer-types.js +8 -0
  308. package/dist/nexus/transfer-types.js.map +1 -0
  309. package/dist/nexus/transfer.js +263 -0
  310. package/dist/nexus/transfer.js.map +1 -0
  311. package/dist/observability/index.js +103 -0
  312. package/dist/observability/index.js.map +1 -0
  313. package/dist/observability/log-filter.js +63 -0
  314. package/dist/observability/log-filter.js.map +1 -0
  315. package/dist/observability/log-parser.js +99 -0
  316. package/dist/observability/log-parser.js.map +1 -0
  317. package/dist/observability/log-reader.js +139 -0
  318. package/dist/observability/log-reader.js.map +1 -0
  319. package/dist/observability/types.js +19 -0
  320. package/dist/observability/types.js.map +1 -0
  321. package/dist/orchestration/analyze.js +107 -0
  322. package/dist/orchestration/analyze.js.map +1 -0
  323. package/dist/orchestration/bootstrap.js +132 -0
  324. package/dist/orchestration/bootstrap.js.map +1 -0
  325. package/dist/orchestration/context.js +56 -0
  326. package/dist/orchestration/context.js.map +1 -0
  327. package/dist/orchestration/critical-path.js +100 -0
  328. package/dist/orchestration/critical-path.js.map +1 -0
  329. package/dist/orchestration/index.js +286 -0
  330. package/dist/orchestration/index.js.map +1 -0
  331. package/dist/orchestration/parallel.js +89 -0
  332. package/dist/orchestration/parallel.js.map +1 -0
  333. package/dist/orchestration/protocol-validators.js +524 -0
  334. package/dist/orchestration/protocol-validators.js.map +1 -0
  335. package/dist/orchestration/skill-ops.js +98 -0
  336. package/dist/orchestration/skill-ops.js.map +1 -0
  337. package/dist/orchestration/status.js +107 -0
  338. package/dist/orchestration/status.js.map +1 -0
  339. package/dist/orchestration/unblock.js +103 -0
  340. package/dist/orchestration/unblock.js.map +1 -0
  341. package/dist/orchestration/validate-spawn.js +67 -0
  342. package/dist/orchestration/validate-spawn.js.map +1 -0
  343. package/dist/orchestration/waves.js +86 -0
  344. package/dist/orchestration/waves.js.map +1 -0
  345. package/dist/otel/index.js +163 -0
  346. package/dist/otel/index.js.map +1 -0
  347. package/dist/output.js +132 -0
  348. package/dist/output.js.map +1 -0
  349. package/dist/pagination.js +61 -0
  350. package/dist/pagination.js.map +1 -0
  351. package/dist/paths.js +337 -0
  352. package/dist/paths.js.map +1 -0
  353. package/dist/phases/deps.js +369 -0
  354. package/dist/phases/deps.js.map +1 -0
  355. package/dist/phases/index.js +349 -0
  356. package/dist/phases/index.js.map +1 -0
  357. package/dist/pipeline/index.js +10 -0
  358. package/dist/pipeline/index.js.map +1 -0
  359. package/dist/pipeline/phase.js +45 -0
  360. package/dist/pipeline/phase.js.map +1 -0
  361. package/dist/platform.js +211 -0
  362. package/dist/platform.js.map +1 -0
  363. package/dist/project-info.js +84 -0
  364. package/dist/project-info.js.map +1 -0
  365. package/dist/reconciliation/index.js +10 -0
  366. package/dist/reconciliation/index.js.map +1 -0
  367. package/dist/reconciliation/link-store.js +129 -0
  368. package/dist/reconciliation/link-store.js.map +1 -0
  369. package/dist/reconciliation/reconciliation-engine.js +298 -0
  370. package/dist/reconciliation/reconciliation-engine.js.map +1 -0
  371. package/dist/release/artifacts.js +427 -0
  372. package/dist/release/artifacts.js.map +1 -0
  373. package/dist/release/changelog-writer.js +151 -0
  374. package/dist/release/changelog-writer.js.map +1 -0
  375. package/dist/release/channel.js +144 -0
  376. package/dist/release/channel.js.map +1 -0
  377. package/dist/release/ci.js +166 -0
  378. package/dist/release/ci.js.map +1 -0
  379. package/dist/release/github-pr.js +225 -0
  380. package/dist/release/github-pr.js.map +1 -0
  381. package/dist/release/guards.js +116 -0
  382. package/dist/release/guards.js.map +1 -0
  383. package/dist/release/index.js +22 -0
  384. package/dist/release/index.js.map +1 -0
  385. package/dist/release/release-config.js +158 -0
  386. package/dist/release/release-config.js.map +1 -0
  387. package/dist/release/release-manifest.js +1019 -0
  388. package/dist/release/release-manifest.js.map +1 -0
  389. package/dist/release/version-bump.js +255 -0
  390. package/dist/release/version-bump.js.map +1 -0
  391. package/dist/remote/index.js +257 -0
  392. package/dist/remote/index.js.map +1 -0
  393. package/dist/repair.js +89 -0
  394. package/dist/repair.js.map +1 -0
  395. package/dist/research/index.js +2 -0
  396. package/dist/research/index.js.map +1 -0
  397. package/dist/roadmap/index.js +59 -0
  398. package/dist/roadmap/index.js.map +1 -0
  399. package/dist/routing/capability-matrix.js +1550 -0
  400. package/dist/routing/capability-matrix.js.map +1 -0
  401. package/dist/routing/index.js +9 -0
  402. package/dist/routing/index.js.map +1 -0
  403. package/dist/scaffold.d.ts.map +1 -1
  404. package/dist/scaffold.js +1178 -0
  405. package/dist/scaffold.js.map +1 -0
  406. package/dist/schema-management.js +295 -0
  407. package/dist/schema-management.js.map +1 -0
  408. package/dist/security/index.js +9 -0
  409. package/dist/security/index.js.map +1 -0
  410. package/dist/security/input-sanitization.js +321 -0
  411. package/dist/security/input-sanitization.js.map +1 -0
  412. package/dist/sequence/index.js +295 -0
  413. package/dist/sequence/index.js.map +1 -0
  414. package/dist/sessions/assumptions.js +54 -0
  415. package/dist/sessions/assumptions.js.map +1 -0
  416. package/dist/sessions/briefing.js +377 -0
  417. package/dist/sessions/briefing.js.map +1 -0
  418. package/dist/sessions/context-alert.js +222 -0
  419. package/dist/sessions/context-alert.js.map +1 -0
  420. package/dist/sessions/context-inject.js +61 -0
  421. package/dist/sessions/context-inject.js.map +1 -0
  422. package/dist/sessions/context-monitor.js +98 -0
  423. package/dist/sessions/context-monitor.js.map +1 -0
  424. package/dist/sessions/decisions.js +65 -0
  425. package/dist/sessions/decisions.js.map +1 -0
  426. package/dist/sessions/find.js +63 -0
  427. package/dist/sessions/find.js.map +1 -0
  428. package/dist/sessions/handoff.js +328 -0
  429. package/dist/sessions/handoff.js.map +1 -0
  430. package/dist/sessions/hitl-warnings.js +254 -0
  431. package/dist/sessions/hitl-warnings.js.map +1 -0
  432. package/dist/sessions/index.js +318 -0
  433. package/dist/sessions/index.js.map +1 -0
  434. package/dist/sessions/session-archive.js +40 -0
  435. package/dist/sessions/session-archive.js.map +1 -0
  436. package/dist/sessions/session-cleanup.js +59 -0
  437. package/dist/sessions/session-cleanup.js.map +1 -0
  438. package/dist/sessions/session-drift.js +134 -0
  439. package/dist/sessions/session-drift.js.map +1 -0
  440. package/dist/sessions/session-enforcement.js +144 -0
  441. package/dist/sessions/session-enforcement.js.map +1 -0
  442. package/dist/sessions/session-grade.js +253 -0
  443. package/dist/sessions/session-grade.js.map +1 -0
  444. package/dist/sessions/session-history.js +42 -0
  445. package/dist/sessions/session-history.js.map +1 -0
  446. package/dist/sessions/session-id.js +81 -0
  447. package/dist/sessions/session-id.js.map +1 -0
  448. package/dist/sessions/session-memory-bridge.js +52 -0
  449. package/dist/sessions/session-memory-bridge.js.map +1 -0
  450. package/dist/sessions/session-show.js +24 -0
  451. package/dist/sessions/session-show.js.map +1 -0
  452. package/dist/sessions/session-stats.js +69 -0
  453. package/dist/sessions/session-stats.js.map +1 -0
  454. package/dist/sessions/session-suspend.js +39 -0
  455. package/dist/sessions/session-suspend.js.map +1 -0
  456. package/dist/sessions/session-switch.js +51 -0
  457. package/dist/sessions/session-switch.js.map +1 -0
  458. package/dist/sessions/session-view.js +76 -0
  459. package/dist/sessions/session-view.js.map +1 -0
  460. package/dist/sessions/statusline-setup.js +85 -0
  461. package/dist/sessions/statusline-setup.js.map +1 -0
  462. package/dist/sessions/types.js +8 -0
  463. package/dist/sessions/types.js.map +1 -0
  464. package/dist/signaldock/claude-code-transport.js +107 -0
  465. package/dist/signaldock/claude-code-transport.js.map +1 -0
  466. package/dist/signaldock/factory.js +25 -0
  467. package/dist/signaldock/factory.js.map +1 -0
  468. package/dist/signaldock/index.js +9 -0
  469. package/dist/signaldock/index.js.map +1 -0
  470. package/dist/signaldock/signaldock-transport.js +122 -0
  471. package/dist/signaldock/signaldock-transport.js.map +1 -0
  472. package/dist/signaldock/transport.js +11 -0
  473. package/dist/signaldock/transport.js.map +1 -0
  474. package/dist/signaldock/types.js +11 -0
  475. package/dist/signaldock/types.js.map +1 -0
  476. package/dist/skills/agents/config.js +94 -0
  477. package/dist/skills/agents/config.js.map +1 -0
  478. package/dist/skills/agents/install.js +116 -0
  479. package/dist/skills/agents/install.js.map +1 -0
  480. package/dist/skills/agents/registry.js +161 -0
  481. package/dist/skills/agents/registry.js.map +1 -0
  482. package/dist/skills/discovery.js +333 -0
  483. package/dist/skills/discovery.js.map +1 -0
  484. package/dist/skills/dispatch.js +347 -0
  485. package/dist/skills/dispatch.js.map +1 -0
  486. package/dist/skills/dynamic-skill-generator.js +100 -0
  487. package/dist/skills/dynamic-skill-generator.js.map +1 -0
  488. package/dist/skills/index.js +44 -0
  489. package/dist/skills/index.js.map +1 -0
  490. package/dist/skills/injection/subagent.js +195 -0
  491. package/dist/skills/injection/subagent.js.map +1 -0
  492. package/dist/skills/injection/token.js +260 -0
  493. package/dist/skills/injection/token.js.map +1 -0
  494. package/dist/skills/install.js +40 -0
  495. package/dist/skills/install.js.map +1 -0
  496. package/dist/skills/manifests/contribution.js +175 -0
  497. package/dist/skills/manifests/contribution.js.map +1 -0
  498. package/dist/skills/manifests/research.js +281 -0
  499. package/dist/skills/manifests/research.js.map +1 -0
  500. package/dist/skills/manifests/resolver.js +146 -0
  501. package/dist/skills/manifests/resolver.js.map +1 -0
  502. package/dist/skills/marketplace.js +90 -0
  503. package/dist/skills/marketplace.js.map +1 -0
  504. package/dist/skills/orchestrator/spawn.js +178 -0
  505. package/dist/skills/orchestrator/spawn.js.map +1 -0
  506. package/dist/skills/orchestrator/startup.js +451 -0
  507. package/dist/skills/orchestrator/startup.js.map +1 -0
  508. package/dist/skills/orchestrator/validator.js +301 -0
  509. package/dist/skills/orchestrator/validator.js.map +1 -0
  510. package/dist/skills/precedence-integration.js +73 -0
  511. package/dist/skills/precedence-integration.js.map +1 -0
  512. package/dist/skills/precedence-types.js +16 -0
  513. package/dist/skills/precedence-types.js.map +1 -0
  514. package/dist/skills/routing-table.js +63 -0
  515. package/dist/skills/routing-table.js.map +1 -0
  516. package/dist/skills/skill-paths.js +220 -0
  517. package/dist/skills/skill-paths.js.map +1 -0
  518. package/dist/skills/test-utility.js +55 -0
  519. package/dist/skills/test-utility.js.map +1 -0
  520. package/dist/skills/types.js +118 -0
  521. package/dist/skills/types.js.map +1 -0
  522. package/dist/skills/validation.js +183 -0
  523. package/dist/skills/validation.js.map +1 -0
  524. package/dist/skills/version.js +57 -0
  525. package/dist/skills/version.js.map +1 -0
  526. package/dist/snapshot/index.js +188 -0
  527. package/dist/snapshot/index.js.map +1 -0
  528. package/dist/spawn/adapter-registry.js +246 -0
  529. package/dist/spawn/adapter-registry.js.map +1 -0
  530. package/dist/spawn/index.js +10 -0
  531. package/dist/spawn/index.js.map +1 -0
  532. package/dist/stats/index.js +341 -0
  533. package/dist/stats/index.js.map +1 -0
  534. package/dist/stats/workflow-telemetry.js +400 -0
  535. package/dist/stats/workflow-telemetry.js.map +1 -0
  536. package/dist/sticky/archive.js +47 -0
  537. package/dist/sticky/archive.js.map +1 -0
  538. package/dist/sticky/convert.js +235 -0
  539. package/dist/sticky/convert.js.map +1 -0
  540. package/dist/sticky/create.js +48 -0
  541. package/dist/sticky/create.js.map +1 -0
  542. package/dist/sticky/id.js +35 -0
  543. package/dist/sticky/id.js.map +1 -0
  544. package/dist/sticky/index.js +16 -0
  545. package/dist/sticky/index.js.map +1 -0
  546. package/dist/sticky/list.js +44 -0
  547. package/dist/sticky/list.js.map +1 -0
  548. package/dist/sticky/purge.js +45 -0
  549. package/dist/sticky/purge.js.map +1 -0
  550. package/dist/sticky/show.js +42 -0
  551. package/dist/sticky/show.js.map +1 -0
  552. package/dist/sticky/types.js +10 -0
  553. package/dist/sticky/types.js.map +1 -0
  554. package/dist/store/atomic.js +167 -0
  555. package/dist/store/atomic.js.map +1 -0
  556. package/dist/store/backup.js +94 -0
  557. package/dist/store/backup.js.map +1 -0
  558. package/dist/store/brain-accessor.js +397 -0
  559. package/dist/store/brain-accessor.js.map +1 -0
  560. package/dist/store/brain-schema.js +215 -0
  561. package/dist/store/brain-schema.js.map +1 -0
  562. package/dist/store/brain-sqlite.js +271 -0
  563. package/dist/store/brain-sqlite.js.map +1 -0
  564. package/dist/store/cache.js +168 -0
  565. package/dist/store/cache.js.map +1 -0
  566. package/dist/store/chain-schema.js +51 -0
  567. package/dist/store/chain-schema.js.map +1 -0
  568. package/dist/store/converters.js +122 -0
  569. package/dist/store/converters.js.map +1 -0
  570. package/dist/store/cross-db-cleanup.js +169 -0
  571. package/dist/store/cross-db-cleanup.js.map +1 -0
  572. package/dist/store/data-accessor.js +26 -0
  573. package/dist/store/data-accessor.js.map +1 -0
  574. package/dist/store/data-safety-central.js +269 -0
  575. package/dist/store/data-safety-central.js.map +1 -0
  576. package/dist/store/data-safety.js +274 -0
  577. package/dist/store/data-safety.js.map +1 -0
  578. package/dist/store/db-helpers.js +223 -0
  579. package/dist/store/db-helpers.js.map +1 -0
  580. package/dist/store/export.js +155 -0
  581. package/dist/store/export.js.map +1 -0
  582. package/dist/store/file-utils.js +270 -0
  583. package/dist/store/file-utils.js.map +1 -0
  584. package/dist/store/git-checkpoint.js +365 -0
  585. package/dist/store/git-checkpoint.js.map +1 -0
  586. package/dist/store/import-logging.js +139 -0
  587. package/dist/store/import-logging.js.map +1 -0
  588. package/dist/store/import-remap.js +145 -0
  589. package/dist/store/import-remap.js.map +1 -0
  590. package/dist/store/import-sort.js +121 -0
  591. package/dist/store/import-sort.js.map +1 -0
  592. package/dist/store/index.js +28 -0
  593. package/dist/store/index.js.map +1 -0
  594. package/dist/store/json.js +208 -0
  595. package/dist/store/json.js.map +1 -0
  596. package/dist/store/lifecycle-store.js +249 -0
  597. package/dist/store/lifecycle-store.js.map +1 -0
  598. package/dist/store/lock.js +70 -0
  599. package/dist/store/lock.js.map +1 -0
  600. package/dist/store/migration-sqlite.js +676 -0
  601. package/dist/store/migration-sqlite.js.map +1 -0
  602. package/dist/store/nexus-schema.js +62 -0
  603. package/dist/store/nexus-schema.js.map +1 -0
  604. package/dist/store/nexus-sqlite.js +217 -0
  605. package/dist/store/nexus-sqlite.js.map +1 -0
  606. package/dist/store/nexus-validation-schemas.js +40 -0
  607. package/dist/store/nexus-validation-schemas.js.map +1 -0
  608. package/dist/store/parsers.js +37 -0
  609. package/dist/store/parsers.js.map +1 -0
  610. package/dist/store/project-detect.js +457 -0
  611. package/dist/store/project-detect.js.map +1 -0
  612. package/dist/store/provider.js +101 -0
  613. package/dist/store/provider.js.map +1 -0
  614. package/dist/store/safety-data-accessor.js +243 -0
  615. package/dist/store/safety-data-accessor.js.map +1 -0
  616. package/dist/store/schema.js +7 -0
  617. package/dist/store/schema.js.map +1 -0
  618. package/dist/store/session-store.js +219 -0
  619. package/dist/store/session-store.js.map +1 -0
  620. package/dist/store/sqlite-backup.js +105 -0
  621. package/dist/store/sqlite-backup.js.map +1 -0
  622. package/dist/store/sqlite-data-accessor.js +734 -0
  623. package/dist/store/sqlite-data-accessor.js.map +1 -0
  624. package/dist/store/sqlite.js +500 -0
  625. package/dist/store/sqlite.js.map +1 -0
  626. package/dist/store/status-registry.js +8 -0
  627. package/dist/store/status-registry.js.map +1 -0
  628. package/dist/store/task-store.js +348 -0
  629. package/dist/store/task-store.js.map +1 -0
  630. package/dist/store/tasks-schema.js +604 -0
  631. package/dist/store/tasks-schema.js.map +1 -0
  632. package/dist/store/typed-query.js +15 -0
  633. package/dist/store/typed-query.js.map +1 -0
  634. package/dist/store/validation-schemas.js +278 -0
  635. package/dist/store/validation-schemas.js.map +1 -0
  636. package/dist/system/archive-analytics.js +277 -0
  637. package/dist/system/archive-analytics.js.map +1 -0
  638. package/dist/system/archive-stats.js +64 -0
  639. package/dist/system/archive-stats.js.map +1 -0
  640. package/dist/system/audit.js +145 -0
  641. package/dist/system/audit.js.map +1 -0
  642. package/dist/system/backup.js +99 -0
  643. package/dist/system/backup.js.map +1 -0
  644. package/dist/system/cleanup.js +134 -0
  645. package/dist/system/cleanup.js.map +1 -0
  646. package/dist/system/health.js +1054 -0
  647. package/dist/system/health.js.map +1 -0
  648. package/dist/system/index.js +18 -0
  649. package/dist/system/index.js.map +1 -0
  650. package/dist/system/inject-generate.js +122 -0
  651. package/dist/system/inject-generate.js.map +1 -0
  652. package/dist/system/labels.js +38 -0
  653. package/dist/system/labels.js.map +1 -0
  654. package/dist/system/metrics.js +61 -0
  655. package/dist/system/metrics.js.map +1 -0
  656. package/dist/system/migrate.js +43 -0
  657. package/dist/system/migrate.js.map +1 -0
  658. package/dist/system/platform-paths.js +80 -0
  659. package/dist/system/platform-paths.js.map +1 -0
  660. package/dist/system/runtime.js +161 -0
  661. package/dist/system/runtime.js.map +1 -0
  662. package/dist/system/safestop.js +99 -0
  663. package/dist/system/safestop.js.map +1 -0
  664. package/dist/system/storage-preflight.js +123 -0
  665. package/dist/system/storage-preflight.js.map +1 -0
  666. package/dist/task-work/index.js +155 -0
  667. package/dist/task-work/index.js.map +1 -0
  668. package/dist/tasks/add.js +594 -0
  669. package/dist/tasks/add.js.map +1 -0
  670. package/dist/tasks/analyze.js +85 -0
  671. package/dist/tasks/analyze.js.map +1 -0
  672. package/dist/tasks/archive.js +90 -0
  673. package/dist/tasks/archive.js.map +1 -0
  674. package/dist/tasks/atomicity.js +83 -0
  675. package/dist/tasks/atomicity.js.map +1 -0
  676. package/dist/tasks/cancel-ops.js +83 -0
  677. package/dist/tasks/cancel-ops.js.map +1 -0
  678. package/dist/tasks/complete.js +235 -0
  679. package/dist/tasks/complete.js.map +1 -0
  680. package/dist/tasks/crossref-extract.js +73 -0
  681. package/dist/tasks/crossref-extract.js.map +1 -0
  682. package/dist/tasks/delete-preview.js +192 -0
  683. package/dist/tasks/delete-preview.js.map +1 -0
  684. package/dist/tasks/delete.js +120 -0
  685. package/dist/tasks/delete.js.map +1 -0
  686. package/dist/tasks/deletion-strategy.js +200 -0
  687. package/dist/tasks/deletion-strategy.js.map +1 -0
  688. package/dist/tasks/dependency-check.js +278 -0
  689. package/dist/tasks/dependency-check.js.map +1 -0
  690. package/dist/tasks/deps-ready.js +32 -0
  691. package/dist/tasks/deps-ready.js.map +1 -0
  692. package/dist/tasks/enforcement.js +89 -0
  693. package/dist/tasks/enforcement.js.map +1 -0
  694. package/dist/tasks/epic-enforcement.js +294 -0
  695. package/dist/tasks/epic-enforcement.js.map +1 -0
  696. package/dist/tasks/find.js +148 -0
  697. package/dist/tasks/find.js.map +1 -0
  698. package/dist/tasks/graph-cache.js +127 -0
  699. package/dist/tasks/graph-cache.js.map +1 -0
  700. package/dist/tasks/graph-ops.js +171 -0
  701. package/dist/tasks/graph-ops.js.map +1 -0
  702. package/dist/tasks/graph-rag.js +328 -0
  703. package/dist/tasks/graph-rag.js.map +1 -0
  704. package/dist/tasks/hierarchy-policy.js +149 -0
  705. package/dist/tasks/hierarchy-policy.js.map +1 -0
  706. package/dist/tasks/hierarchy.js +185 -0
  707. package/dist/tasks/hierarchy.js.map +1 -0
  708. package/dist/tasks/id-generator.js +65 -0
  709. package/dist/tasks/id-generator.js.map +1 -0
  710. package/dist/tasks/index.js +14 -0
  711. package/dist/tasks/index.js.map +1 -0
  712. package/dist/tasks/labels.js +52 -0
  713. package/dist/tasks/labels.js.map +1 -0
  714. package/dist/tasks/list.js +68 -0
  715. package/dist/tasks/list.js.map +1 -0
  716. package/dist/tasks/phase-tracking.js +133 -0
  717. package/dist/tasks/phase-tracking.js.map +1 -0
  718. package/dist/tasks/pipeline-stage.js +248 -0
  719. package/dist/tasks/pipeline-stage.js.map +1 -0
  720. package/dist/tasks/plan.js +268 -0
  721. package/dist/tasks/plan.js.map +1 -0
  722. package/dist/tasks/relates.js +89 -0
  723. package/dist/tasks/relates.js.map +1 -0
  724. package/dist/tasks/reparent.d.ts +38 -0
  725. package/dist/tasks/reparent.d.ts.map +1 -0
  726. package/dist/tasks/show.js +78 -0
  727. package/dist/tasks/show.js.map +1 -0
  728. package/dist/tasks/size-weighting.js +86 -0
  729. package/dist/tasks/size-weighting.js.map +1 -0
  730. package/dist/tasks/staleness.js +86 -0
  731. package/dist/tasks/staleness.js.map +1 -0
  732. package/dist/tasks/task-ops.js +1340 -0
  733. package/dist/tasks/task-ops.js.map +1 -0
  734. package/dist/tasks/update.js +271 -0
  735. package/dist/tasks/update.js.map +1 -0
  736. package/dist/templates/index.js +10 -0
  737. package/dist/templates/index.js.map +1 -0
  738. package/dist/templates/parser.js +254 -0
  739. package/dist/templates/parser.js.map +1 -0
  740. package/dist/ui/aliases.js +153 -0
  741. package/dist/ui/aliases.js.map +1 -0
  742. package/dist/ui/changelog.js +184 -0
  743. package/dist/ui/changelog.js.map +1 -0
  744. package/dist/ui/command-registry.js +168 -0
  745. package/dist/ui/command-registry.js.map +1 -0
  746. package/dist/ui/flags.js +94 -0
  747. package/dist/ui/flags.js.map +1 -0
  748. package/dist/ui/index.js +24 -0
  749. package/dist/ui/index.js.map +1 -0
  750. package/dist/ui/injection-legacy.d.ts +26 -0
  751. package/dist/ui/injection-legacy.d.ts.map +1 -0
  752. package/dist/ui/injection-legacy.js +42 -0
  753. package/dist/ui/injection-legacy.js.map +1 -0
  754. package/dist/upgrade.js +901 -0
  755. package/dist/upgrade.js.map +1 -0
  756. package/dist/validation/chain-validation.js +146 -0
  757. package/dist/validation/chain-validation.js.map +1 -0
  758. package/dist/validation/compliance.js +155 -0
  759. package/dist/validation/compliance.js.map +1 -0
  760. package/dist/validation/docs-sync.js +212 -0
  761. package/dist/validation/docs-sync.js.map +1 -0
  762. package/dist/validation/doctor/checks.js +1069 -0
  763. package/dist/validation/doctor/checks.js.map +1 -0
  764. package/dist/validation/doctor/index.js +9 -0
  765. package/dist/validation/doctor/index.js.map +1 -0
  766. package/dist/validation/doctor/project-cache.js +160 -0
  767. package/dist/validation/doctor/project-cache.js.map +1 -0
  768. package/dist/validation/doctor/utils.js +155 -0
  769. package/dist/validation/doctor/utils.js.map +1 -0
  770. package/dist/validation/engine.js +902 -0
  771. package/dist/validation/engine.js.map +1 -0
  772. package/dist/validation/gap-check.js +175 -0
  773. package/dist/validation/gap-check.js.map +1 -0
  774. package/dist/validation/index.js +40 -0
  775. package/dist/validation/index.js.map +1 -0
  776. package/dist/validation/manifest.js +237 -0
  777. package/dist/validation/manifest.js.map +1 -0
  778. package/dist/validation/operation-gate-validators.js +724 -0
  779. package/dist/validation/operation-gate-validators.js.map +1 -0
  780. package/dist/validation/operation-verification-gates.js +532 -0
  781. package/dist/validation/operation-verification-gates.js.map +1 -0
  782. package/dist/validation/param-utils.js +139 -0
  783. package/dist/validation/param-utils.js.map +1 -0
  784. package/dist/validation/protocol-common.js +300 -0
  785. package/dist/validation/protocol-common.js.map +1 -0
  786. package/dist/validation/protocols/consensus.js +71 -0
  787. package/dist/validation/protocols/consensus.js.map +1 -0
  788. package/dist/validation/protocols/contribution.js +59 -0
  789. package/dist/validation/protocols/contribution.js.map +1 -0
  790. package/dist/validation/protocols/decomposition.js +59 -0
  791. package/dist/validation/protocols/decomposition.js.map +1 -0
  792. package/dist/validation/protocols/implementation.js +59 -0
  793. package/dist/validation/protocols/implementation.js.map +1 -0
  794. package/dist/validation/protocols/release-protocol.js +60 -0
  795. package/dist/validation/protocols/release-protocol.js.map +1 -0
  796. package/dist/validation/protocols/research.js +77 -0
  797. package/dist/validation/protocols/research.js.map +1 -0
  798. package/dist/validation/protocols/specification.js +84 -0
  799. package/dist/validation/protocols/specification.js.map +1 -0
  800. package/dist/validation/protocols/testing-protocol.js +70 -0
  801. package/dist/validation/protocols/testing-protocol.js.map +1 -0
  802. package/dist/validation/protocols/validation-protocol.js +70 -0
  803. package/dist/validation/protocols/validation-protocol.js.map +1 -0
  804. package/dist/validation/schema-integrity.js +170 -0
  805. package/dist/validation/schema-integrity.js.map +1 -0
  806. package/dist/validation/schema-validator.js +176 -0
  807. package/dist/validation/schema-validator.js.map +1 -0
  808. package/dist/validation/validate-ops.js +937 -0
  809. package/dist/validation/validate-ops.js.map +1 -0
  810. package/dist/validation/validation-rules.js +226 -0
  811. package/dist/validation/validation-rules.js.map +1 -0
  812. package/dist/validation/verification.js +321 -0
  813. package/dist/validation/verification.js.map +1 -0
  814. package/package.json +5 -5
  815. package/src/agents/__tests__/agent-registry.test.ts +1 -1
  816. package/src/bootstrap.ts +171 -30
  817. package/src/cleo.ts +103 -2
  818. package/src/scaffold.ts +24 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-data-accessor.js","sourceRoot":"","sources":["../../src/store/sqlite-data-accessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAUxF,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C;;;GAGG;AACH,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,gCAAgC;AAEhC,0DAA0D;AAC1D,KAAK,UAAU,YAAY,CAAI,GAAuB,EAAE,GAAW;IACjE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,MAAM,EAAE;SACR,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;SACvB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACrC,GAAG,EAAE,CAAC;IACT,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAM,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAuB,EACvB,GAAW,EACX,KAAc;IAEd,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,EAAE;SACL,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;SACzB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5B,kBAAkB,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;QAC7B,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACrB,CAAC;SACD,GAAG,EAAE,CAAC;AACX,CAAC;AAED,6BAA6B;AAE7B;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAAY;IACzD,yDAAyD;IACzD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjB,8DAA8D;IAC9D,KAAK,UAAU,aAAa;QAC1B,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/E,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,QAAQ,GAAiB;QAC7B,MAAM,EAAE,QAAiB;QAEzB,wBAAwB;QAExB,KAAK,CAAC,WAAW;YACf,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAE5B,wCAAwC;YACxC,MAAM,YAAY,GAAG,MAAM,EAAE;iBAC1B,MAAM,EAAE;iBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;iBAC1C,GAAG,EAAE,CAAC;YAET,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAE3C,MAAM,aAAa,GAAW,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC5B,sEAAsE;gBACtE,4CAA4C;gBAC5C,OAAO;oBACL,GAAG,IAAI;oBACP,wEAAwE;oBACxE,gEAAgE;oBAChE,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;oBACvC,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;oBAC7C,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;iBACoC,CAAC;YACtF,CAAC,CAAC,CAAC;YAEH,8EAA8E;YAC9E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,oEAAoE;gBACpE,MAAM,UAAU,GAAG,MAAM,EAAE;qBACxB,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;qBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;qBAClB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;qBAC1C,GAAG,EAAE,CAAC;gBACT,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;oBAC1B,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/B,CAAC,CAAC;gBACH,MAAM,wBAAwB,CAAC,EAAE,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;gBAC/D,MAAM,qBAAqB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YACjD,CAAC;YAED,OAAO;gBACL,aAAa;gBACb,OAAO,EAAE,OAAO;aACjB,CAAC;QACJ,CAAC;QAED,wBAAwB;QAExB,KAAK,CAAC,WAAW,CAAC,IAAiB;YACjC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAE5B,sEAAsE;YACtE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,MAAM,EAAE;iBACxB,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;iBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;iBAC1C,GAAG,EAAE,CAAC;YACT,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE7E,gEAAgE;YAChE,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YAED,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,2CAA2C;gBAC3C,MAAM,QAAQ,GAA8C,EAAE,CAAC;gBAE/D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAEpC,mEAAmE;oBACnE,MAAM,OAAO,GAAG,IAIf,CAAC;oBAEF,MAAM,aAAa,GAAG;wBACpB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC7E,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,WAAW;wBACnD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;qBAC7C,CAAC;oBAEF,MAAM,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;oBACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBAED,oDAAoD;gBACpD,MAAM,uBAAuB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAEzD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,yBAAyB;QAEzB,KAAK,CAAC,YAAY;YAChB,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;YAClE,OAAO,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,yBAAyB;QAEzB,KAAK,CAAC,YAAY,CAAC,QAAmB;YACpC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAE5B,2BAA2B;YAC3B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7F,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEvD,iDAAiD;YACjD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC5E,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,sBAAsB;QAEtB,KAAK,CAAC,SAAS,CAAC,KAA8B;YAC5C,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,EAAE;iBACL,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACvB,MAAM,CAAC;gBACN,EAAE,EAAG,KAAK,CAAC,EAAa,IAAI,kBAAkB,EAAE;gBAChD,SAAS,EAAG,KAAK,CAAC,SAAoB,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAClE,MAAM,EAAG,KAAK,CAAC,MAAiB,IAAK,KAAK,CAAC,SAAoB,IAAI,SAAS;gBAC5E,MAAM,EAAG,KAAK,CAAC,MAAiB,IAAI,SAAS;gBAC7C,KAAK,EAAG,KAAK,CAAC,KAAgB,IAAI,QAAQ;gBAC1C,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;gBACjE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC9D,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;aAC5D,CAAC;iBACD,GAAG,EAAE,CAAC;QACX,CAAC;QAED,iDAAiD;QAEjD,KAAK,CAAC,gBAAgB,CAAC,IAAU;YAC/B,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1B,MAAM,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,KAAK,CAAC,WAAW,CACf,MAAc,EACd,SAAiB,EACjB,YAAoB,EACpB,MAAe;YAEf,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,oDAAoD;YACpD,MAAM,UAAU,GAAG;gBACjB,SAAS;gBACT,QAAQ;gBACR,YAAY;gBACZ,SAAS;gBACT,OAAO;gBACP,SAAS;gBACT,YAAY;aACJ,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAA2C,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CACb,0BAA0B,YAAY,kBAAkB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChF,CAAC;YACJ,CAAC;YACD,MAAM,EAAE;iBACL,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;iBAC5B,MAAM,CAAC;gBACN,MAAM;gBACN,SAAS;gBACT,YAAY,EAAE,YAA2C;gBACzD,MAAM,EAAE,MAAM,IAAI,IAAI;aACvB,CAAC;iBACD,mBAAmB,EAAE;iBACrB,GAAG,EAAE,CAAC;QACX,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,MAAqB;YAC3D,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,0CAA0C;YAC1C,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;iBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;iBAClC,GAAG,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,EAAE;iBACL,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;iBACpB,GAAG,CAAC;gBACH,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACzD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,WAAW;gBAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;gBAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;iBACD,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;iBAClC,GAAG,EAAE,CAAC;QACX,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,MAAc;YACnC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,8CAA8C;YAC9C,MAAM,EAAE;iBACL,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;iBAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;iBACjD,GAAG,EAAE,CAAC;YACT,MAAM,EAAE;iBACL,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;iBAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;iBACpD,GAAG,EAAE,CAAC;YACT,yBAAyB;YACzB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACzE,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,MAAc;YACjC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,EAAE;iBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;iBAClC,KAAK,CAAC,CAAC,CAAC;iBACR,GAAG,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,gFAAgF;YAChF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;YACpF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,wBAAwB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,qBAAqB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,gBAAgB;YACpB,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,EAAE;iBACR,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACrB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;iBAC3C,OAAO,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,OAAO,CAAC;iBAC/C,KAAK,CAAC,CAAC,CAAC;iBACR,GAAG,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,OAAgB;YACxC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,SAAiB;YACzC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClF,CAAC;QAED,2DAA2D;QAE3D,KAAK,CAAC,UAAU,CAAC,OAAyB;YACxC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,0DAA0D;YAC1D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvD,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;oBACnD,CAAC,CAAC,OAAO,CAAC,aAAa;oBACvB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC5B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnF,IAAI,OAAO,CAAC,IAAI;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,KAAK;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1E,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAC9B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBACtC,UAAU,CAAC,IAAI,CACb,EAAE,CACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,EACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAC9B,CACH,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,iEAAiE;gBACjE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACvF,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAErE,gDAAgD;YAChD,MAAM,WAAW,GAAG,MAAM,EAAE;iBACzB,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAQ,UAAU,EAAE,CAAC;iBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,KAAK,CAAC;iBACZ,GAAG,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC;YAEtC,sBAAsB;YACtB,IAAI,WAAmC,CAAC;YACxC,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,KAAK,WAAW;oBACd,WAAW,GAAG,GAAG,CAAA,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC;oBACjD,MAAM;gBACR,KAAK,WAAW;oBACd,WAAW,GAAG,GAAG,CAAA,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,kBAAkB,CAAC;oBAC7D,MAAM;gBACR,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,oEAAoE;oBACpE,WAAW,GAAG,GAAG,CAAA,QAAQ,MAAM,CAAC,KAAK,CAAC,QAAQ;;kEAEU,CAAC;oBACzD,MAAM;gBACR,CAAC;gBACD;oBACE,wCAAwC;oBACxC,WAAW,GAAG,GAAG,CAAA,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC;YACnF,CAAC;YAED,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAE7E,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAiB,CAAC;YACrD,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAiB,CAAC;YACvD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAElC,uEAAuE;YACvE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;gBACrC,MAAM,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,OAGhB;YACC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACtB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAQ,UAAU,EAAE,CAAC;iBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,KAAK,CAAC;iBACZ,GAAG,EAAE,CAAC;YACT,OAAO,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,QAAgB;YAChC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,EAAE;iBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;iBACpF,OAAO,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC;iBACzE,GAAG,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;gBACrC,MAAM,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,QAAgB;YAClC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAQ,UAAU,EAAE,CAAC;iBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;iBACpF,GAAG,EAAE,CAAC;YACT,OAAO,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,QAAgB;YACxC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAQ,UAAU,EAAE,CAAC;iBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACnC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAC7D,CACF;iBACA,GAAG,EAAE,CAAC;YACT,OAAO,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,MAAc;YACnC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAEzB,MAAM,MAAM,GAAG,QAAQ;iBACpB,OAAO,CACN;;;;;;;0DAOgD,CACjD;iBACA,GAAG,CAAC,MAAM,CAA0B,CAAC;YAExC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEnC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,EAAE;iBACtB,MAAM,EAAE;iBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;iBACpC,GAAG,EAAE,CAAC;YAET,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;gBACrC,MAAM,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,kDAAkD;YAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,MAAc;YAC7B,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAEzB,oEAAoE;YACpE,MAAM,MAAM,GAAG,QAAQ;iBACpB,OAAO,CACN;;;;;;iCAMuB,CACxB;iBACA,GAAG,CAAC,MAAM,CAA0B,CAAC;YAExC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEnC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAE7F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;gBACrC,MAAM,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,MAAc;YAChC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,iEAAiE;YACjE,MAAM,OAAO,GAAG,MAAM,EAAE;iBACrB,MAAM,EAAE;iBACR,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;iBAC7B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;iBACpD,GAAG,EAAE,CAAC;YAET,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEpC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,EAAE;iBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;iBAC7C,GAAG,EAAE,CAAC;YAET,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;gBACrC,MAAM,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;YACrC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAEzB,MAAM,IAAI,GAAG,QAAQ;iBAClB,OAAO,CACN;;;;;;mCAMyB,CAC1B;iBACA,GAAG,CAAC,MAAM,CAA0B,CAAC;YAExC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,MAAc;YAC7B,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;iBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;iBAClC,KAAK,CAAC,CAAC,CAAC;iBACR,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,CAAC,MAAM,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,OAAiB;YAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,EAAE;iBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBAClB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBACxC,GAAG,EAAE,CAAC;YAET,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;gBACrC,MAAM,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,yCAAyC;QAEzC,KAAK,CAAC,eAAe,CAAC,QAAuB;YAC3C,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,GAAG,GACP,QAAQ,KAAK,IAAI;gBACf,CAAC,CAAE,QAAQ;qBACN,OAAO,CACN,+GAA+G,CAChH;qBACA,GAAG,EAAuC;gBAC/C,CAAC,CAAE,QAAQ;qBACN,OAAO,CACN,2GAA2G,CAC5G;qBACA,GAAG,CAAC,QAAQ,CAAsC,CAAC;YAC5D,OAAO,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,CAAC,cAAc,CAClB,QAAuB,EACvB,YAAoB,EACpB,KAAa;YAEb,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,QAAQ;qBACL,OAAO,CACN,sKAAsK,CACvK;qBACA,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,QAAQ;qBACL,OAAO,CACN,kKAAkK,CACnK;qBACA,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,mCAAmC;QAEnC,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,MAAwB;YAC7D,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,SAAS,GAA4B;gBACzC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACxD,CAAC;YAEF,4BAA4B;YAC5B,MAAM,QAAQ,GAA4C;gBACxD,CAAC,OAAO,EAAE,OAAO,CAAC;gBAClB,CAAC,aAAa,EAAE,aAAa,CAAC;gBAC9B,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACpB,CAAC,UAAU,EAAE,UAAU,CAAC;gBACxB,CAAC,MAAM,EAAE,MAAM,CAAC;gBAChB,CAAC,UAAU,EAAE,UAAU,CAAC;gBACxB,CAAC,OAAO,EAAE,OAAO,CAAC;gBAClB,CAAC,MAAM,EAAE,MAAM,CAAC;gBAChB,CAAC,UAAU,EAAE,UAAU,CAAC;gBACxB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;gBACtC,CAAC,YAAY,EAAE,YAAY,CAAC;gBAC5B,CAAC,WAAW,EAAE,WAAW,CAAC;gBAC1B,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;gBACpC,CAAC,WAAW,EAAE,WAAW,CAAC;gBAC1B,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACpB,CAAC,WAAW,EAAE,WAAW,CAAC;gBAC1B,CAAC,eAAe,EAAE,eAAe,CAAC;gBAClC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;gBACpC,CAAC,aAAa,EAAE,aAAa,CAAC;gBAC9B,CAAC,aAAa,EAAE,aAAa,CAAC;gBAC9B,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;gBAC5C,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBACxC,CAAC,WAAW,EAAE,WAAW,CAAC;gBAC1B,CAAC,YAAY,EAAE,YAAY,CAAC;gBAC5B,CAAC,WAAW,EAAE,WAAW,CAAC;aAC3B,CAAC;YAEF,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAClC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC9B,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACxF,CAAC;QAED,KAAK,CAAC,WAAW,CAAI,EAA2C;YAC9D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAE5B,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,EAAE,GAAwB;oBAC9B,KAAK,CAAC,gBAAgB,CAAC,IAAU;wBAC/B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;wBAC5B,MAAM,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;wBAC1B,MAAM,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBACD,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,MAAqB;wBAC3D,MAAM,EAAE;6BACL,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;6BACpB,GAAG,CAAC;4BACH,MAAM,EAAE,UAAU;4BAClB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACzD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,WAAW;4BAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;4BAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACpC,CAAC;6BACD,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;6BAClC,GAAG,EAAE,CAAC;oBACX,CAAC;oBACD,KAAK,CAAC,gBAAgB,CAAC,MAAc;wBACnC,MAAM,EAAE;6BACL,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;6BAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;6BACjD,GAAG,EAAE,CAAC;wBACT,MAAM,EAAE;6BACL,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;6BAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;6BACpD,GAAG,EAAE,CAAC;wBACT,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACzE,CAAC;oBACD,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,KAAc;wBAC5C,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBACtC,CAAC;oBACD,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,IAAsB;wBAC3D,kDAAkD;wBAClD,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAChD,CAAC;oBACD,KAAK,CAAC,SAAS,CAAC,KAA8B;wBAC5C,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAClC,CAAC;iBACF,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5B,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,kBAAkB;QAElB,KAAK,CAAC,KAAK;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,qBAAqB;QAErB,KAAK,CAAC,YAAY,CAAI,GAAW;YAC/B,OAAO,YAAY,CAAI,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,KAAc;YAC5C,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,gBAAgB;YACpB,MAAM,IAAI,GAAG,MAAM,YAAY,CAA6B,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,OAAO,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC;QACrC,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,500 @@
1
+ /**
2
+ * SQLite store via drizzle-orm/node-sqlite + node:sqlite (DatabaseSync).
3
+ *
4
+ * Zero native npm dependencies, 100% cross-platform (Windows/Linux/macOS).
5
+ * File-backed SQLite with WAL mode for multi-process concurrent access.
6
+ * Database stored at .cleo/tasks.db.
7
+ *
8
+ * Architecture: node:sqlite provides the synchronous file-backed SQLite engine,
9
+ * wrapped via drizzle-orm/node-sqlite for a fully synchronous interface. All
10
+ * writes go directly to disk through SQLite's native WAL mechanism -- no
11
+ * saveToFile() pattern needed.
12
+ *
13
+ * @epic T4454
14
+ * @task T4817 - node:sqlite engine migration (ADR-006, ADR-010)
15
+ * @task T4810 - Data loss prevention guards
16
+ */
17
+ import { copyFileSync, existsSync, mkdirSync, renameSync, unlinkSync } from 'node:fs';
18
+ import { createRequire } from 'node:module';
19
+ const _require = createRequire(import.meta.url);
20
+ const { DatabaseSync } = _require('node:sqlite');
21
+ import { dirname, join, resolve, sep } from 'node:path';
22
+ import { fileURLToPath } from 'node:url';
23
+ import { eq } from 'drizzle-orm';
24
+ import { readMigrationFiles } from 'drizzle-orm/migrator';
25
+ import { drizzle } from 'drizzle-orm/node-sqlite';
26
+ import { migrate } from 'drizzle-orm/node-sqlite/migrator';
27
+ import { getLogger } from '../logger.js';
28
+ import { getCleoDirAbsolute } from '../paths.js';
29
+ import { listSqliteBackups } from './sqlite-backup.js';
30
+ import * as schema from './tasks-schema.js';
31
+ /**
32
+ * Open a node:sqlite DatabaseSync with CLEO standard pragmas.
33
+ *
34
+ * CRITICAL: WAL mode is verified, not just requested. If another process holds
35
+ * an EXCLUSIVE lock in DELETE mode, PRAGMA journal_mode=WAL silently returns
36
+ * 'delete'. This caused data loss (T5173) when concurrent MCP servers opened
37
+ * the same database — writes were silently dropped under lock contention.
38
+ */
39
+ export function openNativeDatabase(path, options) {
40
+ const db = new DatabaseSync(path, {
41
+ enableForeignKeyConstraints: true,
42
+ readOnly: options?.readonly ?? false,
43
+ timeout: options?.timeout ?? 5000,
44
+ allowExtension: options?.allowExtension ?? false,
45
+ });
46
+ // Set busy_timeout FIRST so WAL pragma can wait for locks
47
+ db.exec('PRAGMA busy_timeout=5000');
48
+ // Enable WAL for concurrent multi-process access (ADR-006, ADR-010)
49
+ if (options?.enableWal !== false) {
50
+ const MAX_WAL_RETRIES = 3;
51
+ const RETRY_DELAY_MS = 200;
52
+ let walSet = false;
53
+ for (let attempt = 1; attempt <= MAX_WAL_RETRIES; attempt++) {
54
+ db.exec('PRAGMA journal_mode=WAL');
55
+ // CRITICAL: Verify WAL was actually set — the PRAGMA returns the mode
56
+ // that was applied, which may be 'delete' if another connection holds a lock
57
+ const result = db.prepare('PRAGMA journal_mode').get();
58
+ const currentMode = result?.journal_mode?.toLowerCase?.() ?? 'unknown';
59
+ if (currentMode === 'wal') {
60
+ walSet = true;
61
+ break;
62
+ }
63
+ // WAL not set — another connection likely holds an EXCLUSIVE lock
64
+ if (attempt < MAX_WAL_RETRIES) {
65
+ // Sync sleep via Atomics for retry delay (node:sqlite is sync-only)
66
+ const buf = new SharedArrayBuffer(4);
67
+ Atomics.wait(new Int32Array(buf), 0, 0, RETRY_DELAY_MS * attempt);
68
+ }
69
+ }
70
+ if (!walSet) {
71
+ // Verify one final time
72
+ const finalResult = db.prepare('PRAGMA journal_mode').get();
73
+ const finalMode = finalResult?.journal_mode?.toLowerCase?.() ?? 'unknown';
74
+ if (finalMode !== 'wal') {
75
+ db.close();
76
+ throw new Error(`CRITICAL: Failed to set WAL journal mode after ${MAX_WAL_RETRIES} attempts. ` +
77
+ `Database is in '${finalMode}' mode. Another process likely holds an EXCLUSIVE lock ` +
78
+ `on ${path}. Refusing to open — concurrent writes in DELETE mode cause data loss. ` +
79
+ `Kill other cleo/MCP processes and retry. (T5173)`);
80
+ }
81
+ }
82
+ }
83
+ // FK enforcement enabled in production. Disabled in vitest where test
84
+ // fixtures insert data without full referential integrity (orphan refs).
85
+ // VITEST env var is auto-set by vitest — no config needed.
86
+ if (!process.env.VITEST) {
87
+ db.exec('PRAGMA foreign_keys=ON');
88
+ }
89
+ return db;
90
+ }
91
+ /** Database file name within .cleo/ directory. */
92
+ const DB_FILENAME = 'tasks.db';
93
+ /** Schema version for newly created databases. Single source of truth. */
94
+ export const SQLITE_SCHEMA_VERSION = '2.0.0';
95
+ const SCHEMA_VERSION = SQLITE_SCHEMA_VERSION;
96
+ /** Singleton state for lazy initialization. */
97
+ let _db = null;
98
+ let _nativeDb = null;
99
+ let _dbPath = null;
100
+ /** Guard against concurrent initialization (async migration). */
101
+ let _initPromise = null;
102
+ /** Guard: git-tracking check runs only once per process. */
103
+ let _gitTrackingChecked = false;
104
+ /**
105
+ * Get the path to the SQLite database file.
106
+ */
107
+ export function getDbPath(cwd) {
108
+ return join(getCleoDirAbsolute(cwd), DB_FILENAME);
109
+ }
110
+ /**
111
+ * Minimum task count in a backup to consider it a valid recovery source.
112
+ * Prevents restoring from a backup that's also empty or nearly empty.
113
+ * @task T5188
114
+ */
115
+ const MIN_BACKUP_TASK_COUNT = 10;
116
+ /**
117
+ * Auto-recover from backup if the database has tables but zero tasks
118
+ * and a backup with data exists.
119
+ *
120
+ * Root cause (T5188): WAL/SHM files were tracked by git. On branch switch,
121
+ * git overwrites the WAL with an empty (committed) version, discarding all
122
+ * pending WAL writes. The main DB file (which may not have been checkpointed)
123
+ * appears empty because all recent writes were in the WAL.
124
+ *
125
+ * This function runs after migrations (so tables exist) and before the
126
+ * singleton is set. It checks if the tasks table is empty and a VACUUM INTO
127
+ * backup exists with real data. If so, it closes the current connection,
128
+ * replaces the DB file from backup, and re-opens.
129
+ *
130
+ * @task T5188
131
+ */
132
+ async function autoRecoverFromBackup(nativeDb, dbPath, cwd) {
133
+ const log = getLogger('sqlite');
134
+ try {
135
+ // Count tasks in current database
136
+ const countResult = nativeDb.prepare('SELECT COUNT(*) as cnt FROM tasks').get();
137
+ const taskCount = countResult?.cnt ?? 0;
138
+ if (taskCount > 0)
139
+ return; // Database has data, no recovery needed
140
+ // Database is empty — check for backups
141
+ const backups = listSqliteBackups(cwd);
142
+ if (backups.length === 0) {
143
+ // No backups available — this is a genuinely new database
144
+ return;
145
+ }
146
+ // Check the newest backup for task count
147
+ const newestBackup = backups[0];
148
+ // Open backup read-only to verify it has data
149
+ const backupDb = new DatabaseSync(newestBackup.path, { readOnly: true });
150
+ let backupTaskCount = 0;
151
+ try {
152
+ const backupCount = backupDb.prepare('SELECT COUNT(*) as cnt FROM tasks').get();
153
+ backupTaskCount = backupCount?.cnt ?? 0;
154
+ }
155
+ finally {
156
+ backupDb.close();
157
+ }
158
+ if (backupTaskCount < MIN_BACKUP_TASK_COUNT) {
159
+ // Backup also has very few tasks — not a reliable recovery source
160
+ return;
161
+ }
162
+ // We have an empty database AND a backup with data — auto-recover
163
+ log.warn({ dbPath, backupPath: newestBackup.path, backupTasks: backupTaskCount }, `Empty database detected with ${backupTaskCount}-task backup available. ` +
164
+ 'Auto-recovering from backup. This likely happened because git-tracked ' +
165
+ 'WAL/SHM files were overwritten during a branch switch (T5188).');
166
+ // Close current connection
167
+ nativeDb.close();
168
+ // Remove stale WAL/SHM files that may have been corrupted by git
169
+ const walPath = dbPath + '-wal';
170
+ const shmPath = dbPath + '-shm';
171
+ try {
172
+ unlinkSync(walPath);
173
+ }
174
+ catch {
175
+ /* may not exist */
176
+ }
177
+ try {
178
+ unlinkSync(shmPath);
179
+ }
180
+ catch {
181
+ /* may not exist */
182
+ }
183
+ // Restore from backup (atomic: copy to temp, rename)
184
+ const tempPath = dbPath + '.recovery-tmp';
185
+ copyFileSync(newestBackup.path, tempPath);
186
+ // Rename in place — on the same filesystem this is atomic
187
+ renameSync(tempPath, dbPath);
188
+ log.info({ dbPath, backupPath: newestBackup.path, restoredTasks: backupTaskCount }, 'Database auto-recovered from backup successfully.');
189
+ // Re-open the restored database — update the native singleton
190
+ const restoredNativeDb = openNativeDatabase(dbPath);
191
+ _nativeDb = restoredNativeDb;
192
+ // Re-run migrations on restored DB to ensure schema is current
193
+ const restoredDb = drizzle({ client: restoredNativeDb, schema });
194
+ runMigrations(restoredNativeDb, restoredDb);
195
+ // Update the singleton drizzle instance
196
+ _db = restoredDb;
197
+ }
198
+ catch (err) {
199
+ // Auto-recovery failure is non-fatal — log and continue with empty DB
200
+ log.error({ err, dbPath }, 'Auto-recovery from backup failed. Continuing with empty database.');
201
+ }
202
+ }
203
+ /**
204
+ * Initialize the SQLite database (lazy, singleton).
205
+ * Creates the database file and tables if they don't exist.
206
+ * Returns the drizzle ORM instance (node-sqlite driver).
207
+ *
208
+ * Uses a promise guard so concurrent callers wait for the same
209
+ * initialization to complete (migrations are async).
210
+ */
211
+ export async function getDb(cwd) {
212
+ const requestedPath = getDbPath(cwd);
213
+ // If singleton exists but points to different path, reset it
214
+ if (_db && _dbPath !== requestedPath) {
215
+ resetDbState();
216
+ }
217
+ if (_db)
218
+ return _db;
219
+ // If already initializing, wait for the in-flight init
220
+ if (_initPromise)
221
+ return _initPromise;
222
+ _initPromise = (async () => {
223
+ const dbPath = requestedPath;
224
+ _dbPath = dbPath;
225
+ // Ensure directory exists
226
+ mkdirSync(dirname(dbPath), { recursive: true });
227
+ // Open file-backed SQLite via node:sqlite with WAL mode
228
+ const nativeDb = openNativeDatabase(dbPath);
229
+ _nativeDb = nativeDb;
230
+ // Create drizzle ORM wrapper via node-sqlite
231
+ const db = drizzle({ client: nativeDb, schema });
232
+ // Run drizzle migrations (creates/updates tables)
233
+ runMigrations(nativeDb, db);
234
+ // Migration SQL contains PRAGMA foreign_keys=ON statements.
235
+ // In test environments, disable FKs after migration to allow test
236
+ // fixtures to insert data without full referential integrity.
237
+ if (process.env.VITEST) {
238
+ nativeDb.exec('PRAGMA foreign_keys=OFF');
239
+ }
240
+ // Seed schema version for new databases (no-op if already set)
241
+ nativeDb.exec(`INSERT OR IGNORE INTO schema_meta (key, value) VALUES ('schemaVersion', '${SCHEMA_VERSION}')`);
242
+ nativeDb.exec(`INSERT OR IGNORE INTO schema_meta (key, value) VALUES ('task_id_sequence', '{"counter":0,"lastId":"T000","checksum":"seed"}')`);
243
+ // Auto-recovery: detect empty database with available backups (T5188)
244
+ // Root cause: git-tracked WAL/SHM files get overwritten on branch switch,
245
+ // causing data loss when the WAL contained uncommitted writes.
246
+ await autoRecoverFromBackup(nativeDb, dbPath, cwd);
247
+ // Check if tasks.db or its WAL/SHM are dangerously tracked by git (ADR-013, T5158, T5188)
248
+ if (!_gitTrackingChecked) {
249
+ _gitTrackingChecked = true;
250
+ try {
251
+ const { execFileSync } = await import('node:child_process');
252
+ const gitCwd = resolve(dbPath, '..', '..');
253
+ const filesToCheck = [dbPath, dbPath + '-wal', dbPath + '-shm'];
254
+ const log = getLogger('sqlite');
255
+ for (const fileToCheck of filesToCheck) {
256
+ try {
257
+ execFileSync('git', ['ls-files', '--error-unmatch', fileToCheck], {
258
+ cwd: gitCwd,
259
+ stdio: 'pipe',
260
+ });
261
+ // If we get here, the file IS tracked — that's dangerous
262
+ const basename = fileToCheck.split(/[\\/]/).pop();
263
+ log.warn({ path: fileToCheck }, `${basename} is tracked by project git — this risks data loss on branch switch. ` +
264
+ `Run: git rm --cached ${fileToCheck.replace(gitCwd + sep, '')} (see ADR-013, T5188)`);
265
+ }
266
+ catch {
267
+ // Exit code 1 = not tracked = good
268
+ }
269
+ }
270
+ }
271
+ catch {
272
+ // git not available, skip check
273
+ }
274
+ }
275
+ // Set singleton only after migrations complete
276
+ _db = db;
277
+ return db;
278
+ })();
279
+ try {
280
+ return await _initPromise;
281
+ }
282
+ finally {
283
+ _initPromise = null;
284
+ }
285
+ }
286
+ /**
287
+ * Resolve the path to the drizzle migrations folder.
288
+ * Works from both src/ (dev via tsx) and dist/ (compiled via esbuild bundle).
289
+ *
290
+ * - Source layout: __dirname = src/store/ → need ../../migrations/drizzle-tasks
291
+ * - Bundled layout: __dirname = dist/ → need ../migrations/drizzle-tasks
292
+ */
293
+ export function resolveMigrationsFolder() {
294
+ const __filename = fileURLToPath(import.meta.url);
295
+ const __dirname = dirname(__filename);
296
+ // When esbuild bundles into dist/index.js, __dirname is dist/ (1 level deep).
297
+ // When running from source via tsx, __dirname is src/store/ (2 levels deep).
298
+ const isBundled = __dirname.endsWith('/dist') || __dirname.endsWith('\\dist');
299
+ const pkgRoot = isBundled ? join(__dirname, '..') : join(__dirname, '..', '..');
300
+ return join(pkgRoot, 'migrations', 'drizzle-tasks');
301
+ }
302
+ /**
303
+ * Check whether a table exists in the SQLite database.
304
+ */
305
+ function tableExists(nativeDb, tableName) {
306
+ const result = nativeDb
307
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?")
308
+ .get(tableName);
309
+ return !!result;
310
+ }
311
+ /**
312
+ * Check if an error is a SQLite BUSY error (database locked by another process).
313
+ * node:sqlite throws native Error with message containing the SQLite error code.
314
+ * @task T5185
315
+ */
316
+ export function isSqliteBusy(err) {
317
+ if (!(err instanceof Error))
318
+ return false;
319
+ const msg = err.message.toLowerCase();
320
+ return msg.includes('sqlite_busy') || msg.includes('database is locked');
321
+ }
322
+ /** Migration retry constants for SQLITE_BUSY handling (T5185). */
323
+ const MAX_MIGRATION_RETRIES = 5;
324
+ const MIGRATION_RETRY_BASE_DELAY_MS = 100;
325
+ const MIGRATION_RETRY_MAX_DELAY_MS = 2000;
326
+ /**
327
+ * Run drizzle migrations to create/update tables.
328
+ *
329
+ * Handles three cases:
330
+ * 1. New database — runs all migrations from scratch.
331
+ * 2. Existing database created by legacy createTablesIfNeeded() — bootstraps
332
+ * the baseline migration as already applied, then runs remaining migrations.
333
+ * 3. Already-migrated database — runs only pending migrations.
334
+ *
335
+ * BEGIN IMMEDIATE acquires a RESERVED lock upfront, preventing concurrent
336
+ * migration runners from racing (T5173). If another process already holds a
337
+ * RESERVED lock, BEGIN IMMEDIATE throws SQLITE_BUSY. This function retries
338
+ * with exponential backoff + jitter to handle concurrent MCP server starts (T5185).
339
+ *
340
+ * @task T4837 - ADR-012 drizzle-kit migration system
341
+ * @task T5185 - Retry+backoff for SQLITE_BUSY during migrations
342
+ */
343
+ function runMigrations(nativeDb, db) {
344
+ const migrationsFolder = resolveMigrationsFolder();
345
+ // If existing DB with pending migrations, create safety backup (cleo compat)
346
+ if (tableExists(nativeDb, 'tasks') && _dbPath) {
347
+ const backupPath = _dbPath.replace(/\.db$/, '-pre-cleo.db.bak');
348
+ if (!existsSync(backupPath)) {
349
+ try {
350
+ copyFileSync(_dbPath, backupPath);
351
+ }
352
+ catch {
353
+ /* non-fatal */
354
+ }
355
+ }
356
+ }
357
+ // Bootstrap existing databases that predate drizzle migrations (ADR-012 Step D).
358
+ // These have tables (e.g., 'tasks') but no __drizzle_migrations record.
359
+ // Mark the baseline migration as already applied so migrate() doesn't
360
+ // try to re-create existing tables.
361
+ if (tableExists(nativeDb, 'tasks') && !tableExists(nativeDb, '__drizzle_migrations')) {
362
+ const migrations = readMigrationFiles({ migrationsFolder });
363
+ const baseline = migrations[0];
364
+ if (baseline) {
365
+ nativeDb.exec(`
366
+ CREATE TABLE IF NOT EXISTS "__drizzle_migrations" (
367
+ id SERIAL PRIMARY KEY,
368
+ hash text NOT NULL,
369
+ created_at numeric
370
+ )
371
+ `);
372
+ nativeDb.exec(`INSERT INTO "__drizzle_migrations" ("hash", "created_at") VALUES ('${baseline.hash}', ${baseline.folderMillis})`);
373
+ }
374
+ }
375
+ // Run pending migrations via drizzle-orm/node-sqlite/migrator (synchronous).
376
+ // The new migrator handles its own transactions. T5185: retry on SQLITE_BUSY.
377
+ let lastError;
378
+ for (let attempt = 1; attempt <= MAX_MIGRATION_RETRIES; attempt++) {
379
+ try {
380
+ migrate(db, { migrationsFolder });
381
+ return;
382
+ }
383
+ catch (err) {
384
+ if (!isSqliteBusy(err) || attempt === MAX_MIGRATION_RETRIES) {
385
+ throw err;
386
+ }
387
+ lastError = err;
388
+ const delay = Math.min(MIGRATION_RETRY_BASE_DELAY_MS * 2 ** (attempt - 1) * (1 + Math.random() * 0.5), MIGRATION_RETRY_MAX_DELAY_MS);
389
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, Math.round(delay));
390
+ }
391
+ }
392
+ /* c8 ignore next */
393
+ throw lastError;
394
+ }
395
+ /**
396
+ * Close the database connection and release resources.
397
+ */
398
+ export function closeDb() {
399
+ if (_nativeDb) {
400
+ try {
401
+ if (_nativeDb.isOpen) {
402
+ _nativeDb.close();
403
+ }
404
+ }
405
+ catch {
406
+ // Ignore close errors
407
+ }
408
+ _nativeDb = null;
409
+ }
410
+ _db = null;
411
+ _dbPath = null;
412
+ _initPromise = null;
413
+ }
414
+ /**
415
+ * Reset database singleton state without saving.
416
+ * Used during migrations when database file is deleted and recreated.
417
+ * Safe to call multiple times.
418
+ */
419
+ export function resetDbState() {
420
+ if (_nativeDb) {
421
+ try {
422
+ if (_nativeDb.isOpen) {
423
+ _nativeDb.close();
424
+ }
425
+ }
426
+ catch {
427
+ // Ignore close errors
428
+ }
429
+ _nativeDb = null;
430
+ }
431
+ _db = null;
432
+ _dbPath = null;
433
+ _initPromise = null;
434
+ }
435
+ /**
436
+ * Get the schema version from the database.
437
+ */
438
+ export async function getSchemaVersion(cwd) {
439
+ const db = await getDb(cwd);
440
+ const result = await db
441
+ .select()
442
+ .from(schema.schemaMeta)
443
+ .where(eq(schema.schemaMeta.key, 'schemaVersion'));
444
+ return result[0]?.value ?? null;
445
+ }
446
+ /**
447
+ * Check if the database file exists.
448
+ */
449
+ export function dbExists(cwd) {
450
+ return existsSync(getDbPath(cwd));
451
+ }
452
+ /**
453
+ * Get the underlying node:sqlite DatabaseSync instance.
454
+ * Useful for direct PRAGMA calls or raw SQL operations.
455
+ * Returns null if the database hasn't been initialized.
456
+ */
457
+ export function getNativeDb() {
458
+ return _nativeDb;
459
+ }
460
+ /**
461
+ * Get the underlying node:sqlite DatabaseSync instance for tasks.db.
462
+ * Alias for getNativeDb() — mirrors getBrainNativeDb() naming convention.
463
+ */
464
+ export function getNativeTasksDb() {
465
+ return _nativeDb;
466
+ }
467
+ /**
468
+ * Re-export schema for external use.
469
+ */
470
+ export { schema };
471
+ /**
472
+ * Close ALL database singletons (tasks.db, brain.db, nexus.db).
473
+ *
474
+ * Must be called before deleting temp directories on Windows, where
475
+ * SQLite holds exclusive file handles on .db, .db-wal, and .db-shm files.
476
+ * Safe to call even if some databases were never opened.
477
+ *
478
+ * @task T5508
479
+ */
480
+ export async function closeAllDatabases() {
481
+ // Close tasks.db
482
+ closeDb();
483
+ // Close brain.db (dynamic import to avoid circular deps)
484
+ try {
485
+ const { closeBrainDb } = await import('./brain-sqlite.js');
486
+ closeBrainDb();
487
+ }
488
+ catch {
489
+ /* module may not be loaded */
490
+ }
491
+ // Close nexus.db (dynamic import to avoid circular deps)
492
+ try {
493
+ const { closeNexusDb } = await import('./nexus-sqlite.js');
494
+ closeNexusDb();
495
+ }
496
+ catch {
497
+ /* module may not be loaded */
498
+ }
499
+ }
500
+ //# sourceMappingURL=sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Status Registry — re-exports from @cleocode/contracts.
3
+ *
4
+ * The canonical status definitions now live in @cleocode/contracts.
5
+ * This file exists for backward compatibility within the store layer.
6
+ */
7
+ export { ADR_STATUSES, GATE_STATUSES, isValidStatus, LIFECYCLE_PIPELINE_STATUSES, LIFECYCLE_STAGE_STATUSES, MANIFEST_STATUSES, PIPELINE_STATUS_ICONS, SESSION_STATUSES, STAGE_STATUS_ICONS, STATUS_REGISTRY, TASK_STATUS_SYMBOLS_ASCII, TASK_STATUS_SYMBOLS_UNICODE, TASK_STATUSES, TERMINAL_PIPELINE_STATUSES, TERMINAL_STAGE_STATUSES, TERMINAL_TASK_STATUSES, } from '@cleocode/contracts';
8
+ //# sourceMappingURL=status-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-registry.js","sourceRoot":"","sources":["../../src/store/status-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EACzB,2BAA2B,EAC3B,aAAa,EACb,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}