{"_id":"codeharbor","_rev":"99-5e53e495d30127fbb91ff505689a6b3a","name":"codeharbor","dist-tags":{"latest":"0.1.105"},"versions":{"0.1.0":{"name":"codeharbor","version":"0.1.0","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.0","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"3c68460cb42c7236010f64dfa505f0b0d600a6e3","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.0.tgz","fileCount":5,"integrity":"sha512-O1kp2SQOA7sr15gRuQRzsdTY1ip0wQSdnpRRX7dHBDKeYlUJd06y25wKf6zVk2As8V4/xLqpl/66gD1Ta1SyCg==","signatures":[{"sig":"MEYCIQCb6M5Kr9Ih9fc4mSAmJASHSZrBWo4LqFffYDre/4W8mwIhAJa/kzX8lTseBD0Zx5gEESuaScZkjVLkTSbybtRAfpKk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92486},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"b10c231fb73d8e93593ead5908c850c3c36d3f0c","scripts":{"dev":"tsx src/cli.ts start","test":"vitest run","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","test:legacy":".venv/bin/python -m pytest -q tests","prepublishOnly":"npm run typecheck && npm test && npm run build","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.4.0"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.0_1772503520621_0.6308174418763228","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"codeharbor","version":"0.1.1","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.1","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"ce836d3ce1aca38d86e84c3c37c6ccf7514f17b3","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.1.tgz","fileCount":5,"integrity":"sha512-1eXvUW3UMhaEXMq+Tooy9IG5J+oHnlqcmILqiHYwmPYdIwqJ7nbe5QbomvT2ZwofLcpPCia2A2iFPlff/FLnJQ==","signatures":[{"sig":"MEUCIQD2II0dn+8MvWPK37xAeOnWHxb5nDH8ejdv/hIIOOYcbgIgZ04H5v6X0cDq8hUO6sUsUVuJy4z21HgmDwT242A3EJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199379},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"f3df16b288811a282e45bc5a148c02a008d8925d","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:coverage && npm run build","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.1_1772535021263_0.5260696609051665","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"codeharbor","version":"0.1.2","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.2","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"b833ce9fd4b33f68b48581c83133fb6d16f6fd07","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.2.tgz","fileCount":6,"integrity":"sha512-WGyYGsVG0GWgwlKgqRcmtSEwNaqB9LERz7T6x1K2X5UXVmVHmzVUR2g4f59ichyMTCV9TRG9g7P4zXlk8GJVpw==","signatures":[{"sig":"MEYCIQDaI1Ft5PS1sgW50hpCKCaM8M15Sq7IXT9sH1I9Ss6gxgIhAKdL4cD44/9IlsJnccqjLChGzdTWvqrL6TMr6mNw27cW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205602},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"b6105c83725652bff4238f499c09fdcefa66eb4c","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:coverage && npm run build","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.2_1772578183840_0.14674729578812884","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"codeharbor","version":"0.1.3","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.3","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"60fcb39c0f7ab21f717853f0de628654e392f934","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.3.tgz","fileCount":6,"integrity":"sha512-4Y6FFWBuHfzoCzRg9npLXVy8xa75z9CsAENap79sRznY90Ex36dFvJaUFs8gplw5duT3fnZehGxSS2ePp29nLA==","signatures":[{"sig":"MEYCIQCf/gG+vnirfDugD+k61P0dqXxRVRLJjH4DcfwP0u2cCgIhAI+OKVtpKIWQo28fuWON8LVR+ZFfDJiP1o4kCXNW7ew4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205924},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"a1510bb6cf7b20cd5a2bc95cde8b64e0259a83f4","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.3_1772587849728_0.8255729088662711","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"codeharbor","version":"0.1.4","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.4","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"361aa72fb477bde2ac8e5b3b051175959942bd67","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.4.tgz","fileCount":6,"integrity":"sha512-h8Mbp17BNMhtonlrJYk3WV67sqxZ9pgxNGnNvoJZ9QHPnSjQLEXlPUfdMotTHhbPdd7fifzD4rhJ6t02V4pXiw==","signatures":[{"sig":"MEUCIBpRV5LUNjO+AzGX96E7CCtoQ6oky6r14W5E1OufzdYiAiEA+wzPswjuZPGMMOr5CfrRhKTjrgDbs275lBCfk6Oo/xQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206356},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"90c6674a48efb93a7200552a3d8466f64787033d","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.4_1772591767483_0.5166141055023075","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"codeharbor","version":"0.1.5","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.5","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"1250d3adf4fac53c879aa2a10563a01eae45b6e0","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.5.tgz","fileCount":6,"integrity":"sha512-BZ9c1rt54MxKi7fnNOGQIjkmtoIMhAM8QC5hXUl3wT85D2OzbTFDz3UW2RmH06/Y3U8Wt+ryTGawCVUDSnMicg==","signatures":[{"sig":"MEUCIQC4HtYWWUe4216WaXgh3arZtizKzA2YxcC3v2kZ9VR+WAIgLD3Ib9gfRF9FwYxO0Les3l/zXfyd/iMs5BMILzxxpV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207522},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"8acdc07a52b64d23ea77e5edc7a7e6b97a1e3891","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.5_1772630098513_0.6842754911796087","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"codeharbor","version":"0.1.6","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.6","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"c24082f9b0605fedc6c46bdb626beef69d24f5fb","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.6.tgz","fileCount":6,"integrity":"sha512-Ru+bxra/1c2aI4Mey7f9p6lAQ/NL4QlDhrsYc3uJo9RX7df5T/06qag8lZV7uBfbkavqjFzJ//vGxBmVNOFjbQ==","signatures":[{"sig":"MEYCIQCRnX+4E/rhH4TetIn12pcEHIFoe0kaVZVOUOp/uC1qPwIhAL8gDMFYIyYLglg1ZDPdgKJxMC9c+fzMLK4Lophd1B4x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218498},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"1a3d0b2c406715d51b36b40e3be107683584e9b6","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.6_1772631870098_0.702800004804764","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"codeharbor","version":"0.1.7","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.7","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"491e19f1809444a3a5bb15db6d189c6d4f22829d","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.7.tgz","fileCount":6,"integrity":"sha512-tN5TnuJZEBYSubysg1+3EFWrNcoHK70l3lM0FdwgqjavCknRHOECE1EE3rWxsHeThjnuRmsZKAyqmTsh8aJMyA==","signatures":[{"sig":"MEYCIQCZjvI+IADOK2GghqvS4F+MCT7xN4ebZYLSlQ3ASGfCSwIhAM7bUmmeko1I9l7WE4XooVoTPe6BK3IRQz6cxMAusEeR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220175},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"44ce342b70d85c11908e6ef941a0eff8a191e580","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.7_1772633071379_0.9482396295436804","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"codeharbor","version":"0.1.8","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.8","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"feb1642ab5f0af86ba74e3f3b100a5b92e0efcef","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.8.tgz","fileCount":6,"integrity":"sha512-Ah1jNZYS2mYQ6i6zk5dY7Qf22gPFk+1pbkWme5CkzBCDt4iUBrBPOsIJcFeedh21BuIbd2ptoQkEfwz8D8i7rQ==","signatures":[{"sig":"MEQCIEyGaT3xats0v3inSmhlPw2n0zBGpAJdxI0lV9cSr0DZAiAOsHntO2rw3Yg+q1kIkO2sm1Pcrfr1iTcKaknddoVfdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220185},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"8e1cdbc59659031396225261a64f40ee42d73a02","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.8_1772633920012_0.9189704553206728","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"codeharbor","version":"0.1.9","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.9","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"d2dfb7826ea497154fa8207f21bd64621dbdfe34","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.9.tgz","fileCount":6,"integrity":"sha512-r1MtCAqS6FJbdsViODI0r3cshfLvGXKNW3Gd4J2rdGEt9Eg1iY9G6mdB1P5qCrn1TPo8s4/uSfbuAOc5BnEbLg==","signatures":[{"sig":"MEQCIDxHD9UugncEwnZWHhoAx9/qy92yMKYa5JY/wmH11uSXAiAFT+aagB1gXNsqKFf1UNr3XRo3cxTxo2u8nVFw2kTZuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220177},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"e58734cd496aa7929326b36482482e6e774a27f9","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.9_1772634488799_0.3171192199232744","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"codeharbor","version":"0.1.10","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.10","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"b2a400f85e7146ac1e7f4c8cd5c65d2e194858de","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.10.tgz","fileCount":6,"integrity":"sha512-6XWJ9tpJePDaRy00pyxvpPITavoOx2Gs/4Z80x/7kH5BUbv7rLomd4gVGYip9I7yXsbvk8QVjR19LbTADqpkIw==","signatures":[{"sig":"MEUCICLznH8k/JxfQNEl5M9n/SfQD/aSoFNpmlC9JHXxSpWXAiEAxisk2w55gpLvqg4+l+M6GP1agHuQU11JXHd+f42NJew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240308},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"749883b477e127fdade5db5aab84fdc13c52a079","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.10_1772694203558_0.46717708129376834","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"codeharbor","version":"0.1.11","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.11","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"6b2850337a657d618dc381f66c6a2af91c17dbeb","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.11.tgz","fileCount":6,"integrity":"sha512-j9tn1IReeAyUEPZxVajqyFSZ4sf8SxttvqdmhVaQGMvSODfY1GjGcDSQxsr/7LeC7MOJxafrreQx5IQXvz0bAw==","signatures":[{"sig":"MEUCIQCH58zz/SuY0Fg3WAzotbaAF5g7bD0ilXnZXTDLic+i6wIgKltP1n9NghccqDNw5UnqVFEQmVVVYVK/PKxPsonGArA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243170},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"f559022a3345a735d9e89cec4778631a7f2c79af","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.11_1772704102898_0.42372032231694323","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"codeharbor","version":"0.1.12","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.12","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"562c2249f91e669f4d7f87b23f7285da69ca935f","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.12.tgz","fileCount":6,"integrity":"sha512-wKuBvIp/nxjAEojwIEU2qHuCDZOJ5kxz9aueonpYhZocZPBW6Y/HlCOcOgqa7tm+b1a0be8wZFECb9fOAjaJeQ==","signatures":[{"sig":"MEYCIQCBtKl2JdcgJ1YZ+y4NdpOHdjoeGi01oz0m9SkXuiO5AAIhAJo7zrZKFzdBDZn+O5NOxZ6NFgIr0mqp3NcdWiyYuXRj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246381},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"947a2f64efef0ff195539bc368bde50b704d27ef","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.12_1772706217028_0.8290233460216387","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"codeharbor","version":"0.1.13","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.13","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"921dfca2220f520f5f5a1447736bf62280b6044d","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.13.tgz","fileCount":6,"integrity":"sha512-vQM/tlIWYINWs7X1EpI02HGV6t4WV+VypKFYiOQOAFGVmtAXCEFtwFfcUGhmi3hQgg/UWlKFX3oDAbJjMtz6ag==","signatures":[{"sig":"MEQCIHFADRlx5PegS0UfoyjGN9Jm8V3AdDNwPA6sCQ+Q0zP8AiAZPMQuUsJOsbjthBDDkAgZ8QKK6QPzbX2clPT324l8FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246381},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"8c44e05810d8924668b721fbce7f04602b0dc12a","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"biglone","email":"jjoyceu@gmail.com"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.7.0","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.13_1772706533563_0.5684824844912644","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"codeharbor","version":"0.1.14","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.14","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"4fd27b99697d46b2ea5a9f955a53168b6443fce7","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.14.tgz","fileCount":6,"integrity":"sha512-xdJBqLexskLmE0BVnq1xy7gybXLnCv2YtFoYExK4h88R9uVHwqAJj+H5vIERT0AH4uUp6JQHyn7mHIIAfqbJuQ==","signatures":[{"sig":"MEQCIHmAg5Lu+eYeGOaWgCpK3nVp8xc+8fESAeIu3D/usP9+AiBCmmt8gA3o8bHd5I8N4mRrtRZvXqRUZu5LnULJn/N9Dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":267201},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"c511889af2bc3302c241501fd0e7c5fc5f626b65","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.14_1773294762996_0.6665306341388082","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"codeharbor","version":"0.1.15","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.15","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"f85e07694f894682822564ba12fb2e4ac6c98291","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.15.tgz","fileCount":6,"integrity":"sha512-G978Ut+2qDp26Xd2HxFS9vwrDEPXScbAuDiuxKGqqqM0Tpxk1+/mG/gLeIS38j1rmEx3/tkKkBJu3HNA7Qrpbg==","signatures":[{"sig":"MEUCIQCsXLpT3/PZ2AzbVQ5dDWabTpBy+ljcNzc+6D9knUug4wIgB/upETuQevgZpjCTsSpr5bQykVLUNBFnYlgA9Y34lwM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":272585},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"eb71ce42c04ef3418282106e6a15f84d69efdc8e","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.15_1773302482982_0.1430002019911576","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"codeharbor","version":"0.1.16","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.16","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"6f07dd6bc73ad2cc2eeeabc31a90ef80f7334075","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.16.tgz","fileCount":6,"integrity":"sha512-g8AFjUJbIXMa1sOZDvqNMlv+yPaqUYj8We5/OqHLI7vpGu6gkBfMrxGy1ZD7ije5eR0ItdWgRYISgWVrfDQJQg==","signatures":[{"sig":"MEQCIGEOkNOHIeG8ZakRBPpNDUzhqmLtffB6oTQe9zLNq+VIAiA2qn92FcVWgfqjeDebXrMm8vUGcUqAAGyZw1YLD8dJ7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":280025},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"2f50249d44bc7c17568badc06ac954f21c0c5635","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepack":"npm run build","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":".venv/bin/python -m pytest -q tests","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.2","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.4.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.16_1773477265453_0.3718813055841319","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"codeharbor","version":"0.1.17","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.17","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"8f838ecdaa92cc4b2036af2278343dfc317e007c","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.17.tgz","fileCount":6,"integrity":"sha512-/v3GVhR1ZxrzQH2r8i1yebpKDRohn11tRAarghk8nlfJcumreCzbrURwKmza3lTwIMN4ykn4Ui16PJLGsCXmGg==","signatures":[{"sig":"MEYCIQDbmXqXASC1zBUGh9Pp7HLXOR50GbHrCraTfX3JhoQHDAIhAN6RLp22TFZK41bHb4Ftpq/s1TisC7jNr2+CBtPc2Rok","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":287022},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"3acb3f67db149019e8b99ecbcf06bc5b5d519eb5","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.17_1773492747534_0.16587039349244037","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"codeharbor","version":"0.1.18","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.18","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"bf0e76b5b8c0c5cdb7e7e202c79ea61a4ab05bba","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.18.tgz","fileCount":6,"integrity":"sha512-ACXcLbU2vIhVWCCY613tTS34KMocQTDhWsipkF7JNxueoD9au25uNEf41Ao1VgZBFcsgqTbFDJ6V31bsW74ZBA==","signatures":[{"sig":"MEQCIDVh4jIXVlPX99ZrRXghgEfQxXOLBAkglUSZ+iiFvXJbAiBVE0OkYDansdEktnUatzfuUlwXPS3O+l6w7ohdajPvog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290591},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"0ccd4ad1811d0c1d8d2cf255e3b85c5c8bcc85ab","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.18_1773532736823_0.7366889664591021","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"codeharbor","version":"0.1.19","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.19","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"16402f3bc078c7094132d881eab83b676311539b","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.19.tgz","fileCount":7,"integrity":"sha512-vZXqCA8Mv7yWOJyWU1Q0tjWDwybgHN5z6RDHDivIqv/UCg3KtIZXEnTRhSchYzVfyYEkb6UG7Uk1C/9ApKetew==","signatures":[{"sig":"MEUCIQCWnUkB4mETJzDxyQrCzz3MgYnOqqgVsD6fZJNeXy/EPgIgTSdnEFejdgwr43TiPdaNgFXxdKWfCC+bfdnYpF/oWRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":294227},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"1f1f4a2c3be443c0b9f9b13a9b0ec269eb4c9d0f","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.19_1773534359903_0.7114236626736532","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"codeharbor","version":"0.1.20","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.20","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js"},"dist":{"shasum":"da4bbcbfcedb39dfcb879867f7d55e0e4bbad0f8","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.20.tgz","fileCount":7,"integrity":"sha512-47FKZgJszItLL5GJlqLN8ZMMqIwVM70zk3WNmljyEw5ox1mCPuuJlN3e+v1oNwX9K4EFz5pvvvpGsIaOrD70uw==","signatures":[{"sig":"MEQCIFCc+BphuwXTsfw0ksCkB4JqsM3Og7bdy8iPnR5ZBY2+AiAaVZuBU76ulRFkqhnABSt2xHPCoXZIuYVOdoB3vI6AoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":307038},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"c7dbbecf17cc4fbba6a47ebe39a191957e2e1c0d","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.20_1773539199613_0.8356674343643247","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"codeharbor","version":"0.1.21","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.21","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"d1fe9a0a474ce4c1c1c18beb203eed4c2f814fcf","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.21.tgz","fileCount":8,"integrity":"sha512-q3hZ+qrQlQUFP+XReh1WrC7a2bdtzh6s072bGqdlxAFRvKwhKyqAj5b2MKOKwfELwowVYxa2hB0OpxGGcGzayQ==","signatures":[{"sig":"MEYCIQDzTGsaUAnMHvidaVqoJgAW8YWYo9ksFTpCWpd+boAQtwIhAPGG0WABm9qkxFda6LAetQvESHxjrVI+Z7ikfDHwlnIf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":315776},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"bced2b058b32e6b3bce368be70939f0122c657d7","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.21_1773547378149_0.7789035535984461","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"codeharbor","version":"0.1.22","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.22","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"7055e370db951bb139e1827476f9c242a16ca085","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.22.tgz","fileCount":8,"integrity":"sha512-3Wxek8i5lVH3rv2vrSq7VLzKPsjcFdsNKXiph9ZO3ZG8vncynGugiVRuzf+2fG3MIB4f61zfnBHdJ5Sa14sKjw==","signatures":[{"sig":"MEYCIQDxUesWshpUabVd1swsq3FG8qxpvHMjL//dx/s6zRYGKQIhAJa7TvUoRAgOYZmDpaGeIgN6VVeGt7sktY2XbrRXP44s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":323751},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"35a5b5b9d0b2c6b1ffdec0ecd8b8247dee83a44f","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.22_1773550080036_0.8619355084429108","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"codeharbor","version":"0.1.23","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.23","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"e0009324e2e9ebb86158bfeb2c308dc77595e9b3","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.23.tgz","fileCount":8,"integrity":"sha512-91vwnJPpUGW3ihVvI2J8PBLtdxFmYCsDSLUtyoSmvJIZBjqAKEZI3lOVB86KK8/S0nmS6Fyn3t21p7G78SEtJw==","signatures":[{"sig":"MEUCIF4HNCYwKbI8nrHl2+OzNg/3uLZSPUmI07LWC5uJYcmsAiEA3aUm+gZvG2F62bWJoeSks5orW3Z00xKIymyZpD+uJyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347700},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"a1d42963b0257148c7c4a84c2693082f8d14f5e4","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.23_1773553996547_0.8159401210136055","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"codeharbor","version":"0.1.24","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.24","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"48ec26b0559e73c7247184e4500039804ecc366c","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.24.tgz","fileCount":8,"integrity":"sha512-l9Sb16/4Z7lHtPE05rHvCbnzvcX6AF/noMDcRvYlK+6feIhNR7CiEhvEX+0+NP1LiMWH/IzRki7PoGfTyPeahg==","signatures":[{"sig":"MEUCIC7Xs4cn7okrbTLHXfsdHUuPjlXcW+7qpSOMtUGW75MnAiEAxvpVT7dQuVM6UCuxOsW9p3wCD+hdjqHN4UG3ymU/2o4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":349330},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"01bfe4e39a88f92528e669713468b6d450221f68","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.24_1773566487131_0.8028418114153295","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"codeharbor","version":"0.1.25","keywords":["codex","cli","matrix","bot","im"],"license":"MIT","_id":"codeharbor@0.1.25","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"d36685006209d88d6f8ab6ccd6effe7f3fb4cba0","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.25.tgz","fileCount":8,"integrity":"sha512-ZLwfP0PyI3Or7iOykZiz/0nO0TrJC3DfO7S59msOT9+gsogpmJ3pzAUkS/SyKjGh7ea/dMJn1CoMO9mTaGUsUA==","signatures":[{"sig":"MEUCIQCVgG5gyQdU+wW/cFzGOiRvfwuxpnqb6Gp5MQmxS0v+PgIgIVV8oZvSXWUdv2BXely+dWCTW/jYarkmFAdVHc3bxqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354708},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"575fa119ad79348bcf4797544e6f2a2ee6317573","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Instant-messaging bridge for Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.25_1773570050088_0.8954210684600357","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"codeharbor","version":"0.1.26","keywords":["codex","codex-cli","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.26","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"52ee16532af7fb5a4457bec1ab9c437fcc56bc27","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.26.tgz","fileCount":8,"integrity":"sha512-iBURK/C3/x0IPZj+YqPkkcra0VRtmnMTammRXSnv4WaqHKqIvB9dLRc8t0atC5bE6VzU1wk1SDhhico8LiVAvw==","signatures":[{"sig":"MEUCIC88McXnlsFgz3jLdsDPbKi2jXapCGaGVma2+IVJphu7AiEAsVHg3lFRnLpQ2EbwnBAISe26+pkohDTCQveA35JpSic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354970},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"5d94c68d2e627edfe03c7cf23177c60da1518d03","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix bot bridge for OpenAI Codex CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.26_1773575674649_0.5474882692508074","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"codeharbor","version":"0.1.27","keywords":["codex","codex-cli","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.27","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"4059e103f042a313505072d6c0ef5057ddaf50a8","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.27.tgz","fileCount":8,"integrity":"sha512-PjOP2//POWpfAaXbWC8KAzi1dRMtUIZ+rM/R2cjMhA7hRFNwp+OUS1c0j1OF3Hwslyvp6tVjQc4ofHxjlgiarA==","signatures":[{"sig":"MEYCIQDcattZK5cGP55peDnrL+3qfToN5fVLQlDDxrlaWlJVdgIhAIP1LjOgwxq2U3JHDDVx9jZpsNLtjMlT9DKQ8ssTYoAf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355477},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"486e8e9b768c9a94851a0a291a91e48455b30821","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix bot bridge for OpenAI Codex CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.27_1773579152590_0.2948503453651312","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"codeharbor","version":"0.1.28","keywords":["codex","codex-cli","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.28","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"c27065a8676b8c31ade3fc594998414875c26d6d","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.28.tgz","fileCount":8,"integrity":"sha512-AhyMIJcE80zGPL5G1h6v0rteraRCsNJap9Tcobc4451Y6/qbGWwuhQot0Dwk92LYJ4ck5HI2JFIlibJlFey7yQ==","signatures":[{"sig":"MEUCIQDfRyxVH4EY7Pu7Ab13gZVojqrISoe3qLX96Y5smOJJNQIgaug0/dJ5NhVClB5ctR63tm/apmZEdiutEIS4pAAEqJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363252},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"afe5c5094215d1bcf1994125c7a28d158ca18286","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix bot bridge for OpenAI Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.28_1773630369141_0.1757105692513543","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"codeharbor","version":"0.1.29","keywords":["codex","codex-cli","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.29","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"96d4dfe9d509d12a7864dd6c5d460022fad9cafc","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.29.tgz","fileCount":8,"integrity":"sha512-gWGPla+vxTdAsOXqlbd7TOnqgW0JDf0+njVqfdgC9rLo+9Dj/DOSiCJXU8sxSygyp9omYNNMqJTCq4PDJIH9kw==","signatures":[{"sig":"MEUCIQCJGDjjaHsbgIe/o1KAZYBHQB5InZ1NFuESzzvPbimnWQIgPuwfnW9LxDMPiRlDSRXecgghMuTHrmrvaB+oy4kniNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365224},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"f392b208bf20a0dfba2f408ba936ec88c1519af9","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix bot bridge for OpenAI Codex CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.29_1773635712157_0.7586413621379378","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"codeharbor","version":"0.1.30","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.30","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"3a326dbbea28d7e7a92141f7dc2059da24d69fc1","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.30.tgz","fileCount":8,"integrity":"sha512-/l+GaQlfO4bcNTXZeWzqGXHof4W4ZMFuWTuN953VZSK2T07LY4HSZYeSdn5R/f0mOtwpXrpT50RSLLoZfa9JeA==","signatures":[{"sig":"MEUCIHhVz+v4h7zhxnFz+3rdPjs0jRmDMoPEh+khFbo5cxymAiEAzaUUIH0Wwz+aDYMJYiDa0HJI7HGAz3n7Weop+vtzsEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380838},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"777a62df9f22ce01c70b49f2de8ca55bc1444046","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.30_1773642745330_0.28762736014737533","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"codeharbor","version":"0.1.31","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.31","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"8dd62d6a3c116f58b8bd09e1a7d1cc8c78a08b1f","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.31.tgz","fileCount":8,"integrity":"sha512-tNee+tfZ5uu6fN6jwiPch4Ax7kZ+DHev5ZXzteFjkPChmbla6iajq5goZBOUMnVdj2f2l54uMIekSRf/Wx5asw==","signatures":[{"sig":"MEUCIQC1ILFbfFXtjU3IN34RMwh7Xgo+lDWRvSaDtoT7eh/oDgIgYrDZ5cVYVXfSWXKg8PYFyPpnXr6WumGsKzn3emX/PPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383027},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"7ad5633df27048e243198d2e05a425b7d3e6c327","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.31_1773644352704_0.8240134361794926","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"codeharbor","version":"0.1.32","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.32","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"ea6ee10ed8da0b3a288fb3198a33d5eee64fd97d","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.32.tgz","fileCount":8,"integrity":"sha512-q+FX9jHE//T3EZBB/5IpJtL3wRkDm2AtF9SCEaay3AL6vBP9eGQofdqxqS6NlT6MDALbN2Lshfn42An/lXQnBw==","signatures":[{"sig":"MEQCIDMuaKXccnDLMRYfDJ4BzAiYlEw6BQaphbt4k+Ifj3tzAiAnHQPa+EXJH8xP3LJohKN2ZHvT1sojU0/NJBGX+iHfGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":389098},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"72f36a592b1193a8d531768e6c1a66e1bf3fc44f","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.32_1773648090581_0.440045513918202","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"codeharbor","version":"0.1.33","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.33","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"767e6c3e229cef3b56238a88f48d41529a5638f6","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.33.tgz","fileCount":8,"integrity":"sha512-gkvy02eWGTocMKZF/J/UNWiA07ogqmyqapBTT5C+e0Nx/gu3K/HuilG0ofc0S6uzCohbfsM41A/MiT+CwJE7+A==","signatures":[{"sig":"MEUCIQC7Bhi69RlXjwOm6WFpM1CTObuQKx77cyU4psRzuRmPoQIgdiZmdfxKMC4/w9ue5Hi0P3Xc2BE9eMscMkVxdsfyAmc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":390112},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"ed972443ff9d17d7188a6f291b4e13ebcc1915c0","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.33_1773651831416_0.5027569756223447","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"codeharbor","version":"0.1.34","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.34","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"fa7b36d8abf2ef0504747ae501fe1ceb270c3860","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.34.tgz","fileCount":8,"integrity":"sha512-5xJ3ETinBe7XRJAhDF4Mqe1QBlWINlo2C4AW7dw4sdXaTcvLsKhkUq82kEvLve7o+/IY83ymryIAqV529G7O9g==","signatures":[{"sig":"MEUCIBGyrCHPy4JaEMH0F+SHJQ7XrU9aU+EUkxN6rY+K6l1vAiEA2P0cz55GtrIZP2D/s01+SQ4Brp7S8gbi6oqjVuUWLYY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":400114},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"ebb48ce64e831f30fa64833b870f1d893cdc529e","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.34_1773654450228_0.14771489904045132","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"codeharbor","version":"0.1.35","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.35","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"a7f8f0e77b33fe92cf4edc205b19459486f8df5c","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.35.tgz","fileCount":8,"integrity":"sha512-bf0uQ8WNnmdgzxo2C22oPlPFVB+o/2xWLKZIIdDKzDm7xFWkOsK84hYmrdeOYOzII8l+NfDvaEuQphHhTIQ4cg==","signatures":[{"sig":"MEUCIBj6HhIS2dTN5LW4vAoW7m+xynewej2HIb/Zecl3hWsHAiEAs5LGSF9+VSrrTMFx+IjFg/RYhGPPFDQpgRPsP7MzVOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":404324},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"e3c0cfb93fc22fdcb2153417f60617708be37350","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.35_1773665586427_0.5376753206512077","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"codeharbor","version":"0.1.36","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.36","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"db58fc5e2221d786ecd9e41a110c7e0ee3d8331e","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.36.tgz","fileCount":8,"integrity":"sha512-5hCplqA5z63uWCyyRvy0oP6LaPDY2J6u93ZU1vK58uhbCYuv5dUDFGX75v/QTCY2PDQZkgN1NStLh+manoPuzA==","signatures":[{"sig":"MEQCIHoFLRYzwLy2LZX58wCPat70SKA+amZa74EjZg/YwifoAiBmXoYXwdb1bIZlF34jAmCLs53TWAsuU9yhzPZgnZkTCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":405927},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"18b3fde9c9f43cb7c4ff1c1085deb8832499bb2b","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.36_1773701333968_0.9678939006464031","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"codeharbor","version":"0.1.37","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.37","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"6c80528856a5865e77994e600072932cf48d0dc4","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.37.tgz","fileCount":8,"integrity":"sha512-F+mRFJVgYTs97YDh8KY9Tu0AQ/WJ6vK4DhGMD6ASlcWA0qZ2GZoNOl2KJSo9DCS4tRIwVUt27E2FyKq1VX2vHA==","signatures":[{"sig":"MEQCICyvch57pHwyp3eVBAm5ozUS+Sj2bbem2BRDkELyW8opAiBcgnCe8Yn7yLNJuBNhwZ62qmhifMrHFref0v/drGFp6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":409747},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"bf8cdab937748a470c33ec98a1218552a6504128","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.37_1773703110290_0.31568887266441115","host":"s3://npm-registry-packages-npm-production"}},"0.1.38":{"name":"codeharbor","version":"0.1.38","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.38","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"5fffcf040f2244712d218be57b041450f6f9d522","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.38.tgz","fileCount":8,"integrity":"sha512-r371xB3RFj28MslJKiaArVFU6mGva7/BFWnb8NyPs3VE1iAUqIcMBvQCyQKCcwYEAtyVocZmGU9sQ0IVaU35ww==","signatures":[{"sig":"MEUCIQDFBSddNP+MmLskyhdx61NkDyMUmACRq4SbYMYDrZxhJgIgCicLfVbKGrDvhMMprc2jY/rMJghh/K2RTfsmDto7MV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":423903},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"c605659f3d02cd8ab15f642758eb37cfd0d8001e","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.38_1773706333744_0.5200436699194304","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"codeharbor","version":"0.1.39","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.39","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"33ba613eeb2cc8c7f449022624b462a3103a1ae9","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.39.tgz","fileCount":8,"integrity":"sha512-xf94T36k83I/CDeUaR3mS37MRYYjV/Wb1yEbT+ebPrQKMY7GwjlSKyFpuV3P2XcFtglWOa8k0IV4bC2yZPZtog==","signatures":[{"sig":"MEUCIQCQJeLiEvAH3anBSIhb3pzCUPCGsZt5uZlY3WdOHZ4jvgIgEjq9XSlANDanvGhirenZijygVhAQYkdUJrOn2zSdxcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":425760},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"7aba94de09bb945680439f4f02e7d1a11e49783c","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.39_1773709457340_0.6157706865821178","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"codeharbor","version":"0.1.40","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.40","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"7f6e280c9b3cc356f0412748ecce727f9468fbed","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.40.tgz","fileCount":8,"integrity":"sha512-A7LdC4/VNuM59/lWAGucL9U/hE6MNk3eF/GAY3SpIuRKVffwVwksEsiq2TrbNisU6HqtIOtgyRfPGuqTSj4CFg==","signatures":[{"sig":"MEUCIE75vFOCT56q+zUuo3W5ea67MtQeulgxYbFm1sMa3/eDAiEApW1wFse1ROHf/XTUmbBjCO+HpVmYSikKXa4wNWobDLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":443810},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"a4d98b3e8230f81d7148356373770dfcd11d464e","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.40_1773717162920_0.34755568469476894","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"codeharbor","version":"0.1.41","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.41","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"518d9cf7b8d6b9bd6a723ce92ef387c29d28b77b","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.41.tgz","fileCount":8,"integrity":"sha512-UoScbgy2Knk/zEZGJO1zyboBtye4k91OqBv838XgFW6UozkuhGbyUl6wuZJP3O69+otbqDONFGjU0GvVB7MQ7Q==","signatures":[{"sig":"MEQCIAV/PgsLcYon6DusaIum8/EZcL2xm88jVeLJDBqr66NUAiB8QK6kx7D480vVnAZDXcUz3MqyVbq4cX9vtRiK1AYRyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":527411},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"d470e9f2a5c12b96e1915042dd48bdf0c4bfe380","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.41_1773800324182_0.0495092569251685","host":"s3://npm-registry-packages-npm-production"}},"0.1.42":{"name":"codeharbor","version":"0.1.42","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.42","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"d429df64dec0f742ee377737ac5048bf6cf647fb","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.42.tgz","fileCount":8,"integrity":"sha512-33MseNWeMjq7PHXomuhfOxaGvHD1VO32GQBErmRxhys45+cUaUtzXjtOB/tqVzmpE+Y1s5KhlRpIAtyAlScOWA==","signatures":[{"sig":"MEYCIQDBM4DrX1Z9DesPQ1/aorNLpFnrDYQgzZlSnc2afBOb+QIhAKkt09w4g+3DfWgTopQKTtMzQyk49OBTbwbBLoMCQI81","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":543403},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"4bbb2f664410430a31d8350668944811586b854b","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.42_1773808789434_0.6026092759178607","host":"s3://npm-registry-packages-npm-production"}},"0.1.43":{"name":"codeharbor","version":"0.1.43","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.43","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"c2540cb620c7ed80fde1c8be53a62b3ec43aaeca","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.43.tgz","fileCount":8,"integrity":"sha512-48vq3Q7gIwNl3Pz/4D/bba8h9GroQNWlM5dOT02ewGaclwdukweLqJp7DeV68LU8uXOsBMQfB/YkZa8D32FjBQ==","signatures":[{"sig":"MEUCIQCymEMvF2SXhR4Kg4PnyjVxfGSI7AEVPwwnnaq9RKnhPgIgAyYasfoRLIvCB3dXcgiyahceY9QaXQkwPcLAmzw8qAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":543908},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"8275710d67a164ca4a733d1a31989d076a8a6587","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.43_1773811708903_0.09109920898195911","host":"s3://npm-registry-packages-npm-production"}},"0.1.44":{"name":"codeharbor","version":"0.1.44","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.44","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"cacd307bdc50c54588b3f978082fb4d9e8466725","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.44.tgz","fileCount":8,"integrity":"sha512-xEyylc4znRyiippG94iFfa3LIa74+ZuV9+7sf2Jax9d8TWua7ZNe7TmcDvNnTJskgH0ysO8SM4NqptWBLq84LQ==","signatures":[{"sig":"MEQCIB7FDqhQ1INkgj5qxIcVeb1EkgOKZ11LvJrKbgoAVxieAiAWrJz2h8HhLJHUAtHsgSrk2vSFoQpNfnkTxIY5nuvizQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":565428},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"99c3e7b037b8dcac41e32e00516ca9ecabb746e4","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.44_1773816181162_0.5203795901241963","host":"s3://npm-registry-packages-npm-production"}},"0.1.45":{"name":"codeharbor","version":"0.1.45","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.45","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"1e4016c0916d49e67bfa4f864d5e53cbbce3a1dd","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.45.tgz","fileCount":8,"integrity":"sha512-l2CEs3tzMySWadqHhPFL+QLWiDRVNAVuvweh+fAj3DtXqJt5nZAUHzkYjTqteNk2Da5LsTxgJwuVpNS9Yhh4wQ==","signatures":[{"sig":"MEYCIQDstmuyxcAkCgwsZ+kkZuZN83r1PG4lMZeRXlsKkX0zYQIhANnOG8e2xtfZkiuPIv//xp52aVJGWjTu8yl+44LKNV48","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":574092},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"ba261063d5df1ef2ae0cdfcee9cb043023abf998","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.45_1773818612885_0.39718603362183313","host":"s3://npm-registry-packages-npm-production"}},"0.1.46":{"name":"codeharbor","version":"0.1.46","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.46","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"a5f1e5118696cb31c5a8fc82a2acb33fb807d5a9","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.46.tgz","fileCount":8,"integrity":"sha512-vQPiYP80SHKgu2Sz6Buu85yEk9XExoonONZYrqwHc40JjdOxLWAjunjAsuDiA0kzKyv3hd3rL4IJHBQnhXywuw==","signatures":[{"sig":"MEUCIA6GJWvqsIaMhc8pJZkCHjoZnxf3lamaJP8Cu+Mz3JbkAiEA8CSIu0H542fyE3+TPE8N5Qe6CIWpqbv6hZoppEcR4Dc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":587823},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"025e9f8a502bb2520ad242b52b4acb5ce34d298b","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","commander":"^14.0.1","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.46_1773825160650_0.013562751647979931","host":"s3://npm-registry-packages-npm-production"}},"0.1.47":{"name":"codeharbor","version":"0.1.47","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.47","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"a5385767d71b98b57367d3ddef88c0f1de667320","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.47.tgz","fileCount":8,"integrity":"sha512-VGPZorQfl16z7JVRvENH6iOMJE7g8deSCkxb1BHIdCWkeRkelRVCFKnfoUQ8SJPCLr3SooEZkfyR3TypWANkaw==","signatures":[{"sig":"MEYCIQDLz32WlMwV6xuT93/VBbZAOlZJLQKAlxGmWATPJcy4uQIhAIzLSZ4LcmALBX0srfZSkwE5yiCDM09CnLLIcIofWcci","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":641413},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"dd690228177da0afbbbd1784f1a6ff52259659f9","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.47_1773886324759_0.5884180106904833","host":"s3://npm-registry-packages-npm-production"}},"0.1.48":{"name":"codeharbor","version":"0.1.48","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.48","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"ebd0df5a7427af2105b2e043fcd26df55be7ef2e","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.48.tgz","fileCount":8,"integrity":"sha512-PU//BYOpZxR9Cim6yUbw3mfQuYMOb09lzQRePTHDAaJ7XbWfU+yaDSSykph0PmFt4UVE28d+E1kG34A8q3NQpw==","signatures":[{"sig":"MEUCIBtkP3tSFi3ZX2Go1E1fzFLjkHnx7gkOuZXOb6PIHBhvAiEApIumERJenWLYPeiat2CTFcfhw6radXKijqaOA9xhEEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":704368},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"5d5fc14ede505175cb2a3781e6c65c335467a776","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.48_1773900034640_0.881562835450669","host":"s3://npm-registry-packages-npm-production"}},"0.1.49":{"name":"codeharbor","version":"0.1.49","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.49","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"088f2940f52d6b72128e9d6dccdefeb2eec07e91","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.49.tgz","fileCount":8,"integrity":"sha512-fcfpUKTpKqCLmGO69L9nbhphWzgLWe+7qlmu5AuLrtQT5DvOJE7GVA7GJ2XwnkEAg0SHvqwzygpcO3xGClzd/Q==","signatures":[{"sig":"MEYCIQDqcjcPnT5vTQURBu2HsHXMhD/pBWAIUjwDQ6EFxnjSogIhAMule7TrocH3dS4q9cT19e/I5hcq370dEbHgY4lOYt2L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":716956},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"5388fc68ea0d5c3cfa3ebe1648e8f8491a90e4de","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.49_1773904274933_0.06072947307870025","host":"s3://npm-registry-packages-npm-production"}},"0.1.50":{"name":"codeharbor","version":"0.1.50","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.50","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"8721c53b30bfd46d5536c483a09f1f00a5392ee9","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.50.tgz","fileCount":8,"integrity":"sha512-2LWMZfz9ozU6uIaMSwf9gDVPmLQ8xsPOny8b0DJ1g6zOOmFhhEP0xeZ2xxpmnb4NaZJQxUjBvoNB1LDsJhyo0g==","signatures":[{"sig":"MEQCIDHM4yFIV3nthlf9TyaldJMW4iEPSQlbtGGn9czrzXOCAiAWepFMldMMXuKVFHrLSI6QOzzhgjALu7aHG6tgqHD9Ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":741772},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"7044b04a067313ac2775d5e4753bf3a67f33dda3","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.50_1773923958499_0.22654492043894137","host":"s3://npm-registry-packages-npm-production"}},"0.1.51":{"name":"codeharbor","version":"0.1.51","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.51","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"c8f03260092ba47129809729665e76559950f940","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.51.tgz","fileCount":8,"integrity":"sha512-Cf90CyzPdLoNOt8VNV/LE8qBv801uzbQFx0SRnEHTaIMlXQOphUkL3fbCItK13J+iQvlere0wpevLPoZBqs2AQ==","signatures":[{"sig":"MEUCIQDHNbpA0QmualqNktHkYG9SVSsioSJ03CE8I05W42itfwIgSPCA/ESgkOm7amBGeQkZtczlryvj4h3RpORawhIGaI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":833449},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"6b89f09dcd9a729e3ec9fb4619cda1695cc23fe3","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.51_1774089597537_0.025733877517198245","host":"s3://npm-registry-packages-npm-production"}},"0.1.52":{"name":"codeharbor","version":"0.1.52","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.52","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"96f6faad35d5d1ae9a59d9417e9730fd02024034","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.52.tgz","fileCount":8,"integrity":"sha512-EBrSqwM4JMBfp3YpYQ6dbocmlPQ7QZP5KYZ1S2hfUZzG0d5BxU6Db3dwyovL+slbKqN66JTEn7QwBSXesbqLMQ==","signatures":[{"sig":"MEQCIHL4I1jBQ9SN0ylfRbhMdoV3YPMs92fMUlmUxXtHrP9nAiAtvcBPGdrtotHVJeHUo2y3mW8+q+V+VWwNkF+zZ2ELlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":849253},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"eb6fa98a5a37f5fad8607c84275b5ce715441fd4","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.52_1774095703198_0.9467211767973946","host":"s3://npm-registry-packages-npm-production"}},"0.1.53":{"name":"codeharbor","version":"0.1.53","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.53","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"5327bba396bc0940bf9d1361779001979a77ff01","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.53.tgz","fileCount":8,"integrity":"sha512-osl41HhsUS2ltNRsFucAm5HNWF+dlHV49yuPDRH28IXiewK0gwwnjoU2WF23yU9TjhvrAq4Fhug7GPr7JZQrjw==","signatures":[{"sig":"MEQCIECQl1Sa5IRqs+FPAEOnkCdT/vzo0QCA4upOl+Fp2a/3AiAhcaURY58ugsT097CmDjoxXQ1QJTgQlyiUgmHML3KrnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":857099},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"71a30e3fbe2124de4d10db50da5d1458094db037","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.53_1774099373025_0.3781078655495642","host":"s3://npm-registry-packages-npm-production"}},"0.1.54":{"name":"codeharbor","version":"0.1.54","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.54","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"48e9f1ad632752b9c9ac5c678db880c533ac6840","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.54.tgz","fileCount":8,"integrity":"sha512-BSgDQ9Aq3hkje5yc/LoXqtxQPigdl4Ag3/nZHr8zAgy6TkoG/JrU0mCTZQnao6t6IX/lWZVqeAw2pJ0I3MzQXQ==","signatures":[{"sig":"MEUCIC6X8ocGycPyeXQ7obiwwjWQM2DJZvSxVE0lfhxSbbuxAiEAsB6a1pOZQ2ue2McirFEFR3vJNcDqz7ABclIY3s3Zoic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":915723},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"b49767ca5f708e4fc2d3789abaa205ff4a3c8dfa","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.54_1774113926081_0.3538979270467688","host":"s3://npm-registry-packages-npm-production"}},"0.1.55":{"name":"codeharbor","version":"0.1.55","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.55","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"2674ecbce7b2b7f8cfe7ea5a56333b12275f227d","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.55.tgz","fileCount":8,"integrity":"sha512-0/XrMtPR4GvhUh6xizVlMCkWl2BRTH6/pKGQHL+9XcOvHjZZ0qfd3NeUihGyxe4LCmMPIYMBEgHPMY2kamiT7g==","signatures":[{"sig":"MEUCIQDen7JaxyPm64bL4i/PynRsdDpPaCeuB5+KOpMYSyXN1QIgXGSGT4ZNeLKSKGEcWj3iCy27crXDMSdaorQ31ZP4bMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":994980},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"0a5bf79ebc93eeea50d3e0de66fdc2fc998da26a","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.55_1774142375780_0.8444799353614603","host":"s3://npm-registry-packages-npm-production"}},"0.1.56":{"name":"codeharbor","version":"0.1.56","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.56","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"152fd572276568820ac70646b930a58fac706b0d","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.56.tgz","fileCount":8,"integrity":"sha512-50eS23Wl8xA6Hjb8nXxChDQPjStbdLse3XsoKZ+SJiiy5B0asOceaUX+COIHa8JF/Y5+uPE5zmgxSquvYFHNhw==","signatures":[{"sig":"MEUCIQCAwXwBSwxQUkNvEiRsHfPkFwV+8ZpZ6BtjggpygFzXnwIgFqcKceXF2TIRJFvF2n7TSy8sV9fwpUi3pJEJ4Psc8EY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1021713},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"7639424077ea69cf168a5c7a78750908f0ca98d9","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.56_1774159067618_0.9554495266456491","host":"s3://npm-registry-packages-npm-production"}},"0.1.59":{"name":"codeharbor","version":"0.1.59","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.59","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"293427ea896a1bd221462935ae62933f0020d6b2","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.59.tgz","fileCount":8,"integrity":"sha512-EqCG/MjM3rt+NpI2cXjUR3wAe1fBURi303KvhjKnoUuCI5x/xIbbamsS0bB6WtdmiVt1fbJ9RrNfxiwg3bYtUA==","signatures":[{"sig":"MEQCIF7jeC6eGqgzHZeVxIyZY2GcOzPXvYmFhgrQD9NxvHbHAiBMjEp4j3y7jL5C1Qo5ESebfeTBZH92MsNMkJ70EYMh4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1049250},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"5c6e35c3d02b0b1e9e8356c6bc78d8d9f91d70d7","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.59_1774174293769_0.308156949000465","host":"s3://npm-registry-packages-npm-production"}},"0.1.60":{"name":"codeharbor","version":"0.1.60","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.60","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"49e96391e188b9bc93a279a2766cdd0b99e2d3fa","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.60.tgz","fileCount":8,"integrity":"sha512-eDclFeU12JoOG3KyvSRxLwVuyd0VF2OMZAxVxpo+nujalkGwC2juzJxS3vXz1pfN11Vc1xFFcJGVl8EtwjkZ6w==","signatures":[{"sig":"MEQCIBld3rqtysOJxq33QubWJePJVnBSSL/p306qiDNOBONeAiBYg0z5mttIs5XGoOqChtRBhlrteaHuK4UfqbC7daaFcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1125781},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"54eeb8b9a236ef56b7e25c8f4cd38875cc1505ec","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.60_1774190244389_0.8184571137595473","host":"s3://npm-registry-packages-npm-production"}},"0.1.61":{"name":"codeharbor","version":"0.1.61","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.61","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"0025d955eebd2390d191f4000e14934b6b451ef8","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.61.tgz","fileCount":8,"integrity":"sha512-3esuLbQjofOjx1pJhYvTE+Twk+UQjamAtNQyQF/IMHztH6UXD8fRA8hQAq1iBPEPL+xygQ6gkD+3BZcFvYtstA==","signatures":[{"sig":"MEYCIQCaKXFr/nYO0Fziv5642uARcc0fdBC+jPj9hGdeqfC5YAIhAMIk0PObhzZ5m0sSHEGGF/Q8ChATdyGF5gemmPeMCkOi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1127872},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"a4ceb31c67c9f329d66fde9fd200880e4b753fee","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.61_1774222869208_0.6815486113054112","host":"s3://npm-registry-packages-npm-production"}},"0.1.62":{"name":"codeharbor","version":"0.1.62","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.62","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"cd9e6eecf35ca0ac94b45039c45d4481f75baa7c","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.62.tgz","fileCount":8,"integrity":"sha512-zG3204MeAFUVx1hE04QxsCMGdwm7ojYyjOWx5QseY6ytjyXc/PnyQEKwZT9QgnUtQRA0rETY1l/nz4fGkOH7Bg==","signatures":[{"sig":"MEUCIFusU5AqbdipB1Yz27tgWtm3ICigYvDuQCDfCwlvqcquAiEA5LklUm3yZzyLUnc4zecexAP7HL4jRaDpKMhpeR9l27A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1130785},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"021fd8d9ed2e16a936f0176efbf9235c38964641","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.62_1774234279012_0.49354818802078504","host":"s3://npm-registry-packages-npm-production"}},"0.1.63":{"name":"codeharbor","version":"0.1.63","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.63","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"2cfef90a04fff31b0c14757ca802e61cd8b09fd4","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.63.tgz","fileCount":8,"integrity":"sha512-TvNTWw/gd8zWMZUEoMOplN43VX54KH15L4ffnzbgKcyBzwfo3NaVYOIkH99O/PYkmzeFInx0dBzR+l+4uTIjbw==","signatures":[{"sig":"MEYCIQCKFYhs3j0yml4j+h1P3IyY8t7pn4gnQiOGbxppQGtlcQIhAMbI9eB36uH+1kyiMXNf5GCKpl/8Nv03XJLH0xPmhFlp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1137842},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"075c1709bc53cf8f0e0b0827c12b61def438043d","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.63_1774238429412_0.04330627636551165","host":"s3://npm-registry-packages-npm-production"}},"0.1.64":{"name":"codeharbor","version":"0.1.64","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.64","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"63b09a27da67405074c7c2509470cc963fb7e069","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.64.tgz","fileCount":8,"integrity":"sha512-U5SpE+MqHxlTW5UDo7gzAfStrStTSXRBelAM98fZUDM5vKsiWi+vIf/FQaeIUw2JaKIyzNXo61bHPZWc9jNrLQ==","signatures":[{"sig":"MEYCIQCrhuj4R10FESE8tbbAvYdu/dD05rv/LbspB+n2QO4KBwIhALAGeekvVgf5CYnF7YNbOwDN4a+kI1ziV7TPP/oH6dXf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1176748},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"ec134c29cf81544afdb6a37e4c87dce8cb8f560a","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.64_1774325502043_0.6799625391994895","host":"s3://npm-registry-packages-npm-production"}},"0.1.65":{"name":"codeharbor","version":"0.1.65","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.65","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"f92e706c24b7620eb5ec652564cd1f84d4b78490","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.65.tgz","fileCount":8,"integrity":"sha512-B1D0u8faWW9qYjuT9larBDM0KlNjmBGOVxMOEZ72zGmp8hQP2vd9y4Vd3pkcXrJ5l0p/ytGqJRh/d0uyLzIfqA==","signatures":[{"sig":"MEUCIHybGwI0vS4fPJHREKbvDD967NZ0VMt6pQeHyzbydT2XAiEA5Z0qOww4FYyfMCVoEA/clY9cjeSHRVYxTgoNi6UvICg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.65","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1199335},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"c2e4169c93e4706a9d029f6970e74b2056005455","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.65_1774349925540_0.9040302576944428","host":"s3://npm-registry-packages-npm-production"}},"0.1.66":{"name":"codeharbor","version":"0.1.66","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.66","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"4cb87606e63db23dbaf82c406b9ef3c03cce4c1c","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.66.tgz","fileCount":8,"integrity":"sha512-qqR4jz9hsBmsXJVE7LGKJyfzF+9h/ccmLmox7UcRdwSLrF/TfrFYeRMxibKxB0H1O4JO83Ksbe+H+CjCPnTPQw==","signatures":[{"sig":"MEQCIG7c76Z3VIvLcqK6+EOHx+I3AG0HtshNlf39fOtda+LlAiBX0mr5eB859X1MvLc5vsaLkQNxH1NqVALsJ4LSJyeTEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1202085},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"d21da3582adf30e7de174139efc907c5b96466b7","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.66_1774352869655_0.5404785802084102","host":"s3://npm-registry-packages-npm-production"}},"0.1.67":{"name":"codeharbor","version":"0.1.67","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.67","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"11eb582a9f38e68ca16648c7f5605b4756a0e46b","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.67.tgz","fileCount":8,"integrity":"sha512-+4P1ULgFeOJSTkDe5DValWpPnEY0k6cNg/88RYd4kINFWB98g/UUSXwVAK+kF8Oo5ZccRoCTkrkRSS7mclkFog==","signatures":[{"sig":"MEUCIQD5dt/dSi5ezUv+LHjpzge0nvSQMv5cFIvW6rbd8L8XzgIgctJT2t5VGX4Uv2cPo/kj50ZW672H2dlWIEe2/qFPcu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1218528},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"899957f082f4240148a588c0cac524e08b281189","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.67_1774401066030_0.10985667476416783","host":"s3://npm-registry-packages-npm-production"}},"0.1.68":{"name":"codeharbor","version":"0.1.68","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.68","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"77f9ca9a94fc8b51d21c6813663656bf3e5f0a41","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.68.tgz","fileCount":8,"integrity":"sha512-/GzrD9FSNWnpVvaFRbNqOa+pKlfkLslxNeSU93hrxlbZeYFrUEMNFMZmQ/XQCQX7sbQ+rpzLIHtj4DgNIwJPiw==","signatures":[{"sig":"MEYCIQCOiTODgwl+9AKTn8Bvzx58tEHq6nwgUNkM5FZk/UcQqgIhAOpazAdoJeGhVuxhMQoCgykL8QqUrcGKoCTqdaekMX5e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1219897},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"843c3779ca99c0046fabafcbf7c579c089ed4f6f","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.68_1774415715774_0.6675432747595422","host":"s3://npm-registry-packages-npm-production"}},"0.1.69":{"name":"codeharbor","version":"0.1.69","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.69","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"2b619285e46adf7e12970409bee1adb442c20993","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.69.tgz","fileCount":8,"integrity":"sha512-MW0ATOAbOlzpx2AFq119vkG5gMtYJz2zaTMFAkkXJxLAK3enagYFL0N6Ld0CmJaFmNnYp6rVFspDrKUyMo6s5g==","signatures":[{"sig":"MEYCIQDTbNYaVToaaA7qO+P+sGP1BDv80CDuRyK4DkbEB0oZmAIhAPzOtcj37iWYBIvAPpjlNZEJLgI8UxruVTMwVF39+J7/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1223888},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"a13f9af1f9b86307b1b83cf5e02032e746578c5a","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.69_1774429665779_0.48768241160221804","host":"s3://npm-registry-packages-npm-production"}},"0.1.70":{"name":"codeharbor","version":"0.1.70","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.70","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"380825301a1e08cc1ad15977acf75ea91fde3f5f","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.70.tgz","fileCount":8,"integrity":"sha512-A4Pvg/7wTow7A1pAg/T8fLDCo+Em7RAjG32M2IxJnj8laJdCQ4ZSauowuXkK3d+0mMked+97Mf/JrbPHYq/gIg==","signatures":[{"sig":"MEUCIBOpAqQ6SwnLMbYR4JPYlQ7W4/O1WDQj3IRVPMvEij3MAiEAmomOh41WnyI5QUNJAOwoZhyiHiMNDM5BAkvL0lQdsK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.70","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1230829},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"cea6bbe1405c7241806c7bc79dadbad441143c59","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.70_1774447684466_0.017325654341007857","host":"s3://npm-registry-packages-npm-production"}},"0.1.71":{"name":"codeharbor","version":"0.1.71","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.71","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"4a13a1d41a13ffdafc3c9517f38096a92ebb6ef6","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.71.tgz","fileCount":8,"integrity":"sha512-8FoXd9DlQQVjeNwc5XVP/+a7BAXYJG2VkNQ09QuwXRWa5JTC93IOGgoFLsKeNyIYB2xC4LVm9tL/3ynyCgkOnw==","signatures":[{"sig":"MEUCIGD1AU9QZqqIerMVvL1cJKcTbOxAWKVQv1samq10MhwwAiEApxOSCw8jHsA/Y9utOD+p51KJceJiDaePSYxXxBL/GIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1233049},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"8a305f032512424aca81e1b3fddd53d00a671c6e","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.71_1774572825672_0.8896658279240641","host":"s3://npm-registry-packages-npm-production"}},"0.1.72":{"name":"codeharbor","version":"0.1.72","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.72","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"d652cebdf00ca6f65ee32ec90828ffc00af868e0","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.72.tgz","fileCount":8,"integrity":"sha512-1Gf8zviH/hOwfzIsc8L1cDkZ16frhExiP38FLZJ5wsXJwrgcsAgkPWIWb503T2AKR/65LbJ3gJM01wotZJxWaQ==","signatures":[{"sig":"MEQCIAbr3z1pD5koAFLZ5HWB4DVrCnzQztmL5rrIA7co9j4YAiAe5jKxavlaHHQ/xq0kQ4O3ddwgJB85deWEEYYgqe/yyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1236216},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"4f1dd40b9327c0fa212cef9a0bf1f7e1414a88c2","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.72_1774575432520_0.9277403672864164","host":"s3://npm-registry-packages-npm-production"}},"0.1.73":{"name":"codeharbor","version":"0.1.73","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.73","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"5244e1088c06e9b678b6c7576b7962ea8bb79b0e","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.73.tgz","fileCount":8,"integrity":"sha512-4V+W12bMEP2a57r4LIRj4qpkHxpa09NNvTVwRbYWfsQxec4MDyjdSenJNbTvVFr5DRcQ0utkaaQ3fYkw1xfP0Q==","signatures":[{"sig":"MEQCIFtbMRjTYDaNNu9qMrPVeMoXCB8U5ayKfUNBMCYJgGWnAiB9l4W0i9zzE/p7GeX0ZPjIJ18dUdb23EnkdWGAvj8lXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.73","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1236670},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"0c135ccd80bca48d062fa3d921c9d059d576b2f0","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.73_1774578981074_0.4214493829243522","host":"s3://npm-registry-packages-npm-production"}},"0.1.74":{"name":"codeharbor","version":"0.1.74","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.74","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"f29e039061749b002f16efd830f79ef8b21e35a5","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.74.tgz","fileCount":8,"integrity":"sha512-WsGKD07lnbq7evmmuM/uYOmXyEU1JgMfbpBk+O8iD5A+66Sa4a1xKr/hixA2FHeX6gzsCPU/krgpLgu+lLPRZw==","signatures":[{"sig":"MEYCIQDsdUXQnOMJR9WGFZVhwQ01P0rJc6qhmsYiF1A9sOk+EQIhALHXP6sofPAOeDySQ6vc3j2k3gH7IUv6rVgshffq/Bd5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.74","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1262676},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"5357c9596428289849d67b5e4e96e7ac4dad54e1","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.74_1774600710537_0.8451151919415647","host":"s3://npm-registry-packages-npm-production"}},"0.1.75":{"name":"codeharbor","version":"0.1.75","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.75","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"f90eb91523dcc6e1bd80d921dc9c2688ceaa6a49","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.75.tgz","fileCount":8,"integrity":"sha512-KtXf95AiH87Pf/4/jcjvCltPn5S4fWnvGFbD6a7RYYWspK2YEWVu3WLI59spEbgNV1le3t1SPQGO57/GNj5Myw==","signatures":[{"sig":"MEUCIQDIJVU96RsVA+FlPV6bg4TeW/XT9a88v0hfh9IHpDmBxQIgBZtHnBowLUsmT1OTmOR0CWZrMdKJVruN/YbDx4NCAMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.75","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1266125},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"69aceb6fba0a880813d8edad5637ecf7a5ad98ac","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.75_1774602909051_0.1075944817701191","host":"s3://npm-registry-packages-npm-production"}},"0.1.76":{"name":"codeharbor","version":"0.1.76","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.76","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"5ecbea8b3020c691996f57df815a089412ae3268","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.76.tgz","fileCount":8,"integrity":"sha512-bfza0ELCIGvUDcdwSi893YXTWMWNE6eJ4EuL6SjWV6ZlPFTmF2kIOBaIl5XxjJMWVq2Ba/LOkHXWd1B2EFsASg==","signatures":[{"sig":"MEUCIQDCXo2A0AV70XjQWeWbjFfRuxTNirpch0tmtBUVx4s5RgIgK/7dbSIe7Ig5+TKErHkmuw3eR5De4iLYxrVbIqgQMIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.76","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1266286},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"63e43a34d2b824005595aaf2b240d9e1849c828b","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.76_1774605406318_0.6155266788323108","host":"s3://npm-registry-packages-npm-production"}},"0.1.77":{"name":"codeharbor","version":"0.1.77","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.77","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"83cac0da948ac379875b2e32ab7cba892862824f","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.77.tgz","fileCount":8,"integrity":"sha512-1TE1yYHB2x0V5Zyp+CIPRMxFKqawNz/Kgs6WbJ246Vi9vA6sTe29rcEQV1JtzxsxCVwdubDEd8yDofu4GMMZmQ==","signatures":[{"sig":"MEUCIQCiWJQGA/Lb+6woq1z8fbHUYrMZfQim3rxtD55h4yR7zwIgZ1LpYJG4hn7Zjc6PiCC5ZE23k5fEgTTdmdRCG083j1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.77","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1279360},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"15e3c636585674204b6dbd651f12eaff844710e6","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.77_1774666023358_0.9075707060933589","host":"s3://npm-registry-packages-npm-production"}},"0.1.78":{"name":"codeharbor","version":"0.1.78","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.78","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"9238315c5e58762b54fefefbafa3f50d28233208","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.78.tgz","fileCount":8,"integrity":"sha512-jsRLAtyKzdQZ249EQLOHF3mNQhZIdg0yQ4p5+EF4vD7m7AmQATPq4csDjWcUWwqo1RqgEle7f2zh0dTjA2/TKQ==","signatures":[{"sig":"MEYCIQCh+btFWuvM5yO+XSTE77HZHLLb+w5cVmW0t+ZnYxY/1gIhANDt+byjov2S9cmF9EWSxYYEMzGK7g0PogHVnHy74wke","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.78","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1310814},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"ceabb9fe3c897be024c73797cf0bbab842ce8458","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.78_1774760551107_0.12016120515146866","host":"s3://npm-registry-packages-npm-production"}},"0.1.79":{"name":"codeharbor","version":"0.1.79","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.79","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"44a51a49d7944c3985e6f0e7792d631d578da7b1","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.79.tgz","fileCount":8,"integrity":"sha512-gZxqybolyYye5/Cao9oZakFNTsZU92nxI++KpvX59PX3nr6n0paTjg9MwZuTk8BJC7OUpwU/Kn7M3l2cmWrO4A==","signatures":[{"sig":"MEQCIAlu68bpTSKheH3+qs0TZvlevAIPzu4yfjPOLDnU3yoXAiAJSs/YeTvTT7Jq2Vkfd5BkKgy8iGFLC5kBslzZ0fAaOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.79","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1320552},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"db04c73a03b4ac0c95efb563f65143ae20af613d","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.79_1774762452069_0.08538264510600069","host":"s3://npm-registry-packages-npm-production"}},"0.1.80":{"name":"codeharbor","version":"0.1.80","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.80","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"4bf10715de394b29c8c0df7faf879bdfc32d461e","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.80.tgz","fileCount":8,"integrity":"sha512-1XeYQUigijndAdHni3X7bUnO1eEVxEIh24KJQXjFPiUDu9hf38KQtvkXkNNQZqvcE/gTVPADX1W7sGLtsCbHWA==","signatures":[{"sig":"MEQCICnFknjtN0sVfCf1UbMkV46EVvcYFOKED2jubufIMM9IAiBUOjwMOwtbo+jWQ73cN5xpttXgKwNpw6fIJdw+nvrkKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.80","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1324027},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"a3fd94b414118b3b6480732e6aa379d01bf38f6d","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.80_1774767611930_0.5105260278526307","host":"s3://npm-registry-packages-npm-production"}},"0.1.81":{"name":"codeharbor","version":"0.1.81","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.81","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"691a0e93a6a023a06de144cc2187d5f3a7f7f522","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.81.tgz","fileCount":8,"integrity":"sha512-mrMhk/zNWPR8V6hJjRmEYwhzHY2c2PnpEK9/LIcRD6SXq4uo6ltSLOJoiINZgwk/TS3ooEn4ySpMzKKsmvATjg==","signatures":[{"sig":"MEUCIFAPtAzpctiqjfXLwgKykdQyq/SODjpCvtqb4Gq9OZZCAiEAkM6ptyWv848apgjEDCszXHT9/ReGWojii85eYL8y6EU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1327452},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"d6a8204099f0a9e8f4060ef52127b7ca75f90241","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.81_1774768438814_0.6478183186190667","host":"s3://npm-registry-packages-npm-production"}},"0.1.82":{"name":"codeharbor","version":"0.1.82","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.82","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"7cbf556da910ffbd1defbb1153aeafc0cef191de","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.82.tgz","fileCount":8,"integrity":"sha512-Q8hc3IOhFOoGroEuF41FDhcjNberr3BKmKJvJnkaUuV9l8wYE/KIyp5Ivx7y+7FomzW8daaHbpwqWwn91RQrTg==","signatures":[{"sig":"MEQCIEAY2Sgd7C4nOCSVLf3fA821EWBvYFZgn9ZqTo49KyMmAiAiyberYNzx6dgA0cDRUaC9x/ek7XYK1U4VJaGDKVxM2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1327511},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"8cad428049914b3a37cc841cb294d280dee27443","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.82_1774788111948_0.23258306447360355","host":"s3://npm-registry-packages-npm-production"}},"0.1.83":{"name":"codeharbor","version":"0.1.83","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.83","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"553615db537ab461bc6ea5c7a675e0ce36ebafe5","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.83.tgz","fileCount":8,"integrity":"sha512-L9HNZrCnjBYy3Yz0ZXDoVWbpppqYVBScwJhqbpmBOqty6R2bwzAwSxgZqBU4YCV04MTaMNpbfDO6dsz4FUSWDw==","signatures":[{"sig":"MEUCIQD7DzFR59ROvkiICATXYBk2LXSwFPa/1jzW0cEAt2zjnwIgGNEVUTsLrLAjC1ElQ5MpXJAoaraDnyDKEfaSx84Tgsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.83","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1329073},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"badf7c1957e1bf0072cfbdc211f05ebad392b785","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.83_1774838204611_0.6624056737084723","host":"s3://npm-registry-packages-npm-production"}},"0.1.84":{"name":"codeharbor","version":"0.1.84","keywords":["codex","codex-cli","claude","claude-code","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.84","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"575f551492a1270c9a2da9491bec5156acf32005","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.84.tgz","fileCount":8,"integrity":"sha512-uTGpBY/6HhFLH2oEd62xv9+w/zT6DmpBeDbQxKOamF0U2eYecEG7G+CCTUGTtzwGaWwz8r6NA2FrzKBpDtU4HA==","signatures":[{"sig":"MEYCIQD+XVcGOn5Zd9wD7V553IPc5dtsNCFUobUcoVwBmVOIaAIhAKI5fU54f4cONzMETlYeH5tdegDcK/v79+SSNHHFJftz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.84","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1341571},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"48957bf3d2d5823f48ac64a9dff29c11b672a55a","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex and Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.84_1774878947757_0.14762787466351046","host":"s3://npm-registry-packages-npm-production"}},"0.1.86":{"name":"codeharbor","version":"0.1.86","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.86","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"3ddce7c93f69f479b8efc5a90fef8b5a65affa97","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.86.tgz","fileCount":8,"integrity":"sha512-PuspSCk7vUqVyyt/Vzmf2N5K0D5fFyTXDRL9fmZJs0JsUex1Jqn89NgOfPZjKYhZQPNa7JrtwVTBXaPGc9F+Nw==","signatures":[{"sig":"MEUCIQDSVUVzRZVYHaW3BJrYMYan/3M3OTNLpEXz8Pjy/JXiCgIgcVPtWVrQ1D0qpNPCf8LKLrey/2tDVDj2MqI7GAP0yp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.86","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1351762},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"863a96026afd84590dbffa4af52dc67071eed3e1","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.86_1774882838917_0.3764337419959145","host":"s3://npm-registry-packages-npm-production"}},"0.1.91":{"name":"codeharbor","version":"0.1.91","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.91","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"2032700f7f38339b49c49ab6ccd576f83cac09e8","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.91.tgz","fileCount":8,"integrity":"sha512-PDpc9QK5gaNTiZP9ozkK+mAnJuDXyE5cqcFPjwLbRFMNutw97qj9MDezLV2cYKd3q42tv5eifAM3l60jFaMoBw==","signatures":[{"sig":"MEUCIQCQQsSMuGtBaY4KmO4KnaARwy0GrVxmIIKcZv92UOWXrAIgP+NPlRlZamb27ijRKyK0qpn14bso3Qbjz7tZZMAME6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.91","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1359517},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"80c54195dcbaf9878b00ed49649cb730bb8ea154","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.91_1774937718946_0.11776754607543638","host":"s3://npm-registry-packages-npm-production"}},"0.1.92":{"name":"codeharbor","version":"0.1.92","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.92","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"5f78600e330831dde6359cd0c230fed595248c97","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.92.tgz","fileCount":8,"integrity":"sha512-2T5pk4Bm8GjI3l6atJRokUYpBjz8jGn0PPqAzA76hFGE3LpksuEWrO3y0EgZPKFfnDO/5VEKjeNCPPal5AZayw==","signatures":[{"sig":"MEQCICsu+gaQw6hcPxTiMmtBHxjbFXqD9O9frccIpSb2Wow+AiBo//Zn3MFMR06fdhSWpq4LeCWTfysH4ko5MhfFULwBUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1471955},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"b106868185e927b2deb7d3fd65cad527c925ec88","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.92_1775406325104_0.7898546426200921","host":"s3://npm-registry-packages-npm-production"}},"0.1.93":{"name":"codeharbor","version":"0.1.93","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.93","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"6918452216a9b977188f6bce7dce38b5b9680ee1","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.93.tgz","fileCount":8,"integrity":"sha512-H6OONYF/JTkdHA9KS75qX0WVEoYasJ4rCzz1VBKfbD924745uJvvAYxN6qkChSVN58iFKibG1PQNPfFmKYC64g==","signatures":[{"sig":"MEUCIQCBXIskE+tEwRc/bq/5vcbGy9StTgmuR20b83WMIXg9kgIgGU0ilcx9fr/NPOi3liQz9RQytQEOXUVlrECm2Sfi4Ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.93","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1479310},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"1c8b8e5b0f3ef95ab3fdc6612a7e7e5e5d1b1f28","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.93_1775447036337_0.18096103133711705","host":"s3://npm-registry-packages-npm-production"}},"0.1.94":{"name":"codeharbor","version":"0.1.94","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.94","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"1cc07dccee0ec8580c2955163ab8d31245f2abff","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.94.tgz","fileCount":8,"integrity":"sha512-qh1GZeO7vzXq5eXTlGO0bCFnTH3j/heShL6SLMJDMPffU5Dbz6SUF3BP7Y6yU6VPl0FWcMreDMoJrk0/ZyaGNg==","signatures":[{"sig":"MEUCIQDQC1bIxWKUNwZgdCWDoFoR3oEOVmcqByqFvIUgVAsBRgIgfMgMOtQNHP+zWbDu+mPnWuz1iiizi/PZIz+M02M8Hvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.94","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1480865},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"7e47dbd6cb10884fae5505fb9cf168b6fd7978e2","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.94_1775450830254_0.8860890585756442","host":"s3://npm-registry-packages-npm-production"}},"0.1.95":{"name":"codeharbor","version":"0.1.95","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.95","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"30a9d15da362eb8a6466e2f3154b3cc864cf7364","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.95.tgz","fileCount":8,"integrity":"sha512-jalFM94fwKeYk/Pfg80HQeW1adKRDQTMpPueT4tnSp2UBLt1OLadVrZ0u961JpaTlLGKou026AhPyxudncpOlg==","signatures":[{"sig":"MEUCIQDQUVNU8om04T2ATd+IsJyrBlZIs4WXHixlZf7FDRs/mAIgWTZWWWdlhG6UJeAeKSV/weYbRVzsf+5N2EtArV+pipI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.95","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1480865},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"e97bf4672057a97e3010123a5025160609044e2e","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.95_1775456194447_0.9133918364640816","host":"s3://npm-registry-packages-npm-production"}},"0.1.96":{"name":"codeharbor","version":"0.1.96","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.96","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"a697ccaba7bbfb513164610458ab615e35d4932c","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.96.tgz","fileCount":8,"integrity":"sha512-/mPTtEQ8N0oFUvNSshJPV1dTSiXIHtqUXm2YoTtridvmnVjEkBGqSCvBPQyw4D4Ca6B3mmImeWBFAK0r/8eDsg==","signatures":[{"sig":"MEUCIA+i5P9/1vw9lgKMO3+2lbSktNZPIgsut7b5Lrej61UIAiEA5JWCHi8VSNrYLhRQCP7vgPCS+14lkkwuwnqn9UcrTaI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.96","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1487420},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"3331c09eacb1d5494bc737774d2603cbde11b5f2","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.96_1775486233934_0.027432154673873166","host":"s3://npm-registry-packages-npm-production"}},"0.1.97":{"name":"codeharbor","version":"0.1.97","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.97","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"a61797f0fe39c299d998b501718746f9058b5fbf","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.97.tgz","fileCount":8,"integrity":"sha512-16GtwbxJt1TrWy71Ht4GTY4ane9g/bOob6jE2QhGVQjkE+qdveW//1ky53bxdQMUwKfaaZ6HudMkrjqRD8K4Og==","signatures":[{"sig":"MEUCIACZ77hceqhSdwzfHJZTX43nt0ruW+OfrAmpsCcIuxyyAiEA4WUZPHkhif5eMxcf1qHBtI10qdx91MHtqlk2qfztzFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.97","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1509020},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"a45875ed9e0906487f6546274ea6ebf86be3cfbc","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.97_1775526549485_0.17179691591338586","host":"s3://npm-registry-packages-npm-production"}},"0.1.98":{"name":"codeharbor","version":"0.1.98","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.98","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"4c8b4b2537a7ad9af317f6198f67247b52306ce7","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.98.tgz","fileCount":8,"integrity":"sha512-ZUMAo4J+PAunryLB/vBV893727C1U7hsIG2WvIogijnzlyjU4BmDTkweVmtBy3QpD9Di9TUqeoh8SvC+L0Rn3Q==","signatures":[{"sig":"MEYCIQCcz7KiriJWwDBI39vh35z4r9BHvadJ0BFE1L6IYoNZNAIhALRxGIu9cEY08R432/+rTaNlUTdUhHLKiKIwO4OCWQgw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.98","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1513164},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"0c1d4862aa3a1bd5be026a58b73feb9b77133912","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.98_1775549838942_0.09550671059559734","host":"s3://npm-registry-packages-npm-production"}},"0.1.99":{"name":"codeharbor","version":"0.1.99","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.99","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"0c6ececab677ea6c2e1c59ab194602bb2c783168","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.99.tgz","fileCount":8,"integrity":"sha512-teQofXjyi181ZNYNgucGEA8k+8+lxPX/cjSPKJ5oxNrH8ORmi6+Mhto+OnG4qsDW62edOcWlc7h4IHSfg5IZnQ==","signatures":[{"sig":"MEUCIQDd2WD0KxYqoQKL41DuDEMexsapQc5W6gjBnqasQHI8SgIgbsphEBXqOLjnTfEiENBB1MWpOVkoOR5cZcNxpYCnfOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.99","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1533173},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"6730ae559d6495bb2c71eed27d325cba462cd55c","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.99_1775834096993_0.974835483908808","host":"s3://npm-registry-packages-npm-production"}},"0.1.100":{"name":"codeharbor","version":"0.1.100","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.100","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"39ea2cc30348a66a683c2494b2983d4b1fbb70fc","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.100.tgz","fileCount":8,"integrity":"sha512-WtJjKlUZPvAolS9LAKfTNYNopBgU06T0jiWWQ0yv+lSvch2maAgGGRHqR4ss+7Q2uzNUnODHfGFWlsCAXDn23A==","signatures":[{"sig":"MEYCIQCgXIgTjPoBWMHsVJwEeZETq+6nNNCVFbfLUxTUlS5pwQIhAMIJELPUt/vljMPoFqofp32WE3yO6QpQ66Uvk0fQM+yz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.100","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1538498},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"d4d5a6db124c77c470aea0188bc32f7303332299","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.100_1775838573290_0.08567260010692124","host":"s3://npm-registry-packages-npm-production"}},"0.1.101":{"name":"codeharbor","version":"0.1.101","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.101","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"6f9ff9cc8739661e3da20489a329c10cc37655d4","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.101.tgz","fileCount":8,"integrity":"sha512-gXpajPXYRFjIEOGokqKw6AmQOT/hA6lovne1ge0OBchy2IlgF3oVmkHRj9k2vaDYk4/7KUv9ZNq0Y9KcvF4oLA==","signatures":[{"sig":"MEUCIQC6CktWQqCskGSi1egVkYtnNWzBGKd8AJ2nyWT03WUUoQIgU8oeM1ZLKtmiqqygUGsZHPxV+okLLxa58j5UgLNdVuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.101","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1560005},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"7df98f534cb7929037bb952c0cd54795a5b4a2cd","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.101_1776069360739_0.6971732583132606","host":"s3://npm-registry-packages-npm-production"}},"0.1.102":{"name":"codeharbor","version":"0.1.102","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.102","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"4ffc5ac68ac8f8ea58f4292c5a15ef0d27dfbd5c","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.102.tgz","fileCount":8,"integrity":"sha512-2kBpidfzUQyzZ2qG6bH02d51hyYKC/IAVot/pk76PnNhY2ff+zMTrOMAw1aKdLPVK8T4ZdWBo3oMf9QBNFE9OQ==","signatures":[{"sig":"MEYCIQDMUko5TJl/mvrf37Gg383eHw0dk23KIUWsleHc2OPWlgIhAM9NNAdzjk2aWaNSvrsyBGfVJZ2Jt1qTEWqeakHbDQMh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.102","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1629391},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"822950e9d91770d899f784c3dfa1f34a44350aaa","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage && npm run -s test:coverage:core","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts","test:coverage:core":"node ./scripts/check-core-coverage-thresholds.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.102_1776170438852_0.7349350291457957","host":"s3://npm-registry-packages-npm-production"}},"0.1.103":{"name":"codeharbor","version":"0.1.103","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.103","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"f49a8fdcd45454ecfa8895c6a1ee3ee52e2519a1","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.103.tgz","fileCount":8,"integrity":"sha512-w70L0Wg71uFGrpyksVPo/w+AXdFWKM0e3lr2ModiL8sXnjxWgCM7LnQwaRW2IekIEGcOA1sL5xU/yce7H8e9Ng==","signatures":[{"sig":"MEYCIQDq5V2wJ/9B/18Vc1XC+SB548N2zobsQMRf7eeyrw1TUwIhALZy/DXXyfRdTEFPqqkLCrq6qruBKJCgaAGlfXmlO8XM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.103","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1630115},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"667676768985d5ccc8f24e7aa5bf889609d4d551","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage && npm run -s test:coverage:core","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts","test:coverage:core":"node ./scripts/check-core-coverage-thresholds.mjs","docs:check-release-index":"node ./scripts/check-release-notes-index.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.103_1776184112613_0.4929936873226721","host":"s3://npm-registry-packages-npm-production"}},"0.1.104":{"name":"codeharbor","version":"0.1.104","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"author":{"url":"https://github.com/biglone","name":"biglone","email":"jjoyceu@gmail.com"},"license":"MIT","_id":"codeharbor@0.1.104","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"dist":{"shasum":"27476ddaa79a06f0ce7946f4498d668ef2b9a506","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.104.tgz","fileCount":8,"integrity":"sha512-AD3QCZPRa0lEb7JJWEx6PO/o95iwgyEQD0obMjxiMQAD7Uik41aH/AOkCrg3DEHSlu8HCcriT+Ku3+sQSIJlJQ==","signatures":[{"sig":"MEUCIQCmombvbDEei0tIdN69wAlQu5hZffO98lXODRWfDysqGAIgSyNCADaIpjzdXqHG+VWk5wLv9mA6QQmy89jTE/ltHYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.104","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1631834},"main":"dist/cli.js","types":"dist/cli.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"gitHead":"562a3cb6e6fccca897bc7021f39403665de3ff2c","scripts":{"dev":"tsx src/cli.ts start","lint":"eslint .","test":"vitest run test","build":"tsup src/cli.ts --format cjs --dts --clean","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","prepare":"npm run build","lint:fix":"eslint . --fix","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest test","e2e:install":"playwright install chromium","postinstall":"node ./scripts/postinstall-restart.cjs","test:e2e:ui":"playwright test --ui","test:legacy":"bash ./scripts/run-legacy-tests.sh","test:coverage":"vitest run test --coverage && npm run -s test:coverage:core","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","replay:cli-compat":"tsx scripts/replay-cli-compat.ts","test:coverage:core":"node ./scripts/check-core-coverage-thresholds.mjs","docs:check-release-index":"node ./scripts/check-release-notes-index.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"overrides":{"flatted":"^3.4.1"},"repository":{"url":"git+https://github.com/biglone/CodeHarbor.git","type":"git"},"_npmVersion":"11.5.1","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.1.12","dotenv":"^17.2.3","mammoth":"^1.12.0","commander":"^14.0.1","pdf-parse":"^2.4.5","async-mutex":"^0.5.0","matrix-js-sdk":"^39.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","eslint":"^10.0.3","vitest":"^3.2.4","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.2","@types/node":"^24.12.0","@playwright/test":"^1.58.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/codeharbor_0.1.104_1777132179829_0.197775394821192","host":"s3://npm-registry-packages-npm-production"}},"0.1.105":{"name":"codeharbor","version":"0.1.105","description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","author":{"name":"biglone","email":"jjoyceu@gmail.com","url":"https://github.com/biglone"},"license":"MIT","main":"dist/cli.js","types":"dist/cli.d.ts","exports":{".":{"types":"./dist/cli.d.ts","default":"./dist/cli.js"},"./package.json":"./package.json"},"bin":{"codeharbor":"dist/cli.js","codeharbor-whisper-transcribe":"scripts/local-whisper-transcribe.py"},"repository":{"type":"git","url":"git+https://github.com/biglone/CodeHarbor.git"},"homepage":"https://github.com/biglone/CodeHarbor#readme","bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"publishConfig":{"access":"public"},"engines":{"node":">=22"},"scripts":{"build":"tsup src/cli.ts --format cjs --dts --clean","dev":"tsx src/cli.ts start","start":"node dist/cli.js start","doctor":"node dist/cli.js doctor","replay:cli-compat":"tsx scripts/replay-cli-compat.ts","typecheck":"tsc --noEmit","test":"vitest run test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","e2e:install":"playwright install chromium","test:watch":"vitest test","test:legacy":"bash ./scripts/run-legacy-tests.sh","postinstall":"node ./scripts/postinstall-restart.cjs","prepare":"npm run build","prepublishOnly":"npm run changelog:check && npm run typecheck && npm run lint && npm run test:coverage && npm run build","changelog:check":"bash ./scripts/check-changelog.sh","docs:check-release-index":"node ./scripts/check-release-notes-index.mjs","docs:check-consistency":"node ./scripts/check-doc-consistency.mjs","lint":"eslint .","lint:fix":"eslint . --fix","test:coverage":"vitest run test --coverage && npm run -s test:coverage:core","test:coverage:core":"node ./scripts/check-core-coverage-thresholds.mjs","release:verify":"npm run changelog:check && npm run docs:check-release-index && npm run docs:check-consistency && npm run typecheck && npm run lint && npm test && npm run test:coverage && npm run test:e2e && npm run build && node dist/cli.js --help > /dev/null && npm pack --dry-run"},"dependencies":{"async-mutex":"^0.5.0","commander":"^14.0.1","dotenv":"^17.2.3","mammoth":"^1.12.0","matrix-js-sdk":"^39.2.0","pdf-parse":"^2.4.5","zod":"^4.1.12"},"overrides":{"flatted":"^3.4.1"},"devDependencies":{"@eslint/js":"^10.0.1","@playwright/test":"^1.58.2","@types/node":"^24.12.0","@vitest/coverage-v8":"^3.2.4","eslint":"^10.0.3","globals":"^17.4.0","tsup":"^8.5.0","tsx":"^4.20.5","typescript":"^5.9.2","typescript-eslint":"^8.57.0","vitest":"^3.2.4"},"_id":"codeharbor@0.1.105","gitHead":"d31df30d5894155750949b1da2b41a9a3549f017","_nodeVersion":"22.22.2","_npmVersion":"11.5.1","dist":{"integrity":"sha512-n0eWQgFS70uNMlAp+QMs7TpkLsBmerKzTJlF/7ShL+QXwFaFOLL6NN5UJT7mu/ngmJj2wRUlcw+rg2ZS5iVqcQ==","shasum":"871d82bc4ba32b255e5952300b4cd99b9ae059ec","tarball":"https://registry.npmjs.org/codeharbor/-/codeharbor-0.1.105.tgz","fileCount":8,"unpackedSize":1636965,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/codeharbor@0.1.105","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEhdxAZ9nBDmbep/QvP6sJYpzF/nvZj++Im3wjxEMsAEAiAvykrfdF5NCPxhPwDOP6pTEzQR8wLWaBvWoadgnPJ1tw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4b7ada1b-070a-4d8f-87a2-128afd7f995f"}},"directories":{},"maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codeharbor_0.1.105_1777160129196_0.6285288534066982"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-03T02:05:20.527Z","modified":"2026-04-25T23:35:29.649Z","0.1.0":"2026-03-03T02:05:20.785Z","0.1.1":"2026-03-03T10:50:21.432Z","0.1.2":"2026-03-03T22:49:44.048Z","0.1.3":"2026-03-04T01:30:49.888Z","0.1.4":"2026-03-04T02:36:07.666Z","0.1.5":"2026-03-04T13:14:58.675Z","0.1.6":"2026-03-04T13:44:30.275Z","0.1.7":"2026-03-04T14:04:31.548Z","0.1.8":"2026-03-04T14:18:40.167Z","0.1.9":"2026-03-04T14:28:08.959Z","0.1.10":"2026-03-05T07:03:23.720Z","0.1.11":"2026-03-05T09:48:23.038Z","0.1.12":"2026-03-05T10:23:37.184Z","0.1.13":"2026-03-05T10:28:53.723Z","0.1.14":"2026-03-12T05:52:43.137Z","0.1.15":"2026-03-12T08:01:23.110Z","0.1.16":"2026-03-14T08:34:25.639Z","0.1.17":"2026-03-14T12:52:27.680Z","0.1.18":"2026-03-14T23:58:56.973Z","0.1.19":"2026-03-15T00:26:00.062Z","0.1.20":"2026-03-15T01:46:39.783Z","0.1.21":"2026-03-15T04:02:58.311Z","0.1.22":"2026-03-15T04:48:00.198Z","0.1.23":"2026-03-15T05:53:16.703Z","0.1.24":"2026-03-15T09:21:27.282Z","0.1.25":"2026-03-15T10:20:50.254Z","0.1.26":"2026-03-15T11:54:34.843Z","0.1.27":"2026-03-15T12:52:32.730Z","0.1.28":"2026-03-16T03:06:09.297Z","0.1.29":"2026-03-16T04:35:12.348Z","0.1.30":"2026-03-16T06:32:25.474Z","0.1.31":"2026-03-16T06:59:12.854Z","0.1.32":"2026-03-16T08:01:30.790Z","0.1.33":"2026-03-16T09:03:51.555Z","0.1.34":"2026-03-16T09:47:30.393Z","0.1.35":"2026-03-16T12:53:06.576Z","0.1.36":"2026-03-16T22:48:54.171Z","0.1.37":"2026-03-16T23:18:30.490Z","0.1.38":"2026-03-17T00:12:13.952Z","0.1.39":"2026-03-17T01:04:17.509Z","0.1.40":"2026-03-17T03:12:43.119Z","0.1.41":"2026-03-18T02:18:44.333Z","0.1.42":"2026-03-18T04:39:49.600Z","0.1.43":"2026-03-18T05:28:29.073Z","0.1.44":"2026-03-18T06:43:01.333Z","0.1.45":"2026-03-18T07:23:33.031Z","0.1.46":"2026-03-18T09:12:40.786Z","0.1.47":"2026-03-19T02:12:04.931Z","0.1.48":"2026-03-19T06:00:34.851Z","0.1.49":"2026-03-19T07:11:15.149Z","0.1.50":"2026-03-19T12:39:18.752Z","0.1.51":"2026-03-21T10:39:57.766Z","0.1.52":"2026-03-21T12:21:43.426Z","0.1.53":"2026-03-21T13:22:53.246Z","0.1.54":"2026-03-21T17:25:26.240Z","0.1.55":"2026-03-22T01:19:35.973Z","0.1.56":"2026-03-22T05:57:47.767Z","0.1.59":"2026-03-22T10:11:33.984Z","0.1.60":"2026-03-22T14:37:24.559Z","0.1.61":"2026-03-22T23:41:09.402Z","0.1.62":"2026-03-23T02:51:19.163Z","0.1.63":"2026-03-23T04:00:29.606Z","0.1.64":"2026-03-24T04:11:42.188Z","0.1.65":"2026-03-24T10:58:45.725Z","0.1.66":"2026-03-24T11:47:49.806Z","0.1.67":"2026-03-25T01:11:06.282Z","0.1.68":"2026-03-25T05:15:15.919Z","0.1.69":"2026-03-25T09:07:45.995Z","0.1.70":"2026-03-25T14:08:04.759Z","0.1.71":"2026-03-27T00:53:45.872Z","0.1.72":"2026-03-27T01:37:12.755Z","0.1.73":"2026-03-27T02:36:21.280Z","0.1.74":"2026-03-27T08:38:30.780Z","0.1.75":"2026-03-27T09:15:09.212Z","0.1.76":"2026-03-27T09:56:46.481Z","0.1.77":"2026-03-28T02:47:03.612Z","0.1.78":"2026-03-29T05:02:31.297Z","0.1.79":"2026-03-29T05:34:12.340Z","0.1.80":"2026-03-29T07:00:12.189Z","0.1.81":"2026-03-29T07:13:58.995Z","0.1.82":"2026-03-29T12:41:52.133Z","0.1.83":"2026-03-30T02:36:44.821Z","0.1.84":"2026-03-30T13:55:47.954Z","0.1.86":"2026-03-30T15:00:39.104Z","0.1.91":"2026-03-31T06:15:19.166Z","0.1.92":"2026-04-05T16:25:25.346Z","0.1.93":"2026-04-06T03:43:56.538Z","0.1.94":"2026-04-06T04:47:10.549Z","0.1.95":"2026-04-06T06:16:34.610Z","0.1.96":"2026-04-06T14:37:14.104Z","0.1.97":"2026-04-07T01:49:09.765Z","0.1.98":"2026-04-07T08:17:19.146Z","0.1.99":"2026-04-10T15:14:57.224Z","0.1.100":"2026-04-10T16:29:33.660Z","0.1.101":"2026-04-13T08:36:00.962Z","0.1.102":"2026-04-14T12:40:39.091Z","0.1.103":"2026-04-14T16:28:32.801Z","0.1.104":"2026-04-25T15:49:40.007Z","0.1.105":"2026-04-25T23:35:29.360Z"},"bugs":{"url":"https://github.com/biglone/CodeHarbor/issues"},"author":{"name":"biglone","email":"jjoyceu@gmail.com","url":"https://github.com/biglone"},"license":"MIT","homepage":"https://github.com/biglone/CodeHarbor#readme","keywords":["codex","codex-cli","claude","claude-code","gemini","gemini-cli","google-gemini","openai","cli","matrix","matrix-bot","matrix-bridge","bot","bridge","self-hosted","ai-assistant","agent-workflow","voice-transcription","chat","messaging","assistant"],"repository":{"type":"git","url":"git+https://github.com/biglone/CodeHarbor.git"},"description":"Self-hosted Matrix AI assistant bridge for Codex, Claude Code, and Gemini CLI sessions","maintainers":[{"name":"biglone","email":"jjoyceu@gmail.com"}],"readme":"# CodeHarbor\n\nCodeHarbor is a self-hosted Matrix bot and AI chat bridge for `codex`, `claude`, and `gemini` CLI.\nUsers send messages in Matrix rooms, CodeHarbor routes each request to the selected backend,\nkeeps room/session state in SQLite, and sends the final result back to the same room.\n\nMaintainer: <https://github.com/biglone>\nVerified by CI:\n- [![CI](https://github.com/biglone/CodeHarbor/actions/workflows/ci.yml/badge.svg)](https://github.com/biglone/CodeHarbor/actions/workflows/ci.yml)\n- [![Release NPM](https://github.com/biglone/CodeHarbor/actions/workflows/release-npm.yml/badge.svg)](https://github.com/biglone/CodeHarbor/actions/workflows/release-npm.yml)\n\nQuick feedback:\n- Questions/usage: <https://github.com/biglone/CodeHarbor/discussions>\n- Bug report: <https://github.com/biglone/CodeHarbor/issues/new?template=bug_report.yml>\n- Feature request: <https://github.com/biglone/CodeHarbor/issues/new?template=feature_request.yml>\n- Release announcements (EN/中文 in one thread): <https://github.com/biglone/CodeHarbor/discussions/3>\n- Roadmap poll (EN/中文 in one thread): <https://github.com/biglone/CodeHarbor/discussions/4>\n- Latest release notes: [docs/releases/v0.1.105-release-notes.md](docs/releases/v0.1.105-release-notes.md)\n- Latest bilingual announcement: [docs/releases/v0.1.105-announcement-bilingual.md](docs/releases/v0.1.105-announcement-bilingual.md)\n\n## Release Notes Index\n\n- v0.1.105 notes: [docs/releases/v0.1.105-release-notes.md](docs/releases/v0.1.105-release-notes.md)\n- v0.1.105 announcement (EN/中文): [docs/releases/v0.1.105-announcement-bilingual.md](docs/releases/v0.1.105-announcement-bilingual.md)\n- v0.1.104 notes: [docs/releases/v0.1.104-release-notes.md](docs/releases/v0.1.104-release-notes.md)\n- v0.1.104 announcement (EN/中文): [docs/releases/v0.1.104-announcement-bilingual.md](docs/releases/v0.1.104-announcement-bilingual.md)\n- v0.1.103 notes: [docs/releases/v0.1.103-release-notes.md](docs/releases/v0.1.103-release-notes.md)\n- v0.1.103 announcement (EN/中文): [docs/releases/v0.1.103-announcement-bilingual.md](docs/releases/v0.1.103-announcement-bilingual.md)\n- v0.1.102 notes: [docs/releases/v0.1.102-release-notes.md](docs/releases/v0.1.102-release-notes.md)\n- v0.1.102 announcement (EN/中文): [docs/releases/v0.1.102-announcement-bilingual.md](docs/releases/v0.1.102-announcement-bilingual.md)\n- v0.1.69 notes: [docs/releases/v0.1.69-release-notes.md](docs/releases/v0.1.69-release-notes.md)\n- v0.1.69 announcement (EN/中文): [docs/releases/v0.1.69-announcement-bilingual.md](docs/releases/v0.1.69-announcement-bilingual.md)\n\n## What It Does\n\n- Matrix channel adapter (receive + reply)\n- Session-to-backend mapping via persistent SQLite state\n- One-time migration import from legacy `state.json`\n- Duplicate Matrix event protection\n- Context-aware trigger (DM direct chat + group mention/reply + active session window)\n- Room-level trigger policy overrides\n- Runtime backend switch: `/backend codex|claude|gemini [model] | /backend auto|status`\n- Cross-backend context bridge on next request after switch\n- Real `/stop` cancellation (kills in-flight AI CLI process)\n- Session runtime workers (logical worker per `channel:room:user`, with worker stats in `/status`)\n- Rate limiting + concurrency guardrails (user/room/global)\n- Progress + typing updates with group notice coalescing (`m.replace` edit)\n- CLI-compat mode (`cli_compat_mode`) for minimal prompt rewriting + raw event passthrough\n- Image attachment metadata passthrough from Matrix events into prompt context\n- Voice attachment transcription (local Whisper/OpenAI fallback)\n- Semantic file-delivery intent (for example: “把生成的 xxx 文件发送给我”)\n- Request observability (request_id, queue/exec/send durations, status counters)\n- NPM-distributed CLI (`codeharbor`)\n\n## Architecture\n\n```text\nMatrix Room -> MatrixChannel -> Orchestrator -> AI CLI Executor (codex/claude/gemini)\n                                          |\n                                          -> StateStore (SQLite)\n```\n\n## Implementation Status\n\n- Primary runtime: TypeScript/Node (`src/`, `dist/`, `npm run ...`)\n- Legacy/reference implementation: Python (`app/`, `tests/`)\n- New features and fixes target the TypeScript runtime.\n- Python code is kept as legacy reference only (maintenance mode).\n\n## Prerequisites\n\n- Node.js 22+\n- AI CLI installed and authenticated:\n  - Codex: `codex login`\n  - Claude Code: `claude login`\n  - Gemini CLI: `gemini`\n- A Matrix bot user + access token\n\n## Install\n\nInstall globally from npm (after publish):\n\n```bash\nnpm install -g codeharbor\n```\n\nRecommended npm package lifecycle (install/upgrade/verify):\n\n```bash\n# install latest\nnpm install -g codeharbor@latest\n\n# verify installed version\ncodeharbor --version\n\n# upgrade helper (installs latest + restart strategy)\ncodeharbor self-update\n```\n\nSystemd multi-instance example (Linux):\n\n```bash\ncodeharbor service install --instance bot-a --runtime-home /srv/codeharbor-bot-a --with-admin\ncodeharbor service install --instance bot-b --runtime-home /srv/codeharbor-bot-b --with-admin\n```\n\nLinux one-command install (creates `/opt/codeharbor`, sets ownership, installs latest package):\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/biglone/CodeHarbor/main/scripts/install-linux.sh | bash\n```\n\nLinux easy mode (install + write `.env` + enable/start systemd in one run):\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/biglone/CodeHarbor/main/scripts/install-linux-easy.sh | bash -s -- \\\n  --matrix-homeserver https://matrix.example.com \\\n  --matrix-user-id @bot:example.com \\\n  --matrix-access-token 'your-token'\n```\n\nInstall first, then enable systemd service with one command:\n\n```bash\ncodeharbor service install\n```\n\nInstall + enable main and admin services:\n\n```bash\ncodeharbor service install --with-admin\n```\n\nRestart installed service(s):\n\n```bash\ncodeharbor service restart --with-admin\n```\n\nRemove installed services:\n\n```bash\ncodeharbor service uninstall --with-admin\n```\n\nNotes:\n\n- Service commands auto-elevate with `sudo` when root privileges are required.\n- `codeharbor service install --with-admin` and `install-linux-easy.sh --enable-admin-service` now install\n  `/etc/sudoers.d/codeharbor-restart` for non-root service users, so Admin UI restart actions work out-of-box.\n- `npm install -g codeharbor@latest` now performs best-effort restart per platform:\n  - Linux: active `codeharbor*.service` systemd units (including multi-instance units)\n  - macOS: configured launchd labels (`CODEHARBOR_LAUNCHD_MAIN_LABEL`, `CODEHARBOR_LAUNCHD_ADMIN_LABEL`)\n  - Windows: safe fallback (prints manual PowerShell restart commands)\n  - set `CODEHARBOR_SKIP_POSTINSTALL_RESTART=1` to disable postinstall restart attempts.\n- If your environment blocks interactive `sudo`, use explicit fallback:\n  - `sudo <node-bin> <codeharbor-cli-script> service ...`\n\nEnable Admin service at install time:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/biglone/CodeHarbor/main/scripts/install-linux-easy.sh | bash -s -- \\\n  --matrix-homeserver https://matrix.example.com \\\n  --matrix-user-id @bot:example.com \\\n  --matrix-access-token 'your-token' \\\n  --enable-admin-service \\\n  --admin-token 'replace-with-strong-token'\n```\n\nRun local script with custom options:\n\n```bash\n./scripts/install-linux.sh --app-dir /srv/codeharbor --package codeharbor@0.1.1 --init\n```\n\nRuntime home behavior:\n\n- By default, all `codeharbor` commands use `~/.codeharbor` for `.env` and relative data paths.\n- Backward compatibility: if `/opt/codeharbor/.env` already exists, it continues to be used automatically.\n- No manual `cd` is required after installation.\n- To use a custom runtime directory, set `CODEHARBOR_HOME` (for example `export CODEHARBOR_HOME=/srv/codeharbor`).\n\nInstall directly from GitHub:\n\n```bash\nnpm install -g github:biglone/CodeHarbor\n```\n\nBuild a local package tarball and install it:\n\n```bash\nnpm pack\nnpm install -g ./codeharbor-<version>.tgz\n```\n\n## CLI Help Quick Reference\n\nShow CLI help:\n\n```bash\ncodeharbor --help\ncodeharbor admin --help\ncodeharbor config --help\ncodeharbor service --help\n```\n\nCommon in-chat control commands:\n\n- `/help` show command help\n- if Matrix client intercepts slash commands, use escaped `//...` form for all slash controls (for example `//status`, `//version`, `//diag queue 5`, `//diag limiter 5`, `//upgrade`, `//autodev init StrawBerry`, `//autodev run T6.2`)\n- `/status` show session status, version/update hint, latest upgrade result + recent upgrade ids + upgrade metrics/lock, and runtime metrics\n- `/version` force-refresh latest version check\n- `/diag version` show runtime version diagnostics (pid/start time/bin path/backend)\n- `/diag media [count]` show multimodal diagnostics (image/audio counters + recent records)\n- `/diag upgrade [count]` show upgrade diagnostics (distributed lock, aggregate stats, recent upgrade records)\n- `/diag route [count]` show backend routing diagnostics (rule hit/fallback reason + recent route records)\n- `/diag autodev [count]` show AutoDev diagnostics (stage trace, live loop snapshot, and recent git commit records)\n- `/diag queue [count]` show recoverable queue diagnostics (pending/running/retry/failure archive)\n- `/diag limiter [count]` show limiter diagnostics (shared mode + denial ratio + recovery latency + recent decision records)\n- `/trace <requestId|latest>` show one-request trace (prompt/progress/reply + related workflow/media events; `latest` resolves the newest request in current session)\n- Chat final reply includes `requestId` footer so you can copy it directly for `/trace`.\n  - access is restricted to the same session sender or Matrix admin user\n- `/upgrade [version]` run self-update and auto-restart service from Matrix DM only\n  - auth priority: `MATRIX_UPGRADE_ALLOWED_USERS` > `MATRIX_ADMIN_USERS` > any DM user (when both empty)\n  - supports Linux systemd signal restart fallback, macOS launchd/manual fallback, and Windows safe manual fallback\n  - emits structured success/failure summary with rollback and restart command templates\n- `/backend codex|claude|gemini [model] | /backend auto|status` switch or inspect active AI backend (`auto` restores rule-based routing)\n- `/reset` clear current conversation context and suppress one-shot history bridge on the next request\n- `/stop` cancel current running request (or queue the stop), clear session context, and drop pending queued tasks for this session\n  - aliases: `/cancel`, `/esc`, `/撤回`, `/撤销`\n\n## GitHub CI/CD Publish\n\nCodeHarbor supports auto publish to npm from GitHub Actions.\n\nSetup once:\n\n1. Configure npm Trusted Publishing for this repository/workflow (preferred):\n   - npm package settings -> Trusted publishing -> Add publisher\n   - Provider: GitHub Actions\n   - Repository: `biglone/CodeHarbor`\n   - Workflow file: `.github/workflows/release-npm.yml`\n2. Optional fallback: set repository secret `NPM_TOKEN` (npm automation token).\n3. Push to `main` with a publish trigger commit message.\n\nTrigger rules:\n\n- `push` to `main` + commit message includes `[publish-npm]` -> run publish workflow\n- `push` to `main` + commit message includes both `release` and a semver version -> run publish workflow\n  - examples: `release v0.1.1`, `chore: release 0.1.2`\n- `workflow_dispatch` -> manual publish from GitHub Actions UI\n\nThe workflow runs the same checks as `npm run release:verify` (changelog + docs guards, typecheck, lint, unit tests, coverage, Admin UI Playwright, build, CLI smoke, package dry-run), then publishes with:\n\n```bash\nnpm publish --provenance --access public\n```\n\nAuth mode selection:\n\n- If `NPM_TOKEN` secret exists: publish with token.\n- If `NPM_TOKEN` is absent: publish via npm Trusted Publishing (OIDC).\n\nIf the same package version already exists on npm, publish is skipped automatically and the workflow prints a suggested next patch version.\n\nRelease checklist (recommended):\n\n1. Update `CHANGELOG.md` with a new version section and bullet-point release notes.\n2. Update version in `package.json` (`npm version patch|minor|major`).\n3. Run release verification:\n   - `npm run release:verify`\n4. Push to `main` with `[publish-npm]` or `release vX.Y.Z` in commit message.\n5. Verify workflow status in GitHub Actions.\n6. Verify package on npm:\n\n```bash\nnpm view codeharbor version\n```\n\nIf release CI fails before npm publish, keep the same version and retry publish after fixing CI.\nDo not skip to the next version number.\n\nRun e2e locally:\n\n```bash\nnpm run test:e2e\n```\n\nIf your machine has no system Chrome, install Playwright Chromium once. The test config will then automatically fall back to the bundled browser:\n\n```bash\nnpm run e2e:install\nnpm run test:e2e\n```\n\n## Planning Docs\n\n- `REQUIREMENTS.md`: current baseline + next-stage requirements\n- `TASK_LIST.md`: implementation task breakdown and status\n- `docs/USER_MANUAL_ZH.md`: Chinese user manual (installation, configuration, verification)\n- `docs/COMPLETE_CONFIGURATION_GUIDE.md`: end-to-end setup flow + full feature-to-config mapping\n- `docs/CONFIG_UI_DESIGN.md`: configuration UI MVP design\n- `docs/CONFIG_CATALOG.md`: consolidated configuration matrix (required/runtime/UI/effective timing)\n- `docs/MULTIMODAL_VERIFICATION_ZH.md`: multimodal verification playbook (Codex/Claude image + audio transcription)\n- `docs/GROWTH_PLAYBOOK_ZH.md`: growth and community feedback playbook\n- `docs/SOCIAL_PREVIEW_UPLOAD_ZH.md`: GitHub social preview image upload guide\n- `docs/DISCUSSION_TEMPLATE_BILINGUAL.md`: single-thread bilingual discussion template\n- `docs/ADMIN_STANDALONE_DEPLOY.md`: standalone admin deployment and Cloudflare Tunnel exposure guide\n- `docs/BACKUP_AUTOMATION.md`: scheduled config backup and restore operations\n- `docs/RELEASE.md`: release process and CI/publish policy\n\n## Quick Start\n\nFor local development from source:\n\n1. Install dependencies:\n\n```bash\nnpm install\n```\n\n2. Configure environment:\n\n```bash\nexport CODEHARBOR_HOME=\"$(pwd)\"\ncodeharbor init\n```\n\nRequired values:\n\n- `MATRIX_HOMESERVER`\n- `MATRIX_USER_ID`\n- `MATRIX_ACCESS_TOKEN`\n\n3. Run in dev mode:\n\n```bash\nexport CODEHARBOR_HOME=\"$(pwd)\"\nnpm run dev\n```\n\n4. Build and run as CLI:\n\n```bash\nnpm run build\nexport CODEHARBOR_HOME=\"$(pwd)\"\nnode dist/cli.js start\n```\n\n## Configuration Baseline\n\nUse this layered reference to avoid mixing boot-only and runtime tuning items:\n\n- [`docs/CONFIG_CATALOG.md`](docs/CONFIG_CATALOG.md)\n- [`docs/COMPLETE_CONFIGURATION_GUIDE.md`](docs/COMPLETE_CONFIGURATION_GUIDE.md)\n- [`docs/MULTIMODAL_VERIFICATION_ZH.md`](docs/MULTIMODAL_VERIFICATION_ZH.md)\n\nIt documents:\n\n- which keys are required vs optional\n- which keys can be edited in Admin UI\n- whether changes are immediate or restart-scoped\n- hot-update rollback paths (quick hot rollback vs full snapshot rollback)\n- recommended profiles for local/internal/public deployment\n- a complete setup sequence from install to production operations\n\n## Commands\n\n- `codeharbor init`: guided setup for `.env` (supports `--force` to overwrite directly)\n- `codeharbor start`: start service\n- `codeharbor doctor`: check AI CLI and Matrix connectivity\n- `codeharbor admin serve`: start admin UI + config API server\n- `codeharbor service install`: install/enable systemd unit(s) after npm install (supports `--with-admin`)\n- `codeharbor service restart`: restart installed systemd unit(s) (supports `--with-admin`)\n- `codeharbor service uninstall`: remove installed systemd unit(s) (supports `--with-admin`)\n- `codeharbor config export`: export current config snapshot as JSON\n- `codeharbor config import <file>`: import config snapshot JSON (supports `--dry-run`)\n- `npm run changelog:check`: validate `CHANGELOG.md` has notes for current package version\n- `npm run docs:check-consistency`: validate README/REQUIREMENTS/TASK_LIST version and Node requirement sync\n- `npm run release:verify`: run release-grade local verification before publish\n- `scripts/install-linux.sh`: Linux bootstrap installer (creates runtime dir + installs npm package)\n- `scripts/install-linux-easy.sh`: one-shot Linux install + config + systemd auto-start\n- `scripts/backup-config.sh`: export timestamped snapshot and keep latest N backups\n- `scripts/install-backup-timer.sh`: install/update user-level systemd timer for automatic backups\n- `npm run test:e2e`: run Admin UI end-to-end tests (Playwright; auto-uses system Chrome when available, otherwise bundled Chromium)\n\n## Community and Feedback\n\n- Questions and usage help: [GitHub Discussions](https://github.com/biglone/CodeHarbor/discussions) (`Q&A`)\n- Feature ideas: [GitHub Discussions](https://github.com/biglone/CodeHarbor/discussions) (`Ideas`) or `Feature request` issue template\n- Bug reports: use `Bug report` issue template for reproducible diagnostics\n- Contribution guide: [`CONTRIBUTING.md`](CONTRIBUTING.md)\n- Growth and community playbook: [`docs/GROWTH_PLAYBOOK_ZH.md`](docs/GROWTH_PLAYBOOK_ZH.md)\n\n### Config Backup Script\n\nCreate a timestamped snapshot in `backups/config` and keep latest 20 by default:\n\n```bash\n./scripts/backup-config.sh\n```\n\nCustom directory and retention:\n\n```bash\n./scripts/backup-config.sh --dir /var/backups/codeharbor --keep 30\n```\n\nInstall/update automatic backup timer:\n\n```bash\n./scripts/install-backup-timer.sh --schedule \"*-*-* 03:30:00\" --dir /var/backups/codeharbor --keep 30\n```\n\nFull guide:\n\n- [`docs/BACKUP_AUTOMATION.md`](docs/BACKUP_AUTOMATION.md)\n\n## Admin UI And API\n\nStart server:\n\n```bash\ncodeharbor admin serve\n```\n\nOptional overrides:\n\n```bash\ncodeharbor admin serve --host 127.0.0.1 --port 8787\n```\n\nIf you bind Admin to a non-loopback host and both `ADMIN_TOKEN` and `ADMIN_TOKENS_JSON` are empty, startup is rejected by default.\nExplicit bypass exists but is not recommended:\n\n```bash\ncodeharbor admin serve --host 0.0.0.0 --allow-insecure-no-token\n```\n\nOpen these UI routes in browser:\n\n- `/` or `/settings/global`\n- `/settings/bots`\n- `/settings/rooms`\n- `/health`\n- `/audit`\n\n`/health` now includes a CodeHarbor app row with current version, latest version, and update availability.\n\nMain endpoints:\n\n- `GET /metrics` (Prometheus exposition format)\n- `GET /api/admin/auth/status`\n- `GET /api/admin/config/global`\n- `GET /api/admin/config/skills`\n- `PUT /api/admin/config/global`\n- `GET /api/admin/config/rooms`\n- `GET /api/admin/config/rooms/:roomId`\n- `PUT /api/admin/config/rooms/:roomId`\n- `DELETE /api/admin/config/rooms/:roomId`\n- `GET /api/admin/bot-profiles`\n- `PUT /api/admin/bot-profiles`\n- `POST /api/admin/bot-profiles/migrate` (single-instance -> primary-bot migration, supports `dryRun`, `force`, `profileId`)\n- `POST /api/admin/bot-profiles/apply` (supports `dryRun`, `includeDisabled`, `instanceIds`, `retireDefaultSingleInstance`)\n- `GET /api/admin/health`\n- `GET /api/admin/audit?limit=50&kind=config|operations|all&surface=admin|api|webhook&outcome=allowed|denied|error&actor=...&source=...&action=...&method=GET&pathPrefix=/api/...&reasonContains=...&createdFrom=...&createdTo=...`\n- `GET /api/admin/sessions?roomId=...&userId=...&from=...&to=...&limit=50&offset=0`\n- `GET /api/admin/sessions/export?roomId=...&userId=...&from=...&to=...&limit=50&offset=0&includeMessages=true`\n- `GET /api/admin/sessions/:sessionKey/messages?limit=100`\n- `GET /api/admin/history/retention`\n- `PUT /api/admin/history/retention`\n- `POST /api/admin/history/cleanup`\n- `GET /api/admin/history/cleanup/runs?limit=20`\n\n`GET /api/admin/config/skills` returns a read-only snapshot for role-skill management:\n\n- effective `agentWorkflow.roleSkills` config\n- `catalog.availableSkills` (builtin + discovered local skills)\n- `catalog.missingAssignments` (per-role unresolved skill ids)\n\nWhen `ADMIN_TOKEN` or `ADMIN_TOKENS_JSON` is set, requests must include:\n\n```http\nAuthorization: Bearer <ADMIN_TOKEN>\n```\n\nAccess control options:\n\n- `ADMIN_TOKEN`: require bearer token for `/api/admin/*` and `/metrics`\n- `ADMIN_TOKENS_JSON`: optional multi-token RBAC list (supports `admin`/`viewer` role defaults and custom `scopes`)\n- `API_TOKEN_SCOPES_JSON`: optional API token scope override (JSON array, for example `[\"tasks.submit.api\"]` or `[\"tasks.read.api\"]`)\n- `ADMIN_IP_ALLOWLIST`: optional comma-separated client IP whitelist (for example `127.0.0.1,192.168.1.10`)\n- `ADMIN_ALLOWED_ORIGINS`: optional CORS origin allowlist for browser-based cross-origin admin access\n- `EXTERNAL_INTEGRATION_*`: optional outbound callback config for API/webhook lifecycle + ticket sync (`queued/executing/retrying/completed/failed`)\n\nRBAC behavior:\n\n- `viewer` role defaults: `admin.read` + `metrics.read` (broad read compatibility)\n- `admin` role defaults: `admin.read` + `metrics.read` + `admin.write`\n- optional `scopes` in `ADMIN_TOKENS_JSON` overrides role defaults for that token (supports patterns like `admin.read.audit`, `admin.write.config.*`, `*`)\n- API token defaults to broad compatibility scopes `tasks.submit` + `tasks.read`; `API_TOKEN_SCOPES_JSON` can narrow it to submit-only/read-only\n- legacy broad scopes (`admin.read`, `admin.write`, `tasks.submit`, `tasks.read`, `webhook.ingest`) still authorize new fine-grained actions for backward compatibility\n- for `ADMIN_TOKENS_JSON`, audit actor is derived from token identity (`actor` field), not `x-admin-actor`\n- Admin UI shows current permission status (role/source) after saving auth\n\nExternal integration callbacks:\n\n- inbound `POST /api/webhooks/ci|ticket` requests are normalized into `externalContext` and persisted into queue payloads\n- when `EXTERNAL_INTEGRATION_ENABLED=true`, CodeHarbor emits non-blocking lifecycle callbacks with short-timeout retries (`EXTERNAL_NOTIFY_WEBHOOK_URL`)\n- optional ticket callback (`EXTERNAL_TICKET_WEBHOOK_URL`) is emitted only for ticket-source tasks\n- delivery failures never block task execution; outcomes are written into operation audit logs (`source=integration:notify|ticket`)\n\nOperation audit behavior:\n\n- `kind=config` (default): configuration revision audit entries\n- `kind=operations`: authorization and operation outcomes for Admin/API/Webhook (`allowed`/`denied`/`error`)\n- `kind=all`: merged timeline of config + operation audit entries (sorted by latest first)\n- operation entries support additional filters: `actor`, `source`, `action`, `method`, `pathPrefix`, `reasonContains`, `createdFrom`, `createdTo`\n\nMetrics quick check:\n\n```bash\ncurl -H \"Authorization: Bearer <ADMIN_TOKEN>\" \\\n  http://127.0.0.1:8787/metrics\n```\n\nAutoDev metrics exported:\n\n- `codeharbor_autodev_runs_total{outcome=\"succeeded|failed|cancelled\"}`\n- `codeharbor_autodev_loop_stops_total{reason=\"no_task|drained|max_runs|deadline|stop_requested|task_incomplete\"}`\n- `codeharbor_autodev_tasks_blocked_total`\n\nLimiter metrics exported:\n\n- `codeharbor_rate_limiter_decisions_total{source=\"local|shared|shared_fallback\",outcome=\"allowed|denied\"}`\n- `codeharbor_rate_limiter_denied_total{reason=\"...\"}`\n- `codeharbor_rate_limiter_rejection_ratio`\n- `codeharbor_rate_limiter_shared_mode{mode=\"local|redis\"}`\n- `codeharbor_rate_limiter_shared_errors_total`\n- `codeharbor_rate_limiter_recovery_last_ms` / `codeharbor_rate_limiter_recovery_avg_ms`\n\nAlerting baseline:\n\n- Example Prometheus alert rules: [`docs/PROMETHEUS_ALERT_RULES_EXAMPLE.yml`](docs/PROMETHEUS_ALERT_RULES_EXAMPLE.yml)\n- Includes:\n  - high request failure ratio\n  - high queue wait p95\n  - recent upgrade failure detection\n  - AutoDev loop stop/block anomaly signals\n\nRotate tokens quickly (repository script):\n\n```bash\n./scripts/rotate-admin-token.sh --target rbac --role admin --actor ops-admin\n./scripts/rotate-admin-token.sh --target rbac --role viewer --actor ops-audit\n./scripts/rotate-admin-token.sh --target rbac --role viewer --actor ops-audit --scopes admin.read.auth,admin.read.audit\n```\n\nNote: `PUT /api/admin/config/global` always writes `.env`; high-frequency whitelist keys hot-apply for new requests, while non-whitelist keys still require restart.\n\n### Hot Update Rollback\n\n1. Backup before change:\n\n```bash\ncodeharbor config export -o backups/pre-hot-update.json\n```\n\n2. Fast rollback for hot-whitelist keys (`restartRequired=false`):\n- write previous value back via Admin UI, or call `PUT /api/admin/config/global`\n- confirm response `hotAppliedKeys` contains expected key(s)\n\n3. Full rollback for mixed/restart-required changes:\n\n```bash\ncodeharbor config import backups/pre-hot-update.json --dry-run\ncodeharbor config import backups/pre-hot-update.json\ncodeharbor service restart\n```\n\n4. Verify + audit:\n- `GET /api/admin/audit?limit=20`\n- `GET /api/admin/health`\n- send one Matrix smoke request in each critical room\n\nBoundary: hot updates affect new requests only; in-flight requests are not rolled back.\n\n### Admin UI Quick Walkthrough\n\n1. Start server: `codeharbor admin serve`.\n2. Open `/settings/global`, set `Admin Token` (if enabled), then click `Save Auth`.\n3. Open `Global Settings -> Skills & Advanced`:\n   - click `Refresh SKILL catalog` to review builtin/local skill IDs\n   - check `Missing SKILL` hint before saving role assignments\n4. Adjust global fields and click `Save Global Config` (UI shows restart-required warning).\n5. Use `Restart Main Service` or `Restart Main + Admin` buttons for one-click restart from Admin UI.\n   If services were installed with `--with-admin`, restart permissions are auto-configured by installer.\n6. Open `/settings/rooms`, fill `Room ID + Workdir`, then `Save Room`.\n7. Open `/health` to run connectivity checks (`codex` + Matrix).\n8. Open `/audit` to verify config revisions (actor/summary/payload).\n\n### Primary Bot Governance (Multi-Instance)\n\nRecommended role split in group rooms:\n\n- `main-hub`: primary bot (`isPrimary=true`), can enable `groupDirectModeEnabled=true` for non-@ group messages.\n- `dev-main` / `review-guard`: execution/review bots (`isPrimary=false`), keep group direct mode disabled to avoid cross-talk.\n\nMigration from legacy single-instance:\n\n1. Open `/settings/bots`.\n2. Click `Migration Dry-Run` (`POST /api/admin/bot-profiles/migrate` with `dryRun=true`).\n3. Click `Migrate As Primary`, then `Apply Changes`.\n4. Optional: enable `Retire default single-instance services` to disable `codeharbor.service` / `codeharbor-admin.service`.\n\nSafety boundaries:\n\n- `groupDirectModeEnabled` is rejected on non-primary profiles.\n- Direct mode requires an enabled primary profile (`isPrimary=true` + `enabled=true`).\n- Migration returns actionable errors for conflicting primaries; use `force=true` only when switching ownership intentionally.\n\nTroubleshooting quick checks:\n\n- Error `groupDirectModeEnabled requires an enabled primary profile`:\nSet one profile to `isPrimary=true` and `enabled=true`, or disable direct mode.\n- Migration blocked by existing primary:\nUse another `profileId` or rerun migration with `force=true` after confirming primary ownership switch.\n- Group messages no longer trigger without @:\nVerify primary profile has `groupDirectModeEnabled=true` and profile changes were applied.\n\n## Standalone Admin Deployment\n\n`codeharbor admin serve` can run as an independent service on target servers without browser/desktop.\nAccess can come from your local browser through a gateway (for example Cloudflare Tunnel).\n\nSee:\n\n- [`docs/ADMIN_STANDALONE_DEPLOY.md`](docs/ADMIN_STANDALONE_DEPLOY.md)\n\n## Startup Preflight\n\nBefore `codeharbor start` and `codeharbor doctor`, CodeHarbor runs a preflight check for:\n\n- required Matrix env vars\n- selected AI CLI binary availability (`AI_CLI_PROVIDER` + `CODEX_BIN`)\n- `CODEX_WORKDIR` validity\n- `.env` presence warning\n\nIf any check fails, it prints actionable fix commands (for example `codeharbor init`).\n\n## Message Rules\n\n- Direct Message (DM)\n  - all text messages are processed by default (no prefix required)\n- Group Room\n  - when `GROUP_DIRECT_MODE_ENABLED=true`, all non-empty messages are processed directly (no prefix/mention/reply required)\n  - processed when **any allowed trigger** matches:\n    - message mentions bot user id\n    - message replies to a bot message\n    - sender has an active conversation window\n    - optional explicit prefix match (`MATRIX_COMMAND_PREFIX`)\n- Trigger Policy\n  - `GROUP_DIRECT_MODE_ENABLED` controls whether groups bypass trigger matching entirely\n  - global defaults via `GROUP_TRIGGER_ALLOW_*`\n  - per-room overrides via `ROOM_TRIGGER_POLICY_JSON`\n- Active Conversation Window\n  - each accepted request activates the sender's conversation in that room\n  - activation TTL: `SESSION_ACTIVE_WINDOW_MINUTES` (default: `20`)\n- Control commands\n  - `/help` show command cheat sheet for in-chat controls\n  - if Matrix intercepts `/...`, use escaped `//...` command form for all slash controls (for example `//status`, `//version`, `//diag queue 5`, `//diag limiter 5`, `//trace req-123`, `//trace latest`, `//upgrade`, `//autodev init StrawBerry`, `//autodev run T6.2`)\n  - `/status` show session + limiter + metrics + runtime worker status, current version, update hint, latest upgrade result, recent upgrade ids, upgrade metrics/lock, and update checked time (cached by TTL)\n  - `/version` show current package version and latest-update hint (force refresh)\n  - `/diag version` show runtime diagnostics (pid/start time/binary path/backend)\n  - `/diag media [count]` show multimodal diagnostics (image/audio counters + recent records)\n  - `/diag upgrade [count]` show distributed lock + aggregate stats + recent upgrade run diagnostics\n  - `/diag route [count]` show backend routing diagnostics (rule hit + fallback reason + recent route records)\n  - `/diag autodev [count]` show AutoDev diagnostics (stage trace + loop status + recent git commit records + error summary)\n  - `/diag queue [count]` show queue diagnostics (counts + pending sessions + failure archive)\n  - `/diag limiter [count]` show limiter diagnostics (shared mode + rejection/recovery metrics + recent records)\n  - `/trace <requestId|latest>` show per-request trace (prompt/progress/reply + related workflow/media events; same-session sender/admin only; `latest` = current session latest)\n  - `/upgrade [version]` install latest (or specified) npm version and trigger service restart (DM only)\n    - auth priority: `MATRIX_UPGRADE_ALLOWED_USERS` > `MATRIX_ADMIN_USERS` > any DM user (when both empty)\n    - includes service-context signal restart fallback when sudo escalation is unavailable\n  - `/backend codex|claude|gemini [model] | /backend auto|status` switch backend AI CLI tool at runtime (`auto` restores rule routing; next request auto-bridges recent local history)\n  - `/reset` clear bound Codex session, keep conversation active, and suppress one-shot history bridge on the next request\n  - `/stop` cancel in-flight execution (or queue a pending stop when busy), reset session context, and clear pending queue tasks for current session\n    - aliases: `/cancel`, `/esc`, `/撤回`, `/撤销`\n  - `/agents status` show multi-agent workflow status for current session (when enabled)\n  - `/agents run <objective>` run Planner -> Executor -> Reviewer workflow (when enabled)\n  - `/autodev status` show AutoDev doc/task summary + currentTask/nextTask + run snapshot (when enabled)\n  - `/autodev run [taskId]` auto-pick pending task (or run specified task) from `TASK_LIST.md` (when enabled)\n  - `/autodev stop` graceful loop stop: finish current task, then stop before next task\n  - `/autodev reconcile` reconcile `TASK_LIST.md` task states from recent AutoDev run records\n  - `/autodev workdir|wd [path]|status|clear` show/set/clear AutoDev workdir override for current session\n  - `/autodev init|i [path] [--from file]` initialize `REQUIREMENTS.md` + `TASK_LIST.md` + `docs/AUTODEV_TASK_COMPASS.md` in target project\n    - short mobile-friendly flow: `//autodev init StrawBerry` -> `//autodev run`\n    - omit `--from` to auto-discover design/spec docs in project; use `--from` to force one source file\n  - `/autodev skills [on|off|summary|progressive|full|status]` control role-skill injection and disclosure mode per session\n- Natural-language file delivery\n  - supports intent-style requests such as `把生成的 result.mp4 文件发送给我`\n  - for contextual requests such as `这四个视频发给我` or `把那一批都发给我`, bot prefers model-driven structured delivery actions over the latest session artifact batch\n  - for explicit file names/paths, bot still keeps direct rule-based fallback for safety and compatibility\n  - bot first resolves against the latest session artifact batch captured from recent AI-generated outputs, then falls back to matching local files under current room workdir\n  - supports batch requests such as `这四个视频文件以消息的形式发给我` or `把生成的视频都发给我`, and sends multiple matched attachments sequentially\n  - if no file name is specified (for example `把生成的文件发送给我`), bot picks the most recently updated file in workdir (with size guardrail)\n\nVersion update check controls:\n\n- `PACKAGE_UPDATE_CHECK_ENABLED=true|false`\n  - enable/disable npm latest-version check used by `/status`, `/version`, and Admin health app row\n- `PACKAGE_UPDATE_CHECK_TIMEOUT_MS=3000`\n  - timeout (ms) for npm registry version lookup\n- `PACKAGE_UPDATE_CHECK_TTL_MS=21600000`\n  - cache TTL (ms) for update-check results (`/status` reads cache; `/version` forces refresh)\n- `MATRIX_ADMIN_USERS=@admin:example.com,@ops:example.com`\n  - optional Matrix admin list used as `/upgrade` permission fallback when `MATRIX_UPGRADE_ALLOWED_USERS` is empty\n- `MATRIX_UPGRADE_ALLOWED_USERS=@admin:example.com,@ops:example.com`\n  - optional explicit `/upgrade` allowlist (higher priority than `MATRIX_ADMIN_USERS`)\n- `CODEHARBOR_LAUNCHD_MAIN_LABEL=com.codeharbor.main`\n- `CODEHARBOR_LAUNCHD_ADMIN_LABEL=com.codeharbor.admin`\n  - optional launchd labels used by macOS upgrade/postinstall restart flow\n\nCLI update helper:\n\n- `codeharbor self-update`\n  - install latest npm package and run cross-platform restart strategy (Linux systemd / macOS launchd / Windows manual fallback)\n  - prints structured result summary with rollback + restart command templates for failure recovery\n\nAI CLI backend controls:\n\n- `AI_CLI_PROVIDER=codex|claude|gemini`\n  - select runtime backend (`codex` by default)\n- `CODEX_BIN=<path-or-command>`\n  - executable for selected provider (for example `codex` / `claude` / `gemini`)\n- `CODEX_MODEL=<model>`\n  - optional model override for selected provider\n- `CODEX_EXEC_TIMEOUT_MS`\n  - base timeout for one backend execution (default `600000`)\n  - `/agents` and `/autodev` use `max(CODEX_EXEC_TIMEOUT_MS, 1800000)` per role to reduce long-task timeout loops\n\nCross-backend context bridge behavior:\n\n- CodeHarbor stores recent local `user/assistant` turns per Matrix session.\n- After `/backend codex|claude|gemini [model]` or `/backend auto`, the next non-command request injects a `[conversation_bridge]` block so the new backend can continue with recent context.\n- `/reset` and `/stop` explicitly suppress this one-shot bridge on the immediate next request so users can start fresh.\n- `CONTEXT_BRIDGE_HISTORY_LIMIT` controls how many recent local turns are considered for bridge assembly.\n- `CONTEXT_BRIDGE_MAX_CHARS` controls the max bridge payload length (characters).\n\nBackend/model rule routing:\n\n- `BACKEND_MODEL_ROUTING_RULES_JSON`\n  - optional JSON array rule engine for automatic backend/model selection per request\n  - conditions support `roomIds` / `senderIds` / `taskTypes` / `directMessage` / `textIncludes` / `textRegex`\n  - targets support `provider` (`codex|claude|gemini`) and/or `model`; rules are evaluated by `priority` (high -> low), then declaration order\n  - when rule target cannot be instantiated (for example no `executorFactory` runtime), CodeHarbor falls back to default backend and marks status reason as `factory_unavailable`\n\n### Multi-Agent Workflow (Phase B, Opt-In)\n\n- `AGENT_WORKFLOW_ENABLED=true`\n  - enable `/agents` and `/autodev` workflow commands\n- `AGENT_WORKFLOW_AUTO_REPAIR_MAX_ROUNDS`\n  - reviewer reject loop upper bound (default `1`)\n- `AGENT_WORKFLOW_PLAN_CONTEXT_MAX_CHARS`\n  - optional planner-plan context char budget per role prompt (default: unlimited / no truncation)\n- `AGENT_WORKFLOW_OUTPUT_CONTEXT_MAX_CHARS`\n  - optional executor/reviewer output context char budget per role prompt (default: unlimited / no truncation)\n- `AGENT_WORKFLOW_FEEDBACK_CONTEXT_MAX_CHARS`\n  - optional reviewer feedback context char budget per repair prompt (default: unlimited / no truncation)\n- `AGENT_WORKFLOW_ROLE_SKILLS_ENABLED=true|false`\n  - enable/disable Planner/Executor/Reviewer role-skill prompt injection (default `true`)\n- `AGENT_WORKFLOW_ROLE_SKILLS_MODE=summary|progressive|full`\n  - role-skill disclosure mode (`progressive` default: summary first round, full in later rounds/repair)\n- `AGENT_WORKFLOW_ROLE_SKILLS_MAX_CHARS`\n  - max chars for injected `[role_skills]` block (default `2400`)\n- `AGENT_WORKFLOW_ROLE_SKILLS_ROOTS`\n  - optional comma-separated local skill roots (default `~/.codex/skills`)\n- `AGENT_WORKFLOW_ROLE_SKILLS_ASSIGNMENTS_JSON`\n  - optional role-to-skill mapping override JSON (`planner`/`executor`/`reviewer` -> `string[]`)\n  - defaults map to install-ready builtin fallback skills; local skills with the same id override builtin entries automatically\n  - builtin fallback skill prompts are maintained in English for consistent global defaults\n  - default builtin assignment baseline:\n    - planner: `task-planner`, `requirements-doc`, `builtin-planner-core`, `dependency-analyzer`\n    - executor: `autonomous-dev`, `bug-finder`, `test-generator`, `builtin-executor-core`, `refactoring`\n    - reviewer: `code-reviewer`, `security-audit`, `builtin-reviewer-core`, `changelog-generator`, `commit-message`\n  - additional builtin fallbacks are also available for assignment override:\n    - planning/design: `api-designer`, `superpowers-workflow`, `brainstorming`, `planning-with-files`\n    - execution/testing: `performance-optimizer`, `auto-code-pipeline`, `migration-helper`, `tdd-workflow`, `webapp-testing`, `ui-ux-pro-max`, `pptx`, `ralph-loop`\n    - review/release: `commit-message`, `code-simplifier`, `multi-agent-code-review`\n- `AUTODEV_LOOP_MAX_RUNS`\n  - max task attempts for one `/autodev run` loop execution (default `20`, `0` = unlimited)\n- `AUTODEV_LOOP_MAX_MINUTES`\n  - max wall-clock minutes for one `/autodev run` loop execution (default `120`, `0` = unlimited)\n- `AUTODEV_AUTO_COMMIT=true|false`\n  - enable/disable AutoDev git auto-commit after reviewer `APPROVED` (default `true`)\n- `AUTODEV_GIT_AUTHOR_NAME`\n  - git author name for AutoDev auto-commit/release commit (default `CodeHarbor AutoDev`; empty falls back to default)\n- `AUTODEV_GIT_AUTHOR_EMAIL`\n  - git author email for AutoDev auto-commit/release commit (default `autodev@codeharbor.local`; empty falls back to default)\n- `AUTODEV_AUTO_RELEASE_ENABLED=true|false`\n  - enable/disable AutoDev \"big feature done -> release commit\" flow (default `true`)\n- `AUTODEV_AUTO_RELEASE_PUSH=true|false`\n  - push release commit automatically after local release commit (default `false`)\n- `AUTODEV_RUN_ARCHIVE_ENABLED=true|false`\n  - persist each `/autodev run` execution archive as local JSON (default `true`)\n- `AUTODEV_RUN_ARCHIVE_DIR`\n  - archive directory (relative to workdir or absolute path, default `.codeharbor/autodev-runs`)\n- `AUTODEV_STAGE_OUTPUT_ECHO_ENABLED=true|false`\n  - echo planner/executor/reviewer full stage output to Matrix during `/autodev run` (default `true`)\n- `AUTODEV_PREFLIGHT_AUTO_STASH=true|false`\n  - when git preflight detects a dirty worktree, auto-stash (`git stash --include-untracked`) and continue run (default `false`)\n- `AUTODEV_MAX_CONSECUTIVE_FAILURES`\n  - when the same task fails repeatedly and reaches this threshold, mark it `🚫` blocked (default `3`)\n- `AUTODEV_VALIDATION_STRICT=true|false`\n  - fail closed on validation gate when structured evidence is missing (`VALIDATION_STATUS`/`__EXIT_CODES__`); default `false`\n\nAutoDev (`/autodev`) conventions:\n\n- Architecture, control-chain, and troubleshooting handbook: `docs/AUTODEV_OPERATIONS_ZH.md`.\n- Workspace must contain `REQUIREMENTS.md` and `TASK_LIST.md`.\n- `/autodev init|i [path] [--from file]` scaffolds missing AutoDev files and binds workdir override for current session.\n  - when `--from` is omitted, CodeHarbor auto-discovers design/spec docs and uses them to generate initial REQUIREMENTS/TASK_LIST templates.\n  - init uses a 3-stage flow: Stage-A deterministic scaffold, Stage-B AI enhancement, Stage-C hard validation with fallback to Stage-A baseline on invalid output.\n  - Stage-B AI enhancement runs only when both `REQUIREMENTS.md` and `TASK_LIST.md` were generated in this init run (existing files are preserved).\n  - if `path` is a project name (no `/`), CodeHarbor resolves both `<room_workdir>/<name>` and sibling `<parent>/<name>`.\n  - when target path is missing/not-directory, init fails explicitly and keeps current workdir unchanged.\n- `/autodev workdir|wd [path]|status|clear` inspects or changes session-level workdir override.\n- `TASK_LIST.md` should include task IDs and status markers (`⬜`, `🔄`, `✅`, `❌`, `🚫`) in table rows or checklist rows.\n- `TASK_LIST.md` task status is system-managed by orchestrator; avoid manual edits and use `/autodev reconcile` when drift needs healing.\n- `/autodev run` (without task id) loops through task list: selects `🔄` first, then `⬜`, and keeps running until no executable task remains.\n- `/autodev run` loop is guarded by `AUTODEV_LOOP_MAX_RUNS` and `AUTODEV_LOOP_MAX_MINUTES`; reaching either limit pauses safely with a summary notice, and you can resume with `/autodev run`.\n- `/autodev run <taskId>` runs only the specified task.\n- `/autodev stop` does not interrupt the current task; it stops loop scheduling after the current task completes.\n- `/autodev reconcile` performs one-shot task-state reconciliation using recent AutoDev run records (useful after manual edits or interrupted sessions).\n- Loop guardrail rules:\n  - `AUTODEV_LOOP_MAX_RUNS=0` means unlimited loop rounds.\n  - `AUTODEV_LOOP_MAX_MINUTES=0` means unlimited loop wall-clock time.\n  - Hitting run/time limit is a safe **pause** (not hard failure): AutoDev prints remaining task summary and resume hint.\n  - Resume command is always `/autodev run` (or `/autodev run <taskId>` for targeted rerun).\n  - `/autodev run <taskId>` is single-task mode and does not consume loop run/time budgets.\n  - Recommended for long roadmap execution: set both loop limits to `0`, and keep `AUTODEV_MAX_CONSECUTIVE_FAILURES` + no-progress detection enabled as safety rails.\n- `/autodev skills ...` controls role-skill injection (`on|off`) and disclosure mode (`summary|progressive|full`) for current session.\n- `/autodev content on|off|status` controls AutoDev stage output echo (planner/executor/reviewer content) for current session.\n- Task closes to `✅` only when completion gate passes (reviewer approved + no explicit validation failure + auto-commit success when commit is required).\n- In strict mode (`AUTODEV_VALIDATION_STRICT=true`), completion gate requires structured validation evidence (`VALIDATION_STATUS` and/or `__EXIT_CODES__`).\n- When workflow/reviewer execution succeeds but completion gate fails, `/autodev status` reports `runState: completed_with_gate_failed` (instead of `succeeded`).\n- `/autodev status` exposes validation observability fields: `runValidationFailureClass`, `runValidationEvidenceSource`, and `runValidationAt`.\n- Validation fuse rule: if the same task hits the same `validationFailureClass` consecutively for `AUTODEV_MAX_CONSECUTIVE_FAILURES`, AutoDev stops and marks it `🚫` with next-action guidance.\n- When reviewer verdict is `APPROVED` and the workdir is a clean Git repo, CodeHarbor auto-commits changes with a semantic subject: `<type>(<scope>): <business-summary> (<taskId>)`.\n- AutoDev commit intent uses a hybrid strategy: prefer reviewer `SUMMARY` (role-skill output) when it matches the selected commit language; otherwise fall back to deterministic template inference.\n- Commit language policy: for a brand-new project (no history) the first AutoDev commit defaults to English; for existing projects, AutoDev follows the recent repository commit language trend.\n- AutoDev commit body includes `Task-ID`, `Changed-files`, and `Generated-by` for traceability.\n- AutoDev result notice always includes git commit status and changed files (`git changed files`).\n- If `TASK_LIST.md` has a dedicated `发布映射` section with rows like `| T8.4 | v0.1.55 | ... |`, AutoDev can create a follow-up release commit after task completion: `release: vX.Y.Z [publish-npm]` (updates `package.json`/`package-lock.json`/`CHANGELOG.md`).\n- AutoDev release mapping parser only reads the `发布映射` section; keep community-priority/milestone tables in separate headings (for example `社区优先级 -> 可执行里程碑`) to avoid ambiguous version parsing.\n- Current community roadmap milestones are aligned as: `T8.1~T8.3 -> v0.1.53~v0.1.54`, `T8.4~T8.5 -> v0.1.55~v0.1.56`, `T8.6 -> v0.1.57`, `T8.7~T8.8 -> v0.1.58~v0.1.59`.\n- When CI detects that the target version already exists on npm, the release workflow skips publishing and prints `Suggested next version` to keep release flow idempotent.\n- If the same task fails consecutively and reaches `AUTODEV_MAX_CONSECUTIVE_FAILURES`, CodeHarbor marks it as `🚫` and skips it in later loops.\n- If the repo is missing or already dirty before run, AutoDev skips commit and reports the reason in the result notice.\n- When `AUTODEV_PREFLIGHT_AUTO_STASH=true`, dirty git preflight is auto-stashed and the run continues (stash ref is reported in notices).\n- If workflow attempts to edit `TASK_LIST.md`, AutoDev rolls it back and fails completion gate with `task-list-policy-violated`.\n- When using `scripts/autodev-loop-runner.sh`, a new trigger is skipped while any task is already `🔄` in progress.\n\nDefault is disabled to keep legacy behavior unchanged.\n\n## CLI Compatibility Mode\n\nTo make IM behavior closer to local `codex` CLI interaction, enable:\n\n- `CLI_COMPAT_MODE=true`\n  - preserve user prompt whitespace\n  - avoid stripping `@bot` mention text in prompt body\n  - enable richer raw event passthrough summaries\n- `CLI_COMPAT_PASSTHROUGH_EVENTS=true`\n  - emit raw event summaries from codex JSON stream\n- `CLI_COMPAT_PRESERVE_WHITESPACE=true`\n  - keep incoming Matrix message body untrimmed for execution\n- `CLI_COMPAT_DISABLE_REPLY_CHUNK_SPLIT=true|false`\n  - optionally send one full message chunk to Matrix without auto split\n- `CLI_COMPAT_PROGRESS_THROTTLE_MS`\n  - lower update throttle for near-real-time progress\n- `CLI_COMPAT_FETCH_MEDIA=true|false`\n  - download Matrix `mxc://` media (image) to temp file and pass image context to backend\n- `CLI_COMPAT_IMAGE_MAX_BYTES`\n  - per-image max size guard (bytes), oversized images are skipped with user notice\n- `CLI_COMPAT_IMAGE_MAX_COUNT`\n  - max number of images passed to backend in one request\n- `CLI_COMPAT_IMAGE_ALLOWED_MIME_TYPES`\n  - comma-separated image MIME allowlist (`image/png,image/jpeg,...`)\n- `CLI_COMPAT_TRANSCRIBE_AUDIO=true|false`\n  - download Matrix `m.audio` attachments and transcribe them into prompt context\n- `CLI_COMPAT_AUDIO_TRANSCRIBE_MODEL`\n  - OpenAI transcription model (default `gpt-4o-mini-transcribe`)\n- `CLI_COMPAT_AUDIO_TRANSCRIBE_TIMEOUT_MS`\n  - timeout for each audio transcription request\n- `CLI_COMPAT_AUDIO_TRANSCRIBE_MAX_CHARS`\n  - max transcript length appended to prompt for one attachment\n- `CLI_COMPAT_AUDIO_TRANSCRIBE_MAX_RETRIES`\n  - retry count for local/OpenAI transcription failures (default `1`)\n- `CLI_COMPAT_AUDIO_TRANSCRIBE_RETRY_DELAY_MS`\n  - base retry delay between attempts\n- `CLI_COMPAT_AUDIO_TRANSCRIBE_MAX_BYTES`\n  - skip transcription when attachment is larger than this size\n- `CLI_COMPAT_AUDIO_LOCAL_WHISPER_COMMAND`\n  - optional local whisper command template (use `{input}` placeholder for audio file path)\n  - helper command shipped by package: `codeharbor-whisper-transcribe --input {input} --model small`\n- `CLI_COMPAT_AUDIO_LOCAL_WHISPER_TIMEOUT_MS`\n  - timeout for local whisper command execution\n- `CLI_COMPAT_RECORD_PATH=/abs/path/records.jsonl`\n  - append executed prompts as JSONL for replay benchmarking\n\nNote: execution still uses `codex exec/resume` per request; compatibility mode focuses on behavior parity and reduced middleware interference.\n\n## Persistence\n\n- `STATE_DB_PATH=data/state.db`\n  - SQLite store for sessions + processed event ids\n- `STATE_PATH=data/state.json`\n  - legacy JSON source for one-time migration import when SQLite is empty\n- `MAX_SESSION_AGE_DAYS=30`\n  - prune stale sessions by age\n- `MAX_SESSIONS=5000`\n  - prune least-recently-updated sessions when over limit\n\n## Rate Limiting\n\n- `RATE_LIMIT_WINDOW_SECONDS`\n- `RATE_LIMIT_MAX_REQUESTS_PER_USER`\n- `RATE_LIMIT_MAX_REQUESTS_PER_ROOM`\n- `RATE_LIMIT_MAX_CONCURRENT_GLOBAL`\n- `RATE_LIMIT_MAX_CONCURRENT_PER_USER`\n- `RATE_LIMIT_MAX_CONCURRENT_PER_ROOM`\n- `RATE_LIMIT_SHARED_MODE=local|redis`\n- `RATE_LIMIT_SHARED_REDIS_URL` (required when shared mode is `redis`)\n- `RATE_LIMIT_SHARED_REDIS_KEY_PREFIX`\n- `RATE_LIMIT_SHARED_REDIS_COMMAND_TIMEOUT_MS`\n- `RATE_LIMIT_SHARED_REDIS_CONCURRENCY_TTL_MS`\n- `RATE_LIMIT_SHARED_FALLBACK_TO_LOCAL=true|false`\n\nSet a value to `0` to disable a specific limiter.\n\n## Codex CLI Alignment\n\nUse these to align runtime with your terminal CLI profile:\n\n- `CODEX_SANDBOX_MODE`\n- `CODEX_APPROVAL_POLICY`\n- `CODEX_EXTRA_ARGS`\n- `CODEX_EXTRA_ENV_JSON`\n\nWhen image attachments are present and `CLI_COMPAT_FETCH_MEDIA=true`, CodeHarbor will:\n\n1. download `mxc://` media to a temp file\n2. apply image policy guardrails (`CLI_COMPAT_IMAGE_MAX_BYTES`, `CLI_COMPAT_IMAGE_MAX_COUNT`, `CLI_COMPAT_IMAGE_ALLOWED_MIME_TYPES`)\n3. for Codex backend, pass local file paths as `--image`\n4. for Claude backend, use stream-json input with base64 image blocks\n5. if Claude image input fails, auto-retry once without image blocks and notify user\n6. best-effort cleanup temp files after the request\n7. optional prompt record append (`CLI_COMPAT_RECORD_PATH`) for deterministic replay input\n\nWhen audio attachments are present and both `CLI_COMPAT_FETCH_MEDIA=true` and `CLI_COMPAT_TRANSCRIBE_AUDIO=true`, CodeHarbor will:\n\n1. download `m.audio` media to a temp file\n2. skip oversized audio files based on `CLI_COMPAT_AUDIO_TRANSCRIBE_MAX_BYTES`\n3. if `CLI_COMPAT_AUDIO_LOCAL_WHISPER_COMMAND` is configured, execute local whisper first\n4. if local whisper fails and `OPENAI_API_KEY` is available, fallback to OpenAI transcription API\n5. retry transient failures using `CLI_COMPAT_AUDIO_TRANSCRIBE_MAX_RETRIES`\n6. append transcript to `[audio_transcripts]` prompt block\n7. continue request even if transcription fails (warn log + no transcript)\n8. best-effort cleanup temp files after the request\n\n`OPENAI_API_KEY` is optional when local whisper command is configured, and required only for OpenAI fallback.\nFor `codeharbor-whisper-transcribe`, install runtime first: `python3 -m pip install faster-whisper`.\n\n## Replay Benchmark\n\nReplay recorded prompts directly against codex CLI to quantify drift and latency:\n\n```bash\nnpm run replay:cli-compat -- --input data/cli-compat-record.jsonl --out data/replay-report.json --max 50\n```\n\nUseful flags:\n\n- `--model <name>`\n- `--workdir <path>`\n- `--timeout-ms <n>`\n- `--sandbox <mode>`\n- `--approval <policy>`\n- `--dangerous`\n\n## Progress + Output\n\n- `MATRIX_PROGRESS_UPDATES=true`\n  - emit stage progress updates (for example reasoning/thinking snippets)\n- `MATRIX_PROGRESS_MIN_INTERVAL_MS=2500`\n  - minimum interval between progress updates\n- `MATRIX_PROGRESS_DELIVERY_MODE=upsert|timeline`\n  - `upsert` edits one progress notice in group chats; `timeline` appends progress notices\n- `MATRIX_TYPING_TIMEOUT_MS=10000`\n  - typing indicator timeout; CodeHarbor refreshes typing state while handling a request\n- `MATRIX_NOTICE_BADGE_ENABLED=true|false`\n  - enable/disable rich-message badge headers (`CodeHarbor 提示` / `CodeHarbor AI 回复`)\n- Group rooms default to notice edit (`m.replace`) to coalesce progress and reduce spam (`MATRIX_PROGRESS_DELIVERY_MODE=upsert`).\n- Reply chunking is paragraph/code-block aware to avoid cutting fenced blocks when possible.\n\n## Tests\n\n```bash\nnpm run typecheck\nnpm test\nnpm run build\nnpm run test:legacy\n```\n\nIf Python legacy dependencies are missing, install them first:\n\n```bash\npython3 -m pip install -r requirements.txt\n```\n\n## Legacy Runtime\n\n- Legacy Python runtime exists in `app/` and `tests/`.\n- It is not part of default release/CI gates.\n- Use `npm run test:legacy` for optional regression checks.\n","readmeFilename":"README.md"}