{
  "name": "@linxin666/dsh-liangshen",
  "description": "LiangShen (梁神) agent preset plus its composer lever for the dsh web GUI. The host half declares the bundled preset to the harness's agent-preset registry at activation (declare = enabled), so the preset is selectable for new sessions without writing anything into the harness home; the preset keeps a minimal persona with standing working discipline while the harness's own user-role agent-instructions injection delivers the workspace instructions (the optional `instructionSource: system-prompt` mode lifts them into the prompt instead), and declares one tool presentation for the session's whole lifetime (default `presentation: 'both'`, where the wire collapses to the `run_code` transport and every other tool is reached through the generated SDK; `native` keeps the assembled roster, `ptc` keeps only the transport). High-fan-out tool families (default `mcp__*`) stay paged out of the wire until the preset's own `tool_activate` tool loads their namespace (LRU cap three, state replayed from the durable session event stream), and the tool catalog — exactly the on-wire tools plus paged-out namespace summaries — and a one-line working-context projection travel as durable user messages republished only on change. The browser half adds a slot-machine lever left of the model selector on the new-session screen to toggle the mode. Hot-pluggable via cordis.patch.yml + profile symlink, no dsh source changes.",
  "version": "0.4.1",
  "icon": "icon.svg",
  "type": "module",
  "engines": {
    "node": "^22.19.0 || >=24.0.0"
  },
  "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"
    },
    "./package.json": "./package.json",
    "./presets/*": "./presets/*"
  },
  "dsh": {
    "engines": {
      "dsh": ">=0.1.7-rc.1"
    },
    "bundle": {
      "patch": "./cordis.patch.yml"
    },
    "client": {
      "inject": [
        "@deepseek-ai/dsh-client-connection",
        "@deepseek-ai/dsh-client-ui-renderer",
        "@deepseek-ai/dsh-client-ui-settings",
        "@deepseek-ai/dsh-api-remotes",
        "@deepseek-ai/dsh-api-session-controller"
      ],
      "platform": "web"
    }
  },
  "peerDependencies": {
    "@deepseek-ai/dsh": ">=0.1.7-rc.1"
  },
  "dependencies": {
    "@deepseek-ai/schemastery": "^3.18.4"
  },
  "devDependencies": {
    "@deepseek-ai/cordis": "^4.0.4",
    "@deepseek-ai/dsh-agent-preset-registry": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-api-remotes": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-api-session-controller": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-client-connection": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-client-locale": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-client-store": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-client-ui-conversation": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-client-ui-renderer": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-client-ui-settings": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-client-ui-slots": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-settings": "^0.1.7-rc.1",
    "@deepseek-ai/dsh-system-prompt": "^0.1.7-rc.1",
    "@testing-library/react": "^16.1.0",
    "@types/node": "^22.20.0",
    "@types/react": "~18.3.1",
    "@types/react-dom": "~18.3.1",
    "@vitest/coverage-v8": "^4.1.11",
    "jsdom": "^25.0.0",
    "react": "^18.3.1",
    "react-dom": "^18.3.1",
    "tsdown": "0.22.2",
    "typescript": "~5.7.2",
    "vitest": "^4.1.11"
  },
  "files": [
    "lib/**/*.js",
    "lib/**/*.js.map",
    "lib/**/*.d.ts",
    "lib/**/*.d.ts.map",
    "src",
    "presets",
    "tools",
    "cordis.patch.yml",
    "README.md",
    "README.zh.md",
    "LICENSE",
    "icon.svg"
  ],
  "license": "Apache-2.0",
  "repository": {
    "type": "git",
    "url": "https://github.com/zhu1090093659/dsh-web.git"
  },
  "scripts": {
    "build": "tsc -p tsconfig.build.json && tsdown",
    "bundle": "tsdown",
    "watch": "tsdown --watch",
    "typecheck": "tsc --noEmit",
    "test": "vitest run",
    "test:watch": "vitest"
  }
}