Includes an opt-in testnet round-trip test (keyless build -> decode -> policy -> sign, never submits), excluded from CI because it needs a funded wallet. Run against the real funded testnet wallet: pass 3, fail 0, nothing submitted. Verified every README claim against the code as implemented, not just the brief text, and corrected several: - VECTOR_SIGNER_AUDIT_LOG_PATH's default resolves against the package's own install location (repo root), not the process's cwd as originally stated -- and that default filename is not yet covered by .gitignore. - An audit-log write failure blocks ALL signing, not just accounting: audit.append() throws by design and vector_signer_sign withholds an already-produced signature rather than release one with no durable record. - Documented the #private-field defense against accidental key leakage via JSON.stringify/console.log, and the read-only/sign tool split that keeps the signing key out of scope for get_address/decode/get_spend_limits. - Documented that pairing this signer with the CURRENT hosted builder does not yet remove the custody exposure it's designed to fix: no builder tool is keyless yet, and there is no submit_transaction tool to hand a produced signature to. That's the next stage of the migration, not shipped here. Env-var cross-check (brief's Step 6, both directions) passes clean.
39 lines
1.6 KiB
JSON
39 lines
1.6 KiB
JSON
{
|
|
"name": "@apexfusion/mcp-server-monorepo",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"workspaces": ["packages/*"],
|
|
"scripts": {
|
|
"postinstall": "ln -sf ../../../libsodium-sumo/dist/modules-sumo-esm/libsodium-sumo.mjs node_modules/libsodium-wrappers-sumo/dist/modules-sumo-esm/libsodium-sumo.mjs 2>/dev/null || true",
|
|
"clean": "rm -rf packages/*/build",
|
|
"build": "npm run build --workspace=@apexfusion/vector-mcp-builder && npm run build --workspace=@apexfusion/vector-mcp-signer",
|
|
"typecheck": "tsc --noEmit -p packages/shared && tsc --noEmit -p packages/builder && tsc --noEmit -p packages/signer",
|
|
"start": "node packages/builder/build/index.js",
|
|
"test": "npm run test:unit",
|
|
"test:unit": "node --import tsx --test packages/*/test/*.test.ts",
|
|
"test:smoke": "npm run build && node --import tsx --test packages/builder/test/smoke/*.test.ts",
|
|
"test:smoke:signer": "npm run build && node --import tsx --test packages/signer/test/smoke/*.test.ts",
|
|
"test:integration": "npm run build && node --import tsx --test packages/builder/test/integration/*.test.ts",
|
|
"test:integration:signer": "node --import tsx --test packages/signer/test/integration/*.test.ts"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.13.1",
|
|
"tsup": "^8.5.1",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.7.3"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.0.0"
|
|
},
|
|
"license": "ISC",
|
|
"author": "Apex Fusion",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/Apex-Fusion/mcp-server.git"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/Apex-Fusion/mcp-server/issues"
|
|
}
|
|
}
|