{"_id":"@ai-standards/vsmcp-core","_rev":"4-37ad7c00a2f35ba17570abdf195ffe06","name":"@ai-standards/vsmcp-core","dist-tags":{"latest":"0.9.2"},"versions":{"0.1.0":{"name":"@ai-standards/vsmcp-core","version":"0.1.0","keywords":["vscode","mcp","model-context-protocol","typescript","ai"],"author":"","license":"MIT","_id":"@ai-standards/vsmcp-core@0.1.0","maintainers":[{"name":"forrestlyman","email":"forrestswork@gmail.com"}],"homepage":"https://github.com/ai-standards/vsmcp-core#readme","bugs":{"url":"https://github.com/ai-standards/vsmcp-core/issues"},"dist":{"shasum":"26b1724f11ff0ec055d2e63f2ad7824d9ed31f5a","tarball":"https://registry.npmjs.org/@ai-standards/vsmcp-core/-/vsmcp-core-0.1.0.tgz","fileCount":11,"integrity":"sha512-0KnEKKfrhq3xb3WY79cFOc2FEPZbB2jYsprPZbfxgQ+yI1ZGD7kpAF/b9i7RXTg3AwINdovh1YioX+isO+EK2w==","signatures":[{"sig":"MEUCIQDb34bn6+rtqoQhtnn5Lys4btabE/RRllK73bhCwM8PpAIgEMrAG3yDMhIxhJgb0VuNZj4bosRFkU5Znlff2wZ4stQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10098},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./platform":{"types":"./dist/lib/platform.d.ts","import":"./dist/lib/platform.js"}},"gitHead":"55dd7fa11bfb3749eeb606bbe71c60ea527eb6b0","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:run":"vitest run","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"forrestlyman","email":"forrestswork@gmail.com"},"repository":{"url":"git+https://github.com/ai-standards/vsmcp-core.git","type":"git"},"_npmVersion":"11.5.1","description":"VS Code Model Context Protocol Core","directories":{},"_nodeVersion":"24.5.0","dependencies":{"openai":"^4.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.0.0","tsx":"^3.14.0","glob":"^11.0.3","eslint":"^8.49.0","vitest":"^1.0.0","prettier":"^3.0.3","ts-morph":"^27.0.0","typescript":"^5.9.3","@types/node":"^20.8.0","@types/vscode":"^1.84.0","@vitest/coverage-v8":"^1.0.0","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"_npmOperationalInternal":{"tmp":"tmp/vsmcp-core_0.1.0_1760016293899_0.7893391823873603","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@ai-standards/vsmcp-core","version":"0.9.0","keywords":["vscode","mcp","model-context-protocol","typescript","ai"],"author":"","license":"MIT","_id":"@ai-standards/vsmcp-core@0.9.0","maintainers":[{"name":"forrestlyman","email":"forrestswork@gmail.com"}],"homepage":"https://github.com/ai-standards/vsmcp-core#readme","bugs":{"url":"https://github.com/ai-standards/vsmcp-core/issues"},"dist":{"shasum":"adbf03ede8fc4fa8ef72c60064d29de62c686703","tarball":"https://registry.npmjs.org/@ai-standards/vsmcp-core/-/vsmcp-core-0.9.0.tgz","fileCount":14,"integrity":"sha512-tFilTFlThxHIu4FSSywuHrWKHSGD2qepV2nvt4GwIBbqw/ARQTqC5kUH2tnPiipSLqmXyoR6B+tAYzzgZB6cnw==","signatures":[{"sig":"MEUCIQD7mfU7QKN2us19qvj6kdKK9FMbdqOICINQMMoy4/V1mwIgRAVpb7diGDw1KAl1L14Rh+ma3ulwapwd0a3EYiDRe3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11096},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./platform":{"types":"./dist/lib/platform.d.ts","import":"./dist/lib/platform.js"}},"gitHead":"55dd7fa11bfb3749eeb606bbe71c60ea527eb6b0","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsc && npm run build:compat","clean":"rm -rf dist dist-cjs","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:run":"vitest run","type-check":"tsc --noEmit","build:compat":"npm run build:platform-compat","test:coverage":"vitest run --coverage","build:platform-compat":"echo 'export * from \"../dist/lib/platform.js\";' > platform/index.js && echo 'export * from \"../dist/lib/platform.js\";' > platform/index.d.ts"},"_npmUser":{"name":"forrestlyman","email":"forrestswork@gmail.com"},"repository":{"url":"git+https://github.com/ai-standards/vsmcp-core.git","type":"git"},"_npmVersion":"11.5.1","description":"VS Code Model Context Protocol Core","directories":{},"_nodeVersion":"24.5.0","dependencies":{"openai":"^4.56.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"platform":["./dist/lib/platform.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.0.0","tsx":"^3.14.0","glob":"^11.0.3","eslint":"^8.49.0","vitest":"^1.0.0","prettier":"^3.0.3","ts-morph":"^27.0.0","typescript":"^5.9.3","@types/node":"^20.8.0","@types/vscode":"^1.84.0","@vitest/coverage-v8":"^1.0.0","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"_npmOperationalInternal":{"tmp":"tmp/vsmcp-core_0.9.0_1760017590061_0.43670829264184086","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@ai-standards/vsmcp-core","version":"0.9.1","keywords":["vscode","mcp","model-context-protocol","typescript","ai"],"author":"","license":"MIT","_id":"@ai-standards/vsmcp-core@0.9.1","maintainers":[{"name":"forrestlyman","email":"forrestswork@gmail.com"}],"homepage":"https://github.com/ai-standards/vsmcp-core#readme","bugs":{"url":"https://github.com/ai-standards/vsmcp-core/issues"},"dist":{"shasum":"8ca0e6adee7d4a9591457b46b1a7985079b54aec","tarball":"https://registry.npmjs.org/@ai-standards/vsmcp-core/-/vsmcp-core-0.9.1.tgz","fileCount":14,"integrity":"sha512-WvlcimnbtaRVeOXcAJOisB6dVD4muIz9uSVb2gwcKqLXTyYnZuK6EDnZhe0xgknhldOS2CEFVMulcYVH0DYWmQ==","signatures":[{"sig":"MEQCIB2xURwqwH5nyLphMYH7tTyAPryH3QofCEmIAB+OfQfAAiANfKGBYJ1s6lbc9oPTV7LFigwzgPCbuyfcRcyfsyAllg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10926},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./platform":{"types":"./dist/lib/platform.d.ts","import":"./dist/lib/platform.js"}},"gitHead":"55dd7fa11bfb3749eeb606bbe71c60ea527eb6b0","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsc && npm run build:compat","clean":"rm -rf dist dist-cjs","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:run":"vitest run","type-check":"tsc --noEmit","build:compat":"npm run build:platform-compat","test:coverage":"vitest run --coverage","build:platform-compat":"echo 'export * from \"../dist/lib/platform.js\";' > platform/index.js && echo 'export * from \"../dist/lib/platform.js\";' > platform/index.d.ts"},"_npmUser":{"name":"forrestlyman","email":"forrestswork@gmail.com"},"repository":{"url":"git+https://github.com/ai-standards/vsmcp-core.git","type":"git"},"_npmVersion":"11.5.1","description":"VS Code Model Context Protocol Core","directories":{},"_nodeVersion":"24.5.0","dependencies":{"openai":"^4.56.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"platform":["./dist/lib/platform.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.0.0","tsx":"^3.14.0","glob":"^11.0.3","eslint":"^8.49.0","vitest":"^1.0.0","prettier":"^3.0.3","ts-morph":"^27.0.0","typescript":"^5.9.3","@types/node":"^20.8.0","@types/vscode":"^1.84.0","@vitest/coverage-v8":"^1.0.0","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"_npmOperationalInternal":{"tmp":"tmp/vsmcp-core_0.9.1_1760017983371_0.5116305609693015","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@ai-standards/vsmcp-core","version":"0.9.2","description":"VS Code Model Context Protocol Core","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./platform":{"import":"./dist/lib/platform.js","types":"./dist/lib/platform.d.ts"}},"typesVersions":{"*":{"platform":["./dist/lib/platform.d.ts"]}},"scripts":{"build":"tsc && npm run build:compat","build:compat":"npm run build:platform-compat","build:platform-compat":"echo 'export * from \"../dist/lib/platform.js\";' > platform/index.js && echo 'export * from \"../dist/lib/platform.js\";' > platform/index.d.ts","dev":"tsx watch src/index.ts","start":"node dist/index.js","clean":"rm -rf dist dist-cjs","type-check":"tsc --noEmit","lint":"eslint src/**/*.ts","format":"prettier --write src/**/*.ts","test":"vitest","test:run":"vitest run","test:coverage":"vitest run --coverage"},"keywords":["vscode","mcp","model-context-protocol","typescript","ai"],"author":"","license":"MIT","engines":{"node":">=18.0.0"},"dependencies":{"openai":"^4.56.0"},"devDependencies":{"@types/node":"^20.8.0","@types/vscode":"^1.84.0","@typescript-eslint/eslint-plugin":"^6.7.0","@typescript-eslint/parser":"^6.7.0","@vitest/coverage-v8":"^1.0.0","eslint":"^8.49.0","glob":"^11.0.3","ora":"^9.0.0","prettier":"^3.0.3","ts-morph":"^27.0.0","tsx":"^3.14.0","typescript":"^5.9.3","vitest":"^1.0.0"},"repository":{"type":"git","url":"git+https://github.com/ai-standards/vsmcp-core.git"},"bugs":{"url":"https://github.com/ai-standards/vsmcp-core/issues"},"homepage":"https://github.com/ai-standards/vsmcp-core#readme","publishConfig":{"access":"public"},"_id":"@ai-standards/vsmcp-core@0.9.2","gitHead":"291587e940b7aabe4ef3e5af6238b51fe94fac12","_nodeVersion":"24.5.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-67tMu7c0OcNgaevzThcw9ODTWictBmHVjZ8r3naYnb1l2iHFhSER9qN1L6bfoVOKH96i/TFogTEQVHRrWlDU8w==","shasum":"0366045d49a8be310d927630415fb8b2a5c75e84","tarball":"https://registry.npmjs.org/@ai-standards/vsmcp-core/-/vsmcp-core-0.9.2.tgz","fileCount":14,"unpackedSize":11696,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDsYbqh2KtpoiTP7LLpJt56Du0Io1DmnNebZ4l/ry6e1wIgDQCFC9C1Kcgi5h9kfbt2Ew7CCVmAXhopqTLWRe+BP3c="}]},"_npmUser":{"name":"forrestlyman","email":"forrestswork@gmail.com"},"directories":{},"maintainers":[{"name":"forrestlyman","email":"forrestswork@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vsmcp-core_0.9.2_1760091331397_0.9921224755862277"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-09T13:24:53.805Z","modified":"2025-10-10T10:15:32.208Z","0.1.0":"2025-10-09T13:24:54.080Z","0.9.0":"2025-10-09T13:46:30.254Z","0.9.1":"2025-10-09T13:53:03.561Z","0.9.2":"2025-10-10T10:15:31.598Z"},"bugs":{"url":"https://github.com/ai-standards/vsmcp-core/issues"},"license":"MIT","homepage":"https://github.com/ai-standards/vsmcp-core#readme","keywords":["vscode","mcp","model-context-protocol","typescript","ai"],"repository":{"type":"git","url":"git+https://github.com/ai-standards/vsmcp-core.git"},"description":"VS Code Model Context Protocol Core","maintainers":[{"name":"forrestlyman","email":"forrestswork@gmail.com"}],"readme":"# VS Code Model Context Protocol Core\n\nA TypeScript library for building VS Code extensions that integrate with the Model Context Protocol (MCP).\n\n## Installation\n\n```bash\nnpm install @ai-standards/vsmcp-core\n```\n\n## Compatibility\n\nWorks with all TypeScript module resolution strategies:\n- ✅ **Legacy** (`\"moduleResolution\": \"node\"`) - Default TypeScript setting\n- ✅ **Modern** (`\"moduleResolution\": \"bundler\"` or `\"node16\"`) - Latest TypeScript\n- ✅ **ESM and CommonJS** - Universal compatibility\n\nNo `tsconfig.json` changes required!\n\n## Platform API\n\nAccess VS Code APIs with type safety and testability.\n\n### Import\n\n```typescript\nimport { getVsCode, injectVsCode } from '@ai-standards/vsmcp-core/platform';\n```\n\n### Setup in Extension\n\n```typescript\nimport * as vscode from 'vscode';\nimport { injectVsCode } from '@ai-standards/vsmcp-core/platform';\n\nexport function activate(context: vscode.ExtensionContext) {\n    // Inject VS Code API for use throughout your extension\n    injectVsCode(vscode);\n}\n```\n\n### Usage\n\n```typescript\nimport { getVsCode, type VsCodeInstance } from '@ai-standards/vsmcp-core/platform';\n\nfunction showMessage(text: string) {\n    const vscode = getVsCode();\n    if (vscode) {\n        vscode.window.showInformationMessage(text);\n    }\n}\n```\n\n### Testing\n\n```typescript\nimport { useTestPlatform, resetPlatform, type VsCodeInstance } from '@ai-standards/vsmcp-core/platform';\nimport { vi } from 'vitest';\n\nbeforeEach(() => {\n    resetPlatform();\n});\n\nit('should show message', () => {\n    const mockVscode: VsCodeInstance = {\n        workspace: {},\n        window: { showInformationMessage: vi.fn() },\n        commands: {},\n        env: {},\n    };\n    \n    useTestPlatform(mockVscode);\n    \n    showMessage('test');\n    expect(mockVscode.window.showInformationMessage).toHaveBeenCalledWith('test');\n});\n```\n\n## API Reference\n\n### `injectVsCode(vscode: typeof import('vscode')): void`\nInject the VS Code module. Call this in your extension's `activate()` function.\n\n### `getVsCode(): VsCodeInstance | null`\nGet the current VS Code instance. Returns `null` if not available or not injected.\n\n### `useTestPlatform(mock: VsCodeInstance): void`\nReplace VS Code instance with a test mock. For testing only.\n\n### `resetPlatform(): void`\nReset to use the real VS Code instance. For test cleanup.\n\n## Type Safety\n\nAll VS Code API properties are properly typed using `typeof import('vscode')`:\n\n```typescript\nconst vscode = getVsCode();\nif (vscode) {\n    // ✅ Fully typed - IntelliSense and type checking work perfectly\n    vscode.window.showInformationMessage('hello');\n    vscode.workspace.getConfiguration('myExtension');\n    vscode.commands.registerCommand('myCommand', () => {});\n    \n    // Uri utilities also available\n    const fileUri = vscode.Uri.file('/path/to/file');\n    const httpUri = vscode.Uri.parse('https://example.com');\n}\n```\n\n## License\n\nMIT","readmeFilename":"README.md"}