dsh-dsml-rescue 0.3.0 → 0.3.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 CHANGED
@@ -50,7 +50,7 @@ This plugin types it.
50
50
 
51
51
  - Continues a stalled turn: DSML markup at the end of the reasoning, and nothing else produced.
52
52
  Neither half alone is enough — an empty turn without the markup is a different failure.
53
- - Sends one short, neutral line — carry on, or wrap up if the work is done.
53
+ - Sends one short, neutral line: take the next step — never an offer to declare the work finished.
54
54
  - Backs off while you are typing.
55
55
  - Gives up after a few attempts instead of burning requests.
56
56
  - Covers subagents too, so a delegated task is not falsely reported as completed while it is stuck.
package/README_zh.md CHANGED
@@ -46,7 +46,7 @@ DSML(DeepSeek Markup Language)是 DeepSeek 表示工具调用的协议标记
46
46
  ## 它做什么
47
47
 
48
48
  - 只救空转的轮次:推理过程末尾带着 DSML 标记,而且没有产出任何别的内容。两个条件缺一不可——空转但末尾没有标记,是另一种失败。
49
- - 发一句很短、很中性的话:接着做,或者已经做完就收尾。
49
+ - 发一句很短、很中性的话:接着做下一步,不给「已经做完了」这种台阶。
50
50
  - 你正在打字时它让开。
51
51
  - 连着几次没救回来就收手,不会一直烧请求。
52
52
  - 子代理也管:被派出去的任务不会在卡住时被误报为已完成。
package/lib/index.js CHANGED
@@ -229,13 +229,23 @@ function reduce(state, event, limits) {
229
229
  * sits below the model — a provider route delivering tool-call markup as text —
230
230
  * so nothing the model does can avoid it, and naming it would only invite the
231
231
  * model to talk about the failure instead of continuing the work. The wording
232
- * is fixed rather than configurable: one sentence that asks for the next step,
233
- * plus one legal way out so a rescue cannot become an open-ended loop.
232
+ * is fixed rather than configurable: one instruction, and no clause inviting the
233
+ * model to declare the work finished. The cap is what bounds a rescue, so the
234
+ * text owes no exit — and offering one gives a stalled model a cheaper way to
235
+ * end the turn than doing the work.
234
236
  *
235
237
  * @module dsh-dsml-rescue/messages
236
238
  */
237
- /** What the model reads. Two instructions: continue, or close out if finished. */
238
- const CONTINUE_PROMPT = "Continue with the task. Take the next concrete step now, using a tool if needed. If the work is complete, reply with a short summary.";
239
+ /**
240
+ * What the model reads: one instruction, and nothing about being finished.
241
+ *
242
+ * The rescued turn ended with a tool call that never landed, so the next step
243
+ * has not happened yet; a "say you are done" clause has nothing true to be right
244
+ * about. Taking one is not free either: a prose answer is actionable output, so
245
+ * detection stops calling the turn a stall and the run ends with the work
246
+ * undone.
247
+ */
248
+ const CONTINUE_PROMPT = "Continue with the task. Take the next concrete step now, using a tool if needed.";
239
249
  /**
240
250
  * Build the continuation turn's message.
241
251
  * @param round - this rescue's ordinal in the current streak, from 1.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-dsml-rescue",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Auto-continues turns stalled by DSML tool-call markup leaking into reasoning.",
5
5
  "keywords": [
6
6
  "dsh",