{"_id":"@atomic-ai/msco-pi-lot","name":"@atomic-ai/msco-pi-lot","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@atomic-ai/msco-pi-lot","version":"0.1.1","description":"Microsoft Copilot provider extension for pi coding agent.","license":"MIT","type":"module","main":"./src/index.ts","exports":"./src/index.ts","pi":{"extensions":["./src/index.ts"]},"scripts":{"test":"vitest --run"},"keywords":["pi","pi-extension","pi-package","microsoft-copilot","copilot-provider","coding-agent","msco","pi-plugin"],"repository":{"type":"git","url":"git+ssh://git@github.com/atomic-reactor/msco-pi-lot.git"},"dependencies":{"dotenv":"^16.6.1","ws":"^8.18.3"},"peerDependencies":{"@mariozechner/pi-ai":"*","@mariozechner/pi-coding-agent":"*"},"devDependencies":{"@types/node":"^24.5.2","typescript":"^5.9.2","vitest":"^3.2.4"},"_id":"@atomic-ai/msco-pi-lot@0.1.1","gitHead":"79fc4aaf43dae957b52ecd11eb00ea29ed9fe5ab","bugs":{"url":"https://github.com/atomic-reactor/msco-pi-lot/issues"},"homepage":"https://github.com/atomic-reactor/msco-pi-lot#readme","_nodeVersion":"20.20.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-WmmsEyhQC8fREQWla9dX1jn90JQGk6SzNK4gkZstiSDDCqDH+VI89t3aFCYAM0I9WI/lcuO3DJnqZ9yOl954FQ==","shasum":"ab60808342f92ee306e3aca87b2cd003c5b602ed","tarball":"https://registry.npmjs.org/@atomic-ai/msco-pi-lot/-/msco-pi-lot-0.1.1.tgz","fileCount":32,"unpackedSize":108344,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDpQFuiwYNTirtlOVWus5sH8RIZVuZftdH//YAJfBrS0gIhAOVnM/9Fh1saNGrdFGaHbG0okHvvv8fpRzNj1a7MNI8N"}]},"_npmUser":{"name":"atomic-mg","email":"matt.gribben@gmail.com"},"directories":{},"maintainers":[{"name":"atomic-mg","email":"matt.gribben@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/msco-pi-lot_0.1.1_1774247416204_0.4621035313216222"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-23T06:30:16.070Z","0.1.1":"2026-03-23T06:30:16.341Z","modified":"2026-03-23T06:30:16.535Z"},"maintainers":[{"name":"atomic-mg","email":"matt.gribben@gmail.com"}],"description":"Microsoft Copilot provider extension for pi coding agent.","homepage":"https://github.com/atomic-reactor/msco-pi-lot#readme","keywords":["pi","pi-extension","pi-package","microsoft-copilot","copilot-provider","coding-agent","msco","pi-plugin"],"repository":{"type":"git","url":"git+ssh://git@github.com/atomic-reactor/msco-pi-lot.git"},"bugs":{"url":"https://github.com/atomic-reactor/msco-pi-lot/issues"},"license":"MIT","readme":"# msco-pi-lot\n\nMicrosoft Copilot provider extension for `pi`.\n\n<img width=\"1094\" height=\"1200\" alt=\"image\" src=\"https://github.com/user-attachments/assets/fb12fb42-bc43-4e18-b77d-4f1d27ababe1\" />\n\n\n## Install\n\nInstall directly from GitHub:\n\n```bash\npi install https://github.com/atomic-reactor/msco-pi-lot\n```\n\nYou can also pin a ref:\n\n```bash\npi install https://github.com/atomic-reactor/msco-pi-lot@main\n```\n\nAfter install, restart `pi` and select the `microsoft-copilot/copilot` model.\n\nFor interactive use, log in once from inside `pi`:\n\n```text\n/login microsoft-copilot\n```\n\nPaste your Microsoft Copilot access token when prompted. `pi` stores the credential in `~/.pi/agent/auth.json`. You can remove it later with:\n\n```text\n/logout microsoft-copilot\n```\n\n## Configuration\n\nInteractive login only supports pasting an access token. For headless or non-interactive use, you can still set Copilot credentials in your shell or in a local `.env` file next to the installed package:\n\n```dotenv\nMICROSOFT_COPILOT_ACCESS_TOKEN=\nMICROSOFT_COPILOT_COOKIE=\nMICROSOFT_COPILOT_CONVERSATION_ID=\nMICROSOFT_COPILOT_CLIENT_SESSION_ID=\nMICROSOFT_COPILOT_MODE=reasoning\nMICROSOFT_COPILOT_TRACE=0\nMICROSOFT_COPILOT_TRACE_FILE=logs/copilot-session.ndjson\n```\n\nLegacy `COPILOT_*` variable names are still accepted.\n\nOnly `MICROSOFT_COPILOT_ACCESS_TOKEN` is required. Cookie-based settings remain optional transport tweaks, not a login method.\n\n## Behavior\n\n- Registers one `pi` model: `microsoft-copilot/copilot`\n- Maps `pi` thinking levels to Copilot modes:\n  - `off`, `minimal`, `low` -> `smart`\n  - `medium`, `high`, `xhigh` -> `reasoning`\n- Bootstraps a Copilot conversation over HTTP when needed\n- Persists conversation state per `pi` session\n- Supports local tool use through a prompt-mediated tool loop\n- Uses Copilot server config to size prompts conservatively against the live `maxTextMessageLength`\n\n## Known Issues\n\n- This is still a basic integration. It gets Microsoft Copilot working inside `pi`, but it is not yet on par with a full agentic coding agent.\n- Microsoft Copilot will sometimes fail to respond at all. In those cases the request may stall or end without a useful answer, and retrying is often the only workaround.\n- Microsoft Copilot will sometimes behave as if it is running in a browser context. When that happens it may try to inspect browser tabs or page state that do not exist in `pi`, which can cause the response to stall or go off track.\n\n## Development\n\nInstall dependencies:\n\n```bash\nnpm install\n```\n\nRun tests:\n\n```bash\nnpm test\n```\n\nFor local extension loading during development:\n\n```bash\npi -e ./src/index.ts\n```\n\n## Tracing\n\nEnable websocket and bootstrap tracing with:\n\n```dotenv\nMICROSOFT_COPILOT_TRACE=1\nMICROSOFT_COPILOT_TRACE_FILE=logs/copilot-session.ndjson\n```\n\nTrace output is masked, but you should still treat it as sensitive and keep it out of git.\n","readmeFilename":"README.md","_rev":"1-2d064a8c49b41b0fc7d100bc402dc617"}