{"_id":"@fml-inc/panopticon","_rev":"32-f90cc223a6104376d944c534ec8cd4b6","name":"@fml-inc/panopticon","dist-tags":{"latest":"0.2.19"},"versions":{"0.1.0":{"name":"@fml-inc/panopticon","version":"0.1.0","_id":"@fml-inc/panopticon@0.1.0","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"39d71cb2bf7d9a3af13c62e0ac2219174d2a3b5e","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.0.tgz","fileCount":124,"integrity":"sha512-v/HHzGbmMnaLZIWImEu6Amx18b3qcK3k6LX4ZeN35zB/40ydQ+pk0Ka/NN+ru4Y8jsjC8glqQ/badFxj1x4lRQ==","signatures":[{"sig":"MEYCIQDzh0+Edp2tAZd8qGnD0VELTVALLVztaAtHIaFsJSkOKAIhAI89T2qAy/YOHsNkPKqiknwnSgaf382H0ytcnwPvkl+K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1333474},"type":"module","_from":"file:fml-inc-panopticon-0.1.0.tgz","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"gusholcomb","email":"gus@fml.inc"},"_resolved":"/tmp/835649a6129abd8d1b806ba84ac2faeb/fml-inc-panopticon-0.1.0.tgz","_integrity":"sha512-v/HHzGbmMnaLZIWImEu6Amx18b3qcK3k6LX4ZeN35zB/40ydQ+pk0Ka/NN+ru4Y8jsjC8glqQ/badFxj1x4lRQ==","repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"10.9.7","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@sentry/core":"^10.46.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.0_1775494600233_0.09268793818023169","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@fml-inc/panopticon","version":"0.1.1","_id":"@fml-inc/panopticon@0.1.1","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"5f9aaa32a33a18e4690e347f580522ef9a6cd884","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.1.tgz","fileCount":124,"integrity":"sha512-LiXEihrZ/nZ8+DbuaYmIz2AeQEFT2mhuSsb2K4VqFRvWJVMbnuEdD7e5ntUwsyZqTFtiSNwnGi9G65aEctTxkg==","signatures":[{"sig":"MEUCIQCJG/o6QfZa8gDQHqHquDloFAWLwq+jRxIysnWEjkBFHQIgbXhH2/4MdyaduV55uVt2+tp1EPfBk6BM9s6oFjY2OI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1334977},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"29c570bb6bb4c32fe7e28accf0d6535c2a6ab03e","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@sentry/core":"^10.46.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.1_1775496602301_0.748121669054896","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@fml-inc/panopticon","version":"0.1.2","_id":"@fml-inc/panopticon@0.1.2","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"076e3ca18bf3513bad13fcb9b4f3fd0fe88e3002","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.2.tgz","fileCount":124,"integrity":"sha512-3bfrUF3IHZ4fml/dpho1iAaAzSZps67Wc+ni2ZtZd6ysW1Cvc01045p1DmzXXBz/CnX7o0TpYYhILG6IpTt9RA==","signatures":[{"sig":"MEYCIQD81jGfIhEZ/Io2CwHztajuHqzKizZQ4LnFsJYmITuu+QIhALZ2fOW13joUDxLUmlQnxyr7nROa0In4/5NS+2jiqc6H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1351907},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"430c0189b129dcfe774dda11e788d3ca5227538c","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@sentry/core":"^10.46.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.2_1775516085997_0.4004629818862562","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@fml-inc/panopticon","version":"0.1.3","_id":"@fml-inc/panopticon@0.1.3","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"3bfc01da1ee844d2d08aaa59e3ac68a25ca0581e","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.3.tgz","fileCount":124,"integrity":"sha512-Jo96iIMPrQ+URHW4BGsr/z8kHSNFkaHhElMjyK7wnPOdD1bWRUBb8tjfWx4+7ImbhX8jVZ8p45FbgMs33pguMA==","signatures":[{"sig":"MEUCIQDL17BrEw4z3zoaDMcwXti2vhIDOTBXp8k26blYIUtLDgIgLubR11GYmNt700Zo9nQuJLFE7MoHEcnrmJIeWEmDc3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1352887},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"1deea7349f5057777bd8064e1ecc54f11cb6a3ec","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@sentry/core":"^10.46.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.3_1775520661154_0.830022300626478","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@fml-inc/panopticon","version":"0.1.4","_id":"@fml-inc/panopticon@0.1.4","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"0eaf7672aac23fbf958ed928977fabdb112d88b5","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.4.tgz","fileCount":128,"integrity":"sha512-mEC5gf5PZutKPxe2HWDzYpWubDmttLwVOumO5SYlujFiifhPX85x2DPYfJrsJWdBB3VS7TuK5Rrwtnrm/jfz+A==","signatures":[{"sig":"MEUCIQDAHEHbQNi9xYsvbaZ5zdKvQW8O0kvM/G+EMFfKCeKAsgIgWDFlX8b3D35YjH9v3Yf79/n5uzPVgCkKHN2wPzmqAC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3153349},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"390eebd51f1053a53ff54b08ae305f79dfb441a3","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.4_1775589522561_0.7660907696805876","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@fml-inc/panopticon","version":"0.1.5","_id":"@fml-inc/panopticon@0.1.5","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"253bcb0df500fdc4d8a51753e86f958a0250e0ad","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.5.tgz","fileCount":128,"integrity":"sha512-IK9kYm9wmA9N7a9BuhrUZWZMj5rkjghRAiWslv7E4vmwP1H/UyrJWYq3pX48BMNSwB9LG3TFgm0ojzEGlDXCXA==","signatures":[{"sig":"MEUCIQC6gfUZUx4JfxukH2MLGoW5c1GyNx45bQ9sunv4XASrDgIgQodPANme0BxRPzcc1zv9/Z+eA25t6ktDUtOTZt8l2+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3153726},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"5106e87d1385ccdcae4e2cc7c429714dbfa6ec39","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.5_1775600125895_0.7616018258004009","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@fml-inc/panopticon","version":"0.1.6","_id":"@fml-inc/panopticon@0.1.6","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"7804c38a44145f0ed37c554704485934fdb007da","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.6.tgz","fileCount":128,"integrity":"sha512-MSc2ybXi1fOVjPMAa1DMsIvARHU64+I4uYzdGvKaKJViLq0NzLajSx52ghsALzmlTb/dmcHSgFj7sl7TrOZOkA==","signatures":[{"sig":"MEQCIApGlYfNS4X4PJPGrtQr4B/uwJfQlertzyDmu7qFurmcAiBpklv0QxGWHZrlqd6JT9mI2iYA0V0FEhBst80oAEr70Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3153726},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"5106e87d1385ccdcae4e2cc7c429714dbfa6ec39","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.6_1775600447941_0.4986510874510366","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@fml-inc/panopticon","version":"0.1.7","_id":"@fml-inc/panopticon@0.1.7","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"176c16642a53e9c3df37ea762258fa8143090159","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.7.tgz","fileCount":128,"integrity":"sha512-9K4KOxSJactGIHmrWCPCVJcWSkkLuR7Ynm28/2UQJE0rL6R7hLYgTw/kp+u3dKsk7PBQlXxDPn/Z004dQPL/sg==","signatures":[{"sig":"MEYCIQCdV+4Zxyo/8N/eWxpnFrKTwiWRqx3f+oFMxTWMa3yAPwIhAOUx6gIvtXtDO4TK30bxNsYkAndlzqOlK8WMOzx3aJyT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3404387},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"d0ea680ed6bbc9af7a7d9bd320a74b1c2c438499","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.7_1775682905577_0.13445272790885188","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@fml-inc/panopticon","version":"0.1.8","_id":"@fml-inc/panopticon@0.1.8","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"414f8007d9b1db269737097a8c477551b54e728b","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.8.tgz","fileCount":128,"integrity":"sha512-a2hKBgrFRe9JoE+Brjt8RQzLf+0eS0Ovsyc59g4+2iXoa2XnkMUFQKNdTxej9PqOiMWzQyhW/uy6q5uoj4DaNQ==","signatures":[{"sig":"MEYCIQDKZcnD/72oSUZ2yWa6/iqO2QvgEUtG4RiF+avveWVuCgIhAPnPM3e3Zy+e/QbThyrbPQ+3DpqhFaIcrm3/I4/OVyYh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3405580},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"1b5ee000a4736e464793c37cc5956d0567122bc3","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.8_1775686326162_0.7491298702024569","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@fml-inc/panopticon","version":"0.1.9","_id":"@fml-inc/panopticon@0.1.9","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"2386d5cf7e53a56a7e837292e6caa5492409c423","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.1.9.tgz","fileCount":128,"integrity":"sha512-PdfNl/oUS5ZrtovV2YP9cBF4A1dU4eGrOPePUZy5K0BmGP46U3iMzsZQq/8hxLIuEzvP+kj7G5jJ7bZJGCte3g==","signatures":[{"sig":"MEYCIQDL2zsFftbhpTz5o3ILIyzgLgTW8ejLaGsrbibAIbJ4jAIhAJBNDKupVtf3Zcixmp+DLJSy8SCHrKXYGiam2FSn8Npj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3407522},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","lefthook"]},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"816fcc101b6ea8e2cd74b984d1804d3fea5576ae","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^22.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4","@types/better-sqlite3":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.1.9_1775758707142_0.021894697988106726","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@fml-inc/panopticon","version":"0.2.0","_id":"@fml-inc/panopticon@0.2.0","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"0895b2f99611aff7288acfa5ad1bd5d7988d9267","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.0.tgz","fileCount":130,"integrity":"sha512-meAyzpaBuF1uqkBsVLuF1gwngL9i5UeSxtJdmIJOOwPyEcuM9nQjnPGnnpMxaWCiH+GaXIN6cb5OHuu0LNYoqQ==","signatures":[{"sig":"MEQCICG58lyd+9LW8qJR+OtO/wHSqJZiq5DT/3fXyAiIfvMdAiBBySv2wRIMxpAfNqPRirGVv1ai3iOqcW3gDqHJqPWhJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3427560},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"2018a01d45db5bdb76606e95874697d53ceedd19","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.0_1775776945503_0.940488062858102","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@fml-inc/panopticon","version":"0.2.1","_id":"@fml-inc/panopticon@0.2.1","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"069fca3246a97dcf7758025336107a8c650779ed","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.1.tgz","fileCount":130,"integrity":"sha512-xLPibU/jZw+trV90NOHxjqqeRD3kJeIA99jI0I+jfBNpBpR+7YP37mR0UcmvveBEDl+pj2LWcIdahdpoFlF3Fg==","signatures":[{"sig":"MEYCIQCIGCWlq/s3VDS0GgDffHDHxXCigMIxpT6ow8bH24ULuAIhAIt6/KV0fL3qQRKjmV0Xoxt7SCSQ2etirUI4qMprC6z8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3427560},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"2018a01d45db5bdb76606e95874697d53ceedd19","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node ./bin/panopticon install && claude plugin update panopticon@local-plugins 2>/dev/null || true"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.1_1775844929982_0.45160885325698574","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@fml-inc/panopticon","version":"0.2.2","_id":"@fml-inc/panopticon@0.2.2","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"059aa594c2e28bf2aee87e00ca7d6c9fd27f5234","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.2.tgz","fileCount":130,"integrity":"sha512-cSweSU1mpUeFG31GqGg4AY8/jZJHRlhSjX3PSI+8dk0KZNUpiIAqfy5+Aw9hO1yOEy7KIWpqnhYf9ATm1ipYPw==","signatures":[{"sig":"MEUCIQCV7ciYeb+RHeQVLHVgubDMSgn33WhFpUmdDqqNydjw3AIgG5XPT76hnQ+P349C/TvGSU+AIJ3q9Ut4MwBI9LnMIHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3425882},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"d78b3e5fdad411ab2089cd8e89f0a12619c2b8fc","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.2_1775856455285_0.3067410129284971","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@fml-inc/panopticon","version":"0.2.3","_id":"@fml-inc/panopticon@0.2.3","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"b5b0bc4228a2345df9657f153aa0a70aacb7d4cc","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.3.tgz","fileCount":130,"integrity":"sha512-CWO4QYCBX4TMP9LabnYtqIQ/SOwuGURhRub7o25/4OCOiVWM/ryyEImLVtIr8q6cQgbzKnip+WeL0QXaln0Wyw==","signatures":[{"sig":"MEYCIQDs11yR0UBhS+XK3Fh9xyZqk6U50L5dOFie1KQoOwNo3wIhANVavdrhnb+9MfXLrft5Js0c38P5gdwIuYWHRO51soLq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3490589},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"cff7c929d8bd22c0ed576627aa5dc717c9773c28","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.3_1776451056571_0.8845663777776791","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@fml-inc/panopticon","version":"0.2.4","_id":"@fml-inc/panopticon@0.2.4","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"92ab761fa69b4ce713c28fb355c9d2d1b24ed5a0","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.4.tgz","fileCount":133,"integrity":"sha512-CJrW/s8HwoGZFmIyrGQjnbAZPPSRe8iZKgsGhWUPasnjUB+ixCA5qTVCiei02r3a2p2bm3x8WSTaWMEtY67XUw==","signatures":[{"sig":"MEUCIQDuM+4LY5ZtitwhmY0WprERSWxSsNIJkX/Ix53uzYMekwIgbuEHK3NQcDRVTmmyHPbDAWNZH3K4BP+G+3meeH5jsu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3535417},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"0dc3dbf83c8d3e4194b74dd7dc02e443bc2483d2","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.4_1776543666059_0.7985753892139058","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@fml-inc/panopticon","version":"0.2.5","_id":"@fml-inc/panopticon@0.2.5","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"69b4c7c7be27c25278b7f6173d82d5bf7ea046af","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.5.tgz","fileCount":141,"integrity":"sha512-7TP/mC5iI4blPyooIz+88NI09PiAoKHkwGybbQOrCGFchrPx9emimhPaeI/oXxO7/YEw9gKuny1kb3McnEzOmw==","signatures":[{"sig":"MEYCIQCzdvhY7NiqmEwP5CaA+Y42IrGXP5Z/Gy3m3Z2CoWJ4pgIhAKy8HL3QDr0ijCyJf9O3e9OzRTw8PlSGv7eI6sGCoTKz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4062805},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"b2889174aae8ffbfd80378f347bef946f2f37816","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.5_1776731665415_0.6299611388728763","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@fml-inc/panopticon","version":"0.2.6","_id":"@fml-inc/panopticon@0.2.6","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"744b517bfe98908b18079c9400cdb35ca0cfa5d3","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.6.tgz","fileCount":142,"integrity":"sha512-Qow5SPnseKHeHOw7TUc/l/qhpqxx6IRQzMkp4C38OcBSge5tyeNcNbtUBhsj2wXWN5dDqalJU6Oxvx6ZeoeRNQ==","signatures":[{"sig":"MEQCIAVbeuMC+oUyWadZjmRFzGk8OW9q8iAcIe1KPSeszPARAiAB4QbyLyywuyRuUjRUHfvFrXTCJPPeXS2EiqQZ+QdIuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4105355},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"855f542009b0638454fee0cc640e5240873a4e0b","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.6_1776796743105_0.7757701018439169","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@fml-inc/panopticon","version":"0.2.7","_id":"@fml-inc/panopticon@0.2.7","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"6b0c5ca43b70aa4290a5053fed3f40945f93eba7","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.7.tgz","fileCount":142,"integrity":"sha512-vAYzM798PbKvz3w/q535a0YAchpZrKuZmq/leLWPBigO5NpYVT8rD/tRkR+kzXam1Bx5F3d1eJrnJd7nxpUN4w==","signatures":[{"sig":"MEUCIQDkfEDKY2RPytpucS5d+AvdWl1cx9m7A3ELmsB5X95ZpwIgWre9q4XD+9juHgztAhQO/o6CNpj847eDqWd9+fSzxRU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4119335},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"93bf0cd4ca87d73ffbcc02b02e27eba6d338c6df","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.7_1776804516529_0.981322536476229","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@fml-inc/panopticon","version":"0.2.8","_id":"@fml-inc/panopticon@0.2.8","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"52be1a114286a7a7638d4deaf33e0889f302ab68","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.8.tgz","fileCount":142,"integrity":"sha512-j6cSPw9bzDF/sO6Kiq10kG8ZkYri59tZEiefx+U17oR2Sx2CsMaHMgd1tlHsn/kP8W3TZG72Vh9uwFERdU9UeA==","signatures":[{"sig":"MEUCIBgwV+YZbF8+zTZMVz9pdLySA9Jl4bsGnPBY6yeZVjkrAiEAsQJOuduFWP3i2c+aRWOR9FeE/Ap4zeGjmEXyu+oBm5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4122113},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"95a63a81e3fc40baf766f1a4fd6c95829b2c6acf","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.8_1776806675319_0.5835743296100986","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@fml-inc/panopticon","version":"0.2.9","_id":"@fml-inc/panopticon@0.2.9","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"7de64c1adb79ed6a43bcb811136e6bee8536422a","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.9.tgz","fileCount":142,"integrity":"sha512-M4VQQn9EfeJYB2WcKiveLO3OVAmORrqo9QcaJk4mRsZQNBk/kl68ZmhSyedKzWSBSo1M+rj3Y0xkcFqYZWEy8g==","signatures":[{"sig":"MEUCIES3ti2VcooQgdfJ8Rz23QsAEkAUWBkKukcYrV1FPoG7AiEA/58HClkC3oHTSbZvRcejkgZAhU9z+YhIfwa5kgn1fQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4217672},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"2e652cfce8c91297ac52fd9ad4188bd643eb68db","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"deprecated":"Published from a non-main branch by mistake; use 0.2.10.","repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.9_1776833637985_0.011849186282841817","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@fml-inc/panopticon","version":"0.2.10","_id":"@fml-inc/panopticon@0.2.10","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"1a2e01770fe85e3be4f68e4401b9d6d5611a63bd","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.10.tgz","fileCount":142,"integrity":"sha512-2CzALgGK2vheRxaRpDX5vK1lgze5aMP5rADDwusWqaF8iuRuquSxSf2oeA0nq/yU2wqd5a2YhjSwLn99evFmLQ==","signatures":[{"sig":"MEUCIQDxw2/4HF8Q+B4Y+m9pFd+Wm3HmP85K6Ux6WBkWZNvkMwIgAtcuUNwUIJsIB3PNiJeh9hxoa1cLIvZRA5KDJaNjNrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4217679},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"d6f6da00d3706e74e1bebb7bd86888bcba6b6cd8","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.12.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.10_1776833921547_0.16040190719028313","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@fml-inc/panopticon","version":"0.2.11","_id":"@fml-inc/panopticon@0.2.11","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"17d381f7ae00ead93ab3452663566fdfe87f88f5","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.11.tgz","fileCount":148,"integrity":"sha512-kKCDIbuL5/hc0yHCdqC8ndh330/uRRwPoQ++poAhASb7SIQFuwBj/HP+YKwsiQLheIjcIbDo6A3OXB4E3j73jg==","signatures":[{"sig":"MEUCIHyuj/1X0FDdON7X6XrsDvIahtFtDJAkzv9PPbTEjmk4AiEAob4F7BTt1RdqAPfLcAieNrLR743SwseqiC6tu5SaVZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4553937},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"c9bcdb1e9061cf6e29465d836615f3bc71000f12","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"[ ! -d dist ] || (node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'))"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.13.0","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.11_1777154427492_0.5255842399866688","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@fml-inc/panopticon","version":"0.2.12","_id":"@fml-inc/panopticon@0.2.12","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"7e47f9af5ba438ee93e55f16f0bb7fd10ff4856f","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.12.tgz","fileCount":151,"integrity":"sha512-jmn3Tm8PUc3m7lJTZtp1axx2KgNqKh8f8daKqDuiFuLQHH6S/VosMh0UKrbt4Jch/1Oq8d/1pA6PPYbqM2/hLg==","signatures":[{"sig":"MEQCIF4TRjw5gHvYCXvFhIBXe64QDQqxjv8G61RSsBdLe42NAiAKWIvZwP9a8ZxXIf0Ht7AaWybztrMRhdXvdk5YZ1X+8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4638011},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"793592f255ad81181e4940185320d3e67f9295c9","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup && node scripts/bundle-pi-extension.js","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"if [ -d dist ]; then if git --version >/dev/null 2>&1; then node ./bin/panopticon install && (claude plugin install panopticon@local-plugins 2>/dev/null || claude plugin update panopticon@local-plugins || echo 'warn: claude CLI not found, run claude plugin install panopticon@local-plugins manually'); else echo 'warn: git not found; skipping automatic panopticon install. Install Git and run panopticon install, or run panopticon install --disable-sync.'; fi; fi"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.13.0","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","esbuild":"^0.28.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.12_1777668580642_0.8813121257088479","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@fml-inc/panopticon","version":"0.2.13","_id":"@fml-inc/panopticon@0.2.13","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"d26b12aee04f9dee2052c0a2c5d46ace68c5cc24","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.13.tgz","fileCount":157,"integrity":"sha512-EpW7stAh4YRO/5r1t2aZbNMNTxtqmkPdAtZ3f5D1ozzJT8N4rzjWMKKAZYKdPKS3IpyKX9JC0SuW9/nrVx671g==","signatures":[{"sig":"MEUCIQCyQUhJSFfIVxCmGzRFjDB1vWPtpZxB92Ujm1KqzVY2ngIgKdHGE0eTxgDrfKfiNOFZxrRgkto0SXmIuIylUXeERqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4729813},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"21ffeb638dd2df6864e9db459c3766b99445f47c","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup && node scripts/bundle-pi-extension.js","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.13.0","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","esbuild":"^0.28.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.13_1777936476241_0.8155002073160862","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@fml-inc/panopticon","version":"0.2.14","_id":"@fml-inc/panopticon@0.2.14","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"931fd4c29377f6580604113c5894d2b163797876","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.14.tgz","fileCount":157,"integrity":"sha512-qKcwpm8yDPcxfZh30UPQ7M0d8ijjZeae8MOHYEqqgBBgWYIEzVj2KrZUBjDqQwTF3DI6UnvuRGOpICax5fpwRg==","signatures":[{"sig":"MEYCIQCTwcx8Fmt5tHyKqn/w4ckwe15cbtPw1hbMayBFplNjngIhAIVpzSd0454NVQI1O48n1t/Lnz8oOBDJkDPWCmAEBN0S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4737002},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"931a33817a3fe03f8abd63b5a49f330010afa41f","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup && node scripts/bundle-pi-extension.js","check":"biome check src/","format":"biome format --write src/","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.14.0","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","esbuild":"^0.28.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.14_1778126220268_0.006381786888431273","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@fml-inc/panopticon","version":"0.2.15","_id":"@fml-inc/panopticon@0.2.15","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"e87f03dd0e3c15f89326a03e1186dfb168211c44","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.15.tgz","fileCount":157,"integrity":"sha512-WxKlg9QbzjyJMI2ErZDgVjV2FcSxhVsue8P6yyE/ShrnKHHsPaisGeBgH9k1b2xPxM2oQjIXScMj7yK/XW8m2g==","signatures":[{"sig":"MEQCIFJVO7TKcPhMg9rej3E+Qtg0fo9lbjD8+WjXVnRChIS4AiBQcX1mF5G2ShdxTas0uALD5D6Veb1koxf76G2JuZIqfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4958629},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"6bc0cee9dcd93571bbbc32231e83ba6761febf48","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup && node scripts/bundle-pi-extension.js","check":"biome check src/ scripts/eval-userprompt-context.ts","format":"biome format --write src/ scripts/eval-userprompt-context.ts","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/ scripts/eval-userprompt-context.ts","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","postinstall":"node scripts/postinstall.js","eval:userprompt":"tsup scripts/eval-userprompt-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-userprompt-context.js","eval:userprompt:first":"pnpm eval:userprompt -- --set first","eval:userprompt:later":"pnpm eval:userprompt -- --set later"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.14.1","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","esbuild":"^0.28.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.15_1779142745970_0.7904909163698437","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@fml-inc/panopticon","version":"0.2.16","license":"UNLICENSED","_id":"@fml-inc/panopticon@0.2.16","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"4319a98c3f7fd68e7a2135eb194b374274451b29","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.16.tgz","fileCount":165,"integrity":"sha512-c4mzr+k6SPv9+8uuJkVqV31gZhi5s+GeP33z8NL9T0cMWJoOxl4Qe/61hiQNdNO7sdL9SuSx264iApNJvhTOcA==","signatures":[{"sig":"MEUCIQCbx+Jy0hY+gHNYnxtMj9SmY0sBsGw2y5xlOmX1RIJReAIgYyY7rRV0Ck9k/v2tbErOqzeprO5LEpvsthhmaz7IrU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5183320},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"e8886c52bac92283434c995720c54d23e937f231","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup && node scripts/bundle-pi-extension.js","check":"biome check src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts","format":"biome format --write src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","eval:replay":"tsup scripts/eval-replay-counterfactual.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-replay-counterfactual.js","postinstall":"node scripts/postinstall.js","eval:reduction":"tsup scripts/eval-reduction-proxy.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-reduction-proxy.js","eval:pretooluse":"tsup scripts/eval-pretooluse-file-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-pretooluse-file-context.js","eval:userprompt":"tsup scripts/eval-userprompt-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-userprompt-context.js","eval:userprompt:first":"pnpm eval:userprompt -- --set first","eval:userprompt:later":"pnpm eval:userprompt -- --set later"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.15.0","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","esbuild":"^0.28.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.16_1779316353594_0.13476871724652595","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@fml-inc/panopticon","version":"0.2.17","license":"UNLICENSED","_id":"@fml-inc/panopticon@0.2.17","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"86d794374599d4ff364147fab30d2e93c0699792","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.17.tgz","fileCount":169,"integrity":"sha512-LfbbsgpoQkBHdFdezPE0NlPY9bKklUMEEzZvKXpPmejcoMA3AlnuKngPrKQxozF3wf5fiyF4Nsb/HOz/wsaTyw==","signatures":[{"sig":"MEUCIQCXUZ2AaNGd1+232LUmvRWW2M1fqV5QmMwx9ofQgl6tgwIgN4AN/dLXuJZoZIRck0KBdTqGBkTbb9h6hn71mPGCmM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5222684},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"8a597d239309cec329583f9de9d1e576846ba14e","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup && node scripts/bundle-pi-extension.js","check":"biome check src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","format":"biome format --write src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","eval:replay":"tsup scripts/eval-replay-counterfactual.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-replay-counterfactual.js","postinstall":"node scripts/postinstall.js","eval:reduction":"tsup scripts/eval-reduction-proxy.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-reduction-proxy.js","eval:pretooluse":"tsup scripts/eval-pretooluse-file-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-pretooluse-file-context.js","eval:userprompt":"tsup scripts/eval-userprompt-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-userprompt-context.js","eval:pretooluse-read":"tsup scripts/eval-pretooluse-read-realtime.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-pretooluse-read-realtime.js","eval:panop-historical":"tsup scripts/eval-panop-historical.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-panop-historical.js","eval:userprompt:first":"pnpm eval:userprompt -- --set first","eval:userprompt:later":"pnpm eval:userprompt -- --set later","eval:hydrate-pr-scenarios":"tsup scripts/eval-hydrate-pr-scenarios.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-hydrate-pr-scenarios.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.16.0","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","esbuild":"^0.28.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.17_1780428457750_0.15878942390746786","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"@fml-inc/panopticon","version":"0.2.18","license":"UNLICENSED","_id":"@fml-inc/panopticon@0.2.18","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"homepage":"https://github.com/fml-inc/panopticon#readme","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"bin":{"panopticon":"bin/panopticon"},"dist":{"shasum":"ab2647ac75462fe3295b8d97c0ef8c59ac38f739","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.18.tgz","fileCount":169,"integrity":"sha512-ZXeczOVgD1aelimAV93EYKivBYKBxWyosmvY5Y2n01LSswRLjNLVzQSX2EWhQ3SjyJFksOlu4ZiUrtJZimInvw==","signatures":[{"sig":"MEUCIBcNi5w3f2DhIvjJbIgdRFRql2WqdYo/PPspIqxzjKmpAiEAo1BwB9Qn+/5S03xDKmVfmo6U5I96r/0VLU2grtns21I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5227633},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"}},"gitHead":"a033e90d122f280d791777f4fd28db9a7dd45484","scripts":{"dev":"tsup --watch","test":"vitest run --exclude '.claude/**'","build":"node scripts/generate-plugin-manifest.js && tsup && node scripts/bundle-pi-extension.js","check":"biome check src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","format":"biome format --write src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","prepack":"node scripts/generate-plugin-manifest.js","check:fix":"biome check --write src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","typecheck":"tsc --noEmit","pack:local":"pnpm build && pnpm pack","test:watch":"vitest --exclude '.claude/**'","eval:replay":"tsup scripts/eval-replay-counterfactual.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-replay-counterfactual.js","postinstall":"node scripts/postinstall.js","eval:reduction":"tsup scripts/eval-reduction-proxy.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-reduction-proxy.js","eval:pretooluse":"tsup scripts/eval-pretooluse-file-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-pretooluse-file-context.js","eval:userprompt":"tsup scripts/eval-userprompt-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-userprompt-context.js","eval:pretooluse-read":"tsup scripts/eval-pretooluse-read-realtime.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-pretooluse-read-realtime.js","eval:panop-historical":"tsup scripts/eval-panop-historical.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-panop-historical.js","eval:userprompt:first":"pnpm eval:userprompt -- --set first","eval:userprompt:later":"pnpm eval:userprompt -- --set later","eval:hydrate-pr-scenarios":"tsup scripts/eval-hydrate-pr-scenarios.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-hydrate-pr-scenarios.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"repository":{"url":"git+https://github.com/fml-inc/panopticon.git","type":"git"},"_npmVersion":"11.16.0","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.3.6","tslog":"^4.10.2","commander":"^14.0.3","smol-toml":"^1.3.0","protobufjs":"^7.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.1","devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","esbuild":"^0.28.0","lefthook":"^2.1.1","typescript":"^5","@types/node":"^24.0.0","@sentry/core":"^10.46.0","@biomejs/biome":"^2.4.4"},"_npmOperationalInternal":{"tmp":"tmp/panopticon_0.2.18_1780590844249_0.05163305835283416","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"@fml-inc/panopticon","version":"0.2.19","description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","license":"UNLICENSED","type":"module","engines":{"node":">=24.0.0"},"packageManager":"pnpm@10.17.1","publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/fml-inc/panopticon.git"},"bin":{"panopticon":"bin/panopticon"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./sdk":{"types":"./dist/sdk.d.ts","import":"./dist/sdk.js"},"./db":{"types":"./dist/db.d.ts","import":"./dist/db.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./query":{"types":"./dist/query.d.ts","import":"./dist/query.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js"},"./prune":{"types":"./dist/prune.d.ts","import":"./dist/prune.js"},"./pricing":{"types":"./dist/pricing.d.ts","import":"./dist/pricing.js"},"./permissions":{"types":"./dist/permissions.d.ts","import":"./dist/permissions.js"},"./doctor":{"types":"./dist/doctor.d.ts","import":"./dist/doctor.js"},"./repo":{"types":"./dist/repo.d.ts","import":"./dist/repo.js"},"./scanner":{"types":"./dist/scanner.d.ts","import":"./dist/scanner.js"},"./api":{"types":"./dist/api/client.d.ts","import":"./dist/api/client.js"},"./sync":{"types":"./dist/sync/index.d.ts","import":"./dist/sync/index.js"},"./targets":{"types":"./dist/targets.d.ts","import":"./dist/targets.js"}},"scripts":{"build":"node scripts/generate-plugin-manifest.js && tsup && node scripts/bundle-pi-extension.js && node scripts/copy-hermes-plugin.js","dev":"tsup --watch","check":"biome check src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","check:fix":"biome check --write src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","format":"biome format --write src/ scripts/eval-userprompt-context.ts scripts/eval-pretooluse-file-context.ts scripts/eval-pretooluse-read-realtime.ts scripts/eval-reduction-proxy.ts scripts/eval-reduction-proxy.test.ts scripts/eval-replay-counterfactual.ts scripts/eval-replay-counterfactual.test.ts scripts/eval-panop-historical.ts scripts/eval-panop-historical.test.ts scripts/eval-hydrate-pr-scenarios.ts","test":"vitest run --exclude '.claude/**'","test:watch":"vitest --exclude '.claude/**'","typecheck":"tsc --noEmit","eval:userprompt":"tsup scripts/eval-userprompt-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-userprompt-context.js","eval:pretooluse":"tsup scripts/eval-pretooluse-file-context.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-pretooluse-file-context.js","eval:userprompt:first":"pnpm eval:userprompt -- --set first","eval:userprompt:later":"pnpm eval:userprompt -- --set later","eval:reduction":"tsup scripts/eval-reduction-proxy.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-reduction-proxy.js","eval:pretooluse-read":"tsup scripts/eval-pretooluse-read-realtime.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-pretooluse-read-realtime.js","eval:replay":"tsup scripts/eval-replay-counterfactual.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-replay-counterfactual.js","eval:panop-historical":"tsup scripts/eval-panop-historical.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-panop-historical.js","eval:hydrate-pr-scenarios":"tsup scripts/eval-hydrate-pr-scenarios.ts --format esm --platform node --target node24 --out-dir .tmp/eval-build --silent --no-dts && node .tmp/eval-build/eval-hydrate-pr-scenarios.js","prepack":"node scripts/generate-plugin-manifest.js","pack:local":"pnpm build && pnpm pack","postinstall":"node scripts/postinstall.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","commander":"^14.0.3","protobufjs":"^7.0.0","smol-toml":"^1.3.0","tslog":"^4.10.2","zod":"^4.3.6"},"devDependencies":{"@biomejs/biome":"^2.4.4","@sentry/core":"^10.46.0","@types/node":"^24.0.0","esbuild":"^0.28.0","lefthook":"^2.1.1","tsup":"^8.0.0","typescript":"^5","vitest":"^4.1.0"},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"gitHead":"b4e233ee1b0619fc312c8261ac114605d0845bdf","_id":"@fml-inc/panopticon@0.2.19","bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"homepage":"https://github.com/fml-inc/panopticon#readme","_nodeVersion":"24.16.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-s+7CmI8PvMtBdcKveJLIfJ4kuwBjelMHSz9iSLiaMEk4w7CuateMEgPIqzypF6WiSc5+tO+/vZaMnUnVAgAZUA==","shasum":"6ff785d85f3fdbd80e2e7ddfd021c160263f30c1","tarball":"https://registry.npmjs.org/@fml-inc/panopticon/-/panopticon-0.2.19.tgz","fileCount":171,"unpackedSize":5389694,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fml-inc%2fpanopticon@0.2.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFRBOOdXIfg7//i2vI4kZ1QpqGH0PuJzU4NDuQ77BNe3AiAK3YutccrAylNY/DZKmuUI3SXPIRkWZpA+hQuo9Xu4DQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:803b25c0-4e0d-4067-af35-19bc0135832d"}},"directories":{},"maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/panopticon_0.2.19_1781569272003_0.9059163635168841"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-06T16:56:40.109Z","modified":"2026-06-16T00:21:12.563Z","0.1.0":"2026-04-06T16:56:40.432Z","0.1.1":"2026-04-06T17:30:02.452Z","0.1.2":"2026-04-06T22:54:46.134Z","0.1.3":"2026-04-07T00:11:01.348Z","0.1.4":"2026-04-07T19:18:42.835Z","0.1.5":"2026-04-07T22:15:26.073Z","0.1.6":"2026-04-07T22:20:48.118Z","0.1.7":"2026-04-08T21:15:05.826Z","0.1.8":"2026-04-08T22:12:06.400Z","0.1.9":"2026-04-09T18:18:27.356Z","0.2.0":"2026-04-09T23:22:25.748Z","0.2.1":"2026-04-10T18:15:30.207Z","0.2.2":"2026-04-10T21:27:35.544Z","0.2.3":"2026-04-17T18:37:36.807Z","0.2.4":"2026-04-18T20:21:06.233Z","0.2.5":"2026-04-21T00:34:25.603Z","0.2.6":"2026-04-21T18:39:03.264Z","0.2.7":"2026-04-21T20:48:36.781Z","0.2.8":"2026-04-21T21:24:35.540Z","0.2.9":"2026-04-22T04:53:58.172Z","0.2.10":"2026-04-22T04:58:41.742Z","0.2.11":"2026-04-25T22:00:27.753Z","0.2.12":"2026-05-01T20:49:40.905Z","0.2.13":"2026-05-04T23:14:36.471Z","0.2.14":"2026-05-07T03:57:00.497Z","0.2.15":"2026-05-18T22:19:06.187Z","0.2.16":"2026-05-20T22:32:33.858Z","0.2.17":"2026-06-02T19:27:37.975Z","0.2.18":"2026-06-04T16:34:04.523Z","0.2.19":"2026-06-16T00:21:12.194Z"},"bugs":{"url":"https://github.com/fml-inc/panopticon/issues"},"license":"UNLICENSED","homepage":"https://github.com/fml-inc/panopticon#readme","repository":{"type":"git","url":"git+https://github.com/fml-inc/panopticon.git"},"description":"Observability for Claude Code — captures OTel signals and hook events, queryable via MCP","maintainers":[{"name":"gusholcomb","email":"gus@fml.inc"},{"name":"austin_fml","email":"austin@fml.inc"}],"readme":"# Panopticon\n\n<div align=\"center\">\n  <img src=\"panopticon.jpg\" alt=\"Panopticon — Willey Reveley, 1791\" width=\"480\">\n  <br>\n  <em>Elevation and plan of Jeremy Bentham's Panopticon, drawn by Willey Reveley in 1791</em>\n</div>\n\n<br>\n\nSelf-contained observability for AI coding tools. Captures OpenTelemetry signals, hook events, API traffic, and local session files from Claude Code, Gemini CLI, Codex CLI, and Pi — stored in SQLite, queryable via MCP.\n\nNo Docker, no external services. Just Node.js.\n\n## Install\n\n```bash\nnpm install -g @fml-inc/panopticon\npanopticon install\n```\n\nThis initializes the database, registers hooks and MCP servers in each detected tool, and configures OTel environment variables in your shell. Start a new session to activate.\n\nTo install for a specific tool only:\n\n```bash\npanopticon install --target claude\npanopticon install --target gemini\npanopticon install --target codex\npanopticon install --target claude-desktop\npanopticon install --target pi\npanopticon install --target hermes\n```\n\nClaude Desktop stores the absolute Node executable path in its MCP config\nbecause macOS GUI launches often do not inherit the shell `PATH`. CLI targets\nuse a portable `node` command so installs can move between Node versions.\n\nOptions:\n\n| Flag | Description |\n|------|-------------|\n| `--target <t>` | Target: `claude`, `gemini`, `codex`, `claude-desktop`, `pi`, `hermes`, or `all` (default: `all`) |\n| `--proxy` | Route API traffic through the panopticon proxy |\n| `--force` | Overwrite customized env vars with defaults |\n\n### From source\n\n```bash\ngit clone https://github.com/fml-inc/panopticon.git && cd panopticon\npnpm install && pnpm build\nnpm pack\nnpm install -g ./fml-inc-panopticon-*.tgz\npanopticon install\n```\n\n## How it works\n\n```\n┌──────────────────────────────────────────────────────────────┐\n│     Claude Code / Gemini CLI / Codex CLI / Pi               │\n│                                                              │\n│  ┌──────────┐  ┌──────────────┐  ┌───────────┐  ┌────────┐  │\n│  │ OTel SDK │  │ Plugin Hooks │  │ Session   │  │  API   │  │\n│  │          │  │              │  │ Files     │  │ Proxy  │  │\n│  └────┬─────┘  └──────┬───────┘  └─────┬─────┘  └───┬────┘  │\n└───────┼───────────────┼───────────────┼──────────────┼───────┘\n        │               │               │              │\n        ▼               ▼               │              ▼\n┌───────────────────────────────────────┼──────────────────────┐\n│        Unified Panopticon Server (:4318)                     │\n│                                       │                      │\n│  /v1/logs, /v1/metrics   /hooks       │  /proxy/anthropic    │\n│  (OTLP ingest)           (hook JSON)  │  /proxy/openai       │\n│                                       │  /proxy/google       │\n└──────────────────────┬────────────────┼──────────────────────┘\n                       │                │\n                       ▼                ▼\n          ┌─────────────────────────────────────┐\n          │         SQLite (WAL mode)           │\n          │                                     │\n          │  sessions (unified, all sources)    │\n          │  hook_events / otel_logs / metrics  │\n          │  scanner_turns / scanner_events     │\n          └──┬──────────┬──────────────┬────────┘\n             │          │              │\n             ▼          ▼              ▼\n      ┌──────────┐ ┌────────────┐ ┌──────────────┐\n      │   MCP    │ │    Sync    │ │   Scanner    │\n      │  Server  │ │   Loops    │ │ + Summaries  │\n      │ (stdio)  │ │   (OTLP)   │ │  (poll/idle) │\n      └──────────┘ └────────────┘ └──────────────┘\n```\n\n**Five data pipelines feed one database:**\n\n1. **Hook events** — Plugin hooks capture SessionStart, tool use (pre/post), prompts, and session end. Rich payloads including tool inputs and outputs.\n\n2. **OTel logs** — Native telemetry events: API requests/responses, tool calls, user prompts, config, model routing. Includes cost, token counts, durations, model info.\n\n3. **OTel metrics** — Time series: `token.usage`, `cost.usage`, `session.count`, `active_time.total`, `lines_of_code.count`, `commit.count`, `pull_request.count`.\n\n4. **Session file scanner** — Reads local JSONL/JSON session files written by each CLI. Extracts per-turn token usage (input, output, cache read, cache creation, reasoning), tool calls, API errors, agent reasoning, and file snapshots. More complete than OTel for token data (captures ~2x the turns) and provides historical backfill for sessions before panopticon was installed.\n\n5. **API proxy** — Transparent HTTP proxy for Anthropic, OpenAI, and Google AI APIs. Captures request/response pairs and emits them as hook events and OTel data. Enable with `panopticon install --proxy`.\n\nAll pipelines feed a **unified sessions table** — each session accumulates data from whichever sources are active, in any order, via COALESCE upserts.\n\n**Sync** (optional) — OTLP export that tails the local SQLite and POSTs merged events to a remote OTLP receiver. Useful for forwarding to Grafana, Honeycomb, Datadog, etc.\n\n**Scanner** — Polls local CLI session files every 60 seconds. Extracts per-turn token usage and events that OTel misses (reasoning tokens, cache breakdowns, tool calls with arguments/output, API errors with retry metadata). Backfills historical sessions from before panopticon was installed.\n\n## Daemon runtime\n\nThe installed daemon is one unified server process.\n\n- The scanner loop starts first.\n- Core sync and OTel sync loops start only after the scanner reports ready.\n- Session-summary enrichment and legacy summary generation run from the\n  scanner's idle path.\n- Prune runs on startup and then hourly.\n- Most loop bodies are still serial today: file parsing, touched-session\n  rebuilds, legacy summary generation, and per-target sync advancement all\n  happen one unit at a time. Session-summary enrichment now uses a bounded\n  async runner pool.\n\nFor the full execution model, current invariants, and the planned\nconcurrency/workpooling follow-up, see\n[docs/DAEMON-EXECUTION-MODEL.md](docs/DAEMON-EXECUTION-MODEL.md).\n\n## Supported tools\n\n| Tool | Hooks | OTel | Scanner | Proxy | Notes |\n|------|-------|------|---------|-------|-------|\n| Claude Code | Plugin marketplace | Native OTel SDK | `~/.claude/projects/` JSONL | Anthropic API | Full coverage; scanner captures API errors, file snapshots |\n| Gemini CLI | `settings.json` hooks | Native OTel SDK (HTTP) | `~/.gemini/tmp/` JSON | Google AI API | Scanner captures tool calls, reasoning thoughts |\n| Codex CLI | `hooks.json` | Native OTel SDK (HTTP) | `~/.codex/sessions/` JSONL | OpenAI API | Scanner captures tool calls, reasoning tokens, agent messages |\n| Claude Desktop | MCP server | — | — | — | MCP query tools only |\n| Pi | Extension (HTTP) | — | `~/.pi/agent/sessions/` JSONL | — | Extension and scanner capture hooks, normalized messages, assistant responses/tool calls/tokens when Pi exposes them; see [Pi coverage](docs/PI-COVERAGE.md) |\n| Hermes Agent | User plugin (HTTP) | — | `~/.hermes/state.db` SQLite | — | Plugin captures native observer hooks with turn/API/tool correlation IDs; scanner backfills durable sessions and messages |\n\nEach tool is implemented as a **target adapter** in `src/targets/`. To add support for a new tool, create a single adapter file that declares config paths, hook events, shell env vars, event normalization, detection logic, and proxy routing — then register it in `src/targets/index.ts`.\n\n## MCP tools\n\nOnce installed, these tools are available to the AI coding tool via MCP:\n\nProjection-backed summary views are gated by\n`PANOPTICON_ENABLE_SESSION_SUMMARY_PROJECTIONS=1`. `why_code`,\n`recent_work_on_path`, and `file_overview` remain available without that flag,\nbut they become much richer once projections are enabled.\n\n| Tool | Description |\n|------|-------------|\n| `sessions` | List recent sessions with stats (tokens, cost, model, project) |\n| `timeline` | Messages and tool calls for a session, including child sessions (forks, subagents) |\n| `costs` | Token usage and cost breakdowns by session, model, or day |\n| `summary` | Activity summary — sessions, prompts, tools, files, costs. Ideal for standup updates |\n| `plans` | Plans created via ExitPlanMode with full markdown content |\n| `search` | Full-text search across events and messages (FTS5) |\n| `get` | Fetch full untruncated details for a record by source and ID |\n| `query` | Raw read-only SQL against the database |\n| `status` | Database row counts |\n| `intent_for_code` | Chronological prompt history for a file, annotated with whether each edit's inserted content survived |\n| `search_intent` | Search the prompt-to-edit index by prompt text, touched files, and landed ratio |\n| `outcomes_for_intent` | Session-end outcome view for one intent: landed, churned, and unreconciled edits |\n| `session_summaries` (gated) | Explicit session-derived summaries with provenance metadata, one row per session |\n| `session_summary_detail` (gated) | Full detail for one session summary, including member intents and touched files |\n| `why_code` | Best current local provenance explanation for a file path and optional line |\n| `recent_work_on_path` | Recent local intents, edits, and summaries that touched a file |\n| `file_overview` | File-centric overview with aggregate counts, best explanation, recent work, and related files |\n\n## Agent command and skill\n\n`panopticon install --target claude` installs a Claude Code `/panopticon`\ncommand, and `panopticon install --target pi` installs a Pi `/panopticon`\nprompt command. `panopticon install --target codex` installs a Codex\n`$panopticon` skill. All accept command-style arguments and route read-only\nqueries to MCP tools when possible, falling back to the `panopticon` CLI for\nlifecycle and maintenance operations.\n\nThe old `panopticon-review` and `pr-review` skills have moved to:\n\n```text\n/panopticon review\n```\n\nMCP tools that can return long histories are compact by default to keep agent\ncontext bounded. `sessions`, `timeline`, `summary`, `search`,\n`intent_for_code`, `search_intent`, `outcomes_for_intent`,\n`session_summaries`, and `session_summary_detail` accept `fullPayloads: true`\nwhen a caller needs the raw untruncated result. `get`, `query`, `costs`,\n`plans`, `why_code`, `recent_work_on_path`, and `file_overview` already return\ntheir direct result shapes.\n\n## Context injection and code intelligence\n\nPanopticon can proactively return bounded `additionalContext` from hooks instead\nof waiting for the agent to call an MCP tool. These injections are deterministic\nand provenance-backed; they stay silent when Panopticon has no relevant local\nhistory.\n\n| Surface | Flag | Default | Behavior |\n|---------|------|---------|----------|\n| Session start history | `PANOPTICON_ENABLE_SESSION_START_HISTORY_INJECTION` | `1` | Adds recent local session history for the current cwd on `SessionStart` |\n| Prompt-relevant history | `PANOPTICON_ENABLE_USER_PROMPT_SUBMIT_CONTEXT_INJECTION` | `1` | Adds prompt-matched local history on mid-session `UserPromptSubmit`; the first prompt is intentionally silent |\n| Edit-time file provenance | `PANOPTICON_ENABLE_PRE_TOOL_USE_FILE_CONTEXT_INJECTION` | `1` | Adds file provenance before edit tools when the file has prior history; deduped once per session/path |\n| Read-time file provenance | `PANOPTICON_ENABLE_PRE_TOOL_USE_READ_CONTEXT_INJECTION` | `1` | Adds short provenance before `Read` for files with prior history; deduped once per session/path |\n| Code Review Graph enrichment | `PANOPTICON_ENABLE_CODE_INTEL_FILE_OVERVIEW` | `0` | Adds `code_intel` to `file_overview` when the repo has `.code-review-graph/graph.db` |\n\nFlags are read by the Panopticon server at startup. For a one-off test with\nCode Review Graph enrichment:\n\n```bash\npanopticon stop\nPANOPTICON_ENABLE_CODE_INTEL_FILE_OVERVIEW=1 \\\npanopticon start --force\n```\n\nFor persistent overrides, add the desired `export PANOPTICON_...` lines to the\nsame shell profile that launches your AI coding tool, then restart Panopticon\nand start a new agent session.\n\n### Employee rollout checklist\n\nUse this checklist for canary users who should run all context intelligence\nsurfaces:\n\n```bash\npanopticon install\n\nexport PANOPTICON_ENABLE_SESSION_START_HISTORY_INJECTION=1\nexport PANOPTICON_ENABLE_USER_PROMPT_SUBMIT_CONTEXT_INJECTION=1\nexport PANOPTICON_ENABLE_PRE_TOOL_USE_FILE_CONTEXT_INJECTION=1\nexport PANOPTICON_ENABLE_PRE_TOOL_USE_READ_CONTEXT_INJECTION=1\nexport PANOPTICON_ENABLE_CODE_INTEL_FILE_OVERVIEW=1\n\ncd /path/to/repo\ncode-review-graph build\ncode-review-graph status\n\npanopticon stop\npanopticon start --force\npanopticon doctor\npanopticon status\n```\n\n`doctor` and `status` should show the context flags, hook targets with source\nidentity, recent context-eligible hook activity, and Code Review Graph\nreadiness. Ask canary users to report missing context, noisy context, hook\nlatency, hook timeouts, and `code_intel` states other than `ready`.\n\nTo use Code Review Graph enrichment, install/build Code Review Graph in each\nrepo you want enriched:\n\n```bash\npipx install code-review-graph   # or: pip install code-review-graph\ncd /path/to/repo\ncode-review-graph build\ncode-review-graph status\n```\n\nPanopticon reads the repo-local `.code-review-graph/graph.db` directly. If the\ngraph is missing or stale, `file_overview` still works and reports\n`code_intel.status: unavailable` or returns older graph-derived relationships.\nUse `code-review-graph update` or `code-review-graph watch` to keep the graph\nfresh. To expose Code Review Graph as its own MCP server, also run\n`code-review-graph install`.\n\n## Docs\n\n- [Daemon execution model](docs/DAEMON-EXECUTION-MODEL.md) explains the current scanner/sync/summary/prune loop topology and the planned concurrency/workpooling follow-up.\n- [Context injection and Code Review Graph](docs/CONTEXT-INTELLIGENCE.md) explains the proactive context flags, runtime semantics, and CRG setup.\n- [Session summaries and code provenance](docs/LOCAL-WORKSTREAMS-V1.md) explains the local read model behind `why_code`, `recent_work_on_path`, `file_overview`, and the projection-backed session summary views.\n- [Durable IDs and provenance foundation plan](docs/DURABLE-IDS-PLAN.md) captures the remaining repo/file provenance and evidence-ref follow-up work.\n- [Inference interfaces](docs/INFERENCE-INTERFACES.md) defines the deterministic-fallback and optional-LLM contract for future enrichments.\n- [Release validation runbook](docs/RELEASE-VALIDATION-RUNBOOK.md) covers validating changes against a copied production-sized DB and real home-directory config.\n- [Pi coverage matrix and verification](docs/PI-COVERAGE.md) documents Pi hook, message, assistant response, token, scanner, headless, and limitation coverage with SQL verification queries.\n- [Session summary split status](docs/SESSION-SUMMARY-SPLIT-STATUS.md) records the merged state of the session-summary split and the next post-merge harness tranche.\n\n## CLI\n\n```\npanopticon install          Register hooks, init DB, configure shell\n  --target <t>              Target: claude, gemini, codex, claude-desktop, pi, hermes, all (default: all)\n  --proxy                   Route API traffic through the panopticon proxy\n  --disable-sync            Disable remote sync and skip Git detection\n  --force                   Overwrite customized env vars with defaults\n\npanopticon uninstall        Remove hooks, shell config, and optionally all data\n  --target <t>              Uninstall from a specific target only\n  --purge                   Also remove database and all data\n\npanopticon update           Show instructions to update via npm\n\npanopticon start            Start the server (background)\n  --force                   Bypass native start-failure backoff\npanopticon stop             Stop the server\npanopticon status           Show server status and database stats\npanopticon doctor           Check system health, server, database, and configuration\n\npanopticon logs [daemon]    View daemon logs (otlp, mcp)\n  -f, --follow              Follow log output (like tail -f)\n  -n <lines>                Number of lines to show (default 50)\n\npanopticon sessions         List recent sessions with stats\n  --limit <n>               Max sessions to return (default 20)\n  --since <duration>        Time filter (e.g. \"24h\", \"7d\")\npanopticon timeline <id>    Get messages and tool calls for a session\n  --limit <n>               Max messages to return (default 50)\n  --offset <n>              Number of messages to skip\n  --full                    Return full content instead of truncated\npanopticon costs            Token usage and cost breakdowns\n  --group-by <g>            Group by session, model, or day\npanopticon summary          Activity summary\npanopticon plans            List plans from ExitPlanMode events\npanopticon search <query>   Full-text search across events and messages\npanopticon print <src> <id> Get full details for a record by source and ID\npanopticon query <sql>      Raw read-only SQL query\npanopticon db-stats         Show database row counts\n\npanopticon sync enable            Enable remote sync\npanopticon sync disable           Disable remote sync\npanopticon sync add <name> <url>  Add or update a sync target\npanopticon sync remove <name>     Remove a sync target\npanopticon sync list              List sync targets\npanopticon sync reset [target]    Reset sync watermarks (re-syncs all data)\npanopticon sync watermark <target> [table]\n  --set <value>                   Show or override a sync watermark\n\npanopticon prune            Delete old data from the database\n  --older-than 30d          Max age (default: 30d)\n  --dry-run                 Show estimate without deleting\n  --vacuum                  Reclaim disk space after pruning\n  --yes                     Skip confirmation prompt\n\npanopticon file overview <path>   Aggregate local provenance for a file\npanopticon file why <path>        Best current explanation for a file or line\npanopticon file recent <path>     Recent local history for a file\n\npanopticon scan             Trigger a synchronous scan pass on the server\n  --no-summaries            Skip summary generation during the scan\n\npanopticon refresh-pricing  Fetch latest model pricing from LiteLLM\npanopticon permissions show Show current approval rules\npanopticon permissions preview Compute permission diff from JSON on stdin\npanopticon permissions apply Apply permission rules (JSON from stdin)\n```\n\nThe server auto-starts on `SessionStart` via hook, so manual start/stop is rarely needed.\n\n## Logs\n\nDaemon stdout/stderr is written to platform-specific log directories:\n\n| Platform | Path |\n|----------|------|\n| macOS | `~/Library/Logs/panopticon/` |\n| Linux | `~/.local/state/panopticon/logs/` |\n| Windows | `%LOCALAPPDATA%/panopticon/logs/` |\n\nLog files: `server.log`, `otlp-receiver.log`, `mcp-server.log`, `proxy.log`, `hook-handler.log`. Daemon logs rotate before each native daemon spawn when they exceed the configured size.\n\n## Configuration\n\n**Environment variables** set by `panopticon install` in your shell profile:\n\n- macOS/Linux: written into `~/.zshrc` or `~/.bashrc`, plus a dedicated\n  `env.sh` in the panopticon data directory for non-interactive shells.\n- Windows: written into both `~/Documents/PowerShell/Profile.ps1` and\n  `~/Documents/WindowsPowerShell/Profile.ps1`, each of which sources\n  `%APPDATA%/panopticon/env.ps1`. A companion `%APPDATA%/panopticon/env.cmd`\n  is also written for manual `cmd.exe` use.\n\n```bash\n# Shared OTel (always set)\nOTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318\nOTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf\nOTEL_METRICS_EXPORTER=otlp\nOTEL_LOGS_EXPORTER=otlp\nOTEL_LOG_TOOL_DETAILS=1\nOTEL_LOG_USER_PROMPTS=1\nOTEL_METRIC_EXPORT_INTERVAL=10000\n\n# Target-specific (set per --target)\nCLAUDE_CODE_ENABLE_TELEMETRY=1           # Claude Code\nANTHROPIC_BASE_URL=http://localhost:4318/proxy/anthropic  # Claude Code (--proxy only)\nGEMINI_TELEMETRY_ENABLED=true            # Gemini CLI\nGEMINI_TELEMETRY_TARGET=local            # Gemini CLI\nGEMINI_TELEMETRY_OTLP_ENDPOINT=http://localhost:4318  # Gemini CLI\nGEMINI_TELEMETRY_OTLP_PROTOCOL=http     # Gemini CLI\nGEMINI_TELEMETRY_LOG_PROMPTS=true        # Gemini CLI\n```\n\nTarget-specific env vars are declared by each target adapter in `src/targets/`.\n\n**Server configuration:**\n\n| Env var | Default | Description |\n|---|---|---|\n| `PANOPTICON_DATA_DIR` | Platform-specific (see below) | Data directory |\n| `PANOPTICON_PORT` | `4318` | Unified server port |\n| `PANOPTICON_HOST` | `127.0.0.1` | Server bind address |\n| `PANOPTICON_LOG_LEVEL` | `info` | Minimum log level for daemon logs and `hook-handler.log` (`silly`, `trace`, `debug`, `info`, `warn`, `error`, `fatal`) |\n| `PANOPTICON_LOG_ROTATE_BYTES` | `10485760` | Rotate a daemon log before startup when it reaches this size; `0` disables rotation |\n| `PANOPTICON_LOG_ROTATE_FILES` | `5` | Number of rotated daemon log files to keep; `0` disables rotation |\n| `PANOPTICON_SERVER_START_BACKOFF_SCHEDULE_MS` | `5000,15000,30000,60000,120000,300000` | Consecutive native daemon start-failure delays before another spawn attempt |\n| `PANOPTICON_ENABLE_SESSION_START_HISTORY_INJECTION` | `1` | Enable recent-history `SessionStart` context injection |\n| `PANOPTICON_ENABLE_USER_PROMPT_SUBMIT_CONTEXT_INJECTION` | `1` | Enable prompt-relevant mid-session `UserPromptSubmit` context injection |\n| `PANOPTICON_ENABLE_PRE_TOOL_USE_FILE_CONTEXT_INJECTION` | `1` | Enable edit-time file provenance injection for supported `PreToolUse` edit tools |\n| `PANOPTICON_ENABLE_PRE_TOOL_USE_READ_CONTEXT_INJECTION` | `1` | Enable read-time provenance injection for `PreToolUse` `Read` |\n| `PANOPTICON_ENABLE_CODE_INTEL_FILE_OVERVIEW` | `0` | Enable Code Review Graph enrichment inside `file_overview` |\n\n`hook-handler.log` now keeps server startup, warnings, and errors at the default `info` level. Per-event success-path lines are only written when `PANOPTICON_LOG_LEVEL=debug` (or lower).\n\nData directory defaults:\n\n| Platform | Path |\n|----------|------|\n| macOS | `~/Library/Application Support/panopticon/` |\n| Linux | `~/.local/share/panopticon/` |\n| Windows | `%APPDATA%/panopticon/` |\n\n## Database\n\nSQLite with WAL mode. Location depends on platform (see data directory above).\n\n| Table | Description |\n|-------|-------------|\n| `sessions` | Unified session metadata — aggregated from hooks, OTel, and scanner |\n| `messages` | Parsed messages (user, assistant, system) with token usage and DAG metadata |\n| `tool_calls` | Tool invocations extracted from messages, with inputs, results, and durations |\n| `otel_logs` | OTel log records (api_request, tool_result, user_prompt, etc.) |\n| `otel_metrics` | OTel metric data points (token usage, cost, active time, etc.) |\n| `otel_spans` | OTel trace spans |\n| `hook_events` | Plugin hook events with full payloads (tool inputs/outputs, tool results) |\n| `scanner_turns` | Per-turn token usage from session files (input, output, cache, reasoning) |\n| `scanner_events` | Tool calls, errors, reasoning, file snapshots from session files |\n| `scanner_file_watermarks` | Byte offsets for incremental session file parsing |\n| `session_repositories` | Maps sessions to GitHub repositories |\n| `session_cwds` | Maps sessions to working directories |\n| `model_pricing` | Cached model pricing from LiteLLM |\n| `watermarks` | Sync watermarks for OTLP export targets |\n| `target_session_sync` | Per-target session sync state |\n\nQuery directly with `panopticon query` or via the `query` MCP tool.\n\n## Development\n\n```bash\npnpm install       # Install dependencies\npnpm dev           # Watch mode (tsup)\npnpm check         # Lint (Biome)\npnpm typecheck     # Type check\npnpm test          # Run tests (Vitest)\n```\n\nTo test the full install flow:\n\n```bash\npnpm build && npm pack\nnpm install -g ./fml-inc-panopticon-*.tgz\npanopticon install --target claude\n```\n\nFor release validation against a copied production-sized DB and real home\nconfig, see `docs/RELEASE-VALIDATION-RUNBOOK.md`.\n\n## Architecture\n\nThe code tree below is useful for orientation. For runtime loop ordering,\nserialization boundaries, and the concurrency/workpooling roadmap, see\n[docs/DAEMON-EXECUTION-MODEL.md](docs/DAEMON-EXECUTION-MODEL.md).\n\n```\nsrc/\n├── cli.ts              CLI entry point (install, uninstall, start/stop, query commands)\n├── server.ts           Unified HTTP server + scanner/sync/prune runtime bootstrap\n├── sdk.ts              SDK shim (observe() wrapper)\n├── config.ts           Panopticon paths, ports, defaults\n├── setup.ts            Install/uninstall logic\n├── log.ts              Log file paths (macOS/Linux/Windows)\n├── repo.ts             Git repository detection\n├── toml.ts             TOML read/write (for Codex config)\n├── doctor.ts           System health checks\n├── sentry.ts           Error reporting\n├── eventConfig.ts      Event type configuration\n├── unified-config.ts   Unified config management\n├── api/\n│   ├── client.ts       API client for CLI/MCP queries via server\n│   ├── routes.ts       Server-side API route handlers\n│   └── util.ts         API utilities\n├── targets/\n│   ├── types.ts        TargetAdapter interface (config, hooks, events, detect, proxy)\n│   ├── registry.ts     Map-based target registry (register, get, all)\n│   ├── index.ts        Barrel — re-exports + registers all built-in targets\n│   ├── claude.ts       Claude Code adapter\n│   ├── claude-desktop.ts Claude Desktop adapter\n│   ├── gemini.ts       Gemini CLI adapter\n│   ├── codex.ts        Codex CLI adapter\n│   ├── pi.ts           Pi adapter\n│   └── hermes.ts       Hermes Agent adapter\n├── db/\n│   ├── schema.ts       SQLite schema, migrations, WAL + auto-vacuum\n│   ├── query.ts        Query helpers for MCP tools and CLI\n│   ├── store.ts        Data storage (insert hooks, OTel, upsert sessions)\n│   ├── prune.ts        Data retention / pruning\n│   ├── sync-prune.ts   Sync-aware pruning\n│   └── pricing.ts      Model pricing cache (LiteLLM)\n├── scanner/\n│   ├── index.ts        Public API (createScannerLoop, scanOnce)\n│   ├── loop.ts         Scanner scheduler — discover, parse, archive, rebuild touched sessions\n│   ├── reader.ts       Byte-offset file reader (only reads new lines)\n│   ├── store.ts        Scanner DB operations (turns, events, watermarks, session upsert)\n│   ├── reconcile.ts    Compare scanner vs hooks/OTLP token data per session\n│   ├── reparse.ts      Re-parse session files from scratch\n│   ├── categories.ts   Tool call categorization\n│   └── types.ts        ScannerHandle, ScannerOptions\n├── hooks/\n│   ├── handler.ts      Hook event handler (stdin JSON → server)\n│   ├── ingest.ts       Hook processing — uses target adapters for normalization\n│   └── permissions.ts  PreToolUse permission enforcement\n├── mcp/\n│   ├── server.ts       MCP server with query tools\n│   └── permissions.ts  Permission management MCP tools\n├── otlp/\n│   ├── server.ts       HTTP OTLP receiver (protobuf + JSON)\n│   ├── decode-logs.ts  OTel log record decoding\n│   ├── decode-metrics.ts OTel metric decoding\n│   ├── decode-traces.ts OTel trace/span decoding\n│   └── proto.ts        Protocol buffer definitions\n├── sync/\n│   ├── index.ts        Public API (createSyncLoop, resetWatermarks)\n│   ├── types.ts        Interfaces (SyncTarget, SyncOptions, MergedEvent, OTLP types)\n│   ├── config.ts       Sync target configuration\n│   ├── registry.ts     Sync target registry\n│   ├── loop.ts         Sync scheduler — core and OTel loop instances share this implementation\n│   ├── reader.ts       Batch reads from SQLite + hook/OTLP dedup\n│   ├── watermark.ts    Watermark persistence\n│   └── post.ts         HTTP POST with retry + exponential backoff\n├── summary/\n│   ├── index.ts        Session summary public API\n│   ├── llm.ts          Optional LLM summary/enrichment helpers\n│   └── loop.ts         Legacy `sessions.summary` generation pass\n├── archive/\n│   ├── index.ts        Archive public API\n│   ├── backend.ts      Archive backend interface\n│   └── local.ts        Local filesystem archive\n├── workspaces/\n│   ├── index.ts        Workspace detection\n│   ├── superset.ts     Workspace superset logic\n│   └── types.ts        Workspace types\n└── proxy/\n    ├── server.ts       API proxy — routes built from target registry\n    ├── emit.ts         Event emission from proxy captures\n    ├── streaming.ts    SSE stream accumulation (Anthropic + OpenAI)\n    ├── ws-capture.ts   WebSocket traffic capture\n    ├── sessions.ts     Proxy session tracking\n    └── formats/\n        ├── types.ts      Format parser interface\n        ├── anthropic.ts  Anthropic Messages API parser\n        ├── openai.ts     OpenAI Chat Completions parser\n        └── openai-responses.ts  OpenAI Responses API parser\n```\n\n### Target adapters\n\nEach supported coding tool is a self-contained adapter in `src/targets/`. An adapter declares:\n\n| Concern | What it specifies |\n|---------|-------------------|\n| **Config** | Directory, config file path, format (JSON/TOML) |\n| **Hooks** | Event names, install-time config merge, uninstall cleanup |\n| **Shell env** | Target-specific env vars for the shell profile / PowerShell profile |\n| **Events** | Event name mapping to canonical types, payload normalization, permission response format |\n| **Detection** | Display name, `isInstalled()`, `isConfigured()` for doctor |\n| **Proxy** | Upstream host (static or dynamic), path rewriting, accumulator type |\n| **Scanner** | `discover()` finds session files on disk, `parseFile()` extracts turns + events |\n\nTo add a new target, create `src/targets/<name>.ts`, implement `TargetAdapter`, call `registerTarget()`, and add the import to `src/targets/index.ts`. All consumers (install, uninstall, doctor, hooks, proxy, shell env, scanner) pick it up automatically.\n","readmeFilename":"README.md"}