gitextract_c7gyf62e/ ├── .bmad-core/ │ ├── agent-teams/ │ │ ├── team-all.yaml │ │ ├── team-fullstack.yaml │ │ ├── team-ide-minimal.yaml │ │ └── team-no-ui.yaml │ ├── agents/ │ │ ├── analyst.md │ │ ├── architect.md │ │ ├── bmad-master.md │ │ ├── bmad-orchestrator.md │ │ ├── dev.md │ │ ├── pm.md │ │ ├── po.md │ │ ├── qa.md │ │ ├── sm.md │ │ └── ux-expert.md │ ├── checklists/ │ │ ├── architect-checklist.md │ │ ├── change-checklist.md │ │ ├── pm-checklist.md │ │ ├── po-master-checklist.md │ │ ├── story-dod-checklist.md │ │ └── story-draft-checklist.md │ ├── core-config.yaml │ ├── data/ │ │ ├── bmad-kb.md │ │ ├── brainstorming-techniques.md │ │ ├── elicitation-methods.md │ │ ├── technical-preferences.md │ │ ├── test-levels-framework.md │ │ └── test-priorities-matrix.md │ ├── enhanced-ide-development-workflow.md │ ├── install-manifest.yaml │ ├── tasks/ │ │ ├── advanced-elicitation.md │ │ ├── apply-qa-fixes.md │ │ ├── brownfield-create-epic.md │ │ ├── brownfield-create-story.md │ │ ├── correct-course.md │ │ ├── create-brownfield-story.md │ │ ├── create-deep-research-prompt.md │ │ ├── create-doc.md │ │ ├── create-next-story.md │ │ ├── document-project.md │ │ ├── execute-checklist.md │ │ ├── facilitate-brainstorming-session.md │ │ ├── generate-ai-frontend-prompt.md │ │ ├── index-docs.md │ │ ├── kb-mode-interaction.md │ │ ├── nfr-assess.md │ │ ├── qa-gate.md │ │ ├── review-story.md │ │ ├── risk-profile.md │ │ ├── shard-doc.md │ │ ├── test-design.md │ │ ├── trace-requirements.md │ │ └── validate-next-story.md │ ├── templates/ │ │ ├── architecture-tmpl.yaml │ │ ├── brainstorming-output-tmpl.yaml │ │ ├── brownfield-architecture-tmpl.yaml │ │ ├── brownfield-prd-tmpl.yaml │ │ ├── competitor-analysis-tmpl.yaml │ │ ├── front-end-architecture-tmpl.yaml │ │ ├── front-end-spec-tmpl.yaml │ │ ├── fullstack-architecture-tmpl.yaml │ │ ├── market-research-tmpl.yaml │ │ ├── prd-tmpl.yaml │ │ ├── project-brief-tmpl.yaml │ │ ├── qa-gate-tmpl.yaml │ │ └── story-tmpl.yaml │ ├── user-guide.md │ ├── utils/ │ │ ├── bmad-doc-template.md │ │ └── workflow-management.md │ ├── workflows/ │ │ ├── brownfield-fullstack.yaml │ │ ├── brownfield-service.yaml │ │ ├── brownfield-ui.yaml │ │ ├── greenfield-fullstack.yaml │ │ ├── greenfield-service.yaml │ │ └── greenfield-ui.yaml │ └── working-in-the-brownfield.md ├── .cursor/ │ └── rules/ │ ├── bug修复专家.mdc │ ├── code_review.mdc │ ├── pr_review.mdc │ └── 高级项目审计师.mdc ├── .cursorrules ├── .dockerignore ├── .gitattributes ├── .github/ │ └── workflows/ │ ├── docker.yml │ ├── release.yml │ └── test.yml ├── .gitignore ├── .husky/ │ ├── pre-commit │ └── pre-commit.ps1 ├── .npmrc ├── .pnpmrc ├── AGENTS.md ├── CHANGELOG.md ├── CLAUDE.local.md ├── Dockerfile ├── LICENSE ├── README.md ├── README_EN.md ├── api/ │ └── auth.js ├── dev.md ├── docker/ │ ├── generate-auth.sh │ ├── generate-config.sh │ ├── nginx.conf │ ├── start-services.sh │ └── supervisord.conf ├── docker-compose.dev.yml ├── docker-compose.yml ├── docs/ │ ├── README.md │ ├── architecture/ │ │ ├── function-mode.md │ │ ├── image-model-edit-unified-design.md │ │ ├── image-model-management-architecture.md │ │ ├── import-export-interface-design.md │ │ ├── llm-refactor.md │ │ ├── preference-service-optimization.md │ │ ├── storage-key-architecture.md │ │ ├── storage-refactoring-summary.md │ │ └── test-area-version-model-selection.md │ ├── archives/ │ │ ├── 007-electron-api-refactor-rollback.md │ │ ├── 101-singleton-refactor/ │ │ │ ├── README.md │ │ │ └── plan.md │ │ ├── 102-web-architecture-refactor/ │ │ │ ├── README.md │ │ │ ├── composables-plan.md │ │ │ ├── composables-refactor.md │ │ │ ├── experience.md │ │ │ └── plan.md │ │ ├── 103-desktop-architecture/ │ │ │ ├── README.md │ │ │ ├── desktop-implementation.md │ │ │ ├── ipc-refactor-plan.md │ │ │ └── refactor-plan.md │ │ ├── 104-test-panel-refactor/ │ │ │ ├── README.md │ │ │ └── guide.md │ │ ├── 105-output-display-v2/ │ │ │ ├── README.md │ │ │ ├── design.md │ │ │ └── implementation.md │ │ ├── 106-template-management/ │ │ │ ├── README.md │ │ │ ├── event-propagation-fix.md │ │ │ ├── modal-experience.md │ │ │ └── troubleshooting.md │ │ ├── 107-component-standardization/ │ │ │ └── README.md │ │ ├── 108-layout-system/ │ │ │ ├── README.md │ │ │ └── experience.md │ │ ├── 109-theme-system/ │ │ │ ├── README.md │ │ │ └── experience.md │ │ ├── 110-desktop-indexeddb-fix/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ └── fix-details.md │ │ ├── 111-electron-preference-architecture/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 112-desktop-ipc-fixes/ │ │ │ ├── README.md │ │ │ ├── ipc-architecture-analysis.md │ │ │ └── language-switch-fix.md │ │ ├── 113-full-service-refactoring/ │ │ │ ├── refactoring-notes.md │ │ │ └── refactoring-plan.md │ │ ├── 114-desktop-file-storage/ │ │ │ └── README.md │ │ ├── 115-ipc-serialization-fixes/ │ │ │ ├── README.md │ │ │ ├── architecture-evolution.md │ │ │ └── proxy-layer-serialization.md │ │ ├── 116-desktop-packaging-optimization/ │ │ │ └── README.md │ │ ├── 117-import-export-architecture-refactor/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 117-pinia-refactoring/ │ │ │ ├── README.md │ │ │ ├── code-review-claude.md │ │ │ ├── code-review-combined.md │ │ │ ├── final-report.md │ │ │ ├── fix-plan.md │ │ │ └── fix-summary.md │ │ ├── 118-desktop-auto-update-system/ │ │ │ ├── README.md │ │ │ ├── design.md │ │ │ ├── experience.md │ │ │ ├── fixes-record.md │ │ │ └── implementation.md │ │ ├── 119-csp-safe-template-processing/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ ├── implementation.md │ │ │ └── technical-details.md │ │ ├── 120-mcp-server-module/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 121-context-editor-refactor/ │ │ │ ├── README.md │ │ │ ├── design.md │ │ │ ├── experience.md │ │ │ ├── implementation.md │ │ │ ├── requirements.md │ │ │ ├── tasks.md │ │ │ └── testing-report.md │ │ ├── 121-multi-custom-models-support/ │ │ │ ├── README.md │ │ │ ├── code-quality-fixes.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 122-docker-api-proxy/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 122-naive-ui-migration/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ ├── functional-design.md │ │ │ ├── implementation.md │ │ │ ├── project-summary.md │ │ │ ├── requirements-analysis.md │ │ │ ├── technical-selection.md │ │ │ └── testing-analysis.md │ │ ├── 123-advanced-features-implementation/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 124-advanced-mode-toggle-migration/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 124-navigation-optimization/ │ │ │ ├── README.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 125-test-area-refactor/ │ │ │ ├── README.md │ │ │ ├── test-area-performance-report.md │ │ │ ├── test-area-refactor-final-summary.md │ │ │ ├── test-area-refactor-test-summary.md │ │ │ ├── test-area-style-guide.md │ │ │ ├── test-area.md │ │ │ └── test-failures-backlog.md │ │ ├── 126-submode-persistence/ │ │ │ ├── README.md │ │ │ ├── design.md │ │ │ ├── experience.md │ │ │ └── implementation.md │ │ ├── 127-multi-turn-dialogue-mode-optimization/ │ │ │ ├── README.md │ │ │ └── design.md │ │ ├── 128-context-ui-and-variable-system-refactor/ │ │ │ ├── README.md │ │ │ ├── analysis.md │ │ │ ├── design.md │ │ │ ├── implementation-codemirror.md │ │ │ └── plan.md │ │ ├── 129-session-store-single-source-refactor/ │ │ │ ├── README.md │ │ │ ├── architecture-comparison.md │ │ │ ├── bug-fix-testresults-display.md │ │ │ └── test-plan.md │ │ ├── INDEX.md │ │ ├── README.md │ │ └── mcp-template-parameter-improvement.md │ ├── deployment/ │ │ └── docker-mcp-integration.md │ ├── developer/ │ │ ├── README.md │ │ ├── desktop-developer-guide.md │ │ ├── electron-ipc-best-practices.md │ │ ├── general-experience.md │ │ ├── llm-params-guide.md │ │ ├── project-structure.md │ │ ├── prompt-garden-integration.md │ │ ├── technical-analysis.md │ │ ├── technical-development-guide.md │ │ ├── todo.md │ │ └── troubleshooting/ │ │ ├── README.md │ │ └── general-checklist.md │ ├── development/ │ │ └── mcp-server-progress.md │ ├── guides/ │ │ └── electron-api-best-practices.md │ ├── image-mode.md │ ├── migration/ │ │ └── test-area-refactor-migration.md │ ├── project/ │ │ ├── README.md │ │ ├── prd.md │ │ ├── project-status.md │ │ └── version-sync.md │ ├── testing/ │ │ ├── README.md │ │ ├── ai-automation/ │ │ │ ├── MIGRATION-SUMMARY.md │ │ │ ├── README.md │ │ │ ├── bug-hunting/ │ │ │ │ └── ui-glitches.md │ │ │ ├── electron-mcp-guide.md │ │ │ ├── reports/ │ │ │ │ └── test-results-2025-01-07.md │ │ │ ├── storage-key-consistency/ │ │ │ │ ├── README.md │ │ │ │ ├── execution-summary.md │ │ │ │ ├── test-001-data-export-completeness.md │ │ │ │ ├── test-002-legacy-data-import.md │ │ │ │ └── test-003-code-consistency-check.md │ │ │ └── test-scenarios/ │ │ │ ├── edge-cases/ │ │ │ │ ├── concurrent-operations.md │ │ │ │ └── input-validation.md │ │ │ ├── error-handling/ │ │ │ │ └── network-failures.md │ │ │ └── normal-flow/ │ │ │ ├── 01-basic-setup.md │ │ │ ├── 02-model-management.md │ │ │ ├── 02b-model-add-and-test.md │ │ │ ├── 03-template-management.md │ │ │ ├── 04-prompt-optimization.md │ │ │ ├── 04b-user-prompt-optimization.md │ │ │ ├── 05-history-management.md │ │ │ ├── 06-data-management.md │ │ │ ├── 07-ui-interaction-features.md │ │ │ ├── 08-context-persistence.md │ │ │ ├── 09-context-variables-and-preview.md │ │ │ ├── 10-tools-management-and-advanced-context.md │ │ │ ├── 11-context-import-export.md │ │ │ ├── 12-advanced-context-optimization-and-testing.md │ │ │ └── README.md │ │ ├── e2e-selector-strategy.md │ │ ├── test-commands.md │ │ └── vcr-usage-guide.md │ ├── user/ │ │ ├── README.md │ │ ├── context-mode.md │ │ ├── context-mode_en.md │ │ ├── deployment/ │ │ │ ├── vercel.md │ │ │ └── vercel_en.md │ │ ├── desktop-user-manual.md │ │ ├── favorites.md │ │ ├── mcp-server.md │ │ ├── mcp-server_en.md │ │ ├── multi-custom-models.md │ │ ├── multi-custom-models_en.md │ │ └── quick-start.md │ ├── workspace/ │ │ ├── PLAN-session-persistence-fix.md │ │ ├── architecture-migration-analysis.md │ │ ├── architecture-migration-guide.md │ │ ├── compare-evaluation-analysis/ │ │ │ ├── README.md │ │ │ ├── current-spec.md │ │ │ ├── history/ │ │ │ │ ├── README.md │ │ │ │ ├── current-analysis-feature-map.md │ │ │ │ ├── evaluation-prompt-rubric-spec.md │ │ │ │ ├── evaluation-redesign-overview.md │ │ │ │ ├── findings.md │ │ │ │ ├── input-minimization-spec.md │ │ │ │ ├── overall-reframing.md │ │ │ │ ├── progress.md │ │ │ │ └── task_plan.md │ │ │ ├── manual-acceptance.md │ │ │ └── real-api-samples/ │ │ │ ├── README.md │ │ │ ├── basic-system-compare/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-system-compare-focus/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-system-prompt-only-minimal/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-system-result/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-user-compare/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-user-compare-focus/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-user-prompt-iterate-focus/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-user-prompt-only/ │ │ │ │ ├── provider-requests.json │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-user-result/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── basic-user-result-focus/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── pro-multi-compare/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── pro-multi-prompt-only-system-selected/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── pro-multi-prompt-only-user-selected/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── pro-multi-result/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── pro-variable-compare/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── pro-variable-compare-focus/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── pro-variable-prompt-only-minimal/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ ├── pro-variable-result/ │ │ │ │ ├── rendered-messages.json │ │ │ │ ├── rendered-messages.md │ │ │ │ ├── request.json │ │ │ │ ├── request.md │ │ │ │ ├── response.json │ │ │ │ ├── response.md │ │ │ │ └── response.raw.txt │ │ │ └── review-summary.md │ │ ├── standardization-optimization-todolist.md │ │ ├── test-area-version-model-selection/ │ │ │ ├── README.md │ │ │ ├── findings.md │ │ │ ├── progress.md │ │ │ └── task_plan.md │ │ ├── testing-redesign/ │ │ │ ├── architecture.md │ │ │ ├── findings.md │ │ │ ├── phase4-补充计划.md │ │ │ ├── progress.md │ │ │ └── task_plan.md │ │ └── 提示词优化.txt │ ├── workspace-template/ │ │ ├── experience-template.md │ │ ├── scratchpad-template.md │ │ └── todo-template.md │ └── workspace-trpc/ │ ├── experience.md │ ├── favorites-feature-audit.md │ ├── scratchpad.md │ └── todo.md ├── env.local.example ├── images/ │ └── logo/ │ └── electron-icons.md ├── middleware.js ├── mkdocs/ │ ├── .gitignore │ ├── README.md │ ├── docs/ │ │ ├── assets/ │ │ │ ├── images/ │ │ │ │ └── .keep │ │ │ └── videos/ │ │ │ └── .keep │ │ ├── en/ │ │ │ ├── advanced/ │ │ │ │ ├── context.md │ │ │ │ ├── tools.md │ │ │ │ └── variables.md │ │ │ ├── basic/ │ │ │ │ ├── data.md │ │ │ │ ├── history.md │ │ │ │ ├── models.md │ │ │ │ ├── optimization.md │ │ │ │ └── templates.md │ │ │ ├── deployment/ │ │ │ │ ├── desktop.md │ │ │ │ ├── docker-advanced.md │ │ │ │ ├── docker-basic.md │ │ │ │ ├── docker-troubleshooting.md │ │ │ │ ├── extension.md │ │ │ │ └── web.md │ │ │ ├── examples/ │ │ │ │ ├── business-communication.md │ │ │ │ ├── creative-writing.md │ │ │ │ └── educational-training.md │ │ │ ├── guide/ │ │ │ │ └── media.md │ │ │ ├── help/ │ │ │ │ ├── common-questions.md │ │ │ │ ├── connection-issues.md │ │ │ │ ├── support.md │ │ │ │ └── troubleshooting.md │ │ │ ├── index.md │ │ │ └── user/ │ │ │ ├── mcp-server.md │ │ │ └── quick-start.md │ │ └── zh/ │ │ ├── advanced/ │ │ │ ├── context.md │ │ │ ├── tools.md │ │ │ └── variables.md │ │ ├── basic/ │ │ │ ├── data.md │ │ │ ├── history.md │ │ │ ├── models.md │ │ │ ├── optimization.md │ │ │ ├── system-optimization.md │ │ │ ├── templates.md │ │ │ └── user-optimization.md │ │ ├── deployment/ │ │ │ ├── desktop.md │ │ │ ├── docker-advanced.md │ │ │ ├── docker-basic.md │ │ │ ├── docker-troubleshooting.md │ │ │ ├── extension.md │ │ │ └── web.md │ │ ├── examples/ │ │ │ ├── business-communication.md │ │ │ ├── creative-writing.md │ │ │ ├── educational-training.md │ │ │ ├── system-prompt-examples.md │ │ │ └── user-prompt-examples.md │ │ ├── guide/ │ │ │ └── media.md │ │ ├── help/ │ │ │ ├── common-questions.md │ │ │ ├── connection-issues.md │ │ │ ├── support.md │ │ │ └── troubleshooting.md │ │ ├── index.md │ │ └── user/ │ │ ├── mcp-server.md │ │ └── quick-start.md │ ├── mkdocs-dev.yml │ ├── mkdocs-zh.yml │ ├── mkdocs.yml │ ├── requirements.txt │ └── vercel.json ├── package.json ├── packages/ │ ├── core/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── constants/ │ │ │ │ ├── error-codes.ts │ │ │ │ └── storage-keys.ts │ │ │ ├── index.ts │ │ │ ├── interfaces/ │ │ │ │ └── import-export.ts │ │ │ ├── services/ │ │ │ │ ├── adapters/ │ │ │ │ │ ├── abstract-registry.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── compare/ │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── context/ │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── repo.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── data/ │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── evaluation/ │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── favorite/ │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ ├── type-converter.ts │ │ │ │ │ ├── type-mapper.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── history/ │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── image/ │ │ │ │ │ ├── adapters/ │ │ │ │ │ │ ├── abstract-adapter.ts │ │ │ │ │ │ ├── dashscope.ts │ │ │ │ │ │ ├── gemini.ts │ │ │ │ │ │ ├── modelscope.ts │ │ │ │ │ │ ├── ollama.ts │ │ │ │ │ │ ├── openai.ts │ │ │ │ │ │ ├── openrouter.ts │ │ │ │ │ │ ├── registry.ts │ │ │ │ │ │ ├── seedream.ts │ │ │ │ │ │ └── siliconflow.ts │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ ├── storage.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── image-model/ │ │ │ │ │ ├── defaults.ts │ │ │ │ │ └── manager.ts │ │ │ │ ├── index.ts │ │ │ │ ├── llm/ │ │ │ │ │ ├── adapters/ │ │ │ │ │ │ ├── abstract-adapter.ts │ │ │ │ │ │ ├── anthropic-adapter.ts │ │ │ │ │ │ ├── dashscope-adapter.ts │ │ │ │ │ │ ├── deepseek-adapter.ts │ │ │ │ │ │ ├── gemini-adapter.ts │ │ │ │ │ │ ├── minimax-adapter.ts │ │ │ │ │ │ ├── modelscope-adapter.ts │ │ │ │ │ │ ├── ollama-adapter.ts │ │ │ │ │ │ ├── openai-adapter.ts │ │ │ │ │ │ ├── openrouter-adapter.ts │ │ │ │ │ │ ├── registry.ts │ │ │ │ │ │ ├── siliconflow-adapter.ts │ │ │ │ │ │ └── zhipu-adapter.ts │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── model/ │ │ │ │ │ ├── advancedParameterDefinitions.ts │ │ │ │ │ ├── converter.ts │ │ │ │ │ ├── defaults.ts │ │ │ │ │ ├── electron-config.ts │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ ├── model-utils.ts │ │ │ │ │ ├── parameter-schema.ts │ │ │ │ │ ├── parameter-utils.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── validation.ts │ │ │ │ ├── preference/ │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── prompt/ │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── factory.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── shared/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── storage/ │ │ │ │ │ ├── adapter.ts │ │ │ │ │ ├── dexieStorageProvider.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── factory.ts │ │ │ │ │ ├── fileStorageProvider.ts │ │ │ │ │ ├── localStorageProvider.ts │ │ │ │ │ ├── memoryStorageProvider.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── template/ │ │ │ │ │ ├── default-templates/ │ │ │ │ │ │ ├── evaluation/ │ │ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ │ │ ├── system/ │ │ │ │ │ │ │ │ │ ├── evaluation-compare.ts │ │ │ │ │ │ │ │ │ ├── evaluation-compare_en.ts │ │ │ │ │ │ │ │ │ ├── evaluation-prompt-iterate.ts │ │ │ │ │ │ │ │ │ ├── evaluation-prompt-iterate_en.ts │ │ │ │ │ │ │ │ │ ├── evaluation-prompt-only.ts │ │ │ │ │ │ │ │ │ ├── evaluation-prompt-only_en.ts │ │ │ │ │ │ │ │ │ ├── evaluation-result.ts │ │ │ │ │ │ │ │ │ ├── evaluation-result_en.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── user/ │ │ │ │ │ │ │ │ ├── evaluation-compare.ts │ │ │ │ │ │ │ │ ├── evaluation-compare_en.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-iterate.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-iterate_en.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-only.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-only_en.ts │ │ │ │ │ │ │ │ ├── evaluation-result.ts │ │ │ │ │ │ │ │ ├── evaluation-result_en.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── builders.ts │ │ │ │ │ │ │ ├── image/ │ │ │ │ │ │ │ │ ├── image2image/ │ │ │ │ │ │ │ │ │ ├── evaluation-prompt-only.ts │ │ │ │ │ │ │ │ │ ├── evaluation-prompt-only_en.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── text2image/ │ │ │ │ │ │ │ │ ├── evaluation-prompt-only.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-only_en.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── pro/ │ │ │ │ │ │ │ ├── system/ │ │ │ │ │ │ │ │ ├── evaluation-compare.ts │ │ │ │ │ │ │ │ ├── evaluation-compare_en.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-iterate.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-iterate_en.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-only.ts │ │ │ │ │ │ │ │ ├── evaluation-prompt-only_en.ts │ │ │ │ │ │ │ │ ├── evaluation-result.ts │ │ │ │ │ │ │ │ ├── evaluation-result_en.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── user/ │ │ │ │ │ │ │ ├── evaluation-compare.ts │ │ │ │ │ │ │ ├── evaluation-compare_en.ts │ │ │ │ │ │ │ ├── evaluation-prompt-iterate.ts │ │ │ │ │ │ │ ├── evaluation-prompt-iterate_en.ts │ │ │ │ │ │ │ ├── evaluation-prompt-only.ts │ │ │ │ │ │ │ ├── evaluation-prompt-only_en.ts │ │ │ │ │ │ │ ├── evaluation-result.ts │ │ │ │ │ │ │ ├── evaluation-result_en.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── image-optimize/ │ │ │ │ │ │ │ ├── image2image/ │ │ │ │ │ │ │ │ ├── design-text-edit-optimize.ts │ │ │ │ │ │ │ │ ├── design-text-edit-optimize_en.ts │ │ │ │ │ │ │ │ ├── image2image-optimize.ts │ │ │ │ │ │ │ │ ├── image2image-optimize_en.ts │ │ │ │ │ │ │ │ ├── json-structured-optimize.ts │ │ │ │ │ │ │ │ └── json-structured-optimize_en.ts │ │ │ │ │ │ │ ├── iterate/ │ │ │ │ │ │ │ │ ├── image-iterate-general.ts │ │ │ │ │ │ │ │ └── image-iterate-general_en.ts │ │ │ │ │ │ │ └── text2image/ │ │ │ │ │ │ │ ├── chinese-model-optimize.ts │ │ │ │ │ │ │ ├── chinese-model-optimize_en.ts │ │ │ │ │ │ │ ├── creative-text2image.ts │ │ │ │ │ │ │ ├── creative-text2image_en.ts │ │ │ │ │ │ │ ├── general-image-optimize.ts │ │ │ │ │ │ │ ├── general-image-optimize_en.ts │ │ │ │ │ │ │ ├── json-structured-optimize.ts │ │ │ │ │ │ │ ├── json-structured-optimize_en.ts │ │ │ │ │ │ │ ├── photography-optimize.ts │ │ │ │ │ │ │ └── photography-optimize_en.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── iterate/ │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ ├── context-iterate.ts │ │ │ │ │ │ │ │ └── context-iterate_en.ts │ │ │ │ │ │ │ ├── iterate.ts │ │ │ │ │ │ │ └── iterate_en.ts │ │ │ │ │ │ ├── optimize/ │ │ │ │ │ │ │ ├── analytical-optimize.ts │ │ │ │ │ │ │ ├── analytical-optimize_en.ts │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ ├── context-analytical-optimize.ts │ │ │ │ │ │ │ │ ├── context-analytical-optimize_en.ts │ │ │ │ │ │ │ │ ├── context-message-optimize.ts │ │ │ │ │ │ │ │ ├── context-message-optimize_en.ts │ │ │ │ │ │ │ │ ├── context-output-format-optimize.ts │ │ │ │ │ │ │ │ └── context-output-format-optimize_en.ts │ │ │ │ │ │ │ ├── general-optimize.ts │ │ │ │ │ │ │ ├── general-optimize_en.ts │ │ │ │ │ │ │ ├── output-format-optimize.ts │ │ │ │ │ │ │ └── output-format-optimize_en.ts │ │ │ │ │ │ ├── user-optimize/ │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ ├── context-user-prompt-basic.ts │ │ │ │ │ │ │ │ ├── context-user-prompt-basic_en.ts │ │ │ │ │ │ │ │ ├── context-user-prompt-planning.ts │ │ │ │ │ │ │ │ ├── context-user-prompt-planning_en.ts │ │ │ │ │ │ │ │ ├── context-user-prompt-professional.ts │ │ │ │ │ │ │ │ └── context-user-prompt-professional_en.ts │ │ │ │ │ │ │ ├── user-prompt-basic.ts │ │ │ │ │ │ │ ├── user-prompt-basic_en.ts │ │ │ │ │ │ │ ├── user-prompt-planning.ts │ │ │ │ │ │ │ ├── user-prompt-planning_en.ts │ │ │ │ │ │ │ ├── user-prompt-professional.ts │ │ │ │ │ │ │ └── user-prompt-professional_en.ts │ │ │ │ │ │ ├── variable-extraction/ │ │ │ │ │ │ │ ├── extraction.ts │ │ │ │ │ │ │ ├── extraction_en.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── variable-value-generation/ │ │ │ │ │ │ ├── generation.ts │ │ │ │ │ │ ├── generation_en.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── electron-language-proxy.ts │ │ │ │ │ ├── electron-proxy.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── languageService.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ ├── minimal.ts │ │ │ │ │ ├── processor.ts │ │ │ │ │ ├── static-loader.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── variable-extraction/ │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── types.ts │ │ │ │ └── variable-value-generation/ │ │ │ │ ├── errors.ts │ │ │ │ ├── index.ts │ │ │ │ ├── service.ts │ │ │ │ └── types.ts │ │ │ ├── types/ │ │ │ │ ├── advanced.ts │ │ │ │ └── global.d.ts │ │ │ └── utils/ │ │ │ ├── environment.ts │ │ │ ├── error.ts │ │ │ ├── ipc-serialization.ts │ │ │ └── patch-plan.ts │ │ ├── tests/ │ │ │ ├── fixtures/ │ │ │ │ ├── README.md │ │ │ │ ├── evaluation-rendered/ │ │ │ │ │ ├── basic-user-compare.md │ │ │ │ │ ├── basic-user-prompt-only.md │ │ │ │ │ ├── basic-user-result.md │ │ │ │ │ ├── pro-multi-compare.md │ │ │ │ │ └── pro-variable-prompt-only.md │ │ │ │ └── llm/ │ │ │ │ └── deepseek/ │ │ │ │ └── optimize-simple-prompt.json │ │ │ ├── helpers/ │ │ │ │ ├── README.md │ │ │ │ ├── real-llm.example.test.ts │ │ │ │ └── real-llm.ts │ │ │ ├── integration/ │ │ │ │ ├── data-compatibility.test.ts │ │ │ │ ├── fileStorageProvider-real.test.ts │ │ │ │ ├── frontend-compatibility.test.ts │ │ │ │ ├── image-adapters.test.ts │ │ │ │ ├── image-e2e-acceptance.test.ts │ │ │ │ ├── llm/ │ │ │ │ │ ├── adapters.integration.test.ts │ │ │ │ │ ├── common.test.js │ │ │ │ │ ├── custom.test.js │ │ │ │ │ ├── deepseek.test.js │ │ │ │ │ ├── gemini-new-sdk.test.ts │ │ │ │ │ ├── gemini.test.js │ │ │ │ │ ├── openai.test.js │ │ │ │ │ └── tool-calls-real-api.test.js │ │ │ │ ├── llm-service.spec.ts │ │ │ │ ├── model/ │ │ │ │ │ └── migration.integration.test.ts │ │ │ │ ├── prompt/ │ │ │ │ │ └── service.integration.test.ts │ │ │ │ ├── real-api.test.ts │ │ │ │ ├── real-components.test.ts │ │ │ │ ├── real-vs-mock.test.ts │ │ │ │ ├── regression.test.ts │ │ │ │ ├── siliconflow-api.test.ts │ │ │ │ ├── storage-factory-file.test.ts │ │ │ │ ├── storage-implementations.test.ts │ │ │ │ ├── template/ │ │ │ │ │ └── context-message-optimize.test.ts │ │ │ │ ├── variable-extraction/ │ │ │ │ │ └── service-real-api.test.ts │ │ │ │ └── variable-value-generation/ │ │ │ │ └── service-real-api.test.ts │ │ │ ├── mocks/ │ │ │ │ └── mockStorage.ts │ │ │ ├── performance/ │ │ │ │ └── favorites.perf.test.ts │ │ │ ├── services/ │ │ │ │ └── favorite/ │ │ │ │ ├── integration.test.ts │ │ │ │ ├── manager-extended.test.ts │ │ │ │ ├── tag-manager.test.ts │ │ │ │ ├── type-converter.test.ts │ │ │ │ └── type-mapper.test.ts │ │ │ ├── setup.js │ │ │ ├── unit/ │ │ │ │ ├── context/ │ │ │ │ │ └── repo.test.ts │ │ │ │ ├── data/ │ │ │ │ │ ├── import-export-integration.test.ts │ │ │ │ │ └── manager.test.ts │ │ │ │ ├── evaluation/ │ │ │ │ │ ├── prompt-iterate-output-format-behavior.test.ts │ │ │ │ │ ├── prompt-iterate-templates.test.ts │ │ │ │ │ ├── rendered-samples.test.ts │ │ │ │ │ ├── result-compare-evidence-behavior.test.ts │ │ │ │ │ └── service.test.ts │ │ │ │ ├── history/ │ │ │ │ │ ├── import-export.test.ts │ │ │ │ │ └── manager.test.ts │ │ │ │ ├── image/ │ │ │ │ │ ├── dashscope-adapter.test.ts │ │ │ │ │ ├── gemini-adapter.test.ts │ │ │ │ │ ├── image-adapter-registry.test.ts │ │ │ │ │ ├── image-default-models.test.ts │ │ │ │ │ ├── image-service.test.ts │ │ │ │ │ ├── modelscope-adapter.test.ts │ │ │ │ │ ├── openai-adapter.test.ts │ │ │ │ │ ├── openrouter-adapter.test.ts │ │ │ │ │ ├── openrouter-api-test-structure.test.ts │ │ │ │ │ ├── openrouter-integration.test.ts │ │ │ │ │ ├── openrouter-parameter-fix-summary.md │ │ │ │ │ ├── seedream-adapter.test.ts │ │ │ │ │ └── siliconflow-adapter.test.ts │ │ │ │ ├── llm/ │ │ │ │ │ ├── anthropic-adapter.test.ts │ │ │ │ │ ├── gemini-adapter.test.ts │ │ │ │ │ ├── llmParams.test.ts │ │ │ │ │ ├── minimax-adapter.test.ts │ │ │ │ │ ├── modelscope-adapter.test.ts │ │ │ │ │ ├── openai-adapter.test.ts │ │ │ │ │ ├── registry.test.ts │ │ │ │ │ ├── service.test.ts │ │ │ │ │ ├── think-tag-processing.test.ts │ │ │ │ │ └── tool-calls.test.ts │ │ │ │ ├── model/ │ │ │ │ │ ├── config-conversion.test.ts │ │ │ │ │ ├── defaults.test.ts │ │ │ │ │ ├── import-export.test.ts │ │ │ │ │ ├── manager.test.ts │ │ │ │ │ └── model-utils.test.ts │ │ │ │ ├── parameter-schema.test.ts │ │ │ │ ├── parameter-utils.test.ts │ │ │ │ ├── preference/ │ │ │ │ │ ├── import-export.test.ts │ │ │ │ │ └── service.test.ts │ │ │ │ ├── prompt/ │ │ │ │ │ └── service.test.ts │ │ │ │ ├── prompt-service-enhanced.test.ts │ │ │ │ ├── services/ │ │ │ │ │ └── custom-params-migration.test.ts │ │ │ │ ├── storage/ │ │ │ │ │ ├── fileStorageProvider-recovery.test.ts │ │ │ │ │ ├── fileStorageProvider.test.ts │ │ │ │ │ ├── localStorageProvider.test.ts │ │ │ │ │ └── memoryStorageProvider.test.ts │ │ │ │ ├── template/ │ │ │ │ │ ├── advanced-optimize.test.ts │ │ │ │ │ ├── context-types-manager.test.ts │ │ │ │ │ ├── context-types-schema.test.ts │ │ │ │ │ ├── extended-metadata.test.ts │ │ │ │ │ ├── extension-environment.test.ts │ │ │ │ │ ├── import-export.test.ts │ │ │ │ │ ├── languageService.test.ts │ │ │ │ │ ├── manager.test.ts │ │ │ │ │ ├── minimal.test.ts │ │ │ │ │ ├── processor.test.ts │ │ │ │ │ └── tool-context-injection.test.ts │ │ │ │ └── utils/ │ │ │ │ ├── environment.test.ts │ │ │ │ ├── llm-mock-service.spec.ts │ │ │ │ ├── patch-plan.test.ts │ │ │ │ └── vcr.spec.ts │ │ │ └── utils/ │ │ │ ├── llm-mock-service.ts │ │ │ ├── stream-simulator.ts │ │ │ └── vcr.ts │ │ ├── tsconfig.json │ │ └── vitest.config.js │ ├── desktop/ │ │ ├── README-env-config.md │ │ ├── README.md │ │ ├── build-desktop.bat │ │ ├── config/ │ │ │ ├── console-logger.js │ │ │ ├── constants.js │ │ │ └── update-config.js │ │ ├── dev-app-update.yml │ │ ├── icons/ │ │ │ └── app-icon.icns │ │ ├── main.js │ │ ├── package.json │ │ ├── preload.js │ │ └── test-app.js │ ├── extension/ │ │ ├── chrome.md │ │ ├── env.d.ts │ │ ├── index.html │ │ ├── package.json │ │ ├── permissions-explanation.md │ │ ├── postcss.config.js │ │ ├── privacy-policy.md │ │ ├── public/ │ │ │ ├── _locales/ │ │ │ │ ├── en/ │ │ │ │ │ └── messages.json │ │ │ │ └── zh_CN/ │ │ │ │ └── messages.json │ │ │ ├── background.js │ │ │ └── manifest.json │ │ ├── publish-guide.md │ │ ├── screenshots.md │ │ ├── src/ │ │ │ ├── App.vue │ │ │ ├── main.ts │ │ │ └── style.css │ │ ├── tailwind.config.js │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── mcp-server/ │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── package.json │ │ ├── preload-env.cjs │ │ ├── preload-env.js │ │ ├── src/ │ │ │ ├── adapters/ │ │ │ │ ├── core-services.ts │ │ │ │ ├── error-handler.ts │ │ │ │ ├── language-service.ts │ │ │ │ └── parameter-adapter.ts │ │ │ ├── config/ │ │ │ │ ├── environment.ts │ │ │ │ ├── models.ts │ │ │ │ └── templates.ts │ │ │ ├── index.ts │ │ │ ├── start.ts │ │ │ └── utils/ │ │ │ └── logging.ts │ │ ├── tests/ │ │ │ └── tools.test.ts │ │ └── tsconfig.json │ ├── ui/ │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── docs/ │ │ │ ├── ACCESSIBILITY_GUIDE.md │ │ │ ├── COMPONENT_API.md │ │ │ └── README.md │ │ ├── env.d.ts │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── ActionButton.vue │ │ │ │ ├── BuiltinTemplateLanguageSwitch.vue │ │ │ │ ├── CategoryManager.vue │ │ │ │ ├── CategoryTreeSelect.vue │ │ │ │ ├── ContentCard.vue │ │ │ │ ├── DataManager.vue │ │ │ │ ├── FavoriteButton.vue │ │ │ │ ├── FavoriteCard.vue │ │ │ │ ├── FavoriteListItem.vue │ │ │ │ ├── FavoriteManager.vue │ │ │ │ ├── FavoriteMediaPreviewPanel.vue │ │ │ │ ├── FavoritePreviewExtensionHost.vue │ │ │ │ ├── FullscreenDialog.vue │ │ │ │ ├── FunctionModeSelector.vue │ │ │ │ ├── FunctionModelManager.vue │ │ │ │ ├── GardenSnapshotPreview.vue │ │ │ │ ├── HistoryDrawer.vue │ │ │ │ ├── Icon.vue │ │ │ │ ├── ImageModelEditModal.vue │ │ │ │ ├── ImageModelManager.vue │ │ │ │ ├── InputPanel.vue │ │ │ │ ├── InputWithSelect.vue │ │ │ │ ├── LanguageSwitchDropdown.vue │ │ │ │ ├── MainLayout.vue │ │ │ │ ├── MarkdownRenderer.vue │ │ │ │ ├── Modal.vue │ │ │ │ ├── ModelAdvancedSection.vue │ │ │ │ ├── ModelManager.vue │ │ │ │ ├── ModelParameterEditor.vue │ │ │ │ ├── OptimizationModeSelector.vue │ │ │ │ ├── OutputDisplay.vue │ │ │ │ ├── OutputDisplayCore.vue │ │ │ │ ├── OutputDisplayFullscreen.vue │ │ │ │ ├── Panel.vue │ │ │ │ ├── PromptGardenFavoritePreviewPanel.vue │ │ │ │ ├── PromptPanel.vue │ │ │ │ ├── PromptPreviewPanel.vue │ │ │ │ ├── SaveFavoriteDialog.vue │ │ │ │ ├── SelectWithConfig.vue │ │ │ │ ├── TagManager.vue │ │ │ │ ├── TemplateManager.vue │ │ │ │ ├── TemplateSelect.vue │ │ │ │ ├── TestAreaPanel.vue │ │ │ │ ├── TestControlBar.vue │ │ │ │ ├── TestInputSection.vue │ │ │ │ ├── TestResultSection.vue │ │ │ │ ├── TextDiff.vue │ │ │ │ ├── TextModelEditModal.vue │ │ │ │ ├── TextModelList.vue │ │ │ │ ├── TextModelManager.vue │ │ │ │ ├── ThemeToggleUI.vue │ │ │ │ ├── Toast.vue │ │ │ │ ├── ToolCallDisplay.vue │ │ │ │ ├── UpdaterIcon.vue │ │ │ │ ├── UpdaterModal.vue │ │ │ │ ├── XmlRenderer.vue │ │ │ │ ├── app-layout/ │ │ │ │ │ ├── AppCoreNav.vue │ │ │ │ │ ├── AppHeaderActions.vue │ │ │ │ │ ├── PromptOptimizerApp.vue │ │ │ │ │ └── index.ts │ │ │ │ ├── basic-mode/ │ │ │ │ │ ├── BasicSystemWorkspace.vue │ │ │ │ │ ├── BasicUserWorkspace.vue │ │ │ │ │ └── index.ts │ │ │ │ ├── context-mode/ │ │ │ │ │ ├── ContextEditor.vue │ │ │ │ │ ├── ContextModeActions.vue │ │ │ │ │ ├── ContextSystemWorkspace.vue │ │ │ │ │ ├── ContextUserTestPanel.vue │ │ │ │ │ ├── ContextUserWorkspace.vue │ │ │ │ │ ├── ConversationManager.vue │ │ │ │ │ ├── ConversationTestPanel.vue │ │ │ │ │ └── ImportExportDialog.vue │ │ │ │ ├── evaluation/ │ │ │ │ │ ├── EvaluateButton.vue │ │ │ │ │ ├── EvaluationHoverCard.vue │ │ │ │ │ ├── EvaluationPanel.vue │ │ │ │ │ ├── EvaluationScoreBadge.vue │ │ │ │ │ ├── FeedbackAnalyzeButton.vue │ │ │ │ │ ├── FeedbackEditor.vue │ │ │ │ │ ├── FocusAnalyzeButton.vue │ │ │ │ │ ├── InlineDiff.vue │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── icons/ │ │ │ │ │ └── ExternalLinkIcon.vue │ │ │ │ ├── image-mode/ │ │ │ │ │ ├── ImageImage2ImageWorkspace.vue │ │ │ │ │ ├── ImageModeSelector.vue │ │ │ │ │ ├── ImageText2ImageWorkspace.vue │ │ │ │ │ └── ImageTokenUsage.vue │ │ │ │ ├── tool/ │ │ │ │ │ └── ToolManagerModal.vue │ │ │ │ ├── types/ │ │ │ │ │ └── test-area.ts │ │ │ │ ├── variable/ │ │ │ │ │ ├── TemporaryVariablesPanel.vue │ │ │ │ │ ├── VariableEditor.vue │ │ │ │ │ ├── VariableImporter.vue │ │ │ │ │ ├── VariableManagerModal.vue │ │ │ │ │ └── VariableValuePreviewDialog.vue │ │ │ │ ├── variable-extraction/ │ │ │ │ │ ├── VariableAwareInput.vue │ │ │ │ │ ├── VariableExtractionDialog.vue │ │ │ │ │ ├── VariableExtractionResultDialog.vue │ │ │ │ │ ├── codemirror-extensions.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useInputHistory.ts │ │ │ │ │ ├── useTextSelection.ts │ │ │ │ │ └── useVariableDetection.ts │ │ │ │ └── xml/ │ │ │ │ └── XmlTreeNode.vue │ │ │ ├── components.d.ts │ │ │ ├── composables/ │ │ │ │ ├── accessibility/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAccessibility.ts │ │ │ │ │ ├── useAccessibilityTesting.ts │ │ │ │ │ └── useFocusManager.ts │ │ │ │ ├── app/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAppFavorite.ts │ │ │ │ │ ├── useAppHistoryRestore.ts │ │ │ │ │ └── useAppPromptGardenImport.ts │ │ │ │ ├── context/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useContextEditor.ts │ │ │ │ │ ├── useContextEditorUIState.ts │ │ │ │ │ └── useContextManagement.ts │ │ │ │ ├── image/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useImageGeneration.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mode/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useBasicSubMode.ts │ │ │ │ │ ├── useCurrentMode.ts │ │ │ │ │ ├── useFunctionMode.ts │ │ │ │ │ ├── useImageSubMode.ts │ │ │ │ │ └── useProSubMode.ts │ │ │ │ ├── model/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useConnectionConfig.ts │ │ │ │ │ ├── useFunctionModelManager.ts │ │ │ │ │ ├── useImageModelManager.ts │ │ │ │ │ ├── useModelAdvancedParameters.ts │ │ │ │ │ ├── useModelManager.ts │ │ │ │ │ ├── useModelSelectRefs.ts │ │ │ │ │ └── useTextModelManager.ts │ │ │ │ ├── performance/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useDebounceThrottle.ts │ │ │ │ │ ├── useLazyLoad.ts │ │ │ │ │ ├── usePerformanceMonitor.ts │ │ │ │ │ └── useVirtualScroll.ts │ │ │ │ ├── prompt/ │ │ │ │ │ ├── compareEvaluation.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── testVariantState.ts │ │ │ │ │ ├── useContextUserOptimization.ts │ │ │ │ │ ├── useContextUserTester.ts │ │ │ │ │ ├── useConversationOptimization.ts │ │ │ │ │ ├── useConversationTester.ts │ │ │ │ │ ├── useEvaluation.ts │ │ │ │ │ ├── useEvaluationContext.ts │ │ │ │ │ ├── useEvaluationHandler.ts │ │ │ │ │ ├── useLocalPromptPreviewPanel.ts │ │ │ │ │ ├── useProContext.ts │ │ │ │ │ ├── usePromptDisplayAdapter.ts │ │ │ │ │ ├── usePromptHistory.ts │ │ │ │ │ ├── usePromptOptimizer.ts │ │ │ │ │ ├── usePromptPreview.ts │ │ │ │ │ ├── usePromptTester.ts │ │ │ │ │ ├── useTemplateManager.ts │ │ │ │ │ ├── useVariableExtraction.ts │ │ │ │ │ └── useVariableManager.ts │ │ │ │ ├── session/ │ │ │ │ │ └── useSessionRestoreCoordinator.ts │ │ │ │ ├── storage/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useFavoriteInitializer.ts │ │ │ │ │ ├── useHistoryManager.ts │ │ │ │ │ └── usePreferenceManager.ts │ │ │ │ ├── system/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAppInitializer.ts │ │ │ │ │ └── useUpdater.ts │ │ │ │ ├── ui/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAutoScroll.ts │ │ │ │ │ ├── useClipboard.ts │ │ │ │ │ ├── useFullscreen.ts │ │ │ │ │ ├── useModals.ts │ │ │ │ │ ├── useNaiveTheme.ts │ │ │ │ │ ├── useResponsive.ts │ │ │ │ │ ├── useResponsiveTestLayout.ts │ │ │ │ │ ├── useTagSuggestions.ts │ │ │ │ │ ├── useTestModeConfig.ts │ │ │ │ │ ├── useToast.ts │ │ │ │ │ └── useTooltipTheme.ts │ │ │ │ ├── variable/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAggregatedVariables.ts │ │ │ │ │ ├── useSmartVariableValueGeneration.ts │ │ │ │ │ ├── useTemporaryVariables.ts │ │ │ │ │ ├── useTestVariableManager.ts │ │ │ │ │ ├── useVariableAwareInputBridge.ts │ │ │ │ │ └── useVariableValueGeneration.ts │ │ │ │ └── workspaces/ │ │ │ │ ├── useBasicWorkspaceLogic.ts │ │ │ │ ├── useWorkspaceModelSelection.ts │ │ │ │ ├── useWorkspaceTemplateSelection.ts │ │ │ │ └── useWorkspaceTextModelSelection.ts │ │ │ ├── config/ │ │ │ │ └── naive-theme.ts │ │ │ ├── directives/ │ │ │ │ └── clickOutside.ts │ │ │ ├── docs/ │ │ │ │ └── syntax-guide.ts │ │ │ ├── examples/ │ │ │ │ └── storage-usage-examples.ts │ │ │ ├── i18n/ │ │ │ │ ├── README.md │ │ │ │ └── locales/ │ │ │ │ ├── en-US.ts │ │ │ │ ├── zh-CN.ts │ │ │ │ └── zh-TW.ts │ │ │ ├── index.ts │ │ │ ├── integrations/ │ │ │ │ ├── favoritePreviewPlugins.ts │ │ │ │ ├── prompt-garden.favorite-preview.ts │ │ │ │ ├── prompt-garden.integration.ts │ │ │ │ ├── registerOptionalIntegrations.ts │ │ │ │ └── types.ts │ │ │ ├── plugins/ │ │ │ │ ├── i18n.ts │ │ │ │ └── pinia.ts │ │ │ ├── router/ │ │ │ │ ├── RootBootstrapRoute.ts │ │ │ │ ├── guards.ts │ │ │ │ └── index.ts │ │ │ ├── services/ │ │ │ │ ├── DataImportExportManager.ts │ │ │ │ ├── EnhancedTemplateProcessor.ts │ │ │ │ ├── PromptDataConverter.ts │ │ │ │ ├── SmartVariableExtractor.ts │ │ │ │ ├── VariableManager.ts │ │ │ │ └── index.ts │ │ │ ├── stores/ │ │ │ │ ├── index.ts │ │ │ │ ├── promptDraft.ts │ │ │ │ ├── session/ │ │ │ │ │ ├── imageStorageMaintenance.ts │ │ │ │ │ ├── useBasicSystemSession.ts │ │ │ │ │ ├── useBasicUserSession.ts │ │ │ │ │ ├── useImageImage2ImageSession.ts │ │ │ │ │ ├── useImageText2ImageSession.ts │ │ │ │ │ ├── useProMultiMessageSession.ts │ │ │ │ │ ├── useProVariableSession.ts │ │ │ │ │ └── useSessionManager.ts │ │ │ │ ├── settings/ │ │ │ │ │ └── useGlobalSettings.ts │ │ │ │ └── temporaryVariables.ts │ │ │ ├── styles/ │ │ │ │ ├── common.css │ │ │ │ ├── index.css │ │ │ │ └── scrollbar.css │ │ │ ├── types/ │ │ │ │ ├── components.ts │ │ │ │ ├── data-converter.ts │ │ │ │ ├── electron.d.ts │ │ │ │ ├── evaluation.ts │ │ │ │ ├── images.d.ts │ │ │ │ ├── index.ts │ │ │ │ ├── select-options.ts │ │ │ │ ├── services.ts │ │ │ │ ├── standard-prompt.ts │ │ │ │ ├── template.ts │ │ │ │ ├── variable.ts │ │ │ │ ├── vue-i18n.d.ts │ │ │ │ ├── window.d.ts │ │ │ │ ├── workspace.ts │ │ │ │ └── xml-renderer.ts │ │ │ └── utils/ │ │ │ ├── data-transformer.ts │ │ │ ├── error.ts │ │ │ ├── evaluationVariableEvidence.ts │ │ │ ├── favorite-media.ts │ │ │ ├── garden-snapshot-preview.ts │ │ │ ├── image-asset-storage.ts │ │ │ ├── platform.ts │ │ │ ├── prompt-variables.ts │ │ │ └── xml-renderer.ts │ │ ├── tailwind.config.js │ │ ├── tests/ │ │ │ ├── e2e/ │ │ │ │ ├── model-manager-refresh.e2e.spec.ts │ │ │ │ ├── naiveui-refactor.e2e.spec.ts │ │ │ │ └── pro-multi-context-actions.e2e.spec.ts │ │ │ ├── integration/ │ │ │ │ ├── basic-workspace-logic.spec.ts │ │ │ │ ├── context-editor-persist.spec.ts │ │ │ │ ├── context-user-optimization.spec.ts │ │ │ │ ├── context-user-tester.spec.ts │ │ │ │ ├── conversation-optimization.spec.ts │ │ │ │ ├── conversation-tester.spec.ts │ │ │ │ ├── image-generation.spec.ts │ │ │ │ └── variable-highlighting-system.spec.ts │ │ │ ├── setup.js │ │ │ ├── setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── unit/ │ │ │ │ ├── OptimizationModeSelector.test.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── ContextEditor.spec.ts │ │ │ │ │ ├── ConversationManager.spec.ts │ │ │ │ │ ├── EvaluationHoverCard.spec.ts │ │ │ │ │ ├── EvaluationPanel.spec.ts │ │ │ │ │ ├── EvaluationScoreBadge.spec.ts │ │ │ │ │ ├── GardenSnapshotPreview.spec.ts │ │ │ │ │ ├── ImageModelManager.spec.ts │ │ │ │ │ ├── ImportExportDialog.spec.ts │ │ │ │ │ ├── LanguageSwitchDropdown.test.js │ │ │ │ │ ├── ModelManager.spec.ts │ │ │ │ │ ├── ModelParameterEditor.spec.ts │ │ │ │ │ ├── TemporaryVariablesPanel.spec.ts │ │ │ │ │ ├── TestAreaPanel.spec.ts │ │ │ │ │ ├── TestInputSection.spec.ts │ │ │ │ │ ├── ToolCallDisplay.spec.ts │ │ │ │ │ └── VariableAwareInput.spec.ts │ │ │ │ ├── components.test.js │ │ │ │ ├── composables/ │ │ │ │ │ ├── compareEvaluation.spec.ts │ │ │ │ │ ├── connection-test-fix-summary.md │ │ │ │ │ ├── useAppPromptGardenImport.spec.ts │ │ │ │ │ ├── useEvaluationHandler.spec.ts │ │ │ │ │ ├── useImageModelManager-connection-test-fix.spec.ts │ │ │ │ │ ├── useSmartVariableValueGeneration.spec.ts │ │ │ │ │ ├── useTestModeConfig.spec.ts │ │ │ │ │ ├── useTestVariableManager.renameVariable.spec.ts │ │ │ │ │ └── useVariableDetection.spec.ts │ │ │ │ ├── image/ │ │ │ │ │ └── useFunctionMode-image-mode.spec.ts │ │ │ │ ├── pinia-improvements.spec.ts │ │ │ │ ├── pinia-services.test.ts │ │ │ │ ├── stores/ │ │ │ │ │ ├── messageChainMap-migration.spec.ts │ │ │ │ │ └── session/ │ │ │ │ │ ├── basic-session-persistence.spec.ts │ │ │ │ │ ├── image-session-persistence.spec.ts │ │ │ │ │ ├── image-storage-maintenance.spec.ts │ │ │ │ │ └── pro-session-persistence.spec.ts │ │ │ │ ├── useFunctionMode.test.ts │ │ │ │ ├── usePromptOptimizer-model-validation.test.ts │ │ │ │ ├── utils/ │ │ │ │ │ ├── error-i18n.spec.ts │ │ │ │ │ ├── evaluationVariableEvidence.spec.ts │ │ │ │ │ ├── favorite-media.spec.ts │ │ │ │ │ ├── garden-snapshot-preview.spec.ts │ │ │ │ │ ├── prompt-variables.spec.ts │ │ │ │ │ └── xml-renderer.spec.ts │ │ │ │ └── variable-extraction/ │ │ │ │ ├── codemirror-extensions.spec.ts │ │ │ │ └── selection-safety.spec.ts │ │ │ └── utils/ │ │ │ ├── error-detection.ts │ │ │ └── pinia-test-helpers.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ ├── vite.config.ts │ │ └── vitest.config.ts │ └── web/ │ ├── index.html │ ├── package.json │ ├── postcss.config.js │ ├── public/ │ │ └── config.js │ ├── src/ │ │ ├── App.vue │ │ └── main.ts │ ├── tailwind.config.js │ ├── tests/ │ │ └── e2e/ │ │ └── context-mode.spec.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ ├── vite.config.ts │ └── vitest.config.ts ├── playwright.config.ts ├── pnpm-workspace.yaml ├── scripts/ │ ├── kill-dev.js │ ├── smart-e2e.js │ └── sync-versions.js ├── tests/ │ └── e2e/ │ ├── analysis/ │ │ ├── basic-system.spec.ts │ │ ├── basic-user.spec.ts │ │ ├── image-image2image.spec.ts │ │ ├── image-text2image.spec.ts │ │ ├── pro-multi.spec.ts │ │ └── pro-variable.spec.ts │ ├── category-management.spec.ts │ ├── e2e-vcr-guide.md │ ├── favorite-management.spec.ts │ ├── fixtures/ │ │ ├── images/ │ │ │ └── .gitkeep │ │ └── vcr/ │ │ ├── analysis-basic-system-spec-ts/ │ │ │ ├── 分析后右侧-workspace-测试应切换到新的-v0-而不是继续沿用旧链.json │ │ │ └── 分析提示词并显示评估结果.json │ │ ├── analysis-basic-user-spec-ts/ │ │ │ ├── 分析后右侧-workspace-测试应切换到新的-v0-而不是继续沿用旧链.json │ │ │ ├── 分析提示词并显示评估结果.json │ │ │ └── 对比评估在工作区内容变更后应保留并标记为过期.json │ │ ├── analysis-image-image2image-spec-ts/ │ │ │ └── 分析提示词并显示评估结果.json │ │ ├── analysis-image-text2image-spec-ts/ │ │ │ └── 分析提示词并显示评估结果.json │ │ ├── analysis-pro-multi-spec-ts/ │ │ │ └── 分析对话优化结果并显示评估分数.json │ │ ├── analysis-pro-variable-spec-ts/ │ │ │ └── 分析带变量的提示词并显示评估结果.json │ │ ├── optimize-basic-system-spec-ts/ │ │ │ └── 优化提示词并生成优化结果.json │ │ ├── optimize-basic-user-spec-ts/ │ │ │ └── 优化提示词并生成优化结果.json │ │ ├── optimize-pro-multi-spec-ts/ │ │ │ └── 自动选择最新消息并优化-生成优化结果.json │ │ ├── optimize-pro-variable-spec-ts/ │ │ │ └── 优化带变量的提示词并生成优化结果.json │ │ ├── test-basic-system-compare-test-spec-ts/ │ │ │ ├── 先优化-再在对比模式下测试-原始-优化结果都非空.json │ │ │ ├── 测试后可触发单结果评估与对比评估.json │ │ │ └── 测试文本清空后旧评估仍可查看且-result-compare-都不能重跑.json │ │ ├── test-basic-user-test-spec-ts/ │ │ │ ├── 三列测试后可触发多变体对比评估.json │ │ │ ├── 优化后直接测试-原始-优化结果都非空.json │ │ │ ├── 工作区清空后旧对比评估仍可查看但不能重跑.json │ │ │ └── 测试后可触发单结果评估与对比评估.json │ │ ├── test-image-image2image-generate-spec-ts/ │ │ │ └── 上传输入图并在对比模式下生成-original-optimized-两张图.json │ │ ├── test-image-text2image-generate-spec-ts/ │ │ │ └── 切换到-siliconflow-图像模型并生成图片-对比模式.json │ │ ├── test-pro-multi-test-spec-ts/ │ │ │ └── 多消息工作区测试后可触发单结果评估与对比评估.json │ │ └── test-pro-variable-test-spec-ts/ │ │ └── 填写变量后可触发单结果评估与对比评估.json │ ├── fixtures.ts │ ├── helpers/ │ │ ├── analysis.ts │ │ ├── common.ts │ │ ├── evaluation.ts │ │ ├── optimize.ts │ │ └── vcr.ts │ ├── import-export.spec.ts │ ├── optimize/ │ │ ├── basic-system.spec.ts │ │ ├── basic-user.spec.ts │ │ ├── pro-multi.spec.ts │ │ └── pro-variable.spec.ts │ ├── regression/ │ │ └── root-route-bootstrap.spec.ts │ ├── regression.spec.ts │ ├── session-persistence/ │ │ ├── basic-user-persistence.spec.ts │ │ ├── image-text2image-persistence.spec.ts │ │ ├── model-default-and-cross-mode.spec.ts │ │ ├── pro-variable-persistence.spec.ts │ │ └── template-default-and-cross-mode.spec.ts │ ├── tag-autocomplete.spec.ts │ ├── tag-management.spec.ts │ ├── test/ │ │ ├── basic-system-compare-test.spec.ts │ │ ├── basic-user-test.spec.ts │ │ ├── image-image2image-generate.spec.ts │ │ ├── image-text2image-generate.spec.ts │ │ ├── pro-multi-test.spec.ts │ │ └── pro-variable-test.spec.ts │ └── workflows/ │ ├── p0-route-smoke.spec.ts │ └── route-initialization.spec.ts └── vercel.json