{
  "name": "@skillfm/local",
  "version": "2.7.19",
  "description": "SkillFM local — single npm package for the SkillFM platform on user nodes. Subcommand router exposes (1) Beacon MCP stdio server (cost-optimizer for any agent; merged in from @skillfm/beacon-mcp on 2026-05-01), (2) skill runtime (BYOK Playwright / brain reverse-tunnel), (3) sidecar HTTP proxy + OAuth 2.1 device-flow activation. Writes ~/.skillfm/local.json for service discovery.",
  "type": "module",
  "main": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js"
    },
    "./mcp": {
      "types": "./dist/mcp/index.d.ts",
      "import": "./dist/mcp/index.js"
    },
    "./mcp-stdio": {
      "types": "./dist/mcp-stdio/server.d.ts",
      "import": "./dist/mcp-stdio/server.js"
    },
    "./connectors": {
      "types": "./dist/connectors/index.d.ts",
      "import": "./dist/connectors/index.js"
    }
  },
  "files": [
    "dist",
    "README.md"
  ],
  "bin": {
    "skillfm": "dist/index.js",
    "skillfm-local": "dist/index.js",
    "skillfm-guard": "dist/guard/bin.js",
    "skillfm-mcp-stdio": "dist/mcp-stdio/bin.js"
  },
  "keywords": [
    "skillfm",
    "ai-agent",
    "sidecar",
    "localhost",
    "agent-native",
    "mcp",
    "model-context-protocol",
    "beacon",
    "cost-optimizer",
    "byok",
    "bootstrap"
  ],
  "scripts": {
    "build": "tsc && chmod 755 dist/index.js dist/guard/bin.js dist/mcp-stdio/bin.js",
    "vendor:contracts": "tsx scripts/inline-contracts.ts && tsx scripts/inline-mcp-contracts.ts",
    "prebuild": "npm run vendor:contracts",
    "dev": "tsx src/index.ts",
    "typecheck": "tsc --noEmit",
    "start": "node dist/index.js start",
    "prepublishOnly": "npm run build && bash scripts/verify-no-bare-workspace-imports.sh dist",
    "test": "tsx --test src/harness/detector.test.ts src/harness/priming.test.ts src/harness/writers.test.ts src/guard/state.test.ts src/guard/prompt-context.test.ts src/soul.test.ts src/soul-security.test.ts src/harness/kernels/registry.test.ts src/harness/kernels/deny-pipeline.test.ts src/mcp-output/builder.test.ts src/mcp-output/deny-review.test.ts src/mcp-output/integration.test.ts src/skill-md/template.test.ts src/skill-md/writer.test.ts src/mcp-stdio/smoke.test.ts src/mcp-stdio/render-flow.contract.test.ts src/mcp-stdio/render-aha.test.ts src/mcp-stdio/sse-progress-client.test.ts src/mcp-stdio/parse-tolerant-json.test.ts src/self-upgrade.test.ts src/skill-tunnel/local-bridge.test.ts src/skill-tunnel/client.test.ts src/skill-runner/discovery.test.ts src/skill-installer/index.test.ts src/safe-observation/store.test.ts src/service/manager.test.ts src/service/safe-upgrade.test.ts src/service/local-upgrade.test.ts src/scheduler/brain-push-client.test.ts src/_dist-no-external-contracts.test.ts src/mcp/server-boot.test.ts src/connectors/connectors.test.ts src/asset-connectors/asset-connectors.test.ts src/saas-connectors/saas-connectors.test.ts src/router/router.test.ts src/vault/vault.test.ts src/scheduler/scheduler.test.ts src/_signers/signers.test.ts src/memory/memory.test.ts src/mcp/tools/memory-tools.test.ts src/mcp/tools/l0-descriptions.test.ts src/mcp/tools/l1-claude-code.test.ts src/setup-safe.test.ts src/agent-forcing/forcing-rules.test.ts src/agent-forcing/slash-commands.test.ts src/agent-forcing/claude-code-skill-v2.test.ts src/checkup/checkup.test.ts src/checkup/last-report.test.ts src/mcp/tools/send-daily-report.test.ts src/mcp/tools/install-module.test.ts src/save-token/gateway-setup.test.ts",
    "test:acceptance": "npm run build && bash scripts/acceptance-matrix.sh",
    "postpublish": "curl -sS -m 10 -X PUT 'https://registry.npmmirror.com/-/package/@skillfm/local/syncs?sync_upstream=true' > /dev/null && echo '✓ npmmirror sync triggered' || echo '⚠ npmmirror sync failed (非阻塞，可手动触发)'"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.0.0",
    "tar": "^7.5.0",
    "ws": "^8.20.0",
    "zod": "^3.23.0"
  },
  "devDependencies": {
    "@skillfm/contracts": "*",
    "@types/node": "^22.19.17",
    "@types/ws": "^8.5.10",
    "tsx": "^4.0.0",
    "typescript": "^5.4.0"
  },
  "engines": {
    "node": ">=20"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/ericm1018/skillfm.git",
    "directory": "sdk/skillfm-local"
  },
  "homepage": "https://skillfm.ai",
  "license": "MIT"
}
