{
  "name": "dsh-zen-remote",
  "version": "2.3.5",
  "description": "一个插件、两种角色：主服务端把 DeepSeek Harness 变成手机能安全访问的 PWA（移动端界面、配对码网关、Web Push），并把选定会话共享给已配对的桌面端；子客户端在另一台 DSH 桌面端的侧边栏里远程使用这些会话。One DSH plugin, two roles: the host turns DeepSeek Harness into a phone-reachable PWA (mobile UI, pairing-code gateway behind your own reverse proxy, Web Push) and shares chosen sessions to paired desktops; the client uses those sessions remotely from another DSH desktop app's sidebar.",
  "license": "MIT",
  "type": "module",
  "main": "lib/index.js",
  "types": "lib/types/index.d.ts",
  "exports": {
    ".": {
      "types": "./lib/types/index.d.ts",
      "default": "./lib/index.js"
    },
    "./client": {
      "types": "./lib/types/client/index.d.ts",
      "default": "./lib/client.js"
    },
    "./lan-gate.mjs": "./lan-gate.mjs",
    "./dsh-push.mjs": "./dsh-push.mjs",
    "./cordis.patch.yml": "./cordis.patch.yml",
    "./package.json": "./package.json"
  },
  "files": [
    "lan-gate.mjs",
    "dsh-push.mjs",
    "lib",
    "pwa",
    "src",
    "scripts",
    "assets",
    "docs",
    "cordis.patch.yml",
    "cordis.patch.yml.example",
    "llms.txt",
    "AGENTS.md",
    "README.md",
    "README.zh-CN.md",
    "LICENSE",
    "!docs/push-policy.md",
    "!docs/SPEC.md",
    "!docs/spike-relay.md",
    "!docs/images"
  ],
  "dsh": {
    "bundle": {
      "patch": "./cordis.patch.yml"
    },
    "client": {
      "platform": "web"
    }
  },
  "keywords": [
    "dsh",
    "dsh-plugin",
    "dsh-plugin-add",
    "deepseek-harness",
    "deepseek-harness-plugin",
    "mobile",
    "mobile-ui",
    "phone",
    "pwa",
    "progressive-web-app",
    "remote-access",
    "pairing",
    "public",
    "reverse-proxy",
    "gateway",
    "service-worker",
    "web-push",
    "offline",
    "ai-agent"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/KyoMio/dsh-zen-remote.git"
  },
  "engines": {
    "node": ">=18"
  },
  "dependencies": {
    "web-push": "^3.6.7"
  },
  "peerDependencies": {
    "@deepseek-ai/cordis": "*",
    "@deepseek-ai/dsh-client-locale": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-client-ui-conversation": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-client-ui-layout": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-client-ui-sidebar": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-client-ui-slots": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-host-webserver": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-session": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-session-log-export": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-session-query": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-tools": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/dsh-workspace": "^0.1.7-rc.2 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1",
    "@deepseek-ai/schemastery": "*",
    "react": "^18.2.0"
  },
  "peerDependenciesMeta": {
    "@deepseek-ai/dsh-host-webserver": {
      "optional": true
    },
    "@deepseek-ai/dsh-session": {
      "optional": true
    },
    "@deepseek-ai/dsh-session-query": {
      "optional": true
    },
    "@deepseek-ai/dsh-tools": {
      "optional": true
    },
    "@deepseek-ai/dsh-workspace": {
      "optional": true
    }
  },
  "devDependencies": {
    "@deepseek-ai/cordis": "4.0.5",
    "@deepseek-ai/cosmokit": "1.8.6",
    "@deepseek-ai/dsh-agent": "0.2.1-rc.5",
    "@deepseek-ai/dsh-api-remotes": "0.2.1-rc.5",
    "@deepseek-ai/dsh-api-session-controller": "0.2.1-rc.5",
    "@deepseek-ai/dsh-api-workspace-controller": "0.2.1-rc.5",
    "@deepseek-ai/dsh-brand": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-connection": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-locale": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-store": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-ui-layout": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-ui-primitives": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-ui-session": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-ui-sidebar": "0.2.1-rc.5",
    "@deepseek-ai/dsh-client-ui-slots": "0.2.1-rc.5",
    "@deepseek-ai/dsh-host-webserver": "0.2.1-rc.5",
    "@deepseek-ai/dsh-llm": "0.2.1-rc.5",
    "@deepseek-ai/dsh-ptc-runtime": "0.2.1-rc.5",
    "@deepseek-ai/dsh-sandbox": "0.2.1-rc.5",
    "@deepseek-ai/dsh-sandbox-policy": "0.2.1-rc.5",
    "@deepseek-ai/dsh-scope": "0.2.1-rc.5",
    "@deepseek-ai/dsh-session": "0.2.1-rc.5",
    "@deepseek-ai/dsh-session-log-export": "0.2.1-rc.5",
    "@deepseek-ai/dsh-session-projection": "0.2.1-rc.5",
    "@deepseek-ai/dsh-session-query": "0.2.1-rc.5",
    "@deepseek-ai/dsh-session-stats": "0.2.1-rc.5",
    "@deepseek-ai/dsh-subagent": "0.2.1-rc.5",
    "@deepseek-ai/dsh-timeout": "0.2.1-rc.5",
    "@deepseek-ai/dsh-token-meter": "0.2.1-rc.5",
    "@deepseek-ai/dsh-tools": "0.2.1-rc.5",
    "@deepseek-ai/dsh-typert-protocol": "0.2.1-rc.5",
    "@deepseek-ai/dsh-util-crypto": "0.2.1-rc.5",
    "@deepseek-ai/dsh-util-values": "0.2.1-rc.5",
    "@deepseek-ai/dsh-workspace": "0.2.1-rc.5",
    "@deepseek-ai/schemastery": "3.18.5",
    "@types/node": "^26.6.5",
    "@types/react": "~18.3.1",
    "@types/react-dom": "~18.3.0",
    "typescript": "^6.0.3"
  },
  "scripts": {
    "build": "tsc -p tsconfig.json && tsc -p tsconfig.client.json && node scripts/build-client.mjs",
    "verify": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit",
    "test": "node --test \"test/*.test.cjs\" && node scripts/check-sunk-viewport.mjs && node scripts/check-keyboard-avoid.mjs && node scripts/check-attach-upload.mjs && node scripts/check-share-image.mjs && node scripts/check-upload-endpoint.mjs && node scripts/check-host-shadow.mjs && node scripts/check-compat-store.mjs && node scripts/check-settings-form.mjs && node scripts/check-shares.mjs && node scripts/check-plugin-bridge-ui.mjs && node scripts/check-remote-drop.mjs && node scripts/check-client-externals.mjs && node scripts/check-info-sheet-stacking.mjs && node scripts/check-wizard-ui.mjs && node scripts/check-upload-limits.mjs && node scripts/sync-doc-version.mjs --check",
    "version": "node scripts/sync-doc-version.mjs && git add README.md README.zh-CN.md"
  }
}