@a5c-ai/genty-platform 5.1.1-staging.583e3d9a6ed7
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 +48 -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/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 +158 -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 +245 -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/durableQueue.d.ts +41 -0
- package/dist/daemon/durableQueue.d.ts.map +1 -0
- package/dist/daemon/durableQueue.js +183 -0
- package/dist/daemon/fileWatcher.d.ts +9 -0
- package/dist/daemon/fileWatcher.d.ts.map +1 -0
- package/dist/daemon/fileWatcher.js +144 -0
- package/dist/daemon/index.d.ts +9 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +26 -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 +27 -0
- package/dist/daemon/loop.d.ts.map +1 -0
- package/dist/daemon/loop.js +387 -0
- package/dist/daemon/timerScheduler.d.ts +13 -0
- package/dist/daemon/timerScheduler.d.ts.map +1 -0
- package/dist/daemon/timerScheduler.js +212 -0
- package/dist/daemon/types.d.ts +122 -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 +132 -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/adapters/adapterBridge.d.ts +71 -0
- package/dist/harness/adapters/adapterBridge.d.ts.map +1 -0
- package/dist/harness/adapters/adapterBridge.js +117 -0
- package/dist/harness/adapters/adapterClientFactory.d.ts +29 -0
- package/dist/harness/adapters/adapterClientFactory.d.ts.map +1 -0
- package/dist/harness/adapters/adapterClientFactory.js +90 -0
- package/dist/harness/adapters/adapterEventEmitter.d.ts +51 -0
- package/dist/harness/adapters/adapterEventEmitter.d.ts.map +1 -0
- package/dist/harness/adapters/adapterEventEmitter.js +143 -0
- package/dist/harness/adapters/adapterEventMapper.d.ts +63 -0
- package/dist/harness/adapters/adapterEventMapper.d.ts.map +1 -0
- package/dist/harness/adapters/adapterEventMapper.js +100 -0
- package/dist/harness/adapters/adapterHarnessMap.d.ts +25 -0
- package/dist/harness/adapters/adapterHarnessMap.d.ts.map +1 -0
- package/dist/harness/adapters/adapterHarnessMap.js +55 -0
- package/dist/harness/adapters/adapterStdinReader.d.ts +45 -0
- package/dist/harness/adapters/adapterStdinReader.d.ts.map +1 -0
- package/dist/harness/adapters/adapterStdinReader.js +106 -0
- package/dist/harness/adapters/adapterTypes.d.ts +122 -0
- package/dist/harness/adapters/adapterTypes.d.ts.map +1 -0
- package/dist/harness/adapters/adapterTypes.js +11 -0
- package/dist/harness/adapters/index.d.ts +17 -0
- package/dist/harness/adapters/index.d.ts.map +1 -0
- package/dist/harness/adapters/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 +18 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +91 -0
- package/dist/harness/internal/createRun/agent-core-loop.d.ts +43 -0
- package/dist/harness/internal/createRun/agent-core-loop.d.ts.map +1 -0
- package/dist/harness/internal/createRun/agent-core-loop.js +247 -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 +163 -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 +17 -0
- package/dist/harness/internal/createRun/orchestration/dispatch.d.ts +23 -0
- package/dist/harness/internal/createRun/orchestration/dispatch.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/dispatch.js +135 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts +134 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effects.js +859 -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/effectsHelpers.test.d.ts +2 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.test.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.test.js +81 -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 +399 -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/hookDecisionEffects.d.ts +32 -0
- package/dist/harness/internal/createRun/orchestration/hookDecisionEffects.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/hookDecisionEffects.js +76 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts +29 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/index.js +370 -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 +580 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +27 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.js +264 -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 +40 -0
- package/dist/harness/internal/createRun/output.d.ts.map +1 -0
- package/dist/harness/internal/createRun/output.js +467 -0
- package/dist/harness/internal/createRun/pi.d.ts +10 -0
- package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
- package/dist/harness/internal/createRun/pi.js +35 -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 +424 -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 +22 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/prompts.js +239 -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 +205 -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 +4 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validation.js +260 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +13 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.js +345 -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 +59 -0
- package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/prompts.js +427 -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 +184 -0
- package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
- package/dist/harness/internal/createRun/utils.js +218 -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 +44 -0
- package/dist/harness/invoker.d.ts.map +1 -0
- package/dist/harness/invoker.js +276 -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 +78 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
- package/dist/harness/piWrapper/moduleSupport.js +207 -0
- package/dist/harness/piWrapper/moduleSupport.test.d.ts +2 -0
- package/dist/harness/piWrapper/moduleSupport.test.d.ts.map +1 -0
- package/dist/harness/piWrapper/moduleSupport.test.js +31 -0
- package/dist/harness/piWrapper.d.ts +82 -0
- package/dist/harness/piWrapper.d.ts.map +1 -0
- package/dist/harness/piWrapper.js +406 -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 +240 -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 +276 -0
- package/dist/harness/types.d.ts.map +1 -0
- package/dist/harness/types.js +34 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -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 +16 -0
- package/dist/mcp/channels/index.d.ts.map +1 -0
- package/dist/mcp/channels/index.js +38 -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 +144 -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 +61 -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 +215 -0
- package/dist/mcp/client/toolRegistry.d.ts +113 -0
- package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
- package/dist/mcp/client/toolRegistry.js +190 -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/plugins/index.d.ts +11 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +18 -0
- package/dist/plugins/loader.d.ts +37 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +112 -0
- package/dist/plugins/sandbox.d.ts +38 -0
- package/dist/plugins/sandbox.d.ts.map +1 -0
- package/dist/plugins/sandbox.js +109 -0
- package/dist/plugins/types.d.ts +27 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +7 -0
- package/dist/plugins/version-check.d.ts +23 -0
- package/dist/plugins/version-check.d.ts.map +1 -0
- package/dist/plugins/version-check.js +70 -0
- package/dist/processes/index.d.ts +12 -0
- package/dist/processes/index.d.ts.map +1 -0
- package/dist/processes/index.js +15 -0
- package/dist/processes/recommender.d.ts +36 -0
- package/dist/processes/recommender.d.ts.map +1 -0
- package/dist/processes/recommender.js +73 -0
- package/dist/processes/scorer.d.ts +26 -0
- package/dist/processes/scorer.d.ts.map +1 -0
- package/dist/processes/scorer.js +104 -0
- package/dist/processes/types.d.ts +48 -0
- package/dist/processes/types.d.ts.map +1 -0
- package/dist/processes/types.js +9 -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 +63 -0
- package/dist/seams/contract.d.ts.map +1 -0
- package/dist/seams/contract.js +138 -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 +99 -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 +72 -0
- package/dist/session/cost.d.ts.map +1 -0
- package/dist/session/cost.js +221 -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 +144 -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/skills/chain.d.ts +31 -0
- package/dist/skills/chain.d.ts.map +1 -0
- package/dist/skills/chain.js +113 -0
- package/dist/skills/discovery.d.ts +34 -0
- package/dist/skills/discovery.d.ts.map +1 -0
- package/dist/skills/discovery.js +185 -0
- package/dist/skills/index.d.ts +12 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +18 -0
- package/dist/skills/router.d.ts +35 -0
- package/dist/skills/router.d.ts.map +1 -0
- package/dist/skills/router.js +143 -0
- package/dist/skills/types.d.ts +33 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +5 -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 +173 -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 +161 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GAP-MCPC-001: Channel Allowlist.
|
|
4
|
+
*
|
|
5
|
+
* Controls which MCP channels are active. Channels require explicit opt-in.
|
|
6
|
+
* Uses atomic write pattern consistent with other SDK state modules.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.getChannelAllowlistPath = getChannelAllowlistPath;
|
|
43
|
+
exports.readChannelAllowlist = readChannelAllowlist;
|
|
44
|
+
exports.writeChannelAllowlist = writeChannelAllowlist;
|
|
45
|
+
exports.upsertChannel = upsertChannel;
|
|
46
|
+
exports.removeChannel = removeChannel;
|
|
47
|
+
exports.toggleChannel = toggleChannel;
|
|
48
|
+
exports.getEnabledChannels = getEnabledChannels;
|
|
49
|
+
const node_fs_1 = require("node:fs");
|
|
50
|
+
const path = __importStar(require("node:path"));
|
|
51
|
+
const atomic_1 = require("../../storage/atomic");
|
|
52
|
+
const types_1 = require("./types");
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Helpers
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
function emptyAllowlist() {
|
|
57
|
+
return { schemaVersion: types_1.CHANNEL_ALLOWLIST_SCHEMA_VERSION, channels: [] };
|
|
58
|
+
}
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
// Public API
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
function getChannelAllowlistPath(stateDir) {
|
|
63
|
+
return path.join(stateDir, "channel-allowlist.json");
|
|
64
|
+
}
|
|
65
|
+
async function readChannelAllowlist(stateDir) {
|
|
66
|
+
const filePath = getChannelAllowlistPath(stateDir);
|
|
67
|
+
let raw;
|
|
68
|
+
try {
|
|
69
|
+
raw = await node_fs_1.promises.readFile(filePath, "utf8");
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
const err = error;
|
|
73
|
+
if (err.code === "ENOENT")
|
|
74
|
+
return emptyAllowlist();
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const data = JSON.parse(raw);
|
|
79
|
+
const rawChannels = Array.isArray(data.channels) ? data.channels : [];
|
|
80
|
+
const validChannels = rawChannels.filter((c) => {
|
|
81
|
+
if (typeof c !== "object" || c === null)
|
|
82
|
+
return false;
|
|
83
|
+
const obj = c;
|
|
84
|
+
return (typeof obj.serverName === "string" &&
|
|
85
|
+
typeof obj.channelId === "string" &&
|
|
86
|
+
typeof obj.enabled === "boolean");
|
|
87
|
+
});
|
|
88
|
+
return {
|
|
89
|
+
schemaVersion: typeof data.schemaVersion === "string" ? data.schemaVersion : types_1.CHANNEL_ALLOWLIST_SCHEMA_VERSION,
|
|
90
|
+
channels: validChannels,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return emptyAllowlist();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async function writeChannelAllowlist(stateDir, allowlist) {
|
|
98
|
+
const filePath = getChannelAllowlistPath(stateDir);
|
|
99
|
+
await (0, atomic_1.writeFileAtomic)(filePath, JSON.stringify(allowlist, null, 2));
|
|
100
|
+
}
|
|
101
|
+
/** Add or update a channel in the allowlist. */
|
|
102
|
+
async function upsertChannel(stateDir, channel) {
|
|
103
|
+
const allowlist = await readChannelAllowlist(stateDir);
|
|
104
|
+
const key = `${channel.serverName}:${channel.channelId}`;
|
|
105
|
+
const idx = allowlist.channels.findIndex((c) => `${c.serverName}:${c.channelId}` === key);
|
|
106
|
+
if (idx >= 0) {
|
|
107
|
+
allowlist.channels[idx] = channel;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
allowlist.channels.push(channel);
|
|
111
|
+
}
|
|
112
|
+
await writeChannelAllowlist(stateDir, allowlist);
|
|
113
|
+
return allowlist;
|
|
114
|
+
}
|
|
115
|
+
/** Remove a channel from the allowlist. Returns true if removed. */
|
|
116
|
+
async function removeChannel(stateDir, serverName, channelId) {
|
|
117
|
+
const allowlist = await readChannelAllowlist(stateDir);
|
|
118
|
+
const key = `${serverName}:${channelId}`;
|
|
119
|
+
const before = allowlist.channels.length;
|
|
120
|
+
allowlist.channels = allowlist.channels.filter((c) => `${c.serverName}:${c.channelId}` !== key);
|
|
121
|
+
if (allowlist.channels.length === before)
|
|
122
|
+
return false;
|
|
123
|
+
await writeChannelAllowlist(stateDir, allowlist);
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
/** Toggle a channel's enabled state. Returns the new enabled state. */
|
|
127
|
+
async function toggleChannel(stateDir, serverName, channelId, enabled) {
|
|
128
|
+
const allowlist = await readChannelAllowlist(stateDir);
|
|
129
|
+
const key = `${serverName}:${channelId}`;
|
|
130
|
+
const channel = allowlist.channels.find((c) => `${c.serverName}:${c.channelId}` === key);
|
|
131
|
+
if (!channel)
|
|
132
|
+
return undefined;
|
|
133
|
+
channel.enabled = enabled ?? !channel.enabled;
|
|
134
|
+
await writeChannelAllowlist(stateDir, allowlist);
|
|
135
|
+
return channel.enabled;
|
|
136
|
+
}
|
|
137
|
+
/** Get all enabled channels. */
|
|
138
|
+
function getEnabledChannels(allowlist) {
|
|
139
|
+
return allowlist.channels.filter((c) => c.enabled);
|
|
140
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GAP-MCPC-001: Channel Manager.
|
|
3
|
+
*
|
|
4
|
+
* Detects channel capability on connected MCP servers and manages
|
|
5
|
+
* channel bindings. Integrates with McpClientManager and InboundMessageQueue.
|
|
6
|
+
*/
|
|
7
|
+
import type { ChannelCapability, ChannelConfig, ChannelMessage } from "./types";
|
|
8
|
+
import type { McpClientManager } from "../client/manager";
|
|
9
|
+
import { InboundMessageQueue, type WakeCallback } from "./inboundQueue";
|
|
10
|
+
export interface ChannelManagerOptions {
|
|
11
|
+
/** State directory for reading allowlist. */
|
|
12
|
+
stateDir: string;
|
|
13
|
+
/** MCP client manager for server connections. */
|
|
14
|
+
clientManager: McpClientManager;
|
|
15
|
+
/** Wake callback for sleeping runs. */
|
|
16
|
+
onWake?: WakeCallback;
|
|
17
|
+
/** Maximum inbound queue size per run. */
|
|
18
|
+
maxQueueSize?: number;
|
|
19
|
+
}
|
|
20
|
+
/** Detected channel server. */
|
|
21
|
+
export interface DetectedChannel {
|
|
22
|
+
serverName: string;
|
|
23
|
+
capability: ChannelCapability;
|
|
24
|
+
}
|
|
25
|
+
export declare class ChannelManager {
|
|
26
|
+
private readonly _stateDir;
|
|
27
|
+
private readonly _clientManager;
|
|
28
|
+
private readonly _queue;
|
|
29
|
+
private readonly _detectedChannels;
|
|
30
|
+
constructor(options: ChannelManagerOptions);
|
|
31
|
+
/**
|
|
32
|
+
* Detect channel capability on connected MCP servers.
|
|
33
|
+
* A server declares channel capability by exposing tools matching
|
|
34
|
+
* known channel patterns (e.g. slack_send_message, gmail_create_draft).
|
|
35
|
+
*/
|
|
36
|
+
detectChannels(): Promise<DetectedChannel[]>;
|
|
37
|
+
/** Get detected channel capabilities. */
|
|
38
|
+
getDetectedChannels(): DetectedChannel[];
|
|
39
|
+
/** Check if a server has channel capability. */
|
|
40
|
+
hasChannelCapability(serverName: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Process an inbound channel message.
|
|
43
|
+
* Routes to bound run and queues for retrieval.
|
|
44
|
+
*/
|
|
45
|
+
processInboundMessage(message: ChannelMessage): void;
|
|
46
|
+
/** Bind a channel to a run for message routing. */
|
|
47
|
+
bindChannelToRun(channelSource: string, runId: string): void;
|
|
48
|
+
/** Unbind a channel from its run. */
|
|
49
|
+
unbindChannel(channelSource: string): void;
|
|
50
|
+
/** Get messages for a run. */
|
|
51
|
+
getMessages(runId: string, limit?: number): ChannelMessage[];
|
|
52
|
+
/** Dequeue messages for a run. */
|
|
53
|
+
consumeMessages(runId: string, limit?: number): ChannelMessage[];
|
|
54
|
+
/** Check if a run has pending messages. */
|
|
55
|
+
hasMessages(runId: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Load enabled channels from the allowlist.
|
|
58
|
+
* Returns configs for channels that are both allowed and connected.
|
|
59
|
+
*/
|
|
60
|
+
getActiveChannels(): Promise<ChannelConfig[]>;
|
|
61
|
+
/** Access the underlying queue (for advanced use). */
|
|
62
|
+
get queue(): InboundMessageQueue;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=channelManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelManager.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/channelManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUxE,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,aAAa,EAAE,gBAAgB,CAAC;IAChC,uCAAuC;IACvC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;gBAE9D,OAAO,EAAE,qBAAqB;IAS1C;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAuClD,yCAAyC;IACzC,mBAAmB,IAAI,eAAe,EAAE;IAOxC,gDAAgD;IAChD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIjD;;;OAGG;IACH,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIpD,mDAAmD;IACnD,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5D,qCAAqC;IACrC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAI1C,8BAA8B;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,cAAc,EAAE;IAIxD,kCAAkC;IAClC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,cAAc,EAAE;IAI5D,2CAA2C;IAC3C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAYnD,sDAAsD;IACtD,IAAI,KAAK,IAAI,mBAAmB,CAE/B;CACF"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GAP-MCPC-001: Channel Manager.
|
|
4
|
+
*
|
|
5
|
+
* Detects channel capability on connected MCP servers and manages
|
|
6
|
+
* channel bindings. Integrates with McpClientManager and InboundMessageQueue.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ChannelManager = void 0;
|
|
10
|
+
const inboundQueue_1 = require("./inboundQueue");
|
|
11
|
+
const allowlist_1 = require("./allowlist");
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// ChannelManager
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
class ChannelManager {
|
|
16
|
+
_stateDir;
|
|
17
|
+
_clientManager;
|
|
18
|
+
_queue;
|
|
19
|
+
_detectedChannels = new Map();
|
|
20
|
+
constructor(options) {
|
|
21
|
+
this._stateDir = options.stateDir;
|
|
22
|
+
this._clientManager = options.clientManager;
|
|
23
|
+
this._queue = new inboundQueue_1.InboundMessageQueue({
|
|
24
|
+
maxQueueSize: options.maxQueueSize,
|
|
25
|
+
onWake: options.onWake,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Detect channel capability on connected MCP servers.
|
|
30
|
+
* A server declares channel capability by exposing tools matching
|
|
31
|
+
* known channel patterns (e.g. slack_send_message, gmail_create_draft).
|
|
32
|
+
*/
|
|
33
|
+
async detectChannels() {
|
|
34
|
+
const connections = this._clientManager.listConnections();
|
|
35
|
+
const detected = [];
|
|
36
|
+
for (const conn of connections) {
|
|
37
|
+
if (conn.status !== "connected")
|
|
38
|
+
continue;
|
|
39
|
+
try {
|
|
40
|
+
const tools = await this._clientManager.listTools(conn.name);
|
|
41
|
+
const toolNames = tools.map((t) => t.name);
|
|
42
|
+
const channelType = inferChannelType(toolNames);
|
|
43
|
+
// Only consider servers that match a known channel type
|
|
44
|
+
if (!channelType)
|
|
45
|
+
continue;
|
|
46
|
+
const capability = {
|
|
47
|
+
inbound: toolNames.some((n) => n.includes("read_channel") || n.includes("read_message") || n.includes("read_thread")),
|
|
48
|
+
outbound: toolNames.some((n) => n.includes("send_message") || n.includes("create_draft")),
|
|
49
|
+
permissionRelay: false,
|
|
50
|
+
channelType,
|
|
51
|
+
};
|
|
52
|
+
if (capability.inbound || capability.outbound) {
|
|
53
|
+
this._detectedChannels.set(conn.name, capability);
|
|
54
|
+
detected.push({ serverName: conn.name, capability });
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Skip servers that fail to list tools
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return detected;
|
|
62
|
+
}
|
|
63
|
+
/** Get detected channel capabilities. */
|
|
64
|
+
getDetectedChannels() {
|
|
65
|
+
return [...this._detectedChannels.entries()].map(([serverName, capability]) => ({
|
|
66
|
+
serverName,
|
|
67
|
+
capability,
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
/** Check if a server has channel capability. */
|
|
71
|
+
hasChannelCapability(serverName) {
|
|
72
|
+
return this._detectedChannels.has(serverName);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Process an inbound channel message.
|
|
76
|
+
* Routes to bound run and queues for retrieval.
|
|
77
|
+
*/
|
|
78
|
+
processInboundMessage(message) {
|
|
79
|
+
this._queue.enqueue(message);
|
|
80
|
+
}
|
|
81
|
+
/** Bind a channel to a run for message routing. */
|
|
82
|
+
bindChannelToRun(channelSource, runId) {
|
|
83
|
+
this._queue.bindChannel(channelSource, runId);
|
|
84
|
+
}
|
|
85
|
+
/** Unbind a channel from its run. */
|
|
86
|
+
unbindChannel(channelSource) {
|
|
87
|
+
this._queue.unbindChannel(channelSource);
|
|
88
|
+
}
|
|
89
|
+
/** Get messages for a run. */
|
|
90
|
+
getMessages(runId, limit = 10) {
|
|
91
|
+
return this._queue.peek(runId, limit);
|
|
92
|
+
}
|
|
93
|
+
/** Dequeue messages for a run. */
|
|
94
|
+
consumeMessages(runId, limit = 10) {
|
|
95
|
+
return this._queue.dequeue(runId, limit);
|
|
96
|
+
}
|
|
97
|
+
/** Check if a run has pending messages. */
|
|
98
|
+
hasMessages(runId) {
|
|
99
|
+
return this._queue.hasMessages(runId);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Load enabled channels from the allowlist.
|
|
103
|
+
* Returns configs for channels that are both allowed and connected.
|
|
104
|
+
*/
|
|
105
|
+
async getActiveChannels() {
|
|
106
|
+
const allowlist = await (0, allowlist_1.readChannelAllowlist)(this._stateDir);
|
|
107
|
+
const enabled = (0, allowlist_1.getEnabledChannels)(allowlist);
|
|
108
|
+
const connected = new Set(this._clientManager
|
|
109
|
+
.listConnections()
|
|
110
|
+
.filter((c) => c.status === "connected")
|
|
111
|
+
.map((c) => c.name));
|
|
112
|
+
return enabled.filter((c) => connected.has(c.serverName));
|
|
113
|
+
}
|
|
114
|
+
/** Access the underlying queue (for advanced use). */
|
|
115
|
+
get queue() {
|
|
116
|
+
return this._queue;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.ChannelManager = ChannelManager;
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
// Helpers
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
/** Infer channel type from tool name prefixes. */
|
|
124
|
+
function inferChannelType(toolNames) {
|
|
125
|
+
const hasPrefix = (prefix) => toolNames.some((n) => n.startsWith(prefix));
|
|
126
|
+
if (hasPrefix("slack_"))
|
|
127
|
+
return "slack";
|
|
128
|
+
if (hasPrefix("discord_"))
|
|
129
|
+
return "discord";
|
|
130
|
+
if (hasPrefix("gmail_") || hasPrefix("email_"))
|
|
131
|
+
return "email";
|
|
132
|
+
if (hasPrefix("telegram_"))
|
|
133
|
+
return "telegram";
|
|
134
|
+
if (hasPrefix("teams_"))
|
|
135
|
+
return "teams";
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GAP-MCPC-001: Inbound Message Queue.
|
|
3
|
+
*
|
|
4
|
+
* Stores inbound channel messages in-memory and provides wake-up
|
|
5
|
+
* triggers for sleeping runs. Messages do not survive process restarts.
|
|
6
|
+
*/
|
|
7
|
+
import type { ChannelMessage, ChannelBinding } from "./types";
|
|
8
|
+
export type WakeCallback = (runId: string, message: ChannelMessage) => void;
|
|
9
|
+
export interface InboundQueueOptions {
|
|
10
|
+
/** Maximum messages to buffer per run before dropping oldest. */
|
|
11
|
+
maxQueueSize?: number;
|
|
12
|
+
/** Callback fired when a bound run receives a message (for wake-up). */
|
|
13
|
+
onWake?: WakeCallback;
|
|
14
|
+
}
|
|
15
|
+
export declare class InboundMessageQueue {
|
|
16
|
+
private readonly _queues;
|
|
17
|
+
private readonly _bindings;
|
|
18
|
+
private readonly _maxQueueSize;
|
|
19
|
+
private readonly _onWake;
|
|
20
|
+
constructor(options?: InboundQueueOptions);
|
|
21
|
+
/** Bind a channel to a run for message routing. */
|
|
22
|
+
bindChannel(channelSource: string, runId: string): void;
|
|
23
|
+
/** Unbind a channel from its run. */
|
|
24
|
+
unbindChannel(channelSource: string): void;
|
|
25
|
+
/** Get the run ID a channel is bound to (if any). */
|
|
26
|
+
getBoundRunId(channelSource: string): string | undefined;
|
|
27
|
+
/** Get all active bindings. */
|
|
28
|
+
getBindings(): ChannelBinding[];
|
|
29
|
+
/**
|
|
30
|
+
* Enqueue an inbound message. Routes to bound run if one exists.
|
|
31
|
+
* Fires the wake callback if a binding exists.
|
|
32
|
+
*/
|
|
33
|
+
enqueue(message: ChannelMessage): void;
|
|
34
|
+
/** Peek at messages for a run (does not remove). */
|
|
35
|
+
peek(runId: string, limit?: number): ChannelMessage[];
|
|
36
|
+
/** Dequeue (remove and return) messages for a run. */
|
|
37
|
+
dequeue(runId: string, limit?: number): ChannelMessage[];
|
|
38
|
+
/** Get the number of queued messages for a run. */
|
|
39
|
+
queueSize(runId: string): number;
|
|
40
|
+
/** Check if there are any messages for a run. */
|
|
41
|
+
hasMessages(runId: string): boolean;
|
|
42
|
+
/** Get unbound messages (not routed to any run). */
|
|
43
|
+
getUnboundMessages(limit?: number): ChannelMessage[];
|
|
44
|
+
/** Clear all queues and bindings. */
|
|
45
|
+
clear(): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=inboundQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inboundQueue.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/inboundQueue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9D,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;AAE5E,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAMD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;gBAEvC,OAAO,CAAC,EAAE,mBAAmB;IAKzC,mDAAmD;IACnD,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQvD,qCAAqC;IACrC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAI1C,qDAAqD;IACrD,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,+BAA+B;IAC/B,WAAW,IAAI,cAAc,EAAE;IAI/B;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAuBtC,oDAAoD;IACpD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,cAAc,EAAE;IAMjD,sDAAsD;IACtD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,cAAc,EAAE;IAMpD,mDAAmD;IACnD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,iDAAiD;IACjD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC,oDAAoD;IACpD,kBAAkB,CAAC,KAAK,SAAK,GAAG,cAAc,EAAE;IAIhD,qCAAqC;IACrC,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GAP-MCPC-001: Inbound Message Queue.
|
|
4
|
+
*
|
|
5
|
+
* Stores inbound channel messages in-memory and provides wake-up
|
|
6
|
+
* triggers for sleeping runs. Messages do not survive process restarts.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.InboundMessageQueue = void 0;
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// InboundMessageQueue
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
class InboundMessageQueue {
|
|
14
|
+
_queues = new Map();
|
|
15
|
+
_bindings = new Map();
|
|
16
|
+
_maxQueueSize;
|
|
17
|
+
_onWake;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
this._maxQueueSize = options?.maxQueueSize ?? 100;
|
|
20
|
+
this._onWake = options?.onWake;
|
|
21
|
+
}
|
|
22
|
+
/** Bind a channel to a run for message routing. */
|
|
23
|
+
bindChannel(channelSource, runId) {
|
|
24
|
+
this._bindings.set(channelSource, {
|
|
25
|
+
channelSource,
|
|
26
|
+
runId,
|
|
27
|
+
boundAt: new Date().toISOString(),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/** Unbind a channel from its run. */
|
|
31
|
+
unbindChannel(channelSource) {
|
|
32
|
+
this._bindings.delete(channelSource);
|
|
33
|
+
}
|
|
34
|
+
/** Get the run ID a channel is bound to (if any). */
|
|
35
|
+
getBoundRunId(channelSource) {
|
|
36
|
+
return this._bindings.get(channelSource)?.runId;
|
|
37
|
+
}
|
|
38
|
+
/** Get all active bindings. */
|
|
39
|
+
getBindings() {
|
|
40
|
+
return [...this._bindings.values()];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Enqueue an inbound message. Routes to bound run if one exists.
|
|
44
|
+
* Fires the wake callback if a binding exists.
|
|
45
|
+
*/
|
|
46
|
+
enqueue(message) {
|
|
47
|
+
const runId = this._bindings.get(message.source)?.runId;
|
|
48
|
+
const queueKey = runId ?? "__unbound__";
|
|
49
|
+
let queue = this._queues.get(queueKey);
|
|
50
|
+
if (!queue) {
|
|
51
|
+
queue = [];
|
|
52
|
+
this._queues.set(queueKey, queue);
|
|
53
|
+
}
|
|
54
|
+
queue.push(message);
|
|
55
|
+
// Trim if over max
|
|
56
|
+
if (queue.length > this._maxQueueSize) {
|
|
57
|
+
queue.shift();
|
|
58
|
+
}
|
|
59
|
+
// Fire wake callback for bound runs
|
|
60
|
+
if (runId && this._onWake) {
|
|
61
|
+
this._onWake(runId, message);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** Peek at messages for a run (does not remove). */
|
|
65
|
+
peek(runId, limit = 10) {
|
|
66
|
+
const queue = this._queues.get(runId);
|
|
67
|
+
if (!queue)
|
|
68
|
+
return [];
|
|
69
|
+
return queue.slice(-limit);
|
|
70
|
+
}
|
|
71
|
+
/** Dequeue (remove and return) messages for a run. */
|
|
72
|
+
dequeue(runId, limit = 10) {
|
|
73
|
+
const queue = this._queues.get(runId);
|
|
74
|
+
if (!queue || queue.length === 0)
|
|
75
|
+
return [];
|
|
76
|
+
return queue.splice(0, Math.min(limit, queue.length));
|
|
77
|
+
}
|
|
78
|
+
/** Get the number of queued messages for a run. */
|
|
79
|
+
queueSize(runId) {
|
|
80
|
+
return this._queues.get(runId)?.length ?? 0;
|
|
81
|
+
}
|
|
82
|
+
/** Check if there are any messages for a run. */
|
|
83
|
+
hasMessages(runId) {
|
|
84
|
+
return this.queueSize(runId) > 0;
|
|
85
|
+
}
|
|
86
|
+
/** Get unbound messages (not routed to any run). */
|
|
87
|
+
getUnboundMessages(limit = 10) {
|
|
88
|
+
return this.peek("__unbound__", limit);
|
|
89
|
+
}
|
|
90
|
+
/** Clear all queues and bindings. */
|
|
91
|
+
clear() {
|
|
92
|
+
this._queues.clear();
|
|
93
|
+
this._bindings.clear();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.InboundMessageQueue = InboundMessageQueue;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Channels — interactive messaging and approval routing.
|
|
3
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
4
|
+
*
|
|
5
|
+
* Status: Integrated with agent-platform MCP orchestration wiring.
|
|
6
|
+
*
|
|
7
|
+
* GAP-MCPC-001/002/003/004
|
|
8
|
+
*/
|
|
9
|
+
export type { ChannelCapability, ChannelConfig, ChannelMessage, ChannelBinding, OutboundMessageRequest, OutboundMessageResult, ChannelApprovalRequest, ChannelApprovalResponse, ApprovalClaim, ChannelAllowlistFile, ChannelApprovalSecurityConfig, } from "./types";
|
|
10
|
+
export { CHANNEL_ALLOWLIST_SCHEMA_VERSION, DEFAULT_APPROVAL_SECURITY, } from "./types";
|
|
11
|
+
export { getChannelAllowlistPath, readChannelAllowlist, writeChannelAllowlist, upsertChannel, removeChannel, toggleChannel, getEnabledChannels, } from "./allowlist";
|
|
12
|
+
export { InboundMessageQueue, type WakeCallback, type InboundQueueOptions, } from "./inboundQueue";
|
|
13
|
+
export { ChannelManager, type ChannelManagerOptions, type DetectedChannel, } from "./channelManager";
|
|
14
|
+
export { OutboundChannelSender, formatTemplate, DEFAULT_CHANNEL_TOOL_MAPPINGS, type ChannelToolMapping, } from "./outbound";
|
|
15
|
+
export { ChannelPermissionRelay, createApprovalRace, type PermissionRelayOptions, type RelayResult, } from "./permissionRelay";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,6BAA6B,EAC7B,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Channels — interactive messaging and approval routing.
|
|
4
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
5
|
+
*
|
|
6
|
+
* Status: Integrated with agent-platform MCP orchestration wiring.
|
|
7
|
+
*
|
|
8
|
+
* GAP-MCPC-001/002/003/004
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.createApprovalRace = exports.ChannelPermissionRelay = exports.DEFAULT_CHANNEL_TOOL_MAPPINGS = exports.formatTemplate = exports.OutboundChannelSender = exports.ChannelManager = exports.InboundMessageQueue = exports.getEnabledChannels = exports.toggleChannel = exports.removeChannel = exports.upsertChannel = exports.writeChannelAllowlist = exports.readChannelAllowlist = exports.getChannelAllowlistPath = exports.DEFAULT_APPROVAL_SECURITY = exports.CHANNEL_ALLOWLIST_SCHEMA_VERSION = void 0;
|
|
12
|
+
var types_1 = require("./types");
|
|
13
|
+
Object.defineProperty(exports, "CHANNEL_ALLOWLIST_SCHEMA_VERSION", { enumerable: true, get: function () { return types_1.CHANNEL_ALLOWLIST_SCHEMA_VERSION; } });
|
|
14
|
+
Object.defineProperty(exports, "DEFAULT_APPROVAL_SECURITY", { enumerable: true, get: function () { return types_1.DEFAULT_APPROVAL_SECURITY; } });
|
|
15
|
+
// Allowlist
|
|
16
|
+
var allowlist_1 = require("./allowlist");
|
|
17
|
+
Object.defineProperty(exports, "getChannelAllowlistPath", { enumerable: true, get: function () { return allowlist_1.getChannelAllowlistPath; } });
|
|
18
|
+
Object.defineProperty(exports, "readChannelAllowlist", { enumerable: true, get: function () { return allowlist_1.readChannelAllowlist; } });
|
|
19
|
+
Object.defineProperty(exports, "writeChannelAllowlist", { enumerable: true, get: function () { return allowlist_1.writeChannelAllowlist; } });
|
|
20
|
+
Object.defineProperty(exports, "upsertChannel", { enumerable: true, get: function () { return allowlist_1.upsertChannel; } });
|
|
21
|
+
Object.defineProperty(exports, "removeChannel", { enumerable: true, get: function () { return allowlist_1.removeChannel; } });
|
|
22
|
+
Object.defineProperty(exports, "toggleChannel", { enumerable: true, get: function () { return allowlist_1.toggleChannel; } });
|
|
23
|
+
Object.defineProperty(exports, "getEnabledChannels", { enumerable: true, get: function () { return allowlist_1.getEnabledChannels; } });
|
|
24
|
+
// Inbound queue
|
|
25
|
+
var inboundQueue_1 = require("./inboundQueue");
|
|
26
|
+
Object.defineProperty(exports, "InboundMessageQueue", { enumerable: true, get: function () { return inboundQueue_1.InboundMessageQueue; } });
|
|
27
|
+
// Channel manager
|
|
28
|
+
var channelManager_1 = require("./channelManager");
|
|
29
|
+
Object.defineProperty(exports, "ChannelManager", { enumerable: true, get: function () { return channelManager_1.ChannelManager; } });
|
|
30
|
+
// Outbound sender
|
|
31
|
+
var outbound_1 = require("./outbound");
|
|
32
|
+
Object.defineProperty(exports, "OutboundChannelSender", { enumerable: true, get: function () { return outbound_1.OutboundChannelSender; } });
|
|
33
|
+
Object.defineProperty(exports, "formatTemplate", { enumerable: true, get: function () { return outbound_1.formatTemplate; } });
|
|
34
|
+
Object.defineProperty(exports, "DEFAULT_CHANNEL_TOOL_MAPPINGS", { enumerable: true, get: function () { return outbound_1.DEFAULT_CHANNEL_TOOL_MAPPINGS; } });
|
|
35
|
+
// Permission relay
|
|
36
|
+
var permissionRelay_1 = require("./permissionRelay");
|
|
37
|
+
Object.defineProperty(exports, "ChannelPermissionRelay", { enumerable: true, get: function () { return permissionRelay_1.ChannelPermissionRelay; } });
|
|
38
|
+
Object.defineProperty(exports, "createApprovalRace", { enumerable: true, get: function () { return permissionRelay_1.createApprovalRace; } });
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GAP-MCPC-002: Outbound Channel Sender.
|
|
3
|
+
*
|
|
4
|
+
* Sends messages to channels via MCP server tools.
|
|
5
|
+
* Supports template-based message formatting.
|
|
6
|
+
*/
|
|
7
|
+
import type { OutboundMessageRequest, OutboundMessageResult } from "./types";
|
|
8
|
+
import type { McpClientManager } from "../client/manager";
|
|
9
|
+
/** Map of channel types to their send-message tool names. */
|
|
10
|
+
export interface ChannelToolMapping {
|
|
11
|
+
/** MCP tool name used for sending messages on this channel type. */
|
|
12
|
+
sendToolName: string;
|
|
13
|
+
/** Argument mapping: which parameter receives the channel ID. */
|
|
14
|
+
channelArg: string;
|
|
15
|
+
/** Argument mapping: which parameter receives the message text. */
|
|
16
|
+
textArg: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const DEFAULT_CHANNEL_TOOL_MAPPINGS: Record<string, ChannelToolMapping>;
|
|
19
|
+
/** Format a message with simple {{var}} template substitution. */
|
|
20
|
+
export declare function formatTemplate(template: string, vars: Record<string, string>): string;
|
|
21
|
+
export declare class OutboundChannelSender {
|
|
22
|
+
private readonly _clientManager;
|
|
23
|
+
private readonly _toolMappings;
|
|
24
|
+
constructor(clientManager: McpClientManager, toolMappings?: Record<string, ChannelToolMapping>);
|
|
25
|
+
/**
|
|
26
|
+
* Send a message to a channel.
|
|
27
|
+
* Resolves the channel source (serverName:channelId) to determine
|
|
28
|
+
* which MCP server and tool to use.
|
|
29
|
+
*/
|
|
30
|
+
send(request: OutboundMessageRequest): Promise<OutboundMessageResult>;
|
|
31
|
+
private _resolveToolMapping;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=outbound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/outbound.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAO1D,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAI5E,CAAC;AAMF,kEAAkE;AAClE,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAER;AAMD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;gBAGjE,aAAa,EAAE,gBAAgB,EAC/B,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAiC;IAMlF;;;;OAIG;IACG,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAgD7D,mBAAmB;CAelC"}
|