Bundle
dsh-airp
AIRP engine for DeepSeek Harness: WorldKernel + DSH host adapter
- Source
- clarkzhao
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 10 days ago
Readme
# dsh-airp DeepSeek Harness 上的 AIRP 引擎:深 module `WorldKernel` + 浅 Host adapter。 - GitHub:https://github.com/clarkzhao/dsh-airp - topic:`dsh-plugin` - 规范:[docs/engine.md](docs/engine.md) · agent 入口:[AGENTS.md](AGENTS.md) · 术语:[docs/glossary.md](docs/glossary.md) · 写包:[docs/worldbook-authoring.md](docs/worldbook-authoring.md) · 规划:[ROADMAP.md](ROADMAP.md) 一句话:LLM 只提案和叙述;规则把 State 从 T 写成 T+1。 ## 能力 - `WorldKernel.turn` / `match`:鉴定、叙事事实、GM、检索 - `Pack.load` / `validate` / `catalog`:YAML 索引 + Markdown 细节;bundled + `~/.dsh/airp-packs` + 自定义路径 - 官方示例(不是产品主线):`packs/lotm-tingen`、`packs/jzdh-dingjiang`。自己的包写到 `~/.dsh/airp-packs/` - 工具名必须匹配 `^[a-zA-Z0-9_-]+$`:`lore_get` / `state_read` / `check_propose` / `state_propose_fact` / `check_match` / `pack_validate` / `pack_scaffold` / `pack_open_play` / `pack_interview` - 可选舞台 `airpStage`:`/airp-media` 把本地图变成同源绝对 http(s) URL,叙述者嵌进对白。不出图引擎,不绑 grok-image。 ## 世界包生态 世界包是**数据**,不是插件代码。引擎只认目录里有没有合法的 `pack.yaml`。 ```text packs/lotm-tingen/ # 官方 demo,进 git packs/jzdh-dingjiang/ # 官方 demo,进 git packs/<your-id>/ # 本地实验;默认被 .gitignore ~/.dsh/airp-packs/<id>/ # 推荐的用户/社区安装位置 任意/含 pack.yaml 的目录 # 开局卡底部粘贴路径 ``` 消费者(`airp-play`)开局选包;创造者(`airp-author`)用 `pack_interview` 取 8 问 → `ask_user_question` → `pack_scaffold` → 改文件 → `pack_validate` → `pack_open_play`。`pack_open_play` **不会**热切本会话:已有产出不能换 preset,交接卡只告诉你新开一条 `airp-play` 并粘贴路径。 分享一个包:复制 `templates/community-pack/`,或把目录打成 zip / 开独立 git 仓。别人解压到 `~/.dsh/airp-packs/<id>/` 即可。本地校验: ```bash npm run pack:validate -- ~/.dsh/airp-packs/my-pack ``` 不要把社区包 PR 进本仓 `packs/`,除非它要成为下一个官方 demo。Issue 用仓库模板(`pack` / `authoring` / `engine`),说明见 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 开发 ```bash npm install npm test npm run typecheck npm run build ``` ## 安装到 DSH web profile ```bash dsh plugin --profile web add /path/to/dsh-airp # 或 npx @deepseek-ai/dsh plugin --profile web add /path/to/dsh-airp ``` 预设(从本仓复制,不要带 `tool-cordis`,也不要在 play preset 里挂 `play-mask`:`tools.restrict` 在挂载时全局工具表还是空的,New Session 会失败): ```bash cp -R presets/airp-play ~/.dsh/.agent-presets/airp-play cp -R presets/airp-author ~/.dsh/.agent-presets/airp-author ``` - **AIRP 消费者**(`airp-play`)会弹「加载世界」卡:新建或空白会话切到该 preset 都会问一次。 - **AIRP 创造者**(`airp-author`)会弹「编辑世界」卡,并可「从零写一个新世界包」。 - 卡片底部可粘贴含 `pack.yaml` 的目录;选自定义后不会再静默掉回廷根。 sandbox 只能写工作区。用户包推荐写到 `~/.dsh/airp-packs/`(host 插件写盘,不经过 agent sandbox)。 `/retry` 由 `HostRuntime` 回放事件、把 State 裁到上一 check 之前;若 DSH 上有 `sessions.fork` 会顺带分叉会话日志。Kernel 自己不做时间旅行。 IC 文本按**当前包**的 `pack.yaml` `tags` 词表打标;命中则 Host 在 `agent/pre-step` 先 `match`,再让模型只叙述。
Install
dsh plugin --profile web add github:clarkzhao/dsh-airp
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-airp from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.