{"_id":"@scopeblind/passport","_rev":"5-491426816b0926696849d5fb72528162","name":"@scopeblind/passport","dist-tags":{"latest":"0.4.3"},"versions":{"0.3.0":{"name":"@scopeblind/passport","version":"0.3.0","keywords":["scopeblind","passport","agent-identity","ed25519","manifest","verifiable-credentials","ai-agent","coach","portable-identity"],"author":{"name":"Tom Farley","email":"tommy@scopeblind.com"},"license":"FSL-1.1-MIT","_id":"@scopeblind/passport@0.3.0","maintainers":[{"name":"tomjwxf","email":"tommy@brassproof.com"}],"homepage":"https://www.scopeblind.com","bugs":{"url":"https://github.com/tomjwxf/scopeblind-gateway/issues"},"dist":{"shasum":"6a12c08c1759dadc83d3107f08fce953e6ff6e94","tarball":"https://registry.npmjs.org/@scopeblind/passport/-/passport-0.3.0.tgz","fileCount":12,"integrity":"sha512-VzEY+13sg7/T5VH5s7WLOWnntAhJy27iOzorsgsNkHR8jDonWCMkb7c37+/ppdU5vrcuZ2ElNS0khBbA3YQqpw==","signatures":[{"sig":"MEUCIG7DkEN0zkAydlgc/iJa9Z+xDg90CCoB7pm+MGRjEWaMAiEA1qAUdweK3WHE9oGQdtHPgZdST5PcsDpvYU988kyq6/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112000},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.mjs","require":"./dist/browser.js"}},"gitHead":"af5482ab181e2ccee3a059211ae3b2fcb67141e2","scripts":{"test":"vitest run","build":"tsup src/index.ts src/browser.ts --format cjs,esm --dts --clean --external @noble/curves --external @noble/hashes","smoke":"vite --config vite.smoke.config.ts","pack:fresh":"npm run build && npm pack","prepublishOnly":"npm run build"},"_npmUser":{"name":"tomjwxf","email":"tommy@brassproof.com"},"repository":{"url":"git+https://github.com/tomjwxf/scopeblind-gateway.git","type":"git"},"_npmVersion":"11.6.3","description":"Portable cryptographic identity for AI agents and coaches. Ed25519 passports, immutable manifests, ownership attestations, and evidence receipt verification.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@noble/curves":"^1.8.0","@noble/hashes":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.4.21","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/passport_0.3.0_1774182481552_0.06009395014257657","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@scopeblind/passport","version":"0.4.0","keywords":["scopeblind","passport","agent-identity","ed25519","manifest","verifiable-credentials","ai-agent","coach","portable-identity","mcp","openclaw","agent-pack"],"author":{"name":"Tom Farley","email":"tommy@scopeblind.com"},"license":"FSL-1.1-MIT","_id":"@scopeblind/passport@0.4.0","maintainers":[{"name":"tomjwxf","email":"tommy@brassproof.com"}],"homepage":"https://www.scopeblind.com","bugs":{"url":"https://github.com/tomjwxf/scopeblind-gateway/issues"},"bin":{"passport":"dist/cli.js"},"dist":{"shasum":"710796686dfe95c6b94bc7098a1230b62c8a393c","tarball":"https://registry.npmjs.org/@scopeblind/passport/-/passport-0.4.0.tgz","fileCount":17,"integrity":"sha512-pIGk6dPAO874KPWVfOjiShb0yO3ywP9zjZgvrBdRgJvEmWXDhjDQZh3jEVOwYXfrzARODImS5NX1WTWO3SBbHg==","signatures":[{"sig":"MEUCIGkPCLVXsIwtDVhG5kLE52kTVMxfL9blRz6Ecv0xKZHhAiEA4jMdazvil9YCXNr72t1w63+M6fAZZUTkiqYQT9IpRI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159330},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.mjs","require":"./dist/browser.js"}},"gitHead":"b3df4f214ba6efb1e3fcb1e18532b0e8e08fc942","scripts":{"test":"vitest run","build":"tsup src/index.ts src/browser.ts src/cli.ts --format cjs,esm --dts --clean --external @noble/curves --external @noble/hashes","smoke":"vite --config vite.smoke.config.ts","pack:fresh":"npm run build && npm pack","prepublishOnly":"npm run build"},"_npmUser":{"name":"tomjwxf","email":"tommy@brassproof.com"},"repository":{"url":"git+https://github.com/tomjwxf/scopeblind-gateway.git","type":"git"},"_npmVersion":"11.6.3","description":"Portable cryptographic identity and local pack builder for AI agents and MCP runtimes. Ed25519 passports, signed manifests, export bundles, and create/wrap CLI flows.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@noble/curves":"^1.8.0","@noble/hashes":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.4.21","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/passport_0.4.0_1774238616122_0.6041588434066085","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@scopeblind/passport","version":"0.4.1","keywords":["scopeblind","passport","agent-identity","ed25519","manifest","verifiable-credentials","ai-agent","coach","portable-identity","mcp","openclaw","agent-pack"],"author":{"name":"Tom Farley","email":"tommy@scopeblind.com"},"license":"MIT","_id":"@scopeblind/passport@0.4.1","maintainers":[{"name":"tomjwxf","email":"tommy@brassproof.com"}],"homepage":"https://www.scopeblind.com","bugs":{"url":"https://github.com/tomjwxf/scopeblind-gateway/issues"},"bin":{"passport":"dist/cli.js"},"dist":{"shasum":"8d3192117f9db1533e806285207003b5be18eb4f","tarball":"https://registry.npmjs.org/@scopeblind/passport/-/passport-0.4.1.tgz","fileCount":17,"integrity":"sha512-loLJpL4r7IfktYsRgKELvqG6LyGADO2weVx9IBnrI6ThDWRUaFJt96H4tlfluQViS4mdSktMHACtNWwTk5vqtg==","signatures":[{"sig":"MEYCIQD/IVeU7Ba3J9e0A32UtXUBsNf2VJqIWEgAImSARU4VkwIhAMCzfr8RghBZ6dNJGSxELKtfReIZczwjoaKpFTUyYPRB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226424},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.mjs","require":"./dist/browser.js"}},"gitHead":"c3d785283709dc8f9e4882a2a9eb74b2cc942ef5","mcpName":"io.github.tomjwxf/scopeblind-passport","scripts":{"test":"vitest run","build":"tsup src/index.ts src/browser.ts src/cli.ts --format cjs,esm --dts --clean --external @noble/curves --external @noble/hashes","smoke":"vite --config vite.smoke.config.ts","pack:fresh":"npm run build && npm pack","prepublishOnly":"npm run build"},"_npmUser":{"name":"tomjwxf","email":"tommy@brassproof.com"},"repository":{"url":"git+https://github.com/tomjwxf/scopeblind-gateway.git","type":"git"},"_npmVersion":"11.6.3","description":"Portable cryptographic identity and local pack builder for AI agents and MCP runtimes. Ed25519 passports, signed manifests, export bundles, and create/wrap CLI flows.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@noble/curves":"^1.8.0","@noble/hashes":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.4.21","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/passport_0.4.1_1774537545280_0.9653808320663131","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@scopeblind/passport","version":"0.4.2","keywords":["scopeblind","passport","agent-identity","ed25519","manifest","verifiable-credentials","ai-agent","coach","portable-identity","mcp","openclaw","agent-pack"],"author":{"name":"Tom Farley","email":"tommy@scopeblind.com"},"license":"Apache-2.0","_id":"@scopeblind/passport@0.4.2","maintainers":[{"name":"tomjwxf","email":"tommy@scopeblind.com"}],"homepage":"https://www.scopeblind.com","bugs":{"url":"https://github.com/scopeblind/scopeblind-gateway/issues"},"bin":{"passport":"dist/cli.js"},"dist":{"shasum":"9f97a5868426f85057f5e7f163656dc346e33c1f","tarball":"https://registry.npmjs.org/@scopeblind/passport/-/passport-0.4.2.tgz","fileCount":18,"integrity":"sha512-S+XH8C8bXBb64Pn6VNX0u5Bs54NsuJVt+EqO3cmY7n57HUz0qFgE5gK67qrQAvPS+1IIt9sggbwc5cDtOIFxeQ==","signatures":[{"sig":"MEYCIQC317HERzbkG6iJwRu5HG9xOsyA+3G64Kt8ilQXRN1zgwIhAKRNCfBhczYC9TU/PCPBmjC5yi9tBw5rbVzxTjSHCTnM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272592},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.mjs","require":"./dist/browser.js"}},"gitHead":"6c744c4a2d7aea1ac407bddaaf707606adb4b61e","mcpName":"io.github.tomjwxf/scopeblind-passport","scripts":{"test":"vitest run","build":"tsup src/index.ts src/browser.ts src/cli.ts --format cjs,esm --dts --clean --external @noble/curves --external @noble/hashes","smoke":"vite --config vite.smoke.config.ts","pack:fresh":"npm run build && npm pack","prepublishOnly":"npm run build"},"_npmUser":{"name":"tomjwxf","email":"tommy@scopeblind.com"},"repository":{"url":"git+https://github.com/scopeblind/scopeblind-gateway.git","type":"git"},"_npmVersion":"11.6.3","description":"Portable cryptographic identity and local pack builder for AI agents and MCP runtimes. Ed25519 passports, signed manifests, export bundles, and create/wrap CLI flows.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@noble/curves":"^1.8.0","@noble/hashes":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.4.21","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/passport_0.4.2_1774929668870_0.767088897910202","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@scopeblind/passport","version":"0.4.3","mcpName":"com.scopeblind/passport","description":"Portable cryptographic identity and local pack builder for AI agents and MCP runtimes. Ed25519 passports, signed manifests, export bundles, and create/wrap CLI flows.","main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","bin":{"passport":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.mjs","require":"./dist/browser.js"}},"scripts":{"build":"tsup src/index.ts src/browser.ts src/cli.ts --format cjs,esm --dts --clean --external @noble/curves --external @noble/hashes","test":"vitest run","smoke":"vite --config vite.smoke.config.ts","pack:fresh":"npm run build && npm pack","prepublishOnly":"npm run build"},"keywords":["scopeblind","passport","agent-identity","ed25519","manifest","verifiable-credentials","ai-agent","coach","portable-identity","mcp","openclaw","agent-pack"],"author":{"name":"Tom Farley","email":"tommy@scopeblind.com"},"license":"Apache-2.0","homepage":"https://scopeblind.com","repository":{"type":"git","url":"git+https://github.com/scopeblind/scopeblind-gateway.git"},"dependencies":{"@noble/curves":"^1.8.0","@noble/hashes":"^1.7.0"},"devDependencies":{"@types/node":"^20.0.0","tsup":"^8.0.0","typescript":"^5.0.0","vite":"^5.4.21","vitest":"^2.0.0"},"engines":{"node":">=18.0.0"},"gitHead":"a5210064443c62584bb05a672c7b50818a5c8f30","_id":"@scopeblind/passport@0.4.3","bugs":{"url":"https://github.com/scopeblind/scopeblind-gateway/issues"},"_nodeVersion":"22.20.0","_npmVersion":"11.6.3","dist":{"integrity":"sha512-MgA6IueGqSOD2b6y13tXVjqmqpWLDfxT8kmttjKummcuYBcC+1MAZZ+FUKkCm/c7V6S1RuM+TZfxwkUFJZ8h2Q==","shasum":"6f845980eb72b4be4e42604b04c85d292f3e7f16","tarball":"https://registry.npmjs.org/@scopeblind/passport/-/passport-0.4.3.tgz","fileCount":18,"unpackedSize":272574,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDNUF5NL0qiWYrN/U7FfTg0a6kNhgtCqTAa+DPyD2X2agIgFc+f4BJCZ5ujyb7/83s8JzpoxuM5Tx4vl/cMG+qjvhw="}]},"_npmUser":{"name":"tomjwxf","email":"tommy@scopeblind.com"},"directories":{},"maintainers":[{"name":"tomjwxf","email":"tommy@scopeblind.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/passport_0.4.3_1775429365798_0.5313312261391718"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-22T12:28:01.456Z","modified":"2026-04-05T22:49:26.091Z","0.3.0":"2026-03-22T12:28:01.703Z","0.4.0":"2026-03-23T04:03:36.299Z","0.4.1":"2026-03-26T15:05:45.492Z","0.4.2":"2026-03-31T04:01:08.997Z","0.4.3":"2026-04-05T22:49:25.952Z"},"bugs":{"url":"https://github.com/scopeblind/scopeblind-gateway/issues"},"author":{"name":"Tom Farley","email":"tommy@scopeblind.com"},"license":"Apache-2.0","homepage":"https://scopeblind.com","keywords":["scopeblind","passport","agent-identity","ed25519","manifest","verifiable-credentials","ai-agent","coach","portable-identity","mcp","openclaw","agent-pack"],"repository":{"type":"git","url":"git+https://github.com/scopeblind/scopeblind-gateway.git"},"description":"Portable cryptographic identity and local pack builder for AI agents and MCP runtimes. Ed25519 passports, signed manifests, export bundles, and create/wrap CLI flows.","maintainers":[{"name":"tomjwxf","email":"tommy@scopeblind.com"}],"readme":"# @scopeblind/passport\n\nPortable cryptographic identity and local agent-pack builder for AI agents, MCP runtimes, and BlindLLM/OpenClaw-style flows.\n\n## What it does\n\n- Generate Ed25519 passports for agents and coaches\n- Sign immutable manifests locally\n- Export portable passport bundles\n- Create a new local agent pack with `create`\n- Wrap an existing OpenClaw / MCP config with `wrap`\n\nThe CLI is local-first. It does not upload prompts, context, or keys to ScopeBlind.\n\n## Install\n\n```bash\nnpm install @scopeblind/passport\n```\n\nRequires Node.js >= 18. Browser entrypoint available at `@scopeblind/passport/browser`.\n\n## CLI First\n\nCreate a new agent pack:\n\n```bash\nnpx @scopeblind/passport create \\\n  --name \"Luna\" \\\n  --runtime openclaw \\\n  --policy shadow\n```\n\nWrap an existing OpenClaw or MCP config:\n\n```bash\nnpx @scopeblind/passport wrap \\\n  --runtime openclaw \\\n  --config ./openclaw.json \\\n  --policy email-safe\n```\n\nBoth commands generate:\n\n- `manifest.json`\n- `passport.bundle.json`\n- `protect-mcp.json`\n- `keys/gateway.json`\n- runtime-specific config guidance\n- `VERIFY.md`\n\n## What the CLI is for\n\nThis is not a no-code agent builder.\n\nIt is for:\n\n- giving an agent a portable identity\n- applying a `protect-mcp` policy pack\n- generating runtime glue for OpenClaw / Claude Desktop / Cursor / generic MCP\n- making the resulting pack independently verifiable\n\nIt is not for:\n\n- hosted prompt management\n- agent marketplaces\n- non-local storage of context or secrets\n\n## SDK Quick Start\n\n```typescript\nimport {\n  generatePassportKey,\n  createAgentManifest,\n  verifyManifest,\n  hashString,\n} from '@scopeblind/passport';\n\nconst key = generatePassportKey('agent');\n\nconst manifest = createAgentManifest(key, {\n  public_profile: {\n    name: 'Research Bot',\n    description: 'Fetches and summarizes MCP-backed research tasks',\n    domain_lanes: ['analysis:research'],\n  },\n  configuration_attestations: {\n    model_family_hash: hashString('runtime-managed'),\n    memory_mode: 'isolated',\n    system_prompt: 'Runtime-managed prompt placeholder',\n  },\n  capability_declarations: {\n    lease_template_compatibility: ['shadow'],\n    requested_tool_classes: ['mcp:general'],\n  },\n});\n\nconsole.log(verifyManifest(manifest).valid); // true\n```\n\n## Portable Export / Import\n\n```typescript\nimport {\n  exportPassportBundle,\n  serializeBundle,\n  importPassportBundle,\n} from '@scopeblind/passport';\n\nconst bundle = exportPassportBundle({\n  key,\n  manifests: [manifest],\n  ownership_attestations: [],\n  status_records: [],\n});\n\nconst json = serializeBundle(bundle);\nconst imported = importPassportBundle(json);\n\nconsole.log(imported.valid); // true\n```\n\n## Why it fits the current stack\n\n- `protect-mcp` handles tool policy and signed receipts\n- `@veritasacta/verify` handles independent verification\n- `@scopeblind/passport` handles portable identity + pack generation\n\nThat split keeps the verifier MIT, keeps the local trust primitives local, and leaves the managed control plane as the paid product.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}