dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 的目标模式与自主执行插件:顶部吸附横幅在每轮对话中保持当前目标可见,同时 Agent 自主推进完成目标。
🇬🇧 English • 🇷🇺 Русский • 🇨🇳 中文说明
|
⭐ If you like this plugin, please star it on GitHub — it shows me that the plugin is useful to you and motivates me to keep developing it.
🐛 If you find a bug or would like to request a feature, open a GitHub issue in any language — I will review your proposal and implement useful suggestions in a future plugin version. |
Complex engineering tasks require multi-step autonomy: decomposing high-level objectives into sequential milestones, executing iterations without requiring manual user re-prompting, and maintaining clear visibility into task progress.
Without an autonomous tracking framework, agents can lose context across turns, stall in passive loops, or fail to notify users when complex workflows stall.
@goodandready/dsh-goal introduces Goal Mode to DeepSeek Harness:
Notification API when long-running goals complete or require attention.consecutiveToolFailureLimit, default: 3) to halt loops upon repetitive tool crashes and prevent token burn.git rev-parse --short HEAD) with 1-click git diff / rollback command in details modal.<details><summary> milestone cards and token telemetry.• 2s, • 1m 45s), real-time status badge (RUNNING, PAUSED, COMPLETED), active goal title, and control actions./goal command.pending, in_progress, completed, failed), progress bar, and dynamic completion ETA.goal_set_milestones, goal_update_progress, and goal_finish tools directly to the agent.update_goal, get_goal, create_goal). Intercepts actions (complete, pause, resume, edit, blocked), bypasses rigid authority restrictions that caused crashes (complete and blocked require a direct human turn), and routes all state updates directly to GoalEngine.maxIterations safety limit and Smart Progress Guard to catch and pause idle turns without progress.graph LR
subgraph UserInterface ["User Interface & Interaction"]
Cmd["Slash Command: /goal <objective>"]
Dock["Sticky Goal Banner (conversation.input.dock)"]
Modal["Goal Details & Milestone Modal"]
QuickLaunch["Quick Launch Goal Button"]
end
subgraph GoalEngineCore ["Goal Engine Core (lib/goal-engine.js)"]
State["State Manager (IDLE, RUNNING, PAUSED, COMPLETED)"]
Milestones["Milestone Tracker & ETA Calculation"]
DiskStore["Persistence Store (goal-state.json)"]
LangDetector["detectLanguage (en, zh, ru)"]
end
subgraph AutonomousLoop ["Autonomous Drive & Turn Coordinator (lib/index.js)"]
TurnHook["ctx.on('turn/end') AutoDrive"]
Guard["Smart Progress Guard & Iteration Limiter"]
PromptInject["getStatePromptInjection"]
end
subgraph AgentTools ["Cordis Registered Tools"]
ToolSet["goal_set_milestones"]
ToolProgress["goal_update_progress"]
ToolFinish["goal_finish"]
end
Cmd --> GoalEngineCore
Dock --> GoalEngineCore
QuickLaunch --> GoalEngineCore
GoalEngineCore --> DiskStore
GoalEngineCore --> AutonomousLoop
AutonomousLoop --> PromptInject
GoalEngineCore --> Modal
AgentTools --> GoalEngineCore
AutonomousLoop --> Guard
lib/goal-engine.js — State EngineZero external dependency core managing session goals, milestone states, elapsed time calculations, ETA forecasts, token accumulators, and crash recovery hydration.
detectLanguage) to select English (en), Chinese (zh), or Russian (ru).lib/command-handler.js — Slash CommandsHandles /goal commands and subcommands:
/goal <objective>: Starts a new autonomous goal./goal pause: Pauses current goal and halts agent turn./goal resume: Resumes execution and triggers agent continuation./goal clear: Resets session goal to IDLE./goal: Shows status, elapsed time, ETA, iterations, tokens, and active milestones.lib/index.js — DSH Cordis Lifecycle CoordinatorGET /dsh-goal/state, POST /dsh-goal/action, GET /dsh-goal/events SSE stream).turn/end for zero-latency turn-to-turn auto-drive using setImmediate.approval/asked to automatically pause goal when operator confirmation is needed.goal_set_milestones, goal_update_progress, goal_finish.update_goal, get_goal, create_goal with zero collision and full GOAL_OUTPUT schema compliance.lib/client.js — Frontend Web UIconversation.input.dock with live timer, status badge, pause/resume, and details button.settings.plugin.item.Automated Phase Verification: Attach an optional verificationCommand (e.g. npm test, pytest, cargo test) to any milestone.
Failure Blocking & Diagnostic Feedback: When the agent attempts to complete a milestone via goal_milestones action: 'complete' or goal_update_progress status: 'completed', the command executes inside confined safeCwd. If tests fail (exitCode !== 0), completion is blocked, the milestone remains open, and diagnostic failure output is returned as actionable feedback to the agent.
Atomic Completion & Snapshots: Git checkpoint snapshotting and issue checklist synchronization only trigger once the verification command passes with exit code 0.
UI Visual Badges: Visual indicator 🛡️ <command> and failure alerts rendered in the Goal Details modal.
Plan Mode (Read-Only Planning Phase): The agent explores the codebase, searches the web, and decomposes tasks into structured milestones and checklists. All file mutating tools (write_to_file, replace_file_content, mutating shell commands) are strictly blocked by lib/tool-guard.js.
Act Mode (Implementation Phase): The operator reviews and approves the plan directly via the banner or details modal with «Approve & Execute», unlocking mutating capabilities and resuming the agent.
REST API & Quick Launch: Toggle modes on demand via POST /dsh-goal/action (set_mode, approve_plan), or select initial mode directly in the Quick Launch dialog.
dsh plugin --profile web add @goodandready/dsh-goal
Restart your DeepSeek Harness instance and refresh the browser.
Simply enter the /goal slash command:
/goal Refactor authentication middleware and cover with unit tests
The agent will immediately:
goal_set_milestones.in_progress and completed via goal_update_progress.goal_finish.Click the Start Goal button directly above the message input box, type your objective, and click Start Goal.
Control goals programmatically via HTTP:
# Start a goal
curl -X POST http://localhost:3080/dsh-goal/action \
-H "Content-Type: application/json" \
-d '{"action":"start","title":"Implement automated backup pipeline"}'
# Pause
curl -X POST http://localhost:3080/dsh-goal/action \
-H "Content-Type: application/json" \
-d '{"action":"pause"}'
# Resume
curl -X POST http://localhost:3080/dsh-goal/action \
-H "Content-Type: application/json" \
-d '{"action":"resume"}'
# Inspect live state
curl http://localhost:3080/dsh-goal/state
settings.yaml)Configure settings in settings.yaml or through the Settings → Plugins → Goal Mode UI card:
dsh-goal:
maxIterations: 25
autoDrive: true
enableSound: true
showQuickLaunchButton: true
consecutiveToolFailureLimit: 3
enableBrowserNotifications: true
maxTokenBudget: 0
budgetWarningThreshold: 80
autoCheckpointOnMilestone: false
| Parameter | Type | Default | Description |
|---|---|---|---|
maxIterations | number | 25 | Safety limit: maximum autonomous turns per goal |
autoDrive | boolean | true | Keep the autonomous agent loop running between turns |
enableSound | boolean | true | Play audio chime when a goal completes or fails |
showQuickLaunchButton | boolean | true | Show the quick launch goal button above the composer dock |
consecutiveToolFailureLimit | number | 3 | Auto-pause goal if N consecutive turns hit tool execution errors (0 to disable) |
enableBrowserNotifications | boolean | true | Show native desktop push notifications on goal completion or failure |
maxTokenBudget | number | 0 | Safety token ceiling (0 = disabled); triggers soft-pause when exceeded |
budgetWarningThreshold | number | 80 | Percentage of budget consumed before warning model to wrap up |
autoCheckpointOnMilestone | boolean | false | Automatically create git snapshot commits upon milestone completion |
Run unit and integration tests:
npm test
PAUSED_BUDGET_EXCEEDED) with 1-click +50k extension.checklist: [{ text, done }]) with real-time UI toggling and model prompt synchronization..dsh/goals/<timestamp>-<slug>.md (with .dsh/ git-ignored).localStorage./api/dsh-goal/update with fail-closed origin checks.lib/*.js; canonical English and Chinese core with Russian provided via @goodandready/dsh-russian-lang.--dsw-alias-*).ready state.MIT © GooDAnDReaDY