{"owner":"Z-Siqi","repo":"Clash-for-Windows_Chinese","hasSkills":true,"totalSkillsCount":9,"totalTokensCount":2137,"categories":["root-instruction","plugin-manifest","anthropic-skill"],"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md","app/main/node_modules/mousetrap/plugins/pause/README.md","app/main/node_modules/mousetrap/plugins/record/README.md","app/main/node_modules/mousetrap/plugins/bind-dictionary/README.md","app/main/node_modules/vue/packages/compiler-sfc/test/tsconfig.json","app/main/node_modules/vue/packages/compiler-sfc/package.json","app/main/node_modules/vue/packages/compiler-sfc/api-extractor.json","app/main/node_modules/mousetrap/plugins/README.md","app/main/node_modules/mousetrap/plugins/global-bind/README.md"],"skills":{"AGENTS.md":"# Repository instructions for coding agents\n\nThese rules apply to the whole repository. Preserve user work and keep changes scoped to the requested task.\n\n## Repository shape\n\n- This project maintains an unpacked, production Electron application. There is no complete original Vue/Webpack source tree.\n- `app/main/dist/electron/main.js` and `renderer.js` are executable CommonJS entry points, not disposable build output.\n- Maintainable behavior belongs in CommonJS modules under `app/main/dist/electron/core`, `features`, or `entry`; executable entries only adapt and delegate.\n- `app/clash_core/<target>/static/files` contains packaged platform assets. The same source fix may need to be mirrored across target packages.\n- `scripts/refactor/apply-*.js` records historical byte-preserving migrations. Do not run an apply script blindly on an already-migrated tree.\n\n## Safe editing\n\n- Inspect `git status --short` before editing. Never discard, relocate, stage, or overwrite unrelated user changes.\n- Do not use destructive Git commands, mass formatting, or whole-bundle regeneration.\n- Keep executable entries readable and free of numeric webpack module IDs or loaders.\n- Put behavior in testable modules and keep executable entries limited to adaptation and composition. Each behavior must have one owner.\n- Add short comments for non-obvious runtime constraints. Do not create session journals or temporary refactor narratives in `docs`.\n- Do not edit vendored `node_modules` unless the task explicitly requires a pinned vendor patch.\n- Never commit generated `app/output`, logs, user profiles, secrets, temporary data, or local settings.\n\n## Architecture boundaries\n\n- `core/` is framework-neutral shared infrastructure. It must not import `features/` or `entry/`.\n- `features/<name>/` owns one capability. A feature may import its own files and `core/`, but not another feature.\n- `entry/<process>/` composes features and adapts Electron IPC.\n- Electron objects and system operations should be dependency-injected so unit tests can use fakes.\n- Renderer features call the semantic Clash API in `core/network/clash-api.js`; do not scatter endpoint strings or raw transport calls.\n\n## Product invariants\n\n- Mihomo is the default for new settings; legacy Clash remains supported and explicit saved core choices must be preserved.\n- Both cores use the same CFW data directory. Always pass that directory explicitly when starting a core, including Service Mode.\n- Core selection, firewall rules, service allow-lists, and packaged filenames must agree for every supported platform and architecture.\n- User-entered TCP ports are integers in `1..65535`. A manual mixed-port choice must not be silently replaced by random-port startup behavior.\n- Keep the controller loopback-only by default. Do not weaken authentication, CORS, certificate, navigation, or firewall policy to make a UI test pass.\n- Service helpers may start only hash-allow-listed packaged cores. Do not restore arbitrary command execution.\n- Never print or persist controller secrets in logs, tests, screenshots, or documentation.\n\n## Tests\n\n- The canonical gate is `npm test` from the repository root. It must work on Windows and Linux with Node 18 or newer.\n- Tests live under `app/test/architecture`, `app/test/unit`, and `app/test/integration`; fixtures live under `app/test/fixtures`.\n- Use `npm run test:unit`, `npm run test:integration`, or `npm run test:architecture` for focused work.\n- Add a regression test for every bug fix. Prefer a unit test for policy and an integration test when native-core compatibility is the claim.\n- Tests must use temporary directories and loopback ports. They must not modify a developer's real CFW profile, proxy settings, firewall, service, or registry.\n- Platform-specific tests must skip clearly on unsupported targets; portable logic must still run everywhere.\n- `scripts/refactor/check-baseline.ps1` is only a Windows compatibility wrapper around `npm test`.\n\n## Documentation and delivery\n\n- `docs` is for stable, human-oriented project architecture, invariants, decisions, and development procedures.\n- Explain implementation-local details beside the code. Update project documentation only when a durable contract changes.\n- Before delivery, run the narrow tests while iterating, then `npm test` and inspect `git diff --check` plus `git status --short`.\n- Stage and commit only task-owned paths. Report skipped platform checks and any remaining unverified runtime behavior.\n","app/main/node_modules/mousetrap/plugins/pause/README.md":"# Pause/unpause\n\nThis extension allows Mousetrap to be paused and unpaused without having to reset keyboard shortcuts and rebind them.\n\nUsage looks like:\n\n```javascript\n// stop Mousetrap events from firing\nMousetrap.pause();\n\n// allow Mousetrap events to fire again\nMousetrap.unpause();\n```\n","app/main/node_modules/mousetrap/plugins/record/README.md":"# Record\n\nThis extension lets you use Mousetrap to record keyboard sequences and play them back:\n\n```html\n<button onclick=\"recordSequence()\">Record</button>\n\n<script>\n    function recordSequence() {\n        Mousetrap.record(function(sequence) {\n            // sequence is an array like ['ctrl+k', 'c']\n            alert('You pressed: ' + sequence.join(' '));\n        });\n    }\n</script>\n```\n","app/main/node_modules/mousetrap/plugins/bind-dictionary/README.md":"# Bind Dictionary\n\nThis extension overwrites the default bind behavior and allows you to bind multiple combinations in a single bind call.\n\nUsage looks like:\n\n```javascript\nMousetrap.bind({\n    'a': function() { console.log('a'); },\n    'b': function() { console.log('b'); }\n});\n```\n\nYou can optionally pass in ``keypress``, ``keydown`` or ``keyup`` as a second argument.\n\nOther bind calls work the same way as they do by default.\n","app/main/node_modules/vue/packages/compiler-sfc/test/tsconfig.json":"{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"types\": [\"node\", \"vitest/globals\"]\n  },\n  \"include\": [\"../src\", \".\"]\n}\n","app/main/node_modules/vue/packages/compiler-sfc/package.json":"{\n  \"name\": \"@vue/compiler-sfc\",\n  \"version\": \"2.7.16\",\n  \"description\": \"compiler-sfc for Vue 2\",\n  \"main\": \"dist/compiler-sfc.js\",\n  \"types\": \"dist/compiler-sfc.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"dependencies\": {\n    \"@babel/parser\": \"^7.23.5\",\n    \"postcss\": \"^8.4.14\",\n    \"source-map\": \"^0.6.1\"\n  },\n  \"devDependencies\": {\n    \"@babel/types\": \"^7.23.5\",\n    \"@types/estree\": \"^0.0.48\",\n    \"@types/hash-sum\": \"^1.0.0\",\n    \"@types/lru-cache\": \"^5.1.1\",\n    \"@vue/consolidate\": \"^0.17.3\",\n    \"de-indent\": \"^1.0.2\",\n    \"estree-walker\": \"^2.0.2\",\n    \"hash-sum\": \"^2.0.0\",\n    \"less\": \"^4.1.3\",\n    \"lru-cache\": \"^5.1.1\",\n    \"magic-string\": \"^0.25.9\",\n    \"merge-source-map\": \"^1.1.0\",\n    \"postcss-modules\": \"^4.3.1\",\n    \"postcss-selector-parser\": \"^6.0.10\",\n    \"pug\": \"^3.0.2\",\n    \"sass\": \"^1.52.3\",\n    \"stylus\": \"^0.58.1\"\n  },\n  \"optionalDependencies\": {\n    \"prettier\": \"^1.18.2 || ^2.0.0\"\n  }\n}\n","app/main/node_modules/vue/packages/compiler-sfc/api-extractor.json":"{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json\",\n\n  \"projectFolder\": \".\",\n\n  \"mainEntryPointFilePath\": \"../../temp/packages/compiler-sfc/src/index.d.ts\",\n\n  \"compiler\": {\n    \"tsconfigFilePath\": \"../../api-extractor.tsconfig.json\"\n  },\n\n  \"dtsRollup\": {\n    \"enabled\": true,\n    \"untrimmedFilePath\": \"\",\n    \"publicTrimmedFilePath\": \"./dist/compiler-sfc.d.ts\"\n  },\n\n  \"apiReport\": {\n    \"enabled\": false\n  },\n\n  \"docModel\": {\n    \"enabled\": false\n  },\n\n  \"tsdocMetadata\": {\n    \"enabled\": false\n  },\n\n  \"messages\": {\n    \"compilerMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\"\n      }\n    },\n\n    \"extractorMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\",\n        \"addToApiReportFile\": true\n      },\n\n      \"ae-missing-release-tag\": {\n        \"logLevel\": \"none\"\n      },\n      \"ae-internal-missing-underscore\": {\n        \"logLevel\": \"none\"\n      },\n      \"ae-forgotten-export\": {\n        \"logLevel\": \"none\"\n      }\n    },\n\n    \"tsdocMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\"\n      },\n\n      \"tsdoc-undefined-tag\": {\n        \"logLevel\": \"none\"\n      }\n    }\n  }\n}\n","app/main/node_modules/mousetrap/plugins/README.md":"# Plugins\n\nPlugins extend the functionality of Mousetrap.  To use a plugin just include the plugin after mousetrap.\n\n```html\n<script src=\"mousetrap.js\"></script>\n<script src=\"mousetrap-record.js\"></script>\n```\n\n## Bind dictionary\n\nAllows you to make multiple bindings in a single ``Mousetrap.bind`` call.\n\n## Global bind\n\nAllows you to set global bindings that work even inside of input fields.\n\n## Pause/unpause\n\nAllows you to temporarily prevent Mousetrap events from firing.\n\n## Record\n\nAllows you to capture a keyboard shortcut or sequence defined by a user.\n","app/main/node_modules/mousetrap/plugins/global-bind/README.md":"# Global Bind\n\nThis extension allows you to specify keyboard events that will work anywhere including inside textarea/input fields.\n\nUsage looks like:\n\n```javascript\nMousetrap.bindGlobal('ctrl+s', function() {\n    _save();\n});\n```\n\nThis means that a keyboard event bound using ``Mousetrap.bind`` will only work outside of form input fields, but using ``Moustrap.bindGlobal`` will work in both places.\n\nIf you wanted to create keyboard shortcuts that only work when you are inside a specific textarea you can do that too by creating your own extension.\n"},"files":{"AGENTS.md":"# Repository instructions for coding agents\n\nThese rules apply to the whole repository. Preserve user work and keep changes scoped to the requested task.\n\n## Repository shape\n\n- This project maintains an unpacked, production Electron application. There is no complete original Vue/Webpack source tree.\n- `app/main/dist/electron/main.js` and `renderer.js` are executable CommonJS entry points, not disposable build output.\n- Maintainable behavior belongs in CommonJS modules under `app/main/dist/electron/core`, `features`, or `entry`; executable entries only adapt and delegate.\n- `app/clash_core/<target>/static/files` contains packaged platform assets. The same source fix may need to be mirrored across target packages.\n- `scripts/refactor/apply-*.js` records historical byte-preserving migrations. Do not run an apply script blindly on an already-migrated tree.\n\n## Safe editing\n\n- Inspect `git status --short` before editing. Never discard, relocate, stage, or overwrite unrelated user changes.\n- Do not use destructive Git commands, mass formatting, or whole-bundle regeneration.\n- Keep executable entries readable and free of numeric webpack module IDs or loaders.\n- Put behavior in testable modules and keep executable entries limited to adaptation and composition. Each behavior must have one owner.\n- Add short comments for non-obvious runtime constraints. Do not create session journals or temporary refactor narratives in `docs`.\n- Do not edit vendored `node_modules` unless the task explicitly requires a pinned vendor patch.\n- Never commit generated `app/output`, logs, user profiles, secrets, temporary data, or local settings.\n\n## Architecture boundaries\n\n- `core/` is framework-neutral shared infrastructure. It must not import `features/` or `entry/`.\n- `features/<name>/` owns one capability. A feature may import its own files and `core/`, but not another feature.\n- `entry/<process>/` composes features and adapts Electron IPC.\n- Electron objects and system operations should be dependency-injected so unit tests can use fakes.\n- Renderer features call the semantic Clash API in `core/network/clash-api.js`; do not scatter endpoint strings or raw transport calls.\n\n## Product invariants\n\n- Mihomo is the default for new settings; legacy Clash remains supported and explicit saved core choices must be preserved.\n- Both cores use the same CFW data directory. Always pass that directory explicitly when starting a core, including Service Mode.\n- Core selection, firewall rules, service allow-lists, and packaged filenames must agree for every supported platform and architecture.\n- User-entered TCP ports are integers in `1..65535`. A manual mixed-port choice must not be silently replaced by random-port startup behavior.\n- Keep the controller loopback-only by default. Do not weaken authentication, CORS, certificate, navigation, or firewall policy to make a UI test pass.\n- Service helpers may start only hash-allow-listed packaged cores. Do not restore arbitrary command execution.\n- Never print or persist controller secrets in logs, tests, screenshots, or documentation.\n\n## Tests\n\n- The canonical gate is `npm test` from the repository root. It must work on Windows and Linux with Node 18 or newer.\n- Tests live under `app/test/architecture`, `app/test/unit`, and `app/test/integration`; fixtures live under `app/test/fixtures`.\n- Use `npm run test:unit`, `npm run test:integration`, or `npm run test:architecture` for focused work.\n- Add a regression test for every bug fix. Prefer a unit test for policy and an integration test when native-core compatibility is the claim.\n- Tests must use temporary directories and loopback ports. They must not modify a developer's real CFW profile, proxy settings, firewall, service, or registry.\n- Platform-specific tests must skip clearly on unsupported targets; portable logic must still run everywhere.\n- `scripts/refactor/check-baseline.ps1` is only a Windows compatibility wrapper around `npm test`.\n\n## Documentation and delivery\n\n- `docs` is for stable, human-oriented project architecture, invariants, decisions, and development procedures.\n- Explain implementation-local details beside the code. Update project documentation only when a durable contract changes.\n- Before delivery, run the narrow tests while iterating, then `npm test` and inspect `git diff --check` plus `git status --short`.\n- Stage and commit only task-owned paths. Report skipped platform checks and any remaining unverified runtime behavior.\n","app/main/node_modules/mousetrap/plugins/pause/README.md":"# Pause/unpause\n\nThis extension allows Mousetrap to be paused and unpaused without having to reset keyboard shortcuts and rebind them.\n\nUsage looks like:\n\n```javascript\n// stop Mousetrap events from firing\nMousetrap.pause();\n\n// allow Mousetrap events to fire again\nMousetrap.unpause();\n```\n","app/main/node_modules/mousetrap/plugins/record/README.md":"# Record\n\nThis extension lets you use Mousetrap to record keyboard sequences and play them back:\n\n```html\n<button onclick=\"recordSequence()\">Record</button>\n\n<script>\n    function recordSequence() {\n        Mousetrap.record(function(sequence) {\n            // sequence is an array like ['ctrl+k', 'c']\n            alert('You pressed: ' + sequence.join(' '));\n        });\n    }\n</script>\n```\n","app/main/node_modules/mousetrap/plugins/bind-dictionary/README.md":"# Bind Dictionary\n\nThis extension overwrites the default bind behavior and allows you to bind multiple combinations in a single bind call.\n\nUsage looks like:\n\n```javascript\nMousetrap.bind({\n    'a': function() { console.log('a'); },\n    'b': function() { console.log('b'); }\n});\n```\n\nYou can optionally pass in ``keypress``, ``keydown`` or ``keyup`` as a second argument.\n\nOther bind calls work the same way as they do by default.\n","app/main/node_modules/vue/packages/compiler-sfc/test/tsconfig.json":"{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"types\": [\"node\", \"vitest/globals\"]\n  },\n  \"include\": [\"../src\", \".\"]\n}\n","app/main/node_modules/vue/packages/compiler-sfc/package.json":"{\n  \"name\": \"@vue/compiler-sfc\",\n  \"version\": \"2.7.16\",\n  \"description\": \"compiler-sfc for Vue 2\",\n  \"main\": \"dist/compiler-sfc.js\",\n  \"types\": \"dist/compiler-sfc.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"dependencies\": {\n    \"@babel/parser\": \"^7.23.5\",\n    \"postcss\": \"^8.4.14\",\n    \"source-map\": \"^0.6.1\"\n  },\n  \"devDependencies\": {\n    \"@babel/types\": \"^7.23.5\",\n    \"@types/estree\": \"^0.0.48\",\n    \"@types/hash-sum\": \"^1.0.0\",\n    \"@types/lru-cache\": \"^5.1.1\",\n    \"@vue/consolidate\": \"^0.17.3\",\n    \"de-indent\": \"^1.0.2\",\n    \"estree-walker\": \"^2.0.2\",\n    \"hash-sum\": \"^2.0.0\",\n    \"less\": \"^4.1.3\",\n    \"lru-cache\": \"^5.1.1\",\n    \"magic-string\": \"^0.25.9\",\n    \"merge-source-map\": \"^1.1.0\",\n    \"postcss-modules\": \"^4.3.1\",\n    \"postcss-selector-parser\": \"^6.0.10\",\n    \"pug\": \"^3.0.2\",\n    \"sass\": \"^1.52.3\",\n    \"stylus\": \"^0.58.1\"\n  },\n  \"optionalDependencies\": {\n    \"prettier\": \"^1.18.2 || ^2.0.0\"\n  }\n}\n","app/main/node_modules/vue/packages/compiler-sfc/api-extractor.json":"{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json\",\n\n  \"projectFolder\": \".\",\n\n  \"mainEntryPointFilePath\": \"../../temp/packages/compiler-sfc/src/index.d.ts\",\n\n  \"compiler\": {\n    \"tsconfigFilePath\": \"../../api-extractor.tsconfig.json\"\n  },\n\n  \"dtsRollup\": {\n    \"enabled\": true,\n    \"untrimmedFilePath\": \"\",\n    \"publicTrimmedFilePath\": \"./dist/compiler-sfc.d.ts\"\n  },\n\n  \"apiReport\": {\n    \"enabled\": false\n  },\n\n  \"docModel\": {\n    \"enabled\": false\n  },\n\n  \"tsdocMetadata\": {\n    \"enabled\": false\n  },\n\n  \"messages\": {\n    \"compilerMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\"\n      }\n    },\n\n    \"extractorMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\",\n        \"addToApiReportFile\": true\n      },\n\n      \"ae-missing-release-tag\": {\n        \"logLevel\": \"none\"\n      },\n      \"ae-internal-missing-underscore\": {\n        \"logLevel\": \"none\"\n      },\n      \"ae-forgotten-export\": {\n        \"logLevel\": \"none\"\n      }\n    },\n\n    \"tsdocMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\"\n      },\n\n      \"tsdoc-undefined-tag\": {\n        \"logLevel\": \"none\"\n      }\n    }\n  }\n}\n","app/main/node_modules/mousetrap/plugins/README.md":"# Plugins\n\nPlugins extend the functionality of Mousetrap.  To use a plugin just include the plugin after mousetrap.\n\n```html\n<script src=\"mousetrap.js\"></script>\n<script src=\"mousetrap-record.js\"></script>\n```\n\n## Bind dictionary\n\nAllows you to make multiple bindings in a single ``Mousetrap.bind`` call.\n\n## Global bind\n\nAllows you to set global bindings that work even inside of input fields.\n\n## Pause/unpause\n\nAllows you to temporarily prevent Mousetrap events from firing.\n\n## Record\n\nAllows you to capture a keyboard shortcut or sequence defined by a user.\n","app/main/node_modules/mousetrap/plugins/global-bind/README.md":"# Global Bind\n\nThis extension allows you to specify keyboard events that will work anywhere including inside textarea/input fields.\n\nUsage looks like:\n\n```javascript\nMousetrap.bindGlobal('ctrl+s', function() {\n    _save();\n});\n```\n\nThis means that a keyboard event bound using ``Mousetrap.bind`` will only work outside of form input fields, but using ``Moustrap.bindGlobal`` will work in both places.\n\nIf you wanted to create keyboard shortcuts that only work when you are inside a specific textarea you can do that too by creating your own extension.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Repository instructions for coding agents\n\nThese rules apply to the whole repository. Preserve user work and keep changes scoped to the requested task.\n\n## Repository shape\n\n- This project maintains an unpacked, production Electron application. There is no complete original Vue/Webpack source tree.\n- `app/main/dist/electron/main.js` and `renderer.js` are executable CommonJS entry points, not disposable build output.\n- Maintainable behavior belongs in CommonJS modules under `app/main/dist/electron/core`, `features`, or `entry`; executable entries only adapt and delegate.\n- `app/clash_core/<target>/static/files` contains packaged platform assets. The same source fix may need to be mirrored across target packages.\n- `scripts/refactor/apply-*.js` records historical byte-preserving migrations. Do not run an apply script blindly on an already-migrated tree.\n\n## Safe editing\n\n- Inspect `git status --short` before editing. Never discard, relocate, stage, or overwrite unrelated user changes.\n- Do not use destructive Git commands, mass formatting, or whole-bundle regeneration.\n- Keep executable entries readable and free of numeric webpack module IDs or loaders.\n- Put behavior in testable modules and keep executable entries limited to adaptation and composition. Each behavior must have one owner.\n- Add short comments for non-obvious runtime constraints. Do not create session journals or temporary refactor narratives in `docs`.\n- Do not edit vendored `node_modules` unless the task explicitly requires a pinned vendor patch.\n- Never commit generated `app/output`, logs, user profiles, secrets, temporary data, or local settings.\n\n## Architecture boundaries\n\n- `core/` is framework-neutral shared infrastructure. It must not import `features/` or `entry/`.\n- `features/<name>/` owns one capability. A feature may import its own files and `core/`, but not another feature.\n- `entry/<process>/` composes features and adapts Electron IPC.\n- Electron objects and system operations should be dependency-injected so unit tests can use fakes.\n- Renderer features call the semantic Clash API in `core/network/clash-api.js`; do not scatter endpoint strings or raw transport calls.\n\n## Product invariants\n\n- Mihomo is the default for new settings; legacy Clash remains supported and explicit saved core choices must be preserved.\n- Both cores use the same CFW data directory. Always pass that directory explicitly when starting a core, including Service Mode.\n- Core selection, firewall rules, service allow-lists, and packaged filenames must agree for every supported platform and architecture.\n- User-entered TCP ports are integers in `1..65535`. A manual mixed-port choice must not be silently replaced by random-port startup behavior.\n- Keep the controller loopback-only by default. Do not weaken authentication, CORS, certificate, navigation, or firewall policy to make a UI test pass.\n- Service helpers may start only hash-allow-listed packaged cores. Do not restore arbitrary command execution.\n- Never print or persist controller secrets in logs, tests, screenshots, or documentation.\n\n## Tests\n\n- The canonical gate is `npm test` from the repository root. It must work on Windows and Linux with Node 18 or newer.\n- Tests live under `app/test/architecture`, `app/test/unit`, and `app/test/integration`; fixtures live under `app/test/fixtures`.\n- Use `npm run test:unit`, `npm run test:integration`, or `npm run test:architecture` for focused work.\n- Add a regression test for every bug fix. Prefer a unit test for policy and an integration test when native-core compatibility is the claim.\n- Tests must use temporary directories and loopback ports. They must not modify a developer's real CFW profile, proxy settings, firewall, service, or registry.\n- Platform-specific tests must skip clearly on unsupported targets; portable logic must still run everywhere.\n- `scripts/refactor/check-baseline.ps1` is only a Windows compatibility wrapper around `npm test`.\n\n## Documentation and delivery\n\n- `docs` is for stable, human-oriented project architecture, invariants, decisions, and development procedures.\n- Explain implementation-local details beside the code. Update project documentation only when a durable contract changes.\n- Before delivery, run the narrow tests while iterating, then `npm test` and inspect `git diff --check` plus `git status --short`.\n- Stage and commit only task-owned paths. Report skipped platform checks and any remaining unverified runtime behavior.\n","isInternal":false,"tokens":910,"sizeBytes":4488},{"name":"api-extractor.json","path":"app/main/node_modules/vue/packages/compiler-sfc/api-extractor.json","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/app/main/node_modules/vue/packages/compiler-sfc/api-extractor.json","title":"Compiler-sfc Skill","category":"anthropic-skill","format":"json","content":"{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json\",\n\n  \"projectFolder\": \".\",\n\n  \"mainEntryPointFilePath\": \"../../temp/packages/compiler-sfc/src/index.d.ts\",\n\n  \"compiler\": {\n    \"tsconfigFilePath\": \"../../api-extractor.tsconfig.json\"\n  },\n\n  \"dtsRollup\": {\n    \"enabled\": true,\n    \"untrimmedFilePath\": \"\",\n    \"publicTrimmedFilePath\": \"./dist/compiler-sfc.d.ts\"\n  },\n\n  \"apiReport\": {\n    \"enabled\": false\n  },\n\n  \"docModel\": {\n    \"enabled\": false\n  },\n\n  \"tsdocMetadata\": {\n    \"enabled\": false\n  },\n\n  \"messages\": {\n    \"compilerMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\"\n      }\n    },\n\n    \"extractorMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\",\n        \"addToApiReportFile\": true\n      },\n\n      \"ae-missing-release-tag\": {\n        \"logLevel\": \"none\"\n      },\n      \"ae-internal-missing-underscore\": {\n        \"logLevel\": \"none\"\n      },\n      \"ae-forgotten-export\": {\n        \"logLevel\": \"none\"\n      }\n    },\n\n    \"tsdocMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\"\n      },\n\n      \"tsdoc-undefined-tag\": {\n        \"logLevel\": \"none\"\n      }\n    }\n  }\n}\n","frontmatter":{"$schema":"https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json","projectFolder":".","mainEntryPointFilePath":"../../temp/packages/compiler-sfc/src/index.d.ts","compiler":{"tsconfigFilePath":"../../api-extractor.tsconfig.json"},"dtsRollup":{"enabled":true,"untrimmedFilePath":"","publicTrimmedFilePath":"./dist/compiler-sfc.d.ts"},"apiReport":{"enabled":false},"docModel":{"enabled":false},"tsdocMetadata":{"enabled":false},"messages":{"compilerMessageReporting":{"default":{"logLevel":"warning"}},"extractorMessageReporting":{"default":{"logLevel":"warning","addToApiReportFile":true},"ae-missing-release-tag":{"logLevel":"none"},"ae-internal-missing-underscore":{"logLevel":"none"},"ae-forgotten-export":{"logLevel":"none"}},"tsdocMessageReporting":{"default":{"logLevel":"warning"},"tsdoc-undefined-tag":{"logLevel":"none"}}}},"isInternal":false,"tokens":320,"sizeBytes":1193},{"name":"package.json","path":"app/main/node_modules/vue/packages/compiler-sfc/package.json","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/app/main/node_modules/vue/packages/compiler-sfc/package.json","title":"@vue/compiler-sfc","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"@vue/compiler-sfc\",\n  \"version\": \"2.7.16\",\n  \"description\": \"compiler-sfc for Vue 2\",\n  \"main\": \"dist/compiler-sfc.js\",\n  \"types\": \"dist/compiler-sfc.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"dependencies\": {\n    \"@babel/parser\": \"^7.23.5\",\n    \"postcss\": \"^8.4.14\",\n    \"source-map\": \"^0.6.1\"\n  },\n  \"devDependencies\": {\n    \"@babel/types\": \"^7.23.5\",\n    \"@types/estree\": \"^0.0.48\",\n    \"@types/hash-sum\": \"^1.0.0\",\n    \"@types/lru-cache\": \"^5.1.1\",\n    \"@vue/consolidate\": \"^0.17.3\",\n    \"de-indent\": \"^1.0.2\",\n    \"estree-walker\": \"^2.0.2\",\n    \"hash-sum\": \"^2.0.0\",\n    \"less\": \"^4.1.3\",\n    \"lru-cache\": \"^5.1.1\",\n    \"magic-string\": \"^0.25.9\",\n    \"merge-source-map\": \"^1.1.0\",\n    \"postcss-modules\": \"^4.3.1\",\n    \"postcss-selector-parser\": \"^6.0.10\",\n    \"pug\": \"^3.0.2\",\n    \"sass\": \"^1.52.3\",\n    \"stylus\": \"^0.58.1\"\n  },\n  \"optionalDependencies\": {\n    \"prettier\": \"^1.18.2 || ^2.0.0\"\n  }\n}\n","frontmatter":{"name":"@vue/compiler-sfc","version":"2.7.16","description":"compiler-sfc for Vue 2","main":"dist/compiler-sfc.js","types":"dist/compiler-sfc.d.ts","files":["dist"],"dependencies":{"@babel/parser":"^7.23.5","postcss":"^8.4.14","source-map":"^0.6.1"},"devDependencies":{"@babel/types":"^7.23.5","@types/estree":"^0.0.48","@types/hash-sum":"^1.0.0","@types/lru-cache":"^5.1.1","@vue/consolidate":"^0.17.3","de-indent":"^1.0.2","estree-walker":"^2.0.2","hash-sum":"^2.0.0","less":"^4.1.3","lru-cache":"^5.1.1","magic-string":"^0.25.9","merge-source-map":"^1.1.0","postcss-modules":"^4.3.1","postcss-selector-parser":"^6.0.10","pug":"^3.0.2","sass":"^1.52.3","stylus":"^0.58.1"},"optionalDependencies":{"prettier":"^1.18.2 || ^2.0.0"}},"isInternal":false,"tokens":366,"sizeBytes":913},{"name":"tsconfig.json","path":"app/main/node_modules/vue/packages/compiler-sfc/test/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/app/main/node_modules/vue/packages/compiler-sfc/test/tsconfig.json","title":"Test Skill","category":"anthropic-skill","format":"json","content":"{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"types\": [\"node\", \"vitest/globals\"]\n  },\n  \"include\": [\"../src\", \".\"]\n}\n","frontmatter":{"extends":"../../../tsconfig.json","compilerOptions":{"types":["node","vitest/globals"]},"include":["../src","."]},"isInternal":false,"tokens":42,"sizeBytes":140},{"name":"README.md","path":"app/main/node_modules/mousetrap/plugins/bind-dictionary/README.md","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/app/main/node_modules/mousetrap/plugins/bind-dictionary/README.md","title":"bind-dictionary Documentation","category":"plugin-manifest","format":"markdown","content":"# Bind Dictionary\n\nThis extension overwrites the default bind behavior and allows you to bind multiple combinations in a single bind call.\n\nUsage looks like:\n\n```javascript\nMousetrap.bind({\n    'a': function() { console.log('a'); },\n    'b': function() { console.log('b'); }\n});\n```\n\nYou can optionally pass in ``keypress``, ``keydown`` or ``keyup`` as a second argument.\n\nOther bind calls work the same way as they do by default.\n","isInternal":false,"tokens":100,"sizeBytes":431},{"name":"README.md","path":"app/main/node_modules/mousetrap/plugins/global-bind/README.md","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/app/main/node_modules/mousetrap/plugins/global-bind/README.md","title":"global-bind Documentation","category":"plugin-manifest","format":"markdown","content":"# Global Bind\n\nThis extension allows you to specify keyboard events that will work anywhere including inside textarea/input fields.\n\nUsage looks like:\n\n```javascript\nMousetrap.bindGlobal('ctrl+s', function() {\n    _save();\n});\n```\n\nThis means that a keyboard event bound using ``Mousetrap.bind`` will only work outside of form input fields, but using ``Moustrap.bindGlobal`` will work in both places.\n\nIf you wanted to create keyboard shortcuts that only work when you are inside a specific textarea you can do that too by creating your own extension.\n","isInternal":false,"tokens":116,"sizeBytes":552},{"name":"README.md","path":"app/main/node_modules/mousetrap/plugins/pause/README.md","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/app/main/node_modules/mousetrap/plugins/pause/README.md","title":"pause Documentation","category":"plugin-manifest","format":"markdown","content":"# Pause/unpause\n\nThis extension allows Mousetrap to be paused and unpaused without having to reset keyboard shortcuts and rebind them.\n\nUsage looks like:\n\n```javascript\n// stop Mousetrap events from firing\nMousetrap.pause();\n\n// allow Mousetrap events to fire again\nMousetrap.unpause();\n```\n","isInternal":false,"tokens":69,"sizeBytes":291},{"name":"README.md","path":"app/main/node_modules/mousetrap/plugins/README.md","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/app/main/node_modules/mousetrap/plugins/README.md","title":"plugins Documentation","category":"plugin-manifest","format":"markdown","content":"# Plugins\n\nPlugins extend the functionality of Mousetrap.  To use a plugin just include the plugin after mousetrap.\n\n```html\n<script src=\"mousetrap.js\"></script>\n<script src=\"mousetrap-record.js\"></script>\n```\n\n## Bind dictionary\n\nAllows you to make multiple bindings in a single ``Mousetrap.bind`` call.\n\n## Global bind\n\nAllows you to set global bindings that work even inside of input fields.\n\n## Pause/unpause\n\nAllows you to temporarily prevent Mousetrap events from firing.\n\n## Record\n\nAllows you to capture a keyboard shortcut or sequence defined by a user.\n","isInternal":false,"tokens":128,"sizeBytes":563},{"name":"README.md","path":"app/main/node_modules/mousetrap/plugins/record/README.md","rawUrl":"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/HEAD/app/main/node_modules/mousetrap/plugins/record/README.md","title":"record Documentation","category":"plugin-manifest","format":"markdown","content":"# Record\n\nThis extension lets you use Mousetrap to record keyboard sequences and play them back:\n\n```html\n<button onclick=\"recordSequence()\">Record</button>\n\n<script>\n    function recordSequence() {\n        Mousetrap.record(function(sequence) {\n            // sequence is an array like ['ctrl+k', 'c']\n            alert('You pressed: ' + sequence.join(' '));\n        });\n    }\n</script>\n```\n","isInternal":false,"tokens":86,"sizeBytes":391}],"systemPromptSnippet":"<yakaai_skills repo=\"Z-Siqi/Clash-for-Windows_Chinese\">\n<!-- File: AGENTS.md (Tokens: ~910 | Category: root-instruction) -->\n# Repository instructions for coding agents\n\nThese rules apply to the whole repository. Preserve user work and keep changes scoped to the requested task.\n\n## Repository shape\n\n- This project maintains an unpacked, production Electron application. There is no complete original Vue/Webpack source tree.\n- `app/main/dist/electron/main.js` and `renderer.js` are executable CommonJS entry points, not disposable build output.\n- Maintainable behavior belongs in CommonJS modules under `app/main/dist/electron/core`, `features`, or `entry`; executable entries only adapt and delegate.\n- `app/clash_core/<target>/static/files` contains packaged platform assets. The same source fix may need to be mirrored across target packages.\n- `scripts/refactor/apply-*.js` records historical byte-preserving migrations. Do not run an apply script blindly on an already-migrated tree.\n\n## Safe editing\n\n- Inspect `git status --short` before editing. Never discard, relocate, stage, or overwrite unrelated user changes.\n- Do not use destructive Git commands, mass formatting, or whole-bundle regeneration.\n- Keep executable entries readable and free of numeric webpack module IDs or loaders.\n- Put behavior in testable modules and keep executable entries limited to adaptation and composition. Each behavior must have one owner.\n- Add short comments for non-obvious runtime constraints. Do not create session journals or temporary refactor narratives in `docs`.\n- Do not edit vendored `node_modules` unless the task explicitly requires a pinned vendor patch.\n- Never commit generated `app/output`, logs, user profiles, secrets, temporary data, or local settings.\n\n## Architecture boundaries\n\n- `core/` is framework-neutral shared infrastructure. It must not import `features/` or `entry/`.\n- `features/<name>/` owns one capability. A feature may import its own files and `core/`, but not another feature.\n- `entry/<process>/` composes features and adapts Electron IPC.\n- Electron objects and system operations should be dependency-injected so unit tests can use fakes.\n- Renderer features call the semantic Clash API in `core/network/clash-api.js`; do not scatter endpoint strings or raw transport calls.\n\n## Product invariants\n\n- Mihomo is the default for new settings; legacy Clash remains supported and explicit saved core choices must be preserved.\n- Both cores use the same CFW data directory. Always pass that directory explicitly when starting a core, including Service Mode.\n- Core selection, firewall rules, service allow-lists, and packaged filenames must agree for every supported platform and architecture.\n- User-entered TCP ports are integers in `1..65535`. A manual mixed-port choice must not be silently replaced by random-port startup behavior.\n- Keep the controller loopback-only by default. Do not weaken authentication, CORS, certificate, navigation, or firewall policy to make a UI test pass.\n- Service helpers may start only hash-allow-listed packaged cores. Do not restore arbitrary command execution.\n- Never print or persist controller secrets in logs, tests, screenshots, or documentation.\n\n## Tests\n\n- The canonical gate is `npm test` from the repository root. It must work on Windows and Linux with Node 18 or newer.\n- Tests live under `app/test/architecture`, `app/test/unit`, and `app/test/integration`; fixtures live under `app/test/fixtures`.\n- Use `npm run test:unit`, `npm run test:integration`, or `npm run test:architecture` for focused work.\n- Add a regression test for every bug fix. Prefer a unit test for policy and an integration test when native-core compatibility is the claim.\n- Tests must use temporary directories and loopback ports. They must not modify a developer's real CFW profile, proxy settings, firewall, service, or registry.\n- Platform-specific tests must skip clearly on unsupported targets; portable logic must still run everywhere.\n- `scripts/refactor/check-baseline.ps1` is only a Windows compatibility wrapper around `npm test`.\n\n## Documentation and delivery\n\n- `docs` is for stable, human-oriented project architecture, invariants, decisions, and development procedures.\n- Explain implementation-local details beside the code. Update project documentation only when a durable contract changes.\n- Before delivery, run the narrow tests while iterating, then `npm test` and inspect `git diff --check` plus `git status --short`.\n- Stage and commit only task-owned paths. Report skipped platform checks and any remaining unverified runtime behavior.\n\n<!-- File: app/main/node_modules/vue/packages/compiler-sfc/api-extractor.json (Tokens: ~320 | Category: anthropic-skill) -->\n{\n  \"$schema\": \"https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json\",\n\n  \"projectFolder\": \".\",\n\n  \"mainEntryPointFilePath\": \"../../temp/packages/compiler-sfc/src/index.d.ts\",\n\n  \"compiler\": {\n    \"tsconfigFilePath\": \"../../api-extractor.tsconfig.json\"\n  },\n\n  \"dtsRollup\": {\n    \"enabled\": true,\n    \"untrimmedFilePath\": \"\",\n    \"publicTrimmedFilePath\": \"./dist/compiler-sfc.d.ts\"\n  },\n\n  \"apiReport\": {\n    \"enabled\": false\n  },\n\n  \"docModel\": {\n    \"enabled\": false\n  },\n\n  \"tsdocMetadata\": {\n    \"enabled\": false\n  },\n\n  \"messages\": {\n    \"compilerMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\"\n      }\n    },\n\n    \"extractorMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\",\n        \"addToApiReportFile\": true\n      },\n\n      \"ae-missing-release-tag\": {\n        \"logLevel\": \"none\"\n      },\n      \"ae-internal-missing-underscore\": {\n        \"logLevel\": \"none\"\n      },\n      \"ae-forgotten-export\": {\n        \"logLevel\": \"none\"\n      }\n    },\n\n    \"tsdocMessageReporting\": {\n      \"default\": {\n        \"logLevel\": \"warning\"\n      },\n\n      \"tsdoc-undefined-tag\": {\n        \"logLevel\": \"none\"\n      }\n    }\n  }\n}\n\n<!-- File: app/main/node_modules/vue/packages/compiler-sfc/package.json (Tokens: ~366 | Category: anthropic-skill) -->\n{\n  \"name\": \"@vue/compiler-sfc\",\n  \"version\": \"2.7.16\",\n  \"description\": \"compiler-sfc for Vue 2\",\n  \"main\": \"dist/compiler-sfc.js\",\n  \"types\": \"dist/compiler-sfc.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"dependencies\": {\n    \"@babel/parser\": \"^7.23.5\",\n    \"postcss\": \"^8.4.14\",\n    \"source-map\": \"^0.6.1\"\n  },\n  \"devDependencies\": {\n    \"@babel/types\": \"^7.23.5\",\n    \"@types/estree\": \"^0.0.48\",\n    \"@types/hash-sum\": \"^1.0.0\",\n    \"@types/lru-cache\": \"^5.1.1\",\n    \"@vue/consolidate\": \"^0.17.3\",\n    \"de-indent\": \"^1.0.2\",\n    \"estree-walker\": \"^2.0.2\",\n    \"hash-sum\": \"^2.0.0\",\n    \"less\": \"^4.1.3\",\n    \"lru-cache\": \"^5.1.1\",\n    \"magic-string\": \"^0.25.9\",\n    \"merge-source-map\": \"^1.1.0\",\n    \"postcss-modules\": \"^4.3.1\",\n    \"postcss-selector-parser\": \"^6.0.10\",\n    \"pug\": \"^3.0.2\",\n    \"sass\": \"^1.52.3\",\n    \"stylus\": \"^0.58.1\"\n  },\n  \"optionalDependencies\": {\n    \"prettier\": \"^1.18.2 || ^2.0.0\"\n  }\n}\n\n<!-- File: app/main/node_modules/vue/packages/compiler-sfc/test/tsconfig.json (Tokens: ~42 | Category: anthropic-skill) -->\n{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"types\": [\"node\", \"vitest/globals\"]\n  },\n  \"include\": [\"../src\", \".\"]\n}\n\n<!-- File: app/main/node_modules/mousetrap/plugins/bind-dictionary/README.md (Tokens: ~100 | Category: plugin-manifest) -->\n# Bind Dictionary\n\nThis extension overwrites the default bind behavior and allows you to bind multiple combinations in a single bind call.\n\nUsage looks like:\n\n```javascript\nMousetrap.bind({\n    'a': function() { console.log('a'); },\n    'b': function() { console.log('b'); }\n});\n```\n\nYou can optionally pass in ``keypress``, ``keydown`` or ``keyup`` as a second argument.\n\nOther bind calls work the same way as they do by default.\n\n<!-- File: app/main/node_modules/mousetrap/plugins/global-bind/README.md (Tokens: ~116 | Category: plugin-manifest) -->\n# Global Bind\n\nThis extension allows you to specify keyboard events that will work anywhere including inside textarea/input fields.\n\nUsage looks like:\n\n```javascript\nMousetrap.bindGlobal('ctrl+s', function() {\n    _save();\n});\n```\n\nThis means that a keyboard event bound using ``Mousetrap.bind`` will only work outside of form input fields, but using ``Moustrap.bindGlobal`` will work in both places.\n\nIf you wanted to create keyboard shortcuts that only work when you are inside a specific textarea you can do that too by creating your own extension.\n\n<!-- File: app/main/node_modules/mousetrap/plugins/pause/README.md (Tokens: ~69 | Category: plugin-manifest) -->\n# Pause/unpause\n\nThis extension allows Mousetrap to be paused and unpaused without having to reset keyboard shortcuts and rebind them.\n\nUsage looks like:\n\n```javascript\n// stop Mousetrap events from firing\nMousetrap.pause();\n\n// allow Mousetrap events to fire again\nMousetrap.unpause();\n```\n\n<!-- File: app/main/node_modules/mousetrap/plugins/README.md (Tokens: ~128 | Category: plugin-manifest) -->\n# Plugins\n\nPlugins extend the functionality of Mousetrap.  To use a plugin just include the plugin after mousetrap.\n\n```html\n<script src=\"mousetrap.js\"></script>\n<script src=\"mousetrap-record.js\"></script>\n```\n\n## Bind dictionary\n\nAllows you to make multiple bindings in a single ``Mousetrap.bind`` call.\n\n## Global bind\n\nAllows you to set global bindings that work even inside of input fields.\n\n## Pause/unpause\n\nAllows you to temporarily prevent Mousetrap events from firing.\n\n## Record\n\nAllows you to capture a keyboard shortcut or sequence defined by a user.\n\n<!-- File: app/main/node_modules/mousetrap/plugins/record/README.md (Tokens: ~86 | Category: plugin-manifest) -->\n# Record\n\nThis extension lets you use Mousetrap to record keyboard sequences and play them back:\n\n```html\n<button onclick=\"recordSequence()\">Record</button>\n\n<script>\n    function recordSequence() {\n        Mousetrap.record(function(sequence) {\n            // sequence is an array like ['ctrl+k', 'c']\n            alert('You pressed: ' + sequence.join(' '));\n        });\n    }\n</script>\n```\n</yakaai_skills>"}