@a5c-ai/genty-platform 5.1.1-staging.0007199a1cb2
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 +301 -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 +127 -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 +279 -0
- package/dist/api/sessions.d.ts +17 -0
- package/dist/api/sessions.d.ts.map +1 -0
- package/dist/api/sessions.js +58 -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/analytics.d.ts +46 -0
- package/dist/breakpoints/analytics.d.ts.map +1 -0
- package/dist/breakpoints/analytics.js +64 -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/compression/compactionStrategy.d.ts +37 -0
- package/dist/compression/compactionStrategy.d.ts.map +1 -0
- package/dist/compression/compactionStrategy.js +52 -0
- package/dist/compression/compressionFamilies.d.ts +39 -0
- package/dist/compression/compressionFamilies.d.ts.map +1 -0
- package/dist/compression/compressionFamilies.js +123 -0
- package/dist/context/dynamic.d.ts +16 -0
- package/dist/context/dynamic.d.ts.map +1 -0
- package/dist/context/dynamic.js +55 -0
- package/dist/context/instructions.d.ts +15 -0
- package/dist/context/instructions.d.ts.map +1 -0
- package/dist/context/instructions.js +97 -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 +163 -0
- package/dist/cost/types.d.ts +172 -0
- package/dist/cost/types.d.ts.map +1 -0
- package/dist/cost/types.js +229 -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/extensions/discovery.d.ts +15 -0
- package/dist/extensions/discovery.d.ts.map +1 -0
- package/dist/extensions/discovery.js +119 -0
- package/dist/extensions/installer.d.ts +14 -0
- package/dist/extensions/installer.d.ts.map +1 -0
- package/dist/extensions/installer.js +100 -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/privacySettings.d.ts +31 -0
- package/dist/governance/privacySettings.d.ts.map +1 -0
- package/dist/governance/privacySettings.js +104 -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 +7 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +10 -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/budgetDowngrade.d.ts +12 -0
- package/dist/harness/budgetDowngrade.d.ts.map +1 -0
- package/dist/harness/budgetDowngrade.js +71 -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 +177 -0
- package/dist/harness/circuitBreaker.d.ts +51 -0
- package/dist/harness/circuitBreaker.d.ts.map +1 -0
- package/dist/harness/circuitBreaker.js +110 -0
- package/dist/harness/concurrentEffects.d.ts +39 -0
- package/dist/harness/concurrentEffects.d.ts.map +1 -0
- package/dist/harness/concurrentEffects.js +90 -0
- package/dist/harness/effectRouting.d.ts +57 -0
- package/dist/harness/effectRouting.d.ts.map +1 -0
- package/dist/harness/effectRouting.js +130 -0
- package/dist/harness/extensionToolBridge.d.ts +11 -0
- package/dist/harness/extensionToolBridge.d.ts.map +1 -0
- package/dist/harness/extensionToolBridge.js +48 -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/gentySessionContext.d.ts +31 -0
- package/dist/harness/gentySessionContext.d.ts.map +1 -0
- package/dist/harness/gentySessionContext.js +49 -0
- package/dist/harness/gentySessionIntegration.d.ts +16 -0
- package/dist/harness/gentySessionIntegration.d.ts.map +1 -0
- package/dist/harness/gentySessionIntegration.js +66 -0
- package/dist/harness/hostContract.d.ts +69 -0
- package/dist/harness/hostContract.d.ts.map +1 -0
- package/dist/harness/hostContract.js +169 -0
- package/dist/harness/index.d.ts +25 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +124 -0
- package/dist/harness/internal/createRun/agent-core-loop.d.ts +44 -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 +196 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts +8 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/constants.js +22 -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 +142 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts +135 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effects.js +948 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +21 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +80 -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 +404 -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 +107 -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 +49 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/index.js +505 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +22 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.js +787 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +28 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.js +265 -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 +48 -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/orchestration/workerSessionEnhancer.d.ts +4 -0
- package/dist/harness/internal/createRun/orchestration/workerSessionEnhancer.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/workerSessionEnhancer.js +36 -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 +469 -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 +161 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts +33 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/delegation.js +202 -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 +140 -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 +396 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +44 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +161 -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 +241 -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/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 +10 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validation.js +289 -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 +76 -0
- package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/prompts.js +466 -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 +134 -0
- package/dist/harness/internal/createRun/utils.d.ts +195 -0
- package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
- package/dist/harness/internal/createRun/utils.js +237 -0
- package/dist/harness/internal.d.ts +13 -0
- package/dist/harness/internal.d.ts.map +1 -0
- package/dist/harness/internal.js +151 -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 +343 -0
- package/dist/harness/lspIntegration.d.ts +48 -0
- package/dist/harness/lspIntegration.d.ts.map +1 -0
- package/dist/harness/lspIntegration.js +45 -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/multiHarnessDispatch.d.ts +49 -0
- package/dist/harness/multiHarnessDispatch.d.ts.map +1 -0
- package/dist/harness/multiHarnessDispatch.js +73 -0
- package/dist/harness/oauthIntegration.d.ts +55 -0
- package/dist/harness/oauthIntegration.d.ts.map +1 -0
- package/dist/harness/oauthIntegration.js +84 -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/parallelFileOps.d.ts +56 -0
- package/dist/harness/parallelFileOps.d.ts.map +1 -0
- package/dist/harness/parallelFileOps.js +166 -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/profileOrchestration.d.ts +55 -0
- package/dist/harness/profileOrchestration.d.ts.map +1 -0
- package/dist/harness/profileOrchestration.js +61 -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/streamingParallelism.d.ts +43 -0
- package/dist/harness/streamingParallelism.d.ts.map +1 -0
- package/dist/harness/streamingParallelism.js +113 -0
- package/dist/harness/streamingRenderer.d.ts +64 -0
- package/dist/harness/streamingRenderer.d.ts.map +1 -0
- package/dist/harness/streamingRenderer.js +85 -0
- package/dist/harness/types.d.ts +289 -0
- package/dist/harness/types.d.ts.map +1 -0
- package/dist/harness/types.js +34 -0
- package/dist/harness/websocketSession.d.ts +63 -0
- package/dist/harness/websocketSession.d.ts.map +1 -0
- package/dist/harness/websocketSession.js +113 -0
- package/dist/harness/worktreeIsolation.d.ts +39 -0
- package/dist/harness/worktreeIsolation.d.ts.map +1 -0
- package/dist/harness/worktreeIsolation.js +85 -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/commandDiscovery.d.ts +38 -0
- package/dist/interaction/commandDiscovery.d.ts.map +1 -0
- package/dist/interaction/commandDiscovery.js +106 -0
- package/dist/interaction/index.d.ts +11 -0
- package/dist/interaction/index.d.ts.map +1 -0
- package/dist/interaction/index.js +42 -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/interaction/model-switch.d.ts +16 -0
- package/dist/interaction/model-switch.d.ts.map +1 -0
- package/dist/interaction/model-switch.js +41 -0
- package/dist/interaction/permissionApprovalUi.d.ts +32 -0
- package/dist/interaction/permissionApprovalUi.d.ts.map +1 -0
- package/dist/interaction/permissionApprovalUi.js +96 -0
- package/dist/interaction/steering.d.ts +17 -0
- package/dist/interaction/steering.d.ts.map +1 -0
- package/dist/interaction/steering.js +41 -0
- package/dist/interaction/typedEffectPatterns.d.ts +55 -0
- package/dist/interaction/typedEffectPatterns.d.ts.map +1 -0
- package/dist/interaction/typedEffectPatterns.js +190 -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/auth.d.ts +57 -0
- package/dist/mcp/client/auth.d.ts.map +1 -0
- package/dist/mcp/client/auth.js +99 -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 +13 -0
- package/dist/mcp/client/index.d.ts.map +1 -0
- package/dist/mcp/client/index.js +30 -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/resourceBrowser.d.ts +52 -0
- package/dist/mcp/client/resourceBrowser.d.ts.map +1 -0
- package/dist/mcp/client/resourceBrowser.js +80 -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/microagents/discovery.d.ts +34 -0
- package/dist/microagents/discovery.d.ts.map +1 -0
- package/dist/microagents/discovery.js +72 -0
- package/dist/microagents/dispatch.d.ts +36 -0
- package/dist/microagents/dispatch.d.ts.map +1 -0
- package/dist/microagents/dispatch.js +59 -0
- package/dist/microagents/index.d.ts +35 -0
- package/dist/microagents/index.d.ts.map +1 -0
- package/dist/microagents/index.js +44 -0
- package/dist/microagents/subprocess.d.ts +41 -0
- package/dist/microagents/subprocess.d.ts.map +1 -0
- package/dist/microagents/subprocess.js +75 -0
- package/dist/observability/alertWebhooks.d.ts +35 -0
- package/dist/observability/alertWebhooks.d.ts.map +1 -0
- package/dist/observability/alertWebhooks.js +68 -0
- package/dist/observability/analytics.d.ts +66 -0
- package/dist/observability/analytics.d.ts.map +1 -0
- package/dist/observability/analytics.js +104 -0
- package/dist/observability/auditExport.d.ts +25 -0
- package/dist/observability/auditExport.d.ts.map +1 -0
- package/dist/observability/auditExport.js +108 -0
- package/dist/observability/contextIntrospection.d.ts +40 -0
- package/dist/observability/contextIntrospection.d.ts.map +1 -0
- package/dist/observability/contextIntrospection.js +93 -0
- package/dist/observability/failureTriage.d.ts +28 -0
- package/dist/observability/failureTriage.d.ts.map +1 -0
- package/dist/observability/failureTriage.js +168 -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 +14 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +53 -0
- package/dist/observability/progressSummarizer.d.ts +27 -0
- package/dist/observability/progressSummarizer.d.ts.map +1 -0
- package/dist/observability/progressSummarizer.js +143 -0
- package/dist/observability/promptPlan.d.ts +52 -0
- package/dist/observability/promptPlan.d.ts.map +1 -0
- package/dist/observability/promptPlan.js +101 -0
- package/dist/observability/resumeDashboard.d.ts +32 -0
- package/dist/observability/resumeDashboard.d.ts.map +1 -0
- package/dist/observability/resumeDashboard.js +204 -0
- package/dist/observability/runStatus.d.ts +44 -0
- package/dist/observability/runStatus.d.ts.map +1 -0
- package/dist/observability/runStatus.js +170 -0
- package/dist/observability/subagentHealth.d.ts +66 -0
- package/dist/observability/subagentHealth.d.ts.map +1 -0
- package/dist/observability/subagentHealth.js +107 -0
- package/dist/observability/subagentProgress.d.ts +64 -0
- package/dist/observability/subagentProgress.d.ts.map +1 -0
- package/dist/observability/subagentProgress.js +91 -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/orchestration/defaultOrchestrationProvider.d.ts +30 -0
- package/dist/orchestration/defaultOrchestrationProvider.d.ts.map +1 -0
- package/dist/orchestration/defaultOrchestrationProvider.js +304 -0
- package/dist/orchestration/global.d.ts +27 -0
- package/dist/orchestration/global.d.ts.map +1 -0
- package/dist/orchestration/global.js +51 -0
- package/dist/orchestration/index.d.ts +12 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +17 -0
- package/dist/orchestration/interfaces.d.ts +136 -0
- package/dist/orchestration/interfaces.d.ts.map +1 -0
- package/dist/orchestration/interfaces.js +11 -0
- package/dist/orchestration/registry.d.ts +30 -0
- package/dist/orchestration/registry.d.ts.map +1 -0
- package/dist/orchestration/registry.js +148 -0
- package/dist/plugins/ccCompatibility.d.ts +79 -0
- package/dist/plugins/ccCompatibility.d.ts.map +1 -0
- package/dist/plugins/ccCompatibility.js +139 -0
- package/dist/plugins/index.d.ts +16 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +38 -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/management.d.ts +33 -0
- package/dist/plugins/management.d.ts.map +1 -0
- package/dist/plugins/management.js +99 -0
- package/dist/plugins/marketplace.d.ts +64 -0
- package/dist/plugins/marketplace.d.ts.map +1 -0
- package/dist/plugins/marketplace.js +101 -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/trust.d.ts +31 -0
- package/dist/plugins/trust.d.ts.map +1 -0
- package/dist/plugins/trust.js +66 -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/validation.d.ts +32 -0
- package/dist/plugins/validation.d.ts.map +1 -0
- package/dist/plugins/validation.js +117 -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/plugins/versioning.d.ts +40 -0
- package/dist/plugins/versioning.d.ts.map +1 -0
- package/dist/plugins/versioning.js +101 -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 +9 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +9 -0
- package/dist/seams/contract.d.ts +63 -0
- package/dist/seams/contract.d.ts.map +1 -0
- package/dist/seams/contract.js +146 -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/crossRunComm.d.ts +40 -0
- package/dist/session/crossRunComm.d.ts.map +1 -0
- package/dist/session/crossRunComm.js +86 -0
- package/dist/session/crossRunState.d.ts +8 -0
- package/dist/session/crossRunState.d.ts.map +1 -0
- package/dist/session/crossRunState.js +45 -0
- package/dist/session/discovery.d.ts +22 -0
- package/dist/session/discovery.d.ts.map +1 -0
- package/dist/session/discovery.js +51 -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 +8 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +73 -0
- package/dist/session/memoryConsolidation.d.ts +31 -0
- package/dist/session/memoryConsolidation.d.ts.map +1 -0
- package/dist/session/memoryConsolidation.js +135 -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/sessionSharing.d.ts +55 -0
- package/dist/session/sessionSharing.d.ts.map +1 -0
- package/dist/session/sessionSharing.js +113 -0
- package/dist/session/sessionTemplates.d.ts +57 -0
- package/dist/session/sessionTemplates.d.ts.map +1 -0
- package/dist/session/sessionTemplates.js +93 -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 +9 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +11 -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/runFiles.d.ts +29 -0
- package/dist/storage/runFiles.d.ts.map +1 -0
- package/dist/storage/runFiles.js +85 -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/dist/trust/harness-signing.d.ts +15 -0
- package/dist/trust/harness-signing.d.ts.map +1 -0
- package/dist/trust/harness-signing.js +46 -0
- package/dist/trust/key-store.d.ts +15 -0
- package/dist/trust/key-store.d.ts.map +1 -0
- package/dist/trust/key-store.js +66 -0
- package/dist/types.d.ts +81 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +21 -0
- package/dist/utils/atomic.d.ts +16 -0
- package/dist/utils/atomic.d.ts.map +1 -0
- package/dist/utils/atomic.js +75 -0
- package/dist/utils/concurrency.d.ts +27 -0
- package/dist/utils/concurrency.d.ts.map +1 -0
- package/dist/utils/concurrency.js +42 -0
- package/dist/utils/defaults.d.ts +11 -0
- package/dist/utils/defaults.d.ts.map +1 -0
- package/dist/utils/defaults.js +13 -0
- package/dist/utils/errors.d.ts +50 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +76 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +18 -0
- package/dist/utils/patterns.d.ts +35 -0
- package/dist/utils/patterns.d.ts.map +1 -0
- package/dist/utils/patterns.js +84 -0
- package/package.json +170 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Typed effect interaction patterns (GAP-UX-010).
|
|
4
|
+
*
|
|
5
|
+
* Defines interaction patterns for each effect kind — input schemas,
|
|
6
|
+
* output schemas, and rendering hints — so UIs can present effects
|
|
7
|
+
* consistently and validate user input.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.BUILT_IN_PATTERNS = void 0;
|
|
11
|
+
exports.getPatternForEffect = getPatternForEffect;
|
|
12
|
+
exports.validateEffectInput = validateEffectInput;
|
|
13
|
+
exports.formatEffectSummary = formatEffectSummary;
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Built-in patterns
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
exports.BUILT_IN_PATTERNS = [
|
|
18
|
+
{
|
|
19
|
+
kind: 'agent',
|
|
20
|
+
inputSchema: [
|
|
21
|
+
{ name: 'prompt', type: 'string', required: true, description: 'Prompt to send to the agent' },
|
|
22
|
+
{ name: 'model', type: 'string', required: false, description: 'Target model override' },
|
|
23
|
+
],
|
|
24
|
+
outputSchema: [
|
|
25
|
+
{ name: 'response', type: 'string', required: true, description: 'Agent response text' },
|
|
26
|
+
{ name: 'tokenUsage', type: 'object', required: false, description: 'Token usage stats' },
|
|
27
|
+
],
|
|
28
|
+
renderHints: {
|
|
29
|
+
widget: 'panel',
|
|
30
|
+
streaming: true,
|
|
31
|
+
requiresConfirmation: false,
|
|
32
|
+
icon: 'robot',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
kind: 'shell',
|
|
37
|
+
inputSchema: [
|
|
38
|
+
{ name: 'command', type: 'string', required: true, description: 'Shell command to execute' },
|
|
39
|
+
{ name: 'cwd', type: 'string', required: false, description: 'Working directory' },
|
|
40
|
+
{ name: 'timeout', type: 'number', required: false, description: 'Timeout in ms' },
|
|
41
|
+
],
|
|
42
|
+
outputSchema: [
|
|
43
|
+
{ name: 'stdout', type: 'string', required: true, description: 'Standard output' },
|
|
44
|
+
{ name: 'stderr', type: 'string', required: false, description: 'Standard error' },
|
|
45
|
+
{ name: 'exitCode', type: 'number', required: true, description: 'Exit code' },
|
|
46
|
+
],
|
|
47
|
+
renderHints: {
|
|
48
|
+
widget: 'terminal',
|
|
49
|
+
streaming: true,
|
|
50
|
+
requiresConfirmation: true,
|
|
51
|
+
icon: 'terminal',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
kind: 'breakpoint',
|
|
56
|
+
inputSchema: [
|
|
57
|
+
{ name: 'message', type: 'string', required: true, description: 'Message to show at breakpoint' },
|
|
58
|
+
{ name: 'choices', type: 'array', required: false, description: 'Available choices' },
|
|
59
|
+
],
|
|
60
|
+
outputSchema: [
|
|
61
|
+
{ name: 'selection', type: 'string', required: true, description: 'User selection or input' },
|
|
62
|
+
],
|
|
63
|
+
renderHints: {
|
|
64
|
+
widget: 'dialog',
|
|
65
|
+
streaming: false,
|
|
66
|
+
requiresConfirmation: true,
|
|
67
|
+
icon: 'pause',
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
kind: 'sleep',
|
|
72
|
+
inputSchema: [
|
|
73
|
+
{ name: 'durationMs', type: 'number', required: true, description: 'Duration in milliseconds' },
|
|
74
|
+
{ name: 'reason', type: 'string', required: false, description: 'Reason for waiting' },
|
|
75
|
+
],
|
|
76
|
+
outputSchema: [
|
|
77
|
+
{ name: 'elapsed', type: 'number', required: true, description: 'Actual elapsed time in ms' },
|
|
78
|
+
],
|
|
79
|
+
renderHints: {
|
|
80
|
+
widget: 'inline',
|
|
81
|
+
streaming: false,
|
|
82
|
+
requiresConfirmation: false,
|
|
83
|
+
icon: 'clock',
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
kind: 'mcp',
|
|
88
|
+
inputSchema: [
|
|
89
|
+
{ name: 'server', type: 'string', required: true, description: 'MCP server name' },
|
|
90
|
+
{ name: 'tool', type: 'string', required: true, description: 'Tool to invoke' },
|
|
91
|
+
{ name: 'args', type: 'object', required: false, description: 'Tool arguments' },
|
|
92
|
+
],
|
|
93
|
+
outputSchema: [
|
|
94
|
+
{ name: 'result', type: 'object', required: true, description: 'Tool result' },
|
|
95
|
+
{ name: 'error', type: 'string', required: false, description: 'Error message if failed' },
|
|
96
|
+
],
|
|
97
|
+
renderHints: {
|
|
98
|
+
widget: 'panel',
|
|
99
|
+
streaming: false,
|
|
100
|
+
requiresConfirmation: false,
|
|
101
|
+
icon: 'plug',
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
// getPatternForEffect
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
/**
|
|
109
|
+
* Find the interaction pattern for a given effect.
|
|
110
|
+
*/
|
|
111
|
+
function getPatternForEffect(effect) {
|
|
112
|
+
return exports.BUILT_IN_PATTERNS.find((p) => p.kind === effect.kind);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Validate input data against a pattern's input schema.
|
|
116
|
+
*/
|
|
117
|
+
function validateEffectInput(pattern, input) {
|
|
118
|
+
const errors = [];
|
|
119
|
+
for (const field of pattern.inputSchema) {
|
|
120
|
+
const value = input[field.name];
|
|
121
|
+
// Required check
|
|
122
|
+
if (field.required && (value === undefined || value === null)) {
|
|
123
|
+
errors.push({ field: field.name, message: `Required field "${field.name}" is missing` });
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
// Type check (only if value is present)
|
|
127
|
+
if (value !== undefined && value !== null) {
|
|
128
|
+
const actualType = Array.isArray(value) ? 'array' : typeof value;
|
|
129
|
+
if (actualType !== field.type) {
|
|
130
|
+
errors.push({
|
|
131
|
+
field: field.name,
|
|
132
|
+
message: `Expected ${field.type} for "${field.name}", got ${actualType}`,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return { valid: errors.length === 0, errors };
|
|
138
|
+
}
|
|
139
|
+
// ---------------------------------------------------------------------------
|
|
140
|
+
// formatEffectSummary
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
/**
|
|
143
|
+
* Format a human-readable summary of an effect result.
|
|
144
|
+
*/
|
|
145
|
+
function formatEffectSummary(pattern, result) {
|
|
146
|
+
const parts = [`[${pattern.kind}]`];
|
|
147
|
+
switch (pattern.kind) {
|
|
148
|
+
case 'shell': {
|
|
149
|
+
const code = result.exitCode ?? '?';
|
|
150
|
+
const cmd = typeof result.command === 'string' ? result.command : '';
|
|
151
|
+
parts.push(`exit=${code}`);
|
|
152
|
+
if (cmd)
|
|
153
|
+
parts.push(cmd.length > 60 ? cmd.slice(0, 57) + '...' : cmd);
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
case 'agent': {
|
|
157
|
+
const resp = typeof result.response === 'string' ? result.response : '';
|
|
158
|
+
const preview = resp.length > 80 ? resp.slice(0, 77) + '...' : resp;
|
|
159
|
+
if (preview)
|
|
160
|
+
parts.push(preview);
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case 'breakpoint': {
|
|
164
|
+
const sel = typeof result.selection === 'string' ? result.selection : 'n/a';
|
|
165
|
+
parts.push(`selected: ${sel}`);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
case 'sleep': {
|
|
169
|
+
const elapsed = typeof result.elapsed === 'number' ? result.elapsed : 0;
|
|
170
|
+
parts.push(`waited ${elapsed}ms`);
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
case 'mcp': {
|
|
174
|
+
const tool = typeof result.tool === 'string' ? result.tool : '';
|
|
175
|
+
const err = typeof result.error === 'string' ? result.error : '';
|
|
176
|
+
if (tool)
|
|
177
|
+
parts.push(tool);
|
|
178
|
+
if (err)
|
|
179
|
+
parts.push(`ERROR: ${err}`);
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
default: {
|
|
183
|
+
// Generic: show keys
|
|
184
|
+
const keys = Object.keys(result).slice(0, 3);
|
|
185
|
+
if (keys.length > 0)
|
|
186
|
+
parts.push(`keys: ${keys.join(', ')}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return parts.join(' ');
|
|
190
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GAP-MCPC-001: Channel Allowlist.
|
|
3
|
+
*
|
|
4
|
+
* Controls which MCP channels are active. Channels require explicit opt-in.
|
|
5
|
+
* Uses atomic write pattern consistent with other SDK state modules.
|
|
6
|
+
*/
|
|
7
|
+
import type { ChannelConfig, ChannelAllowlistFile } from "./types";
|
|
8
|
+
export declare function getChannelAllowlistPath(stateDir: string): string;
|
|
9
|
+
export declare function readChannelAllowlist(stateDir: string): Promise<ChannelAllowlistFile>;
|
|
10
|
+
export declare function writeChannelAllowlist(stateDir: string, allowlist: ChannelAllowlistFile): Promise<void>;
|
|
11
|
+
/** Add or update a channel in the allowlist. */
|
|
12
|
+
export declare function upsertChannel(stateDir: string, channel: ChannelConfig): Promise<ChannelAllowlistFile>;
|
|
13
|
+
/** Remove a channel from the allowlist. Returns true if removed. */
|
|
14
|
+
export declare function removeChannel(stateDir: string, serverName: string, channelId: string): Promise<boolean>;
|
|
15
|
+
/** Toggle a channel's enabled state. Returns the new enabled state. */
|
|
16
|
+
export declare function toggleChannel(stateDir: string, serverName: string, channelId: string, enabled?: boolean): Promise<boolean | undefined>;
|
|
17
|
+
/** Get all enabled channels. */
|
|
18
|
+
export declare function getEnabledChannels(allowlist: ChannelAllowlistFile): ChannelConfig[];
|
|
19
|
+
//# sourceMappingURL=allowlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../../src/mcp/channels/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAenE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA+B1F;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,oBAAoB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,gDAAgD;AAChD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAa/B;AAED,oEAAoE;AACpE,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,uEAAuE;AACvE,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAU9B;AAED,gCAAgC;AAChC,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,oBAAoB,GAAG,aAAa,EAAE,CAEnF"}
|
|
@@ -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"}
|