{"_id":"@adam903/pvc","_rev":"6-ce6a27ed7ec45b63c220fcc916ae85c0","name":"@adam903/pvc","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@adam903/pvc","version":"1.0.0","keywords":["pvc","version-control","ai","codex"],"author":{"name":"Adam Pukaluk"},"license":"MIT","_id":"@adam903/pvc@1.0.0","maintainers":[{"name":"adam903","email":"pukaluk.adam505@gmail.com"}],"bin":{"pvc":"bin/pvc.js"},"dist":{"shasum":"c67152f3a9652da49691709a62303b1a301c548f","tarball":"https://registry.npmjs.org/@adam903/pvc/-/pvc-1.0.0.tgz","fileCount":5,"integrity":"sha512-XikPgLhtOhrHGmFrjTAlpf0mTKgBi6TTGsrGG5uxsh08QL9gLZnoSg4ccu+5GpxsYI3S1vavssSwBvYvv3KzpA==","signatures":[{"sig":"MEYCIQDwF4TpbMzJCGxs6DErFhDUEVSfDI0fVYkbRchbq83t0gIhAP9YEsxs9QN25YIHsKZmW7ifLpgG4unCrKhNmG0rYMsl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117168526},"main":"src/index.ts","type":"module","gitHead":"3aa696cd4cecb7c4e9be6ad2c445feccd70f621a","scripts":{"build":"bun build.ts","start":"bun src/index.ts","prepare":"husky","build:mac":"bun build ./src/index.ts --compile --target=bun-darwin-x64 --outfile=pvc","build:linux":"bun build ./src/index.ts --compile --target=bun-linux-x64 --outfile=pvc","build:windows":"bun build ./src/index.ts --compile --target=bun-windows-x64 --outfile=pvc.exe"},"_npmUser":{"name":"adam903","email":"pukaluk.adam505@gmail.com"},"_npmVersion":"10.9.2","description":"Prompt Version Control - Track and analyze AI coding sessions","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^17.2.3","prisma":"^6.19.0","@prisma/client":"^6.19.0","socket.io-client":"^4.8.1","@aws-sdk/client-s3":"^3.940.0","@aws-sdk/s3-request-presigner":"^3.940.0","@commitlint/config-conventional":"^20.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.1","prettier":"^3.7.1","@types/node":"^24.10.1","@commitlint/cli":"^20.1.0","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"_npmOperationalInternal":{"tmp":"tmp/pvc_1.0.0_1766687697107_0.5424857417530875","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@adam903/pvc","version":"1.0.1","keywords":["pvc","version-control","ai","codex"],"author":{"name":"Adam Pukaluk"},"license":"MIT","_id":"@adam903/pvc@1.0.1","maintainers":[{"name":"adam903","email":"pukaluk.adam505@gmail.com"}],"bin":{"pvc":"bin/pvc.js"},"dist":{"shasum":"216c35d93b37b08c9cb0f14e1f6450d4f33292f5","tarball":"https://registry.npmjs.org/@adam903/pvc/-/pvc-1.0.1.tgz","fileCount":4,"integrity":"sha512-Ki8hSXXKXF4Y/9K73WJeMO/U3bIBsUgvpbMsVMek4BslbGPWFIPigCX4OKiXaaJ0ruFnCni4vNxF4lvpdANa8g==","signatures":[{"sig":"MEQCIFL0tPTCZg9Lr7uo56rH2qn04hYsw6i/Y9am23nT8TEbAiA+/bp7cPz3Ny6Wvf1QZqMcDnSmMuRD5sM0rLVuxJA7LQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117155063},"type":"module","gitHead":"3aa696cd4cecb7c4e9be6ad2c445feccd70f621a","scripts":{"build":"bun build.ts","start":"bun src/index.ts","build:mac":"bun build ./src/index.ts --compile --target=bun-darwin-x64 --outfile=pvc","build:linux":"bun build ./src/index.ts --compile --target=bun-linux-x64 --outfile=pvc","build:windows":"bun build ./src/index.ts --compile --target=bun-windows-x64 --outfile=pvc.exe"},"_npmUser":{"name":"adam903","email":"pukaluk.adam505@gmail.com"},"_npmVersion":"10.9.2","description":"Prompt Version Control - Track and analyze AI coding sessions","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^17.2.3","prisma":"^6.19.0","@prisma/client":"^6.19.0","socket.io-client":"^4.8.1","@aws-sdk/client-s3":"^3.940.0","@aws-sdk/s3-request-presigner":"^3.940.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.1","prettier":"^3.7.1","@types/node":"^24.10.1","@commitlint/cli":"^20.1.0","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"_npmOperationalInternal":{"tmp":"tmp/pvc_1.0.1_1766687946120_0.4535679355030171","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@adam903/pvc","version":"1.0.2","keywords":["pvc","version-control","ai","codex"],"author":{"name":"Adam Pukaluk"},"license":"MIT","_id":"@adam903/pvc@1.0.2","maintainers":[{"name":"adam903","email":"pukaluk.adam505@gmail.com"}],"bin":{"pvc":"bin/pvc.js"},"dist":{"shasum":"b80d1a5c6028b7a21366fbbbf73e78500e69a0d6","tarball":"https://registry.npmjs.org/@adam903/pvc/-/pvc-1.0.2.tgz","fileCount":3,"integrity":"sha512-QIQq3y6f9z9d37nVadbXb+xQuCoytHhRqjxQEp5HrufLYb1iSpVGXyTVUCmVSFvpGOzrxyOHsbYYYk9Uz47Sfg==","signatures":[{"sig":"MEQCIB1NQveNFRVFEzLwQk0HjeunDaJgYM0gm5Mz2luVeTtKAiAjjJHeZOZzoRN6tnNmuW0lbnugLccIvdUJVCGWDYVVGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2807},"type":"module","gitHead":"3aa696cd4cecb7c4e9be6ad2c445feccd70f621a","scripts":{"build":"bun build.ts","start":"bun src/index.ts","build:mac":"bun build ./src/index.ts --compile --target=bun-darwin-x64 --outfile=pvc","build:linux":"bun build ./src/index.ts --compile --target=bun-linux-x64 --outfile=pvc","build:windows":"bun build ./src/index.ts --compile --target=bun-windows-x64 --outfile=pvc.exe"},"_npmUser":{"name":"adam903","email":"pukaluk.adam505@gmail.com"},"_npmVersion":"10.9.2","description":"Prompt Version Control - Track and analyze AI coding sessions","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^17.2.3","prisma":"^6.19.0","@prisma/client":"^6.19.0","socket.io-client":"^4.8.1","@aws-sdk/client-s3":"^3.940.0","@aws-sdk/s3-request-presigner":"^3.940.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.1","prettier":"^3.7.1","@types/node":"^24.10.1","@commitlint/cli":"^20.1.0","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"_npmOperationalInternal":{"tmp":"tmp/pvc_1.0.2_1766690153816_0.33687695281494956","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@adam903/pvc","version":"1.0.3","_id":"@adam903/pvc@1.0.3","maintainers":[{"name":"adam903","email":"pukaluk.adam505@gmail.com"}],"bin":{"pvc":"bin/pvc.js"},"dist":{"shasum":"db5e719fbb8a2de4205a84d4fd2279dfd12cdf38","tarball":"https://registry.npmjs.org/@adam903/pvc/-/pvc-1.0.3.tgz","fileCount":35,"integrity":"sha512-1Y2anPr9TqXAuX1gj1M2VwEZpzuYtFgkcDdoevXZdaWp4JVHhYIgclxDAaX95pXs/CmpWXiUBmAgdV6PPqnJ1A==","signatures":[{"sig":"MEQCIBEaTCN4u5D7q8Eh8XK8wmlUjrt7cuTompBrQ7kgRIyUAiADwg/4wETi8SXiA7qG+BmbJKFg0NranbtlfifnKr/JiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135415},"type":"module","gitHead":"3aa696cd4cecb7c4e9be6ad2c445feccd70f621a","scripts":{"build":"tsc"},"_npmUser":{"name":"adam903","email":"pukaluk.adam505@gmail.com"},"_npmVersion":"10.9.2","description":"Track and analyze your AI coding sessions with Codex.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^17.2.3","prisma":"^6.19.0","@prisma/client":"^6.19.0","socket.io-client":"^4.8.1","@aws-sdk/client-s3":"^3.940.0","@aws-sdk/s3-request-presigner":"^3.940.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pvc_1.0.3_1766690961690_0.38368541334247697","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@adam903/pvc","version":"1.0.4","_id":"@adam903/pvc@1.0.4","maintainers":[{"name":"adam903","email":"pukaluk.adam505@gmail.com"}],"bin":{"pvc":"bin/pvc.js"},"dist":{"shasum":"2d8a68485b476c944fe79769538d170340624063","tarball":"https://registry.npmjs.org/@adam903/pvc/-/pvc-1.0.4.tgz","fileCount":36,"integrity":"sha512-wnBueBnXYtpHmdOQ+ohSj7Ha+jjzhtvsxAu8s92jBTs6OTiC8OuJokESaBDNi163Nm2jL0a54TatEo7v+B2wTw==","signatures":[{"sig":"MEUCIQCctFWmDoxpMSkCrK/GIio9lMYtghG0eUFNnEeqwBWgogIgSLKSBpeJwb9va7nTwbyHK0KUN0R0Ozn9VGEGoD7nBVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144899},"type":"module","gitHead":"3aa696cd4cecb7c4e9be6ad2c445feccd70f621a","scripts":{"build":"tsc","postinstall":"prisma generate"},"_npmUser":{"name":"adam903","email":"pukaluk.adam505@gmail.com"},"_npmVersion":"10.9.2","description":"Track and analyze your AI coding sessions with Codex.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^17.2.3","prisma":"^6.19.0","@prisma/client":"^6.19.0","socket.io-client":"^4.8.1","@aws-sdk/client-s3":"^3.940.0","@aws-sdk/s3-request-presigner":"^3.940.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pvc_1.0.4_1766691110011_0.8663279412390288","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@adam903/pvc","version":"1.0.5","type":"module","bin":{"pvc":"bin/pvc.js"},"scripts":{"build":"tsc","postinstall":"prisma generate"},"dependencies":{"@aws-sdk/client-s3":"^3.940.0","@aws-sdk/s3-request-presigner":"^3.940.0","@prisma/client":"^6.19.0","dotenv":"^17.2.3","prisma":"^6.19.0","socket.io-client":"^4.8.1"},"devDependencies":{"typescript":"^5.4.0"},"_id":"@adam903/pvc@1.0.5","gitHead":"3aa696cd4cecb7c4e9be6ad2c445feccd70f621a","description":"**Prompt Version Control (PVC)** is a CLI tool designed to track, analyze, and version control your AI coding sessions. It captures user prompts, assistant responses, and file edits, creating detailed reports to help you audit and improve your AI-assisted","_nodeVersion":"24.7.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-+7ahlFKcST2/92Gm94EV7s8dWXxwMLOJBLPihresOq4uAnRv1fCPAFBhIPvMkFyerVA9kn6qGhCFwbL0D/nn8g==","shasum":"26664f3d4eaa9cc47ccde5f2fe7489327741bdbc","tarball":"https://registry.npmjs.org/@adam903/pvc/-/pvc-1.0.5.tgz","fileCount":36,"unpackedSize":146417,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCz5/d5Du41cq8cE2SfHDeUcOiwrQTkuiTW3UV4NGSFIQIgRv7353hZW8qx7kC/fJch4tsCKIIXZQAsT++QPznIxbo="}]},"_npmUser":{"name":"adam903","email":"pukaluk.adam505@gmail.com"},"directories":{},"maintainers":[{"name":"adam903","email":"pukaluk.adam505@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pvc_1.0.5_1766691786759_0.16311712552721946"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-25T18:34:57.037Z","modified":"2025-12-25T19:43:07.134Z","1.0.0":"2025-12-25T18:34:58.269Z","1.0.1":"2025-12-25T18:39:07.281Z","1.0.2":"2025-12-25T19:15:53.959Z","1.0.3":"2025-12-25T19:29:21.863Z","1.0.4":"2025-12-25T19:31:50.142Z","1.0.5":"2025-12-25T19:43:06.919Z"},"description":"**Prompt Version Control (PVC)** is a CLI tool designed to track, analyze, and version control your AI coding sessions. It captures user prompts, assistant responses, and file edits, creating detailed reports to help you audit and improve your AI-assisted","maintainers":[{"name":"adam903","email":"pukaluk.adam505@gmail.com"}],"readme":"# PVC - Prompt Version Control (![Version](https://img.shields.io/npm/v/@adam903/pvc))\n\n**Prompt Version Control (PVC)** is a CLI tool designed to track, analyze, and version control your AI coding sessions. It captures user prompts, assistant responses, and file edits, creating detailed reports to help you audit and improve your AI-assisted workflow.\n\n## 📦 Installation\n\n```bash\nnpm install -g @adam903/pvc\n```\n\n> **Note:** Requires a valid `prisma` setup. The installer will automatically run `prisma generate` to prepare the database client.\n\n## 🚀 Getting Started\n\n### 1. Global Authentication\nLog in once to authenticate. PVC uses SSH key challenge-response for secure authentication. Your session is stored globally, so you don't need to login for every project.\n\n```bash\npvc login --ssh\n```\n\n### 2. Initialize a Project\nNavigate to your project root and initialize PVC. This creates a `.pvc` directory and local configuration.\n\n```bash\ncd my-project\npvc init\n```\n\n### 3. Link Remote Workspace\nConnect your local project to a remote PVC workspace to enable syncing.\n\n```bash\npvc remote add <workspace-url>\n```\n\n## 🛠️ Core Commands\n\n### `pvc watch`\nThe heart of PVC. Starts a process that monitors your local AI session logs (e.g., from an IDE extension). It detects:\n- **Prompts & Responses**: What you asked and what the AI answered.\n- **File Edits**: Changes made to your codebase.\n- **Security Risks**: fast scans for leaked secrets in prompts or files.\n\n```bash\npvc watch\n# Or watch a specific session\npvc watch --session=<session-id>\n```\n\n\n### `pvc update-conv`\nUpdates the local configuration with the ID of the most recent AI session found in your logs.\n\n```bash\npvc update-conv\n```\n\n## ⚙️ Configuration\n\nPVC uses a tiered configuration system:\n\n1.  **Global Config**: Stores authentication tokens (`userId`, `sessionToken`).\n    *   Windows: `%APPDATA%\\pvc\\config.json`\n    *   macOS/Linux: `~/.pvc/config.json`\n2.  **Local Config**: Stores project specifics (`workspaceId`, `remoteUrl`).\n    *   Path: `./.pvc/config.json`\n\n## 🛡️ Security\n\nPVC includes a built-in risk analyzer that checks for:\n*   **Secrets**: API keys, tokens, passwords (using Gitleaks rules).\n*   **Sensitive Files**: Uploading `.env` or certificates to the AI context.\n\nBlocked prompts are logged locally and prevented from being sent if configured.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}