{"_id":"@adamhancock/workstream-daemon","_rev":"13-5064d78859dc23f33595cdff7f8f38f6","name":"@adamhancock/workstream-daemon","dist-tags":{"latest":"0.1.15"},"versions":{"0.1.2":{"name":"@adamhancock/workstream-daemon","version":"0.1.2","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.2","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"e2c7135008a4cf8d58066af0fc2817607e0f32ba","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.2.tgz","fileCount":9,"integrity":"sha512-WB2bz5kW5xnDE8xXA+oDvsoVtiBt+JsvVCXQCc58A4KNU0dP81h24IRnTd1FeuQob0fJtyIzmzfIMuzfLbBilQ==","signatures":[{"sig":"MEQCICuai/1//ejJZgWkfJv4xXonbJYT+SOGf/UViwobch/rAiBkS7aMnHmqGTRypJxat2FXLb0oE36itxGFNPqODGYUpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47784},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.2.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/e1154691dc40fbfe044a2b481453a8dd/adamhancock-workstream-daemon-0.1.2.tgz","_integrity":"sha512-WB2bz5kW5xnDE8xXA+oDvsoVtiBt+JsvVCXQCc58A4KNU0dP81h24IRnTd1FeuQob0fJtyIzmzfIMuzfLbBilQ==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.2_1762975186854_0.34948192416423574","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@adamhancock/workstream-daemon","version":"0.1.3","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.3","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"48196b8bd02479404713ccbe4ed59bd6d3fc0cc2","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.3.tgz","fileCount":9,"integrity":"sha512-o/QFdM80tcdEvmOih2nD5/zMhO9aNoZ8NgBlB+UuqwPV9FnCbTKw+ojJNhuSZnuJqLYLNZp2b/fwqJqBQvJLNg==","signatures":[{"sig":"MEUCIHbxKzUdXMHt8HAI/keQRvEqkLEp6bgPRS4yGhEchdKVAiEAkuKqDo1nCnGkfwZyEE/kdy1jKcb3QG5KB0qgLwYmMtE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48161},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.3.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/00f2a8aec630a00a28d6b40a146302e8/adamhancock-workstream-daemon-0.1.3.tgz","_integrity":"sha512-o/QFdM80tcdEvmOih2nD5/zMhO9aNoZ8NgBlB+UuqwPV9FnCbTKw+ojJNhuSZnuJqLYLNZp2b/fwqJqBQvJLNg==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.3_1762976265817_0.9328664923264813","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@adamhancock/workstream-daemon","version":"0.1.4","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.4","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"a5affa48686292b3917a5b43ec0d236ba348f563","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.4.tgz","fileCount":9,"integrity":"sha512-unNvAimG1AKWVqlOecYKKmjCTrXxa4XX/yLKbrwnJNwd+6GU6lwcbmrm4XenfSoFQurXibGY7HR4D6NJNoI0JA==","signatures":[{"sig":"MEYCIQDb2b9oz63MNhYPkmF7YCXvDnQMRfF3oGHXW94FT3iWlwIhANq7MPXQvnvANCmTBK5YTFJ93UowjAauWXEM2UEyx3tD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51276},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.4.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/deca99ef479a382967602d0a5bf6665b/adamhancock-workstream-daemon-0.1.4.tgz","_integrity":"sha512-unNvAimG1AKWVqlOecYKKmjCTrXxa4XX/yLKbrwnJNwd+6GU6lwcbmrm4XenfSoFQurXibGY7HR4D6NJNoI0JA==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.4_1762976998506_0.5643009148506088","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@adamhancock/workstream-daemon","version":"0.1.5","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.5","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"0c26b9c3c41ea2d915b0bcda1810c858e11f4906","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.5.tgz","fileCount":9,"integrity":"sha512-/a1Kpc/FhhydbONPzlEWHyktPwbh7JiqU7PYQngcNAUdqLGGuqOo0S4qMFQYzUkpAgWNFirCO3jPFrN3yIefHw==","signatures":[{"sig":"MEUCIQDrPV7VKQ80aTtOERFhndpzq43JxEavA51DcOiYKfxsQAIgXgatNnmomsflwo/rCyu1pWZT2ath4s1g9OavhrIEUMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51296},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.5.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/f8fa276a9bac793470b182b021ce1677/adamhancock-workstream-daemon-0.1.5.tgz","_integrity":"sha512-/a1Kpc/FhhydbONPzlEWHyktPwbh7JiqU7PYQngcNAUdqLGGuqOo0S4qMFQYzUkpAgWNFirCO3jPFrN3yIefHw==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.5_1762977397563_0.2441945978603428","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@adamhancock/workstream-daemon","version":"0.1.6","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.6","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"64ceef33c143d2acf15281660dc24cd8640f0cb0","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.6.tgz","fileCount":9,"integrity":"sha512-KHC3RM/UmTevrv2JDCr5n7y2p+MqJleql7Ah3byXBTHFMpEJxtqmQVl8PT6y3bT7R1n4Nzq+nlmDL6sne9r/Ww==","signatures":[{"sig":"MEUCIFPqpO60ghNzV4mo3aGPsxrcmsBV7GLVbUnly0tRwXXJAiEAqkmCTcZCmI1vh/3bcuDNht3TqNOPwZl7sstDx4+oBCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55680},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.6.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/62d374852397592835d3dbc3f0097656/adamhancock-workstream-daemon-0.1.6.tgz","_integrity":"sha512-KHC3RM/UmTevrv2JDCr5n7y2p+MqJleql7Ah3byXBTHFMpEJxtqmQVl8PT6y3bT7R1n4Nzq+nlmDL6sne9r/Ww==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.6_1762979878998_0.6217830712431864","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@adamhancock/workstream-daemon","version":"0.1.7","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.7","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"b50f9e88f061c7da20c60821df3f90e556d718a4","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.7.tgz","fileCount":9,"integrity":"sha512-xH2XaJo+f6qJPB+xc6FFw0ANxbbNmro+eigIKAYx7+dWW4ZjfAHdI+8LintKz92IVLP+7nR7xMHi/eSpcUqT/Q==","signatures":[{"sig":"MEUCIED4muQ0b3zjhr4JMqmJD6LXvfRhK8uCV11uPOphfWYnAiEA667sFxxbs0rYI0CWMflO3yfuHXAuw3MT4EdQweI+5BY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59182},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.7.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/054b380f95265d6dde7c9a05b84de6a4/adamhancock-workstream-daemon-0.1.7.tgz","_integrity":"sha512-xH2XaJo+f6qJPB+xc6FFw0ANxbbNmro+eigIKAYx7+dWW4ZjfAHdI+8LintKz92IVLP+7nR7xMHi/eSpcUqT/Q==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.7_1763026810181_0.9066759530340143","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@adamhancock/workstream-daemon","version":"0.1.8","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.8","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"be5057a1eac60d14eff71ca8757b8c93c1b4866c","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.8.tgz","fileCount":10,"integrity":"sha512-k/n8S7jOt0r7TAXzQ1rkfOqjrKGkpVkSUvZYPPej+FWkrU4M7nIpwM6QQQdJIzZuKkxevuOw0vpdIsr7Tvym8w==","signatures":[{"sig":"MEUCIF2rIXYf7FCPzFc41u6J+4RgUTqW+CrHUnXaepL72FsuAiEAw/cmHX7Tx2TDwGu7fvZOG2zjbx8vSQd4x2T2/OuY1cw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74022},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.8.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/f3c5418b153a99f2e33799f437bd8fae/adamhancock-workstream-daemon-0.1.8.tgz","_integrity":"sha512-k/n8S7jOt0r7TAXzQ1rkfOqjrKGkpVkSUvZYPPej+FWkrU4M7nIpwM6QQQdJIzZuKkxevuOw0vpdIsr7Tvym8w==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1","eventsource":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.8_1763039283805_0.4457438689731157","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@adamhancock/workstream-daemon","version":"0.1.9","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.9","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"330bfcb75116a0165e2758e5f3eae3ad356bcabc","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.9.tgz","fileCount":10,"integrity":"sha512-uWjv7o+d/oidjlrsJ6q3fyqpotmsX2IIzan2Os8tLu7mIeK3StVL2jBlur+M/KvGQvzedX1n7ZzTJAgLXe26mA==","signatures":[{"sig":"MEYCIQCTdNG1rs4s/ugz1n5/7/Z7Y4vXpe77yR57eBPFy6S0kgIhANp0CIcyOqGTJdQNceAbu64h5I/CJLFgtVlS9rLellfu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80602},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.9.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/a6748ed309b8f317c1741ded15ad8220/adamhancock-workstream-daemon-0.1.9.tgz","_integrity":"sha512-uWjv7o+d/oidjlrsJ6q3fyqpotmsX2IIzan2Os8tLu7mIeK3StVL2jBlur+M/KvGQvzedX1n7ZzTJAgLXe26mA==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1","eventsource":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.9_1763044709181_0.5138921675435013","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@adamhancock/workstream-daemon","version":"0.1.11","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.11","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"504a99d6d96c4d98c50a303194131e811cd20a95","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.11.tgz","fileCount":12,"integrity":"sha512-CrJIQKP/Il7kUNOxpf8NH9l9ZYLSDQAp6iPlz8MkcjBo0m194SLHn9Si2zat0Pyxyuy2Pd9b5b8eOVj2BaNM/w==","signatures":[{"sig":"MEUCIDHZjXKUJrklx5qGLfHebamwWd8Kyu+AOyLnFKxQMBYFAiEAjBSwweeDDZhXen38xcpg3QcVIbvbZHL6sRSSd+yN13o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122947},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.11.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/287505ddfdb6249a3979c7b148241f64/adamhancock-workstream-daemon-0.1.11.tgz","_integrity":"sha512-CrJIQKP/Il7kUNOxpf8NH9l9ZYLSDQAp6iPlz8MkcjBo0m194SLHn9Si2zat0Pyxyuy2Pd9b5b8eOVj2BaNM/w==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","ioredis":"^5.4.1","eventsource":"^2.0.2","better-sqlite3":"^12.4.1","@types/better-sqlite3":"^7.6.13"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.11_1763448949524_0.4050122139326613","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@adamhancock/workstream-daemon","version":"0.1.12","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.12","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"2de178bcf5489af4ca47264f06001f1a6bb38f29","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.12.tgz","fileCount":13,"integrity":"sha512-JeuU0n+PBWvnJTtfF6mqqgd8rElevwWj6I8GstVwo4/sJhUa0NB0DBgXOPzyCt4xjOWo6m8cwl4d+qcvwgRe/A==","signatures":[{"sig":"MEUCIQC+kVE1/xNIjInhKqINSxCTPtuTbGH+Jq7jlwWR/ateqwIgETPZ7j0gheP5uBV/adSPib3kq6n5Y/HEUzm3PPUpkb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139888},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.12.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/243a610635133f296d9d022b80b049c2/adamhancock-workstream-daemon-0.1.12.tgz","_integrity":"sha512-JeuU0n+PBWvnJTtfF6mqqgd8rElevwWj6I8GstVwo4/sJhUa0NB0DBgXOPzyCt4xjOWo6m8cwl4d+qcvwgRe/A==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","bullmq":"^5.37.0","express":"^4.21.2","ioredis":"^5.4.1","eventsource":"^2.0.2","@bull-board/ui":"^6.14.2","@types/express":"^5.0.0","better-sqlite3":"^12.4.1","@bull-board/api":"^6.14.2","@bull-board/express":"^6.14.2","@types/better-sqlite3":"^7.6.13"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.12_1763472209504_0.5837602072636645","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@adamhancock/workstream-daemon","version":"0.1.13","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.13","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"d40962a35abf3f5e7acebde3015e6a633a797835","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.13.tgz","fileCount":16,"integrity":"sha512-ZZZdklY3zZR0YIuUceVVtL0AXcX5F1tQ58LoLi0onEL3wsLp7J0d+PvOScvm20QLS5joIn/siQigy/ClxCb4Hg==","signatures":[{"sig":"MEUCIQCzj0PoYz7nzAK97PHIKxzXzYC7O8RNFJePmx4RcdGVswIgfcdo3rFYzvWdyvvA7Mxzn6XyAqJAO9C0CzPpu6heuig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150024},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.13.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/d5d07a3c829bd9ef700f08565debc44f/adamhancock-workstream-daemon-0.1.13.tgz","_integrity":"sha512-ZZZdklY3zZR0YIuUceVVtL0AXcX5F1tQ58LoLi0onEL3wsLp7J0d+PvOScvm20QLS5joIn/siQigy/ClxCb4Hg==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","bullmq":"^5.37.0","express":"^4.21.2","ioredis":"^5.4.1","socket.io":"^4.8.1","eventsource":"^2.0.2","@bull-board/ui":"^6.14.2","@types/express":"^5.0.0","better-sqlite3":"^12.4.1","@bull-board/api":"^6.14.2","@bull-board/express":"^6.14.2","@types/better-sqlite3":"^7.6.13"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10","socket.io-client":"^4.8.1"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.13_1763571120230_0.31938127948750816","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@adamhancock/workstream-daemon","version":"0.1.14","keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","_id":"@adamhancock/workstream-daemon@0.1.14","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"bin":{"workstream":"src/cli.ts"},"dist":{"shasum":"5518613ecd6d2d4dd9298070bb286f6c06166ab1","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.14.tgz","fileCount":17,"integrity":"sha512-kjxPDrKdfMnDL8IPvfxOhSrNzmC6KGtNEbmhN1ZDffSz9vfQyNwB3eutukOCg2XEqPBwJELtJaSLK7CrYBuW6w==","signatures":[{"sig":"MEYCIQD5Gy6+iYJr+u2eskEhR2fOHqrImaef9qw4IaQ8VDxzRQIhANK8gDHA38EICoPBTr+RSZO6r2WyLi1Hrap4uRy1+WqB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210382},"type":"module","_from":"file:adamhancock-workstream-daemon-0.1.14.tgz","scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/tmp/198fb4eb4188160fb7c154def02beb9a/adamhancock-workstream-daemon-0.1.14.tgz","_integrity":"sha512-kjxPDrKdfMnDL8IPvfxOhSrNzmC6KGtNEbmhN1ZDffSz9vfQyNwB3eutukOCg2XEqPBwJELtJaSLK7CrYBuW6w==","_npmVersion":"10.9.4","description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zx":"^8.2.4","tsx":"^4.19.2","bullmq":"^5.37.0","express":"^4.21.2","ioredis":"^5.4.1","socket.io":"^4.8.1","eventsource":"^2.0.2","@bull-board/ui":"^6.14.2","@types/express":"^5.0.0","better-sqlite3":"^12.4.1","@bull-board/api":"^6.14.2","@bull-board/express":"^6.14.2","@types/better-sqlite3":"^7.6.13"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^22.13.10","socket.io-client":"^4.8.1"},"_npmOperationalInternal":{"tmp":"tmp/workstream-daemon_0.1.14_1764433911035_0.8747094757899068","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@adamhancock/workstream-daemon","version":"0.1.15","description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","type":"module","bin":{"workstream":"src/cli.ts"},"keywords":["vscode","daemon","background-service","macos"],"author":{"name":"adamhancock"},"license":"MIT","dependencies":{"@bull-board/api":"^6.14.2","@bull-board/express":"^6.14.2","@bull-board/ui":"^6.14.2","@types/better-sqlite3":"^7.6.13","@types/express":"^5.0.0","better-sqlite3":"^12.4.1","bullmq":"^5.37.0","eventsource":"^2.0.2","express":"^4.21.2","ioredis":"^5.4.1","socket.io":"^4.8.1","tsx":"^4.19.2","zx":"^8.2.4"},"devDependencies":{"@types/node":"^22.13.10","socket.io-client":"^4.8.1","typescript":"^5.4.5"},"scripts":{"start":"tsx src/index.ts","dev":"tsx watch src/index.ts","install-service":"tsx src/install-service.ts","uninstall-service":"tsx src/uninstall-service.ts"},"_id":"@adamhancock/workstream-daemon@0.1.15","_integrity":"sha512-f5wZ7JX5ouvj/j+8dPUGzG5dd0wZRpGsd5cGAzcV+d3hEWMvF+vxcj1YPQWd7X59ogJpFcV3N76oNvPHU1CYNQ==","_resolved":"/tmp/608a9f1b8095ab82868afb7ce84c8f4b/adamhancock-workstream-daemon-0.1.15.tgz","_from":"file:adamhancock-workstream-daemon-0.1.15.tgz","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-f5wZ7JX5ouvj/j+8dPUGzG5dd0wZRpGsd5cGAzcV+d3hEWMvF+vxcj1YPQWd7X59ogJpFcV3N76oNvPHU1CYNQ==","shasum":"e77ef6212640ee93d0788e3e242297730c326f3d","tarball":"https://registry.npmjs.org/@adamhancock/workstream-daemon/-/workstream-daemon-0.1.15.tgz","fileCount":17,"unpackedSize":210618,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC6QBRdBdoQV50cuJ38yoc7WXVnKi25zqDFKwL/Skxj5wIhAMV1ioj1MmjSkPluyN9gRotbe5yW93CkrnvRSHR+D+7M"}]},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"directories":{},"maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/workstream-daemon_0.1.15_1764506439372_0.2738413156055377"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-12T19:19:46.752Z","modified":"2025-11-30T12:40:39.800Z","0.1.2":"2025-11-12T19:19:47.024Z","0.1.3":"2025-11-12T19:37:45.987Z","0.1.4":"2025-11-12T19:49:58.694Z","0.1.5":"2025-11-12T19:56:37.751Z","0.1.6":"2025-11-12T20:37:59.161Z","0.1.7":"2025-11-13T09:40:10.353Z","0.1.8":"2025-11-13T13:08:03.988Z","0.1.9":"2025-11-13T14:38:29.382Z","0.1.11":"2025-11-18T06:55:49.712Z","0.1.12":"2025-11-18T13:23:29.682Z","0.1.13":"2025-11-19T16:52:00.421Z","0.1.14":"2025-11-29T16:31:51.224Z","0.1.15":"2025-11-30T12:40:39.567Z"},"author":{"name":"adamhancock"},"license":"MIT","keywords":["vscode","daemon","background-service","macos"],"description":"Background daemon that maintains real-time VS Code instance and Chrome tab metadata for instant access","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"readme":"# Workstream Daemon\n\nOptional background service that maintains a real-time index of VS Code instances with metadata. This makes the Raycast extension and CLI tool **instant** by pre-fetching all metadata.\n\n## What It Does\n\nThe daemon runs in the background and:\n- ⚡ Polls VS Code instances every 5 seconds\n- 📊 Fetches git status, PR info, and Claude Code status\n- 💾 Maintains a cache file at `~/.workstream-daemon/instances.json`\n- 🔴 Uses Redis pub/sub for real-time updates\n- 🚀 Makes the Raycast extension load **instantly** (< 10ms)\n\n## Prerequisites\n\n**Redis must be running locally:**\n\n```bash\n# macOS (Homebrew)\nbrew install redis\nbrew services start redis\n\n# Or manually\nredis-server\n```\n\nVerify Redis is running:\n```bash\nredis-cli ping  # Should return \"PONG\"\n```\n\n## Installation\n\n### Option 1: Install via npm/pnpm (Recommended)\n\n```bash\npnpm add -g @adamhancock/workstream-daemon\n```\n\nThen you can use the `workstream` command:\n\n```bash\nworkstream start      # Start the daemon\nworkstream status     # Check status\nworkstream stop       # Stop the daemon\nworkstream install    # Install as macOS service\n```\n\n### Option 2: Install from source\n\n```bash\ncd packages/workstream-daemon\npnpm install\npnpm link --global\n```\n\n### Install as macOS LaunchAgent (auto-start on login)\n\n```bash\nworkstream install\n```\n\nThis will:\n- Create a LaunchAgent plist file\n- Configure it to run automatically on login\n- Start the daemon immediately\n- Set up logging to `~/Library/Logs/workstream-daemon.log`\n\n## Usage\n\n### CLI Commands\n\n```bash\nworkstream start         # Start daemon in background\nworkstream stop          # Stop running daemon\nworkstream console       # Run daemon in foreground with live output (debugging)\nworkstream status        # Check if daemon is running\nworkstream logs          # Watch all logs in real-time\nworkstream logs stdout   # Watch only stdout logs\nworkstream logs stderr   # Watch only error logs\nworkstream install       # Install as macOS service (auto-start)\nworkstream uninstall     # Remove macOS service\nworkstream help          # Show help message\n```\n\n### Running Manually (for development)\n\nThe easiest way to run the daemon with live output:\n\n```bash\nworkstream console\n```\n\nOr run directly with pnpm (same behavior):\n\n```bash\npnpm start\n```\n\n### Check if Running\n\n```bash\n# Using CLI (recommended)\nworkstream status\n\n# Or check process manually\nps aux | grep workstream-daemon\n\n# Or check Redis\nredis-cli keys \"workstream:*\"\n```\n\n### View Logs\n\n```bash\n# Using CLI (recommended) - watches both stdout and stderr\nworkstream logs\n\n# Watch only stdout\nworkstream logs stdout\n\n# Watch only errors\nworkstream logs stderr\n\n# Or manually with tail\ntail -f ~/Library/Logs/workstream-daemon.log\ntail -f ~/Library/Logs/workstream-daemon-error.log\n```\n\n### View Cache\n\n```bash\n# View file cache\ncat ~/.workstream-daemon/instances.json | jq\n\n# View Redis data\nredis-cli keys \"workstream:*\"\nredis-cli get workstream:timestamp\nredis-cli smembers workstream:instances:list\n```\n\n## Uninstallation\n\n```bash\nworkstream uninstall\n```\n\nThis will:\n- Stop the daemon\n- Remove the LaunchAgent\n- Keep cache files (delete manually if needed)\n\nTo completely remove:\n```bash\nworkstream uninstall\nrm -rf ~/.workstream-daemon\npnpm remove -g @adamhancock/workstream-daemon\n```\n\n## Configuration\n\nEdit these constants in `src/index.ts`:\n\n- `POLL_INTERVAL`: How often to poll (default: 5000ms)\n- `INSTANCE_TTL`: Redis key expiration (default: 30 seconds)\n- `CACHE_DIR`: Cache directory (default: ~/.workstream-daemon)\n\nRedis configuration in `src/redis-client.ts`:\n- `host`: Redis host (default: localhost)\n- `port`: Redis port (default: 6379)\n\n## Claude Code Integration\n\nThe daemon can receive real-time notifications from Claude Code via hooks:\n\n### Setup\n\n1. **Ensure redis-cli is available** (installed automatically with Redis):\n   ```bash\n   which redis-cli  # Should show path to redis-cli\n   ```\n\n2. **Copy the hook script** to `~/.claude/`:\n   ```bash\n   cp notify-daemon.sh ~/.claude/notify-daemon.sh\n   chmod +x ~/.claude/notify-daemon.sh\n   ```\n\n3. **Configure Claude hooks** in `~/.claude/settings.json`:\n   ```json\n   {\n     \"hooks\": {\n       \"UserPromptSubmit\": [{\n         \"matcher\": \"*\",\n         \"hooks\": [{\"type\": \"command\", \"command\": \"~/.claude/notify-daemon.sh\"}]\n       }],\n       \"PreToolUse\": [{\n         \"matcher\": \"*\",\n         \"hooks\": [{\"type\": \"command\", \"command\": \"~/.claude/notify-daemon.sh\"}]\n       }],\n       \"PreCompact\": [{\n         \"matcher\": \"*\",\n         \"hooks\": [{\"type\": \"command\", \"command\": \"~/.claude/notify-daemon.sh\"}]\n       }],\n       \"Notification\": [{\n         \"matcher\": \"*\",\n         \"hooks\": [{\"type\": \"command\", \"command\": \"~/.claude/notify-daemon.sh\"}]\n       }],\n       \"Stop\": [{\n         \"matcher\": \"*\",\n         \"hooks\": [{\"type\": \"command\", \"command\": \"~/.claude/notify-daemon.sh\"}]\n       }]\n     }\n   }\n   ```\n\n   **Note**: The hook script automatically parses the event type from Claude's JSON context. It detects:\n   - AskUserQuestion and ExitPlanMode tools (interactive prompts)\n   - Notification events with type `permission_prompt` (tool approval) or `idle_prompt` (waiting for input)\n   - PreCompact events (context compaction)\n\n   These trigger appropriate status changes (`waiting_for_input`, `compacting_started`, etc.). No arguments needed!\n\n### What It Does\n\nThe daemon tracks Claude's working state using hooks instead of CPU monitoring for accurate, real-time status:\n\n- 🚀 **Work Started**: When you submit a prompt or Claude uses any tool\n  - Updates status to \"Working\" (purple in Raycast)\n  - Triggered by: User message submission or any tool use\n\n- 🤔 **Waiting for Input**: When Claude shows an interactive prompt or needs approval\n  - Triggered by: AskUserQuestion tool, ExitPlanMode (plan approval), or Notification hook with `permission_prompt` or `idle_prompt` type\n  - Updates status to \"Waiting\" (orange in Raycast)\n  - Sends macOS notification: \"🤔 Claude needs your attention in [project]\"\n\n- ✅ **Work Stopped**: When Claude finishes a task (Stop hook)\n  - Clears working and waiting status (gray \"Idle\" in Raycast)\n  - Sends macOS notification: \"✅ Claude finished working in [project]\"\n\nThis hook-based approach is more reliable than CPU monitoring since it directly tracks Claude's actual state changes.\n\n### Testing\n\nTest the hook script manually:\n```bash\n# Test work started\necho '{\"session_id\":\"test\"}' | CLAUDE_PROJECT_DIR=\"$(pwd)\" ~/.claude/notify-daemon.sh work_started\n\n# Test waiting for input\necho '{\"session_id\":\"test\"}' | CLAUDE_PROJECT_DIR=\"$(pwd)\" ~/.claude/notify-daemon.sh waiting_for_input\n\n# Test compacting context\necho '{\"session_id\":\"test\"}' | CLAUDE_PROJECT_DIR=\"$(pwd)\" ~/.claude/notify-daemon.sh compacting_started\n\n# Test work stopped\necho '{\"session_id\":\"test\"}' | CLAUDE_PROJECT_DIR=\"$(pwd)\" ~/.claude/notify-daemon.sh work_stopped\n```\n\nYou should see status updates in Raycast and notifications for waiting/finished events. The compacting status will show as \"Compacting\" in the dashboard.\n\n## How Clients Use It\n\n### Raycast Extension\n\nThe Raycast extension can read from Redis or the cache file for instant results:\n\n```typescript\nimport Redis from 'ioredis';\n\nconst redis = new Redis({ host: 'localhost', port: 6379 });\n\nasync function loadFromRedis() {\n  try {\n    // Get instance paths\n    const paths = await redis.smembers('workstream:instances:list');\n\n    // Get each instance data\n    const pipeline = redis.pipeline();\n    for (const path of paths) {\n      const key = `workstream:instance:${Buffer.from(path).toString('base64')}`;\n      pipeline.get(key);\n    }\n\n    const results = await pipeline.exec();\n    return results.map(([, data]) => JSON.parse(data as string));\n  } catch {\n    // Redis not available, fallback to file cache\n    return null;\n  }\n}\n```\n\n### Redis Pub/Sub Client (Real-time Updates)\n\n```typescript\nimport Redis from 'ioredis';\n\nconst subscriber = new Redis({ host: 'localhost', port: 6379 });\n\nsubscriber.subscribe('workstream:updates');\n\nsubscriber.on('message', async (channel, message) => {\n  if (channel === 'workstream:updates') {\n    const { type, count, timestamp } = JSON.parse(message);\n    if (type === 'instances') {\n      console.log(`Received update: ${count} instances at ${timestamp}`);\n      // Load latest data from Redis\n      const instances = await loadFromRedis();\n    }\n  }\n});\n\n// Trigger refresh\nconst publisher = new Redis({ host: 'localhost', port: 6379 });\nawait publisher.publish('workstream:refresh', JSON.stringify({ type: 'refresh' }));\n```\n\n## Performance Comparison\n\n**Without Daemon:**\n- First load: 2-3 seconds (fetches everything)\n- Cached loads: ~500ms (reads from Raycast cache)\n\n**With Daemon (Redis):**\n- Every load: < 10ms (reads from Redis)\n- Always up-to-date (refreshed every 5 seconds)\n- Real-time updates via pub/sub\n\n## Troubleshooting\n\n### Daemon won't start\n\nCheck logs:\n```bash\ntail -f ~/Library/Logs/workstream-daemon-error.log\n```\n\n### Redis connection issues\n\nCheck if Redis is running:\n```bash\nredis-cli ping\n```\n\nStart Redis:\n```bash\nbrew services start redis\n```\n\n### Cache not updating\n\nCheck if daemon is running:\n```bash\nlaunchctl list | grep workstream\n```\n\nCheck Redis data:\n```bash\nredis-cli keys \"workstream:*\"\nredis-cli ttl workstream:timestamp\n```\n\nRestart daemon:\n```bash\nlaunchctl stop com.workstream.daemon\nlaunchctl start com.workstream.daemon\n```\n\n## Architecture\n\n```\n┌─────────────────┐\n│  VS Code        │\n│  Instances      │\n└────────┬────────┘\n         │\n         ↓ (lsof every 5s)\n┌─────────────────┐         ┌──────────────┐\n│  Workstream     │ ──────→ │  Cache File  │\n│  Daemon         │  writes │  .json       │\n└────────┬────────┘         └──────────────┘\n         │\n         │ Redis Pub/Sub + Storage\n         ↓\n┌─────────────────┐\n│  Redis Server   │\n│  (localhost)    │\n└────────┬────────┘\n         │\n         ↓ reads + subscribes\n┌─────────────────┐         ┌──────────────┐\n│  Raycast Ext    │         │  CLI Tool    │\n│  (live updates) │         │  (instant)   │\n└─────────────────┘         └──────────────┘\n```\n\n## Redis Data Structure\n\n```\nKeys:\n- workstream:instances:list         (SET)    → Set of instance paths\n- workstream:instance:{base64path}  (STRING) → JSON instance data\n- workstream:timestamp              (STRING) → Last update timestamp\n\nPub/Sub Channels:\n- workstream:updates                → Instance list updates\n- workstream:refresh                → Trigger refresh requests\n- workstream:claude:{base64path}    → Claude status updates\n\nTTL: All keys expire after 30 seconds if daemon stops\n```\n\n## Development\n\n### Watch mode\n\n```bash\npnpm run dev\n```\n\n### Testing locally\n\n1. Start Redis: `redis-server`\n2. Run daemon: `pnpm start`\n3. Check Redis: `redis-cli keys \"workstream:*\"`\n4. Monitor pub/sub: `redis-cli subscribe workstream:updates`\n\n## License\n\nMIT\n","readmeFilename":"README.md"}