visionclaw 0.1.219-dev.codex-issue-2805-worker-runtime.3 → 0.1.219-dev.codex-2941-task-board-on-main.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/dist/agent/browser-launcher.d.ts +19 -1
- package/dist/agent/browser-launcher.d.ts.map +1 -1
- package/dist/agent/browser-launcher.js +40 -0
- package/dist/agent/browser-launcher.js.map +1 -1
- package/dist/agent/command-handlers.js +2 -2
- package/dist/agent/command-handlers.js.map +1 -1
- package/dist/agent/engines/claude/session.d.ts +6 -0
- package/dist/agent/engines/claude/session.d.ts.map +1 -1
- package/dist/agent/engines/claude/session.js +34 -2
- package/dist/agent/engines/claude/session.js.map +1 -1
- package/dist/agent/engines/pi/tools.d.ts.map +1 -1
- package/dist/agent/engines/pi/tools.js +2 -1
- package/dist/agent/engines/pi/tools.js.map +1 -1
- package/dist/agent/fund-league-hold.d.ts.map +1 -1
- package/dist/agent/fund-league-hold.js +5 -1
- package/dist/agent/fund-league-hold.js.map +1 -1
- package/dist/agent/interrupt-handler.d.ts.map +1 -1
- package/dist/agent/interrupt-handler.js +4 -1
- package/dist/agent/interrupt-handler.js.map +1 -1
- package/dist/agent/lifecycle-trace.d.ts +3 -2
- package/dist/agent/lifecycle-trace.d.ts.map +1 -1
- package/dist/agent/lifecycle-trace.js +4 -9
- package/dist/agent/lifecycle-trace.js.map +1 -1
- package/dist/agent/lifecycle-transitions.d.ts +42 -0
- package/dist/agent/lifecycle-transitions.d.ts.map +1 -1
- package/dist/agent/lifecycle-transitions.js +62 -6
- package/dist/agent/lifecycle-transitions.js.map +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +99 -27
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/public-activity.d.ts +1 -1
- package/dist/agent/public-activity.d.ts.map +1 -1
- package/dist/agent/public-activity.js.map +1 -1
- package/dist/agent/runtime-context.d.ts +2 -0
- package/dist/agent/runtime-context.d.ts.map +1 -1
- package/dist/agent/runtime-context.js +4 -0
- package/dist/agent/runtime-context.js.map +1 -1
- package/dist/agent/service-gate.d.ts.map +1 -1
- package/dist/agent/service-gate.js +4 -1
- package/dist/agent/service-gate.js.map +1 -1
- package/dist/agent/state.d.ts +14 -0
- package/dist/agent/state.d.ts.map +1 -1
- package/dist/agent/state.js +13 -5
- package/dist/agent/state.js.map +1 -1
- package/dist/agent/status.d.ts.map +1 -1
- package/dist/agent/status.js +4 -1
- package/dist/agent/status.js.map +1 -1
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +11 -1
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/tool-call-watchdog.d.ts +7 -0
- package/dist/agent/tool-call-watchdog.d.ts.map +1 -1
- package/dist/agent/tool-call-watchdog.js +32 -2
- package/dist/agent/tool-call-watchdog.js.map +1 -1
- package/dist/agent/wake-cycle-runner.d.ts +11 -0
- package/dist/agent/wake-cycle-runner.d.ts.map +1 -1
- package/dist/agent/wake-cycle-runner.js +42 -9
- package/dist/agent/wake-cycle-runner.js.map +1 -1
- package/dist/channels/interface.d.ts +18 -0
- package/dist/channels/interface.d.ts.map +1 -1
- package/dist/channels/interface.js.map +1 -1
- package/dist/channels/qq-status.d.ts.map +1 -1
- package/dist/channels/qq-status.js +1 -0
- package/dist/channels/qq-status.js.map +1 -1
- package/dist/channels/telegram-status.d.ts +22 -4
- package/dist/channels/telegram-status.d.ts.map +1 -1
- package/dist/channels/telegram-status.js +216 -39
- package/dist/channels/telegram-status.js.map +1 -1
- package/dist/channels/telegram-task-board.d.ts +79 -0
- package/dist/channels/telegram-task-board.d.ts.map +1 -0
- package/dist/channels/telegram-task-board.js +384 -0
- package/dist/channels/telegram-task-board.js.map +1 -0
- package/dist/channels/telegram.d.ts +6 -1
- package/dist/channels/telegram.d.ts.map +1 -1
- package/dist/channels/telegram.js +31 -2
- package/dist/channels/telegram.js.map +1 -1
- package/dist/i18n/messages.d.ts +248 -0
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/i18n/messages.js +79 -13
- package/dist/i18n/messages.js.map +1 -1
- package/dist/obs/tunnel.d.ts +9 -1
- package/dist/obs/tunnel.d.ts.map +1 -1
- package/dist/obs/tunnel.js +121 -54
- package/dist/obs/tunnel.js.map +1 -1
- package/dist/stt-client.d.ts +10 -0
- package/dist/stt-client.d.ts.map +1 -1
- package/dist/stt-client.js +64 -31
- package/dist/stt-client.js.map +1 -1
- package/dist/threads/foreground-task.d.ts +10 -2
- package/dist/threads/foreground-task.d.ts.map +1 -1
- package/dist/threads/foreground-task.js +18 -3
- package/dist/threads/foreground-task.js.map +1 -1
- package/dist/threads/foreman-host.d.ts +13 -1
- package/dist/threads/foreman-host.d.ts.map +1 -1
- package/dist/threads/foreman-host.js +79 -7
- package/dist/threads/foreman-host.js.map +1 -1
- package/dist/threads/foreman-protocol.d.ts +2 -0
- package/dist/threads/foreman-protocol.d.ts.map +1 -1
- package/dist/threads/foreman-protocol.js +3 -1
- package/dist/threads/foreman-protocol.js.map +1 -1
- package/dist/threads/process-group.js +7 -2
- package/dist/threads/process-group.js.map +1 -1
- package/dist/threads/relay-adapter.d.ts +2 -0
- package/dist/threads/relay-adapter.d.ts.map +1 -1
- package/dist/threads/relay-adapter.js +6 -0
- package/dist/threads/relay-adapter.js.map +1 -1
- package/dist/threads/task-settlement.d.ts +17 -0
- package/dist/threads/task-settlement.d.ts.map +1 -0
- package/dist/threads/task-settlement.js +34 -0
- package/dist/threads/task-settlement.js.map +1 -0
- package/dist/threads/thread-activity-controller.d.ts +21 -0
- package/dist/threads/thread-activity-controller.d.ts.map +1 -1
- package/dist/threads/thread-activity-controller.js +111 -3
- package/dist/threads/thread-activity-controller.js.map +1 -1
- package/dist/tools/browser-health.d.ts +2 -0
- package/dist/tools/browser-health.d.ts.map +1 -0
- package/dist/tools/browser-health.js +18 -0
- package/dist/tools/browser-health.js.map +1 -0
- package/dist/tools/browser-set-engine.js +1 -1
- package/dist/tools/browser-set-engine.js.map +1 -1
- package/dist/tools/delegation.d.ts +7 -0
- package/dist/tools/delegation.d.ts.map +1 -1
- package/dist/tools/delegation.js +30 -3
- package/dist/tools/delegation.js.map +1 -1
- package/dist/tools/fund-league.d.ts +4 -0
- package/dist/tools/fund-league.d.ts.map +1 -1
- package/dist/tools/fund-league.js +1 -1
- package/dist/tools/fund-league.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/upgrade.d.ts +2 -1
- package/dist/tools/upgrade.d.ts.map +1 -1
- package/dist/tools/upgrade.js +26 -8
- package/dist/tools/upgrade.js.map +1 -1
- package/dist/utils/restart.d.ts +6 -0
- package/dist/utils/restart.d.ts.map +1 -1
- package/dist/utils/restart.js +7 -1
- package/dist/utils/restart.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +19 -9
- package/dist/utils/version-check.js.map +1 -1
- package/dist-agent/bundle.cjs +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkG,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7K,OAAO,EAAiD,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACtH,OAAO,EAAqC,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC3G,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAI3D,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;IAClD,2EAA2E;IAC3E,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C;;;;OAIG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACzD,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkG,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7K,OAAO,EAAiD,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACtH,OAAO,EAAqC,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC3G,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAI3D,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;IAClD,2EAA2E;IAC3E,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C;;;;OAIG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACzD,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoDD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,uBAAuB,EAAE,uBAAuB,EAChD,cAAc,CAAC,EAAE,0BAA0B,GAC1C,MAAM,CA+OR"}
|
|
@@ -24,6 +24,16 @@ import { RUNTIME_DISCLOSURE_POLICY } from "./runtime-disclosure-policy.js";
|
|
|
24
24
|
const FOREMAN_SECTION = `
|
|
25
25
|
### Background Tasks
|
|
26
26
|
You keep the conversation; background workers do long work, so the user keeps getting real answers while it runs.
|
|
27
|
+
|
|
28
|
+
How to talk about it to the user: to them there is only you. Workers, delegation, task ids, limits and refused or conflicting tool calls are internal machinery; never mention them.
|
|
29
|
+
- Speak in the first person as the one doing the work, e.g. "我另外开着在弄,好了告诉你", "这个我同时在跑,大概几分钟", "I'm on it in parallel and will report back".
|
|
30
|
+
- Say you are on something ("我在弄") only after its delegation was accepted. Leaving out the internal reason never means hiding a failure: if a request did not start, say which one did not start and what you will do next.
|
|
31
|
+
- The words below are off limits only when you describe how you yourself work. When the user asks about an admin console (管理后台), system settings, an app running in the background or similar, answer normally. Never say 后台, 后台任务, 交给/派给, 子任务, 子 agent, worker, background, delegated, handed off or 系统 to the user.
|
|
32
|
+
- Never tell the user that a tool refused, conflicted, hit a limit, or that "the system" did something. Fix it yourself (retry, or use the right tool). If something really cannot be done, say plainly what you could not do and what you will do next, without the internal reason.
|
|
33
|
+
- Your process narration (the text you write between tool calls) can be shown to the user on the progress card, word for word (Fin-App shows it). The same rules apply to it: first person, no internal words, e.g. "我同时开始弄 D 和 E" instead of "我把 D 和 E 交给后台".
|
|
34
|
+
- Several requests in one message: start each one, then give one short reply covering all of them, e.g. "B 和 C 我都开始弄了,好了分别告诉你".
|
|
35
|
+
- When a result comes back, deliver it as your own work ("弄好了:…"), never as "the background task finished".
|
|
36
|
+
|
|
27
37
|
- One task may use at most 3 task tool calls here (files, shell, web, memory); a 4th is refused. If 3 are not enough, or the work is known to be long (reviewing a PR, research, coding, running tests), hand it off with \`delegate_task\`: the goal, the constraints, what is done, what remains and any artifacts. Do not start a worker when you already have the answer; when you only need a clarification, ask the user.
|
|
28
38
|
- Use \`delegate_tasks\` to dispatch independent Tasks in parallel. Each Task has its own id and budget. Default \`result_mode=separate\` needs no parent; select \`combined\` only for one jointly reviewed result. Use \`workspace_mode=read_only\` for pure inspection, \`shared\` for serial edits/tests in the current directory, and \`isolated\` only for explicit parallel modifications. No worker belongs to this conversation.
|
|
29
39
|
- After delegation succeeds, do not duplicate that Task's execution here. You may delegate further independent Tasks, coordinate existing ones, answer questions, and reply. \`finish\` ends only the current chat turn; background Tasks continue.
|
|
@@ -185,7 +195,7 @@ ${proactiveWakeEnabled ? "- Proactive wake events are skipped if you are already
|
|
|
185
195
|
- **Match language**: reply in the same language as the inbound message (Chinese message → Chinese reply).
|
|
186
196
|
- **Match channel**: always reply via the same channel the message arrived on.
|
|
187
197
|
- **No Markdown in chat apps**: WeChat, Feishu, and Telegram do not render Markdown — use plain text and emojis only.
|
|
188
|
-
- **Progress vs chat**: process narration is ordinary assistant text (
|
|
198
|
+
- **Progress vs chat**: process narration is ordinary assistant text (Fin-App shows it on the progress card, not as a chat bubble; Telegram shows neither). The owner reads it: write it in the first person, in the owner's language, and describe what you are doing, not how the system works. \`notify_user\` is the chat message the owner must see — results, questions, blockers, and attachments.
|
|
189
199
|
- **Minimize questions**: take action and report the outcome rather than asking for permission. Only confirm before irreversible actions (large trades, emails to external parties).
|
|
190
200
|
- **Error reporting**: when a tool fails, try alternative approaches before giving up. Report failures clearly: what failed, why, what was tried, and what alternatives remain. For auth/credential errors, re-read memory to verify stored credentials.
|
|
191
201
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAA2C,MAAM,oBAAoB,CAAC;AAC7K,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAyB,MAAM,gCAAgC,CAAC;AACtH,OAAO,EAAE,iCAAiC,EAAkC,MAAM,wBAAwB,CAAC;AAC3G,OAAO,EACL,qCAAqC,GAEtC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAyB3E;;;;;;;;;;;GAWG;AACH,wFAAwF;AACxF,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { ActivityTracker } from "./activity-tracker.js";
|
|
2
2
|
import type { VisionClawConfig } from "../config/types.js";
|
|
3
3
|
import type { BrowserBackend } from "./runtime-surface.js";
|
|
4
|
+
/**
|
|
5
|
+
* How long a shell command says it will wait: the sum of its explicit
|
|
6
|
+
* `sleep N` calls, in ms (0 when none). A command that sleeps on purpose
|
|
7
|
+
* prints nothing until the sleep ends, which looks exactly like a hang, so
|
|
8
|
+
* the smart alarm must not judge it before then.
|
|
9
|
+
*/
|
|
10
|
+
export declare function declaredShellWaitMs(toolName: string, toolInput: string): number;
|
|
4
11
|
/** Info about a tool call that was killed due to timeout. */
|
|
5
12
|
export declare const TOOL_CALL_ABORTED_CODE: "TOOL_CALL_ABORTED";
|
|
6
13
|
export interface ToolTimeoutInfo {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-watchdog.d.ts","sourceRoot":"","sources":["../../src/agent/tool-call-watchdog.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-call-watchdog.d.ts","sourceRoot":"","sources":["../../src/agent/tool-call-watchdog.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAyC3D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAgB/E;AAED,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,EAAG,mBAA4B,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,sBAAsB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wFAAwF;IACxF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAYD;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAXnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,iBAAiB,CAAS;gBAGf,SAAS,EAAE,MAAM,IAAI,EACrB,MAAM,CAAC,EAAE,gBAAgB,YAAA,EACzB,eAAe,CAAC,EAAE,eAAe,YAAA,EACjC,gBAAgB,GAAE,MAAgC,EAClD,cAAc,GAAE,cAA6B,EAC7C,gBAAgB,UAAO;IAW1C,mGAAmG;IACnG,OAAO,CAAC,aAAa;IAQrB,2CAA2C;IAC3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAUzE,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQjC;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAa7F,qEAAqE;IACrE,SAAS,IAAI,eAAe,GAAG,IAAI;IAInC,iFAAiF;IACjF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,oEAAoE;IACpE,OAAO,IAAI,IAAI;IAQf;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAwBV,qBAAqB;IAiCnC;;;;OAIG;YACW,mBAAmB;CAqIlC"}
|
|
@@ -29,6 +29,35 @@ const GENERAL_ALARM_INTERVAL_MS = 30_000;
|
|
|
29
29
|
const ABSOLUTE_TIMEOUT_MS = 30 * 60 * 1000;
|
|
30
30
|
/** How often (ms) the backup watchdog checks for stale tool calls. */
|
|
31
31
|
const WATCHDOG_POLL_INTERVAL_MS = 15_000;
|
|
32
|
+
/** Bare shell tool names on either engine (`Bash`, `bash`, `mcp__…__shell`, …). */
|
|
33
|
+
const SHELL_TOOL_NAME_PATTERN = /(?:^|_)(?:bash|shell|terminal)$/i;
|
|
34
|
+
const SLEEP_PATTERN = /(?:^|[\s;&|(])sleep\s+(\d+(?:\.\d+)?)([smhd]?)(?=$|[\s;&|)])/g;
|
|
35
|
+
const SLEEP_UNIT_MS = { "": 1_000, s: 1_000, m: 60_000, h: 3_600_000, d: 86_400_000 };
|
|
36
|
+
/**
|
|
37
|
+
* How long a shell command says it will wait: the sum of its explicit
|
|
38
|
+
* `sleep N` calls, in ms (0 when none). A command that sleeps on purpose
|
|
39
|
+
* prints nothing until the sleep ends, which looks exactly like a hang, so
|
|
40
|
+
* the smart alarm must not judge it before then.
|
|
41
|
+
*/
|
|
42
|
+
export function declaredShellWaitMs(toolName, toolInput) {
|
|
43
|
+
if (!SHELL_TOOL_NAME_PATTERN.test(toolName))
|
|
44
|
+
return 0;
|
|
45
|
+
let command = toolInput;
|
|
46
|
+
try {
|
|
47
|
+
const parsed = JSON.parse(toolInput);
|
|
48
|
+
if (parsed && typeof parsed === "object" && typeof parsed.command === "string") {
|
|
49
|
+
command = parsed.command;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Not JSON: scan the raw input.
|
|
54
|
+
}
|
|
55
|
+
let total = 0;
|
|
56
|
+
for (const match of command.matchAll(SLEEP_PATTERN)) {
|
|
57
|
+
total += Number(match[1]) * SLEEP_UNIT_MS[match[2]];
|
|
58
|
+
}
|
|
59
|
+
return Number.isFinite(total) ? total : 0;
|
|
60
|
+
}
|
|
32
61
|
/** Info about a tool call that was killed due to timeout. */
|
|
33
62
|
export const TOOL_CALL_ABORTED_CODE = "TOOL_CALL_ABORTED";
|
|
34
63
|
/**
|
|
@@ -198,8 +227,9 @@ export class ToolCallWatchdog {
|
|
|
198
227
|
this.onTimeout();
|
|
199
228
|
return;
|
|
200
229
|
}
|
|
201
|
-
// Not yet time for the next alarm?
|
|
202
|
-
|
|
230
|
+
// Not yet time for the next alarm? An explicit sleep is not judged before
|
|
231
|
+
// it is due to end; the alarms are counted from there.
|
|
232
|
+
const nextAlarmAt = declaredShellWaitMs(info.name, info.input) + GENERAL_ALARM_INTERVAL_MS * (info.alarmCount + 1);
|
|
203
233
|
if (elapsedMs < nextAlarmAt)
|
|
204
234
|
return;
|
|
205
235
|
// Already evaluating or already triggered?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-watchdog.js","sourceRoot":"","sources":["../../src/agent/tool-call-watchdog.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-call-watchdog.js","sourceRoot":"","sources":["../../src/agent/tool-call-watchdog.ts"],"names":[],"mappings":"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"}
|
|
@@ -110,6 +110,17 @@ export declare class WakeCycleRunner {
|
|
|
110
110
|
private silenceRecoveryExhausted;
|
|
111
111
|
/** Recovering only while a spendable bucket is in use. Reset when the wake ends. */
|
|
112
112
|
private recoveryPhase;
|
|
113
|
+
/** Publish Recovering once per wake. Later spends of the same bucket stay there. */
|
|
114
|
+
private enterRecovery;
|
|
115
|
+
/**
|
|
116
|
+
* Publish Running for the attempt that is about to start. Spending a
|
|
117
|
+
* recovery bucket leaves the wake in Recovering, and a pre-turn compaction
|
|
118
|
+
* failure publishes Recovering before `run()` is called. Neither may keep
|
|
119
|
+
* the rest of the wake there: `canDrainRunningTurn` only accepts Running,
|
|
120
|
+
* so a retry that stayed in Recovering would stop injecting mid-turn
|
|
121
|
+
* messages until the wake ended.
|
|
122
|
+
*/
|
|
123
|
+
private beginAttempt;
|
|
113
124
|
/**
|
|
114
125
|
* Watchdog recoveries span multiple queue-driven wakes, so this state lives
|
|
115
126
|
* on the resident runner rather than inside a single run() invocation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wake-cycle-runner.d.ts","sourceRoot":"","sources":["../../src/agent/wake-cycle-runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wake-cycle-runner.d.ts","sourceRoot":"","sources":["../../src/agent/wake-cycle-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { isEmailChannel, presentsAssistantText } from "../channels/interface.js"
|
|
|
9
9
|
import { isCalendarInterruptMessage } from "./owner-initiated-eligibility.js";
|
|
10
10
|
import { emailAddressesMatch } from "../utils/email.js";
|
|
11
11
|
import { EXTERNAL_WAKE_KIND } from "../channels/queue.js";
|
|
12
|
-
import { nextRecoveryPhase } from "./lifecycle-transitions.js";
|
|
12
|
+
import { nextRecoveryPhase, publishLifecycle } from "./lifecycle-transitions.js";
|
|
13
13
|
import { COMPACTION_FAILURE_CONTINUATION, CompactionFailureError } from "./compaction-failure.js";
|
|
14
14
|
import { ToolOutputRepairError } from "./transcript-output-repair.js";
|
|
15
15
|
import { getFallbackEngine, getLlmEffort, getLlmRetryEffort, setFallbackEngine } from "./model-provider.js";
|
|
@@ -396,6 +396,32 @@ export class WakeCycleRunner {
|
|
|
396
396
|
silenceRecoveryExhausted = false;
|
|
397
397
|
/** Recovering only while a spendable bucket is in use. Reset when the wake ends. */
|
|
398
398
|
recoveryPhase = "Running";
|
|
399
|
+
/** Publish Recovering once per wake. Later spends of the same bucket stay there. */
|
|
400
|
+
enterRecovery() {
|
|
401
|
+
if (this.recoveryPhase === "Recovering")
|
|
402
|
+
return;
|
|
403
|
+
this.recoveryPhase = "Recovering";
|
|
404
|
+
publishLifecycle(this.deps.agentState, "Recovering");
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Publish Running for the attempt that is about to start. Spending a
|
|
408
|
+
* recovery bucket leaves the wake in Recovering, and a pre-turn compaction
|
|
409
|
+
* failure publishes Recovering before `run()` is called. Neither may keep
|
|
410
|
+
* the rest of the wake there: `canDrainRunningTurn` only accepts Running,
|
|
411
|
+
* so a retry that stayed in Recovering would stop injecting mid-turn
|
|
412
|
+
* messages until the wake ended.
|
|
413
|
+
*/
|
|
414
|
+
beginAttempt() {
|
|
415
|
+
if (this.recoveryPhase !== "Running")
|
|
416
|
+
this.recoveryPhase = "Running";
|
|
417
|
+
// A held entry belongs to a closed host, not to this attempt. Publishing
|
|
418
|
+
// Running would clear that hold and look like the wake can take work.
|
|
419
|
+
if (this.deps.agentState.entryHeld)
|
|
420
|
+
return;
|
|
421
|
+
if (this.deps.agentState.lifecycle !== "Running") {
|
|
422
|
+
publishLifecycle(this.deps.agentState, "Running");
|
|
423
|
+
}
|
|
424
|
+
}
|
|
399
425
|
/**
|
|
400
426
|
* Watchdog recoveries span multiple queue-driven wakes, so this state lives
|
|
401
427
|
* on the resident runner rather than inside a single run() invocation.
|
|
@@ -495,7 +521,10 @@ export class WakeCycleRunner {
|
|
|
495
521
|
this.malformedRequestRefreshAttempted = false;
|
|
496
522
|
this.emptyTurnRetries = 0;
|
|
497
523
|
this.silenceRecoveryExhausted = false;
|
|
498
|
-
this
|
|
524
|
+
// A pre-turn compaction failure publishes Recovering before this wake is
|
|
525
|
+
// entered. Keep that until the first attempt starts; resetting here used
|
|
526
|
+
// to hide it, so later recovery spends never published Running again.
|
|
527
|
+
this.recoveryPhase = this.deps.agentState.lifecycle === "Recovering" ? "Recovering" : "Running";
|
|
499
528
|
// --- Capture transcript start lines for post-cycle indexing ---
|
|
500
529
|
// Recovery can rotate the session to a new transcript, so anchor by
|
|
501
530
|
// transcript path instead of using a single start line captured at cycle
|
|
@@ -591,6 +620,10 @@ export class WakeCycleRunner {
|
|
|
591
620
|
const effort = tierEffort && silenceAttempt > 1
|
|
592
621
|
? getLlmRetryEffort(tierEffort, silenceAttempt - 1)
|
|
593
622
|
: tierEffort ?? effortSchedule[silenceAttempt - 1];
|
|
623
|
+
// The attempt starts here, not when the previous one spent a recovery
|
|
624
|
+
// bucket. Compaction failure and every retry publish Recovering;
|
|
625
|
+
// staying there would refuse mid-turn messages for the rest of the wake.
|
|
626
|
+
this.beginAttempt();
|
|
594
627
|
const queryStream = activeSession.sendAndStream(messageContent, { effort, externalContextDigest: externalContext.digest });
|
|
595
628
|
try {
|
|
596
629
|
streamResult = await processAgentStream(queryStream, activeSession, activityTracker, config, silenceTimeoutMs);
|
|
@@ -649,7 +682,7 @@ export class WakeCycleRunner {
|
|
|
649
682
|
spent: engineAnswersProbe ? silenceAttempt : MAX_SILENCE_RETRIES,
|
|
650
683
|
});
|
|
651
684
|
if (silencePhase === "Recovering")
|
|
652
|
-
this.
|
|
685
|
+
this.enterRecovery();
|
|
653
686
|
if (silencePhase === "Recovering" && engineAnswersProbe) {
|
|
654
687
|
const nextTimeoutMs = SILENCE_TIMEOUT_SCHEDULE_MS[silenceAttempt] ?? SILENCE_TIMEOUT_SCHEDULE_MS[SILENCE_TIMEOUT_SCHEDULE_MS.length - 1];
|
|
655
688
|
const nextEffort = tierEffort
|
|
@@ -740,7 +773,7 @@ export class WakeCycleRunner {
|
|
|
740
773
|
})
|
|
741
774
|
: null;
|
|
742
775
|
if (networkPhase === "Recovering") {
|
|
743
|
-
this.
|
|
776
|
+
this.enterRecovery();
|
|
744
777
|
transientStreamRetries++;
|
|
745
778
|
logger.system(`Transient stream failure (retry ${transientStreamRetries}/${MAX_TRANSIENT_STREAM_RETRIES}) — retrying the current business turn...`);
|
|
746
779
|
continue;
|
|
@@ -827,7 +860,7 @@ export class WakeCycleRunner {
|
|
|
827
860
|
spent: prematureEndContinuations,
|
|
828
861
|
});
|
|
829
862
|
if (prematurePhase === "Recovering") {
|
|
830
|
-
this.
|
|
863
|
+
this.enterRecovery();
|
|
831
864
|
prematureEndContinuations++;
|
|
832
865
|
logger.warn(`Turn ended without finish — continuing (${prematureEndContinuations}/${MAX_PREMATURE_END_CONTINUATIONS})`);
|
|
833
866
|
messageContent = [{
|
|
@@ -905,7 +938,7 @@ export class WakeCycleRunner {
|
|
|
905
938
|
this.toolAbortRecoveries += 1;
|
|
906
939
|
const retryable = toolAbortPhase === "Recovering";
|
|
907
940
|
if (retryable)
|
|
908
|
-
this.
|
|
941
|
+
this.enterRecovery();
|
|
909
942
|
if (!retryable)
|
|
910
943
|
this.toolAbortRecoveryExhausted = true;
|
|
911
944
|
this.persistToolAbortRecoveryChain();
|
|
@@ -1553,7 +1586,7 @@ export class WakeCycleRunner {
|
|
|
1553
1586
|
}
|
|
1554
1587
|
return { kind: "done", consecutiveErrors };
|
|
1555
1588
|
}
|
|
1556
|
-
this.
|
|
1589
|
+
this.enterRecovery();
|
|
1557
1590
|
this.emptyTurnRetries++;
|
|
1558
1591
|
const message = [
|
|
1559
1592
|
"Your previous turn ended with no additional content. This alone does not indicate whether the task is complete.",
|
|
@@ -1628,7 +1661,7 @@ export class WakeCycleRunner {
|
|
|
1628
1661
|
spent: consecutiveErrors,
|
|
1629
1662
|
});
|
|
1630
1663
|
if (unknownPhase === "Recovering")
|
|
1631
|
-
this.
|
|
1664
|
+
this.enterRecovery();
|
|
1632
1665
|
if (unknownPhase === "Stopping") {
|
|
1633
1666
|
const notice = formatOwnerErrorNotice(category, consecutiveErrors);
|
|
1634
1667
|
logger.warn(`Notifying owner about repeated agent error: ${errMsg}`);
|
|
@@ -1724,7 +1757,7 @@ export class WakeCycleRunner {
|
|
|
1724
1757
|
spent: attempts[recoveryKind],
|
|
1725
1758
|
});
|
|
1726
1759
|
if (outputPhase === "Recovering")
|
|
1727
|
-
this.
|
|
1760
|
+
this.enterRecovery();
|
|
1728
1761
|
if (attempts[recoveryKind] === 0 && outputPhase === "Recovering") {
|
|
1729
1762
|
attempts[recoveryKind]++;
|
|
1730
1763
|
if (!compactionAlreadyFailed) {
|