{"_id":"@ascenda-one/cursor-hooks","_rev":"13-1390e32fe4b61edb9b96e1a900e8548b","name":"@ascenda-one/cursor-hooks","dist-tags":{"latest":"0.1.28"},"versions":{"0.1.16":{"name":"@ascenda-one/cursor-hooks","version":"0.1.16","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.16","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"5f13986be76669df836b67072d94789114d3931c","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.16.tgz","fileCount":12,"integrity":"sha512-R0T4n7Qlsn2TyiHf1NN4P1ShibbeLOVM1LIJmFrDHUWXJw/peYuVJRzhpwrHf148mZuMQWkO6H7x3fusQoowBA==","signatures":[{"sig":"MEUCICMmcrpnsavK4vbDX0s4v5j26gur442MJg1YKf/wzyAMAiEAoF6HReAWxkrjX9iex4foVTGukAOD9EkAAM9LqQxcHss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204188},"type":"module","engines":{"node":">=20"},"gitHead":"414b25b83dd062b11c845fde8c7c6eb582905a27","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.16_1788492376139_0.11724756576759376","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@ascenda-one/cursor-hooks","version":"0.1.17","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.17","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"115dd515aec8d93f47874d365d49ccbf8108b41a","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.17.tgz","fileCount":12,"integrity":"sha512-ew8lIQziuNyOpTVqAukfK6iLRR4eTkaxkSvPZ0maShmw6zYm94/+1GCwdpi88qGSkPHEE2VBdsMA/3iAiBNHPg==","signatures":[{"sig":"MEQCIF2DdEvXNI+32rsrDp1FAYihwBDeaw9Ip/bRo1v6ZBjqAiAMOor4K/I7Xu2ScEVHLvYHPdwxhiJtVcoAuD47XgSMqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205094},"type":"module","engines":{"node":">=20"},"gitHead":"8fb13b8b541bb90e806c64537b25597268e9f214","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.17_1788744388373_0.35270300581593284","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@ascenda-one/cursor-hooks","version":"0.1.18","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.18","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"2da913d50e68ac1cca04893ba68f07159c0c2e80","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.18.tgz","fileCount":12,"integrity":"sha512-+CopDiUBS7axmhp+vQeRE3tL/ePFW6U/WuNQ09xmLUC5O1gfJ/PJZy484clD+p0x/lizNmtKaHS1TI8/u8sscw==","signatures":[{"sig":"MEYCIQCJWrlklh+a21o8LNQEROr3ruukaA3WjfDZpyvot5ypEgIhAMCravMfXgk/jWUJMO5cCQX1DzyMylwbCdYCPOoJj2D6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205094},"type":"module","engines":{"node":">=20"},"gitHead":"cb322aa6d7c16fd6e57eed756ed590be0e7c33c8","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.18_1788753849522_0.5945693437011872","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@ascenda-one/cursor-hooks","version":"0.1.19","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.19","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"49011ec56a04bf4974371e6f394b467a67c81a6f","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.19.tgz","fileCount":12,"integrity":"sha512-QA5u1WXaxw7u9T2OBHq57EouHyxkvcDIdh0fmbhaWr75dJcB2xVe7oi9Fpeaiwn6mzQndwBVJJugzLBNRAcOtA==","signatures":[{"sig":"MEYCIQCA8Ae8qj5QQtR9GpVqeeD6C1VPb/4EDELfVuUWoiC2zgIhAMmDzfKO3ImbwSWwWF86B0j8VqX69isZiIIcIl0drham","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208423},"type":"module","engines":{"node":">=20"},"gitHead":"99582dedcab13d38649ad7a96efdb2f2bea74211","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.19_1788913528185_0.8045061676765242","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@ascenda-one/cursor-hooks","version":"0.1.20","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.20","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"7139f59933f3a85a2229cca2986b00d52b78168a","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.20.tgz","fileCount":12,"integrity":"sha512-bGih9ciPi7k/texh+Osqjdv/8Hf3WTn6c9PvRbyg0DtMY+qkx8MNDWTv2M5PKe8F2BtPQmo02YkllmZ1uNkUOQ==","signatures":[{"sig":"MEQCIGmyd/JDWTcr3ZUZmzdD1vQ7XgcHJBzgXLdeyhUJ+5XLAiAzDmWRUdQ7grA2GPKrX1MRgZNN/eSKbb2siHtGfXsglA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208638},"type":"module","engines":{"node":">=20"},"gitHead":"00e32f446284dfbbf57143e3c8f7ec9b846356a0","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.20_1788920135747_0.885149000991498","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@ascenda-one/cursor-hooks","version":"0.1.21","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.21","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"9e5b61204c868be245495515addd42dfb5cb4f58","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.21.tgz","fileCount":12,"integrity":"sha512-KY2grPjcj1dm7wKLbcnWh/BvDKhbpmUB8txlUkTcyxdVz5pa43NIFg6E7KEFeUBizoSZzeYDqTvTinycyzMaMw==","signatures":[{"sig":"MEUCIC7TnoVhL1aoTbNp5FU1ZUFMbSm0wduDPQ22p7ADSk6jAiEAh4dBtBHGwFkuLfY3m3Y1/8aO9E4spWwH5wg+ps2acqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208655},"type":"module","engines":{"node":">=20"},"gitHead":"e0ce58ab02da6b57ab922c36325a3c4f91766c61","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.21_1788943435345_0.8649017306738152","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@ascenda-one/cursor-hooks","version":"0.1.22","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.22","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"583d8fb072873493a59d241f855cc6f41240556b","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.22.tgz","fileCount":14,"integrity":"sha512-a8a0z+3gb6yeRy8kADBXx8Uwol1mMrhXGPH3FTKfagxbR+dTvNaqR6XBSgcay7y4GafJVJOKqSVXwqiLMms+Jw==","signatures":[{"sig":"MEUCIHpl9+P1q/VGqQ9U2LKfXvRhU0qAQ2t+bXHlNNc1l6kLAiEAlUDHM0kQ/v6w3Cs1b/vGhve6w3OAWB5Jh+wetz2Thec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":216301},"type":"module","engines":{"node":">=20"},"gitHead":"fbb257b423dc5cce771d600228bffe095c462753","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.22_1789298700277_0.7628811105461208","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@ascenda-one/cursor-hooks","version":"0.1.23","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.23","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"6a5be6137b1dd4856d10c88f9ca78a43a3df1098","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.23.tgz","fileCount":14,"integrity":"sha512-UY1wTmKdKC2VZLjGxwqatOKmxKF3blX5HIvX14s54r5QE4oqcUN1XosBAQk8O0p8Spdd3IWMM+Gz+1epv4AiEQ==","signatures":[{"sig":"MEYCIQCXN/ho/T6m2Yha/AeWeyNI9D4wJVocBhkXLUbHZR0lEQIhAIua+JjzAgPIYKAR3Pb0Ho1GVpqeH82sA+3bp3DB1xSW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":218011},"type":"module","engines":{"node":">=20"},"gitHead":"137db4bde5b2f029175772e37afada58d521466c","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.23_1789504640996_0.02125123961840991","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@ascenda-one/cursor-hooks","version":"0.1.24","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.24","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"7be43c487a07663302edfdc06103fa56777db099","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.24.tgz","fileCount":14,"integrity":"sha512-arQrD4XOrGkyWios8LpFKtpBQ2Hdr7qTgxMT3SUoxui6wiZiBgwwXtEvjvD/EttQ43wcHe2xVH72r1D7sh66Ww==","signatures":[{"sig":"MEUCIQDte5xiDWVUHxc4AIgVIAqeJa2RhbUyNxWr3QGJKFLw9AIgbTA9BRj+DLxGuMKUrq6jkLcxfSDnTmCJUxN3PK66w6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":218080},"type":"module","engines":{"node":">=20"},"gitHead":"fd05772d254ebf3be74a5c5eb9f79b6e0c345627","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.24_1789614171703_0.7075986633686466","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@ascenda-one/cursor-hooks","version":"0.1.25","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.25","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"255fc0fe0aebbe7b03e3420c7cc613e8f45afeef","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.25.tgz","fileCount":14,"integrity":"sha512-PoVawfSTubj6nrXBOGbk8wkLp59gsl36MU3UVrO5GlKtu6ViMwPiQtI0qWtpwWqVVa0iAV1zgZFe7jYvRw2auQ==","signatures":[{"sig":"MEYCIQCtFh769hGcnAZ/3WlUwybuCwaOcqhbPgZvGHVjxTZ+LAIhAOqIAW13apNxHXtYVF78O+BNOhSexjPAJrUmWrokuQfP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHdmTqOKEjTZKc/Lx9aC5lbye03lFDC+/8rJG364eVuMAiAZ3koktR8eYQ2T3FMAaIC1A8hy5qmxISmCTSP3d1dN6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":218493},"type":"module","engines":{"node":">=20"},"gitHead":"1dc0588ca2c6e427b829e56c1b7d38376a05c8e2","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.25_1789766190126_0.747456395442482","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@ascenda-one/cursor-hooks","version":"0.1.26","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.26","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"b3fa777fdb07ac3b6e4125e76da2923cfe76e93c","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.26.tgz","fileCount":14,"integrity":"sha512-OAKajY9AMIZj0ePaaXLJSad110+9WCeMerCc+5C3vpCuhXARxi9dzkY/Q467iKmatr4t4J4/qWl4L4wsi7/tMQ==","signatures":[{"sig":"MEUCIQC7fXofB/wVWJC4tF6/WYwdbuTfu53KinMM7d9ICa4c0gIgZ/LJ8tWS1kDrKuMSEbmfu0oAqWHCzGxpxPQyLu5nbu4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFsvjoYgMmi4VP6N58KZS00XC3lx4g5t8E6lwjoWjYNjAiEAiWYmLkvLWIlChe9DSgLP7ZqNhkYfdlHTC8ae9y6oF2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":219479},"type":"module","engines":{"node":">=20"},"gitHead":"a8987ffc6607630a3f55279e6d5c3851d5e2d63e","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.26_1789945874485_0.13298018436071635","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@ascenda-one/cursor-hooks","version":"0.1.27","license":"Apache-2.0","_id":"@ascenda-one/cursor-hooks@0.1.27","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"bin":{"ascenda-cursor-hook":"dist/cli.js"},"dist":{"shasum":"697a5c2c7c4eeb98d77513392893a8b88a2dc567","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.27.tgz","fileCount":14,"integrity":"sha512-4gkb6Sn+I8hviJsGZ9JKaTUp3L6KtiQuDzD+5b1n2Tt7qIJfkmVfZ2OQdv6ueH3Foepp/RhKnqJDZM8ff0xmEg==","signatures":[{"sig":"MEUCIQDkfPmx+Otg91mEem3yOUan3hLxVGVHrTVmXrwwy3f7dQIgDT1d+YpJu3q++Gy22w4nxPZvoGZW94UaLYxnhxPsQ4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAWOygXO7lZDzWZk0vo3pRaxDBb3sJCDgekYVW1w62cuAiAPRzcf/91GA+tJ+DKB9e3K5kLROrJ0hr01C5JXSZyBdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":220601},"type":"module","engines":{"node":">=20"},"gitHead":"d9d373433ffab20f608c8312aca48d661a30fc0e","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"esbuild src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"tmp":"tmp/cursor-hooks_0.1.27_1790120749713_0.1061364706925505","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"_id":"@ascenda-one/cursor-hooks@0.1.28","bin":{"ascenda-cursor-hook":"dist/cli.js"},"bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"dist":{"shasum":"bdda1b16a1a2f30e4ab8007e74b837f85dfaad31","tarball":"https://registry.npmjs.org/@ascenda-one/cursor-hooks/-/cursor-hooks-0.1.28.tgz","fileCount":14,"integrity":"sha512-bjxxmV8JAI4IdhdGsGxxtJfLg+G1E3qEy/eIYECXwywdpFxtxDDyUExyM7gisgnjh8+Cbt4BYuBrgeecdKg1eA==","signatures":[{"sig":"MEQCIH0dS4fEz9YeAKRFb/SLKklc3vM8XJiJENg0JUACBcfLAiBKHv6Ja8gbs4AqyTeCN9oyRqodnVFgzTVZZLmEiyAsSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDIwXnvGvyxvRJYWiNFXL8w+UopjZx9wfTUKO6K520J5gIgQCt9kjkfNuU1LV+9dabBqgPgM1dHepMPjuaK7YGIelg="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascenda-one%2fcursor-hooks@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":235845},"name":"@ascenda-one/cursor-hooks","type":"module","engines":{"node":">=20"},"gitHead":"a6a2b00ecf617eb77d5bc882b83ff9152409c489","license":"Apache-2.0","scripts":{"test":"node --test","build":"tsc -p ./ && npm run bundle","watch":"tsc -w -p ./","bundle":"node ../scripts/esbuild-collector.mjs src/cli.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);\" --outfile=dist/cli.js"},"version":"0.1.28","_npmUser":{"name":"ascenda-one-com","email":"nathan@ascenda.one"},"homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"_npmVersion":"10.8.2","description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","directories":{},"maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.10","@ascenda-one/tool-kit":"*","@ascenda-one/tool-contract":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cursor-hooks_0.1.28_1790301234456_0.0076972203585792265"}}},"time":{"created":"2026-09-04T03:26:15.976Z","modified":"2026-09-25T01:53:54.860Z","0.1.16":"2026-09-04T03:26:16.317Z","0.1.17":"2026-09-07T01:26:28.499Z","0.1.18":"2026-09-07T04:04:09.670Z","0.1.19":"2026-09-09T00:25:28.327Z","0.1.20":"2026-09-09T02:15:35.890Z","0.1.21":"2026-09-09T08:43:55.531Z","0.1.22":"2026-09-13T11:25:00.414Z","0.1.23":"2026-09-15T20:37:21.139Z","0.1.24":"2026-09-17T03:02:51.858Z","0.1.25":"2026-09-18T21:16:30.210Z","0.1.26":"2026-09-20T23:11:14.568Z","0.1.27":"2026-09-22T23:45:49.790Z","0.1.28":"2026-09-25T01:53:54.560Z"},"bugs":{"url":"https://github.com/ascendaone-com/ai-engineer-tools/issues"},"license":"Apache-2.0","homepage":"https://github.com/ascendaone-com/ai-engineer-tools#readme","repository":{"url":"git+https://github.com/ascendaone-com/ai-engineer-tools.git","type":"git","directory":"ascenda-cursor-hooks"},"description":"Cursor agent hooks adapter for Ascenda AI workload telemetry","maintainers":[{"name":"ascenda-one-com","email":"nathan@ascenda.one"},{"name":"klubiniecki","email":"klubiniecki@gmail.com"}],"readme":"# @ascenda-one/cursor-hooks\n\nCursor agent hooks adapter for Ascenda AI workload telemetry. Metadata only —\nprompt text, file contents and command output never leave the machine.\n\n## Install\n\n```bash\nnpx @ascenda-one/cursor-hooks setup\n```\n\nThis pairs (printing a 6-digit code to confirm in the Ascenda app), installs a\nself-contained hook bundle to `~/.ascenda/bin`, records the pairing under\n`tools.cursor` in `~/.ascenda/credentials.json`, and registers the hooks\nin this project's `.cursor/hooks.json`. Restart Cursor and events flow — no\nshell exports, no settings file to hand-edit. That matters more than it\nsounds: a GUI-launched editor never sees a shell rc file, so an id that lives\nonly in an `export` line silently stops telemetry the next time the app is\nopened from the Dock.\n\n```bash\nnpx @ascenda-one/cursor-hooks status      # exits non-zero if anything is unwired\nnpx @ascenda-one/cursor-hooks uninstall   # removes hooks, the binary and this pairing\n```\n\n| Option | |\n| --- | --- |\n| `--api-base-url <url>` | ingest host (default `https://api.ascenda.one`) |\n| `--local [port]` | shorthand for a local [dev server](../ascenda-dev-server/) (default `4477`) |\n| `--tool-installation-id <id>` / `--token <t>` | reuse an existing pairing instead of creating one |\n| `--scope project\\|user` | register in this project (default) or in `~/.cursor/hooks.json` |\n| `--project-dir <path>` | project root for `--scope project` (default cwd) |\n| `--dry-run` | print what would change, write nothing |\n\n`examples/` holds the equivalent hand-written config for anyone who would\nrather not run `setup`.\n\n## Configure\n\nNothing is required after `setup`. A hook resolves its identity from, in\norder: the environment, its own entry in `~/.ascenda/credentials.json`, and\n— when exactly one `cli_agent` token is on disk — the token store. A hook that\nstill cannot name its installation records the skipped send in the journal\n`status` reads, rather than exiting silently.\n\n| Variable | |\n| --- | --- |\n| `ASCENDA_TOOL_INSTALLATION_ID` | overrides the pairing `setup` recorded |\n| `ASCENDA_EVENT_WRITE_TOKEN` | overrides the stored token |\n| `ASCENDA_API_BASE_URL` | overrides the ingest host |\n| `ASCENDA_EVENT_LOG_FILE` | optional local JSONL log of every event |\n\nWith `ASCENDA_EVENT_LOG_FILE` set and no pairing, events are written locally as\n`not_sent` instead of failing — so you can see exactly what would be\ntransmitted before connecting anything. Every payload carries the UTC offset\nand an idempotency key; both come from the shared sender in `tool-kit`, so\nthis adapter holds only its mapping.\n\n## Privacy defaults\n\nMetadata-only. Does not send prompts, responses, code, file paths, command\ntext, repository names or branch names. Correction detection runs locally on\nprompt text; only the classification is transmitted.\n\n`setup` prints the full list before it pairs — every family this adapter sends,\nthe refusals, and how to turn it off. That block is generated from the\nadapter's own declaration in `src/setup.ts`, and a guard test\n(`packages/tool-kit/tests/setupDisclosure.test.mjs`) runs the mapper and fails\nthe build when the declaration claims a family the mapper does not send, or\nomits one it does.\n\n## Event mapping\n\nSee [docs/CURSOR_MAPPING.md](docs/CURSOR_MAPPING.md).\n\nRegister only the hooks in `examples/hooks.json` — the shell/MCP/file-edit hooks are specialised views of tool calls that `preToolUse`/`postToolUse` already report, so adding them double-counts.\n\n## Test locally\n\nNo Cursor install required:\n\n```bash\n./scripts/replay-agent-hooks.sh cursor\n```\n\nHook invocations always exit `0`: telemetry must never block your work.\n","readmeFilename":"README.md"}