@goodandready/dsh-goal 0.1.10 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/README.ru.md +6 -0
- package/README.zh.md +2 -0
- package/docs/design/DESIGN.md +43 -0
- package/lib/client.js +377 -82
- package/lib/command-handler.js +11 -2
- package/lib/goal-engine.js +1009 -780
- package/lib/index.js +373 -319
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -44,6 +44,12 @@ Complex engineering tasks require multi-step autonomy: decomposing high-level ob
|
|
|
44
44
|
Without an autonomous tracking framework, agents can lose context across turns, stall in passive loops, or fail to notify users when complex workflows stall.
|
|
45
45
|
|
|
46
46
|
**`@goodandready/dsh-goal`** introduces Goal Mode to DeepSeek Harness:
|
|
47
|
+
* 💡 **Live Steering & Nudge (*Added in v0.2.0*)**: Dynamically clarify, amend, or guide the agent's active objective on the fly without aborting the loop.
|
|
48
|
+
* 🔔 **Native Browser Notifications (*Added in v0.2.0*)**: Zero-dependency desktop push notifications via HTML5 `Notification API` when long-running goals complete or require attention.
|
|
49
|
+
* 📑 **10 Quick Launch Presets (*Added in v0.2.0*)**: Ready-to-use engineering prompt chips (Fix Bug, Refactor YAGNI, Tests & Coverage, Code Review, Security Audit, New Feature, Docs, Upgrade Deps, Dead Code Cleanup, Performance).
|
|
50
|
+
* 🛡️ **Tool-Failure Breaker (*Added in v0.2.0*)**: Configurable consecutive tool error limit (`consecutiveToolFailureLimit`, default: 3) to halt loops upon repetitive tool crashes and prevent token burn.
|
|
51
|
+
* 📌 **Git Checkpoint Snapshot (*Added in v0.2.0*)**: Automatically captures start commit hash (`git rev-parse --short HEAD`) with 1-click `git diff` / rollback command in details modal.
|
|
52
|
+
* 🐙 **GitHub & Gitea PR Comment Export (*Added in v0.2.0*)**: One-click formatted comment generator with collapsible `<details><summary>` milestone cards and token telemetry.
|
|
47
53
|
* 🎯 **Sticky Top Goal Banner**: Pinned header over composer dock with live elapsed timer (`• 2s`, `• 1m 45s`), real-time status badge (`RUNNING`, `PAUSED`, `COMPLETED`), active goal title, and control actions.
|
|
48
54
|
* ⏸️ **Play / Pause / Resume / Cancel**: Instantly pause the autonomous loop or resume execution on demand via buttons or `/goal` command.
|
|
49
55
|
* 📋 **Milestone Breakdown & ETA**: Interactive checklist showing sub-tasks, completion status (`pending`, `in_progress`, `completed`, `failed`), progress bar, and dynamic completion ETA.
|
|
@@ -194,6 +200,8 @@ dsh-goal:
|
|
|
194
200
|
autoDrive: true
|
|
195
201
|
enableSound: true
|
|
196
202
|
showQuickLaunchButton: true
|
|
203
|
+
consecutiveToolFailureLimit: 3
|
|
204
|
+
enableBrowserNotifications: true
|
|
197
205
|
```
|
|
198
206
|
|
|
199
207
|
| Parameter | Type | Default | Description |
|
|
@@ -202,6 +210,8 @@ dsh-goal:
|
|
|
202
210
|
| `autoDrive` | `boolean` | `true` | Keep the autonomous agent loop running between turns |
|
|
203
211
|
| `enableSound` | `boolean` | `true` | Play audio chime when a goal completes or fails |
|
|
204
212
|
| `showQuickLaunchButton` | `boolean` | `true` | Show the quick launch goal button above the composer dock |
|
|
213
|
+
| `consecutiveToolFailureLimit` | `number` | `3` | Auto-pause goal if N consecutive turns hit tool execution errors (0 to disable) |
|
|
214
|
+
| `enableBrowserNotifications` | `boolean` | `true` | Show native desktop push notifications on goal completion or failure |
|
|
205
215
|
|
|
206
216
|
---
|
|
207
217
|
|
package/README.ru.md
CHANGED
|
@@ -41,6 +41,12 @@
|
|
|
41
41
|
Решение комплексных инженерных задач требует автономного многошагового выполнения: декомпозиции целей на майлстоуны, непрерывного выполнения итераций без ручного подталкивания пользователя и наглядного отслеживания прогресса.
|
|
42
42
|
|
|
43
43
|
**`@goodandready/dsh-goal`** внедряет автономный режим достижения целей в DeepSeek Harness через команду `/goal`:
|
|
44
|
+
* 💡 **Живая корректировка цели / Направление агента (*v0.2.0*)**: Возможность вносить точечные правки и уточнения в активную цель на лету без прерывания сессии.
|
|
45
|
+
* 🔔 **Браузерные уведомления (*v0.2.0*)**: Нативные пуш-уведомления через HTML5 `Notification API` по завершении или сбое цели.
|
|
46
|
+
* 📑 **10 инженерных пресетов (*v0.2.0*)**: Готовые кликабельные шаблоны задач (Fix Bug, Refactor YAGNI, Tests, Code Review, Security, Docs, Upgrade Deps, Cleanup, Performance) в окне запуска.
|
|
47
|
+
* 🛡️ **Tool-Failure Breaker (*v0.2.0*)**: Настраиваемый порог ошибок инструментов (`consecutiveToolFailureLimit`, по умолчанию 3) для предотвращения бесконечных сбойных вызовов.
|
|
48
|
+
* 📌 **Git Checkpoint (*v0.2.0*)**: Фиксация коммита старта (`git rev-parse --short HEAD`) и копирование команды `git diff` в 1 клик.
|
|
49
|
+
* 🐙 **Экспорт отчета для GitHub / Gitea PR (*v0.2.0*)**: Генерация отчета со сворачиваемыми спойлерами `<details><summary>` для PR и задач.
|
|
44
50
|
* 🎯 **Плавающий баннер в шапке**: зафиксированный статус-бар над чатом с таймером выполнения (`• 2s`, `• 1m 45s`), заголовком цели и кнопками управления.
|
|
45
51
|
* ⏸️ **Управление циклом (Play / Pause / Cancel)**: мгновенная приостановка автономного цикла агента или его возобновление в любой момент.
|
|
46
52
|
* 📋 **Интерактивная панель майлстоунов**: модальное окно со списком подзадач, прогресс-баром и журналом выполнения.
|
package/README.zh.md
CHANGED
|
@@ -193,6 +193,8 @@ dsh-goal:
|
|
|
193
193
|
autoDrive: true
|
|
194
194
|
enableSound: true
|
|
195
195
|
showQuickLaunchButton: true
|
|
196
|
+
| `consecutiveToolFailureLimit` | `number` | `3` | 连续 N 轮工具错误自动熔断暂停(0 为禁用) |
|
|
197
|
+
| `enableBrowserNotifications` | `boolean` | `true` | 目标完成时发送桌面原生系统通知 |
|
|
196
198
|
```
|
|
197
199
|
|
|
198
200
|
| 参数项 | 类型 | 默认值 | 说明 |
|
package/docs/design/DESIGN.md
CHANGED
|
@@ -139,3 +139,46 @@
|
|
|
139
139
|
- Все перехваченные инструменты возвращают структуры, валидные по спецификации `GOAL_VALUE_SCHEMA` ядра (`goal: null` при отсутствии активной цели, либо объект цели с `id`, `revision`, `objective`, `phase`, `roundsStarted`, `maxGoalRounds`, `activation`).
|
|
140
140
|
4. **Нейтрализация устаревшего системного промпта ядра:**
|
|
141
141
|
- Удаляется секция `tool:goal` ядра с ошибочными директивами и заменяется актуальной динамической инструкцией `tool:dsh-goal`.
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
### Решение 11: Живая корректировка цели (Live Steering / Nudge), браузерные уведомления, 10 инженерных пресетов, защита от сбоев инструментов и Git Checkpoints (v0.2.0)
|
|
145
|
+
|
|
146
|
+
**Контекст:**
|
|
147
|
+
В процессе активной эксплуатации автономного режима Goal Mode пользователям требовались:
|
|
148
|
+
1. Возможность вносить точечные корректировки и уточнения в активную или приостановленную цель без прерывания сессии или перезапуска;
|
|
149
|
+
2. Получение нативных уведомлений операционной системы при завершении длительных фоновых задач;
|
|
150
|
+
3. Быстрый выбор типовых инженерных задач (багфикс, рефакторинг, тесты, код-ревью и др.) без ручного набора стандартных промптов;
|
|
151
|
+
4. Защита от бесконечных повторных вызовов падающих инструментов (Tool-Failure Breaker) с настраиваемым порогом;
|
|
152
|
+
5. Фиксация точки старта в репозитории (Git Checkpoint) для моментального просмотра изменений и отката;
|
|
153
|
+
6. Экспорт структурированного отчета с интерактивными спойлерами для комментариев в GitHub / Gitea PR.
|
|
154
|
+
|
|
155
|
+
**Принятые решения:**
|
|
156
|
+
1. **Live Steering / Nudge**:
|
|
157
|
+
- Реализован метод `engine.nudge(text, sid)` и эндпоинт `POST /dsh-goal/action` с `action: 'nudge'`.
|
|
158
|
+
- Поле ввода в модальном окне деталей позволяет оператору направить агента.
|
|
159
|
+
- Указание сохраняется в `goal.nudges` и инжектируется в следующий промпт автодрайва как высокоприоритетная директива `🚨 URGENT USER CLARIFICATION / STEERING`.
|
|
160
|
+
2. **Нативные браузерные уведомления (Notification API)**:
|
|
161
|
+
- При завершении цели (`COMPLETED` или `FAILED`) клиент вызывает системный push через `new Notification(...)` при наличии разрешения.
|
|
162
|
+
- В карточке настроек добавлен чекбокс `enableBrowserNotifications` с интерактивным запросом прав.
|
|
163
|
+
3. **10 инженерных шаблонов запуска (Quick Launch Presets)**:
|
|
164
|
+
- В окно быстрого запуска добавлена лента чипов с 10 сценариями на трёх языках (`en`, `ru`, `zh`):
|
|
165
|
+
1. 🐛 Fix Bug & Verify
|
|
166
|
+
2. ⚡ Refactor (YAGNI)
|
|
167
|
+
3. 📝 Tests & Coverage
|
|
168
|
+
4. 🔍 Code Review
|
|
169
|
+
5. 🚀 New Feature
|
|
170
|
+
6. 🛡️ Security Audit
|
|
171
|
+
7. 📚 Docs & Contract
|
|
172
|
+
8. 📦 Upgrade Deps
|
|
173
|
+
9. 🧹 Dead Code Cleanup
|
|
174
|
+
10. ⚙️ Performance
|
|
175
|
+
4. **Защита от циклических сбоев инструментов (Tool-Failure Breaker)**:
|
|
176
|
+
- В `GoalEngine` внедрен счетчик последовательных ошибок инструментов (`consecutiveToolFailureLimit`, по умолчанию 3, 0 — отключено).
|
|
177
|
+
- При превышении порога цель автоматически переводится в `PAUSED` с фиксацией точной причины в журнале.
|
|
178
|
+
- Порог настраивается через Schemastery карточку в интерфейсе настроек.
|
|
179
|
+
5. **Git Checkpoint Snapshot**:
|
|
180
|
+
- При старте цели через `node:child_process` фиксируется короткий хеш `git rev-parse --short HEAD` (с таймаутом 1 сек).
|
|
181
|
+
- В окне деталей отображается бейдж `📌 Git: <commit>` с копированием команды `git diff <commit>` в один клик.
|
|
182
|
+
6. **Экспорт отчета для GitHub / Gitea PR**:
|
|
183
|
+
- Метод `exportReportGitHubPR(state)` форматирует статус, время, расход токенов, резюме и таблицу вех внутри сворачиваемого блока `<details><summary>`.
|
|
184
|
+
- В окне деталей добавлена кнопка «🐙 Копировать для GitHub PR».
|