@tacuchi/agent-workflow-cli 25.8.0 → 26.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +6 -3
  3. package/dist/adapters/git-cli.js +225 -17
  4. package/dist/adapters/git-cli.js.map +1 -1
  5. package/dist/adapters/node-file-system.js +48 -0
  6. package/dist/adapters/node-file-system.js.map +1 -1
  7. package/dist/application/amend-service.js +51 -14
  8. package/dist/application/amend-service.js.map +1 -1
  9. package/dist/application/branch-resolver.js +6 -3
  10. package/dist/application/branch-resolver.js.map +1 -1
  11. package/dist/application/capability/design-handler.js +218 -43
  12. package/dist/application/capability/design-handler.js.map +1 -1
  13. package/dist/application/capability/dispatcher.js +182 -19
  14. package/dist/application/capability/dispatcher.js.map +1 -1
  15. package/dist/application/capability/durable-effect.js +3 -0
  16. package/dist/application/capability/durable-effect.js.map +1 -1
  17. package/dist/application/capability/readiness.js +8 -54
  18. package/dist/application/capability/readiness.js.map +1 -1
  19. package/dist/application/capability/resolution.js +124 -192
  20. package/dist/application/capability/resolution.js.map +1 -1
  21. package/dist/application/check-branch-service.js +158 -19
  22. package/dist/application/check-branch-service.js.map +1 -1
  23. package/dist/application/checkpoint/markdown.js +2 -2
  24. package/dist/application/checkpoint/markdown.js.map +1 -1
  25. package/dist/application/checkpoint/state-reader.js +12 -0
  26. package/dist/application/checkpoint/state-reader.js.map +1 -1
  27. package/dist/application/checkpoint-service.js +12 -4
  28. package/dist/application/checkpoint-service.js.map +1 -1
  29. package/dist/application/checkpoint-write-service.js +91 -17
  30. package/dist/application/checkpoint-write-service.js.map +1 -1
  31. package/dist/application/claims-ledger.js +137 -11
  32. package/dist/application/claims-ledger.js.map +1 -1
  33. package/dist/application/claims-recovery.js +85 -44
  34. package/dist/application/claims-recovery.js.map +1 -1
  35. package/dist/application/database-tool-catalog.js +33 -0
  36. package/dist/application/database-tool-catalog.js.map +1 -1
  37. package/dist/application/design/consumer-document.js +2 -2
  38. package/dist/application/design/consumer-document.js.map +1 -1
  39. package/dist/application/design/design-content-gate-service.js +20 -2
  40. package/dist/application/design/design-content-gate-service.js.map +1 -1
  41. package/dist/application/design/design-gate-service.js +2 -0
  42. package/dist/application/design/design-gate-service.js.map +1 -1
  43. package/dist/application/design/design-index-service.js +4 -0
  44. package/dist/application/design/design-index-service.js.map +1 -1
  45. package/dist/application/design/design-publish-service.js +1 -4
  46. package/dist/application/design/design-publish-service.js.map +1 -1
  47. package/dist/application/design/design-record-service.js +13 -7
  48. package/dist/application/design/design-record-service.js.map +1 -1
  49. package/dist/application/design/design-resolver-service.js +22 -3
  50. package/dist/application/design/design-resolver-service.js.map +1 -1
  51. package/dist/application/design/design-simple-service.js +24 -5
  52. package/dist/application/design/design-simple-service.js.map +1 -1
  53. package/dist/application/design/digest.js +41 -0
  54. package/dist/application/design/digest.js.map +1 -0
  55. package/dist/application/dev-only-services.js +166 -20
  56. package/dist/application/dev-only-services.js.map +1 -1
  57. package/dist/application/doc-branch-ledger.js +145 -0
  58. package/dist/application/doc-branch-ledger.js.map +1 -0
  59. package/dist/application/docs-canon-service.js +1 -1
  60. package/dist/application/docs-canon-service.js.map +1 -1
  61. package/dist/application/doctor/dist-integrity.js +113 -0
  62. package/dist/application/doctor/dist-integrity.js.map +1 -0
  63. package/dist/application/doctor/hosts.js +5 -2
  64. package/dist/application/doctor/hosts.js.map +1 -1
  65. package/dist/application/doctor/prepare.js +3 -3
  66. package/dist/application/doctor/prepare.js.map +1 -1
  67. package/dist/application/doctor/provider-installation.js +39 -19
  68. package/dist/application/doctor/provider-installation.js.map +1 -1
  69. package/dist/application/doctor/provider-mcps.js +9 -1
  70. package/dist/application/doctor/provider-mcps.js.map +1 -1
  71. package/dist/application/doctor/provider-skills.js +29 -115
  72. package/dist/application/doctor/provider-skills.js.map +1 -1
  73. package/dist/application/doctor/provider-visibility.js +76 -3
  74. package/dist/application/doctor/provider-visibility.js.map +1 -1
  75. package/dist/application/doctor/provider-workspace-block.js +156 -0
  76. package/dist/application/doctor/provider-workspace-block.js.map +1 -0
  77. package/dist/application/doctor/repair-runner.js +36 -39
  78. package/dist/application/doctor/repair-runner.js.map +1 -1
  79. package/dist/application/doctor/report.js +24 -4
  80. package/dist/application/doctor/report.js.map +1 -1
  81. package/dist/application/export-catalog-check.js +200 -0
  82. package/dist/application/export-catalog-check.js.map +1 -0
  83. package/dist/application/export-service.js +716 -79
  84. package/dist/application/export-service.js.map +1 -1
  85. package/dist/application/fix-git-service.js +285 -64
  86. package/dist/application/fix-git-service.js.map +1 -1
  87. package/dist/application/flow/advance.js +202 -25
  88. package/dist/application/flow/advance.js.map +1 -1
  89. package/dist/application/flow/annul-service.js +3 -1
  90. package/dist/application/flow/annul-service.js.map +1 -1
  91. package/dist/application/flow/batch-commit.js +189 -0
  92. package/dist/application/flow/batch-commit.js.map +1 -0
  93. package/dist/application/flow/checkout-observation.js +63 -10
  94. package/dist/application/flow/checkout-observation.js.map +1 -1
  95. package/dist/application/flow/close-artifacts.js +105 -0
  96. package/dist/application/flow/close-artifacts.js.map +1 -0
  97. package/dist/application/flow/close-at-boundary.js +25 -14
  98. package/dist/application/flow/close-at-boundary.js.map +1 -1
  99. package/dist/application/flow/close-document-guidance.js +70 -0
  100. package/dist/application/flow/close-document-guidance.js.map +1 -0
  101. package/dist/application/flow/flow-service.js +46 -3
  102. package/dist/application/flow/flow-service.js.map +1 -1
  103. package/dist/application/flow/internal-actions.js +300 -82
  104. package/dist/application/flow/internal-actions.js.map +1 -1
  105. package/dist/application/flow/internal-drive.js +24 -1
  106. package/dist/application/flow/internal-drive.js.map +1 -1
  107. package/dist/application/flow/plan-entry.js +82 -0
  108. package/dist/application/flow/plan-entry.js.map +1 -0
  109. package/dist/application/flow/prove.js +32 -1
  110. package/dist/application/flow/prove.js.map +1 -1
  111. package/dist/application/flow/quick-checkouts.js +48 -0
  112. package/dist/application/flow/quick-checkouts.js.map +1 -0
  113. package/dist/application/flow/reinfer-batch.js +177 -0
  114. package/dist/application/flow/reinfer-batch.js.map +1 -0
  115. package/dist/application/flow/reopen-run.js +12 -5
  116. package/dist/application/flow/reopen-run.js.map +1 -1
  117. package/dist/application/flow/run-state-service.js +2 -0
  118. package/dist/application/flow/run-state-service.js.map +1 -1
  119. package/dist/application/flow/submit.js +584 -117
  120. package/dist/application/flow/submit.js.map +1 -1
  121. package/dist/application/generate-launch-service.js +16 -6
  122. package/dist/application/generate-launch-service.js.map +1 -1
  123. package/dist/application/git-flow-service.js +34 -3
  124. package/dist/application/git-flow-service.js.map +1 -1
  125. package/dist/application/history-publications.js +24 -0
  126. package/dist/application/history-publications.js.map +1 -1
  127. package/dist/application/history-reconcile-service.js +45 -0
  128. package/dist/application/history-reconcile-service.js.map +1 -0
  129. package/dist/application/history-table.js +61 -12
  130. package/dist/application/history-table.js.map +1 -1
  131. package/dist/application/history-update-service.js +25 -4
  132. package/dist/application/history-update-service.js.map +1 -1
  133. package/dist/application/hook-branch-check.js +25 -3
  134. package/dist/application/hook-branch-check.js.map +1 -1
  135. package/dist/application/hook-git-commit-advisor.js +3 -4
  136. package/dist/application/hook-git-commit-advisor.js.map +1 -1
  137. package/dist/application/hook-turn-start.js +51 -0
  138. package/dist/application/hook-turn-start.js.map +1 -0
  139. package/dist/application/host-memory/codex.js +1 -1
  140. package/dist/application/host-memory/codex.js.map +1 -1
  141. package/dist/application/hub-registry.js +135 -0
  142. package/dist/application/hub-registry.js.map +1 -0
  143. package/dist/application/local-proposal.js +72 -19
  144. package/dist/application/local-proposal.js.map +1 -1
  145. package/dist/application/mcp-host-reader.js +1 -1
  146. package/dist/application/mcp-host-reader.js.map +1 -1
  147. package/dist/application/mcp-host-writer.js +16 -10
  148. package/dist/application/mcp-host-writer.js.map +1 -1
  149. package/dist/application/merge-state-service.js +150 -34
  150. package/dist/application/merge-state-service.js.map +1 -1
  151. package/dist/application/multiroot/claude.js +17 -10
  152. package/dist/application/multiroot/claude.js.map +1 -1
  153. package/dist/application/multiroot/codex.js +17 -11
  154. package/dist/application/multiroot/codex.js.map +1 -1
  155. package/dist/application/multiroot-service.js +52 -28
  156. package/dist/application/multiroot-service.js.map +1 -1
  157. package/dist/application/parsers/execution-batches.js +64 -0
  158. package/dist/application/parsers/execution-batches.js.map +1 -0
  159. package/dist/application/parsers/phases.js +23 -2
  160. package/dist/application/parsers/phases.js.map +1 -1
  161. package/dist/application/parsers/project-block.js +146 -17
  162. package/dist/application/parsers/project-block.js.map +1 -1
  163. package/dist/application/parsers/tasks.js +16 -2
  164. package/dist/application/parsers/tasks.js.map +1 -1
  165. package/dist/application/parsers/toml.js +19 -0
  166. package/dist/application/parsers/toml.js.map +1 -0
  167. package/dist/application/paths-service.js +13 -16
  168. package/dist/application/paths-service.js.map +1 -1
  169. package/dist/application/persist-service.js +118 -5
  170. package/dist/application/persist-service.js.map +1 -1
  171. package/dist/application/plan-exec-batch-service.js +162 -22
  172. package/dist/application/plan-exec-batch-service.js.map +1 -1
  173. package/dist/application/plan-exec-decision-service.js +61 -12
  174. package/dist/application/plan-exec-decision-service.js.map +1 -1
  175. package/dist/application/plan-exec-plan-diff.js +105 -0
  176. package/dist/application/plan-exec-plan-diff.js.map +1 -0
  177. package/dist/application/plan-lint-service.js +33 -5
  178. package/dist/application/plan-lint-service.js.map +1 -1
  179. package/dist/application/plan-passes.js +41 -0
  180. package/dist/application/plan-passes.js.map +1 -0
  181. package/dist/application/preparation-receipts.js +58 -0
  182. package/dist/application/preparation-receipts.js.map +1 -0
  183. package/dist/application/project-md-upsert-service.js +191 -52
  184. package/dist/application/project-md-upsert-service.js.map +1 -1
  185. package/dist/application/project-tab-data.js +40 -10
  186. package/dist/application/project-tab-data.js.map +1 -1
  187. package/dist/application/release-data/artifacts.js +15 -7
  188. package/dist/application/release-data/artifacts.js.map +1 -1
  189. package/dist/application/release-data/bundles.js +52 -6
  190. package/dist/application/release-data/bundles.js.map +1 -1
  191. package/dist/application/release-data/common.js +2 -2
  192. package/dist/application/release-data/common.js.map +1 -1
  193. package/dist/application/release-data/rollback.js +7 -0
  194. package/dist/application/release-data/rollback.js.map +1 -0
  195. package/dist/application/release-data/sessions.js +2 -2
  196. package/dist/application/release-data/sessions.js.map +1 -1
  197. package/dist/application/release-pass-ledger.js +1 -1
  198. package/dist/application/render/history-row.js +2 -0
  199. package/dist/application/render/history-row.js.map +1 -1
  200. package/dist/application/render/project-block.js +28 -11
  201. package/dist/application/render/project-block.js.map +1 -1
  202. package/dist/application/reseal-service.js +1 -0
  203. package/dist/application/reseal-service.js.map +1 -1
  204. package/dist/application/resume-service.js +55 -8
  205. package/dist/application/resume-service.js.map +1 -1
  206. package/dist/application/retirement/apply.js +25 -7
  207. package/dist/application/retirement/apply.js.map +1 -1
  208. package/dist/application/retirement/attribution.js +122 -50
  209. package/dist/application/retirement/attribution.js.map +1 -1
  210. package/dist/application/retirement/prepare.js +17 -11
  211. package/dist/application/retirement/prepare.js.map +1 -1
  212. package/dist/application/retirement/preview.js +2 -1
  213. package/dist/application/retirement/preview.js.map +1 -1
  214. package/dist/application/self/clean-legacy.js +1 -2
  215. package/dist/application/self/clean-legacy.js.map +1 -1
  216. package/dist/application/self/codex-plugin.js +1 -1
  217. package/dist/application/self/codex-plugin.js.map +1 -1
  218. package/dist/application/self/host-states.js +3 -3
  219. package/dist/application/self/host-states.js.map +1 -1
  220. package/dist/application/self/install-hooks.js +1 -1
  221. package/dist/application/self/install-hooks.js.map +1 -1
  222. package/dist/application/self/install-skill.js +5 -49
  223. package/dist/application/self/install-skill.js.map +1 -1
  224. package/dist/application/self/mcp-config.js +19 -11
  225. package/dist/application/self/mcp-config.js.map +1 -1
  226. package/dist/application/self/opencode-plugin.js +1 -0
  227. package/dist/application/self/opencode-plugin.js.map +1 -1
  228. package/dist/application/self/skill-files.js +29 -0
  229. package/dist/application/self/skill-files.js.map +1 -0
  230. package/dist/application/self/uninstall.js +1 -1
  231. package/dist/application/self/uninstall.js.map +1 -1
  232. package/dist/application/semantic-operation/protocol.js +66 -5
  233. package/dist/application/semantic-operation/protocol.js.map +1 -1
  234. package/dist/application/session-archive-service.js +113 -0
  235. package/dist/application/session-archive-service.js.map +1 -0
  236. package/dist/application/session-binding-service.js +35 -0
  237. package/dist/application/session-binding-service.js.map +1 -1
  238. package/dist/application/session-close-service.js +390 -54
  239. package/dist/application/session-close-service.js.map +1 -1
  240. package/dist/application/session-create-service.js +97 -5
  241. package/dist/application/session-create-service.js.map +1 -1
  242. package/dist/application/session-custody-recorder.js +15 -12
  243. package/dist/application/session-custody-recorder.js.map +1 -1
  244. package/dist/application/session-custody-service.js +1 -0
  245. package/dist/application/session-custody-service.js.map +1 -1
  246. package/dist/application/session-narrative.js +42 -12
  247. package/dist/application/session-narrative.js.map +1 -1
  248. package/dist/application/session-pause-service.js +46 -0
  249. package/dist/application/session-pause-service.js.map +1 -0
  250. package/dist/application/session-resolver.js +36 -11
  251. package/dist/application/session-resolver.js.map +1 -1
  252. package/dist/application/session-resume-service.js +134 -13
  253. package/dist/application/session-resume-service.js.map +1 -1
  254. package/dist/application/sessions-service.js +4 -0
  255. package/dist/application/sessions-service.js.map +1 -1
  256. package/dist/application/sessions-sweep-service.js +77 -0
  257. package/dist/application/sessions-sweep-service.js.map +1 -0
  258. package/dist/application/settle-service.js +3 -1
  259. package/dist/application/settle-service.js.map +1 -1
  260. package/dist/application/skills-resolver-service.js +6 -92
  261. package/dist/application/skills-resolver-service.js.map +1 -1
  262. package/dist/application/source-add-service.js +37 -0
  263. package/dist/application/source-add-service.js.map +1 -0
  264. package/dist/application/source-boundary-policy.js +105 -8
  265. package/dist/application/source-boundary-policy.js.map +1 -1
  266. package/dist/application/source-pipeline.js +68 -0
  267. package/dist/application/source-pipeline.js.map +1 -0
  268. package/dist/application/source-remove-service.js +15 -3
  269. package/dist/application/source-remove-service.js.map +1 -1
  270. package/dist/application/sources-service.js +71 -16
  271. package/dist/application/sources-service.js.map +1 -1
  272. package/dist/application/status-service.js +55 -5
  273. package/dist/application/status-service.js.map +1 -1
  274. package/dist/application/unit-dependencies.js +100 -0
  275. package/dist/application/unit-dependencies.js.map +1 -0
  276. package/dist/application/unit-membership.js +37 -0
  277. package/dist/application/unit-membership.js.map +1 -0
  278. package/dist/application/unit-residue.js +72 -0
  279. package/dist/application/unit-residue.js.map +1 -0
  280. package/dist/application/visibility-doctor-service.js +66 -4
  281. package/dist/application/visibility-doctor-service.js.map +1 -1
  282. package/dist/application/working-branch-service.js +6 -0
  283. package/dist/application/working-branch-service.js.map +1 -1
  284. package/dist/application/workline-graph.js +1 -1
  285. package/dist/application/workline-graph.js.map +1 -1
  286. package/dist/application/workline-index-service.js +118 -17
  287. package/dist/application/workline-index-service.js.map +1 -1
  288. package/dist/application/workspace-commit-service.js +218 -0
  289. package/dist/application/workspace-commit-service.js.map +1 -0
  290. package/dist/application/workspace-init-service.js +64 -34
  291. package/dist/application/workspace-init-service.js.map +1 -1
  292. package/dist/application/workspace-local-config.js +90 -0
  293. package/dist/application/workspace-local-config.js.map +1 -0
  294. package/dist/application/workspace-materialization-service.js +52 -3
  295. package/dist/application/workspace-materialization-service.js.map +1 -1
  296. package/dist/application/workspace-migrate/apply.js +525 -4
  297. package/dist/application/workspace-migrate/apply.js.map +1 -1
  298. package/dist/application/workspace-migrate/markers.js +9 -6
  299. package/dist/application/workspace-migrate/markers.js.map +1 -1
  300. package/dist/application/workspace-migrate/plan.js +97 -5
  301. package/dist/application/workspace-migrate/plan.js.map +1 -1
  302. package/dist/application/workspace-move-service.js +270 -0
  303. package/dist/application/workspace-move-service.js.map +1 -0
  304. package/dist/application/workspace-untrack-service.js +28 -0
  305. package/dist/application/workspace-untrack-service.js.map +1 -0
  306. package/dist/application/worktree-service.js +654 -105
  307. package/dist/application/worktree-service.js.map +1 -1
  308. package/dist/cli/ascii.js +2 -0
  309. package/dist/cli/ascii.js.map +1 -1
  310. package/dist/cli/commands/add-source.js +38 -0
  311. package/dist/cli/commands/add-source.js.map +1 -0
  312. package/dist/cli/commands/amend.js +14 -3
  313. package/dist/cli/commands/amend.js.map +1 -1
  314. package/dist/cli/commands/capability.js +23 -4
  315. package/dist/cli/commands/capability.js.map +1 -1
  316. package/dist/cli/commands/designs.js +14 -5
  317. package/dist/cli/commands/designs.js.map +1 -1
  318. package/dist/cli/commands/dev-only.js +19 -6
  319. package/dist/cli/commands/dev-only.js.map +1 -1
  320. package/dist/cli/commands/doc-branch.js +184 -0
  321. package/dist/cli/commands/doc-branch.js.map +1 -0
  322. package/dist/cli/commands/doctor.js +5 -1
  323. package/dist/cli/commands/doctor.js.map +1 -1
  324. package/dist/cli/commands/export.js +78 -18
  325. package/dist/cli/commands/export.js.map +1 -1
  326. package/dist/cli/commands/fix-git.js +89 -14
  327. package/dist/cli/commands/fix-git.js.map +1 -1
  328. package/dist/cli/commands/flow.js +120 -15
  329. package/dist/cli/commands/flow.js.map +1 -1
  330. package/dist/cli/commands/generate-launch.js +14 -2
  331. package/dist/cli/commands/generate-launch.js.map +1 -1
  332. package/dist/cli/commands/history-update.js +1 -1
  333. package/dist/cli/commands/history-update.js.map +1 -1
  334. package/dist/cli/commands/history.js +14 -0
  335. package/dist/cli/commands/history.js.map +1 -0
  336. package/dist/cli/commands/hook.js +15 -2
  337. package/dist/cli/commands/hook.js.map +1 -1
  338. package/dist/cli/commands/index.js +18 -5
  339. package/dist/cli/commands/index.js.map +1 -1
  340. package/dist/cli/commands/merge-state.js +2 -2
  341. package/dist/cli/commands/merge-state.js.map +1 -1
  342. package/dist/cli/commands/persist.js +6 -5
  343. package/dist/cli/commands/persist.js.map +1 -1
  344. package/dist/cli/commands/project-md-upsert.js +5 -3
  345. package/dist/cli/commands/project-md-upsert.js.map +1 -1
  346. package/dist/cli/commands/release-pass.js +3 -3
  347. package/dist/cli/commands/release-pass.js.map +1 -1
  348. package/dist/cli/commands/resume.js +12 -3
  349. package/dist/cli/commands/resume.js.map +1 -1
  350. package/dist/cli/commands/self.js +8 -24
  351. package/dist/cli/commands/self.js.map +1 -1
  352. package/dist/cli/commands/session-close.js +64 -9
  353. package/dist/cli/commands/session-close.js.map +1 -1
  354. package/dist/cli/commands/session-create.js +4 -2
  355. package/dist/cli/commands/session-create.js.map +1 -1
  356. package/dist/cli/commands/session-pause.js +14 -0
  357. package/dist/cli/commands/session-pause.js.map +1 -0
  358. package/dist/cli/commands/sessions.js +16 -3
  359. package/dist/cli/commands/sessions.js.map +1 -1
  360. package/dist/cli/commands/set-branch.js +28 -4
  361. package/dist/cli/commands/set-branch.js.map +1 -1
  362. package/dist/cli/commands/set-edit-mode.js +20 -0
  363. package/dist/cli/commands/set-edit-mode.js.map +1 -0
  364. package/dist/cli/commands/set-pipeline.js +35 -0
  365. package/dist/cli/commands/set-pipeline.js.map +1 -0
  366. package/dist/cli/commands/skills.js +4 -11
  367. package/dist/cli/commands/skills.js.map +1 -1
  368. package/dist/cli/commands/sources.js +4 -0
  369. package/dist/cli/commands/sources.js.map +1 -1
  370. package/dist/cli/commands/status.js +35 -2
  371. package/dist/cli/commands/status.js.map +1 -1
  372. package/dist/cli/commands/unknown-flags.js +1 -0
  373. package/dist/cli/commands/unknown-flags.js.map +1 -1
  374. package/dist/cli/commands/visibility.js +1 -0
  375. package/dist/cli/commands/visibility.js.map +1 -1
  376. package/dist/cli/commands/workspace-commit.js +62 -0
  377. package/dist/cli/commands/workspace-commit.js.map +1 -0
  378. package/dist/cli/commands/workspace-init.js +39 -2
  379. package/dist/cli/commands/workspace-init.js.map +1 -1
  380. package/dist/cli/commands/workspace-migrate.js +31 -3
  381. package/dist/cli/commands/workspace-migrate.js.map +1 -1
  382. package/dist/cli/commands/workspace-move.js +42 -0
  383. package/dist/cli/commands/workspace-move.js.map +1 -0
  384. package/dist/cli/commands/worktree.js +4 -4
  385. package/dist/cli/commands/worktree.js.map +1 -1
  386. package/dist/cli/context-id.js +6 -0
  387. package/dist/cli/context-id.js.map +1 -1
  388. package/dist/cli/full-cli.js +555 -0
  389. package/dist/cli/full-cli.js.map +1 -0
  390. package/dist/cli/help-groups.js +76 -19
  391. package/dist/cli/help-groups.js.map +1 -1
  392. package/dist/cli/hook-stdin-cache.js +12 -0
  393. package/dist/cli/hook-stdin-cache.js.map +1 -0
  394. package/dist/cli/main.js +47 -453
  395. package/dist/cli/main.js.map +1 -1
  396. package/dist/cli/parser.js +4 -0
  397. package/dist/cli/parser.js.map +1 -1
  398. package/dist/cli/tui/app.js +3 -4
  399. package/dist/cli/tui/app.js.map +1 -1
  400. package/dist/cli/tui/components/host-admin-section.js +2 -13
  401. package/dist/cli/tui/components/host-admin-section.js.map +1 -1
  402. package/dist/cli/tui/components/tabs-config.js +1 -2
  403. package/dist/cli/tui/components/tabs-config.js.map +1 -1
  404. package/dist/cli/tui/components/workspace-init-form.js +4 -1
  405. package/dist/cli/tui/components/workspace-init-form.js.map +1 -1
  406. package/dist/cli/tui/data/workflow-content.js +6 -1
  407. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  408. package/dist/cli/tui/tabs/mcp-tab.js +4 -3
  409. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  410. package/dist/cli/tui/tabs/project-tab.js +7 -2
  411. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  412. package/dist/cli/tui/tui-prefs.js +2 -0
  413. package/dist/cli/tui/tui-prefs.js.map +1 -1
  414. package/dist/dist-manifest.json +3973 -0
  415. package/dist/domain/capability/protocol.js +3 -1
  416. package/dist/domain/capability/protocol.js.map +1 -1
  417. package/dist/domain/decision-note.js +13 -0
  418. package/dist/domain/decision-note.js.map +1 -1
  419. package/dist/domain/design/artifact.js +22 -3
  420. package/dist/domain/design/artifact.js.map +1 -1
  421. package/dist/domain/design/capability.js +1 -0
  422. package/dist/domain/design/capability.js.map +1 -1
  423. package/dist/domain/design/expansion.js +1 -1
  424. package/dist/domain/design/expansion.js.map +1 -1
  425. package/dist/domain/design/maturity.js +16 -0
  426. package/dist/domain/design/maturity.js.map +1 -1
  427. package/dist/domain/design/reference.js +5 -0
  428. package/dist/domain/design/reference.js.map +1 -1
  429. package/dist/domain/doctor/operations.js +20 -12
  430. package/dist/domain/doctor/operations.js.map +1 -1
  431. package/dist/domain/effective-contract.js +3 -1
  432. package/dist/domain/effective-contract.js.map +1 -1
  433. package/dist/domain/elicitation.js +1 -1
  434. package/dist/domain/flow/answer.js +265 -130
  435. package/dist/domain/flow/answer.js.map +1 -1
  436. package/dist/domain/flow/authority.js +194 -37
  437. package/dist/domain/flow/authority.js.map +1 -1
  438. package/dist/domain/flow/batch-review.js +65 -0
  439. package/dist/domain/flow/batch-review.js.map +1 -0
  440. package/dist/domain/flow/decision-schema.js +47 -0
  441. package/dist/domain/flow/decision-schema.js.map +1 -0
  442. package/dist/domain/flow/directive.js +16 -0
  443. package/dist/domain/flow/directive.js.map +1 -1
  444. package/dist/domain/flow/execution-result.js +91 -2
  445. package/dist/domain/flow/execution-result.js.map +1 -1
  446. package/dist/domain/flow/run-state.js +352 -24
  447. package/dist/domain/flow/run-state.js.map +1 -1
  448. package/dist/domain/flow/test-run-evidence.js +285 -0
  449. package/dist/domain/flow/test-run-evidence.js.map +1 -0
  450. package/dist/domain/flow/unchanged-phase.js +15 -0
  451. package/dist/domain/flow/unchanged-phase.js.map +1 -0
  452. package/dist/domain/harnesses.js +14 -5
  453. package/dist/domain/harnesses.js.map +1 -1
  454. package/dist/domain/isolation-unit.js +2 -2
  455. package/dist/domain/isolation-unit.js.map +1 -1
  456. package/dist/domain/lineage.js +7 -2
  457. package/dist/domain/lineage.js.map +1 -1
  458. package/dist/domain/obligation-correspondence.js +4 -2
  459. package/dist/domain/obligation-correspondence.js.map +1 -1
  460. package/dist/domain/plan-handoff.js +5 -0
  461. package/dist/domain/plan-handoff.js.map +1 -0
  462. package/dist/domain/proposal.js +18 -7
  463. package/dist/domain/proposal.js.map +1 -1
  464. package/dist/domain/reservation.js +5 -3
  465. package/dist/domain/reservation.js.map +1 -1
  466. package/dist/domain/retirement/proposal.js +1 -0
  467. package/dist/domain/retirement/proposal.js.map +1 -1
  468. package/dist/domain/session/custody.js +10 -6
  469. package/dist/domain/session/custody.js.map +1 -1
  470. package/dist/domain/session/narrative.js +4 -1
  471. package/dist/domain/session/narrative.js.map +1 -1
  472. package/dist/domain/skills.js +4 -6
  473. package/dist/domain/skills.js.map +1 -1
  474. package/dist/domain/sql-lexer.js +1 -1
  475. package/dist/domain/sql-lexer.js.map +1 -1
  476. package/dist/runtime/namespace-resolver.js +4 -0
  477. package/dist/runtime/namespace-resolver.js.map +1 -1
  478. package/dist/runtime/workline-marker.js +35 -8
  479. package/dist/runtime/workline-marker.js.map +1 -1
  480. package/dist/runtime/workspace-resolution.js +123 -0
  481. package/dist/runtime/workspace-resolution.js.map +1 -0
  482. package/package.json +6 -5
  483. package/skills/w/SKILL.md +12 -17
  484. package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +1 -1
  485. package/skills/w/artifacts/artifacts-core/SCRIPTS.rollback.sql +8 -0
  486. package/skills/w/artifacts/artifacts-core/SCRIPTS.sql +4 -8
  487. package/skills/w/commands/export-diagrams.md +3 -3
  488. package/skills/w/commands/export-manuals.md +6 -6
  489. package/skills/w/commands/export-reports.md +3 -3
  490. package/skills/w/commands/export-scripts.md +5 -5
  491. package/skills/w/commands/fix-git.md +12 -13
  492. package/skills/w/commands/persist.md +2 -2
  493. package/skills/w/commands/plan-exec.md +4 -2
  494. package/skills/w/commands/spec-new.md +1 -1
  495. package/skills/w/commands/workspace-init.md +2 -0
  496. package/skills/w/context/MANIFEST.json +1 -1
  497. package/skills/w/exports/README.md +4 -4
  498. package/skills/w/exports/export-diagrams/EXPORT.md +4 -4
  499. package/skills/w/exports/export-manuals/EXPORT.md +14 -16
  500. package/skills/w/exports/export-reports/EXPORT.md +3 -3
  501. package/skills/w/exports/export-scripts/EXPORT.md +46 -22
  502. package/skills/w/harness/HARNESS.md +4 -7
  503. package/skills/w/hooks/hooks.template.json +6 -4
  504. package/skills/w/loops/CHASSIS.md +12 -6
  505. package/skills/w/loops/CODE-POLICIES.md +8 -5
  506. package/skills/w/loops/README.md +2 -2
  507. package/skills/w/loops/plan-exec-loop/LOOP.md +23 -22
  508. package/skills/w/loops/plan-new-loop/LOOP.md +23 -31
  509. package/skills/w/loops/plan-refine-loop/LOOP.md +8 -2
  510. package/skills/w/loops/quick-loop/LOOP.md +7 -6
  511. package/skills/w/loops/spec-refine-loop/LOOP.md +1 -1
  512. package/skills/w/modules/DESIGN-REFERENCES.md +9 -11
  513. package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +4 -4
  514. package/skills/w/modules/SESSION-NUMBERING.md +2 -0
  515. package/skills/w/roles/README.md +11 -47
  516. package/skills/w/roles/design/CONTRACT.md +6 -4
  517. package/skills/w/roles/design/ROLE.md +7 -3
  518. package/skills/w/roles/diagrams/ROLE.md +1 -1
  519. package/skills/w/roles/git/ROLE.md +17 -10
  520. package/skills/w/roles/research/ROLE.md +2 -2
  521. package/skills/w/roles/sql/ROLE.md +17 -15
  522. package/skills/w/schemas/design/ui-screen.v1.schema.json +9 -0
  523. package/dist/application/capability/descriptor-loader.js +0 -109
  524. package/dist/application/capability/descriptor-loader.js.map +0 -1
  525. package/dist/application/capability/installed-inventory.js +0 -168
  526. package/dist/application/capability/installed-inventory.js.map +0 -1
  527. package/dist/application/self/install-plugin-skills-git.js +0 -226
  528. package/dist/application/self/install-plugin-skills-git.js.map +0 -1
  529. package/dist/application/self/install-plugin-skills.js +0 -203
  530. package/dist/application/self/install-plugin-skills.js.map +0 -1
  531. package/dist/application/self/plugin-cache-clear.js +0 -133
  532. package/dist/application/self/plugin-cache-clear.js.map +0 -1
  533. package/dist/application/self/plugin-cache-reload.js +0 -141
  534. package/dist/application/self/plugin-cache-reload.js.map +0 -1
  535. package/dist/application/self/skills-apply.js +0 -623
  536. package/dist/application/self/skills-apply.js.map +0 -1
  537. package/dist/application/self/skills-catalog.js +0 -35
  538. package/dist/application/self/skills-catalog.js.map +0 -1
  539. package/dist/application/self/skills-change.js +0 -479
  540. package/dist/application/self/skills-change.js.map +0 -1
  541. package/dist/application/self/skills-discovery.js +0 -275
  542. package/dist/application/self/skills-discovery.js.map +0 -1
  543. package/dist/application/self/skills-manager.js +0 -253
  544. package/dist/application/self/skills-manager.js.map +0 -1
  545. package/dist/application/self/skills-payload.js +0 -566
  546. package/dist/application/self/skills-payload.js.map +0 -1
  547. package/dist/application/self/skills-registry.js +0 -107
  548. package/dist/application/self/skills-registry.js.map +0 -1
  549. package/dist/application/skill-index-service.js +0 -78
  550. package/dist/application/skill-index-service.js.map +0 -1
  551. package/dist/cli/commands/plugin-cache.js +0 -25
  552. package/dist/cli/commands/plugin-cache.js.map +0 -1
  553. package/dist/cli/commands/skill-index.js +0 -19
  554. package/dist/cli/commands/skill-index.js.map +0 -1
  555. package/dist/cli/tui/data/recommended-skills.js +0 -482
  556. package/dist/cli/tui/data/recommended-skills.js.map +0 -1
  557. package/dist/cli/tui/tabs/skills-tab.js +0 -664
  558. package/dist/cli/tui/tabs/skills-tab.js.map +0 -1
