bmalph 2.7.6 → 2.8.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.
- package/README.md +4 -4
- package/bmad/bmm/agents/analyst.agent.yaml +6 -6
- package/bmad/bmm/agents/architect.agent.yaml +2 -2
- package/bmad/bmm/agents/bmad-skill-manifest.yaml +39 -0
- package/bmad/bmm/agents/dev.agent.yaml +2 -2
- package/bmad/bmm/agents/pm.agent.yaml +6 -6
- package/bmad/bmm/agents/qa.agent.yaml +1 -1
- package/bmad/bmm/agents/quick-flow-solo-dev.agent.yaml +7 -3
- package/bmad/bmm/agents/sm.agent.yaml +4 -4
- package/bmad/bmm/agents/tech-writer/bmad-skill-manifest.yaml +3 -0
- package/bmad/bmm/agents/tech-writer/tech-writer.agent.yaml +1 -1
- package/bmad/bmm/agents/ux-designer.agent.yaml +1 -1
- package/bmad/bmm/module-help.csv +26 -25
- package/bmad/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md +6 -0
- package/bmad/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/product-brief.template.md +2 -2
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-01-init.md +4 -11
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-01b-continue.md +0 -3
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-02-vision.md +5 -11
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-03-users.md +5 -11
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-04-metrics.md +5 -11
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-05-scope.md +5 -11
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-06-complete.md +1 -4
- package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/workflow.md +4 -6
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/SKILL.md +88 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/artifact-analyzer.md +60 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/opportunity-reviewer.md +44 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/skeptic-reviewer.md +44 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/web-researcher.md +49 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-manifest.json +17 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/contextual-discovery.md +57 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/draft-and-review.md +86 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/finalize.md +75 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/guided-elicitation.md +70 -0
- package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/resources/brief-template.md +60 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-domain-research/SKILL.md +6 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-06-research-synthesis.md +2 -1
- package/bmad/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md +29 -0
- package/bmad/bmm/workflows/1-analysis/research/{workflow-domain-research.md → bmad-domain-research/workflow.md} +0 -5
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/SKILL.md +6 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/research.template.md +29 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-01-init.md +184 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +239 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +251 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +261 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +173 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +478 -0
- package/bmad/bmm/workflows/1-analysis/research/{workflow-market-research.md → bmad-market-research/workflow.md} +1 -6
- package/bmad/bmm/workflows/1-analysis/research/bmad-technical-research/SKILL.md +6 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-technical-research/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/1-analysis/research/bmad-technical-research/research.template.md +29 -0
- package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-06-research-synthesis.md +2 -1
- package/bmad/bmm/workflows/1-analysis/research/{workflow-technical-research.md → bmad-technical-research/workflow.md} +0 -4
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +2 -2
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +2 -2
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +2 -2
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +2 -2
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +2 -1
- package/bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/SKILL.md +6 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-01-init.md +2 -2
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-01b-continue.md +1 -1
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-02-discovery.md +2 -2
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-03-core-experience.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-04-emotional-response.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-05-inspiration.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-06-design-system.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-07-defining-experience.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-08-visual-foundation.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-09-design-directions.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-10-user-journeys.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-11-component-strategy.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-12-ux-patterns.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-13-responsive-accessibility.md +5 -4
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-14-complete.md +3 -3
- package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/workflow.md +2 -8
- package/bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/SKILL.md +6 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-01-discovery.md +3 -8
- package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-01b-legacy-conversion.md +1 -5
- package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-02-review.md +5 -9
- package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-03-edit.md +3 -6
- package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-04-complete.md +2 -5
- package/bmad/bmm/workflows/2-plan-workflows/{create-prd/workflow-edit-prd.md → bmad-edit-prd/workflow.md} +2 -4
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/SKILL.md +6 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/domain-complexity.csv +15 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/prd-purpose.md +197 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/project-types.csv +11 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-01-discovery.md +221 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02-format-detection.md +188 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +206 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-03-density-validation.md +171 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +211 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +225 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +214 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +202 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +240 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +260 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +206 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +261 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +239 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +229 -0
- package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/workflow.md +62 -0
- package/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +2 -4
- package/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +1 -1
- package/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +3 -3
- package/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +3 -2
- package/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +3 -1
- package/bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/SKILL.md +6 -0
- package/bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-01-document-discovery.md +3 -8
- package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-02-prd-analysis.md +1 -5
- package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-03-epic-coverage-validation.md +1 -5
- package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-04-ux-alignment.md +1 -5
- package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-05-epic-quality-review.md +2 -6
- package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-06-final-assessment.md +1 -4
- package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/workflow.md +1 -6
- package/bmad/bmm/workflows/3-solutioning/bmad-create-architecture/SKILL.md +6 -0
- package/bmad/bmm/workflows/3-solutioning/bmad-create-architecture/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-01-init.md +4 -4
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-01b-continue.md +11 -2
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-02-context.md +4 -4
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-03-starter.md +5 -7
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-04-decisions.md +4 -4
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-05-patterns.md +4 -4
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-06-structure.md +4 -4
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-07-validation.md +4 -4
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-08-complete.md +1 -1
- package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/workflow.md +1 -12
- package/bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/SKILL.md +6 -0
- package/bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/steps/step-01-validate-prerequisites.md +37 -41
- package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/steps/step-02-design-epics.md +7 -28
- package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/steps/step-03-create-stories.md +13 -30
- package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/steps/step-04-final-validation.md +3 -21
- package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/templates/epics-template.md +4 -0
- package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/workflow.md +1 -6
- package/bmad/bmm/workflows/4-implementation/bmad-code-review/SKILL.md +6 -0
- package/bmad/bmm/workflows/4-implementation/bmad-code-review/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-01-gather-context.md +61 -0
- package/bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-02-review.md +41 -0
- package/bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-03-triage.md +50 -0
- package/bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-04-present.md +38 -0
- package/bmad/bmm/workflows/4-implementation/bmad-code-review/workflow.md +54 -0
- package/bmad/bmm/workflows/4-implementation/bmad-correct-course/SKILL.md +6 -0
- package/bmad/bmm/workflows/4-implementation/bmad-correct-course/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/4-implementation/{correct-course → bmad-correct-course}/checklist.md +1 -1
- package/bmad/bmm/workflows/4-implementation/{correct-course/instructions.md → bmad-correct-course/workflow.md} +74 -14
- package/bmad/bmm/workflows/4-implementation/bmad-create-story/SKILL.md +6 -0
- package/bmad/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/4-implementation/{create-story → bmad-create-story}/checklist.md +9 -10
- package/bmad/bmm/workflows/4-implementation/bmad-create-story/discover-inputs.md +88 -0
- package/bmad/bmm/workflows/4-implementation/bmad-create-story/workflow.md +380 -0
- package/bmad/bmm/workflows/4-implementation/bmad-dev-story/SKILL.md +6 -0
- package/bmad/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/4-implementation/{dev-story/instructions.xml → bmad-dev-story/workflow.md} +42 -2
- package/bmad/bmm/workflows/4-implementation/bmad-retrospective/SKILL.md +6 -0
- package/bmad/bmm/workflows/4-implementation/bmad-retrospective/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/4-implementation/{retrospective/instructions.md → bmad-retrospective/workflow.md} +58 -23
- package/bmad/bmm/workflows/4-implementation/bmad-sprint-planning/SKILL.md +6 -0
- package/bmad/bmm/workflows/4-implementation/bmad-sprint-planning/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/4-implementation/{sprint-planning → bmad-sprint-planning}/sprint-status-template.yaml +1 -0
- package/bmad/bmm/workflows/4-implementation/{sprint-planning/instructions.md → bmad-sprint-planning/workflow.md} +47 -10
- package/bmad/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md +6 -0
- package/bmad/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/4-implementation/{sprint-status/instructions.md → bmad-sprint-status/workflow.md} +39 -8
- package/bmad/bmm/workflows/bmad-document-project/SKILL.md +6 -0
- package/bmad/bmm/workflows/bmad-document-project/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/{document-project → bmad-document-project}/instructions.md +6 -8
- package/bmad/bmm/workflows/bmad-document-project/workflow.md +27 -0
- package/bmad/bmm/workflows/{document-project → bmad-document-project}/workflows/deep-dive-instructions.md +3 -2
- package/bmad/bmm/workflows/bmad-document-project/workflows/deep-dive-workflow.md +34 -0
- package/bmad/bmm/workflows/{document-project → bmad-document-project}/workflows/full-scan-instructions.md +5 -4
- package/bmad/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md +34 -0
- package/bmad/bmm/workflows/bmad-generate-project-context/SKILL.md +6 -0
- package/bmad/bmm/workflows/bmad-generate-project-context/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/steps/step-01-discover.md +3 -1
- package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/steps/step-02-generate.md +7 -4
- package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/workflow.md +2 -8
- package/bmad/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md +6 -0
- package/bmad/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/{qa/automate/instructions.md → bmad-qa-generate-e2e-tests/workflow.md} +33 -7
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md +6 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-01-mode-detection.md +9 -14
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-02-context-gathering.md +1 -5
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-03-execute.md +1 -5
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-04-self-check.md +1 -5
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-05-adversarial-review.md +8 -18
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-06-resolve-findings.md +0 -2
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/workflow.md +1 -13
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/SKILL.md +6 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-01-clarify-and-route.md +51 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-02-plan.md +35 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-03-implement.md +33 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-04-review.md +50 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-05-present.md +17 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/tech-spec-template.md +90 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/workflow.md +79 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md +6 -0
- package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml +1 -0
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/steps/step-01-understand.md +7 -13
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/steps/step-02-investigate.md +3 -7
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/steps/step-03-generate.md +1 -5
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/steps/step-04-review.md +9 -14
- package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/workflow.md +1 -7
- package/bmad/core/module-help.csv +10 -8
- package/bmad/core/module.yaml +1 -1
- package/bmad/core/skills/bmad-advanced-elicitation/SKILL.md +6 -0
- package/bmad/core/skills/bmad-advanced-elicitation/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/skills/bmad-advanced-elicitation/workflow.md +135 -0
- package/bmad/core/skills/bmad-brainstorming/SKILL.md +6 -0
- package/bmad/core/skills/bmad-brainstorming/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-01-session-setup.md +35 -18
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-01b-continue.md +4 -2
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-02a-user-selected.md +5 -1
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-02b-ai-recommended.md +3 -1
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-02c-random-selection.md +3 -1
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-02d-progressive-flow.md +3 -1
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-03-technique-execution.md +6 -4
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-04-idea-organization.md +4 -2
- package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/workflow.md +4 -9
- package/bmad/core/skills/bmad-distillator/SKILL.md +178 -0
- package/bmad/core/skills/bmad-distillator/agents/distillate-compressor.md +116 -0
- package/bmad/core/skills/bmad-distillator/agents/round-trip-reconstructor.md +68 -0
- package/bmad/core/skills/bmad-distillator/bmad-skill-manifest.yaml +15 -0
- package/bmad/core/skills/bmad-distillator/resources/compression-rules.md +51 -0
- package/bmad/core/skills/bmad-distillator/resources/distillate-format-reference.md +227 -0
- package/bmad/core/skills/bmad-distillator/resources/splitting-strategy.md +78 -0
- package/bmad/core/skills/bmad-distillator/scripts/analyze_sources.py +300 -0
- package/bmad/core/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +204 -0
- package/bmad/core/skills/bmad-editorial-review-prose/SKILL.md +6 -0
- package/bmad/core/skills/bmad-editorial-review-prose/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/skills/bmad-editorial-review-prose/workflow.md +81 -0
- package/bmad/core/skills/bmad-editorial-review-structure/SKILL.md +6 -0
- package/bmad/core/skills/bmad-editorial-review-structure/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/skills/bmad-editorial-review-structure/workflow.md +174 -0
- package/bmad/core/skills/bmad-help/SKILL.md +6 -0
- package/bmad/core/skills/bmad-help/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/{tasks/help.md → skills/bmad-help/workflow.md} +11 -8
- package/bmad/core/skills/bmad-index-docs/SKILL.md +6 -0
- package/bmad/core/skills/bmad-index-docs/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/skills/bmad-index-docs/workflow.md +61 -0
- package/bmad/core/skills/bmad-party-mode/SKILL.md +6 -0
- package/bmad/core/skills/bmad-party-mode/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/{workflows/party-mode → skills/bmad-party-mode}/steps/step-03-graceful-exit.md +0 -1
- package/bmad/core/{workflows/party-mode → skills/bmad-party-mode}/workflow.md +0 -4
- package/bmad/core/skills/bmad-review-adversarial-general/SKILL.md +6 -0
- package/bmad/core/skills/bmad-review-adversarial-general/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/skills/bmad-review-adversarial-general/workflow.md +32 -0
- package/bmad/core/skills/bmad-review-edge-case-hunter/SKILL.md +6 -0
- package/bmad/core/skills/bmad-review-edge-case-hunter/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/skills/bmad-review-edge-case-hunter/workflow.md +62 -0
- package/bmad/core/skills/bmad-shard-doc/SKILL.md +6 -0
- package/bmad/core/skills/bmad-shard-doc/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/skills/bmad-shard-doc/workflow.md +100 -0
- package/bmad/core/tasks/bmad-create-prd/SKILL.md +6 -0
- package/bmad/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml +1 -0
- package/bmad/core/tasks/bmad-create-prd/data/domain-complexity.csv +15 -0
- package/bmad/core/tasks/bmad-create-prd/data/prd-purpose.md +197 -0
- package/bmad/core/tasks/bmad-create-prd/data/project-types.csv +11 -0
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-01-init.md +7 -20
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-01b-continue.md +29 -21
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-02-discovery.md +7 -23
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-02b-vision.md +5 -17
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-02c-executive-summary.md +5 -17
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-03-success.md +4 -16
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-04-journeys.md +4 -16
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-05-domain.md +7 -20
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-06-innovation.md +8 -23
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-07-project-type.md +6 -21
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-08-scoping.md +5 -17
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-09-functional.md +5 -17
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-10-nonfunctional.md +5 -17
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-11-polish.md +22 -18
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-12-complete.md +4 -13
- package/bmad/{bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md → core/tasks/bmad-create-prd/workflow.md} +3 -4
- package/bundled-versions.json +1 -1
- package/dist/commands/doctor-checks.js +14 -5
- package/dist/commands/doctor-checks.js.map +1 -1
- package/dist/commands/doctor.js +13 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +12 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/run.js +11 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/status.js +3 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/watch.js +5 -0
- package/dist/commands/watch.js.map +1 -1
- package/dist/installer/commands.js +33 -15
- package/dist/installer/commands.js.map +1 -1
- package/dist/installer/install.js +1 -1
- package/dist/installer/install.js.map +1 -1
- package/dist/installer/project-files.js +4 -4
- package/dist/installer/project-files.js.map +1 -1
- package/dist/installer/template-files.js +72 -6
- package/dist/installer/template-files.js.map +1 -1
- package/dist/platform/codex.js +6 -1
- package/dist/platform/codex.js.map +1 -1
- package/dist/platform/detect.js +7 -3
- package/dist/platform/detect.js.map +1 -1
- package/dist/platform/doctor-checks.js +2 -2
- package/dist/platform/doctor-checks.js.map +1 -1
- package/dist/platform/guidance.js +66 -0
- package/dist/platform/guidance.js.map +1 -0
- package/dist/platform/instructions-snippet.js +15 -0
- package/dist/platform/instructions-snippet.js.map +1 -1
- package/dist/platform/opencode.js +20 -0
- package/dist/platform/opencode.js.map +1 -0
- package/dist/platform/registry.js +2 -0
- package/dist/platform/registry.js.map +1 -1
- package/dist/platform/types.js +1 -0
- package/dist/platform/types.js.map +1 -1
- package/dist/reset.js +3 -3
- package/dist/reset.js.map +1 -1
- package/dist/run/ralph-process.js +51 -7
- package/dist/run/ralph-process.js.map +1 -1
- package/dist/run/run-dashboard.js +22 -9
- package/dist/run/run-dashboard.js.map +1 -1
- package/dist/transition/artifact-scan.js +14 -5
- package/dist/transition/artifact-scan.js.map +1 -1
- package/dist/transition/context.js +11 -3
- package/dist/transition/context.js.map +1 -1
- package/dist/utils/constants.js +4 -2
- package/dist/utils/constants.js.map +1 -1
- package/dist/watch/dashboard.js +36 -21
- package/dist/watch/dashboard.js.map +1 -1
- package/dist/watch/frame-writer.js +83 -0
- package/dist/watch/frame-writer.js.map +1 -0
- package/dist/watch/renderer.js +179 -54
- package/dist/watch/renderer.js.map +1 -1
- package/dist/watch/state-reader.js +8 -0
- package/dist/watch/state-reader.js.map +1 -1
- package/package.json +1 -1
- package/ralph/RALPH-REFERENCE.md +4 -4
- package/ralph/drivers/claude-code.sh +4 -2
- package/ralph/drivers/opencode.sh +147 -0
- package/ralph/lib/enable_core.sh +10 -2
- package/ralph/lib/response_analyzer.sh +337 -96
- package/ralph/lib/wizard_utils.sh +4 -4
- package/ralph/ralph_import.sh +9 -1
- package/ralph/ralph_loop.sh +428 -15
- package/ralph/templates/PROMPT.md +15 -5
- package/ralph/templates/ralphrc.template +31 -5
- package/slash-commands/advanced-elicitation.md +1 -1
- package/slash-commands/adversarial-review.md +1 -1
- package/slash-commands/bmad-help.md +1 -1
- package/slash-commands/bmalph.md +1 -1
- package/slash-commands/brainstorm-project.md +1 -1
- package/slash-commands/brainstorming.md +1 -1
- package/slash-commands/correct-course.md +1 -1
- package/slash-commands/create-architecture.md +1 -1
- package/slash-commands/create-brief.md +1 -1
- package/slash-commands/create-epics-stories.md +1 -1
- package/slash-commands/create-prd.md +1 -1
- package/slash-commands/create-story.md +1 -1
- package/slash-commands/create-ux.md +1 -1
- package/slash-commands/distillator.md +1 -0
- package/slash-commands/document-project.md +1 -1
- package/slash-commands/domain-research.md +1 -1
- package/slash-commands/edge-case-hunter.md +1 -0
- package/slash-commands/edit-prd.md +1 -0
- package/slash-commands/editorial-prose.md +1 -1
- package/slash-commands/editorial-structure.md +1 -1
- package/slash-commands/generate-project-context.md +1 -1
- package/slash-commands/implementation-readiness.md +1 -1
- package/slash-commands/index-docs.md +1 -1
- package/slash-commands/market-research.md +1 -1
- package/slash-commands/party-mode.md +1 -1
- package/slash-commands/qa-automate.md +1 -1
- package/slash-commands/quick-dev-new.md +1 -0
- package/slash-commands/quick-dev.md +1 -1
- package/slash-commands/retrospective.md +1 -1
- package/slash-commands/shard-doc.md +1 -1
- package/slash-commands/sprint-planning.md +1 -1
- package/slash-commands/sprint-status.md +1 -1
- package/slash-commands/tech-spec.md +1 -1
- package/slash-commands/technical-research.md +1 -1
- package/slash-commands/validate-architecture.md +1 -1
- package/slash-commands/validate-brief.md +1 -1
- package/slash-commands/validate-epics-stories.md +1 -1
- package/slash-commands/validate-prd.md +1 -1
- package/slash-commands/validate-story.md +1 -1
- package/slash-commands/validate-ux.md +1 -1
- package/bmad/bmm/workflows/4-implementation/code-review/checklist.md +0 -23
- package/bmad/bmm/workflows/4-implementation/code-review/instructions.xml +0 -227
- package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -44
- package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -54
- package/bmad/bmm/workflows/4-implementation/create-story/instructions.xml +0 -346
- package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -53
- package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -21
- package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -53
- package/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -47
- package/bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +0 -25
- package/bmad/bmm/workflows/document-project/workflow.yaml +0 -22
- package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
- package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
- package/bmad/bmm/workflows/qa/automate/workflow.yaml +0 -44
- package/bmad/core/agents/bmad-master.agent.yaml +0 -30
- package/bmad/core/tasks/editorial-review-prose.xml +0 -102
- package/bmad/core/tasks/editorial-review-structure.xml +0 -209
- package/bmad/core/tasks/index-docs.xml +0 -65
- package/bmad/core/tasks/review-adversarial-general.xml +0 -48
- package/bmad/core/tasks/shard-doc.xml +0 -108
- package/bmad/core/tasks/workflow.xml +0 -235
- package/bmad/core/workflows/advanced-elicitation/workflow.xml +0 -117
- package/slash-commands/execute-workflow.md +0 -1
- /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-01-init.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-02-domain-analysis.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-03-competitive-landscape.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-04-regulatory-focus.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-05-technical-trends.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-01-init.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-02-technical-overview.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-03-integration-patterns.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-04-architectural-patterns.md +0 -0
- /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-05-implementation-research.md +0 -0
- /package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/ux-design-template.md +0 -0
- /package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/templates/readiness-report-template.md +0 -0
- /package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/architecture-decision-template.md +0 -0
- /package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/data/domain-complexity.csv +0 -0
- /package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/data/project-types.csv +0 -0
- /package/bmad/bmm/workflows/4-implementation/{create-story → bmad-create-story}/template.md +0 -0
- /package/bmad/bmm/workflows/4-implementation/{dev-story → bmad-dev-story}/checklist.md +0 -0
- /package/bmad/bmm/workflows/4-implementation/{sprint-planning → bmad-sprint-planning}/checklist.md +0 -0
- /package/bmad/bmm/workflows/{document-project → bmad-document-project}/checklist.md +0 -0
- /package/bmad/bmm/workflows/{document-project → bmad-document-project}/documentation-requirements.csv +0 -0
- /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/deep-dive-template.md +0 -0
- /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/index-template.md +0 -0
- /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/project-overview-template.md +0 -0
- /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/project-scan-report-schema.json +0 -0
- /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/source-tree-template.md +0 -0
- /package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/project-context-template.md +0 -0
- /package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/steps/step-03-complete.md +0 -0
- /package/bmad/bmm/workflows/{qa/automate → bmad-qa-generate-e2e-tests}/checklist.md +0 -0
- /package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/tech-spec-template.md +0 -0
- /package/bmad/core/{workflows/advanced-elicitation → skills/bmad-advanced-elicitation}/methods.csv +0 -0
- /package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/brain-methods.csv +0 -0
- /package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/template.md +0 -0
- /package/bmad/core/{workflows/party-mode → skills/bmad-party-mode}/steps/step-01-agent-loading.md +0 -0
- /package/bmad/core/{workflows/party-mode → skills/bmad-party-mode}/steps/step-02-discussion-orchestration.md +0 -0
- /package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/templates/prd-template.md +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD,wDAAwD;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,+FAA+F;AAC/F,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,2CAA2C;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D,oDAAoD;AACpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAElC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEhC,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAEnC,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC;AAE9C,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD,wDAAwD;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,+FAA+F;AAC/F,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,2CAA2C;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D,oDAAoD;AACpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAElC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEhC,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAEnC,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC;AAE9C,kDAAkD;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,qDAAqD;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AAErC,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC;AAExC,8BAA8B;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEhD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC"}
|
package/dist/watch/dashboard.js
CHANGED
|
@@ -1,34 +1,49 @@
|
|
|
1
1
|
import { readDashboardState } from "./state-reader.js";
|
|
2
2
|
import { renderDashboard } from "./renderer.js";
|
|
3
|
+
import { createTerminalFrameWriter } from "./frame-writer.js";
|
|
3
4
|
import { FileWatcher } from "./file-watcher.js";
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export function createRefreshCallback(projectDir, write, options = {}) {
|
|
6
|
+
const now = options.now ?? (() => new Date());
|
|
7
|
+
let lastMeaningfulUpdate;
|
|
8
|
+
let lastRenderedBody;
|
|
9
|
+
const renderOptions = options.footerRenderer
|
|
10
|
+
? { footerRenderer: options.footerRenderer }
|
|
11
|
+
: undefined;
|
|
8
12
|
return async () => {
|
|
9
13
|
const state = await readDashboardState(projectDir);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export function setupTerminal() {
|
|
15
|
-
if (process.stdout.isTTY) {
|
|
16
|
-
process.stdout.write(HIDE_CURSOR);
|
|
17
|
-
}
|
|
18
|
-
return () => {
|
|
19
|
-
if (process.stdout.isTTY) {
|
|
20
|
-
process.stdout.write(SHOW_CURSOR);
|
|
14
|
+
if (lastMeaningfulUpdate === undefined) {
|
|
15
|
+
lastMeaningfulUpdate = now();
|
|
21
16
|
}
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
let frame = renderDashboard({
|
|
18
|
+
...state,
|
|
19
|
+
lastUpdated: lastMeaningfulUpdate,
|
|
20
|
+
}, undefined, renderOptions);
|
|
21
|
+
let body = stripFooterLine(frame);
|
|
22
|
+
if (lastRenderedBody !== undefined && body !== lastRenderedBody) {
|
|
23
|
+
lastMeaningfulUpdate = now();
|
|
24
|
+
frame = renderDashboard({
|
|
25
|
+
...state,
|
|
26
|
+
lastUpdated: lastMeaningfulUpdate,
|
|
27
|
+
}, undefined, renderOptions);
|
|
28
|
+
body = stripFooterLine(frame);
|
|
24
29
|
}
|
|
25
|
-
|
|
30
|
+
lastRenderedBody = body;
|
|
31
|
+
write(frame);
|
|
26
32
|
};
|
|
27
33
|
}
|
|
34
|
+
function stripFooterLine(frame) {
|
|
35
|
+
const footerIndex = frame.lastIndexOf("\n");
|
|
36
|
+
if (footerIndex === -1) {
|
|
37
|
+
return frame;
|
|
38
|
+
}
|
|
39
|
+
return frame.slice(0, footerIndex);
|
|
40
|
+
}
|
|
28
41
|
export async function startDashboard(options) {
|
|
29
42
|
const { projectDir, interval } = options;
|
|
30
|
-
const
|
|
31
|
-
const refresh = createRefreshCallback(projectDir, (
|
|
43
|
+
const frameWriter = createTerminalFrameWriter();
|
|
44
|
+
const refresh = createRefreshCallback(projectDir, (frame) => {
|
|
45
|
+
frameWriter.write(frame);
|
|
46
|
+
});
|
|
32
47
|
const watcher = new FileWatcher(refresh, interval);
|
|
33
48
|
return new Promise((resolve) => {
|
|
34
49
|
const handleKey = (data) => {
|
|
@@ -48,7 +63,7 @@ export async function startDashboard(options) {
|
|
|
48
63
|
return;
|
|
49
64
|
stopped = true;
|
|
50
65
|
watcher.stop();
|
|
51
|
-
cleanup();
|
|
66
|
+
frameWriter.cleanup();
|
|
52
67
|
process.removeListener("SIGINT", onSignal);
|
|
53
68
|
process.removeListener("SIGTERM", onSignal);
|
|
54
69
|
process.stdout.removeListener("resize", onResize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/watch/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/watch/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
const HIDE_CURSOR = "\x1B[?25l";
|
|
2
|
+
const SHOW_CURSOR = "\x1B[?25h";
|
|
3
|
+
const CLEAR_LINE = "\x1B[2K";
|
|
4
|
+
const NEXT_LINE = "\x1B[E";
|
|
5
|
+
export function getDashboardTerminalSupport(output = process.stdout, input = process.stdin, env = process.env) {
|
|
6
|
+
if (!output.isTTY || !input.isTTY) {
|
|
7
|
+
return {
|
|
8
|
+
supported: false,
|
|
9
|
+
reason: "Dashboard requires an interactive terminal with cursor support.",
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (typeof output.columns !== "number" || output.columns < 20) {
|
|
13
|
+
return {
|
|
14
|
+
supported: false,
|
|
15
|
+
reason: "Dashboard requires a terminal with a usable width.",
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if ((env.TERM ?? "").toLowerCase() === "dumb") {
|
|
19
|
+
return {
|
|
20
|
+
supported: false,
|
|
21
|
+
reason: "Dashboard is not supported when TERM=dumb.",
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return { supported: true };
|
|
25
|
+
}
|
|
26
|
+
export function createTerminalFrameWriter(options = {}) {
|
|
27
|
+
const output = options.output ?? process.stdout;
|
|
28
|
+
const input = options.input ?? process.stdin;
|
|
29
|
+
let previousLines = [];
|
|
30
|
+
if (output.isTTY) {
|
|
31
|
+
output.write(HIDE_CURSOR);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
cleanup() {
|
|
35
|
+
if (output.isTTY) {
|
|
36
|
+
output.write(SHOW_CURSOR);
|
|
37
|
+
}
|
|
38
|
+
if (input.isTTY && input.setRawMode) {
|
|
39
|
+
input.setRawMode(false);
|
|
40
|
+
}
|
|
41
|
+
input.pause();
|
|
42
|
+
},
|
|
43
|
+
write(frame) {
|
|
44
|
+
const nextLines = frame.split("\n");
|
|
45
|
+
if (sameLines(previousLines, nextLines)) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
if (previousLines.length === 0) {
|
|
49
|
+
output.write(`${frame}\n`);
|
|
50
|
+
previousLines = nextLines;
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
output.write(`\x1B[${String(previousLines.length)}F`);
|
|
54
|
+
const totalLines = Math.max(previousLines.length, nextLines.length);
|
|
55
|
+
for (let index = 0; index < totalLines; index += 1) {
|
|
56
|
+
const nextLine = nextLines[index] ?? "";
|
|
57
|
+
const previousLine = previousLines[index] ?? "";
|
|
58
|
+
if (nextLine !== previousLine) {
|
|
59
|
+
output.write(`${CLEAR_LINE}${nextLine}`);
|
|
60
|
+
}
|
|
61
|
+
output.write(NEXT_LINE);
|
|
62
|
+
}
|
|
63
|
+
const shrinkBy = previousLines.length - nextLines.length;
|
|
64
|
+
if (shrinkBy > 0) {
|
|
65
|
+
output.write(`\x1B[${String(shrinkBy)}F`);
|
|
66
|
+
}
|
|
67
|
+
previousLines = nextLines;
|
|
68
|
+
return true;
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function sameLines(previousLines, nextLines) {
|
|
73
|
+
if (previousLines.length !== nextLines.length) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
for (let index = 0; index < previousLines.length; index += 1) {
|
|
77
|
+
if (previousLines[index] !== nextLines[index]) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=frame-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-writer.js","sourceRoot":"","sources":["../../src/watch/frame-writer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC;AA6B3B,MAAM,UAAU,2BAA2B,CACzC,SAA0B,OAAO,CAAC,MAAM,EACxC,QAAwB,OAAO,CAAC,KAAK,EACrC,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,iEAAiE;SAC1E,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC;QAC9D,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,oDAAoD;SAC7D,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QAC9C,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,4CAA4C;SACrD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,UAA8B,EAAE;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAE7C,IAAI,aAAa,GAAa,EAAE,CAAC;IAEjC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO;YACL,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,KAAa;YACjB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;gBAC3B,aAAa,GAAG,SAAS,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACpE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAEhD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;oBAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG,QAAQ,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YACzD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC;YAED,aAAa,GAAG,SAAS,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,aAAuB,EAAE,SAAmB;IAC7D,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/watch/renderer.js
CHANGED
|
@@ -17,16 +17,120 @@ const BOX_CHARS = {
|
|
|
17
17
|
const PROGRESS_FILLED = "\u2588";
|
|
18
18
|
const PROGRESS_EMPTY = "\u2591";
|
|
19
19
|
// eslint-disable-next-line no-control-regex
|
|
20
|
-
const ANSI_PATTERN = /\x1B\[
|
|
20
|
+
const ANSI_PATTERN = /\x1B\[[0-9;]*m/g;
|
|
21
|
+
// eslint-disable-next-line no-control-regex
|
|
22
|
+
const ANSI_PREFIX_PATTERN = /^\x1B\[[0-9;]*m/;
|
|
23
|
+
// eslint-disable-next-line no-control-regex
|
|
24
|
+
const VT_ESCAPE_PATTERN = /\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g;
|
|
25
|
+
// eslint-disable-next-line no-control-regex
|
|
26
|
+
const CONTROL_CHAR_PATTERN = /[\x00-\x08\x0B-\x1F\x7F]/g;
|
|
27
|
+
const DISPLAY_SEGMENTER = new Intl.Segmenter(undefined, { granularity: "grapheme" });
|
|
28
|
+
const COMBINING_MARK_PATTERN = /\p{Mark}/u;
|
|
29
|
+
const EMOJI_PATTERN = /\p{Extended_Pictographic}/u;
|
|
21
30
|
function stripAnsi(str) {
|
|
22
31
|
return str.replace(ANSI_PATTERN, "");
|
|
23
32
|
}
|
|
33
|
+
function sanitizeExternalText(str) {
|
|
34
|
+
return str
|
|
35
|
+
.replace(VT_ESCAPE_PATTERN, "")
|
|
36
|
+
.replace(/\r\n?/g, " ")
|
|
37
|
+
.replace(/\n/g, " ")
|
|
38
|
+
.replace(/\t/g, " ")
|
|
39
|
+
.replace(CONTROL_CHAR_PATTERN, "");
|
|
40
|
+
}
|
|
41
|
+
function displayWidth(str) {
|
|
42
|
+
return Array.from(DISPLAY_SEGMENTER.segment(stripAnsi(str))).reduce((width, segment) => {
|
|
43
|
+
return width + graphemeDisplayWidth(segment.segment);
|
|
44
|
+
}, 0);
|
|
45
|
+
}
|
|
46
|
+
function graphemeDisplayWidth(grapheme) {
|
|
47
|
+
let width = 0;
|
|
48
|
+
for (const char of grapheme) {
|
|
49
|
+
const codePoint = char.codePointAt(0);
|
|
50
|
+
if (codePoint === undefined || isZeroWidthChar(char, codePoint)) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (EMOJI_PATTERN.test(char) || isWideCodePoint(codePoint)) {
|
|
54
|
+
return 2;
|
|
55
|
+
}
|
|
56
|
+
width = 1;
|
|
57
|
+
}
|
|
58
|
+
return width;
|
|
59
|
+
}
|
|
60
|
+
function isZeroWidthChar(char, codePoint) {
|
|
61
|
+
return (COMBINING_MARK_PATTERN.test(char) ||
|
|
62
|
+
codePoint === 0x200c ||
|
|
63
|
+
codePoint === 0x200d ||
|
|
64
|
+
isVariationSelector(codePoint));
|
|
65
|
+
}
|
|
66
|
+
function isVariationSelector(codePoint) {
|
|
67
|
+
return ((codePoint >= 0xfe00 && codePoint <= 0xfe0f) || (codePoint >= 0xe0100 && codePoint <= 0xe01ef));
|
|
68
|
+
}
|
|
69
|
+
function isWideCodePoint(codePoint) {
|
|
70
|
+
return (codePoint >= 0x1100 &&
|
|
71
|
+
(codePoint <= 0x115f ||
|
|
72
|
+
codePoint === 0x2329 ||
|
|
73
|
+
codePoint === 0x232a ||
|
|
74
|
+
(codePoint >= 0x2e80 && codePoint <= 0x3247 && codePoint !== 0x303f) ||
|
|
75
|
+
(codePoint >= 0x3250 && codePoint <= 0x4dbf) ||
|
|
76
|
+
(codePoint >= 0x4e00 && codePoint <= 0xa4c6) ||
|
|
77
|
+
(codePoint >= 0xa960 && codePoint <= 0xa97c) ||
|
|
78
|
+
(codePoint >= 0xac00 && codePoint <= 0xd7a3) ||
|
|
79
|
+
(codePoint >= 0xf900 && codePoint <= 0xfaff) ||
|
|
80
|
+
(codePoint >= 0xfe10 && codePoint <= 0xfe19) ||
|
|
81
|
+
(codePoint >= 0xfe30 && codePoint <= 0xfe6b) ||
|
|
82
|
+
(codePoint >= 0xff01 && codePoint <= 0xff60) ||
|
|
83
|
+
(codePoint >= 0xffe0 && codePoint <= 0xffe6) ||
|
|
84
|
+
(codePoint >= 0x1f300 && codePoint <= 0x1f64f) ||
|
|
85
|
+
(codePoint >= 0x1f900 && codePoint <= 0x1f9ff) ||
|
|
86
|
+
(codePoint >= 0x20000 && codePoint <= 0x3fffd)));
|
|
87
|
+
}
|
|
88
|
+
function truncateAnsi(str, len) {
|
|
89
|
+
if (len <= 0) {
|
|
90
|
+
return "";
|
|
91
|
+
}
|
|
92
|
+
if (displayWidth(str) <= len) {
|
|
93
|
+
return str;
|
|
94
|
+
}
|
|
95
|
+
let result = "";
|
|
96
|
+
let index = 0;
|
|
97
|
+
let visibleCount = 0;
|
|
98
|
+
let sawAnsi = false;
|
|
99
|
+
outer: while (index < str.length) {
|
|
100
|
+
const ansiMatch = str.slice(index).match(ANSI_PREFIX_PATTERN);
|
|
101
|
+
if (ansiMatch) {
|
|
102
|
+
result += ansiMatch[0];
|
|
103
|
+
index += ansiMatch[0].length;
|
|
104
|
+
sawAnsi = true;
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
const nextAnsiIndex = str.indexOf("\x1B", index);
|
|
108
|
+
const textChunk = nextAnsiIndex === -1 ? str.slice(index) : str.slice(index, nextAnsiIndex);
|
|
109
|
+
for (const segment of DISPLAY_SEGMENTER.segment(textChunk)) {
|
|
110
|
+
const width = graphemeDisplayWidth(segment.segment);
|
|
111
|
+
if (visibleCount + width > len) {
|
|
112
|
+
break outer;
|
|
113
|
+
}
|
|
114
|
+
result += segment.segment;
|
|
115
|
+
visibleCount += width;
|
|
116
|
+
}
|
|
117
|
+
index += textChunk.length;
|
|
118
|
+
}
|
|
119
|
+
if (sawAnsi) {
|
|
120
|
+
result += "\x1B[0m";
|
|
121
|
+
}
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
24
124
|
export function padRight(str, len) {
|
|
25
|
-
|
|
125
|
+
if (len <= 0) {
|
|
126
|
+
return "";
|
|
127
|
+
}
|
|
128
|
+
const fitted = truncateAnsi(str, len);
|
|
129
|
+
const visualLen = displayWidth(fitted);
|
|
26
130
|
if (visualLen >= len) {
|
|
27
|
-
return
|
|
131
|
+
return fitted;
|
|
28
132
|
}
|
|
29
|
-
return
|
|
133
|
+
return fitted + " ".repeat(len - visualLen);
|
|
30
134
|
}
|
|
31
135
|
export function progressBar(completed, total, width) {
|
|
32
136
|
if (total <= 0) {
|
|
@@ -36,13 +140,12 @@ export function progressBar(completed, total, width) {
|
|
|
36
140
|
const filled = Math.round(ratio * width);
|
|
37
141
|
return chalk.green(PROGRESS_FILLED.repeat(filled)) + PROGRESS_EMPTY.repeat(width - filled);
|
|
38
142
|
}
|
|
39
|
-
export function formatSessionAge(createdAt) {
|
|
40
|
-
const now = Date.now();
|
|
143
|
+
export function formatSessionAge(createdAt, referenceTime = Date.now()) {
|
|
41
144
|
const start = new Date(createdAt).getTime();
|
|
42
145
|
if (Number.isNaN(start)) {
|
|
43
146
|
return "0m 0s";
|
|
44
147
|
}
|
|
45
|
-
const diffSeconds = Math.max(0, Math.floor((
|
|
148
|
+
const diffSeconds = Math.max(0, Math.floor((referenceTime - start) / 1000));
|
|
46
149
|
const hours = Math.floor(diffSeconds / 3600);
|
|
47
150
|
const minutes = Math.floor((diffSeconds % 3600) / 60);
|
|
48
151
|
const seconds = diffSeconds % 60;
|
|
@@ -78,31 +181,33 @@ function formatTime(date) {
|
|
|
78
181
|
return `${h}:${m}:${s}`;
|
|
79
182
|
}
|
|
80
183
|
function extractTime(timestamp) {
|
|
81
|
-
const
|
|
82
|
-
|
|
184
|
+
const safeTimestamp = sanitizeExternalText(timestamp);
|
|
185
|
+
const timePart = safeTimestamp.split(" ")[1];
|
|
186
|
+
return timePart ?? formatTime(new Date(safeTimestamp));
|
|
83
187
|
}
|
|
84
188
|
export function box(title, lines, cols) {
|
|
85
|
-
const innerWidth = cols - 2;
|
|
86
|
-
const titleStr = title ? `\u2500 ${title}
|
|
189
|
+
const innerWidth = Math.max(0, cols - 2);
|
|
190
|
+
const titleStr = title ? truncateAnsi(`\u2500 ${title} `, innerWidth) : "";
|
|
87
191
|
const topBorder = BOX_CHARS.topLeft +
|
|
88
192
|
titleStr +
|
|
89
|
-
BOX_CHARS.horizontal.repeat(Math.max(0, innerWidth - titleStr
|
|
193
|
+
BOX_CHARS.horizontal.repeat(Math.max(0, innerWidth - displayWidth(titleStr))) +
|
|
90
194
|
BOX_CHARS.topRight;
|
|
91
195
|
const bottomBorder = BOX_CHARS.bottomLeft + BOX_CHARS.horizontal.repeat(innerWidth) + BOX_CHARS.bottomRight;
|
|
92
|
-
const contentLines = lines.map((line) => BOX_CHARS.vertical + " " + padRight(line, innerWidth - 1) + BOX_CHARS.vertical);
|
|
196
|
+
const contentLines = lines.map((line) => BOX_CHARS.vertical + " " + padRight(line, Math.max(0, innerWidth - 1)) + BOX_CHARS.vertical);
|
|
93
197
|
return [topBorder, ...contentLines, bottomBorder].join("\n");
|
|
94
198
|
}
|
|
95
199
|
export function renderHeader(cols) {
|
|
96
|
-
const innerWidth = cols - 2;
|
|
97
|
-
const title = "RALPH MONITOR";
|
|
98
|
-
const
|
|
99
|
-
const
|
|
200
|
+
const innerWidth = Math.max(0, cols - 2);
|
|
201
|
+
const title = truncateAnsi("RALPH MONITOR", innerWidth);
|
|
202
|
+
const titleLength = displayWidth(title);
|
|
203
|
+
const padding = Math.max(0, Math.floor((innerWidth - titleLength) / 2));
|
|
204
|
+
const centeredTitle = " ".repeat(padding) + title + " ".repeat(Math.max(0, innerWidth - padding - titleLength));
|
|
100
205
|
const topBorder = BOX_CHARS.headerLeft + BOX_CHARS.headerHoriz.repeat(innerWidth) + BOX_CHARS.headerRight;
|
|
101
206
|
const titleLine = BOX_CHARS.headerVert + chalk.bold(centeredTitle) + BOX_CHARS.headerVert;
|
|
102
207
|
const bottomBorder = BOX_CHARS.headerBottom + BOX_CHARS.headerHoriz.repeat(innerWidth) + BOX_CHARS.headerBottomRight;
|
|
103
208
|
return [topBorder, titleLine, bottomBorder].join("\n");
|
|
104
209
|
}
|
|
105
|
-
export function renderLoopPanel(loop, execution, session, cols) {
|
|
210
|
+
export function renderLoopPanel(loop, execution, session, cols, referenceTime = Date.now()) {
|
|
106
211
|
if (loop === null) {
|
|
107
212
|
return box("Loop Status", ["Status: waiting for data"], cols);
|
|
108
213
|
}
|
|
@@ -110,29 +215,29 @@ export function renderLoopPanel(loop, execution, session, cols) {
|
|
|
110
215
|
? Math.round((loop.callsMadeThisHour / loop.maxCallsPerHour) * 100)
|
|
111
216
|
: 0;
|
|
112
217
|
const loopStr = `Loop: #${String(loop.loopCount)}`;
|
|
113
|
-
const statusStr = `Status: ${formatStatus(loop.status)}`;
|
|
218
|
+
const statusStr = `Status: ${formatStatus(sanitizeExternalText(loop.status))}`;
|
|
114
219
|
const apiStr = `API: ${String(loop.callsMadeThisHour)}/${String(loop.maxCallsPerHour)} (${String(apiPercent)}%)`;
|
|
115
220
|
const line1 = `${padRight(loopStr, 17)}${padRight(statusStr, 21)}${apiStr}`;
|
|
116
|
-
const sessionStr = session !== null ? `Session: ${formatSessionAge(session.createdAt)}` : "";
|
|
221
|
+
const sessionStr = session !== null ? `Session: ${formatSessionAge(session.createdAt, referenceTime)}` : "";
|
|
117
222
|
const innerWidth = cols - 4;
|
|
118
223
|
let line2;
|
|
119
224
|
if (execution !== null) {
|
|
120
225
|
const elapsedStr = formatElapsed(execution.elapsedSeconds);
|
|
121
|
-
const
|
|
122
|
-
const
|
|
226
|
+
const safeIndicator = sanitizeExternalText(execution.indicator);
|
|
227
|
+
const executingStr = `${safeIndicator} executing (${elapsedStr})`;
|
|
228
|
+
const sessionPad = Math.max(0, innerWidth - displayWidth(executingStr) - displayWidth(sessionStr));
|
|
123
229
|
line2 = `${executingStr}${" ".repeat(sessionPad)}${sessionStr}`;
|
|
124
230
|
}
|
|
125
231
|
else {
|
|
126
|
-
const actionStr = `Action: ${loop.lastAction}`;
|
|
127
|
-
const sessionPad = Math.max(0, innerWidth - actionStr
|
|
232
|
+
const actionStr = `Action: ${sanitizeExternalText(loop.lastAction)}`;
|
|
233
|
+
const sessionPad = Math.max(0, innerWidth - displayWidth(actionStr) - displayWidth(sessionStr));
|
|
128
234
|
line2 = `${actionStr}${" ".repeat(sessionPad)}${sessionStr}`;
|
|
129
235
|
}
|
|
130
236
|
const lines = [line1, line2];
|
|
131
237
|
if (execution !== null && execution.lastOutput.length > 0) {
|
|
238
|
+
const safeOutput = sanitizeExternalText(execution.lastOutput);
|
|
132
239
|
const maxOutputLen = Math.max(0, innerWidth - 2);
|
|
133
|
-
const truncated =
|
|
134
|
-
? execution.lastOutput.slice(0, maxOutputLen)
|
|
135
|
-
: execution.lastOutput;
|
|
240
|
+
const truncated = truncateAnsi(safeOutput, maxOutputLen);
|
|
136
241
|
lines.push(chalk.dim(` ${truncated}`));
|
|
137
242
|
}
|
|
138
243
|
return box("Loop Status", lines, cols);
|
|
@@ -143,12 +248,12 @@ export function renderCircuitBreakerPanel(cb, cols) {
|
|
|
143
248
|
return box("Circuit Breaker", ["N/A"], halfCols);
|
|
144
249
|
}
|
|
145
250
|
const lines = [
|
|
146
|
-
`State: ${formatCBState(cb.state)}`,
|
|
251
|
+
`State: ${formatCBState(sanitizeExternalText(cb.state))}`,
|
|
147
252
|
`No-progress: ${String(cb.consecutiveNoProgress)}`,
|
|
148
253
|
`Opens: ${String(cb.totalOpens)}`,
|
|
149
254
|
];
|
|
150
255
|
if (cb.state === "OPEN" && cb.reason) {
|
|
151
|
-
lines.push(`Reason: ${cb.reason}`);
|
|
256
|
+
lines.push(`Reason: ${sanitizeExternalText(cb.reason)}`);
|
|
152
257
|
}
|
|
153
258
|
return box("Circuit Breaker", lines, halfCols);
|
|
154
259
|
}
|
|
@@ -166,7 +271,7 @@ export function renderStoriesPanel(stories, cols) {
|
|
|
166
271
|
`[${bar}]`,
|
|
167
272
|
];
|
|
168
273
|
if (stories.nextStory !== null) {
|
|
169
|
-
lines.push(`Next: ${stories.nextStory}`);
|
|
274
|
+
lines.push(`Next: ${sanitizeExternalText(stories.nextStory)}`);
|
|
170
275
|
}
|
|
171
276
|
return box("Stories", lines, halfCols);
|
|
172
277
|
}
|
|
@@ -188,17 +293,23 @@ export function renderAnalysisPanel(analysis, cols) {
|
|
|
188
293
|
return box("Last Analysis", ["N/A"], cols);
|
|
189
294
|
}
|
|
190
295
|
const yesNo = (v) => (v ? "yes" : "no");
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
296
|
+
const lines = [
|
|
297
|
+
[
|
|
298
|
+
`Files: ${String(analysis.filesModified)}`,
|
|
299
|
+
`Confidence: ${String(analysis.confidenceScore)}%`,
|
|
300
|
+
].join(" "),
|
|
301
|
+
[`Test-only: ${yesNo(analysis.isTestOnly)}`, `Stuck: ${yesNo(analysis.isStuck)}`].join(" "),
|
|
302
|
+
[
|
|
303
|
+
`Exit signal: ${yesNo(analysis.exitSignal)}`,
|
|
304
|
+
`Permission denials: ${String(analysis.permissionDenialCount)}`,
|
|
305
|
+
].join(" "),
|
|
306
|
+
[
|
|
307
|
+
`Claimed tasks: ${String(analysis.tasksCompletedThisLoop)}`,
|
|
308
|
+
`Checkbox delta: ${String(analysis.fixPlanCompletedDelta)}`,
|
|
309
|
+
].join(" "),
|
|
310
|
+
`Progress mismatch: ${yesNo(analysis.hasProgressTrackingMismatch)}`,
|
|
311
|
+
];
|
|
312
|
+
return box("Last Analysis", lines, cols);
|
|
202
313
|
}
|
|
203
314
|
export function renderLogsPanel(logs, cols) {
|
|
204
315
|
if (logs.length === 0) {
|
|
@@ -207,10 +318,11 @@ export function renderLogsPanel(logs, cols) {
|
|
|
207
318
|
const innerWidth = cols - 4;
|
|
208
319
|
const lines = logs.map((entry) => {
|
|
209
320
|
const time = extractTime(entry.timestamp);
|
|
210
|
-
const level = padRight(entry.level, 7);
|
|
321
|
+
const level = padRight(sanitizeExternalText(entry.level), 7);
|
|
211
322
|
const prefix = `[${time}] ${level}`;
|
|
212
|
-
const maxMsg = Math.max(0, innerWidth - prefix
|
|
213
|
-
const
|
|
323
|
+
const maxMsg = Math.max(0, innerWidth - displayWidth(prefix) - 1);
|
|
324
|
+
const safeMessage = sanitizeExternalText(entry.message);
|
|
325
|
+
const msg = truncateAnsi(safeMessage, maxMsg);
|
|
214
326
|
return `${chalk.dim(`[${time}]`)} ${level} ${msg}`;
|
|
215
327
|
});
|
|
216
328
|
return box("Recent Activity", lines, cols);
|
|
@@ -221,16 +333,23 @@ export function renderLiveLogPanel(liveLog, cols) {
|
|
|
221
333
|
}
|
|
222
334
|
const innerWidth = cols - 4;
|
|
223
335
|
const lines = liveLog.map((line) => {
|
|
224
|
-
const
|
|
336
|
+
const safeLine = sanitizeExternalText(line);
|
|
337
|
+
const trimmed = truncateAnsi(safeLine, innerWidth);
|
|
225
338
|
return chalk.dim(trimmed);
|
|
226
339
|
});
|
|
227
340
|
return box("Live Output", lines, cols);
|
|
228
341
|
}
|
|
342
|
+
export function renderFooterLine(leftText, rightText, cols) {
|
|
343
|
+
const availableWidth = Math.max(0, cols - 1);
|
|
344
|
+
const minimumWidth = displayWidth(leftText) + 1 + displayWidth(rightText);
|
|
345
|
+
if (availableWidth < minimumWidth) {
|
|
346
|
+
return ` ${truncateAnsi(`${leftText} ${rightText}`, availableWidth)}`;
|
|
347
|
+
}
|
|
348
|
+
const gap = availableWidth - displayWidth(leftText) - displayWidth(rightText);
|
|
349
|
+
return ` ${chalk.dim(leftText)}${" ".repeat(gap)}${chalk.dim(rightText)}`;
|
|
350
|
+
}
|
|
229
351
|
export function renderFooter(lastUpdated, cols) {
|
|
230
|
-
|
|
231
|
-
const right = `Updated: ${formatTime(lastUpdated)}`;
|
|
232
|
-
const gap = Math.max(1, cols - "q quit".length - right.length);
|
|
233
|
-
return ` ${left}${" ".repeat(gap - 1)}${chalk.dim(right)}`;
|
|
352
|
+
return renderFooterLine("q quit", `Updated: ${formatTime(lastUpdated)}`, cols);
|
|
234
353
|
}
|
|
235
354
|
function hasAnyData(state) {
|
|
236
355
|
return (state.loop !== null ||
|
|
@@ -242,20 +361,22 @@ function hasAnyData(state) {
|
|
|
242
361
|
state.recentLogs.length > 0 ||
|
|
243
362
|
state.liveLog.length > 0);
|
|
244
363
|
}
|
|
245
|
-
export function renderDashboard(state, cols) {
|
|
364
|
+
export function renderDashboard(state, cols, options = {}) {
|
|
246
365
|
const width = cols ?? process.stdout.columns ?? 80;
|
|
366
|
+
const referenceTime = state.lastUpdated.getTime();
|
|
367
|
+
const footerRenderer = options.footerRenderer ?? renderFooter;
|
|
247
368
|
if (!hasAnyData(state)) {
|
|
248
369
|
const lines = [];
|
|
249
370
|
lines.push(renderHeader(width));
|
|
250
371
|
lines.push("");
|
|
251
372
|
lines.push(chalk.dim(padRight(" Waiting for Ralph to start...", width)));
|
|
252
373
|
lines.push("");
|
|
253
|
-
lines.push(
|
|
374
|
+
lines.push(footerRenderer(state.lastUpdated, width));
|
|
254
375
|
return lines.join("\n");
|
|
255
376
|
}
|
|
256
377
|
const sections = [];
|
|
257
378
|
sections.push(renderHeader(width));
|
|
258
|
-
sections.push(renderLoopPanel(state.loop, state.execution, state.session, width));
|
|
379
|
+
sections.push(renderLoopPanel(state.loop, state.execution, state.session, width, referenceTime));
|
|
259
380
|
const leftPanel = renderCircuitBreakerPanel(state.circuitBreaker, width);
|
|
260
381
|
const rightPanel = renderStoriesPanel(state.stories, width);
|
|
261
382
|
sections.push(renderSideBySide(leftPanel, rightPanel, width));
|
|
@@ -264,7 +385,11 @@ export function renderDashboard(state, cols) {
|
|
|
264
385
|
sections.push(renderLiveLogPanel(state.liveLog, width));
|
|
265
386
|
}
|
|
266
387
|
sections.push(renderLogsPanel(state.recentLogs, width));
|
|
267
|
-
sections.push(
|
|
268
|
-
return sections
|
|
388
|
+
sections.push(footerRenderer(state.lastUpdated, width));
|
|
389
|
+
return sections
|
|
390
|
+
.join("\n")
|
|
391
|
+
.split("\n")
|
|
392
|
+
.map((line) => truncateAnsi(line, width))
|
|
393
|
+
.join("\n");
|
|
269
394
|
}
|
|
270
395
|
//# sourceMappingURL=renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/watch/renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/watch/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAkBzD,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,QAAQ;IACtB,iBAAiB,EAAE,QAAQ;IAC3B,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,QAAQ;CACZ,CAAC;AAEX,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEhC,4CAA4C;AAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,4CAA4C;AAC5C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAC9C,4CAA4C;AAC5C,MAAM,iBAAiB,GAAG,kEAAkE,CAAC;AAC7F,4CAA4C;AAC5C,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AACzD,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;AACrF,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAC3C,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAEnD,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,GAAG;SACP,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACrF,OAAO,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,SAAS,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YAChE,SAAS;QACX,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,SAAiB;IACtD,OAAO,CACL,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,SAAS,KAAK,MAAM;QACpB,SAAS,KAAK,MAAM;QACpB,mBAAmB,CAAC,SAAS,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,OAAO,CACL,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,OAAO,CACL,SAAS,IAAI,MAAM;QACnB,CAAC,SAAS,IAAI,MAAM;YAClB,SAAS,KAAK,MAAM;YACpB,SAAS,KAAK,MAAM;YACpB,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,SAAS,KAAK,MAAM,CAAC;YACpE,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;YAC5C,CAAC,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,CAAC;YAC9C,CAAC,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,CAAC;YAC9C,CAAC,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAClD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW;IAC5C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,EAAE,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC5F,KAAK,MAAM,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,YAAY,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;YAC1B,YAAY,IAAI,KAAK,CAAC;QACxB,CAAC;QAED,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAW;IAC/C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,KAAa,EAAE,KAAa;IACzE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,gBAAwB,IAAI,CAAC,GAAG,EAAE;IACpF,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAE5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,WAAW,GAAG,EAAE,CAAC;IAEjC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACjB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;IAC/B,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAU;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,QAAQ,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAAe,EAAE,IAAY;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GACb,SAAS,CAAC,OAAO;QACjB,QAAQ;QACR,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,SAAS,CAAC,QAAQ,CAAC;IAErB,MAAM,YAAY,GAChB,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC;IAEzF,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAC5B,CAAC,IAAI,EAAE,EAAE,CACP,SAAS,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAC9F,CAAC;IAEF,OAAO,CAAC,SAAS,EAAE,GAAG,YAAY,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,YAAY,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GACjB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;IAE5F,MAAM,SAAS,GACb,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC;IAE1F,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC;IAE1F,MAAM,YAAY,GAChB,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;IAElG,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAqB,EACrB,SAAmC,EACnC,OAA2B,EAC3B,IAAY,EACZ,gBAAwB,IAAI,CAAC,GAAG,EAAE;IAElC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC,aAAa,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,UAAU,GACd,IAAI,CAAC,eAAe,GAAG,CAAC;QACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;QACnE,CAAC,CAAC,CAAC,CAAC;IACR,MAAM,OAAO,GAAG,UAAU,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,WAAW,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,MAAM,GAAG,QAAQ,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IACjH,MAAM,KAAK,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;IAE5E,MAAM,UAAU,GACd,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC;IAE5B,IAAI,KAAa,CAAC;IAClB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,GAAG,aAAa,eAAe,UAAU,GAAG,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,EACD,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CACnE,CAAC;QACF,KAAK,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,EAAE,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,WAAW,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QAChG,KAAK,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE7B,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EAA6B,EAAE,IAAY;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAE1C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,UAAU,aAAa,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;QACzD,gBAAgB,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE;QAClD,UAAU,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;KAClC,CAAC;IAEF,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,WAAW,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA6B,EAAE,IAAY;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAE1C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG;QACZ,aAAa,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI;QACvE,IAAI,GAAG,GAAG;KACX,CAAC;IAEF,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,SAAS,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;IACxE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA6B,EAAE,IAAY;IAC7E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG;QACZ;YACE,UAAU,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YAC1C,eAAe,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG;SACnD,CAAC,IAAI,CAAC,MAAM,CAAC;QACd,CAAC,cAAc,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9F;YACE,gBAAgB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC5C,uBAAuB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;SAChE,CAAC,IAAI,CAAC,MAAM,CAAC;QACd;YACE,kBAAkB,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;YAC3D,mBAAmB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;SAC5D,CAAC,IAAI,CAAC,MAAM,CAAC;QACd,sBAAsB,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;KACpE,CAAC;IAEF,OAAO,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAgB,EAAE,IAAY;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAiB,EAAE,IAAY;IAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,SAAiB,EAAE,IAAY;IAChF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAE1E,IAAI,cAAc,GAAG,YAAY,EAAE,CAAC;QAClC,OAAO,IAAI,YAAY,CAAC,GAAG,QAAQ,IAAI,SAAS,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,MAAM,GAAG,GAAG,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC9E,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAiB,EAAE,IAAY;IAC1D,OAAO,gBAAgB,CAAC,QAAQ,EAAE,YAAY,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,UAAU,CAAC,KAAqB;IACvC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,IAAI;QACnB,KAAK,CAAC,cAAc,KAAK,IAAI;QAC7B,KAAK,CAAC,OAAO,KAAK,IAAI;QACtB,KAAK,CAAC,QAAQ,KAAK,IAAI;QACvB,KAAK,CAAC,SAAS,KAAK,IAAI;QACxB,KAAK,CAAC,OAAO,KAAK,IAAI;QACtB,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC3B,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAqB,EACrB,IAAa,EACb,UAAkC,EAAE;IAEpC,MAAM,KAAK,GAAG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACnD,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAClD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,YAAY,CAAC;IAE9D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjG,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9D,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1D,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExD,OAAO,QAAQ;SACZ,IAAI,CAAC,IAAI,CAAC;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACxC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|