{"_id":"@skalpelai/prosumer-hook","_rev":"33-685cd2f897b6802d3537e818239f6feb","name":"@skalpelai/prosumer-hook","dist-tags":{"latest":"0.3.28"},"versions":{"0.1.0":{"name":"@skalpelai/prosumer-hook","version":"0.1.0","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.1.0","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"9e5073ef08ccc23dbffd0b6534bf4c76cd6ea7b8","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.1.0.tgz","fileCount":6,"integrity":"sha512-iKAHQrdX/dcRIo+H5Qc4MHoCmh3rbcRwIgcPVNSHDvq9DSXdgUpgRPkKMtQn135QKyQNtB1J5w9ux4/JlCeP+A==","signatures":[{"sig":"MEQCIEgM2N0vJeF7vCI5oHQIrM3iohj5yitLSCnKPpNZ+kGcAiB+4dbPmxgrs7Mwk0xZIXkwMJ1Dn0GeP7qOmbLdR43fBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22471},"type":"module","engines":{"node":">=18"},"gitHead":"393086cb94faec017f96f653460adea41ef2e678","scripts":{"test":"node --test install.test.mjs","postinstall":"node setup.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Relays each prompt to the hosted behavioral graph and injects the retrieved 'worked-vs-thrashed' fork into the model. No engine, no Python, no daemon, no binary — pure Node, so it runs wherever Claud","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.1.0_1783386050371_0.979298583771278","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@skalpelai/prosumer-hook","version":"0.2.0","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.2.0","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"bb83d38648278519cf8def8af4853f414b1ed438","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.2.0.tgz","fileCount":8,"integrity":"sha512-UvgXKiFVVV7hRbsuixKVBJhVRGI7+WrDNXEgb+8iMYBE0tx+LKerAV4RBEtqWOX2dLhTOxVIcOYjHTlZsDTO2Q==","signatures":[{"sig":"MEUCIQCpOVMboV6j8LjO6XFeqoQzaVBH3xNn/R3Pj5HYQf4LgAIgRD/3JwkKEb4Kb4AQQOv0GD/PnqYNDpypCilc3RNFjhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35027},"type":"module","engines":{"node":">=18"},"scripts":{"test":"node --test install.test.mjs","postinstall":"node setup.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.2.0_1783393773705_0.46036121531403773","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@skalpelai/prosumer-hook","version":"0.3.0","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.0","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"d27e2586df98d4c1ff3471de1adae3010c318408","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.0.tgz","fileCount":9,"integrity":"sha512-2bzit2wuJNGBuEvJC3mlBZH+MI3gAIni44Ye8agqFhi2DHUS9V3HAC8nvg6NA57470M4yLPFoQ6ivru6sCE+uQ==","signatures":[{"sig":"MEYCIQDSnNf4LRg9C5+bMnIPVPkm7YwBuxev0X4RGbDFmN5NsAIhAOck1WQL/sV3e7ANJiSZIPYtbxhyhmUN0ctd8bASugcp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40514},"type":"module","engines":{"node":">=18"},"scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.0_1783398239228_0.10590628364444177","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@skalpelai/prosumer-hook","version":"0.3.1","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.1","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"33c355668c486fb4a8b7860e05631d8a1eccc557","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.1.tgz","fileCount":9,"integrity":"sha512-fOoZFhqKHG7LnUU5shNPi0WQxLDvQ3srIP4d/5SsYX58jBqEKbriy3P5jHpT/k5h1BDjiGUf9hrlZkZsP14cfA==","signatures":[{"sig":"MEUCIQDeNQJewotBJKSFWMLr/fGp8U091EabvehcX7lI64ROiQIgF4wwcANOuonRRvijk7Fq/DFHWFm3dNxqrCuFnfYCH5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34128},"type":"module","engines":{"node":">=18"},"gitHead":"b16d739064fc83307d97d1d4fc2e3a5f50811019","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.1_1783400768216_0.3035580258208004","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@skalpelai/prosumer-hook","version":"0.3.2","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.2","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"fe25cb7ff4aa69db40314cbc8649c941bbc94101","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.2.tgz","fileCount":9,"integrity":"sha512-Lrxth+ebsbAVdQfGnVBmNHMiRbqLYbv+cHGdqDXOddF+8khnhMjfaczdrFD5g74qiz9ySg/2pd2rZHGR4oLXeA==","signatures":[{"sig":"MEQCIBpQjwr1XK67aeOzCNgfm+K0eJpG8exQ3J017YbGKVBoAiB62dJY9W3EQcFl9QNkM6ynP/NwBme0SxQPiZPieEJC+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34125},"type":"module","engines":{"node":">=18"},"gitHead":"b16d739064fc83307d97d1d4fc2e3a5f50811019","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.2_1783403687947_0.5909411588997877","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@skalpelai/prosumer-hook","version":"0.3.3","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.3","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"a550eb1e0f52c2ab7a455f1aa0e7d6d29550b892","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.3.tgz","fileCount":9,"integrity":"sha512-HpY2xC0c7inUAJxc0pVOYZ7/kQCfvbFL7mHNyruMy4sLaL6mabO2jTeA4B8byBBW1z0K1Z8+tj+HUg/GNe87bg==","signatures":[{"sig":"MEUCIEPGk1ct6raNMNa799nRuw9QLwz8JDZYWXY41xV9/vSmAiEAlpBjTn+iVNYkq/ln7S2dHyhROjDqg+paykfTkv6+y+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46019},"type":"module","engines":{"node":">=18"},"scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.3_1783405269824_0.716771618161171","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@skalpelai/prosumer-hook","version":"0.3.4","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.4","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"4f7b610ffaf500022ea13b73c4f2726a2a7c6acc","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.4.tgz","fileCount":9,"integrity":"sha512-xpBpLRNtc7Rx6qAD5BRH132XVcShpN//xJ0qRwE6j2qpnJKiwI2giS8b6/L6vN6YS23VU9LQniJyi5VI1+EmzQ==","signatures":[{"sig":"MEQCIFKDzEGvIHdrhrHEqyAdJl0NbwzeA7TXlHfHVHWeEXQGAiB7gNY/2tii8N4giL3jC/f9/g7Vq0kSN6tTgpInXPUb0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46877},"type":"module","engines":{"node":">=18"},"gitHead":"ef9f29f004c6cecc761ced764ffe981e09a6af95","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.4_1783407523553_0.5355455374200788","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@skalpelai/prosumer-hook","version":"0.3.5","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.5","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"2198c0b14677cf0e08df78d176020081dd599983","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.5.tgz","fileCount":9,"integrity":"sha512-mc4zpbv98Dd5WvrG7asCY+r8krgRsVdMr3Dc43IDPAZF6p/D17KeKSBmdH/mybcs8M+MVz9MUMeXQsvOb25qhg==","signatures":[{"sig":"MEYCIQCZop6YXGdVGIRiD2i7AZ/xDr1w+hH36D1PRJrkmBunlQIhAMXlYpaFHrkCNRuGJdrx09reYN5CBpCr/5oWIs9MHm5Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47714},"type":"module","engines":{"node":">=18"},"gitHead":"2a95b51c65c045f3ae06449e89c584511172f1e8","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.5_1783409021606_0.29419064020681285","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@skalpelai/prosumer-hook","version":"0.3.6","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.6","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"dec71eff4a5dc56c17eb80ee3524617efab4d888","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.6.tgz","fileCount":9,"integrity":"sha512-LH51fvfawq+0sjowjc1GsOgDHSqHjjjQY99oPHiQci7l3e2KMp2oNHuoOK1XVQS9+fgfpiKhv69B0MMJ/pe3Mg==","signatures":[{"sig":"MEYCIQC6wvQVXO6TfFjxBfaFTfiRASc7Zro3tAKbgLGiaEDpkwIhAJKTAzO5x9pDMRUtmg8rQ5DszoRT6uwzZq1S3x/KRgmu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49144},"type":"module","engines":{"node":">=18"},"gitHead":"bc9a48aa1fd947d3f652d7d157239b5cdfade028","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.6_1783409857587_0.1490348437157878","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@skalpelai/prosumer-hook","version":"0.3.7","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.7","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"e59323e42cbf79bb55d0bfe01db1dff5fa760087","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.7.tgz","fileCount":9,"integrity":"sha512-Nhh/nBKqen8bK7R5/FsYCOPODOzCJfrpQme0ut2XnDtI+JsAl6GMZXopEpX5icmMIT35Wj0jOpVJHcZ3olv3Pw==","signatures":[{"sig":"MEYCIQDvgE6QpBgAd2MJTsj+g8buK/JfRewAb9360uaRB0JU0gIhALK9Raa1wRe3qrTgnSy9AEDJlUj6gcvsVeFh+K/M5/Pw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54433},"type":"module","engines":{"node":">=18"},"gitHead":"8480ae261a109073b8654cd9279a912d432c4927","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.7_1783413614156_0.6861927626561268","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@skalpelai/prosumer-hook","version":"0.3.8","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.8","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"aefe21cf0423d5db40769262ddc05a36dce4a223","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.8.tgz","fileCount":9,"integrity":"sha512-77ccxiiyGhm8M7U1o1psiSPQcM9cY2RRXgsgJ8eD0U7epvbBABtts6BYEj+dE1c5prCxcJYFGP81O+VVDxvbzg==","signatures":[{"sig":"MEQCIDDvnEMoUz3fpFJyaaCpFFkxHYA6+qb8FJvAbYaUZjZxAiA1REs1rTKA/aIunmipicuJom5Jpb3647icNe6Qc3hrHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54561},"type":"module","engines":{"node":">=18"},"gitHead":"d92962c38908414d14ab61c4c1aca62603bde3fb","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.8_1783414635116_0.13270626035087862","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@skalpelai/prosumer-hook","version":"0.3.9","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.9","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"56f37a8a03e9257c8073ba39f4e4478e21dbbc54","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.9.tgz","fileCount":9,"integrity":"sha512-ARmooWTbMXe3cvYwssV7yv8vMHxq50BeKerObyS8C0mYRv1hVfv5iQbmQ/Y/+i29iw6K2O3yJV8Pwz5pcxU3oA==","signatures":[{"sig":"MEYCIQDi/84k2N/DGf2ov6BwDUr1aK5tllAcg04juhlO0fPhbAIhAOy3hLXjjEZYf3IU2uPPovbar5lcCsMkBtzicbiFxgQ1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58218},"type":"module","engines":{"node":">=18"},"gitHead":"7c45159415db9b128b542e36dbde72a0f9b5d53b","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.9_1783417079123_0.4981795455454572","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@skalpelai/prosumer-hook","version":"0.3.10","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.10","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"19aa28198883dcf06a854219d8ffa84311cf7f43","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.10.tgz","fileCount":9,"integrity":"sha512-kDnFWQogkR74IJpKc8QJhiPb/Pr6QS4wGDAy1uPszvQD2+mZCgGUgaj6ToRog5y4aGUAxW6TrJWcX6csdKT3YQ==","signatures":[{"sig":"MEUCID1PHefD/93cRw0URmDEA3vV+wCf3RrSt8+qiRG3CT6wAiEA4hSs+ZQZ44XmnkifHiaggySBRcOug6rjvx+z7NdAJbw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58239},"type":"module","engines":{"node":">=18"},"gitHead":"146879ecd2466d084c25b57f0cb9ea633788e0d5","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.10_1783418458570_0.6793125278031729","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@skalpelai/prosumer-hook","version":"0.3.11","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.11","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"7ae8a293c9fcd3996b3f514f39ed78a5808082f2","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.11.tgz","fileCount":11,"integrity":"sha512-rmenH9CGTc4ZvddljofevZBflnhzspWkf74yCqpGStKTUFUT9wZzBmjsdoDsZdZOUfRr22dOcJjR4RqWfASshg==","signatures":[{"sig":"MEYCIQCcmin+XsUEdl3yAiycMY1ULgmLmnun2/VMmST2KxF2jQIhAPDZvgfTLBJVh/SpRF9Xm6yKIOTWcalolYN7aFnGbXBr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64427},"type":"module","engines":{"node":">=18"},"gitHead":"49e613b5c26fd2dd7369c1ee223a6e181c3f8b06","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.11_1783471366666_0.549529669232135","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@skalpelai/prosumer-hook","version":"0.3.12","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.12","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"0faeee2deb27a1387c43624cf0fd6f3b224021cf","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.12.tgz","fileCount":12,"integrity":"sha512-0DfYPHevXunOHmHD70pcWySNdfFuGtFqyjIzp4D0jNyXR1vP2hMppdDuWKEyAQbsI9vsCs6kWq11yIVwzTYKxg==","signatures":[{"sig":"MEQCIFoeYPING6nSHkyJnMc+2FwtDH+n0kfxdxy2kkDaFl73AiAdea0y5PyQQ1R8O33PuKBCelNybLaL1fZ/k8Td2od7xg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73040},"type":"module","engines":{"node":">=18"},"gitHead":"ad7c90ed3d27af38136228922dcd273f3ae4376f","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"11.15.0","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.12_1783475923489_0.7557994316718737","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"@skalpelai/prosumer-hook","version":"0.3.13","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.13","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"9ad904292d42980e801996713eabbdb2089807ad","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.13.tgz","fileCount":11,"integrity":"sha512-S7qL2XYX/u9FtiqQO2/tF7vQLnXBS67okFrFlpw1YPCIiOXwwNYtXgVnmDE0aUangCCb/A5LLKIH34r6sAFyBA==","signatures":[{"sig":"MEUCIDWf93RQpWz7Y3k73oaPjovPexYivXhce3A7myYlv30PAiEA4AZYsuBix+ytnHFoBlLkc5lRW0DA7JV01Wj+262eiOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69237},"type":"module","engines":{"node":">=18"},"gitHead":"5f0f5a59b6d607ab48e6fc9ba76678f9eec3f6ad","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.13_1783476881663_0.7574512592316422","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"@skalpelai/prosumer-hook","version":"0.3.14","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.14","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"6c610e7dc06d69c84a2a66eaae70b40964d3c899","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.14.tgz","fileCount":11,"integrity":"sha512-FXjzGS5YQMHbjKhgwC5J4cxve+v1csViqlfOrZsSMw1pOSOFnWxE509alywUjTSBinomS5euo/D1nPn6MQa2Ww==","signatures":[{"sig":"MEYCIQD3lZ/xZu+LCjoQgsL//AbYZ1le/ficvptvGedwp4S03gIhALMX7nbbDni2T9olS/rotmGdwUoLRqby76VJQ/BQh+vx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73443},"type":"module","engines":{"node":">=18"},"gitHead":"adbb028bff1d84cddcc68d68d2d7a05f4b31b79c","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.14_1783491369263_0.37488519475456705","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"@skalpelai/prosumer-hook","version":"0.3.15","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.15","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"39542ea85e7210a756a2e48d1ba8700b78821625","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.15.tgz","fileCount":11,"integrity":"sha512-RmqheyB6Umrb607RlBK7ltWZ+lw0PBsVPaptLXPR4pfns4NL/bygSSIvyPIVXZiLv5KNDeLfi5ojgPWUFCyNWg==","signatures":[{"sig":"MEUCIQC1CoVmxGLPvLrsHizLh3v3LKeFtUpAd5IyIx1KC8PW3AIgVqr0OAvHbgUKK2XRCfipkGG0SvyNJ1hoXcrSaCTRFDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75757},"type":"module","engines":{"node":">=18"},"gitHead":"09f4ff767f686f84fc4f59f275dfe43b32894d1d","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.15_1783507390828_0.11063707293482561","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"@skalpelai/prosumer-hook","version":"0.3.16","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.16","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"faea8e07f6981fae8602fa6c3d8d875875f718f1","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.16.tgz","fileCount":11,"integrity":"sha512-celHsMDYHA/9QmOL/cOO5ewDi0142qEM0iS9ALpRj0Xqa9YMpRZl2kDjTf88c4R9FUrV3SKlQJ/K5oDdycSGgg==","signatures":[{"sig":"MEQCIFeo2fSC1sbbSHCx90bgKdfOx797ydaCS6KcJNaifH3GAiAPP/zPhsQugrkXdzcOfoGs4vQcm74TLDHn0Jvvh6QAxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77057},"type":"module","engines":{"node":">=18"},"gitHead":"d7140e4a135d2b34d7a276e42471bb81d43880d9","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.16_1783565896624_0.7313451578272843","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"@skalpelai/prosumer-hook","version":"0.3.17","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.17","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"3bffc4640260d0b6853fb8fd1df4952368c5c066","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.17.tgz","fileCount":11,"integrity":"sha512-vO/lYSrPJe7qUUf0C7/YqfxSB+ASBS5PNpWR/7HlTjjgn0NFHTF7lTiQlQlx80K+q/B8YIU7UnsmeXpzWb6MVQ==","signatures":[{"sig":"MEUCICQXGUI8DkJxzJyIv86nZLD0uIo05ZZoKo3qYvNvWDQiAiEAk8D2MyKfb1TLD1FGtDnqViqP55aqtVSk2ZNT7hstlp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100219},"type":"module","engines":{"node":">=18"},"gitHead":"8dc88413721814880b2528b7593d85ffd19fe1c9","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.17_1783579507913_0.6289974586670464","host":"s3://npm-registry-packages-npm-production"}},"0.3.18":{"name":"@skalpelai/prosumer-hook","version":"0.3.18","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.18","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"f5738f414fe92505b7b6bc6c131b5823db104412","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.18.tgz","fileCount":12,"integrity":"sha512-GyxiOF/3xHBJncOLdQzDkVCNKMU4yUgHegyybl2tVBu9TdXyBIoXpAXKBQA6AC55yyw+ff9pXQ4j4t17jTSjSw==","signatures":[{"sig":"MEYCIQDTKW+5PLlI0DbbzW7EIdOZ1wTwO/KIDjOQAoT8av8u8wIhAMCPsamXYPVxqIt2GgV3whXTatxr6eDVhB3lywBHB6eh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104337},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"f0f5feb88b027eb8d4b2669eded53f6cb45467f6","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.18_1783580691700_0.4863022505649581","host":"s3://npm-registry-packages-npm-production"}},"0.3.19":{"name":"@skalpelai/prosumer-hook","version":"0.3.19","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.19","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"f7e95df83c3ab821c3f9b7c1fc0a3a4da3cb86f0","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.19.tgz","fileCount":12,"integrity":"sha512-giIERQQtQOiEvCeB5QWpTR88wQ0C6mSso8yzP1Q86KnQd5toaRdMWV3mJdrsIsCZsRHsTk8wcp4t/cKiC3ORVA==","signatures":[{"sig":"MEUCIQDiBWF1OkORqlhEr+kAVvG5mEogkEYmMN25jmLoC14HaQIgJnXtCRrvdj67z1yMnabHeWO7W4gSeHyEtiFsimzVg9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104337},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"f4a4bc4bebf82aa61b2f2f7cfe4ef7e591e3e273","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.19_1783591122299_0.48835190167576314","host":"s3://npm-registry-packages-npm-production"}},"0.3.20":{"name":"@skalpelai/prosumer-hook","version":"0.3.20","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.20","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"a337c21abbe7f60796cfb16d293599099acf99ec","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.20.tgz","fileCount":12,"integrity":"sha512-hJVIEkS9NY9sM5wySMHa3m+nYc8ysmlYai1wOQHja2FYN8FKKt6TO2w1cWI+JFuJEqwcD7xLqC43BL3WSYjrNQ==","signatures":[{"sig":"MEUCIQC4Vpvad05iDO3dvNVcnUY8922Glhb0dXom8ZY4aGSh4AIgOiEkZefMhFOPfjqycnp1WfwXpuWROIvFTiedn73tS5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106996},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"7f1eabf31d1015829b74bd876657df4e3637c4b2","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.20_1783594215132_0.9959465972419166","host":"s3://npm-registry-packages-npm-production"}},"0.3.21":{"name":"@skalpelai/prosumer-hook","version":"0.3.21","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.21","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"e9f4c188119c17b2e8724f5153e269b4b1e8331d","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.21.tgz","fileCount":12,"integrity":"sha512-F9IVtZxxJXDbdC3nr2ECwtmvbH+mDXxCjk2GXlM1CX7PqKrFLV4tlD0fMEi8VRFUxUTvEBukfXlvW83DaIb8JQ==","signatures":[{"sig":"MEYCIQDAm7SPWB3KdjyKjsG1QBVHMpeubFxy7tAx8ugpJU8jsAIhAKJ+ViarpQDIrccOvQw3P03TOyxXTziQUj4kWJsZG7EZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107358},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"40939b9ee55eeafbce5ca7f9780c56654c07cc3a","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.21_1783648254878_0.8317640891857092","host":"s3://npm-registry-packages-npm-production"}},"0.3.22":{"name":"@skalpelai/prosumer-hook","version":"0.3.22","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.22","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"ed3fdbd0b5f54378f670c65c66bdf2a486114504","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.22.tgz","fileCount":12,"integrity":"sha512-psoveqnYqgUXfZtcANMn27QC0E3gGbTvjnKMip5jwdlBbT3eomITZDNCVpQ33Tr2yRBpaPZss3J/wiGhhwAkDA==","signatures":[{"sig":"MEYCIQDtOdiEQLJbc92eOUseHcJ4ypkMXbLZrtB7q7aMEzJPFgIhAK0/wbgnMo0ysNn4yQ6u8oRM0byg0nwk5kvQUtGVwSXk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106614},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"c3c4ed305405eb22b838d8bebe3bd984a0dfc916","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.22_1783655634987_0.19647558368824392","host":"s3://npm-registry-packages-npm-production"}},"0.3.23":{"name":"@skalpelai/prosumer-hook","version":"0.3.23","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.23","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"21adc5d55c1e42622881b9a5b85a9115a30c8259","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.23.tgz","fileCount":12,"integrity":"sha512-3PgaNjmO9apbQUJ/IS/UlrU5dFptUZxzL5moSfKYb9Uddbb6IdoKR76C+Mq/69B4uhy4tA7d19DaqwwEs+VpOg==","signatures":[{"sig":"MEUCIQDmoNEHgNdrQXAhnZDAfjIQP78J3Rw3cjvIPy3qQEc/QgIgC2lJzu5FS3F6BAbd/DDpIweZsbCbX9a6PC2JNm1LRrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110391},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"7aa654b46a834b7d121d8ec21ed903601a8e0ed4","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.23_1783670700329_0.0800407233437761","host":"s3://npm-registry-packages-npm-production"}},"0.3.24":{"name":"@skalpelai/prosumer-hook","version":"0.3.24","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.24","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"316977c23a414ac1b30136c3bd630c152b78a66c","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.24.tgz","fileCount":12,"integrity":"sha512-7N2mxNPpXQEbKwGO+nVR2md4CvCkYCS+apsrlyU+MIwPKsIts2YTnrbTy+SmWj2QZT0YrKicdga32m/a+xGgVQ==","signatures":[{"sig":"MEUCIGemeA/ZMD2zmbLesltKRqpMtqVqmnUBrn0MOjieKjpQAiEA8JnUFerQalQFiTnD3w47vJxRYYQ1/SiJOxjpv7i+R98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113057},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"43662ffa75f64c353593025753ee11f129ada9e1","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.24_1783677284379_0.38819854659265984","host":"s3://npm-registry-packages-npm-production"}},"0.3.25":{"name":"@skalpelai/prosumer-hook","version":"0.3.25","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.25","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"3e53a1177ebcbaf132b842c8263eeda4c96a5435","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.25.tgz","fileCount":12,"integrity":"sha512-aifXccPNvNTRZSC7kxWOYpyluKLPMsGTKw9r3utiTKYIaDURbasahHHcpJvU9UWbPbIxboXsbJ+12URWywl+tg==","signatures":[{"sig":"MEUCIBSWUHAtxWoymC7nIHQc9JAj1YV3prRHHf313wpXIzaEAiEAggb5KVnfUNfDFP7UNdD6sFQVy7naA6t4sUlONfLgtdY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115584},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"db685d691f2f7780ae8afc7e3aaefb4fa9fb38bb","scripts":{"test":"node --test install.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.25_1783679216843_0.7067895963040416","host":"s3://npm-registry-packages-npm-production"}},"0.3.26":{"name":"@skalpelai/prosumer-hook","version":"0.3.26","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.26","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"278ee116a51b76cfeed02f21ddc962896fe9db6b","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.26.tgz","fileCount":12,"integrity":"sha512-l/IwFEapgtYh9VWy4NCtglEyV3pJAiqFyf0RjHdHyKHFhDwFWkysQJVqBzAn+/VCTcQl2eCJScSi5PahJPGstw==","signatures":[{"sig":"MEUCIGoWut8nXMPjg7KH6NKCCDs3IrrhYJTEkSY/dqhva43jAiEAg01fEZag8cKd6Fp5rkHUM2+j6k1AXf0g/jnAkyxQ96U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121431},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"93af91d63e1c9948a287e83f60149b0281861d3e","scripts":{"test":"node --test install.test.mjs auth.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.26_1783688247124_0.2160022671399291","host":"s3://npm-registry-packages-npm-production"}},"0.3.27":{"name":"@skalpelai/prosumer-hook","version":"0.3.27","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.27","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"1e17224aa0786215a198d5464ef96ab82088b074","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.27.tgz","fileCount":13,"integrity":"sha512-pe0gEyt7AT1A33NgLRNPLE1eR+T3zDnf3xS+lO0cNP2K8R3uzTiSfqH7V26PsjxTK4KvKp/gMMgiGotufh0gkw==","signatures":[{"sig":"MEQCIAPCs/23mtedu1lNNaBL+aT+d8yO6pPujXUtcXw5Piv4AiA9pugca4pDAZgEN2NZfEjvu5p7DV6FLB8pR2EE2yh82Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128626},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"bd839156ce702cf3ede8542124af323ab9c82d9e","scripts":{"test":"node --test install.test.mjs auth.test.mjs insights.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.27_1783698505180_0.8588861878460272","host":"s3://npm-registry-packages-npm-production"}},"0.3.28":{"name":"@skalpelai/prosumer-hook","version":"0.3.28","keywords":["claude-code","codex","hook","behavioral","skalpel"],"license":"UNLICENSED","_id":"@skalpelai/prosumer-hook@0.3.28","maintainers":[{"name":"skalpel-ai","email":"nicholas@skalpel.ai"}],"homepage":"https://github.com/skalpelai/skalpel-v3#readme","bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"bin":{"prosumer-hook":"setup.mjs","skalpel-prosumer":"setup.mjs","skalpel-prosumer-hook":"skalpel-hook.mjs","skalpel-prosumer-login":"login.mjs","skalpel-prosumer-hook-session":"skalpel-hook-session.mjs"},"dist":{"shasum":"fdfce7933cadaecd177996e5541c32e206ed6df7","tarball":"https://registry.npmjs.org/@skalpelai/prosumer-hook/-/prosumer-hook-0.3.28.tgz","fileCount":13,"integrity":"sha512-HaWEyG3X2q1vV/zs4R8DqGUSDI2BK02wkXXmg1pSaTlNLrqgAHJFTyjyqqhacxA92DuFPZS0Ow2a2f+9d7cmyQ==","signatures":[{"sig":"MEUCIQDmfvDxRUndeuKfwpghzGvrPVSElyHL+dGU4omJYITKNAIgXBV+9cBSUuWyCk1PazJjnDhLMJ+z71xtiyt9QX6yU+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130990},"type":"module","//files":"Must list every file install.mjs stages into ~/.skalpel/hooks — a file that is copied but not published is absent from the tarball, and staging aborts mid-way. install.test.mjs pins this.","engines":{"node":">=18"},"gitHead":"9abc25245d8991bce1910ebe54fc184062db26bf","scripts":{"test":"node --test install.test.mjs auth.test.mjs insights.test.mjs","postinstall":"node postinstall.mjs","install-hook":"node install.mjs"},"_npmUser":{"name":"skalpel-ai","email":"nicholas@skalpel.ai"},"//version":"CI-managed — do NOT hand-edit. publish-prosumer-hook.yml derives (latest-on-npm + 1 patch) at publish time; this stays 0.0.0. See RELEASE_RUNBOOK.md.","deprecated":"Deprecated — the skalpel behavior hook is now bundled into the main CLI. Install with: npm i -g skalpel","repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"_npmVersion":"10.9.8","description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prosumer-hook_0.3.28_1783720092150_0.32668355809496075","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-07-07T01:00:50.227Z","modified":"2026-07-12T10:44:55.386Z","0.1.0":"2026-07-07T01:00:50.525Z","0.2.0":"2026-07-07T03:09:33.873Z","0.3.0":"2026-07-07T04:23:59.358Z","0.3.1":"2026-07-07T05:06:08.442Z","0.3.2":"2026-07-07T05:54:48.063Z","0.3.3":"2026-07-07T06:21:09.989Z","0.3.4":"2026-07-07T06:58:43.690Z","0.3.5":"2026-07-07T07:23:41.856Z","0.3.6":"2026-07-07T07:37:37.752Z","0.3.7":"2026-07-07T08:40:14.301Z","0.3.8":"2026-07-07T08:57:15.244Z","0.3.9":"2026-07-07T09:37:59.261Z","0.3.10":"2026-07-07T10:00:58.795Z","0.3.11":"2026-07-08T00:42:46.839Z","0.3.12":"2026-07-08T01:58:43.623Z","0.3.13":"2026-07-08T02:14:41.874Z","0.3.14":"2026-07-08T06:16:09.427Z","0.3.15":"2026-07-08T10:43:10.954Z","0.3.16":"2026-07-09T02:58:16.762Z","0.3.17":"2026-07-09T06:45:08.040Z","0.3.18":"2026-07-09T07:04:51.862Z","0.3.19":"2026-07-09T09:58:42.438Z","0.3.20":"2026-07-09T10:50:15.273Z","0.3.21":"2026-07-10T01:50:55.016Z","0.3.22":"2026-07-10T03:53:55.152Z","0.3.23":"2026-07-10T08:05:00.434Z","0.3.24":"2026-07-10T09:54:44.526Z","0.3.25":"2026-07-10T10:26:57.026Z","0.3.26":"2026-07-10T12:57:27.263Z","0.3.27":"2026-07-10T15:48:25.332Z","0.3.28":"2026-07-10T21:48:12.286Z"},"bugs":{"url":"https://github.com/skalpelai/skalpel-v3/issues"},"license":"UNLICENSED","homepage":"https://github.com/skalpelai/skalpel-v3#readme","keywords":["claude-code","codex","hook","behavioral","skalpel"],"repository":{"url":"git+https://github.com/skalpelai/skalpel-v3.git","type":"git","directory":"prosumerV0/skalpel/client"},"description":"The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary ","maintainers":[{"email":"nicholas@skalpel.ai","name":"skalpel-ai"},{"email":"raahilg6@gmail.com","name":"raahilg6"}],"readme":"# @skalpelai/prosumer-hook\n\nThe lightweight Skalpel client for Claude Code / Codex. Each prompt is relayed to your hosted\nbehavioral graph; when you're about to repeat a costly pattern, the retrieved\n\"worked-vs-thrashed\" fork is injected back into the model. No engine, no Python, no daemon —\npure Node, so it runs wherever Claude Code runs. **Fail-open, always**: any error means nothing\nis injected and your prompt proceeds untouched.\n\n## Install\n\n```bash\nnpm install -g @skalpelai/prosumer-hook\nskalpel-prosumer setup --api https://graph.skalpel.ai\n```\n\nSetup wires two hooks into Claude Code (`~/.claude/settings.json`) and Codex\n(`~/.codex/config.toml` + `hooks.json`), idempotently and without touching your existing hooks:\n\n- `SessionStart` → `skalpel-prosumer-hook-session` — injects your standing behavioral profile\n  once per session.\n- `UserPromptSubmit` → `skalpel-prosumer-hook` — per-prompt graph retrieval + fork injection.\n\nCodex users: run `/hooks` inside Codex once and Trust the two skalpel hooks.\n\n## Configure\n\nConfig precedence: environment (`SKALPEL_API`, `SKALPEL_USER`) → `~/.skalpel/client.json`\n(written by `skalpel-prosumer setup --api <url> --user <id>`) → local default\n(`http://127.0.0.1:8787`).\n\n> **Identity note:** `--user` / `SKALPEL_USER` is a **local/dev convenience only**. In\n> production, your identity is minted by the Skalpel platform from your authenticated account —\n> a caller-supplied user id never selects whose graph is read.\n\n### Sign-in reuse from the main `skalpel` CLI\n\nIf you already ran `skalpel login` (the main Go client), the hook reuses that sign-in — no second\nlogin. Token source order: `SKALPEL_USER` (dev) → the `skalpel` CLI's Cognito auth file\n(`$SKALPEL_CONFIG_DIR/auth.json`, else `~/.config/skalpel/auth.json` on Linux,\n`~/Library/Application Support/skalpel/auth.json` on macOS, `%APPDATA%\\skalpel\\auth.json` on\nWindows) → the hook's own `~/.skalpel/auth.json` from `skalpel-prosumer-login`. The CLI's file is\nnever written by the hook. Set `SKALPEL_AUTH_IGNORE_CLI=1` to skip the CLI file.\n\n## Local insight records\n\nEvery insight skalpel surfaces (a steer, a caught break-out, a spiral reset, a feedback ack, the\nsession recap/profile) is also appended as one plain-English JSON line to\n`~/.skalpel/insights.ndjson` — local only, nothing is uploaded. Rows carry\n`{ts, kind, display, label?, mins?, harness?, session_id?}`; steer rows also carry an `id` (the\nsteer's join key), and one turn later a display-less data row\n`{ts, kind: \"adherence\", ref: <that id>, outcome: \"followed\"|\"ignored\"}` records whether the steer\nlanded (`followed` = the n+1 credit paid; `ignored` = same work-type repeated, no credit;\nindeterminate turns write nothing). The file is capped (~512KB, newest\n400 lines kept) and writes are fail-open, so the log can never block a prompt.\n\nWhen spawned embedded in the skalpel TUI (`SKALPEL_EMBEDDED=1`), the hook sends\n`surface: \"panel\"` on `/retrieve` — the TUI renders insights in its own panel, so the server keeps\nthe behavioral steering but drops the \"emit a 🔬 line\" instructions. Without that env var the\nrequest body is unchanged.\n\n## Uninstall\n\n```bash\nskalpel-prosumer uninstall\n```\n\n## Relationship to the `skalpel` package\n\nThis is the **lightweight, hosted-graph** surface: no daemon, no local engine, points at the\nhosted brain. The full local-first experience (local graph build, daemon/proxy, onboarding)\nships separately as the main `skalpel` package. The two install surfaces use disjoint bin names\nand hook markers, so they never clobber each other.\n\nPublish / release notes for operators live in `RELEASE_RUNBOOK.md`.\n","readmeFilename":"README.md"}