{"_id":"@agent-ix/ts-plugin-kit","_rev":"4-ce6a76efe3a4b18ba69ec3317ee1b5ba","name":"@agent-ix/ts-plugin-kit","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@agent-ix/ts-plugin-kit","version":"0.1.0","license":"MIT","_id":"@agent-ix/ts-plugin-kit@0.1.0","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ts-plugin-kit#readme","bugs":{"url":"https://github.com/agent-ix/ts-plugin-kit/issues"},"dist":{"shasum":"463b82d85159e70a53f7182b113c6057aa9876e5","tarball":"https://registry.npmjs.org/@agent-ix/ts-plugin-kit/-/ts-plugin-kit-0.1.0.tgz","fileCount":18,"integrity":"sha512-9Dc9Zobb2HwAVbMu+pwy9ai85hh0UXgmadT+l+WeQludKbgtZX4Fc4jEVGVMsaElIjuVXlLnObgcNiDeHuz6Zg==","signatures":[{"sig":"MEYCIQCblaASlTMmFqd5L6WkVIu1XeKkaPR4fQ788YYAhnIqlwIhANxC7bJck74tqx/1mH7+8LuSxgBQPCNPPqAKjHDhY40R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26061},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"3566857a5d20bf15b0cea85501fbd33c603b1105","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ts-plugin-kit --registry http://npm.ix/ || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","docker:build":"docker build -t ghcr.io/agent-ix/ts-plugin-kit .","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm update --latest"},"_npmUser":{"name":"agent-ix","email":"peter@agent-ix.ai"},"repository":{"url":"git+https://github.com/agent-ix/ts-plugin-kit.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic plugin/marketplace toolkit: typed git/npm sources, ref/sha pinning, install registry, and default-set reconciliation.","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"add":"^2.0.6","pnpm":"^11.5.2","vite":"^8.0.16","eslint":"^10.4.1","vitest":"^4.1.8","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.2","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-plugin-kit_0.1.0_1781880518991_0.3329353961089905","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@agent-ix/ts-plugin-kit","version":"0.1.1","license":"MIT","_id":"@agent-ix/ts-plugin-kit@0.1.1","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ts-plugin-kit#readme","bugs":{"url":"https://github.com/agent-ix/ts-plugin-kit/issues"},"dist":{"shasum":"205fa4e781f48532162a9e989a436a26308c53cc","tarball":"https://registry.npmjs.org/@agent-ix/ts-plugin-kit/-/ts-plugin-kit-0.1.1.tgz","fileCount":18,"integrity":"sha512-QKRPscgADOaoivgAJn6FbCHPa+LoRk/9m6Zmmj271pk1LRj0aHtwp1jo5XNm6qbKdzZ7/oiz6Mj2DIqgoJTyew==","signatures":[{"sig":"MEMCHzI+Z3+zZqB/tT+rlyLHAd0qf0qIEF3JU8achyOnIlwCIGd/PihmeLVwud4SKR9+dnjWqz0aI13P3MMCOFwwzrIU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26061},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"3566857a5d20bf15b0cea85501fbd33c603b1105","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ts-plugin-kit --registry http://npm.ix/ || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","docker:build":"docker build -t ghcr.io/agent-ix/ts-plugin-kit .","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm update --latest"},"_npmUser":{"name":"agent-ix","email":"peter@agent-ix.ai"},"repository":{"url":"git+https://github.com/agent-ix/ts-plugin-kit.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic plugin/marketplace toolkit: typed git/npm sources, ref/sha pinning, install registry, and default-set reconciliation.","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"add":"^2.0.6","pnpm":"^11.5.2","vite":"^8.0.16","eslint":"^10.4.1","vitest":"^4.1.8","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.2","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-plugin-kit_0.1.1_1781880729265_0.7398717345742236","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@agent-ix/ts-plugin-kit","version":"0.1.3","license":"MIT","_id":"@agent-ix/ts-plugin-kit@0.1.3","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ts-plugin-kit#readme","bugs":{"url":"https://github.com/agent-ix/ts-plugin-kit/issues"},"dist":{"shasum":"31b80ef4b1fe6c4e7b4e71333b3f7800d461a8cc","tarball":"https://registry.npmjs.org/@agent-ix/ts-plugin-kit/-/ts-plugin-kit-0.1.3.tgz","fileCount":18,"integrity":"sha512-tHBt0LEX/J69vCmW3gr8ppxkDsZAvWERIQ6mvD4ztIHTMqfU+4dM+Tv2Cs6PZ7Pzm9sgs1Qzjb2L+seyto6u/A==","signatures":[{"sig":"MEUCIQCzIUGUyoHTpvgl00ILSNDdpqy48/UE2VI1FYc96Tj4rwIgLAgbRHUbGp69KjTazmX/Zok8tzNmyPScnCtm5TDAK7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26161},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"3257080944e17a223c73111453e2ef221a5c4c55","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ts-plugin-kit --registry http://npm.ix/ || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","docker:build":"docker build -t ghcr.io/agent-ix/ts-plugin-kit .","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm update --latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:073ceb34-4c31-4254-a6e0-3c47ef937cdf"}},"repository":{"url":"git+https://github.com/agent-ix/ts-plugin-kit.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework-agnostic plugin/marketplace toolkit: typed git/npm sources, ref/sha pinning, install registry, and default-set reconciliation.","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"add":"^2.0.6","pnpm":"^11.5.2","vite":"^8.0.16","eslint":"^10.4.1","vitest":"^4.1.8","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.2","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/ts-plugin-kit_0.1.3_1781911825732_0.964424683710895","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agent-ix/ts-plugin-kit","description":"Framework-agnostic plugin/marketplace toolkit: typed git/npm sources, ref/sha pinning, install registry, and default-set reconciliation.","version":"0.2.0","license":"MIT","type":"module","main":"dist/index.js","packageManager":"pnpm@10.33.4","scripts":{"help":"node scripts/help.js","test":"vitest run","test:coverage":"vitest run --coverage","test:json":"vitest run --reporter=json --outputFile=report.json || true","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","format":"prettier --write .","format:check":"prettier --check .","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","install:frozen":"pnpm install --frozen-lockfile","update-lock":"pnpm install --lockfile-only","version":"node scripts/build-tools.js version","info":"node scripts/build-tools.js info","docker:build":"docker build -t ghcr.io/agent-ix/ts-plugin-kit .","publish:dry-run":"pnpm publish --dry-run","prepublishOnly":"pnpm run build","tags":"npm dist-tag ls @agent-ix/ts-plugin-kit --registry http://npm.ix/ || echo '(package not found or registry unavailable)'","pkg:add":"pnpm add","pkg:add-dev":"pnpm add -D","pkg:update":"pnpm update","pkg:update-latest":"pnpm update --latest","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local"},"devDependencies":{"@types/node":"^25.9.2","@typescript-eslint/eslint-plugin":"^8.60.1","@typescript-eslint/parser":"^8.60.1","@vitest/coverage-v8":"^4.1.8","add":"^2.0.6","eslint":"^10.4.1","eslint-plugin-prettier":"^5.5.6","pnpm":"^11.5.2","prettier":"^3.8.3","ts-node":"^10.9.2","typescript":"^6.0.3","vite":"^8.0.16","vite-plugin-dts":"^5.0.2","vitest":"^4.1.8"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"repository":{"type":"git","url":"git+https://github.com/agent-ix/ts-plugin-kit.git"},"gitHead":"04693fced7e76c88516505d46b7310ff872fc4c2","types":"./dist/index.d.ts","_id":"@agent-ix/ts-plugin-kit@0.2.0","bugs":{"url":"https://github.com/agent-ix/ts-plugin-kit/issues"},"homepage":"https://github.com/agent-ix/ts-plugin-kit#readme","_nodeVersion":"22.23.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-ujqG/CnzyGxP1AAbqutb5OZnDcQbKDjXtPaiZPzLAZv7Kf8NWRA6H5FdHpebJy37vLatG0+tZDO4vjIR19INNw==","shasum":"ec9ad1426efc27cc066c54a08efeee03a88f3d61","tarball":"https://registry.npmjs.org/@agent-ix/ts-plugin-kit/-/ts-plugin-kit-0.2.0.tgz","fileCount":20,"unpackedSize":48733,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCordWAsRYlvthY4mZgILrRnEkyRkKosVwKn7MbUdTKNQIhAI40pLt8EmmnOAKlv14qAZSjDmqreDroDfKKEfLPuSBE"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:073ceb34-4c31-4254-a6e0-3c47ef937cdf"}},"directories":{},"maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ts-plugin-kit_0.2.0_1782673421399_0.23883320920601592"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T14:48:38.731Z","modified":"2026-06-28T19:03:41.624Z","0.1.0":"2026-06-19T14:48:39.129Z","0.1.1":"2026-06-19T14:52:09.411Z","0.1.3":"2026-06-19T23:30:25.874Z","0.2.0":"2026-06-28T19:03:41.529Z"},"bugs":{"url":"https://github.com/agent-ix/ts-plugin-kit/issues"},"license":"MIT","homepage":"https://github.com/agent-ix/ts-plugin-kit#readme","repository":{"type":"git","url":"git+https://github.com/agent-ix/ts-plugin-kit.git"},"description":"Framework-agnostic plugin/marketplace toolkit: typed git/npm sources, ref/sha pinning, install registry, and default-set reconciliation.","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"readme":"# ts-plugin-kit\n\nFramework-agnostic plugin/marketplace toolkit: typed git/npm sources, ref/sha pinning, install registry, and default-set reconciliation. **Zero runtime dependencies.**\n\nIt is the install mechanism shared by Agent-IX CLIs and any other host (the `ix` CLI, `quoin`, a future desktop app). It knows nothing about oclif or any particular plugin payload — a host supplies a `readName` callback and decides what to do with the resolved files.\n\n## Install\n\nPublished on the public npm registry:\n\n```bash\nnpm install @agent-ix/ts-plugin-kit\n```\n\n## Usage\n\n```ts\nimport {\n  reconcile,\n  validateMarketplaceManifest,\n} from \"@agent-ix/ts-plugin-kit\";\n\n// host parses YAML/JSON itself, then validates the object\nconst manifest = validateMarketplaceManifest(parsedYaml);\n\nconst result = reconcile(manifest, {\n  mode: \"lazy\", // install only what's missing/repinned; zero git when settled\n  cacheRoot: \"~/.cache/ix/ts-plugin-kit\",\n  targetRoot: \"~/.ix/filament/modules\", // <name>/ materialized here\n  registryPath: \"~/.ix/filament/registry.json\",\n  readName: (dir) => /* derive a name from the resolved content */ \"...\",\n});\n// result.{installed, unchanged, updated, skipped}\n```\n\nA manifest entry's `source` is one of:\n\n| `type`        | fetches                                              |\n| ------------- | ---------------------------------------------------- |\n| `github`      | `owner/repo` at a `ref`/`sha`                        |\n| `git-subdir`  | one **sparse-checked-out** subdir of a repo at a pin |\n| `git`         | any git URL at a `ref`/`sha`                         |\n| `path`        | a local directory (dev)                              |\n| `url` / `npm` | reserved — resolution not yet implemented            |\n\nAll operations are **synchronous** (git is the only side effect) and pins are recorded as resolved commit shas, so a settled lazy `reconcile` performs no git at all.\n\nIncluded:\n\n- ✅ CI via [`agent-ix/nodejs-actions`](https://github.com/agent-ix/nodejs-actions)\n- 📦 **Local Development** via [PNPM](https://pnpm.io/) + Corepack\n- 🧪 Jest for unit testing (supports coverage, JSON output)\n- 💃 Prettier and ESLint for code quality\n- 🏷 Tag-triggered release workflow with registry support\n- 🔖 Automatic versioning based on Git tags\n\n---\n\n## 🚀 Getting Started\n\nThis project uses **pnpm** with **Corepack** for local development.\n\n### Prerequisites\n\n- Node.js 20+\n- Corepack enabled (`corepack enable`)\n\n### Setup\n\n```bash\n# Install dependencies (uses pnpm version from package.json)\npnpm install\n\n# Build the project\npnpm run build\n\n# Run tests\npnpm run test\n```\n\n---\n\n## 📜 Scripts\n\nAll development commands are defined in `package.json` scripts.\nRun `pnpm run help` or `pnpm run` to see the full list.\n\n### Core Development\n\n| Command           | Description                             |\n| ----------------- | --------------------------------------- |\n| `pnpm run build`  | Compile TypeScript                      |\n| `pnpm test`       | Run tests                               |\n| `pnpm run lint`   | Run ESLint                              |\n| `pnpm run format` | Run Prettier                            |\n| `pnpm run clean`  | Remove build artifacts and node_modules |\n\n### Package Management\n\n| Command                        | Description                              |\n| ------------------------------ | ---------------------------------------- |\n| `pnpm run pkg:add <pkg>`       | Add dependency                           |\n| `pnpm run pkg:add-dev <pkg>`   | Add dev dependency                       |\n| `pnpm run pkg:update`          | Update dependencies                      |\n| `pnpm run pkg:use-local <pkg>` | Link local package via @agent-ix/js-deps |\n\n### Publishing & Docker\n\n| Command                  | Description                                   |\n| ------------------------ | --------------------------------------------- |\n| `pnpm run publish`       | Publish to the public npm registry (upstream) |\n| `pnpm run publish:local` | Publish to local npm.ix registry (via Docker) |\n| `pnpm run docker:build`  | Build release Docker image                    |\n\n---\n\n## 🛠 Makefile\n\nA `Makefile` is provided for backwards compatibility. It delegates all commands to the equivalent `pnpm run` scripts.\n\n```bash\nmake build          # -> pnpm run build\nmake test           # -> pnpm run test\nmake local-publish  # -> pnpm run publish:local\n```\n","readmeFilename":"README.md"}