@a5c-ai/agent-platform 5.0.1-staging.016f0b0e8119
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 +137 -0
- package/dist/cost/types.d.ts +164 -0
- package/dist/cost/types.d.ts.map +1 -0
- package/dist/cost/types.js +228 -0
- package/dist/daemon/automationExecutor.d.ts +16 -0
- package/dist/daemon/automationExecutor.d.ts.map +1 -0
- package/dist/daemon/automationExecutor.js +222 -0
- package/dist/daemon/config.d.ts +8 -0
- package/dist/daemon/config.d.ts.map +1 -0
- package/dist/daemon/config.js +209 -0
- package/dist/daemon/daemonLog.d.ts +13 -0
- package/dist/daemon/daemonLog.d.ts.map +1 -0
- package/dist/daemon/daemonLog.js +64 -0
- package/dist/daemon/fileWatcher.d.ts +9 -0
- package/dist/daemon/fileWatcher.d.ts.map +1 -0
- package/dist/daemon/fileWatcher.js +141 -0
- package/dist/daemon/index.d.ts +9 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +25 -0
- package/dist/daemon/lifecycle.d.ts +12 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +257 -0
- package/dist/daemon/loop.d.ts +21 -0
- package/dist/daemon/loop.d.ts.map +1 -0
- package/dist/daemon/loop.js +196 -0
- package/dist/daemon/timerScheduler.d.ts +13 -0
- package/dist/daemon/timerScheduler.d.ts.map +1 -0
- package/dist/daemon/timerScheduler.js +122 -0
- package/dist/daemon/types.d.ts +93 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +25 -0
- package/dist/daemon/webhookListener.d.ts +6 -0
- package/dist/daemon/webhookListener.d.ts.map +1 -0
- package/dist/daemon/webhookListener.js +110 -0
- package/dist/governance/authority.d.ts +68 -0
- package/dist/governance/authority.d.ts.map +1 -0
- package/dist/governance/authority.js +136 -0
- package/dist/governance/bridge.d.ts +17 -0
- package/dist/governance/bridge.d.ts.map +1 -0
- package/dist/governance/bridge.js +46 -0
- package/dist/governance/builtins.d.ts +25 -0
- package/dist/governance/builtins.d.ts.map +1 -0
- package/dist/governance/builtins.js +67 -0
- package/dist/governance/categories.d.ts +58 -0
- package/dist/governance/categories.d.ts.map +1 -0
- package/dist/governance/categories.js +120 -0
- package/dist/governance/decisionTrail.d.ts +60 -0
- package/dist/governance/decisionTrail.d.ts.map +1 -0
- package/dist/governance/decisionTrail.js +68 -0
- package/dist/governance/engine.d.ts +20 -0
- package/dist/governance/engine.d.ts.map +1 -0
- package/dist/governance/engine.js +124 -0
- package/dist/governance/index.d.ts +20 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +75 -0
- package/dist/governance/logging.d.ts +18 -0
- package/dist/governance/logging.d.ts.map +1 -0
- package/dist/governance/logging.js +83 -0
- package/dist/governance/mandate.d.ts +83 -0
- package/dist/governance/mandate.d.ts.map +1 -0
- package/dist/governance/mandate.js +180 -0
- package/dist/governance/permissionEvents.d.ts +51 -0
- package/dist/governance/permissionEvents.d.ts.map +1 -0
- package/dist/governance/permissionEvents.js +52 -0
- package/dist/governance/permissionPropagation.d.ts +18 -0
- package/dist/governance/permissionPropagation.d.ts.map +1 -0
- package/dist/governance/permissionPropagation.js +58 -0
- package/dist/governance/postureBridge.d.ts +17 -0
- package/dist/governance/postureBridge.d.ts.map +1 -0
- package/dist/governance/postureBridge.js +117 -0
- package/dist/governance/sandboxBridge.d.ts +49 -0
- package/dist/governance/sandboxBridge.d.ts.map +1 -0
- package/dist/governance/sandboxBridge.js +77 -0
- package/dist/governance/sandboxPolicy.d.ts +51 -0
- package/dist/governance/sandboxPolicy.d.ts.map +1 -0
- package/dist/governance/sandboxPolicy.js +177 -0
- package/dist/governance/types.d.ts +3 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +5 -0
- package/dist/harness/amux/amuxBridge.d.ts +71 -0
- package/dist/harness/amux/amuxBridge.d.ts.map +1 -0
- package/dist/harness/amux/amuxBridge.js +117 -0
- package/dist/harness/amux/amuxClientFactory.d.ts +29 -0
- package/dist/harness/amux/amuxClientFactory.d.ts.map +1 -0
- package/dist/harness/amux/amuxClientFactory.js +90 -0
- package/dist/harness/amux/amuxEventEmitter.d.ts +51 -0
- package/dist/harness/amux/amuxEventEmitter.d.ts.map +1 -0
- package/dist/harness/amux/amuxEventEmitter.js +143 -0
- package/dist/harness/amux/amuxEventMapper.d.ts +58 -0
- package/dist/harness/amux/amuxEventMapper.d.ts.map +1 -0
- package/dist/harness/amux/amuxEventMapper.js +92 -0
- package/dist/harness/amux/amuxHarnessMap.d.ts +25 -0
- package/dist/harness/amux/amuxHarnessMap.d.ts.map +1 -0
- package/dist/harness/amux/amuxHarnessMap.js +55 -0
- package/dist/harness/amux/amuxStdinReader.d.ts +45 -0
- package/dist/harness/amux/amuxStdinReader.d.ts.map +1 -0
- package/dist/harness/amux/amuxStdinReader.js +106 -0
- package/dist/harness/amux/amuxTypes.d.ts +122 -0
- package/dist/harness/amux/amuxTypes.d.ts.map +1 -0
- package/dist/harness/amux/amuxTypes.js +11 -0
- package/dist/harness/amux/index.d.ts +17 -0
- package/dist/harness/amux/index.d.ts.map +1 -0
- package/dist/harness/amux/index.js +34 -0
- package/dist/harness/backgroundTracker.d.ts +64 -0
- package/dist/harness/backgroundTracker.d.ts.map +1 -0
- package/dist/harness/backgroundTracker.js +107 -0
- package/dist/harness/builtInHarness.d.ts +3 -0
- package/dist/harness/builtInHarness.d.ts.map +1 -0
- package/dist/harness/builtInHarness.js +18 -0
- package/dist/harness/capabilityRouter.d.ts +76 -0
- package/dist/harness/capabilityRouter.d.ts.map +1 -0
- package/dist/harness/capabilityRouter.js +176 -0
- package/dist/harness/fallbackChains.d.ts +42 -0
- package/dist/harness/fallbackChains.d.ts.map +1 -0
- package/dist/harness/fallbackChains.js +69 -0
- package/dist/harness/hostContract.d.ts +63 -0
- package/dist/harness/hostContract.d.ts.map +1 -0
- package/dist/harness/hostContract.js +136 -0
- package/dist/harness/index.d.ts +18 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +91 -0
- package/dist/harness/internal/createRun/askUserQuestion.d.ts +11 -0
- package/dist/harness/internal/createRun/askUserQuestion.d.ts.map +1 -0
- package/dist/harness/internal/createRun/askUserQuestion.js +162 -0
- package/dist/harness/internal/createRun/index.d.ts +25 -0
- package/dist/harness/internal/createRun/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/index.js +137 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts +7 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/constants.js +13 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts +43 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effects.js +490 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +20 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +79 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts +3 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.js +319 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts +16 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.js +104 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts +14 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/index.js +36 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +3 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.js +464 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +26 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.js +262 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts +17 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.js +23 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.d.ts +10 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.js +67 -0
- package/dist/harness/internal/createRun/orchestration/types.d.ts +46 -0
- package/dist/harness/internal/createRun/orchestration/types.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/types.js +2 -0
- package/dist/harness/internal/createRun/orchestration/verbose.d.ts +7 -0
- package/dist/harness/internal/createRun/orchestration/verbose.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/verbose.js +240 -0
- package/dist/harness/internal/createRun/output.d.ts +38 -0
- package/dist/harness/internal/createRun/output.d.ts.map +1 -0
- package/dist/harness/internal/createRun/output.js +415 -0
- package/dist/harness/internal/createRun/pi.d.ts +34 -0
- package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
- package/dist/harness/internal/createRun/pi.js +216 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts +5 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.js +113 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts +23 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/delegation.js +176 -0
- package/dist/harness/internal/createRun/planProcess/external.d.ts +14 -0
- package/dist/harness/internal/createRun/planProcess/external.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/external.js +139 -0
- package/dist/harness/internal/createRun/planProcess/index.d.ts +12 -0
- package/dist/harness/internal/createRun/planProcess/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/index.js +24 -0
- package/dist/harness/internal/createRun/planProcess/paths.d.ts +7 -0
- package/dist/harness/internal/createRun/planProcess/paths.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/paths.js +98 -0
- package/dist/harness/internal/createRun/planProcess/phase.d.ts +6 -0
- package/dist/harness/internal/createRun/planProcess/phase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phase.js +361 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +37 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +159 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts +25 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.js +6 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts +20 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/prompts.js +208 -0
- package/dist/harness/internal/createRun/planProcess/recovery.d.ts +18 -0
- package/dist/harness/internal/createRun/planProcess/recovery.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/recovery.js +188 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts +2 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.js +68 -0
- package/dist/harness/internal/createRun/planProcess/runState.d.ts +40 -0
- package/dist/harness/internal/createRun/planProcess/runState.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/runState.js +179 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts +22 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.js +65 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts +2 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validation.js +212 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +11 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.js +328 -0
- package/dist/harness/internal/createRun/planProcess/validationText.d.ts +3 -0
- package/dist/harness/internal/createRun/planProcess/validationText.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationText.js +145 -0
- package/dist/harness/internal/createRun/prompts.d.ts +49 -0
- package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/prompts.js +307 -0
- package/dist/harness/internal/createRun/resumeState.d.ts +28 -0
- package/dist/harness/internal/createRun/resumeState.d.ts.map +1 -0
- package/dist/harness/internal/createRun/resumeState.js +133 -0
- package/dist/harness/internal/createRun/utils.d.ts +182 -0
- package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
- package/dist/harness/internal/createRun/utils.js +133 -0
- package/dist/harness/internal.d.ts +13 -0
- package/dist/harness/internal.d.ts.map +1 -0
- package/dist/harness/internal.js +149 -0
- package/dist/harness/invoker/launch.d.ts +20 -0
- package/dist/harness/invoker/launch.d.ts.map +1 -0
- package/dist/harness/invoker/launch.js +23 -0
- package/dist/harness/invoker/processControl.d.ts +11 -0
- package/dist/harness/invoker/processControl.d.ts.map +1 -0
- package/dist/harness/invoker/processControl.js +50 -0
- package/dist/harness/invoker.d.ts +43 -0
- package/dist/harness/invoker.d.ts.map +1 -0
- package/dist/harness/invoker.js +210 -0
- package/dist/harness/modeSelector.d.ts +50 -0
- package/dist/harness/modeSelector.d.ts.map +1 -0
- package/dist/harness/modeSelector.js +124 -0
- package/dist/harness/modelSelection.d.ts +37 -0
- package/dist/harness/modelSelection.d.ts.map +1 -0
- package/dist/harness/modelSelection.js +81 -0
- package/dist/harness/operatorCommands.d.ts +38 -0
- package/dist/harness/operatorCommands.d.ts.map +1 -0
- package/dist/harness/operatorCommands.js +118 -0
- package/dist/harness/piSecureSandbox.d.ts +8 -0
- package/dist/harness/piSecureSandbox.d.ts.map +1 -0
- package/dist/harness/piSecureSandbox.js +366 -0
- package/dist/harness/piSecureSandboxTypes.d.ts +51 -0
- package/dist/harness/piSecureSandboxTypes.d.ts.map +1 -0
- package/dist/harness/piSecureSandboxTypes.js +6 -0
- package/dist/harness/piWrapper/compaction.d.ts +13 -0
- package/dist/harness/piWrapper/compaction.d.ts.map +1 -0
- package/dist/harness/piWrapper/compaction.js +38 -0
- package/dist/harness/piWrapper/instructionPrompts.d.ts +2 -0
- package/dist/harness/piWrapper/instructionPrompts.d.ts.map +1 -0
- package/dist/harness/piWrapper/instructionPrompts.js +97 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts +77 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
- package/dist/harness/piWrapper/moduleSupport.js +204 -0
- package/dist/harness/piWrapper.d.ts +80 -0
- package/dist/harness/piWrapper.d.ts.map +1 -0
- package/dist/harness/piWrapper.js +389 -0
- package/dist/harness/piWrapper.test.d.ts +2 -0
- package/dist/harness/piWrapper.test.d.ts.map +1 -0
- package/dist/harness/piWrapper.test.js +193 -0
- package/dist/harness/planMode.d.ts +68 -0
- package/dist/harness/planMode.d.ts.map +1 -0
- package/dist/harness/planMode.js +145 -0
- package/dist/harness/selectionPolicies.d.ts +29 -0
- package/dist/harness/selectionPolicies.d.ts.map +1 -0
- package/dist/harness/selectionPolicies.js +165 -0
- package/dist/harness/types.d.ts +266 -0
- package/dist/harness/types.d.ts.map +1 -0
- package/dist/harness/types.js +34 -0
- package/dist/index.d.ts +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 +17 -0
- package/dist/mcp/channels/index.d.ts.map +1 -0
- package/dist/mcp/channels/index.js +39 -0
- package/dist/mcp/channels/outbound.d.ts +33 -0
- package/dist/mcp/channels/outbound.d.ts.map +1 -0
- package/dist/mcp/channels/outbound.js +94 -0
- package/dist/mcp/channels/permissionRelay.d.ts +62 -0
- package/dist/mcp/channels/permissionRelay.d.ts.map +1 -0
- package/dist/mcp/channels/permissionRelay.js +159 -0
- package/dist/mcp/channels/types.d.ts +135 -0
- package/dist/mcp/channels/types.d.ts.map +1 -0
- package/dist/mcp/channels/types.js +16 -0
- package/dist/mcp/client/config.d.ts +28 -0
- package/dist/mcp/client/config.d.ts.map +1 -0
- package/dist/mcp/client/config.js +142 -0
- package/dist/mcp/client/executor.d.ts +30 -0
- package/dist/mcp/client/executor.d.ts.map +1 -0
- package/dist/mcp/client/executor.js +60 -0
- package/dist/mcp/client/index.d.ts +12 -0
- package/dist/mcp/client/index.d.ts.map +1 -0
- package/dist/mcp/client/index.js +27 -0
- package/dist/mcp/client/manager.d.ts +74 -0
- package/dist/mcp/client/manager.d.ts.map +1 -0
- package/dist/mcp/client/manager.js +214 -0
- package/dist/mcp/client/toolRegistry.d.ts +50 -0
- package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
- package/dist/mcp/client/toolRegistry.js +118 -0
- package/dist/mcp/client/types.d.ts +96 -0
- package/dist/mcp/client/types.d.ts.map +1 -0
- package/dist/mcp/client/types.js +15 -0
- package/dist/mcp/transport/index.d.ts +9 -0
- package/dist/mcp/transport/index.d.ts.map +1 -0
- package/dist/mcp/transport/index.js +13 -0
- package/dist/mcp/transport/session.d.ts +18 -0
- package/dist/mcp/transport/session.d.ts.map +1 -0
- package/dist/mcp/transport/session.js +78 -0
- package/dist/mcp/transport/types.d.ts +19 -0
- package/dist/mcp/transport/types.d.ts.map +1 -0
- package/dist/mcp/transport/types.js +7 -0
- package/dist/mcp/transport/websocket.d.ts +41 -0
- package/dist/mcp/transport/websocket.d.ts.map +1 -0
- package/dist/mcp/transport/websocket.js +271 -0
- package/dist/observability/health.d.ts +19 -0
- package/dist/observability/health.d.ts.map +1 -0
- package/dist/observability/health.js +129 -0
- package/dist/observability/index.d.ts +7 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +22 -0
- package/dist/observability/runStatus.d.ts +44 -0
- package/dist/observability/runStatus.d.ts.map +1 -0
- package/dist/observability/runStatus.js +169 -0
- package/dist/observability/timeline.d.ts +11 -0
- package/dist/observability/timeline.d.ts.map +1 -0
- package/dist/observability/timeline.js +176 -0
- package/dist/observability/types.d.ts +62 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +8 -0
- package/dist/observability/webhooks.d.ts +68 -0
- package/dist/observability/webhooks.d.ts.map +1 -0
- package/dist/observability/webhooks.js +132 -0
- package/dist/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 +63 -0
- package/dist/session/cost.d.ts.map +1 -0
- package/dist/session/cost.js +194 -0
- package/dist/session/discovery.d.ts +22 -0
- package/dist/session/discovery.d.ts.map +1 -0
- package/dist/session/discovery.js +35 -0
- package/dist/session/history.d.ts +30 -0
- package/dist/session/history.d.ts.map +1 -0
- package/dist/session/history.js +143 -0
- package/dist/session/index.d.ts +7 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +70 -0
- package/dist/session/memoryExtraction.d.ts +65 -0
- package/dist/session/memoryExtraction.d.ts.map +1 -0
- package/dist/session/memoryExtraction.js +201 -0
- package/dist/session/parse.d.ts +45 -0
- package/dist/session/parse.d.ts.map +1 -0
- package/dist/session/parse.js +170 -0
- package/dist/session/persistence.d.ts +46 -0
- package/dist/session/persistence.d.ts.map +1 -0
- package/dist/session/persistence.js +180 -0
- package/dist/session/types.d.ts +267 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +45 -0
- package/dist/session/write.d.ts +61 -0
- package/dist/session/write.d.ts.map +1 -0
- package/dist/session/write.js +213 -0
- package/dist/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 +172 -0
- package/dist/storage/paths.d.ts +5 -0
- package/dist/storage/paths.d.ts.map +1 -0
- package/dist/storage/paths.js +26 -0
- package/dist/storage/snapshotState.d.ts +10 -0
- package/dist/storage/snapshotState.d.ts.map +1 -0
- package/dist/storage/snapshotState.js +15 -0
- package/dist/storage/storeTaskArtifacts.d.ts +6 -0
- package/dist/storage/storeTaskArtifacts.d.ts.map +1 -0
- package/dist/storage/storeTaskArtifacts.js +55 -0
- package/dist/storage/types.d.ts +21 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/tasks/crud.d.ts +33 -0
- package/dist/tasks/crud.d.ts.map +1 -0
- package/dist/tasks/crud.js +150 -0
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +9 -0
- package/package.json +159 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GAP-SEC: Posture-to-Policy Bridge.
|
|
4
|
+
*
|
|
5
|
+
* Converts breakpoint approval postures into governance PolicyRule[] so they
|
|
6
|
+
* can be evaluated by the unified policy engine.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.postureToPolicyRules = postureToPolicyRules;
|
|
10
|
+
exports.allPosturesToPolicies = allPosturesToPolicies;
|
|
11
|
+
const postures_1 = require("../breakpoints/postures");
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Priority map by posture name
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
const POSTURE_PRIORITY = {
|
|
16
|
+
locked: 200,
|
|
17
|
+
guarded: 150,
|
|
18
|
+
cautious: 100,
|
|
19
|
+
permissive: 50,
|
|
20
|
+
};
|
|
21
|
+
function priorityForPosture(posture) {
|
|
22
|
+
return POSTURE_PRIORITY[posture.name] ?? 75;
|
|
23
|
+
}
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Core functions
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
/**
|
|
28
|
+
* Convert a single posture for a given action category into PolicyRule[].
|
|
29
|
+
*/
|
|
30
|
+
function postureToPolicyRules(category, posture) {
|
|
31
|
+
const rules = [];
|
|
32
|
+
const basePriority = priorityForPosture(posture);
|
|
33
|
+
if (!posture.allowAutoApprove) {
|
|
34
|
+
// Locked: deny auto-approval entirely
|
|
35
|
+
rules.push({
|
|
36
|
+
id: `posture:${category}:deny-auto-approve`,
|
|
37
|
+
kind: 'permission',
|
|
38
|
+
condition: { field: 'labels', op: 'contains', value: category },
|
|
39
|
+
action: 'deny',
|
|
40
|
+
priority: basePriority,
|
|
41
|
+
metadata: {
|
|
42
|
+
source: 'posture-bridge',
|
|
43
|
+
category,
|
|
44
|
+
postureName: posture.name,
|
|
45
|
+
requiredApproverLevel: posture.requiredApproverLevel ?? 'any',
|
|
46
|
+
minConsecutiveApprovals: String(posture.minConsecutiveApprovalsForAutoN),
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else if (posture.requireExplicitRule) {
|
|
51
|
+
// Guarded: warn (require explicit rule)
|
|
52
|
+
rules.push({
|
|
53
|
+
id: `posture:${category}:require-explicit-rule`,
|
|
54
|
+
kind: 'permission',
|
|
55
|
+
condition: { field: 'labels', op: 'contains', value: category },
|
|
56
|
+
action: 'warn',
|
|
57
|
+
priority: basePriority,
|
|
58
|
+
metadata: {
|
|
59
|
+
source: 'posture-bridge',
|
|
60
|
+
category,
|
|
61
|
+
postureName: posture.name,
|
|
62
|
+
requireExplicitRule: 'true',
|
|
63
|
+
minConsecutiveApprovals: String(posture.minConsecutiveApprovalsForAutoN),
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Cautious or permissive: allow
|
|
69
|
+
rules.push({
|
|
70
|
+
id: `posture:${category}:allow-auto-approve`,
|
|
71
|
+
kind: 'permission',
|
|
72
|
+
condition: { field: 'labels', op: 'contains', value: category },
|
|
73
|
+
action: 'allow',
|
|
74
|
+
priority: basePriority,
|
|
75
|
+
metadata: {
|
|
76
|
+
source: 'posture-bridge',
|
|
77
|
+
category,
|
|
78
|
+
postureName: posture.name,
|
|
79
|
+
minConsecutiveApprovals: String(posture.minConsecutiveApprovalsForAutoN),
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// If the posture has minConsecutiveApprovalsForAutoN > 0 and allows auto-approve,
|
|
84
|
+
// add an advisory warn rule for the threshold
|
|
85
|
+
if (posture.allowAutoApprove && posture.minConsecutiveApprovalsForAutoN > 0) {
|
|
86
|
+
rules.push({
|
|
87
|
+
id: `posture:${category}:consecutive-threshold`,
|
|
88
|
+
kind: 'resource-limit',
|
|
89
|
+
condition: { field: 'labels', op: 'contains', value: category },
|
|
90
|
+
action: 'warn',
|
|
91
|
+
priority: basePriority - 1,
|
|
92
|
+
metadata: {
|
|
93
|
+
source: 'posture-bridge',
|
|
94
|
+
category,
|
|
95
|
+
postureName: posture.name,
|
|
96
|
+
minConsecutiveApprovals: String(posture.minConsecutiveApprovalsForAutoN),
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return rules;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Convert all DEFAULT_POSTURES (optionally overridden) into a sorted PolicyRule[].
|
|
104
|
+
*/
|
|
105
|
+
function allPosturesToPolicies(overrides) {
|
|
106
|
+
const categories = ['read', 'write', 'execute', 'destroy', 'network', 'auth'];
|
|
107
|
+
const allRules = [];
|
|
108
|
+
for (const category of categories) {
|
|
109
|
+
const base = postures_1.DEFAULT_POSTURES[category];
|
|
110
|
+
const categoryOverrides = overrides?.[category];
|
|
111
|
+
const posture = categoryOverrides ? { ...base, ...categoryOverrides } : base;
|
|
112
|
+
allRules.push(...postureToPolicyRules(category, posture));
|
|
113
|
+
}
|
|
114
|
+
// Sort by priority descending
|
|
115
|
+
allRules.sort((a, b) => b.priority - a.priority);
|
|
116
|
+
return allRules;
|
|
117
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox-to-governance bridge (GAP-SEC-002).
|
|
3
|
+
* Converts sandbox decisions into interaction requests and governance events,
|
|
4
|
+
* and derives child sandbox policies from mandate scopes.
|
|
5
|
+
*/
|
|
6
|
+
import type { SandboxDecision, SandboxOperation, SandboxPolicy } from './sandboxPolicy';
|
|
7
|
+
export interface SandboxEvent {
|
|
8
|
+
kind: string;
|
|
9
|
+
operation: SandboxOperation;
|
|
10
|
+
decision: SandboxDecision;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
source: string;
|
|
13
|
+
mandateId?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SandboxInteraction {
|
|
16
|
+
kind: 'approval';
|
|
17
|
+
operationKind?: string;
|
|
18
|
+
operationTarget?: string;
|
|
19
|
+
reason?: string;
|
|
20
|
+
}
|
|
21
|
+
interface BuildSandboxEventOptions {
|
|
22
|
+
mandateId?: string;
|
|
23
|
+
source?: string;
|
|
24
|
+
}
|
|
25
|
+
interface MandateScopeLike {
|
|
26
|
+
allowedEffectKinds: string[];
|
|
27
|
+
maxIterations: number;
|
|
28
|
+
maxConcurrentTasks: number;
|
|
29
|
+
timeoutMs: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Convert a sandbox decision to an interaction request.
|
|
33
|
+
* Returns null for allow/block (no human input needed), returns an approval
|
|
34
|
+
* interaction for prompt decisions.
|
|
35
|
+
*/
|
|
36
|
+
export declare function sandboxDecisionToInteraction(decision: SandboxDecision, operation?: SandboxOperation): SandboxInteraction | null;
|
|
37
|
+
/**
|
|
38
|
+
* Build a SandboxEvent with auto-timestamp and default source.
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildSandboxEvent(operation: SandboxOperation, decision: SandboxDecision, options?: BuildSandboxEventOptions): SandboxEvent;
|
|
41
|
+
/**
|
|
42
|
+
* Derive a child sandbox policy from a parent policy respecting mandate scope.
|
|
43
|
+
* - All parent block rules are always inherited.
|
|
44
|
+
* - Allow/prompt rules are only inherited if their kind is within the mandate's
|
|
45
|
+
* allowedEffectKinds (or if allowedEffectKinds contains '*').
|
|
46
|
+
*/
|
|
47
|
+
export declare function inheritSandboxPolicy(parentPolicy: SandboxPolicy, mandateScope: MandateScopeLike): SandboxPolicy;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=sandboxBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandboxBridge.d.ts","sourceRoot":"","sources":["../../src/governance/sandboxBridge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAMzB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,wBAAwB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,gBAAgB,GAC3B,kBAAkB,GAAG,IAAI,CAmB3B;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,wBAAwB,GACjC,YAAY,CASd;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,gBAAgB,GAC7B,aAAa,CAmBf"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sandbox-to-governance bridge (GAP-SEC-002).
|
|
4
|
+
* Converts sandbox decisions into interaction requests and governance events,
|
|
5
|
+
* and derives child sandbox policies from mandate scopes.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.sandboxDecisionToInteraction = sandboxDecisionToInteraction;
|
|
9
|
+
exports.buildSandboxEvent = buildSandboxEvent;
|
|
10
|
+
exports.inheritSandboxPolicy = inheritSandboxPolicy;
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Decision → Interaction
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Convert a sandbox decision to an interaction request.
|
|
16
|
+
* Returns null for allow/block (no human input needed), returns an approval
|
|
17
|
+
* interaction for prompt decisions.
|
|
18
|
+
*/
|
|
19
|
+
function sandboxDecisionToInteraction(decision, operation) {
|
|
20
|
+
if (decision.action !== 'prompt') {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const interaction = {
|
|
24
|
+
kind: 'approval',
|
|
25
|
+
};
|
|
26
|
+
if (operation) {
|
|
27
|
+
interaction.operationKind = operation.kind;
|
|
28
|
+
interaction.operationTarget = operation.target;
|
|
29
|
+
}
|
|
30
|
+
if (decision.reason) {
|
|
31
|
+
interaction.reason = decision.reason;
|
|
32
|
+
}
|
|
33
|
+
return interaction;
|
|
34
|
+
}
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
// Event factory
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
/**
|
|
39
|
+
* Build a SandboxEvent with auto-timestamp and default source.
|
|
40
|
+
*/
|
|
41
|
+
function buildSandboxEvent(operation, decision, options) {
|
|
42
|
+
return {
|
|
43
|
+
kind: `sandbox.${operation.kind}`,
|
|
44
|
+
operation,
|
|
45
|
+
decision,
|
|
46
|
+
timestamp: new Date().toISOString(),
|
|
47
|
+
source: options?.source ?? 'sandbox',
|
|
48
|
+
...(options?.mandateId ? { mandateId: options.mandateId } : {}),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Policy inheritance from mandate scope
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
/**
|
|
55
|
+
* Derive a child sandbox policy from a parent policy respecting mandate scope.
|
|
56
|
+
* - All parent block rules are always inherited.
|
|
57
|
+
* - Allow/prompt rules are only inherited if their kind is within the mandate's
|
|
58
|
+
* allowedEffectKinds (or if allowedEffectKinds contains '*').
|
|
59
|
+
*/
|
|
60
|
+
function inheritSandboxPolicy(parentPolicy, mandateScope) {
|
|
61
|
+
const allowAll = mandateScope.allowedEffectKinds.includes('*');
|
|
62
|
+
const childRules = [];
|
|
63
|
+
for (const rule of parentPolicy.rules) {
|
|
64
|
+
if (rule.action === 'block') {
|
|
65
|
+
// Always inherit blocks
|
|
66
|
+
childRules.push({ ...rule });
|
|
67
|
+
}
|
|
68
|
+
else if (allowAll || mandateScope.allowedEffectKinds.includes(rule.kind)) {
|
|
69
|
+
// Only inherit allow/prompt if mandate permits this kind
|
|
70
|
+
childRules.push({ ...rule });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
rules: childRules,
|
|
75
|
+
defaultAction: parentPolicy.defaultAction,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox policy evaluation for tool/operation sandboxing (GAP-SEC-002).
|
|
3
|
+
* Provides glob-based rule matching, policy composition with deny-overrides,
|
|
4
|
+
* and policy attenuation for child scopes.
|
|
5
|
+
*/
|
|
6
|
+
export type SandboxOperationKind = 'fs.read' | 'fs.write' | 'fs.delete' | 'net.outbound' | 'net.inbound' | 'exec.shell' | 'exec.process';
|
|
7
|
+
export interface SandboxRule {
|
|
8
|
+
kind: SandboxOperationKind;
|
|
9
|
+
pattern: string;
|
|
10
|
+
action: 'allow' | 'block' | 'prompt';
|
|
11
|
+
priority: number;
|
|
12
|
+
}
|
|
13
|
+
export interface SandboxPolicy {
|
|
14
|
+
rules: SandboxRule[];
|
|
15
|
+
defaultAction: 'allow' | 'block' | 'prompt';
|
|
16
|
+
}
|
|
17
|
+
export interface SandboxDecision {
|
|
18
|
+
action: 'allow' | 'block' | 'prompt';
|
|
19
|
+
matchedRule?: SandboxRule;
|
|
20
|
+
reason: string;
|
|
21
|
+
}
|
|
22
|
+
export interface SandboxOperation {
|
|
23
|
+
kind: SandboxOperationKind;
|
|
24
|
+
target: string;
|
|
25
|
+
metadata?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Simple glob matching supporting:
|
|
29
|
+
* - `*` matches any characters within a single path segment (no `/`)
|
|
30
|
+
* - `**` matches any characters including `/` (recursive)
|
|
31
|
+
* - Exact match
|
|
32
|
+
*/
|
|
33
|
+
export declare function matchesPattern(pattern: string, target: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Evaluate a sandbox operation against a policy.
|
|
36
|
+
* Matches rules by operation kind, selects highest-priority match,
|
|
37
|
+
* falls back to defaultAction.
|
|
38
|
+
*/
|
|
39
|
+
export declare function evaluateSandboxAccess(policy: SandboxPolicy, operation: SandboxOperation): SandboxDecision;
|
|
40
|
+
/**
|
|
41
|
+
* Compose multiple sandbox policies with deny-overrides semantics.
|
|
42
|
+
* Block rules from any policy take precedence. Empty input yields default-deny.
|
|
43
|
+
*/
|
|
44
|
+
export declare function composeSandboxPolicies(policies: SandboxPolicy[]): SandboxPolicy;
|
|
45
|
+
/**
|
|
46
|
+
* Attenuate a parent policy with child constraints.
|
|
47
|
+
* The child can only narrow permissions: block additions are kept,
|
|
48
|
+
* allow rules that conflict with parent blocks are dropped.
|
|
49
|
+
*/
|
|
50
|
+
export declare function attenuateSandboxPolicy(parent: SandboxPolicy, childConstraints: SandboxPolicy): SandboxPolicy;
|
|
51
|
+
//# sourceMappingURL=sandboxPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandboxPolicy.d.ts","sourceRoot":"","sources":["../../src/governance/sandboxPolicy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,UAAU,GACV,WAAW,GACX,cAAc,GACd,aAAa,GACb,YAAY,GACZ,cAAc,CAAC;AAEnB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CA8BvE;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,gBAAgB,GAC1B,eAAe,CAyBjB;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,CAiD/E;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,gBAAgB,EAAE,aAAa,GAC9B,aAAa,CAoCf"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sandbox policy evaluation for tool/operation sandboxing (GAP-SEC-002).
|
|
4
|
+
* Provides glob-based rule matching, policy composition with deny-overrides,
|
|
5
|
+
* and policy attenuation for child scopes.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.matchesPattern = matchesPattern;
|
|
9
|
+
exports.evaluateSandboxAccess = evaluateSandboxAccess;
|
|
10
|
+
exports.composeSandboxPolicies = composeSandboxPolicies;
|
|
11
|
+
exports.attenuateSandboxPolicy = attenuateSandboxPolicy;
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Pattern matching
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Simple glob matching supporting:
|
|
17
|
+
* - `*` matches any characters within a single path segment (no `/`)
|
|
18
|
+
* - `**` matches any characters including `/` (recursive)
|
|
19
|
+
* - Exact match
|
|
20
|
+
*/
|
|
21
|
+
function matchesPattern(pattern, target) {
|
|
22
|
+
// Convert glob pattern to regex
|
|
23
|
+
let regex = '';
|
|
24
|
+
let i = 0;
|
|
25
|
+
while (i < pattern.length) {
|
|
26
|
+
if (pattern[i] === '*' && pattern[i + 1] === '*') {
|
|
27
|
+
// ** matches everything including path separators
|
|
28
|
+
regex += '.*';
|
|
29
|
+
i += 2;
|
|
30
|
+
// Skip trailing slash after **
|
|
31
|
+
if (pattern[i] === '/') {
|
|
32
|
+
i++;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if (pattern[i] === '*') {
|
|
36
|
+
// * matches anything except path separator
|
|
37
|
+
regex += '[^/]*';
|
|
38
|
+
i++;
|
|
39
|
+
}
|
|
40
|
+
else if (pattern[i] === '?') {
|
|
41
|
+
regex += '[^/]';
|
|
42
|
+
i++;
|
|
43
|
+
}
|
|
44
|
+
else if ('.+^${}()|[]\\'.includes(pattern[i])) {
|
|
45
|
+
regex += '\\' + pattern[i];
|
|
46
|
+
i++;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
regex += pattern[i];
|
|
50
|
+
i++;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return new RegExp('^' + regex + '$').test(target);
|
|
54
|
+
}
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// Evaluation
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
/**
|
|
59
|
+
* Evaluate a sandbox operation against a policy.
|
|
60
|
+
* Matches rules by operation kind, selects highest-priority match,
|
|
61
|
+
* falls back to defaultAction.
|
|
62
|
+
*/
|
|
63
|
+
function evaluateSandboxAccess(policy, operation) {
|
|
64
|
+
const matching = [];
|
|
65
|
+
for (const rule of policy.rules) {
|
|
66
|
+
if (rule.kind === operation.kind && matchesPattern(rule.pattern, operation.target)) {
|
|
67
|
+
matching.push(rule);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (matching.length === 0) {
|
|
71
|
+
return {
|
|
72
|
+
action: policy.defaultAction,
|
|
73
|
+
reason: `No matching rule; default action: ${policy.defaultAction}`,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// Highest priority wins
|
|
77
|
+
matching.sort((a, b) => b.priority - a.priority);
|
|
78
|
+
const winner = matching[0];
|
|
79
|
+
return {
|
|
80
|
+
action: winner.action,
|
|
81
|
+
matchedRule: winner,
|
|
82
|
+
reason: `Matched rule: ${winner.kind} ${winner.pattern} → ${winner.action} (priority ${winner.priority})`,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
// Composition
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
/**
|
|
89
|
+
* Compose multiple sandbox policies with deny-overrides semantics.
|
|
90
|
+
* Block rules from any policy take precedence. Empty input yields default-deny.
|
|
91
|
+
*/
|
|
92
|
+
function composeSandboxPolicies(policies) {
|
|
93
|
+
if (policies.length === 0) {
|
|
94
|
+
return { rules: [], defaultAction: 'block' };
|
|
95
|
+
}
|
|
96
|
+
const allRules = [];
|
|
97
|
+
for (const policy of policies) {
|
|
98
|
+
allRules.push(...policy.rules);
|
|
99
|
+
}
|
|
100
|
+
// Deny-overrides: for rules with the same kind+pattern, if any is 'block', elevate block priority
|
|
101
|
+
const ruleKey = (r) => `${r.kind}::${r.pattern}`;
|
|
102
|
+
const grouped = new Map();
|
|
103
|
+
for (const rule of allRules) {
|
|
104
|
+
const key = ruleKey(rule);
|
|
105
|
+
const group = grouped.get(key) ?? [];
|
|
106
|
+
group.push(rule);
|
|
107
|
+
grouped.set(key, group);
|
|
108
|
+
}
|
|
109
|
+
const mergedRules = [];
|
|
110
|
+
for (const [_key, group] of grouped) {
|
|
111
|
+
const hasBlock = group.some(r => r.action === 'block');
|
|
112
|
+
if (hasBlock) {
|
|
113
|
+
// Find highest-priority block rule, or promote one
|
|
114
|
+
const blockRules = group.filter(r => r.action === 'block');
|
|
115
|
+
const maxPriority = Math.max(...group.map(r => r.priority));
|
|
116
|
+
const bestBlock = blockRules.sort((a, b) => b.priority - a.priority)[0];
|
|
117
|
+
mergedRules.push({ ...bestBlock, priority: Math.max(bestBlock.priority, maxPriority) });
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// No block — keep highest priority rule
|
|
121
|
+
const best = group.sort((a, b) => b.priority - a.priority)[0];
|
|
122
|
+
mergedRules.push(best);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Default action: most restrictive wins
|
|
126
|
+
let defaultAction = 'allow';
|
|
127
|
+
for (const policy of policies) {
|
|
128
|
+
if (policy.defaultAction === 'block') {
|
|
129
|
+
defaultAction = 'block';
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
if (policy.defaultAction === 'prompt') {
|
|
133
|
+
defaultAction = 'prompt';
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return { rules: mergedRules, defaultAction };
|
|
137
|
+
}
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
// Attenuation
|
|
140
|
+
// ---------------------------------------------------------------------------
|
|
141
|
+
/**
|
|
142
|
+
* Attenuate a parent policy with child constraints.
|
|
143
|
+
* The child can only narrow permissions: block additions are kept,
|
|
144
|
+
* allow rules that conflict with parent blocks are dropped.
|
|
145
|
+
*/
|
|
146
|
+
function attenuateSandboxPolicy(parent, childConstraints) {
|
|
147
|
+
const ruleKey = (r) => `${r.kind}::${r.pattern}`;
|
|
148
|
+
// Index parent blocks
|
|
149
|
+
const parentBlocks = new Set();
|
|
150
|
+
for (const rule of parent.rules) {
|
|
151
|
+
if (rule.action === 'block') {
|
|
152
|
+
parentBlocks.add(ruleKey(rule));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Start with all parent rules
|
|
156
|
+
const resultRules = [...parent.rules];
|
|
157
|
+
for (const childRule of childConstraints.rules) {
|
|
158
|
+
const key = ruleKey(childRule);
|
|
159
|
+
if (childRule.action === 'allow' && parentBlocks.has(key)) {
|
|
160
|
+
// Child cannot expand parent blocks to allows — skip
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (childRule.action === 'block') {
|
|
164
|
+
// Child can always add or strengthen blocks
|
|
165
|
+
// Check if parent already has this block
|
|
166
|
+
const existing = resultRules.find(r => ruleKey(r) === key && r.action === 'block');
|
|
167
|
+
if (!existing) {
|
|
168
|
+
resultRules.push(childRule);
|
|
169
|
+
}
|
|
170
|
+
else if (childRule.priority > existing.priority) {
|
|
171
|
+
existing.priority = childRule.priority;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Apply deny-overrides on the combined set
|
|
176
|
+
return composeSandboxPolicies([{ rules: resultRules, defaultAction: parent.defaultAction }]);
|
|
177
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { PolicyRuleKind, PolicyConditionOp, PolicyAction, PolicyCondition, PolicyRule, StatefulPolicyRule, PolicyEvaluationContext, PolicyDecision, PolicyDecisionLog, PolicyEngine, } from "@a5c-ai/babysitter-sdk";
|
|
2
|
+
export { isStatefulRule } from "@a5c-ai/babysitter-sdk";
|
|
3
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/governance/types.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isStatefulRule = void 0;
|
|
4
|
+
var babysitter_sdk_1 = require("@a5c-ai/babysitter-sdk");
|
|
5
|
+
Object.defineProperty(exports, "isStatefulRule", { enumerable: true, get: function () { return babysitter_sdk_1.isStatefulRule; } });
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agent-mux integration bridge for agent-platform.
|
|
3
|
+
*
|
|
4
|
+
* Replaces the direct child-process invocation in `invoker.ts` for
|
|
5
|
+
* external harnesses by delegating to an AmuxClient instance. The
|
|
6
|
+
* client is injected so agent-platform never imports @agent-mux/core
|
|
7
|
+
* directly -- it only depends on the interfaces defined in amuxTypes.ts.
|
|
8
|
+
*
|
|
9
|
+
* @module harness/amux/amuxBridge
|
|
10
|
+
*/
|
|
11
|
+
import type { HarnessInvokeOptions, HarnessInvokeResult } from "../types";
|
|
12
|
+
import type { AmuxClient } from "./amuxTypes";
|
|
13
|
+
import { type BabysitterEvent } from "./amuxEventMapper";
|
|
14
|
+
/**
|
|
15
|
+
* Options that extend the standard HarnessInvokeOptions with fields
|
|
16
|
+
* specific to the agent-mux bridge.
|
|
17
|
+
*/
|
|
18
|
+
export interface AmuxBridgeOptions extends HarnessInvokeOptions {
|
|
19
|
+
/** Session ID for session resumption via agent-mux. */
|
|
20
|
+
sessionId?: string;
|
|
21
|
+
/** Whether to suppress interactive prompts (yolo mode). */
|
|
22
|
+
nonInteractive?: boolean;
|
|
23
|
+
/** Maximum agent turns before force-stop. */
|
|
24
|
+
maxTurns?: number;
|
|
25
|
+
/** Hook configuration forwarded to the agent. */
|
|
26
|
+
hooks?: unknown;
|
|
27
|
+
/** Skills to enable for this run. */
|
|
28
|
+
skills?: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extended result that includes agent-mux-specific metadata on top of
|
|
32
|
+
* the standard HarnessInvokeResult.
|
|
33
|
+
*/
|
|
34
|
+
export interface AmuxBridgeResult extends HarnessInvokeResult {
|
|
35
|
+
/** Session ID returned by agent-mux (for session resumption). */
|
|
36
|
+
sessionId?: string;
|
|
37
|
+
/** Accumulated cost from cost events. */
|
|
38
|
+
totalCost: number;
|
|
39
|
+
/** All babysitter-mapped events collected during the run. */
|
|
40
|
+
events: BabysitterEvent[];
|
|
41
|
+
/** The last assistant text message accumulated from text_delta events. */
|
|
42
|
+
lastMessage: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Optional callback invoked for each mapped babysitter event during
|
|
46
|
+
* stream consumption. Useful for live governance checks, cost tracking,
|
|
47
|
+
* and webhook forwarding without waiting for the full run to complete.
|
|
48
|
+
*/
|
|
49
|
+
export type AmuxEventCallback = (event: BabysitterEvent) => void | Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Invoke a harness through agent-mux instead of spawning the CLI directly.
|
|
52
|
+
*
|
|
53
|
+
* The function:
|
|
54
|
+
* 1. Maps the babysitter harness name to an agent-mux adapter name.
|
|
55
|
+
* 2. Calls `client.run()` with the translated options.
|
|
56
|
+
* 3. Consumes the async event stream, mapping each AgentEvent to a
|
|
57
|
+
* BabysitterEvent.
|
|
58
|
+
* 4. Accumulates text deltas, cost totals, and error state.
|
|
59
|
+
* 5. Returns an AmuxBridgeResult compatible with HarnessInvokeResult.
|
|
60
|
+
*
|
|
61
|
+
* @param client - AmuxClient instance (injected, no hard dep on @agent-mux/core).
|
|
62
|
+
* @param harness - babysitter harness name (e.g. "claude-code", "codex").
|
|
63
|
+
* @param options - Invocation options.
|
|
64
|
+
* @param onEvent - Optional per-event callback for live processing.
|
|
65
|
+
* @returns Promise resolving to the bridge result.
|
|
66
|
+
*
|
|
67
|
+
* @throws {Error} if `harness` is "pi" / "internal" (use agent-core).
|
|
68
|
+
* @throws {Error} if the harness has no agent-mux adapter mapping.
|
|
69
|
+
*/
|
|
70
|
+
export declare function invokeViaAgentMux(client: AmuxClient, harness: string, options: AmuxBridgeOptions, onEvent?: AmuxEventCallback): Promise<AmuxBridgeResult>;
|
|
71
|
+
//# sourceMappingURL=amuxBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amuxBridge.d.ts","sourceRoot":"","sources":["../../../src/harness/amux/amuxBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,aAAa,CAAC;AAErB,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAM3B;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAMjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAuF3B"}
|