{"_id":"git-workspace-service","_rev":"14-fc1c4bd51cfb4e7029d996daf7e42525","name":"git-workspace-service","dist-tags":{"latest":"0.4.6"},"versions":{"0.1.0":{"name":"git-workspace-service","version":"0.1.0","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.1.0","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"39e8df4def46fc86ab800f828386c882e2d69d81","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.1.0.tgz","fileCount":8,"integrity":"sha512-BIojus+/YNqZVVl47cIKqRMPJIlnn/NOVvrIkN9q8Yjl/Naa85ICyfR64TwTCtaoZTLkAE75AN5rTWk5cPqG6A==","signatures":[{"sig":"MEUCIC6AAHh3c/dysovsuX6bfPM9pTFr1nRs+pZBAZc6YqaDAiEAxFxd30lKZY8DQ0JG+gcllkHvopzjfzikH8Hp1SuiKD4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633293},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a0f9b4bb5e3026207eeecf33e596c692a3b77eaa","scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.1.0_1771271142417_0.5532241706201364","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"git-workspace-service","version":"0.2.0","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.2.0","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"b032510e454a5c90f707cfb7063c6c0d94390085","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.2.0.tgz","fileCount":8,"integrity":"sha512-tda673w7zQJIrRWwuPbsQ2ZWCpKWW76zmwfvLCgjV2pyxsmxPFxUPEQaddKG9EBkSJZdwnKUbjCLhFD9ppahXg==","signatures":[{"sig":"MEUCIQCfjy88zKlNG3q813oIZ5UxB/BkvgywNdzAxjVhTinbGgIgYd5ISF2F3+wj5CXPLTiBmvXgxdBWgR/iH7kMn738+xw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":670932},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"01b0a6a45da589569b9e29d293a3c66523ccff79","scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.2.0_1771271690960_0.45965280366646155","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"git-workspace-service","version":"0.3.0","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.3.0","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"021269738df221626e9497384cbe0f6dfa2fb466","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.3.0.tgz","fileCount":8,"integrity":"sha512-LLO9rRNroKnWPhUHiU6ipfwEQGiqu2UHxobLcz2hkBVgWdRy2iszauMQrxthwIlmi1azPqsLxDhVoXs6TdrVtA==","signatures":[{"sig":"MEUCIGWYd9P12gP2ysIZt+x9CMQm4BhSvqdNTrOUnVp71XhtAiEAnjB2GBdpkLgvPiXw64VCbf8KBgASEsXGo+kQWZXx5lQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694450},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e7786c7b59e744efd6d81763ea194954829234e9","scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.3.0_1771273273193_0.9711980935070426","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"git-workspace-service","version":"0.3.1","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.3.1","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"01727328535f28e21ad29e5fa852f55fa938e64e","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.3.1.tgz","fileCount":8,"integrity":"sha512-VXtOGuUkt/gUgQNIKe4wp38JPuXh1jqI19Xl1lFw+yvY7zMsqiHLPFVw8ROWhp9FkYDuXMkUDGGWPjgAQIJezA==","signatures":[{"sig":"MEUCIFvtukTYkrqqsF1DhLkpohbCQSiE4JRAqbmJR/qLU1D5AiEAtKBwGfFO2THRrtxlsTDsITJQC0qQNEXIR1l4NmCbwpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":714766},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8907b3a71143540a4efa4f05865ae1540df8b008","scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.3.1_1771351518347_0.48344484357627615","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"git-workspace-service","version":"0.3.2","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.3.2","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"c72d6c0f7641de1b3d50337ee574e2085cd5e42e","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.3.2.tgz","fileCount":8,"integrity":"sha512-+G6jk6rr6WlQ+Ee9Wv+ViKc+5+lsZoIlVm1YeW1fZ3D+K3Shg9XocfLOHxIqQbU4bNDfo8b4GYmEfEgeaKM7kA==","signatures":[{"sig":"MEQCIH8s5CY7tRETDMF/bUd7z4XsuFsHObCKOIVDmp30w02EAiBBen9FeXbjFSwyPgo42m7IM76LOgWs59s9usSp889MuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":713536},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"bf1788d25126067197516bc6601955ac52916566","scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.3.2_1771351798736_0.14216380530767836","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"git-workspace-service","version":"0.3.3","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.3.3","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"c398827f0b8972159290f18412db45f723ced10d","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.3.3.tgz","fileCount":8,"integrity":"sha512-PDe7DXeFcbiqdtO3xzZ0fcQ/5CmUh5bMw3Jzm7Aof2dt6mN3kasIsjUq0Pwk8fBvtR3oAP5K86psoAgIOs8H3g==","signatures":[{"sig":"MEQCIE5H3MGfDHe+omlkqS5SuzU+svTJPDTTN5DCf+X1aQ72AiAEfs45vsEFY6vNJz5WUwbndDdtRZ7SLuZIHqKf3Z+NPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":713536},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4a8c7c5cf75baca6a5a9a8e15b566f2142737f8b","scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.3.3_1771351992608_0.8636043207726758","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"git-workspace-service","version":"0.3.4","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.3.4","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"17a4c3f3c267a6e54d3d01dc032cc209710e7bd8","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.3.4.tgz","fileCount":9,"integrity":"sha512-ZHh69S7fXknANlC3UBqpkFQ8zWQsmFGol8t2vCrLBQJvlNG8I2PkKV59Z4GMzUzyL679Pa+1hMYmfLMC3A0V2Q==","signatures":[{"sig":"MEQCIBLMwuD+4IG0sI1BebkQRRgWX0BrWz+qp7zE5kfDZgApAiABAhp+FJB5pcHRmBfPV8I4Yz6hWRu42+7kL2jEMQ+zTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":728324},"main":"./dist/index.cjs","type":"module","_from":"file:git-workspace-service-0.3.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"_resolved":"/private/var/folders/9g/qfwzcj9x4bv7yq2838f4cwdc0000gn/T/dfa035d22331f2eb13414eef0bd866d9/git-workspace-service-0.3.4.tgz","_integrity":"sha512-ZHh69S7fXknANlC3UBqpkFQ8zWQsmFGol8t2vCrLBQJvlNG8I2PkKV59Z4GMzUzyL679Pa+1hMYmfLMC3A0V2Q==","repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.3.4_1771472890859_0.6628495145813551","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"git-workspace-service","version":"0.4.0","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.4.0","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"3cbac88704cc98a73a9ec866c2079aa441ae9493","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.4.0.tgz","fileCount":9,"integrity":"sha512-SQ6W7oz7UYb+i5VQ5Qy839H859MAL2JzIBbpCTh4n1lTplD2u+hDhcbLPENtDAQ3yhjwfdVVATheDH4nKWPghQ==","signatures":[{"sig":"MEUCIG6oNAUcHmP7Ap9h39cdLWVsUEoL4xUvUCf+NaCxXtvOAiEAjY4xKPnPJ3h2rC1+0k+3eYeLyTvIQs3QaIA925r3twc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":731267},"main":"./dist/index.cjs","type":"module","_from":"file:git-workspace-service-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"_resolved":"/private/var/folders/9g/qfwzcj9x4bv7yq2838f4cwdc0000gn/T/981c9f5949071505496cd9e89e8c19de/git-workspace-service-0.4.0.tgz","_integrity":"sha512-SQ6W7oz7UYb+i5VQ5Qy839H859MAL2JzIBbpCTh4n1lTplD2u+hDhcbLPENtDAQ3yhjwfdVVATheDH4nKWPghQ==","repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.4.0_1771548391505_0.13573673662326935","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"git-workspace-service","version":"0.4.1","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.4.1","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"dd83015dbf2617524b05e721f94a17d2f32b107b","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.4.1.tgz","fileCount":9,"integrity":"sha512-UqfabrsVnkq1stV7MwpO4ENY27FHSUCtX8s5Rk0rnIbJqFnft5aPCNC1znw2mUmT1Bm1W8/2tDHswpcwXnDPLA==","signatures":[{"sig":"MEYCIQDaxihd3wBQ3pTyMd83ec5Mj/E48RQDG8yRSwTobCJZEQIhAIXlSC9DIwl3o4w148lsW3326IFRZ2JYjbgwRyh2hm2u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":731267},"main":"./dist/index.cjs","type":"module","_from":"file:git-workspace-service-0.4.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"_resolved":"/private/var/folders/9g/qfwzcj9x4bv7yq2838f4cwdc0000gn/T/35b69a625274cfc511b8a125b2315f44/git-workspace-service-0.4.1.tgz","_integrity":"sha512-UqfabrsVnkq1stV7MwpO4ENY27FHSUCtX8s5Rk0rnIbJqFnft5aPCNC1znw2mUmT1Bm1W8/2tDHswpcwXnDPLA==","repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.4.1_1771636446729_0.23181505785448797","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"git-workspace-service","version":"0.4.2","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.4.2","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"4b9df26320e09b51fa1ba0ca3160a5733b8853a1","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.4.2.tgz","fileCount":9,"integrity":"sha512-vpF8Py4ySkGT/0/hmEyClYJzhgSNjlyatYQp/sMdBmKCwU6F0bcn/ycF8IJNdspPRIsC1YH99SI836bJrWtYCA==","signatures":[{"sig":"MEQCICOIHWYnMQNtoR0/ZY6+1YdD+7trKEDyBRtkmYJP2QWTAiAXMXt0ziMzxdpiXPswRIsgyCtzLIP+2iO9s2swfiaNmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":732071},"main":"./dist/index.cjs","type":"module","_from":"file:git-workspace-service-0.4.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"_resolved":"/private/var/folders/9g/qfwzcj9x4bv7yq2838f4cwdc0000gn/T/b5a912dfbf4abe37a04f2159bd686104/git-workspace-service-0.4.2.tgz","_integrity":"sha512-vpF8Py4ySkGT/0/hmEyClYJzhgSNjlyatYQp/sMdBmKCwU6F0bcn/ycF8IJNdspPRIsC1YH99SI836bJrWtYCA==","repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.4.2_1771636598059_0.014367558594138297","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"git-workspace-service","version":"0.4.3","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.4.3","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"9bd7e581028fae463d90fb4efbb80c1536383bee","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.4.3.tgz","fileCount":9,"integrity":"sha512-QgFdGyaXC4pawUx1Ou+UHYsd9O/qEeiI3iN88lRuyk7ICJBZ2tsxzr7jGXpPAb03l1iSSOMjUBZZvN4gxlAzig==","signatures":[{"sig":"MEQCIHs5rXQwETj48Bj5pNvKFYHsWHYbRxYVAsSoB4RxwgWfAiAfYDQbq4CyuwOhzIKq4FXJ1qkIzHP2sWd1/QgQGXxtmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734346},"main":"./dist/index.cjs","type":"module","_from":"file:git-workspace-service-0.4.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"_resolved":"/private/var/folders/9g/qfwzcj9x4bv7yq2838f4cwdc0000gn/T/2220e168dafb30be8fb49b188852c994/git-workspace-service-0.4.3.tgz","_integrity":"sha512-QgFdGyaXC4pawUx1Ou+UHYsd9O/qEeiI3iN88lRuyk7ICJBZ2tsxzr7jGXpPAb03l1iSSOMjUBZZvN4gxlAzig==","repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.4.3_1771651381599_0.09365755799524433","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"git-workspace-service","version":"0.4.4","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.4.4","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"8d824989863f38b4596b4488a972284c9cc9d24a","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.4.4.tgz","fileCount":9,"integrity":"sha512-pDmjqcPYF/wO6hz2P7lm+T+eZz3v4pM9Mxi0lPlU06JiEeh1kTdfxpp6zEz7aMXvf5M6IMJEOVVOO2lfBnrkmg==","signatures":[{"sig":"MEYCIQCBhaZuavdE+VhES70xmFkS+Rn0mclgizc2E7uJHwq25gIhAPN3G7bhklHjTpCDjMMJpytQNhJ6oDOVUq0cS1G5rZ5K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734346},"main":"./dist/index.cjs","type":"module","_from":"file:git-workspace-service-0.4.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"_resolved":"/private/var/folders/9g/qfwzcj9x4bv7yq2838f4cwdc0000gn/T/df56854bd614887212e13baab75a2448/git-workspace-service-0.4.4.tgz","_integrity":"sha512-pDmjqcPYF/wO6hz2P7lm+T+eZz3v4pM9Mxi0lPlU06JiEeh1kTdfxpp6zEz7aMXvf5M6IMJEOVVOO2lfBnrkmg==","repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.3.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.4.4_1772236817712_0.5267035880602366","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"git-workspace-service","version":"0.4.5","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","_id":"git-workspace-service@0.4.5","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"homepage":"https://github.com/HaruHunab1320/parallax/tree/main/packages/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/parallax/issues"},"dist":{"shasum":"0daa6c3baced263254cff2dc597821c911a815bb","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.4.5.tgz","fileCount":9,"integrity":"sha512-T5mMXDku9s/Gz3yus/CudzqUg2KbaGvF4Y4lgDYZYDGbeFiGWYuJLzVexWQMaiOuctw5XKvRKQYLyB2nwXsMSQ==","signatures":[{"sig":"MEUCIEMjik2UiwPc96BqOBpJ7Vmgfp9v4Iqwpm/5JOlAs9NhAiEAxyWtlHTQ4xo+6j28aq0fSesOv1IwYkNM8Vgjj5jvQcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":752047},"main":"./dist/index.cjs","type":"module","_from":"file:git-workspace-service-0.4.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"demo":"tsx demo/demo.ts","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","demo:oauth":"tsx demo/oauth-demo.ts","test:watch":"vitest","demo:workflow":"tsx demo/full-workflow.ts","test:worktree":"tsx demo/worktree-integration-test.ts","test:integration":"tsx demo/integration-test.ts"},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"_resolved":"/private/var/folders/9g/qfwzcj9x4bv7yq2838f4cwdc0000gn/T/72bcf7cc46463234f2aca1424b06597e/git-workspace-service-0.4.5.tgz","_integrity":"sha512-T5mMXDku9s/Gz3yus/CudzqUg2KbaGvF4Y4lgDYZYDGbeFiGWYuJLzVexWQMaiOuctw5XKvRKQYLyB2nwXsMSQ==","repository":{"url":"git+https://github.com/HaruHunab1320/parallax.git","type":"git","directory":"packages/git-workspace-service"},"_npmVersion":"11.11.0","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","directories":{},"_nodeVersion":"25.8.1","dependencies":{"pino":"^9.0.0","@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/git-workspace-service_0.4.5_1774907709544_0.8987094269474887","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"git-workspace-service","version":"0.4.6","description":"Git workspace provisioning and credential management service with OAuth device flow authentication","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"repository":{"type":"git","url":"git+https://github.com/HaruHunab1320/git-workspace-service.git"},"homepage":"https://github.com/HaruHunab1320/git-workspace-service#readme","bugs":{"url":"https://github.com/HaruHunab1320/git-workspace-service/issues"},"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","test:integration":"tsx demo/integration-test.ts","test:worktree":"tsx demo/worktree-integration-test.ts","demo":"tsx demo/demo.ts","demo:workflow":"tsx demo/full-workflow.ts","demo:oauth":"tsx demo/oauth-demo.ts","typecheck":"tsc --noEmit","clean":"rm -rf dist","prepublishOnly":"pnpm run build"},"keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"author":{"name":"Parallax"},"license":"MIT","devDependencies":{"@types/node":"^20.0.0","tsup":"^8.0.0","tsx":"^4.0.0","typescript":"^5.3.0","vitest":"^1.0.0"},"dependencies":{"@octokit/rest":"^20.0.0","@octokit/auth-app":"^6.0.0","pino":"^9.0.0"},"peerDependencies":{"@octokit/rest":">=20.0.0","@octokit/auth-app":">=6.0.0"},"peerDependenciesMeta":{"@octokit/rest":{"optional":true},"@octokit/auth-app":{"optional":true}},"engines":{"node":">=18.0.0"},"gitHead":"2335ace2d0459e2d0d726ee8f238a45f01ef5459","_id":"git-workspace-service@0.4.6","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-htyFlLF2ZGrVuEWncbeFeErxk6UHH+zOXhtFVU1jhS84RcD/Ihi+fEdjgWLT0ywUU/TIflHI1Qr9cPRwaqLXsA==","shasum":"b0b7581c0927fe3f468a256dd2df1415ff6e2afc","tarball":"https://registry.npmjs.org/git-workspace-service/-/git-workspace-service-0.4.6.tgz","fileCount":8,"unpackedSize":744578,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCK5U41bD5JJn5XHgcLv0yUj7uuRXdzrkVgQzNsJpayZQIgMveS1+UeusF5qFtSLI0OPzubbzezQR1MFEZ35IrlhZk="}]},"_npmUser":{"name":"haruhunab1320","email":"jakob@magickml.com"},"directories":{},"maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/git-workspace-service_0.4.6_1779819225806_0.9101594220407585"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-16T19:45:42.416Z","modified":"2026-05-26T18:13:46.089Z","0.1.0":"2026-02-16T19:45:42.596Z","0.2.0":"2026-02-16T19:54:51.134Z","0.3.0":"2026-02-16T20:21:13.392Z","0.3.1":"2026-02-17T18:05:18.569Z","0.3.2":"2026-02-17T18:09:58.934Z","0.3.3":"2026-02-17T18:13:12.751Z","0.3.4":"2026-02-19T03:48:11.043Z","0.4.0":"2026-02-20T00:46:31.757Z","0.4.1":"2026-02-21T01:14:06.923Z","0.4.2":"2026-02-21T01:16:38.265Z","0.4.3":"2026-02-21T05:23:01.844Z","0.4.4":"2026-02-28T00:00:17.955Z","0.4.5":"2026-03-30T21:55:09.700Z","0.4.6":"2026-05-26T18:13:45.957Z"},"bugs":{"url":"https://github.com/HaruHunab1320/git-workspace-service/issues"},"author":{"name":"Parallax"},"license":"MIT","homepage":"https://github.com/HaruHunab1320/git-workspace-service#readme","keywords":["git","workspace","provisioning","credentials","github","gitlab","bitbucket","oauth","device-flow","authentication","ai-agent","automation"],"repository":{"type":"git","url":"git+https://github.com/HaruHunab1320/git-workspace-service.git"},"description":"Git workspace provisioning and credential management service with OAuth device flow authentication","maintainers":[{"name":"haruhunab1320","email":"jakob@magickml.com"}],"readme":"# git-workspace-service\n\nGit workspace provisioning and credential management service. Handles cloning repositories, managing branches, credentials, and PR creation.\n\n## Features\n\n- **Workspace provisioning** - Clone repos, create branches, configure git\n- **Git Worktrees** - Fast parallel workspaces with shared .git directory\n- **Credential management** - Secure credential handling with TTL and revocation\n- **Multiple providers** - Support for GitHub, GitLab, Bitbucket, Azure DevOps\n- **GitHub App support** - First-class GitHub App authentication\n- **OAuth Device Flow** - Interactive authentication for CLI/agents (RFC 8628)\n- **Token caching** - Encrypted persistent storage for OAuth tokens\n- **User credentials** - Support for PAT, OAuth tokens, and SSH\n- **Fine-grained permissions** - Control what agents can do\n- **Branch naming** - Automatic branch naming with execution context\n- **PR & Issue management** - Create PRs, manage issues, add comments\n- **Event system** - Subscribe to workspace lifecycle events\n- **TypeScript-first** - Full type definitions included\n\n## Installation\n\n```bash\nnpm install git-workspace-service\n# or\npnpm add git-workspace-service\n```\n\nFor GitHub App support, also install:\n```bash\nnpm install @octokit/rest @octokit/auth-app\n```\n\n## Quick Start\n\n```typescript\nimport {\n  WorkspaceService,\n  CredentialService,\n  GitHubProvider,\n} from 'git-workspace-service';\n\n// Set up credential service with GitHub provider\nconst githubProvider = new GitHubProvider({\n  appId: process.env.GITHUB_APP_ID!,\n  privateKey: process.env.GITHUB_PRIVATE_KEY!,\n});\nawait githubProvider.initialize();\n\nconst credentialService = new CredentialService({\n  defaultTtlSeconds: 3600,\n  maxTtlSeconds: 7200,\n});\ncredentialService.registerProvider(githubProvider);\n\n// Create workspace service\nconst workspaceService = new WorkspaceService({\n  config: {\n    baseDir: '/tmp/workspaces',\n  },\n  credentialService,\n});\nawait workspaceService.initialize();\n\n// Provision a workspace\nconst workspace = await workspaceService.provision({\n  repo: 'https://github.com/owner/repo',\n  branchStrategy: 'feature_branch',\n  baseBranch: 'main',\n  execution: {\n    id: 'exec-123',\n    patternName: 'code-review',\n  },\n  task: {\n    id: 'task-456',\n    role: 'engineer',\n    slug: 'auth-feature',\n  },\n});\n\nconsole.log(`Workspace created at: ${workspace.path}`);\nconsole.log(`Branch: ${workspace.branch.name}`);\n\n// Do work in the workspace...\n\n// Finalize with PR\nconst pr = await workspaceService.finalize(workspace.id, {\n  push: true,\n  createPr: true,\n  pr: {\n    title: 'Add authentication feature',\n    body: 'Implements OAuth login',\n    targetBranch: 'main',\n    labels: ['enhancement'],\n  },\n  cleanup: true,\n});\n\nconsole.log(`PR created: ${pr?.url}`);\n```\n\n## User-Provided Credentials\n\nInstead of using GitHub App, users can provide their own PAT or OAuth token:\n\n```typescript\nconst workspace = await workspaceService.provision({\n  repo: 'https://github.com/owner/repo',\n  branchStrategy: 'feature_branch',\n  baseBranch: 'main',\n  execution: {\n    id: 'exec-123',\n    patternName: 'my-pattern',\n  },\n  task: {\n    id: 'task-456',\n    role: 'engineer',\n  },\n  userCredentials: {\n    type: 'pat',\n    token: 'ghp_xxxx...',\n  },\n});\n```\n\nOr use SSH authentication (relies on system SSH agent):\n\n```typescript\nconst workspace = await workspaceService.provision({\n  repo: 'git@github.com:owner/repo.git',\n  // ...\n  userCredentials: {\n    type: 'ssh',\n  },\n});\n```\n\n## OAuth Device Flow\n\nFor CLI applications and AI agents, use the OAuth Device Code Flow for interactive authentication:\n\n```typescript\nimport {\n  CredentialService,\n  OAuthDeviceFlow,\n  FileTokenStore,\n  DEFAULT_AGENT_PERMISSIONS,\n} from 'git-workspace-service';\n\n// Set up token store for persistent caching (with encryption)\nconst tokenStore = new FileTokenStore({\n  directory: '~/.myapp/tokens',\n  encryptionKey: process.env.TOKEN_ENCRYPTION_KEY,\n});\n\n// Create credential service with OAuth support\nconst credentialService = new CredentialService({\n  tokenStore,\n  oauth: {\n    clientId: process.env.GITHUB_CLIENT_ID!,\n    permissions: DEFAULT_AGENT_PERMISSIONS,\n    promptEmitter: {\n      onAuthRequired(prompt) {\n        console.log(`Visit: ${prompt.verificationUri}`);\n        console.log(`Enter code: ${prompt.userCode}`);\n      },\n      onAuthComplete(result) {\n        if (result.success) {\n          console.log('Authenticated!');\n        }\n      },\n    },\n  },\n});\n\n// Request credentials - will use cached token or trigger device flow\nconst credential = await credentialService.getCredentials({\n  repo: 'https://github.com/owner/repo',\n  access: 'write',\n  context: {\n    executionId: 'exec-123',\n    taskId: 'task-456',\n    reason: 'Code review',\n  },\n});\n```\n\n### Credential Priority\n\nWhen requesting credentials, the service checks sources in this order:\n\n1. **User-provided** - PAT, OAuth token, or SSH credentials passed directly\n2. **Cached OAuth** - Valid token from TokenStore (with auto-refresh)\n3. **Provider** - GitHub App or other registered provider\n4. **OAuth Device Flow** - Interactive authentication (if configured)\n\n### Fine-Grained Permissions\n\nControl what agents can do with `AgentPermissions`:\n\n```typescript\nimport { DEFAULT_AGENT_PERMISSIONS } from 'git-workspace-service';\n\nconst permissions = {\n  repositories: { type: 'selected', repos: ['owner/repo'] },\n  contents: 'write',      // 'none' | 'read' | 'write'\n  pullRequests: 'write',\n  issues: 'read',\n  metadata: 'read',\n  canDeleteBranch: true,\n  canForcePush: false,    // Dangerous operations off by default\n  canDeleteRepository: false,\n  canAdminister: false,\n};\n```\n\n## Git Worktrees\n\nFor parallel work on the same repository, use worktrees instead of clones. Worktrees share the `.git` directory, making them faster to create and using less disk space.\n\n```\n┌──────────────────────────┬────────────────────────────────────────┐\n│          Clone           │                Worktree                │\n├──────────────────────────┼────────────────────────────────────────┤\n│ Full .git copy each time │ Shared .git directory                  │\n│ Slower for same repo     │ Fast - just checkout                   │\n│ More disk space          │ Minimal disk                           │\n│ Good for different repos │ Perfect for parallel work on SAME repo │\n└──────────────────────────┴────────────────────────────────────────┘\n```\n\n### Creating a Worktree\n\n```typescript\n// First, create a clone workspace (the parent)\nconst parent = await workspaceService.provision({\n  repo: 'https://github.com/owner/repo',\n  strategy: 'clone',  // explicit, but this is the default\n  branchStrategy: 'feature_branch',\n  baseBranch: 'main',\n  execution: { id: 'exec-123', patternName: 'review' },\n  task: { id: 'task-1', role: 'architect' },\n});\n\n// Then create worktrees from it for parallel agents\nconst reviewerWorkspace = await workspaceService.provision({\n  repo: 'https://github.com/owner/repo',\n  strategy: 'worktree',\n  parentWorkspace: parent.id,  // Required for worktrees\n  branchStrategy: 'feature_branch',\n  baseBranch: 'main',\n  execution: { id: 'exec-123', patternName: 'review' },\n  task: { id: 'task-2', role: 'reviewer' },\n});\n\n// Or use the convenience method\nconst testerWorkspace = await workspaceService.addWorktree(parent.id, {\n  branch: 'main',\n  execution: { id: 'exec-123', patternName: 'review' },\n  task: { id: 'task-3', role: 'tester' },\n});\n```\n\n### Managing Worktrees\n\n```typescript\n// List all worktrees for a parent\nconst worktrees = workspaceService.listWorktrees(parent.id);\n\n// Remove a specific worktree\nawait workspaceService.removeWorktree(reviewerWorkspace.id);\n\n// Cleanup parent also cleans up all its worktrees\nawait workspaceService.cleanup(parent.id);\n```\n\n### Worktree Benefits for Multi-Agent Systems\n\n- **Shared credentials**: Worktrees reuse the parent's credential\n- **Faster provisioning**: No network clone, just local checkout\n- **Less disk space**: Single .git directory shared across all worktrees\n- **Isolated branches**: Each worktree can work on a different branch\n\n## Event System\n\nSubscribe to workspace lifecycle events:\n\n```typescript\nconst unsubscribe = workspaceService.onEvent((event) => {\n  switch (event.type) {\n    case 'workspace:provisioning':\n      console.log('Provisioning workspace...');\n      break;\n    case 'workspace:ready':\n      console.log('Workspace ready!');\n      break;\n    case 'credential:granted':\n      console.log(`Credential ${event.credentialId} granted`);\n      break;\n    case 'pr:created':\n      console.log(`PR created: ${event.data?.prUrl}`);\n      break;\n    case 'workspace:cleaned_up':\n      console.log('Workspace cleaned up');\n      break;\n  }\n});\n\n// Later, unsubscribe\nunsubscribe();\n```\n\n## Branch Naming\n\nAutomatic branch naming with customizable prefix:\n\n```typescript\nimport { generateBranchName, parseBranchName } from 'git-workspace-service';\n\n// Generate branch name\nconst branchName = generateBranchName({\n  executionId: 'exec-123',\n  role: 'engineer',\n  slug: 'auth-feature',\n  baseBranch: 'main',\n});\n// Result: 'parallax/exec-123/engineer-auth-feature'\n\n// Parse branch name\nconst parsed = parseBranchName('parallax/exec-123/engineer-auth-feature');\n// Result: { executionId: 'exec-123', role: 'engineer', slug: 'auth-feature' }\n```\n\n### Custom Branch Names\n\nIf you need a specific branch name (e.g. for deterministic naming or external conventions), pass `branchName` in the workspace config to bypass auto-generation:\n\n```typescript\nconst workspace = await workspaceService.provision({\n  repo: 'https://github.com/owner/repo',\n  branchStrategy: 'feature_branch',\n  baseBranch: 'main',\n  branchName: 'test/claude-nonce-abc123',  // Used verbatim\n  execution: { id: 'exec-123', patternName: 'review' },\n  task: { id: 'task-456', role: 'engineer' },\n});\n\nconsole.log(workspace.branch.name); // 'test/claude-nonce-abc123'\n```\n\nWhen `branchName` is set, `isManagedBranch()` may return `false` for the resulting branch — this is expected since custom names intentionally bypass the naming convention. The branch is still created from `baseBranch` and works with both clone and worktree strategies.\n\n## API Reference\n\n### WorkspaceService\n\n```typescript\nclass WorkspaceService {\n  constructor(options: WorkspaceServiceOptions);\n\n  // Initialize the service\n  initialize(): Promise<void>;\n\n  // Provision a new workspace\n  provision(config: WorkspaceConfig): Promise<Workspace>;\n\n  // Finalize workspace (push, create PR, cleanup)\n  finalize(workspaceId: string, options: WorkspaceFinalization): Promise<PullRequestInfo | void>;\n\n  // Get workspace by ID\n  get(workspaceId: string): Workspace | null;\n\n  // Get all workspaces for an execution\n  getForExecution(executionId: string): Workspace[];\n\n  // Clean up a workspace\n  cleanup(workspaceId: string): Promise<void>;\n\n  // Clean up all workspaces for an execution\n  cleanupForExecution(executionId: string): Promise<void>;\n\n  // Subscribe to events\n  onEvent(handler: WorkspaceEventHandler): () => void;\n}\n```\n\n### CredentialService\n\n```typescript\nclass CredentialService {\n  constructor(options?: CredentialServiceOptions);\n\n  // Register a provider adapter\n  registerProvider(provider: GitProviderAdapter): void;\n\n  // Get credentials for a repository\n  getCredentials(request: GitCredentialRequest): Promise<GitCredential>;\n\n  // Revoke a credential\n  revokeCredential(grantId: string): Promise<void>;\n\n  // Revoke all credentials for an execution\n  revokeForExecution(executionId: string): Promise<number>;\n\n  // Check if a credential is valid\n  isValid(grantId: string): boolean;\n\n  // Get grant info\n  getGrant(grantId: string): Promise<CredentialGrant | null>;\n\n  // Get all grants for an execution\n  getGrantsForExecution(executionId: string): Promise<CredentialGrant[]>;\n}\n```\n\n### GitHubProvider\n\n```typescript\nclass GitHubProvider implements GitProviderAdapter {\n  constructor(config: GitHubProviderConfig, logger?: GitHubProviderLogger);\n\n  // Initialize and fetch installations\n  initialize(): Promise<void>;\n\n  // Register an installation\n  registerInstallation(installationId: number): Promise<GitHubAppInstallation>;\n\n  // Get credentials for a repo\n  getCredentialsForRepo(owner: string, repo: string, access: 'read' | 'write', ttlSeconds?: number): Promise<GitCredential>;\n\n  // Create a PR\n  createPullRequestForRepo(owner: string, repo: string, options: { title, body, head, base, draft?, labels?, reviewers? }): Promise<PullRequestInfo>;\n\n  // Delete a branch\n  deleteBranch(owner: string, repo: string, branch: string): Promise<void>;\n\n  // List managed branches\n  listManagedBranches(owner: string, repo: string, prefix?: string): Promise<string[]>;\n}\n```\n\n### OAuthDeviceFlow\n\n```typescript\nclass OAuthDeviceFlow {\n  constructor(config: OAuthDeviceFlowConfig, logger?: OAuthDeviceFlowLogger);\n\n  // Start device flow and wait for authorization\n  authorize(): Promise<OAuthToken>;\n\n  // Request a device code (step 1)\n  requestDeviceCode(): Promise<DeviceCodeResponse>;\n\n  // Poll for token (step 2)\n  pollForToken(deviceCode: DeviceCodeResponse): Promise<OAuthToken>;\n\n  // Refresh an expired token\n  refreshToken(refreshToken: string): Promise<OAuthToken>;\n}\n```\n\n### TokenStore\n\n```typescript\n// Abstract base class\nabstract class TokenStore {\n  save(provider: GitProvider, token: OAuthToken): Promise<void>;\n  get(provider: GitProvider): Promise<OAuthToken | null>;\n  clear(provider?: GitProvider): Promise<void>;\n  list(): Promise<GitProvider[]>;\n  isExpired(token: OAuthToken): boolean;\n  needsRefresh(token: OAuthToken): boolean;\n}\n\n// In-memory store (for testing)\nclass MemoryTokenStore extends TokenStore { }\n\n// File-based store with encryption\nclass FileTokenStore extends TokenStore {\n  constructor(options?: {\n    directory?: string;      // Default: ~/.parallax/tokens\n    encryptionKey?: string;  // AES-256-CBC encryption\n  });\n}\n```\n\n## Event Types\n\n| Event | Description |\n|-------|-------------|\n| `workspace:provisioning` | Workspace provisioning started |\n| `workspace:ready` | Workspace is ready for use |\n| `workspace:error` | Workspace provisioning failed |\n| `workspace:finalizing` | Workspace finalization started |\n| `workspace:cleaned_up` | Workspace has been cleaned up |\n| `worktree:added` | Git worktree added to parent |\n| `worktree:removed` | Git worktree removed |\n| `credential:granted` | Credential was granted |\n| `credential:revoked` | Credential was revoked |\n| `pr:created` | Pull request was created |\n| `pr:merged` | Pull request was merged |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}