gitextract_moyqnob7/ ├── .dockerignore ├── .eslintrc.json ├── .github/ │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ ├── enhancement.md │ │ └── feature_request.md │ ├── renovate.json │ └── workflows/ │ ├── auto-format.yml │ ├── ci.yml │ ├── docker-build.yml │ ├── electron-release.yml │ └── test.yml ├── .gitignore ├── .husky/ │ ├── pre-commit │ └── pre-push ├── .vscode/ │ └── settings.json ├── Dockerfile ├── LICENSE ├── README.md ├── app/ │ ├── [lang]/ │ │ ├── about/ │ │ │ ├── cn/ │ │ │ │ └── page.tsx │ │ │ ├── ja/ │ │ │ │ └── page.tsx │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── api/ │ │ ├── chat/ │ │ │ ├── route.ts │ │ │ └── xml_guide.md │ │ ├── config/ │ │ │ └── route.ts │ │ ├── log-feedback/ │ │ │ └── route.ts │ │ ├── log-save/ │ │ │ └── route.ts │ │ ├── parse-url/ │ │ │ └── route.ts │ │ ├── server-models/ │ │ │ └── route.ts │ │ ├── validate-diagram/ │ │ │ └── route.ts │ │ ├── validate-model/ │ │ │ └── route.ts │ │ └── verify-access-code/ │ │ └── route.ts │ ├── globals.css │ ├── manifest.ts │ ├── robots.ts │ └── sitemap.ts ├── biome.json ├── components/ │ ├── ai-elements/ │ │ ├── model-selector.tsx │ │ ├── reasoning.tsx │ │ └── shimmer.tsx │ ├── button-with-tooltip.tsx │ ├── chat/ │ │ ├── ChatLobby.tsx │ │ ├── ToolCallCard.tsx │ │ ├── ValidationCard.tsx │ │ └── types.ts │ ├── chat-example-panel.tsx │ ├── chat-input.tsx │ ├── chat-message-display.tsx │ ├── chat-panel.tsx │ ├── code-block.tsx │ ├── dev-xml-simulator.tsx │ ├── error-toast.tsx │ ├── file-preview-list.tsx │ ├── history-dialog.tsx │ ├── image-with-basepath.tsx │ ├── model-config-dialog.tsx │ ├── model-selector.tsx │ ├── quota-limit-toast.tsx │ ├── reset-warning-modal.tsx │ ├── save-dialog.tsx │ ├── settings-dialog.tsx │ ├── ui/ │ │ ├── alert-dialog.tsx │ │ ├── button.tsx │ │ ├── collapsible.tsx │ │ ├── command.tsx │ │ ├── dialog.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── popover.tsx │ │ ├── resizable.tsx │ │ ├── scroll-area.tsx │ │ ├── select.tsx │ │ ├── switch.tsx │ │ ├── textarea.tsx │ │ └── tooltip.tsx │ └── url-input-dialog.tsx ├── components.json ├── contexts/ │ └── diagram-context.tsx ├── docker-compose.yml ├── docs/ │ ├── cn/ │ │ ├── FAQ.md │ │ ├── README_CN.md │ │ ├── ai-providers.md │ │ ├── cloudflare-deploy.md │ │ ├── docker.md │ │ └── offline-deployment.md │ ├── en/ │ │ ├── FAQ.md │ │ ├── ai-providers.md │ │ ├── cloudflare-deploy.md │ │ ├── docker.md │ │ └── offline-deployment.md │ ├── ja/ │ │ ├── FAQ.md │ │ ├── README_JA.md │ │ ├── ai-providers.md │ │ ├── cloudflare-deploy.md │ │ ├── docker.md │ │ └── offline-deployment.md │ └── shape-libraries/ │ ├── README.md │ ├── alibaba_cloud.md │ ├── android.md │ ├── arrows2.md │ ├── atlassian.md │ ├── aws4.md │ ├── azure2.md │ ├── basic.md │ ├── bpmn.md │ ├── cabinets.md │ ├── cisco19.md │ ├── citrix.md │ ├── electrical.md │ ├── floorplan.md │ ├── flowchart.md │ ├── fluidpower.md │ ├── gcp2.md │ ├── infographic.md │ ├── kubernetes.md │ ├── lean_mapping.md │ ├── material_design.md │ ├── mscae.md │ ├── network.md │ ├── openstack.md │ ├── pid.md │ ├── rack.md │ ├── salesforce.md │ ├── sap.md │ ├── sitemap.md │ ├── vvd.md │ └── webicons.md ├── edge-functions/ │ └── api/ │ └── edgeai/ │ └── chat/ │ └── completions.ts ├── edgeone.json ├── electron/ │ ├── electron-builder.yml │ ├── electron.d.ts │ ├── main/ │ │ ├── app-menu.ts │ │ ├── config-manager.ts │ │ ├── env-loader.ts │ │ ├── index.ts │ │ ├── ipc-handlers.ts │ │ ├── menu-i18n.ts │ │ ├── next-server.ts │ │ ├── port-manager.ts │ │ ├── proxy-manager.ts │ │ ├── settings-window.ts │ │ └── window-manager.ts │ ├── preload/ │ │ ├── index.ts │ │ └── settings.ts │ ├── settings/ │ │ ├── index.html │ │ ├── settings.css │ │ └── settings.js │ └── tsconfig.json ├── env.example ├── hooks/ │ ├── use-diagram-tool-handlers.ts │ ├── use-dictionary.ts │ ├── use-model-config.ts │ ├── use-session-manager.ts │ └── use-validate-diagram.ts ├── instrumentation.ts ├── lib/ │ ├── ai-providers.ts │ ├── base-path.ts │ ├── cached-responses.ts │ ├── chat-helpers.ts │ ├── diagram-validator.ts │ ├── dynamo-quota-manager.ts │ ├── i18n/ │ │ ├── config.ts │ │ ├── dictionaries/ │ │ │ ├── en.json │ │ │ ├── ja.json │ │ │ ├── zh-Hant.json │ │ │ └── zh.json │ │ ├── dictionaries.ts │ │ └── utils.ts │ ├── langfuse.ts │ ├── pdf-utils.ts │ ├── server-model-config.ts │ ├── session-storage.ts │ ├── ssrf-protection.ts │ ├── storage.ts │ ├── system-prompts.ts │ ├── types/ │ │ └── model-config.ts │ ├── url-utils.ts │ ├── use-file-processor.tsx │ ├── use-quota-manager.tsx │ ├── user-id.ts │ ├── utils.ts │ ├── validation-prompts.ts │ └── validation-schema.ts ├── next.config.ts ├── open-next.config.ts ├── package.json ├── packages/ │ ├── claude-plugin/ │ │ ├── .claude-plugin/ │ │ │ └── plugin.json │ │ ├── .mcp.json │ │ └── README.md │ └── mcp-server/ │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── diagram-operations.ts │ │ ├── history.ts │ │ ├── http-server.ts │ │ ├── index.ts │ │ ├── logger.ts │ │ └── xml-validation.ts │ └── tsconfig.json ├── playwright.config.ts ├── postcss.config.mjs ├── proxy.ts ├── public/ │ ├── _headers │ └── chain-of-thought.txt ├── resources/ │ └── entitlements.mac.plist ├── scripts/ │ ├── afterPack.cjs │ ├── electron-dev.mjs │ ├── prepare-electron-build.mjs │ └── test-diagram-operations.mjs ├── tests/ │ ├── e2e/ │ │ ├── chat.spec.ts │ │ ├── copy-paste.spec.ts │ │ ├── diagram-generation.spec.ts │ │ ├── error-handling.spec.ts │ │ ├── file-upload.spec.ts │ │ ├── fixtures/ │ │ │ └── diagrams.ts │ │ ├── history-restore.spec.ts │ │ ├── history.spec.ts │ │ ├── iframe-interaction.spec.ts │ │ ├── keyboard.spec.ts │ │ ├── language.spec.ts │ │ ├── lib/ │ │ │ ├── fixtures.ts │ │ │ └── helpers.ts │ │ ├── model-config.spec.ts │ │ ├── multi-turn.spec.ts │ │ ├── save.spec.ts │ │ ├── settings.spec.ts │ │ ├── smoke.spec.ts │ │ ├── theme.spec.ts │ │ └── upload.spec.ts │ └── unit/ │ ├── ai-providers.test.ts │ ├── cached-responses.test.ts │ ├── chat-helpers.test.ts │ ├── diagram-validator.test.ts │ ├── server-model-config.test.ts │ └── utils.test.ts ├── tsconfig.json ├── vercel.json ├── vitest.config.mts └── wrangler.jsonc