插件目录 / Developer / dsh-mission
dsh-mission
未验证 qiaoy01
功能简介
DeekSeek Harness Mission Plugin
未验证 — 尚未实测
DeekSeek Harness Mission Plugin 尚未验证——请自行安装测试。
「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-mission
A long-horizon autonomous mission runtime for DeepSeek Harness — lets an
agent drive a long-term objective over days: a cross-session, independently
verifiable, replan-on-failure, crash-recoverable autonomous control loop.
The dependency DAG is one of its driving mechanisms, not the runtime itself.
English | 中文
What it is
dsh-mission is a pure-TypeScript cordis plugin for DeepSeek Harness that
provides the long-horizon autonomous mission runtime dsh lacks: a durable,
verifiable, crash-recoverable control loop that breaks a long-term objective
into a dependency DAG of tasks and advances it autonomously — instead of
finishing everything in one conversation.
Core principle: agents propose, the environment adjudicates, the runtime commits.
- Agent plans, executions, and claims are never authoritative;
- For every work item:
task/reportis a declaration about the environment
(not authoritative);task/verifyindependently aligns the declaration
with environment feedback (authoritative); - Workers cannot self-certify — only state changes that pass deterministic
validation and commit atomically as a single session event are authoritative.
Why dsh needs it
| What dsh already has | What dsh-mission adds |
|---|---|
| goal (single-objective ledger, caller self-certifies) | Dependency DAG + derived readiness/blocked, failed branches replan while DONE work is preserved |
| workflow (one-shot fan-out scripts) | Durable, resumable, cross-session task state machine |
| schedule (pure time triggers) | Dependency triggers (upstream DONE → downstream READY) |
| subagent (execution unit) | Independent verification — workers cannot self-certify, report ≠ verify |
| — | Lease ownership + lazy reclamation + crash recovery |
Features
- Event-sourced persistence:
mission/*session events; one event = one
atomic commit; no separate database; - Version guard:
revisionCAS (mirrors dsh-goal'sGoalRefpattern); - Autonomous driver host (
mission-driver): listens tomission/changed
and runs claim → subagent execute → report → verify → commit automatically; - Lazy lease reclamation: an expired, unreported claim can be reclaimed and
redone; an in-flight task guard prevents duplicate dispatch; - Replan on failure: a stuck mission gets a new revision while DONE tasks
with unchanged specs carry over; - Optional model strategies:
llmDecider(pick the next task) /llmReplanner(replan) /userApprovalGate(approval gate); - UI data plane: a
missionsession-projection unit; - Trigger companion (
mission-trigger): a soft-guidance prompt +/mission
slash command that routes trigger phrases intomission_create/mission_plan; - Tolerant companion:
mission-invariantregisters its audit whenever theinvariantsservice exists, and is a no-op otherwise (production profiles
load without extra configuration).
Event vocabulary (mission/*)
| Event | Meaning |
|---|---|
mission/created |
Create a mission |
mission/plan-committed |
Commit a full plan snapshot (revision +1; DONE tasks with unchanged specs carry over) |
mission/task-claimed |
Claim a task with a lease |
mission/task-reported |
The agent's declaration about the environment (never DONE by itself) |
mission/task-verified |
Independently align the declaration with environment feedback → DONE/FAILED |
mission/cancelled |
Explicit cancellation |
States: mission CREATED / RUNNING / COMPLETED / FAILED / CANCELLED;
tasks PENDING / CLAIMED / DONE / FAILED + derived READY / BLOCKED.
Install & use
# Install from npm (published; inserts a 6-row bundle patch into the composition)
dsh plugin --profile <name> add @qiaoy01/mission
Install from source (for contributors)
The published npm package ships prebuilt (lib/), so consumers only need the
one command above. Build from source when you want to modify or review the code:
git clone https://github.com/qiaoy01/dsh-mission.git
cd dsh-mission # the bundle lives at this repo root
npm install # build deps, pinned to the running-harness peer versions
npm run build # typecheck + emit lib/
dsh plugin --profile <name> add file:.
file:.points at the repo root you justcd'd into — whosepackage.json
declaresdsh.bundle.patch→cordis.patch.yml.
After changing source, re-runnpm run buildand re-add the package.
In a session, the agent drives the mission through four model tools:mission_create (create a mission), mission_plan (commit a task DAG; revision
must equal current + 1), mission_status (read the current state), andmission_cancel (cancel the mission).
After the model commits a plan, the runtime takes over: mission-driver
claims tasks, dispatches real subagents, and verifies independently. The model
should not execute tasks itself.
Quick start (30 seconds)
# 1. install the plugin into a dsh profile
dsh plugin --profile web add @qiaoy01/mission
# 2. in a session, ask the agent:
# "mission: build a small web game. Use mission_create, then mission_plan,
# then stop — the runtime will execute the tasks."
#
# The model creates and plans; mission-driver claims tasks, dispatches real
# subagents, and independently verifies each one until the mission is COMPLETED.
Defaults are conservative (deterministic task selection, no automatic replan —
zero model cost). Enable model strategies via the profile row config:
- id: mission-driver
config:
decider: llm # the model picks the next task
replan: true # the model replans when the mission is stuck
Build & test
npm run build # auto-discovers a local tsc; typecheck + emit to lib/
# Six test suites, all run in isolation:
node --experimental-strip-types tests/domain.test.mjs # pure domain model
node tests/service.test.mjs # runtime (real cordis/session/agent)
node tests/driver.test.mjs # driver loop (mock executor)
node tests/driver-host.test.mjs # driver host (stubbed subagents)
node tests/trigger.test.mjs # trigger companion (soft guidance + /mission)
node --experimental-strip-types tests/projection.test.mjs # session-projection unit
Status
- Stage A (domain model) ✅ · Stage B (service + tools + companion) ✅ ·
Stage C (driver loop) ✅ · Stage D (replan / lease reclamation / model
decisions / approval gate) ✅ · Stage E (projection ✅, browser UI pending); - Verified in a real composition: a 7-task DAG driven end-to-end by real
subagents to COMPLETED, every task independently verified, zero failures and
zero duplicate dispatches.
License
MIT — see LICENSE.
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-mission」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:qiaoy01/dsh-mission Headless(CLI)profile:
dsh plugin --profile headless add github:qiaoy01/dsh-mission 实测报告
尚未 L3 验证——若已跑过,见下方失败备注。