agent-nuvira 2.7.3 → 3.0.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/agents/agents/writer-tool-calling.d.ts +14 -0
- package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
- package/dist/agents/agents/writer-tool-calling.js +20 -0
- package/dist/agents/agents/writer-tool-calling.js.map +1 -1
- package/dist/agents/agents/writer.d.ts.map +1 -1
- package/dist/agents/agents/writer.js +15 -4
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/agents/edit-module.d.ts +7 -0
- package/dist/agents/edit-module.d.ts.map +1 -1
- package/dist/agents/edit-module.js +21 -6
- package/dist/agents/edit-module.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +40 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +116 -27
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/tool-calling-agent.d.ts +19 -0
- package/dist/agents/tool-calling-agent.d.ts.map +1 -1
- package/dist/agents/tool-calling-agent.js +42 -2
- package/dist/agents/tool-calling-agent.js.map +1 -1
- package/dist/cli/chat.d.ts +55 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +278 -72
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts +6 -0
- package/dist/cli/cli-program.d.ts.map +1 -0
- package/dist/cli/cli-program.js +242 -0
- package/dist/cli/cli-program.js.map +1 -0
- package/dist/cli/edit.d.ts.map +1 -1
- package/dist/cli/edit.js +18 -3
- package/dist/cli/edit.js.map +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +29 -5
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/failover-runner.d.ts +13 -0
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +11 -0
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/gateway.d.ts +16 -0
- package/dist/cli/gateway.d.ts.map +1 -1
- package/dist/cli/gateway.js +108 -2
- package/dist/cli/gateway.js.map +1 -1
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +245 -12
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +20 -6
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/process-control.d.ts +10 -0
- package/dist/cli/process-control.d.ts.map +1 -1
- package/dist/cli/process-control.js +73 -7
- package/dist/cli/process-control.js.map +1 -1
- package/dist/cli/router.d.ts +16 -5
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +31 -206
- package/dist/cli/router.js.map +1 -1
- package/dist/config/paths.d.ts +23 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +30 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/provider-env.d.ts +37 -0
- package/dist/config/provider-env.d.ts.map +1 -0
- package/dist/config/provider-env.js +86 -0
- package/dist/config/provider-env.js.map +1 -0
- package/dist/context/history.d.ts.map +1 -1
- package/dist/context/history.js +24 -8
- package/dist/context/history.js.map +1 -1
- package/dist/context/session-recall.d.ts +30 -0
- package/dist/context/session-recall.d.ts.map +1 -1
- package/dist/context/session-recall.js +61 -0
- package/dist/context/session-recall.js.map +1 -1
- package/dist/file.js +0 -1
- package/dist/file.js.map +1 -1
- package/dist/gateway/adapters.d.ts +10 -0
- package/dist/gateway/adapters.d.ts.map +1 -1
- package/dist/gateway/adapters.js +4 -1
- package/dist/gateway/adapters.js.map +1 -1
- package/dist/gateway/dedup.d.ts +105 -0
- package/dist/gateway/dedup.d.ts.map +1 -0
- package/dist/gateway/dedup.js +160 -0
- package/dist/gateway/dedup.js.map +1 -0
- package/dist/gateway/heartbeat.d.ts +99 -0
- package/dist/gateway/heartbeat.d.ts.map +1 -0
- package/dist/gateway/heartbeat.js +122 -0
- package/dist/gateway/heartbeat.js.map +1 -0
- package/dist/gateway/inbox.d.ts +14 -1
- package/dist/gateway/inbox.d.ts.map +1 -1
- package/dist/gateway/inbox.js.map +1 -1
- package/dist/gateway/platform-config.d.ts +5 -0
- package/dist/gateway/platform-config.d.ts.map +1 -1
- package/dist/gateway/platform-config.js +8 -13
- package/dist/gateway/platform-config.js.map +1 -1
- package/dist/gateway/registry.d.ts +47 -0
- package/dist/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +227 -21
- package/dist/gateway/registry.js.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
- package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
- package/dist/gateway/whatsapp/bridge.d.ts +4 -2
- package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/bridge.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inference/factory.d.ts +16 -0
- package/dist/inference/factory.d.ts.map +1 -1
- package/dist/inference/factory.js +42 -0
- package/dist/inference/factory.js.map +1 -1
- package/dist/inference/gemini-adapter.d.ts.map +1 -1
- package/dist/inference/gemini-adapter.js +3 -0
- package/dist/inference/gemini-adapter.js.map +1 -1
- package/dist/inference/interface.d.ts +12 -0
- package/dist/inference/interface.d.ts.map +1 -1
- package/dist/inference/local-adapter.d.ts +2 -0
- package/dist/inference/local-adapter.d.ts.map +1 -1
- package/dist/inference/local-adapter.js +36 -5
- package/dist/inference/local-adapter.js.map +1 -1
- package/dist/inference/native-tools.d.ts +8 -0
- package/dist/inference/native-tools.d.ts.map +1 -1
- package/dist/inference/native-tools.js +14 -3
- package/dist/inference/native-tools.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts +92 -7
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +203 -13
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +90 -5
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/context-budget.d.ts +133 -0
- package/dist/learning/context-budget.d.ts.map +1 -0
- package/dist/learning/context-budget.js +196 -0
- package/dist/learning/context-budget.js.map +1 -0
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +20 -8
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +6 -2
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/failure-bookkeeping.d.ts +19 -0
- package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
- package/dist/learning/failure-bookkeeping.js +67 -2
- package/dist/learning/failure-bookkeeping.js.map +1 -1
- package/dist/learning/feedback.d.ts.map +1 -1
- package/dist/learning/feedback.js +19 -8
- package/dist/learning/feedback.js.map +1 -1
- package/dist/learning/model-harness.d.ts +76 -0
- package/dist/learning/model-harness.d.ts.map +1 -0
- package/dist/learning/model-harness.js +119 -0
- package/dist/learning/model-harness.js.map +1 -0
- package/dist/learning/model-selection.d.ts +15 -0
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +27 -1
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/provider-fallback.d.ts +12 -0
- package/dist/learning/provider-fallback.d.ts.map +1 -1
- package/dist/learning/provider-fallback.js +74 -0
- package/dist/learning/provider-fallback.js.map +1 -1
- package/dist/learning/provider-revival.d.ts +106 -0
- package/dist/learning/provider-revival.d.ts.map +1 -0
- package/dist/learning/provider-revival.js +154 -0
- package/dist/learning/provider-revival.js.map +1 -0
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +48 -3
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/nlu/conversation-gate.d.ts +37 -0
- package/dist/nlu/conversation-gate.d.ts.map +1 -1
- package/dist/nlu/conversation-gate.js +49 -0
- package/dist/nlu/conversation-gate.js.map +1 -1
- package/dist/nlu/schema.d.ts +2 -2
- package/dist/observability/dag-bridge.d.ts +69 -0
- package/dist/observability/dag-bridge.d.ts.map +1 -0
- package/dist/observability/dag-bridge.js +56 -0
- package/dist/observability/dag-bridge.js.map +1 -0
- package/dist/observability/event-bus.d.ts +5 -10
- package/dist/observability/event-bus.d.ts.map +1 -1
- package/dist/observability/event-bus.js +10 -42
- package/dist/observability/event-bus.js.map +1 -1
- package/dist/skills/execution-audit.d.ts.map +1 -1
- package/dist/skills/execution-audit.js +17 -5
- package/dist/skills/execution-audit.js.map +1 -1
- package/dist/skills/sandbox-executor.d.ts +12 -1
- package/dist/skills/sandbox-executor.d.ts.map +1 -1
- package/dist/skills/sandbox-executor.js +28 -6
- package/dist/skills/sandbox-executor.js.map +1 -1
- package/dist/skills/secret-capture.d.ts +45 -1
- package/dist/skills/secret-capture.d.ts.map +1 -1
- package/dist/skills/secret-capture.js +82 -19
- package/dist/skills/secret-capture.js.map +1 -1
- package/dist/skills/skill-env-inventory.d.ts +79 -0
- package/dist/skills/skill-env-inventory.d.ts.map +1 -0
- package/dist/skills/skill-env-inventory.js +167 -0
- package/dist/skills/skill-env-inventory.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +2 -0
- package/dist/skills/skill-executor.d.ts.map +1 -1
- package/dist/skills/skill-executor.js +19 -24
- package/dist/skills/skill-executor.js.map +1 -1
- package/dist/tools/ask-user.d.ts +14 -1
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +25 -1
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/followup-utils.d.ts +64 -0
- package/dist/tools/followup-utils.d.ts.map +1 -0
- package/dist/tools/followup-utils.js +158 -0
- package/dist/tools/followup-utils.js.map +1 -0
- package/dist/tools/loop-skill-hint.d.ts.map +1 -1
- package/dist/tools/loop-skill-hint.js +22 -1
- package/dist/tools/loop-skill-hint.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +35 -0
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +76 -0
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +8 -3
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/registry.d.ts +25 -12
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +31 -6
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/skill-tool.d.ts.map +1 -1
- package/dist/tools/skill-tool.js +52 -5
- package/dist/tools/skill-tool.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +63 -1
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +305 -66
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/toolsets.d.ts +19 -3
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +21 -5
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +9 -13
- package/dist/utils/env.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +13 -1
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +16 -2
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/hub-data.d.ts +2 -0
- package/dist/web-dashboard/hub-data.d.ts.map +1 -1
- package/dist/web-dashboard/hub-data.js +4 -0
- package/dist/web-dashboard/hub-data.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +6 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +192 -3
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +31 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +11 -1
- package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
- package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
- package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
- package/src/web-dashboard/public/index.html +2 -2
- package/dist/example.d.ts +0 -1
- package/dist/example.d.ts.map +0 -1
- package/dist/example.js +0 -3
- package/dist/example.js.map +0 -1
- package/dist/fresh.d.ts +0 -2
- package/dist/fresh.d.ts.map +0 -1
- package/dist/fresh.js +0 -2
- package/dist/fresh.js.map +0 -1
- package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
- package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
- package/dist/mcp/mcp-dashboard-oauth.js +0 -140
- package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
- package/dist/memory/background-sync.d.ts +0 -107
- package/dist/memory/background-sync.d.ts.map +0 -1
- package/dist/memory/background-sync.js +0 -242
- package/dist/memory/background-sync.js.map +0 -1
- package/dist/memory/cross-session.d.ts +0 -68
- package/dist/memory/cross-session.d.ts.map +0 -1
- package/dist/memory/cross-session.js +0 -153
- package/dist/memory/cross-session.js.map +0 -1
- package/dist/memory/drift-detector.d.ts +0 -76
- package/dist/memory/drift-detector.d.ts.map +0 -1
- package/dist/memory/drift-detector.js +0 -216
- package/dist/memory/drift-detector.js.map +0 -1
- package/dist/memory/enhanced-manager.d.ts +0 -105
- package/dist/memory/enhanced-manager.d.ts.map +0 -1
- package/dist/memory/enhanced-manager.js +0 -280
- package/dist/memory/enhanced-manager.js.map +0 -1
- package/dist/memory/session-extraction.d.ts +0 -93
- package/dist/memory/session-extraction.d.ts.map +0 -1
- package/dist/memory/session-extraction.js +0 -290
- package/dist/memory/session-extraction.js.map +0 -1
- package/dist/memory/sqlite-store.d.ts +0 -208
- package/dist/memory/sqlite-store.d.ts.map +0 -1
- package/dist/memory/sqlite-store.js +0 -556
- package/dist/memory/sqlite-store.js.map +0 -1
- package/dist/skills/daytona-executor.d.ts +0 -78
- package/dist/skills/daytona-executor.d.ts.map +0 -1
- package/dist/skills/daytona-executor.js +0 -256
- package/dist/skills/daytona-executor.js.map +0 -1
- package/dist/skills/modal-executor.d.ts +0 -81
- package/dist/skills/modal-executor.d.ts.map +0 -1
- package/dist/skills/modal-executor.js +0 -285
- package/dist/skills/modal-executor.js.map +0 -1
- package/dist/sync/inventory.d.ts +0 -1
- package/dist/sync/inventory.d.ts.map +0 -1
- package/dist/sync/inventory.js +0 -3
- package/dist/sync/inventory.js.map +0 -1
- package/dist/sync/validate.d.ts +0 -1
- package/dist/sync/validate.d.ts.map +0 -1
- package/dist/sync/validate.js +0 -3
- package/dist/sync/validate.js.map +0 -1
- package/dist/test.d.ts +0 -2
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -3
- package/dist/test.js.map +0 -1
- package/dist/tools/browser-tool.d.ts +0 -206
- package/dist/tools/browser-tool.d.ts.map +0 -1
- package/dist/tools/browser-tool.js +0 -726
- package/dist/tools/browser-tool.js.map +0 -1
- package/dist/tools/delegate-tool.d.ts +0 -109
- package/dist/tools/delegate-tool.d.ts.map +0 -1
- package/dist/tools/delegate-tool.js +0 -185
- package/dist/tools/delegate-tool.js.map +0 -1
- package/dist/tools/delegation-state.d.ts +0 -87
- package/dist/tools/delegation-state.d.ts.map +0 -1
- package/dist/tools/delegation-state.js +0 -278
- package/dist/tools/delegation-state.js.map +0 -1
- package/dist/tools/desktop-ui.d.ts +0 -148
- package/dist/tools/desktop-ui.d.ts.map +0 -1
- package/dist/tools/desktop-ui.js +0 -486
- package/dist/tools/desktop-ui.js.map +0 -1
- package/dist/tools/image-video-tool.d.ts +0 -88
- package/dist/tools/image-video-tool.d.ts.map +0 -1
- package/dist/tools/image-video-tool.js +0 -276
- package/dist/tools/image-video-tool.js.map +0 -1
- package/dist/tools/kanban-cron-tools.d.ts +0 -92
- package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
- package/dist/tools/kanban-cron-tools.js +0 -197
- package/dist/tools/kanban-cron-tools.js.map +0 -1
- package/dist/tools/messaging-tool.d.ts +0 -127
- package/dist/tools/messaging-tool.d.ts.map +0 -1
- package/dist/tools/messaging-tool.js +0 -314
- package/dist/tools/messaging-tool.js.map +0 -1
- package/dist/tools/modality/generic-caller.d.ts +0 -43
- package/dist/tools/modality/generic-caller.d.ts.map +0 -1
- package/dist/tools/modality/generic-caller.js +0 -254
- package/dist/tools/modality/generic-caller.js.map +0 -1
- package/dist/tools/modality/modality-catalog.d.ts +0 -134
- package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
- package/dist/tools/modality/modality-catalog.js +0 -445
- package/dist/tools/modality/modality-catalog.js.map +0 -1
- package/dist/tools/modality/tool-router.d.ts +0 -81
- package/dist/tools/modality/tool-router.d.ts.map +0 -1
- package/dist/tools/modality/tool-router.js +0 -84
- package/dist/tools/modality/tool-router.js.map +0 -1
- package/dist/tools/security-tools.d.ts +0 -107
- package/dist/tools/security-tools.d.ts.map +0 -1
- package/dist/tools/security-tools.js +0 -264
- package/dist/tools/security-tools.js.map +0 -1
- package/dist/tools/ssh-tool.d.ts +0 -130
- package/dist/tools/ssh-tool.d.ts.map +0 -1
- package/dist/tools/ssh-tool.js +0 -328
- package/dist/tools/ssh-tool.js.map +0 -1
- package/dist/tools/tts-tool.d.ts +0 -91
- package/dist/tools/tts-tool.d.ts.map +0 -1
- package/dist/tools/tts-tool.js +0 -406
- package/dist/tools/tts-tool.js.map +0 -1
- package/dist/utils/shell-detection.d.ts +0 -124
- package/dist/utils/shell-detection.d.ts.map +0 -1
- package/dist/utils/shell-detection.js +0 -305
- package/dist/utils/shell-detection.js.map +0 -1
- package/dist/utils/windows-paths.d.ts +0 -185
- package/dist/utils/windows-paths.d.ts.map +0 -1
- package/dist/utils/windows-paths.js +0 -472
- package/dist/utils/windows-paths.js.map +0 -1
- package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
- package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
package/dist/tools/tool-loop.js
CHANGED
|
@@ -16,9 +16,11 @@
|
|
|
16
16
|
* blocks after its response text (contract in TOOL_CONTRACT_JSON).
|
|
17
17
|
*/
|
|
18
18
|
import { getTool, toolJsonSchemas } from './registry.js';
|
|
19
|
+
import { normalizeFollowups } from './followup-utils.js';
|
|
19
20
|
import { effectiveToolJsonSchemas, coreToolJsonSchemas, isToolEnabled, toolsetForTool } from './toolsets.js';
|
|
20
21
|
import { appendToolArtifact } from './artifact-append.js';
|
|
21
22
|
import { logger } from '../utils/logger.js';
|
|
23
|
+
import { toUserFacingGenerationError } from '../inference/tool-call-utils.js';
|
|
22
24
|
// ─── P3c — tool-fallback hints (switch tools when one fails) ────────────────
|
|
23
25
|
// The ask: *"if one tool fails you switch to another and explore parallel
|
|
24
26
|
// ways"* (round-2 row 25). Today the raw `Error: …` text is fed back and a
|
|
@@ -201,6 +203,66 @@ function findMatchingBrace(text, start) {
|
|
|
201
203
|
}
|
|
202
204
|
return -1;
|
|
203
205
|
}
|
|
206
|
+
// ─── Parallel read-only execution (W2) ──────────────────────────────────────
|
|
207
|
+
/**
|
|
208
|
+
* Tools that are READ-ONLY and therefore safe to execute concurrently when the
|
|
209
|
+
* model emits several of them in ONE step. Everything else — writes, terminal
|
|
210
|
+
* commands, pipeline dispatch, delegation, `tool_search` (it mutates the
|
|
211
|
+
* tiering state), `plan_todo`, `ask_user` (it blocks on user input) — stays
|
|
212
|
+
* strictly serial and in the model's original order.
|
|
213
|
+
*
|
|
214
|
+
* Why this matters: tool results are fed back one step at a time and the step
|
|
215
|
+
* budget is bounded (16), so N independent reads used to cost N sequential
|
|
216
|
+
* round-trips of wall-clock. Reading several files/searches is the single most
|
|
217
|
+
* common investigation pattern, so it becomes one bounded fan-out.
|
|
218
|
+
*
|
|
219
|
+
* The list is deliberately an ALLOWLIST (never a denylist): a tool added to
|
|
220
|
+
* the registry later is SERIAL by default until it is reviewed as read-only.
|
|
221
|
+
*/
|
|
222
|
+
export const PARALLEL_SAFE_TOOL_NAMES = new Set([
|
|
223
|
+
'read_file',
|
|
224
|
+
'list_dir',
|
|
225
|
+
'glob',
|
|
226
|
+
'code_search',
|
|
227
|
+
'web_search',
|
|
228
|
+
'read_page',
|
|
229
|
+
]);
|
|
230
|
+
/** Whether a tool may run concurrently with sibling calls in the same step. */
|
|
231
|
+
export function isParallelSafeTool(name) {
|
|
232
|
+
return PARALLEL_SAFE_TOOL_NAMES.has(name);
|
|
233
|
+
}
|
|
234
|
+
/** Max concurrent read-only calls per step (bounded fan-out) when the model
|
|
235
|
+
* has no harness opinion — see `ModelHarnessProfile.maxParallelReads`, which
|
|
236
|
+
* lowers this to 1 for tiny models that cannot use interleaved results. */
|
|
237
|
+
const MAX_PARALLEL_READS = 4;
|
|
238
|
+
// ─── Bounded auto-continuation (mid-turn model death / step bound) ──────────
|
|
239
|
+
// The loop used to give up the MOMENT a step's generation failed (all provider
|
|
240
|
+
// candidates exhausted) or the step bound was reached: the user got a partial
|
|
241
|
+
// answer (or an error line) and had to re-ask, even though the work was
|
|
242
|
+
// half-done and resumable in-context. These defaults resume the SAME turn a
|
|
243
|
+
// bounded number of times — the model keeps its thread, completed tool calls
|
|
244
|
+
// are never re-run, and the loop can never spin forever.
|
|
245
|
+
/** Default continuations granted per turn when the option is omitted. */
|
|
246
|
+
export const DEFAULT_MAX_CONTINUATIONS = 2;
|
|
247
|
+
/** Default extra steps granted per continuation. */
|
|
248
|
+
export const DEFAULT_CONTINUATION_STEPS = 8;
|
|
249
|
+
/** Pause before re-attempting a failed step (lets a transient outage clear). */
|
|
250
|
+
export const CONTINUATION_DELAY_MS = 1_500;
|
|
251
|
+
/**
|
|
252
|
+
* Whether a generation failure looks TRANSIENT — the only case where waiting
|
|
253
|
+
* before the resume attempt helps. A 5xx / network / timeout / rate-limit spike
|
|
254
|
+
* can clear in seconds; a hard failure (no credentialed candidate, dead key,
|
|
255
|
+
* bad model id) cannot, so it resumes IMMEDIATELY. Waiting on a hard failure
|
|
256
|
+
* only delays the user's answer (and made the interactive/gateway paths
|
|
257
|
+
* measurably slower for no benefit).
|
|
258
|
+
*/
|
|
259
|
+
export function isTransientGenerationFailure(message) {
|
|
260
|
+
return /(?:\b429\b|\b5\d\d\b|rate.?limit|quota|too many requests|timeout|timed out|etimedout|econn\w*|enotfound|socket hang up|network|fetch failed|dns|temporarily|overloaded|unavailable|try again)/i.test(message);
|
|
261
|
+
}
|
|
262
|
+
/** Sleep helper for the bounded pre-continuation pause. */
|
|
263
|
+
function sleep(ms) {
|
|
264
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
265
|
+
}
|
|
204
266
|
/**
|
|
205
267
|
* Run one tool-call turn:
|
|
206
268
|
* generate → execute tools → feed results back → repeat until the model
|
|
@@ -208,9 +270,30 @@ function findMatchingBrace(text, start) {
|
|
|
208
270
|
*/
|
|
209
271
|
export async function runToolLoop(opts) {
|
|
210
272
|
const { messages, tools: toolNames, maxSteps = 16, context, deps } = opts;
|
|
273
|
+
// Bounded auto-continuation state (see ToolLoopOptions.maxContinuations).
|
|
274
|
+
const maxContinuations = Math.max(0, opts.maxContinuations ?? DEFAULT_MAX_CONTINUATIONS);
|
|
275
|
+
const continuationSteps = Math.max(1, opts.continuationSteps ?? DEFAULT_CONTINUATION_STEPS);
|
|
276
|
+
let continuations = 0;
|
|
277
|
+
// The EFFECTIVE bound: starts at maxSteps and is extended (never beyond the
|
|
278
|
+
// continuation budget) so a turn that still has work can finish.
|
|
279
|
+
let stepLimit = maxSteps;
|
|
280
|
+
// R1 — the harness, not a constant, decides how wide a read fan-out this
|
|
281
|
+
// model can consume. Tiny models get 1 (serial): they rarely emit parallel
|
|
282
|
+
// calls and interleaved results cost them more than the latency they save.
|
|
283
|
+
const maxParallelReads = Math.max(1, opts.maxParallelReads ?? MAX_PARALLEL_READS);
|
|
211
284
|
const followups = [];
|
|
212
285
|
const toolCallsRun = [];
|
|
213
|
-
|
|
286
|
+
// Every collected suggestion passes through the shared normalizer, so the
|
|
287
|
+
// loop's output is ALWAYS clean + structured (1–3 items, deduped, no leaked
|
|
288
|
+
// tool JSON, capped prompt/label) regardless of what the model emitted —
|
|
289
|
+
// and every surface (CLI, dashboard chips, gateway list) inherits it.
|
|
290
|
+
const sink = {
|
|
291
|
+
push(f) {
|
|
292
|
+
const next = normalizeFollowups([...followups, f]);
|
|
293
|
+
followups.length = 0;
|
|
294
|
+
followups.push(...next);
|
|
295
|
+
},
|
|
296
|
+
};
|
|
214
297
|
const ctx = {
|
|
215
298
|
...context,
|
|
216
299
|
followups: context.followups || sink,
|
|
@@ -280,7 +363,21 @@ export async function runToolLoop(opts) {
|
|
|
280
363
|
// with an empty/bounded response (the "where is the essay?" bug).
|
|
281
364
|
let lastContent = '';
|
|
282
365
|
let bounded = false;
|
|
283
|
-
|
|
366
|
+
for (;;) {
|
|
367
|
+
// ── Bounded auto-continuation on the STEP BOUND ────────────────────────
|
|
368
|
+
// The model still wanted to act when the budget ran out (a long build, a
|
|
369
|
+
// many-file edit). Extend the budget a bounded number of times and keep
|
|
370
|
+
// the SAME thread — completed tool calls are never re-run — instead of
|
|
371
|
+
// telling the user "I reached my step limit" with the task unfinished.
|
|
372
|
+
if (steps >= stepLimit) {
|
|
373
|
+
if (continuations < maxContinuations) {
|
|
374
|
+
continuations += 1;
|
|
375
|
+
stepLimit += continuationSteps;
|
|
376
|
+
deps.onEvent?.(` 🔄 Step bound reached with work remaining — continuing (continuation ${continuations}/${maxContinuations}, budget ${stepLimit} steps).`);
|
|
377
|
+
continue;
|
|
378
|
+
}
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
284
381
|
// P4 — check cancellation BEFORE each step (a pre-aborted signal never
|
|
285
382
|
// spends a model call) and after tool executions (below).
|
|
286
383
|
if (opts.signal?.aborted) {
|
|
@@ -301,6 +398,14 @@ export async function runToolLoop(opts) {
|
|
|
301
398
|
let response;
|
|
302
399
|
try {
|
|
303
400
|
response = await deps.callModel(thread, schemas, opts.onToken, opts.signal);
|
|
401
|
+
// A provider/adapter that resolves with nothing usable (undefined, a
|
|
402
|
+
// missing content field) must not crash the turn — treat it as this
|
|
403
|
+
// step's generation failure so the bounded continuation logic below can
|
|
404
|
+
// resume or return gracefully. Malformed steps used to throw a raw
|
|
405
|
+
// TypeError out of the loop and kill an otherwise-recoverable turn.
|
|
406
|
+
if (!response || typeof response.content !== 'string' || !Array.isArray(response.toolCalls)) {
|
|
407
|
+
throw new Error('model returned a malformed step response (no content/toolCalls)');
|
|
408
|
+
}
|
|
304
409
|
}
|
|
305
410
|
catch (err) {
|
|
306
411
|
// P4 — an abort (the dashboard Cancel button) is a clean stop, NOT a
|
|
@@ -317,14 +422,46 @@ export async function runToolLoop(opts) {
|
|
|
317
422
|
// never re-runs work (e.g. the model already called `build`, and a later
|
|
318
423
|
// step's generation died — the pipeline must NOT run twice).
|
|
319
424
|
const message = err instanceof Error ? err.message : String(err);
|
|
425
|
+
// The RAW provider text is for the log/trace ONLY. It used to be
|
|
426
|
+
// interpolated straight into the delivered answer, which is how a
|
|
427
|
+
// WhatsApp/dashboard sender ended up reading a provider JSON dump
|
|
428
|
+
// ("… API error (429): {\"error\":{\"code\":429, …, quotaValue, …}").
|
|
320
429
|
logger.warn(` ⚠️ Tool-loop generation failed: ${message}`);
|
|
321
430
|
const madeProgress = lastContent.trim() !== '' || toolCallsRun.length > 0;
|
|
431
|
+
// ── Bounded auto-continuation ────────────────────────────────────────
|
|
432
|
+
// The step died mid-turn. Instead of handing the user a partial answer
|
|
433
|
+
// (or an error line) and making them re-ask, resume the SAME turn while
|
|
434
|
+
// the continuation budget lasts: the model keeps its thread, so every
|
|
435
|
+
// completed tool call and gathered fact is still in context and is never
|
|
436
|
+
// repeated. The failure is recorded on the provider walk already (which
|
|
437
|
+
// is what makes the retry land on a fresh candidate), so a short pause
|
|
438
|
+
// then a re-attempt is the honest, bounded recovery. Once the budget is
|
|
439
|
+
// spent the previous behavior applies unchanged.
|
|
440
|
+
// Resume only when the turn had already DONE something (a tool ran, or an
|
|
441
|
+
// answer was written). This is the "model went away MID-WAY" case: the
|
|
442
|
+
// thread holds real work that must not be thrown away, and one more walk
|
|
443
|
+
// (with the failures just recorded) can land on a different candidate.
|
|
444
|
+
//
|
|
445
|
+
// When NOTHING happened, `callModel` has already walked every candidate —
|
|
446
|
+
// re-walking immediately repeats the same exhausted list for no benefit,
|
|
447
|
+
// so the honest thing is to surface the failure (generationFailed) and let
|
|
448
|
+
// the caller's no-model path act. This also keeps the interactive/gateway
|
|
449
|
+
// turns as fast as before on a hard outage.
|
|
450
|
+
if (continuations < maxContinuations && madeProgress) {
|
|
451
|
+
continuations += 1;
|
|
452
|
+
stepLimit += continuationSteps;
|
|
453
|
+
deps.onEvent?.(` 🔄 Model call failed mid-turn — resuming this turn (continuation ${continuations}/${maxContinuations}, budget ${stepLimit} steps).`);
|
|
454
|
+
const delayMs = opts.continuationDelayMs ?? (isTransientGenerationFailure(message) ? CONTINUATION_DELAY_MS : 0);
|
|
455
|
+
await sleep(Math.max(0, delayMs));
|
|
456
|
+
continue;
|
|
457
|
+
}
|
|
322
458
|
return {
|
|
323
|
-
content: lastContent ||
|
|
459
|
+
content: lastContent || toUserFacingGenerationError(err),
|
|
324
460
|
followups,
|
|
325
461
|
toolCalls: toolCallsRun,
|
|
326
462
|
steps,
|
|
327
463
|
bounded: false,
|
|
464
|
+
continuations,
|
|
328
465
|
generationFailed: !madeProgress,
|
|
329
466
|
};
|
|
330
467
|
}
|
|
@@ -364,97 +501,165 @@ export async function runToolLoop(opts) {
|
|
|
364
501
|
toolCalls: toolCallsRun,
|
|
365
502
|
steps,
|
|
366
503
|
bounded: false,
|
|
504
|
+
continuations,
|
|
367
505
|
};
|
|
368
506
|
}
|
|
369
507
|
// ── Execute tool calls (results fed back, next step) ──────────────
|
|
370
508
|
thread.push({
|
|
371
509
|
role: 'assistant',
|
|
372
510
|
content: response.content,
|
|
373
|
-
|
|
511
|
+
// `providerMeta` rides along verbatim: it is provider-owned data (Gemini's
|
|
512
|
+
// thoughtSignature) that the adapter must send back on the next turn.
|
|
513
|
+
// Rebuilding the call from id/name/arguments alone silently broke every
|
|
514
|
+
// multi-step provider-tool-calling conversation.
|
|
515
|
+
toolCalls: toolCalls.map((tc) => ({
|
|
516
|
+
id: tc.id,
|
|
517
|
+
name: tc.name,
|
|
518
|
+
arguments: JSON.stringify(tc.arguments),
|
|
519
|
+
...(tc.providerMeta ? { providerMeta: tc.providerMeta } : {}),
|
|
520
|
+
})),
|
|
374
521
|
});
|
|
375
522
|
let endedAfterConcluding = false;
|
|
376
|
-
|
|
523
|
+
const plans = toolCalls.map((call) => {
|
|
377
524
|
const tool = getTool(call.name);
|
|
525
|
+
const priorSameTool = toolCallsRun.filter((t) => t === call.name).length;
|
|
378
526
|
toolCallsRun.push(call.name);
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
// This prevents the 6x planner loop observed in trace-1788059239352-k7zl03
|
|
388
|
-
// where the model called plan_todo 6 times for a song-writing request
|
|
389
|
-
// (15.6K tokens, 2m25s, FAILED).
|
|
390
|
-
const planTodoCount = toolCallsRun.filter((t) => t === 'plan_todo').length;
|
|
391
|
-
if (call.name === 'plan_todo' && planTodoCount >= 1) {
|
|
392
|
-
resultText = 'Error: plan_todo already called. You have a plan — now execute it. Do NOT call plan_todo again. Use write_file, run_terminal, or other execution tools to complete the work.';
|
|
527
|
+
// S5 — PLANNER LOOP GUARD: allow the first plan of the turn, refuse
|
|
528
|
+
// repeats (the 6x planner loop observed in
|
|
529
|
+
// trace-1788059239352-k7zl03: 15.6K tokens, 2m25s, FAILED).
|
|
530
|
+
if (call.name === 'plan_todo' && priorSameTool >= 1) {
|
|
531
|
+
return {
|
|
532
|
+
call,
|
|
533
|
+
refuse: 'Error: plan_todo already called. You have a plan — now execute it. Do NOT call plan_todo again. Use write_file, run_terminal, or other execution tools to complete the work.',
|
|
534
|
+
};
|
|
393
535
|
}
|
|
394
|
-
|
|
395
|
-
|
|
536
|
+
if (tool?.category === 'pipeline' && priorSameTool >= 1) {
|
|
537
|
+
// The guard this replaces tested the literal name `pipeline`, which is
|
|
538
|
+
// NOT a registered tool — the dispatch tools are build / resume /
|
|
539
|
+
// repair / document / website / analyze / test / publish — so it could
|
|
540
|
+
// never fire and two identical pipeline runs could start in one turn
|
|
541
|
+
// (pipeline-tool.ts has no in-flight guard of its own). Match the real
|
|
542
|
+
// category, and only when the SAME dispatch tool is repeated.
|
|
543
|
+
return {
|
|
544
|
+
call,
|
|
545
|
+
refuse: `Error: ${call.name} was already dispatched this turn — the pipeline is running. Do not call it again.`,
|
|
546
|
+
};
|
|
396
547
|
}
|
|
397
|
-
|
|
548
|
+
if (!tool) {
|
|
398
549
|
// Unknown tool — the error is fed back so the model retries with a
|
|
399
550
|
// known tool (hadToolCallError handling).
|
|
400
|
-
|
|
551
|
+
return { call, refuse: `Error: unknown tool "${call.name}". Available tools: ${schemas.map((s) => s.name).join(', ')}.` };
|
|
401
552
|
}
|
|
402
|
-
|
|
553
|
+
if (tiered && !schemaNames.has(call.name)) {
|
|
403
554
|
// Tiered exposure gate: the tool is REGISTERED but its toolset was
|
|
404
555
|
// never loaded this turn — do NOT execute it silently. Give the model
|
|
405
556
|
// the exact load syntax so it can activate the toolset and retry.
|
|
406
557
|
const ownerToolset = toolsetForTool(call.name);
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
558
|
+
return {
|
|
559
|
+
call,
|
|
560
|
+
refuse: `Error: tool "${call.name}" exists but its "${ownerToolset?.name ?? 'domain'}" toolset is not loaded this turn. ` +
|
|
561
|
+
`Call tool_search with {"action":"load","toolset":"${ownerToolset?.name ?? ''}"} first — its tools become callable immediately.`,
|
|
562
|
+
};
|
|
410
563
|
}
|
|
411
|
-
|
|
564
|
+
if (!isToolEnabled(call.name, context.configManager)) {
|
|
412
565
|
// I1 execution gate: a disabled tool is rejected at runtime even if
|
|
413
566
|
// the model hallucinated its name — the toggle is never cosmetic.
|
|
414
|
-
|
|
567
|
+
return { call, refuse: `Error: tool "${call.name}" is disabled — its toolset is turned off. Enable it with \`nuvira tools toolsets\`.` };
|
|
415
568
|
}
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
569
|
+
return { call };
|
|
570
|
+
});
|
|
571
|
+
// ── Phase 2 — execute (read-only runs fan out; everything else serial) ──
|
|
572
|
+
const runOne = async (plan) => {
|
|
573
|
+
const { call } = plan;
|
|
574
|
+
if (plan.refuse !== undefined)
|
|
575
|
+
return plan.refuse;
|
|
576
|
+
if (call.name === 'suggest_followups') {
|
|
577
|
+
// The LAST suggest_followups call wins (a model that repeats it after
|
|
578
|
+
// already answering must not accumulate 15 stale suggestions).
|
|
579
|
+
followups.length = 0;
|
|
580
|
+
}
|
|
581
|
+
// I2: emit `tool:started` (before execution) + `tool:called` (after)
|
|
582
|
+
// on the observability bus — drives the hooks registry's
|
|
583
|
+
// the `post_tool_call` hook AND the dashboard's
|
|
584
|
+
// step cards (P0.6: the GUI renders each call as a live card —
|
|
585
|
+
// running → ok/error with duration + collapsible result). Timing is
|
|
586
|
+
// wall-clock; `ok` mirrors the tool-result convention (Error: prefix).
|
|
587
|
+
const startedAt = Date.now();
|
|
588
|
+
ctx.emit?.('tool:started', {
|
|
589
|
+
id: call.id,
|
|
590
|
+
tool: call.name,
|
|
591
|
+
args: call.arguments,
|
|
592
|
+
});
|
|
593
|
+
try {
|
|
594
|
+
deps.onEvent?.(` ⚙ ${call.name}(${summarizeArgs(call.arguments)})`);
|
|
595
|
+
let resultText = await deps.executeTool(call.name, call.arguments, ctx);
|
|
596
|
+
// I3: a tool that returns {artifact, result} gets its deliverable
|
|
597
|
+
// recorded on the session and only `result`
|
|
598
|
+
// is fed back to the model — the JSON payload is runtime metadata.
|
|
599
|
+
resultText = appendToolArtifact(resultText, ctx.artifacts);
|
|
600
|
+
ctx.emit?.('tool:called', {
|
|
601
|
+
id: call.id,
|
|
602
|
+
tool: call.name,
|
|
603
|
+
ok: !resultText.startsWith('Error:'),
|
|
604
|
+
result: resultText,
|
|
605
|
+
durationMs: Date.now() - startedAt,
|
|
606
|
+
});
|
|
607
|
+
if (call.name === 'suggest_followups')
|
|
608
|
+
endedAfterConcluding = true;
|
|
609
|
+
return resultText;
|
|
610
|
+
}
|
|
611
|
+
catch (err) {
|
|
612
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
613
|
+
ctx.emit?.('tool:called', {
|
|
425
614
|
id: call.id,
|
|
426
615
|
tool: call.name,
|
|
427
|
-
|
|
616
|
+
ok: false,
|
|
617
|
+
error: message,
|
|
618
|
+
durationMs: Date.now() - startedAt,
|
|
428
619
|
});
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
});
|
|
443
|
-
|
|
444
|
-
|
|
620
|
+
return `Error: ${message}`;
|
|
621
|
+
}
|
|
622
|
+
};
|
|
623
|
+
const executed = new Array(plans.length).fill('');
|
|
624
|
+
for (let i = 0; i < plans.length;) {
|
|
625
|
+
// A run of consecutive read-only calls is ONE bounded fan-out; any
|
|
626
|
+
// refused call breaks the run (its error is cheap and order-sensitive).
|
|
627
|
+
if (plans[i].refuse === undefined && isParallelSafeTool(plans[i].call.name)) {
|
|
628
|
+
let j = i;
|
|
629
|
+
while (j < plans.length && plans[j].refuse === undefined && isParallelSafeTool(plans[j].call.name))
|
|
630
|
+
j += 1;
|
|
631
|
+
const run = plans.slice(i, j);
|
|
632
|
+
if (run.length > 1) {
|
|
633
|
+
deps.onEvent?.(` ⚡ ${run.length} read-only tool calls in parallel`);
|
|
634
|
+
for (let k = 0; k < run.length; k += maxParallelReads) {
|
|
635
|
+
const chunk = run.slice(k, k + maxParallelReads);
|
|
636
|
+
const chunkResults = await Promise.all(chunk.map((p) => runOne(p)));
|
|
637
|
+
chunkResults.forEach((text, n) => {
|
|
638
|
+
executed[i + k + n] = text;
|
|
639
|
+
});
|
|
640
|
+
}
|
|
445
641
|
}
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
resultText = `Error: ${message}`;
|
|
449
|
-
ctx.emit?.('tool:called', {
|
|
450
|
-
id: call.id,
|
|
451
|
-
tool: call.name,
|
|
452
|
-
ok: false,
|
|
453
|
-
error: message,
|
|
454
|
-
durationMs: Date.now() - startedAt,
|
|
455
|
-
});
|
|
642
|
+
else {
|
|
643
|
+
executed[i] = await runOne(run[0]);
|
|
456
644
|
}
|
|
645
|
+
i = j;
|
|
457
646
|
}
|
|
647
|
+
else {
|
|
648
|
+
executed[i] = await runOne(plans[i]);
|
|
649
|
+
i += 1;
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
// ── Phase 3 — post-process, in the model's original call order ─────────
|
|
653
|
+
// Tool results MUST reach the thread in the assistant's tool_calls order:
|
|
654
|
+
// providers pair them by `toolCallId`, and a reordered thread reads as a
|
|
655
|
+
// different (worse) tool use. So the ordered pass below owns the push even
|
|
656
|
+
// though the executions above may have completed out of order.
|
|
657
|
+
// What each call actually delivered (post hint/tip decoration), kept in
|
|
658
|
+
// call order for the endsAgentStep exit below.
|
|
659
|
+
const delivered = new Array(plans.length).fill('');
|
|
660
|
+
for (let i = 0; i < plans.length; i += 1) {
|
|
661
|
+
const call = plans[i].call;
|
|
662
|
+
let resultText = executed[i];
|
|
458
663
|
// P3c — on error/denial, append the deterministic fallback hint for
|
|
459
664
|
// this tool (advisory — the model still decides; never on success).
|
|
460
665
|
const hint = fallbackHintForTool(call.name, resultText);
|
|
@@ -465,6 +670,7 @@ export async function runToolLoop(opts) {
|
|
|
465
670
|
const parallelTip = parallel.note(call.name, !resultText.startsWith('Error:'));
|
|
466
671
|
if (parallelTip)
|
|
467
672
|
resultText = `${resultText}\n\n${parallelTip}`;
|
|
673
|
+
delivered[i] = resultText;
|
|
468
674
|
thread.push({ role: 'tool', toolCallId: call.id, content: resultText });
|
|
469
675
|
}
|
|
470
676
|
// Tiered exposure: after EVERY executed tool call, union any newly
|
|
@@ -476,6 +682,35 @@ export async function runToolLoop(opts) {
|
|
|
476
682
|
if (opts.signal?.aborted) {
|
|
477
683
|
return { content: '', followups, toolCalls: toolCallsRun, steps, bounded: false, cancelled: true };
|
|
478
684
|
}
|
|
685
|
+
// ── endsAgentStep — a successful dispenser's RESULT is the answer ────────
|
|
686
|
+
// `build`/`resume`/`repair`/`document`/`website`/`analyze`/`test`/`publish`
|
|
687
|
+
// declare endsAgentStep: the pipeline they dispatch runs the entire task,
|
|
688
|
+
// so their own result text (`✅ build succeeded` + summary + details) IS the
|
|
689
|
+
// deliverable. The flag was declared on the Tool interface and read by
|
|
690
|
+
// NOTHING (audit W4), so the loop always asked for one more model step —
|
|
691
|
+
// a full round trip that re-sent the whole tool schema purely to have the
|
|
692
|
+
// model paraphrase output it had not produced, with a live window for a
|
|
693
|
+
// second dispatch of the same pipeline.
|
|
694
|
+
//
|
|
695
|
+
// Only a SUCCESS ends the step (a refused or failed dispatch must stay in
|
|
696
|
+
// the loop so the model can react), and `ask_user` deliberately does not:
|
|
697
|
+
// its result is the user's ANSWER — input the model must act on. See the
|
|
698
|
+
// `endsAgentStep` docstring in registry.ts for the contract.
|
|
699
|
+
const terminalIdx = delivered.findIndex((text, i) => !text.startsWith('Error:') && getTool(plans[i].call.name)?.endsAgentStep === true);
|
|
700
|
+
if (terminalIdx >= 0) {
|
|
701
|
+
// A real summary written THIS step wins (it is the model's own account
|
|
702
|
+
// of the dispatch); a bare lead-in ("Running the build now…") does not —
|
|
703
|
+
// the pipeline's summary is the answer then, not the wrapper.
|
|
704
|
+
const thisStepIsSubstantive = response.content.trim() !== '' && !isBareAcknowledgment(response.content);
|
|
705
|
+
return {
|
|
706
|
+
content: thisStepIsSubstantive ? response.content : delivered[terminalIdx],
|
|
707
|
+
followups,
|
|
708
|
+
toolCalls: toolCallsRun,
|
|
709
|
+
steps,
|
|
710
|
+
bounded: false,
|
|
711
|
+
continuations,
|
|
712
|
+
};
|
|
713
|
+
}
|
|
479
714
|
// End-of-response semantics (the contract: "END EVERY RESPONSE by
|
|
480
715
|
// calling suggest_followups"): when the model delivered its answer and
|
|
481
716
|
// ended with a SUCCESSFUL suggest_followups, the turn is complete — do NOT
|
|
@@ -505,17 +740,21 @@ export async function runToolLoop(opts) {
|
|
|
505
740
|
toolCalls: toolCallsRun,
|
|
506
741
|
steps,
|
|
507
742
|
bounded: false,
|
|
743
|
+
continuations,
|
|
508
744
|
};
|
|
509
745
|
}
|
|
510
746
|
}
|
|
747
|
+
// Reaching here means the continuation budget is spent (the in-loop check
|
|
748
|
+
// extends the bound otherwise) — the turn is honestly bounded.
|
|
511
749
|
bounded = true;
|
|
512
|
-
deps.onEvent?.(` ⚠️ Tool loop reached its ${
|
|
750
|
+
deps.onEvent?.(` ⚠️ Tool loop reached its ${stepLimit}-step budget — returning the last response.`);
|
|
513
751
|
return {
|
|
514
752
|
content: lastContent || 'I reached my step limit for this request.',
|
|
515
753
|
followups,
|
|
516
754
|
toolCalls: toolCallsRun,
|
|
517
755
|
steps,
|
|
518
756
|
bounded: true,
|
|
757
|
+
continuations,
|
|
519
758
|
};
|
|
520
759
|
}
|
|
521
760
|
/** Compact argument preview for the event line. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../src/tools/tool-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../src/tools/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAyC,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAI9E,+EAA+E;AAC/E,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,2EAA2E;AAC3E,0BAA0B;AAE1B;;;GAGG;AACH,MAAM,mBAAmB,GAA2B;IAClD,YAAY,EACV,wHAAwH;IAC1H,SAAS,EACP,4HAA4H;IAC9H,IAAI,EAAE,+DAA+D;IACrE,QAAQ,EAAE,2EAA2E;IACrF,WAAW,EAAE,0FAA0F;IACvG,SAAS,EACP,0FAA0F;IAC5F,UAAU,EAAE,kEAAkE;IAC9E,UAAU,EAAE,0GAA0G;IACtH,SAAS,EAAE,yEAAyE;IACpF,SAAS,EAAE,wFAAwF;IACnG,KAAK,EAAE,iHAAiH;IACxH,UAAU,EAAE,0HAA0H;IACtI,GAAG,EAAE,mIAAmI;IACxI,QAAQ,EAAE,uGAAuG;IACjH,YAAY,EAAE,8EAA8E;CAC7F,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,UAAkB;IAClE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,0DAA0D;AAE1D,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;AAE/G;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,gBAAwC,EAAE;IAC9E,MAAM,MAAM,GAA2B,EAAE,GAAG,aAAa,EAAE,CAAC;IAC5D,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO;QACL,iFAAiF;QACjF,IAAI,CAAC,IAAY,EAAE,EAAW;YAC5B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CACL,6BAA6B,MAAM,CAAC,IAAI,CAAC,2BAA2B,IAAI,qCAAqC;oBAC7G,mGAAmG;oBACnG,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,sDAAsD;QACtD,IAAI,QAAQ;YACV,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAyID,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,0DAA0D;IAC1D,IAAI,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,yEAAyE;IACzE,IAAI,+DAA+D,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5G,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,MAAM,QAAQ,GAAG,wBAAwB,CAAC;IAC1C,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC9C,iEAAiE;QACjE,qEAAqE;QACrE,yEAAyE;QACzE,oDAAoD;QACpD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;QAC7B,WAAW,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA2D,CAAC;YAC3F,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;iBAC5F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,CAAC,yCAAyC;IACjF,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,sCAAsC;IACnF,OAAO,8JAA8J,CAAC,IAAI,CAAC,OAAO,CAAC;QACjL,6FAA6F,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChH,CAAC;AAED,4EAA4E;AAC5E,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO;gBAAE,OAAO,GAAG,KAAK,CAAC;iBACxB,IAAI,EAAE,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;iBAChC,IAAI,EAAE,KAAK,GAAG;gBAAE,QAAQ,GAAG,KAAK,CAAC;YACtC,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG;YAAE,QAAQ,GAAG,IAAI,CAAC;aAC3B,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACxB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,+EAA+E;AAC/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IACnE,WAAW;IACX,UAAU;IACV,MAAM;IACN,aAAa;IACb,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;4EAE4E;AAC5E,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,yDAAyD;AAEzD,yEAAyE;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,oDAAoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAC5C,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAe;IAC1D,OAAO,gMAAgM,CAAC,IAAI,CAC1M,OAAO,CACR,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC1E,0EAA0E;IAC1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,CAAC;IACzF,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,IAAI,0BAA0B,CAAC,CAAC;IAC5F,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,4EAA4E;IAC5E,iEAAiE;IACjE,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,yEAAyE;IACzE,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,CAAC;IAElF,MAAM,SAAS,GAAyB,EAAE,CAAC;IAC3C,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,IAAI,GAAG;QACX,IAAI,CAAC,CAAqB;YACxB,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC;IACF,MAAM,GAAG,GAAgB;QACvB,GAAG,OAAO;QACV,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;KACrC,CAAC;IAEF,mEAAmE;IACnE,qEAAqE;IACrE,yEAAyE;IACzE,yEAAyE;IACzE,+DAA+D;IAC/D,EAAE;IACF,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,wEAAwE;IACxE,sEAAsE;IACtE,4DAA4D;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC;IAC5D,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,YAAY,GAAG,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAqB,SAAS;QACzC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;QAC5B,CAAC,CAAC,MAAM;YACN,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;YAC5C,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACtD,0EAA0E;IAC1E,0EAA0E;IAC1E,2BAA2B;IAC3B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,GAAW,EAAE;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC;QACpC,IAAI,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,qCAAqC;YACnE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;gBAAE,SAAS,CAAC,UAAU;YACrE,MAAM,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,mDAAmD,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,MAAM,GAAkB,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,IAAI,2BAA2B,CAAC;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,4EAA4E;IAC5E,0EAA0E;IAC1E,wEAAwE;IACxE,kEAAkE;IAClE,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,SAAS,CAAC;QACR,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACvB,IAAI,aAAa,GAAG,gBAAgB,EAAE,CAAC;gBACrC,aAAa,IAAI,CAAC,CAAC;gBACnB,SAAS,IAAI,iBAAiB,CAAC;gBAC/B,IAAI,CAAC,OAAO,EAAE,CACZ,2EAA2E,aAAa,IAAI,gBAAgB,YAAY,SAAS,UAAU,CAC5I,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM;QACR,CAAC;QACD,uEAAuE;QACvE,0DAA0D;QAC1D,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACrG,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QACX,qEAAqE;QACrE,uEAAuE;QACvE,+CAA+C;QAC/C,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,aAAa,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,aAAa,CAAC,OAAO,0CAA0C,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACjJ,CAAC;QACH,CAAC;QACD,IAAI,QAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5E,qEAAqE;YACrE,oEAAoE;YACpE,wEAAwE;YACxE,mEAAmE;YACnE,oEAAoE;YACpE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5F,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qEAAqE;YACrE,sEAAsE;YACtE,8DAA8D;YAC9D,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACrG,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,sEAAsE;YACtE,0EAA0E;YAC1E,sEAAsE;YACtE,yEAAyE;YACzE,6DAA6D;YAC7D,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,iEAAiE;YACjE,kEAAkE;YAClE,kEAAkE;YAClE,sEAAsE;YACtE,MAAM,CAAC,IAAI,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1E,wEAAwE;YACxE,uEAAuE;YACvE,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,wEAAwE;YACxE,uEAAuE;YACvE,wEAAwE;YACxE,iDAAiD;YACjD,0EAA0E;YAC1E,uEAAuE;YACvE,yEAAyE;YACzE,uEAAuE;YACvE,EAAE;YACF,0EAA0E;YAC1E,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,4CAA4C;YAC5C,IAAI,aAAa,GAAG,gBAAgB,IAAI,YAAY,EAAE,CAAC;gBACrD,aAAa,IAAI,CAAC,CAAC;gBACnB,SAAS,IAAI,iBAAiB,CAAC;gBAC/B,IAAI,CAAC,OAAO,EAAE,CACZ,uEAAuE,aAAa,IAAI,gBAAgB,YAAY,SAAS,UAAU,CACxI,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChH,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,WAAW,IAAI,2BAA2B,CAAC,GAAG,CAAC;gBACxD,SAAS;gBACT,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,OAAO,EAAE,KAAK;gBACd,aAAa;gBACb,gBAAgB,EAAE,CAAC,YAAY;aAChC,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,sEAAsE;QACtE,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,kCAAkC;QAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW;YACxC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACnG,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QAE/B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,yDAAyD;YACzD,oDAAoD;YACpD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClG,kEAAkE;gBAClE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,IAAI,CAAC,OAAO,EAAE,CAAC,qCAAqC,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YACD,qEAAqE;YACrE,qEAAqE;YACrE,oEAAoE;YACpE,4DAA4D;YAC5D,gCAAgC;YAChC,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;gBACvF,SAAS;gBACT,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,OAAO,EAAE,KAAK;gBACd,aAAa;aACd,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,2EAA2E;YAC3E,sEAAsE;YACtE,wEAAwE;YACxE,iDAAiD;YACjD,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChC,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;gBACvC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,oBAAoB,GAAG,KAAK,CAAC;QASjC,MAAM,KAAK,GAAkB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACzE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,oEAAoE;YACpE,2CAA2C;YAC3C,4DAA4D;YAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO;oBACL,IAAI;oBACJ,MAAM,EACJ,8KAA8K;iBACjL,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,EAAE,QAAQ,KAAK,UAAU,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACxD,uEAAuE;gBACvE,kEAAkE;gBAClE,uEAAuE;gBACvE,qEAAqE;gBACrE,uEAAuE;gBACvE,8DAA8D;gBAC9D,OAAO;oBACL,IAAI;oBACJ,MAAM,EAAE,UAAU,IAAI,CAAC,IAAI,oFAAoF;iBAChH,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,mEAAmE;gBACnE,0CAA0C;gBAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,IAAI,CAAC,IAAI,uBAAuB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5H,CAAC;YACD,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,mEAAmE;gBACnE,sEAAsE;gBACtE,kEAAkE;gBAClE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,OAAO;oBACL,IAAI;oBACJ,MAAM,EACJ,gBAAgB,IAAI,CAAC,IAAI,qBAAqB,YAAY,EAAE,IAAI,IAAI,QAAQ,qCAAqC;wBACjH,qDAAqD,YAAY,EAAE,IAAI,IAAI,EAAE,mDAAmD;iBACnI,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrD,oEAAoE;gBACpE,kEAAkE;gBAClE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,IAAI,CAAC,IAAI,sFAAsF,EAAE,CAAC;YAC3I,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,MAAM,MAAM,GAAG,KAAK,EAAE,IAAiB,EAAmB,EAAE;YAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC;YAClD,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACtC,sEAAsE;gBACtE,+DAA+D;gBAC/D,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,qEAAqE;YACrE,yDAAyD;YACzD,gDAAgD;YAChD,+DAA+D;YAC/D,oEAAoE;YACpE,uEAAuE;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE;gBACzB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,SAAS;aACrB,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACtE,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACxE,kEAAkE;gBAClE,4CAA4C;gBAC5C,mEAAmE;gBACnE,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3D,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;oBACxB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;oBACpC,MAAM,EAAE,UAAU;oBAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB;oBAAE,oBAAoB,GAAG,IAAI,CAAC;gBACnE,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;oBACxB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,OAAO;oBACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC;gBACH,OAAO,UAAU,OAAO,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAa,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAI,CAAC;YACnC,mEAAmE;YACnE,wEAAwE;YACxE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,CAAC,IAAI,CAAC,CAAC;gBAC3G,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,GAAG,CAAC,MAAM,mCAAmC,CAAC,CAAC;oBACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;wBACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC;wBACjD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BAC/B,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;wBAC7B,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,CAAC,GAAG,CAAC,CAAC;YACR,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,+DAA+D;QAC/D,wEAAwE;QACxE,+CAA+C;QAC/C,MAAM,SAAS,GAAa,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,oEAAoE;YACpE,oEAAoE;YACpE,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACxD,IAAI,IAAI;gBAAE,UAAU,GAAG,GAAG,UAAU,UAAU,IAAI,EAAE,CAAC;YACrD,mEAAmE;YACnE,+DAA+D;YAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/E,IAAI,WAAW;gBAAE,UAAU,GAAG,GAAG,UAAU,OAAO,WAAW,EAAE,CAAC;YAChE,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,mEAAmE;QACnE,sEAAsE;QACtE,mEAAmE;QACnE,gBAAgB,EAAE,CAAC;QAEnB,wEAAwE;QACxE,iEAAiE;QACjE,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACrG,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,wCAAwC;QACxC,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CACrC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAC/F,CAAC;QACF,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,uEAAuE;YACvE,yEAAyE;YACzE,8DAA8D;YAC9D,MAAM,qBAAqB,GACzB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC1E,SAAS;gBACT,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,OAAO,EAAE,KAAK;gBACd,aAAa;aACd,CAAC;QACJ,CAAC;QAED,kEAAkE;QAClE,uEAAuE;QACvE,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,8BAA8B;QAC9B,EAAE;QACF,sEAAsE;QACtE,wEAAwE;QACxE,sEAAsE;QACtE,0EAA0E;QAC1E,wEAAwE;QACxE,mCAAmC;QACnC,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,2EAA2E;QAC3E,gEAAgE;QAChE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjG,IAAI,oBAAoB,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;YAC/F,OAAO;gBACL,OAAO;gBACP,SAAS;gBACT,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,OAAO,EAAE,KAAK;gBACd,aAAa;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,+DAA+D;IAC/D,OAAO,GAAG,IAAI,CAAC;IACf,IAAI,CAAC,OAAO,EAAE,CAAC,+BAA+B,SAAS,6CAA6C,CAAC,CAAC;IACtG,OAAO;QACL,OAAO,EAAE,WAAW,IAAI,2CAA2C;QACnE,SAAS;QACT,SAAS,EAAE,YAAY;QACvB,KAAK;QACL,OAAO,EAAE,IAAI;QACb,aAAa;KACd,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,SAAS,aAAa,CAAC,IAA6B;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC3B,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,8EAA8E;AAC9E,gEAAgE;AAEhE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAEnD,iFAAiF;AACjF,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,mDAAmD;AACnD,MAAM,SAAS,GAAG,yDAAyD,CAAC;AAE5E,yEAAyE;AACzE,SAAS,YAAY,CAAC,CAAc;IAClC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,WAAmB,2BAA2B;IAE9C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,IAAI,KAAK,IAAI,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAErD,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACxB,wEAAwE;IACxE,qCAAqC;IACrC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,IAAI,CAAC,KAAK,YAAY;YAAE,SAAS;QACjC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC5B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,yEAAyE;IACzE,uDAAuD;IACvD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,IAAI,IAAI,CAAC;YAAE,MAAM;QACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG;YAAE,SAAS;QAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QACxD,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QACzB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;QAChE,IAAI,IAAI,KAAK,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,qEAAqE;IACrE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,IAAI,IAAI,CAAC;gBAAE,MAAM;YACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;gBAAE,SAAS;YAC3D,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,0EAA0E;IAC1E,yEAAyE;IACzE,uEAAuE;IACvE,mEAAmE;IACnE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,IAAI,IAAI,CAAC;gBAAE,MAAM;YACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG;gBAAE,SAAS;YAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;YACxD,IAAI,KAAK,IAAI,CAAC;gBAAE,SAAS;YACzB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;YAChE,IAAI,IAAI,KAAK,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC"}
|
package/dist/tools/toolsets.d.ts
CHANGED
|
@@ -116,9 +116,25 @@ export declare function coreToolJsonSchemas(cm?: ConfigManagerLike): ToolJsonSch
|
|
|
116
116
|
* Tiered exposure mode — read from config (`tools.loopExposure`):
|
|
117
117
|
* - 'tiered' — core schemas on the wire; the rest via `tool_search` load.
|
|
118
118
|
* - 'all' — the pre-tiering behavior (every enabled toolset's schemas).
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
119
|
+
*
|
|
120
|
+
* DEFAULT 'tiered' (flipped from 'all' after the live evidence below).
|
|
121
|
+
*
|
|
122
|
+
* Measured on the built 2.7.3 artifact: the full set is 110 schemas ≈
|
|
123
|
+
* 68,764 bytes ≈ 17.2K tokens sent on EVERY loop step, while the tiered core
|
|
124
|
+
* is 16 schemas ≈ 15,034 bytes ≈ 3.9K tokens — a 4.6× cut. That payload is a
|
|
125
|
+
* hard FUNCTIONAL ceiling, not merely a cost: Gemini's free tier caps input
|
|
126
|
+
* at 16,000 tokens per model per minute
|
|
127
|
+
* (`generate_content_free_tier_input_token_count`), so a 17.2K-token tool
|
|
128
|
+
* payload can never fit — every turn dies with "You exceeded your current
|
|
129
|
+
* quota", which is exactly the live 429 users hit on the WhatsApp/dashboard
|
|
130
|
+
* chat paths.
|
|
131
|
+
*
|
|
132
|
+
* Tiering stays safe because CORE_TOOL_NAMES keeps the whole tool CONTRACT on
|
|
133
|
+
* the wire (`suggest_followups`, `ask_user`, `plan_todo`) plus `tool_search`,
|
|
134
|
+
* the discovery loader — so a turn that needs a domain tool still reaches it
|
|
135
|
+
* mid-turn instead of being stranded without it.
|
|
136
|
+
*
|
|
137
|
+
* 'all' remains an explicit opt-in for large-context models / debugging.
|
|
122
138
|
*/
|
|
123
139
|
export declare function getLoopExposureMode(cm?: ConfigManagerLike): 'tiered' | 'all';
|
|
124
140
|
/** Status of every toolset (CLI + future dashboard): enabled, label, tools. */
|