@@ -0,0 +1,555 @@
1
+ import { GitCliAdapter } from "../adapters/git-cli.js";
2
+ import { NodeEnv } from "../adapters/node-env.js";
3
+ import { NodeFileSystem } from "../adapters/node-file-system.js";
4
+ import { NodeProcess } from "../adapters/node-process.js";
5
+ import { formatCommandError, formatCommandInvocation, formatCommandOutcome, formatTuiEvent, } from "../application/logging/log-events.js";
6
+ import { Logger } from "../application/logging/logger.js";
7
+ import { PathsService } from "../application/paths-service.js";
8
+ import { preparationMismatch, recordPreparation } from "../application/preparation-receipts.js";
9
+ import { resolveSkills } from "../application/skills-resolver-service.js";
10
+ import { MaterializingWorkspaceFileSystem } from "../application/workspace-materialization-service.js";
11
+ import { encodeToolResponse, toolFailure } from "../domain/database-tools.js";
12
+ import { redactSensitiveText, redactSensitiveValue } from "../domain/redaction.js";
13
+ import { RuntimeConfigService } from "../runtime/config-service.js";
14
+ import { DEFAULT_NAMESPACE, NamespaceResolver, WorklineDirectoryError, } from "../runtime/namespace-resolver.js";
15
+ import { DEFAULT_RUNTIME_CONFIG } from "../runtime/types.js";
16
+ import { readPackageVersion } from "../runtime/version.js";
17
+ import { WorkspaceResolutionError, registerResolvedWorkspace, resolveWorkspaceDirectory, } from "../runtime/workspace-resolution.js";
18
+ import { ALL_COMMANDS, commandDescribes } from "./commands/index.js";
19
+ import { gateFlags } from "./commands/unknown-flags.js";
20
+ import { planDispatch, resolveGlobalAlias } from "./dispatch-plan.js";
21
+ import { commandHelpText, globalHelpText } from "./help-groups.js";
22
+ import { ASCII_ENV, resolveOutputMode } from "./output-mode.js";
23
+ import { parseArgv } from "./parser.js";
24
+ import { CommandRegistry } from "./registry.js";
25
+ import { emitError, fail, forPerson, formatArgvError, formatUnknownCommand, redactErrorEnvelope, renderHumanProjection, renderRaw, useAsciiStderr, writeStderr, writeStdout, } from "./render.js";
26
+ import { runTui } from "./tui/run.js";
27
+ async function run(argv) {
28
+ const fs = new NodeFileSystem();
29
+ const env = new NodeEnv();
30
+ const proc = new NodeProcess();
31
+ const git = new GitCliAdapter(proc);
32
+ const prepared = prepareInvocation(argv);
33
+ if (typeof prepared === "number")
34
+ return prepared;
35
+ const initialized = await initializeCliContext(prepared.parsed, fs, env, proc, git);
36
+ if (initialized === null)
37
+ return prepared.parsed.command === "hook" ? 0 : transportExitCode(prepared.parsed);
38
+ const exit = await dispatchParsedCommand({
39
+ ...prepared,
40
+ ctx: initialized.ctx,
41
+ registry: commandRegistry(),
42
+ workspaceFs: initialized.workspaceFs,
43
+ });
44
+ const warning = initialized.ctx.directory
45
+ ? await registerResolvedWorkspace(fs, env.homeDir(), initialized.ctx.directory)
46
+ : null;
47
+ if (warning)
48
+ writeStderr(warning);
49
+ return exit;
50
+ }
51
+ function prepareInvocation(argv) {
52
+ const parsed = parseCli(argv);
53
+ if (parsed === null)
54
+ return rawTransportExitCode(argv);
55
+ const hasHelp = parsed.flags.has("--help") || parsed.flags.has("-h");
56
+ if (isMcpStdioInvocation(parsed) && (parsed.flags.has("--version") || hasHelp)) {
57
+ process.stderr.write("aw mcp: --version y --help no son válidos para un servidor stdio\n");
58
+ return 2;
59
+ }
60
+ // Global ONLY when nothing else was asked. With a command present `--version`
61
+ // belongs to that command — `release-pass` names one on every verb — and
62
+ // answering with the CLI's own version would silently swallow the invocation.
63
+ if (parsed.command === undefined && parsed.flags.has("--version")) {
64
+ writeStdout(`${readPackageVersion()}\n`);
65
+ return 0;
66
+ }
67
+ const isTTY = process.stdout.isTTY === true;
68
+ const output = resolveOutputMode(parsed, isTTY, process.env[ASCII_ENV]);
69
+ if (output.ok) {
70
+ useAsciiStderr(output.mode.ascii);
71
+ return { parsed, isTTY, hasHelp, output: output.mode };
72
+ }
73
+ return outputModeFailure(parsed, output.message);
74
+ }
75
+ function rawTransportExitCode(argv) {
76
+ return looksLikeMcpStdioInvocation(argv) || looksLikeToolInvocation(argv) ? 2 : 1;
77
+ }
78
+ function outputModeFailure(parsed, message) {
79
+ if (parsed.command === "tool") {
80
+ emitToolEarlyFailure("INVALID_INPUT", message);
81
+ return 2;
82
+ }
83
+ if (isMcpStdioInvocation(parsed)) {
84
+ process.stderr.write("aw mcp: argumentos de salida inválidos para un servidor stdio\n");
85
+ return 2;
86
+ }
87
+ emitError(formatArgvError(message));
88
+ return 1;
89
+ }
90
+ function commandRegistry() {
91
+ // ALL_COMMANDS (commands/index.ts) is the single source of truth for which
92
+ // commands exist; its order drives the grouped `--help` listing.
93
+ const registry = new CommandRegistry();
94
+ for (const command of ALL_COMMANDS)
95
+ registry.register(command);
96
+ return registry;
97
+ }
98
+ async function initializeCliContext(parsed, fs, env, proc, git) {
99
+ const directory = await resolveWorklineDirectory(new NamespaceResolver(fs, env), parsed, fs, env);
100
+ if (directory === null)
101
+ return null;
102
+ const warning = await registerResolvedWorkspace(fs, env.homeDir(), directory);
103
+ if (warning)
104
+ writeStderr(warning);
105
+ const namespace = { namespace: directory.namespace, source: directory.namespaceSource };
106
+ const paths = new PathsService(namespace.namespace, env.homeDir(), directory.root);
107
+ const workspaceFs = new MaterializingWorkspaceFileSystem(fs, paths);
108
+ const standaloneTransport = parsed.command === "tool" || isMcpStdioInvocation(parsed);
109
+ const runtime = standaloneTransport
110
+ ? defaultStandaloneRuntime()
111
+ : await new RuntimeConfigService(fs, env, paths).resolveRuntime();
112
+ const skills = standaloneTransport
113
+ ? {}
114
+ : (await resolveSkills(fs, paths)).skills;
115
+ return {
116
+ workspaceFs,
117
+ ctx: {
118
+ fs: workspaceFs,
119
+ rawFs: fs,
120
+ env,
121
+ git,
122
+ process: proc,
123
+ runtime,
124
+ namespace,
125
+ directory,
126
+ paths,
127
+ skills,
128
+ logger: new Logger({
129
+ fs,
130
+ paths,
131
+ enabled: !isStrictReadCommand(parsed),
132
+ }),
133
+ },
134
+ };
135
+ }
136
+ function defaultStandaloneRuntime() {
137
+ return {
138
+ packageName: DEFAULT_RUNTIME_CONFIG.packageName,
139
+ binName: DEFAULT_RUNTIME_CONFIG.binName,
140
+ source: "default",
141
+ };
142
+ }
143
+ function transportExitCode(parsed) {
144
+ return parsed.command === "tool" || isMcpStdioInvocation(parsed) ? 2 : 1;
145
+ }
146
+ function parseCli(argv) {
147
+ try {
148
+ return parseArgv(argv);
149
+ }
150
+ catch (err) {
151
+ if (looksLikeMcpStdioInvocation(argv)) {
152
+ process.stderr.write("aw mcp: argumentos del servidor stdio no son válidos\n");
153
+ return null;
154
+ }
155
+ if (looksLikeToolInvocation(argv)) {
156
+ emitToolEarlyFailure("INVALID_INPUT", "Los argumentos de tool no son válidos.");
157
+ return null;
158
+ }
159
+ emitError(formatArgvError(err.message));
160
+ return null;
161
+ }
162
+ }
163
+ async function resolveWorklineDirectory(resolver, parsed, fs, env) {
164
+ try {
165
+ const directory = await resolver.resolveDirectory(parsed.values.get("namespace"));
166
+ if (parsed.command === "workspace-init")
167
+ return directory;
168
+ const bypass = parsed.command === "tool" ||
169
+ parsed.command === "self" ||
170
+ parsed.command === "context-budget" ||
171
+ isMcpStdioInvocation(parsed) ||
172
+ parsed.flags.has("--help") ||
173
+ parsed.flags.has("-h") ||
174
+ parsed.command === undefined;
175
+ try {
176
+ return await resolveWorkspaceDirectory(fs, directory, env.cwd(), env.homeDir(), parsed.values.get("workspace"));
177
+ }
178
+ catch (error) {
179
+ if (error instanceof WorkspaceResolutionError && (bypass || parsed.command === "hook")) {
180
+ if (parsed.command === "hook") {
181
+ writeStderr(error.message);
182
+ return null;
183
+ }
184
+ return { ...directory, root: env.cwd(), materialized: false };
185
+ }
186
+ throw error;
187
+ }
188
+ }
189
+ catch (err) {
190
+ if (err instanceof WorkspaceResolutionError) {
191
+ if (parsed.command === "hook") {
192
+ writeStderr(err.message);
193
+ return null;
194
+ }
195
+ emitError({ code: err.code, message: err.message, details: { roots: err.roots } });
196
+ return null;
197
+ }
198
+ if (!(err instanceof WorklineDirectoryError)) {
199
+ if (parsed.command === "tool") {
200
+ emitToolEarlyFailure("TOOL_RUNTIME_FAILED", "La tool no pudo preparar su entorno.");
201
+ return null;
202
+ }
203
+ if (isMcpStdioInvocation(parsed)) {
204
+ process.stderr.write("aw mcp: no se pudo preparar el servidor stdio\n");
205
+ return null;
206
+ }
207
+ throw err;
208
+ }
209
+ if (parsed.command === "tool") {
210
+ emitToolEarlyFailure("WORKLINE_NAMESPACE_AMBIGUOUS", "No se pudo resolver el namespace de la tool.");
211
+ return null;
212
+ }
213
+ if (isMcpStdioInvocation(parsed)) {
214
+ process.stderr.write("aw mcp: no se pudo resolver el namespace del servidor stdio\n");
215
+ return null;
216
+ }
217
+ emitError({
218
+ code: err.code,
219
+ message: err.message,
220
+ details: { root: err.root, namespaces: err.namespaces },
221
+ });
222
+ return null;
223
+ }
224
+ }
225
+ function emitToolEarlyFailure(code, message) {
226
+ writeStdout(encodeToolResponse(toolFailure(code, message)));
227
+ }
228
+ function looksLikeToolInvocation(argv) {
229
+ return !looksLikeMcpStdioInvocation(argv) && firstCommandToken(argv) === "tool";
230
+ }
231
+ function looksLikeMcpStdioInvocation(argv) {
232
+ const index = argv.indexOf("mcp");
233
+ if (index < 0)
234
+ return false;
235
+ const subcommand = argv[index + 1];
236
+ return subcommand === "serve" || subcommand === "serve-db" || subcommand === "dbhub";
237
+ }
238
+ function firstCommandToken(argv) {
239
+ const globalOptionsWithValue = new Set([
240
+ "--namespace",
241
+ "--plugin-root",
242
+ "--plugin-version",
243
+ "--compat",
244
+ // `tool` always renders its own raw JSON, but this global projection flag
245
+ // can precede it. Skip its value while detecting a parse-time tool error so
246
+ // the CLI never falls back to the generic `{ ok, error }` envelope.
247
+ "--format",
248
+ "--workspace",
249
+ ]);
250
+ for (let index = 0; index < argv.length; index += 1) {
251
+ const token = argv[index];
252
+ if (token === undefined)
253
+ return undefined;
254
+ if (globalOptionsWithValue.has(token)) {
255
+ index += 1;
256
+ continue;
257
+ }
258
+ if (token.startsWith("--namespace=") ||
259
+ token.startsWith("--workspace=") ||
260
+ token.startsWith("--plugin-"))
261
+ continue;
262
+ if (token.startsWith("-"))
263
+ continue;
264
+ return token;
265
+ }
266
+ return undefined;
267
+ }
268
+ function isMcpStdioInvocation(parsed) {
269
+ return (parsed.command === "mcp" &&
270
+ (parsed.rest[0] === "serve" || parsed.rest[0] === "serve-db" || parsed.rest[0] === "dbhub"));
271
+ }
272
+ async function dispatchParsedCommand(input) {
273
+ const { parsed, ctx, registry, isTTY, hasHelp, output, workspaceFs } = input;
274
+ // The decision — menu, help or which command, alias included — belongs to
275
+ // `planDispatch`, which is importable and therefore testable. What is left
276
+ // here is carrying it out: no ordering and no command name of its own.
277
+ const plan = planDispatch({ command: parsed.command, flags: parsed.flags, isTTY, hasHelp });
278
+ if (plan.kind === "menu")
279
+ return await runInteractiveMenu(ctx, registry, output);
280
+ if (plan.kind === "global-help") {
281
+ printHelp(registry.list(), output);
282
+ return 0;
283
+ }
284
+ const command = registry.resolve(plan.name);
285
+ if (command === undefined) {
286
+ emitError(formatUnknownCommand(plan.name, registry.list()));
287
+ return 1;
288
+ }
289
+ // `<command> --help` shows the subcommand's help (its describe), not the global help.
290
+ if (plan.help) {
291
+ printCommandHelp(command, output, parsed.rest[0]);
292
+ return 0;
293
+ }
294
+ return await executeCommand(parsed, ctx, command, output, workspaceFs);
295
+ }
296
+ async function runInteractiveMenu(ctx, registry, output) {
297
+ await ctx.logger?.info(formatTuiEvent("open"));
298
+ const tuiResult = await runTui(readPackageVersion(), ctx);
299
+ return tuiResult.kind === "menu-action"
300
+ ? await dispatchMenuAction(tuiResult.action, registry, output)
301
+ : tuiResult.exitCode;
302
+ }
303
+ async function executeCommand(parsed, ctx, command, output, workspaceFs) {
304
+ await ctx.logger?.info(formatCommandInvocation(parsed));
305
+ // Before `execute`, so a flag the command would ignore can never leave it
306
+ // waiting on a stdin its caller meant to replace.
307
+ const gate = gateFlags(command, parsed);
308
+ if (gate.kind === "refuse") {
309
+ await ctx.logger?.error(formatCommandOutcome(command.name, gate.result.exitCode));
310
+ emit(gate.result, command, output);
311
+ return gate.result.exitCode;
312
+ }
313
+ if (gate.notice !== undefined)
314
+ writeStderr(gate.notice);
315
+ try {
316
+ const approval = parsed.values.get("approval");
317
+ if (approval && WORKSPACE_SEALED_COMMANDS.has(command.name)) {
318
+ const mismatch = await preparationMismatch(ctx.paths, command.name, approval);
319
+ if (mismatch) {
320
+ const refused = fail("WORKSPACE_MISMATCH", mismatch);
321
+ emit(refused, command, output);
322
+ return refused.exitCode;
323
+ }
324
+ }
325
+ const commandCtx = commandOwnsMaterializationReceipt(command.name)
326
+ ? { ...ctx, fs: ctx.rawFs ?? ctx.fs }
327
+ : ctx;
328
+ const result = attachMaterializationReceipt(await command.execute(parsed, commandCtx), workspaceFs);
329
+ if (result.ok &&
330
+ WORKSPACE_SEALED_COMMANDS.has(command.name) &&
331
+ result.data &&
332
+ typeof result.data === "object") {
333
+ const data = result.data;
334
+ const digest = data.approval_digest ??
335
+ data.digest ??
336
+ (data.proposal && typeof data.proposal === "object"
337
+ ? data.proposal.digest
338
+ : undefined);
339
+ if (typeof digest === "string" && digest.length > 0 && parsed.rest[0] !== "apply") {
340
+ try {
341
+ await recordPreparation(ctx.rawFs ?? ctx.fs, ctx.paths, command.name, digest);
342
+ }
343
+ catch (error) {
344
+ writeStderr(`No se pudo guardar el recibo de preparación: ${String(error)}`);
345
+ }
346
+ }
347
+ }
348
+ await ctx.logger?.log(result.ok ? "info" : "error", formatCommandOutcome(command.name, result.exitCode));
349
+ emit(result, command, output, adoptionNotice(command, workspaceFs));
350
+ return result.exitCode;
351
+ }
352
+ catch (err) {
353
+ await ctx.logger?.error(formatCommandError(command.name, err));
354
+ if (isMcpStdioInvocation(parsed)) {
355
+ process.stderr.write("aw mcp: el servidor stdio no pudo iniciar\n");
356
+ return 1;
357
+ }
358
+ const message = redactSensitiveText(err instanceof Error ? err.message : String(err));
359
+ emit(fail("UNHANDLED", message), command, output, adoptionNotice(command, workspaceFs));
360
+ return 1;
361
+ }
362
+ }
363
+ const WORKSPACE_SEALED_COMMANDS = new Set([
364
+ "persist",
365
+ "export-scripts",
366
+ "export-diagrams",
367
+ "export-reports",
368
+ "export-manuals",
369
+ "capability",
370
+ "reseal",
371
+ "settle",
372
+ "claims",
373
+ "flow",
374
+ "discard",
375
+ "reset",
376
+ "doctor",
377
+ "fix-git",
378
+ ]);
379
+ /** Services whose public output already declares the exact first-write effects. */
380
+ function commandOwnsMaterializationReceipt(command) {
381
+ return command === "workspace-init" || command === "session-create";
382
+ }
383
+ /**
384
+ * The line that says out loud which path Workline just adopted, or `undefined`.
385
+ *
386
+ * The receipt already travelled in `result.data`, and in a terminal nobody reads
387
+ * that: the human projection is each command's own `renderHuman`, and the only
388
+ * one that printed the adoption was `workspace-init` — the command nobody needs
389
+ * to be told by. So adopting a directory was silent exactly where it matters,
390
+ * and a command launched one folder down from a real workspace could found a
391
+ * second one inside it without a word. It is emitted once, by the dispatcher, so
392
+ * no command has to remember; the two that declare it themselves are skipped.
393
+ */
394
+ function adoptionNotice(command, fs) {
395
+ if (commandOwnsMaterializationReceipt(command.name))
396
+ return undefined;
397
+ const materialization = fs.materialization();
398
+ if (materialization === undefined || !materialization.materialized)
399
+ return undefined;
400
+ return `Workline adoptó ${materialization.root} como workspace (namespace ${materialization.namespace}).`;
401
+ }
402
+ /**
403
+ * A generic workspace writer still needs to tell its caller that it created the
404
+ * runtime marker. Preserve every typed command payload and add the forward
405
+ * receipt only when the payload is an object and does not already own that key.
406
+ */
407
+ function attachMaterializationReceipt(result, fs) {
408
+ const materialization = fs.materialization();
409
+ if (materialization === undefined ||
410
+ !materialization.materialized ||
411
+ result.data === undefined ||
412
+ result.data === null ||
413
+ Array.isArray(result.data) ||
414
+ typeof result.data !== "object" ||
415
+ "materialization" in result.data) {
416
+ return result;
417
+ }
418
+ return { ...result, data: { ...result.data, materialization } };
419
+ }
420
+ /**
421
+ * El comando que la invocación va a correr de verdad: el explícito, o el que
422
+ * resuelve un alias global.
423
+ *
424
+ * `aw --doctor` no lleva comando —el alias lo resuelve `planDispatch` más
425
+ * tarde—, así que juzgar sólo `parsed.command` dejaba justo a esa superficie
426
+ * (la que la spec pinta como «corrélo a ciegas») fuera de la exención de sólo
427
+ * lectura y con la bitácora habilitada.
428
+ */
429
+ function effectiveCommandName(parsed) {
430
+ if (parsed.command !== undefined)
431
+ return parsed.command;
432
+ return resolveGlobalAlias({
433
+ command: parsed.command,
434
+ flags: parsed.flags,
435
+ isTTY: false,
436
+ hasHelp: false,
437
+ });
438
+ }
439
+ /**
440
+ * Comandos que prometen NO tocar el disco de la persona, ni siquiera su bitácora.
441
+ *
442
+ * `doctor` está acá porque su contrato es exactamente ese: la fase diagnóstica se
443
+ * corre a ciegas y no deja rastro. Con el logger habilitado, cada `aw doctor`
444
+ * creaba `~/.workflow/logs/` y le anexaba la invocación y el resultado, así que
445
+ * la promesa era falsa en la superficie real aunque ningún proveedor escribiera.
446
+ *
447
+ * Pero la exención es del INFORME, no del comando: `doctor apply` reescribe la
448
+ * configuración de los hosts y corre programas, y `doctor prepare` es el paso que
449
+ * produce el digest que autoriza eso. Eximirlos por compartir el nombre dejaba sin
450
+ * rastro justamente las dos invocaciones que hay que poder auditar después. Por
451
+ * eso el subverbo cuenta: exento cuando `aw doctor` se corre a secas, registrado
452
+ * en cuanto hay uno.
453
+ */
454
+ function isStrictReadCommand(parsed) {
455
+ const command = effectiveCommandName(parsed);
456
+ // `host-memory` reads other hosts' private memory: its trace stays out of the log too.
457
+ if (command === "status" || command === "resume" || command === "host-memory")
458
+ return true;
459
+ return command === "doctor" && parsed.rest.length === 0;
460
+ }
461
+ function emit(result, command, mode, adopted) {
462
+ if (result.suppressOutput)
463
+ return;
464
+ // Before anything the command prints: the adoption is the frame its output
465
+ // happened in, and it reads as an afterthought underneath a JSON blob.
466
+ if (adopted !== undefined && mode.format === "human" && command.renderRawJson === undefined) {
467
+ writeStdout(forPerson(`${adopted}\n`, mode));
468
+ }
469
+ if (command.renderRawJson !== undefined) {
470
+ writeStdout(command.renderRawJson(result));
471
+ return;
472
+ }
473
+ if (result.ok && result.data === undefined) {
474
+ // Command already wrote stdout itself (custom rendering); nothing more to emit.
475
+ return;
476
+ }
477
+ if (mode.format === "human") {
478
+ const rendered = renderHumanProjection(result, command, mode);
479
+ if (rendered !== undefined) {
480
+ writeStdout(rendered);
481
+ return;
482
+ }
483
+ }
484
+ emitJson(result);
485
+ }
486
+ function emitJson(result) {
487
+ if (result.ok) {
488
+ writeStdout(renderRaw(result.data));
489
+ return;
490
+ }
491
+ const payload = {
492
+ ok: result.ok,
493
+ error: redactErrorEnvelope(result.error ?? { code: "UNKNOWN", message: "el comando falló sin detallar la causa" }),
494
+ };
495
+ if (result.data !== undefined)
496
+ payload.data = redactSensitiveValue(result.data);
497
+ writeStdout(renderRaw(payload));
498
+ }
499
+ async function dispatchMenuAction(action, registry, output) {
500
+ // Each action re-enters `run` with a fresh argv, which resolves the output
501
+ // mode again: the mark the menu was opened with has to travel with it.
502
+ const mark = output.ascii ? ["--ascii"] : [];
503
+ switch (action) {
504
+ case "doctor":
505
+ return await run(["self", "doctor", ...mark]);
506
+ case "install-skill":
507
+ return await run(["self", "install-skill", "--force", ...mark]);
508
+ case "mcp":
509
+ return await run(["self", "mcp", ...mark]);
510
+ case "update":
511
+ // The TUI menu selection is already the confirmation; --yes
512
+ // suppresses the redundant inquirer prompt (which also races with
513
+ // ink's stdin teardown and can phantom-cancel).
514
+ return await run(["self", "update", "--yes", ...mark]);
515
+ case "workspace-init": {
516
+ // The fallback pre-materializes the current implicit root. Source
517
+ // configuration remains the Project tab's explicit secondary action.
518
+ return await run(["workspace-init", ...mark]);
519
+ }
520
+ case "help":
521
+ printHelp(registry.list(), output);
522
+ return 0;
523
+ case "exit":
524
+ return 0;
525
+ }
526
+ }
527
+ function printHelp(commands, mode) {
528
+ writeStdout(forPerson(globalHelpText(commands, commandDescribes(), DEFAULT_NAMESPACE), mode));
529
+ }
530
+ function printCommandHelp(command, mode, action) {
531
+ writeStdout(forPerson(`${commandHelpText(command, action)}\n`, mode));
532
+ }
533
+ // Do not force-exit after writing JSON: a piped 4 MiB tool response may still
534
+ // be draining under stdout backpressure. `exitCode` preserves the contract
535
+ // while allowing Node to flush stdio naturally.
536
+ void run(process.argv.slice(2))
537
+ .then((code) => {
538
+ process.exitCode = code;
539
+ })
540
+ .catch(() => {
541
+ const argv = process.argv.slice(2);
542
+ if (looksLikeMcpStdioInvocation(argv)) {
543
+ process.stderr.write("aw mcp: el servidor stdio no pudo iniciar\n");
544
+ process.exitCode = 2;
545
+ return;
546
+ }
547
+ if (looksLikeToolInvocation(argv)) {
548
+ emitToolEarlyFailure("TOOL_RUNTIME_FAILED", "La tool no pudo preparar su entorno.");
549
+ process.exitCode = 1;
550
+ return;
551
+ }
552
+ process.stderr.write("agent-workflow: fallo fatal no recuperable\n");
553
+ process.exitCode = 1;
554
+ });
555
+ //# sourceMappingURL=full-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-cli.js","sourceRoot":"","sources":["../../src/cli/full-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,GACf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAEjB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAmB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAmB,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAmB,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,SAAS,EACT,IAAI,EACJ,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,KAAK,UAAU,GAAG,CAAC,IAAc;IAC/B,MAAM,EAAE,GAAG,IAAI,cAAc,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACpF,IAAI,WAAW,KAAK,IAAI;QACtB,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErF,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC;QACvC,GAAG,QAAQ;QACX,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,QAAQ,EAAE,eAAe,EAAE;QAC3B,WAAW,EAAE,WAAW,CAAC,WAAW;KACrC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS;QACvC,CAAC,CAAC,MAAM,yBAAyB,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/E,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,OAAO;QAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC;AASD,SAAS,iBAAiB,CAAC,IAAc;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC3F,OAAO,CAAC,CAAC;IACX,CAAC;IACD,8EAA8E;IAC9E,yEAAyE;IACzE,8EAA8E;IAC9E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAClE,WAAW,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;IAC5C,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAuB;IACnD,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB,EAAE,OAAe;IAC5D,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACxF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,eAAe;IACtB,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,YAAY;QAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,MAAkB,EAClB,EAAkB,EAClB,GAAY,EACZ,IAAiB,EACjB,GAAkB;IAElB,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,IAAI,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAClG,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9E,IAAI,OAAO;QAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;IACxF,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,IAAI,gCAAgC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,mBAAmB;QACjC,CAAC,CAAC,wBAAwB,EAAE;QAC5B,CAAC,CAAC,MAAM,IAAI,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;IACpE,MAAM,MAAM,GAAG,mBAAmB;QAChC,CAAC,CAAE,EAAqB;QACxB,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO;QACL,WAAW;QACX,GAAG,EAAE;YACH,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,EAAE;YACT,GAAG;YACH,GAAG;YACH,OAAO,EAAE,IAAI;YACb,OAAO;YACP,SAAS;YACT,SAAS;YACT,KAAK;YACL,MAAM;YACN,MAAM,EAAE,IAAI,MAAM,CAAC;gBACjB,EAAE;gBACF,KAAK;gBACL,OAAO,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;aACtC,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO;QACL,WAAW,EAAE,sBAAsB,CAAC,WAAW;QAC/C,OAAO,EAAE,sBAAsB,CAAC,OAAO;QACvC,MAAM,EAAE,SAAkB;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,OAAO,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,QAAQ,CAAC,IAAc;IAC9B,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,oBAAoB,CAAC,eAAe,EAAE,wCAAwC,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS,CAAC,eAAe,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,QAA2B,EAC3B,MAAkB,EAClB,EAAkB,EAClB,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAClF,IAAI,MAAM,CAAC,OAAO,KAAK,gBAAgB;YAAE,OAAO,SAAS,CAAC;QAC1D,MAAM,MAAM,GACV,MAAM,CAAC,OAAO,KAAK,MAAM;YACzB,MAAM,CAAC,OAAO,KAAK,MAAM;YACzB,MAAM,CAAC,OAAO,KAAK,gBAAgB;YACnC,oBAAoB,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC;QAC/B,IAAI,CAAC;YACH,OAAO,MAAM,yBAAyB,CACpC,EAAE,EACF,SAAS,EACT,GAAG,CAAC,GAAG,EAAE,EACT,GAAG,CAAC,OAAO,EAAE,EACb,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,wBAAwB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,CAAC;gBACvF,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;oBAC9B,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3B,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YAChE,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC9B,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,YAAY,sBAAsB,CAAC,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC9B,oBAAoB,CAAC,qBAAqB,EAAE,sCAAsC,CAAC,CAAC;gBACpF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACxE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC9B,oBAAoB,CAClB,8BAA8B,EAC9B,8CAA8C,CAC/C,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS,CAAC;YACR,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,OAAe;IACzD,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAuB;IACtD,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AAClF,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAuB;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,OAAO,CAAC;AACvF,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAuB;IAChD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;QACrC,aAAa;QACb,eAAe;QACf,kBAAkB;QAClB,UAAU;QACV,0EAA0E;QAC1E,4EAA4E;QAC5E,oEAAoE;QACpE,UAAU;QACV,aAAa;KACd,CAAC,CAAC;IACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IACE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;YAChC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;YAChC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YAE7B,SAAS;QACX,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAkB;IAC9C,OAAO,CACL,MAAM,CAAC,OAAO,KAAK,KAAK;QACxB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAC5F,CAAC;AACJ,CAAC;AAYD,KAAK,UAAU,qBAAqB,CAAC,KAA4B;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC7E,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjF,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,sFAAsF;IACtF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,GAAe,EACf,QAAyB,EACzB,MAAkB;IAElB,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,SAAS,CAAC,IAAI,KAAK,aAAa;QACrC,CAAC,CAAC,MAAM,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;QAC9D,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,MAAkB,EAClB,GAAe,EACf,OAAmB,EACnB,MAAkB,EAClB,WAA6C;IAE7C,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,0EAA0E;IAC1E,kDAAkD;IAClD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,QAAQ,IAAI,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9E,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC/B,OAAO,OAAO,CAAC,QAAQ,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,iCAAiC,CAAC,OAAO,CAAC,IAAI,CAAC;YAChE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE;YACrC,CAAC,CAAC,GAAG,CAAC;QACR,MAAM,MAAM,GAAG,4BAA4B,CACzC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EACzC,WAAW,CACZ,CAAC;QACF,IACE,MAAM,CAAC,EAAE;YACT,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAC3C,MAAM,CAAC,IAAI;YACX,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAC/B,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAA+B,CAAC;YACpD,MAAM,MAAM,GACV,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,MAAM;gBACX,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;oBACjD,CAAC,CAAE,IAAI,CAAC,QAAoC,CAAC,MAAM;oBACnD,CAAC,CAAC,SAAS,CAAC,CAAC;YACjB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;gBAClF,IAAI,CAAC;oBACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAChF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,WAAW,CAAC,gDAAgD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,CACnB,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC5B,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CACpD,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,SAAS;IACT,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,mFAAmF;AACnF,SAAS,iCAAiC,CAAC,OAAe;IACxD,OAAO,OAAO,KAAK,gBAAgB,IAAI,OAAO,KAAK,gBAAgB,CAAC;AACtE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CACrB,OAAmB,EACnB,EAAoC;IAEpC,IAAI,iCAAiC,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,eAAe,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC;IAC7C,IAAI,eAAe,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IACrF,OAAO,mBAAmB,eAAe,CAAC,IAAI,8BAA8B,eAAe,CAAC,SAAS,IAAI,CAAC;AAC5G,CAAC;AAED;;;;GAIG;AACH,SAAS,4BAA4B,CACnC,MAAqB,EACrB,EAAoC;IAEpC,MAAM,eAAe,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC;IAC7C,IACE,eAAe,KAAK,SAAS;QAC7B,CAAC,eAAe,CAAC,YAAY;QAC7B,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,IAAI,KAAK,IAAI;QACpB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,iBAAiB,IAAI,MAAM,CAAC,IAAI,EAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,MAAkB;IAC9C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IACxD,OAAO,kBAAkB,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,mBAAmB,CAAC,MAAkB;IAC7C,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7C,uFAAuF;IACvF,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAC3F,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,IAAI,CACX,MAAqB,EACrB,OAAmB,EACnB,IAAgB,EAChB,OAAgB;IAEhB,IAAI,MAAM,CAAC,cAAc;QAAE,OAAO;IAClC,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5F,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACxC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3C,gFAAgF;QAChF,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAqB;IACrC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAgE;QAC3E,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,mBAAmB,CACxB,MAAM,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,wCAAwC,EAAE,CACvF;KACF,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChF,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,MAAkB,EAClB,QAAyB,EACzB,MAAkB;IAElB,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAChD,KAAK,eAAe;YAClB,OAAO,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAClE,KAAK,KAAK;YACR,OAAO,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,4DAA4D;YAC5D,kEAAkE;YAClE,gDAAgD;YAChD,OAAO,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACzD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,mEAAmE;YACnE,qEAAqE;YACrE,OAAO,MAAM,GAAG,CAAC,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,MAAM;YACT,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,CAAC,CAAC;QACX,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,QAAkB,EAAE,IAA+B;IACpE,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAmB,EACnB,IAA+B,EAC/B,MAAe;IAEf,WAAW,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,gDAAgD;AAChD,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC5B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;IACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,EAAE;IACV,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACpE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,oBAAoB,CAAC,qBAAqB,EAAE,sCAAsC,CAAC,CAAC;QACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACrE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}