{"_id":"@archastro/intern-mcp","_rev":"11-7a4d86922b6f0650ad43ee1d9bd5354e","name":"@archastro/intern-mcp","dist-tags":{"latest":"0.4.2"},"versions":{"0.1.0":{"name":"@archastro/intern-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","tryintern","codex","claude"],"_id":"@archastro/intern-mcp@0.1.0","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"3a47f5d0456a70c85c522208a03bd1d917c84444","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.1.0.tgz","fileCount":20,"integrity":"sha512-wbUBDyYau++3IoDQCXbPI/Tez1C6//pD20czRUcNHYAbwGGWwfP+C2kzvvDjsg9k9HTJz9aZS4urAFo+QTp2ug==","signatures":[{"sig":"MEUCIQDwUClla1Wlc9Ynauoud7h/MYseXaCCJVL0g3WVLKChqgIgJrzCpO+3pBY/AM55khkKrCdmL8J6yO1HQCqiVqrwAS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92696},"type":"module","engines":{"node":">=22"},"gitHead":"74fd94785159d4194445c8c59905c7061fe3ff0e","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"calvin.grunewald","email":"calvin@archastro.ai"},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"26.5.0","dependencies":{"zod":"4.4.3","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.1.0_1787096479569_0.4440588502814904","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.1.1":{"name":"@archastro/intern-mcp","version":"0.1.1","keywords":["mcp","model-context-protocol","tryintern","codex","claude"],"_id":"@archastro/intern-mcp@0.1.1","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"8b2e5929340765ae08f076bf43215dae89575c4e","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.1.1.tgz","fileCount":20,"integrity":"sha512-cQDe/LbFJ86sZxCf109XMgbsyjtvvkmx/EZ/wsE34WE2htJUMjTkr2zkOp9PmLd6VQav1jGFZqM9RQK3COuZ7A==","signatures":[{"sig":"MEUCIHk6vf4EHBfdAztRQL5RWhSZ8GeldBviYjuE0s5C7MYgAiEAhO8v0X1ggkfVyo7HYCThHbIyo9uzwgOWhRrERXjxXhE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98382},"type":"module","engines":{"node":">=22"},"gitHead":"0296e6e8ec6b1e1584a12b4b26a25d979f189007","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.1.1_1787168956608_0.5030133836069244","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.1.2":{"name":"@archastro/intern-mcp","version":"0.1.2","keywords":["mcp","model-context-protocol","tryintern","codex","claude"],"_id":"@archastro/intern-mcp@0.1.2","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"836a2d19e4b30f9b3047047cb9f1138b8e1b850e","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.1.2.tgz","fileCount":20,"integrity":"sha512-qBgZbvVXCrTFPqeUc1dVk1iXenI/p4is+7CDgByYTm10eC6W9uAhfe5zHmPYWAt9IbGZnOAr2h4aGbesbbfK8w==","signatures":[{"sig":"MEQCIEOmMvhENuH2JGNhnYUkQMkmiFiKFZKeVlLi9NUt7UkNAiBGmVeFSj0Hwz4zjZYILqtoO+kEvb6ucs9NgvZrsg8nbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100094},"type":"module","engines":{"node":">=22"},"gitHead":"471b517cf4fa5d4e379fcc94fbacb057924c0185","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.1.2_1787173292126_0.11690779135719098","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.2.0":{"name":"@archastro/intern-mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","tryintern","codex","claude","grok","cursor","opencode"],"_id":"@archastro/intern-mcp@0.2.0","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"531891450ba058152116458e5a13684a9f89eb27","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.2.0.tgz","fileCount":22,"integrity":"sha512-4fIIT2hHgCvi3+4ajJQ24xNtmPNYVTDqKU5Xh6t2GHLBU0lkWB+Y8KLhU5VgQGyFefqBhLaw6Hk68JkFfqjPqQ==","signatures":[{"sig":"MEUCIH1A1cwQtAfZIwMvntWVLdgn5C2NkYRdumSm4NGKI795AiEAyR/teJmAzbzcuasvgtUlvZIX8udQvDpHC5H0lObnjeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109879},"type":"module","engines":{"node":">=22"},"gitHead":"5a24bc84b6b580b1645544cd51760d71f8482e86","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.2.0_1787179380661_0.9397329758708697","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.3.0":{"name":"@archastro/intern-mcp","version":"0.3.0","keywords":["mcp","model-context-protocol","tryintern","codex","claude","grok","cursor","opencode"],"_id":"@archastro/intern-mcp@0.3.0","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"b6199152fc3bdc346670fe1f304ae42dd4971fcf","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.3.0.tgz","fileCount":24,"integrity":"sha512-WkmCgGBfmjU+/N8x6Hrw4xf+mduX1E5UlObDPrAtPjFC4Jv9tTjdkSR9v8nzKMzylkXnBXj+41mrLHffpl6LRQ==","signatures":[{"sig":"MEUCIHz3bQ1Rcr27I30p8WDQoxRa19+3tjao+qxIntOim7gJAiEAgGXOyHt+7wL0xHgRdNCciEyN/2KjJah4AKiDOhGGhes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141587},"type":"module","engines":{"node":">=22"},"gitHead":"093f4f066eb98af89c6f725cf10a9e467deb5568","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package && npm run test:sdk","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","test:sdk":"node scripts/sdk-compatibility.mjs","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@archastro/intern-sdk":"0.1.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","playwright-core":"^1.61.1","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.3.0_1787338207017_0.16665095402091823","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.3.1":{"name":"@archastro/intern-mcp","version":"0.3.1","keywords":["mcp","model-context-protocol","tryintern","codex","claude","grok","cursor","opencode"],"_id":"@archastro/intern-mcp@0.3.1","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"c88f02b80aa4bef7ba581bc2375538c752bcd93c","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.3.1.tgz","fileCount":24,"integrity":"sha512-tq71vlX/XKa9lJIGHh24mIzIYgI+HhwSQHI+pJRZTeasoqaZJKYwDq6ZTdUR0+bbQd/kJu9dBx6RQ5EFqetBCw==","signatures":[{"sig":"MEYCIQC/ItoglMtpzA3J6dVzEm/BN2Q2Md3E7UwPEpJU94kgFAIhAPmr2wFdFZpzx7lK3lFhMirx035R9rQKD7tGVSVnoFYa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142899},"type":"module","engines":{"node":">=22"},"gitHead":"225ff3a7102fd5f1840bf7e60859392162d2f8dc","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package && npm run test:sdk","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","test:sdk":"node scripts/sdk-compatibility.mjs","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@archastro/intern-sdk":"0.1.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","playwright-core":"^1.61.1","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.3.1_1787339580520_0.8463069544851232","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.3.2":{"name":"@archastro/intern-mcp","version":"0.3.2","keywords":["mcp","model-context-protocol","tryintern","codex","claude","grok","cursor","opencode"],"_id":"@archastro/intern-mcp@0.3.2","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"c0ac42f224f5cf6b9f3f3be9248a497844fe91af","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.3.2.tgz","fileCount":26,"integrity":"sha512-yV87l+ET02HnzVedmOVvlHZ48Cqh6x7RiDRHmpKfYefVmRrgsO2Wr4VzPGCCpVzu1UPgPqPFT1YZ1xg/wyEVog==","signatures":[{"sig":"MEYCIQDSremDbFoGaxwlsPf5jplMLedkgsoOdLOBbE0JfSnGZAIhANH6lh56m+gOIZp6uy/IuDAYp2/viPljV3UT9ocK89NF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":153709},"type":"module","engines":{"node":">=22"},"gitHead":"ec98764c726ea3beaf01a6a029ef05beeed4b677","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package && npm run test:sdk","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","test:sdk":"node scripts/sdk-compatibility.mjs","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@archastro/intern-sdk":"0.1.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","playwright-core":"^1.61.1","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.3.2_1787529016806_0.28077552452812804","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.4.0":{"name":"@archastro/intern-mcp","version":"0.4.0","keywords":["mcp","model-context-protocol","tryintern","codex","claude","grok","cursor","opencode"],"_id":"@archastro/intern-mcp@0.4.0","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"f0c6cc82aa5c18afb4748f79037900231576cd05","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.4.0.tgz","fileCount":34,"integrity":"sha512-do9E5dhOg//3Ht0Gw+Ia4alQ4ZvWv3A/n1mNcvDKmXCs4Rxs66sMROvUD2YApBFoPHIUjd2aYBXvvHF6J35W4Q==","signatures":[{"sig":"MEUCIQCE3KabThMTmQZDBamzyQpvgfVsmtHjxjoBiAOa5myK7gIga0hw3sJQA2W7060rKF5fqJUNGGiFK4fpO5sIWx19E6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":226719},"type":"module","engines":{"node":">=22"},"gitHead":"d68bac7d8e08a7e71e32b0b5b96fdf3e1de81fd7","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package && npm run test:sdk","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","test:sdk":"node scripts/sdk-compatibility.mjs","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@archastro/intern-sdk":"0.2.1","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","playwright-core":"^1.61.1","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.4.0_1787681656925_0.9098493482154071","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.4.1":{"name":"@archastro/intern-mcp","version":"0.4.1","keywords":["mcp","model-context-protocol","tryintern","codex","claude","grok","cursor","opencode"],"_id":"@archastro/intern-mcp@0.4.1","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"283b29ed5d009deb52e3ea19cb8986974adde332","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.4.1.tgz","fileCount":34,"integrity":"sha512-HQZpKaO+TJuHdNJMZTOSBe2Yx+soDmQbSAi/r02WGPo4vVOM9/mqoaSnUdBxFqKqDWWXevBJ0/3rryxh8E1YMA==","signatures":[{"sig":"MEQCIDa6lEmhA2SEv3C4tj7KrmLiNkY9eYE86gSpL0flfGuWAiB+Jt/o22htWNtGDGyEpqB29nHVKpCWQFy4UG9/sTroRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":228154},"type":"module","engines":{"node":">=22"},"gitHead":"11d357a8c327fd86c320d4a373c2ecd8eba5f575","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package && npm run test:sdk","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","test:sdk":"node scripts/sdk-compatibility.mjs","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@archastro/intern-sdk":"0.2.1","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","playwright-core":"^1.61.1","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.4.1_1787847030513_0.48872189698499335","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."},"0.4.2":{"name":"@archastro/intern-mcp","version":"0.4.2","keywords":["mcp","model-context-protocol","tryintern","codex","claude","grok","cursor","opencode"],"_id":"@archastro/intern-mcp@0.4.2","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"}],"homepage":"https://tryintern.dev","bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"bin":{"intern-mcp":"dist/index.js"},"dist":{"shasum":"9c20e73ae4dbdaad7d9dc690f719b79aab30f3d8","tarball":"https://registry.npmjs.org/@archastro/intern-mcp/-/intern-mcp-0.4.2.tgz","fileCount":34,"integrity":"sha512-O3qZber5ZTR6hSROmH3LQENr8sIzOUUkHRukh8uGRry/t8yPAUQyr67M/+NcrlVK7oiiAw7taBTKT6Nls761rA==","signatures":[{"sig":"MEUCIDn+QVYX1dnDYspxVpYQ0YFalSfcOCQYahyKVdgAy6VhAiEAuLiq1Gx7YZJSEjrcFT2KTTZNokyjq7KOkRwWrFIB+HA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archastro%2fintern-mcp@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":233154},"type":"module","engines":{"node":">=22"},"gitHead":"3e0ea5bdc28be4c20e3e730408f70513e284fd93","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","check":"npm run format:check && npm run lint && npm run build && npm test && npm run test:package && npm run test:sdk","start":"node dist/index.js serve","format":"prettier --write .","prepack":"npm run build","test:sdk":"node scripts/sdk-compatibility.mjs","format:check":"prettier --check .","test:package":"node scripts/package-smoke.mjs","test:harnesses":"node scripts/harness-install-smoke.mjs","check:runtime-contract":"node scripts/runtime-contract.mjs check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3cc501c5-6bc3-4863-9768-67bef324a220"}},"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Local MCP server for building and publishing TryIntern sites","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","@archastro/intern-sdk":"0.2.1","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","eslint":"9.39.2","vitest":"^4.1.8","globals":"16.5.0","prettier":"3.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"^22","playwright-core":"^1.61.1","typescript-eslint":"8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/intern-mcp_0.4.2_1788042556548_0.755926054120353","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Retired. Use @archastro/intern for the CLI (https://github.com/ArchAstro/intern), or connect your agent to https://tryintern.dev/mcp. Existing versions remain available."}},"time":{"created":"2026-08-18T23:41:19.331Z","modified":"2026-09-10T18:31:02.875Z","0.1.0":"2026-08-18T23:41:19.720Z","0.1.1":"2026-08-19T19:49:16.738Z","0.1.2":"2026-08-19T21:01:32.280Z","0.2.0":"2026-08-19T22:43:00.864Z","0.3.0":"2026-08-21T18:50:07.168Z","0.3.1":"2026-08-21T19:13:00.661Z","0.3.2":"2026-08-23T23:50:16.954Z","0.4.0":"2026-08-25T18:14:17.061Z","0.4.1":"2026-08-27T16:10:30.656Z","0.4.2":"2026-08-29T22:29:16.684Z"},"bugs":{"url":"https://github.com/ArchAstro/intern-mcp/issues"},"homepage":"https://tryintern.dev","keywords":["mcp","model-context-protocol","tryintern","codex","claude","grok","cursor","opencode"],"repository":{"url":"git+https://github.com/ArchAstro/intern-mcp.git","type":"git"},"description":"Local MCP server for building and publishing TryIntern sites","maintainers":[{"name":"calvin.grunewald","email":"calvin@archastro.ai"},{"name":"tore-archastro","email":"tore@archastro.ai"},{"name":"vks-archastro","email":"vks@archastro.ai"}],"readme":"# Intern MCP\n\nLocal stdio MCP server for working on Intern-hosted sites through guarded Git checkouts.\n\n## Install in a coding harness\n\nIntern MCP is the public `@archastro/intern-mcp` npm package and requires\nNode.js 22 or newer. Run one command, replacing `codex` with your host when\nneeded:\n\n```sh\nnpx --yes @archastro/intern-mcp@latest setup --host codex\n```\n\nSetup opens your browser to sign in to TryIntern and approve the MCP. It also\nprints the approval URL and one-time code, so the same command works on a\nheadless machine: open the printed URL in any browser and enter the code. After\napproval, setup verifies the TryIntern session, saves the host registration,\nand prints your organization and role.\n\nOAuth credentials live in `~/.config/intern/credentials.json`. The directory\nuses mode `0700`, the file uses mode `0600`, and the record is bound to the\nPlatform issuer and OAuth client that issued it. Intern MCP refreshes the\nshort-lived access token automatically, including when more than one local\nagent starts at the same time. Users do not normally need to sign in again.\n\n### Host commands and next actions\n\n- Codex: run the command above with `setup --host codex`. Start a new Codex task,\n  then ask it to build a site.\n- Claude Code: use `setup --host claude`. Start a new Claude Code session, then\n  ask it to build a site.\n- Grok: use `setup --host grok`. Start a new Grok session, then ask it to build a\n  site.\n- Cursor CLI or the Cursor editor: use `setup --host cursor`. Start a new Cursor\n  session, then ask it to build a site. Both use `~/.cursor/mcp.json`.\n- OpenCode: use `setup --host opencode`. Start a new OpenCode session, then ask\n  it to build a site.\n- Rovo Dev: use `setup --host rovodev`. Start a new Rovo Dev session, then ask it\n  to build a site.\n- Pi: use `setup --host pi`, then run `pi install npm:pi-mcp-adapter`. Start a new\n  Pi session, then ask it to build a site. Pi needs the adapter because its core\n  CLI does not speak MCP.\n\nAdd `--verbose` to a setup command to print redacted request lifecycle\ndiagnostics on stderr. Verbose output includes the method, query-free endpoint,\nstatus, duration, and allowlisted response metadata. It never prints access or\nrefresh tokens, request headers, response bodies, cookies, or the device code.\n\nThe TryIntern Connect page remains on the manual-token flow until the new npm\nrelease passes the public-package release gate. This README documents the\nprepared package behavior; it does not claim that frontend switch is deployed.\n\nThe setup command resolves npm's stable `latest` release and saves a launcher\nthat checks that channel whenever the MCP host starts. The saved launcher uses\n`--prefer-online` to refresh stale package metadata instead of trusting its npx\ncache; the one-time setup command does not expose that runtime policy. To pin a\nreviewed build instead, run setup with `INTERN_MCP_PACKAGE` set to a complete\npackage spec such as `@archastro/intern-mcp@0.1.1`, or to a package tarball.\n\nThe repository is private; the package is public on npm.\n\nMaintainers run the manual **release** workflow from `main` and choose a patch,\nminor, or major bump. It verifies the package, commits the version change on a\nrelease branch, rebase-merges the version-only PR, tags that exact merged commit\nas `vX.Y.Z`, and dispatches `publish.yml`. The publish workflow verifies that\nthe tag and `package.json` agree, publishes through npm Trusted Publishing, and\ncreates the GitHub Release. npm must configure `ArchAstro/intern-mcp`,\n`publish.yml`, and environment `npm-release` as the trusted publisher; no\n`NPM_TOKEN` is used.\n\n## Manual and CI authentication\n\nBrowser approval is the normal setup path. For CI or a deliberately manual\nconfiguration, create a profile-scoped token on the TryIntern Connect page and\neither export it as `INTERN_ACCESS_TOKEN` for `intern-mcp serve`, or opt into\nthe setup prompt:\n\n```sh\nnpx --yes @archastro/intern-mcp@latest setup --host codex --token\n```\n\nThe prompt keeps the token out of shell history and saves the legacy\n`~/.config/intern/access-token` file with mode `0600`. Environment credentials\ntake precedence over stored OAuth credentials. Manual tokens are not placed in\nhost arguments or host configuration.\n\nRevocation blocks new API calls and SSH certificates immediately; an SSH\ncertificate already issued can remain valid until its five-minute expiry.\n\n## Troubleshooting npm registry settings\n\nIf your user npm configuration maps the `@archastro` scope to a private\nregistry, override that setting for this public package. The first override lets\nnpx find setup on public npm; `--registry` saves the same exception in the MCP\nlauncher:\n\n```sh\nnpx --yes --@archastro:registry=https://registry.npmjs.org \\\n  @archastro/intern-mcp@latest setup --host codex \\\n  --registry https://registry.npmjs.org\n```\n\n## Configure the server\n\nThe production TryIntern and Platform origins and public OAuth client are built\nin. `intern-mcp launch` uses the browser-approved profile written by setup.\n`intern-mcp serve` accepts `INTERN_ACCESS_TOKEN` for manual and CI use.\n\nThese optional environment values override the defaults for local testing or custom workspace setup:\n\n- `INTERN_BASE_URL` — Intern frontend/API origin.\n- `INTERN_WORKSPACE_ROOT` — parent directory for `<org>/<site>` checkouts.\n- `INTERN_CONFIG_ROOT` — directory for the access-token profile and SSH material.\n- `INTERN_GIT_SSH_COMMAND` — optional per-process SSH command for development or custom SSH setup.\n- `INTERN_IAP_ID_TOKEN` (or `IAP_ID_TOKEN`) — Google ID token for the IAP-protected production frontend. It is sent through `Proxy-Authorization` while the ArchAstro bearer remains in `Authorization`.\n- `INTERN_SDK_PACKAGE` — development/test override for the SDK package spec. Normal site preparation always resolves `@archastro/intern-sdk@latest` from public npm.\n\nWhen the base URL, workspace root, config root, or Git SSH command is present\nwhile `setup` runs, the installer saves that nonsecret override in the selected\nhost's MCP environment. IAP tokens remain manual/CI-only credentials and are\nnot copied into host configuration by setup.\n\nFor development from this repository, install and build with:\n\n```sh\nnpm ci\nnpm run build\n```\n\nThen configure an MCP host to run:\n\n```text\nnode /absolute/path/to/intern-mcp/dist/index.js serve\n```\n\nFor Codex, the checkout-based equivalent is:\n\n```sh\nINTERN_MCP_PACKAGE=/absolute/path/to/intern-mcp \\\n  INTERN_WORKSPACE_ROOT=/absolute/path/to/Intern \\\n  node /absolute/path/to/intern-mcp/dist/index.js setup --host codex\n```\n\nStart a new Codex task after adding the server. Use `intern_prepare_site` and\nedit the returned absolute path with the coding host's normal filesystem\ntools. The prepare result includes validation against the authenticated Intern\nruntime contract. Preparation contacts public npm with `--prefer-online`,\nresolves `@archastro/intern-sdk@latest`, and writes the exact resolved version\nto `devDependencies` plus `package-lock.json`. It uses `--package-lock-only`,\nso `node_modules` never enters the guarded checkout.\n\n## Run against a local Firstlanding stack\n\nThe backend still lives in Firstlanding. With Aster 0.11.1 or newer, start one\nIntern topology in that worktree and point this repository's launcher at it:\n\n```sh\n# Terminal 1, from the Firstlanding worktree\naster services up intern\n\n# Or run intern-data on this machine\n# aster services up intern-local\n\n# Terminal 2, from this repository\nINTERN_PLATFORM_WORKSPACE=../firstlanding-wt2 scripts/run-local.sh\n```\n\n`INTERN_PLATFORM_WORKSPACE` identifies the exact worktree whose Aster\nsupervisor owns the local ports. The supervisor remains attached while the MCP\nlauncher connects to it.\n\nEach Intern group owns Platform, TryIntern, control, and the Git gateway under\none atomic Aster port allocation. The launcher uses\n`aster --json services ports`; it does not assume the default Platform,\nTryIntern, or Git gateway SSH ports. Both Intern topologies expose the same API\nand Git contract to the MCP; only the control plane's site provider changes.\nFor local Git, the launcher routes `git.intern.dev` SSH traffic to the reported\nloopback gateway port. The launcher requires `INTERN_ACCESS_TOKEN`, builds the\nMCP, and keeps its SSH material and site checkouts under this repository's\nignored `tmp/` directory. Create the token from the local Intern Connect page,\nexport it in the terminal that starts the launcher, and keep it out of shell\nscripts and source control. `INTERN_CONFIG_ROOT` and `INTERN_WORKSPACE_ROOT`\nstill override the default paths.\n\nThe same launcher exposes the standalone commands for manual checks:\n\n```sh\nINTERN_PLATFORM_WORKSPACE=../firstlanding-wt2 scripts/run-local.sh status\n```\n\nAfter edits, call `intern_test_site` before committing. It validates tracked and untracked working-tree files, excludes ignored files, skips tracked files that were deleted on disk, and returns an ephemeral `http://127.0.0.1:<port>` preview URL. When the site has a `build` script, the MCP installs `devDependencies` locally, runs that build, and writes `dist/` into the checkout so it can be committed. Compatible Intern-owned runtime file upgrades are written the same way. The preview host serves the snapshot unchanged behind a loopback proxy, injects the `globalThis.intern` runtime resolver before application modules, and backs `client.me` with an MCP-owned in-memory sandbox. The runtime bootstrap and sandbox never enter the checkout or committed build. Calling the tool again replaces both the snapshot and sandbox. `intern_stop_test` stops them without needing the backend or a current token. Stdio shutdown also stops every preview and removes its snapshot.\n\nSite code that needs the current user installs `@archastro/intern-sdk` as a\n`devDependency`, default-imports `Client`, and uses `new Client().me`. It must\nnot add a local adapter, production adapter, or `globalThis.intern` assignment\nto the repository. Vite bundles the SDK into `dist/`; local and production\nhosts inject their implementations outside those committed bytes.\n\n`intern_prepare_site` also ensures the site's `me` plugin is installed. The\nMCP models plugins as generic installation resources at\n`/api/v1/mcp/sites/:site/plugins/:plugin`: `GET` reads an installation, `PUT`\nidempotently installs it, and `DELETE` removes it. This is the client-side API\nassumption while the Firstlanding MCP route is finalized; plugin-specific\nboolean switches are intentionally not supported.\n\nOnce the local result is correct, commit the change — including `dist/` when the preview wrote it — and call `intern_validate_site`. It checks the exact committed tree: required and protected runtime files, dependencies the backend does not install, committed build output when a build script exists, JavaScript syntax, production-style startup, and an HTTP probe. `intern_publish_site` reruns the same commit validation and refuses invalid or dirty worktrees. The MCP never stages or commits files. The tenant serves the committed tree and does not install packages or build.\n\n`dist/` is the only generated output that belongs in a site commit. Dependency,\ncache, test-output, and framework build directories such as `node_modules/`,\n`.vite/`, `coverage/`, `build/`, and `out/` are local-only and validation rejects\nthem even when Git tracks them.\n\nFor each SSH clone or push, Intern MCP creates or reuses one local Ed25519 key and sends only its public half to Intern. Intern returns a five-minute user certificate plus the pinned `git.tryintern.dev` host key. MCP supplies those files only to that Git process; it never edits global Git config, `~/.ssh/config`, or the user's `known_hosts`. The MCP replaces the current certificate as needed and retains the private key for future short-lived certificates.\n\nThe current runtime contract is deliberately narrow: Intern runs its protected `server.mjs` through `run-site.sh`, supplies `PORT`, and does not install package dependencies on the tenant. `server.mjs` serves `dist/` when `dist/index.html` exists, otherwise the site root, and maps common static types (including `.svg`, `.woff2`, and `.png`). A model can edit HTML, CSS, browser JavaScript, and assets; the MCP runs the local Vite build so those assets can be committed. Runtime launcher changes are rejected because the current Git publish path does not restart the site process.\n\nIn production, `intern-fe` authenticates to private `intern-ctl` gRPC with a Google service-account ID token bound to the control audience and forwards actor fields only after resolving the user at the HTTPS edge. Aster uses an explicit `archastro-dev` override. Git clone and publish use the short-lived SSH user certificates described above. The local launcher overrides that path for Aster's development gateway; an explicit `INTERN_GIT_SSH_COMMAND` still takes precedence.\n\n## Development checks\n\nRun the complete local gate from the repository root:\n\n```sh\nnpm run check\n```\n\nWhen changing the injected SDK protocol, build the sibling SDK and run the\ncross-repository proof:\n\n```sh\nnpm run test:sdk\n```\n\nPass a sibling checkout path only while developing both repositories before\nthe MCP dependency is pinned to a reviewed SDK commit.\n\nIt checks formatting and lint, builds TypeScript, runs the test suite, packs the\nnpm artifact, installs it into a clean temporary consumer,\nlaunches its installed binary over real MCP stdio, and lists its tools. The\nCI also installs the pinned Codex and Claude CLIs and runs\n`npm run test:harnesses`. That proof asks both real harnesses to register the\ntarball in isolated temporary user profiles; Claude must connect successfully.\nThe script never changes the operator's real Codex or Claude configuration.\n\n## Runtime-contract fixture\n\nFirstlanding's `services/go/intern-data/internal/sites/runtime-contract.json`\nowns the backend contract. This repository keeps a byte-for-byte fixture so\nits fail-closed parser, validator, and Git tests exercise the current protected\nruntime. When the backend contract changes, update the two repositories in the\nsame change set:\n\n```sh\nnode scripts/runtime-contract.mjs sync ../firstlanding-wt2\nnpm run check:runtime-contract -- ../firstlanding-wt2\nnpm run check\n```\n\nFirstlanding's canonical `scripts/intern/e2e-local.sh` crosses the live backend\nand this sibling checkout. It is the compatibility proof; the fixture is not a\nsecond source of truth.\n","readmeFilename":"README.md"}