{"_id":"@akira-tl/forgerelay","_rev":"74-bf234c1edb77c789931884187ebdfd6f","name":"@akira-tl/forgerelay","dist-tags":{"next":"1.2.0-rc.1","latest":"1.3.1"},"versions":{"0.1.0":{"name":"@akira-tl/forgerelay","version":"0.1.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.1.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"57acc9607eec3e4d450cab8250aad1a8530ba7ed","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.1.0.tgz","fileCount":373,"integrity":"sha512-50zJz9sUL3wYqbYqx1Uipj0GHTNApRi5N+QlO0L6lG6MB/9MP/LTujgckwROdI65ebiwaOe2sfj2D4jxkCuRqA==","signatures":[{"sig":"MEQCIA69r2YNSd7p4Lqd4Lpz9Q5a1n59I7HgCrDPRCXbhc12AiAc1kz9TusASrqJjgJlTIxe6XgQuPcUKmgg9XfNSIRniQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10986546},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"c1f1cb0bf03cac40c64babcaef00940f9be6d3fd","scripts":{"dev":"node scripts/dev-server.mjs","test":"tsx src/config.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","postinstall":"node scripts/fix-node-pty-permissions.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"akira-tl","email":"Akira.TL.code@outlook.com"},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.13.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"26.2.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.1.0_1786249782790_0.821754813691703","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@akira-tl/forgerelay","version":"0.1.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.1.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"7bdc23d24a39d4ed6c1d04735370bff71eb88c0d","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.1.1.tgz","fileCount":373,"integrity":"sha512-3OTM8Jb8g6+hI5+MN81pJqE6M2v8pRAkD8IRPPX/R5rSwDg3OsIMjaWqP/w7ajC7LqWL0JtIeKVvpeSVjByKLQ==","signatures":[{"sig":"MEUCICDrWqo775NSuDEMcQ91mMzTJUWnz1pqHjMO9keqo2ZZAiEAsPV5fIMpEVX+EWE7q8SJ8+g3eu/QfHON9Jlr7/Ucqtg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10990860},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"8cc2ecd8cec1b2a58d0481c664dabd45e7a61e6b","scripts":{"dev":"node scripts/dev-server.mjs","test":"tsx src/config.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","postinstall":"node scripts/fix-node-pty-permissions.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.1.1_1786263304229_0.7709063091082218","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@akira-tl/forgerelay","version":"0.2.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.2.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"873d1b24c4b71045c553e5c00d652286b0fafa57","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.2.0.tgz","fileCount":381,"integrity":"sha512-+AFnjVVx+AU1nkfZwanAz33hlZvH9CQBM8pM/i9lPQPYicbv/vxZKq7L325/BL0bjnKAUivNqZNgeaEYA1LWzg==","signatures":[{"sig":"MEUCIQDhaCCLGhVFwRBUEQeKWP9Ww8heL6D4PyiRm5HyfV6iMQIgVfjqdUZ4loF+4NqznB2p8Lk604obzbRu0m3fMuTHRvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11079269},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"f2db543ffe05014af6baa4ee5c4eed675297cd4a","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.2.0_1786284834901_0.38271868658074304","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@akira-tl/forgerelay","version":"0.2.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.2.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"3089715460ca9d2d777a634d4218b4ae78a3f610","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.2.1.tgz","fileCount":381,"integrity":"sha512-tVRwoYrgZhZ6wDDru65MBOU1ySfIu7UwcRMHNor5J7+sO7KhFswo1EApamNKZ2iZiCc4mXLo/jOdRCJYr0qgSg==","signatures":[{"sig":"MEUCIQC7sqf9T+J0DJoO6KuOwvlz+NkcmAELA30UvUJR6u0N9AIgR2vcPIdJJ852plSZIu/iSySYeGkBAuqGa8yBP0U7xrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11094463},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"b954a9b1833c24d1c0d3a1875e1987d0028ceee5","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.2.1_1786285372470_0.6280803181263743","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@akira-tl/forgerelay","version":"0.2.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.2.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"9e300eaaebe15ad8b5318704f1a45abb167eea4f","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.2.2.tgz","fileCount":382,"integrity":"sha512-7tQgCVtKgN3D0YdSd05Yg2uROuRlJwvTVLcAhPjKK9LKJJqgCRjAexWiChhmgCYDb7firGEtzB50rXSc6XkqTw==","signatures":[{"sig":"MEQCIFAO00lUyVXINR5liehE6dDy4C6ObtvkvPqzd5uMp6LGAiB7UKLUFB0YmAZwVr2YlbFeSyaB6LwNQKhJDwub586EVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11106094},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"ff799148cb62116f026a1f1b548b368bb8ebd59f","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.2.2_1786286837495_0.5334749287127967","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@akira-tl/forgerelay","version":"0.2.3","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.2.3","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"1678ccab5dd815c9546cbde28b4c38fd254519c5","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.2.3.tgz","fileCount":382,"integrity":"sha512-RYnSmAV/a0K0xuwZLBIGpOJKfRPCcek7yODVUP0t3N/hrVbGJ3pDpGk/iYT65nQnnwuzSCDMPO8/xzx73Dw0qw==","signatures":[{"sig":"MEQCIAn6sVXEHWRGYPmMaGb8gcPPNg4LvIeV/wNVLRocpVM6AiB1y7zJRyK+ScRDxedE8n6yZN2G3WzAfmLJsG+Y+D6fuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11109565},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"5365222a24d2e69d3e26d1929fdcb9e14ba1d3d1","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.2.3_1786292259457_0.5379186071159889","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@akira-tl/forgerelay","version":"0.2.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.2.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"b0e11792d8aa7a1640f7466ad5c82e203a1f8df0","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.2.4.tgz","fileCount":382,"integrity":"sha512-C5noxRQBJHmKWc7kOPwCWLrvnAhNWR4iWkq3yr2n8iPRqncrahShXipGlPmTKYI3FsvdKMzage5zJSFrSsTETg==","signatures":[{"sig":"MEQCIA9oyOag5Chw1yUnPxK79v62bSl9iVOg4BhXRnAA+yzsAiBc+btkBNFSVMWXFQWsI/8DXeI2osIDEewlaX/9Q6p0Gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11137547},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"56e460e6c8193ca9d45a8b00abbe2530bc58600a","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.2.4_1786300903662_0.43078912140598913","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@akira-tl/forgerelay","version":"0.2.5","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.2.5","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"3b412a607b7587114cdbdca648078a3a844953fd","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.2.5.tgz","fileCount":383,"integrity":"sha512-KlnAFdxaMDorfA3fq0tHzKt/1amhQFdO301BZwS3MZTDBl5C703Y8y37S5YcQb/Gx6wjr+jai2+Y3Vc14dGMgg==","signatures":[{"sig":"MEUCIDOQ7MRgyUtW9NbYfzMEr5vEBadjWzpuQgUKneFkay0WAiEA99aQHqCTqnT8GqHcMIMWjU+ZtYM0/vnIiHk4MwsKzb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11153364},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"870c45b0343b38cea47bc66269a099a50cf656f7","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.2.5_1786335845531_0.056463046597433175","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@akira-tl/forgerelay","version":"0.2.6","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.2.6","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"c6e86da3346e5db650d6d09b0272aa51343ccec3","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.2.6.tgz","fileCount":383,"integrity":"sha512-mw/xAN8LKcgQj6jgqg7siKVFbxzXn4ij2kF9SJUucozECO4pqsVXB7HUNr291fsYlEqoJyrWOyTcUOlOvd3JSg==","signatures":[{"sig":"MEUCIQDyGR+wPBGgujDv+KiT3wZOXg6oFePVpYueb7kX2X4tSwIgC5aWvxXzTLa+WacUbWDgJ7lRJGRZLkSDuGXVKKflRhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11158356},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"90bda5736cefbc0da88906415137985fdbda72fc","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.2.6_1786338069084_0.17389274122058285","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@akira-tl/forgerelay","version":"0.3.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.3.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"3c74f65b07c0655f3af300e9f34c6fb3c898c179","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.3.0.tgz","fileCount":392,"integrity":"sha512-yvvAaCYWVWhoaW7JiNQzy9tmCDmI3ncPHZMEKEU2lokFU/gvDaBGhxdntGj+1MhNSLGjIbPzMRFT0AfrkqIqhw==","signatures":[{"sig":"MEYCIQDkG7oUAUKoJixcrvE3ZG8xbTZwt5ub8PZngPp++2NDPAIhAL0EG0+EJWFvd0YSaCypaqnZ6GBGqvsX49f1h9Yu+KoZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11191058},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"cef09b16609262d493e5b479b038779ea2b3f95c","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.3.0_1786348694057_0.24680990768452182","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@akira-tl/forgerelay","version":"0.3.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.3.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"4d60a750582406871c3e253369475c74a4ab108d","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.3.1.tgz","fileCount":392,"integrity":"sha512-1sJ+DFdAO13GIUHWTssGYSiC+F5QdIKHQ0pMiJ8ag5PL45zEYhTAG8KIsYkcLYO6cyaPNhDiFXnsobIp/iSI1Q==","signatures":[{"sig":"MEQCIHIl2TJ5jvqizrBUm/eOIBlfrrsqpkXJaX8tvuFEXI9QAiAbjNW0hlxTOa60DsTEgc39ylyJJALvOI1KwKM4huc7EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11199970},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"9d206b43aee51e8e48226b0f04de622dfac8df72","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.3.1_1786356024138_0.14532737548304353","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@akira-tl/forgerelay","version":"0.3.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.3.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"d4be2607cddf70579dd50cc9ca4d4877706f863c","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.3.2.tgz","fileCount":393,"integrity":"sha512-I6QnacFoMo3aWs/CZPo/d55Jb20qYWo53zo/u08YgfydRgPuUn2XhTdk43PRbncfPku5/5ukZVQvtXdo9pIngg==","signatures":[{"sig":"MEUCIQC8Kau8BqNwS/eS6o5R8eOFmL2jqQMIJ6OFX91/0lwb2AIgBdOG+1+iNkhTgwEW43+rlG3s1mQvfshIJXEq1QzBEHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11215142},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"e45fa70353397a6ec574401460353dd2534096aa","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.3.2_1786357547989_0.81269747291344","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@akira-tl/forgerelay","version":"0.3.3","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.3.3","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"b3bedef29961e1d51c493923b86c8319208675e4","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.3.3.tgz","fileCount":393,"integrity":"sha512-FZtZ72q4ied/f/0dhKkXLKqobvqGMvBjFt9CGHerKodj+39DoMp341mBBDUM6N575O9CmCv0Hu4guNcd7WhPCQ==","signatures":[{"sig":"MEQCIEAaMTx4xRpZA68hoCaGU24P19Ro0SzWNCSOP4ZXxePeAiAfRL7WxNOGI3SKtGxHl9N6gGJXw92N5LfjLpSH1y5fbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11223672},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"be9ac3d60cffd29c4cce6fd4ebe7ec699a26416c","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.3.3_1786359145467_0.48034030352257395","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@akira-tl/forgerelay","version":"0.3.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.3.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"fcc2bdbcb823d8c310ad3a9c9d9f5b793cd30115","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.3.4.tgz","fileCount":393,"integrity":"sha512-ldpU4HcYW87AfS+Khuw/PF4+TtmqmIThH3jw9NpoRriXX6DkcDUVeU/WHgcmwblKn0mSFLFpoAIRvXMpfV8sOQ==","signatures":[{"sig":"MEYCIQC2PlHRAqS946Obt+ITzzyCwVLdSnSA+V68tvZp1zRPxQIhAKqQwV4OHI4aSJjejndPtePLkb4p4mrWp8XBR8Vb0tHo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11232866},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"4adff723bc5313c0154ec46c29b19b3ab22d10f0","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.3.4_1786361572385_0.8457281601333133","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@akira-tl/forgerelay","version":"0.3.5","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.3.5","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"eb04c19b67336740be1e05c6ce3afc86c079f7c9","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.3.5.tgz","fileCount":393,"integrity":"sha512-I0d5JVmx8TwvqbwP4EVsu/HyKk2VavUldJY0abNv6zHKXHsmVeluGp1xhus2dposEzAdo/53P5EtSo1k1kP4XQ==","signatures":[{"sig":"MEUCIQCsoI9ZWugHsUnIEzaxO6Vc6mcoAOwgvI2RxXU72wjPUwIgNEl+52ZYClGwBghupyoR4N9cguasUHXz0Wl/iz3fq10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11218340},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"15732528385a5672d996b5c525392ce5a182d11f","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.3.5_1786371606058_0.3806377377803114","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@akira-tl/forgerelay","version":"0.3.6","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.3.6","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"e515936d4d942ead25f326665bb7d202c4cb592e","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.3.6.tgz","fileCount":393,"integrity":"sha512-yzng31LGdMlr4QqcKAwZVdXCnbDOkYE+4buz+Sm67DFljXy19kkHz6VwjbXHSH2I7KqKjHiYdXwgXkA5oWi4Sg==","signatures":[{"sig":"MEUCIQDlriHfJXwAf6gKhYnH1YmI/nLtmZqNOD/eZn3m/861dgIgFr/0LFuoIizlbPQQ4G2G4/rcLFZWJ4FwB9F3Kie0KYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11247359},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"e5766b05361231529d333091718b8954a9da1fc9","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.3.6_1786376039699_0.8538141405944752","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@akira-tl/forgerelay","version":"0.3.7","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.3.7","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"883388dce9b93a1062221fb2719ab31fddf621e2","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.3.7.tgz","fileCount":393,"integrity":"sha512-dcJQ0mVY2Hv/GUPkcD7mD0mfSDhZ896Q6W9SKgSPg78/KCBuYrZGWUcGEwJsUFykbWB3XlEDCzbT0QUYGaI/vg==","signatures":[{"sig":"MEUCIA+eeZcz08hU6/UJNlJwBkEDdPdxqJui6gjXYzcaIKMcAiEAvf8XqpSfysSRfH7WGeVW8PGHu0bVKGIJEdKWlL/HbNs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11271461},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"fdf722d2fba9901a761d6b32969635fb75b1c6f0","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.3.7_1786380634161_0.7547848368297911","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@akira-tl/forgerelay","version":"0.4.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.4.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"56f94efc67f5043dd74108f8d0a60737fb805a1e","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.4.0.tgz","fileCount":398,"integrity":"sha512-N1fgsiqHm7Up/BO52O+8kHlVxVGgisnN4kz89MvZL5j53oZu1rf/kxBA5TBmxXj2eY3fwSi2tBhWHNCaThn8tQ==","signatures":[{"sig":"MEQCIFmqq1sXMeyky2m7AUlBs1sHRaVc3DxbKpo6sFSheRr/AiAIZyGZdvn5EtJe4zsAfuLqb4mt2NuGyR5WqqxDL2mGww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11321817},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"98f9a4b97b2f956141b26fad4e5173be9ce1483c","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.4.0_1786415783585_0.6231094181779651","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@akira-tl/forgerelay","version":"0.4.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.4.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"aa57e7c3662b9c24763fc6e5534c578d39fd0722","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.4.1.tgz","fileCount":400,"integrity":"sha512-EffcvryjE0GUKlImt1bsI77dRHKgclHzJn7g/kZo+Pm+2ccLIBPOC7E3Ep4dT1O5Up4mrdxBhaiTjhnMo/UfLg==","signatures":[{"sig":"MEQCIGfkoGQ0xRlVJ2g/klJkBMenAw+LlKuGEdqEdHNzydTgAiB5NpalKadjeYc0l6r1nZUE9NkFcTsL+/z2W/v+6RhBLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11326227},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"7eab2b64c607d104405767c4c6aa8fdd339d697d","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.4.1_1786417184651_0.557589523798806","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@akira-tl/forgerelay","version":"0.4.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.4.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"3a120e074ebf915959281d9cacdaae8bcbcb8049","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.4.2.tgz","fileCount":403,"integrity":"sha512-L6CFcZonq2oX+OlA96VAQjQDRYQtC5hsH4LUOEJshfMxwhkvpCPRHxeNuuDj3pFI7BsHDJOJRk/ZGCUcN6ilwQ==","signatures":[{"sig":"MEQCID7hCkrWnrBvkqRIVwWS0JUAHq51m873mhD/bsgl9KaRAiBWBx4cAqrG0Gye4P/r35Sh21k5KjVLWnq3WriuKA5IfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11335017},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"9767695be35250559a63af9c8efa77080b904ca3","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.4.2_1786418678232_0.4933299158566753","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@akira-tl/forgerelay","version":"0.4.3","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.4.3","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"4ac001c19bed783dbebb72bd4e47d2ec83b46bf2","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.4.3.tgz","fileCount":404,"integrity":"sha512-Sh719VnVf2R/LWzCIYKCE7xPvtdNDxBEjUrDyWAxLKC3l68PPUEw97XCFjBbpzZLsPAKHEY7RP5jRe9YbVMoIA==","signatures":[{"sig":"MEYCIQCB6qfzWL0XVfIdWRYhedYLaUd+OOOVIlIy83dTnt/sZwIhAP0Bm9llEG5xy+p6c/bE7UPYQjzWLu0K26bxvSLKfzsp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11345460},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"2185dd03009ae1ece09f73dbed5000af11d9b4fe","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.4.3_1786422712263_0.7820286660680442","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@akira-tl/forgerelay","version":"0.4.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.4.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"f962aaee6feabc7a35de260b3bb1dd31520e1cbc","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.4.4.tgz","fileCount":406,"integrity":"sha512-hyp+VEImdEoo3HgfiPaFRemAgedd7nRUsg1CkgxQZiz8gWTxfsfTvXudONXfYhhv8pRrbl+U8mKymr18yJVMYQ==","signatures":[{"sig":"MEUCID2+4oKmu7tob3VlegvMUxG+XGvRVG3sknvqzedn9d9RAiEAk3+Ri5sJsjv0y07Ces9r42Ft4FvGH+uqRnWTTREscYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11357688},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"d8fa6a25b1f82ea1b7f590d3f8d53bbb0667c04a","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.4.4_1786425499141_0.4962133594263263","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@akira-tl/forgerelay","version":"0.4.5","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.4.5","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"8032f78b8af9652124a07cf760236a0a6c890369","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.4.5.tgz","fileCount":408,"integrity":"sha512-QEvBAMTM0Nqmxy8VlXraa62YfDNMROeDLxNyFIuKYM9+KFtgnkpTGL4OZ6cgrB27N+ds+l5Ixl2YH8KyIJ+hbg==","signatures":[{"sig":"MEQCIARRRj0zeVL4CzSRHa+tOXWSHssG+QPTJKVlyzFBBpTIAiBQv6f9xI8bMS7R7sRnFkxmtAYav3Mv+ICpp8554r7X7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11381498},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"42e5dbe1bddf8a5142af5918922e717454bc24d3","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.4.5_1786435028848_0.7745211226149702","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@akira-tl/forgerelay","version":"0.4.6","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.4.6","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"cd51b132491ed93f584cccf7b182aa0259e594ce","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.4.6.tgz","fileCount":414,"integrity":"sha512-DvXsmJNlZkq+G/5EOFl6wo25A6KV/X0NZGPAJ5cK6QYVx9nfMhPBHtouSqRM+glhavc2ssS+KMkCLQWMXsW/rA==","signatures":[{"sig":"MEUCIQDZt8DO8ZBSGgxsP3Z9xLvzO+WZbKJMRDwOfTphV1ew3QIgZsGhYRtSoEDtU82AG7IBX3Xplk1lj2iP+Ejs2y4qmp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11405545},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"073f930335c6d535e7f317549a93696cc8c8e6bc","scripts":{"dev":"node scripts/debug/serve.mjs","test":"tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build && npm run lsp:interop && npm run release:parity","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.4.6_1786442021941_0.7053322571052292","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@akira-tl/forgerelay","version":"0.4.7","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.4.7","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"a636be74ff60a90ad366c07737f822ca7417d532","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.4.7.tgz","fileCount":416,"integrity":"sha512-WTXnqN00D/Ax8DQjMh1x9WJCpCQgfqJxxmZHslENgb8dPuVmbRtfiMqWKWV9FfZbNkotxw9Vgjvsh+bwhJlRYw==","signatures":[{"sig":"MEUCIQD2FtoP2cjqfd0Ev/Yz8MYqHNseMIP1nU1aYAJSsRDDyAIgNFE+ApYe8HpVxJePw9O36yzRCcYp4NBpV8xV5b9DGpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.4.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11428573},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"47adfbfca17d3d885f220ba4feb2d8655c9c39d6","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/release-proof.test.mjs && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build && npm run lsp:interop && npm run release:parity && node scripts/release-proof.mjs write","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.4.7_1786464737910_0.3500514426868271","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@akira-tl/forgerelay","version":"0.5.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.5.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"c09e15d929bd9bc16d44346a0a1913bce703c53b","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.5.0.tgz","fileCount":417,"integrity":"sha512-kkrdMSu5GFxEZsyt/QsnRj97SF1yS79humonctlWOtb9tSWGG1CFtaCzqi0+waKREPv6ThkzZsBvtL6X8cZETg==","signatures":[{"sig":"MEUCIQCAGRDa3NMVl2JcasDkH+RlMZkmD8EnLmM/eQ8wYiJ6bgIgBhYNoXLR6VBRKihKco+5o5YWjg80nn7LKXLR7WUPnSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11439378},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"a322ef62dca91cf01666b844f77eae87db756de2","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/release-proof.test.mjs && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build && npm run lsp:interop && npm run release:parity && node scripts/release-proof.mjs write","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.5.0_1786717716090_0.5191204340121132","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@akira-tl/forgerelay","version":"0.5.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.5.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"e78be6ae5ffc07afb51ee9c91da535d31d9fe3cf","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.5.1.tgz","fileCount":418,"integrity":"sha512-s1avsQpKsLnb9T8cUHigdBYUsoFyQ0YWEMcba7Zq3HJBdh0yJlmtJC8DvREuIH70XRBOeq7rxTIGIiwvfB55dA==","signatures":[{"sig":"MEUCIEzWL811I1lUnfjdfNo7e63+EQ5M+7u87nNWJqGvUaZsAiEA4cZ/sBxpK5Aj0bEzIUnv61avalP+Uxh0jN1CocAW+4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11449878},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"6a97fc31169981136cdabc3f2882fc4fe39ca9d8","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/release-proof.test.mjs && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build && npm run lsp:interop && npm run release:parity && node scripts/release-proof.mjs write","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.5.1_1786720113906_0.9691309588786876","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@akira-tl/forgerelay","version":"0.5.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.5.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"6b68fe20afad3be8057c7bea65bfbe8a1c171a63","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.5.2.tgz","fileCount":420,"integrity":"sha512-xFGUnBWFp5cmlLPKplG1PVsIXpzSW52XqG7AHzpEhX7UuqBgRxS/P0AIBRAol840kIXufploZSFXqEKSzWy0EA==","signatures":[{"sig":"MEUCIF10L8aUiEnQmoHR0NEn47ckBhkdER9IES4JsjBHVduIAiEA42C/hUniwbuXwHz1DfTD/WwAuXIWyQBaXnz4e5pbLGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11471537},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"00cf0549560d75bd367f261413b74dbb0c7770df","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/release-proof.test.mjs && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build && npm run lsp:interop && npm run release:parity && node scripts/release-proof.mjs write","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.5.2_1786761754388_0.7415836184153382","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@akira-tl/forgerelay","version":"0.5.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.5.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"88db12298d0ea556eecc4e4d0ecd6be67ed59fa6","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.5.4.tgz","fileCount":423,"integrity":"sha512-J/0Pw2kMEDwXvvEKnbx2FfrDx/NnizpwhRhK/9cKNgrxcvH8L0wM4dt86K3+RTD9CQ9lJfIstW8nJyab/JH0vA==","signatures":[{"sig":"MEQCIDb0qvhLZev8ispeUM9K+yNoC1uwRGfVrTjBYibJDLY3AiApw4ZfJ4ndk6MqiSh7khddwOlkyZ3XcbglxV8g/oRSKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11492242},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"020f0794cc86bb0c984a13f2bf4425d998202c19","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/release-proof.test.mjs && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build && npm run lsp:interop && npm run release:parity && node scripts/release-proof.mjs write","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.5.4_1786774020666_0.041087073932146945","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@akira-tl/forgerelay","version":"0.5.5","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.5.5","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"ce9d8e659990cef67c348c921900b824c30ad4b0","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.5.5.tgz","fileCount":431,"integrity":"sha512-EJC/M1v4cL0sCON4CmGrkf3ecD5Tk2f0Slhrk3WAKayaV887YWeFjiOF374/CYhVF0V9FEgu0XGfmZQiHaBXzw==","signatures":[{"sig":"MEQCIHTzMqO151Q8O0H5L3bNdEjIu4VWYfRCkv22b1x0pPtOAiBbt2LL33Ly2ymtBsbQQGkmX72giQgbzR2GUr07B7Vc0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11544512},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"810f4e0881ee7f073cbb4c39e2a3d657aed6eb7e","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/release-proof.test.mjs && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build && npm run lsp:interop && npm run release:parity && node scripts/release-proof.mjs write","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.5.5_1786784181194_0.5968093189935857","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@akira-tl/forgerelay","version":"0.5.6","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.5.6","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"865b3720f6e6c6416ba8e65a723b2f200a686491","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.5.6.tgz","fileCount":432,"integrity":"sha512-MsfL+Jf5t+Otgjjglq7V+jabDQ+DOEeG3MoL77Sbj29T5V1B3S0VP3BhRqt1qPNXaAuBpKfpPizw/pvEo+GYgQ==","signatures":[{"sig":"MEUCIHtpk4ZFaNLyu1EmR7muzIDCZNcXg0u8R/A9z7xzqd+eAiEA2l0hkMFnA1tC+c+VkRiPaXv7//4UdtHMmA4FXXfTieg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11550470},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"50f9b5def62d46b4dfc7d38c2b4acc049d8d864e","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/release-proof.test.mjs && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:check && npm run typecheck && npm test && npm run build && npm run lsp:interop && npm run release:parity && node scripts/release-proof.mjs write","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.0","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.5.6_1786948210503_0.6210357570871463","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-rc.1":{"name":"@akira-tl/forgerelay","version":"0.6.0-rc.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.6.0-rc.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"0058c7c2ab25b07d5cadbd8683187e709652a635","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.6.0-rc.1.tgz","fileCount":446,"integrity":"sha512-yHiKFCEm5Y5e6qnHw2QFH5anGwSMMpwcqv1QClEjvOeTmvCDnYytqIYRVrOKPxNZNuU8eff6OT2tWKNlmB5f1w==","signatures":[{"sig":"MEUCIBGpxyrvPIzYWTUNGQde/uQM2uqd2A6DOr/cRhjWpFQvAiEAl9YbKFHXScw82GkroArAKNbrNY/IGo/yfsXBKhrokKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.6.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11647612},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"b0846aab7649b7900dc99e9e6099f32eadfa27b2","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.6.0-rc.1_1787809540855_0.798234788687487","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@akira-tl/forgerelay","version":"0.6.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.6.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"7f01942deffb0213b5da57bbe540fe968771e158","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.6.0.tgz","fileCount":446,"integrity":"sha512-aKSMmRq4zDlB3TLC3VTHIiTOl+im23BZfXIZJDMuFEgCu2CdLqcKtf66eF+56ZMm0Vyf8R57Tk2unb/UcOL1Yw==","signatures":[{"sig":"MEUCIQCz7mVe0w1Gs6bzjp5HGZJTH/cFoaf7omsOjFvgRsnRkQIgPooHQPcCJ2MKgRlk2zItKwrsFHEuRMYb6vtR7FNFMsU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11649950},"main":"dist/server.js","type":"module","engines":{"node":">=22.19 <27"},"gitHead":"a93e4d82391001f65808fba0de786be7681f0b79","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.6.0_1787818610332_0.768515774449922","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@akira-tl/forgerelay","version":"0.6.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.6.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"3265b348b55915faabeb821a8ac5ba23a66a1c3b","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.6.1.tgz","fileCount":452,"integrity":"sha512-c+6BZ4lTIzcB9StulxElX0aO/6gB1nMDvCHQPVSJfe+ovL1A6x2oVLgq8/t8IfiZKYVlVvA8ieTNQs1JTFyWyA==","signatures":[{"sig":"MEQCICf6TaguMuc/wZWB+3o42+xx6KTnb1QJ2lMAqWMKi9jNAiAEmJGWJekTLPcNywzhmrLqtOxY/4mY5do8C5s5bEOwWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11721956},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.6.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.6.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-c+6BZ4lTIzcB9StulxElX0aO/6gB1nMDvCHQPVSJfe+ovL1A6x2oVLgq8/t8IfiZKYVlVvA8ieTNQs1JTFyWyA==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.6.1_1787923326371_0.6596828505744334","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@akira-tl/forgerelay","version":"0.6.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.6.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"98cdd6a44793ca26d41008c8cc1124d1a2ee1910","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.6.2.tgz","fileCount":454,"integrity":"sha512-gvviFAMApY7dSTtVmPXCkCMcx3Fhu2KdXmgUGmvCftW1S1kasczZ9aAGTgyK3/7hJtazWcPHMlQqJ8qDvjXcgg==","signatures":[{"sig":"MEYCIQCpugSVTJ7qkgbl79+NjJuJ3Rr6DDnbta8/TNL/xGzNtwIhAIrB+yDNDlMSEqSvoGChTokmBQU+nsoug28NgQ8VezQp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11779047},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.6.2.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.6.2.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-gvviFAMApY7dSTtVmPXCkCMcx3Fhu2KdXmgUGmvCftW1S1kasczZ9aAGTgyK3/7hJtazWcPHMlQqJ8qDvjXcgg==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.6.2_1787971754339_0.0012258981236572541","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@akira-tl/forgerelay","version":"0.7.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.7.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"2a3e1e5daa4cf59fd682fae0edde34506da6656a","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.7.1.tgz","fileCount":467,"integrity":"sha512-/7JCd63a04/eR4zu/rG5ChQXDBqcH1+3wcsRVt+o3WtJ0FGo5SKloiYfBPLVqHBtncinHthkeG/BvwnMFqZWhQ==","signatures":[{"sig":"MEUCIHjhpkJBqczPgmkLeKCEPa4UC497OcdoKeCMOqDnBqtnAiEA/hJqDt+GE1H3XyvQNyo40zxSYWS0TGbP8MeNkOTKHrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11817417},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.7.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.7.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-/7JCd63a04/eR4zu/rG5ChQXDBqcH1+3wcsRVt+o3WtJ0FGo5SKloiYfBPLVqHBtncinHthkeG/BvwnMFqZWhQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.7.1_1788068798209_0.2213680774388962","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@akira-tl/forgerelay","version":"0.7.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.7.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"fa832929e71c4924b696f2290e1958a1f22a79f2","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.7.2.tgz","fileCount":467,"integrity":"sha512-BxCeeLBX+VN/1BmsiULXORBsvROZPS8Y7Pi4G1DNlFuTUQw9F9O2hK5fudn59RZY0x7LjSTy+vB4Ny6f96xlEw==","signatures":[{"sig":"MEUCIQDxyolZTIxQg59GRpmwyoKBMnsaNGiNTBxn5nXNlNyDJgIgYsu5egi09nyxkjjEanS2hKVfsQMhvZ35AbFuNbMAdvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11824675},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.7.2.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.7.2.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-BxCeeLBX+VN/1BmsiULXORBsvROZPS8Y7Pi4G1DNlFuTUQw9F9O2hK5fudn59RZY0x7LjSTy+vB4Ny6f96xlEw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.7.2_1788069589710_0.20047473326689325","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@akira-tl/forgerelay","version":"0.7.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.7.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"280cccc9a644a4ad88a255ec79585d38a588952c","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.7.4.tgz","fileCount":467,"integrity":"sha512-XF3QbWQtDG9NI7NBx/DfiUJKEmDPY/fLMseuQnzHY+pLQcMZfHaxlb1AtKw1vQiteZZYX7SZacUPji2BEEjIZA==","signatures":[{"sig":"MEUCIGpECFSVo4BOS2nPIMRVsD18aBU+to+rn69ja+5dAWw3AiEAwaBPnMhHoxAmLOzxro2eCEu6nMpD7vnMdnFlyE7lF1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11831258},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.7.4.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.7.4.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-XF3QbWQtDG9NI7NBx/DfiUJKEmDPY/fLMseuQnzHY+pLQcMZfHaxlb1AtKw1vQiteZZYX7SZacUPji2BEEjIZA==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.7.4_1788074470698_0.2695000107275054","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@akira-tl/forgerelay","version":"0.8.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"5a901d3705fa1d85bbf09f9e40787edf6ea2184d","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.0.tgz","fileCount":467,"integrity":"sha512-wCEvKU1v2pH8atH/CfgmpDBOOGxAae9b8myGt/d/iLrdeUR/81NGvdnBfGtD4Qq3QairDu0Zj3637dHBNazVnQ==","signatures":[{"sig":"MEQCIHqgLfH6p/qBSTFtDG+4TpBWiE+R4AKQzc5nlIxauzVYAiAgaoci1PHBTGjbACbeWRdn+5tSH3CKVHVU83ESz2UlmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11839086},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.0.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.0.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-wCEvKU1v2pH8atH/CfgmpDBOOGxAae9b8myGt/d/iLrdeUR/81NGvdnBfGtD4Qq3QairDu0Zj3637dHBNazVnQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.0_1788089289183_0.13772373030397667","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@akira-tl/forgerelay","version":"0.8.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"91a2ff74c2a9d9ef210986995819739566f15a91","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.1.tgz","fileCount":467,"integrity":"sha512-woxAu4j+ecvwI3nhKV8QDVGHgaya3ZDwWIZA0mYRqg7nxgSD7sPpCXxA7gDzM//C3KaVjZ6jY4IqxlrV2F73Cw==","signatures":[{"sig":"MEYCIQDgFhNjl496eXm0xzqsUjOPzJZ5gweQGwT7nokwcJMtJgIhAOwWjZGgbtEGG+YkCU5/PESAD2Pcj0HLdyzx65r1bkD/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11849018},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-woxAu4j+ecvwI3nhKV8QDVGHgaya3ZDwWIZA0mYRqg7nxgSD7sPpCXxA7gDzM//C3KaVjZ6jY4IqxlrV2F73Cw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.1_1788094825353_0.6397821970715791","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@akira-tl/forgerelay","version":"0.8.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"0a74807344fbb0ddaef234a22ffad107a8fbca33","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.2.tgz","fileCount":467,"integrity":"sha512-Si3LYFIRS/SCzOKnEV9BGxmGJSAgcZvpKSm4lPcilk+6tlhOJQVpDC3Iss8x95Q2DzIFA13wkVbpdWSbw24MEA==","signatures":[{"sig":"MEQCIBonVTd3NDq3IcZ3KzsszYPVq2SOeyHnL9yhVy/0Ozw8AiBBepqG+PiL6uUmFM0oemFisOwt5KXSntV3/bizcFprRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11867712},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.2.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.2.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-Si3LYFIRS/SCzOKnEV9BGxmGJSAgcZvpKSm4lPcilk+6tlhOJQVpDC3Iss8x95Q2DzIFA13wkVbpdWSbw24MEA==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.2_1788135878551_0.5236496239643293","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@akira-tl/forgerelay","version":"0.8.3","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.3","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"7be9eeee3634dd72ac3f44e63eb5d6e9549104cb","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.3.tgz","fileCount":469,"integrity":"sha512-FWIJ2GyTFqLLQsc8RQDN+36IPmUqyYsHhtHEYKn3kyEWrfEhcgo88cACv0R4/ggxt4biuAGh69vTOkPTVUMndw==","signatures":[{"sig":"MEQCIG1NrPtoIZubG2i9zmjKxIvr0JRtu+5jAt7cYZVGCeM7AiATU1utX66M624pPBmkgPr8fpxGjHFNYVJC3LXv68UAQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11901540},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.3.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/workspace-tasks.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.3.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-FWIJ2GyTFqLLQsc8RQDN+36IPmUqyYsHhtHEYKn3kyEWrfEhcgo88cACv0R4/ggxt4biuAGh69vTOkPTVUMndw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.3_1788150503221_0.6754950258646848","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@akira-tl/forgerelay","version":"0.8.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"fcab629c0d1ca0c48dde8ea9f0ea743042e58cc4","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.4.tgz","fileCount":470,"integrity":"sha512-senOL7ho3va713Vb+pYt4FQJGVbc2MpeyKNmJEL1oUQlurKooU92Oo4Nk9yCCqFtqT0p3keLU0N2e7ZIbL5NIQ==","signatures":[{"sig":"MEYCIQCc9zgdrOPoNECtE93+e4aMB0FBNTz32mzMP0eP2tnRSAIhAOWOhjVSDoCknZ25OWNGlNheAPcAmYxiQ6XPX9Eb/Hsh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11932201},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.4.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/workspace-tasks.test.ts && tsx src/workspace-task-reminders.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.4.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-senOL7ho3va713Vb+pYt4FQJGVbc2MpeyKNmJEL1oUQlurKooU92Oo4Nk9yCCqFtqT0p3keLU0N2e7ZIbL5NIQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.4_1788164823409_0.005796873643901801","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@akira-tl/forgerelay","version":"0.8.5","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.5","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"cbcec3ebd8d87e6c298f8c4460cc9d36b90b362e","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.5.tgz","fileCount":472,"integrity":"sha512-j0sgVPe4UMbmtAxwXUMzq/flA9NsfQ2Z8gNOTf571jvnFG7I3Gu0jFBViEjz3LmiDV9O/+VNlVkvGyB6mwmKWQ==","signatures":[{"sig":"MEUCIC+YnVliZdvKbIypQjqIQ5Hw6GlbYUmKdyrfLHDc7BsCAiEA7wPtVXq/VlsMCBAe0Re2AQ0Uxlby4CVjPisJnD7hPzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11986734},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.5.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/workspace-tasks.test.ts && tsx src/workspace-task-reminders.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","debug:accept:relay":"node scripts/debug/relay-accept.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.5.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-j0sgVPe4UMbmtAxwXUMzq/flA9NsfQ2Z8gNOTf571jvnFG7I3Gu0jFBViEjz3LmiDV9O/+VNlVkvGyB6mwmKWQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.5_1788236747823_0.4242855090117441","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@akira-tl/forgerelay","version":"0.8.6","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.6","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"3eb6ef4b2eb8c532a347155c3b825f9895f62a92","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.6.tgz","fileCount":478,"integrity":"sha512-mIK7nqdbxqBx8xR0Jfm9rHeMpaTrrITFDA3UM9wP4HUpa4cOJg/ycn1Q47WT1g+wNP/vr+K7BlWcHRo/Afwkjg==","signatures":[{"sig":"MEQCIEC9jyF3ki1KWoimMizTCBT4gYwQTIPf+ocM+prDallVAiBfGnSyla8jtgqysiaBRdnFRPDy21XUC7riSZ7t8aEwqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12052209},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.6.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/workspace-tasks.test.ts && tsx src/workspace-task-reminders.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.6.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-mIK7nqdbxqBx8xR0Jfm9rHeMpaTrrITFDA3UM9wP4HUpa4cOJg/ycn1Q47WT1g+wNP/vr+K7BlWcHRo/Afwkjg==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.6_1788330050676_0.42614297797506295","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@akira-tl/forgerelay","version":"0.8.7","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.7","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"8cea9e7d97d3521a71d1dee250775798218c49c2","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.7.tgz","fileCount":478,"integrity":"sha512-akwcsMh118CJzHy3Bn5/9U8ajjWoctOb2P1ebija8tI32WVY7aQARNqynQP2PTfsAAMWSLy81a8m49VSUZeN8g==","signatures":[{"sig":"MEQCIDfm4wLkDeyZzRtHYnVkEGIkNxoQWtXe02H02Pns+Dg4AiBpb6OWDgCS6Y/PYOglvTnaMeTMFAvo1iQw4r884EbcGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12059065},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.7.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/workspace-tasks.test.ts && tsx src/workspace-task-reminders.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.7.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-akwcsMh118CJzHy3Bn5/9U8ajjWoctOb2P1ebija8tI32WVY7aQARNqynQP2PTfsAAMWSLy81a8m49VSUZeN8g==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.7_1788333731956_0.35608097080307854","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@akira-tl/forgerelay","version":"0.8.8","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.8","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"946db2008b0ff8a1c01f01c7b49220a1e5625f3e","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.8.tgz","fileCount":478,"integrity":"sha512-8y52uGN6vb6MhYdDJNU6t9mEjoYBBYgeLP1PjXmuYxUC7sIPTB+cCcb0h5AqYJ9+DY6e7hJQvFTD+vNYZ4rSjw==","signatures":[{"sig":"MEUCIAhnqr6VGkNJRYahocj3Pa8dh7v1YA1K2O/qen2b/wO5AiEAnCN7V40rv1AqCWm38Ddz7rx/phk6ULfk8pvVNo2WjjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12063567},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.8.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/oauth/router.test.ts && tsx src/remote-auth-cli.test.ts && tsx src/remote-ssh-auth-cli.test.ts && tsx src/remote-workspace-relay.test.ts && tsx src/remote-workspace-relay-process.test.ts && tsx src/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/logger.test.ts && tsx src/proxy-trust.test.ts && tsx src/mcp-app-template.test.ts && tsx src/hooks.test.ts && tsx src/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/workspace-lifecycle-app.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/roots.test.ts && tsx src/file-mutations.test.ts && tsx src/operations/edit-preflight.test.ts && tsx src/skills.test.ts && tsx src/db/migrations.test.ts && tsx src/workspace-store.test.ts && tsx src/workspace-tasks.test.ts && tsx src/workspace-task-reminders.test.ts && tsx src/activity/audit-store.test.ts && tsx src/activity/bash-output-store.test.ts && tsx src/activity/lifecycle.test.ts && tsx src/activity/query-service.test.ts && tsx src/operations/core-operation-executor.test.ts && tsx src/operations/bulk-mutation.test.ts && tsx src/operations/batch/scheduler.test.ts && tsx src/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp-interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.8.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-8y52uGN6vb6MhYdDJNU6t9mEjoYBBYgeLP1PjXmuYxUC7sIPTB+cCcb0h5AqYJ9+DY6e7hJQvFTD+vNYZ4rSjw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^12.10.0","vscode-jsonrpc":"^9.0.1","@opencode-ai/sdk":"^1.17.13","@openai/codex-sdk":"^0.142.5","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@anthropic-ai/claude-agent-sdk":"^0.3.200","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2","@earendil-works/pi-coding-agent":"^0.80.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.8_1788343383281_0.6865557650750702","host":"s3://npm-registry-packages-npm-production"}},"0.8.9":{"name":"@akira-tl/forgerelay","version":"0.8.9","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.9","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"3116beea74bdadaa68286d0caf46a2ab82c453eb","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.9.tgz","fileCount":506,"integrity":"sha512-1wr++KL+txW7cT990SmNgM3OSzWtGhjfrX0tvl7R3Jl3kfOHqbYa6Fns30zXBFjapKKl9q4q6v2uPFwQ+VvVUw==","signatures":[{"sig":"MEYCIQCHHzIYnIewm7I51npE47uVxguaen1lLTtGKRSbut3q+AIhAN/uwjGdhC4X1Qek/sbB1kTIvFdwGcl5I43lVvH0xLDw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12108585},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.9.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/runtime/config/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.9.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-1wr++KL+txW7cT990SmNgM3OSzWtGhjfrX0tvl7R3Jl3kfOHqbYa6Fns30zXBFjapKKl9q4q6v2uPFwQ+VvVUw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.9_1788412277528_0.39906474074403797","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"@akira-tl/forgerelay","version":"0.8.10","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.8.10","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"993bbde1f5501d0a2b6f27f306f3222ce66e1228","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.8.10.tgz","fileCount":510,"integrity":"sha512-7ZKI8PWpvElgv4I6jRDzmON+LlcIcT5dE6BrZs5SXy+HcqnkGjFgHM0lkb5ppmh2bi0iQztvZmbcVHcHp6BUnw==","signatures":[{"sig":"MEYCIQCmsxNMAaOa+pBHt854GqjLHSpaOyVHcsMBogudKELuBwIhAO9YemJt12qoIMq5nCbCF0vWQi9l6CZwsD/W8VbxZQlJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICRUF2t8sgj/CbNkjODu4LLp46UlfI4Hy/MUE4/o1q9mAiEAq/siwa+4DBclzIvSM+IdR/kzfy0iVm7kfYj/e+Ce+YI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.8.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12163413},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.10.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/runtime/config/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.8.10.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-7ZKI8PWpvElgv4I6jRDzmON+LlcIcT5dE6BrZs5SXy+HcqnkGjFgHM0lkb5ppmh2bi0iQztvZmbcVHcHp6BUnw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.8.10_1788455298022_0.22136707349785545","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@akira-tl/forgerelay","version":"0.9.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.9.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"a5414508602a6af03b196a33b6cb7c0c38da57a1","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.9.0.tgz","fileCount":511,"integrity":"sha512-sIrFivrqC9HxRiNZIJxAiS56XUmx0xIMTuEgE0627ozjKsmSEymwneFYJbkRNvhsqaF3CgPOdmzXmvawdd2wOQ==","signatures":[{"sig":"MEUCIAEnR00mHTOh5H96Q0wG9Z1i/T1NjMUunSB6YcXRtgoGAiEAgGqenneEptp1vOuLuz+cI9GM07l4Uja6tGqn8aT4+vU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZuL5oAyP7R4JS4ONeoEhAFA0/FAhTk97xl44uyfC3/gIgZgT9BjogfctMjUoloHHHxepehfMlMwJ6a8P+bRUZRRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12177393},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.0.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/runtime/config/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.0.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-sIrFivrqC9HxRiNZIJxAiS56XUmx0xIMTuEgE0627ozjKsmSEymwneFYJbkRNvhsqaF3CgPOdmzXmvawdd2wOQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.9.0_1788496702207_0.6661966825888839","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@akira-tl/forgerelay","version":"0.9.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.9.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"ef74164ff98e7e6a5548d9cad4ff9f393f35a186","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.9.1.tgz","fileCount":511,"integrity":"sha512-Uu9BEE7HIADi+zADPrRc/3U5uzlaGYuq5/9Q8R18R2WkEZDRZl61ibQoCPYDqIZj9imuM1JpjGCdvxRW6Sa8Ng==","signatures":[{"sig":"MEQCIC7ucATCWZAc5CPJA8CLUYzc5Sy9uAcRIdH30OUbcZ0sAiBjZYbGUtS1O24YSIgCWH/6nGlZmTO18CLl9B+mfgVKUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDIoYOshKWTXSRjaqHE3xOS4GCQx/2ujGoi4qT9ka6eZwIgCy4MzybXUpJcjtgRSeXqB0ygLfkdPlbO7uwyI+5lZC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12207616},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/runtime/config/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-Uu9BEE7HIADi+zADPrRc/3U5uzlaGYuq5/9Q8R18R2WkEZDRZl61ibQoCPYDqIZj9imuM1JpjGCdvxRW6Sa8Ng==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.9.1_1788511854386_0.2927468022571602","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@akira-tl/forgerelay","version":"0.9.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.9.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"fcb9fc610b6884d09681fb5b6e25d773e918a7b9","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.9.2.tgz","fileCount":514,"integrity":"sha512-p0UkKGrUXQ6XjISwjfpYoEQRB7mmqH46RbT/tMKJoLRaFHTyFjg7vBRGjao88011u4zv//yFGBCTbqd4iM8QkA==","signatures":[{"sig":"MEQCIAhyVk2Hk+GkeU0Xtt1ByJ18ZT2lGtJUdmbk+o6iygO0AiBONQRgOsMRPyVk3blDjcoTxAT1ru4yde4loiw1Lxn21A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDoDGW8MhBvcxRZCD1fcckE8bxLa7bpt5GJIHPmpCs4EgIhANgJJyROFTeVl9uWuB8TpZ9B54Hd9np9C3PYIpsIEPog","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12231450},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.2.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.2.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-p0UkKGrUXQ6XjISwjfpYoEQRB7mmqH46RbT/tMKJoLRaFHTyFjg7vBRGjao88011u4zv//yFGBCTbqd4iM8QkA==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.9.2_1788515841561_0.9524645457879155","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@akira-tl/forgerelay","version":"0.9.3","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.9.3","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"9dc87e2936b55e23a6a54058a357a43bf7d30ff9","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.9.3.tgz","fileCount":514,"integrity":"sha512-lWNvdGpTOrc9i9cZiizqExaIxwQ/9PFzfEqTZ50WQuQ6nWvXwOX6HqwO/+EPHk8N6ZGfV/H2i3H0Wm8tCMMpWg==","signatures":[{"sig":"MEUCIQDdOB0oDSPRcrnFn2RdOzLrsXk7CDikZXtBcUAbzsWozwIgRDZ4Teqz+tibyQbDLT7EWub+RIbnMf8ce1vA4PSoTqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD2U53cdcjG6Dytnn3UTc3WTtDYrxaYOyBA4pwIAWZ+ogIhAO69EgErx4HNOOyVGOJBfIapR2OEc1RXnZ9QyJ2L//ot","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12240652},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.3.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.3.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-lWNvdGpTOrc9i9cZiizqExaIxwQ/9PFzfEqTZ50WQuQ6nWvXwOX6HqwO/+EPHk8N6ZGfV/H2i3H0Wm8tCMMpWg==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.9.3_1788524157023_0.3959267623633671","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@akira-tl/forgerelay","version":"0.9.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.9.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"a8f50855dfe751104a4ced94b96ce26549e1d989","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.9.4.tgz","fileCount":518,"integrity":"sha512-+tOORHJhGevShAcfeWOmM5jAmbzBSNZV4loXchRLb7CCcQW2hcTv3jQ2woNBSo51QMzS9JKZ3vGb4Ig/HxQ1Nw==","signatures":[{"sig":"MEUCIFuYYjCGwNP9GGb9xVNpXUV85MJrJYJFdOYthXBhNl13AiEA/wxVq/E/2ww58zBh1JaDS+1ZgZUv1rg9qI6PTkwKiIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDhOl36QCcYiSAgyLmSitNWRv7NeRPrhjEhZWvvy5axoQIhAI54xQl6lDbUYLurUYTyYibPxZchUK1JqDwI26kEQbfx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12307349},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.4.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.9.4.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-+tOORHJhGevShAcfeWOmM5jAmbzBSNZV4loXchRLb7CCcQW2hcTv3jQ2woNBSo51QMzS9JKZ3vGb4Ig/HxQ1Nw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.9.4_1788568706112_0.36378443577265474","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@akira-tl/forgerelay","version":"0.10.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.10.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"572ad483b85335851d3cce3fa0496dbb87a9a095","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.10.0.tgz","fileCount":522,"integrity":"sha512-DkIigdE5tTSv/eRNvatjg0DttF+rfe2jjBMtc1esjtrbbaBFpG+LNweOlIRaGFbBs6I5S8EyxPD6dnQS3VNp2A==","signatures":[{"sig":"MEQCIFdu4jxlumWlqOaqvaPyhk8VnkK2p2KVLwUW63fO10sfAiApnY0paIq6mOvQwtFyZQ3dnHOzBy5QTRNv4+sZHUEVTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH3z9vUqIPbZxYc/4huyy/UsrjKL+mOhEK6U9jPPYdNnAiAZdHie6ks4UBKnasbxaru+6bKQYiqSVGgEZ+CneYcO7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12350613},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.0.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.0.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-DkIigdE5tTSv/eRNvatjg0DttF+rfe2jjBMtc1esjtrbbaBFpG+LNweOlIRaGFbBs6I5S8EyxPD6dnQS3VNp2A==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.10.0_1788616692656_0.6118941927103516","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@akira-tl/forgerelay","version":"0.10.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.10.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"959abd84468ecd8d2f64318c134e522b93ac127d","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.10.1.tgz","fileCount":524,"integrity":"sha512-vBmdl8aVflOs3n6NkRb12wyN6CMjG4Yzu+VSHVKRhxt7MWz9mSWSyPPZiFdKOT+MVXJVVvuwoGDQ3PdH3orcMA==","signatures":[{"sig":"MEYCIQCmjkD7aUEryNW46kuIYIMaggaGs9+xV5TJdfDHSsK3dgIhAIZVMTUA7ihZ+oSvcYbb2zzARb3VMlQOb/WbIYt5+Hq1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHxcuTIEE4f+jdPiDOApTH5zoDfd6H8SGVq1bMnOIr65AiEAmzb1i0vBSRFCGduuwv4S+iPW/HoiOE1Nz34uH12gTD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12368122},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-vBmdl8aVflOs3n6NkRb12wyN6CMjG4Yzu+VSHVKRhxt7MWz9mSWSyPPZiFdKOT+MVXJVVvuwoGDQ3PdH3orcMA==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.10.1_1788620697565_0.01193302688997","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"@akira-tl/forgerelay","version":"0.10.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.10.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"f304c5db7a1a92ef5fcec03ff4408b2940855acc","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.10.2.tgz","fileCount":525,"integrity":"sha512-PY1SBgQVYSaOA0QTtrGCRuUkqPiXZ5zp8+bdT4efvO/uXJovd7QDc4CQaRwwNgymLfB7kT94ooHCpSQrpaEvkg==","signatures":[{"sig":"MEQCIEdBLXdYZgZzjmXpnV+usxRIcXflYfvAI15CbfpRotCvAiAwVWy5gaYUjU8mL/nBfTdpml4b3Bni0mJl1EBmlFnRcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAcS/g9SrlafEwQfCNoHAL1Ry1+WJgJKcmbKD7ZYg/0qAiBSUrh659LSvQnhSHW2Ze2n381781YmZr0VNnq6dkAPbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12396104},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.2.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.2.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-PY1SBgQVYSaOA0QTtrGCRuUkqPiXZ5zp8+bdT4efvO/uXJovd7QDc4CQaRwwNgymLfB7kT94ooHCpSQrpaEvkg==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.10.2_1788666215719_0.6160704883071133","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"@akira-tl/forgerelay","version":"0.10.3","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.10.3","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"cc4b7d457862972ae88dbab50f07c3a27de0b118","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.10.3.tgz","fileCount":526,"integrity":"sha512-FmTF1lYXL6Tx58N/Jqv2xGCB69bIpcQpwaXOyskwpRTviq3rk+ehooOEMhIWwxB8Me0joqiNmNdSkPJcLFIuuA==","signatures":[{"sig":"MEQCIFZYsD1cNmvJ7nfyWf+3mDMmzjYXgqmn7TU/luVHt4bkAiAGLO3p8qcQkASmyQxpBfqKZ/LvLmdrWcgqDw3w3B8l0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH/lweP5kjJREQ2USAtdmcR2XsDpNfe0f0k36H1No4qoAiEAyvGsS+rDlEcIYU6296dOwE4/0WUIHr6cspgZ1c66vlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12408280},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.3.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.3.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-FmTF1lYXL6Tx58N/Jqv2xGCB69bIpcQpwaXOyskwpRTviq3rk+ehooOEMhIWwxB8Me0joqiNmNdSkPJcLFIuuA==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.10.3_1788679999666_0.13931576850521354","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"@akira-tl/forgerelay","version":"0.10.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.10.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"82a185019a1a1b94d59016614a6296cb1725fd51","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.10.4.tgz","fileCount":527,"integrity":"sha512-U7Hr+uqeqOnRDYxsMLHsaLlhNGUfvGd3+K603AGPjV1BiJI1r7TEEeRapNAnKDIIko6MMoWFk2rXYFUUkTsTDg==","signatures":[{"sig":"MEUCIQD52Xnu3U9L9FnGRqOdF3FAX1qja9Ip2RnU/mg1ljPh+wIgNL/5yy8wJZTEj+pwDYcc//b5jdtayi14Nda0b72cqv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHqJ7eQXgT7cI25UDVMbaLGHE6lCnTbkoFUmhUonVywOAiEA1z6UYOJ9lle5ITTgqns410MDTyj07P8STsrDoraie+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.10.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12431012},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.4.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.4.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-U7Hr+uqeqOnRDYxsMLHsaLlhNGUfvGd3+K603AGPjV1BiJI1r7TEEeRapNAnKDIIko6MMoWFk2rXYFUUkTsTDg==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.10.4_1788696202704_0.6577316338695172","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"@akira-tl/forgerelay","version":"0.10.5","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@0.10.5","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"cafcd281d8b50f7368c9f72c67af57cb095301a1","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-0.10.5.tgz","fileCount":527,"integrity":"sha512-S7PFt+sMPlIGN6D5Sp7M1mSw5G1E7aWLEe3ncC0Xg/2o0gBYb2RDn7Sqd4qbSq99xEBx4U7ctpBbvYWR/9KPjQ==","signatures":[{"sig":"MEYCIQD6NEut652tGkPs8w2ldvyz/jo2xiG3nV4XvYuOnz1FaAIhAOpchREFXn6uMaHDtb/DN1OhSKc4XDaoaIUKm7hUj7qe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDvbUQhZfPq+ZaMpKqdx/SQyIGsbziLsSk7thjYCA3jqQIgMEQpQK1WVEMqe02HNcONKBBVSJet30F4TVROAGyY4DA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@0.10.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12430736},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.5.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-0.10.5.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-S7PFt+sMPlIGN6D5Sp7M1mSw5G1E7aWLEe3ncC0Xg/2o0gBYb2RDn7Sqd4qbSq99xEBx4U7ctpBbvYWR/9KPjQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_0.10.5_1788704240585_0.4333592811410729","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@akira-tl/forgerelay","version":"1.0.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.0.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"6039e08b6e7f7a5231ab57e797e3f829185b970b","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.0.0.tgz","fileCount":527,"integrity":"sha512-24XLrF5mS8Nrih69ncxnzT9Ll8pTcBzEqDH0AYKjec+UGiRGP1/P/P4yE9HxmxGw1pwhXFRJksoXkC3q1btzQQ==","signatures":[{"sig":"MEQCIF3PajqNrKFtriVnhzo25Irv7njxcu/RcIwD+46CTBU/AiA+FtBFBZrc0qOTNEUQ12MsVCwNjKWBjSx+SpLVAr1jcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDs3BU+u4lOL5rB7TjAZTJb6BZdA0i3MTCWk38AnHMpDAiB3JFNW3VsQkA59mEMx0xSURyiECQreAc0diJJ/eF7KwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12424479},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.0.0.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.0.0.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-24XLrF5mS8Nrih69ncxnzT9Ll8pTcBzEqDH0AYKjec+UGiRGP1/P/P4yE9HxmxGw1pwhXFRJksoXkC3q1btzQQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.0.0_1788742802574_0.6653390863375319","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@akira-tl/forgerelay","version":"1.0.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.0.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"a71a6eb9437377dca675376228bf4e0c267c2971","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.0.1.tgz","fileCount":527,"integrity":"sha512-Ov0lPzfq6E2Xs/ve9NDrhYgRMVbAJODLUnCDU6hHD3F3QyEGkeC/MNQB8Y1VsmNpKMIj2gYu3tD7zW18KvTAMw==","signatures":[{"sig":"MEUCIFdHrZ9RQDPqOgKWcsbiRKR0jaRKzhZf36oZYEM4uSobAiEA8R0T5K3em8O+RQ7PO+JrtP3KuQenOIGkz6rkvYQQtFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDPVwYOcOFNitaAtpcQ2UWryVwndEhOTwilSz9D0OeNGAIgAPE5AR6gSGlpwKALrD9aOVu5/uwNW25PhzSISpWxcus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12428020},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.0.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.0.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-Ov0lPzfq6E2Xs/ve9NDrhYgRMVbAJODLUnCDU6hHD3F3QyEGkeC/MNQB8Y1VsmNpKMIj2gYu3tD7zW18KvTAMw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.0.1_1788944208003_0.5468838024488265","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@akira-tl/forgerelay","version":"1.1.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.1.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"a80d00a351591b99f362a0ec47021ed2d0072376","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.1.0.tgz","fileCount":535,"integrity":"sha512-JGD1u/1AkcYhH0TS5kS78vmxYeDtaRE202f3g/spCuGljSO4HOZUtEmXwgK2jORGIuw9QdI+SZJ5NN87rO11lg==","signatures":[{"sig":"MEYCIQDKUfI/fhgu3RsMDMdtgW5AnmUdJW1yOUmJovJt0mgLXwIhAJAoD/pAUKe2isdnshIb/UpsMZZ30KGa8J58sDghGHe3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICSlrp2WNKfdE5oM3DHkyvnrZ5jZK7w4uTXcz/EvKZJnAiAEQJefI1rUDM4W9qL/ObwLFKWMjtUOEZF8gJDLL8NI/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12495647},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.1.0.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.1.0.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-JGD1u/1AkcYhH0TS5kS78vmxYeDtaRE202f3g/spCuGljSO4HOZUtEmXwgK2jORGIuw9QdI+SZJ5NN87rO11lg==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.1.0_1788969995667_0.43168673920778255","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@akira-tl/forgerelay","version":"1.1.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.1.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"3ca0e9f4ef53c5bc230ac47aaf61f214dee44812","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.1.1.tgz","fileCount":544,"integrity":"sha512-MJNlhjWUAhh+y8XpwyvcUCTFwoI0hvLznPJpn6O1P9uPDXfSkgnARU9TJs+OI66kZV3WqL/X2OCQUd1DnxPQPQ==","signatures":[{"sig":"MEUCIDXIGjuiABWkaFqoq/FB4PksWjT17m5fo04X6Biu+zTKAiEAxZxnZz0ZU96LONuny8Ou5McIplxC1ew+29x62tbqkao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDp0v8eYmCGkUkDi9b1C3CAx8+RBYNX8O1Ol66PjpGYYwIhAOQwnZfsSf8x4pPU32VM0CPZ1WNIzZCEbOR96mq9EHHu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12495703},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.1.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.1.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-MJNlhjWUAhh+y8XpwyvcUCTFwoI0hvLznPJpn6O1P9uPDXfSkgnARU9TJs+OI66kZV3WqL/X2OCQUd1DnxPQPQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.1.1_1789099331855_0.003176406127874065","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@akira-tl/forgerelay","version":"1.1.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.1.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"7a79031ada67ba496639b476063c89726d5bfb4e","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.1.2.tgz","fileCount":544,"integrity":"sha512-djADXrqTrcTLaRw0X7gDXGk1ZlTeEmc5oPElV3USXMf6DumEjeNozpLUIyoTuNytb1LvCf4H2sIa3Dsh8KWh3w==","signatures":[{"sig":"MEUCIDklkT/rb0AFZ3Ti95eajEN9WCb1nya4qXLx438aEOezAiEAt9q/FQfZIgbHWHKsC4Ud1qwJk/b43OlGl9t4xQVVUjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDNGoG0UeYtT9yhgBRuu69lvUx4LqmfeBrjdGX1QTveaAiB2VNK2Jl6rdtBG4bf/05BCOdPnx2C1WnOZ1u/J732Fag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12497460},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.1.2.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.1.2.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-djADXrqTrcTLaRw0X7gDXGk1ZlTeEmc5oPElV3USXMf6DumEjeNozpLUIyoTuNytb1LvCf4H2sIa3Dsh8KWh3w==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.1.2_1789131182897_0.9899865345650884","host":"s3://npm-registry-packages-npm-production"}},"1.2.0-rc.1":{"name":"@akira-tl/forgerelay","version":"1.2.0-rc.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.2.0-rc.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"6361d48b2c5e984ecbb3ac5cb8720529e8f6023f","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.2.0-rc.1.tgz","fileCount":591,"integrity":"sha512-zAPuvJ63QQ5XSlkGuzO77aVAvl2h94rpwVv3Uuj1PKb7UvV6d8uTebBWs1Z58311knTA1qpaSAWbmULunv5zwA==","signatures":[{"sig":"MEQCIBbcqJIGtnRpAYnWBVJ08AsD7typzo95KxrHYhSrb3jvAiBUOHBeBsEgJjTavuLjsNSmE7O/IQIsKEoF9hrUlDW7nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDd0Ekmr17Wiervlc3Fpw4C+zXkaPiBfADYjlVIE0v2QQIgNInKYFgepxG3C7BuzeF5aDfuq0tdZ5LIpVCCkyL6ITc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.2.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12800657},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.0-rc.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.0-rc.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-zAPuvJ63QQ5XSlkGuzO77aVAvl2h94rpwVv3Uuj1PKb7UvV6d8uTebBWs1Z58311knTA1qpaSAWbmULunv5zwA==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.2.0-rc.1_1789293757337_0.48532472229823886","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@akira-tl/forgerelay","version":"1.2.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.2.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"823ead0dd22374b551af2606ac0e928ab7211032","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.2.0.tgz","fileCount":591,"integrity":"sha512-bSniPxQous9gYuz05mwY6qNzMEVu+Fp4mrW/yc6FHuuauglLyK7uP5V4oZNJM0xR6pqSRUGPxcEPTwuul6nBUw==","signatures":[{"sig":"MEUCIFXi+DrWGjBNpbmjwegDZdcqOL8dGiVOk6o4kQXf+vtQAiEA4+OP27dwTZA2dsPEKg5GSBk4kmv/wIkplVsiUXwBet4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGRqm7w18RKvhr0XATMkzoOsv2U1adEjmLsG57H+F29tAiBDWE5wMxx0aXyn7SgSxRxTZO8hm1u9mERKSgE3kgbpGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12801023},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.0.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.0.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-bSniPxQous9gYuz05mwY6qNzMEVu+Fp4mrW/yc6FHuuauglLyK7uP5V4oZNJM0xR6pqSRUGPxcEPTwuul6nBUw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.2.0_1789297376087_0.5758934743452018","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@akira-tl/forgerelay","version":"1.2.1","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.2.1","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"37c5de8f2724497a5e3a689955d707b3e3a2de2f","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.2.1.tgz","fileCount":591,"integrity":"sha512-d5/EwrZSFEJ0esTf1Yr1CBgomy9EEZS6kwexK8vScmqBmwtH8Bqfd6sOpIUU/vPlgh59dWXauzi/hJRPv5BPDQ==","signatures":[{"sig":"MEUCIQD2Elst+X4jMBLAC9+WpS7GtS2jJUqjDOqdP8fpAeTAkwIge2Irl364zdWiZxMhRj92OH6+JeJgCmtqASgeOnmVqqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCIT3bWrBNORuoLb0H6o3+3T5fiuwFhHyP7vOGtIIxLwwIhAKVLBh80mmB3J+4h03j8iOnM0nrRNyEjyoLt+VBXQ/j/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12804922},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.1.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/workspaces/relay/tests/composite.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-d5/EwrZSFEJ0esTf1Yr1CBgomy9EEZS6kwexK8vScmqBmwtH8Bqfd6sOpIUU/vPlgh59dWXauzi/hJRPv5BPDQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.2.1_1789302820115_0.18891734607318544","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@akira-tl/forgerelay","version":"1.2.2","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.2.2","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"e14c8d5063001f506ef0068c08ecb2c03c34d7a5","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.2.2.tgz","fileCount":591,"integrity":"sha512-Xs9pO7xHrG8oYivsq6x3LzUIxoIkHqUXoqEtBlqSGzHF6x+YgTBtDYcau0oQNmyK5Sg9V53RtKwV3PEX8glMLA==","signatures":[{"sig":"MEQCIDMP6LQSF+gzIi4bRLatDRVTcECj5pZwfzYwSB+tzwiyAiBe6s0RLlUWzl/dCtx5dFrE6AAlWBhK/DQ5MaKay2uupg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBhtwam3RZ+h8J0v55rYR4ANbMjNrxVPqzM9qtrpdqBTAiEAkeIg6UHeOVhllbaTXWCl9pW17xKTiOjKM0KEn7NT6d0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12806433},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.2.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/workspaces/relay/tests/composite.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.2.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-Xs9pO7xHrG8oYivsq6x3LzUIxoIkHqUXoqEtBlqSGzHF6x+YgTBtDYcau0oQNmyK5Sg9V53RtKwV3PEX8glMLA==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.2.2_1789320323137_0.056168277567234304","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@akira-tl/forgerelay","version":"1.2.3","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.2.3","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"f1f04249428f6c3d79828bcfd1746ff38c71ebb0","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.2.3.tgz","fileCount":591,"integrity":"sha512-zgS9UmNuFboQ+LJ3Gz4Qdn8pB1wYbM1eH1equiPNoYVYxCOFOEAvo0RNixlFu1YtpTJ1H6ozlDL6dmrqI8rlzw==","signatures":[{"sig":"MEYCIQD13fvRsfEVZGg7HefXhDyiz3cTxl3CQBRIUFk8WPZK2gIhAMQUX0708drG4EOJgMFv1t5TqAHEdOTc/A6wJpT5oI1W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDoc9y6i+LXepo28FwwtG+JI522l3dp5gdmFGH4CchKLAIgNplRqvvnIkQ5UjSHCbKggl5RHYTR15BjNJ9aBo95nwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12808710},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.3.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/workspaces/relay/tests/composite.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.3.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-zgS9UmNuFboQ+LJ3Gz4Qdn8pB1wYbM1eH1equiPNoYVYxCOFOEAvo0RNixlFu1YtpTJ1H6ozlDL6dmrqI8rlzw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.2.3_1789362298165_0.9801789863242893","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@akira-tl/forgerelay","version":"1.2.4","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.2.4","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"d6d857de9305b8f1ce485f78f471094a973a48f1","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.2.4.tgz","fileCount":594,"integrity":"sha512-TGRbbb3qHENDPDxUXvyR46vd9MgNtE8sE/VXFICdPl1qjIOX78FzXekDQLrdrQ+GYGSj+SF1fpwQmLL70TjlDw==","signatures":[{"sig":"MEQCIDVQFEEJOwPL2j+F/zKkmj4D/sx/bzhdDH3oiCuz++bZAiAo6g3Jz5hCeZccE4XWuiq7k0vQMDpCa2ddECJw+/i8Jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGmkCU54EgRxeMJ7OM5pEGYZzQ7wssxjzYZ8tZkWpOv6AiB7WS3ejqBCSpLgsdR8YDBryjTaxoIsQTIKbzmbOK64+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12825656},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.4.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/workspaces/relay/tests/composite.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs","ci:prepare-windows-shell-runtime":"node scripts/ci/gates/prepare-windows-shell-runtime.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.4.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-TGRbbb3qHENDPDxUXvyR46vd9MgNtE8sE/VXFICdPl1qjIOX78FzXekDQLrdrQ+GYGSj+SF1fpwQmLL70TjlDw==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.2.4_1789463576924_0.4845343723468569","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@akira-tl/forgerelay","version":"1.2.5","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.2.5","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"f89daec1d6ecce45e26645d75941593292e41429","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.2.5.tgz","fileCount":595,"integrity":"sha512-PsxTujg6y/S/HAeosKkdql8uDRLzy8JCkJb7uAXwZj1h7ByyxJTtUNnq25MMEAlDieqYBSyf+6qh2yOCPh9/Yg==","signatures":[{"sig":"MEQCIESaRqUxBZ70GYtb5JQ3jvTtB9Jpmk64ww5bsPVgnDKeAiBIbjY/wZ+hFiX4+koGBZeQDlCVnh6Nh9p3A1BuMhqWYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCxy9pcmrvSolVkyMxYF9tv46mgvKcdlPbLT1r9Ci895gIhAIE3yZOUEM24q+7TkIx5bimOtjCTvghyLwTX+it18Wpv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12828993},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.5.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/workspaces/relay/tests/composite.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs","ci:prepare-windows-shell-runtime":"node scripts/ci/gates/prepare-windows-shell-runtime.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.2.5.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-PsxTujg6y/S/HAeosKkdql8uDRLzy8JCkJb7uAXwZj1h7ByyxJTtUNnq25MMEAlDieqYBSyf+6qh2yOCPh9/Yg==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.2.5_1789567113090_0.9573130242816521","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@akira-tl/forgerelay","version":"1.3.0","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"author":{"name":"Akira-TL"},"license":"MIT","_id":"@akira-tl/forgerelay@1.3.0","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"homepage":"https://github.com/Akira-TL/forgerelay#readme","bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"bin":{"forgerelay":"dist/cli.js"},"dist":{"shasum":"308b5b35914e7a7019a79ea90e0bb08efb45c968","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.3.0.tgz","fileCount":606,"integrity":"sha512-tfLoeEtIxxGdpajkfRGh0kkRVngzJOb037tpIDe2f3IOy+ZsystD7JjxATl6P5QOJhd/dTkTGxl/dFOCI5VcCQ==","signatures":[{"sig":"MEQCIE0mUCqhcJptS/3KWRU7Do6RI9O/tS8n6dH7hy7sW1i3AiABXcX2MdywR0QVc7SVIa+Sr4zAc8jW4ND8MY3ILrcfkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID9idfC3e4hJJaiyft9J7718V6jxUBzJZPMv/2PHINuoAiAn/CEKpAjUMXHuDaON9udlvwgSfGhrXTLfHZF0VnzViQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12906601},"main":"dist/server.js","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.3.0.tgz","engines":{"node":">=22.19 <27"},"scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/workspaces/relay/tests/composite.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/cli/config/general.test.ts && tsx src/cli/config/domains/domain-cli.test.ts && node --test --import tsx src/cli/config/domains/context-cli.test.ts && node --test --import tsx src/cli/config/inspect.test.ts src/cli/config/migrate.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/cli/system/status.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs","ci:prepare-windows-shell-runtime":"node scripts/ci/gates/prepare-windows-shell-runtime.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.3.0.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-tfLoeEtIxxGdpajkfRGh0kkRVngzJOb037tpIDe2f3IOy+ZsystD7JjxATl6P5QOJhd/dTkTGxl/dFOCI5VcCQ==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/forgerelay_1.3.0_1789730111499_0.2192444164980405","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"_id":"@akira-tl/forgerelay@1.3.1","bin":{"forgerelay":"dist/cli.js"},"bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"dist":{"shasum":"0fbf546d705bd9b782daa60ca5b81faba3038d5c","tarball":"https://registry.npmjs.org/@akira-tl/forgerelay/-/forgerelay-1.3.1.tgz","fileCount":606,"integrity":"sha512-JbyAG8N5W2iZifwf5ycW60Inm1KO5WOSsyHjJyzb4YYzVpRvFZSKG9rI0Ut0+G/MasCQmxzDykWE2fyO+tDlUg==","signatures":[{"sig":"MEQCIFCe7oD5c0V8nnrfiBohbqW02Rgp3HmXLbKNkiY2grpEAiAjo7Kci+mIn/uflVP6DOtJT+lqw7qv7yNIn4OkVmPDBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDYBFE2gn3tCzo1ZzRIri4f5e4tqby43P9uO+l87Of87gIgU8e4kuvnTV+Zwd42SUEZvgBIfbkDL2C4ihikEXBEdg4="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@akira-tl%2fforgerelay@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12907399},"main":"dist/server.js","name":"@akira-tl/forgerelay","type":"module","_from":"file:/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.3.1.tgz","author":{"name":"Akira-TL"},"engines":{"node":">=22.19 <27"},"license":"MIT","scripts":{"dev":"node scripts/debug/serve.mjs","test":"node --test scripts/debug/runtime.test.mjs scripts/config/schema-text.test.mjs scripts/release-proof.test.mjs scripts/release/release-gate.test.mjs scripts/release/push-ready.test.mjs scripts/release/release-version.test.mjs && tsx src/mcp/oauth/router.test.ts && tsx src/workspaces/relay/auth/remote-auth-cli.test.ts && tsx src/workspaces/relay/auth/remote-ssh-auth-cli.test.ts && tsx src/workspaces/relay/tests/lifecycle.test.ts && tsx src/workspaces/relay/tests/routing.test.ts && tsx src/workspaces/relay/tests/ssh.test.ts && tsx src/workspaces/relay/tests/process.test.ts && tsx src/workspaces/relay/tests/recovery.test.ts && tsx src/workspaces/relay/tests/checkpoint.test.ts && tsx src/workspaces/relay/tests/composite.test.ts && tsx src/runtime/config/definition/schema.test.ts && tsx src/runtime/config/resolution/resolver.test.ts && tsx src/runtime/security/project-execution-trust.test.ts && tsx src/runtime/config/resolution/hooks.test.ts && tsx src/workspaces/state/project-context.test.ts && tsx src/runtime/config/config.test.ts && tsx src/cli/config/general.test.ts && tsx src/cli/config/domains/domain-cli.test.ts && node --test --import tsx src/cli/config/domains/context-cli.test.ts && node --test --import tsx src/cli/config/inspect.test.ts src/cli/config/migrate.test.ts && tsx src/runtime/config/external-mcp-registry.test.ts && tsx src/runtime/config/external-mcp-auth-store.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-oauth.test.ts && tsx src/cli/mcp/status.test.ts && tsx src/cli/mcp/diagnostics.test.ts && tsx src/cli/mcp/external-mcp.test.ts && tsx src/runtime/shell/command-shell-runtime.test.ts && tsx src/runtime/instructions/shell-instructions.test.ts && tsx src/runtime/instructions/powershell-skill.test.ts && tsx src/cli/shell/setup.test.ts && tsx src/lsp/language-server-config.test.ts && tsx src/lsp/runtime/managed-language-servers.test.ts && tsx src/lsp/normalization/hover.test.ts && tsx src/lsp/references.server.test.ts && tsx src/lsp/operations/document-symbols.server.test.ts && tsx src/lsp/operations/workspace-symbols.server.test.ts && tsx src/lsp/operations/diagnostics-push.server.test.ts && tsx src/lsp/operations/diagnostics-pull.server.test.ts && tsx src/lsp/operations/request-hardening.server.test.ts && tsx src/lsp/operations/recovery.server.test.ts && tsx src/lsp/operations/lifecycle.server.test.ts && tsx src/lsp/operations/project-trust.server.test.ts && tsx src/lsp/runtime/semantic-requests.test.ts && tsx src/runtime/logging/logger.test.ts && tsx src/runtime/logging/proxy-trust.test.ts && tsx src/runtime/state/lock/file-lock.test.ts && tsx src/runtime/state/runtime-lease.test.ts && tsx src/cli/system/status.test.ts && tsx src/mcp/panel/mcp-app-template.test.ts && tsx src/mcp/hooks/hooks.test.ts && tsx src/mcp/hooks/hooks-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-transform.test.ts && tsx src/mcp/hooks/external-mcp-transform-trust.test.ts && tsx src/mcp/operations/external-mcp/external-mcp-trust.test.ts && tsx src/mcp/server/core/capability-registry.test.ts && tsx src/mcp/server-instructions.test.ts && tsx src/mcp/request-context.test.ts && tsx src/mcp/request-meta.test.ts && tsx src/mcp/artifacts/incoming-artifacts.test.ts && tsx src/mcp/artifacts/artifact-download.test.ts && tsx src/ui/core/card-types.test.ts && tsx src/ui/activity/model.test.ts && tsx src/ui/activity/detail-card.test.ts && tsx src/ui/review/patch-display.test.ts && tsx src/ui/core/tool-display.test.ts && tsx src/mcp/filesystem/apply-patch.test.ts && tsx src/mcp/process/process-platform.test.ts && tsx src/mcp/process/process-sessions.test.ts && tsx src/mcp/server/transport/mcp-sessions.test.ts && tsx src/mcp/server/transport/server-shutdown.test.ts && tsx src/mcp/server/operations/mutation-diagnostics.test.ts && tsx src/mcp/server/operations/hooks.test.ts && tsx src/subagents/providers/adapters/codex.test.ts && tsx src/subagents/providers/adapters/pi.test.ts && tsx src/subagents/providers/registry.test.ts && tsx src/subagents/providers/availability.test.ts && tsx src/subagents/profiles.test.ts && tsx src/subagents/cli-target.test.ts && tsx src/subagents/sessions/store.test.ts && tsx src/subagents/sessions/manager.test.ts && tsx src/subagents/sessions/project-trust.test.ts && tsx src/subagents/sessions/mcp/capability.server.test.ts && tsx src/subagents/sessions/mcp/continuation.server.test.ts && tsx src/subagents/sessions/mcp/lifecycle.server.test.ts && tsx src/subagents/sessions/mcp/reconciliation.server.test.ts && tsx src/subagents/sessions/mcp/routing.server.test.ts && tsx src/mcp/filesystem/roots.test.ts && tsx src/mcp/filesystem/file-mutations.test.ts && tsx src/mcp/operations/edit-preflight.test.ts && tsx src/workspaces/resources/skills.test.ts && tsx src/runtime/state/db/migrations.test.ts && tsx src/workspaces/state/workspace-store.test.ts && tsx src/workspaces/tasks/workspace-tasks.test.ts && tsx src/workspaces/tasks/workspace-task-reminders.test.ts && tsx src/activity/history/audit-store.test.ts && tsx src/activity/history/bash-output-store.test.ts && tsx src/activity/runtime/lifecycle.test.ts && tsx src/activity/history/query-service.test.ts && tsx src/mcp/operations/core-operation-executor.test.ts && tsx src/mcp/operations/bulk-mutation.test.ts && tsx src/mcp/operations/batch/scheduler.test.ts && tsx src/mcp/operations/batch/executor-policy.test.ts && tsx src/workspaces.test.ts && tsx src/workspaces/conversation-checkout.test.ts && tsx src/workspaces/conversation-worktree.test.ts && tsx src/workspaces/git/worktree-recovery.test.ts && tsx src/mcp/server/workspace/workspace-inventory.test.ts && tsx src/mcp/server/workspace/workspace-recovery.test.ts && tsx src/mcp/server/workspace/workspace-checkpoint.test.ts && tsx src/workspaces/review/review-checkpoints.test.ts && tsx src/lsp/code-intelligence.server.test.ts && npm run build:app && tsx src/mcp/process/server.test.ts && tsx src/mcp/panel/server.test.ts && tsx src/mcp/server/server.test.ts && tsx src/mcp/oauth/oauth-store.test.ts && tsx src/cli/maintenance.test.ts && tsx src/cli/maintenance-prune.test.ts && tsx src/cli/cli.test.ts","build":"npm run config:schema:check && npm run clean && npm run build:app && tsc -p tsconfig.build.json && node scripts/ensure-cli-executable.mjs","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js serve","build:app":"vite build","ci:verify":"node scripts/ci/verify.mjs","typecheck":"tsc -p tsconfig.json --noEmit","cmd:accept":"node scripts/ci/cmd-acceptance.mjs","wiki:check":"node scripts/wiki/sync.mjs check","ci:contract":"node scripts/ci/gates/core-contract.mjs","debug:serve":"node scripts/debug/serve.mjs","lsp:interop":"node scripts/lsp/interop.mjs","postinstall":"node scripts/fix-node-pty-permissions.mjs","pwsh:accept":"node scripts/ci/pwsh-acceptance.mjs","debug:accept":"node scripts/debug/accept.mjs","release:next":"node scripts/release-version.mjs next patch","release:pack":"node scripts/release/pack.mjs","wiki:publish":"node scripts/wiki/sync.mjs publish","ci:test-shard":"node scripts/ci/gates/test-shard.mjs","release:check":"node scripts/release-version.mjs check","release:major":"node scripts/release-version.mjs next major","release:minor":"node scripts/release-version.mjs next minor","release:patch":"node scripts/release-version.mjs next patch","traffic:audit":"node --import tsx scripts/debug/traffic/traffic-audit.mjs","release:parity":"node scripts/release-parity.mjs","release:verify":"npm run release:parity && node scripts/release-proof.mjs write","release:prepare":"node scripts/release-version.mjs prepare","release:publish":"node scripts/release/publish.mjs","ci:platform-tests":"node scripts/ci/gates/platform-tests.mjs","release:tag-check":"node scripts/release-version.mjs tag","architecture:check":"node scripts/ci/architecture.mjs","debug:accept:media":"node scripts/debug/accept/media.mjs","debug:accept:relay":"node scripts/debug/relay-accept.mjs","release:push-ready":"node scripts/release/push-ready.mjs","config:schema:check":"node --import tsx scripts/config/schema.mjs check","debug:accept:modern":"node scripts/debug/accept/modern-http.mjs","powershell51:accept":"node scripts/ci/powershell51-acceptance.mjs","config:product-accept":"node scripts/ci/config-v2-product-acceptance.mjs","config:schema:generate":"node --import tsx scripts/config/schema.mjs write","windows:product-accept":"node scripts/ci/windows-product-acceptance.mjs","ci:prepare-windows-product":"node scripts/ci/gates/prepare-windows-product.mjs","ci:prepare-windows-shell-runtime":"node scripts/ci/gates/prepare-windows-shell-runtime.mjs"},"version":"1.3.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20069084-9bd4-4c15-9e87-df3c7ae77ba2"}},"homepage":"https://github.com/Akira-TL/forgerelay#readme","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"_resolved":"/home/runner/work/forgerelay/forgerelay/.release-package/akira-tl-forgerelay-1.3.1.tgz","overrides":{"ws":"8.21.0","undici":"8.5.0","protobufjs":"7.6.4"},"_integrity":"sha512-JbyAG8N5W2iZifwf5ycW60Inm1KO5WOSsyHjJyzb4YYzVpRvFZSKG9rI0Ut0+G/MasCQmxzDykWE2fyO+tDlUg==","repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"_npmVersion":"11.19.1","description":"Local development control plane for MCP coding agents.","directories":{},"maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.4.3","diff":"^8.0.3","yaml":"^2.9.0","react":"^19.2.6","lucide":"^1.24.0","semver":"^7.8.4","express":"^5.2.1","react-dom":"^19.2.6","drizzle-orm":"^0.45.2","@pierre/diffs":"^1.2.5","@clack/prompts":"^1.5.1","better-sqlite3":"^13.0.3","vscode-jsonrpc":"^9.0.1","express-rate-limit":"8.5.2","@agentclientprotocol/sdk":"^1.1.0","@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/client":"^2.0.0","@modelcontextprotocol/server":"^2.0.0","@modelcontextprotocol/express":"^2.0.0","@modelcontextprotocol/ext-apps":"^2.0.0","vscode-languageserver-protocol":"^3.18.2"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vite":"^8.0.14","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","@types/better-sqlite3":"^7.6.13","@modelcontextprotocol/sdk":"1.29.0"},"optionalDependencies":{"node-pty":"^1.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/forgerelay_1.3.1_1789732428838_0.34859664045917604"}}},"time":{"created":"2026-08-09T04:29:42.649Z","modified":"2026-09-18T11:53:49.317Z","0.1.0":"2026-08-09T04:29:43.006Z","0.1.1":"2026-08-09T08:15:04.402Z","0.2.0":"2026-08-09T14:13:55.098Z","0.2.1":"2026-08-09T14:22:52.674Z","0.2.2":"2026-08-09T14:47:17.672Z","0.2.3":"2026-08-09T16:17:39.693Z","0.2.4":"2026-08-09T18:41:43.868Z","0.2.5":"2026-08-10T04:24:05.722Z","0.2.6":"2026-08-10T05:01:09.256Z","0.3.0":"2026-08-10T07:58:14.283Z","0.3.1":"2026-08-10T10:00:24.333Z","0.3.2":"2026-08-10T10:25:48.174Z","0.3.3":"2026-08-10T10:52:25.677Z","0.3.4":"2026-08-10T11:32:52.678Z","0.3.5":"2026-08-10T14:20:06.387Z","0.3.6":"2026-08-10T15:33:59.944Z","0.3.7":"2026-08-10T16:50:34.387Z","0.4.0":"2026-08-11T02:36:23.837Z","0.4.1":"2026-08-11T02:59:44.846Z","0.4.2":"2026-08-11T03:24:38.426Z","0.4.3":"2026-08-11T04:31:52.452Z","0.4.4":"2026-08-11T05:18:19.339Z","0.4.5":"2026-08-11T07:57:09.044Z","0.4.6":"2026-08-11T09:53:42.131Z","0.4.7":"2026-08-11T16:12:18.137Z","0.5.0":"2026-08-14T14:28:36.313Z","0.5.1":"2026-08-14T15:08:34.119Z","0.5.2":"2026-08-15T02:42:34.601Z","0.5.4":"2026-08-15T06:07:00.865Z","0.5.5":"2026-08-15T08:56:21.392Z","0.5.6":"2026-08-17T06:30:10.702Z","0.6.0-rc.1":"2026-08-27T05:45:41.062Z","0.6.0":"2026-08-27T08:16:50.561Z","0.6.1":"2026-08-28T13:22:06.580Z","0.6.2":"2026-08-29T02:49:14.533Z","0.7.1":"2026-08-30T05:46:38.421Z","0.7.2":"2026-08-30T05:59:49.936Z","0.7.4":"2026-08-30T07:21:10.927Z","0.8.0":"2026-08-30T11:28:09.380Z","0.8.1":"2026-08-30T13:00:25.553Z","0.8.2":"2026-08-31T00:24:38.756Z","0.8.3":"2026-08-31T04:28:23.418Z","0.8.4":"2026-08-31T08:27:03.629Z","0.8.5":"2026-09-01T04:25:48.039Z","0.8.6":"2026-09-02T06:20:50.921Z","0.8.7":"2026-09-02T07:22:12.153Z","0.8.8":"2026-09-02T10:03:03.485Z","0.8.9":"2026-09-03T05:11:17.733Z","0.8.10":"2026-09-03T17:08:18.185Z","0.9.0":"2026-09-04T04:38:22.351Z","0.9.1":"2026-09-04T08:50:54.530Z","0.9.2":"2026-09-04T09:57:21.702Z","0.9.3":"2026-09-04T12:15:57.199Z","0.9.4":"2026-09-05T00:38:26.245Z","0.10.0":"2026-09-05T13:58:12.798Z","0.10.1":"2026-09-05T15:04:57.708Z","0.10.2":"2026-09-06T03:43:35.861Z","0.10.3":"2026-09-06T07:33:19.835Z","0.10.4":"2026-09-06T12:03:22.844Z","0.10.5":"2026-09-06T14:17:20.758Z","1.0.0":"2026-09-07T01:00:02.713Z","1.0.1":"2026-09-09T08:56:48.215Z","1.1.0":"2026-09-09T16:06:35.806Z","1.1.1":"2026-09-11T04:02:12.027Z","1.1.2":"2026-09-11T12:53:03.052Z","1.2.0-rc.1":"2026-09-13T10:02:37.485Z","1.2.0":"2026-09-13T11:02:56.236Z","1.2.1":"2026-09-13T12:33:40.268Z","1.2.2":"2026-09-13T17:25:23.288Z","1.2.3":"2026-09-14T05:04:58.306Z","1.2.4":"2026-09-15T09:12:57.146Z","1.2.5":"2026-09-16T13:58:33.296Z","1.3.0":"2026-09-18T11:15:11.676Z","1.3.1":"2026-09-18T11:53:48.993Z"},"bugs":{"url":"https://github.com/Akira-TL/forgerelay/issues"},"author":{"name":"Akira-TL"},"license":"MIT","homepage":"https://github.com/Akira-TL/forgerelay#readme","keywords":["mcp","chatgpt","coding-agent","developer-tools","git-worktree"],"repository":{"url":"git+https://github.com/Akira-TL/forgerelay.git","type":"git"},"description":"Local development control plane for MCP coding agents.","maintainers":[{"name":"akira-tl","email":"Akira.TL.code@outlook.com"}],"readme":"<p align=\"center\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/assets/forgerelay-lockup-dark.png\">\n    <img src=\"docs/assets/forgerelay-lockup-light.png\" alt=\"ForgeRelay\" width=\"620\">\n  </picture>\n</p>\n\n<p align=\"center\">\n  <strong>Use MCP coding agents on the projects and tools already on your machine.</strong><br>\n  <strong>让 MCP 编程 Agent 直接使用你电脑上现有的项目和开发工具。</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"#中文\">中文</a> · <a href=\"#english\">English</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@akira-tl/forgerelay\"><img src=\"https://img.shields.io/npm/v/%40akira-tl%2Fforgerelay?style=flat-square\" alt=\"npm\"></a>\n  <a href=\"https://github.com/Akira-TL/forgerelay/actions/workflows/release.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/Akira-TL/forgerelay/release.yml?style=flat-square&label=release\" alt=\"Release\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/npm/l/%40akira-tl%2Fforgerelay?style=flat-square\" alt=\"License\"></a>\n</p>\n\n<p align=\"center\">\n  <img src=\"docs/assets/forgerelay-ui-preview.png\" alt=\"ForgeRelay Activity Panel\" width=\"640\">\n</p>\n\n# 中文\n\nForgeRelay 是一个运行在你自己机器上的 MCP Server。它解决的是一个很实际的问题：ChatGPT 这类 Host 会写代码，但默认碰不到你电脑上的项目、Shell 和 Git。\n\n把 ForgeRelay 接上以后，Agent 就能直接在你现有的仓库里改文件、跑测试和构建、执行 Git、调用语言服务器，并继续使用你已经装好的工具链。项目不用搬到另一套工作目录，也不用为了这件事再换一套 Coding Agent。\n\n## 安装\n\n需要 Node.js `>=22.19 <27`、npm 和 Git。\n\n```bash\nnpm install -g @akira-tl/forgerelay\nforgerelay init\nforgerelay serve\n```\n\n不想全局安装也可以：\n\n```bash\nnpx @akira-tl/forgerelay init\nnpx @akira-tl/forgerelay serve\n```\n\n默认 MCP 地址：\n\n```text\nhttp://127.0.0.1:7676/mcp\n```\n\n`forgerelay init` 会让你选择允许访问的项目目录，并生成 Owner password。第一次连接 MCP Host 时，用这个密码批准客户端。\n\n检查当前实际生效的配置和 Shell：\n\n```bash\nforgerelay doctor\nforgerelay config check\nforgerelay config sources\nforgerelay config explain <logical-path>\n```\n\nForgeRelay 的 Config System 统一解析 User、Project 和机器私有 Project Local 配置，优先级是 `runtime > project-local > project > user > built-in`。External MCP、Language Servers、Hooks 和 Subagent Profiles 支持按需刷新与 last-known-good；启动不会自动重写旧配置。需要深入配置、迁移或排查来源时，直接看 [配置指南](https://github.com/Akira-TL/forgerelay/wiki/Configuration)。\n\n### ChatGPT 访问不到 localhost？\n\n如果 Host 运行在云端，需要给 ForgeRelay 一个公网 HTTPS 入口。Cloudflare Tunnel、ngrok、Tailscale Funnel 或普通反向代理都可以。\n\n假设公网地址是：\n\n```text\nhttps://forge.example.com/forgerelay\n```\n\n那么 Host 连接：\n\n```text\nhttps://forge.example.com/forgerelay/mcp\n```\n\n`publicBaseUrl` 填到 `/mcp` 之前。更完整的 OAuth、Tunnel 和反向代理说明见 [快速开始](https://github.com/Akira-TL/forgerelay/wiki/Getting-Started)。\n\n## 用起来是什么样\n\n正常情况下，Agent 打开你现有的 checkout，然后直接在里面工作：\n\n```text\nopen_workspace(path=\"~/project\")\n```\n\n之后它可以读取和修改文件，也可以运行真实命令：\n\n```text\nread(path=\"src/server.ts\")\nbash(command=\"npm test\")\nbash(command=\"git status --short\")\n```\n\nForgeRelay 不会默认为每个任务创建 worktree。只有你明确要求隔离或并行开发时，才使用 managed worktree。Worktree 可以从本地 branch、tag 或历史 commit SHA 启动，同时把最终集成的本地 `targetBranch` 单独记录；不需要为了历史基线先造一个临时 branch。\n\n长命令也不会要求 Agent 高频轮询。命令超过当前等待窗口时会返回稳定的 `processId`，后续继续等待、交互或中断同一个进程即可。\n\n## 主要能力\n\n- 文件、Shell、Git、测试、构建和项目脚本都在你的机器上运行。\n- Linux / macOS 可以用 Bash、zsh、POSIX sh；Windows 原生支持 PowerShell 7、Windows PowerShell 5.1 和 `cmd.exe`。\n- 同一个 checkout 会保留自己的 Workspace 身份。换一次对话，不需要重新创建工作区。\n- `code.intelligence` 可以查 definition、hover、references、symbols 和 diagnostics。\n- Agent 上下文来源走 Config v2：默认 system instructions 是 `~/.agents/AGENTS.md`，项目指令默认只匹配 `AGENTS.md`，Skills 默认按顺序扫描 `~/.agents/skills` 与项目 `./.agents/skills`。项目/User/Project Local/runtime 都可以用 replace semantics 选择其他通用 Agent 目录；ForgeRelay 不再隐式维护 `.forgerelay/skills` 来源。\n- 需要并行开发时可以创建真实 Git worktree；起始 commit 与最终 `targetBranch` 独立，集成仍只接受安全的 fast-forward，不自动制造 merge conflict。\n- 支持 MCP Apps 的 Host 会显示 Workspace Summary / Activity Panel；Workspace 身份色在 Panel 与 pretty log 中保持一致，长路径会在详情区正常换行。\n- Workspace Relay 可以把执行放到另一台 ForgeRelay；Composite Workspace 可以同时协调几个独立环境。\n- `read` 可以直接把 PNG、JPEG、WebP 和 GIF 作为临时 MCP Media content 返回；外部 MCP 通过独立的 global/Project `mcp.json` 热加载到 `mcp.external` Capability，并支持人工 OAuth 认证，而不会自动打开它返回的路径或 URL。\n\nLifecycle Hooks、Workspace Tasks、本地 Subagent、Activity/Audit、Checkpoint 和 Recovery 也已经包含在项目里，但第一次安装时不需要先学这些。需要哪个，再去 [Wiki](https://github.com/Akira-TL/forgerelay/wiki) 查哪个。\n\nForgeRelay 默认直接用现有 checkout。它不会偷偷创建 worktree、复制 Git ignored 文件、安装 Language Server，也不捆绑 Codex、Claude Code、Pi 之类的本地 Coding Agent runtime。\n\n## 安全\n\nForgeRelay 给 Agent 的是真实本机执行权限，不是模拟环境。\n\n文件工具受 Workspace 和 allowed roots 限制；Shell 命令使用启动 ForgeRelay 的本地用户权限执行，**Shell 不是 OS sandbox**。因此只连接你信任的 MCP Host，只开放确实需要的项目目录，并保护好 Owner password。\n\nAllowed roots 是文件系统 / Workspace authority，不等于 Project Trust approval。项目中的可执行配置已经统一接入 Project execution trust seam；当前稳定策略仍是 compatibility-allow，完整的交互式 Project Trust approval UI 尚未实现。\n\nForgeRelay 默认拒绝 elevated / administrator 启动。只有你显式选择高权限运行时才会继续，并会提示系统级修改可能不可逆。\n\n完整边界见 [安全模型](https://github.com/Akira-TL/forgerelay/wiki/Security)。\n\n## 文档\n\n- [快速开始](https://github.com/Akira-TL/forgerelay/wiki/Getting-Started)\n- [配置](https://github.com/Akira-TL/forgerelay/wiki/Configuration)\n- [Managed Worktree](https://github.com/Akira-TL/forgerelay/wiki/Managed-Worktrees)\n- [ChatGPT 与 MCP 工作流](https://github.com/Akira-TL/forgerelay/wiki/ChatGPT-and-MCP-Workflow)\n- [External MCP](https://github.com/Akira-TL/forgerelay/wiki/External-MCP)\n- [安全模型](https://github.com/Akira-TL/forgerelay/wiki/Security)\n- [故障排查](https://github.com/Akira-TL/forgerelay/wiki/Troubleshooting)\n- [完整 Wiki](https://github.com/Akira-TL/forgerelay/wiki)\n\n> [!NOTE]\n> ForgeRelay 是基于 MIT License 的 [Waishnav/devspace](https://github.com/Waishnav/devspace) 独立衍生项目，不是官方 DevSpace Release。原始版权与 MIT License 保留在 [LICENSE](LICENSE)，来源与修改说明见 [NOTICE.md](NOTICE.md)。\n\n---\n\n# English\n\nForgeRelay is a self-hosted MCP server for a practical gap: hosts such as ChatGPT can write code, but they do not normally have access to the projects, shells, and Git repositories on your machine.\n\nOnce ForgeRelay is connected, an Agent can edit the repository you already use, run tests and builds, execute Git, query language servers, and call your existing local toolchain. There is no separate project copy and no requirement to adopt another coding-agent runtime.\n\n## Install\n\nForgeRelay requires Node.js `>=22.19 <27`, npm, and Git.\n\n```bash\nnpm install -g @akira-tl/forgerelay\nforgerelay init\nforgerelay serve\n```\n\nOr run it without a global install:\n\n```bash\nnpx @akira-tl/forgerelay init\nnpx @akira-tl/forgerelay serve\n```\n\nThe default MCP endpoint is:\n\n```text\nhttp://127.0.0.1:7676/mcp\n```\n\n`forgerelay init` asks which project roots may be opened and generates an Owner password. Use that password to approve an MCP client on its first connection.\n\nTo see the configuration and Command Shell Runtime ForgeRelay actually resolved:\n\n```bash\nforgerelay doctor\nforgerelay config check\nforgerelay config sources\nforgerelay config explain <logical-path>\n```\n\nForgeRelay's Config System resolves User, Project, and machine-private Project Local sources using `runtime > project-local > project > user > built-in`. External MCP, Language Servers, Hooks, and Subagent Profiles refresh on demand with last-known-good protection, and startup never rewrites legacy configuration automatically. See [Configuration](https://github.com/Akira-TL/forgerelay/wiki/Configuration) for scopes, migration, schemas, and diagnostics.\n\n### Host cannot reach localhost?\n\nCloud-hosted MCP clients need a public HTTPS route to ForgeRelay. Cloudflare Tunnel, ngrok, Tailscale Funnel, or a normal reverse proxy all work.\n\nFor a public base URL such as:\n\n```text\nhttps://forge.example.com/forgerelay\n```\n\nthe MCP client connects to:\n\n```text\nhttps://forge.example.com/forgerelay/mcp\n```\n\nSet `publicBaseUrl` before the final `/mcp`. See [Getting Started](https://github.com/Akira-TL/forgerelay/wiki/Getting-Started) for OAuth, tunnels, and reverse-proxy setup.\n\n## What using it looks like\n\nFor normal work, an Agent opens the checkout you already have:\n\n```text\nopen_workspace(path=\"~/project\")\n```\n\nIt can then work with files and run real local commands:\n\n```text\nread(path=\"src/server.ts\")\nbash(command=\"npm test\")\nbash(command=\"git status --short\")\n```\n\nForgeRelay does not create a worktree for every task. Managed worktrees are for cases where you explicitly want isolation or parallel development. A worktree may start from a local branch, tag, or historical commit SHA while keeping the eventual local `targetBranch` separate, so a temporary baseline branch is unnecessary.\n\nLong commands do not require tight polling either. Once the current wait window expires, ForgeRelay returns a stable `processId`; later calls wait on, interact with, or interrupt that same process.\n\n## Highlights\n\n- Files, shells, Git, tests, builds, and project scripts run on your machine.\n- Linux/macOS can use Bash, zsh, or POSIX sh. Windows has native PowerShell 7, Windows PowerShell 5.1, and `cmd.exe` support.\n- Reopening the same checkout reuses the same Workspace identity instead of creating another one for every conversation.\n- `code.intelligence` provides definition, hover, references, symbols, and diagnostics.\n- Agent context sources use Config v2: the default system instruction is `~/.agents/AGENTS.md`, project instructions match only `AGENTS.md` by default, and Skills scan `~/.agents/skills` then project `./.agents/skills`. Project/User/Project Local/runtime config can replace those generic sources; ForgeRelay no longer implicitly owns `.forgerelay/skills` sources.\n- Managed worktrees provide real Git isolation when you ask for parallel work. Starting commit and local `targetBranch` are tracked independently, while finalization remains fast-forward-only.\n- MCP Apps-capable hosts can render the Workspace Summary / Activity Panel. Workspace identity colors stay consistent between the panel and pretty logs, and long paths wrap in detail rows instead of hiding their tail.\n- Workspace Relay runs work on another ForgeRelay instance; Composite Workspaces coordinate several independent environments from one Host.\n- `read` can return PNG, JPEG, WebP, and GIF directly as transient MCP Media content; external MCP servers hot-reload from standalone global/Project `mcp.json` files into the `mcp.external` Capability, with explicit human OAuth when needed and no automatic dereferencing of returned paths or URLs.\n\nLifecycle Hooks, Workspace Tasks, local Subagents, Activity/Audit, checkpoints, and recovery are included too. They are optional parts of the workflow; the [Wiki](https://github.com/Akira-TL/forgerelay/wiki) documents them when you need them.\n\nBy default, ForgeRelay works in the checkout you already have. It does not silently create worktrees, copy Git-ignored files, install Language Servers, or bundle local coding runtimes such as Codex, Claude Code, or Pi.\n\n## Security\n\nForgeRelay gives an Agent real local execution capability.\n\nFilesystem tools are constrained by the opened Workspace and configured allowed roots. Shell commands run with the authority of the local user running ForgeRelay; **the shell is not an OS sandbox**. Connect only MCP hosts you trust, expose only project roots you want an Agent to access, and keep the Owner password private.\n\nAllowed roots grant filesystem/Workspace authority; they are not a Project Trust approval. Executable project configuration is routed through a shared Project execution trust seam; the current stable policy remains compatibility-allow, and a full interactive Project Trust approval UI is not implemented yet.\n\nElevated / administrator startup is rejected by default. It only proceeds after explicit opt-in, with a warning that system-level AI-driven changes may be irreversible.\n\nSee the [Security model](https://github.com/Akira-TL/forgerelay/wiki/Security) for the full boundary.\n\n## Documentation\n\n- [Getting Started](https://github.com/Akira-TL/forgerelay/wiki/Getting-Started)\n- [Configuration](https://github.com/Akira-TL/forgerelay/wiki/Configuration)\n- [Managed Worktrees](https://github.com/Akira-TL/forgerelay/wiki/Managed-Worktrees)\n- [ChatGPT and MCP Workflow](https://github.com/Akira-TL/forgerelay/wiki/ChatGPT-and-MCP-Workflow)\n- [External MCP](https://github.com/Akira-TL/forgerelay/wiki/External-MCP)\n- [Security model](https://github.com/Akira-TL/forgerelay/wiki/Security)\n- [Troubleshooting](https://github.com/Akira-TL/forgerelay/wiki/Troubleshooting)\n- [Full Wiki](https://github.com/Akira-TL/forgerelay/wiki)\n\n> [!NOTE]\n> ForgeRelay is an independently maintained derivative of the MIT-licensed [Waishnav/devspace](https://github.com/Waishnav/devspace) project. It is not an official DevSpace release. The original copyright and MIT License remain in [LICENSE](LICENSE); provenance and modification details are documented in [NOTICE.md](NOTICE.md).\n\n## Development\n\n```bash\nnpm install --include=dev\nnpm run dev\nnpm run debug:accept\nnpm run typecheck\nnpm test\nnpm run build\n```\n\n`npm run dev` uses the 7677 debug runtime. Product port 7676 is kept separate from development acceptance.\n\nRelease tags are created only after a developer has manually exercised and explicitly accepted the exact release-ready state. Automated verification and the Linux/macOS/Windows release matrix remain additional gates; they do not replace manual acceptance.\n","readmeFilename":"README.md"}