{"_id":"@anygpt/cody","_rev":"10-ba68d795a5bd9d076b8ba7b034bdae33","name":"@anygpt/cody","dist-tags":{"latest":"2.0.2"},"versions":{"0.3.0":{"name":"@anygpt/cody","version":"0.3.0","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@0.3.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"de77de659871493d1f137261a8c4717011bee919","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-0.3.0.tgz","fileCount":6,"integrity":"sha512-BlvpkyDfD1n/ZDs90TmPYat1SfKVQVV1CAS0zf1QSMfoiL9FWRbjBSgPwKzWE3D/Obi8jX98viHIg+S4RgunLQ==","signatures":[{"sig":"MEUCIQDW7f2eykzke4lFJtTlsvKY71Ke+KNlYf+jJfAKLNa+3AIgfzLzdO68SvuOtNhdMYLK93TcjmWo4DnU+39l29vUXX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91906},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d9ab0b4af30ec4abeb44e34b1f62604e6e9b65f0","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.0","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anygpt/types":"*","@anygpt/openai":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_0.3.0_1759848413293_0.17287975694878654","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@anygpt/cody","version":"0.3.1","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@0.3.1","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"65a3b1856d410dd18e8a1ea518a8c911a3538cb6","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-0.3.1.tgz","fileCount":7,"integrity":"sha512-UQMYFYYIe9Mp3UPbt6pldWhmyBZBygoU38+IJpjkH5QRPZ3AWm8pb65zET/eBV10cpqfE+wwOhDuD3jdjGvR3Q==","signatures":[{"sig":"MEYCIQC4iMdiOp+Nx0k+s/u8eNRmUQeqfJTg9kJC4cPQv0QD+AIhAKgvcd7G7GsyBz+5z8IacoEnMdrbmUsQhimxc/PJ7O+r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132903},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a955f1842debce9a98875d1894cf33cb8a8e109a","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.0","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anygpt/types":"*","@anygpt/openai":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_0.3.1_1759854758653_0.8419559427528673","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@anygpt/cody","version":"0.3.2","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@0.3.2","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"e174f37428e8abb32c520b6c4202a04170a14391","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-0.3.2.tgz","fileCount":7,"integrity":"sha512-ffF6xXIJY0wFXJfCx66QrUeuvqYVxuNAIHbT2RBzyT7HMPFk85Yv/iTuN6KUHEL7EEmLsHwzIpUecOCVYEY7WQ==","signatures":[{"sig":"MEQCICBPMEG9C0qILjeCAkYdMxLkO6BqYeKELkblCwxoUHcAAiBFMfz1Ex0KfwEK1NaY8hce/P7vugoPeeu+gYDnlPPrUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132903},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f40fe10c46f6178790c6c95b55ff24c19f5220c2","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.0","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anygpt/types":"*","@anygpt/openai":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_0.3.2_1759856815579_0.48752304531202184","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@anygpt/cody","version":"0.3.3","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@0.3.3","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"2d9302d60ec941bf45c22ebc9b08ca2b5a952257","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-0.3.3.tgz","fileCount":7,"integrity":"sha512-0qrNrMFsAgga9ZjHL2b3WUD8J540s4eOKKI/eWcuBE+vCZW+I4OCy2oOSrQTzlZ9gQYyi/xOYj1gQAHiH2qSKw==","signatures":[{"sig":"MEYCIQDPKzOcE37lgStChnSh8TLV0J6MWxgOwZRGvZCEDi5vZAIhAJ+b5wb2chF2IxQVCU9xfaz4rsT0TGZUru2VTL0+hxzY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133678},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8221e3044084a17ad70bb3e945a7a75ad568cf11","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.0","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anygpt/types":"*","@anygpt/openai":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_0.3.3_1759869442803_0.9658141557389996","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@anygpt/cody","version":"0.3.4","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@0.3.4","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"a6389d0c8a41370f896267e1ad9b74959699b003","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-0.3.4.tgz","fileCount":7,"integrity":"sha512-xCVqZoNbVGpGjtv6YVMrBiMuhZZZD6QA6Le7XjgfI97GMbAgdfmWdz+sCfhK5azfpRLXp5g2zPpPOBS0YStNgA==","signatures":[{"sig":"MEYCIQCC6FdIN6vyDx/PY382LV0TDbSZzLGI+hAKxt/PU8unegIhAOlNE2ww7EbWd/3IAchBl4m2aOhU2JpwVqpu107HfD4o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136465},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"459adc4bfe025048b6651c480c93334d18691233","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.0","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anygpt/types":"0.2.0","@anygpt/openai":"0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_0.3.4_1759909935351_0.8973156766848054","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@anygpt/cody","version":"0.3.5","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@0.3.5","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"bfcf9d00c6d782c31348915bb0d46301fccf0895","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-0.3.5.tgz","fileCount":6,"integrity":"sha512-14hDz9efvVOQhyieqmmcZD/3ad5al1vSxa2hkmXOUnxLC+Btt1qS/ZOUW9NfzdC4Kxk0ggVxQvsyXL9HQacwRQ==","signatures":[{"sig":"MEYCIQDyf6BlBdIs1V7ricfwHYc+OyzvTer+N2piEVVvncoOhQIhAKuyWaswlqZeMcT9hgY5PIo29dyFDqWFxsz5iLuPpbQJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95468},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"56db327063ac86c0a1e37f8f97c23d089943ed30","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.0","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anygpt/types":"0.2.0","@anygpt/openai":"0.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_0.3.5_1759934439864_0.965047018957534","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@anygpt/cody","version":"1.0.0","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@1.0.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"0d714574584a0874517bf4963ded3d12342db588","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-1.0.0.tgz","fileCount":7,"integrity":"sha512-9aSKL7ek1FI91HSWUpX+NsAhnudXc81kS/HerXGRHQiuWGX6yZYdolJguVBFfhhgT1TZY9bgSHgUWdOJFnNOTQ==","signatures":[{"sig":"MEUCIQCrpsKB3MIwVOpt/rOcDPggTghIhsd3JUVqHFO26NUMPQIgFw6dD7NVsYID9Ex5Im9YkqIWln+trQKzzeGa19bfxT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136465},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"23f2c0034f0e09fcced1adcc0a354a4bf03bb9ba","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.0","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anygpt/types":"1.0.0","@anygpt/openai":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_1.0.0_1760004029800_0.7021934335315754","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@anygpt/cody","version":"1.1.0","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@1.1.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"c53086a500a881e93bd34a506b233378be9b0d15","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-1.1.0.tgz","fileCount":6,"integrity":"sha512-8K+lBLUQNsY3kyscOexZNV7/YsW41wCN6sZ4IPT/51RAPz452Mnns3eurpd1mYGRtYV0hYlc7vmZYfUZP6v/6Q==","signatures":[{"sig":"MEUCIH+wIseycLHDvVoXiS0oeSulXZxzMNklV5Qm7cbCwNE0AiEAzMtRLsHPCHqjRSLJsTs/aJUVHeFnNneQ3n3+5ikIgTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105420},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a6449019274244c118f478b3c2e182e9a3503d02","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.0","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anygpt/types":"1.1.0","@anygpt/openai":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_1.1.0_1760223003527_0.4768440549909516","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@anygpt/cody","version":"1.2.1","keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","_id":"@anygpt/cody@1.2.1","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"567a2fe474150bfc3ae5ea4a4ce41d2dadb8a62b","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-1.2.1.tgz","fileCount":6,"integrity":"sha512-SdNkHjzi+p2Ai+CKaTtZANGqgfzovx3oP9ovPAsNfzr6+uU53AlqDdOUxGaVAxeA4jisC4Vt0vUboLlHpSggjA==","signatures":[{"sig":"MEYCIQCYwOTW09cakpXj3ivHBHvJPX0Fb5ozGt0qcVp3qw8SkgIhAInRS+Y42FLdL8GkMz5B9xUdncGk5ySYB+Bu0ET7SgP0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112696},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6cd81e0e51813dca22fe3fd30f707d7b42a52e15","_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.6.1","description":"Cody CLI connector for AnyGPT","directories":{},"_nodeVersion":"24.10.0","dependencies":{"@anygpt/types":"1.2.0","@anygpt/openai":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cody_1.2.1_1760436831269_0.05763478487014395","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@anygpt/cody","version":"2.0.2","description":"Cody CLI connector for AnyGPT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@anygpt/types":"2.0.1","@anygpt/openai":"2.0.2","@anygpt/router":"0.6.1"},"keywords":["cody","sourcegraph","ai","llm","connector"],"author":{"name":"AnyGPT Team"},"license":"MIT","publishConfig":{"access":"public"},"gitHead":"694856d0f9aa5bafc05fbf934367a8add2fddb59","_id":"@anygpt/cody@2.0.2","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-BYVtYOZoNFwnFFFBOct12xW10FLCjWg+yIxVSxOFp44QT4uNavgTBjLfxvpNVyFWXhgimWf6QpVK14c4Yg6QEw==","shasum":"df7a6ef61d287a64103be6a720f24316fda7f3d4","tarball":"https://registry.npmjs.org/@anygpt/cody/-/cody-2.0.2.tgz","fileCount":6,"unpackedSize":111052,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFg6jW3F5BAYsAnG0oLY9sK0/MIWEwhG527JlcGbEEyDAiEAnU6OeaFBOqVIdDFpyfLoHM2AM9j2dhb7heEKmRheM9g="}]},"_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"directories":{},"maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cody_2.0.2_1761046519405_0.1278484341320354"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-07T14:46:53.175Z","modified":"2025-10-21T11:35:19.783Z","0.3.0":"2025-10-07T14:46:53.506Z","0.3.1":"2025-10-07T16:32:38.835Z","0.3.2":"2025-10-07T17:06:55.799Z","0.3.3":"2025-10-07T20:37:22.989Z","0.3.4":"2025-10-08T07:52:15.540Z","0.3.5":"2025-10-08T14:40:40.040Z","1.0.0":"2025-10-09T10:00:29.994Z","1.1.0":"2025-10-11T22:50:03.717Z","1.2.1":"2025-10-14T10:13:51.480Z","2.0.2":"2025-10-21T11:35:19.576Z"},"author":{"name":"AnyGPT Team"},"license":"MIT","keywords":["cody","sourcegraph","ai","llm","connector"],"description":"Cody CLI connector for AnyGPT","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"readme":"# @anygpt/cody\n\nSourcegraph Cody connector for AnyGPT with flexible API and CLI modes.\n\n## Features\n\n- 🚀 **Dual-mode** - API (fast) or CLI (feature-rich) with auto-fallback\n- 🔄 **Multiple models** - Claude, GPT-4, Gemini, and more\n- 🎯 **Enterprise ready** - Works with any Sourcegraph instance\n- 🔧 **Auto-config** - Reads from `~/.config/Cody-nodejs/config.json`\n\n## Installation\n\n```bash\nnpm install @anygpt/cody\n```\n\n**Prerequisites:**\n- Access to a Sourcegraph instance with API token\n- **API mode** (default): No CLI installation required\n- **CLI mode**: Requires `@sourcegraph/cody` CLI installed\n\n## Quick Start\n\n```typescript\nimport { createCodyConnector } from '@anygpt/cody';\n\n// Auto-reads from ~/.config/Cody-nodejs/config.json\nconst connector = await createCodyConnector();\n\nconst response = await connector.chatCompletion({\n  model: 'anthropic::2024-10-22::claude-3-5-sonnet-latest',\n  messages: [{ role: 'user', content: 'Hello, Cody!' }]\n});\n```\n\n### With Configuration\n\n```typescript\nconst connector = await createCodyConnector({\n  connectionMode: 'api',  // 'api' | 'cli' | 'auto'\n  endpoint: 'https://sourcegraph.example.com/',\n  accessToken: process.env.SRC_ACCESS_TOKEN\n});\n```\n\n## Connection Modes\n\nChoose between three modes:\n\n| Mode | Speed | Best For |\n|------|-------|----------|\n| **`api`** (default) | ⚡ Fast | Production, CI/CD |\n| **`cli`** | 🐢 Slower | Local dev, debugging |\n| **`auto`** | ⚡ Fast* | Resilient setups |\n\n```typescript\n// API mode (default)\nconst connector = await createCodyConnector({\n  connectionMode: 'api'\n});\n\n// CLI mode (requires Cody CLI installed)\nconst connector = await createCodyConnector({\n  connectionMode: 'cli',\n  showContext: true\n});\n\n// Auto mode (tries API, falls back to CLI)\nconst connector = await createCodyConnector({\n  connectionMode: 'auto'\n});\n```\n\n📖 **[Detailed Mode Documentation](./docs/CONNECTION_MODES.md)**\n\n## Configuration\n\n| Option | Type | Default |\n|--------|------|---------|\n| `connectionMode` | `'api' \\| 'cli' \\| 'auto'` | `'api'` |\n| `endpoint` | `string` | `'https://sourcegraph.com/'` |\n| `accessToken` | `string` | Auto-detected |\n| `timeout` | `number` | `60000` |\n| `model` | `string` | - |\n\n**CLI-specific** (for `cli` and `auto` modes):\n- `cliPath`, `workingDirectory`, `showContext`, `debug`\n\n💡 Auto-reads from `~/.config/Cody-nodejs/config.json`\n\n## Models\n\nModels are dynamically fetched from your Sourcegraph instance:\n\n```typescript\nconst models = await connector.listModels();\n```\n\nCommon models: Claude Sonnet 4, Claude 3.5 Sonnet, GPT-4o, GPT-5, Gemini 2.5 Pro, DeepSeek v3\n\n## Authentication\n\nVia environment variables:\n```bash\nexport SRC_ACCESS_TOKEN=\"sgp_your-token\"\nexport SRC_ENDPOINT=\"https://sourcegraph.example.com/\"\n```\n\nOr in config:\n```typescript\nconst connector = await createCodyConnector({\n  accessToken: 'sgp_your-token',\n  endpoint: 'https://sourcegraph.example.com/'\n});\n```\n\n## Examples\n\nSee [`examples/connection-modes.ts`](./examples/connection-modes.ts) for working examples of all modes.\n\nConfig examples: [`examples/cody.config.ts`](./examples/cody.config.ts)\n\n## Troubleshooting\n\n**CLI mode fails:**\n- Install CLI: `npm install -g @sourcegraph/cody`\n- Verify: `which cody`\n- Auth: `cody auth`\n\n**API mode fails:**\n- Check token: `curl -H \"Authorization: token TOKEN\" https://instance/.api/llm/models`\n- Verify endpoint ends with `/`\n\n**Slow responses:**\n- Use API mode (fastest)\n- Check network latency\n\n📖 **[Detailed Troubleshooting](./docs/CONNECTION_MODES.md#troubleshooting)**\n\n## Documentation\n\n- **[Connection Modes](./docs/CONNECTION_MODES.md)** - Detailed mode comparison and configuration\n- **[Architecture](./docs/ARCHITECTURE.md)** - Technical implementation details\n- **[Examples](./examples/)** - Working code examples\n- **[Changelog](./CHANGELOG.md)** - Version history\n\n## License\n\nMIT\n","readmeFilename":"README.md"}