@senpi/runtime 3.0.186 → 3.0.190
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/actions/llm-decision/openclaw-llm-decision.d.ts +1 -1
- package/dist/actions/llm-decision/openclaw-llm-decision.js +1 -1
- package/dist/approvals/telemetry.d.ts +3 -2
- package/dist/approvals/telemetry.d.ts.map +1 -1
- package/dist/approvals/telemetry.js.map +1 -1
- package/dist/approvals/tool-approval-gate.d.ts +9 -3
- package/dist/approvals/tool-approval-gate.d.ts.map +1 -1
- package/dist/approvals/tool-approval-gate.js +18 -5
- package/dist/approvals/tool-approval-gate.js.map +1 -1
- package/dist/approvals/turn-context.d.ts +43 -18
- package/dist/approvals/turn-context.d.ts.map +1 -1
- package/dist/approvals/turn-context.js +67 -24
- package/dist/approvals/turn-context.js.map +1 -1
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +8 -1
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +12 -2
- package/dist/cli/senpi-commands.js.map +1 -1
- package/dist/deploy/box-cap.d.ts +7 -0
- package/dist/deploy/box-cap.d.ts.map +1 -0
- package/dist/deploy/box-cap.js +13 -0
- package/dist/deploy/box-cap.js.map +1 -0
- package/dist/deploy/funding.d.ts +13 -1
- package/dist/deploy/funding.d.ts.map +1 -1
- package/dist/deploy/funding.js +13 -4
- package/dist/deploy/funding.js.map +1 -1
- package/dist/deploy/job.d.ts +2 -0
- package/dist/deploy/job.d.ts.map +1 -1
- package/dist/deploy/job.js +2 -2
- package/dist/deploy/job.js.map +1 -1
- package/dist/deploy/messages.d.ts +14 -0
- package/dist/deploy/messages.d.ts.map +1 -1
- package/dist/deploy/messages.js +59 -25
- package/dist/deploy/messages.js.map +1 -1
- package/dist/deploy/orchestrator.d.ts +23 -1
- package/dist/deploy/orchestrator.d.ts.map +1 -1
- package/dist/deploy/orchestrator.js +87 -30
- package/dist/deploy/orchestrator.js.map +1 -1
- package/dist/deploy/package.d.ts +14 -1
- package/dist/deploy/package.d.ts.map +1 -1
- package/dist/deploy/package.js +37 -2
- package/dist/deploy/package.js.map +1 -1
- package/dist/deploy/register.d.ts +3 -0
- package/dist/deploy/register.d.ts.map +1 -1
- package/dist/deploy/register.js +50 -33
- package/dist/deploy/register.js.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.d.ts +38 -2
- package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.js +67 -4
- package/dist/dsl/monitor/dsl-failure-events.js.map +1 -1
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +25 -1
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +527 -158
- package/dist/index.js.map +1 -1
- package/dist/runtime/auto-update/coordinator.d.ts +19 -2
- package/dist/runtime/auto-update/coordinator.d.ts.map +1 -1
- package/dist/runtime/auto-update/coordinator.js +104 -20
- package/dist/runtime/auto-update/coordinator.js.map +1 -1
- package/dist/runtime/auto-update/gateway-restart.d.ts +2 -2
- package/dist/runtime/auto-update/gateway-restart.js +1 -1
- package/dist/runtime/auto-update/idle-gate.d.ts +45 -9
- package/dist/runtime/auto-update/idle-gate.d.ts.map +1 -1
- package/dist/runtime/auto-update/idle-gate.js +26 -14
- package/dist/runtime/auto-update/idle-gate.js.map +1 -1
- package/dist/runtime/auto-update/register-idle-gate.d.ts +1 -1
- package/dist/runtime/auto-update/register-idle-gate.d.ts.map +1 -1
- package/dist/runtime/auto-update/register-idle-gate.js +8 -4
- package/dist/runtime/auto-update/register-idle-gate.js.map +1 -1
- package/dist/runtime/auto-update/run-update-command.d.ts +1 -1
- package/dist/runtime/auto-update/run-update-command.js +1 -1
- package/dist/runtime/auto-update/types.d.ts +2 -1
- package/dist/runtime/auto-update/types.d.ts.map +1 -1
- package/dist/runtime/auto-update/types.js.map +1 -1
- package/dist/runtime/auto-update/update-schedule.d.ts +14 -4
- package/dist/runtime/auto-update/update-schedule.d.ts.map +1 -1
- package/dist/runtime/auto-update/update-schedule.js +21 -5
- package/dist/runtime/auto-update/update-schedule.js.map +1 -1
- package/dist/runtime/boot-skip.d.ts +18 -0
- package/dist/runtime/boot-skip.d.ts.map +1 -1
- package/dist/runtime/boot-skip.js +25 -0
- package/dist/runtime/boot-skip.js.map +1 -1
- package/dist/runtime/lifecycle-events.d.ts +2 -2
- package/dist/runtime/lifecycle-events.d.ts.map +1 -1
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/runtime/lifecycle-reaper.d.ts +11 -6
- package/dist/runtime/lifecycle-reaper.d.ts.map +1 -1
- package/dist/runtime/lifecycle-reaper.js +25 -15
- package/dist/runtime/lifecycle-reaper.js.map +1 -1
- package/dist/runtime/notifications.d.ts +10 -0
- package/dist/runtime/notifications.d.ts.map +1 -1
- package/dist/runtime/notifications.js +17 -6
- package/dist/runtime/notifications.js.map +1 -1
- package/dist/runtime/process-state.d.ts +168 -0
- package/dist/runtime/process-state.d.ts.map +1 -0
- package/dist/runtime/process-state.js +81 -0
- package/dist/runtime/process-state.js.map +1 -0
- package/dist/runtime/reconcile-state.d.ts.map +1 -1
- package/dist/runtime/reconcile-state.js +18 -4
- package/dist/runtime/reconcile-state.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +4 -1
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/strategy-registry.d.ts +16 -0
- package/dist/runtime/strategy-registry.d.ts.map +1 -1
- package/dist/runtime/strategy-registry.js +7 -3
- package/dist/runtime/strategy-registry.js.map +1 -1
- package/dist/runtime/update-apply-deps.d.ts +5 -3
- package/dist/runtime/update-apply-deps.d.ts.map +1 -1
- package/dist/runtime/update-apply-deps.js +15 -3
- package/dist/runtime/update-apply-deps.js.map +1 -1
- package/dist/scanners/external/scaffold/preflight.py +492 -12
- package/dist/senpi/__tests__/helpers/fake-paper-mcp.d.ts +44 -0
- package/dist/senpi/__tests__/helpers/fake-paper-mcp.d.ts.map +1 -0
- package/dist/senpi/__tests__/helpers/fake-paper-mcp.js +129 -0
- package/dist/senpi/__tests__/helpers/fake-paper-mcp.js.map +1 -0
- package/dist/senpi/client.d.ts +40 -2
- package/dist/senpi/client.d.ts.map +1 -1
- package/dist/senpi/client.js +82 -15
- package/dist/senpi/client.js.map +1 -1
- package/dist/senpi/paper.d.ts +28 -0
- package/dist/senpi/paper.d.ts.map +1 -0
- package/dist/senpi/paper.js +35 -0
- package/dist/senpi/paper.js.map +1 -0
- package/dist/senpi/strategy-status.d.ts.map +1 -1
- package/dist/senpi/strategy-status.js +2 -0
- package/dist/senpi/strategy-status.js.map +1 -1
- package/dist/senpi/types.d.ts +8 -1
- package/dist/senpi/types.d.ts.map +1 -1
- package/dist/telemetry/box-memory.d.ts +29 -0
- package/dist/telemetry/box-memory.d.ts.map +1 -0
- package/dist/telemetry/box-memory.js +113 -0
- package/dist/telemetry/box-memory.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +22 -1
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +83 -1
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry/spans/span-hooks.d.ts +1 -1
- package/dist/telemetry/spans/span-hooks.d.ts.map +1 -1
- package/dist/telemetry/spans/span-hooks.js +5 -2
- package/dist/telemetry/spans/span-hooks.js.map +1 -1
- package/dist/telemetry/trace-identity.d.ts.map +1 -1
- package/dist/telemetry/trace-identity.js +2 -0
- package/dist/telemetry/trace-identity.js.map +1 -1
- package/dist/test-setup.js +7 -1
- package/dist/test-setup.js.map +1 -1
- package/dist/tool-surface/crib-hook.d.ts.map +1 -1
- package/dist/tool-surface/crib-hook.js +8 -0
- package/dist/tool-surface/crib-hook.js.map +1 -1
- package/dist/tool-surface/crib-sheet.d.ts +1 -1
- package/dist/tool-surface/crib-sheet.js +1 -1
- package/dist/tool-surface/mcp-tool-source.d.ts +1 -1
- package/dist/tool-surface/mcp-tool-source.js +2 -2
- package/dist/universe/package-universe.js +1 -1
- package/dist/universe/package-universe.js.map +1 -1
- package/dist/utils/event-catalog.d.ts +34 -4
- package/dist/utils/event-catalog.d.ts.map +1 -1
- package/dist/utils/event-catalog.js +6 -0
- package/dist/utils/event-catalog.js.map +1 -1
- package/dist/validate/codes.d.ts +2 -0
- package/dist/validate/codes.d.ts.map +1 -1
- package/dist/validate/codes.js +6 -0
- package/dist/validate/codes.js.map +1 -1
- package/dist/validate/live-stage.d.ts +12 -0
- package/dist/validate/live-stage.d.ts.map +1 -1
- package/dist/validate/live-stage.js +16 -0
- package/dist/validate/live-stage.js.map +1 -1
- package/dist/widgets/tool.d.ts +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -38,7 +38,7 @@ export declare function splitProviderModel(raw: string | undefined): {
|
|
|
38
38
|
* Whether the host's llm-task plugin accepts a `provider`/`model` in the call:
|
|
39
39
|
* `plugins.entries["llm-task"].llm.allowModelOverride === true` in a whole
|
|
40
40
|
* OpenClaw config. OpenClaw 10.x refuses any override without it
|
|
41
|
-
* (`openclaw-worktrees/v2026.10.10
|
|
41
|
+
* (`openclaw-worktrees/v2026.10.10/src/plugins/runtime/runtime-llm.runtime.ts:414-463`,
|
|
42
42
|
* policy owner = the calling plugin, `llm-task`). senpi-agent sets it (A7).
|
|
43
43
|
*/
|
|
44
44
|
export declare function llmTaskModelOverrideAllowed(config: unknown): boolean;
|
|
@@ -52,7 +52,7 @@ export function splitProviderModel(raw) {
|
|
|
52
52
|
* Whether the host's llm-task plugin accepts a `provider`/`model` in the call:
|
|
53
53
|
* `plugins.entries["llm-task"].llm.allowModelOverride === true` in a whole
|
|
54
54
|
* OpenClaw config. OpenClaw 10.x refuses any override without it
|
|
55
|
-
* (`openclaw-worktrees/v2026.10.10
|
|
55
|
+
* (`openclaw-worktrees/v2026.10.10/src/plugins/runtime/runtime-llm.runtime.ts:414-463`,
|
|
56
56
|
* policy owner = the calling plugin, `llm-task`). senpi-agent sets it (A7).
|
|
57
57
|
*/
|
|
58
58
|
export function llmTaskModelOverrideAllowed(config) {
|
|
@@ -5,7 +5,8 @@ import type { TurnKind } from "./turn-context.js";
|
|
|
5
5
|
* while the prompt was open, the host had no route or surface to ask (on
|
|
6
6
|
* 10.x, before any tool runs), or the gate itself stopped a gated call in a
|
|
7
7
|
* scheduled turn (`cancelReason: "scheduled_turn"`) or in another run that is
|
|
8
|
-
* not a direct chat turn (`"not_chat_turn"`, D15)
|
|
8
|
+
* classified as not a direct chat turn (`"not_chat_turn"`, D15) or never
|
|
9
|
+
* classified at all (`"run_unclassified"`, which may be a refused chat turn). The wait time tells a user
|
|
9
10
|
* abort (long) from a no-route cancellation (milliseconds). `granted` is not a
|
|
10
11
|
* prompt outcome: the call ran under a stored "Always allow" grant with no
|
|
11
12
|
* prompt (D16), recorded with its run kind.
|
|
@@ -18,7 +19,7 @@ export interface ApprovalResolutionContext {
|
|
|
18
19
|
/** `chat` | `cron` | `heartbeat` | `other` | `unknown`; stamped as `senpi.turn.kind`. */
|
|
19
20
|
turnKind?: TurnKind;
|
|
20
21
|
/** Why the gate cancelled the call itself; stamped as `senpi.tool_approval.cancel_reason`. */
|
|
21
|
-
cancelReason?: "scheduled_turn" | "not_chat_turn";
|
|
22
|
+
cancelReason?: "scheduled_turn" | "not_chat_turn" | "run_unclassified";
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* Telemetry seam for the MCP tool approval gate.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/approvals/telemetry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/approvals/telemetry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE5G,2FAA2F;AAC3F,MAAM,WAAW,yBAAyB;IACxC,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,gBAAgB,GAAG,eAAe,GAAG,kBAAkB,CAAC;CACxE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;OAUG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAAC;IACR;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAC3E;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAC7D;AAID,qDAAqD;AACrD,eAAO,MAAM,oBAAoB,EAAE,aAgClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/approvals/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/approvals/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA0ElD,MAAM,WAAW,GAAG,YAAY,CAAC,wBAAwB,CAAC,CAAC;AAE3D,qDAAqD;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;QACnD,MAAM,MAAM,GAAG,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,CAAC;QACzF,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE;YAC3E,IAAI,EAAE,iBAAiB,QAAQ,QAAQ,QAAQ,EAAE;YACjD,UAAU,EAAE,UAAU,CAAmD;gBACvE,kBAAkB,EAAE,QAAQ;gBAC5B,8BAA8B,EAAE,QAAQ;gBACxC,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC;gBACtC,6BAA6B,EAC3B,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrG,wBAAwB,EAAE,OAAO,EAAE,UAAU;gBAC7C,iBAAiB,EAAE,OAAO,EAAE,QAAQ;gBACpC,mCAAmC,EAAE,OAAO,EAAE,YAAY;aAC3D,CAAC;SACH,CAAC,CAAC;QACH,sBAAsB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,MAAM;QACrB,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1F,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,SAAS,CAAC,GAAG,EAAE,QAAQ;QACrB,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,EAAE,OAAO,EAAE;YAC3D,IAAI,EAAE,iCAAiC,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,UAAU,EAAE,UAAU,CAAoD;gBACxE,kBAAkB,EAAE,QAAQ;gBAC5B,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC;YACF,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC5E,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -135,20 +135,26 @@ export interface RegisterToolApprovalGateOptions {
|
|
|
135
135
|
* the setting never blocks a chat trade.
|
|
136
136
|
*/
|
|
137
137
|
turnClassification?: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Called when a gated call is blocked because its run reads `unknown` (no run id, a run the
|
|
140
|
+
* tracker never recorded, or one with no trigger). Fed into the approvals status, so a box
|
|
141
|
+
* refusing chat trades this way shows up there.
|
|
142
|
+
*/
|
|
143
|
+
onUnclassifiedBlock?: (at: number) => void;
|
|
138
144
|
/** Clock for the approval wait time. Default `Date.now`. */
|
|
139
145
|
now?: () => number;
|
|
140
146
|
}
|
|
141
147
|
/**
|
|
142
148
|
* The text the model reads when the gate stops a gated call in a scheduled
|
|
143
|
-
* turn (D13). On 10.10
|
|
149
|
+
* turn (D13). On 10.10 the host's own outcome for such an approval is
|
|
144
150
|
* a sentence the plugin cannot change and the model cannot act on: for a tool
|
|
145
151
|
* whose hook context carries the run trigger it cancels with "Plugin approval
|
|
146
152
|
* unavailable: cron runs have no approval-capable initiating surface."
|
|
147
|
-
* (`openclaw-worktrees/v2026.10.10
|
|
153
|
+
* (`openclaw-worktrees/v2026.10.10/src/agents/agent-tools.before-tool-call.approval.ts:171-199,320-330`);
|
|
148
154
|
* the `senpi__` MCP tools are wrapped without the trigger
|
|
149
155
|
* (`src/agents/embedded-agent-runner/run/attempt-tool-prepare.ts:468-485`), so
|
|
150
156
|
* the host asks the gateway instead, which fails with "Plugin approval
|
|
151
|
-
* unavailable (no approval route)" (
|
|
157
|
+
* unavailable (no approval route)" (`agent-tools.before-tool-call.approval.ts:381`) when no approval client is
|
|
152
158
|
* connected. The gate blocks first, in every scheduled turn. This text says
|
|
153
159
|
* what happened and the one step that works: the user asks in chat, where the
|
|
154
160
|
* approval prompt can be shown. It names no other route.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-approval-gate.d.ts","sourceRoot":"","sources":["../../src/approvals/tool-approval-gate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-approval-gate.d.ts","sourceRoot":"","sources":["../../src/approvals/tool-approval-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -208,15 +208,15 @@ export class PendingApprovalTracker {
|
|
|
208
208
|
}
|
|
209
209
|
/**
|
|
210
210
|
* The text the model reads when the gate stops a gated call in a scheduled
|
|
211
|
-
* turn (D13). On 10.10
|
|
211
|
+
* turn (D13). On 10.10 the host's own outcome for such an approval is
|
|
212
212
|
* a sentence the plugin cannot change and the model cannot act on: for a tool
|
|
213
213
|
* whose hook context carries the run trigger it cancels with "Plugin approval
|
|
214
214
|
* unavailable: cron runs have no approval-capable initiating surface."
|
|
215
|
-
* (`openclaw-worktrees/v2026.10.10
|
|
215
|
+
* (`openclaw-worktrees/v2026.10.10/src/agents/agent-tools.before-tool-call.approval.ts:171-199,320-330`);
|
|
216
216
|
* the `senpi__` MCP tools are wrapped without the trigger
|
|
217
217
|
* (`src/agents/embedded-agent-runner/run/attempt-tool-prepare.ts:468-485`), so
|
|
218
218
|
* the host asks the gateway instead, which fails with "Plugin approval
|
|
219
|
-
* unavailable (no approval route)" (
|
|
219
|
+
* unavailable (no approval route)" (`agent-tools.before-tool-call.approval.ts:381`) when no approval client is
|
|
220
220
|
* connected. The gate blocks first, in every scheduled turn. This text says
|
|
221
221
|
* what happened and the one step that works: the user asks in chat, where the
|
|
222
222
|
* approval prompt can be shown. It names no other route.
|
|
@@ -324,13 +324,26 @@ export function registerToolApprovalGate(options) {
|
|
|
324
324
|
block: true,
|
|
325
325
|
blockReason: scheduledTurnBlockReason({ wireName: name, kind: runKind, isTrade, summary }),
|
|
326
326
|
};
|
|
327
|
+
if (runKind === "unknown") {
|
|
328
|
+
// Failing closed is right, but this may be a user in chat being refused. Counted ahead
|
|
329
|
+
// of the telemetry, so an exporter failure can't hide it from `senpi status`.
|
|
330
|
+
try {
|
|
331
|
+
options.onUnclassifiedBlock?.(now());
|
|
332
|
+
logger?.warn(`[senpi-tool-approvals] gated call blocked: its run was not classified, so it may be a chat turn being refused | tool=${tool} runId=${typeof runId === "string" && runId ? runId : "none"}`);
|
|
333
|
+
}
|
|
334
|
+
catch {
|
|
335
|
+
// Reporting must never decide whether a trade runs.
|
|
336
|
+
}
|
|
337
|
+
}
|
|
327
338
|
try {
|
|
328
339
|
telemetry.resolved(name, "cancelled", isTrade, 0, {
|
|
329
340
|
...resolutionContext(turn),
|
|
330
341
|
turnKind: runKind,
|
|
331
|
-
cancelReason: scheduled ? "scheduled_turn" : "not_chat_turn",
|
|
342
|
+
cancelReason: scheduled ? "scheduled_turn" : runKind === "unknown" ? "run_unclassified" : "not_chat_turn",
|
|
332
343
|
});
|
|
333
|
-
|
|
344
|
+
if (runKind !== "unknown") {
|
|
345
|
+
logger?.info(`[senpi-tool-approvals] gated call outside a chat turn blocked | tool=${tool} turn=${runKind}`);
|
|
346
|
+
}
|
|
334
347
|
}
|
|
335
348
|
catch {
|
|
336
349
|
// Telemetry must never decide whether a trade runs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-approval-gate.js","sourceRoot":"","sources":["../../src/approvals/tool-approval-gate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-approval-gate.js","sourceRoot":"","sources":["../../src/approvals/tool-approval-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,yBAAyB,GAG1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAsD,MAAM,gBAAgB,CAAC;AA2C1G,yFAAyF;AACzF,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAE7D,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAiB;IAC9C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAKxC;IACC,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,yBAAyB,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvF,MAAM,UAAU,GAA8C;QAC5D,EAAE,MAAM,EAAE,OAAO,sBAAsB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE;QACxF,EAAE,MAAM,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE;KACvF,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YACxF,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GACd,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAC/F,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,IAAI,CACjB,uCAAuC,SAAS,CAAC,MAAM,UAAU,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,6BAA6B,eAAe,6BAA6B,CAC1K,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,SAAiB;IAChD,OAAO,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;AACjF,CAAC;AAED,SAAS,GAAG,CAAC,KAAc;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kGAAkG;AAClG,SAAS,YAAY,CACnB,KAAyB,EACzB,SAA6B,EAC7B,MAA0B,EAC1B,QAA4B;IAE5B,MAAM,KAAK,GAAG,CAAC,UAAU,SAAS,IAAI,EAAE,gBAAgB,KAAK,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7F,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IAC5C,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,MAAe;IACjE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IACpD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,wFAAwF;YACxF,2DAA2D;YAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;gBAC3F,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,MAAM;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,YAAY,CACV,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,EACpC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,EAC5C,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,EAC9C,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAC5B,CACF;qBACA,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YACD,OAAO,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,gBAAgB;YACnB,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,MAAM;QACR,KAAK,eAAe;YAClB,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,MAAM;QACR,KAAK,cAAc;YACjB,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,iBAAiB,CAAC;QACvB,KAAK,iCAAiC;YACpC,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,MAAM;QACR,KAAK,gBAAgB,CAAC;QACtB,KAAK,0BAA0B;YAC7B,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,iBAAiB;YACpB,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM;QACR,KAAK,gBAAgB;YACnB,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,iBAAiB;YACpB,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,qBAAqB,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7F,MAAM;QACR,KAAK,yBAAyB;YAC5B,KAAK,CAAC,IAAI,CACR,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAClF,CAAC;YACF,MAAM;QACR,KAAK,wBAAwB;YAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,MAAM;QACR;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,MAAe;IACpE,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,yBAAyB,CAAC;IACnC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC;IAC/C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,OAAO,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,sBAAsB;IASd;IACA;IATF,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,GAAG,CAAC,CAAC;IAEnB;;;OAGG;IACH,YACmB,UAAU,MAAM,EAChB,MAAoB,IAAI,CAAC,GAAG;QAD5B,YAAO,GAAP,OAAO,CAAS;QAChB,QAAG,GAAH,GAAG,CAAyB;IAC5C,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,SAAiB;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,wEAAwE;IACxE,GAAG,CAAC,EAAU;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,GAAG,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;CACF;AAsCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAKxC;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC7G,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;IACxE,MAAM,GAAG,GAAG,SAAS;QACnB,CAAC,CAAC,uBAAuB,MAAM,CAAC,IAAI,4BAA4B;QAChE,CAAC,CAAC,6DAA6D,CAAC;IAClE,OAAO,CACL,OAAO,IAAI,sBAAsB,MAAM,CAAC,QAAQ,mCAAmC,GAAG,IAAI;QAC1F,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,yDAAyD,CAAC,CAAC,CAAC,GAAG,IAAI,qCAAqC,CAAC;QAC7H,iBAAiB,KAAK,iFAAiF;QACvG,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,uGAAuG,CACxG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAwC;IAExC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,yBAAyB,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,oBAAoB,CAAC;IAC5D,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,iBAAiB,GAAG,CAAC,IAAiB,EAA6B,EAAE,CAAC,CAAC;QAC3E,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,QAAQ,EAAE,IAAI,CAAC,IAAI;KACpB,CAAC,CAAC;IACH,MAAM,EAAE,IAAI,CACV,yCAAyC,IAAI,eAAe,UAAU,CAAC,IAAI,gBAAgB,KAAK,CAAC,IAAI,cAAc,SAAS,EAAE,CAC/H,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAc,EAAE,GAAY,EAAE,EAAE;QAC1D,+EAA+E;QAC/E,yEAAyE;QACzE,yEAAyE;QACzE,0CAA0C;QAC1C,IAAI,QAA4B,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,KAA8E,CAAC;YAC1F,QAAQ,GAAG,OAAO,EAAE,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,CAAC,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAiD,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1G,MAAM,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC;YACpC,MAAM,IAAI,GAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;gBACpD,KAAK;gBACL,UAAU,EAAE,CAAC,EAAE,UAAU;aAC1B,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACtH,qEAAqE;YACrE,sEAAsE;YACtE,qEAAqE;YACrE,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,UAAU,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnG,CAAC;gBAAC,MAAM,CAAC;oBACP,mDAAmD;gBACrD,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,0EAA0E;YAC1E,yEAAyE;YACzE,yEAAyE;YACzE,iEAAiE;YACjE,uEAAuE;YACvE,oEAAoE;YACpE,MAAM,OAAO,GAAa,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChG,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC9D,MAAM,SAAS,GAAG,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,WAAW,CAAC;gBAChE,MAAM,IAAI,GAAG,QAAQ,IAAI,UAAU,IAAI,EAAE,CAAC;gBAC1C,IAAI,OAA2B,CAAC;gBAChC,IAAI,CAAC;oBACH,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,GAAG,SAAS,CAAC;gBACtB,CAAC;gBACD,qEAAqE;gBACrE,kEAAkE;gBAClE,MAAM,OAAO,GAAG;oBACd,KAAK,EAAE,IAAa;oBACpB,WAAW,EAAE,wBAAwB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;iBAC3F,CAAC;gBACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,uFAAuF;oBACvF,8EAA8E;oBAC9E,IAAI,CAAC;wBACH,OAAO,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;wBACrC,MAAM,EAAE,IAAI,CACV,wHAAwH,IAAI,UAAU,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAC5L,CAAC;oBACJ,CAAC;oBAAC,MAAM,CAAC;wBACP,oDAAoD;oBACtD,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC;oBACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE;wBAChD,GAAG,iBAAiB,CAAC,IAAI,CAAC;wBAC1B,QAAQ,EAAE,OAAO;wBACjB,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe;qBAC1G,CAAC,CAAC;oBACH,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,MAAM,EAAE,IAAI,CAAC,wEAAwE,IAAI,SAAS,OAAO,EAAE,CAAC,CAAC;oBAC/G,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,oDAAoD;gBACtD,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;YACtB,OAAO;gBACL,eAAe,EAAE;oBACf,KAAK,EAAE,QAAQ,CAAC,yBAAyB,IAAI,EAAE,EAAE,gBAAgB,CAAC;oBAClE,WAAW,EAAE,wBAAwB,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC;oBACvD,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,UAAoB,CAAC,CAAC,CAAE,SAAmB;oBAChE,SAAS;oBACT,eAAe,EAAE,MAAe;oBAChC,YAAY,EAAE,CAAC,QAAiB,EAAE,EAAE;wBAClC,IAAI,SAAS,KAAK,SAAS;4BAAE,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;wBACtE,MAAM,IAAI,GAAG,QAAQ,IAAI,UAAU,IAAI,EAAE,CAAC;wBAC1C,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;4BAChC,IAAI,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gCACpC,MAAM,EAAE,IAAI,CAAC,wDAAwD,IAAI,EAAE,CAAC,CAAC;4BAC/E,CAAC;iCAAM,CAAC;gCACN,MAAM,EAAE,IAAI,CACV,+FAA+F;oCAC7F,6FAA6F,IAAI,EAAE,CACtG,CAAC;4BACJ,CAAC;wBACH,CAAC;6BAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;4BAC/B,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;wBACxC,CAAC;6BAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;4BAClC,gEAAgE;4BAChE,gEAAgE;4BAChE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;wBAC7C,CAAC;wBACD,gEAAgE;wBAChE,+DAA+D;wBAC/D,mEAAmE;wBACnE,kEAAkE;wBAClE,wDAAwD;wBACxD,IACE,QAAQ,KAAK,YAAY;4BACzB,QAAQ,KAAK,cAAc;4BAC3B,QAAQ,KAAK,MAAM;4BACnB,QAAQ,KAAK,SAAS;4BACtB,QAAQ,KAAK,WAAW,EACxB,CAAC;4BACD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;wBACrG,CAAC;oBACH,CAAC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,oEAAoE;YACpE,MAAM,EAAE,IAAI,CACV,2EAA2E,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9H,CAAC;YACF,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* heartbeat, or another run (R6, D13, D15).
|
|
4
4
|
*
|
|
5
5
|
* The tool hooks' context carries no run trigger on any host
|
|
6
|
-
* (`PluginHookToolContext`, `openclaw-worktrees/v2026.10.10
|
|
6
|
+
* (`PluginHookToolContext`, `openclaw-worktrees/v2026.10.10/src/plugins/hook-types.ts:526-548`),
|
|
7
7
|
* but `before_prompt_build`'s agent context does (`trigger`, same field on
|
|
8
8
|
* 5.7, 5.12 and 10.x), and both carry the run id. The tracker records
|
|
9
|
-
* `runId → {sessionKey,
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* `runId → {sessionKey, kind}` at prompt build and keeps it for the life of the
|
|
10
|
+
* run, so the approval gate can read the turn kind of the call it is gating.
|
|
11
|
+
* `agent_end` does not end that: 10.x fires it per attempt, not per run.
|
|
12
12
|
*
|
|
13
13
|
* On 10.x `before_prompt_build` is a conversation hook: without
|
|
14
14
|
* `plugins.entries.runtime.hooks.allowConversationAccess` nothing is recorded
|
|
@@ -40,8 +40,8 @@ export interface TurnContextReader {
|
|
|
40
40
|
export declare function turnKindOf(trigger: unknown): TurnKind;
|
|
41
41
|
/**
|
|
42
42
|
* A session the host creates for a spawned child: `agent:<id>:subagent:<uuid>`
|
|
43
|
-
* (10.10 `src/agents/
|
|
44
|
-
* at `subagent-spawn-child-plan.ts:
|
|
43
|
+
* (10.10 `src/agents/spawn-plan.ts:64-65`, `:subagent:incognito-…`
|
|
44
|
+
* at `subagent-spawn-child-plan.ts:96`; 5.12/5.7 `subagent-spawn.ts:829/821`)
|
|
45
45
|
* or an ACP child `agent:<id>:acp:<uuid>`.
|
|
46
46
|
*/
|
|
47
47
|
export declare function isChildSession(sessionKey: string | undefined): boolean;
|
|
@@ -65,7 +65,7 @@ export declare const SESSIONS_SEND_MATCH_WINDOW_MS: number;
|
|
|
65
65
|
*
|
|
66
66
|
* 1. `trigger` `cron` / `heartbeat` → that kind.
|
|
67
67
|
* 2. A `sessions_send` target (`inputProvenance` `inter_session` with
|
|
68
|
-
* `sourceTool: "sessions_send"`, 10.10 `sessions-send-tool.ts:
|
|
68
|
+
* `sourceTool: "sessions_send"`, 10.10 `sessions-send-tool.ts:470-476`) →
|
|
69
69
|
* the kind of the run that SENT it. The provenance names only the source
|
|
70
70
|
* session, not the sending run, so the sending run is identified from the
|
|
71
71
|
* `sessions_send` call itself: {@link onToolCall} records the calling run's
|
|
@@ -102,15 +102,15 @@ export declare const SESSIONS_SEND_MATCH_WINDOW_MS: number;
|
|
|
102
102
|
* `subagent_spawned` consumes the oldest pending spawn from the requester
|
|
103
103
|
* session, with the same window and ambiguity rules. Unmatched → `other`.
|
|
104
104
|
* 10.10 hard-codes `trigger: "user"` for these runs
|
|
105
|
-
* (`attempt-execution.ts:
|
|
105
|
+
* (`attempt-execution.ts:362`), and fires `subagent_spawned` after the
|
|
106
106
|
* gateway accepted the child (`subagent-spawn.ts:667`), so a child
|
|
107
107
|
* classified first reads `other` until its origin arrives.
|
|
108
108
|
* 4. `trigger` `event` or `inputProvenance.kind === "internal_system"` (a
|
|
109
|
-
* continuation after background work, `session-event-
|
|
109
|
+
* continuation after background work, `session-event-context.ts:86`;
|
|
110
110
|
* neither carries the originating run) → `other`.
|
|
111
111
|
* 5. A `jobId`, or a `cron:` session, with a non-cron trigger → `other`.
|
|
112
112
|
* 6. `trigger` `user` with no provenance or `external_user` provenance (a
|
|
113
|
-
* webchat `chat.send` turn: `reply-turn-kind.ts:18-
|
|
113
|
+
* webchat `chat.send` turn: `reply-turn-kind.ts:18-24`,
|
|
114
114
|
* `chat-send-user-turn.ts:206`) → `chat`.
|
|
115
115
|
* 7. Any other trigger → `other`; none → `unknown`.
|
|
116
116
|
*
|
|
@@ -131,8 +131,11 @@ export declare class TurnContextTracker implements TurnContextReader {
|
|
|
131
131
|
private origins;
|
|
132
132
|
/** Sends whose target run started, waiting for their reply-back run, oldest first. */
|
|
133
133
|
private exchanges;
|
|
134
|
+
/** Runs recorded since this tracker started; see {@link runsRecorded}. */
|
|
135
|
+
private recorded;
|
|
134
136
|
/**
|
|
135
|
-
* @param maxRuns - Runs kept at once
|
|
137
|
+
* @param maxRuns - Runs kept at once, ended ones included (see {@link onRunEnd}); the oldest
|
|
138
|
+
* is dropped past it. A later call of a dropped run reads `unknown`; a retry classifies anew.
|
|
136
139
|
* @param now - Clock for the `sessions_send` match window.
|
|
137
140
|
*/
|
|
138
141
|
constructor(maxRuns?: number, now?: () => number);
|
|
@@ -157,9 +160,14 @@ export declare class TurnContextTracker implements TurnContextReader {
|
|
|
157
160
|
* Records a run from a `before_prompt_build` agent context. Malformed input
|
|
158
161
|
* is ignored. A run is classified once: 10.x fires the hook again for each
|
|
159
162
|
* retry attempt of the same run (after compaction, a model or auth
|
|
160
|
-
* failover),
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
+
* failover), after an `agent_end` for the attempt before it, and by then the
|
|
164
|
+
* origin call or exchange that classified it is consumed, so re-classifying
|
|
165
|
+
* would turn a chat-originated run into `other`. The first answer stands,
|
|
166
|
+
* whatever it was; a scheduled run stays scheduled. Host run ids are fresh per
|
|
167
|
+
* run, so a retained id only ever comes back as a retry (10.10 cron
|
|
168
|
+
* `isolated-agent/run.ts:142`, follow-ups `followup-turn-admission.ts:305`,
|
|
169
|
+
* replies `agent-runner-execution.ts:703`). A caller-supplied id (a `chat.send`
|
|
170
|
+
* or announce idempotency key) names one message; reused, it keeps its first answer.
|
|
163
171
|
*/
|
|
164
172
|
onPromptBuild(ctx: unknown): void;
|
|
165
173
|
/**
|
|
@@ -168,7 +176,16 @@ export declare class TurnContextTracker implements TurnContextReader {
|
|
|
168
176
|
* session (consumed), or `other` when none matches. Malformed input is ignored.
|
|
169
177
|
*/
|
|
170
178
|
onSubagentSpawned(ctx: unknown, event?: unknown): void;
|
|
171
|
-
/**
|
|
179
|
+
/** How many runs `before_prompt_build` has recorded since this tracker started. */
|
|
180
|
+
get runsRecorded(): number;
|
|
181
|
+
/**
|
|
182
|
+
* An attempt ended (`agent_end`). The run's entry stays: 10.10 fires this per
|
|
183
|
+
* attempt with no retry guard (`run/attempt-finalize.ts:305-308`), a retry keeps
|
|
184
|
+
* the run id, and the hook is fire-and-forget, so it can even land after the
|
|
185
|
+
* retry's prompt build. `maxRuns` bounds the entries. Only the run's claim on
|
|
186
|
+
* its session goes, so a call with no run id never reads a run that ended
|
|
187
|
+
* (`unknown`, which the gate refuses).
|
|
188
|
+
*/
|
|
172
189
|
onRunEnd(runId: unknown): void;
|
|
173
190
|
/**
|
|
174
191
|
* The turn of a tool call: by run id, else by the session's latest recorded
|
|
@@ -198,7 +215,10 @@ export declare class TurnContextTracker implements TurnContextReader {
|
|
|
198
215
|
private sendOriginKind;
|
|
199
216
|
/** A session's last classified run kind, or `other` when it is unknown (not resolvable is not chat). */
|
|
200
217
|
private kindOfSession;
|
|
218
|
+
/** Drops a run for good: the eviction past `maxRuns`. */
|
|
201
219
|
private forget;
|
|
220
|
+
/** Stops `runId` being its session's latest run; a newer run in that session is left alone. */
|
|
221
|
+
private releaseSession;
|
|
202
222
|
}
|
|
203
223
|
/**
|
|
204
224
|
* Whether this host lets the runtime classify the run a gated call belongs to:
|
|
@@ -242,10 +262,15 @@ export declare function turnClassificationAvailable(params: {
|
|
|
242
262
|
* `approvals`, `openclaw senpi status`). `unavailable` means every run is asked as before
|
|
243
263
|
* this release, scheduled runs included: a box config to fix, or (on 5.x) a host limit.
|
|
244
264
|
* `hostLimit` marks the 5.x case: nothing on the box can change it, so `senpi status`
|
|
245
|
-
* does not print it as a warning.
|
|
265
|
+
* does not print it as a warning. On `available`, `unclassifiedBlocks` counts gated calls blocked
|
|
266
|
+
* since the gateway started because their run was not classified, against `runsRecorded`: a box
|
|
267
|
+
* whose hooks stopped seeing its runs refuses every chat trade while still reading `available`.
|
|
246
268
|
*/
|
|
247
269
|
export type ApprovalsHostStatus = {
|
|
248
270
|
turnClassification: "available";
|
|
271
|
+
runsRecorded?: number;
|
|
272
|
+
unclassifiedBlocks?: number;
|
|
273
|
+
lastUnclassifiedBlockAt?: string;
|
|
249
274
|
} | {
|
|
250
275
|
turnClassification: "unavailable";
|
|
251
276
|
reason?: string;
|
|
@@ -257,8 +282,8 @@ export type ApprovalsHostStatus = {
|
|
|
257
282
|
* conversation hook on any host), `before_tool_call` / `after_tool_call`
|
|
258
283
|
* (observe `sessions_send` and `sessions_spawn` calls and their results only,
|
|
259
284
|
* to identify the run that started a target or a child; return nothing, so
|
|
260
|
-
* they decide nothing) and `agent_end` (
|
|
261
|
-
*
|
|
285
|
+
* they decide nothing) and `agent_end` (the run stops being its session's latest; refused
|
|
286
|
+
* without conversation access, where nothing is recorded anyway). Handlers never throw.
|
|
262
287
|
*/
|
|
263
288
|
export declare function registerTurnContextHooks(params: {
|
|
264
289
|
api: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-context.d.ts","sourceRoot":"","sources":["../../src/approvals/turn-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,uFAAuF;AACvF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3E,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW,CAAC;CACxE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAMrD;AAiBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGtE;AAsBD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,QAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-context.d.ts","sourceRoot":"","sources":["../../src/approvals/turn-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* heartbeat, or another run (R6, D13, D15).
|
|
4
4
|
*
|
|
5
5
|
* The tool hooks' context carries no run trigger on any host
|
|
6
|
-
* (`PluginHookToolContext`, `openclaw-worktrees/v2026.10.10
|
|
6
|
+
* (`PluginHookToolContext`, `openclaw-worktrees/v2026.10.10/src/plugins/hook-types.ts:526-548`),
|
|
7
7
|
* but `before_prompt_build`'s agent context does (`trigger`, same field on
|
|
8
8
|
* 5.7, 5.12 and 10.x), and both carry the run id. The tracker records
|
|
9
|
-
* `runId → {sessionKey,
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* `runId → {sessionKey, kind}` at prompt build and keeps it for the life of the
|
|
10
|
+
* run, so the approval gate can read the turn kind of the call it is gating.
|
|
11
|
+
* `agent_end` does not end that: 10.x fires it per attempt, not per run.
|
|
12
12
|
*
|
|
13
13
|
* On 10.x `before_prompt_build` is a conversation hook: without
|
|
14
14
|
* `plugins.entries.runtime.hooks.allowConversationAccess` nothing is recorded
|
|
@@ -47,8 +47,8 @@ function sessionRest(sessionKey) {
|
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* A session the host creates for a spawned child: `agent:<id>:subagent:<uuid>`
|
|
50
|
-
* (10.10 `src/agents/
|
|
51
|
-
* at `subagent-spawn-child-plan.ts:
|
|
50
|
+
* (10.10 `src/agents/spawn-plan.ts:64-65`, `:subagent:incognito-…`
|
|
51
|
+
* at `subagent-spawn-child-plan.ts:96`; 5.12/5.7 `subagent-spawn.ts:829/821`)
|
|
52
52
|
* or an ACP child `agent:<id>:acp:<uuid>`.
|
|
53
53
|
*/
|
|
54
54
|
export function isChildSession(sessionKey) {
|
|
@@ -77,6 +77,13 @@ function boundedSet(map, key, value, max) {
|
|
|
77
77
|
export const SESSIONS_SEND_MATCH_WINDOW_MS = 10 * 60_000;
|
|
78
78
|
/** Pending origin calls (and open send exchanges) kept at once; the oldest are dropped first. */
|
|
79
79
|
const MAX_ORIGIN_CALLS = 256;
|
|
80
|
+
/**
|
|
81
|
+
* The `inputProvenance.sourceTool` OpenClaw stamps on the run that resumes an orphaned subagent
|
|
82
|
+
* after a gateway restart (`resumeOrphanedSession` in 6.9 `subagent-orphan-recovery`, the same
|
|
83
|
+
* literal in 10.10 `input-provenance`). Its `sourceSessionKey` is the requester, not the run that
|
|
84
|
+
* spawned the child, so the requester session's latest kind says nothing about this run.
|
|
85
|
+
*/
|
|
86
|
+
const SUBAGENT_RESUME_SOURCE_TOOL = "subagent_interrupted_resume";
|
|
80
87
|
/**
|
|
81
88
|
* Whether a `sessions_send` target as named (`agent:main:ops`, or a short
|
|
82
89
|
* `ops`) is the session `sessionKey`. A short name matches the key's tail.
|
|
@@ -132,7 +139,7 @@ function sendStartedNoRunToMatch(d) {
|
|
|
132
139
|
*
|
|
133
140
|
* 1. `trigger` `cron` / `heartbeat` → that kind.
|
|
134
141
|
* 2. A `sessions_send` target (`inputProvenance` `inter_session` with
|
|
135
|
-
* `sourceTool: "sessions_send"`, 10.10 `sessions-send-tool.ts:
|
|
142
|
+
* `sourceTool: "sessions_send"`, 10.10 `sessions-send-tool.ts:470-476`) →
|
|
136
143
|
* the kind of the run that SENT it. The provenance names only the source
|
|
137
144
|
* session, not the sending run, so the sending run is identified from the
|
|
138
145
|
* `sessions_send` call itself: {@link onToolCall} records the calling run's
|
|
@@ -169,15 +176,15 @@ function sendStartedNoRunToMatch(d) {
|
|
|
169
176
|
* `subagent_spawned` consumes the oldest pending spawn from the requester
|
|
170
177
|
* session, with the same window and ambiguity rules. Unmatched → `other`.
|
|
171
178
|
* 10.10 hard-codes `trigger: "user"` for these runs
|
|
172
|
-
* (`attempt-execution.ts:
|
|
179
|
+
* (`attempt-execution.ts:362`), and fires `subagent_spawned` after the
|
|
173
180
|
* gateway accepted the child (`subagent-spawn.ts:667`), so a child
|
|
174
181
|
* classified first reads `other` until its origin arrives.
|
|
175
182
|
* 4. `trigger` `event` or `inputProvenance.kind === "internal_system"` (a
|
|
176
|
-
* continuation after background work, `session-event-
|
|
183
|
+
* continuation after background work, `session-event-context.ts:86`;
|
|
177
184
|
* neither carries the originating run) → `other`.
|
|
178
185
|
* 5. A `jobId`, or a `cron:` session, with a non-cron trigger → `other`.
|
|
179
186
|
* 6. `trigger` `user` with no provenance or `external_user` provenance (a
|
|
180
|
-
* webchat `chat.send` turn: `reply-turn-kind.ts:18-
|
|
187
|
+
* webchat `chat.send` turn: `reply-turn-kind.ts:18-24`,
|
|
181
188
|
* `chat-send-user-turn.ts:206`) → `chat`.
|
|
182
189
|
* 7. Any other trigger → `other`; none → `unknown`.
|
|
183
190
|
*
|
|
@@ -198,8 +205,11 @@ export class TurnContextTracker {
|
|
|
198
205
|
origins = [];
|
|
199
206
|
/** Sends whose target run started, waiting for their reply-back run, oldest first. */
|
|
200
207
|
exchanges = [];
|
|
208
|
+
/** Runs recorded since this tracker started; see {@link runsRecorded}. */
|
|
209
|
+
recorded = 0;
|
|
201
210
|
/**
|
|
202
|
-
* @param maxRuns - Runs kept at once
|
|
211
|
+
* @param maxRuns - Runs kept at once, ended ones included (see {@link onRunEnd}); the oldest
|
|
212
|
+
* is dropped past it. A later call of a dropped run reads `unknown`; a retry classifies anew.
|
|
203
213
|
* @param now - Clock for the `sessions_send` match window.
|
|
204
214
|
*/
|
|
205
215
|
constructor(maxRuns = 256, now = Date.now) {
|
|
@@ -282,9 +292,14 @@ export class TurnContextTracker {
|
|
|
282
292
|
* Records a run from a `before_prompt_build` agent context. Malformed input
|
|
283
293
|
* is ignored. A run is classified once: 10.x fires the hook again for each
|
|
284
294
|
* retry attempt of the same run (after compaction, a model or auth
|
|
285
|
-
* failover),
|
|
286
|
-
*
|
|
287
|
-
*
|
|
295
|
+
* failover), after an `agent_end` for the attempt before it, and by then the
|
|
296
|
+
* origin call or exchange that classified it is consumed, so re-classifying
|
|
297
|
+
* would turn a chat-originated run into `other`. The first answer stands,
|
|
298
|
+
* whatever it was; a scheduled run stays scheduled. Host run ids are fresh per
|
|
299
|
+
* run, so a retained id only ever comes back as a retry (10.10 cron
|
|
300
|
+
* `isolated-agent/run.ts:142`, follow-ups `followup-turn-admission.ts:305`,
|
|
301
|
+
* replies `agent-runner-execution.ts:703`). A caller-supplied id (a `chat.send`
|
|
302
|
+
* or announce idempotency key) names one message; reused, it keeps its first answer.
|
|
288
303
|
*/
|
|
289
304
|
onPromptBuild(ctx) {
|
|
290
305
|
const c = rec(ctx);
|
|
@@ -292,12 +307,17 @@ export class TurnContextTracker {
|
|
|
292
307
|
if (!runId)
|
|
293
308
|
return;
|
|
294
309
|
const sessionKey = nonEmpty(c?.sessionKey);
|
|
295
|
-
const
|
|
310
|
+
const known = this.runs.get(runId);
|
|
311
|
+
if (!known)
|
|
312
|
+
this.recorded += 1;
|
|
313
|
+
const entry = known ?? this.classify(c ?? {}, sessionKey);
|
|
296
314
|
this.runs.delete(runId);
|
|
297
315
|
this.runs.set(runId, entry);
|
|
298
316
|
if (sessionKey) {
|
|
299
317
|
this.latestBySession.set(sessionKey, runId);
|
|
300
|
-
|
|
318
|
+
// The resolved kind, not the entry's: a retried child's entry still holds its `other`
|
|
319
|
+
// placeholder, and writing that back would undo the kind `subagent_spawned` gave the session.
|
|
320
|
+
boundedSet(this.lastKindBySession, sessionKey, this.lookup({ runId }).kind, this.maxRuns * 2);
|
|
301
321
|
}
|
|
302
322
|
while (this.runs.size > this.maxRuns) {
|
|
303
323
|
const oldest = this.runs.keys().next().value;
|
|
@@ -320,11 +340,22 @@ export class TurnContextTracker {
|
|
|
320
340
|
boundedSet(this.childOrigins, child, kind, this.maxRuns * 2);
|
|
321
341
|
boundedSet(this.lastKindBySession, child, kind, this.maxRuns * 2);
|
|
322
342
|
}
|
|
323
|
-
/**
|
|
343
|
+
/** How many runs `before_prompt_build` has recorded since this tracker started. */
|
|
344
|
+
get runsRecorded() {
|
|
345
|
+
return this.recorded;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* An attempt ended (`agent_end`). The run's entry stays: 10.10 fires this per
|
|
349
|
+
* attempt with no retry guard (`run/attempt-finalize.ts:305-308`), a retry keeps
|
|
350
|
+
* the run id, and the hook is fire-and-forget, so it can even land after the
|
|
351
|
+
* retry's prompt build. `maxRuns` bounds the entries. Only the run's claim on
|
|
352
|
+
* its session goes, so a call with no run id never reads a run that ended
|
|
353
|
+
* (`unknown`, which the gate refuses).
|
|
354
|
+
*/
|
|
324
355
|
onRunEnd(runId) {
|
|
325
356
|
const id = nonEmpty(runId);
|
|
326
357
|
if (id)
|
|
327
|
-
this.
|
|
358
|
+
this.releaseSession(id);
|
|
328
359
|
}
|
|
329
360
|
/**
|
|
330
361
|
* The turn of a tool call: by run id, else by the session's latest recorded
|
|
@@ -348,9 +379,16 @@ export class TurnContextTracker {
|
|
|
348
379
|
const provenanceKind = nonEmpty(provenance?.kind);
|
|
349
380
|
if (provenanceKind === "inter_session") {
|
|
350
381
|
const source = nonEmpty(provenance?.sourceSessionKey);
|
|
351
|
-
|
|
382
|
+
const sourceTool = nonEmpty(provenance?.sourceTool);
|
|
383
|
+
if (sourceTool === "sessions_send") {
|
|
352
384
|
return { sessionKey, kind: this.sendOriginKind(source, sessionKey) };
|
|
353
385
|
}
|
|
386
|
+
if (sourceTool === SUBAGENT_RESUME_SOURCE_TOOL) {
|
|
387
|
+
// An orphaned subagent resumed after a restart runs in its own session; its source is the
|
|
388
|
+
// requester, whose latest run may be a newer chat. It keeps its spawner's kind when this
|
|
389
|
+
// process saw the spawn, else `other` (T-RESTART option D).
|
|
390
|
+
return { sessionKey, kind: (sessionKey ? this.childOrigins.get(sessionKey) : undefined) ?? "other" };
|
|
391
|
+
}
|
|
354
392
|
return { sessionKey, kind: this.kindOfSession(source) };
|
|
355
393
|
}
|
|
356
394
|
if (isChildSession(sessionKey)) {
|
|
@@ -431,11 +469,16 @@ export class TurnContextTracker {
|
|
|
431
469
|
const kind = sessionKey ? this.lastKindBySession.get(sessionKey) : undefined;
|
|
432
470
|
return kind && kind !== "unknown" ? kind : "other";
|
|
433
471
|
}
|
|
472
|
+
/** Drops a run for good: the eviction past `maxRuns`. */
|
|
434
473
|
forget(runId) {
|
|
435
|
-
|
|
474
|
+
this.releaseSession(runId);
|
|
436
475
|
this.runs.delete(runId);
|
|
437
|
-
|
|
438
|
-
|
|
476
|
+
}
|
|
477
|
+
/** Stops `runId` being its session's latest run; a newer run in that session is left alone. */
|
|
478
|
+
releaseSession(runId) {
|
|
479
|
+
const sessionKey = this.runs.get(runId)?.sessionKey;
|
|
480
|
+
if (sessionKey && this.latestBySession.get(sessionKey) === runId) {
|
|
481
|
+
this.latestBySession.delete(sessionKey);
|
|
439
482
|
}
|
|
440
483
|
}
|
|
441
484
|
}
|
|
@@ -498,8 +541,8 @@ export function turnClassificationAvailable(params) {
|
|
|
498
541
|
* conversation hook on any host), `before_tool_call` / `after_tool_call`
|
|
499
542
|
* (observe `sessions_send` and `sessions_spawn` calls and their results only,
|
|
500
543
|
* to identify the run that started a target or a child; return nothing, so
|
|
501
|
-
* they decide nothing) and `agent_end` (
|
|
502
|
-
*
|
|
544
|
+
* they decide nothing) and `agent_end` (the run stops being its session's latest; refused
|
|
545
|
+
* without conversation access, where nothing is recorded anyway). Handlers never throw.
|
|
503
546
|
*/
|
|
504
547
|
export function registerTurnContextHooks(params) {
|
|
505
548
|
const { api, tracker } = params;
|