claude-code-workflow 6.2.1 → 6.2.3
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/.claude/CLAUDE.md +10 -0
- package/.claude/agents/action-planning-agent.md +857 -0
- package/.claude/agents/cli-execution-agent.md +267 -0
- package/.claude/agents/cli-explore-agent.md +182 -0
- package/.claude/agents/cli-lite-planning-agent.md +446 -0
- package/.claude/agents/cli-planning-agent.md +558 -0
- package/.claude/agents/code-developer.md +311 -0
- package/.claude/agents/conceptual-planning-agent.md +308 -0
- package/.claude/agents/context-search-agent.md +581 -0
- package/.claude/agents/doc-generator.md +330 -0
- package/.claude/agents/memory-bridge.md +94 -0
- package/.claude/agents/test-context-search-agent.md +400 -0
- package/.claude/agents/test-fix-agent.md +344 -0
- package/.claude/agents/ui-design-agent.md +593 -0
- package/.claude/agents/universal-executor.md +131 -0
- package/.claude/commands/clean.md +516 -0
- package/.claude/commands/cli/cli-init.md +440 -0
- package/.claude/commands/enhance-prompt.md +93 -0
- package/.claude/commands/memory/code-map-memory.md +687 -0
- package/.claude/commands/memory/compact.md +383 -0
- package/.claude/commands/memory/docs-full-cli.md +471 -0
- package/.claude/commands/memory/docs-related-cli.md +386 -0
- package/.claude/commands/memory/docs.md +615 -0
- package/.claude/commands/memory/load-skill-memory.md +182 -0
- package/.claude/commands/memory/load.md +240 -0
- package/.claude/commands/memory/skill-memory.md +525 -0
- package/.claude/commands/memory/style-skill-memory.md +396 -0
- package/.claude/commands/memory/tech-research-rules.md +310 -0
- package/.claude/commands/memory/update-full.md +332 -0
- package/.claude/commands/memory/update-related.md +332 -0
- package/.claude/commands/memory/workflow-skill-memory.md +517 -0
- package/.claude/commands/task/breakdown.md +204 -0
- package/.claude/commands/task/create.md +152 -0
- package/.claude/commands/task/execute.md +270 -0
- package/.claude/commands/task/replan.md +437 -0
- package/.claude/commands/version.md +254 -0
- package/.claude/commands/workflow/action-plan-verify.md +447 -0
- package/.claude/commands/workflow/brainstorm/api-designer.md +587 -0
- package/.claude/commands/workflow/brainstorm/artifacts.md +453 -0
- package/.claude/commands/workflow/brainstorm/auto-parallel.md +443 -0
- package/.claude/commands/workflow/brainstorm/data-architect.md +220 -0
- package/.claude/commands/workflow/brainstorm/product-manager.md +200 -0
- package/.claude/commands/workflow/brainstorm/product-owner.md +200 -0
- package/.claude/commands/workflow/brainstorm/scrum-master.md +200 -0
- package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
- package/.claude/commands/workflow/brainstorm/synthesis.md +398 -0
- package/.claude/commands/workflow/brainstorm/system-architect.md +389 -0
- package/.claude/commands/workflow/brainstorm/ui-designer.md +221 -0
- package/.claude/commands/workflow/brainstorm/ux-expert.md +221 -0
- package/.claude/commands/workflow/debug.md +321 -0
- package/.claude/commands/workflow/execute.md +475 -0
- package/.claude/commands/workflow/init.md +165 -0
- package/.claude/commands/workflow/lite-execute.md +792 -0
- package/.claude/commands/workflow/lite-fix.md +623 -0
- package/.claude/commands/workflow/lite-plan.md +610 -0
- package/.claude/commands/workflow/plan.md +551 -0
- package/.claude/commands/workflow/replan.md +515 -0
- package/.claude/commands/workflow/review-fix.md +606 -0
- package/.claude/commands/workflow/review-module-cycle.md +767 -0
- package/.claude/commands/workflow/review-session-cycle.md +778 -0
- package/.claude/commands/workflow/review.md +297 -0
- package/.claude/commands/workflow/session/complete.md +153 -0
- package/.claude/commands/workflow/session/list.md +96 -0
- package/.claude/commands/workflow/session/resume.md +61 -0
- package/.claude/commands/workflow/session/start.md +200 -0
- package/.claude/commands/workflow/tdd-plan.md +460 -0
- package/.claude/commands/workflow/tdd-verify.md +400 -0
- package/.claude/commands/workflow/test-cycle-execute.md +500 -0
- package/.claude/commands/workflow/test-fix-gen.md +699 -0
- package/.claude/commands/workflow/test-gen.md +529 -0
- package/.claude/commands/workflow/tools/conflict-resolution.md +766 -0
- package/.claude/commands/workflow/tools/context-gather.md +436 -0
- package/.claude/commands/workflow/tools/task-generate-agent.md +490 -0
- package/.claude/commands/workflow/tools/task-generate-tdd.md +526 -0
- package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
- package/.claude/commands/workflow/tools/test-concept-enhanced.md +164 -0
- package/.claude/commands/workflow/tools/test-context-gather.md +236 -0
- package/.claude/commands/workflow/tools/test-task-generate.md +257 -0
- package/.claude/commands/workflow/ui-design/animation-extract.md +1150 -0
- package/.claude/commands/workflow/ui-design/codify-style.md +652 -0
- package/.claude/commands/workflow/ui-design/design-sync.md +454 -0
- package/.claude/commands/workflow/ui-design/explore-auto.md +678 -0
- package/.claude/commands/workflow/ui-design/generate.md +504 -0
- package/.claude/commands/workflow/ui-design/imitate-auto.md +745 -0
- package/.claude/commands/workflow/ui-design/import-from-code.md +540 -0
- package/.claude/commands/workflow/ui-design/layout-extract.md +788 -0
- package/.claude/commands/workflow/ui-design/reference-page-generator.md +356 -0
- package/.claude/commands/workflow/ui-design/style-extract.md +773 -0
- package/.claude/skills/command-guide/SKILL.md +388 -0
- package/.claude/skills/command-guide/UPDATE-GUIDELINE.md +592 -0
- package/.claude/skills/command-guide/guides/cli-tools-guide.md +410 -0
- package/.claude/skills/command-guide/guides/examples.md +537 -0
- package/.claude/skills/command-guide/guides/getting-started.md +242 -0
- package/.claude/skills/command-guide/guides/implementation-details.md +1010 -0
- package/.claude/skills/command-guide/guides/index-structure.md +326 -0
- package/.claude/skills/command-guide/guides/troubleshooting.md +92 -0
- package/.claude/skills/command-guide/guides/ui-design-workflow-guide.md +316 -0
- package/.claude/skills/command-guide/guides/workflow-patterns.md +662 -0
- package/.claude/skills/command-guide/index/all-commands.json +772 -0
- package/.claude/skills/command-guide/index/by-category.json +800 -0
- package/.claude/skills/command-guide/index/by-use-case.json +786 -0
- package/.claude/skills/command-guide/index/command-relationships.json +307 -0
- package/.claude/skills/command-guide/index/essential-commands.json +112 -0
- package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +857 -0
- package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +267 -0
- package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +182 -0
- package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +446 -0
- package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +558 -0
- package/.claude/skills/command-guide/reference/agents/code-developer.md +311 -0
- package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +308 -0
- package/.claude/skills/command-guide/reference/agents/context-search-agent.md +581 -0
- package/.claude/skills/command-guide/reference/agents/doc-generator.md +330 -0
- package/.claude/skills/command-guide/reference/agents/memory-bridge.md +94 -0
- package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +400 -0
- package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +344 -0
- package/.claude/skills/command-guide/reference/agents/ui-design-agent.md +593 -0
- package/.claude/skills/command-guide/reference/agents/universal-executor.md +131 -0
- package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +440 -0
- package/.claude/skills/command-guide/reference/commands/enhance-prompt.md +93 -0
- package/.claude/skills/command-guide/reference/commands/memory/code-map-memory.md +687 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs.md +616 -0
- package/.claude/skills/command-guide/reference/commands/memory/load-skill-memory.md +182 -0
- package/.claude/skills/command-guide/reference/commands/memory/load.md +240 -0
- package/.claude/skills/command-guide/reference/commands/memory/skill-memory.md +525 -0
- package/.claude/skills/command-guide/reference/commands/memory/style-skill-memory.md +396 -0
- package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +314 -0
- package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -0
- package/.claude/skills/command-guide/reference/commands/memory/update-related.md +332 -0
- package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +517 -0
- package/.claude/skills/command-guide/reference/commands/task/breakdown.md +204 -0
- package/.claude/skills/command-guide/reference/commands/task/create.md +152 -0
- package/.claude/skills/command-guide/reference/commands/task/execute.md +270 -0
- package/.claude/skills/command-guide/reference/commands/task/replan.md +437 -0
- package/.claude/skills/command-guide/reference/commands/version.md +254 -0
- package/.claude/skills/command-guide/reference/commands/workflow/action-plan-verify.md +447 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +585 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +452 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +443 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +220 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +398 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +387 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +221 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +221 -0
- package/.claude/skills/command-guide/reference/commands/workflow/execute.md +465 -0
- package/.claude/skills/command-guide/reference/commands/workflow/init.md +164 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +748 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +664 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +645 -0
- package/.claude/skills/command-guide/reference/commands/workflow/plan.md +551 -0
- package/.claude/skills/command-guide/reference/commands/workflow/replan.md +515 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +606 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +765 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +776 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review.md +298 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +547 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +114 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +77 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +257 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +460 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +400 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-cycle-execute.md +498 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +699 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-gen.md +529 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +766 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +487 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +525 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +163 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-context-gather.md +235 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +256 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md +1150 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/codify-style.md +652 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/design-sync.md +454 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/explore-auto.md +678 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +504 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/imitate-auto.md +745 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +537 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/layout-extract.md +788 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/reference-page-generator.md +356 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/style-extract.md +773 -0
- package/.claude/skills/command-guide/scripts/analyze_commands.py +502 -0
- package/.claude/skills/command-guide/scripts/update-index.sh +130 -0
- package/.claude/skills/command-guide/templates/issue-bug.md +104 -0
- package/.claude/skills/command-guide/templates/issue-diagnosis.md +275 -0
- package/.claude/skills/command-guide/templates/issue-feature.md +97 -0
- package/.claude/skills/command-guide/templates/issue-question.md +141 -0
- package/.claude/skills/prompt-enhancer/SKILL.md +124 -0
- package/.claude/workflows/_template-compare-matrix.html +692 -0
- package/.claude/workflows/chinese-response.md +38 -0
- package/.claude/workflows/cli-templates/fix-plan-template.json +75 -0
- package/.claude/workflows/cli-templates/fix-progress-template.json +48 -0
- package/.claude/workflows/cli-templates/memory/style-skill-memory/skill-md-template.md +299 -0
- package/.claude/workflows/cli-templates/planning-roles/data-architect.md +120 -0
- package/.claude/workflows/cli-templates/planning-roles/product-manager.md +119 -0
- package/.claude/workflows/cli-templates/planning-roles/product-owner.md +261 -0
- package/.claude/workflows/cli-templates/planning-roles/scrum-master.md +186 -0
- package/.claude/workflows/cli-templates/planning-roles/subject-matter-expert.md +281 -0
- package/.claude/workflows/cli-templates/planning-roles/synthesis-role.md +414 -0
- package/.claude/workflows/cli-templates/planning-roles/system-architect.md +106 -0
- package/.claude/workflows/cli-templates/planning-roles/test-strategist.md +124 -0
- package/.claude/workflows/cli-templates/planning-roles/ui-designer.md +379 -0
- package/.claude/workflows/cli-templates/planning-roles/ux-expert.md +240 -0
- package/.claude/workflows/cli-templates/prompts/analysis/01-diagnose-bug-root-cause.txt +127 -0
- package/.claude/workflows/cli-templates/prompts/analysis/01-trace-code-execution.txt +115 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-code-patterns.txt +37 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-technical-document.txt +33 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-review-architecture.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-review-code-quality.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-analyze-performance.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-assess-security-risks.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-review-quality-standards.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/development/02-generate-tests.txt +70 -0
- package/.claude/workflows/cli-templates/prompts/development/02-implement-component-ui.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/development/02-implement-feature.txt +58 -0
- package/.claude/workflows/cli-templates/prompts/development/02-refactor-codebase.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/development/03-debug-runtime-issues.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/documentation/api.txt +15 -0
- package/.claude/workflows/cli-templates/prompts/documentation/folder-navigation.txt +27 -0
- package/.claude/workflows/cli-templates/prompts/documentation/module-readme.txt +49 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-architecture.txt +41 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-examples.txt +35 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-readme.txt +35 -0
- package/.claude/workflows/cli-templates/prompts/memory/02-document-module-structure.txt +165 -0
- package/.claude/workflows/cli-templates/prompts/planning/01-plan-architecture-design.txt +109 -0
- package/.claude/workflows/cli-templates/prompts/planning/02-breakdown-task-steps.txt +30 -0
- package/.claude/workflows/cli-templates/prompts/planning/02-design-component-spec.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/planning/03-evaluate-concept-feasibility.txt +127 -0
- package/.claude/workflows/cli-templates/prompts/planning/03-plan-migration-strategy.txt +30 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-api.txt +122 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-components.txt +122 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-config.txt +89 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-core.txt +60 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-patterns.txt +70 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-testing.txt +81 -0
- package/.claude/workflows/cli-templates/prompts/rules/tech-rules-agent-prompt.txt +89 -0
- package/.claude/workflows/cli-templates/prompts/tech/tech-module-format.txt +359 -0
- package/.claude/workflows/cli-templates/prompts/tech/tech-skill-index.txt +185 -0
- package/.claude/workflows/cli-templates/prompts/test/test-concept-analysis.txt +179 -0
- package/.claude/workflows/cli-templates/prompts/universal/00-universal-creative-style.txt +95 -0
- package/.claude/workflows/cli-templates/prompts/universal/00-universal-rigorous-style.txt +92 -0
- package/.claude/workflows/cli-templates/prompts/verification/codex-technical.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/verification/cross-validation.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/verification/gemini-strategic.txt +27 -0
- package/.claude/workflows/cli-templates/prompts/workflow/analysis-results-structure.txt +224 -0
- package/.claude/workflows/cli-templates/prompts/workflow/codex-feasibility-validation.txt +176 -0
- package/.claude/workflows/cli-templates/prompts/workflow/gemini-solution-design.txt +131 -0
- package/.claude/workflows/cli-templates/prompts/workflow/impl-plan-template.txt +286 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-aggregation.txt +172 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-conflict-patterns.txt +94 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-index.txt +224 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +94 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-sessions-timeline.txt +53 -0
- package/.claude/workflows/cli-templates/prompts/workflow/task-json-agent-mode.txt +123 -0
- package/.claude/workflows/cli-templates/prompts/workflow/task-json-cli-mode.txt +182 -0
- package/.claude/workflows/cli-templates/protocols/analysis-protocol.md +112 -0
- package/.claude/workflows/cli-templates/protocols/write-protocol.md +201 -0
- package/.claude/workflows/cli-templates/schemas/conflict-resolution-schema.json +137 -0
- package/.claude/workflows/cli-templates/schemas/debug-log-json-schema.json +127 -0
- package/.claude/workflows/cli-templates/schemas/diagnosis-json-schema.json +234 -0
- package/.claude/workflows/cli-templates/schemas/explore-json-schema.json +124 -0
- package/.claude/workflows/cli-templates/schemas/fix-plan-json-schema.json +298 -0
- package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +244 -0
- package/.claude/workflows/cli-templates/schemas/project-json-schema.json +221 -0
- package/.claude/workflows/cli-templates/schemas/review-deep-dive-results-schema.json +82 -0
- package/.claude/workflows/cli-templates/schemas/review-dimension-results-schema.json +51 -0
- package/.claude/workflows/cli-templates/tech-stacks/go-dev.md +91 -0
- package/.claude/workflows/cli-templates/tech-stacks/java-dev.md +107 -0
- package/.claude/workflows/cli-templates/tech-stacks/javascript-dev.md +58 -0
- package/.claude/workflows/cli-templates/tech-stacks/python-dev.md +79 -0
- package/.claude/workflows/cli-templates/tech-stacks/react-dev.md +103 -0
- package/.claude/workflows/cli-templates/tech-stacks/typescript-dev.md +83 -0
- package/.claude/workflows/cli-templates/ui-design/systems/animation-tokens.json +247 -0
- package/.claude/workflows/cli-templates/ui-design/systems/design-tokens.json +342 -0
- package/.claude/workflows/cli-templates/ui-design/systems/layout-templates.json +145 -0
- package/.claude/workflows/cli-tools-usage.md +526 -0
- package/.claude/workflows/coding-philosophy.md +70 -0
- package/.claude/workflows/context-tools.md +84 -0
- package/.claude/workflows/file-modification.md +64 -0
- package/.claude/workflows/review-directory-specification.md +336 -0
- package/.claude/workflows/task-core.md +214 -0
- package/.claude/workflows/tool-strategy.md +216 -0
- package/.claude/workflows/windows-platform.md +16 -0
- package/.claude/workflows/workflow-architecture.md +942 -0
- package/.codex/AGENTS.md +63 -0
- package/.codex/prompts/debug.md +318 -0
- package/.codex/prompts/execute.md +273 -0
- package/.codex/prompts/lite-execute.md +164 -0
- package/.codex/prompts/lite-plan.md +469 -0
- package/.codex/prompts.zip +0 -0
- package/.gemini/GEMINI.md +25 -0
- package/.qwen/QWEN.md +25 -0
- package/LICENSE +21 -0
- package/README.md +294 -145
- package/ccw/README.md +145 -0
- package/ccw/package.json +65 -0
- package/codex-lens/pyproject.toml +48 -0
- package/codex-lens/src/codexlens/.workflow/.cli-history/history.db +0 -0
- package/codex-lens/src/codexlens/__init__.py +28 -0
- package/codex-lens/src/codexlens/__main__.py +14 -0
- package/codex-lens/src/codexlens/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/__main__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__init__.py +27 -0
- package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/commands.py +1931 -0
- package/codex-lens/src/codexlens/cli/embedding_manager.py +620 -0
- package/codex-lens/src/codexlens/cli/model_manager.py +289 -0
- package/codex-lens/src/codexlens/cli/output.py +124 -0
- package/codex-lens/src/codexlens/config.py +201 -0
- package/codex-lens/src/codexlens/entities.py +121 -0
- package/codex-lens/src/codexlens/errors.py +55 -0
- package/codex-lens/src/codexlens/indexing/README.md +77 -0
- package/codex-lens/src/codexlens/indexing/__init__.py +4 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/symbol_extractor.py +243 -0
- package/codex-lens/src/codexlens/parsers/__init__.py +8 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/encoding.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/encoding.py +202 -0
- package/codex-lens/src/codexlens/parsers/factory.py +256 -0
- package/codex-lens/src/codexlens/parsers/tokenizer.py +98 -0
- package/codex-lens/src/codexlens/parsers/treesitter_parser.py +335 -0
- package/codex-lens/src/codexlens/search/__init__.py +15 -0
- package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/query_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/chain_search.py +647 -0
- package/codex-lens/src/codexlens/search/enrichment.py +150 -0
- package/codex-lens/src/codexlens/search/hybrid_search.py +313 -0
- package/codex-lens/src/codexlens/search/query_parser.py +242 -0
- package/codex-lens/src/codexlens/search/ranking.py +274 -0
- package/codex-lens/src/codexlens/semantic/__init__.py +39 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/code_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/graph_analyzer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/llm_enhancer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/ann_index.py +414 -0
- package/codex-lens/src/codexlens/semantic/chunker.py +448 -0
- package/codex-lens/src/codexlens/semantic/code_extractor.py +274 -0
- package/codex-lens/src/codexlens/semantic/embedder.py +185 -0
- package/codex-lens/src/codexlens/semantic/vector_store.py +955 -0
- package/codex-lens/src/codexlens/storage/__init__.py +29 -0
- package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/file_cache.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/migration_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/dir_index.py +1850 -0
- package/codex-lens/src/codexlens/storage/file_cache.py +32 -0
- package/codex-lens/src/codexlens/storage/index_tree.py +776 -0
- package/codex-lens/src/codexlens/storage/migration_manager.py +154 -0
- package/codex-lens/src/codexlens/storage/migrations/__init__.py +1 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_001_normalize_keywords.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_002_add_token_metadata.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_003_code_relationships.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_005_cleanup_unused_fields.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_001_normalize_keywords.py +123 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_002_add_token_metadata.py +48 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_004_dual_fts.py +232 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_005_cleanup_unused_fields.py +196 -0
- package/codex-lens/src/codexlens/storage/path_mapper.py +274 -0
- package/codex-lens/src/codexlens/storage/registry.py +670 -0
- package/codex-lens/src/codexlens/storage/sqlite_store.py +576 -0
- package/codex-lens/src/codexlens/storage/sqlite_utils.py +64 -0
- package/package.json +37 -32
- /package/{bin → ccw/bin}/ccw-mcp.js +0 -0
- /package/{bin → ccw/bin}/ccw.js +0 -0
- /package/{dist → ccw/dist}/cli.d.ts +0 -0
- /package/{dist → ccw/dist}/cli.d.ts.map +0 -0
- /package/{dist → ccw/dist}/cli.js +0 -0
- /package/{dist → ccw/dist}/cli.js.map +0 -0
- /package/{dist → ccw/dist}/commands/cli.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/cli.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/cli.js +0 -0
- /package/{dist → ccw/dist}/commands/cli.js.map +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.js +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.js.map +0 -0
- /package/{dist → ccw/dist}/commands/hook.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/hook.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/hook.js +0 -0
- /package/{dist → ccw/dist}/commands/hook.js.map +0 -0
- /package/{dist → ccw/dist}/commands/install.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/install.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/install.js +0 -0
- /package/{dist → ccw/dist}/commands/install.js.map +0 -0
- /package/{dist → ccw/dist}/commands/list.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/list.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/list.js +0 -0
- /package/{dist → ccw/dist}/commands/list.js.map +0 -0
- /package/{dist → ccw/dist}/commands/memory.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/memory.js +0 -0
- /package/{dist → ccw/dist}/commands/memory.js.map +0 -0
- /package/{dist → ccw/dist}/commands/serve.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/serve.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/serve.js +0 -0
- /package/{dist → ccw/dist}/commands/serve.js.map +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.js +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.js.map +0 -0
- /package/{dist → ccw/dist}/commands/session.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/session.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/session.js +0 -0
- /package/{dist → ccw/dist}/commands/session.js.map +0 -0
- /package/{dist → ccw/dist}/commands/stop.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/stop.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/stop.js +0 -0
- /package/{dist → ccw/dist}/commands/stop.js.map +0 -0
- /package/{dist → ccw/dist}/commands/tool.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/tool.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/tool.js +0 -0
- /package/{dist → ccw/dist}/commands/tool.js.map +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.js +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.js.map +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.js +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.js.map +0 -0
- /package/{dist → ccw/dist}/commands/view.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/view.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/view.js +0 -0
- /package/{dist → ccw/dist}/commands/view.js.map +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.d.ts +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.d.ts.map +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.js +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.js.map +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.js +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.js.map +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.d.ts +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.js +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.js.map +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.d.ts +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.js +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.js.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.js +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.js.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.d.ts +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.js +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.js.map +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.d.ts +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.js +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.js.map +0 -0
- /package/{dist → ccw/dist}/core/history-importer.d.ts +0 -0
- /package/{dist → ccw/dist}/core/history-importer.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/history-importer.js +0 -0
- /package/{dist → ccw/dist}/core/history-importer.js.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.d.ts +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.js +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.js.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.d.ts +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.js +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.js.map +0 -0
- /package/{dist → ccw/dist}/core/manifest.d.ts +0 -0
- /package/{dist → ccw/dist}/core/manifest.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/manifest.js +0 -0
- /package/{dist → ccw/dist}/core/manifest.js.map +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.js +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.js.map +0 -0
- /package/{dist → ccw/dist}/core/memory-store.d.ts +0 -0
- /package/{dist → ccw/dist}/core/memory-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/memory-store.js +0 -0
- /package/{dist → ccw/dist}/core/memory-store.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/server.d.ts +0 -0
- /package/{dist → ccw/dist}/core/server.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/server.js +0 -0
- /package/{dist → ccw/dist}/core/server.js.map +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.d.ts +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.js +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.js.map +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.d.ts +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.js +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.js.map +0 -0
- /package/{dist → ccw/dist}/core/websocket.d.ts +0 -0
- /package/{dist → ccw/dist}/core/websocket.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/websocket.js +0 -0
- /package/{dist → ccw/dist}/core/websocket.js.map +0 -0
- /package/{dist → ccw/dist}/index.d.ts +0 -0
- /package/{dist → ccw/dist}/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/index.js +0 -0
- /package/{dist → ccw/dist}/index.js.map +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.d.ts +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.js +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.js.map +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.js +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.js.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-executor.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/cli-executor.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-executor.js +0 -0
- /package/{dist → ccw/dist}/tools/cli-executor.js.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.js +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.js.map +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.js +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.js.map +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js.map +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.js +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.js.map +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.js +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.js.map +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.js +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.js.map +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.js +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.js.map +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.js +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.js.map +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.js +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.js.map +0 -0
- /package/{dist → ccw/dist}/tools/index.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/index.js +0 -0
- /package/{dist → ccw/dist}/tools/index.js.map +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.js +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.js.map +0 -0
- /package/{dist → ccw/dist}/tools/notifier.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/notifier.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/notifier.js +0 -0
- /package/{dist → ccw/dist}/tools/notifier.js.map +0 -0
- /package/{dist → ccw/dist}/tools/read-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/read-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/read-file.js +0 -0
- /package/{dist → ccw/dist}/tools/read-file.js.map +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.js +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.js.map +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.js +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.js.map +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.js +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.js.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.js +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.js.map +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.js +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.js.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js.map +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.js +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.js.map +0 -0
- /package/{dist → ccw/dist}/tools/write-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/write-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/write-file.js +0 -0
- /package/{dist → ccw/dist}/tools/write-file.js.map +0 -0
- /package/{dist → ccw/dist}/types/config.d.ts +0 -0
- /package/{dist → ccw/dist}/types/config.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/config.js +0 -0
- /package/{dist → ccw/dist}/types/config.js.map +0 -0
- /package/{dist → ccw/dist}/types/index.d.ts +0 -0
- /package/{dist → ccw/dist}/types/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/index.js +0 -0
- /package/{dist → ccw/dist}/types/index.js.map +0 -0
- /package/{dist → ccw/dist}/types/session.d.ts +0 -0
- /package/{dist → ccw/dist}/types/session.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/session.js +0 -0
- /package/{dist → ccw/dist}/types/session.js.map +0 -0
- /package/{dist → ccw/dist}/types/tool.d.ts +0 -0
- /package/{dist → ccw/dist}/types/tool.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/tool.js +0 -0
- /package/{dist → ccw/dist}/types/tool.js.map +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.js +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.js.map +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.js +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.js.map +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.js +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.js.map +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.js +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.js.map +0 -0
- /package/{dist → ccw/dist}/utils/ui.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/ui.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/ui.js +0 -0
- /package/{dist → ccw/dist}/utils/ui.js.map +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db-shm +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db-wal +0 -0
- /package/{src → ccw/src}/cli.ts +0 -0
- /package/{src → ccw/src}/commands/cli.ts +0 -0
- /package/{src → ccw/src}/commands/core-memory.ts +0 -0
- /package/{src → ccw/src}/commands/hook.ts +0 -0
- /package/{src → ccw/src}/commands/install.ts +0 -0
- /package/{src → ccw/src}/commands/list.ts +0 -0
- /package/{src → ccw/src}/commands/memory.ts +0 -0
- /package/{src → ccw/src}/commands/serve.ts +0 -0
- /package/{src → ccw/src}/commands/session-path-resolver.ts +0 -0
- /package/{src → ccw/src}/commands/session.ts +0 -0
- /package/{src → ccw/src}/commands/stop.ts +0 -0
- /package/{src → ccw/src}/commands/tool.ts +0 -0
- /package/{src → ccw/src}/commands/uninstall.ts +0 -0
- /package/{src → ccw/src}/commands/upgrade.ts +0 -0
- /package/{src → ccw/src}/commands/view.ts +0 -0
- /package/{src → ccw/src}/config/storage-paths.ts +0 -0
- /package/{src → ccw/src}/core/cache-manager.ts +0 -0
- /package/{src → ccw/src}/core/claude-freshness.ts +0 -0
- /package/{src → ccw/src}/core/core-memory-store.ts +0 -0
- /package/{src → ccw/src}/core/dashboard-generator-patch.ts +0 -0
- /package/{src → ccw/src}/core/dashboard-generator.ts +0 -0
- /package/{src → ccw/src}/core/data-aggregator.ts +0 -0
- /package/{src → ccw/src}/core/history-importer.ts +0 -0
- /package/{src → ccw/src}/core/lite-scanner-complete.ts +0 -0
- /package/{src → ccw/src}/core/lite-scanner.ts +0 -0
- /package/{src → ccw/src}/core/manifest.ts +0 -0
- /package/{src → ccw/src}/core/memory-embedder-bridge.ts +0 -0
- /package/{src → ccw/src}/core/memory-store.ts +0 -0
- /package/{src → ccw/src}/core/routes/ccw-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/claude-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/cli-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/codexlens-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/core-memory-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/files-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/graph-routes.md +0 -0
- /package/{src → ccw/src}/core/routes/graph-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/help-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/hooks-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/mcp-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/mcp-routes.ts.backup +0 -0
- /package/{src → ccw/src}/core/routes/mcp-templates-db.ts +0 -0
- /package/{src → ccw/src}/core/routes/memory-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/rules-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/session-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/skills-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/status-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/system-routes.ts +0 -0
- /package/{src → ccw/src}/core/server.ts +0 -0
- /package/{src → ccw/src}/core/session-clustering-service.ts +0 -0
- /package/{src → ccw/src}/core/session-scanner.ts +0 -0
- /package/{src → ccw/src}/core/websocket.ts +0 -0
- /package/{src → ccw/src}/index.ts +0 -0
- /package/{src → ccw/src}/mcp-server/index.ts +0 -0
- /package/{src → ccw/src}/templates/assets/css/github-dark.min.css +0 -0
- /package/{src → ccw/src}/templates/assets/css/github.min.css +0 -0
- /package/{src → ccw/src}/templates/assets/js/cytoscape.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/d3.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/highlight.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/lucide.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/marked.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/tailwind.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/01-base.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/02-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/03-tasks.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/04-lite-tasks.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/05-context.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/06-cards.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/07-managers.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/08-review.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/09-explorer.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/10-cli-status.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/11-cli-history.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/12-cli-legacy.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/13-cli-ccw.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/14-cli-modals.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/15-cli-endpoints.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/16-cli-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/17-cli-conversation.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/18-cli-settings.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/19-cli-native-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/20-cli-taskqueue.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/21-cli-toolmgmt.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/22-cli-semantic.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/23-memory.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/24-prompt-history.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/25-skills-rules.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/26-claude-manager.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/27-graph-explorer.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/28-mcp-manager.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/29-help.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/30-core-memory.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/api.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_conflict_tab.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_exp_helpers.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_review_tab.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/carousel.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/cli-history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/cli-status.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/flowchart.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/global-notifications.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/hook-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/index-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/mcp-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/modals.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/navigation.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/notifications.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/sidebar.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/storage-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/tabs-context.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/tabs-other.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-core.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-renderers.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-queue-sidebar.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/theme.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/version-check.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/help-i18n.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/i18n.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/main.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/state.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/utils.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/claude-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/cli-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/codexlens-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/core-memory-clusters.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/core-memory.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/explorer.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/fix-session.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/graph-explorer.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/help.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/home.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/hook-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/lite-tasks.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.backup +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.new +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/memory.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/project-overview.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/prompt-history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/review-session.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/rules-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/session-detail.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/skills-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard.html +0 -0
- /package/{src → ccw/src}/templates/hooks-config-example.json +0 -0
- /package/{src → ccw/src}/templates/review-cycle-dashboard.html +0 -0
- /package/{src → ccw/src}/templates/workflow-dashboard.html +0 -0
- /package/{src → ccw/src}/tools/classify-folders.ts +0 -0
- /package/{src → ccw/src}/tools/cli-config-manager.ts +0 -0
- /package/{src → ccw/src}/tools/cli-executor.ts +0 -0
- /package/{src → ccw/src}/tools/cli-history-store.ts +0 -0
- /package/{src → ccw/src}/tools/codex-lens.ts +0 -0
- /package/{src → ccw/src}/tools/convert-tokens-to-css.ts +0 -0
- /package/{src → ccw/src}/tools/core-memory.ts +0 -0
- /package/{src → ccw/src}/tools/detect-changed-modules.ts +0 -0
- /package/{src → ccw/src}/tools/discover-design-files.ts +0 -0
- /package/{src → ccw/src}/tools/edit-file.ts +0 -0
- /package/{src → ccw/src}/tools/generate-module-docs.ts +0 -0
- /package/{src → ccw/src}/tools/get-modules-by-depth.ts +0 -0
- /package/{src → ccw/src}/tools/index.ts +0 -0
- /package/{src → ccw/src}/tools/native-session-discovery.ts +0 -0
- /package/{src → ccw/src}/tools/notifier.ts +0 -0
- /package/{src → ccw/src}/tools/read-file.ts +0 -0
- /package/{src → ccw/src}/tools/resume-strategy.ts +0 -0
- /package/{src → ccw/src}/tools/session-content-parser.ts +0 -0
- /package/{src → ccw/src}/tools/session-manager.ts +0 -0
- /package/{src → ccw/src}/tools/smart-context.ts +0 -0
- /package/{src → ccw/src}/tools/smart-search.ts +0 -0
- /package/{src → ccw/src}/tools/smart-search.ts.backup +0 -0
- /package/{src → ccw/src}/tools/storage-manager.ts +0 -0
- /package/{src → ccw/src}/tools/ui-generate-preview.js +0 -0
- /package/{src → ccw/src}/tools/ui-instantiate-prototypes.js +0 -0
- /package/{src → ccw/src}/tools/update-module-claude.js +0 -0
- /package/{src → ccw/src}/tools/write-file.ts +0 -0
- /package/{src → ccw/src}/types/config.ts +0 -0
- /package/{src → ccw/src}/types/index.ts +0 -0
- /package/{src → ccw/src}/types/session.ts +0 -0
- /package/{src → ccw/src}/types/tool.ts +0 -0
- /package/{src → ccw/src}/utils/browser-launcher.ts +0 -0
- /package/{src → ccw/src}/utils/file-utils.ts +0 -0
- /package/{src → ccw/src}/utils/path-resolver.ts +0 -0
- /package/{src → ccw/src}/utils/path-validator.ts +0 -0
- /package/{src → ccw/src}/utils/ui.ts +0 -0
|
@@ -0,0 +1,788 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: layout-extract
|
|
3
|
+
description: Extract structural layout information from reference images or text prompts using Claude analysis with variant generation or refinement mode
|
|
4
|
+
argument-hint: [--design-id <id>] [--session <id>] [--images "<glob>"] [--prompt "<desc>"] [--targets "<list>"] [--variants <count>] [--device-type <desktop|mobile|tablet|responsive>] [--interactive] [--refine]
|
|
5
|
+
allowed-tools: TodoWrite(*), Read(*), Write(*), Glob(*), Bash(*), AskUserQuestion(*), Task(ui-design-agent), mcp__exa__web_search_exa(*)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Layout Extraction Command
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Extract structural layout information from reference images or text prompts using AI analysis. Supports two modes:
|
|
13
|
+
1. **Exploration Mode** (default): Generate multiple contrasting layout variants
|
|
14
|
+
2. **Refinement Mode** (`--refine`): Refine a single existing layout through detailed adjustments
|
|
15
|
+
|
|
16
|
+
This command separates the "scaffolding" (HTML structure and CSS layout) from the "paint" (visual tokens handled by `style-extract`).
|
|
17
|
+
|
|
18
|
+
**Strategy**: AI-Driven Structural Analysis
|
|
19
|
+
|
|
20
|
+
- **Agent-Powered**: Uses `ui-design-agent` for deep structural analysis
|
|
21
|
+
- **Dual Mode**: Exploration (multiple contrasting variants) or Refinement (single layout fine-tuning)
|
|
22
|
+
- **Output**: `layout-templates.json` with DOM structure, component hierarchy, and CSS layout rules
|
|
23
|
+
- **Device-Aware**: Optimized for specific device types (desktop, mobile, tablet, responsive)
|
|
24
|
+
- **Token-Based**: CSS uses `var()` placeholders for spacing and breakpoints
|
|
25
|
+
|
|
26
|
+
## Execution Process
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Input Parsing:
|
|
30
|
+
├─ Parse flags: --design-id, --session, --images, --prompt, --targets, --variants, --device-type, --interactive, --refine
|
|
31
|
+
└─ Decision (mode detection):
|
|
32
|
+
├─ --refine flag → Refinement Mode (variants_count = 1)
|
|
33
|
+
└─ No --refine → Exploration Mode (variants_count = --variants OR 3)
|
|
34
|
+
|
|
35
|
+
Phase 0: Setup & Input Validation
|
|
36
|
+
├─ Step 1: Detect input, mode & targets
|
|
37
|
+
├─ Step 2: Load inputs & create directories
|
|
38
|
+
└─ Step 3: Memory check (skip if cached)
|
|
39
|
+
|
|
40
|
+
Phase 1: Layout Concept/Refinement Options Generation
|
|
41
|
+
├─ Step 0.5: Load existing layout (Refinement Mode only)
|
|
42
|
+
├─ Step 1: Generate options (Agent Task 1)
|
|
43
|
+
│ └─ Decision:
|
|
44
|
+
│ ├─ Exploration Mode → Generate contrasting layout concepts
|
|
45
|
+
│ └─ Refinement Mode → Generate refinement options
|
|
46
|
+
└─ Step 2: Verify options file created
|
|
47
|
+
|
|
48
|
+
Phase 1.5: User Confirmation (Optional)
|
|
49
|
+
└─ Decision (--interactive flag):
|
|
50
|
+
├─ --interactive present → Present options, capture selection
|
|
51
|
+
└─ No --interactive → Skip to Phase 2
|
|
52
|
+
|
|
53
|
+
Phase 2: Layout Template Generation
|
|
54
|
+
├─ Step 1: Load user selections or default to all
|
|
55
|
+
├─ Step 2: Launch parallel agent tasks
|
|
56
|
+
└─ Step 3: Verify output files
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Phase 0: Setup & Input Validation
|
|
60
|
+
|
|
61
|
+
### Step 1: Detect Input, Mode & Targets
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Detect input source
|
|
65
|
+
# Priority: --images → image | --prompt → text
|
|
66
|
+
|
|
67
|
+
# Detect refinement mode
|
|
68
|
+
refine_mode = --refine OR false
|
|
69
|
+
|
|
70
|
+
# Set variants count
|
|
71
|
+
# Refinement mode: Force variants_count = 1 (ignore user-provided --variants)
|
|
72
|
+
# Exploration mode: Use --variants or default to 3 (range: 1-5)
|
|
73
|
+
IF refine_mode:
|
|
74
|
+
variants_count = 1
|
|
75
|
+
REPORT: "🔧 Refinement mode enabled: Will generate 1 refined layout per target"
|
|
76
|
+
ELSE:
|
|
77
|
+
variants_count = --variants OR 3
|
|
78
|
+
VALIDATE: 1 <= variants_count <= 5
|
|
79
|
+
REPORT: "🔍 Exploration mode: Will generate {variants_count} contrasting layout concepts per target"
|
|
80
|
+
|
|
81
|
+
# Resolve targets
|
|
82
|
+
# Priority: --targets → prompt analysis → default ["page"]
|
|
83
|
+
IF --targets:
|
|
84
|
+
targets = split(--targets, ",")
|
|
85
|
+
ELSE IF --prompt:
|
|
86
|
+
# Extract targets from prompt using pattern matching
|
|
87
|
+
# Looks for keywords: "page names", target descriptors (login, dashboard, etc.)
|
|
88
|
+
# Returns lowercase, hyphenated strings (e.g., ["login", "dashboard"])
|
|
89
|
+
targets = extract_from_prompt(--prompt)
|
|
90
|
+
ELSE:
|
|
91
|
+
targets = ["page"]
|
|
92
|
+
|
|
93
|
+
# Resolve device type
|
|
94
|
+
device_type = --device-type OR "responsive" # desktop|mobile|tablet|responsive
|
|
95
|
+
|
|
96
|
+
# Determine base path with priority: --design-id > --session > auto-detect
|
|
97
|
+
if [ -n "$DESIGN_ID" ]; then
|
|
98
|
+
# Exact match by design ID
|
|
99
|
+
relative_path=$(find .workflow -name "${DESIGN_ID}" -type d -print -quit)
|
|
100
|
+
elif [ -n "$SESSION_ID" ]; then
|
|
101
|
+
# Latest in session
|
|
102
|
+
relative_path=$(find .workflow/active/WFS-$SESSION_ID -name "design-run-*" -type d -printf "%T@ %p\n" 2>/dev/null | sort -nr | head -1 | cut -d' ' -f2)
|
|
103
|
+
else
|
|
104
|
+
# Latest globally
|
|
105
|
+
relative_path=$(find .workflow -name "design-run-*" -type d -printf "%T@ %p\n" 2>/dev/null | sort -nr | head -1 | cut -d' ' -f2)
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
# Validate and convert to absolute path
|
|
109
|
+
if [ -z "$relative_path" ] || [ ! -d "$relative_path" ]; then
|
|
110
|
+
echo "❌ ERROR: Design run not found"
|
|
111
|
+
echo "💡 HINT: Run '/workflow:ui-design:list' to see available design runs"
|
|
112
|
+
exit 1
|
|
113
|
+
fi
|
|
114
|
+
|
|
115
|
+
base_path=$(cd "$relative_path" && pwd)
|
|
116
|
+
bash(echo "✓ Base path: $base_path")
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Step 2: Load Inputs & Create Directories
|
|
120
|
+
```bash
|
|
121
|
+
# For image mode
|
|
122
|
+
bash(ls {images_pattern}) # Expand glob pattern
|
|
123
|
+
Read({image_path}) # Load each image
|
|
124
|
+
|
|
125
|
+
# For text mode
|
|
126
|
+
# Validate --prompt is non-empty
|
|
127
|
+
|
|
128
|
+
# Create output directory
|
|
129
|
+
bash(mkdir -p {base_path}/layout-extraction)
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Step 3: Memory Check
|
|
133
|
+
```bash
|
|
134
|
+
# 1. Check if inputs cached in session memory
|
|
135
|
+
IF session_has_inputs: SKIP Step 2 file reading
|
|
136
|
+
|
|
137
|
+
# 2. Check if output already exists
|
|
138
|
+
bash(find {base_path}/layout-extraction -name "layout-*.json" -print -quit | grep -q . && echo "exists")
|
|
139
|
+
IF exists: SKIP to completion
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
**Phase 0 Output**: `input_mode`, `base_path`, `variants_count`, `targets[]`, `device_type`, loaded inputs
|
|
145
|
+
|
|
146
|
+
## Phase 1: Layout Concept or Refinement Options Generation
|
|
147
|
+
|
|
148
|
+
### Step 0.5: Load Existing Layout (Refinement Mode)
|
|
149
|
+
```bash
|
|
150
|
+
IF refine_mode:
|
|
151
|
+
# Load existing layout for refinement
|
|
152
|
+
existing_layouts = {}
|
|
153
|
+
FOR target IN targets:
|
|
154
|
+
layout_files = bash(find {base_path}/layout-extraction -name "layout-{target}-*.json" -print)
|
|
155
|
+
IF layout_files:
|
|
156
|
+
# Use first/latest layout file for this target
|
|
157
|
+
existing_layouts[target] = Read(first_layout_file)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Step 1: Generate Options (Agent Task 1 - Mode-Specific)
|
|
161
|
+
**Executor**: `Task(ui-design-agent)`
|
|
162
|
+
|
|
163
|
+
**Exploration Mode** (default): Generate contrasting layout concepts
|
|
164
|
+
**Refinement Mode** (`--refine`): Generate refinement options for existing layouts
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
// Conditional agent task based on refine_mode
|
|
168
|
+
IF NOT refine_mode:
|
|
169
|
+
// EXPLORATION MODE
|
|
170
|
+
Task(ui-design-agent): `
|
|
171
|
+
[LAYOUT_CONCEPT_GENERATION_TASK]
|
|
172
|
+
Generate {variants_count} structurally distinct layout concepts for each target
|
|
173
|
+
|
|
174
|
+
SESSION: {session_id} | MODE: explore | BASE_PATH: {base_path}
|
|
175
|
+
TARGETS: {targets} | DEVICE_TYPE: {device_type}
|
|
176
|
+
|
|
177
|
+
## Input Analysis
|
|
178
|
+
- Targets: {targets.join(", ")}
|
|
179
|
+
- Device type: {device_type}
|
|
180
|
+
- Visual references: {loaded_images if available}
|
|
181
|
+
${dom_structure_available ? "- DOM Structure: Read from .intermediates/layout-analysis/dom-structure-*.json" : ""}
|
|
182
|
+
|
|
183
|
+
## Analysis Rules
|
|
184
|
+
- For EACH target, generate {variants_count} structurally DIFFERENT layout concepts
|
|
185
|
+
- Concepts must differ in: grid structure, component arrangement, visual hierarchy
|
|
186
|
+
- Each concept should have distinct navigation pattern, content flow, and responsive behavior
|
|
187
|
+
|
|
188
|
+
## Generate for EACH Target
|
|
189
|
+
For target in {targets}:
|
|
190
|
+
For concept_index in 1..{variants_count}:
|
|
191
|
+
1. **Concept Definition**:
|
|
192
|
+
- concept_name (descriptive, e.g., "Classic Three-Column Holy Grail")
|
|
193
|
+
- design_philosophy (1-2 sentences explaining the structural approach)
|
|
194
|
+
- layout_pattern (e.g., "grid-3col", "flex-row", "single-column", "asymmetric-grid")
|
|
195
|
+
- key_components (array of main layout regions)
|
|
196
|
+
- structural_features (list of distinguishing characteristics)
|
|
197
|
+
|
|
198
|
+
2. **Wireframe Preview** (simple text representation):
|
|
199
|
+
- ascii_art (simple ASCII box diagram showing layout structure)
|
|
200
|
+
- Example:
|
|
201
|
+
┌─────────────────┐
|
|
202
|
+
│ HEADER │
|
|
203
|
+
├──┬─────────┬────┤
|
|
204
|
+
│ L│ MAIN │ R │
|
|
205
|
+
└──┴─────────┴────┘
|
|
206
|
+
|
|
207
|
+
## Output
|
|
208
|
+
Write single JSON file: {base_path}/.intermediates/layout-analysis/analysis-options.json
|
|
209
|
+
|
|
210
|
+
Use schema from INTERACTIVE-DATA-SPEC.md (Layout Extract: analysis-options.json)
|
|
211
|
+
|
|
212
|
+
CRITICAL: Use Write() tool immediately after generating complete JSON
|
|
213
|
+
`
|
|
214
|
+
ELSE:
|
|
215
|
+
// REFINEMENT MODE
|
|
216
|
+
Task(ui-design-agent): `
|
|
217
|
+
[LAYOUT_REFINEMENT_OPTIONS_TASK]
|
|
218
|
+
Generate refinement options for existing layout(s)
|
|
219
|
+
|
|
220
|
+
SESSION: {session_id} | MODE: refine | BASE_PATH: {base_path}
|
|
221
|
+
TARGETS: {targets} | DEVICE_TYPE: {device_type}
|
|
222
|
+
|
|
223
|
+
## Existing Layouts
|
|
224
|
+
${FOR target IN targets: "- {target}: {existing_layouts[target]}"}
|
|
225
|
+
|
|
226
|
+
## Input Guidance
|
|
227
|
+
- User prompt: {prompt_guidance if available}
|
|
228
|
+
- Visual references: {loaded_images if available}
|
|
229
|
+
|
|
230
|
+
## Refinement Categories
|
|
231
|
+
Generate 8-12 refinement options per target across these categories:
|
|
232
|
+
|
|
233
|
+
1. **Density Adjustments** (2-3 options per target):
|
|
234
|
+
- More compact: Tighter spacing, reduced whitespace
|
|
235
|
+
- More spacious: Increased margins, breathing room
|
|
236
|
+
- Balanced: Moderate adjustments
|
|
237
|
+
|
|
238
|
+
2. **Responsiveness Tuning** (2-3 options per target):
|
|
239
|
+
- Breakpoint behavior: Earlier/later column stacking
|
|
240
|
+
- Mobile layout: Different navigation/content priority
|
|
241
|
+
- Tablet optimization: Hybrid desktop/mobile approach
|
|
242
|
+
|
|
243
|
+
3. **Grid/Flex Specifics** (2-3 options per target):
|
|
244
|
+
- Column counts: 2-col ↔ 3-col ↔ 4-col
|
|
245
|
+
- Gap sizes: Tighter ↔ wider gutters
|
|
246
|
+
- Alignment: Different flex/grid justification
|
|
247
|
+
|
|
248
|
+
4. **Component Arrangement** (1-2 options per target):
|
|
249
|
+
- Navigation placement: Top ↔ side ↔ bottom
|
|
250
|
+
- Sidebar position: Left ↔ right ↔ none
|
|
251
|
+
- Content hierarchy: Different section ordering
|
|
252
|
+
|
|
253
|
+
## Output Format
|
|
254
|
+
Each option (per target):
|
|
255
|
+
- target: Which target this refinement applies to
|
|
256
|
+
- category: "density|responsiveness|grid|arrangement"
|
|
257
|
+
- option_id: unique identifier
|
|
258
|
+
- label: Short descriptive name (e.g., "More Compact Spacing")
|
|
259
|
+
- description: What changes (2-3 sentences)
|
|
260
|
+
- preview_changes: Key structural adjustments
|
|
261
|
+
- impact_scope: Which layout regions affected
|
|
262
|
+
|
|
263
|
+
## Output
|
|
264
|
+
Write single JSON file: {base_path}/.intermediates/layout-analysis/analysis-options.json
|
|
265
|
+
|
|
266
|
+
Use refinement schema:
|
|
267
|
+
{
|
|
268
|
+
"mode": "refinement",
|
|
269
|
+
"device_type": "{device_type}",
|
|
270
|
+
"refinement_options": {
|
|
271
|
+
"{target1}": [array of refinement options],
|
|
272
|
+
"{target2}": [array of refinement options]
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
CRITICAL: Use Write() tool immediately after generating complete JSON
|
|
277
|
+
`
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Step 2: Verify Options File Created
|
|
281
|
+
```bash
|
|
282
|
+
bash(test -f {base_path}/.intermediates/layout-analysis/analysis-options.json && echo "created")
|
|
283
|
+
|
|
284
|
+
# Quick validation
|
|
285
|
+
bash(cat {base_path}/.intermediates/layout-analysis/analysis-options.json | grep -q "layout_concepts" && echo "valid")
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Output**: `analysis-options.json` with layout concept options for all targets
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Phase 1.5: User Confirmation (Optional - Triggered by --interactive)
|
|
293
|
+
|
|
294
|
+
**Purpose**:
|
|
295
|
+
- **Exploration Mode**: Allow user to select preferred layout concept(s) per target
|
|
296
|
+
- **Refinement Mode**: Allow user to select refinement options to apply per target
|
|
297
|
+
|
|
298
|
+
**Trigger Condition**: Execute this phase ONLY if `--interactive` flag is present
|
|
299
|
+
|
|
300
|
+
### Step 1: Check Interactive Flag
|
|
301
|
+
```bash
|
|
302
|
+
# Skip this entire phase if --interactive flag is not present
|
|
303
|
+
IF NOT --interactive:
|
|
304
|
+
SKIP to Phase 2
|
|
305
|
+
IF refine_mode:
|
|
306
|
+
REPORT: "ℹ️ Non-interactive refinement mode: Will apply all suggested refinements"
|
|
307
|
+
ELSE:
|
|
308
|
+
REPORT: "ℹ️ Non-interactive mode: Will generate all {variants_count} variants per target"
|
|
309
|
+
|
|
310
|
+
# Interactive mode enabled
|
|
311
|
+
REPORT: "🎯 Interactive mode: User selection required for {targets.length} target(s)"
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Step 2: Load and Present Options (Mode-Specific)
|
|
315
|
+
```bash
|
|
316
|
+
# Read options file
|
|
317
|
+
options = Read({base_path}/.intermediates/layout-analysis/analysis-options.json)
|
|
318
|
+
|
|
319
|
+
# Branch based on mode
|
|
320
|
+
IF NOT refine_mode:
|
|
321
|
+
# EXPLORATION MODE
|
|
322
|
+
layout_concepts = options.layout_concepts
|
|
323
|
+
ELSE:
|
|
324
|
+
# REFINEMENT MODE
|
|
325
|
+
refinement_options = options.refinement_options
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### Step 2: Present Options to User (Per Target)
|
|
329
|
+
For each target, present layout concept options and capture selection:
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
📋 Layout Concept Options for Target: {target}
|
|
333
|
+
|
|
334
|
+
We've generated {variants_count} structurally different layout concepts for review.
|
|
335
|
+
Please select your preferred concept for this target.
|
|
336
|
+
|
|
337
|
+
{FOR each concept in layout_concepts[target]:
|
|
338
|
+
═══════════════════════════════════════════════════
|
|
339
|
+
Concept {concept.index}: {concept.concept_name}
|
|
340
|
+
═══════════════════════════════════════════════════
|
|
341
|
+
|
|
342
|
+
Philosophy: {concept.design_philosophy}
|
|
343
|
+
Pattern: {concept.layout_pattern}
|
|
344
|
+
|
|
345
|
+
Components:
|
|
346
|
+
{FOR each component in concept.key_components:
|
|
347
|
+
• {component}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
Features:
|
|
351
|
+
{FOR each feature in concept.structural_features:
|
|
352
|
+
• {feature}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
Wireframe:
|
|
356
|
+
{concept.wireframe_preview.ascii_art}
|
|
357
|
+
|
|
358
|
+
═══════════════════════════════════════════════════
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Step 3: Capture User Selection and Update Options File (Per Target)
|
|
363
|
+
|
|
364
|
+
**Interaction Strategy**: If total concepts > 4 OR any target has > 3 concepts, use batch text format:
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
【目标[N] - [target]】选择布局方案
|
|
368
|
+
[key]) Concept [index]: [concept_name]
|
|
369
|
+
[design_philosophy]
|
|
370
|
+
[key]) Concept [index]: [concept_name]
|
|
371
|
+
[design_philosophy]
|
|
372
|
+
...
|
|
373
|
+
请回答 (格式: 1a 2b 或 1a,b 2c 多选):
|
|
374
|
+
|
|
375
|
+
User input:
|
|
376
|
+
"[N][key] [N][key] ..." → Single selection per target
|
|
377
|
+
"[N][key1,key2] [N][key3] ..." → Multi-selection per target
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Otherwise, use `AskUserQuestion` below.
|
|
381
|
+
|
|
382
|
+
```javascript
|
|
383
|
+
// Use AskUserQuestion tool for each target (multi-select enabled)
|
|
384
|
+
FOR each target:
|
|
385
|
+
AskUserQuestion({
|
|
386
|
+
questions: [{
|
|
387
|
+
question: "Which layout concept(s) do you prefer for '{target}'?",
|
|
388
|
+
header: "Layout for " + target,
|
|
389
|
+
multiSelect: true, // Multi-selection enabled (default behavior)
|
|
390
|
+
options: [
|
|
391
|
+
{FOR each concept in layout_concepts[target]:
|
|
392
|
+
label: "Concept {concept.index}: {concept.concept_name}",
|
|
393
|
+
description: "{concept.design_philosophy}"
|
|
394
|
+
}
|
|
395
|
+
]
|
|
396
|
+
}]
|
|
397
|
+
})
|
|
398
|
+
|
|
399
|
+
// Parse user response (array of selections)
|
|
400
|
+
selected_options = user_answer
|
|
401
|
+
|
|
402
|
+
// Check for user cancellation
|
|
403
|
+
IF selected_options == null OR selected_options.length == 0:
|
|
404
|
+
REPORT: "⚠️ User canceled selection. Workflow terminated."
|
|
405
|
+
EXIT workflow
|
|
406
|
+
|
|
407
|
+
// Extract concept indices from array
|
|
408
|
+
selected_indices = []
|
|
409
|
+
FOR each selected_option_text IN selected_options:
|
|
410
|
+
match = selected_option_text.match(/Concept (\d+):/)
|
|
411
|
+
IF match:
|
|
412
|
+
selected_indices.push(parseInt(match[1]))
|
|
413
|
+
ELSE:
|
|
414
|
+
ERROR: "Invalid selection format. Expected 'Concept N: ...' format"
|
|
415
|
+
EXIT workflow
|
|
416
|
+
|
|
417
|
+
// Store selections for this target (array of indices)
|
|
418
|
+
selections[target] = {
|
|
419
|
+
selected_indices: selected_indices, // Array of selected indices
|
|
420
|
+
concept_names: selected_indices.map(i => layout_concepts[target][i-1].concept_name)
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
REPORT: "✅ Selected {selected_indices.length} layout(s) for {target}"
|
|
424
|
+
|
|
425
|
+
// Calculate total selections across all targets
|
|
426
|
+
total_selections = sum([len(selections[t].selected_indices) for t in targets])
|
|
427
|
+
|
|
428
|
+
// Update analysis-options.json with user selection (embedded in same file)
|
|
429
|
+
options_file = Read({base_path}/.intermediates/layout-analysis/analysis-options.json)
|
|
430
|
+
options_file.user_selection = {
|
|
431
|
+
"selected_at": "{current_timestamp}",
|
|
432
|
+
"selection_type": "per_target_multi",
|
|
433
|
+
"session_id": "{session_id}",
|
|
434
|
+
"total_selections": total_selections,
|
|
435
|
+
"selected_variants": selections // {target: {selected_indices: [...], concept_names: [...]}}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
// Write updated file back
|
|
439
|
+
Write({base_path}/.intermediates/layout-analysis/analysis-options.json, JSON.stringify(options_file, indent=2))
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Step 4: Confirmation Message
|
|
443
|
+
```
|
|
444
|
+
✅ Selections recorded! Total: {total_selections} layout(s)
|
|
445
|
+
|
|
446
|
+
{FOR each target, selection in selections:
|
|
447
|
+
• {target}: {selection.selected_indices.length} layout(s) selected
|
|
448
|
+
{FOR each index IN selection.selected_indices:
|
|
449
|
+
- Concept {index}: {layout_concepts[target][index-1].concept_name}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
Proceeding to generate {total_selections} detailed layout template(s)...
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
**Output**: `analysis-options.json` updated with embedded `user_selection` field
|
|
457
|
+
|
|
458
|
+
## Phase 2: Layout Template Generation (Agent Task 2)
|
|
459
|
+
|
|
460
|
+
**Executor**: `Task(ui-design-agent)` × `Total_Selected_Templates` in **parallel**
|
|
461
|
+
|
|
462
|
+
### Step 1: Load User Selections or Default to All
|
|
463
|
+
```bash
|
|
464
|
+
# Read analysis-options.json which may contain user_selection
|
|
465
|
+
options = Read({base_path}/.intermediates/layout-analysis/analysis-options.json)
|
|
466
|
+
layout_concepts = options.layout_concepts
|
|
467
|
+
|
|
468
|
+
# Check if user_selection field exists (interactive mode)
|
|
469
|
+
IF options.user_selection AND options.user_selection.selected_variants:
|
|
470
|
+
# Interactive mode: Use user-selected variants
|
|
471
|
+
selections_per_target = options.user_selection.selected_variants
|
|
472
|
+
total_selections = options.user_selection.total_selections
|
|
473
|
+
ELSE:
|
|
474
|
+
# Non-interactive mode: Generate ALL variants for ALL targets (default behavior)
|
|
475
|
+
selections_per_target = {}
|
|
476
|
+
total_selections = 0
|
|
477
|
+
|
|
478
|
+
FOR each target in targets:
|
|
479
|
+
selections_per_target[target] = {
|
|
480
|
+
"selected_indices": [1, 2, ..., variants_count], # All indices
|
|
481
|
+
"concept_names": [] # Will be filled from options
|
|
482
|
+
}
|
|
483
|
+
total_selections += variants_count
|
|
484
|
+
|
|
485
|
+
# Build task list for all selected concepts across all targets
|
|
486
|
+
task_list = []
|
|
487
|
+
FOR each target in targets:
|
|
488
|
+
selected_indices = selections_per_target[target].selected_indices # Array
|
|
489
|
+
concept_names = selections_per_target[target].concept_names # Array
|
|
490
|
+
|
|
491
|
+
FOR i in range(len(selected_indices)):
|
|
492
|
+
idx = selected_indices[i]
|
|
493
|
+
concept = layout_concepts[target][idx - 1] # 0-indexed array
|
|
494
|
+
variant_id = i + 1 # 1-based variant numbering
|
|
495
|
+
|
|
496
|
+
task_list.push({
|
|
497
|
+
target: target,
|
|
498
|
+
variant_id: variant_id,
|
|
499
|
+
concept: concept,
|
|
500
|
+
output_file: "{base_path}/layout-extraction/layout-{target}-{variant_id}.json"
|
|
501
|
+
})
|
|
502
|
+
|
|
503
|
+
total_tasks = task_list.length
|
|
504
|
+
REPORT: "Generating {total_tasks} layout templates across {targets.length} targets"
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
### Step 2: Launch Parallel Agent Tasks
|
|
508
|
+
Generate layout templates for ALL selected concepts in parallel:
|
|
509
|
+
```javascript
|
|
510
|
+
FOR each task in task_list:
|
|
511
|
+
Task(ui-design-agent): `
|
|
512
|
+
[LAYOUT_TEMPLATE_GENERATION_TASK #{task.variant_id} for {task.target}]
|
|
513
|
+
Generate detailed layout template based on user-selected concept.
|
|
514
|
+
Focus ONLY on structure and layout. DO NOT concern with visual style (colors, fonts, etc.).
|
|
515
|
+
|
|
516
|
+
SESSION: {session_id} | BASE_PATH: {base_path}
|
|
517
|
+
TARGET: {task.target} | VARIANT: {task.variant_id}
|
|
518
|
+
DEVICE_TYPE: {device_type}
|
|
519
|
+
|
|
520
|
+
USER SELECTION:
|
|
521
|
+
- Selected Concept: {task.concept.concept_name}
|
|
522
|
+
- Philosophy: {task.concept.design_philosophy}
|
|
523
|
+
- Pattern: {task.concept.layout_pattern}
|
|
524
|
+
- Key Components: {task.concept.key_components.join(", ")}
|
|
525
|
+
- Structural Features: {task.concept.structural_features.join(", ")}
|
|
526
|
+
|
|
527
|
+
## Input Analysis
|
|
528
|
+
- Target: {task.target}
|
|
529
|
+
- Device type: {device_type}
|
|
530
|
+
- Visual references: {loaded_images if available}
|
|
531
|
+
${dom_structure_available ? "- DOM Structure Data: Read from .intermediates/layout-analysis/dom-structure-{task.target}.json - USE THIS for accurate layout properties" : ""}
|
|
532
|
+
|
|
533
|
+
## Generation Rules
|
|
534
|
+
- Develop the user-selected layout concept into a detailed template
|
|
535
|
+
- Use the selected concept's key_components as foundation
|
|
536
|
+
- Apply the selected layout_pattern (grid-3col, flex-row, etc.)
|
|
537
|
+
- Honor the structural_features defined in the concept
|
|
538
|
+
- Expand the concept with complete DOM structure and CSS layout rules
|
|
539
|
+
${dom_structure_available ? `
|
|
540
|
+
- IMPORTANT: You have access to real DOM structure data with accurate flex/grid properties
|
|
541
|
+
- Use DOM data as primary source for layout properties
|
|
542
|
+
- Extract real flex/grid configurations (display, flexDirection, justifyContent, alignItems, gap)
|
|
543
|
+
- Use actual element bounds for responsive breakpoint decisions
|
|
544
|
+
- Preserve identified patterns from DOM structure
|
|
545
|
+
` : ""}
|
|
546
|
+
|
|
547
|
+
## Template Generation
|
|
548
|
+
|
|
549
|
+
1. **DOM Structure**:
|
|
550
|
+
- Semantic HTML5 tags: <header>, <nav>, <main>, <aside>, <section>, <footer>
|
|
551
|
+
- ARIA roles and accessibility attributes
|
|
552
|
+
- Use key_components from selected concept
|
|
553
|
+
${dom_structure_available ? "- Base on extracted DOM tree from .intermediates" : "- Infer from visual analysis"}
|
|
554
|
+
- Device-specific optimizations for {device_type}
|
|
555
|
+
|
|
556
|
+
2. **Component Hierarchy**:
|
|
557
|
+
- Array of main layout regions
|
|
558
|
+
- Derived from selected concept's key_components
|
|
559
|
+
|
|
560
|
+
3. **CSS Layout Rules**:
|
|
561
|
+
- Implement selected layout_pattern
|
|
562
|
+
${dom_structure_available ? "- Use real layout properties from DOM structure data" : "- Focus on Grid, Flexbox, position, alignment"}
|
|
563
|
+
- Use CSS Custom Properties: var(--spacing-*), var(--breakpoint-*)
|
|
564
|
+
- Device-specific styles (mobile-first @media for responsive)
|
|
565
|
+
- NO colors, NO fonts, NO shadows - layout structure only
|
|
566
|
+
|
|
567
|
+
## Output Files
|
|
568
|
+
|
|
569
|
+
Generate 2 files:
|
|
570
|
+
|
|
571
|
+
1. **layout-templates.json** - {task.output_file}
|
|
572
|
+
Write single-template JSON object with:
|
|
573
|
+
- target: "{task.target}"
|
|
574
|
+
- variant_id: "layout-{task.variant_id}"
|
|
575
|
+
- source_image_path (string): Reference image path
|
|
576
|
+
- device_type: "{device_type}"
|
|
577
|
+
- design_philosophy (string from selected concept)
|
|
578
|
+
- dom_structure (JSON object)
|
|
579
|
+
- component_hierarchy (array of strings)
|
|
580
|
+
- css_layout_rules (string)
|
|
581
|
+
|
|
582
|
+
## Critical Requirements
|
|
583
|
+
- ✅ Use Write() tool to generate JSON file
|
|
584
|
+
- ✅ Single template for {task.target} variant {task.variant_id}
|
|
585
|
+
- ✅ Structure only, no visual styling
|
|
586
|
+
- ✅ Token-based CSS (var())
|
|
587
|
+
- ✅ Can use Exa MCP to research modern layout patterns and obtain code examples (Explore/Text mode)
|
|
588
|
+
- ✅ Maintain consistency with selected concept
|
|
589
|
+
`
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
**Output**: Agent generates multiple layout template files (one per selected concept)
|
|
593
|
+
|
|
594
|
+
### Step 3: Verify Output Files
|
|
595
|
+
```bash
|
|
596
|
+
# Count generated files
|
|
597
|
+
expected_count = total_tasks
|
|
598
|
+
actual_count = bash(ls {base_path}/layout-extraction/layout-*.json | wc -l)
|
|
599
|
+
|
|
600
|
+
# Verify all files were created
|
|
601
|
+
IF actual_count == expected_count:
|
|
602
|
+
REPORT: "✓ All {expected_count} layout template files generated"
|
|
603
|
+
ELSE:
|
|
604
|
+
ERROR: "Expected {expected_count} files, found {actual_count}"
|
|
605
|
+
|
|
606
|
+
# Verify file structure (sample check)
|
|
607
|
+
bash(cat {base_path}/layout-extraction/layout-{first_target}-1.json | grep -q "variant_id" && echo "valid structure")
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
**Output**: All layout template files created and verified (one file per selected concept)
|
|
611
|
+
|
|
612
|
+
## Completion
|
|
613
|
+
|
|
614
|
+
### Todo Update
|
|
615
|
+
```javascript
|
|
616
|
+
TodoWrite({todos: [
|
|
617
|
+
{content: "Setup and input validation", status: "completed", activeForm: "Validating inputs"},
|
|
618
|
+
{content: "Layout concept analysis (agent)", status: "completed", activeForm: "Analyzing layout patterns"},
|
|
619
|
+
{content: "User selection confirmation", status: "completed", activeForm: "Confirming selections"},
|
|
620
|
+
{content: "Generate layout templates (parallel)", status: "completed", activeForm: "Generating templates"},
|
|
621
|
+
{content: "Verify output files", status: "completed", activeForm: "Verifying files"}
|
|
622
|
+
]});
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### Output Message
|
|
626
|
+
```
|
|
627
|
+
✅ Layout extraction complete!
|
|
628
|
+
|
|
629
|
+
Configuration:
|
|
630
|
+
- Session: {session_id}
|
|
631
|
+
- Device Type: {device_type}
|
|
632
|
+
- Targets: {targets.join(", ")}
|
|
633
|
+
- Total Templates: {total_tasks} ({targets.length} targets with multi-selection)
|
|
634
|
+
|
|
635
|
+
User Selections:
|
|
636
|
+
{FOR each target in targets:
|
|
637
|
+
- {target}: {selections_per_target[target].concept_names.join(", ")} ({selections_per_target[target].selected_indices.length} variants)
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
Generated Templates:
|
|
641
|
+
{base_path}/layout-extraction/
|
|
642
|
+
{FOR each target in targets:
|
|
643
|
+
{FOR each variant_id in range(1, selections_per_target[target].selected_indices.length + 1):
|
|
644
|
+
└── layout-{target}-{variant_id}.json
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
Intermediate Files:
|
|
649
|
+
- {base_path}/.intermediates/layout-analysis/
|
|
650
|
+
└── analysis-options.json (concept proposals + user selections embedded)
|
|
651
|
+
|
|
652
|
+
Next: /workflow:ui-design:generate will combine these structural templates with design systems to produce final prototypes.
|
|
653
|
+
```
|
|
654
|
+
|
|
655
|
+
## Simple Bash Commands
|
|
656
|
+
|
|
657
|
+
### Path Operations
|
|
658
|
+
```bash
|
|
659
|
+
# Find design directory
|
|
660
|
+
bash(find .workflow -type d -name "design-run-*" | head -1)
|
|
661
|
+
|
|
662
|
+
# Create output directories
|
|
663
|
+
bash(mkdir -p {base_path}/layout-extraction)
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
### Validation Commands
|
|
667
|
+
```bash
|
|
668
|
+
# Check if already extracted
|
|
669
|
+
bash(find {base_path}/layout-extraction -name "layout-*.json" -print -quit | grep -q . && echo "exists")
|
|
670
|
+
|
|
671
|
+
# Count generated files
|
|
672
|
+
bash(ls {base_path}/layout-extraction/layout-*.json | wc -l)
|
|
673
|
+
|
|
674
|
+
# Validate JSON structure (sample check)
|
|
675
|
+
bash(cat {base_path}/layout-extraction/layout-{first_target}-1.json | grep -q "variant_id" && echo "valid")
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
### File Operations
|
|
679
|
+
```bash
|
|
680
|
+
# Load image references
|
|
681
|
+
bash(ls {images_pattern})
|
|
682
|
+
Read({image_path})
|
|
683
|
+
|
|
684
|
+
# Write layout templates
|
|
685
|
+
bash(echo '{json}' > {base_path}/layout-extraction/layout-templates.json)
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
## Output Structure
|
|
689
|
+
|
|
690
|
+
```
|
|
691
|
+
{base_path}/
|
|
692
|
+
├── .intermediates/ # Intermediate analysis files
|
|
693
|
+
│ └── layout-analysis/
|
|
694
|
+
│ ├── analysis-options.json # Generated layout concepts + user selections (embedded)
|
|
695
|
+
│ └── dom-structure-{target}.json # Extracted DOM structure (URL mode only)
|
|
696
|
+
└── layout-extraction/ # Final layout templates
|
|
697
|
+
└── layout-{target}-{variant}.json # Structural layout template JSON
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
## Layout Template File Format
|
|
701
|
+
|
|
702
|
+
Each `layout-{target}-{variant}.json` file contains a single template:
|
|
703
|
+
|
|
704
|
+
```json
|
|
705
|
+
{
|
|
706
|
+
"extraction_metadata": {
|
|
707
|
+
"session_id": "...",
|
|
708
|
+
"input_mode": "image|url|prompt|hybrid",
|
|
709
|
+
"device_type": "desktop|mobile|tablet|responsive",
|
|
710
|
+
"timestamp": "...",
|
|
711
|
+
"target": "home",
|
|
712
|
+
"variant_id": "layout-1"
|
|
713
|
+
},
|
|
714
|
+
"template":
|
|
715
|
+
{
|
|
716
|
+
"target": "home",
|
|
717
|
+
"variant_id": "layout-1",
|
|
718
|
+
"source_image_path": "{base_path}/screenshots/home.png",
|
|
719
|
+
"device_type": "responsive",
|
|
720
|
+
"design_philosophy": "Responsive 3-column holy grail layout with fixed header and footer",
|
|
721
|
+
"dom_structure": {
|
|
722
|
+
"tag": "body",
|
|
723
|
+
"children": [
|
|
724
|
+
{
|
|
725
|
+
"tag": "header",
|
|
726
|
+
"attributes": {"class": "layout-header"},
|
|
727
|
+
"children": [{"tag": "nav"}]
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"tag": "div",
|
|
731
|
+
"attributes": {"class": "layout-main-wrapper"},
|
|
732
|
+
"children": [
|
|
733
|
+
{"tag": "main", "attributes": {"class": "layout-main-content"}},
|
|
734
|
+
{"tag": "aside", "attributes": {"class": "layout-sidebar-left"}},
|
|
735
|
+
{"tag": "aside", "attributes": {"class": "layout-sidebar-right"}}
|
|
736
|
+
]
|
|
737
|
+
},
|
|
738
|
+
{"tag": "footer", "attributes": {"class": "layout-footer"}}
|
|
739
|
+
]
|
|
740
|
+
},
|
|
741
|
+
"component_hierarchy": [
|
|
742
|
+
"header",
|
|
743
|
+
"main-content",
|
|
744
|
+
"sidebar-left",
|
|
745
|
+
"sidebar-right",
|
|
746
|
+
"footer"
|
|
747
|
+
],
|
|
748
|
+
"css_layout_rules": ".layout-main-wrapper { display: grid; grid-template-columns: 1fr 3fr 1fr; gap: var(--spacing-6); } @media (max-width: var(--breakpoint-md)) { .layout-main-wrapper { grid-template-columns: 1fr; } }"
|
|
749
|
+
}
|
|
750
|
+
]
|
|
751
|
+
}
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
**Requirements**: Token-based CSS (var()), semantic HTML5, device-specific structure, accessibility attributes
|
|
755
|
+
|
|
756
|
+
## Error Handling
|
|
757
|
+
|
|
758
|
+
### Common Errors
|
|
759
|
+
```
|
|
760
|
+
ERROR: No inputs provided
|
|
761
|
+
→ Provide --images, --urls, or --prompt
|
|
762
|
+
|
|
763
|
+
ERROR: Invalid target name
|
|
764
|
+
→ Use lowercase, alphanumeric, hyphens only
|
|
765
|
+
|
|
766
|
+
ERROR: Agent task failed
|
|
767
|
+
→ Check agent output, retry with simplified prompt
|
|
768
|
+
|
|
769
|
+
ERROR: MCP search failed
|
|
770
|
+
→ Check network connection, retry command
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
### Recovery Strategies
|
|
774
|
+
- **Partial success**: Keep successfully extracted templates
|
|
775
|
+
- **Invalid JSON**: Retry with stricter format requirements
|
|
776
|
+
- **Missing inspiration**: Works without (less informed exploration)
|
|
777
|
+
|
|
778
|
+
## Key Features
|
|
779
|
+
|
|
780
|
+
- **Separation of Concerns** - Decouples layout (structure) from style (visuals)
|
|
781
|
+
- **Multi-Selection Workflow** - Generate N concepts → User selects multiple → Parallel template generation
|
|
782
|
+
- **Structural Exploration** - Enables A/B testing of different layouts through multi-selection
|
|
783
|
+
- **Token-Based Layout** - CSS uses `var()` placeholders for instant design system adaptation
|
|
784
|
+
- **Device-Specific** - Tailored structures for different screen sizes
|
|
785
|
+
- **Foundation for Assembly** - Provides structural blueprint for prototype generation
|
|
786
|
+
- **Agent-Powered** - Deep structural analysis with AI
|
|
787
|
+
|
|
788
|
+
|