{"_id":"@aarvay/pi-synthetic-provider","_rev":"3-dde921d0ecc6a40ea6a1b60c4b2c405b","name":"@aarvay/pi-synthetic-provider","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.1":{"name":"@aarvay/pi-synthetic-provider","version":"1.0.1","keywords":["extension","llm","pi","pi-package","provider","synthetic"],"author":{"name":"aarvay"},"license":"MIT","_id":"@aarvay/pi-synthetic-provider@1.0.1","maintainers":[{"name":"aarvay","email":"me@aarvay.com"}],"homepage":"https://github.com/aarvay/pi-packs/tree/main/packages/synthetic-provider","bugs":{"url":"https://github.com/aarvay/pi-packs/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"6875da9345ecb6cd3ce4693a40446d073efbd20f","tarball":"https://registry.npmjs.org/@aarvay/pi-synthetic-provider/-/pi-synthetic-provider-1.0.1.tgz","fileCount":3,"integrity":"sha512-OKC/BfPu7vyvfL2qqbDot033jSAUXhGVmNT32WMNCnWJ3Qk7hGyZEBrsT8b/MuQ4W4u3mPvzg5hvKRVaO53l4Q==","signatures":[{"sig":"MEUCIFWsyifDOtbgRAulPCqlFkFj/obEmxdjK/3PrR1M3sWwAiEA2asZAh3rAIudbDI09e8D09/Fd7SUOADpH8BTiXrRhlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11735},"main":"./index.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./index.ts","default":"./index.ts"}},"gitHead":"6741f740d723eea4b622dd872f55516672cf4ada","scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"aarvay","email":"me@aarvay.com"},"repository":{"url":"git+https://github.com/aarvay/pi-packs.git","type":"git","directory":"packages/synthetic-provider"},"_npmVersion":"11.12.1","description":"pi extension for the Synthetic model provider","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5","@earendil-works/pi-coding-agent":"latest"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-synthetic-provider_1.0.1_1780681266091_0.1815362448033806","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aarvay/pi-synthetic-provider","version":"1.1.0","keywords":["extension","llm","pi","pi-package","provider","synthetic"],"author":{"name":"aarvay"},"license":"MIT","_id":"@aarvay/pi-synthetic-provider@1.1.0","maintainers":[{"name":"aarvay","email":"me@aarvay.com"}],"homepage":"https://github.com/aarvay/pi-packs/tree/main/packages/synthetic-provider","bugs":{"url":"https://github.com/aarvay/pi-packs/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"2e78e56a149044179dcbfea32102de3021aba61f","tarball":"https://registry.npmjs.org/@aarvay/pi-synthetic-provider/-/pi-synthetic-provider-1.1.0.tgz","fileCount":3,"integrity":"sha512-N83Q+xh2pxgqoyIJMKzuzR8PWFjnPewmtcfQt6poHaRzqdq4BMSgN/frIxEabCTsdp+cogbUt7PVBxMHiWiKSQ==","signatures":[{"sig":"MEUCICIPNpGMkNVx48oJU+wubTo3D7V1P/KkHCJj4I/1C+USAiEAkghjhjJkB54DaiHvgqZd/vqgm0fKqVeqp3TI+qoUgco=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarvay%2fpi-synthetic-provider@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14613},"main":"./index.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./index.ts","default":"./index.ts"}},"gitHead":"b246c9d6ef1b9b3c8a98e67e14df043edc044bc3","scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5f5ec70d-ac3a-44ee-adf0-9f8f3a62b1de"}},"repository":{"url":"git+https://github.com/aarvay/pi-packs.git","type":"git","directory":"packages/synthetic-provider"},"_npmVersion":"12.0.2","description":"pi extension for the Synthetic model provider","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5","@earendil-works/pi-ai":"^0.84.1","@earendil-works/pi-coding-agent":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-synthetic-provider_1.1.0_1786116359651_0.11308354319058478","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@aarvay/pi-synthetic-provider","version":"1.1.1","description":"pi extension for the Synthetic model provider","keywords":["extension","llm","pi","pi-package","provider","synthetic"],"homepage":"https://github.com/aarvay/pi-packs/tree/main/packages/synthetic-provider","bugs":{"url":"https://github.com/aarvay/pi-packs/issues"},"license":"MIT","author":{"name":"aarvay"},"repository":{"type":"git","url":"git+https://github.com/aarvay/pi-packs.git","directory":"packages/synthetic-provider"},"type":"module","sideEffects":false,"main":"./index.ts","exports":{".":{"types":"./index.ts","default":"./index.ts"}},"publishConfig":{"access":"public"},"scripts":{"typecheck":"tsc --noEmit"},"devDependencies":{"@earendil-works/pi-ai":"^0.84.1","@earendil-works/pi-coding-agent":"latest","typescript":"^5"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"engines":{"bun":">=1.0.0"},"pi":{"extensions":["./index.ts"]},"_id":"@aarvay/pi-synthetic-provider@1.1.1","_integrity":"sha512-0v0WwJ8aWGh03NNJ9hpqtgIlkN9TunaohLNUzeKqa/HSNCGxM3iJBPJdpnw+qmI83YEJ+IZlhPN3jfbJpo1RVw==","_resolved":"/home/runner/work/_temp/changeset-pack-9003729521-1786124478202/packages/aarvay-pi-synthetic-provider-1.1.1.tgz","_from":"file:../../../../_temp/changeset-pack-9003729521-1786124478202/packages/aarvay-pi-synthetic-provider-1.1.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-0v0WwJ8aWGh03NNJ9hpqtgIlkN9TunaohLNUzeKqa/HSNCGxM3iJBPJdpnw+qmI83YEJ+IZlhPN3jfbJpo1RVw==","shasum":"b25406835e62bf77c4889afa97e1592be6178f03","tarball":"https://registry.npmjs.org/@aarvay/pi-synthetic-provider/-/pi-synthetic-provider-1.1.1.tgz","fileCount":3,"unpackedSize":14628,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarvay%2fpi-synthetic-provider@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA0rpKeeuVuHnF2+zkLxBr9GH8S/0AJaqzriRnJJIrVFAiBszIAGSFlyYT6/4GPQVjWMrVN4LymZe8jMfo7MY9sqaQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fcdd63bf-097b-4d72-a142-6d7e862a9123"}},"directories":{},"maintainers":[{"name":"aarvay","email":"me@aarvay.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-synthetic-provider_1.1.1_1786124482386_0.8691131805409147"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-05T17:41:05.893Z","modified":"2026-08-07T17:41:22.860Z","1.0.1":"2026-06-05T17:41:06.216Z","1.1.0":"2026-08-07T15:25:59.790Z","1.1.1":"2026-08-07T17:41:22.528Z"},"bugs":{"url":"https://github.com/aarvay/pi-packs/issues"},"author":{"name":"aarvay"},"license":"MIT","homepage":"https://github.com/aarvay/pi-packs/tree/main/packages/synthetic-provider","keywords":["extension","llm","pi","pi-package","provider","synthetic"],"repository":{"type":"git","url":"git+https://github.com/aarvay/pi-packs.git","directory":"packages/synthetic-provider"},"description":"pi extension for the Synthetic model provider","maintainers":[{"name":"aarvay","email":"me@aarvay.com"}],"readme":"# @aarvay/pi-synthetic-provider\n\npi extension that registers [Synthetic](https://synthetic.new) as a custom model\nprovider.\n\n## Installation\n\nTry it once without installing:\n\n```bash\npi -e npm:@aarvay/pi-synthetic-provider\n```\n\nInstall permanently into your user settings:\n\n```bash\npi install npm:@aarvay/pi-synthetic-provider\n```\n\nOr install into a project (`.pi/settings.json`):\n\n```bash\npi install -l npm:@aarvay/pi-synthetic-provider\n```\n\n## Features\n\n- Registers the four stable `syn:*` aliases synchronously at startup — no\n  network calls while pi loads, works fully offline\n- Refreshes the full live catalog (aliases plus direct `hf:*` models) whenever\n  pi refreshes model catalogs: background refresh at startup, opening the\n  `/model` dialog, `/login`, or `pi update --models`\n- Per-model thinking levels derived from Synthetic's advertised reasoning\n  efforts, including `max` on models that support it\n- Tracks per-token pricing for cost estimation\n- Normalizes context overflow errors for automatic compaction and retry\n\n## Authentication\n\nSynthetic requires an API key for inference. pi resolves the key in this priority order:\n\n1. `~/.pi/agent/auth.json` entry:\n   ```json\n   {\n     \"synthetic\": {\n       \"type\": \"api_key\",\n       \"key\": \"syn-...\"\n     }\n   }\n   ```\n2. `SYNTHETIC_API_KEY` environment variable\n\n## Models\n\nThe static aliases are always available:\n\n- `syn:large:text` — Large text model (currently GLM-5.2)\n- `syn:small:text` — Small text model (currently GLM-4.7-Flash)\n- `syn:large:vision` — Large vision model (currently Kimi-K3)\n- `syn:small:vision` — Small vision model (currently Qwen3.6-27B)\n\nAliases automatically route to Synthetic's latest recommended model per\ncategory. After any model refresh, the full live catalog — including direct\n`hf:*` models — appears alongside the aliases. Run `pi update --models` to\nrefresh on demand, or open `/model` in an interactive session.\n\nUse `/model` in pi to select a model.\n\n## Development\n\nTest locally from the repo root without publishing:\n\n```bash\npi -e ./packages/synthetic-provider\n```\n\n## Troubleshooting\n\n**Models not updating:** The live catalog is fetched during pi's model\nrefresh, not at startup. Run `pi update --models`, or check your network:\n\n```bash\ncurl https://api.synthetic.new/openai/v1/models\n```\n\nThe four static aliases remain available even when the API is unreachable.\n\n**API key errors:** Verify your key is set via `echo $SYNTHETIC_API_KEY` or\nconfigured in `~/.pi/agent/auth.json`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}