{"_id":"@aiti-ai/pi-models-respect","name":"@aiti-ai/pi-models-respect","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.2":{"name":"@aiti-ai/pi-models-respect","version":"0.1.2","description":"Keep your model list tidy: for providers with an explicit models list in models.json, only those models stay visible. A pi package.","keywords":["pi","pi-package","pi-extension","pi-coding-agent","model-filter","models"],"license":"MIT","type":"module","exports":{".":"./src/index.ts"},"publishConfig":{"access":"public"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"pi":{"extensions":["./src/index.ts"]},"gitHead":"68ed0440b1f7fb2b96fa499a1a2d96c5adf23138","_id":"@aiti-ai/pi-models-respect@0.1.2","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-MgEt6+SbGJ9aoS0MO9ts8a07HNSI6gL0pdKHj96OBDhOBYSEf/Fd8Nvf6VxsYEPBgVRrluweqREo1lh91GXsOA==","shasum":"da92cb7593639779f655122eb3fc9f45c10645cf","tarball":"https://registry.npmjs.org/@aiti-ai/pi-models-respect/-/pi-models-respect-0.1.2.tgz","fileCount":5,"unpackedSize":11746,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDRkT4BDISk+LVw0Q7QaNo+shXyyJki3g6UkRKtAAAZGgIhAL9bk4Ujf4VMi9/1/qMSQKZRxHqIMnEtHsZ9XEO/wcX5"}]},"_npmUser":{"name":"nightwend","email":"nightwend@163.com"},"directories":{},"maintainers":[{"name":"nightwend","email":"nightwend@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-models-respect_0.1.2_1787222414584_0.24041996118005038"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-20T10:40:14.387Z","0.1.2":"2026-08-20T10:40:14.749Z","modified":"2026-08-20T10:40:15.017Z"},"maintainers":[{"name":"nightwend","email":"nightwend@163.com"}],"description":"Keep your model list tidy: for providers with an explicit models list in models.json, only those models stay visible. A pi package.","keywords":["pi","pi-package","pi-extension","pi-coding-agent","model-filter","models"],"license":"MIT","readme":"# pi-models-respect\n\n一个让模型列表保持整洁的 [pi 包](https://pi.dev/packages)。\n\n对于你在 `models.json` 里显式配置了 `models` 列表的 provider，只有你配置的\n模型保持可见——内置 catalog 里那一大堆模型（比如 openrouter 的全量目录）\n会安静地退到一边。\n\n不会删除任何东西：provider 定义、模型定义、凭据都原样保留。本包只影响\npi 的模型视图中*显示哪些*模型。\n\n> 🇬🇧 English version: [README.md](./README.md)\n\n## 为什么需要它\n\npi 的 `models.json` 是追加式语义：内置 provider 保留完整 catalog，你显式配置\n的 `models` 条目在其上合并。所以像 openrouter 这类 provider，即使你只配置了\n几个模型，也会显示 300 多个内置模型。单靠 `models.json` 无法缩减这个列表。\n\n这个包在不改变 pi 解析 provider 方式的前提下补上了这个缺口。\n\n## 安装\n\n```sh\npi install npm:@aiti-ai/pi-models-respect\n```\n\n或者直接指向本仓库：\n\n```sh\npi install git:github.com/aiti-ai/pi-models-respect\n```\n\n## 工作原理\n\n扩展包住了 `ModelRuntime` 和 `ModelRegistry` 上的模型查询入口\n（`getModels`、`getAvailable`、`getAvailableSnapshot`、`getAll`、`find`）。\n对于每个在 `~/.pi/agent/models.json` 里显式配置了 `models` 列表的 provider，\n只有这些显式配置的模型 id 保持可见。没有显式 `models` 列表的 provider\n（比如依赖内置 catalog 的 sensenova）完全不受影响。\n\n白名单 100% 从 `models.json` 生成（按文件 mtime 自动重读）。用你的模型向导\n增删模型后，下一次查询即反映——无需改扩展、无需重启。\n\n## 示例\n\n`~/.pi/agent/models.json` 里这样配置：\n\n```json\n{\n  \"providers\": {\n    \"openrouter\": {\n      \"baseUrl\": \"https://openrouter.ai/api/v1\",\n      \"api\": \"openai-completions\",\n      \"models\": [\n        { \"id\": \"z-ai/glm-5.2:free\" },\n        { \"id\": \"openai/gpt-oss-20b:free\" }\n      ]\n    }\n  }\n}\n```\n\nopenrouter 下只有 `z-ai/glm-5.2:free` 和 `openai/gpt-oss-20b:free` 保持可见——\n其余内置 catalog 从模型选择、`modelRegistry.getAll()`、`modelRegistry.getAvailable()`\n和 `modelRegistry.find()` 中隐藏。\n\n## 配置\n\n没有独立配置文件。白名单完全跟随 `models.json`。\n\n## 依赖要求\n\n- pi（编码 agent）——本包是 pi 扩展\n- `~/.pi/agent/models.json` 中对你想要精简的 provider 配置了显式 `models` 列表\n\n## License\n\nMIT\n","readmeFilename":"README.zh-CN.md","_rev":"1-b761cc2378f4a6870a5629bce07a82c2"}