{"_id":"@1a35e1/sonar-cli","_rev":"16-61636aa3653958b2014381109cf705f6","name":"@1a35e1/sonar-cli","dist-tags":{"latest":"0.5.4"},"versions":{"0.1.0":{"name":"@1a35e1/sonar-cli","version":"0.1.0","_id":"@1a35e1/sonar-cli@0.1.0","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"1cc2c589ebe97571682e386fea70847ad7e3c375","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.1.0.tgz","fileCount":42,"integrity":"sha512-Dep2zarNv18SmTBPAP8pW88GOCkn6b4I1pQ5Yl58b+xuhfv0EixPYnbfiB3yu3HMUsz63NdYjHszKbbkNztC+g==","signatures":[{"sig":"MEUCIQCrBEu9lXJpEr5MBZC+AJ/ifPqdxefmIGU1f3t4bvvHkgIgSrW5UfZwNxhRXlaqPqxX9cSP/LbKAIk0AB/VGZJozTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126988},"type":"module","_from":"file:1a35e1-sonar-cli-0.1.0.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/private/var/folders/rt/x2_f_22x6rxfppqgqjclxrjw0000gn/T/130ac100c655f1142d8eeec6bedbb10f/1a35e1-sonar-cli-0.1.0.tgz","_integrity":"sha512-Dep2zarNv18SmTBPAP8pW88GOCkn6b4I1pQ5Yl58b+xuhfv0EixPYnbfiB3yu3HMUsz63NdYjHszKbbkNztC+g==","_npmVersion":"10.9.2","description":"X/Twitter social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"22.17.1","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-table":"^3.1.0","better-sqlite3":"^11","graphql-request":"^7.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","ink-link":"^5.0.0","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@types/better-sqlite3":"^7","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.1.0_1771786321633_0.3351141695347939","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@1a35e1/sonar-cli","version":"0.1.2","_id":"@1a35e1/sonar-cli@0.1.2","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"cc47afc853c89e549b55d136545683b24ff12b18","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.1.2.tgz","fileCount":42,"integrity":"sha512-bRO9SYLj39+yAPm2jgQ5ru/LlbihKCnRpPoOUnM8+wQUNdlogjsOgGiDZXpOnHBW61nPiLqQwGINWS1jHxjA8g==","signatures":[{"sig":"MEQCIGSWc4Un6Q9Mok7d1PcGXqKDFwvONqnui0wDB9HBEvNYAiB3v2GebCDBXxmnrciQSVE5cqZvPQAK6NoTH7O1INDpkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127116},"type":"module","_from":"file:1a35e1-sonar-cli-0.1.2.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/private/var/folders/rt/x2_f_22x6rxfppqgqjclxrjw0000gn/T/4038f160544bdc4fe09dc4744d3f7fbd/1a35e1-sonar-cli-0.1.2.tgz","_integrity":"sha512-bRO9SYLj39+yAPm2jgQ5ru/LlbihKCnRpPoOUnM8+wQUNdlogjsOgGiDZXpOnHBW61nPiLqQwGINWS1jHxjA8g==","_npmVersion":"10.9.2","description":"X/Twitter social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"22.17.1","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-table":"^3.1.0","better-sqlite3":"^11","graphql-request":"^7.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","ink-link":"^5.0.0","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@types/better-sqlite3":"^7","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.1.2_1771786607767_0.5469608936220325","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@1a35e1/sonar-cli","version":"0.1.3","_id":"@1a35e1/sonar-cli@0.1.3","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"a4ac98df18895b1407649f143fe57b618fd76106","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.1.3.tgz","fileCount":42,"integrity":"sha512-LueZSDbuFpNRT8dEW6JBgDNYgJqQN9qdGKhn58YGhNJyigcMuT8pMoIbYC7L3rxcBlvMUyBTVlxBSWWLPe+60w==","signatures":[{"sig":"MEUCIFWsS+pq8O8y7eRV+2VEWOl9GuVRCHijF594wSE8f4uLAiEAk67NVIcSCEbnnPRI/JBWYaXRv9rnhGdNJHDCweo8tio=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127123},"type":"module","_from":"file:1a35e1-sonar-cli-0.1.3.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/private/var/folders/rt/x2_f_22x6rxfppqgqjclxrjw0000gn/T/7c98e2b4fe6dc91928de6bcc7769f09c/1a35e1-sonar-cli-0.1.3.tgz","_integrity":"sha512-LueZSDbuFpNRT8dEW6JBgDNYgJqQN9qdGKhn58YGhNJyigcMuT8pMoIbYC7L3rxcBlvMUyBTVlxBSWWLPe+60w==","_npmVersion":"10.9.2","description":"X/Twitter social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"22.17.1","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","better-sqlite3":"^11","graphql-request":"^7.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@types/better-sqlite3":"^7","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.1.3_1771786743166_0.5350723743785011","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@1a35e1/sonar-cli","version":"0.2.0","_id":"@1a35e1/sonar-cli@0.2.0","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"21e5484578508669fbcc406ec619fbfcf9f0c905","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.2.0.tgz","fileCount":46,"integrity":"sha512-/Jg7WTKmY/SXscaSLM7pqgKqPuXSbyca7LE1u/7a3GlJe0HHLuAQRmqLj1b7wICIobRpEfkT4/2qWoe53K/4jw==","signatures":[{"sig":"MEYCIQC3D42NPiVtxgf6MW1dYmZgVVTW7WTX2IjFZtK6cZZadgIhAIrAzULYS6WOP5V7HuUdPtt4VYgb02BovlRCXvuoElLQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150901},"type":"module","_from":"file:1a35e1-sonar-cli-0.2.0.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/private/var/folders/rt/x2_f_22x6rxfppqgqjclxrjw0000gn/T/aef28854b6d1df66b91bee9ddf0b312c/1a35e1-sonar-cli-0.2.0.tgz","_integrity":"sha512-/Jg7WTKmY/SXscaSLM7pqgKqPuXSbyca7LE1u/7a3GlJe0HHLuAQRmqLj1b7wICIobRpEfkT4/2qWoe53K/4jw==","_npmVersion":"11.6.2","description":"X/Twitter social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"25.0.0","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","better-sqlite3":"^11","graphql-request":"^7.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@types/better-sqlite3":"^7","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.2.0_1771890346926_0.8322246134424249","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@1a35e1/sonar-cli","version":"0.2.1","_id":"@1a35e1/sonar-cli@0.2.1","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"35a6502f0de434705772befbf55039069f608e9d","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.2.1.tgz","fileCount":47,"integrity":"sha512-z4bkKV9gjo1w//ids1HI5j07bHuwvFTEfy+beJW2F6kysdsGasbhm2hoOmwTB7oea7YIToDbSBV7DydMWOOmnQ==","signatures":[{"sig":"MEYCIQCoVJv2x7Kq1iTmfaKg73uRamlQQHnfnzn2SL1Aeks43QIhAPG+ViKhM6nhdOezb1lemQnRI0a9jpJiN38OJULnetwG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164957},"type":"module","_from":"file:1a35e1-sonar-cli-0.2.1.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/private/var/folders/rt/x2_f_22x6rxfppqgqjclxrjw0000gn/T/85b79ed213de656911eb0993608c4857/1a35e1-sonar-cli-0.2.1.tgz","_integrity":"sha512-z4bkKV9gjo1w//ids1HI5j07bHuwvFTEfy+beJW2F6kysdsGasbhm2hoOmwTB7oea7YIToDbSBV7DydMWOOmnQ==","_npmVersion":"11.6.2","description":"X/Twitter social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"25.0.0","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","better-sqlite3":"^11","graphql-request":"^7.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@types/better-sqlite3":"^7","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.2.1_1772661676467_0.4600209837743574","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@1a35e1/sonar-cli","version":"0.3.4","_id":"@1a35e1/sonar-cli@0.3.4","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"0ca34e5cf95b5d082237087b488457854df4afe9","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.3.4.tgz","fileCount":46,"integrity":"sha512-YfGUM1bSIhCQd3A2k7P3nh5eIEO1QiSNSNkiLexlTgMTNeO3Jc783Z9uPkD0Ts/kUKekPKzQM6a6twrdf+N2Rg==","signatures":[{"sig":"MEUCIQDjgU2gGNvogHXPBzIvlErWjHVhaOVK8wrS1fxX8xVcxQIgFGcmZi8/mZUD2ODv9td0/32qoGS9AkA8uJJzlq6MEaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146237},"type":"module","_from":"file:1a35e1-sonar-cli-0.3.4.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/75cf34bf6e932709209d76b5509488ca/1a35e1-sonar-cli-0.3.4.tgz","_integrity":"sha512-YfGUM1bSIhCQd3A2k7P3nh5eIEO1QiSNSNkiLexlTgMTNeO3Jc783Z9uPkD0Ts/kUKekPKzQM6a6twrdf+N2Rg==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","better-sqlite3":"^11","graphql-request":"^7.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@types/better-sqlite3":"^7","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.3.4_1775682080370_0.23326955659022608","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@1a35e1/sonar-cli","version":"0.3.5","_id":"@1a35e1/sonar-cli@0.3.5","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"0cf6aa359f10c70830521f94118013a9d8b6a7de","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.3.5.tgz","fileCount":46,"integrity":"sha512-0J8XwVbWktBmddqKZ6FktCjskSEtj/MpFKQwd95bPU4lxrGAhRC9HoJF1p0h6Mi3AM9pu7sJ/byQeuvdro6BmQ==","signatures":[{"sig":"MEUCIGeuM9LLb0I0S4uW3xkVlGW19ibpv6fBgJe4BdoRIRRiAiEA0cSMefaCbfI5YhuZfV1757qbMtZLt9fmKYVsQp3w2CY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141524},"type":"module","_from":"file:1a35e1-sonar-cli-0.3.5.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/4afce96a43c8cc2f66a4b0c4d73aaeb3/1a35e1-sonar-cli-0.3.5.tgz","_integrity":"sha512-0J8XwVbWktBmddqKZ6FktCjskSEtj/MpFKQwd95bPU4lxrGAhRC9HoJF1p0h6Mi3AM9pu7sJ/byQeuvdro6BmQ==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","better-sqlite3":"^11","graphql-request":"^7.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@types/better-sqlite3":"^7","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.3.5_1775682998717_0.3882023071436045","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@1a35e1/sonar-cli","version":"0.4.0","_id":"@1a35e1/sonar-cli@0.4.0","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"90a5ae7cda9fb2d00ce3380b998f206a13ae9cb9","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.4.0.tgz","fileCount":51,"integrity":"sha512-ieznaOt90pp6oXJKpSk350OmAANNzM3K7BYPDnkyrM0bhmu2LZHI+W8YgdHqHUn55KlOO+YeSKTgri3OL4Uq7A==","signatures":[{"sig":"MEYCIQCrlK14nDQhc/NeVqQGOnCNVtS+g7TqWfwMONp8j4mvkAIhAKUN8RhdaKaBSEuCxpHYpxXtYGNxs9buKWVJ+eJqPaxv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151712},"type":"module","_from":"file:1a35e1-sonar-cli-0.4.0.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/013b312694cdcac146912ffab9b594fd/1a35e1-sonar-cli-0.4.0.tgz","_integrity":"sha512-ieznaOt90pp6oXJKpSk350OmAANNzM3K7BYPDnkyrM0bhmu2LZHI+W8YgdHqHUn55KlOO+YeSKTgri3OL4Uq7A==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","graphql-request":"^7.4.0","node-sqlite3-wasm":"^0.8.55","unicode-animations":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.4.0_1775689196852_0.952562302450815","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@1a35e1/sonar-cli","version":"0.4.1","_id":"@1a35e1/sonar-cli@0.4.1","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"2d3c3b2502f2513247469e49a12e811b9f139e27","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.4.1.tgz","fileCount":51,"integrity":"sha512-tblujnMAkIrLLVf78s614pygJoHfsUnSgzz5uJrp3MHFEALb+ACWlsuQOWtRjiP449CFn5AvhRqCiN6Z/SXXMg==","signatures":[{"sig":"MEQCIFUyPWxB6JsjhsKQpDfdLF6LmXoVB6U79D5bwTxrW4QgAiAGgLgVRwnw2N9/cyOn3JJFaJe1dGGiC7cNCqjW+aI1nA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152475},"type":"module","_from":"file:1a35e1-sonar-cli-0.4.1.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/775c48fbb2182b62540183115559ed96/1a35e1-sonar-cli-0.4.1.tgz","_integrity":"sha512-tblujnMAkIrLLVf78s614pygJoHfsUnSgzz5uJrp3MHFEALb+ACWlsuQOWtRjiP449CFn5AvhRqCiN6Z/SXXMg==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","graphql-request":"^7.4.0","node-sqlite3-wasm":"^0.8.55","unicode-animations":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.4.1_1775689733321_0.5614160884805857","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@1a35e1/sonar-cli","version":"0.4.2","_id":"@1a35e1/sonar-cli@0.4.2","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"a477ac8486572712900f3f4525679914d972650f","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.4.2.tgz","fileCount":49,"integrity":"sha512-FcWRdMsrGOtSlrwdsa8x9AcPbAtQhWiQnMu26n9SV4vQs+6X4lt7XPU4F4opWWXgC7v7e+lIP2WRdhwk00keWw==","signatures":[{"sig":"MEQCIAfADPB1NDY9A7Zpkag0MK34LPDVz2YxeAunVSplXsxhAiADafJn8wMODDASz4jKm9O3iJGiBFh+tvMzVZltWBM7Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":150819},"type":"module","_from":"file:1a35e1-sonar-cli-0.4.2.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/333a5221727c5ab08e155817231efcfb/1a35e1-sonar-cli-0.4.2.tgz","_integrity":"sha512-FcWRdMsrGOtSlrwdsa8x9AcPbAtQhWiQnMu26n9SV4vQs+6X4lt7XPU4F4opWWXgC7v7e+lIP2WRdhwk00keWw==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","graphql-request":"^7.4.0","node-sqlite3-wasm":"^0.8.55","unicode-animations":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.4.2_1775690210251_0.6307216796299011","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@1a35e1/sonar-cli","version":"0.4.3","_id":"@1a35e1/sonar-cli@0.4.3","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"0fb091a5955b091eb25fc1da4539a95631ee0013","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.4.3.tgz","fileCount":49,"integrity":"sha512-g5SuVgRUmsEh85WVswo3Q+cr9sC30vTX0MzlCeqooMZIwqXJgqp11VL5eMSC5ivU0sUlDScGmIDg5qAQ/9eTqg==","signatures":[{"sig":"MEQCIGi8pU02lHQWVeEFDLDRHZu/gGwXsklNYu+0CWfia1EEAiA5gbTe9PIqk4yTFR9E31cpOWI4cGy/jJYnM5QyTM/+QA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151133},"type":"module","_from":"file:1a35e1-sonar-cli-0.4.3.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/5e4375d7f486d85d7860a9db8b1edaf3/1a35e1-sonar-cli-0.4.3.tgz","_integrity":"sha512-g5SuVgRUmsEh85WVswo3Q+cr9sC30vTX0MzlCeqooMZIwqXJgqp11VL5eMSC5ivU0sUlDScGmIDg5qAQ/9eTqg==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","ink-text-input":"^6.0.0","graphql-request":"^7.4.0","node-sqlite3-wasm":"^0.8.55","unicode-animations":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.4.3_1775728979652_0.4746655877266104","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@1a35e1/sonar-cli","version":"0.5.0","_id":"@1a35e1/sonar-cli@0.5.0","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"93f0ee3a6432179dec20c9b94577ce0e995669ae","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.5.0.tgz","fileCount":49,"integrity":"sha512-Ta3jNE/hRLWBmaLmmBo2/JO0HQj7NX5YmVUU/TYwVgXjNONmLEi6lFsQwC8JPkXTXFs/tw5NSn8dQdwGkD6QDw==","signatures":[{"sig":"MEQCIAeyRgmqIVoc/RYRz5J1nHzsZemc+ZNdKu3coXLIzqd5AiBldBPrHOBZ6r8ctQ9k/rvyo9WnQ4WJ/RmA5tZlmoHWbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":150555},"type":"module","_from":"file:1a35e1-sonar-cli-0.5.0.tgz","engines":{"node":">=20"},"scripts":{"build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/a87505fa78e1d0620c577b37369bf1e3/1a35e1-sonar-cli-0.5.0.tgz","_integrity":"sha512-Ta3jNE/hRLWBmaLmmBo2/JO0HQj7NX5YmVUU/TYwVgXjNONmLEi6lFsQwC8JPkXTXFs/tw5NSn8dQdwGkD6QDw==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","zod":"^3.25.76","react":"^19","pastel":"^3.0.0","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","ink-table":"^3.1.0","ink-text-input":"^6.0.0","graphql-request":"^7.4.0","node-sqlite3-wasm":"^0.8.55","unicode-animations":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.5.0_1775765273360_0.48906478777327944","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@1a35e1/sonar-cli","version":"0.5.1","_id":"@1a35e1/sonar-cli@0.5.1","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"aa2939990fe8bad4b311a7de078f97afd39888b2","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.5.1.tgz","fileCount":53,"integrity":"sha512-S0L4i/Iy2gRdq63Wij+gVM0kD17yD9g1qdmQ3qYcPri3uyUidLJDnaphdaj2XRI4pBqFp25+9mczJpYGzGDmgg==","signatures":[{"sig":"MEUCIQCNpUmTtV6xlH78B2ysJ8v1gmxWAbXQ33OA6OEXybInFgIgTAXHE88wXmHaJsGaXILFkB1LDdpsGjwVSW8l32G2nxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177465},"type":"module","_from":"file:1a35e1-sonar-cli-0.5.1.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest run","build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/1a9192cb4b1dd96ed8072b8aade2bb37/1a35e1-sonar-cli-0.5.1.tgz","_integrity":"sha512-S0L4i/Iy2gRdq63Wij+gVM0kD17yD9g1qdmQ3qYcPri3uyUidLJDnaphdaj2XRI4pBqFp25+9mczJpYGzGDmgg==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","react":"^19","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","commander":"^12","ink-table":"^3.1.0","ink-text-input":"^6.0.0","graphql-request":"^7.4.0","node-sqlite3-wasm":"^0.8.55","unicode-animations":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","vitest":"^4.1.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.5.1_1775838927086_0.7452586621530342","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@1a35e1/sonar-cli","version":"0.5.2","_id":"@1a35e1/sonar-cli@0.5.2","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"dcaddfcd2faf7ff1c7b7d6b351069b2573586714","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.5.2.tgz","fileCount":58,"integrity":"sha512-/n6fAIB5H71gwh2P6Kie494n3+DGYV4+S3Swk+w0A5WCzs+Yu4MQAZnoC8Z/GnDYWUIxp5TiUYM9EeiLhZJX5A==","signatures":[{"sig":"MEYCIQDBXSEw/FHCi1ct7a82YfR7Z3+PCcPVKxBierXDCHpPXAIhAKt3QFKmaMNrgZeuIbmCV73v4kbUrkvEv3EMpKpc3JXy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213574},"type":"module","_from":"file:1a35e1-sonar-cli-0.5.2.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest run","build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/a58f868958006d499b742ff131c632b5/1a35e1-sonar-cli-0.5.2.tgz","_integrity":"sha512-/n6fAIB5H71gwh2P6Kie494n3+DGYV4+S3Swk+w0A5WCzs+Yu4MQAZnoC8Z/GnDYWUIxp5TiUYM9EeiLhZJX5A==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","react":"^19","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","commander":"^12","ink-table":"^3.1.0","ink-text-input":"^6.0.0","graphql-request":"^7.4.0","node-sqlite3-wasm":"^0.8.55","unicode-animations":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","vitest":"^4.1.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.5.2_1775916949467_0.7527346859285959","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@1a35e1/sonar-cli","version":"0.5.3","_id":"@1a35e1/sonar-cli@0.5.3","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"homepage":"https://github.com/1a35e1/sonar-cli#readme","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"bin":{"sonar":"dist/cli.js"},"dist":{"shasum":"bb6d07d18ac0b07fd1f183627b69038b5e75a971","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.5.3.tgz","fileCount":58,"integrity":"sha512-ZSQ8SRLTp9smv26gjSetw/0W/7oZIi6Lbe6ais8ujB4CyAJK5+WfYamQ9knmb1Xlh3XnRsVQGSY6Pp9ZJIRbBQ==","signatures":[{"sig":"MEUCIErdkE8dGacj4s1TPY9mbxaApcLPVFGF+Bp2yil/34JgAiEAtEMCRbx0sYZ32k1kMPWWJQNgj2+ORuqjz9DhuBtF5tU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213574},"type":"module","_from":"file:1a35e1-sonar-cli-0.5.3.tgz","engines":{"node":">=20"},"scripts":{"test":"vitest run","build":"tsc","sonar":"tsx src/cli.ts","types":"graphql-codegen --config codegen.ts","typecheck":"tsc --noEmit","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","version:minor":"pnpm version minor --no-git-tag-version","version:patch":"pnpm version patch --no-git-tag-version","drift:data:check":"node scripts/check-data-compat.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs"},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"_resolved":"/tmp/aa9558cf2a8f2111e762edb67de8f923/1a35e1-sonar-cli-0.5.3.tgz","_integrity":"sha512-ZSQ8SRLTp9smv26gjSetw/0W/7oZIi6Lbe6ais8ujB4CyAJK5+WfYamQ9knmb1Xlh3XnRsVQGSY6Pp9ZJIRbBQ==","repository":{"url":"git+https://github.com/1a35e1/sonar-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"X social graph CLI for signal filtering and curation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ink":"^6","react":"^19","graphql":"^16.12.0","date-fns":"4.1.0","ink-link":"^5.0.0","commander":"^12","ink-table":"^3.1.0","ink-text-input":"^6.0.0","graphql-request":"^7.4.0","node-sqlite3-wasm":"^0.8.55","unicode-animations":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","biome":"^0.3.3","vitest":"^4.1.3","typescript":"^5","@types/node":"^22","@types/react":"^19","@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0"},"_npmOperationalInternal":{"tmp":"tmp/sonar-cli_0.5.3_1775941051098_0.0366648140305339","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@1a35e1/sonar-cli","version":"0.5.4","description":"X social graph CLI for signal filtering and curation","type":"module","bin":{"sonar":"dist/cli.js"},"engines":{"node":">=20"},"repository":{"type":"git","url":"git+https://github.com/1a35e1/sonar-cli.git"},"publishConfig":{"access":"public"},"dependencies":{"date-fns":"4.1.0","graphql":"^16.12.0","graphql-request":"^7.4.0","commander":"^12","ink":"^6","ink-link":"^5.0.0","ink-table":"^3.1.0","ink-text-input":"^6.0.0","node-sqlite3-wasm":"^0.8.55","react":"^19","unicode-animations":"^1.0.3"},"devDependencies":{"@graphql-codegen/cli":"^5.0.5","@graphql-codegen/typescript-graphql-request":"^6.4.0","@types/node":"^22","@types/react":"^19","biome":"^0.3.3","tsx":"^4","typescript":"^5","vitest":"^4.1.3"},"scripts":{"version:patch":"pnpm version patch --no-git-tag-version","version:minor":"pnpm version minor --no-git-tag-version","types":"graphql-codegen --config codegen.ts","sonar":"tsx src/cli.ts","build":"tsc","typecheck":"tsc --noEmit","drift:schema:check":"node scripts/check-schema-drift.mjs","drift:surface:update":"node scripts/update-command-surface-snapshot.mjs","drift:surface:check":"node scripts/check-command-surface-snapshot.mjs","drift:docs:check":"node scripts/check-doc-command-parity.mjs","drift:data:check":"node scripts/check-data-compat.mjs","drift:check":"pnpm drift:surface:check && pnpm drift:docs:check && pnpm drift:data:check && pnpm drift:schema:check","test":"vitest run"},"_id":"@1a35e1/sonar-cli@0.5.4","bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"homepage":"https://github.com/1a35e1/sonar-cli#readme","_integrity":"sha512-P/4Ke3h4GVVEED+DcF2WXwTf9/7ge3q56xMv4Xke25561kQfioyyWjyrzFVwD1Cj4eAWCySk6Wov5mOiXyMnQw==","_resolved":"/tmp/ebd61d8967b7fcab1f62c021213a2277/1a35e1-sonar-cli-0.5.4.tgz","_from":"file:1a35e1-sonar-cli-0.5.4.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-P/4Ke3h4GVVEED+DcF2WXwTf9/7ge3q56xMv4Xke25561kQfioyyWjyrzFVwD1Cj4eAWCySk6Wov5mOiXyMnQw==","shasum":"740d631e18f671f4c09721e11b5b3e9e1009f09f","tarball":"https://registry.npmjs.org/@1a35e1/sonar-cli/-/sonar-cli-0.5.4.tgz","fileCount":59,"unpackedSize":219573,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1a35e1%2fsonar-cli@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDWJrC7RgcgMHP0/X9Ry3gehLQaJtYShK1hNJTFC+pxxAiEAgziJDfmOnJ8vVafsPZGnRVl40eENVRHbXH7mBrKwfuk="}]},"_npmUser":{"name":"1a35e1","email":"1a35e1@protonmail.com"},"directories":{},"maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sonar-cli_0.5.4_1776411521068_0.19929008987983088"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-22T18:52:01.523Z","modified":"2026-04-17T07:38:41.515Z","0.1.0":"2026-02-22T18:52:01.848Z","0.1.2":"2026-02-22T18:56:47.904Z","0.1.3":"2026-02-22T18:59:03.307Z","0.2.0":"2026-02-23T23:45:47.073Z","0.2.1":"2026-03-04T22:01:16.626Z","0.3.4":"2026-04-08T21:01:20.527Z","0.3.5":"2026-04-08T21:16:38.899Z","0.4.0":"2026-04-08T22:59:56.986Z","0.4.1":"2026-04-08T23:08:53.473Z","0.4.2":"2026-04-08T23:16:50.425Z","0.4.3":"2026-04-09T10:02:59.774Z","0.5.0":"2026-04-09T20:07:53.507Z","0.5.1":"2026-04-10T16:35:27.229Z","0.5.2":"2026-04-11T14:15:49.635Z","0.5.3":"2026-04-11T20:57:31.239Z","0.5.4":"2026-04-17T07:38:41.221Z"},"bugs":{"url":"https://github.com/1a35e1/sonar-cli/issues"},"homepage":"https://github.com/1a35e1/sonar-cli#readme","repository":{"type":"git","url":"git+https://github.com/1a35e1/sonar-cli.git"},"description":"X social graph CLI for signal filtering and curation","maintainers":[{"name":"1a35e1","email":"1a35e1@protonmail.com"}],"readme":"# 🔊 Sonar (Alpha)\n\nAgent optimised [X](https://x.com) CLI for founders who want to stay ahead of the curve.\n\nWe got tired of missing important content in our feed and built Sonar to fix it.\n\nSonar matches your interests from your X network, filtering only relevant content from your graph using a variety of AI pipelines. We built this to automate our social intelligence at [@LighthouseGov](https://x.com/LighthouseGov).\n\n## Get started\n\n* Login with your `X` account to obtain a [free API key](https://sonar.8640p.info/).\n\nInstall the CLI\n\n```sh\npnpm add -g @1a35e1/sonar-cli@latest\n```\n\nRegister your API key.\n\n```sh\nsonar account add snr_xxxxx\n```\n\nView your account status:\n\n```sh\nsonar status\n```\n\nAdd at least one topic so Sonar knows what to look for:\n\n```sh\nsonar topics add \"AI agents\"\nsonar topics add \"Ethereum DeFi\"\n```\n\nTopics are how Sonar matches content from your network. The more specific, the better — `\"onchain governance mechanisms\"` beats `\"crypto\"`. You can also let AI suggest topics based on your bookmarks and likes:\n\n```sh\nsonar topics suggest\n```\n\nRun your first refresh to index tweets and generate suggestions:\n\n> The first time you run this it will take some time.\n\n```sh\nsonar refresh\nsonar status --watch\n```\n\n---\n\n## Scopes\n\n* We currently request `read:*` and `offline:processing` scopes\n* This allows us to read your feed, bookmarks, followers/following, and other account data to power our signal filtering and topic suggestions.\n\n\n## Use cases\n\n### Morning briefing in one command\n\nPull everything relevant that happened while you slept:\n\n```bash\nsonar feed --hours 8\n```\n\n### Stream your feed in real time\n\nWatch for new items as they appear:\n\n```bash\nsonar feed --follow                      # visual cards, polls every 30s\nsonar feed --follow --json | jq .score   # NDJSON stream for agents\n```\n\n### Discover new topics with AI\n\nLet Sonar suggest topics based on your interests and feed:\n\n```bash\nsonar topics suggest                 # interactive accept/reject\nsonar topics suggest --count 3       # just 3 suggestions\n```\n\n### Track a topic you care about\n\nAdd a topic, then refresh:\n\n```bash\nsonar topics add \"AI agents\"\nsonar refresh\nsonar feed --hours 24\n```\n\nSonar rebuilds your social graph, indexes recent tweets, and generates suggestions matched against your topics and interest profile.\n\n### Build a scriptable news digest\n\nCombine `--json` output with `jq` to pipe Sonar content wherever you want:\n\n```bash\n# Get today's feed as JSON\nsonar feed --hours 24 --json | jq '.[] | {author: .tweet.user.username, text: .tweet.text}'\n\n# Summarize with an LLM\nsonar feed --json | jq '.[].tweet.text' | your-summarizer-script\n\n# Stream high-score items to a file\nsonar feed --follow --json | jq --unbuffered 'select(.score > 0.7)' >> highlights.jsonl\n```\n\n### Monitor the pipeline\n\nWatch the queue in real time while refresh runs:\n\n```bash\nsonar refresh\nsonar status --watch\n```\n\n### Interactive triage\n\nWork through suggestions without leaving the terminal:\n\n```bash\nsonar                    # interactive triage is on by default\nsonar --no-interactive   # disable for scripting\n```\n\nMark suggestions as skip, later, or archive — keyboard-driven.\n\n### Build your own filters and dashboards (WIP)\n\nDownload your data and build your own tools on top of it.\n\n```bash\nsonar sync # sync data to ~/.sonar/data.db\n```\n\nNo lock-in. If you outgrow us, you leave with your data intact.\n\n---\n\n## How Sonar finds relevant content\n\nSonar surfaces relevant content from your immediate network — the people you follow and who follow you. Your network is already a curated signal layer. Sonar's job is to surface what's moving through that graph before it reaches mainstream feeds.\n\nWhat this means in practice:\n\n* Results reflect your network's attention, not global virality\n* The feed gets more useful the more intentional you are about who you follow\n* Bookmarking and liking content improves your recommendations over time\n* Topics sharpen what Sonar surfaces within your graph\n\n## Setup\n\n### Prerequisites\n\n* Node.js 20+\n* `pnpm`\n* A Sonar API key from [sonar.8640p.info](https://sonar.8640p.info/)\n\n### Install and authenticate\n\n```bash\npnpm add -g @1a35e1/sonar-cli@latest\n\nsonar account add <YOUR_API_KEY>\n```\n\nVerify it works:\n\n```bash\nsonar status\nsonar topics\n```\n\n---\n\n## Command Reference\n\n### Default — triage suggestions\n\n```bash\nsonar                                # interactive triage (default)\nsonar --hours 24                     # widen time window\nsonar --days 3                       # last 3 days\nsonar --kind bookmarks               # default | bookmarks | followers | following\nsonar --render table --limit 50      # table layout\nsonar --json                         # raw JSON output\nsonar --no-interactive               # disable interactive mode\n```\n\n### Feed — read-only view\n\n```bash\nsonar feed                           # read-only feed (last 12h, limit 20)\nsonar feed --hours 48 --limit 50     # widen window\nsonar feed --kind bookmarks          # bookmarks | followers | following\nsonar feed --render table            # table layout\nsonar feed --json | jq .             # pipe to jq\n```\n\n#### Streaming with --follow\n\nPoll for new items continuously and stream them to your terminal or another process:\n\n```bash\nsonar feed --follow                  # poll every 30s, visual cards\nsonar feed --follow --interval 10    # poll every 10s\nsonar feed --follow --json           # NDJSON stream (one JSON per line)\nsonar feed --follow --json | jq --unbuffered '.score'\n```\n\nPress `q` to quit follow mode.\n\n### Topics\n\n```bash\nsonar topics                         # list all topics\nsonar topics --json                  # JSON output\nsonar topics add \"AI agents\"         # add a topic\nsonar topics view <id>               # view a topic\nsonar topics edit <id> --name \"New Name\"\nsonar topics delete <id>             # delete a topic\n```\n\n#### AI-powered topic suggestions\n\nLet Sonar suggest new topics based on your existing interests and recent feed:\n\n```bash\nsonar topics suggest                 # interactive — y/n/q per suggestion\nsonar topics suggest --count 3       # limit to 3 suggestions\nsonar topics suggest --vendor anthropic  # use Anthropic instead of OpenAI\nsonar topics suggest --json          # raw suggestions as JSON\n```\n\nRequires `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` depending on vendor.\n\n### Account\n\n```bash\nsonar account                        # list accounts, * marks active\nsonar account add <key>              # add account (random name)\nsonar account add <key> --alias work # add with custom name\nsonar account switch <name>          # switch active account\nsonar account rename <old> <new>     # rename an account\nsonar account remove <name>          # remove (--force if active)\n```\n\n### Refresh\n\n```bash\nsonar refresh                        # full pipeline (all steps)\nsonar refresh --bookmarks            # just sync bookmarks from X\nsonar refresh --likes                # just sync likes from X\nsonar refresh --graph                # just rebuild social graph\nsonar refresh --tweets               # just index tweets\nsonar refresh --suggestions          # just regenerate suggestions\nsonar refresh --likes --bookmarks    # any combo of flags\n```\n\n### Status\n\n```bash\nsonar status                         # account status, queue activity\nsonar status --watch                 # poll every 2s\n```\n\n### Triage\n\n```bash\nsonar skip --id <suggestion_id>      # skip a suggestion\nsonar later --id <suggestion_id>     # save for later\nsonar archive --id <suggestion_id>   # archive a suggestion\n```\n\n### Lens (paid)\n\nAI-powered analysis of your local data using embeddings. Requires a paid plan — run `sonar data pull` first to sync embeddings.\n\n```bash\nsonar lens blindspots --window 3d    # what your topics are missing\nsonar lens emerging --window 3d      # small accounts gaining credibility\nsonar lens experts --window 3d       # genuine domain experts per topic\nsonar lens contrarian --window 3d    # credible disagreements with consensus\nsonar lens diff --window 3d          # how narratives shifted over time\n```\n\nAll lens commands accept `--vendor openai|anthropic`, `--json`, and `--window`.\n\n### Data\n\n```bash\nsonar data pull                      # download feed/suggestions/topics to local SQLite\nsonar data backup                    # backup local DB\nsonar data restore --from <path>     # restore from backup\nsonar data verify                    # integrity check\nsonar data path                      # show DB location\nsonar data sql                       # query helper\n```\n\n### Config\n\n```bash\nsonar config                         # show current config\nsonar config setup --key=<API_KEY>   # legacy setup\nsonar config set vendor anthropic    # set AI vendor\nsonar config skill --install         # install OpenClaw skill (--force to overwrite)\n```\n\n---\n\n## Environment Variables\n\n| Variable            | Required             | Purpose                                                             |\n| ------------------- | -------------------- | ------------------------------------------------------------------- |\n| `SONAR_API_URL`     | No                   | GraphQL endpoint (default: production API)                          |\n| `SONAR_MAX_RETRIES` | No                   | Max retry attempts on transient failures (default: 3, 0 to disable) |\n| `OPENAI_API_KEY`    | For `topics suggest` | Required when using OpenAI vendor for AI suggestions                |\n| `ANTHROPIC_API_KEY` | For `topics suggest` | Required when using Anthropic vendor for AI suggestions             |\n\n## Local Files\n\n| Path                   | Contents                     |\n| ---------------------- | ---------------------------- |\n| `~/.sonar/config.json` | Token, API URL, CLI defaults |\n| `~/.sonar/data.db`     | Local synced SQLite database |\n\n---\n\n## Drift Prevention Checks\n\n```bash\n# Run all drift checks (surface/docs/data/schema)\npnpm drift:check\n\n# Refresh committed command snapshot after intentional command changes\npnpm drift:surface:update\n```\n\n`drift:schema:check` validates GraphQL documents against the live schema.\nLocally, it skips when offline; in CI (`CI=true`) it is enforced.\n\n---\n\n## Troubleshooting\n\n**`No token found. Run: sonar account add <name> <key>`**\nAdd an account with `sonar account add <YOUR_KEY>`. Get a key at [sonar.8640p.info](https://sonar.8640p.info/).\n\n**`Unable to reach server, please try again shortly.`**\nCheck your network connection and API availability. The CLI automatically retries transient failures (network errors, 5xx) up to 3 times with exponential backoff. Use `--debug` to see retry attempts. Set `SONAR_MAX_RETRIES=0` to disable retries.\n","readmeFilename":"README.md"}