@a5c-ai/agent-platform 5.0.1-staging.b436b3b3e611
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/dist/anycli/cache.d.ts +45 -0
- package/dist/anycli/cache.d.ts.map +1 -0
- package/dist/anycli/cache.js +118 -0
- package/dist/anycli/index.d.ts +10 -0
- package/dist/anycli/index.d.ts.map +1 -0
- package/dist/anycli/index.js +25 -0
- package/dist/anycli/types.d.ts +32 -0
- package/dist/anycli/types.d.ts.map +1 -0
- package/dist/anycli/types.js +9 -0
- package/dist/api/breakpoints.d.ts +93 -0
- package/dist/api/breakpoints.d.ts.map +1 -0
- package/dist/api/breakpoints.js +334 -0
- package/dist/api/effects.d.ts +14 -0
- package/dist/api/effects.d.ts.map +1 -0
- package/dist/api/effects.js +306 -0
- package/dist/api/effectsTypes.d.ts +79 -0
- package/dist/api/effectsTypes.d.ts.map +1 -0
- package/dist/api/effectsTypes.js +6 -0
- package/dist/api/eventStream.d.ts +34 -0
- package/dist/api/eventStream.d.ts.map +1 -0
- package/dist/api/eventStream.js +126 -0
- package/dist/api/index.d.ts +10 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +27 -0
- package/dist/api/runs.d.ts +85 -0
- package/dist/api/runs.d.ts.map +1 -0
- package/dist/api/runs.js +247 -0
- package/dist/api/utils.d.ts +28 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/api/utils.js +74 -0
- package/dist/breakpoints/approvalChains.d.ts +68 -0
- package/dist/breakpoints/approvalChains.d.ts.map +1 -0
- package/dist/breakpoints/approvalChains.js +111 -0
- package/dist/breakpoints/delegation.d.ts +42 -0
- package/dist/breakpoints/delegation.d.ts.map +1 -0
- package/dist/breakpoints/delegation.js +199 -0
- package/dist/breakpoints/delegationTypes.d.ts +46 -0
- package/dist/breakpoints/delegationTypes.d.ts.map +1 -0
- package/dist/breakpoints/delegationTypes.js +10 -0
- package/dist/breakpoints/postures.d.ts +28 -0
- package/dist/breakpoints/postures.d.ts.map +1 -0
- package/dist/breakpoints/postures.js +100 -0
- package/dist/cli/amuxEventsFormatter.d.ts +26 -0
- package/dist/cli/amuxEventsFormatter.d.ts.map +1 -0
- package/dist/cli/amuxEventsFormatter.js +86 -0
- package/dist/cli/args/argFlags.d.ts +6 -0
- package/dist/cli/args/argFlags.d.ts.map +1 -0
- package/dist/cli/args/argFlags.js +72 -0
- package/dist/cli/args/argPositionals.d.ts +3 -0
- package/dist/cli/args/argPositionals.d.ts.map +1 -0
- package/dist/cli/args/argPositionals.js +18 -0
- package/dist/cli/args/index.d.ts +4 -0
- package/dist/cli/args/index.d.ts.map +1 -0
- package/dist/cli/args/index.js +75 -0
- package/dist/cli/args/types.d.ts +13 -0
- package/dist/cli/args/types.d.ts.map +1 -0
- package/dist/cli/args/types.js +2 -0
- package/dist/cli/commands/daemon.d.ts +31 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -0
- package/dist/cli/commands/daemon.js +156 -0
- package/dist/cli/commands/harness/createRun.d.ts +3 -0
- package/dist/cli/commands/harness/createRun.d.ts.map +1 -0
- package/dist/cli/commands/harness/createRun.js +8 -0
- package/dist/cli/commands/harness/resumeRun.d.ts +20 -0
- package/dist/cli/commands/harness/resumeRun.d.ts.map +1 -0
- package/dist/cli/commands/harness/resumeRun.js +341 -0
- package/dist/cli/commands/jsonlInteractive.d.ts +35 -0
- package/dist/cli/commands/jsonlInteractive.d.ts.map +1 -0
- package/dist/cli/commands/jsonlInteractive.js +302 -0
- package/dist/cli/commands/mcpServe.d.ts +18 -0
- package/dist/cli/commands/mcpServe.d.ts.map +1 -0
- package/dist/cli/commands/mcpServe.js +59 -0
- package/dist/cli/commands/session/history.d.ts +14 -0
- package/dist/cli/commands/session/history.d.ts.map +1 -0
- package/dist/cli/commands/session/history.js +100 -0
- package/dist/cli/commands/tui.d.ts +23 -0
- package/dist/cli/commands/tui.d.ts.map +1 -0
- package/dist/cli/commands/tui.js +183 -0
- package/dist/cli/dispatch.d.ts +4 -0
- package/dist/cli/dispatch.d.ts.map +1 -0
- package/dist/cli/dispatch.js +332 -0
- package/dist/cli/main.d.ts +7 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +41 -0
- package/dist/cli/program.d.ts +7 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +8 -0
- package/dist/cli/ui.d.ts +9 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +125 -0
- package/dist/compression/compaction.d.ts +82 -0
- package/dist/compression/compaction.d.ts.map +1 -0
- package/dist/compression/compaction.js +310 -0
- package/dist/cost/claudeCodeParser.d.ts +81 -0
- package/dist/cost/claudeCodeParser.d.ts.map +1 -0
- package/dist/cost/claudeCodeParser.js +232 -0
- package/dist/cost/collector.d.ts +42 -0
- package/dist/cost/collector.d.ts.map +1 -0
- package/dist/cost/collector.js +105 -0
- package/dist/cost/effectCost.d.ts +23 -0
- package/dist/cost/effectCost.d.ts.map +1 -0
- package/dist/cost/effectCost.js +26 -0
- package/dist/cost/index.d.ts +7 -0
- package/dist/cost/index.d.ts.map +1 -0
- package/dist/cost/index.js +28 -0
- package/dist/cost/journal.d.ts +40 -0
- package/dist/cost/journal.d.ts.map +1 -0
- package/dist/cost/journal.js +137 -0
- package/dist/cost/types.d.ts +164 -0
- package/dist/cost/types.d.ts.map +1 -0
- package/dist/cost/types.js +228 -0
- package/dist/daemon/automationExecutor.d.ts +16 -0
- package/dist/daemon/automationExecutor.d.ts.map +1 -0
- package/dist/daemon/automationExecutor.js +222 -0
- package/dist/daemon/config.d.ts +8 -0
- package/dist/daemon/config.d.ts.map +1 -0
- package/dist/daemon/config.js +209 -0
- package/dist/daemon/daemonLog.d.ts +13 -0
- package/dist/daemon/daemonLog.d.ts.map +1 -0
- package/dist/daemon/daemonLog.js +64 -0
- package/dist/daemon/fileWatcher.d.ts +9 -0
- package/dist/daemon/fileWatcher.d.ts.map +1 -0
- package/dist/daemon/fileWatcher.js +141 -0
- package/dist/daemon/index.d.ts +7 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +21 -0
- package/dist/daemon/lifecycle.d.ts +12 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +257 -0
- package/dist/daemon/loop.d.ts +21 -0
- package/dist/daemon/loop.d.ts.map +1 -0
- package/dist/daemon/loop.js +196 -0
- package/dist/daemon/timerScheduler.d.ts +13 -0
- package/dist/daemon/timerScheduler.d.ts.map +1 -0
- package/dist/daemon/timerScheduler.js +122 -0
- package/dist/daemon/types.d.ts +93 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +25 -0
- package/dist/daemon/webhookListener.d.ts +6 -0
- package/dist/daemon/webhookListener.d.ts.map +1 -0
- package/dist/daemon/webhookListener.js +110 -0
- package/dist/governance/authority.d.ts +68 -0
- package/dist/governance/authority.d.ts.map +1 -0
- package/dist/governance/authority.js +136 -0
- package/dist/governance/bridge.d.ts +17 -0
- package/dist/governance/bridge.d.ts.map +1 -0
- package/dist/governance/bridge.js +46 -0
- package/dist/governance/builtins.d.ts +25 -0
- package/dist/governance/builtins.d.ts.map +1 -0
- package/dist/governance/builtins.js +67 -0
- package/dist/governance/categories.d.ts +58 -0
- package/dist/governance/categories.d.ts.map +1 -0
- package/dist/governance/categories.js +120 -0
- package/dist/governance/decisionTrail.d.ts +60 -0
- package/dist/governance/decisionTrail.d.ts.map +1 -0
- package/dist/governance/decisionTrail.js +68 -0
- package/dist/governance/engine.d.ts +20 -0
- package/dist/governance/engine.d.ts.map +1 -0
- package/dist/governance/engine.js +124 -0
- package/dist/governance/index.d.ts +20 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +75 -0
- package/dist/governance/logging.d.ts +18 -0
- package/dist/governance/logging.d.ts.map +1 -0
- package/dist/governance/logging.js +83 -0
- package/dist/governance/mandate.d.ts +83 -0
- package/dist/governance/mandate.d.ts.map +1 -0
- package/dist/governance/mandate.js +180 -0
- package/dist/governance/permissionEvents.d.ts +51 -0
- package/dist/governance/permissionEvents.d.ts.map +1 -0
- package/dist/governance/permissionEvents.js +52 -0
- package/dist/governance/permissionPropagation.d.ts +18 -0
- package/dist/governance/permissionPropagation.d.ts.map +1 -0
- package/dist/governance/permissionPropagation.js +58 -0
- package/dist/governance/postureBridge.d.ts +17 -0
- package/dist/governance/postureBridge.d.ts.map +1 -0
- package/dist/governance/postureBridge.js +117 -0
- package/dist/governance/sandboxBridge.d.ts +49 -0
- package/dist/governance/sandboxBridge.d.ts.map +1 -0
- package/dist/governance/sandboxBridge.js +77 -0
- package/dist/governance/sandboxPolicy.d.ts +51 -0
- package/dist/governance/sandboxPolicy.d.ts.map +1 -0
- package/dist/governance/sandboxPolicy.js +177 -0
- package/dist/governance/types.d.ts +3 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +5 -0
- package/dist/harness/amux/amuxBridge.d.ts +71 -0
- package/dist/harness/amux/amuxBridge.d.ts.map +1 -0
- package/dist/harness/amux/amuxBridge.js +117 -0
- package/dist/harness/amux/amuxClientFactory.d.ts +29 -0
- package/dist/harness/amux/amuxClientFactory.d.ts.map +1 -0
- package/dist/harness/amux/amuxClientFactory.js +90 -0
- package/dist/harness/amux/amuxEventEmitter.d.ts +51 -0
- package/dist/harness/amux/amuxEventEmitter.d.ts.map +1 -0
- package/dist/harness/amux/amuxEventEmitter.js +143 -0
- package/dist/harness/amux/amuxEventMapper.d.ts +58 -0
- package/dist/harness/amux/amuxEventMapper.d.ts.map +1 -0
- package/dist/harness/amux/amuxEventMapper.js +92 -0
- package/dist/harness/amux/amuxHarnessMap.d.ts +25 -0
- package/dist/harness/amux/amuxHarnessMap.d.ts.map +1 -0
- package/dist/harness/amux/amuxHarnessMap.js +55 -0
- package/dist/harness/amux/amuxStdinReader.d.ts +45 -0
- package/dist/harness/amux/amuxStdinReader.d.ts.map +1 -0
- package/dist/harness/amux/amuxStdinReader.js +106 -0
- package/dist/harness/amux/amuxTypes.d.ts +122 -0
- package/dist/harness/amux/amuxTypes.d.ts.map +1 -0
- package/dist/harness/amux/amuxTypes.js +11 -0
- package/dist/harness/amux/index.d.ts +17 -0
- package/dist/harness/amux/index.d.ts.map +1 -0
- package/dist/harness/amux/index.js +34 -0
- package/dist/harness/backgroundTracker.d.ts +64 -0
- package/dist/harness/backgroundTracker.d.ts.map +1 -0
- package/dist/harness/backgroundTracker.js +107 -0
- package/dist/harness/builtInHarness.d.ts +3 -0
- package/dist/harness/builtInHarness.d.ts.map +1 -0
- package/dist/harness/builtInHarness.js +18 -0
- package/dist/harness/capabilityRouter.d.ts +76 -0
- package/dist/harness/capabilityRouter.d.ts.map +1 -0
- package/dist/harness/capabilityRouter.js +176 -0
- package/dist/harness/fallbackChains.d.ts +42 -0
- package/dist/harness/fallbackChains.d.ts.map +1 -0
- package/dist/harness/fallbackChains.js +69 -0
- package/dist/harness/hostContract.d.ts +63 -0
- package/dist/harness/hostContract.d.ts.map +1 -0
- package/dist/harness/hostContract.js +136 -0
- package/dist/harness/index.d.ts +10 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +66 -0
- package/dist/harness/internal/createRun/askUserQuestion.d.ts +11 -0
- package/dist/harness/internal/createRun/askUserQuestion.d.ts.map +1 -0
- package/dist/harness/internal/createRun/askUserQuestion.js +162 -0
- package/dist/harness/internal/createRun/index.d.ts +25 -0
- package/dist/harness/internal/createRun/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/index.js +137 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts +7 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/constants.js +13 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts +43 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effects.js +490 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +20 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +79 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts +3 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.js +319 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts +16 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.js +104 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts +14 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/index.js +36 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +3 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.js +464 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +26 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.js +262 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts +17 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.js +23 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.d.ts +10 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.js +67 -0
- package/dist/harness/internal/createRun/orchestration/types.d.ts +46 -0
- package/dist/harness/internal/createRun/orchestration/types.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/types.js +2 -0
- package/dist/harness/internal/createRun/orchestration/verbose.d.ts +7 -0
- package/dist/harness/internal/createRun/orchestration/verbose.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/verbose.js +240 -0
- package/dist/harness/internal/createRun/output.d.ts +38 -0
- package/dist/harness/internal/createRun/output.d.ts.map +1 -0
- package/dist/harness/internal/createRun/output.js +415 -0
- package/dist/harness/internal/createRun/pi.d.ts +34 -0
- package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
- package/dist/harness/internal/createRun/pi.js +216 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts +5 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.js +113 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts +23 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/delegation.js +176 -0
- package/dist/harness/internal/createRun/planProcess/external.d.ts +14 -0
- package/dist/harness/internal/createRun/planProcess/external.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/external.js +139 -0
- package/dist/harness/internal/createRun/planProcess/index.d.ts +12 -0
- package/dist/harness/internal/createRun/planProcess/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/index.js +24 -0
- package/dist/harness/internal/createRun/planProcess/paths.d.ts +7 -0
- package/dist/harness/internal/createRun/planProcess/paths.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/paths.js +98 -0
- package/dist/harness/internal/createRun/planProcess/phase.d.ts +6 -0
- package/dist/harness/internal/createRun/planProcess/phase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phase.js +361 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +37 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +159 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts +25 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.js +6 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts +20 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/prompts.js +208 -0
- package/dist/harness/internal/createRun/planProcess/recovery.d.ts +18 -0
- package/dist/harness/internal/createRun/planProcess/recovery.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/recovery.js +188 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts +2 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.js +68 -0
- package/dist/harness/internal/createRun/planProcess/runState.d.ts +40 -0
- package/dist/harness/internal/createRun/planProcess/runState.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/runState.js +179 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts +22 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.js +65 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts +2 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validation.js +212 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +11 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.js +328 -0
- package/dist/harness/internal/createRun/planProcess/validationText.d.ts +3 -0
- package/dist/harness/internal/createRun/planProcess/validationText.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationText.js +145 -0
- package/dist/harness/internal/createRun/prompts.d.ts +49 -0
- package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/prompts.js +307 -0
- package/dist/harness/internal/createRun/resumeState.d.ts +28 -0
- package/dist/harness/internal/createRun/resumeState.d.ts.map +1 -0
- package/dist/harness/internal/createRun/resumeState.js +133 -0
- package/dist/harness/internal/createRun/utils.d.ts +182 -0
- package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
- package/dist/harness/internal/createRun/utils.js +133 -0
- package/dist/harness/internal.d.ts +13 -0
- package/dist/harness/internal.d.ts.map +1 -0
- package/dist/harness/internal.js +149 -0
- package/dist/harness/invoker/launch.d.ts +20 -0
- package/dist/harness/invoker/launch.d.ts.map +1 -0
- package/dist/harness/invoker/launch.js +23 -0
- package/dist/harness/invoker/processControl.d.ts +11 -0
- package/dist/harness/invoker/processControl.d.ts.map +1 -0
- package/dist/harness/invoker/processControl.js +50 -0
- package/dist/harness/invoker.d.ts +43 -0
- package/dist/harness/invoker.d.ts.map +1 -0
- package/dist/harness/invoker.js +210 -0
- package/dist/harness/modeSelector.d.ts +50 -0
- package/dist/harness/modeSelector.d.ts.map +1 -0
- package/dist/harness/modeSelector.js +124 -0
- package/dist/harness/modelSelection.d.ts +37 -0
- package/dist/harness/modelSelection.d.ts.map +1 -0
- package/dist/harness/modelSelection.js +81 -0
- package/dist/harness/operatorCommands.d.ts +38 -0
- package/dist/harness/operatorCommands.d.ts.map +1 -0
- package/dist/harness/operatorCommands.js +118 -0
- package/dist/harness/piSecureSandbox.d.ts +8 -0
- package/dist/harness/piSecureSandbox.d.ts.map +1 -0
- package/dist/harness/piSecureSandbox.js +366 -0
- package/dist/harness/piSecureSandboxTypes.d.ts +51 -0
- package/dist/harness/piSecureSandboxTypes.d.ts.map +1 -0
- package/dist/harness/piSecureSandboxTypes.js +6 -0
- package/dist/harness/piWrapper/compaction.d.ts +13 -0
- package/dist/harness/piWrapper/compaction.d.ts.map +1 -0
- package/dist/harness/piWrapper/compaction.js +38 -0
- package/dist/harness/piWrapper/instructionPrompts.d.ts +2 -0
- package/dist/harness/piWrapper/instructionPrompts.d.ts.map +1 -0
- package/dist/harness/piWrapper/instructionPrompts.js +97 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts +77 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
- package/dist/harness/piWrapper/moduleSupport.js +204 -0
- package/dist/harness/piWrapper.d.ts +80 -0
- package/dist/harness/piWrapper.d.ts.map +1 -0
- package/dist/harness/piWrapper.js +389 -0
- package/dist/harness/piWrapper.test.d.ts +2 -0
- package/dist/harness/piWrapper.test.d.ts.map +1 -0
- package/dist/harness/piWrapper.test.js +193 -0
- package/dist/harness/planMode.d.ts +68 -0
- package/dist/harness/planMode.d.ts.map +1 -0
- package/dist/harness/planMode.js +145 -0
- package/dist/harness/selectionPolicies.d.ts +29 -0
- package/dist/harness/selectionPolicies.d.ts.map +1 -0
- package/dist/harness/selectionPolicies.js +165 -0
- package/dist/harness/types.d.ts +266 -0
- package/dist/harness/types.d.ts.map +1 -0
- package/dist/harness/types.js +34 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/interaction/askUserQuestion/core.d.ts +8 -0
- package/dist/interaction/askUserQuestion/core.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion/core.js +112 -0
- package/dist/interaction/askUserQuestion/terminal.d.ts +15 -0
- package/dist/interaction/askUserQuestion/terminal.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion/terminal.js +128 -0
- package/dist/interaction/askUserQuestion.d.ts +10 -0
- package/dist/interaction/askUserQuestion.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion.js +295 -0
- package/dist/interaction/askUserQuestionTypes.d.ts +31 -0
- package/dist/interaction/askUserQuestionTypes.d.ts.map +1 -0
- package/dist/interaction/askUserQuestionTypes.js +6 -0
- package/dist/interaction/index.d.ts +4 -0
- package/dist/interaction/index.d.ts.map +1 -0
- package/dist/interaction/index.js +20 -0
- package/dist/interaction/interactionRouter.d.ts +25 -0
- package/dist/interaction/interactionRouter.d.ts.map +1 -0
- package/dist/interaction/interactionRouter.js +55 -0
- package/dist/mcp/channels/allowlist.d.ts +19 -0
- package/dist/mcp/channels/allowlist.d.ts.map +1 -0
- package/dist/mcp/channels/allowlist.js +140 -0
- package/dist/mcp/channels/channelManager.d.ts +64 -0
- package/dist/mcp/channels/channelManager.d.ts.map +1 -0
- package/dist/mcp/channels/channelManager.js +137 -0
- package/dist/mcp/channels/inboundQueue.d.ts +47 -0
- package/dist/mcp/channels/inboundQueue.d.ts.map +1 -0
- package/dist/mcp/channels/inboundQueue.js +96 -0
- package/dist/mcp/channels/index.d.ts +17 -0
- package/dist/mcp/channels/index.d.ts.map +1 -0
- package/dist/mcp/channels/index.js +39 -0
- package/dist/mcp/channels/outbound.d.ts +33 -0
- package/dist/mcp/channels/outbound.d.ts.map +1 -0
- package/dist/mcp/channels/outbound.js +94 -0
- package/dist/mcp/channels/permissionRelay.d.ts +62 -0
- package/dist/mcp/channels/permissionRelay.d.ts.map +1 -0
- package/dist/mcp/channels/permissionRelay.js +159 -0
- package/dist/mcp/channels/types.d.ts +135 -0
- package/dist/mcp/channels/types.d.ts.map +1 -0
- package/dist/mcp/channels/types.js +16 -0
- package/dist/mcp/client/config.d.ts +28 -0
- package/dist/mcp/client/config.d.ts.map +1 -0
- package/dist/mcp/client/config.js +142 -0
- package/dist/mcp/client/executor.d.ts +30 -0
- package/dist/mcp/client/executor.d.ts.map +1 -0
- package/dist/mcp/client/executor.js +60 -0
- package/dist/mcp/client/index.d.ts +12 -0
- package/dist/mcp/client/index.d.ts.map +1 -0
- package/dist/mcp/client/index.js +27 -0
- package/dist/mcp/client/manager.d.ts +74 -0
- package/dist/mcp/client/manager.d.ts.map +1 -0
- package/dist/mcp/client/manager.js +214 -0
- package/dist/mcp/client/toolRegistry.d.ts +50 -0
- package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
- package/dist/mcp/client/toolRegistry.js +118 -0
- package/dist/mcp/client/types.d.ts +96 -0
- package/dist/mcp/client/types.d.ts.map +1 -0
- package/dist/mcp/client/types.js +15 -0
- package/dist/mcp/transport/index.d.ts +9 -0
- package/dist/mcp/transport/index.d.ts.map +1 -0
- package/dist/mcp/transport/index.js +13 -0
- package/dist/mcp/transport/session.d.ts +18 -0
- package/dist/mcp/transport/session.d.ts.map +1 -0
- package/dist/mcp/transport/session.js +78 -0
- package/dist/mcp/transport/types.d.ts +19 -0
- package/dist/mcp/transport/types.d.ts.map +1 -0
- package/dist/mcp/transport/types.js +7 -0
- package/dist/mcp/transport/websocket.d.ts +41 -0
- package/dist/mcp/transport/websocket.d.ts.map +1 -0
- package/dist/mcp/transport/websocket.js +271 -0
- package/dist/observability/health.d.ts +19 -0
- package/dist/observability/health.d.ts.map +1 -0
- package/dist/observability/health.js +129 -0
- package/dist/observability/index.d.ts +7 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +22 -0
- package/dist/observability/runStatus.d.ts +44 -0
- package/dist/observability/runStatus.d.ts.map +1 -0
- package/dist/observability/runStatus.js +169 -0
- package/dist/observability/timeline.d.ts +11 -0
- package/dist/observability/timeline.d.ts.map +1 -0
- package/dist/observability/timeline.js +176 -0
- package/dist/observability/types.d.ts +62 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +8 -0
- package/dist/observability/webhooks.d.ts +68 -0
- package/dist/observability/webhooks.d.ts.map +1 -0
- package/dist/observability/webhooks.js +132 -0
- package/dist/prompts/commandTemplates.d.ts +3 -0
- package/dist/prompts/commandTemplates.d.ts.map +1 -0
- package/dist/prompts/commandTemplates.js +238 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +28 -0
- package/dist/seams/contract.d.ts +55 -0
- package/dist/seams/contract.d.ts.map +1 -0
- package/dist/seams/contract.js +120 -0
- package/dist/seams/contract.test.d.ts +2 -0
- package/dist/seams/contract.test.d.ts.map +1 -0
- package/dist/seams/contract.test.js +96 -0
- package/dist/seams/index.d.ts +3 -0
- package/dist/seams/index.d.ts.map +1 -0
- package/dist/seams/index.js +8 -0
- package/dist/session/context.d.ts +22 -0
- package/dist/session/context.d.ts.map +1 -0
- package/dist/session/context.js +113 -0
- package/dist/session/continuityState.d.ts +39 -0
- package/dist/session/continuityState.d.ts.map +1 -0
- package/dist/session/continuityState.js +164 -0
- package/dist/session/cost.d.ts +63 -0
- package/dist/session/cost.d.ts.map +1 -0
- package/dist/session/cost.js +194 -0
- package/dist/session/discovery.d.ts +22 -0
- package/dist/session/discovery.d.ts.map +1 -0
- package/dist/session/discovery.js +35 -0
- package/dist/session/history.d.ts +30 -0
- package/dist/session/history.d.ts.map +1 -0
- package/dist/session/history.js +143 -0
- package/dist/session/index.d.ts +7 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +70 -0
- package/dist/session/memoryExtraction.d.ts +65 -0
- package/dist/session/memoryExtraction.d.ts.map +1 -0
- package/dist/session/memoryExtraction.js +201 -0
- package/dist/session/parse.d.ts +45 -0
- package/dist/session/parse.d.ts.map +1 -0
- package/dist/session/parse.js +170 -0
- package/dist/session/persistence.d.ts +46 -0
- package/dist/session/persistence.d.ts.map +1 -0
- package/dist/session/persistence.js +180 -0
- package/dist/session/types.d.ts +267 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +45 -0
- package/dist/session/write.d.ts +61 -0
- package/dist/session/write.d.ts.map +1 -0
- package/dist/session/write.js +213 -0
- package/dist/storage/atomic.d.ts +2 -0
- package/dist/storage/atomic.d.ts.map +1 -0
- package/dist/storage/atomic.js +54 -0
- package/dist/storage/clock.d.ts +2 -0
- package/dist/storage/clock.d.ts.map +1 -0
- package/dist/storage/clock.js +6 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +9 -0
- package/dist/storage/journalWatcher.d.ts +24 -0
- package/dist/storage/journalWatcher.d.ts.map +1 -0
- package/dist/storage/journalWatcher.js +172 -0
- package/dist/storage/paths.d.ts +5 -0
- package/dist/storage/paths.d.ts.map +1 -0
- package/dist/storage/paths.js +26 -0
- package/dist/storage/snapshotState.d.ts +10 -0
- package/dist/storage/snapshotState.d.ts.map +1 -0
- package/dist/storage/snapshotState.js +15 -0
- package/dist/storage/storeTaskArtifacts.d.ts +6 -0
- package/dist/storage/storeTaskArtifacts.d.ts.map +1 -0
- package/dist/storage/storeTaskArtifacts.js +55 -0
- package/dist/storage/types.d.ts +21 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/tasks/crud.d.ts +33 -0
- package/dist/tasks/crud.d.ts.map +1 -0
- package/dist/tasks/crud.js +150 -0
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +9 -0
- package/package.json +141 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Status: NOT INTEGRATED YET
|
|
4
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
5
|
+
* GAP-REMOTE-006: MCP server configuration persistence.
|
|
6
|
+
*
|
|
7
|
+
* Read/write/merge server configurations from mcp-servers.json.
|
|
8
|
+
* Uses the same atomic temp-file + rename pattern as session modules.
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
+
}) : function(o, v) {
|
|
24
|
+
o["default"] = v;
|
|
25
|
+
});
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.getMcpServersConfigPath = getMcpServersConfigPath;
|
|
45
|
+
exports.readMcpServersConfig = readMcpServersConfig;
|
|
46
|
+
exports.writeMcpServersConfig = writeMcpServersConfig;
|
|
47
|
+
exports.upsertServerConfig = upsertServerConfig;
|
|
48
|
+
exports.removeServerConfig = removeServerConfig;
|
|
49
|
+
exports.mergeMcpServersConfig = mergeMcpServersConfig;
|
|
50
|
+
const node_fs_1 = require("node:fs");
|
|
51
|
+
const path = __importStar(require("node:path"));
|
|
52
|
+
const types_1 = require("./types");
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Helpers
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
function emptyServersFile() {
|
|
57
|
+
return { schemaVersion: types_1.MCP_SERVERS_SCHEMA_VERSION, servers: [] };
|
|
58
|
+
}
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
// Public API
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
/** Resolve the path to mcp-servers.json within a state directory. */
|
|
63
|
+
function getMcpServersConfigPath(stateDir) {
|
|
64
|
+
return path.join(stateDir, "mcp-servers.json");
|
|
65
|
+
}
|
|
66
|
+
/** Read server configurations. Returns empty list on missing/corrupt file. */
|
|
67
|
+
async function readMcpServersConfig(stateDir) {
|
|
68
|
+
const filePath = getMcpServersConfigPath(stateDir);
|
|
69
|
+
let raw;
|
|
70
|
+
try {
|
|
71
|
+
raw = await node_fs_1.promises.readFile(filePath, "utf8");
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
const err = error;
|
|
75
|
+
if (err.code === "ENOENT")
|
|
76
|
+
return emptyServersFile();
|
|
77
|
+
return emptyServersFile();
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const data = JSON.parse(raw);
|
|
81
|
+
return {
|
|
82
|
+
schemaVersion: typeof data.schemaVersion === "string" ? data.schemaVersion : types_1.MCP_SERVERS_SCHEMA_VERSION,
|
|
83
|
+
servers: Array.isArray(data.servers) ? data.servers : [],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return emptyServersFile();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/** Write server configurations atomically. */
|
|
91
|
+
async function writeMcpServersConfig(stateDir, config) {
|
|
92
|
+
const filePath = getMcpServersConfigPath(stateDir);
|
|
93
|
+
const dir = path.dirname(filePath);
|
|
94
|
+
const tempPath = `${filePath}.tmp.${process.pid}`;
|
|
95
|
+
await node_fs_1.promises.mkdir(dir, { recursive: true });
|
|
96
|
+
await node_fs_1.promises.writeFile(tempPath, JSON.stringify(config, null, 2), "utf8");
|
|
97
|
+
await node_fs_1.promises.rename(tempPath, filePath);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Add or update a server configuration.
|
|
101
|
+
* If a server with the same name exists, it is replaced.
|
|
102
|
+
*/
|
|
103
|
+
async function upsertServerConfig(stateDir, server) {
|
|
104
|
+
const config = await readMcpServersConfig(stateDir);
|
|
105
|
+
const idx = config.servers.findIndex((s) => s.name === server.name);
|
|
106
|
+
if (idx >= 0) {
|
|
107
|
+
config.servers[idx] = server;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
config.servers.push(server);
|
|
111
|
+
}
|
|
112
|
+
await writeMcpServersConfig(stateDir, config);
|
|
113
|
+
return config;
|
|
114
|
+
}
|
|
115
|
+
/** Remove a server configuration by name. Returns true if removed. */
|
|
116
|
+
async function removeServerConfig(stateDir, serverName) {
|
|
117
|
+
const config = await readMcpServersConfig(stateDir);
|
|
118
|
+
const before = config.servers.length;
|
|
119
|
+
config.servers = config.servers.filter((s) => s.name !== serverName);
|
|
120
|
+
if (config.servers.length === before)
|
|
121
|
+
return false;
|
|
122
|
+
await writeMcpServersConfig(stateDir, config);
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Merge an array of server configs into the existing configuration.
|
|
127
|
+
* Servers with matching names are replaced; new ones are appended.
|
|
128
|
+
*/
|
|
129
|
+
async function mergeMcpServersConfig(stateDir, incoming) {
|
|
130
|
+
const config = await readMcpServersConfig(stateDir);
|
|
131
|
+
for (const server of incoming) {
|
|
132
|
+
const idx = config.servers.findIndex((s) => s.name === server.name);
|
|
133
|
+
if (idx >= 0) {
|
|
134
|
+
config.servers[idx] = server;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
config.servers.push(server);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
await writeMcpServersConfig(stateDir, config);
|
|
141
|
+
return config;
|
|
142
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status: NOT INTEGRATED YET
|
|
3
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
4
|
+
* GAP-TOOLS-025: MCP Tool Executor.
|
|
5
|
+
*
|
|
6
|
+
* Executes MCP tools via the McpClientManager, providing a simplified
|
|
7
|
+
* interface for tool invocation with timing and error handling.
|
|
8
|
+
*/
|
|
9
|
+
import type { McpToolResult } from "./types";
|
|
10
|
+
import type { McpClientManager } from "./manager";
|
|
11
|
+
export interface McpToolExecutionRequest {
|
|
12
|
+
/** Server name (must be connected). */
|
|
13
|
+
serverName: string;
|
|
14
|
+
/** Tool name as exposed by the server. */
|
|
15
|
+
toolName: string;
|
|
16
|
+
/** Tool arguments. */
|
|
17
|
+
args: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
export declare class McpToolExecutor {
|
|
20
|
+
private readonly _manager;
|
|
21
|
+
constructor(manager: McpClientManager);
|
|
22
|
+
/** Execute an MCP tool and return the result with timing. */
|
|
23
|
+
execute(request: McpToolExecutionRequest): Promise<McpToolResult>;
|
|
24
|
+
/**
|
|
25
|
+
* Execute an MCP tool by qualified name "server:tool".
|
|
26
|
+
* Convenience wrapper around execute().
|
|
27
|
+
*/
|
|
28
|
+
executeByQualifiedName(qualifiedName: string, args: Record<string, unknown>): Promise<McpToolResult>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/mcp/client/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAMlD,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAEhC,OAAO,EAAE,gBAAgB;IAIrC,6DAA6D;IACvD,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBvE;;;OAGG;IACG,sBAAsB,CAC1B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;CAe1B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Status: NOT INTEGRATED YET
|
|
4
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
5
|
+
* GAP-TOOLS-025: MCP Tool Executor.
|
|
6
|
+
*
|
|
7
|
+
* Executes MCP tools via the McpClientManager, providing a simplified
|
|
8
|
+
* interface for tool invocation with timing and error handling.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.McpToolExecutor = void 0;
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// McpToolExecutor
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
class McpToolExecutor {
|
|
16
|
+
_manager;
|
|
17
|
+
constructor(manager) {
|
|
18
|
+
this._manager = manager;
|
|
19
|
+
}
|
|
20
|
+
/** Execute an MCP tool and return the result with timing. */
|
|
21
|
+
async execute(request) {
|
|
22
|
+
const start = Date.now();
|
|
23
|
+
try {
|
|
24
|
+
const result = await this._manager.callTool(request.serverName, request.toolName, request.args);
|
|
25
|
+
return {
|
|
26
|
+
...result,
|
|
27
|
+
durationMs: Date.now() - start,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
32
|
+
return {
|
|
33
|
+
success: false,
|
|
34
|
+
content: [{ type: "text", text: message }],
|
|
35
|
+
error: message,
|
|
36
|
+
durationMs: Date.now() - start,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Execute an MCP tool by qualified name "server:tool".
|
|
42
|
+
* Convenience wrapper around execute().
|
|
43
|
+
*/
|
|
44
|
+
async executeByQualifiedName(qualifiedName, args) {
|
|
45
|
+
const colonIdx = qualifiedName.indexOf(":");
|
|
46
|
+
if (colonIdx < 0) {
|
|
47
|
+
return {
|
|
48
|
+
success: false,
|
|
49
|
+
content: [{ type: "text", text: `Invalid qualified tool name "${qualifiedName}" — expected "server:tool"` }],
|
|
50
|
+
error: `Invalid qualified tool name "${qualifiedName}" — expected "server:tool"`,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return this.execute({
|
|
54
|
+
serverName: qualifiedName.slice(0, colonIdx),
|
|
55
|
+
toolName: qualifiedName.slice(colonIdx + 1),
|
|
56
|
+
args,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.McpToolExecutor = McpToolExecutor;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status: NOT INTEGRATED YET
|
|
3
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
4
|
+
* GAP-REMOTE-006: MCP Client barrel exports.
|
|
5
|
+
*/
|
|
6
|
+
export type { McpTransportType, McpServerConfig, McpServersFile, McpConnectionStatus, McpServerConnection, McpToolParameterSchema, McpToolInfo, McpToolResult, } from "./types";
|
|
7
|
+
export { MCP_SERVERS_SCHEMA_VERSION } from "./types";
|
|
8
|
+
export { getMcpServersConfigPath, readMcpServersConfig, writeMcpServersConfig, upsertServerConfig, removeServerConfig, mergeMcpServersConfig, } from "./config";
|
|
9
|
+
export { McpClientManager, type McpClientTransport, type McpTransportFactory, type McpClientManagerOptions, } from "./manager";
|
|
10
|
+
export { McpToolRegistry, type McpToolRegistryOptions, } from "./toolRegistry";
|
|
11
|
+
export { McpToolExecutor, type McpToolExecutionRequest, } from "./executor";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Status: NOT INTEGRATED YET
|
|
4
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
5
|
+
* GAP-REMOTE-006: MCP Client barrel exports.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.McpToolExecutor = exports.McpToolRegistry = exports.McpClientManager = exports.mergeMcpServersConfig = exports.removeServerConfig = exports.upsertServerConfig = exports.writeMcpServersConfig = exports.readMcpServersConfig = exports.getMcpServersConfigPath = exports.MCP_SERVERS_SCHEMA_VERSION = void 0;
|
|
9
|
+
var types_1 = require("./types");
|
|
10
|
+
Object.defineProperty(exports, "MCP_SERVERS_SCHEMA_VERSION", { enumerable: true, get: function () { return types_1.MCP_SERVERS_SCHEMA_VERSION; } });
|
|
11
|
+
// Config persistence
|
|
12
|
+
var config_1 = require("./config");
|
|
13
|
+
Object.defineProperty(exports, "getMcpServersConfigPath", { enumerable: true, get: function () { return config_1.getMcpServersConfigPath; } });
|
|
14
|
+
Object.defineProperty(exports, "readMcpServersConfig", { enumerable: true, get: function () { return config_1.readMcpServersConfig; } });
|
|
15
|
+
Object.defineProperty(exports, "writeMcpServersConfig", { enumerable: true, get: function () { return config_1.writeMcpServersConfig; } });
|
|
16
|
+
Object.defineProperty(exports, "upsertServerConfig", { enumerable: true, get: function () { return config_1.upsertServerConfig; } });
|
|
17
|
+
Object.defineProperty(exports, "removeServerConfig", { enumerable: true, get: function () { return config_1.removeServerConfig; } });
|
|
18
|
+
Object.defineProperty(exports, "mergeMcpServersConfig", { enumerable: true, get: function () { return config_1.mergeMcpServersConfig; } });
|
|
19
|
+
// Client manager
|
|
20
|
+
var manager_1 = require("./manager");
|
|
21
|
+
Object.defineProperty(exports, "McpClientManager", { enumerable: true, get: function () { return manager_1.McpClientManager; } });
|
|
22
|
+
// Tool registry
|
|
23
|
+
var toolRegistry_1 = require("./toolRegistry");
|
|
24
|
+
Object.defineProperty(exports, "McpToolRegistry", { enumerable: true, get: function () { return toolRegistry_1.McpToolRegistry; } });
|
|
25
|
+
// Tool executor
|
|
26
|
+
var executor_1 = require("./executor");
|
|
27
|
+
Object.defineProperty(exports, "McpToolExecutor", { enumerable: true, get: function () { return executor_1.McpToolExecutor; } });
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status: NOT INTEGRATED YET
|
|
3
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
4
|
+
* GAP-REMOTE-006: MCP Client Manager.
|
|
5
|
+
*
|
|
6
|
+
* Manages named MCP server connections with connect/disconnect lifecycle,
|
|
7
|
+
* status tracking, and optional reconnection. The manager does NOT directly
|
|
8
|
+
* depend on @modelcontextprotocol/sdk/client — instead it uses a pluggable
|
|
9
|
+
* transport factory so tests and consumers can inject their own.
|
|
10
|
+
*/
|
|
11
|
+
import type { McpServerConfig, McpServerConnection, McpToolInfo, McpToolResult } from "./types";
|
|
12
|
+
/**
|
|
13
|
+
* Minimal transport interface that the manager uses to interact with
|
|
14
|
+
* an MCP server. Consumers provide a factory that creates these.
|
|
15
|
+
*/
|
|
16
|
+
export interface McpClientTransport {
|
|
17
|
+
/** Connect to the server. Throws on failure. */
|
|
18
|
+
connect(): Promise<void>;
|
|
19
|
+
/** Disconnect gracefully. */
|
|
20
|
+
disconnect(): Promise<void>;
|
|
21
|
+
/** List available tools. */
|
|
22
|
+
listTools(): Promise<McpToolInfo[]>;
|
|
23
|
+
/** Call a tool by name with arguments. */
|
|
24
|
+
callTool(toolName: string, args: Record<string, unknown>): Promise<McpToolResult>;
|
|
25
|
+
}
|
|
26
|
+
/** Factory function that creates a transport for a given server config. */
|
|
27
|
+
export type McpTransportFactory = (config: McpServerConfig) => McpClientTransport;
|
|
28
|
+
export interface McpClientManagerOptions {
|
|
29
|
+
/** State directory for reading mcp-servers.json. */
|
|
30
|
+
stateDir: string;
|
|
31
|
+
/** Factory for creating transports. */
|
|
32
|
+
transportFactory: McpTransportFactory;
|
|
33
|
+
/** Injectable delay function for testing (default: setTimeout-based). */
|
|
34
|
+
delayFn?: (ms: number) => Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
export declare class McpClientManager {
|
|
37
|
+
private readonly _stateDir;
|
|
38
|
+
private readonly _transportFactory;
|
|
39
|
+
private readonly _delay;
|
|
40
|
+
private readonly _connections;
|
|
41
|
+
private _initialized;
|
|
42
|
+
constructor(options: McpClientManagerOptions);
|
|
43
|
+
/** Initialize the manager: load server configs, optionally auto-connect. */
|
|
44
|
+
initialize(autoConnect?: boolean): Promise<void>;
|
|
45
|
+
/** Connect to a named server. Deduplicates concurrent connect attempts. */
|
|
46
|
+
connect(serverName: string): Promise<McpServerConnection>;
|
|
47
|
+
/**
|
|
48
|
+
* Attempt reconnection for a server that was previously connected.
|
|
49
|
+
* Retries up to maxReconnectAttempts with exponential backoff.
|
|
50
|
+
* Deduplicates concurrent reconnect calls.
|
|
51
|
+
* Returns the final connection state (may be 'error' if all retries exhausted).
|
|
52
|
+
*/
|
|
53
|
+
reconnect(serverName: string): Promise<McpServerConnection>;
|
|
54
|
+
/** Disconnect from a named server. */
|
|
55
|
+
disconnect(serverName: string): Promise<McpServerConnection>;
|
|
56
|
+
/** Disconnect all servers and release resources. */
|
|
57
|
+
disconnectAll(): Promise<void>;
|
|
58
|
+
/** Get connection status for a named server. */
|
|
59
|
+
getConnection(serverName: string): McpServerConnection | undefined;
|
|
60
|
+
/** List all tracked connections. */
|
|
61
|
+
listConnections(): McpServerConnection[];
|
|
62
|
+
/** List tools available on a connected server. */
|
|
63
|
+
listTools(serverName: string): Promise<McpToolInfo[]>;
|
|
64
|
+
/** Call a tool on a connected server. */
|
|
65
|
+
callTool(serverName: string, toolName: string, args: Record<string, unknown>): Promise<McpToolResult>;
|
|
66
|
+
/** Whether the manager has been initialized. */
|
|
67
|
+
get initialized(): boolean;
|
|
68
|
+
/** Get the config for a server. */
|
|
69
|
+
getServerConfig(serverName: string): McpServerConfig | undefined;
|
|
70
|
+
private _doReconnect;
|
|
71
|
+
private _doConnect;
|
|
72
|
+
private _setStatus;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/mcp/client/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EAEnB,WAAW,EACX,aAAa,EACd,MAAM,SAAS,CAAC;AAOjB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,6BAA6B;IAC7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,4BAA4B;IAC5B,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACnF;AAED,2EAA2E;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,kBAAkB,CAAC;AAMlF,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,yEAAyE;IACzE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAuBD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,uBAAuB;IAM5C,4EAA4E;IACtE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtD,2EAA2E;IACrE,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuB/D;;;;;OAKG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwBjE,sCAAsC;IAChC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqBlE,oDAAoD;IAC9C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,gDAAgD;IAChD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIlE,oCAAoC;IACpC,eAAe,IAAI,mBAAmB,EAAE;IAIxC,kDAAkD;IAC5C,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ3D,yCAAyC;IACnC,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;IAQzB,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,mCAAmC;IACnC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;YAQlD,YAAY;YAgCZ,UAAU;IAsBxB,OAAO,CAAC,UAAU;CAInB"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Status: NOT INTEGRATED YET
|
|
4
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
5
|
+
* GAP-REMOTE-006: MCP Client Manager.
|
|
6
|
+
*
|
|
7
|
+
* Manages named MCP server connections with connect/disconnect lifecycle,
|
|
8
|
+
* status tracking, and optional reconnection. The manager does NOT directly
|
|
9
|
+
* depend on @modelcontextprotocol/sdk/client — instead it uses a pluggable
|
|
10
|
+
* transport factory so tests and consumers can inject their own.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.McpClientManager = void 0;
|
|
14
|
+
const config_1 = require("./config");
|
|
15
|
+
/** Default delay (ms) between reconnection attempts. */
|
|
16
|
+
const RECONNECT_BASE_DELAY_MS = 1000;
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// McpClientManager
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
const defaultDelay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
21
|
+
class McpClientManager {
|
|
22
|
+
_stateDir;
|
|
23
|
+
_transportFactory;
|
|
24
|
+
_delay;
|
|
25
|
+
_connections = new Map();
|
|
26
|
+
_initialized = false;
|
|
27
|
+
constructor(options) {
|
|
28
|
+
this._stateDir = options.stateDir;
|
|
29
|
+
this._transportFactory = options.transportFactory;
|
|
30
|
+
this._delay = options.delayFn ?? defaultDelay;
|
|
31
|
+
}
|
|
32
|
+
/** Initialize the manager: load server configs, optionally auto-connect. */
|
|
33
|
+
async initialize(autoConnect) {
|
|
34
|
+
const file = await (0, config_1.readMcpServersConfig)(this._stateDir);
|
|
35
|
+
for (const config of file.servers) {
|
|
36
|
+
this._connections.set(config.name, {
|
|
37
|
+
config,
|
|
38
|
+
connection: {
|
|
39
|
+
name: config.name,
|
|
40
|
+
status: "disconnected",
|
|
41
|
+
lastStatusChange: new Date().toISOString(),
|
|
42
|
+
reconnectAttempts: 0,
|
|
43
|
+
},
|
|
44
|
+
transport: undefined,
|
|
45
|
+
connectPromise: undefined,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
this._initialized = true;
|
|
49
|
+
if (autoConnect) {
|
|
50
|
+
const autoServers = file.servers.filter((s) => s.autoConnect);
|
|
51
|
+
await Promise.allSettled(autoServers.map((s) => this.connect(s.name)));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Connect to a named server. Deduplicates concurrent connect attempts. */
|
|
55
|
+
async connect(serverName) {
|
|
56
|
+
const record = this._connections.get(serverName);
|
|
57
|
+
if (!record) {
|
|
58
|
+
throw new Error(`MCP server "${serverName}" not found in configuration`);
|
|
59
|
+
}
|
|
60
|
+
if (record.connection.status === "connected") {
|
|
61
|
+
return record.connection;
|
|
62
|
+
}
|
|
63
|
+
// Deduplicate in-flight connect attempts
|
|
64
|
+
if (record.connectPromise) {
|
|
65
|
+
return record.connectPromise;
|
|
66
|
+
}
|
|
67
|
+
record.connectPromise = this._doConnect(record);
|
|
68
|
+
try {
|
|
69
|
+
return await record.connectPromise;
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
record.connectPromise = undefined;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Attempt reconnection for a server that was previously connected.
|
|
77
|
+
* Retries up to maxReconnectAttempts with exponential backoff.
|
|
78
|
+
* Deduplicates concurrent reconnect calls.
|
|
79
|
+
* Returns the final connection state (may be 'error' if all retries exhausted).
|
|
80
|
+
*/
|
|
81
|
+
async reconnect(serverName) {
|
|
82
|
+
const record = this._connections.get(serverName);
|
|
83
|
+
if (!record) {
|
|
84
|
+
throw new Error(`MCP server "${serverName}" not found in configuration`);
|
|
85
|
+
}
|
|
86
|
+
const maxAttempts = record.config.maxReconnectAttempts ?? 3;
|
|
87
|
+
if (!record.config.reconnect || maxAttempts <= 0) {
|
|
88
|
+
throw new Error(`Reconnection is not enabled for server "${serverName}"`);
|
|
89
|
+
}
|
|
90
|
+
// Deduplicate concurrent reconnect calls
|
|
91
|
+
if (record.connectPromise) {
|
|
92
|
+
return record.connectPromise;
|
|
93
|
+
}
|
|
94
|
+
record.connectPromise = this._doReconnect(record, maxAttempts);
|
|
95
|
+
try {
|
|
96
|
+
return await record.connectPromise;
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
record.connectPromise = undefined;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Disconnect from a named server. */
|
|
103
|
+
async disconnect(serverName) {
|
|
104
|
+
const record = this._connections.get(serverName);
|
|
105
|
+
if (!record) {
|
|
106
|
+
throw new Error(`MCP server "${serverName}" not found in configuration`);
|
|
107
|
+
}
|
|
108
|
+
if (record.transport) {
|
|
109
|
+
try {
|
|
110
|
+
await record.transport.disconnect();
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// Best-effort disconnect
|
|
114
|
+
}
|
|
115
|
+
record.transport = undefined;
|
|
116
|
+
}
|
|
117
|
+
record.connectPromise = undefined;
|
|
118
|
+
this._setStatus(record, "disconnected");
|
|
119
|
+
record.connection.error = undefined;
|
|
120
|
+
return record.connection;
|
|
121
|
+
}
|
|
122
|
+
/** Disconnect all servers and release resources. */
|
|
123
|
+
async disconnectAll() {
|
|
124
|
+
const names = [...this._connections.keys()];
|
|
125
|
+
await Promise.allSettled(names.map((n) => this.disconnect(n)));
|
|
126
|
+
}
|
|
127
|
+
/** Get connection status for a named server. */
|
|
128
|
+
getConnection(serverName) {
|
|
129
|
+
return this._connections.get(serverName)?.connection;
|
|
130
|
+
}
|
|
131
|
+
/** List all tracked connections. */
|
|
132
|
+
listConnections() {
|
|
133
|
+
return [...this._connections.values()].map((r) => r.connection);
|
|
134
|
+
}
|
|
135
|
+
/** List tools available on a connected server. */
|
|
136
|
+
async listTools(serverName) {
|
|
137
|
+
const record = this._connections.get(serverName);
|
|
138
|
+
if (!record?.transport || record.connection.status !== "connected") {
|
|
139
|
+
throw new Error(`MCP server "${serverName}" is not connected`);
|
|
140
|
+
}
|
|
141
|
+
return record.transport.listTools();
|
|
142
|
+
}
|
|
143
|
+
/** Call a tool on a connected server. */
|
|
144
|
+
async callTool(serverName, toolName, args) {
|
|
145
|
+
const record = this._connections.get(serverName);
|
|
146
|
+
if (!record?.transport || record.connection.status !== "connected") {
|
|
147
|
+
throw new Error(`MCP server "${serverName}" is not connected`);
|
|
148
|
+
}
|
|
149
|
+
return record.transport.callTool(toolName, args);
|
|
150
|
+
}
|
|
151
|
+
/** Whether the manager has been initialized. */
|
|
152
|
+
get initialized() {
|
|
153
|
+
return this._initialized;
|
|
154
|
+
}
|
|
155
|
+
/** Get the config for a server. */
|
|
156
|
+
getServerConfig(serverName) {
|
|
157
|
+
return this._connections.get(serverName)?.config;
|
|
158
|
+
}
|
|
159
|
+
// -------------------------------------------------------------------------
|
|
160
|
+
// Internals
|
|
161
|
+
// -------------------------------------------------------------------------
|
|
162
|
+
async _doReconnect(record, maxAttempts) {
|
|
163
|
+
this._setStatus(record, "reconnecting");
|
|
164
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
165
|
+
record.connection.reconnectAttempts = attempt;
|
|
166
|
+
// Exponential backoff: 1s, 2s, 4s, ...
|
|
167
|
+
const delayMs = RECONNECT_BASE_DELAY_MS * Math.pow(2, attempt - 1);
|
|
168
|
+
await this._delay(delayMs);
|
|
169
|
+
const transport = this._transportFactory(record.config);
|
|
170
|
+
record.transport = transport;
|
|
171
|
+
try {
|
|
172
|
+
await transport.connect();
|
|
173
|
+
this._setStatus(record, "connected");
|
|
174
|
+
record.connection.connectedAt = new Date().toISOString();
|
|
175
|
+
record.connection.reconnectAttempts = 0;
|
|
176
|
+
record.connection.error = undefined;
|
|
177
|
+
return record.connection;
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
181
|
+
record.connection.error = message;
|
|
182
|
+
record.transport = undefined;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// All retries exhausted
|
|
186
|
+
this._setStatus(record, "error");
|
|
187
|
+
return record.connection;
|
|
188
|
+
}
|
|
189
|
+
async _doConnect(record) {
|
|
190
|
+
this._setStatus(record, "connecting");
|
|
191
|
+
const transport = this._transportFactory(record.config);
|
|
192
|
+
record.transport = transport;
|
|
193
|
+
try {
|
|
194
|
+
await transport.connect();
|
|
195
|
+
this._setStatus(record, "connected");
|
|
196
|
+
record.connection.connectedAt = new Date().toISOString();
|
|
197
|
+
record.connection.reconnectAttempts = 0;
|
|
198
|
+
record.connection.error = undefined;
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
202
|
+
this._setStatus(record, "error");
|
|
203
|
+
record.connection.error = message;
|
|
204
|
+
record.transport = undefined;
|
|
205
|
+
throw err;
|
|
206
|
+
}
|
|
207
|
+
return record.connection;
|
|
208
|
+
}
|
|
209
|
+
_setStatus(record, status) {
|
|
210
|
+
record.connection.status = status;
|
|
211
|
+
record.connection.lastStatusChange = new Date().toISOString();
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
exports.McpClientManager = McpClientManager;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status: NOT INTEGRATED YET
|
|
3
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
4
|
+
* GAP-TOOLS-025: MCP Tool Registry.
|
|
5
|
+
*
|
|
6
|
+
* Maintains a cached index of tools across all connected MCP servers.
|
|
7
|
+
* Supports refresh, search, and lookup by qualified name (server:tool).
|
|
8
|
+
*/
|
|
9
|
+
import type { McpToolInfo } from "./types";
|
|
10
|
+
import type { McpClientManager } from "./manager";
|
|
11
|
+
export interface McpToolRegistryOptions {
|
|
12
|
+
/** TTL for cached tool listings (ms). 0 = never expire (infinite cache). Default: 60000. */
|
|
13
|
+
cacheTtlMs?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare class McpToolRegistry {
|
|
16
|
+
private readonly _manager;
|
|
17
|
+
private readonly _cacheTtlMs;
|
|
18
|
+
private readonly _cache;
|
|
19
|
+
constructor(manager: McpClientManager, options?: McpToolRegistryOptions);
|
|
20
|
+
/**
|
|
21
|
+
* Refresh tool listings from all connected servers.
|
|
22
|
+
* Returns the total number of tools indexed.
|
|
23
|
+
*/
|
|
24
|
+
refreshAll(): Promise<number>;
|
|
25
|
+
/** Refresh tools for a specific server. */
|
|
26
|
+
refreshServer(serverName: string): Promise<McpToolInfo[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Get all known tools across all servers.
|
|
29
|
+
* Returns cached data when available and not expired.
|
|
30
|
+
*/
|
|
31
|
+
getAllTools(): McpToolInfo[];
|
|
32
|
+
/** Get tools for a specific server from cache. */
|
|
33
|
+
getToolsForServer(serverName: string): McpToolInfo[];
|
|
34
|
+
/**
|
|
35
|
+
* Search tools by name or description substring (case-insensitive).
|
|
36
|
+
* Searches across all cached servers.
|
|
37
|
+
*/
|
|
38
|
+
searchTools(query: string): McpToolInfo[];
|
|
39
|
+
/**
|
|
40
|
+
* Look up a tool by qualified name "serverName:toolName".
|
|
41
|
+
* Returns undefined if not found in cache.
|
|
42
|
+
*/
|
|
43
|
+
getToolByQualifiedName(qualifiedName: string): McpToolInfo | undefined;
|
|
44
|
+
/** Clear the entire cache. */
|
|
45
|
+
clearCache(): void;
|
|
46
|
+
/** Number of non-expired tools currently in cache (across all servers). */
|
|
47
|
+
get cachedToolCount(): number;
|
|
48
|
+
private _isExpired;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=toolRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolRegistry.d.ts","sourceRoot":"","sources":["../../../src/mcp/client/toolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAMlD,MAAM,WAAW,sBAAsB;IACrC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAWD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAE/C,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAKvE;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAgBnC,2CAA2C;IACrC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAM/D;;;OAGG;IACH,WAAW,IAAI,WAAW,EAAE;IAS5B,kDAAkD;IAClD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAMpD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;IAUzC;;;OAGG;IACH,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAYtE,8BAA8B;IAC9B,UAAU,IAAI,IAAI;IAIlB,2EAA2E;IAC3E,IAAI,eAAe,IAAI,MAAM,CAO5B;IAMD,OAAO,CAAC,UAAU;CAInB"}
|