{"_id":"@lakphy/local-router","_rev":"27-2eccdcc7e8c8a205102ef9cde6fb2788","name":"@lakphy/local-router","dist-tags":{"latest":"0.5.11"},"versions":{"0.0.1":{"name":"@lakphy/local-router","version":"0.0.1","author":{"name":"lakphy","email":"lakphy@outlook.com"},"_id":"@lakphy/local-router@0.0.1","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"homepage":"https://github.com/lakphy/local-router#readme","bugs":{"url":"https://github.com/lakphy/local-router/issues"},"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"5ffcd9f6f702d76be3da67b04981b564099cb532","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.0.1.tgz","fileCount":9,"integrity":"sha512-PXkWhOo85kxLffNOvV7B0zF2SI4vfhKhnMPZz64mbnIoZ62X1faVzSZERsx/e+dK9waro1Hmku2tXMJ6oOlzSw==","signatures":[{"sig":"MEUCID0VJXdg0qlLS0/rq8IawWT3yncyibKPFDuFMstBc2wrAiEAjsgLGrTTMkDubxNM+p2jrP0DKnvTJBJlHC2NXoZ6hhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2448740},"engines":{"bun":">=1.2.0"},"gitHead":"cd26d01415180ede6d7b44dbf38a6fa684badd07","scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"repository":{"url":"git+https://github.com/lakphy/local-router.git","type":"git"},"workspaces":["web"],"_npmVersion":"10.9.4","description":"`local-router` 是一个面向本地使用的 AI 请求网关。   你把请求发给它，它会按你的配置自动转发到 OpenAI/Anthropic 兼容上游，并统一提供日志和管理界面。","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.0.1_1772734639491_0.5467399175789067","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@lakphy/local-router","version":"0.0.2","author":{"name":"lakphy","email":"lakphy@outlook.com"},"_id":"@lakphy/local-router@0.0.2","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"homepage":"https://github.com/lakphy/local-router#readme","bugs":{"url":"https://github.com/lakphy/local-router/issues"},"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"3c5d545dc8671bc6a3033eff9309e850b9906445","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.0.2.tgz","fileCount":9,"integrity":"sha512-cfm7s0btZM66lzz7I5D1xG4id9owwv2vtHSTSie5YGVbzUY/yKx6/LxFOf2TCNwq4IgRWb/FluMYby3WrBIcgQ==","signatures":[{"sig":"MEUCIQDBMLVJvwVFawW0YixuhjNgwLCwzU4gQUjMbrVyYZ8frgIgcoaZc0hv+y2AoWgermcbGvyssyYD+mg5rqqvSucCCYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2448556},"engines":{"bun":">=1.2.0"},"gitHead":"e7049420d70e387fcb77d2cc4faa2eb42ec44c49","scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"repository":{"url":"git+https://github.com/lakphy/local-router.git","type":"git"},"workspaces":["web"],"_npmVersion":"10.9.4","description":"`@lakphy/local-router` 是一个本地 AI CLI 网关工具。   安装后通过 `local-router` 命令启动服务，把 OpenAI/Anthropic 风格请求统一转发到你配置的上游 provider。","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.0.2_1772734813179_0.5593626240804317","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@lakphy/local-router","version":"0.1.0","author":{"name":"lakphy","email":"lakphy@outlook.com"},"_id":"@lakphy/local-router@0.1.0","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"homepage":"https://github.com/lakphy/local-router#readme","bugs":{"url":"https://github.com/lakphy/local-router/issues"},"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"6ce809d8f1b1a2b0b85432ce7fe9e966bcf504a8","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.1.0.tgz","fileCount":9,"integrity":"sha512-YIwyAVIvaoF12HP5TuCnqbxz5LTz+Z8zy0K3xs4LvsHsXH5StExtUUjuK2UnoALj1p2GcC51YGAmgMr6+t2EYg==","signatures":[{"sig":"MEUCIGgbyNNaluw+fUVII0hDIVd+PlGvyDmgPnCmwo/JVSVrAiEAhnvTrvus9ptAuTyxQD732JjElPszvII6O5YtaijHFck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2451200},"engines":{"bun":">=1.2.0"},"gitHead":"eb9442d656585dc1bf6a0fe12d59724ed8d6f720","scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"repository":{"url":"git+https://github.com/lakphy/local-router.git","type":"git"},"workspaces":["web"],"_npmVersion":"10.9.4","description":"`@lakphy/local-router` 是一个本地 AI CLI 网关工具。   安装后通过 `local-router` 命令启动服务，把 OpenAI/Anthropic 风格请求统一转发到你配置的上游 provider。","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.1.0_1772736314306_0.5023323693156307","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@lakphy/local-router","version":"0.1.1","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.1.1","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"737002f7938adb8e9819c17d0ecc8278888b5630","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.1.1.tgz","fileCount":9,"integrity":"sha512-rHu4h8OZV3SpUCTzmsOKkDX7YdxsmayUms87QXI2dDkiX13XeZ5Yg0enpX/eXmBNvk4mbOAvXp3gkNQ2En3RRA==","signatures":[{"sig":"MEYCIQDGJq5O/tOVrQ0oHN+rq+7PgDWarOBGb+Hc9cKZ3u/5VgIhAPLxoE2XNUYhXj6eNsDK9nJ7SCtt3MZahRyitKN/KGpQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2454364},"shasum":"737002f7938adb8e9819c17d0ecc8278888b5630","engines":{"bun":">=1.2.0"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-rHu4h8OZV3SpUCTzmsOKkDX7YdxsmayUms87QXI2dDkiX13XeZ5Yg0enpX/eXmBNvk4mbOAvXp3gkNQ2En3RRA==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.1.1_1772878472661_0.4995917047076579","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@lakphy/local-router","version":"0.1.2","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.1.2","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"87d6fd1df939433a09772c54a8affe4c0ec8920a","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.1.2.tgz","fileCount":9,"integrity":"sha512-K+ljfKNHuYFc1BvErcq3arWmQBVQcKKFusO7qHE5EbJ1U7ISB7wPDHuTHqT1Iyqn05luEn+edT1kKDUig69R8g==","signatures":[{"sig":"MEQCIFFq8RYolgWB/MhXPL/AopeI0DjoDdU0qpKR66Sxdn5TAiAfMjERKEwGqBDChTCiFLJRLHmDccAlEiyz5U0qYxFBeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2477451},"shasum":"87d6fd1df939433a09772c54a8affe4c0ec8920a","engines":{"bun":">=1.2.0"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-K+ljfKNHuYFc1BvErcq3arWmQBVQcKKFusO7qHE5EbJ1U7ISB7wPDHuTHqT1Iyqn05luEn+edT1kKDUig69R8g==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.1.2_1772881244894_0.7117415906232383","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@lakphy/local-router","version":"0.2.0","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.2.0","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"4f9b69abd7ced8fe3cb177fec235fc73e3d1db9e","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.2.0.tgz","fileCount":9,"integrity":"sha512-V2wl8AJZh4Q7rsh+7Bq6aFSPPfkpHSYcZeE8WhSHtwMWWUEiohEIv49+Rn4Q5/DIZPIgHDes/Y4Z+53XQ++rnw==","signatures":[{"sig":"MEQCICHprEkg3puHibKyMGsilB4Z9eiir+WBwOMIKqoBLDnlAiBC5n2lfPtELd1OVU7742t2ZvoDdQMcT9hj61QZxBJRpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5455802},"shasum":"4f9b69abd7ced8fe3cb177fec235fc73e3d1db9e","engines":{"bun":">=1.2.0"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-V2wl8AJZh4Q7rsh+7Bq6aFSPPfkpHSYcZeE8WhSHtwMWWUEiohEIv49+Rn4Q5/DIZPIgHDes/Y4Z+53XQ++rnw==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.2.0_1772979241197_0.28105399379136387","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@lakphy/local-router","version":"0.3.0","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.3.0","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"f8efe3c9eff58d88967b9e6361aca00f0f69cbff","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.3.0.tgz","fileCount":9,"integrity":"sha512-9wumstfVFDdrrd5+ayy2ehiPM4JS5vZWaXCb3wzYDNJAvheu6hOhK6mw51Ma/rIwa1o0bPE58leXWY6KJsARqQ==","signatures":[{"sig":"MEUCIQCG+FHxTdCwDtqpzYVbKNToworz1HrpRjqOqhMjTHz82AIgPbZGCCmY2x+y5CqC5BjVn+iPNRViBtBWMnSEzinwJ1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5523272},"shasum":"f8efe3c9eff58d88967b9e6361aca00f0f69cbff","engines":{"bun":">=1.2.0"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-9wumstfVFDdrrd5+ayy2ehiPM4JS5vZWaXCb3wzYDNJAvheu6hOhK6mw51Ma/rIwa1o0bPE58leXWY6KJsARqQ==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.3.0_1773079353108_0.3935964542262591","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@lakphy/local-router","version":"0.3.1","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.3.1","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"097fe99a38f6d3f73e87cb8177284f5be3ba5beb","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.3.1.tgz","fileCount":8,"integrity":"sha512-aKB1XlzJsE/0c+eBpxOyf8XjgMjAnpUG+vNydIQ0Lot3TH80lKXLt8966GPYiINREiN8H4efN5AjfVLv+7OpIQ==","signatures":[{"sig":"MEUCIBfVqMQjUV360TVZVvvL2YKHrzaLR0+HI28Emyc/DoHSAiEA+5MCzTBdbhkC5+MYeiDpruA1nBVJDkUpTUmd+CPr8gY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5049672},"shasum":"097fe99a38f6d3f73e87cb8177284f5be3ba5beb","engines":{"bun":">=1.2.0"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-aKB1XlzJsE/0c+eBpxOyf8XjgMjAnpUG+vNydIQ0Lot3TH80lKXLt8966GPYiINREiN8H4efN5AjfVLv+7OpIQ==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.3.1_1773287112936_0.4971894005868709","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@lakphy/local-router","version":"0.3.3","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.3.3","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"fc4c4d6c37909b4bb55a12745a4490e603d6c21f","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.3.3.tgz","fileCount":9,"integrity":"sha512-IumhsKnk0UAC/kCytEx94bhFyfH+zx+1bfel+WlA5VHzrSGd+wkVTNpu87UI4rM/SX1LdUgb6TuJ9cYLcBZsDA==","signatures":[{"sig":"MEUCIQDwDTwvARHZ0yMJw4cJ6wtK7JUh+VUhtD4DyCVayCO80QIgH53EoF2N/I16dcbBc1ES44Elc88Sz2c6c/5xqdfLCCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5566907},"shasum":"fc4c4d6c37909b4bb55a12745a4490e603d6c21f","engines":{"bun":">=1.2.0"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-IumhsKnk0UAC/kCytEx94bhFyfH+zx+1bfel+WlA5VHzrSGd+wkVTNpu87UI4rM/SX1LdUgb6TuJ9cYLcBZsDA==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.3.3_1773655658891_0.2903307393673651","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-beta.1":{"name":"@lakphy/local-router","version":"0.4.0-beta.1","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.4.0-beta.1","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"e32b858e4c111d4e6722f0877415e366781c0637","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.4.0-beta.1.tgz","fileCount":9,"integrity":"sha512-A4QPsIAZC1QnJbBQdmT5G3qMo0wQhWQPnVCoOliNZRQttaJ7dI3xwG9Mg/gXnRBhXGHIn4dBnfd9KFGRsQTzTg==","signatures":[{"sig":"MEUCIB/oM/Szxbae4sAawZ5WyaKWrpwQQPE6MoutSpQ2hBvgAiEArXAgBA90TyqZml5759nTNCZZ7L6FJJitqevZ/NAhODE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5601104},"shasum":"e32b858e4c111d4e6722f0877415e366781c0637","engines":{"bun":">=1.2.0"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-A4QPsIAZC1QnJbBQdmT5G3qMo0wQhWQPnVCoOliNZRQttaJ7dI3xwG9Mg/gXnRBhXGHIn4dBnfd9KFGRsQTzTg==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.4.0-beta.1_1773687659650_0.9250651815063378","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-beta.2":{"name":"@lakphy/local-router","version":"0.4.0-beta.2","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.4.0-beta.2","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"f82274b1c5808a77e2a7ddaf147f0af5d822b7c4","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.4.0-beta.2.tgz","fileCount":9,"integrity":"sha512-eSTd8r9o+GNgXONoZfdfoBCKJ7aFOSi8YVs8K73ZO4HaXto1IMQ0klryttGjKJisdOzdRMXiTQmYZAP0thB1MQ==","signatures":[{"sig":"MEUCIQCpAMK2WVCeC/eyW1WJLrLrRI0boNPK2zK4JJ182Q/rmwIgfv6y2dWjPdw7BQZAN0FvyHwIEBn0nQSTRJ8rTToBsec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5604849},"shasum":"f82274b1c5808a77e2a7ddaf147f0af5d822b7c4","engines":{"bun":">=1.2.0"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-eSTd8r9o+GNgXONoZfdfoBCKJ7aFOSi8YVs8K73ZO4HaXto1IMQ0klryttGjKJisdOzdRMXiTQmYZAP0thB1MQ==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.4.0-beta.2_1773761878466_0.9318638350419561","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-beta.3":{"name":"@lakphy/local-router","version":"0.4.0-beta.3","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.4.0-beta.3","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"6b1a74feee967016912a228d209f3692a38141ed","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.4.0-beta.3.tgz","fileCount":10,"integrity":"sha512-+cpi85zl+YQTgr2jZC5Vs+4x6zbRqWSv4PtPBM0NAo2jk/5x/YoTxRZTM3F1IEmqeTOwgvPa8U5kKzqn2yxzGQ==","signatures":[{"sig":"MEYCIQDRnGiGPW1cUcIiZJWXsCydmCNHJ/0RryOR3JwPNnoL9QIhAJ8NTxqRZV8l6jUB4cC/QtE9rTNxwSs88zAFvyh+zLp6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5621369},"shasum":"6b1a74feee967016912a228d209f3692a38141ed","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-+cpi85zl+YQTgr2jZC5Vs+4x6zbRqWSv4PtPBM0NAo2jk/5x/YoTxRZTM3F1IEmqeTOwgvPa8U5kKzqn2yxzGQ==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.4.0-beta.3_1773767958832_0.7523746005864456","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-beta.4":{"name":"@lakphy/local-router","version":"0.4.0-beta.4","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.4.0-beta.4","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"ecf23644b83612dbabafdeb7bb871a1ea8c8f340","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.4.0-beta.4.tgz","fileCount":10,"integrity":"sha512-KGcKowl+9dto4iMb0YH2tqoqoUjpCdDwHGtBrx2QaVW8bMo/50mFrFKbaYMuTm888aPyqvwpkMM1m/3Bg+qOYg==","signatures":[{"sig":"MEYCIQDMREAusnHObObf5wtQSof51EEv+llpYCf6bgZykH8ZvAIhAMoKwWGzv/c9oyiUbgU+uByuPhBnKprBwLY3hPlFBUa7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5626634},"shasum":"ecf23644b83612dbabafdeb7bb871a1ea8c8f340","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-KGcKowl+9dto4iMb0YH2tqoqoUjpCdDwHGtBrx2QaVW8bMo/50mFrFKbaYMuTm888aPyqvwpkMM1m/3Bg+qOYg==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.4.0-beta.4_1773769749166_0.03019507957287515","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@lakphy/local-router","version":"0.4.0","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.4.0","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"adf32d6fa5d66ab0163d4dfcfdfcc2742b90cc70","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.4.0.tgz","fileCount":10,"integrity":"sha512-UkhBwi17XyCl00dyXFlyvE32kF3puMDtoBQ7ksNODU1XtcVu9gCLZl5/X6i7/4q9+QZKYQyMdk5MVp/2FhDIyA==","signatures":[{"sig":"MEQCIFiuHIS5mZEINcHkUSH35UAw6TQPXL+FH1qLMHzELiuXAiBnp04TN0J0jLqfX+xzyBrbh/qhbVzygxQCoWOvuKsTew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5626627},"shasum":"adf32d6fa5d66ab0163d4dfcfdfcc2742b90cc70","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-UkhBwi17XyCl00dyXFlyvE32kF3puMDtoBQ7ksNODU1XtcVu9gCLZl5/X6i7/4q9+QZKYQyMdk5MVp/2FhDIyA==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.4.0_1773845513375_0.960513564677526","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@lakphy/local-router","version":"0.4.1","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.4.1","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"c4a43760058f1651c18ca5ec79e31367e8e41fdc","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.4.1.tgz","fileCount":9,"integrity":"sha512-NNbuFcyNQhMn6dvXMmowt5nS1X4F8S0PEZRs2KgO/E0c14WnUGMCnIpJOLlbudZbfKzPFPBu/lZ7lqGAR9Pkpg==","signatures":[{"sig":"MEUCIAqga87pcLgpLO7jm//+wBU49FcsFpZFOrZfH5mdSqZrAiEAtxXLouyHsLaVf9r2qoYTA4+ttmlnWjmT0r/frWJHjlM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5153774},"shasum":"c4a43760058f1651c18ca5ec79e31367e8e41fdc","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-NNbuFcyNQhMn6dvXMmowt5nS1X4F8S0PEZRs2KgO/E0c14WnUGMCnIpJOLlbudZbfKzPFPBu/lZ7lqGAR9Pkpg==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.4.1_1773927223941_0.8459067803709579","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@lakphy/local-router","version":"0.4.2","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.4.2","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"7c4c071fe471a64c77ec30050a2e72086170fe73","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.4.2.tgz","fileCount":10,"integrity":"sha512-K1tJbCtGKzjCIczLKZi5XQvUypF7V+45XfTzr4va6sd/eVGKihO6TnZCHcj/uaFkGJBR0sJ4v2zAUb3MWPTENg==","signatures":[{"sig":"MEQCIASmxKVEe/DTTNFy0DErLyjBJh6mHE8jkewwkcApTeptAiAyOYfhjmLUOLzfIb+7SHfLZBPKM9dEEgUAiC58679Mzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5644167},"shasum":"7c4c071fe471a64c77ec30050a2e72086170fe73","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-K1tJbCtGKzjCIczLKZi5XQvUypF7V+45XfTzr4va6sd/eVGKihO6TnZCHcj/uaFkGJBR0sJ4v2zAUb3MWPTENg==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.4.2_1779382157070_0.7260317526216926","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@lakphy/local-router","version":"0.5.0","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.0","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"2b0c2e7f91bd6a4201b3d0a8ed429da9bc074d12","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.0.tgz","fileCount":10,"integrity":"sha512-I22bcYjbjOoaXuxOO6zseYD7bah0oh0Zbxm65AOK+qz1ptbo/yeIEswhnpdJrDacGHSaehG2AJzUcM2jVu4vxQ==","signatures":[{"sig":"MEQCIF9DA+dKGq2Q3hkZSCQrAKQhDBZ4qXXX1ZPb7UzpucA/AiBBqFuuA2LrhQhqlRDW2f1NY/9Pd3cF8sScAxQHhRcr6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5713374},"shasum":"2b0c2e7f91bd6a4201b3d0a8ed429da9bc074d12","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-I22bcYjbjOoaXuxOO6zseYD7bah0oh0Zbxm65AOK+qz1ptbo/yeIEswhnpdJrDacGHSaehG2AJzUcM2jVu4vxQ==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.0_1779386987250_0.5799404158354793","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@lakphy/local-router","version":"0.5.1","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.1","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"d1d799509a7b1f07961f09360b1284c0a577483f","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.1.tgz","fileCount":10,"integrity":"sha512-bwoL4Fqwsbpso3KGVXl1fjEC6UwAxuQdTK3y03zOOJjAeZksmt8SIJriOztfaKEUnteQMah6GPNcCtjF7ZTQKQ==","signatures":[{"sig":"MEYCIQCKYBN/bHDq6j1GSmx0HkYZI6Rd/dXclMusBxecEC9yMgIhANz/DAYvwpAG0CDN8lbPwrYwYym+BNeZOTf+YJvpISJw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5844544},"shasum":"d1d799509a7b1f07961f09360b1284c0a577483f","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-bwoL4Fqwsbpso3KGVXl1fjEC6UwAxuQdTK3y03zOOJjAeZksmt8SIJriOztfaKEUnteQMah6GPNcCtjF7ZTQKQ==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.1_1779466057766_0.9330302996644444","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@lakphy/local-router","version":"0.5.2","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.2","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"8854d9cb90ef6fd86048ebaadb382a536d5f9838","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.2.tgz","fileCount":10,"integrity":"sha512-6Fw7A0pgNHhe0Of9Ka1nS3DVOgyjYPg0nSvHXk/Ern9HnNvJphKHEoSQSp9RNjYmxQZZ2UYncEg+36Y/N3npDw==","signatures":[{"sig":"MEUCIFVZ+WtxSu5qHo9U4/6dFqMOPUBMT3+FH61S24ehOZC1AiEA95hf/U3IBdrq8+ZuuegyqEnOwKkWqvIQmQlwFIhmwM0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5846580},"shasum":"8854d9cb90ef6fd86048ebaadb382a536d5f9838","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-6Fw7A0pgNHhe0Of9Ka1nS3DVOgyjYPg0nSvHXk/Ern9HnNvJphKHEoSQSp9RNjYmxQZZ2UYncEg+36Y/N3npDw==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.2_1779471786844_0.9949044009768004","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@lakphy/local-router","version":"0.5.3","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.3","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"98c09b38d0f8b45a8ed23b7205ee8e843f04c386","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.3.tgz","fileCount":10,"integrity":"sha512-UpqwqNByABcBLqq/ERiGDzo+FvSUBV6FKzHX52sakHPj6oZgnoFKgPJeO9oODAx/Krsh11KNRzuNfHc5AO5bHA==","signatures":[{"sig":"MEUCIQCF1DMKtbSh/OYpmmeeUDRynwIh2IrhBMTmLVzoj0X+xgIgOEY1/lCB7/4OZ5PFH6wEc8xivxnvWTM+oS79bql0ESY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5933662},"shasum":"98c09b38d0f8b45a8ed23b7205ee8e843f04c386","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-UpqwqNByABcBLqq/ERiGDzo+FvSUBV6FKzHX52sakHPj6oZgnoFKgPJeO9oODAx/Krsh11KNRzuNfHc5AO5bHA==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.3_1779519981266_0.5281763931261836","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@lakphy/local-router","version":"0.5.5","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.5","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"48d1bab46652ad718a552f0f2672e7005760fe74","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.5.tgz","fileCount":10,"integrity":"sha512-oCLULjwezT4RK2VArXLB9s++9qjXMggs+d4UvTGEcQTc2fFQjXkromtyhPWHXQFQWJLTJLax1sah64aUCaoTog==","signatures":[{"sig":"MEYCIQD0FtwlTD+BLOSMRltbrU9GSNz/4nwApY2vSV8gd+/0+QIhAOS+cu/CePgrxxwOZUdPi18jh/A+zigLEvMueQHGxyq7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6122423},"shasum":"48d1bab46652ad718a552f0f2672e7005760fe74","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-oCLULjwezT4RK2VArXLB9s++9qjXMggs+d4UvTGEcQTc2fFQjXkromtyhPWHXQFQWJLTJLax1sah64aUCaoTog==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.5_1779811153224_0.39128162533773114","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@lakphy/local-router","version":"0.5.6","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.6","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"a528940f8af9b0abf482e76fc9b7df9574aa6694","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.6.tgz","fileCount":10,"integrity":"sha512-/s6YSjzS51ZyT7nOv9AIilT/QgcIwL9ca2zPhadbUQ5sSJeYEi91A3xiNu/lWa44B6B91jyVlqxlPTk0Bbo1eQ==","signatures":[{"sig":"MEUCIFAKPbi3IJmmCY22jSD/Xwc2yyCE1XMierw8x1IDAaAXAiEAv0uiyByMUMzn/wCenYJJrk3vyBAq94tYYePbtNQ1nZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6146071},"shasum":"a528940f8af9b0abf482e76fc9b7df9574aa6694","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-/s6YSjzS51ZyT7nOv9AIilT/QgcIwL9ca2zPhadbUQ5sSJeYEi91A3xiNu/lWa44B6B91jyVlqxlPTk0Bbo1eQ==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.6_1780128428845_0.34939259615650387","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@lakphy/local-router","version":"0.5.7","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.7","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"56e89903228e351b4e874b4b3fc95dc12b4c6a82","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.7.tgz","fileCount":10,"integrity":"sha512-hLndkbNJxRASPRSSqIPScmHq82EjTdWd7653zzA9fx+Qa8/toYejehfrXK4cdBUgqR091Y50UnNoM6Flr29PWw==","signatures":[{"sig":"MEQCIGM8ofo6KnChfjkjGV4K08ERvD1LeYEQT8KJgvU8gbkdAiBdqLIxwbsqGRV09Zbztsv6l8e/f5Jha+zeAbQu9kTrJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6170374},"shasum":"56e89903228e351b4e874b4b3fc95dc12b4c6a82","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-hLndkbNJxRASPRSSqIPScmHq82EjTdWd7653zzA9fx+Qa8/toYejehfrXK4cdBUgqR091Y50UnNoM6Flr29PWw==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.7_1780130966374_0.8205434640939331","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"@lakphy/local-router","version":"0.5.8","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.8","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"61b67637bcac0a749e66fee9f21e2277e7bb7053","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.8.tgz","fileCount":10,"integrity":"sha512-IlXIaZ+YiQH5aGH01ezmgoKGnDfUjLG/aV2g0Pj+SE8FBaDspCNrwfgPSDIoptS3xQf1u6MYHJ3gr81n0rdcqQ==","signatures":[{"sig":"MEYCIQD/CMjgkC6BF2aQlOLzsrF8hHGF6kqs1D/hvXhkKyka5gIhAKYYoaAqebajUMEWLgwmdG/sQPXA3jNlmnuKoM0MWWBW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6189304},"shasum":"61b67637bcac0a749e66fee9f21e2277e7bb7053","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-IlXIaZ+YiQH5aGH01ezmgoKGnDfUjLG/aV2g0Pj+SE8FBaDspCNrwfgPSDIoptS3xQf1u6MYHJ3gr81n0rdcqQ==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.8_1780137155062_0.934712110850227","host":"s3://npm-registry-packages-npm-production"}},"0.5.9":{"name":"@lakphy/local-router","version":"0.5.9","author":"lakphy <lakphy@outlook.com>","_id":"@lakphy/local-router@0.5.9","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"ac653d18cb411d5e5ed75d174c4804083510b960","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.9.tgz","fileCount":10,"integrity":"sha512-qNxHb1QgrslaVlvMYoBHjv9q6fRapnWx67uYELjDYQo4PSflYpud6Oj6S/zVe0x2o9abbtlYwohpqKWKGGV57g==","signatures":[{"sig":"MEYCIQCbuYExMq/ywNDoyz0id8FYbJCds4aphyCvSqhJPqxmPQIhAIEZLXAzzM095VRS7tC0Fy916USoSOxHaUrL3OwZtR5U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6195654},"shasum":"ac653d18cb411d5e5ed75d174c4804083510b960","engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"_integrity":"sha512-qNxHb1QgrslaVlvMYoBHjv9q6fRapnWx67uYELjDYQo4PSflYpud6Oj6S/zVe0x2o9abbtlYwohpqKWKGGV57g==","repository":{"url":"https://github.com/lakphy/local-router","type":"git"},"workspaces":["web"],"_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.9_1780771321258_0.4728817192901158","host":"s3://npm-registry-packages-npm-production"}},"0.5.10":{"name":"@lakphy/local-router","version":"0.5.10","author":{"name":"lakphy","email":"lakphy@outlook.com"},"_id":"@lakphy/local-router@0.5.10","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"homepage":"https://github.com/lakphy/local-router#readme","bugs":{"url":"https://github.com/lakphy/local-router/issues"},"bin":{"local-router":"dist/cli.js"},"bun":{"minify":true,"target":"bun","sourcemap":"external"},"dist":{"shasum":"e257dbcae7e6fb0748c6a267e96d85c939466ab7","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.10.tgz","fileCount":12,"integrity":"sha512-4kHeJvW/vl6AeQZ/2H/pLoKeW9egNvE3wNKKGBdUwT/G8/74IuB8VryAOObeXsqpyN8gsgtxQKrIPf3CCoyF9w==","signatures":[{"sig":"MEQCIH/0IUb3NOXEGAlIf+Vaumu65U3KH6gkkyVYPfittJ4vAiBXFFdvzJhY6ykefTXC8wDTKSq82eOsficNFMhMtbhj/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6287447},"engines":{"bun":">=1.2.0"},"exports":{"./plugin":"./src/plugin.ts"},"gitHead":"0bfe634b0a431b1f39ef12f35785112c3f93ab2a","scripts":{"dev":"bun run dev:api & bun run dev:web","lint":"biome lint .","test":"bun test","build":"bun run build:api & bun run build:web & bun run build:cli & wait","check":"biome check .","start":"bun run dist/cli.js start","format":"biome format .","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","lint:fix":"biome lint --write .","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","build:web":"cd web && bun run build","check:fix":"biome check --write .","format:fix":"biome format --write .","prepublishOnly":"bun run build"},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"repository":{"url":"git+https://github.com/lakphy/local-router.git","type":"git"},"workspaces":["web"],"_npmVersion":"10.9.4","description":"`@lakphy/local-router` 是一个本地 AI CLI 网关工具。   安装后通过 `local-router` 命令启动服务，把 OpenAI/Anthropic 风格请求统一转发到你配置的上游 provider。","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.18.0","hono":"^4.12.3","json5":"^2.2.3","ajv-formats":"^3.0.1","@hono/swagger-ui":"^0.5.3"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.0","devDependencies":{"ai":"^6.0.116","@types/bun":"latest","@ai-sdk/openai":"^3.0.41","@biomejs/biome":"^2.4.4","@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai-compatible":"^2.0.35"},"_npmOperationalInternal":{"tmp":"tmp/local-router_0.5.10_1784444299164_0.2648156339841852","host":"s3://npm-registry-packages-npm-production"}},"0.5.11":{"name":"@lakphy/local-router","version":"0.5.11","packageManager":"bun@1.2.0","workspaces":["web"],"repository":{"type":"git","url":"git+https://github.com/lakphy/local-router.git"},"author":{"name":"lakphy","email":"lakphy@outlook.com"},"engines":{"bun":">=1.2.0"},"bin":{"local-router":"dist/cli.js"},"exports":{"./plugin":"./src/plugin.ts"},"bun":{"target":"bun","minify":true,"sourcemap":"external"},"scripts":{"dev":"bun run dev:api & bun run dev:web","dev:api":"NO_PROXY=localhost,127.0.0.1,::1 no_proxy=localhost,127.0.0.1,::1 PORT=4099 ADMIN_DEV_SERVER_URL=http://localhost:5177 bun run --hot src/entry.ts","dev:web":"cd web && bun run dev","build":"bun run build:api & bun run build:web & bun run build:cli & wait","build:web":"cd web && bun run build","build:api":"bun build src/entry.ts --target bun --outdir dist","build:cli":"bun build src/cli.ts --target bun --outfile dist/cli.js","start":"bun run dist/cli.js start","prepublishOnly":"bun run build","test":"bun test","lint":"biome lint .","lint:fix":"biome lint --write .","format":"biome format .","format:fix":"biome format --write .","check":"biome check .","check:fix":"biome check --write ."},"dependencies":{"@hono/swagger-ui":"^0.5.3","ajv":"^8.18.0","ajv-formats":"^3.0.1","hono":"^4.12.3","json5":"^2.2.3"},"devDependencies":{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/openai":"^3.0.41","@ai-sdk/openai-compatible":"^2.0.35","@biomejs/biome":"^2.4.4","@types/bun":"latest","ai":"^6.0.116"},"_id":"@lakphy/local-router@0.5.11","gitHead":"aa2ed9e969e3986c0e5518c98924594def7e94ea","description":"`@lakphy/local-router` 是一个本地 AI CLI 网关工具。   安装后通过 `local-router` 命令启动服务，把 OpenAI/Anthropic 风格请求统一转发到你配置的上游 provider。","bugs":{"url":"https://github.com/lakphy/local-router/issues"},"homepage":"https://github.com/lakphy/local-router#readme","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-WHk01o7RXFoOPHWqFDsPpEUiWxLlzUBMwo3mvlKpliwQ0I/THF4Hv2h6Hwj+z1koVoMZQHMX0nA30KHKC0bhAw==","shasum":"b7d91096f84ea2596a5035dce5852e8c197e6d97","tarball":"https://registry.npmjs.org/@lakphy/local-router/-/local-router-0.5.11.tgz","fileCount":12,"unpackedSize":6299065,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC/X8M5FwazcG8oLIHevixhVZ9gPdG+xuITOJUdV4WXPAiB4e0LutjA0KGL9tsSHykaimsvqV/sckhQpKB/MUdNCQw=="}]},"_npmUser":{"name":"lakphy","email":"lakphy@outlook.com"},"directories":{},"maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/local-router_0.5.11_1784652089550_0.9027911337742538"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-05T18:17:19.430Z","modified":"2026-07-21T16:41:29.888Z","0.0.1":"2026-03-05T18:17:19.688Z","0.0.2":"2026-03-05T18:20:13.405Z","0.1.0":"2026-03-05T18:45:14.518Z","0.1.1":"2026-03-07T10:14:32.875Z","0.1.2":"2026-03-07T11:00:45.196Z","0.2.0":"2026-03-08T14:14:01.402Z","0.3.0":"2026-03-09T18:02:33.322Z","0.3.1":"2026-03-12T03:45:13.266Z","0.3.3":"2026-03-16T10:07:39.145Z","0.4.0-beta.1":"2026-03-16T19:00:59.861Z","0.4.0-beta.2":"2026-03-17T15:37:58.638Z","0.4.0-beta.3":"2026-03-17T17:19:19.036Z","0.4.0-beta.4":"2026-03-17T17:49:09.331Z","0.4.0":"2026-03-18T14:51:53.547Z","0.4.1":"2026-03-19T13:33:44.180Z","0.4.2":"2026-05-21T16:49:17.328Z","0.5.0":"2026-05-21T18:09:47.540Z","0.5.1":"2026-05-22T16:07:37.939Z","0.5.2":"2026-05-22T17:43:07.095Z","0.5.3":"2026-05-23T07:06:21.460Z","0.5.5":"2026-05-26T15:59:13.407Z","0.5.6":"2026-05-30T08:07:09.036Z","0.5.7":"2026-05-30T08:49:26.541Z","0.5.8":"2026-05-30T10:32:35.257Z","0.5.9":"2026-06-06T18:42:01.479Z","0.5.10":"2026-07-19T06:58:19.344Z","0.5.11":"2026-07-21T16:41:29.748Z"},"bugs":{"url":"https://github.com/lakphy/local-router/issues"},"author":{"name":"lakphy","email":"lakphy@outlook.com"},"homepage":"https://github.com/lakphy/local-router#readme","repository":{"type":"git","url":"git+https://github.com/lakphy/local-router.git"},"description":"`@lakphy/local-router` 是一个本地 AI CLI 网关工具。   安装后通过 `local-router` 命令启动服务，把 OpenAI/Anthropic 风格请求统一转发到你配置的上游 provider。","maintainers":[{"name":"lakphy","email":"lakphy@outlook.com"}],"readme":"# @lakphy/local-router\n\n`@lakphy/local-router` 是一个本地 AI CLI 网关工具。  \n安装后通过 `local-router` 命令启动服务，把 OpenAI/Anthropic 风格请求统一转发到你配置的上游 provider。\n\n## 安装（CLI 使用者）\n\n运行要求：Bun `>=1.2.0`\n\n全局安装（推荐）：\n\n```sh\nnpm i -g @lakphy/local-router\n```\n\n或用 Bun 全局安装：\n\n```sh\nbun add -g @lakphy/local-router\n```\n\n不全局安装，临时执行：\n\n```sh\nnpx @lakphy/local-router --help\n# 或\nbunx @lakphy/local-router --help\n```\n\n## 快速开始\n\n### 1) 初始化配置\n\n```sh\nlocal-router init\n```\n\n默认配置路径：\n\n- 优先当前目录：`./config.json5`\n- 否则全局目录：`~/.local-router/config.json5`\n\n### 2) 编辑配置文件\n\n最小可用配置示例：\n\n```json5\n{\n  providers: {\n    openai: {\n      type: \"openai-completions\",\n      base: \"https://api.openai.com/v1\",\n      apiKey: \"sk-xxxx\",\n      proxy: \"http://127.0.0.1:7890\", // 可选：仅该 provider 走代理\n      models: {\n        \"gpt-4o-mini\": {}\n      }\n    }\n  },\n  routes: {\n    \"openai-completions\": {\n      \"*\": { provider: \"openai\", model: \"gpt-4o-mini\" }\n    }\n  }\n}\n```\n\n### 3) 启动服务\n\n```sh\nlocal-router start\n```\n\n默认地址：\n\n- 服务监听：`http://0.0.0.0:4099`\n- 本机访问：`http://127.0.0.1:4099`\n- 管理面板：`http://127.0.0.1:4099/admin`\n- API 文档：`http://127.0.0.1:4099/api/docs`\n\n默认只处理本机来源请求。需要让局域网内其他设备访问时，在管理面板的“通用设置”中开启局域网服务并保存应用。\n\n## 常用命令\n\n```sh\nlocal-router --help\nlocal-router init\nlocal-router start\nlocal-router start --daemon\nlocal-router stop\nlocal-router restart --daemon\nlocal-router status\nlocal-router status --json\nlocal-router health\nlocal-router logs --follow\nlocal-router version\n```\n\n常用参数：\n\n- `--config <path>`：指定配置文件路径\n- `--host <host>`：指定监听地址\n- `--port <port>`：指定监听端口\n- `--daemon`：后台运行\n- `--idle-timeout <sec>`：设置 Bun 连接空闲超时（默认 600 秒，设为 `0` 可关闭）\n\n## CLI 输出格式\n\nlocal-router 默认采用常见 CLI 的人类可读输出：空格对齐的表格、键值信息和普通文本，不会把 Markdown 标记直接打印到终端。脚本场景用 `-o json` 获取稳定 envelope；需要生成文档时仍可显式使用 `-o markdown`。\n\n### 全局 flags\n\n```\n-o, --output human|json|ndjson|text|markdown   默认 human；env LOCAL_ROUTER_FORMAT\n--json                                    -o json 别名\n-q, --quiet\n-v, --verbose\n--no-color                                env NO_COLOR\n--no-interactive                          env LOCAL_ROUTER_NO_INTERACTIVE\n--yes\n--config <path>                           env LOCAL_ROUTER_CONFIG\nLOCAL_ROUTER_RUNTIME_DIR=<dir>            隔离 daemon 状态目录（CI / 测试用）\n```\n\n### 输出契约\n\n- **Human（默认）**：面向终端的对齐表格、键值信息和普通文本；错误写入 stderr，不包含 Markdown 标记，`--verbose` 可展开结构化错误详情。\n- **JSON**：成功 `{ ok:true, command, schema_version, data, meta }`；失败 `{ ok:false, error:{code,message,hint,doc,details}, exit_code }`。\n- **NDJSON**：流式命令每行一个 `{ type:\"event\"|\"end\"|\"error\", ... }`。\n- **Text**：保留旧版紧凑文案，供已有脚本兼容使用。\n- **Markdown**：显式导出结构化 Markdown，适合文档或 AI 上下文文件，不作为默认终端输出。\n- **退出码**：`0` ok / `2` 用法 / `3` 未运行 / `4` 状态冲突 / `5` 校验失败 / `6` 资源不存在 / `7` 超时 / `8` 健康失败 / `9` 上游不可达 / `10` 需要交互。\n\n### 自描述与引导命令（给 AI 的入口）\n\n```sh\nlocal-router commands --json                      # 全部命令元信息\nlocal-router help <cmd> --json                    # 单命令 flags + examples\nlocal-router schema config|cli|errors --json      # schema 导出\nlocal-router capabilities --json                  # 版本 / provider 类型 / 特性\nlocal-router agents-md > AGENTS.md                # 给 AI 看的完整 cheatsheet\nlocal-router doctor                               # 自检 config/端口/服务/上游\nlocal-router docs errors PROVIDER_REFERENCED_BY_ROUTE\n```\n\n### 配置可预演（dry-run）+ 批量导入\n\n所有写命令支持 `--dry-run`，输出 unified diff 后再决定是否写入。\n\n```sh\nlocal-router config provider add openai \\\n  --type openai-completions --base ... --api-key ... --model gpt-4o-mini \\\n  --dry-run --json | jq .data.diff\n\nlocal-router config patch --file - --dry-run <<'EOF'\n[{\"op\":\"add\",\"path\":\"/providers/demo\",\"value\":{\"type\":\"openai-completions\",\"base\":\"https://x\",\"apiKey\":\"sk-1\",\"models\":{\"m\":{}}}}]\nEOF\n\nlocal-router config import --merge --file - < new-config.json5\nlocal-router config diff --against <backup-id>\nlocal-router config backups list\nlocal-router config rollback <backup-id>\nlocal-router config show          # 默认掩码；--show-secrets 看原文\n```\n\n### 端到端调试\n\n```sh\nlocal-router status --wait-running --timeout 10 --json\nlocal-router explain route --entry openai-completions --model gpt-4o-mini --json\nlocal-router try --entry openai-completions --model gpt-4o-mini --prompt ping --json\nlocal-router try ... --stream --output ndjson | jq .       # 流式\nlocal-router ping openai\n```\n\n### 日志（HTTP API → CLI 投影）\n\n```sh\nlocal-router logs events --window 1h --has-error --limit 5\nlocal-router logs event <id> --include-stream\nlocal-router logs last-error --json                # 最近一条错误（AI 调试金钥匙）\nlocal-router logs metrics\nlocal-router logs tail --output ndjson              # 实时事件流\nlocal-router logs replay <event-id> --dry-run       # 用同样参数复发一次\nlocal-router logs export --format jsonl --window 24h > out.jsonl\n```\n\n### 兼容回退\n\n旧脚本若硬编码旧文案，加 `--output text` 或 `LOCAL_ROUTER_FORMAT=text` 完整还原行为。曾依赖默认 Markdown 的调用方改用 `--output markdown`；`--json` 是 envelope 形式，通过 `.data` 取业务数据。\n\n## 请求入口（给你的应用调用）\n\n把应用的 base URL 指向 local-router 后，使用以下入口：\n\n- `POST /openai-completions/v1/chat/completions`\n- `POST /openai-responses/v1/responses`\n- `POST /anthropic-messages/v1/messages`\n\n示例（OpenAI Chat Completions）：\n\n```sh\ncurl -X POST \"http://127.0.0.1:4099/openai-completions/v1/chat/completions\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"gpt-4o-mini\",\n    \"messages\": [{\"role\":\"user\",\"content\":\"请回复 ok\"}]\n  }'\n```\n\n## 配置规则（必须知道）\n\n- `providers`：定义上游服务（类型、地址、密钥、模型）\n- `providers.*.proxy`：可选，provider 级代理 URL（仅该 provider 生效）\n- `routes`：定义路由映射（传入 model -> 目标 provider/model）\n- 每个入口都必须有 `*` 兜底规则\n- `routes` 里引用的 `provider` 必须在 `providers` 中存在\n- `log` 是可选，不配置就不记录日志\n\n完整 schema：`config.schema.json`\n\n### Provider 级代理示例\n\n```json5\n{\n  providers: {\n    openai: {\n      type: \"openai-completions\",\n      base: \"https://api.openai.com/v1\",\n      apiKey: \"sk-openai\",\n      proxy: \"http://127.0.0.1:7890\",\n      models: { \"gpt-4o-mini\": {} }\n    },\n    anthropic: {\n      type: \"anthropic-messages\",\n      base: \"https://api.anthropic.com\",\n      apiKey: \"sk-ant\",\n      // 省略或空字符串表示直连\n      proxy: \"\",\n      models: { \"claude-sonnet-4-5\": {} }\n    }\n  },\n  routes: {\n    \"openai-completions\": {\n      \"*\": { provider: \"openai\", model: \"gpt-4o-mini\" }\n    },\n    \"anthropic-messages\": {\n      \"*\": { provider: \"anthropic\", model: \"claude-sonnet-4-5\" }\n    }\n  }\n}\n```\n\n说明：\n- `proxy` 仅影响当前 provider，不会影响其他 provider。\n- 当前版本代理来源仅 `providers.*.proxy`，不会读取 `HTTP_PROXY/HTTPS_PROXY` 环境变量。\n\n## 日志与管理面板\n\n- 面板地址：`/admin`\n- 健康检查：`GET /api/health`\n- 日志列表：`GET /api/logs/events`\n- 日志详情：`GET /api/logs/events/:id`\n- 日志导出：`GET /api/logs/export?format=json|csv`\n- 实时 tail：`GET /api/logs/tail`（SSE）\n\n默认日志目录：`~/.local-router/logs`\n\n- 事件日志：`events/YYYY-MM-DD.jsonl`\n- 流式原文：`streams/YYYY-MM-DD/<request_id>.sse.raw`\n\n## 常见问题\n\n### 客户端还需要带上游 API Key 吗？\n\n一般不需要。local-router 会使用你在配置文件 `providers.*.apiKey` 中设置的密钥转发。\n\n### 启动失败怎么办？\n\n先检查：\n\n- 端口 `4099` 是否已占用（可用 `--port` 修改）\n- `routes.<type>` 是否缺少 `*` 规则\n- `routes` 引用的 provider 是否存在\n- 配置文件是否是合法 JSON5\n\n\n### 运行较久请求出现 `[Bun.serve]: request timed out after 10 seconds` 怎么办？\n\n这是 Bun 服务端连接空闲超时触发导致的（常见于长流式响应或慢速上游）。\n\n可在启动时放宽超时：\n\n```sh\nlocal-router start --idle-timeout 600\n# 或彻底关闭空闲超时\nlocal-router start --idle-timeout 0\n```\n\n也支持环境变量：\n\n```sh\nLOCAL_ROUTER_IDLE_TIMEOUT=600 local-router start\n```\n\n### 如何升级？\n\n```sh\nnpm i -g @lakphy/local-router@latest\n# 或\nbun add -g @lakphy/local-router@latest\n```\n\n### 如何卸载？\n\n```sh\nnpm rm -g @lakphy/local-router\n# 或\nbun remove -g @lakphy/local-router\n```\n","readmeFilename":"README.md"}