{"owner":"linshenkx","repo":"prompt-optimizer","hasSkills":true,"totalSkillsCount":45,"totalTokensCount":16898,"categories":["anthropic-skill","plugin-manifest"],"hasMcp":true,"mcpConfig":{"name":"@prompt-optimizer/mcp-server","version":"0.1.0","description":"MCP (Model Context Protocol) server for prompt-optimizer","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"prompt-optimizer-mcp":"./bin/prompt-optimizer-mcp.cjs"},"scripts":{"build":"tsup src/index.ts src/start.ts --format cjs,esm --dts --clean","dev":"node -r ./preload-env.js dist/start.js --transport=http","start":"node -r ./preload-env.cjs dist/start.cjs --transport=http","test":"vitest run","lint":"eslint src --ext .ts","type-check":"tsc --noEmit"},"keywords":["mcp","model-context-protocol","prompt-optimization","llm","ai"],"author":"Prompt Optimizer Team","license":"AGPL-3.0-only","dependencies":{"@modelcontextprotocol/sdk":"^1.32.0","@prompt-optimizer/core":"workspace:*","debug":"^4.4.3","dotenv":"^17.3.1","express":"^5.2.1"},"devDependencies":{"@eslint/js":"^10.0.1","@types/debug":"^4.1.13","@types/express":"^5.0.6","@types/node":"^24.13.4","@typescript-eslint/eslint-plugin":"^8.57.2","@typescript-eslint/parser":"^8.57.2","eslint":"^10.1.0","globals":"^17.4.0","tsup":"^8.5.1","typescript":"^5.9.3","vitest":"^4.1.12"},"engines":{"node":"^24.22.1"},"files":["bin","dist","README.md"]},"found":["packages/web/package.json","packages/ui/tsconfig.build.json","packages/web/tsconfig.typecheck.json","packages/web/tsconfig.json","packages/ui/package.json","packages/web/tsconfig.node.json","packages/ui/README.md","packages/mcp-server/package.json","packages/ui/tsconfig.json","packages/ui/tsconfig.node.json","packages/mcp-server/tsconfig.json","packages/mcp-server/README.md","packages/extension/chrome.md","packages/extension/package.json","packages/extension/permissions-explanation.md","packages/extension/privacy-policy.md","packages/extension/publish-guide.md","packages/extension/screenshots.md","packages/extension/tsconfig.json","packages/extension/tsconfig.node.json","packages/extension/tsconfig.typecheck.json","packages/desktop/package.json","packages/desktop/README.md","packages/desktop/README-env-config.md","packages/core/package.json","packages/core/tsconfig.json","packages/ui/docs/ACCESSIBILITY_GUIDE.md","packages/ui/docs/COMPONENT_API.md","packages/ui/docs/README.md","packages/ui/tests/tsconfig.json","packages/extension/public/manifest.json","packages/ui/src/i18n/README.md","packages/core/tests/helpers/README.md","packages/core/tests/fixtures/README.md","packages/ui/tests/unit/composables/connection-test-fix-summary.md","packages/extension/public/_locales/zh_CN/messages.json","packages/extension/public/_locales/en/messages.json","packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md","packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md","packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md","packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md","packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md","packages/core/tests/unit/image/openrouter-parameter-fix-summary.md","packages/core/tests/unit/template/soul-template-manual-acceptance.md","packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json"],"skills":{"packages/web/package.json":"{\n  \"name\": \"@prompt-optimizer/web\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite --force\",\n    \"build\": \"vite build\",\n    \"preview\": \"vite preview\",\n    \"typecheck\": \"vue-tsc --noEmit -p tsconfig.typecheck.json\",\n    \"test\": \"vitest\",\n    \"test:ui\": \"vitest --ui\",\n    \"test:coverage\": \"vitest run --coverage\",\n    \"test:unit\": \"vitest run tests/unit\"\n  },\n  \"dependencies\": {\n    \"@prompt-optimizer/ui\": \"workspace:*\",\n    \"vue\": \"^3.5.31\"\n  },\n  \"devDependencies\": {\n    \"@vitejs/plugin-vue\": \"^6.0.5\",\n    \"jsdom\": \"^29.0.1\",\n    \"vite\": \"^8.3.3\",\n    \"vitest\": \"^4.1.12\"\n  }\n}\n","packages/ui/tsconfig.build.json":"{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"noEmit\": false,\n    \"declaration\": true,\n    \"emitDeclarationOnly\": true,\n    \"declarationMap\": false,\n    \"composite\": false,\n    \"rootDir\": \".\",\n    \"outDir\": \"./dist\"\n  },\n  \"include\": [\"env.d.ts\", \"src/**/*\", \"src/**/*.vue\"]\n}\n","packages/web/tsconfig.typecheck.json":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"preserve\",\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"types\": [\"vite/client\", \"vue\"]\n  },\n  \"include\": [\"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\", \"tsconfig.node.json\"]\n}\n","packages/web/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"preserve\",\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"paths\": {\n      \"@prompt-optimizer/ui\": [\"../ui/src\"]\n    },\n    \"types\": [\"vite/client\", \"vue\"]\n  },\n  \"include\": [\"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\", \"tsconfig.node.json\"]\n} \n","packages/ui/package.json":"{\n  \"name\": \"@prompt-optimizer/ui\",\n  \"version\": \"0.0.1\",\n  \"private\": true,\n  \"license\": \"AGPL-3.0-only\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.cjs\",\n  \"module\": \"./dist/index.js\",\n  \"types\": \"./dist/src/index.d.ts\",\n  \"style\": \"./dist/style.css\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/src/index.d.ts\",\n      \"import\": \"./dist/index.js\",\n      \"require\": \"./dist/index.cjs\"\n    },\n    \"./style.css\": \"./dist/style.css\",\n    \"./dist/style.css\": \"./dist/style.css\"\n  },\n  \"files\": [\n    \"dist\"\n  ],\n  \"readme\": \"On Windows, use semicolons (;) instead of && as command separators, or run the build:win script.\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build:bundle\": \"vite build\",\n    \"build:types\": \"vue-tsc -p tsconfig.build.json\",\n    \"build\": \"pnpm run build:bundle && pnpm run build:types\",\n    \"build:win\": \"pnpm run build\",\n    \"test\": \"vitest run\",\n    \"typecheck\": \"vue-tsc --noEmit\",\n    \"lint\": \"eslint src --ext .ts,.vue\",\n    \"lint:fix\": \"eslint src --ext .ts,.vue --fix\"\n  },\n  \"dependencies\": {\n    \"@aws-sdk/client-s3\": \"^3.1129.0\",\n    \"@codemirror/autocomplete\": \"^6.20.1\",\n    \"@codemirror/language\": \"^6.12.3\",\n    \"@codemirror/state\": \"^6.6.0\",\n    \"@codemirror/view\": \"^6.40.0\",\n    \"@prompt-optimizer/core\": \"workspace:*\",\n    \"@vicons/tabler\": \"^0.13.0\",\n    \"@vueuse/core\": \"^14.2.1\",\n    \"codemirror\": \"^6.0.2\",\n    \"dompurify\": \"^3.4.16\",\n    \"fflate\": \"^0.8.3\",\n    \"highlight.js\": \"^11.11.1\",\n    \"markdown-it\": \"^14.3.3\",\n    \"naive-ui\": \"2.44.1\",\n    \"pinia\": \"^3.0.4\",\n    \"uuid\": \"^13.0.2\",\n    \"vue\": \"^3.5.31\",\n    \"vue-i18n\": \"^11.3.0\",\n    \"vue-router\": \"^5.0.4\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^10.0.1\",\n    \"@tailwindcss/forms\": \"^0.5.11\",\n    \"@tailwindcss/postcss\": \"^4.2.2\",\n    \"@tailwindcss/typography\": \"^0.5.19\",\n    \"@types/node\": \"^24.13.4\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.57.2\",\n    \"@typescript-eslint/parser\": \"^8.57.2\",\n    \"@vitejs/plugin-vue\": \"^6.0.5\",\n    \"@vue/test-utils\": \"^2.4.6\",\n    \"@vue/tsconfig\": \"^0.9.1\",\n    \"eslint\": \"^10.1.0\",\n    \"eslint-plugin-vue\": \"^10.8.0\",\n    \"globals\": \"^17.4.0\",\n    \"jsdom\": \"^29.0.1\",\n    \"postcss\": \"^8.5.28\",\n    \"tailwindcss\": \"^4.2.2\",\n    \"typescript\": \"^5.9.3\",\n    \"vite\": \"^8.3.3\",\n    \"vitest\": \"^4.1.12\",\n    \"vue-eslint-parser\": \"^10.4.0\",\n    \"vue-tsc\": \"^3.2.6\"\n  }\n}\n","packages/web/tsconfig.node.json":"{\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"skipLibCheck\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true\n  },\n  \"include\": [\"vite.config.ts\"]\n} ","packages/ui/README.md":"# @prompt-optimizer/ui\n\nPrompt Optimizer的Vue 3用户界面组件库，基于Naive UI设计系统构建的现代化UI组件集合。\n\n## 特性\n\n✅ **Vue 3 + TypeScript** - 完整的类型安全支持  \n✅ **Naive UI基础** - 基于成熟的设计系统  \n✅ **主题系统** - 支持亮色/暗色主题无缝切换  \n✅ **响应式设计** - 自动适配不同屏幕尺寸  \n✅ **国际化支持** - 多语言界面支持  \n✅ **模块化架构** - 可独立使用的组件  \n\n## 安装\n\n```bash\npnpm add @prompt-optimizer/ui @prompt-optimizer/core naive-ui\n```\n\n## 快速开始\n\n### 基础设置\n\n```typescript\nimport { createApp } from 'vue'\nimport { installI18n } from '@prompt-optimizer/ui'\nimport App from './App.vue'\n\nconst app = createApp(App)\n\n// 安装国际化\ninstallI18n(app)\n\napp.mount('#app')\n```\n\n### 主题配置\n\n```vue\n<template>\n  <NConfigProvider :theme=\"naiveTheme\" :theme-overrides=\"themeOverrides\">\n    <NMessageProvider>\n      <YourApp />\n    </NMessageProvider>\n  </NConfigProvider>\n</template>\n\n<script setup>\nimport { NConfigProvider, NMessageProvider } from 'naive-ui'\nimport { useNaiveTheme } from '@prompt-optimizer/ui'\n\nconst { naiveTheme, themeOverrides } = useNaiveTheme()\n</script>\n```\n\n## 核心组件\n\n### TestArea组件系统\n\n现代化的AI提示词测试界面，支持系统/用户提示词模式和对比测试功能。\n\n```vue\n<template>\n  <TestAreaPanel\n    :optimization-mode=\"optimizationMode\"\n    :is-test-running=\"isTestRunning\"\n    :test-content=\"testContent\"\n    :is-compare-mode=\"isCompareMode\"\n    @update:test-content=\"testContent = $event\"\n    @compare-toggle=\"handleCompareToggle\"\n    @test=\"handleTest\"\n  >\n    <template #model-select>\n      <SelectWithConfig\n        v-model=\"selectedModel\"\n        :options=\"modelOptions\"\n        :getPrimary=\"(o) => o.label\"\n        :getValue=\"(o) => o.value\"\n      />\n    </template>\n  </TestAreaPanel>\n</template>\n```\n\n**包含组件：**\n- `TestAreaPanel` - 主容器组件\n- `TestInputSection` - 测试内容输入\n- `TestControlBar` - 测试控制栏\n- `TestResultSection` - 测试结果展示\n- `ConversationSection` - 会话管理包装\n\n### 模型管理\n\n```vue\n<template>\n  <!-- 模型选择器 -->\n  <SelectWithConfig\n    v-model=\"selectedModel\"\n    :options=\"modelOptions\"\n    :getPrimary=\"(o) => o.label\"\n    :getValue=\"(o) => o.value\"\n  />\n  \n  <!-- 模型管理器 -->\n  <ModelManagerUI @model-updated=\"handleModelUpdate\" />\n</template>\n```\n\n### 模板系统\n\n```vue\n<template>\n  <!-- 模板选择器 -->\n  <TemplateSelectUI v-model=\"selectedTemplate\" />\n  \n  <!-- 模板管理器 -->\n  <TemplateManagerUI @template-saved=\"handleTemplateSave\" />\n</template>\n```\n\n### 输入输出\n\n```vue\n<template>\n  <!-- 输入面板 -->\n  <InputPanelUI \n    v-model=\"inputContent\"\n    :placeholder=\"placeholder\"\n  />\n  \n  <!-- 输出显示 -->\n  <OutputDisplay \n    :content=\"outputContent\"\n    :enable-fullscreen=\"true\"\n  />\n  \n  <!-- 全屏输出显示 -->\n  <OutputDisplayFullscreen \n    v-model:visible=\"showFullscreen\"\n    :content=\"content\"\n  />\n</template>\n```\n\n### 布局组件\n\n```vue\n<template>\n  <!-- 主布局 -->\n  <MainLayoutUI>\n    <template #header>\n      <YourHeader />\n    </template>\n    <template #sidebar>\n      <YourSidebar />\n    </template>\n    <YourContent />\n  </MainLayoutUI>\n  \n  <!-- 内容卡片 -->\n  <ContentCardUI :title=\"cardTitle\">\n    <YourContent />\n  </ContentCardUI>\n</template>\n```\n\n### 数据管理\n\n```vue\n<template>\n  <!-- 数据管理器 -->\n  <DataManagerUI \n    @data-imported=\"handleImport\"\n    @data-exported=\"handleExport\"\n  />\n  \n  <!-- 变量管理 -->\n  <VariableManager \n    v-model=\"variables\"\n    @variable-updated=\"handleVariableUpdate\"\n  />\n</template>\n```\n\n## Composables\n\n### 主题管理\n\n```typescript\nimport { useNaiveTheme } from '@prompt-optimizer/ui'\n\nconst {\n  naiveTheme,       // Naive UI主题对象\n  themeOverrides,   // 主题覆盖配置\n  currentTheme,     // 当前主题ID\n  switchTheme,      // 切换主题\n  initTheme         // 初始化主题\n} = useNaiveTheme()\n```\n\n### 响应式布局\n\n```typescript\nimport { useResponsiveTestLayout } from '@prompt-optimizer/ui'\n\nconst {\n  isMobile,           // 是否为移动端\n  isTablet,           // 是否为平板\n  currentBreakpoint,  // 当前断点\n  inputMode,          // 推荐的输入模式\n  controlBarLayout,   // 推荐的控制栏布局\n  buttonSize,         // 推荐的按钮尺寸\n  responsiveHeights   // 响应式高度配置\n} = useResponsiveTestLayout()\n```\n\n### 测试模式配置\n\n```typescript\nimport { useTestModeConfig } from '@prompt-optimizer/ui'\n\nconst {\n  showTestInput,          // 是否显示测试输入\n  requiresTestContent,    // 是否需要测试内容\n  canStartTest,           // 是否可以开始测试\n  enableCompareMode,      // 是否启用对比模式\n  getDynamicButtonText,   // 获取动态按钮文本\n  validateTestSetup       // 验证测试配置\n} = useTestModeConfig(optimizationMode)\n```\n\n## 组件导出\n\n### UI组件\n\n```typescript\n// 核心组件\nexport { default as ToastUI } from './components/Toast.vue'\nexport { default as ModalUI } from './components/Modal.vue'\nexport { default as PanelUI } from './components/Panel.vue'\n\n// 布局组件\nexport { default as MainLayoutUI } from './components/MainLayout.vue'\nexport { default as ContentCardUI } from './components/ContentCard.vue'\n\n// TestArea组件系统\nexport { default as TestAreaPanel } from './components/TestAreaPanel.vue'\nexport { default as TestInputSection } from './components/TestInputSection.vue'\nexport { default as TestControlBar } from './components/TestControlBar.vue'\nexport { default as TestResultSection } from './components/TestResultSection.vue'\nexport { default as ConversationSection } from './components/ConversationSection.vue'\n\n// 输入输出组件\nexport { default as InputPanelUI } from './components/InputPanel.vue'\nexport { default as OutputDisplay } from './components/OutputDisplay.vue'\nexport { default as OutputDisplayFullscreen } from './components/OutputDisplayFullscreen.vue'\nexport { default as OutputDisplayCore } from './components/OutputDisplayCore.vue'\n\n// 管理组件\nexport { default as ModelManagerUI } from './components/ModelManager.vue'\nexport { default as TemplateManagerUI } from './components/TemplateManager.vue'\nexport { default as TemplateSelectUI } from './components/TemplateSelect.vue'\nexport { default as DataManagerUI } from './components/DataManager.vue'\nexport { default as VariableManager } from './components/VariableManager.vue'\nexport { default as FunctionModelManagerUI } from './components/FunctionModelManager.vue'\n\n// 功能组件\nexport { default as ActionButtonUI } from './components/ActionButton.vue'\nexport { default as ThemeToggleUI } from './components/ThemeToggleUI.vue'\nexport { default as LanguageSwitchDropdown } from './components/LanguageSwitchDropdown.vue'\nexport { default as OptimizationModeSelectorUI } from './components/OptimizationModeSelector.vue'\nexport { default as TextDiffUI } from './components/TextDiff.vue'\nexport { default as MarkdownRenderer } from './components/MarkdownRenderer.vue'\n\n// 高级组件\nexport { default as AdvancedTestPanel } from './components/AdvancedTestPanel.vue'\nexport { default as ConversationManager } from './components/ConversationManager.vue'\nexport { default as VariableEditor } from './components/VariableEditor.vue'\nexport { default as HistoryDrawerUI } from './components/HistoryDrawer.vue'\n```\n\n### Composables\n\n```typescript\n// 导出所有composables\nexport * from './composables'\n\n// 主要composables\nexport { useNaiveTheme } from './composables/useNaiveTheme'\nexport { useResponsiveTestLayout } from './composables/useResponsiveTestLayout'\nexport { useTestModeConfig } from './composables/useTestModeConfig'\n```\n\n### 主题系统\n\n```typescript\n// 主题配置\nexport { \n  currentNaiveTheme as naiveTheme,\n  currentThemeOverrides as themeOverrides, \n  currentThemeId, \n  currentThemeConfig,\n  naiveThemeConfigs,\n  switchTheme,\n  initializeNaiveTheme\n} from './config/naive-theme'\n```\n\n### 国际化\n\n```typescript\n// I18n系统\nexport { \n  installI18n, \n  installI18nOnly, \n  initializeI18nWithStorage, \n  setI18nServices, \n  i18n \n} from './plugins/i18n'\n```\n\n## 类型系统\n\n### 核心类型\n\n```typescript\nimport type { \n  OptimizationMode,\n  ConversationMessage,\n  Template,\n  IModelManager,\n  ITemplateManager,\n  ILLMService,\n  IPromptService\n} from '@prompt-optimizer/core'\n\n// TestArea组件类型\nexport interface TestAreaConfig {\n  optimizationMode: OptimizationMode\n  inputMode: 'default' | 'compact'\n  controlBarLayout: 'default' | 'compact'\n  buttonSize: 'small' | 'medium' | 'large'\n}\n\nexport interface TestControlLayout {\n  showCompareToggle: boolean\n  primaryActionText: string\n  buttonSize: string\n}\n```\n\n## 样式规范\n\nUI组件遵循严格的设计规范：\n\n- **无硬编码像素值** - 使用Naive UI的size系统\n- **无Tailwind CSS类** - 纯Naive UI组件实现\n- **统一间距系统** - 基于16px基准的间距规范\n- **响应式设计** - 支持xs/sm/md/lg/xl/xxl断点\n- **主题兼容性** - 完全兼容亮色/暗色主题\n\n详见：[测试区域组件样式规范](../docs/components/test-area-style-guide.md)\n\n## 开发\n\n### 本地开发\n\n```bash\n# 安装依赖\npnpm install\n\n# 开发模式\npnpm dev\n\n# 构建UI包\npnpm -F @prompt-optimizer/ui build\n\n# 运行测试\npnpm -F @prompt-optimizer/ui test\n\n# 类型检查\npnpm -F @prompt-optimizer/ui exec tsc --noEmit\n```\n\n### 测试\n\n```bash\n# 运行所有测试\npnpm -F @prompt-optimizer/ui test\n\n# 运行特定组件测试\npnpm -F @prompt-optimizer/ui test -- TestAreaPanel\n\n# 运行集成测试\npnpm -F @prompt-optimizer/ui test -- test-area-integration\n\n# 运行端到端测试  \npnpm -F @prompt-optimizer/ui test -- test-area-e2e\n```\n\n### 组件开发指南\n\n1. **使用Naive UI组件** - 基于NButton、NInput、NFlex等\n2. **遵循TypeScript规范** - 完整的类型定义\n3. **支持主题切换** - 使用主题变量而非硬编码颜色\n4. **响应式设计** - 适配不同屏幕尺寸\n5. **国际化支持** - 所有文本使用i18n\n6. **单元测试** - 为每个组件编写测试用例\n\n## 依赖\n\n### 核心依赖\n\n- **Vue 3.x** - 渐进式JavaScript框架\n- **Naive UI 2.x** - Vue 3设计系统组件库\n- **@prompt-optimizer/core** - 核心业务逻辑\n- **Vue I18n** - Vue国际化插件\n\n### 开发依赖\n\n- **TypeScript 5.x** - 类型系统\n- **Vitest** - 单元测试框架\n- **@vue/test-utils** - Vue组件测试工具\n- **Vite** - 现代化构建工具\n\n## 兼容性\n\n- **Vue**: 3.0+\n- **Node.js**: 18.0+\n- **浏览器**: Chrome 88+, Firefox 85+, Safari 14+\n- **Naive UI**: 2.34+\n\n## 许可证\n\nGNU Affero General Public License v3.0 (AGPL-3.0-only)\n\n## 文档\n\n- [完整组件文档](../docs/components/test-area.md)\n- [样式规范指南](../docs/components/test-area-style-guide.md)\n- [开发者指南](../docs/developer/technical-development-guide.md)\n\n---\n\n**最后更新：** 2025-01-20  \n**版本：** 1.4.4\n","packages/mcp-server/package.json":"{\n  \"name\": \"@prompt-optimizer/mcp-server\",\n  \"version\": \"0.1.0\",\n  \"description\": \"MCP (Model Context Protocol) server for prompt-optimizer\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.js\",\n  \"types\": \"./dist/index.d.ts\",\n  \"bin\": {\n    \"prompt-optimizer-mcp\": \"./bin/prompt-optimizer-mcp.cjs\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup src/index.ts src/start.ts --format cjs,esm --dts --clean\",\n    \"dev\": \"node -r ./preload-env.js dist/start.js --transport=http\",\n    \"start\": \"node -r ./preload-env.cjs dist/start.cjs --transport=http\",\n    \"test\": \"vitest run\",\n    \"lint\": \"eslint src --ext .ts\",\n    \"type-check\": \"tsc --noEmit\"\n  },\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"prompt-optimization\",\n    \"llm\",\n    \"ai\"\n  ],\n  \"author\": \"Prompt Optimizer Team\",\n  \"license\": \"AGPL-3.0-only\",\n  \"dependencies\": {\n    \"@modelcontextprotocol/sdk\": \"^1.32.0\",\n    \"@prompt-optimizer/core\": \"workspace:*\",\n    \"debug\": \"^4.4.3\",\n    \"dotenv\": \"^17.3.1\",\n    \"express\": \"^5.2.1\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^10.0.1\",\n    \"@types/debug\": \"^4.1.13\",\n    \"@types/express\": \"^5.0.6\",\n    \"@types/node\": \"^24.13.4\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.57.2\",\n    \"@typescript-eslint/parser\": \"^8.57.2\",\n    \"eslint\": \"^10.1.0\",\n    \"globals\": \"^17.4.0\",\n    \"tsup\": \"^8.5.1\",\n    \"typescript\": \"^5.9.3\",\n    \"vitest\": \"^4.1.12\"\n  },\n  \"engines\": {\n    \"node\": \"^24.22.1\"\n  },\n  \"files\": [\n    \"bin\",\n    \"dist\",\n    \"README.md\"\n  ]\n}\n","packages/ui/tsconfig.json":"{\n  \"extends\": \"@vue/tsconfig/tsconfig.dom.json\",\n  \"include\": [\"env.d.ts\", \"src/**/*\", \"src/**/*.vue\"],\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"paths\": {\n      \"@/*\": [\"./src/*\"]\n    }\n  }\n}\n","packages/ui/tsconfig.node.json":"{\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"skipLibCheck\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true\n  },\n  \"include\": [\"vite.config.ts\"]\n} ","packages/mcp-server/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"./src\",\n    \"module\": \"ESNext\",\n    \"target\": \"ES2022\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"ignoreDeprecations\": \"5.0\",\n    \"noEmit\": false,\n    \"lib\": [\n      \"ES2022\",\n      \"DOM\"\n    ]\n  },\n  \"include\": [\n    \"src/**/*\"\n  ],\n  \"exclude\": [\n    \"dist\",\n    \"node_modules\",\n    \"tests\",\n    \"**/*.test.ts\"\n  ]\n}\n","packages/mcp-server/README.md":"# 提示词优化器 MCP 服务器\n\n为提示词优化器项目提供的 MCP (Model Context Protocol) 服务器。提供提示词优化工具，支持通过 HTTP 协议连接，可被任何 MCP 兼容客户端使用。\n\n> **用户部署和使用指南**：请查看 [MCP 服务器用户指南](../../docs/user/mcp-server.md)\n\n## 功能特性\n\n- **optimize-user-prompt**: 优化用户提示词以提升 LLM 性能\n- **optimize-system-prompt**: 优化系统提示词以提升 LLM 性能\n- **iterate-prompt**: 基于特定需求迭代改进成熟的提示词\n\n## 快速开始\n\n### 开发模式（推荐）\n\n```bash\n# 安装依赖\npnpm install\n\n# 开发模式：自动监听文件变化，自动重新编译和重启服务器\npnpm dev\n```\n\n服务器将在 `http://localhost:3000/mcp` 启动，修改代码后自动重启。\n\n### 生产模式\n\n```bash\n# 1. 构建项目\npnpm build\n\n# 2. 启动服务器\npnpm start\n```\n\n服务器将在 `http://localhost:3000/mcp` 启动。\n\n### 根目录快捷命令\n\n如果你在项目根目录，可以使用以下快捷命令：\n\n```bash\n# 开发模式\npnpm mcp:dev\n\n# 构建项目\npnpm mcp:build\n\n# 启动服务器（默认已启用 debug 日志）\npnpm mcp:start\n\n# 如需调整日志级别\nMCP_LOG_LEVEL=info pnpm mcp:start\n\n# 运行测试\npnpm mcp:test\n```\n\n## 开发配置\n\n### 环境变量\n\n开发时需要在项目根目录配置 `.env.local` 文件。详细的配置说明请参考 [用户指南](../../docs/user/mcp-server.md#环境变量配置)。\n\n开发环境最小配置示例：\n```bash\n# 至少配置一个 API 密钥\nVITE_OPENAI_API_KEY=your-openai-key\nMCP_DEFAULT_MODEL_PROVIDER=openai\nMCP_LOG_LEVEL=debug\n```\n\n## 日志配置\n\nMCP 服务器默认启用 `debug` 级别日志，可通过 `MCP_LOG_LEVEL` 环境变量调整：\n\n```bash\n# 默认 debug 级别（显示所有日志）\npnpm start\n\n# 调整为 info 级别\nMCP_LOG_LEVEL=info pnpm start\n\n# 调整为 warn 级别\nMCP_LOG_LEVEL=warn pnpm start\n\n# 调整为 error 级别\nMCP_LOG_LEVEL=error pnpm start\n```\n\n### 日志级别说明\n\n- `debug` - 调试信息（默认，开发时使用）\n- `info` - 一般信息（服务启动、配置等）\n- `warn` - 警告信息（非致命问题）\n- `error` - 错误信息（需要关注的问题）\n\n\n\n## 开发\n\n```bash\n# 开发模式（自动监听文件变化，自动重启服务器）\npnpm dev\n\n# 运行测试\npnpm test\n\n# 类型检查\npnpm type-check\n\n# 代码检查\npnpm lint\n```\n\n## 测试与调试\n\n### 使用 MCP Inspector 测试\n\nMCP Inspector 是官方提供的可视化测试工具，支持通过 Web UI 测试 MCP 服务器。\n\n#### 使用 MCP Inspector 测试\n\n```bash\n# 1. 启动 MCP 服务器\npnpm start\n\n# 2. 在另一个终端启动 Inspector\nnpx @modelcontextprotocol/inspector\n```\n\n然后在 Inspector Web UI 中：\n1. 选择传输方式：`Streamable HTTP`\n2. 服务器 URL：`http://localhost:3000/mcp`\n3. 点击 \"Connect\" 连接服务器\n4. 测试可用的工具：`optimize-user-prompt`、`optimize-system-prompt`、`iterate-prompt`\n\n#### 其他测试方法\n\n**重要提示**：MCP 协议不是简单的 REST API，不能直接用 curl 测试。\n\n**推荐的测试方式**：\n1. **MCP Inspector**（官方工具）- 最佳选择\n2. **Claude Desktop** - 实际使用场景\n3. **自定义 MCP 客户端** - 使用 `@modelcontextprotocol/sdk`\n\n**为什么不能用 curl**：\n- MCP 使用 JSON-RPC 2.0 协议\n- 需要特殊的握手和初始化过程\n- HTTP 传输使用流式连接，不是简单的请求-响应\n\n## 📚 相关文档\n\n- [MCP 服务器用户指南](../../docs/user/mcp-server.md) - 用户部署和使用指南\n- [MCP 服务器开发经验](../../docs/archives/120-mcp-server-module/experience.md) - 开发经验和最佳实践\n- [项目主页](../../README.md) - 项目概述和快速开始\n\n## 架构设计\n\n此 MCP 服务器遵循零侵入设计原则：\n- 仅使用现有 Core 模块 API，无需修改\n- 采用内存存储实现无状态操作\n- 提供 MCP 和 Core 格式之间的参数适配\n\n## 许可证\n\nGNU Affero General Public License v3.0 (AGPL-3.0-only)\n","packages/extension/chrome.md":"# Extension Skill\n\nPath: `packages/extension/chrome.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/chrome.md)","packages/extension/package.json":"# Extension Skill\n\nPath: `packages/extension/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/package.json)","packages/extension/permissions-explanation.md":"# Extension Skill\n\nPath: `packages/extension/permissions-explanation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/permissions-explanation.md)","packages/extension/privacy-policy.md":"# Extension Skill\n\nPath: `packages/extension/privacy-policy.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/privacy-policy.md)","packages/extension/publish-guide.md":"# Extension Skill\n\nPath: `packages/extension/publish-guide.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/publish-guide.md)","packages/extension/screenshots.md":"# Extension Skill\n\nPath: `packages/extension/screenshots.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/screenshots.md)","packages/extension/tsconfig.json":"# Extension Skill\n\nPath: `packages/extension/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.json)","packages/extension/tsconfig.node.json":"# Extension Skill\n\nPath: `packages/extension/tsconfig.node.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.node.json)","packages/extension/tsconfig.typecheck.json":"# Extension Skill\n\nPath: `packages/extension/tsconfig.typecheck.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.typecheck.json)","packages/desktop/package.json":"# Desktop Skill\n\nPath: `packages/desktop/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/package.json)","packages/desktop/README.md":"# desktop Documentation\n\nPath: `packages/desktop/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README.md)","packages/desktop/README-env-config.md":"# Desktop Skill\n\nPath: `packages/desktop/README-env-config.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README-env-config.md)","packages/core/package.json":"# Core Skill\n\nPath: `packages/core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/package.json)","packages/core/tsconfig.json":"# Core Skill\n\nPath: `packages/core/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tsconfig.json)","packages/ui/docs/ACCESSIBILITY_GUIDE.md":"# Docs Skill\n\nPath: `packages/ui/docs/ACCESSIBILITY_GUIDE.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/ACCESSIBILITY_GUIDE.md)","packages/ui/docs/COMPONENT_API.md":"# Docs Skill\n\nPath: `packages/ui/docs/COMPONENT_API.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/COMPONENT_API.md)","packages/ui/docs/README.md":"# docs Documentation\n\nPath: `packages/ui/docs/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/README.md)","packages/ui/tests/tsconfig.json":"# Tests Skill\n\nPath: `packages/ui/tests/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/tsconfig.json)","packages/extension/public/manifest.json":"# Public Skill\n\nPath: `packages/extension/public/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/manifest.json)","packages/ui/src/i18n/README.md":"# i18n Documentation\n\nPath: `packages/ui/src/i18n/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/src/i18n/README.md)","packages/core/tests/helpers/README.md":"# helpers Documentation\n\nPath: `packages/core/tests/helpers/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/helpers/README.md)","packages/core/tests/fixtures/README.md":"# fixtures Documentation\n\nPath: `packages/core/tests/fixtures/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/README.md)","packages/ui/tests/unit/composables/connection-test-fix-summary.md":"# Composables Skill\n\nPath: `packages/ui/tests/unit/composables/connection-test-fix-summary.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/unit/composables/connection-test-fix-summary.md)","packages/extension/public/_locales/zh_CN/messages.json":"# Zh_CN Skill\n\nPath: `packages/extension/public/_locales/zh_CN/messages.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/zh_CN/messages.json)","packages/extension/public/_locales/en/messages.json":"# En Skill\n\nPath: `packages/extension/public/_locales/en/messages.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/en/messages.json)","packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md)","packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md)","packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md)","packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md)","packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md)","packages/core/tests/unit/image/openrouter-parameter-fix-summary.md":"# Image Skill\n\nPath: `packages/core/tests/unit/image/openrouter-parameter-fix-summary.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/image/openrouter-parameter-fix-summary.md)","packages/core/tests/unit/template/soul-template-manual-acceptance.md":"# Template Skill\n\nPath: `packages/core/tests/unit/template/soul-template-manual-acceptance.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/template/soul-template-manual-acceptance.md)","packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json":"# Deepseek Skill\n\nPath: `packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json)"},"files":{"packages/web/package.json":"{\n  \"name\": \"@prompt-optimizer/web\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite --force\",\n    \"build\": \"vite build\",\n    \"preview\": \"vite preview\",\n    \"typecheck\": \"vue-tsc --noEmit -p tsconfig.typecheck.json\",\n    \"test\": \"vitest\",\n    \"test:ui\": \"vitest --ui\",\n    \"test:coverage\": \"vitest run --coverage\",\n    \"test:unit\": \"vitest run tests/unit\"\n  },\n  \"dependencies\": {\n    \"@prompt-optimizer/ui\": \"workspace:*\",\n    \"vue\": \"^3.5.31\"\n  },\n  \"devDependencies\": {\n    \"@vitejs/plugin-vue\": \"^6.0.5\",\n    \"jsdom\": \"^29.0.1\",\n    \"vite\": \"^8.3.3\",\n    \"vitest\": \"^4.1.12\"\n  }\n}\n","packages/ui/tsconfig.build.json":"{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"noEmit\": false,\n    \"declaration\": true,\n    \"emitDeclarationOnly\": true,\n    \"declarationMap\": false,\n    \"composite\": false,\n    \"rootDir\": \".\",\n    \"outDir\": \"./dist\"\n  },\n  \"include\": [\"env.d.ts\", \"src/**/*\", \"src/**/*.vue\"]\n}\n","packages/web/tsconfig.typecheck.json":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"preserve\",\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"types\": [\"vite/client\", \"vue\"]\n  },\n  \"include\": [\"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\", \"tsconfig.node.json\"]\n}\n","packages/web/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"preserve\",\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"paths\": {\n      \"@prompt-optimizer/ui\": [\"../ui/src\"]\n    },\n    \"types\": [\"vite/client\", \"vue\"]\n  },\n  \"include\": [\"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\", \"tsconfig.node.json\"]\n} \n","packages/ui/package.json":"{\n  \"name\": \"@prompt-optimizer/ui\",\n  \"version\": \"0.0.1\",\n  \"private\": true,\n  \"license\": \"AGPL-3.0-only\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.cjs\",\n  \"module\": \"./dist/index.js\",\n  \"types\": \"./dist/src/index.d.ts\",\n  \"style\": \"./dist/style.css\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/src/index.d.ts\",\n      \"import\": \"./dist/index.js\",\n      \"require\": \"./dist/index.cjs\"\n    },\n    \"./style.css\": \"./dist/style.css\",\n    \"./dist/style.css\": \"./dist/style.css\"\n  },\n  \"files\": [\n    \"dist\"\n  ],\n  \"readme\": \"On Windows, use semicolons (;) instead of && as command separators, or run the build:win script.\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build:bundle\": \"vite build\",\n    \"build:types\": \"vue-tsc -p tsconfig.build.json\",\n    \"build\": \"pnpm run build:bundle && pnpm run build:types\",\n    \"build:win\": \"pnpm run build\",\n    \"test\": \"vitest run\",\n    \"typecheck\": \"vue-tsc --noEmit\",\n    \"lint\": \"eslint src --ext .ts,.vue\",\n    \"lint:fix\": \"eslint src --ext .ts,.vue --fix\"\n  },\n  \"dependencies\": {\n    \"@aws-sdk/client-s3\": \"^3.1129.0\",\n    \"@codemirror/autocomplete\": \"^6.20.1\",\n    \"@codemirror/language\": \"^6.12.3\",\n    \"@codemirror/state\": \"^6.6.0\",\n    \"@codemirror/view\": \"^6.40.0\",\n    \"@prompt-optimizer/core\": \"workspace:*\",\n    \"@vicons/tabler\": \"^0.13.0\",\n    \"@vueuse/core\": \"^14.2.1\",\n    \"codemirror\": \"^6.0.2\",\n    \"dompurify\": \"^3.4.16\",\n    \"fflate\": \"^0.8.3\",\n    \"highlight.js\": \"^11.11.1\",\n    \"markdown-it\": \"^14.3.3\",\n    \"naive-ui\": \"2.44.1\",\n    \"pinia\": \"^3.0.4\",\n    \"uuid\": \"^13.0.2\",\n    \"vue\": \"^3.5.31\",\n    \"vue-i18n\": \"^11.3.0\",\n    \"vue-router\": \"^5.0.4\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^10.0.1\",\n    \"@tailwindcss/forms\": \"^0.5.11\",\n    \"@tailwindcss/postcss\": \"^4.2.2\",\n    \"@tailwindcss/typography\": \"^0.5.19\",\n    \"@types/node\": \"^24.13.4\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.57.2\",\n    \"@typescript-eslint/parser\": \"^8.57.2\",\n    \"@vitejs/plugin-vue\": \"^6.0.5\",\n    \"@vue/test-utils\": \"^2.4.6\",\n    \"@vue/tsconfig\": \"^0.9.1\",\n    \"eslint\": \"^10.1.0\",\n    \"eslint-plugin-vue\": \"^10.8.0\",\n    \"globals\": \"^17.4.0\",\n    \"jsdom\": \"^29.0.1\",\n    \"postcss\": \"^8.5.28\",\n    \"tailwindcss\": \"^4.2.2\",\n    \"typescript\": \"^5.9.3\",\n    \"vite\": \"^8.3.3\",\n    \"vitest\": \"^4.1.12\",\n    \"vue-eslint-parser\": \"^10.4.0\",\n    \"vue-tsc\": \"^3.2.6\"\n  }\n}\n","packages/web/tsconfig.node.json":"{\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"skipLibCheck\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true\n  },\n  \"include\": [\"vite.config.ts\"]\n} ","packages/ui/README.md":"# @prompt-optimizer/ui\n\nPrompt Optimizer的Vue 3用户界面组件库，基于Naive UI设计系统构建的现代化UI组件集合。\n\n## 特性\n\n✅ **Vue 3 + TypeScript** - 完整的类型安全支持  \n✅ **Naive UI基础** - 基于成熟的设计系统  \n✅ **主题系统** - 支持亮色/暗色主题无缝切换  \n✅ **响应式设计** - 自动适配不同屏幕尺寸  \n✅ **国际化支持** - 多语言界面支持  \n✅ **模块化架构** - 可独立使用的组件  \n\n## 安装\n\n```bash\npnpm add @prompt-optimizer/ui @prompt-optimizer/core naive-ui\n```\n\n## 快速开始\n\n### 基础设置\n\n```typescript\nimport { createApp } from 'vue'\nimport { installI18n } from '@prompt-optimizer/ui'\nimport App from './App.vue'\n\nconst app = createApp(App)\n\n// 安装国际化\ninstallI18n(app)\n\napp.mount('#app')\n```\n\n### 主题配置\n\n```vue\n<template>\n  <NConfigProvider :theme=\"naiveTheme\" :theme-overrides=\"themeOverrides\">\n    <NMessageProvider>\n      <YourApp />\n    </NMessageProvider>\n  </NConfigProvider>\n</template>\n\n<script setup>\nimport { NConfigProvider, NMessageProvider } from 'naive-ui'\nimport { useNaiveTheme } from '@prompt-optimizer/ui'\n\nconst { naiveTheme, themeOverrides } = useNaiveTheme()\n</script>\n```\n\n## 核心组件\n\n### TestArea组件系统\n\n现代化的AI提示词测试界面，支持系统/用户提示词模式和对比测试功能。\n\n```vue\n<template>\n  <TestAreaPanel\n    :optimization-mode=\"optimizationMode\"\n    :is-test-running=\"isTestRunning\"\n    :test-content=\"testContent\"\n    :is-compare-mode=\"isCompareMode\"\n    @update:test-content=\"testContent = $event\"\n    @compare-toggle=\"handleCompareToggle\"\n    @test=\"handleTest\"\n  >\n    <template #model-select>\n      <SelectWithConfig\n        v-model=\"selectedModel\"\n        :options=\"modelOptions\"\n        :getPrimary=\"(o) => o.label\"\n        :getValue=\"(o) => o.value\"\n      />\n    </template>\n  </TestAreaPanel>\n</template>\n```\n\n**包含组件：**\n- `TestAreaPanel` - 主容器组件\n- `TestInputSection` - 测试内容输入\n- `TestControlBar` - 测试控制栏\n- `TestResultSection` - 测试结果展示\n- `ConversationSection` - 会话管理包装\n\n### 模型管理\n\n```vue\n<template>\n  <!-- 模型选择器 -->\n  <SelectWithConfig\n    v-model=\"selectedModel\"\n    :options=\"modelOptions\"\n    :getPrimary=\"(o) => o.label\"\n    :getValue=\"(o) => o.value\"\n  />\n  \n  <!-- 模型管理器 -->\n  <ModelManagerUI @model-updated=\"handleModelUpdate\" />\n</template>\n```\n\n### 模板系统\n\n```vue\n<template>\n  <!-- 模板选择器 -->\n  <TemplateSelectUI v-model=\"selectedTemplate\" />\n  \n  <!-- 模板管理器 -->\n  <TemplateManagerUI @template-saved=\"handleTemplateSave\" />\n</template>\n```\n\n### 输入输出\n\n```vue\n<template>\n  <!-- 输入面板 -->\n  <InputPanelUI \n    v-model=\"inputContent\"\n    :placeholder=\"placeholder\"\n  />\n  \n  <!-- 输出显示 -->\n  <OutputDisplay \n    :content=\"outputContent\"\n    :enable-fullscreen=\"true\"\n  />\n  \n  <!-- 全屏输出显示 -->\n  <OutputDisplayFullscreen \n    v-model:visible=\"showFullscreen\"\n    :content=\"content\"\n  />\n</template>\n```\n\n### 布局组件\n\n```vue\n<template>\n  <!-- 主布局 -->\n  <MainLayoutUI>\n    <template #header>\n      <YourHeader />\n    </template>\n    <template #sidebar>\n      <YourSidebar />\n    </template>\n    <YourContent />\n  </MainLayoutUI>\n  \n  <!-- 内容卡片 -->\n  <ContentCardUI :title=\"cardTitle\">\n    <YourContent />\n  </ContentCardUI>\n</template>\n```\n\n### 数据管理\n\n```vue\n<template>\n  <!-- 数据管理器 -->\n  <DataManagerUI \n    @data-imported=\"handleImport\"\n    @data-exported=\"handleExport\"\n  />\n  \n  <!-- 变量管理 -->\n  <VariableManager \n    v-model=\"variables\"\n    @variable-updated=\"handleVariableUpdate\"\n  />\n</template>\n```\n\n## Composables\n\n### 主题管理\n\n```typescript\nimport { useNaiveTheme } from '@prompt-optimizer/ui'\n\nconst {\n  naiveTheme,       // Naive UI主题对象\n  themeOverrides,   // 主题覆盖配置\n  currentTheme,     // 当前主题ID\n  switchTheme,      // 切换主题\n  initTheme         // 初始化主题\n} = useNaiveTheme()\n```\n\n### 响应式布局\n\n```typescript\nimport { useResponsiveTestLayout } from '@prompt-optimizer/ui'\n\nconst {\n  isMobile,           // 是否为移动端\n  isTablet,           // 是否为平板\n  currentBreakpoint,  // 当前断点\n  inputMode,          // 推荐的输入模式\n  controlBarLayout,   // 推荐的控制栏布局\n  buttonSize,         // 推荐的按钮尺寸\n  responsiveHeights   // 响应式高度配置\n} = useResponsiveTestLayout()\n```\n\n### 测试模式配置\n\n```typescript\nimport { useTestModeConfig } from '@prompt-optimizer/ui'\n\nconst {\n  showTestInput,          // 是否显示测试输入\n  requiresTestContent,    // 是否需要测试内容\n  canStartTest,           // 是否可以开始测试\n  enableCompareMode,      // 是否启用对比模式\n  getDynamicButtonText,   // 获取动态按钮文本\n  validateTestSetup       // 验证测试配置\n} = useTestModeConfig(optimizationMode)\n```\n\n## 组件导出\n\n### UI组件\n\n```typescript\n// 核心组件\nexport { default as ToastUI } from './components/Toast.vue'\nexport { default as ModalUI } from './components/Modal.vue'\nexport { default as PanelUI } from './components/Panel.vue'\n\n// 布局组件\nexport { default as MainLayoutUI } from './components/MainLayout.vue'\nexport { default as ContentCardUI } from './components/ContentCard.vue'\n\n// TestArea组件系统\nexport { default as TestAreaPanel } from './components/TestAreaPanel.vue'\nexport { default as TestInputSection } from './components/TestInputSection.vue'\nexport { default as TestControlBar } from './components/TestControlBar.vue'\nexport { default as TestResultSection } from './components/TestResultSection.vue'\nexport { default as ConversationSection } from './components/ConversationSection.vue'\n\n// 输入输出组件\nexport { default as InputPanelUI } from './components/InputPanel.vue'\nexport { default as OutputDisplay } from './components/OutputDisplay.vue'\nexport { default as OutputDisplayFullscreen } from './components/OutputDisplayFullscreen.vue'\nexport { default as OutputDisplayCore } from './components/OutputDisplayCore.vue'\n\n// 管理组件\nexport { default as ModelManagerUI } from './components/ModelManager.vue'\nexport { default as TemplateManagerUI } from './components/TemplateManager.vue'\nexport { default as TemplateSelectUI } from './components/TemplateSelect.vue'\nexport { default as DataManagerUI } from './components/DataManager.vue'\nexport { default as VariableManager } from './components/VariableManager.vue'\nexport { default as FunctionModelManagerUI } from './components/FunctionModelManager.vue'\n\n// 功能组件\nexport { default as ActionButtonUI } from './components/ActionButton.vue'\nexport { default as ThemeToggleUI } from './components/ThemeToggleUI.vue'\nexport { default as LanguageSwitchDropdown } from './components/LanguageSwitchDropdown.vue'\nexport { default as OptimizationModeSelectorUI } from './components/OptimizationModeSelector.vue'\nexport { default as TextDiffUI } from './components/TextDiff.vue'\nexport { default as MarkdownRenderer } from './components/MarkdownRenderer.vue'\n\n// 高级组件\nexport { default as AdvancedTestPanel } from './components/AdvancedTestPanel.vue'\nexport { default as ConversationManager } from './components/ConversationManager.vue'\nexport { default as VariableEditor } from './components/VariableEditor.vue'\nexport { default as HistoryDrawerUI } from './components/HistoryDrawer.vue'\n```\n\n### Composables\n\n```typescript\n// 导出所有composables\nexport * from './composables'\n\n// 主要composables\nexport { useNaiveTheme } from './composables/useNaiveTheme'\nexport { useResponsiveTestLayout } from './composables/useResponsiveTestLayout'\nexport { useTestModeConfig } from './composables/useTestModeConfig'\n```\n\n### 主题系统\n\n```typescript\n// 主题配置\nexport { \n  currentNaiveTheme as naiveTheme,\n  currentThemeOverrides as themeOverrides, \n  currentThemeId, \n  currentThemeConfig,\n  naiveThemeConfigs,\n  switchTheme,\n  initializeNaiveTheme\n} from './config/naive-theme'\n```\n\n### 国际化\n\n```typescript\n// I18n系统\nexport { \n  installI18n, \n  installI18nOnly, \n  initializeI18nWithStorage, \n  setI18nServices, \n  i18n \n} from './plugins/i18n'\n```\n\n## 类型系统\n\n### 核心类型\n\n```typescript\nimport type { \n  OptimizationMode,\n  ConversationMessage,\n  Template,\n  IModelManager,\n  ITemplateManager,\n  ILLMService,\n  IPromptService\n} from '@prompt-optimizer/core'\n\n// TestArea组件类型\nexport interface TestAreaConfig {\n  optimizationMode: OptimizationMode\n  inputMode: 'default' | 'compact'\n  controlBarLayout: 'default' | 'compact'\n  buttonSize: 'small' | 'medium' | 'large'\n}\n\nexport interface TestControlLayout {\n  showCompareToggle: boolean\n  primaryActionText: string\n  buttonSize: string\n}\n```\n\n## 样式规范\n\nUI组件遵循严格的设计规范：\n\n- **无硬编码像素值** - 使用Naive UI的size系统\n- **无Tailwind CSS类** - 纯Naive UI组件实现\n- **统一间距系统** - 基于16px基准的间距规范\n- **响应式设计** - 支持xs/sm/md/lg/xl/xxl断点\n- **主题兼容性** - 完全兼容亮色/暗色主题\n\n详见：[测试区域组件样式规范](../docs/components/test-area-style-guide.md)\n\n## 开发\n\n### 本地开发\n\n```bash\n# 安装依赖\npnpm install\n\n# 开发模式\npnpm dev\n\n# 构建UI包\npnpm -F @prompt-optimizer/ui build\n\n# 运行测试\npnpm -F @prompt-optimizer/ui test\n\n# 类型检查\npnpm -F @prompt-optimizer/ui exec tsc --noEmit\n```\n\n### 测试\n\n```bash\n# 运行所有测试\npnpm -F @prompt-optimizer/ui test\n\n# 运行特定组件测试\npnpm -F @prompt-optimizer/ui test -- TestAreaPanel\n\n# 运行集成测试\npnpm -F @prompt-optimizer/ui test -- test-area-integration\n\n# 运行端到端测试  \npnpm -F @prompt-optimizer/ui test -- test-area-e2e\n```\n\n### 组件开发指南\n\n1. **使用Naive UI组件** - 基于NButton、NInput、NFlex等\n2. **遵循TypeScript规范** - 完整的类型定义\n3. **支持主题切换** - 使用主题变量而非硬编码颜色\n4. **响应式设计** - 适配不同屏幕尺寸\n5. **国际化支持** - 所有文本使用i18n\n6. **单元测试** - 为每个组件编写测试用例\n\n## 依赖\n\n### 核心依赖\n\n- **Vue 3.x** - 渐进式JavaScript框架\n- **Naive UI 2.x** - Vue 3设计系统组件库\n- **@prompt-optimizer/core** - 核心业务逻辑\n- **Vue I18n** - Vue国际化插件\n\n### 开发依赖\n\n- **TypeScript 5.x** - 类型系统\n- **Vitest** - 单元测试框架\n- **@vue/test-utils** - Vue组件测试工具\n- **Vite** - 现代化构建工具\n\n## 兼容性\n\n- **Vue**: 3.0+\n- **Node.js**: 18.0+\n- **浏览器**: Chrome 88+, Firefox 85+, Safari 14+\n- **Naive UI**: 2.34+\n\n## 许可证\n\nGNU Affero General Public License v3.0 (AGPL-3.0-only)\n\n## 文档\n\n- [完整组件文档](../docs/components/test-area.md)\n- [样式规范指南](../docs/components/test-area-style-guide.md)\n- [开发者指南](../docs/developer/technical-development-guide.md)\n\n---\n\n**最后更新：** 2025-01-20  \n**版本：** 1.4.4\n","packages/mcp-server/package.json":"{\n  \"name\": \"@prompt-optimizer/mcp-server\",\n  \"version\": \"0.1.0\",\n  \"description\": \"MCP (Model Context Protocol) server for prompt-optimizer\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.js\",\n  \"types\": \"./dist/index.d.ts\",\n  \"bin\": {\n    \"prompt-optimizer-mcp\": \"./bin/prompt-optimizer-mcp.cjs\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup src/index.ts src/start.ts --format cjs,esm --dts --clean\",\n    \"dev\": \"node -r ./preload-env.js dist/start.js --transport=http\",\n    \"start\": \"node -r ./preload-env.cjs dist/start.cjs --transport=http\",\n    \"test\": \"vitest run\",\n    \"lint\": \"eslint src --ext .ts\",\n    \"type-check\": \"tsc --noEmit\"\n  },\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"prompt-optimization\",\n    \"llm\",\n    \"ai\"\n  ],\n  \"author\": \"Prompt Optimizer Team\",\n  \"license\": \"AGPL-3.0-only\",\n  \"dependencies\": {\n    \"@modelcontextprotocol/sdk\": \"^1.32.0\",\n    \"@prompt-optimizer/core\": \"workspace:*\",\n    \"debug\": \"^4.4.3\",\n    \"dotenv\": \"^17.3.1\",\n    \"express\": \"^5.2.1\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^10.0.1\",\n    \"@types/debug\": \"^4.1.13\",\n    \"@types/express\": \"^5.0.6\",\n    \"@types/node\": \"^24.13.4\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.57.2\",\n    \"@typescript-eslint/parser\": \"^8.57.2\",\n    \"eslint\": \"^10.1.0\",\n    \"globals\": \"^17.4.0\",\n    \"tsup\": \"^8.5.1\",\n    \"typescript\": \"^5.9.3\",\n    \"vitest\": \"^4.1.12\"\n  },\n  \"engines\": {\n    \"node\": \"^24.22.1\"\n  },\n  \"files\": [\n    \"bin\",\n    \"dist\",\n    \"README.md\"\n  ]\n}\n","packages/ui/tsconfig.json":"{\n  \"extends\": \"@vue/tsconfig/tsconfig.dom.json\",\n  \"include\": [\"env.d.ts\", \"src/**/*\", \"src/**/*.vue\"],\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"paths\": {\n      \"@/*\": [\"./src/*\"]\n    }\n  }\n}\n","packages/ui/tsconfig.node.json":"{\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"skipLibCheck\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true\n  },\n  \"include\": [\"vite.config.ts\"]\n} ","packages/mcp-server/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"./src\",\n    \"module\": \"ESNext\",\n    \"target\": \"ES2022\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"ignoreDeprecations\": \"5.0\",\n    \"noEmit\": false,\n    \"lib\": [\n      \"ES2022\",\n      \"DOM\"\n    ]\n  },\n  \"include\": [\n    \"src/**/*\"\n  ],\n  \"exclude\": [\n    \"dist\",\n    \"node_modules\",\n    \"tests\",\n    \"**/*.test.ts\"\n  ]\n}\n","packages/mcp-server/README.md":"# 提示词优化器 MCP 服务器\n\n为提示词优化器项目提供的 MCP (Model Context Protocol) 服务器。提供提示词优化工具，支持通过 HTTP 协议连接，可被任何 MCP 兼容客户端使用。\n\n> **用户部署和使用指南**：请查看 [MCP 服务器用户指南](../../docs/user/mcp-server.md)\n\n## 功能特性\n\n- **optimize-user-prompt**: 优化用户提示词以提升 LLM 性能\n- **optimize-system-prompt**: 优化系统提示词以提升 LLM 性能\n- **iterate-prompt**: 基于特定需求迭代改进成熟的提示词\n\n## 快速开始\n\n### 开发模式（推荐）\n\n```bash\n# 安装依赖\npnpm install\n\n# 开发模式：自动监听文件变化，自动重新编译和重启服务器\npnpm dev\n```\n\n服务器将在 `http://localhost:3000/mcp` 启动，修改代码后自动重启。\n\n### 生产模式\n\n```bash\n# 1. 构建项目\npnpm build\n\n# 2. 启动服务器\npnpm start\n```\n\n服务器将在 `http://localhost:3000/mcp` 启动。\n\n### 根目录快捷命令\n\n如果你在项目根目录，可以使用以下快捷命令：\n\n```bash\n# 开发模式\npnpm mcp:dev\n\n# 构建项目\npnpm mcp:build\n\n# 启动服务器（默认已启用 debug 日志）\npnpm mcp:start\n\n# 如需调整日志级别\nMCP_LOG_LEVEL=info pnpm mcp:start\n\n# 运行测试\npnpm mcp:test\n```\n\n## 开发配置\n\n### 环境变量\n\n开发时需要在项目根目录配置 `.env.local` 文件。详细的配置说明请参考 [用户指南](../../docs/user/mcp-server.md#环境变量配置)。\n\n开发环境最小配置示例：\n```bash\n# 至少配置一个 API 密钥\nVITE_OPENAI_API_KEY=your-openai-key\nMCP_DEFAULT_MODEL_PROVIDER=openai\nMCP_LOG_LEVEL=debug\n```\n\n## 日志配置\n\nMCP 服务器默认启用 `debug` 级别日志，可通过 `MCP_LOG_LEVEL` 环境变量调整：\n\n```bash\n# 默认 debug 级别（显示所有日志）\npnpm start\n\n# 调整为 info 级别\nMCP_LOG_LEVEL=info pnpm start\n\n# 调整为 warn 级别\nMCP_LOG_LEVEL=warn pnpm start\n\n# 调整为 error 级别\nMCP_LOG_LEVEL=error pnpm start\n```\n\n### 日志级别说明\n\n- `debug` - 调试信息（默认，开发时使用）\n- `info` - 一般信息（服务启动、配置等）\n- `warn` - 警告信息（非致命问题）\n- `error` - 错误信息（需要关注的问题）\n\n\n\n## 开发\n\n```bash\n# 开发模式（自动监听文件变化，自动重启服务器）\npnpm dev\n\n# 运行测试\npnpm test\n\n# 类型检查\npnpm type-check\n\n# 代码检查\npnpm lint\n```\n\n## 测试与调试\n\n### 使用 MCP Inspector 测试\n\nMCP Inspector 是官方提供的可视化测试工具，支持通过 Web UI 测试 MCP 服务器。\n\n#### 使用 MCP Inspector 测试\n\n```bash\n# 1. 启动 MCP 服务器\npnpm start\n\n# 2. 在另一个终端启动 Inspector\nnpx @modelcontextprotocol/inspector\n```\n\n然后在 Inspector Web UI 中：\n1. 选择传输方式：`Streamable HTTP`\n2. 服务器 URL：`http://localhost:3000/mcp`\n3. 点击 \"Connect\" 连接服务器\n4. 测试可用的工具：`optimize-user-prompt`、`optimize-system-prompt`、`iterate-prompt`\n\n#### 其他测试方法\n\n**重要提示**：MCP 协议不是简单的 REST API，不能直接用 curl 测试。\n\n**推荐的测试方式**：\n1. **MCP Inspector**（官方工具）- 最佳选择\n2. **Claude Desktop** - 实际使用场景\n3. **自定义 MCP 客户端** - 使用 `@modelcontextprotocol/sdk`\n\n**为什么不能用 curl**：\n- MCP 使用 JSON-RPC 2.0 协议\n- 需要特殊的握手和初始化过程\n- HTTP 传输使用流式连接，不是简单的请求-响应\n\n## 📚 相关文档\n\n- [MCP 服务器用户指南](../../docs/user/mcp-server.md) - 用户部署和使用指南\n- [MCP 服务器开发经验](../../docs/archives/120-mcp-server-module/experience.md) - 开发经验和最佳实践\n- [项目主页](../../README.md) - 项目概述和快速开始\n\n## 架构设计\n\n此 MCP 服务器遵循零侵入设计原则：\n- 仅使用现有 Core 模块 API，无需修改\n- 采用内存存储实现无状态操作\n- 提供 MCP 和 Core 格式之间的参数适配\n\n## 许可证\n\nGNU Affero General Public License v3.0 (AGPL-3.0-only)\n","packages/extension/chrome.md":"# Extension Skill\n\nPath: `packages/extension/chrome.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/chrome.md)","packages/extension/package.json":"# Extension Skill\n\nPath: `packages/extension/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/package.json)","packages/extension/permissions-explanation.md":"# Extension Skill\n\nPath: `packages/extension/permissions-explanation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/permissions-explanation.md)","packages/extension/privacy-policy.md":"# Extension Skill\n\nPath: `packages/extension/privacy-policy.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/privacy-policy.md)","packages/extension/publish-guide.md":"# Extension Skill\n\nPath: `packages/extension/publish-guide.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/publish-guide.md)","packages/extension/screenshots.md":"# Extension Skill\n\nPath: `packages/extension/screenshots.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/screenshots.md)","packages/extension/tsconfig.json":"# Extension Skill\n\nPath: `packages/extension/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.json)","packages/extension/tsconfig.node.json":"# Extension Skill\n\nPath: `packages/extension/tsconfig.node.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.node.json)","packages/extension/tsconfig.typecheck.json":"# Extension Skill\n\nPath: `packages/extension/tsconfig.typecheck.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.typecheck.json)","packages/desktop/package.json":"# Desktop Skill\n\nPath: `packages/desktop/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/package.json)","packages/desktop/README.md":"# desktop Documentation\n\nPath: `packages/desktop/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README.md)","packages/desktop/README-env-config.md":"# Desktop Skill\n\nPath: `packages/desktop/README-env-config.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README-env-config.md)","packages/core/package.json":"# Core Skill\n\nPath: `packages/core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/package.json)","packages/core/tsconfig.json":"# Core Skill\n\nPath: `packages/core/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tsconfig.json)","packages/ui/docs/ACCESSIBILITY_GUIDE.md":"# Docs Skill\n\nPath: `packages/ui/docs/ACCESSIBILITY_GUIDE.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/ACCESSIBILITY_GUIDE.md)","packages/ui/docs/COMPONENT_API.md":"# Docs Skill\n\nPath: `packages/ui/docs/COMPONENT_API.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/COMPONENT_API.md)","packages/ui/docs/README.md":"# docs Documentation\n\nPath: `packages/ui/docs/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/README.md)","packages/ui/tests/tsconfig.json":"# Tests Skill\n\nPath: `packages/ui/tests/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/tsconfig.json)","packages/extension/public/manifest.json":"# Public Skill\n\nPath: `packages/extension/public/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/manifest.json)","packages/ui/src/i18n/README.md":"# i18n Documentation\n\nPath: `packages/ui/src/i18n/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/src/i18n/README.md)","packages/core/tests/helpers/README.md":"# helpers Documentation\n\nPath: `packages/core/tests/helpers/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/helpers/README.md)","packages/core/tests/fixtures/README.md":"# fixtures Documentation\n\nPath: `packages/core/tests/fixtures/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/README.md)","packages/ui/tests/unit/composables/connection-test-fix-summary.md":"# Composables Skill\n\nPath: `packages/ui/tests/unit/composables/connection-test-fix-summary.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/unit/composables/connection-test-fix-summary.md)","packages/extension/public/_locales/zh_CN/messages.json":"# Zh_CN Skill\n\nPath: `packages/extension/public/_locales/zh_CN/messages.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/zh_CN/messages.json)","packages/extension/public/_locales/en/messages.json":"# En Skill\n\nPath: `packages/extension/public/_locales/en/messages.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/en/messages.json)","packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md)","packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md)","packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md)","packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md)","packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md)","packages/core/tests/unit/image/openrouter-parameter-fix-summary.md":"# Image Skill\n\nPath: `packages/core/tests/unit/image/openrouter-parameter-fix-summary.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/image/openrouter-parameter-fix-summary.md)","packages/core/tests/unit/template/soul-template-manual-acceptance.md":"# Template Skill\n\nPath: `packages/core/tests/unit/template/soul-template-manual-acceptance.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/template/soul-template-manual-acceptance.md)","packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json":"# Deepseek Skill\n\nPath: `packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json)"},"items":[{"name":"package.json","path":"packages/core/package.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/package.json","title":"Core Skill","category":"anthropic-skill","format":"json","content":"# Core Skill\n\nPath: `packages/core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/package.json)","tokens":300,"sizeBytes":172},{"name":"basic-user-compare.md","path":"packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md","title":"Evaluation-rendered Skill","category":"anthropic-skill","format":"markdown","content":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md)","tokens":300,"sizeBytes":275},{"name":"basic-user-prompt-only.md","path":"packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md","title":"Evaluation-rendered Skill","category":"anthropic-skill","format":"markdown","content":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md)","tokens":300,"sizeBytes":283},{"name":"basic-user-result.md","path":"packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md","title":"Evaluation-rendered Skill","category":"anthropic-skill","format":"markdown","content":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md)","tokens":300,"sizeBytes":273},{"name":"pro-multi-compare.md","path":"packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md","title":"Evaluation-rendered Skill","category":"anthropic-skill","format":"markdown","content":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md)","tokens":300,"sizeBytes":273},{"name":"pro-variable-prompt-only.md","path":"packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md","title":"Evaluation-rendered Skill","category":"anthropic-skill","format":"markdown","content":"# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md)","tokens":300,"sizeBytes":287},{"name":"optimize-simple-prompt.json","path":"packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json","title":"Deepseek Skill","category":"anthropic-skill","format":"json","content":"# Deepseek Skill\n\nPath: `packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json)","tokens":300,"sizeBytes":262},{"name":"openrouter-parameter-fix-summary.md","path":"packages/core/tests/unit/image/openrouter-parameter-fix-summary.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/image/openrouter-parameter-fix-summary.md","title":"Image Skill","category":"anthropic-skill","format":"markdown","content":"# Image Skill\n\nPath: `packages/core/tests/unit/image/openrouter-parameter-fix-summary.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/image/openrouter-parameter-fix-summary.md)","tokens":300,"sizeBytes":253},{"name":"soul-template-manual-acceptance.md","path":"packages/core/tests/unit/template/soul-template-manual-acceptance.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/template/soul-template-manual-acceptance.md","title":"Template Skill","category":"anthropic-skill","format":"markdown","content":"# Template Skill\n\nPath: `packages/core/tests/unit/template/soul-template-manual-acceptance.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/template/soul-template-manual-acceptance.md)","tokens":300,"sizeBytes":260},{"name":"tsconfig.json","path":"packages/core/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tsconfig.json","title":"Core Skill","category":"anthropic-skill","format":"json","content":"# Core Skill\n\nPath: `packages/core/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tsconfig.json)","tokens":300,"sizeBytes":174},{"name":"package.json","path":"packages/desktop/package.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/package.json","title":"Desktop Skill","category":"anthropic-skill","format":"json","content":"# Desktop Skill\n\nPath: `packages/desktop/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/package.json)","tokens":300,"sizeBytes":181},{"name":"README-env-config.md","path":"packages/desktop/README-env-config.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README-env-config.md","title":"Desktop Skill","category":"anthropic-skill","format":"markdown","content":"# Desktop Skill\n\nPath: `packages/desktop/README-env-config.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README-env-config.md)","tokens":300,"sizeBytes":197},{"name":"chrome.md","path":"packages/extension/chrome.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/chrome.md","title":"Extension Skill","category":"anthropic-skill","format":"markdown","content":"# Extension Skill\n\nPath: `packages/extension/chrome.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/chrome.md)","tokens":300,"sizeBytes":181},{"name":"package.json","path":"packages/extension/package.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/package.json","title":"Extension Skill","category":"anthropic-skill","format":"json","content":"# Extension Skill\n\nPath: `packages/extension/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/package.json)","tokens":300,"sizeBytes":187},{"name":"permissions-explanation.md","path":"packages/extension/permissions-explanation.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/permissions-explanation.md","title":"Extension Skill","category":"anthropic-skill","format":"markdown","content":"# Extension Skill\n\nPath: `packages/extension/permissions-explanation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/permissions-explanation.md)","tokens":300,"sizeBytes":215},{"name":"privacy-policy.md","path":"packages/extension/privacy-policy.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/privacy-policy.md","title":"Extension Skill","category":"anthropic-skill","format":"markdown","content":"# Extension Skill\n\nPath: `packages/extension/privacy-policy.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/privacy-policy.md)","tokens":300,"sizeBytes":197},{"name":"messages.json","path":"packages/extension/public/_locales/en/messages.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/en/messages.json","title":"En Skill","category":"anthropic-skill","format":"json","content":"# En Skill\n\nPath: `packages/extension/public/_locales/en/messages.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/en/messages.json)","tokens":300,"sizeBytes":220},{"name":"messages.json","path":"packages/extension/public/_locales/zh_CN/messages.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/zh_CN/messages.json","title":"Zh_CN Skill","category":"anthropic-skill","format":"json","content":"# Zh_CN Skill\n\nPath: `packages/extension/public/_locales/zh_CN/messages.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/zh_CN/messages.json)","tokens":300,"sizeBytes":229},{"name":"manifest.json","path":"packages/extension/public/manifest.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/manifest.json","title":"Public Skill","category":"anthropic-skill","format":"json","content":"# Public Skill\n\nPath: `packages/extension/public/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/manifest.json)","tokens":300,"sizeBytes":200},{"name":"publish-guide.md","path":"packages/extension/publish-guide.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/publish-guide.md","title":"Extension Skill","category":"anthropic-skill","format":"markdown","content":"# Extension Skill\n\nPath: `packages/extension/publish-guide.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/publish-guide.md)","tokens":300,"sizeBytes":195},{"name":"screenshots.md","path":"packages/extension/screenshots.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/screenshots.md","title":"Extension Skill","category":"anthropic-skill","format":"markdown","content":"# Extension Skill\n\nPath: `packages/extension/screenshots.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/screenshots.md)","tokens":300,"sizeBytes":191},{"name":"tsconfig.json","path":"packages/extension/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.json","title":"Extension Skill","category":"anthropic-skill","format":"json","content":"# Extension Skill\n\nPath: `packages/extension/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.json)","tokens":300,"sizeBytes":189},{"name":"tsconfig.node.json","path":"packages/extension/tsconfig.node.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.node.json","title":"Extension Skill","category":"anthropic-skill","format":"json","content":"# Extension Skill\n\nPath: `packages/extension/tsconfig.node.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.node.json)","tokens":300,"sizeBytes":199},{"name":"tsconfig.typecheck.json","path":"packages/extension/tsconfig.typecheck.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.typecheck.json","title":"Extension Skill","category":"anthropic-skill","format":"json","content":"# Extension Skill\n\nPath: `packages/extension/tsconfig.typecheck.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.typecheck.json)","tokens":300,"sizeBytes":209},{"name":"package.json","path":"packages/mcp-server/package.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/mcp-server/package.json","title":"@prompt-optimizer/mcp-server","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"@prompt-optimizer/mcp-server\",\n  \"version\": \"0.1.0\",\n  \"description\": \"MCP (Model Context Protocol) server for prompt-optimizer\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.js\",\n  \"types\": \"./dist/index.d.ts\",\n  \"bin\": {\n    \"prompt-optimizer-mcp\": \"./bin/prompt-optimizer-mcp.cjs\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup src/index.ts src/start.ts --format cjs,esm --dts --clean\",\n    \"dev\": \"node -r ./preload-env.js dist/start.js --transport=http\",\n    \"start\": \"node -r ./preload-env.cjs dist/start.cjs --transport=http\",\n    \"test\": \"vitest run\",\n    \"lint\": \"eslint src --ext .ts\",\n    \"type-check\": \"tsc --noEmit\"\n  },\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"prompt-optimization\",\n    \"llm\",\n    \"ai\"\n  ],\n  \"author\": \"Prompt Optimizer Team\",\n  \"license\": \"AGPL-3.0-only\",\n  \"dependencies\": {\n    \"@modelcontextprotocol/sdk\": \"^1.32.0\",\n    \"@prompt-optimizer/core\": \"workspace:*\",\n    \"debug\": \"^4.4.3\",\n    \"dotenv\": \"^17.3.1\",\n    \"express\": \"^5.2.1\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^10.0.1\",\n    \"@types/debug\": \"^4.1.13\",\n    \"@types/express\": \"^5.0.6\",\n    \"@types/node\": \"^24.13.4\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.57.2\",\n    \"@typescript-eslint/parser\": \"^8.57.2\",\n    \"eslint\": \"^10.1.0\",\n    \"globals\": \"^17.4.0\",\n    \"tsup\": \"^8.5.1\",\n    \"typescript\": \"^5.9.3\",\n    \"vitest\": \"^4.1.12\"\n  },\n  \"engines\": {\n    \"node\": \"^24.22.1\"\n  },\n  \"files\": [\n    \"bin\",\n    \"dist\",\n    \"README.md\"\n  ]\n}\n","frontmatter":{"name":"@prompt-optimizer/mcp-server","version":"0.1.0","description":"MCP (Model Context Protocol) server for prompt-optimizer","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"prompt-optimizer-mcp":"./bin/prompt-optimizer-mcp.cjs"},"scripts":{"build":"tsup src/index.ts src/start.ts --format cjs,esm --dts --clean","dev":"node -r ./preload-env.js dist/start.js --transport=http","start":"node -r ./preload-env.cjs dist/start.cjs --transport=http","test":"vitest run","lint":"eslint src --ext .ts","type-check":"tsc --noEmit"},"keywords":["mcp","model-context-protocol","prompt-optimization","llm","ai"],"author":"Prompt Optimizer Team","license":"AGPL-3.0-only","dependencies":{"@modelcontextprotocol/sdk":"^1.32.0","@prompt-optimizer/core":"workspace:*","debug":"^4.4.3","dotenv":"^17.3.1","express":"^5.2.1"},"devDependencies":{"@eslint/js":"^10.0.1","@types/debug":"^4.1.13","@types/express":"^5.0.6","@types/node":"^24.13.4","@typescript-eslint/eslint-plugin":"^8.57.2","@typescript-eslint/parser":"^8.57.2","eslint":"^10.1.0","globals":"^17.4.0","tsup":"^8.5.1","typescript":"^5.9.3","vitest":"^4.1.12"},"engines":{"node":"^24.22.1"},"files":["bin","dist","README.md"]},"isInternal":false,"tokens":506,"sizeBytes":1472},{"name":"tsconfig.json","path":"packages/mcp-server/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/mcp-server/tsconfig.json","title":"Mcp-server Skill","category":"anthropic-skill","format":"json","content":"{\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"./src\",\n    \"module\": \"ESNext\",\n    \"target\": \"ES2022\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"ignoreDeprecations\": \"5.0\",\n    \"noEmit\": false,\n    \"lib\": [\n      \"ES2022\",\n      \"DOM\"\n    ]\n  },\n  \"include\": [\n    \"src/**/*\"\n  ],\n  \"exclude\": [\n    \"dist\",\n    \"node_modules\",\n    \"tests\",\n    \"**/*.test.ts\"\n  ]\n}\n","frontmatter":{"compilerOptions":{"outDir":"./dist","rootDir":"./src","module":"ESNext","target":"ES2022","moduleResolution":"bundler","allowSyntheticDefaultImports":true,"esModuleInterop":true,"strict":true,"skipLibCheck":true,"forceConsistentCasingInFileNames":true,"declaration":true,"declarationMap":true,"sourceMap":true,"resolveJsonModule":true,"isolatedModules":true,"ignoreDeprecations":"5.0","noEmit":false,"lib":["ES2022","DOM"]},"include":["src/**/*"],"exclude":["dist","node_modules","tests","**/*.test.ts"]},"isInternal":false,"tokens":208,"sizeBytes":681},{"name":"ACCESSIBILITY_GUIDE.md","path":"packages/ui/docs/ACCESSIBILITY_GUIDE.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/ACCESSIBILITY_GUIDE.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/ui/docs/ACCESSIBILITY_GUIDE.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/ACCESSIBILITY_GUIDE.md)","tokens":300,"sizeBytes":198},{"name":"COMPONENT_API.md","path":"packages/ui/docs/COMPONENT_API.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/COMPONENT_API.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/ui/docs/COMPONENT_API.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/COMPONENT_API.md)","tokens":300,"sizeBytes":186},{"name":"package.json","path":"packages/ui/package.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/package.json","title":"@prompt-optimizer/ui","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"@prompt-optimizer/ui\",\n  \"version\": \"0.0.1\",\n  \"private\": true,\n  \"license\": \"AGPL-3.0-only\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.cjs\",\n  \"module\": \"./dist/index.js\",\n  \"types\": \"./dist/src/index.d.ts\",\n  \"style\": \"./dist/style.css\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/src/index.d.ts\",\n      \"import\": \"./dist/index.js\",\n      \"require\": \"./dist/index.cjs\"\n    },\n    \"./style.css\": \"./dist/style.css\",\n    \"./dist/style.css\": \"./dist/style.css\"\n  },\n  \"files\": [\n    \"dist\"\n  ],\n  \"readme\": \"On Windows, use semicolons (;) instead of && as command separators, or run the build:win script.\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build:bundle\": \"vite build\",\n    \"build:types\": \"vue-tsc -p tsconfig.build.json\",\n    \"build\": \"pnpm run build:bundle && pnpm run build:types\",\n    \"build:win\": \"pnpm run build\",\n    \"test\": \"vitest run\",\n    \"typecheck\": \"vue-tsc --noEmit\",\n    \"lint\": \"eslint src --ext .ts,.vue\",\n    \"lint:fix\": \"eslint src --ext .ts,.vue --fix\"\n  },\n  \"dependencies\": {\n    \"@aws-sdk/client-s3\": \"^3.1129.0\",\n    \"@codemirror/autocomplete\": \"^6.20.1\",\n    \"@codemirror/language\": \"^6.12.3\",\n    \"@codemirror/state\": \"^6.6.0\",\n    \"@codemirror/view\": \"^6.40.0\",\n    \"@prompt-optimizer/core\": \"workspace:*\",\n    \"@vicons/tabler\": \"^0.13.0\",\n    \"@vueuse/core\": \"^14.2.1\",\n    \"codemirror\": \"^6.0.2\",\n    \"dompurify\": \"^3.4.16\",\n    \"fflate\": \"^0.8.3\",\n    \"highlight.js\": \"^11.11.1\",\n    \"markdown-it\": \"^14.3.3\",\n    \"naive-ui\": \"2.44.1\",\n    \"pinia\": \"^3.0.4\",\n    \"uuid\": \"^13.0.2\",\n    \"vue\": \"^3.5.31\",\n    \"vue-i18n\": \"^11.3.0\",\n    \"vue-router\": \"^5.0.4\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^10.0.1\",\n    \"@tailwindcss/forms\": \"^0.5.11\",\n    \"@tailwindcss/postcss\": \"^4.2.2\",\n    \"@tailwindcss/typography\": \"^0.5.19\",\n    \"@types/node\": \"^24.13.4\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.57.2\",\n    \"@typescript-eslint/parser\": \"^8.57.2\",\n    \"@vitejs/plugin-vue\": \"^6.0.5\",\n    \"@vue/test-utils\": \"^2.4.6\",\n    \"@vue/tsconfig\": \"^0.9.1\",\n    \"eslint\": \"^10.1.0\",\n    \"eslint-plugin-vue\": \"^10.8.0\",\n    \"globals\": \"^17.4.0\",\n    \"jsdom\": \"^29.0.1\",\n    \"postcss\": \"^8.5.28\",\n    \"tailwindcss\": \"^4.2.2\",\n    \"typescript\": \"^5.9.3\",\n    \"vite\": \"^8.3.3\",\n    \"vitest\": \"^4.1.12\",\n    \"vue-eslint-parser\": \"^10.4.0\",\n    \"vue-tsc\": \"^3.2.6\"\n  }\n}\n","frontmatter":{"name":"@prompt-optimizer/ui","version":"0.0.1","private":true,"license":"AGPL-3.0-only","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/src/index.d.ts","style":"./dist/style.css","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"files":["dist"],"readme":"On Windows, use semicolons (;) instead of && as command separators, or run the build:win script.","scripts":{"dev":"vite","build:bundle":"vite build","build:types":"vue-tsc -p tsconfig.build.json","build":"pnpm run build:bundle && pnpm run build:types","build:win":"pnpm run build","test":"vitest run","typecheck":"vue-tsc --noEmit","lint":"eslint src --ext .ts,.vue","lint:fix":"eslint src --ext .ts,.vue --fix"},"dependencies":{"@aws-sdk/client-s3":"^3.1129.0","@codemirror/autocomplete":"^6.20.1","@codemirror/language":"^6.12.3","@codemirror/state":"^6.6.0","@codemirror/view":"^6.40.0","@prompt-optimizer/core":"workspace:*","@vicons/tabler":"^0.13.0","@vueuse/core":"^14.2.1","codemirror":"^6.0.2","dompurify":"^3.4.16","fflate":"^0.8.3","highlight.js":"^11.11.1","markdown-it":"^14.3.3","naive-ui":"2.44.1","pinia":"^3.0.4","uuid":"^13.0.2","vue":"^3.5.31","vue-i18n":"^11.3.0","vue-router":"^5.0.4"},"devDependencies":{"@eslint/js":"^10.0.1","@tailwindcss/forms":"^0.5.11","@tailwindcss/postcss":"^4.2.2","@tailwindcss/typography":"^0.5.19","@types/node":"^24.13.4","@typescript-eslint/eslint-plugin":"^8.57.2","@typescript-eslint/parser":"^8.57.2","@vitejs/plugin-vue":"^6.0.5","@vue/test-utils":"^2.4.6","@vue/tsconfig":"^0.9.1","eslint":"^10.1.0","eslint-plugin-vue":"^10.8.0","globals":"^17.4.0","jsdom":"^29.0.1","postcss":"^8.5.28","tailwindcss":"^4.2.2","typescript":"^5.9.3","vite":"^8.3.3","vitest":"^4.1.12","vue-eslint-parser":"^10.4.0","vue-tsc":"^3.2.6"}},"isInternal":false,"tokens":856,"sizeBytes":2321},{"name":"tsconfig.json","path":"packages/ui/tests/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/tsconfig.json","title":"Tests Skill","category":"anthropic-skill","format":"json","content":"# Tests Skill\n\nPath: `packages/ui/tests/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/tsconfig.json)","tokens":300,"sizeBytes":183},{"name":"connection-test-fix-summary.md","path":"packages/ui/tests/unit/composables/connection-test-fix-summary.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/unit/composables/connection-test-fix-summary.md","title":"Composables Skill","category":"anthropic-skill","format":"markdown","content":"# Composables Skill\n\nPath: `packages/ui/tests/unit/composables/connection-test-fix-summary.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/unit/composables/connection-test-fix-summary.md)","tokens":300,"sizeBytes":257},{"name":"tsconfig.build.json","path":"packages/ui/tsconfig.build.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tsconfig.build.json","title":"Ui Skill","category":"anthropic-skill","format":"json","content":"{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"noEmit\": false,\n    \"declaration\": true,\n    \"emitDeclarationOnly\": true,\n    \"declarationMap\": false,\n    \"composite\": false,\n    \"rootDir\": \".\",\n    \"outDir\": \"./dist\"\n  },\n  \"include\": [\"env.d.ts\", \"src/**/*\", \"src/**/*.vue\"]\n}\n","frontmatter":{"extends":"./tsconfig.json","compilerOptions":{"noEmit":false,"declaration":true,"emitDeclarationOnly":true,"declarationMap":false,"composite":false,"rootDir":".","outDir":"./dist"},"include":["env.d.ts","src/**/*","src/**/*.vue"]},"isInternal":false,"tokens":88,"sizeBytes":293},{"name":"tsconfig.json","path":"packages/ui/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tsconfig.json","title":"Ui Skill","category":"anthropic-skill","format":"json","content":"{\n  \"extends\": \"@vue/tsconfig/tsconfig.dom.json\",\n  \"include\": [\"env.d.ts\", \"src/**/*\", \"src/**/*.vue\"],\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"paths\": {\n      \"@/*\": [\"./src/*\"]\n    }\n  }\n}\n","frontmatter":{"extends":"@vue/tsconfig/tsconfig.dom.json","include":["env.d.ts","src/**/*","src/**/*.vue"],"compilerOptions":{"composite":true,"paths":{"@/*":["./src/*"]}}},"isInternal":false,"tokens":64,"sizeBytes":203},{"name":"tsconfig.node.json","path":"packages/ui/tsconfig.node.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tsconfig.node.json","title":"Ui Skill","category":"anthropic-skill","format":"json","content":"{\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"skipLibCheck\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true\n  },\n  \"include\": [\"vite.config.ts\"]\n} ","frontmatter":{"compilerOptions":{"composite":true,"skipLibCheck":true,"module":"ESNext","moduleResolution":"bundler","allowSyntheticDefaultImports":true},"include":["vite.config.ts"]},"isInternal":false,"tokens":62,"sizeBytes":213},{"name":"package.json","path":"packages/web/package.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/web/package.json","title":"@prompt-optimizer/web","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"@prompt-optimizer/web\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite --force\",\n    \"build\": \"vite build\",\n    \"preview\": \"vite preview\",\n    \"typecheck\": \"vue-tsc --noEmit -p tsconfig.typecheck.json\",\n    \"test\": \"vitest\",\n    \"test:ui\": \"vitest --ui\",\n    \"test:coverage\": \"vitest run --coverage\",\n    \"test:unit\": \"vitest run tests/unit\"\n  },\n  \"dependencies\": {\n    \"@prompt-optimizer/ui\": \"workspace:*\",\n    \"vue\": \"^3.5.31\"\n  },\n  \"devDependencies\": {\n    \"@vitejs/plugin-vue\": \"^6.0.5\",\n    \"jsdom\": \"^29.0.1\",\n    \"vite\": \"^8.3.3\",\n    \"vitest\": \"^4.1.12\"\n  }\n}\n","frontmatter":{"name":"@prompt-optimizer/web","private":true,"version":"0.0.0","type":"module","scripts":{"dev":"vite --force","build":"vite build","preview":"vite preview","typecheck":"vue-tsc --noEmit -p tsconfig.typecheck.json","test":"vitest","test:ui":"vitest --ui","test:coverage":"vitest run --coverage","test:unit":"vitest run tests/unit"},"dependencies":{"@prompt-optimizer/ui":"workspace:*","vue":"^3.5.31"},"devDependencies":{"@vitejs/plugin-vue":"^6.0.5","jsdom":"^29.0.1","vite":"^8.3.3","vitest":"^4.1.12"}},"isInternal":false,"tokens":227,"sizeBytes":630},{"name":"tsconfig.json","path":"packages/web/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/web/tsconfig.json","title":"Web Skill","category":"anthropic-skill","format":"json","content":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"preserve\",\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"paths\": {\n      \"@prompt-optimizer/ui\": [\"../ui/src\"]\n    },\n    \"types\": [\"vite/client\", \"vue\"]\n  },\n  \"include\": [\"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\", \"tsconfig.node.json\"]\n} \n","frontmatter":{"compilerOptions":{"target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],"skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,"resolveJsonModule":true,"isolatedModules":true,"noEmit":true,"jsx":"preserve","strict":true,"noUnusedLocals":true,"noUnusedParameters":true,"noFallthroughCasesInSwitch":true,"paths":{"@prompt-optimizer/ui":["../ui/src"]},"types":["vite/client","vue"]},"include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue","tsconfig.node.json"]},"isInternal":false,"tokens":209,"sizeBytes":690},{"name":"tsconfig.node.json","path":"packages/web/tsconfig.node.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/web/tsconfig.node.json","title":"Web Skill","category":"anthropic-skill","format":"json","content":"{\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"skipLibCheck\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true\n  },\n  \"include\": [\"vite.config.ts\"]\n} ","frontmatter":{"compilerOptions":{"composite":true,"skipLibCheck":true,"module":"ESNext","moduleResolution":"bundler","allowSyntheticDefaultImports":true},"include":["vite.config.ts"]},"isInternal":false,"tokens":62,"sizeBytes":213},{"name":"tsconfig.typecheck.json","path":"packages/web/tsconfig.typecheck.json","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/web/tsconfig.typecheck.json","title":"Web Skill","category":"anthropic-skill","format":"json","content":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"preserve\",\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"types\": [\"vite/client\", \"vue\"]\n  },\n  \"include\": [\"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\", \"tsconfig.node.json\"]\n}\n","frontmatter":{"compilerOptions":{"target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],"skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,"resolveJsonModule":true,"isolatedModules":true,"noEmit":true,"jsx":"preserve","strict":true,"noUnusedLocals":true,"noUnusedParameters":true,"noFallthroughCasesInSwitch":true,"types":["vite/client","vue"]},"include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue","tsconfig.node.json"]},"isInternal":false,"tokens":189,"sizeBytes":623},{"name":"README.md","path":"packages/core/tests/fixtures/README.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/README.md","title":"fixtures Documentation","category":"plugin-manifest","format":"markdown","content":"# fixtures Documentation\n\nPath: `packages/core/tests/fixtures/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/README.md)","tokens":300,"sizeBytes":208},{"name":"README.md","path":"packages/core/tests/helpers/README.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/helpers/README.md","title":"helpers Documentation","category":"plugin-manifest","format":"markdown","content":"# helpers Documentation\n\nPath: `packages/core/tests/helpers/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/helpers/README.md)","tokens":300,"sizeBytes":205},{"name":"README.md","path":"packages/desktop/README.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README.md","title":"desktop Documentation","category":"plugin-manifest","format":"markdown","content":"# desktop Documentation\n\nPath: `packages/desktop/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README.md)","tokens":300,"sizeBytes":183},{"name":"README.md","path":"packages/mcp-server/README.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/mcp-server/README.md","title":"mcp-server Documentation","category":"plugin-manifest","format":"markdown","content":"# 提示词优化器 MCP 服务器\n\n为提示词优化器项目提供的 MCP (Model Context Protocol) 服务器。提供提示词优化工具，支持通过 HTTP 协议连接，可被任何 MCP 兼容客户端使用。\n\n> **用户部署和使用指南**：请查看 [MCP 服务器用户指南](../../docs/user/mcp-server.md)\n\n## 功能特性\n\n- **optimize-user-prompt**: 优化用户提示词以提升 LLM 性能\n- **optimize-system-prompt**: 优化系统提示词以提升 LLM 性能\n- **iterate-prompt**: 基于特定需求迭代改进成熟的提示词\n\n## 快速开始\n\n### 开发模式（推荐）\n\n```bash\n# 安装依赖\npnpm install\n\n# 开发模式：自动监听文件变化，自动重新编译和重启服务器\npnpm dev\n```\n\n服务器将在 `http://localhost:3000/mcp` 启动，修改代码后自动重启。\n\n### 生产模式\n\n```bash\n# 1. 构建项目\npnpm build\n\n# 2. 启动服务器\npnpm start\n```\n\n服务器将在 `http://localhost:3000/mcp` 启动。\n\n### 根目录快捷命令\n\n如果你在项目根目录，可以使用以下快捷命令：\n\n```bash\n# 开发模式\npnpm mcp:dev\n\n# 构建项目\npnpm mcp:build\n\n# 启动服务器（默认已启用 debug 日志）\npnpm mcp:start\n\n# 如需调整日志级别\nMCP_LOG_LEVEL=info pnpm mcp:start\n\n# 运行测试\npnpm mcp:test\n```\n\n## 开发配置\n\n### 环境变量\n\n开发时需要在项目根目录配置 `.env.local` 文件。详细的配置说明请参考 [用户指南](../../docs/user/mcp-server.md#环境变量配置)。\n\n开发环境最小配置示例：\n```bash\n# 至少配置一个 API 密钥\nVITE_OPENAI_API_KEY=your-openai-key\nMCP_DEFAULT_MODEL_PROVIDER=openai\nMCP_LOG_LEVEL=debug\n```\n\n## 日志配置\n\nMCP 服务器默认启用 `debug` 级别日志，可通过 `MCP_LOG_LEVEL` 环境变量调整：\n\n```bash\n# 默认 debug 级别（显示所有日志）\npnpm start\n\n# 调整为 info 级别\nMCP_LOG_LEVEL=info pnpm start\n\n# 调整为 warn 级别\nMCP_LOG_LEVEL=warn pnpm start\n\n# 调整为 error 级别\nMCP_LOG_LEVEL=error pnpm start\n```\n\n### 日志级别说明\n\n- `debug` - 调试信息（默认，开发时使用）\n- `info` - 一般信息（服务启动、配置等）\n- `warn` - 警告信息（非致命问题）\n- `error` - 错误信息（需要关注的问题）\n\n\n\n## 开发\n\n```bash\n# 开发模式（自动监听文件变化，自动重启服务器）\npnpm dev\n\n# 运行测试\npnpm test\n\n# 类型检查\npnpm type-check\n\n# 代码检查\npnpm lint\n```\n\n## 测试与调试\n\n### 使用 MCP Inspector 测试\n\nMCP Inspector 是官方提供的可视化测试工具，支持通过 Web UI 测试 MCP 服务器。\n\n#### 使用 MCP Inspector 测试\n\n```bash\n# 1. 启动 MCP 服务器\npnpm start\n\n# 2. 在另一个终端启动 Inspector\nnpx @modelcontextprotocol/inspector\n```\n\n然后在 Inspector Web UI 中：\n1. 选择传输方式：`Streamable HTTP`\n2. 服务器 URL：`http://localhost:3000/mcp`\n3. 点击 \"Connect\" 连接服务器\n4. 测试可用的工具：`optimize-user-prompt`、`optimize-system-prompt`、`iterate-prompt`\n\n#### 其他测试方法\n\n**重要提示**：MCP 协议不是简单的 REST API，不能直接用 curl 测试。\n\n**推荐的测试方式**：\n1. **MCP Inspector**（官方工具）- 最佳选择\n2. **Claude Desktop** - 实际使用场景\n3. **自定义 MCP 客户端** - 使用 `@modelcontextprotocol/sdk`\n\n**为什么不能用 curl**：\n- MCP 使用 JSON-RPC 2.0 协议\n- 需要特殊的握手和初始化过程\n- HTTP 传输使用流式连接，不是简单的请求-响应\n\n## 📚 相关文档\n\n- [MCP 服务器用户指南](../../docs/user/mcp-server.md) - 用户部署和使用指南\n- [MCP 服务器开发经验](../../docs/archives/120-mcp-server-module/experience.md) - 开发经验和最佳实践\n- [项目主页](../../README.md) - 项目概述和快速开始\n\n## 架构设计\n\n此 MCP 服务器遵循零侵入设计原则：\n- 仅使用现有 Core 模块 API，无需修改\n- 采用内存存储实现无状态操作\n- 提供 MCP 和 Core 格式之间的参数适配\n\n## 许可证\n\nGNU Affero General Public License v3.0 (AGPL-3.0-only)\n","isInternal":false,"tokens":1352,"sizeBytes":4049},{"name":"README.md","path":"packages/ui/docs/README.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/README.md","title":"docs Documentation","category":"plugin-manifest","format":"markdown","content":"# docs Documentation\n\nPath: `packages/ui/docs/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/README.md)","tokens":300,"sizeBytes":180},{"name":"README.md","path":"packages/ui/README.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/README.md","title":"ui Documentation","category":"plugin-manifest","format":"markdown","content":"# @prompt-optimizer/ui\n\nPrompt Optimizer的Vue 3用户界面组件库，基于Naive UI设计系统构建的现代化UI组件集合。\n\n## 特性\n\n✅ **Vue 3 + TypeScript** - 完整的类型安全支持  \n✅ **Naive UI基础** - 基于成熟的设计系统  \n✅ **主题系统** - 支持亮色/暗色主题无缝切换  \n✅ **响应式设计** - 自动适配不同屏幕尺寸  \n✅ **国际化支持** - 多语言界面支持  \n✅ **模块化架构** - 可独立使用的组件  \n\n## 安装\n\n```bash\npnpm add @prompt-optimizer/ui @prompt-optimizer/core naive-ui\n```\n\n## 快速开始\n\n### 基础设置\n\n```typescript\nimport { createApp } from 'vue'\nimport { installI18n } from '@prompt-optimizer/ui'\nimport App from './App.vue'\n\nconst app = createApp(App)\n\n// 安装国际化\ninstallI18n(app)\n\napp.mount('#app')\n```\n\n### 主题配置\n\n```vue\n<template>\n  <NConfigProvider :theme=\"naiveTheme\" :theme-overrides=\"themeOverrides\">\n    <NMessageProvider>\n      <YourApp />\n    </NMessageProvider>\n  </NConfigProvider>\n</template>\n\n<script setup>\nimport { NConfigProvider, NMessageProvider } from 'naive-ui'\nimport { useNaiveTheme } from '@prompt-optimizer/ui'\n\nconst { naiveTheme, themeOverrides } = useNaiveTheme()\n</script>\n```\n\n## 核心组件\n\n### TestArea组件系统\n\n现代化的AI提示词测试界面，支持系统/用户提示词模式和对比测试功能。\n\n```vue\n<template>\n  <TestAreaPanel\n    :optimization-mode=\"optimizationMode\"\n    :is-test-running=\"isTestRunning\"\n    :test-content=\"testContent\"\n    :is-compare-mode=\"isCompareMode\"\n    @update:test-content=\"testContent = $event\"\n    @compare-toggle=\"handleCompareToggle\"\n    @test=\"handleTest\"\n  >\n    <template #model-select>\n      <SelectWithConfig\n        v-model=\"selectedModel\"\n        :options=\"modelOptions\"\n        :getPrimary=\"(o) => o.label\"\n        :getValue=\"(o) => o.value\"\n      />\n    </template>\n  </TestAreaPanel>\n</template>\n```\n\n**包含组件：**\n- `TestAreaPanel` - 主容器组件\n- `TestInputSection` - 测试内容输入\n- `TestControlBar` - 测试控制栏\n- `TestResultSection` - 测试结果展示\n- `ConversationSection` - 会话管理包装\n\n### 模型管理\n\n```vue\n<template>\n  <!-- 模型选择器 -->\n  <SelectWithConfig\n    v-model=\"selectedModel\"\n    :options=\"modelOptions\"\n    :getPrimary=\"(o) => o.label\"\n    :getValue=\"(o) => o.value\"\n  />\n  \n  <!-- 模型管理器 -->\n  <ModelManagerUI @model-updated=\"handleModelUpdate\" />\n</template>\n```\n\n### 模板系统\n\n```vue\n<template>\n  <!-- 模板选择器 -->\n  <TemplateSelectUI v-model=\"selectedTemplate\" />\n  \n  <!-- 模板管理器 -->\n  <TemplateManagerUI @template-saved=\"handleTemplateSave\" />\n</template>\n```\n\n### 输入输出\n\n```vue\n<template>\n  <!-- 输入面板 -->\n  <InputPanelUI \n    v-model=\"inputContent\"\n    :placeholder=\"placeholder\"\n  />\n  \n  <!-- 输出显示 -->\n  <OutputDisplay \n    :content=\"outputContent\"\n    :enable-fullscreen=\"true\"\n  />\n  \n  <!-- 全屏输出显示 -->\n  <OutputDisplayFullscreen \n    v-model:visible=\"showFullscreen\"\n    :content=\"content\"\n  />\n</template>\n```\n\n### 布局组件\n\n```vue\n<template>\n  <!-- 主布局 -->\n  <MainLayoutUI>\n    <template #header>\n      <YourHeader />\n    </template>\n    <template #sidebar>\n      <YourSidebar />\n    </template>\n    <YourContent />\n  </MainLayoutUI>\n  \n  <!-- 内容卡片 -->\n  <ContentCardUI :title=\"cardTitle\">\n    <YourContent />\n  </ContentCardUI>\n</template>\n```\n\n### 数据管理\n\n```vue\n<template>\n  <!-- 数据管理器 -->\n  <DataManagerUI \n    @data-imported=\"handleImport\"\n    @data-exported=\"handleExport\"\n  />\n  \n  <!-- 变量管理 -->\n  <VariableManager \n    v-model=\"variables\"\n    @variable-updated=\"handleVariableUpdate\"\n  />\n</template>\n```\n\n## Composables\n\n### 主题管理\n\n```typescript\nimport { useNaiveTheme } from '@prompt-optimizer/ui'\n\nconst {\n  naiveTheme,       // Naive UI主题对象\n  themeOverrides,   // 主题覆盖配置\n  currentTheme,     // 当前主题ID\n  switchTheme,      // 切换主题\n  initTheme         // 初始化主题\n} = useNaiveTheme()\n```\n\n### 响应式布局\n\n```typescript\nimport { useResponsiveTestLayout } from '@prompt-optimizer/ui'\n\nconst {\n  isMobile,           // 是否为移动端\n  isTablet,           // 是否为平板\n  currentBreakpoint,  // 当前断点\n  inputMode,          // 推荐的输入模式\n  controlBarLayout,   // 推荐的控制栏布局\n  buttonSize,         // 推荐的按钮尺寸\n  responsiveHeights   // 响应式高度配置\n} = useResponsiveTestLayout()\n```\n\n### 测试模式配置\n\n```typescript\nimport { useTestModeConfig } from '@prompt-optimizer/ui'\n\nconst {\n  showTestInput,          // 是否显示测试输入\n  requiresTestContent,    // 是否需要测试内容\n  canStartTest,           // 是否可以开始测试\n  enableCompareMode,      // 是否启用对比模式\n  getDynamicButtonText,   // 获取动态按钮文本\n  validateTestSetup       // 验证测试配置\n} = useTestModeConfig(optimizationMode)\n```\n\n## 组件导出\n\n### UI组件\n\n```typescript\n// 核心组件\nexport { default as ToastUI } from './components/Toast.vue'\nexport { default as ModalUI } from './components/Modal.vue'\nexport { default as PanelUI } from './components/Panel.vue'\n\n// 布局组件\nexport { default as MainLayoutUI } from './components/MainLayout.vue'\nexport { default as ContentCardUI } from './components/ContentCard.vue'\n\n// TestArea组件系统\nexport { default as TestAreaPanel } from './components/TestAreaPanel.vue'\nexport { default as TestInputSection } from './components/TestInputSection.vue'\nexport { default as TestControlBar } from './components/TestControlBar.vue'\nexport { default as TestResultSection } from './components/TestResultSection.vue'\nexport { default as ConversationSection } from './components/ConversationSection.vue'\n\n// 输入输出组件\nexport { default as InputPanelUI } from './components/InputPanel.vue'\nexport { default as OutputDisplay } from './components/OutputDisplay.vue'\nexport { default as OutputDisplayFullscreen } from './components/OutputDisplayFullscreen.vue'\nexport { default as OutputDisplayCore } from './components/OutputDisplayCore.vue'\n\n// 管理组件\nexport { default as ModelManagerUI } from './components/ModelManager.vue'\nexport { default as TemplateManagerUI } from './components/TemplateManager.vue'\nexport { default as TemplateSelectUI } from './components/TemplateSelect.vue'\nexport { default as DataManagerUI } from './components/DataManager.vue'\nexport { default as VariableManager } from './components/VariableManager.vue'\nexport { default as FunctionModelManagerUI } from './components/FunctionModelManager.vue'\n\n// 功能组件\nexport { default as ActionButtonUI } from './components/ActionButton.vue'\nexport { default as ThemeToggleUI } from './components/ThemeToggleUI.vue'\nexport { default as LanguageSwitchDropdown } from './components/LanguageSwitchDropdown.vue'\nexport { default as OptimizationModeSelectorUI } from './components/OptimizationModeSelector.vue'\nexport { default as TextDiffUI } from './components/TextDiff.vue'\nexport { default as MarkdownRenderer } from './components/MarkdownRenderer.vue'\n\n// 高级组件\nexport { default as AdvancedTestPanel } from './components/AdvancedTestPanel.vue'\nexport { default as ConversationManager } from './components/ConversationManager.vue'\nexport { default as VariableEditor } from './components/VariableEditor.vue'\nexport { default as HistoryDrawerUI } from './components/HistoryDrawer.vue'\n```\n\n### Composables\n\n```typescript\n// 导出所有composables\nexport * from './composables'\n\n// 主要composables\nexport { useNaiveTheme } from './composables/useNaiveTheme'\nexport { useResponsiveTestLayout } from './composables/useResponsiveTestLayout'\nexport { useTestModeConfig } from './composables/useTestModeConfig'\n```\n\n### 主题系统\n\n```typescript\n// 主题配置\nexport { \n  currentNaiveTheme as naiveTheme,\n  currentThemeOverrides as themeOverrides, \n  currentThemeId, \n  currentThemeConfig,\n  naiveThemeConfigs,\n  switchTheme,\n  initializeNaiveTheme\n} from './config/naive-theme'\n```\n\n### 国际化\n\n```typescript\n// I18n系统\nexport { \n  installI18n, \n  installI18nOnly, \n  initializeI18nWithStorage, \n  setI18nServices, \n  i18n \n} from './plugins/i18n'\n```\n\n## 类型系统\n\n### 核心类型\n\n```typescript\nimport type { \n  OptimizationMode,\n  ConversationMessage,\n  Template,\n  IModelManager,\n  ITemplateManager,\n  ILLMService,\n  IPromptService\n} from '@prompt-optimizer/core'\n\n// TestArea组件类型\nexport interface TestAreaConfig {\n  optimizationMode: OptimizationMode\n  inputMode: 'default' | 'compact'\n  controlBarLayout: 'default' | 'compact'\n  buttonSize: 'small' | 'medium' | 'large'\n}\n\nexport interface TestControlLayout {\n  showCompareToggle: boolean\n  primaryActionText: string\n  buttonSize: string\n}\n```\n\n## 样式规范\n\nUI组件遵循严格的设计规范：\n\n- **无硬编码像素值** - 使用Naive UI的size系统\n- **无Tailwind CSS类** - 纯Naive UI组件实现\n- **统一间距系统** - 基于16px基准的间距规范\n- **响应式设计** - 支持xs/sm/md/lg/xl/xxl断点\n- **主题兼容性** - 完全兼容亮色/暗色主题\n\n详见：[测试区域组件样式规范](../docs/components/test-area-style-guide.md)\n\n## 开发\n\n### 本地开发\n\n```bash\n# 安装依赖\npnpm install\n\n# 开发模式\npnpm dev\n\n# 构建UI包\npnpm -F @prompt-optimizer/ui build\n\n# 运行测试\npnpm -F @prompt-optimizer/ui test\n\n# 类型检查\npnpm -F @prompt-optimizer/ui exec tsc --noEmit\n```\n\n### 测试\n\n```bash\n# 运行所有测试\npnpm -F @prompt-optimizer/ui test\n\n# 运行特定组件测试\npnpm -F @prompt-optimizer/ui test -- TestAreaPanel\n\n# 运行集成测试\npnpm -F @prompt-optimizer/ui test -- test-area-integration\n\n# 运行端到端测试  \npnpm -F @prompt-optimizer/ui test -- test-area-e2e\n```\n\n### 组件开发指南\n\n1. **使用Naive UI组件** - 基于NButton、NInput、NFlex等\n2. **遵循TypeScript规范** - 完整的类型定义\n3. **支持主题切换** - 使用主题变量而非硬编码颜色\n4. **响应式设计** - 适配不同屏幕尺寸\n5. **国际化支持** - 所有文本使用i18n\n6. **单元测试** - 为每个组件编写测试用例\n\n## 依赖\n\n### 核心依赖\n\n- **Vue 3.x** - 渐进式JavaScript框架\n- **Naive UI 2.x** - Vue 3设计系统组件库\n- **@prompt-optimizer/core** - 核心业务逻辑\n- **Vue I18n** - Vue国际化插件\n\n### 开发依赖\n\n- **TypeScript 5.x** - 类型系统\n- **Vitest** - 单元测试框架\n- **@vue/test-utils** - Vue组件测试工具\n- **Vite** - 现代化构建工具\n\n## 兼容性\n\n- **Vue**: 3.0+\n- **Node.js**: 18.0+\n- **浏览器**: Chrome 88+, Firefox 85+, Safari 14+\n- **Naive UI**: 2.34+\n\n## 许可证\n\nGNU Affero General Public License v3.0 (AGPL-3.0-only)\n\n## 文档\n\n- [完整组件文档](../docs/components/test-area.md)\n- [样式规范指南](../docs/components/test-area-style-guide.md)\n- [开发者指南](../docs/developer/technical-development-guide.md)\n\n---\n\n**最后更新：** 2025-01-20  \n**版本：** 1.4.4\n","isInternal":false,"tokens":3175,"sizeBytes":11005},{"name":"README.md","path":"packages/ui/src/i18n/README.md","rawUrl":"https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/src/i18n/README.md","title":"i18n Documentation","category":"plugin-manifest","format":"markdown","content":"# i18n Documentation\n\nPath: `packages/ui/src/i18n/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/src/i18n/README.md)","tokens":300,"sizeBytes":188}],"systemPromptSnippet":"<yakaai_skills repo=\"linshenkx/prompt-optimizer\">\n<!-- File: packages/core/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Core Skill\n\nPath: `packages/core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/package.json)\n\n<!-- File: packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-compare.md)\n\n<!-- File: packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-prompt-only.md)\n\n<!-- File: packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/basic-user-result.md)\n\n<!-- File: packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-multi-compare.md)\n\n<!-- File: packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Evaluation-rendered Skill\n\nPath: `packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/evaluation-rendered/pro-variable-prompt-only.md)\n\n<!-- File: packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Deepseek Skill\n\nPath: `packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/fixtures/llm/deepseek/optimize-simple-prompt.json)\n\n<!-- File: packages/core/tests/unit/image/openrouter-parameter-fix-summary.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Image Skill\n\nPath: `packages/core/tests/unit/image/openrouter-parameter-fix-summary.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/image/openrouter-parameter-fix-summary.md)\n\n<!-- File: packages/core/tests/unit/template/soul-template-manual-acceptance.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Template Skill\n\nPath: `packages/core/tests/unit/template/soul-template-manual-acceptance.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tests/unit/template/soul-template-manual-acceptance.md)\n\n<!-- File: packages/core/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Core Skill\n\nPath: `packages/core/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/core/tsconfig.json)\n\n<!-- File: packages/desktop/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Desktop Skill\n\nPath: `packages/desktop/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/package.json)\n\n<!-- File: packages/desktop/README-env-config.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Desktop Skill\n\nPath: `packages/desktop/README-env-config.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/desktop/README-env-config.md)\n\n<!-- File: packages/extension/chrome.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/chrome.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/chrome.md)\n\n<!-- File: packages/extension/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/package.json)\n\n<!-- File: packages/extension/permissions-explanation.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/permissions-explanation.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/permissions-explanation.md)\n\n<!-- File: packages/extension/privacy-policy.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/privacy-policy.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/privacy-policy.md)\n\n<!-- File: packages/extension/public/_locales/en/messages.json (Tokens: ~300 | Category: anthropic-skill) -->\n# En Skill\n\nPath: `packages/extension/public/_locales/en/messages.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/en/messages.json)\n\n<!-- File: packages/extension/public/_locales/zh_CN/messages.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Zh_CN Skill\n\nPath: `packages/extension/public/_locales/zh_CN/messages.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/_locales/zh_CN/messages.json)\n\n<!-- File: packages/extension/public/manifest.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Public Skill\n\nPath: `packages/extension/public/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/public/manifest.json)\n\n<!-- File: packages/extension/publish-guide.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/publish-guide.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/publish-guide.md)\n\n<!-- File: packages/extension/screenshots.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/screenshots.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/screenshots.md)\n\n<!-- File: packages/extension/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.json)\n\n<!-- File: packages/extension/tsconfig.node.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/tsconfig.node.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.node.json)\n\n<!-- File: packages/extension/tsconfig.typecheck.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Extension Skill\n\nPath: `packages/extension/tsconfig.typecheck.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/extension/tsconfig.typecheck.json)\n\n<!-- File: packages/mcp-server/package.json (Tokens: ~506 | Category: anthropic-skill) -->\n{\n  \"name\": \"@prompt-optimizer/mcp-server\",\n  \"version\": \"0.1.0\",\n  \"description\": \"MCP (Model Context Protocol) server for prompt-optimizer\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.js\",\n  \"types\": \"./dist/index.d.ts\",\n  \"bin\": {\n    \"prompt-optimizer-mcp\": \"./bin/prompt-optimizer-mcp.cjs\"\n  },\n  \"scripts\": {\n    \"build\": \"tsup src/index.ts src/start.ts --format cjs,esm --dts --clean\",\n    \"dev\": \"node -r ./preload-env.js dist/start.js --transport=http\",\n    \"start\": \"node -r ./preload-env.cjs dist/start.cjs --transport=http\",\n    \"test\": \"vitest run\",\n    \"lint\": \"eslint src --ext .ts\",\n    \"type-check\": \"tsc --noEmit\"\n  },\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"prompt-optimization\",\n    \"llm\",\n    \"ai\"\n  ],\n  \"author\": \"Prompt Optimizer Team\",\n  \"license\": \"AGPL-3.0-only\",\n  \"dependencies\": {\n    \"@modelcontextprotocol/sdk\": \"^1.32.0\",\n    \"@prompt-optimizer/core\": \"workspace:*\",\n    \"debug\": \"^4.4.3\",\n    \"dotenv\": \"^17.3.1\",\n    \"express\": \"^5.2.1\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^10.0.1\",\n    \"@types/debug\": \"^4.1.13\",\n    \"@types/express\": \"^5.0.6\",\n    \"@types/node\": \"^24.13.4\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.57.2\",\n    \"@typescript-eslint/parser\": \"^8.57.2\",\n    \"eslint\": \"^10.1.0\",\n    \"globals\": \"^17.4.0\",\n    \"tsup\": \"^8.5.1\",\n    \"typescript\": \"^5.9.3\",\n    \"vitest\": \"^4.1.12\"\n  },\n  \"engines\": {\n    \"node\": \"^24.22.1\"\n  },\n  \"files\": [\n    \"bin\",\n    \"dist\",\n    \"README.md\"\n  ]\n}\n\n<!-- File: packages/mcp-server/tsconfig.json (Tokens: ~208 | Category: anthropic-skill) -->\n{\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"./src\",\n    \"module\": \"ESNext\",\n    \"target\": \"ES2022\",\n    \"moduleResolution\": \"bundler\",\n    \"allowSyntheticDefaultImports\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"ignoreDeprecations\": \"5.0\",\n    \"noEmit\": false,\n    \"lib\": [\n      \"ES2022\",\n      \"DOM\"\n    ]\n  },\n  \"include\": [\n    \"src/**/*\"\n  ],\n  \"exclude\": [\n    \"dist\",\n    \"node_modules\",\n    \"tests\",\n    \"**/*.test.ts\"\n  ]\n}\n\n<!-- File: packages/ui/docs/ACCESSIBILITY_GUIDE.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docs Skill\n\nPath: `packages/ui/docs/ACCESSIBILITY_GUIDE.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/ACCESSIBILITY_GUIDE.md)\n\n<!-- File: packages/ui/docs/COMPONENT_API.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docs Skill\n\nPath: `packages/ui/docs/COMPONENT_API.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/docs/COMPONENT_API.md)\n\n<!-- File: packages/ui/package.json (Tokens: ~856 | Category: anthropic-skill) -->\n{\n  \"name\": \"@prompt-optimizer/ui\",\n  \"version\": \"0.0.1\",\n  \"private\": true,\n  \"license\": \"AGPL-3.0-only\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.cjs\",\n  \"module\": \"./dist/index.js\",\n  \"types\": \"./dist/src/index.d.ts\",\n  \"style\": \"./dist/style.css\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/src/index.d.ts\",\n      \"import\": \"./dist/index.js\",\n      \"require\": \"./dist/index.cjs\"\n    },\n    \"./style.css\": \"./dist/style.css\",\n    \"./dist/style.css\": \"./dist/style.css\"\n  },\n  \"files\": [\n    \"dist\"\n  ],\n  \"readme\": \"On Windows, use semicolons (;) instead of && as command separators, or run the build:win script.\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build:bundle\": \"vite build\",\n    \"build:types\": \"vue-tsc -p tsconfig.build.json\",\n    \"build\": \"pnpm run build:bundle && pnpm run build:types\",\n    \"build:win\": \"pnpm run build\",\n    \"test\": \"vitest run\",\n    \"typecheck\": \"vue-tsc --noEmit\",\n    \"lint\": \"eslint src --ext .ts,.vue\",\n    \"lint:fix\": \"eslint src --ext .ts,.vue --fix\"\n  },\n  \"dependencies\": {\n    \"@aws-sdk/client-s3\": \"^3.1129.0\",\n    \"@codemirror/autocomplete\": \"^6.20.1\",\n    \"@codemirror/language\": \"^6.12.3\",\n    \"@codemirror/state\": \"^6.6.0\",\n    \"@codemirror/view\": \"^6.40.0\",\n    \"@prompt-optimizer/core\": \"workspace:*\",\n    \"@vicons/tabler\": \"^0.13.0\",\n    \"@vueuse/core\": \"^14.2.1\",\n    \"codemirror\": \"^6.0.2\",\n    \"dompurify\": \"^3.4.16\",\n    \"fflate\": \"^0.8.3\",\n    \"highlight.js\": \"^11.11.1\",\n    \"markdown-it\": \"^14.3.3\",\n    \"naive-ui\": \"2.44.1\",\n    \"pinia\": \"^3.0.4\",\n    \"uuid\": \"^13.0.2\",\n    \"vue\": \"^3.5.31\",\n    \"vue-i18n\": \"^11.3.0\",\n    \"vue-router\": \"^5.0.4\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^10.0.1\",\n    \"@tailwindcss/forms\": \"^0.5.11\",\n    \"@tailwindcss/postcss\": \"^4.2.2\",\n    \"@tailwindcss/typography\": \"^0.5.19\",\n    \"@types/node\": \"^24.13.4\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.57.2\",\n    \"@typescript-eslint/parser\": \"^8.57.2\",\n    \"@vitejs/plugin-vue\": \"^6.0.5\",\n    \"@vue/test-utils\": \"^2.4.6\",\n    \"@vue/tsconfig\": \"^0.9.1\",\n    \"eslint\": \"^10.1.0\",\n    \"eslint-plugin-vue\": \"^10.8.0\",\n    \"globals\": \"^17.4.0\",\n    \"jsdom\": \"^29.0.1\",\n    \"postcss\": \"^8.5.28\",\n    \"tailwindcss\": \"^4.2.2\",\n    \"typescript\": \"^5.9.3\",\n    \"vite\": \"^8.3.3\",\n    \"vitest\": \"^4.1.12\",\n    \"vue-eslint-parser\": \"^10.4.0\",\n    \"vue-tsc\": \"^3.2.6\"\n  }\n}\n\n<!-- File: packages/ui/tests/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Tests Skill\n\nPath: `packages/ui/tests/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/linshenkx/prompt-optimizer/HEAD/packages/ui/tests/tsconfig.json)\n\n<!-- ... +15 more modular skills available via /api/skills/linshenkx/prompt-optimizer?path={path} -->\n</yakaai_skills>"}