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
|
@@ -28,10 +28,16 @@ import { resolveProvider } from './router.js';
|
|
|
28
28
|
import { resolveWorkingModel } from '../inference/model-validator.js';
|
|
29
29
|
import { getAutoRouter, isAutoModel, isAutoProvider } from '../learning/auto-router.js';
|
|
30
30
|
import { buildDeepFailoverPool, createFailoverExclusionFilter } from '../learning/resilient-call.js';
|
|
31
|
+
import { recordActionFailure } from '../learning/failure-bookkeeping.js';
|
|
32
|
+
import { recordRegistrySuccess, getProviderFallback, classifyFallbackError, isRetryableError, } from '../learning/provider-fallback.js';
|
|
33
|
+
import { resolveThreadBudgetChars } from '../learning/context-budget.js';
|
|
31
34
|
import { buildLoopProjectContext } from '../tools/loop-project-context.js';
|
|
32
35
|
import { getLoopExposureMode } from '../tools/toolsets.js';
|
|
36
|
+
import { resolveModelHarnessProfile } from '../learning/model-harness.js';
|
|
37
|
+
import { hasCredentials } from '../learning/model-selection.js';
|
|
33
38
|
import { resolveEngine } from '../learning/engine-router.js';
|
|
34
39
|
import { logger } from '../utils/logger.js';
|
|
40
|
+
import { toUserFacingGenerationError } from '../inference/tool-call-utils.js';
|
|
35
41
|
/** The system prompt for the execute-loop arm (verification-first). */
|
|
36
42
|
function buildExecuteLoopSystemPrompt(toolContractJson) {
|
|
37
43
|
return [
|
|
@@ -58,6 +64,84 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
|
|
|
58
64
|
let providerType = 'auto';
|
|
59
65
|
let model = 'default';
|
|
60
66
|
let provider = null;
|
|
67
|
+
// ── Mid-turn failover candidate pool ────────────────────────────────────
|
|
68
|
+
// The SAME deep chain the orchestrator/chat walk. Before this the loop only
|
|
69
|
+
// used the chain to pick its STARTING provider: a 429 on the second step
|
|
70
|
+
// killed the whole turn (observed live on gemini free tier) and the failure
|
|
71
|
+
// was never recorded, so the next run repeated the same pick. callModel now
|
|
72
|
+
// walks this pool and writes every failure through the shared bookkeeping.
|
|
73
|
+
const candidatePairs = [];
|
|
74
|
+
const seenCandidate = new Set();
|
|
75
|
+
const pushCandidate = (prov, mdl) => {
|
|
76
|
+
if (!prov)
|
|
77
|
+
return;
|
|
78
|
+
const m = mdl && mdl !== 'default' ? mdl : 'default';
|
|
79
|
+
const key = `${prov}|${m}`;
|
|
80
|
+
if (seenCandidate.has(key))
|
|
81
|
+
return;
|
|
82
|
+
seenCandidate.add(key);
|
|
83
|
+
candidatePairs.push({ provider: prov, model: m });
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* True when the caller explicitly pinned a provider (`--provider X`). A pin
|
|
87
|
+
* narrows WHICH failures justify leaving the requested provider (see the
|
|
88
|
+
* retryable gate in `callModel`); it never disables failover entirely.
|
|
89
|
+
*/
|
|
90
|
+
const pinnedRun = Boolean(opts.provider && !isAutoProvider(opts.provider));
|
|
91
|
+
/**
|
|
92
|
+
* The pinned run's config-declared fallback chain, derived LAZILY on the
|
|
93
|
+
* first failure — never at route time. Deriving it eagerly made every pinned
|
|
94
|
+
* run pay for a provider ranking even when nothing failed (measured as a real
|
|
95
|
+
* latency regression on the execute-dispatch path), and chat's non-auto path
|
|
96
|
+
* derives the same chain the same lazy way, inside its failure branch.
|
|
97
|
+
*/
|
|
98
|
+
let pinnedFallbacks = null;
|
|
99
|
+
const resolvePinnedFallbacks = () => {
|
|
100
|
+
if (pinnedFallbacks)
|
|
101
|
+
return pinnedFallbacks;
|
|
102
|
+
const out = [];
|
|
103
|
+
try {
|
|
104
|
+
const chain = getProviderFallback(configManager, configManager.getAll().fallback)
|
|
105
|
+
.getFallbackChain(providerType);
|
|
106
|
+
// Only providers the user can actually CALL. An explicit `fallback.
|
|
107
|
+
// providers` entry with no key (e.g. a placeholder NIM) is not filtered
|
|
108
|
+
// out by the chain itself, so it used to cost a full connection timeout
|
|
109
|
+
// before the next fallback was tried — measured live at ~25s against an
|
|
110
|
+
// unauthenticated endpoint. This is the same credential gate the router's
|
|
111
|
+
// own candidate set applies (`hasCredentials`).
|
|
112
|
+
const fbTypes = chain.filter((t) => t !== providerType && hasCredentials(configManager, t));
|
|
113
|
+
// SAME exclusion predicate the auto path applies (session/model
|
|
114
|
+
// cooldowns + cross-pipeline memory + registry per-ENTRY usability): a
|
|
115
|
+
// registry-parked or quarantined fallback is ordered LAST — never
|
|
116
|
+
// dropped. The PINNED provider itself is never filtered: the user asked
|
|
117
|
+
// for it explicitly, and a spot-check may be about to re-admit it.
|
|
118
|
+
let ordered = fbTypes;
|
|
119
|
+
try {
|
|
120
|
+
const isExcluded = createFailoverExclusionFilter();
|
|
121
|
+
ordered = [
|
|
122
|
+
...fbTypes.filter((t) => !isExcluded(t)),
|
|
123
|
+
...fbTypes.filter((t) => isExcluded(t)),
|
|
124
|
+
];
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Exclusion is an optimization — never cost us the chain itself.
|
|
128
|
+
}
|
|
129
|
+
for (const t of ordered)
|
|
130
|
+
out.push({ provider: t, model: 'default' });
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// Best-effort — an unconfigured fallback chain must never break a pinned
|
|
134
|
+
// run (the pinned candidate alone is still a valid pool).
|
|
135
|
+
}
|
|
136
|
+
pinnedFallbacks = out;
|
|
137
|
+
return out;
|
|
138
|
+
};
|
|
139
|
+
/** Per-turn failure session — same composition every other action uses. */
|
|
140
|
+
const failureSession = {
|
|
141
|
+
sessionFailedProviders: new Map(),
|
|
142
|
+
sessionTransientFailedProviders: new Set(),
|
|
143
|
+
sessionFailedModels: new Map(),
|
|
144
|
+
};
|
|
61
145
|
try {
|
|
62
146
|
if (opts.provider && !isAutoProvider(opts.provider)) {
|
|
63
147
|
const resolved = resolveProvider(configManager, opts.provider);
|
|
@@ -66,6 +150,16 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
|
|
|
66
150
|
model = opts.model && !isAutoModel(opts.model)
|
|
67
151
|
? opts.model
|
|
68
152
|
: await resolveWorkingModel(provider, providerType, undefined);
|
|
153
|
+
pushCandidate(providerType, model);
|
|
154
|
+
// ── A PINNED RUN FAILS OVER TOO ──────────────────────────────────────
|
|
155
|
+
// A pinned provider used to contribute a SINGLE candidate, so any
|
|
156
|
+
// mid-turn failure killed the whole turn even though a fallback chain
|
|
157
|
+
// was configured — the pin collapsed the deep pool into a one-shot. The
|
|
158
|
+
// SAME config-declared chain chat's non-auto path walks (`fallback.
|
|
159
|
+
// providers` when set, otherwise the credentialed/verified providers
|
|
160
|
+
// ranked dynamically) is appended by `extendWithPinnedFallbacks()` when a
|
|
161
|
+
// failure actually needs it, so `--provider X` still lands a best-effort
|
|
162
|
+
// answer instead of dying on X's first bad step.
|
|
69
163
|
}
|
|
70
164
|
else {
|
|
71
165
|
const routed = await getAutoRouter().resolve('execute', goal, { verbose: !opts.quiet }, configManager);
|
|
@@ -114,6 +208,9 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
|
|
|
114
208
|
...pairs.filter((p) => !isExcluded(p.provider, p.model)),
|
|
115
209
|
...pairs.filter((p) => isExcluded(p.provider, p.model)),
|
|
116
210
|
];
|
|
211
|
+
// Hand the whole ordered chain to the mid-turn walk.
|
|
212
|
+
for (const pair of ordered)
|
|
213
|
+
pushCandidate(pair.provider, pair.model);
|
|
117
214
|
for (const pair of ordered) {
|
|
118
215
|
try {
|
|
119
216
|
const resolved = resolveProvider(configManager, pair.provider);
|
|
@@ -134,7 +231,10 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
|
|
|
134
231
|
}
|
|
135
232
|
}
|
|
136
233
|
catch (err) {
|
|
137
|
-
return failureResult(
|
|
234
|
+
return failureResult(
|
|
235
|
+
// User-facing reason is sanitized (no provider wire text); the raw error
|
|
236
|
+
// rides along as the technical explanation below.
|
|
237
|
+
toUserFacingGenerationError(err), startedAt, opts.provider ?? 'auto', opts.model ?? 'default', `routing failed before an engine decision was possible: ${err instanceof Error ? err.message : String(err)}`);
|
|
138
238
|
}
|
|
139
239
|
if (!provider) {
|
|
140
240
|
return failureResult('No available provider for the loop engine (check API keys / local runner).', startedAt, opts.provider ?? 'auto', opts.model ?? 'default', 'no available provider after the candidate walk');
|
|
@@ -194,38 +294,171 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
|
|
|
194
294
|
];
|
|
195
295
|
const loadedExtraTools = new Set();
|
|
196
296
|
const erroredTools = [];
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
297
|
+
// Adapter cache — one `resolveProvider` per provider per turn.
|
|
298
|
+
const resolvedProviders = new Map();
|
|
299
|
+
const resolveAdapter = async (prov) => {
|
|
300
|
+
const cached = resolvedProviders.get(prov);
|
|
301
|
+
if (cached)
|
|
302
|
+
return cached;
|
|
303
|
+
const resolved = resolveProvider(configManager, prov);
|
|
304
|
+
resolvedProviders.set(prov, resolved.provider);
|
|
305
|
+
return resolved.provider;
|
|
306
|
+
};
|
|
307
|
+
/** Candidates that already failed in THIS turn (attempted, but tried last). */
|
|
308
|
+
const failedPairs = new Set();
|
|
309
|
+
const pairKey = (p, m) => `${p}|${m}`;
|
|
310
|
+
/** One generation attempt on a concrete provider × model (native → JSON). */
|
|
311
|
+
const tryOnce = async (prov, mdl, messages, schemas, abort) => {
|
|
312
|
+
if (typeof prov.generateTools === 'function' && schemas.length > 0) {
|
|
313
|
+
if (typeof prov.generateToolsStream === 'function' && opts.onToken) {
|
|
314
|
+
return prov.generateToolsStream(messages, schemas, { model: mdl, signal: abort }, opts.onToken);
|
|
202
315
|
}
|
|
203
|
-
return
|
|
316
|
+
return prov.generateTools(messages, schemas, { model: mdl, signal: abort });
|
|
204
317
|
}
|
|
205
318
|
// JSON fallback transport — the shared helper the chat engine uses.
|
|
206
319
|
const { buildJsonFallbackPrompt } = await import('../inference/tool-call-utils.js');
|
|
207
320
|
const { extractFallbackToolCalls } = await import('../tools/tool-loop.js');
|
|
208
321
|
const prompt = buildJsonFallbackPrompt(messages, schemas);
|
|
209
322
|
let raw;
|
|
210
|
-
if (typeof
|
|
323
|
+
if (typeof prov.generateStream === 'function') {
|
|
211
324
|
const chunks = [];
|
|
212
|
-
await
|
|
325
|
+
await prov.generateStream(prompt, { model: mdl, signal: abort }, (t) => {
|
|
213
326
|
chunks.push(t);
|
|
214
327
|
opts.onToken?.(t);
|
|
215
328
|
});
|
|
216
329
|
raw = chunks.join('');
|
|
217
330
|
}
|
|
218
331
|
else {
|
|
219
|
-
raw = await
|
|
332
|
+
raw = await prov.generate(prompt, { model: mdl, signal: abort });
|
|
220
333
|
}
|
|
221
334
|
const { text, calls } = extractFallbackToolCalls(raw);
|
|
222
335
|
return { content: text, toolCalls: calls };
|
|
223
336
|
};
|
|
337
|
+
const callModel = async (messages, schemas, _stepOnToken, stepSignal) => {
|
|
338
|
+
void _stepOnToken;
|
|
339
|
+
const abort = stepSignal ?? opts.signal;
|
|
340
|
+
// Walk order: the CURRENT pick first, then the rest of the deep chain.
|
|
341
|
+
// Candidates that already failed this turn are attempted LAST (never
|
|
342
|
+
// dropped), so an all-failed pool still makes the best attempt instead of
|
|
343
|
+
// dying on "no candidate".
|
|
344
|
+
const primary = { provider: providerType, model };
|
|
345
|
+
const all = [];
|
|
346
|
+
const seenAll = new Set();
|
|
347
|
+
for (const c of [primary, ...candidatePairs]) {
|
|
348
|
+
const k = pairKey(c.provider, c.model);
|
|
349
|
+
if (seenAll.has(k))
|
|
350
|
+
continue;
|
|
351
|
+
seenAll.add(k);
|
|
352
|
+
all.push(c);
|
|
353
|
+
}
|
|
354
|
+
const walk = [
|
|
355
|
+
...all.filter((c) => !failedPairs.has(pairKey(c.provider, c.model))),
|
|
356
|
+
...all.filter((c) => failedPairs.has(pairKey(c.provider, c.model))),
|
|
357
|
+
];
|
|
358
|
+
/**
|
|
359
|
+
* Lazily extend the walk with the pinned run's config fallback chain, the
|
|
360
|
+
* first time a candidate actually fails or is unavailable. Appending to
|
|
361
|
+
* `walk` mid-iteration is safe (the array iterator re-reads the length), so
|
|
362
|
+
* the very failure that triggered the extension already fails over within
|
|
363
|
+
* this step instead of deferring to the next one.
|
|
364
|
+
*/
|
|
365
|
+
const extendWithPinnedFallbacks = () => {
|
|
366
|
+
if (!pinnedRun)
|
|
367
|
+
return;
|
|
368
|
+
for (const fb of resolvePinnedFallbacks()) {
|
|
369
|
+
const k = pairKey(fb.provider, fb.model);
|
|
370
|
+
if (seenAll.has(k))
|
|
371
|
+
continue;
|
|
372
|
+
seenAll.add(k);
|
|
373
|
+
all.push(fb);
|
|
374
|
+
walk.push(fb);
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
let lastErr;
|
|
378
|
+
for (const cand of walk) {
|
|
379
|
+
if (abort?.aborted)
|
|
380
|
+
break;
|
|
381
|
+
const key = pairKey(cand.provider, cand.model);
|
|
382
|
+
try {
|
|
383
|
+
const prov = await resolveAdapter(cand.provider);
|
|
384
|
+
if (typeof prov.isAvailable === 'function' && !(await prov.isAvailable())) {
|
|
385
|
+
failedPairs.add(key);
|
|
386
|
+
// A pinned provider that cannot be constructed/reached is not a
|
|
387
|
+
// verdict on it — walk its configured fallbacks.
|
|
388
|
+
extendWithPinnedFallbacks();
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
const desired = cand.model !== 'default'
|
|
392
|
+
? cand.model
|
|
393
|
+
: getAutoRouter().resolveModel(cand.provider, 'execute', configManager);
|
|
394
|
+
const mdl = await resolveWorkingModel(prov, cand.provider, desired);
|
|
395
|
+
// Flip the loop's active provider/model to the candidate that answers,
|
|
396
|
+
// so telemetry and the NEXT step's primary pick follow the winner.
|
|
397
|
+
providerType = cand.provider;
|
|
398
|
+
provider = prov;
|
|
399
|
+
model = mdl;
|
|
400
|
+
const resp = await tryOnce(prov, mdl, messages, schemas, abort);
|
|
401
|
+
// Success attribution — the same per-action write-through chat/execute
|
|
402
|
+
// use, so the provider × model is marked verified for real usage.
|
|
403
|
+
recordRegistrySuccess(cand.provider, mdl, 'execute');
|
|
404
|
+
return resp;
|
|
405
|
+
}
|
|
406
|
+
catch (err) {
|
|
407
|
+
// An abort is a clean stop, not a generation failure — never fail over
|
|
408
|
+
// (or book a failure) for the caller's own cancellation.
|
|
409
|
+
if (abort?.aborted)
|
|
410
|
+
throw err;
|
|
411
|
+
lastErr = err;
|
|
412
|
+
failedPairs.add(key);
|
|
413
|
+
// FULL shared bookkeeping: session exclusion → (rate-limit) ledger
|
|
414
|
+
// park → registry write-through → quota timeline → circuit breaker.
|
|
415
|
+
// This is what makes a mid-loop 429 LEARNED: the model rests and the
|
|
416
|
+
// next run (and this turn's later steps) routes around it.
|
|
417
|
+
try {
|
|
418
|
+
recordActionFailure(failureSession, cand.provider, err, configManager, {
|
|
419
|
+
model: cand.model !== 'default' ? cand.model : model,
|
|
420
|
+
action: 'execute',
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
catch {
|
|
424
|
+
// Best-effort — bookkeeping must never mask the generation error.
|
|
425
|
+
}
|
|
426
|
+
// ── PINNED-RUN GATE ────────────────────────────────────────────────
|
|
427
|
+
// Leaving a provider the user EXPLICITLY asked for is only justified by
|
|
428
|
+
// a failure another provider can plausibly answer — the same retryable
|
|
429
|
+
// gate chat's non-auto path uses. An auth error (the key is dead) or a
|
|
430
|
+
// deterministic request-shape rejection fails identically everywhere;
|
|
431
|
+
// surfacing it beats silently running the user's job somewhere they did
|
|
432
|
+
// not ask for. The failure is still recorded above, so the pin does not
|
|
433
|
+
// blind the router to a dead key.
|
|
434
|
+
if (pinnedRun && !isRetryableError(classifyFallbackError(err))) {
|
|
435
|
+
throw err;
|
|
436
|
+
}
|
|
437
|
+
extendWithPinnedFallbacks();
|
|
438
|
+
if (!opts.quiet) {
|
|
439
|
+
logger.warn(` \u26A0\uFE0F ${cand.provider} failed — trying the next loop candidate...`);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
throw lastErr ?? new Error('no loop candidate could complete the step');
|
|
444
|
+
};
|
|
224
445
|
try {
|
|
446
|
+
// R1 — the harness is fitted to the MODEL that will run, not just to
|
|
447
|
+
// config: `getLoopExposureMode` alone hands a 0.5B local model the same
|
|
448
|
+
// surface as gpt-oss:120b.
|
|
449
|
+
const harness = resolveModelHarnessProfile({
|
|
450
|
+
model,
|
|
451
|
+
configExposure: getLoopExposureMode(configManager),
|
|
452
|
+
});
|
|
225
453
|
const result = await runToolLoop({
|
|
226
454
|
messages: thread,
|
|
227
455
|
maxSteps: opts.maxSteps ?? 16,
|
|
228
|
-
|
|
456
|
+
// Model-window-aware thread budget: a 1M-token model keeps its whole
|
|
457
|
+
// window instead of being trimmed to the fixed ~50K-token default.
|
|
458
|
+
// Undefined (unknown window) leaves the tool-loop default untouched.
|
|
459
|
+
threadBudgetChars: resolveThreadBudgetChars({ provider: providerType, model }),
|
|
460
|
+
toolExposure: harness.exposure,
|
|
461
|
+
maxParallelReads: harness.maxParallelReads,
|
|
229
462
|
onToken: opts.onToken,
|
|
230
463
|
signal: opts.signal,
|
|
231
464
|
context: {
|
|
@@ -269,7 +502,7 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
|
|
|
269
502
|
};
|
|
270
503
|
}
|
|
271
504
|
catch (err) {
|
|
272
|
-
return failureResult(`
|
|
505
|
+
return failureResult(toUserFacingGenerationError(err), startedAt, providerType, model, `loop execution failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
273
506
|
}
|
|
274
507
|
}
|
|
275
508
|
/** Build a failed result (shape-complete for the eval arm comparison). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-executor.js","sourceRoot":"","sources":["../../src/cli/loop-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop-executor.js","sourceRoot":"","sources":["../../src/cli/loop-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAqB5C;;;GAGG;AACH,qBAAa,WAAY,SAAQ,WAAW;IAC1C,MAAM,IAAI,OAAO;YAeH,OAAO;CAoStB"}
|
package/dist/cli/plan.js
CHANGED
|
@@ -11,6 +11,7 @@ import { resolveProvider } from './router.js';
|
|
|
11
11
|
import { getAutoRouter } from '../learning/auto-router.js';
|
|
12
12
|
import { recordRegistrySuccess } from '../learning/provider-fallback.js';
|
|
13
13
|
import { recordActionFailure } from '../learning/failure-bookkeeping.js';
|
|
14
|
+
import { sweepTransientFailures, sessionRevivalStore } from '../learning/provider-revival.js';
|
|
14
15
|
import { runSingleShotAuto } from './failover-runner.js';
|
|
15
16
|
import { PIIPolicyError, GovernancePolicyError } from '../learning/auto-router.js';
|
|
16
17
|
import { buildAutoResolveOptions } from '../learning/resolve-options.js';
|
|
@@ -18,7 +19,7 @@ import { estimateTokens } from '../learning/cost-tracker.js';
|
|
|
18
19
|
import { parseRequestSync } from '../nlu/parser.js';
|
|
19
20
|
import { resolveDispatch } from '../nlu/actions.js';
|
|
20
21
|
import { contractFromParsed, renderContractCard } from '../nlu/contract.js';
|
|
21
|
-
import { maybeAutoRecall, recallCard, recallContextBlock } from '../context/session-recall.js';
|
|
22
|
+
import { maybeAutoRecall, recallCard, recallContextBlock, recallPolicy } from '../context/session-recall.js';
|
|
22
23
|
import { maybeRunBackgroundDuties } from './duties.js';
|
|
23
24
|
/**
|
|
24
25
|
* Plan command — generate implementation plans for code changes
|
|
@@ -128,13 +129,18 @@ Use clear markdown formatting.`;
|
|
|
128
129
|
// project's prior work into the plan prompt (cross-command parity with
|
|
129
130
|
// chat/execute). Best-effort — never breaks plan.
|
|
130
131
|
try {
|
|
131
|
-
|
|
132
|
+
// Ambient recall (see recallPolicy): a plan no longer has to be phrased
|
|
133
|
+
// as a continuation to know what this project already did.
|
|
134
|
+
const recallPolicyDecision = recallPolicy({ intent: parsedTask.intent });
|
|
135
|
+
if (recallPolicyDecision.recall) {
|
|
132
136
|
const recall = await maybeAutoRecall(process.cwd(), this.configManager.getWorkspaceStore());
|
|
133
137
|
if (recall) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
if (recallPolicyDecision.announce) {
|
|
139
|
+
// Pause the live board so the recall card prints cleanly (TTY).
|
|
140
|
+
board.stop();
|
|
141
|
+
console.log(recallCard(recall));
|
|
142
|
+
board.start('Generating plan...');
|
|
143
|
+
}
|
|
138
144
|
prompt = `${recallContextBlock(recall)}\n\n${prompt}`;
|
|
139
145
|
}
|
|
140
146
|
}
|
|
@@ -162,6 +168,14 @@ Use clear markdown formatting.`;
|
|
|
162
168
|
action: 'plan',
|
|
163
169
|
task,
|
|
164
170
|
configManager: this.configManager,
|
|
171
|
+
// Re-admit recovered providers before routing: the transient-failure
|
|
172
|
+
// marker was allocated on this path and never read, so a provider that
|
|
173
|
+
// recovered mid-session stayed excluded from every later plan.
|
|
174
|
+
revive: async () => {
|
|
175
|
+
await sweepTransientFailures(sessionRevivalStore(failureSession), this.configManager, {
|
|
176
|
+
agentType: 'plan',
|
|
177
|
+
});
|
|
178
|
+
},
|
|
165
179
|
// Primary = the picked provider (explicit or default). Ranked =
|
|
166
180
|
// auto-router's ranked providers minus the primary + this-run
|
|
167
181
|
// exclusions, so plan never re-tries a provider that already failed.
|
package/dist/cli/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,19 @@ export interface StopResult {
|
|
|
33
33
|
pid?: number;
|
|
34
34
|
reason?: string;
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* EVERY pid whose command line matches `pattern` (not just the first), newest
|
|
38
|
+
* scan order. Needed to stop a SUPERVISED gateway, which is two processes: the
|
|
39
|
+
* `--supervise` parent and the child it spawned.
|
|
40
|
+
*/
|
|
41
|
+
export declare function findPidsByCommandLine(pattern: RegExp): number[];
|
|
36
42
|
/**
|
|
37
43
|
* Stop a running gateway: locate the `gateway start` process (command-line
|
|
38
44
|
* match first, then the webhook receiver port, default 8787) and SIGTERM it.
|
|
45
|
+
*
|
|
46
|
+
* `--supervise` runs TWO processes (a parent that restarts the child), so every
|
|
47
|
+
* matching node process is stopped — the supervisor forwards SIGTERM to its
|
|
48
|
+
* child, and an orphaned child (supervisor already gone) is caught directly.
|
|
39
49
|
*/
|
|
40
50
|
export declare function stopGateway(opts?: {
|
|
41
51
|
port?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-control.d.ts","sourceRoot":"","sources":["../../src/cli/process-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH;kFACkF;AAClF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkDnE;AAID,0EAA0E;AAC1E,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA2C/E;AAED,gCAAgC;AAChC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"process-control.d.ts","sourceRoot":"","sources":["../../src/cli/process-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH;kFACkF;AAClF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkDnE;AAID,0EAA0E;AAC1E,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA2C/E;AAED,gCAAgC;AAChC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAmB/D;AAcD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC/E;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAcjF"}
|
|
@@ -135,22 +135,88 @@ export async function stopProcess(pid, graceMs = 3000) {
|
|
|
135
135
|
return false; // EPERM (not ours) or already gone
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* EVERY pid whose command line matches `pattern` (not just the first), newest
|
|
140
|
+
* scan order. Needed to stop a SUPERVISED gateway, which is two processes: the
|
|
141
|
+
* `--supervise` parent and the child it spawned.
|
|
142
|
+
*/
|
|
143
|
+
export function findPidsByCommandLine(pattern) {
|
|
144
|
+
const pids = [];
|
|
145
|
+
try {
|
|
146
|
+
if (process.platform === 'win32') {
|
|
147
|
+
const p = findPidByCommandLine(pattern);
|
|
148
|
+
return p === null ? [] : [p];
|
|
149
|
+
}
|
|
150
|
+
const out = execSync('ps -eo pid=,command=', { encoding: 'utf8' });
|
|
151
|
+
for (const line of out.split('\n')) {
|
|
152
|
+
const m = /^\s*(\d+)\s+(.*)$/.exec(line);
|
|
153
|
+
if (!m)
|
|
154
|
+
continue;
|
|
155
|
+
const pid = Number.parseInt(m[1], 10);
|
|
156
|
+
if (pid === process.pid)
|
|
157
|
+
continue;
|
|
158
|
+
if (pattern.test(m[2]))
|
|
159
|
+
pids.push(pid);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
/* ps unavailable — the port probe still covers it */
|
|
164
|
+
}
|
|
165
|
+
return pids;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* A command line that IS a node process (`…/node …` or `…/nodejs …`). The
|
|
169
|
+
* gateway's own argv contains "gateway start", and so do the SHELLS that wrap
|
|
170
|
+
* it — `tmux new-session … "node dist/index.js gateway start --supervise"` and
|
|
171
|
+
* `bash -c cd … && node …` both match the text pattern. Signalling those kills
|
|
172
|
+
* the wrapper (or a whole tmux session) and can leave the gateway running, so
|
|
173
|
+
* the real node processes are preferred and the wrappers are ignored.
|
|
174
|
+
*/
|
|
175
|
+
function isNodeProcess(command) {
|
|
176
|
+
return /(?:^|\s)\S*(?:\/|^)node(?:js)?\s/.test(command) || /^[^\s]*node(?:js)?\s/.test(command);
|
|
177
|
+
}
|
|
138
178
|
/**
|
|
139
179
|
* Stop a running gateway: locate the `gateway start` process (command-line
|
|
140
180
|
* match first, then the webhook receiver port, default 8787) and SIGTERM it.
|
|
181
|
+
*
|
|
182
|
+
* `--supervise` runs TWO processes (a parent that restarts the child), so every
|
|
183
|
+
* matching node process is stopped — the supervisor forwards SIGTERM to its
|
|
184
|
+
* child, and an orphaned child (supervisor already gone) is caught directly.
|
|
141
185
|
*/
|
|
142
186
|
export async function stopGateway(opts) {
|
|
143
187
|
const port = opts?.port ?? 8787;
|
|
144
|
-
|
|
145
|
-
|
|
188
|
+
const pattern = /\bgateway\s+start\b/;
|
|
189
|
+
const candidates = findPidsByCommandLine(pattern);
|
|
190
|
+
// Prefer the node processes; fall back to whatever matched (a non-node
|
|
191
|
+
// launcher is better than refusing to stop at all).
|
|
192
|
+
const nodePids = candidates.filter((pid) => {
|
|
193
|
+
try {
|
|
194
|
+
const cmd = execSync(`ps -p ${pid} -o command=`, { encoding: 'utf8' });
|
|
195
|
+
return isNodeProcess(cmd);
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
let targets = nodePids.length > 0 ? nodePids : candidates;
|
|
202
|
+
if (targets.length === 0) {
|
|
146
203
|
const { findPidOnPort } = await import('./dashboard-restart.js');
|
|
147
|
-
|
|
204
|
+
const onPort = await findPidOnPort(port);
|
|
205
|
+
if (onPort === null) {
|
|
206
|
+
return { stopped: false, reason: `no running gateway process found (port ${port} or \`gateway start\`)` };
|
|
207
|
+
}
|
|
208
|
+
targets = [onPort];
|
|
148
209
|
}
|
|
149
|
-
|
|
150
|
-
|
|
210
|
+
let stoppedAny = false;
|
|
211
|
+
let last;
|
|
212
|
+
for (const pid of targets) {
|
|
213
|
+
if (await stopProcess(pid))
|
|
214
|
+
stoppedAny = true;
|
|
215
|
+
last = pid;
|
|
151
216
|
}
|
|
152
|
-
|
|
153
|
-
|
|
217
|
+
return stoppedAny
|
|
218
|
+
? { stopped: true, pid: last }
|
|
219
|
+
: { stopped: false, pid: last, reason: 'could not signal the gateway process' };
|
|
154
220
|
}
|
|
155
221
|
/**
|
|
156
222
|
* Stop a running dashboard: locate it on its port (default 3030), falling
|