@a5c-ai/agent-platform 5.0.1-staging.b436b3b3e611
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/dist/anycli/cache.d.ts +45 -0
- package/dist/anycli/cache.d.ts.map +1 -0
- package/dist/anycli/cache.js +118 -0
- package/dist/anycli/index.d.ts +10 -0
- package/dist/anycli/index.d.ts.map +1 -0
- package/dist/anycli/index.js +25 -0
- package/dist/anycli/types.d.ts +32 -0
- package/dist/anycli/types.d.ts.map +1 -0
- package/dist/anycli/types.js +9 -0
- package/dist/api/breakpoints.d.ts +93 -0
- package/dist/api/breakpoints.d.ts.map +1 -0
- package/dist/api/breakpoints.js +334 -0
- package/dist/api/effects.d.ts +14 -0
- package/dist/api/effects.d.ts.map +1 -0
- package/dist/api/effects.js +306 -0
- package/dist/api/effectsTypes.d.ts +79 -0
- package/dist/api/effectsTypes.d.ts.map +1 -0
- package/dist/api/effectsTypes.js +6 -0
- package/dist/api/eventStream.d.ts +34 -0
- package/dist/api/eventStream.d.ts.map +1 -0
- package/dist/api/eventStream.js +126 -0
- package/dist/api/index.d.ts +10 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +27 -0
- package/dist/api/runs.d.ts +85 -0
- package/dist/api/runs.d.ts.map +1 -0
- package/dist/api/runs.js +247 -0
- package/dist/api/utils.d.ts +28 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/api/utils.js +74 -0
- package/dist/breakpoints/approvalChains.d.ts +68 -0
- package/dist/breakpoints/approvalChains.d.ts.map +1 -0
- package/dist/breakpoints/approvalChains.js +111 -0
- package/dist/breakpoints/delegation.d.ts +42 -0
- package/dist/breakpoints/delegation.d.ts.map +1 -0
- package/dist/breakpoints/delegation.js +199 -0
- package/dist/breakpoints/delegationTypes.d.ts +46 -0
- package/dist/breakpoints/delegationTypes.d.ts.map +1 -0
- package/dist/breakpoints/delegationTypes.js +10 -0
- package/dist/breakpoints/postures.d.ts +28 -0
- package/dist/breakpoints/postures.d.ts.map +1 -0
- package/dist/breakpoints/postures.js +100 -0
- package/dist/cli/amuxEventsFormatter.d.ts +26 -0
- package/dist/cli/amuxEventsFormatter.d.ts.map +1 -0
- package/dist/cli/amuxEventsFormatter.js +86 -0
- package/dist/cli/args/argFlags.d.ts +6 -0
- package/dist/cli/args/argFlags.d.ts.map +1 -0
- package/dist/cli/args/argFlags.js +72 -0
- package/dist/cli/args/argPositionals.d.ts +3 -0
- package/dist/cli/args/argPositionals.d.ts.map +1 -0
- package/dist/cli/args/argPositionals.js +18 -0
- package/dist/cli/args/index.d.ts +4 -0
- package/dist/cli/args/index.d.ts.map +1 -0
- package/dist/cli/args/index.js +75 -0
- package/dist/cli/args/types.d.ts +13 -0
- package/dist/cli/args/types.d.ts.map +1 -0
- package/dist/cli/args/types.js +2 -0
- package/dist/cli/commands/daemon.d.ts +31 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -0
- package/dist/cli/commands/daemon.js +156 -0
- package/dist/cli/commands/harness/createRun.d.ts +3 -0
- package/dist/cli/commands/harness/createRun.d.ts.map +1 -0
- package/dist/cli/commands/harness/createRun.js +8 -0
- package/dist/cli/commands/harness/resumeRun.d.ts +20 -0
- package/dist/cli/commands/harness/resumeRun.d.ts.map +1 -0
- package/dist/cli/commands/harness/resumeRun.js +341 -0
- package/dist/cli/commands/jsonlInteractive.d.ts +35 -0
- package/dist/cli/commands/jsonlInteractive.d.ts.map +1 -0
- package/dist/cli/commands/jsonlInteractive.js +302 -0
- package/dist/cli/commands/mcpServe.d.ts +18 -0
- package/dist/cli/commands/mcpServe.d.ts.map +1 -0
- package/dist/cli/commands/mcpServe.js +59 -0
- package/dist/cli/commands/session/history.d.ts +14 -0
- package/dist/cli/commands/session/history.d.ts.map +1 -0
- package/dist/cli/commands/session/history.js +100 -0
- package/dist/cli/commands/tui.d.ts +23 -0
- package/dist/cli/commands/tui.d.ts.map +1 -0
- package/dist/cli/commands/tui.js +183 -0
- package/dist/cli/dispatch.d.ts +4 -0
- package/dist/cli/dispatch.d.ts.map +1 -0
- package/dist/cli/dispatch.js +332 -0
- package/dist/cli/main.d.ts +7 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +41 -0
- package/dist/cli/program.d.ts +7 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +8 -0
- package/dist/cli/ui.d.ts +9 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +125 -0
- package/dist/compression/compaction.d.ts +82 -0
- package/dist/compression/compaction.d.ts.map +1 -0
- package/dist/compression/compaction.js +310 -0
- package/dist/cost/claudeCodeParser.d.ts +81 -0
- package/dist/cost/claudeCodeParser.d.ts.map +1 -0
- package/dist/cost/claudeCodeParser.js +232 -0
- package/dist/cost/collector.d.ts +42 -0
- package/dist/cost/collector.d.ts.map +1 -0
- package/dist/cost/collector.js +105 -0
- package/dist/cost/effectCost.d.ts +23 -0
- package/dist/cost/effectCost.d.ts.map +1 -0
- package/dist/cost/effectCost.js +26 -0
- package/dist/cost/index.d.ts +7 -0
- package/dist/cost/index.d.ts.map +1 -0
- package/dist/cost/index.js +28 -0
- package/dist/cost/journal.d.ts +40 -0
- package/dist/cost/journal.d.ts.map +1 -0
- package/dist/cost/journal.js +137 -0
- package/dist/cost/types.d.ts +164 -0
- package/dist/cost/types.d.ts.map +1 -0
- package/dist/cost/types.js +228 -0
- package/dist/daemon/automationExecutor.d.ts +16 -0
- package/dist/daemon/automationExecutor.d.ts.map +1 -0
- package/dist/daemon/automationExecutor.js +222 -0
- package/dist/daemon/config.d.ts +8 -0
- package/dist/daemon/config.d.ts.map +1 -0
- package/dist/daemon/config.js +209 -0
- package/dist/daemon/daemonLog.d.ts +13 -0
- package/dist/daemon/daemonLog.d.ts.map +1 -0
- package/dist/daemon/daemonLog.js +64 -0
- package/dist/daemon/fileWatcher.d.ts +9 -0
- package/dist/daemon/fileWatcher.d.ts.map +1 -0
- package/dist/daemon/fileWatcher.js +141 -0
- package/dist/daemon/index.d.ts +7 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +21 -0
- package/dist/daemon/lifecycle.d.ts +12 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +257 -0
- package/dist/daemon/loop.d.ts +21 -0
- package/dist/daemon/loop.d.ts.map +1 -0
- package/dist/daemon/loop.js +196 -0
- package/dist/daemon/timerScheduler.d.ts +13 -0
- package/dist/daemon/timerScheduler.d.ts.map +1 -0
- package/dist/daemon/timerScheduler.js +122 -0
- package/dist/daemon/types.d.ts +93 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +25 -0
- package/dist/daemon/webhookListener.d.ts +6 -0
- package/dist/daemon/webhookListener.d.ts.map +1 -0
- package/dist/daemon/webhookListener.js +110 -0
- package/dist/governance/authority.d.ts +68 -0
- package/dist/governance/authority.d.ts.map +1 -0
- package/dist/governance/authority.js +136 -0
- package/dist/governance/bridge.d.ts +17 -0
- package/dist/governance/bridge.d.ts.map +1 -0
- package/dist/governance/bridge.js +46 -0
- package/dist/governance/builtins.d.ts +25 -0
- package/dist/governance/builtins.d.ts.map +1 -0
- package/dist/governance/builtins.js +67 -0
- package/dist/governance/categories.d.ts +58 -0
- package/dist/governance/categories.d.ts.map +1 -0
- package/dist/governance/categories.js +120 -0
- package/dist/governance/decisionTrail.d.ts +60 -0
- package/dist/governance/decisionTrail.d.ts.map +1 -0
- package/dist/governance/decisionTrail.js +68 -0
- package/dist/governance/engine.d.ts +20 -0
- package/dist/governance/engine.d.ts.map +1 -0
- package/dist/governance/engine.js +124 -0
- package/dist/governance/index.d.ts +20 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +75 -0
- package/dist/governance/logging.d.ts +18 -0
- package/dist/governance/logging.d.ts.map +1 -0
- package/dist/governance/logging.js +83 -0
- package/dist/governance/mandate.d.ts +83 -0
- package/dist/governance/mandate.d.ts.map +1 -0
- package/dist/governance/mandate.js +180 -0
- package/dist/governance/permissionEvents.d.ts +51 -0
- package/dist/governance/permissionEvents.d.ts.map +1 -0
- package/dist/governance/permissionEvents.js +52 -0
- package/dist/governance/permissionPropagation.d.ts +18 -0
- package/dist/governance/permissionPropagation.d.ts.map +1 -0
- package/dist/governance/permissionPropagation.js +58 -0
- package/dist/governance/postureBridge.d.ts +17 -0
- package/dist/governance/postureBridge.d.ts.map +1 -0
- package/dist/governance/postureBridge.js +117 -0
- package/dist/governance/sandboxBridge.d.ts +49 -0
- package/dist/governance/sandboxBridge.d.ts.map +1 -0
- package/dist/governance/sandboxBridge.js +77 -0
- package/dist/governance/sandboxPolicy.d.ts +51 -0
- package/dist/governance/sandboxPolicy.d.ts.map +1 -0
- package/dist/governance/sandboxPolicy.js +177 -0
- package/dist/governance/types.d.ts +3 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +5 -0
- package/dist/harness/amux/amuxBridge.d.ts +71 -0
- package/dist/harness/amux/amuxBridge.d.ts.map +1 -0
- package/dist/harness/amux/amuxBridge.js +117 -0
- package/dist/harness/amux/amuxClientFactory.d.ts +29 -0
- package/dist/harness/amux/amuxClientFactory.d.ts.map +1 -0
- package/dist/harness/amux/amuxClientFactory.js +90 -0
- package/dist/harness/amux/amuxEventEmitter.d.ts +51 -0
- package/dist/harness/amux/amuxEventEmitter.d.ts.map +1 -0
- package/dist/harness/amux/amuxEventEmitter.js +143 -0
- package/dist/harness/amux/amuxEventMapper.d.ts +58 -0
- package/dist/harness/amux/amuxEventMapper.d.ts.map +1 -0
- package/dist/harness/amux/amuxEventMapper.js +92 -0
- package/dist/harness/amux/amuxHarnessMap.d.ts +25 -0
- package/dist/harness/amux/amuxHarnessMap.d.ts.map +1 -0
- package/dist/harness/amux/amuxHarnessMap.js +55 -0
- package/dist/harness/amux/amuxStdinReader.d.ts +45 -0
- package/dist/harness/amux/amuxStdinReader.d.ts.map +1 -0
- package/dist/harness/amux/amuxStdinReader.js +106 -0
- package/dist/harness/amux/amuxTypes.d.ts +122 -0
- package/dist/harness/amux/amuxTypes.d.ts.map +1 -0
- package/dist/harness/amux/amuxTypes.js +11 -0
- package/dist/harness/amux/index.d.ts +17 -0
- package/dist/harness/amux/index.d.ts.map +1 -0
- package/dist/harness/amux/index.js +34 -0
- package/dist/harness/backgroundTracker.d.ts +64 -0
- package/dist/harness/backgroundTracker.d.ts.map +1 -0
- package/dist/harness/backgroundTracker.js +107 -0
- package/dist/harness/builtInHarness.d.ts +3 -0
- package/dist/harness/builtInHarness.d.ts.map +1 -0
- package/dist/harness/builtInHarness.js +18 -0
- package/dist/harness/capabilityRouter.d.ts +76 -0
- package/dist/harness/capabilityRouter.d.ts.map +1 -0
- package/dist/harness/capabilityRouter.js +176 -0
- package/dist/harness/fallbackChains.d.ts +42 -0
- package/dist/harness/fallbackChains.d.ts.map +1 -0
- package/dist/harness/fallbackChains.js +69 -0
- package/dist/harness/hostContract.d.ts +63 -0
- package/dist/harness/hostContract.d.ts.map +1 -0
- package/dist/harness/hostContract.js +136 -0
- package/dist/harness/index.d.ts +10 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +66 -0
- package/dist/harness/internal/createRun/askUserQuestion.d.ts +11 -0
- package/dist/harness/internal/createRun/askUserQuestion.d.ts.map +1 -0
- package/dist/harness/internal/createRun/askUserQuestion.js +162 -0
- package/dist/harness/internal/createRun/index.d.ts +25 -0
- package/dist/harness/internal/createRun/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/index.js +137 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts +7 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/constants.js +13 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts +43 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effects.js +490 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +20 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +79 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts +3 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.js +319 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts +16 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.js +104 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts +14 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/index.js +36 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +3 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.js +464 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +26 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.js +262 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts +17 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.js +23 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.d.ts +10 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.js +67 -0
- package/dist/harness/internal/createRun/orchestration/types.d.ts +46 -0
- package/dist/harness/internal/createRun/orchestration/types.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/types.js +2 -0
- package/dist/harness/internal/createRun/orchestration/verbose.d.ts +7 -0
- package/dist/harness/internal/createRun/orchestration/verbose.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/verbose.js +240 -0
- package/dist/harness/internal/createRun/output.d.ts +38 -0
- package/dist/harness/internal/createRun/output.d.ts.map +1 -0
- package/dist/harness/internal/createRun/output.js +415 -0
- package/dist/harness/internal/createRun/pi.d.ts +34 -0
- package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
- package/dist/harness/internal/createRun/pi.js +216 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts +5 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.js +113 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts +23 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/delegation.js +176 -0
- package/dist/harness/internal/createRun/planProcess/external.d.ts +14 -0
- package/dist/harness/internal/createRun/planProcess/external.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/external.js +139 -0
- package/dist/harness/internal/createRun/planProcess/index.d.ts +12 -0
- package/dist/harness/internal/createRun/planProcess/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/index.js +24 -0
- package/dist/harness/internal/createRun/planProcess/paths.d.ts +7 -0
- package/dist/harness/internal/createRun/planProcess/paths.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/paths.js +98 -0
- package/dist/harness/internal/createRun/planProcess/phase.d.ts +6 -0
- package/dist/harness/internal/createRun/planProcess/phase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phase.js +361 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +37 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +159 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts +25 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.js +6 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts +20 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/prompts.js +208 -0
- package/dist/harness/internal/createRun/planProcess/recovery.d.ts +18 -0
- package/dist/harness/internal/createRun/planProcess/recovery.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/recovery.js +188 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts +2 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/recovery.test.js +68 -0
- package/dist/harness/internal/createRun/planProcess/runState.d.ts +40 -0
- package/dist/harness/internal/createRun/planProcess/runState.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/runState.js +179 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts +22 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.js +65 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts +2 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validation.js +212 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +11 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.js +328 -0
- package/dist/harness/internal/createRun/planProcess/validationText.d.ts +3 -0
- package/dist/harness/internal/createRun/planProcess/validationText.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationText.js +145 -0
- package/dist/harness/internal/createRun/prompts.d.ts +49 -0
- package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/prompts.js +307 -0
- package/dist/harness/internal/createRun/resumeState.d.ts +28 -0
- package/dist/harness/internal/createRun/resumeState.d.ts.map +1 -0
- package/dist/harness/internal/createRun/resumeState.js +133 -0
- package/dist/harness/internal/createRun/utils.d.ts +182 -0
- package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
- package/dist/harness/internal/createRun/utils.js +133 -0
- package/dist/harness/internal.d.ts +13 -0
- package/dist/harness/internal.d.ts.map +1 -0
- package/dist/harness/internal.js +149 -0
- package/dist/harness/invoker/launch.d.ts +20 -0
- package/dist/harness/invoker/launch.d.ts.map +1 -0
- package/dist/harness/invoker/launch.js +23 -0
- package/dist/harness/invoker/processControl.d.ts +11 -0
- package/dist/harness/invoker/processControl.d.ts.map +1 -0
- package/dist/harness/invoker/processControl.js +50 -0
- package/dist/harness/invoker.d.ts +43 -0
- package/dist/harness/invoker.d.ts.map +1 -0
- package/dist/harness/invoker.js +210 -0
- package/dist/harness/modeSelector.d.ts +50 -0
- package/dist/harness/modeSelector.d.ts.map +1 -0
- package/dist/harness/modeSelector.js +124 -0
- package/dist/harness/modelSelection.d.ts +37 -0
- package/dist/harness/modelSelection.d.ts.map +1 -0
- package/dist/harness/modelSelection.js +81 -0
- package/dist/harness/operatorCommands.d.ts +38 -0
- package/dist/harness/operatorCommands.d.ts.map +1 -0
- package/dist/harness/operatorCommands.js +118 -0
- package/dist/harness/piSecureSandbox.d.ts +8 -0
- package/dist/harness/piSecureSandbox.d.ts.map +1 -0
- package/dist/harness/piSecureSandbox.js +366 -0
- package/dist/harness/piSecureSandboxTypes.d.ts +51 -0
- package/dist/harness/piSecureSandboxTypes.d.ts.map +1 -0
- package/dist/harness/piSecureSandboxTypes.js +6 -0
- package/dist/harness/piWrapper/compaction.d.ts +13 -0
- package/dist/harness/piWrapper/compaction.d.ts.map +1 -0
- package/dist/harness/piWrapper/compaction.js +38 -0
- package/dist/harness/piWrapper/instructionPrompts.d.ts +2 -0
- package/dist/harness/piWrapper/instructionPrompts.d.ts.map +1 -0
- package/dist/harness/piWrapper/instructionPrompts.js +97 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts +77 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
- package/dist/harness/piWrapper/moduleSupport.js +204 -0
- package/dist/harness/piWrapper.d.ts +80 -0
- package/dist/harness/piWrapper.d.ts.map +1 -0
- package/dist/harness/piWrapper.js +389 -0
- package/dist/harness/piWrapper.test.d.ts +2 -0
- package/dist/harness/piWrapper.test.d.ts.map +1 -0
- package/dist/harness/piWrapper.test.js +193 -0
- package/dist/harness/planMode.d.ts +68 -0
- package/dist/harness/planMode.d.ts.map +1 -0
- package/dist/harness/planMode.js +145 -0
- package/dist/harness/selectionPolicies.d.ts +29 -0
- package/dist/harness/selectionPolicies.d.ts.map +1 -0
- package/dist/harness/selectionPolicies.js +165 -0
- package/dist/harness/types.d.ts +266 -0
- package/dist/harness/types.d.ts.map +1 -0
- package/dist/harness/types.js +34 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/interaction/askUserQuestion/core.d.ts +8 -0
- package/dist/interaction/askUserQuestion/core.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion/core.js +112 -0
- package/dist/interaction/askUserQuestion/terminal.d.ts +15 -0
- package/dist/interaction/askUserQuestion/terminal.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion/terminal.js +128 -0
- package/dist/interaction/askUserQuestion.d.ts +10 -0
- package/dist/interaction/askUserQuestion.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion.js +295 -0
- package/dist/interaction/askUserQuestionTypes.d.ts +31 -0
- package/dist/interaction/askUserQuestionTypes.d.ts.map +1 -0
- package/dist/interaction/askUserQuestionTypes.js +6 -0
- package/dist/interaction/index.d.ts +4 -0
- package/dist/interaction/index.d.ts.map +1 -0
- package/dist/interaction/index.js +20 -0
- package/dist/interaction/interactionRouter.d.ts +25 -0
- package/dist/interaction/interactionRouter.d.ts.map +1 -0
- package/dist/interaction/interactionRouter.js +55 -0
- package/dist/mcp/channels/allowlist.d.ts +19 -0
- package/dist/mcp/channels/allowlist.d.ts.map +1 -0
- package/dist/mcp/channels/allowlist.js +140 -0
- package/dist/mcp/channels/channelManager.d.ts +64 -0
- package/dist/mcp/channels/channelManager.d.ts.map +1 -0
- package/dist/mcp/channels/channelManager.js +137 -0
- package/dist/mcp/channels/inboundQueue.d.ts +47 -0
- package/dist/mcp/channels/inboundQueue.d.ts.map +1 -0
- package/dist/mcp/channels/inboundQueue.js +96 -0
- package/dist/mcp/channels/index.d.ts +17 -0
- package/dist/mcp/channels/index.d.ts.map +1 -0
- package/dist/mcp/channels/index.js +39 -0
- package/dist/mcp/channels/outbound.d.ts +33 -0
- package/dist/mcp/channels/outbound.d.ts.map +1 -0
- package/dist/mcp/channels/outbound.js +94 -0
- package/dist/mcp/channels/permissionRelay.d.ts +62 -0
- package/dist/mcp/channels/permissionRelay.d.ts.map +1 -0
- package/dist/mcp/channels/permissionRelay.js +159 -0
- package/dist/mcp/channels/types.d.ts +135 -0
- package/dist/mcp/channels/types.d.ts.map +1 -0
- package/dist/mcp/channels/types.js +16 -0
- package/dist/mcp/client/config.d.ts +28 -0
- package/dist/mcp/client/config.d.ts.map +1 -0
- package/dist/mcp/client/config.js +142 -0
- package/dist/mcp/client/executor.d.ts +30 -0
- package/dist/mcp/client/executor.d.ts.map +1 -0
- package/dist/mcp/client/executor.js +60 -0
- package/dist/mcp/client/index.d.ts +12 -0
- package/dist/mcp/client/index.d.ts.map +1 -0
- package/dist/mcp/client/index.js +27 -0
- package/dist/mcp/client/manager.d.ts +74 -0
- package/dist/mcp/client/manager.d.ts.map +1 -0
- package/dist/mcp/client/manager.js +214 -0
- package/dist/mcp/client/toolRegistry.d.ts +50 -0
- package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
- package/dist/mcp/client/toolRegistry.js +118 -0
- package/dist/mcp/client/types.d.ts +96 -0
- package/dist/mcp/client/types.d.ts.map +1 -0
- package/dist/mcp/client/types.js +15 -0
- package/dist/mcp/transport/index.d.ts +9 -0
- package/dist/mcp/transport/index.d.ts.map +1 -0
- package/dist/mcp/transport/index.js +13 -0
- package/dist/mcp/transport/session.d.ts +18 -0
- package/dist/mcp/transport/session.d.ts.map +1 -0
- package/dist/mcp/transport/session.js +78 -0
- package/dist/mcp/transport/types.d.ts +19 -0
- package/dist/mcp/transport/types.d.ts.map +1 -0
- package/dist/mcp/transport/types.js +7 -0
- package/dist/mcp/transport/websocket.d.ts +41 -0
- package/dist/mcp/transport/websocket.d.ts.map +1 -0
- package/dist/mcp/transport/websocket.js +271 -0
- package/dist/observability/health.d.ts +19 -0
- package/dist/observability/health.d.ts.map +1 -0
- package/dist/observability/health.js +129 -0
- package/dist/observability/index.d.ts +7 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +22 -0
- package/dist/observability/runStatus.d.ts +44 -0
- package/dist/observability/runStatus.d.ts.map +1 -0
- package/dist/observability/runStatus.js +169 -0
- package/dist/observability/timeline.d.ts +11 -0
- package/dist/observability/timeline.d.ts.map +1 -0
- package/dist/observability/timeline.js +176 -0
- package/dist/observability/types.d.ts +62 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +8 -0
- package/dist/observability/webhooks.d.ts +68 -0
- package/dist/observability/webhooks.d.ts.map +1 -0
- package/dist/observability/webhooks.js +132 -0
- package/dist/prompts/commandTemplates.d.ts +3 -0
- package/dist/prompts/commandTemplates.d.ts.map +1 -0
- package/dist/prompts/commandTemplates.js +238 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +28 -0
- package/dist/seams/contract.d.ts +55 -0
- package/dist/seams/contract.d.ts.map +1 -0
- package/dist/seams/contract.js +120 -0
- package/dist/seams/contract.test.d.ts +2 -0
- package/dist/seams/contract.test.d.ts.map +1 -0
- package/dist/seams/contract.test.js +96 -0
- package/dist/seams/index.d.ts +3 -0
- package/dist/seams/index.d.ts.map +1 -0
- package/dist/seams/index.js +8 -0
- package/dist/session/context.d.ts +22 -0
- package/dist/session/context.d.ts.map +1 -0
- package/dist/session/context.js +113 -0
- package/dist/session/continuityState.d.ts +39 -0
- package/dist/session/continuityState.d.ts.map +1 -0
- package/dist/session/continuityState.js +164 -0
- package/dist/session/cost.d.ts +63 -0
- package/dist/session/cost.d.ts.map +1 -0
- package/dist/session/cost.js +194 -0
- package/dist/session/discovery.d.ts +22 -0
- package/dist/session/discovery.d.ts.map +1 -0
- package/dist/session/discovery.js +35 -0
- package/dist/session/history.d.ts +30 -0
- package/dist/session/history.d.ts.map +1 -0
- package/dist/session/history.js +143 -0
- package/dist/session/index.d.ts +7 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +70 -0
- package/dist/session/memoryExtraction.d.ts +65 -0
- package/dist/session/memoryExtraction.d.ts.map +1 -0
- package/dist/session/memoryExtraction.js +201 -0
- package/dist/session/parse.d.ts +45 -0
- package/dist/session/parse.d.ts.map +1 -0
- package/dist/session/parse.js +170 -0
- package/dist/session/persistence.d.ts +46 -0
- package/dist/session/persistence.d.ts.map +1 -0
- package/dist/session/persistence.js +180 -0
- package/dist/session/types.d.ts +267 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +45 -0
- package/dist/session/write.d.ts +61 -0
- package/dist/session/write.d.ts.map +1 -0
- package/dist/session/write.js +213 -0
- package/dist/storage/atomic.d.ts +2 -0
- package/dist/storage/atomic.d.ts.map +1 -0
- package/dist/storage/atomic.js +54 -0
- package/dist/storage/clock.d.ts +2 -0
- package/dist/storage/clock.d.ts.map +1 -0
- package/dist/storage/clock.js +6 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +9 -0
- package/dist/storage/journalWatcher.d.ts +24 -0
- package/dist/storage/journalWatcher.d.ts.map +1 -0
- package/dist/storage/journalWatcher.js +172 -0
- package/dist/storage/paths.d.ts +5 -0
- package/dist/storage/paths.d.ts.map +1 -0
- package/dist/storage/paths.js +26 -0
- package/dist/storage/snapshotState.d.ts +10 -0
- package/dist/storage/snapshotState.d.ts.map +1 -0
- package/dist/storage/snapshotState.js +15 -0
- package/dist/storage/storeTaskArtifacts.d.ts +6 -0
- package/dist/storage/storeTaskArtifacts.d.ts.map +1 -0
- package/dist/storage/storeTaskArtifacts.js +55 -0
- package/dist/storage/types.d.ts +21 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/tasks/crud.d.ts +33 -0
- package/dist/tasks/crud.d.ts.map +1 -0
- package/dist/tasks/crud.js +150 -0
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +9 -0
- package/package.json +141 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability-based task routing (GAP-HADAPT-001).
|
|
3
|
+
*
|
|
4
|
+
* Scores harness candidates against task requirements and selects
|
|
5
|
+
* the best match. Pure functions, no side effects.
|
|
6
|
+
*/
|
|
7
|
+
import type { HarnessCapability, HarnessDiscoveryResult } from "./types";
|
|
8
|
+
/** What a task needs from a harness. */
|
|
9
|
+
export interface TaskRequirements {
|
|
10
|
+
/** Capabilities that MUST be present (missing = disqualified). */
|
|
11
|
+
requiredCapabilities: HarnessCapability[];
|
|
12
|
+
/** Preferred model name (exact match > partial > none). */
|
|
13
|
+
preferredModel?: string;
|
|
14
|
+
/** Tools the task needs available. */
|
|
15
|
+
requiredTools: string[];
|
|
16
|
+
/** Permissions the task needs. */
|
|
17
|
+
requiredPermissions: string[];
|
|
18
|
+
/** Preferred harness name (soft preference, not hard requirement). */
|
|
19
|
+
preferredHarness?: string;
|
|
20
|
+
}
|
|
21
|
+
/** A harness candidate for routing. */
|
|
22
|
+
export interface HarnessCandidate {
|
|
23
|
+
name: string;
|
|
24
|
+
capabilities: HarnessCapability[];
|
|
25
|
+
supportedModels: string[];
|
|
26
|
+
availableTools: string[];
|
|
27
|
+
permissions: string[];
|
|
28
|
+
}
|
|
29
|
+
/** Score breakdown for a single candidate. */
|
|
30
|
+
export interface ScoreBreakdown {
|
|
31
|
+
capabilities: number;
|
|
32
|
+
model: number;
|
|
33
|
+
tools: number;
|
|
34
|
+
permissions: number;
|
|
35
|
+
}
|
|
36
|
+
/** Per-candidate score entry. */
|
|
37
|
+
export interface CandidateScore {
|
|
38
|
+
name: string;
|
|
39
|
+
total: number;
|
|
40
|
+
breakdown: ScoreBreakdown;
|
|
41
|
+
disqualified: boolean;
|
|
42
|
+
}
|
|
43
|
+
/** Result of routing — null if no suitable candidate found. */
|
|
44
|
+
export interface RoutingResult {
|
|
45
|
+
selected: HarnessCandidate;
|
|
46
|
+
score: number;
|
|
47
|
+
scoreBreakdown: ScoreBreakdown;
|
|
48
|
+
scores: CandidateScore[];
|
|
49
|
+
candidates: HarnessCandidate[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Select the best harness candidate for a set of task requirements.
|
|
53
|
+
* Returns null if no candidate meets the threshold (50).
|
|
54
|
+
*/
|
|
55
|
+
export declare function selectHarness(requirements: Partial<TaskRequirements>, candidates: HarnessCandidate[]): RoutingResult | null;
|
|
56
|
+
/**
|
|
57
|
+
* Enrich discovery results with capabilities from the known harness registry.
|
|
58
|
+
* Merges discovered capabilities with known capabilities, deduplicating.
|
|
59
|
+
*/
|
|
60
|
+
export declare function enrichDiscoveryWithCapabilities(discoveries: HarnessDiscoveryResult[]): HarnessDiscoveryResult[];
|
|
61
|
+
interface TaskDefLike {
|
|
62
|
+
kind: string;
|
|
63
|
+
execution?: {
|
|
64
|
+
harness?: string;
|
|
65
|
+
model?: string;
|
|
66
|
+
permissions?: string[];
|
|
67
|
+
[key: string]: unknown;
|
|
68
|
+
};
|
|
69
|
+
[key: string]: unknown;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Build TaskRequirements from a TaskDef's execution hints and kind.
|
|
73
|
+
*/
|
|
74
|
+
export declare function buildTaskRequirements(taskDef: Partial<TaskDefLike>): TaskRequirements;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=capabilityRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilityRouter.d.ts","sourceRoot":"","sources":["../../src/harness/capabilityRouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAQzE,wCAAwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;IAC1C,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kCAAkC;IAClC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAgGD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACvC,UAAU,EAAE,gBAAgB,EAAE,GAC7B,aAAa,GAAG,IAAI,CAwCtB;AAmBD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,sBAAsB,EAAE,GACpC,sBAAsB,EAAE,CAQ1B;AAMD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,gBAAgB,CAmBlB"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Capability-based task routing (GAP-HADAPT-001).
|
|
4
|
+
*
|
|
5
|
+
* Scores harness candidates against task requirements and selects
|
|
6
|
+
* the best match. Pure functions, no side effects.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.selectHarness = selectHarness;
|
|
10
|
+
exports.enrichDiscoveryWithCapabilities = enrichDiscoveryWithCapabilities;
|
|
11
|
+
exports.buildTaskRequirements = buildTaskRequirements;
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
const babysitter_sdk_1 = require("@a5c-ai/babysitter-sdk");
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Scoring weights
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
const WEIGHT_CAPABILITIES = 40;
|
|
18
|
+
const WEIGHT_MODEL = 25;
|
|
19
|
+
const WEIGHT_TOOLS = 20;
|
|
20
|
+
const WEIGHT_PERMISSIONS = 15;
|
|
21
|
+
const SCORE_THRESHOLD = 50;
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
// Core routing
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
function scoreCandidate(requirements, candidate) {
|
|
26
|
+
const breakdown = {
|
|
27
|
+
capabilities: 0,
|
|
28
|
+
model: 0,
|
|
29
|
+
tools: 0,
|
|
30
|
+
permissions: 0,
|
|
31
|
+
};
|
|
32
|
+
// -- Capabilities (hard requirement: all must be present) --
|
|
33
|
+
const reqCaps = requirements.requiredCapabilities;
|
|
34
|
+
if (reqCaps.length === 0) {
|
|
35
|
+
breakdown.capabilities = WEIGHT_CAPABILITIES;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const hasAll = reqCaps.every((c) => candidate.capabilities.includes(c));
|
|
39
|
+
if (!hasAll) {
|
|
40
|
+
return { name: candidate.name, total: 0, breakdown, disqualified: true };
|
|
41
|
+
}
|
|
42
|
+
breakdown.capabilities = WEIGHT_CAPABILITIES;
|
|
43
|
+
}
|
|
44
|
+
// -- Model (exact > partial family > no match) --
|
|
45
|
+
if (!requirements.preferredModel) {
|
|
46
|
+
breakdown.model = WEIGHT_MODEL;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const preferred = requirements.preferredModel.toLowerCase();
|
|
50
|
+
const hasExact = candidate.supportedModels.some((m) => m.toLowerCase() === preferred);
|
|
51
|
+
if (hasExact) {
|
|
52
|
+
breakdown.model = WEIGHT_MODEL;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Partial: same family prefix (e.g., "claude-opus" matches "claude-opus-4-0")
|
|
56
|
+
const family = preferred.split("-").slice(0, 2).join("-");
|
|
57
|
+
const hasFamily = candidate.supportedModels.some((m) => m.toLowerCase().startsWith(family));
|
|
58
|
+
breakdown.model = hasFamily ? Math.round(WEIGHT_MODEL * 0.6) : 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// -- Tools (ratio of matched) --
|
|
62
|
+
const reqTools = requirements.requiredTools;
|
|
63
|
+
if (reqTools.length === 0) {
|
|
64
|
+
breakdown.tools = WEIGHT_TOOLS;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const matched = reqTools.filter((t) => candidate.availableTools.some((at) => at.toLowerCase() === t.toLowerCase())).length;
|
|
68
|
+
breakdown.tools = Math.round((matched / reqTools.length) * WEIGHT_TOOLS);
|
|
69
|
+
}
|
|
70
|
+
// -- Permissions (ratio of matched) --
|
|
71
|
+
const reqPerms = requirements.requiredPermissions;
|
|
72
|
+
if (reqPerms.length === 0) {
|
|
73
|
+
breakdown.permissions = WEIGHT_PERMISSIONS;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const matched = reqPerms.filter((p) => candidate.permissions.some((cp) => cp.toLowerCase() === p.toLowerCase())).length;
|
|
77
|
+
breakdown.permissions = Math.round((matched / reqPerms.length) * WEIGHT_PERMISSIONS);
|
|
78
|
+
}
|
|
79
|
+
const total = breakdown.capabilities +
|
|
80
|
+
breakdown.model +
|
|
81
|
+
breakdown.tools +
|
|
82
|
+
breakdown.permissions;
|
|
83
|
+
return { name: candidate.name, total, breakdown, disqualified: false };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Select the best harness candidate for a set of task requirements.
|
|
87
|
+
* Returns null if no candidate meets the threshold (50).
|
|
88
|
+
*/
|
|
89
|
+
function selectHarness(requirements, candidates) {
|
|
90
|
+
if (candidates.length === 0)
|
|
91
|
+
return null;
|
|
92
|
+
const fullReqs = {
|
|
93
|
+
requiredCapabilities: requirements.requiredCapabilities ?? [],
|
|
94
|
+
preferredModel: requirements.preferredModel,
|
|
95
|
+
requiredTools: requirements.requiredTools ?? [],
|
|
96
|
+
requiredPermissions: requirements.requiredPermissions ?? [],
|
|
97
|
+
preferredHarness: requirements.preferredHarness,
|
|
98
|
+
};
|
|
99
|
+
const scores = candidates.map((c) => scoreCandidate(fullReqs, c));
|
|
100
|
+
// Filter out disqualified candidates
|
|
101
|
+
const eligible = scores.filter((s) => !s.disqualified);
|
|
102
|
+
if (eligible.length === 0)
|
|
103
|
+
return null;
|
|
104
|
+
// Sort by total score descending; preferred harness breaks ties
|
|
105
|
+
eligible.sort((a, b) => {
|
|
106
|
+
if (b.total !== a.total)
|
|
107
|
+
return b.total - a.total;
|
|
108
|
+
// Tiebreaker: prefer the harness named in preferredHarness
|
|
109
|
+
if (fullReqs.preferredHarness) {
|
|
110
|
+
if (a.name === fullReqs.preferredHarness)
|
|
111
|
+
return -1;
|
|
112
|
+
if (b.name === fullReqs.preferredHarness)
|
|
113
|
+
return 1;
|
|
114
|
+
}
|
|
115
|
+
return 0;
|
|
116
|
+
});
|
|
117
|
+
const best = eligible[0];
|
|
118
|
+
if (best.total < SCORE_THRESHOLD)
|
|
119
|
+
return null;
|
|
120
|
+
const selected = candidates.find((c) => c.name === best.name);
|
|
121
|
+
return {
|
|
122
|
+
selected,
|
|
123
|
+
score: best.total,
|
|
124
|
+
scoreBreakdown: best.breakdown,
|
|
125
|
+
scores,
|
|
126
|
+
candidates,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
// Discovery enrichment
|
|
131
|
+
// ---------------------------------------------------------------------------
|
|
132
|
+
/** Known capability mappings for harnesses not captured in discovery. */
|
|
133
|
+
const KNOWN_CAPABILITY_MAP = {};
|
|
134
|
+
// Build map from KNOWN_HARNESSES
|
|
135
|
+
for (const spec of babysitter_sdk_1.KNOWN_HARNESSES) {
|
|
136
|
+
// All known harnesses support Programmatic invocation
|
|
137
|
+
const caps = [...spec.capabilities];
|
|
138
|
+
if (!caps.includes(types_1.HarnessCapability.Programmatic)) {
|
|
139
|
+
caps.unshift(types_1.HarnessCapability.Programmatic);
|
|
140
|
+
}
|
|
141
|
+
KNOWN_CAPABILITY_MAP[spec.name] = caps;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Enrich discovery results with capabilities from the known harness registry.
|
|
145
|
+
* Merges discovered capabilities with known capabilities, deduplicating.
|
|
146
|
+
*/
|
|
147
|
+
function enrichDiscoveryWithCapabilities(discoveries) {
|
|
148
|
+
return discoveries.map((d) => {
|
|
149
|
+
const known = KNOWN_CAPABILITY_MAP[d.name];
|
|
150
|
+
if (!known)
|
|
151
|
+
return d;
|
|
152
|
+
const merged = [...new Set([...d.capabilities, ...known])];
|
|
153
|
+
return { ...d, capabilities: merged };
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Build TaskRequirements from a TaskDef's execution hints and kind.
|
|
158
|
+
*/
|
|
159
|
+
function buildTaskRequirements(taskDef) {
|
|
160
|
+
const exec = taskDef.execution ?? {};
|
|
161
|
+
const requiredCapabilities = [];
|
|
162
|
+
// Map task kind to required capabilities
|
|
163
|
+
if (taskDef.kind === "breakpoint") {
|
|
164
|
+
requiredCapabilities.push(types_1.HarnessCapability.HeadlessPrompt);
|
|
165
|
+
}
|
|
166
|
+
if (taskDef.kind === "orchestrator_task") {
|
|
167
|
+
requiredCapabilities.push(types_1.HarnessCapability.Programmatic);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
requiredCapabilities,
|
|
171
|
+
preferredModel: exec.model,
|
|
172
|
+
requiredTools: [],
|
|
173
|
+
requiredPermissions: (exec.permissions) ?? [],
|
|
174
|
+
preferredHarness: exec.harness,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GAP-HADAPT-004: Harness Fallback Chains.
|
|
3
|
+
*
|
|
4
|
+
* Defines ordered fallback sequences for harness resolution.
|
|
5
|
+
* When a primary harness fails or is unavailable, the chain
|
|
6
|
+
* determines the next harness to try.
|
|
7
|
+
*/
|
|
8
|
+
export interface FallbackChain {
|
|
9
|
+
/** Ordered list of harness names (primary first). */
|
|
10
|
+
harnesses: string[];
|
|
11
|
+
/** Maximum number of retries (fallback attempts). */
|
|
12
|
+
maxRetries: number;
|
|
13
|
+
}
|
|
14
|
+
export interface FallbackChainOptions {
|
|
15
|
+
/** Maximum retries. Clamped to chain.length - 1. */
|
|
16
|
+
maxRetries?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface FallbackResolution {
|
|
19
|
+
/** The harness to use, or null if all exhausted. */
|
|
20
|
+
harness: string | null;
|
|
21
|
+
/** 1-based attempt number. */
|
|
22
|
+
attempt: number;
|
|
23
|
+
/** Whether this is a fallback (not the primary). */
|
|
24
|
+
isFallback: boolean;
|
|
25
|
+
/** Whether all harnesses in the chain have been exhausted. */
|
|
26
|
+
exhausted: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a fallback chain from an ordered list of harness names.
|
|
30
|
+
*
|
|
31
|
+
* Duplicates are removed (first occurrence wins).
|
|
32
|
+
* maxRetries defaults to chain.length - 1 (try every harness once).
|
|
33
|
+
*/
|
|
34
|
+
export declare function createFallbackChain(harnesses: string[], options?: FallbackChainOptions): FallbackChain;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve which harness to use given a chain and previously failed harnesses.
|
|
37
|
+
*
|
|
38
|
+
* Returns the first harness in the chain that hasn't failed yet,
|
|
39
|
+
* respecting the maxRetries limit.
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveFallbackHarness(chain: FallbackChain, failedHarnesses: string[]): FallbackResolution;
|
|
42
|
+
//# sourceMappingURL=fallbackChains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallbackChains.d.ts","sourceRoot":"","sources":["../../src/harness/fallbackChains.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAC;CACpB;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAYf;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,eAAe,EAAE,MAAM,EAAE,GACxB,kBAAkB,CAiCpB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GAP-HADAPT-004: Harness Fallback Chains.
|
|
4
|
+
*
|
|
5
|
+
* Defines ordered fallback sequences for harness resolution.
|
|
6
|
+
* When a primary harness fails or is unavailable, the chain
|
|
7
|
+
* determines the next harness to try.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.createFallbackChain = createFallbackChain;
|
|
11
|
+
exports.resolveFallbackHarness = resolveFallbackHarness;
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Core
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Create a fallback chain from an ordered list of harness names.
|
|
17
|
+
*
|
|
18
|
+
* Duplicates are removed (first occurrence wins).
|
|
19
|
+
* maxRetries defaults to chain.length - 1 (try every harness once).
|
|
20
|
+
*/
|
|
21
|
+
function createFallbackChain(harnesses, options) {
|
|
22
|
+
// Deduplicate preserving order
|
|
23
|
+
const unique = [...new Set(harnesses)];
|
|
24
|
+
const maxPossible = Math.max(0, unique.length - 1);
|
|
25
|
+
const maxRetries = options?.maxRetries !== undefined
|
|
26
|
+
? Math.min(options.maxRetries, maxPossible)
|
|
27
|
+
: maxPossible;
|
|
28
|
+
return {
|
|
29
|
+
harnesses: unique,
|
|
30
|
+
maxRetries,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve which harness to use given a chain and previously failed harnesses.
|
|
35
|
+
*
|
|
36
|
+
* Returns the first harness in the chain that hasn't failed yet,
|
|
37
|
+
* respecting the maxRetries limit.
|
|
38
|
+
*/
|
|
39
|
+
function resolveFallbackHarness(chain, failedHarnesses) {
|
|
40
|
+
const failedSet = new Set(failedHarnesses);
|
|
41
|
+
const attempt = failedHarnesses.length + 1;
|
|
42
|
+
// Check retry limit: attempts beyond maxRetries + 1 are exhausted
|
|
43
|
+
if (failedHarnesses.length > chain.maxRetries) {
|
|
44
|
+
return {
|
|
45
|
+
harness: null,
|
|
46
|
+
attempt,
|
|
47
|
+
isFallback: attempt > 1,
|
|
48
|
+
exhausted: true,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// Find the first non-failed harness in chain order
|
|
52
|
+
for (const harness of chain.harnesses) {
|
|
53
|
+
if (!failedSet.has(harness)) {
|
|
54
|
+
return {
|
|
55
|
+
harness,
|
|
56
|
+
attempt,
|
|
57
|
+
isFallback: harness !== chain.harnesses[0],
|
|
58
|
+
exhausted: false,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// All harnesses in the chain have failed
|
|
63
|
+
return {
|
|
64
|
+
harness: null,
|
|
65
|
+
attempt,
|
|
66
|
+
isFallback: true,
|
|
67
|
+
exhausted: true,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host Contract Layer (GAP-REMOTE-007).
|
|
3
|
+
*
|
|
4
|
+
* Defines the formal contract between babysitter and host environments.
|
|
5
|
+
* Pure functions for resolving, validating, and building host manifests.
|
|
6
|
+
*/
|
|
7
|
+
import type { HarnessAdapter, HarnessDiscoveryResult, HarnessCapability } from "./types";
|
|
8
|
+
export type CommunicationProtocol = "stdio" | "websocket" | "http" | "mcp";
|
|
9
|
+
export interface HostLifecycleSupport {
|
|
10
|
+
supportsSessionBinding: boolean;
|
|
11
|
+
supportsStopHook: boolean;
|
|
12
|
+
supportsGracefulShutdown: boolean;
|
|
13
|
+
supportsHealthCheck: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface HostLimits {
|
|
16
|
+
maxConcurrentSessions?: number;
|
|
17
|
+
maxPromptTokens?: number;
|
|
18
|
+
timeoutMs?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface HostCapabilityManifest {
|
|
21
|
+
harnessName: string;
|
|
22
|
+
version?: string;
|
|
23
|
+
capabilities: HarnessCapability[];
|
|
24
|
+
supportedModels: string[];
|
|
25
|
+
communication: {
|
|
26
|
+
protocol: CommunicationProtocol;
|
|
27
|
+
supportsStreaming: boolean;
|
|
28
|
+
supportsJsonMode: boolean;
|
|
29
|
+
};
|
|
30
|
+
lifecycle: HostLifecycleSupport;
|
|
31
|
+
limits: HostLimits;
|
|
32
|
+
}
|
|
33
|
+
export interface HostContractViolation {
|
|
34
|
+
field: string;
|
|
35
|
+
requirement: string;
|
|
36
|
+
actual: string;
|
|
37
|
+
severity: "error" | "warning";
|
|
38
|
+
}
|
|
39
|
+
export interface HostContractValidationResult {
|
|
40
|
+
valid: boolean;
|
|
41
|
+
violations: HostContractViolation[];
|
|
42
|
+
capabilities: HarnessCapability[];
|
|
43
|
+
}
|
|
44
|
+
/** Optional requirements to validate a manifest against. */
|
|
45
|
+
export interface ManifestRequirements {
|
|
46
|
+
requiredCapabilities?: HarnessCapability[];
|
|
47
|
+
minTimeoutMs?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolve a HarnessAdapter into a HostCapabilityManifest.
|
|
51
|
+
* Uses the adapter's getCapabilities() if available, otherwise defaults.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolveHostCapabilities(adapter: HarnessAdapter): HostCapabilityManifest;
|
|
54
|
+
/**
|
|
55
|
+
* Validate a HostCapabilityManifest for structural correctness and
|
|
56
|
+
* optional conformance to task requirements.
|
|
57
|
+
*/
|
|
58
|
+
export declare function validateHostContract(manifest: HostCapabilityManifest, requirements?: ManifestRequirements): HostContractValidationResult;
|
|
59
|
+
/**
|
|
60
|
+
* Construct a HostCapabilityManifest from a HarnessDiscoveryResult.
|
|
61
|
+
*/
|
|
62
|
+
export declare function buildManifestFromDiscovery(discovery: HarnessDiscoveryResult): HostCapabilityManifest;
|
|
63
|
+
//# sourceMappingURL=hostContract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostContract.d.ts","sourceRoot":"","sources":["../../src/harness/hostContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAOzF,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3E,MAAM,WAAW,oBAAoB;IACnC,sBAAsB,EAAE,OAAO,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wBAAwB,EAAE,OAAO,CAAC;IAClC,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE;QACb,QAAQ,EAAE,qBAAqB,CAAC;QAChC,iBAAiB,EAAE,OAAO,CAAC;QAC3B,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,SAAS,EAAE,oBAAoB,CAAC;IAChC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED,4DAA4D;AAC5D,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,GACtB,sBAAsB,CAuBxB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,sBAAsB,EAChC,YAAY,CAAC,EAAE,oBAAoB,GAClC,4BAA4B,CAuE9B;AAMD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,sBAAsB,GAChC,sBAAsB,CAsBxB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Host Contract Layer (GAP-REMOTE-007).
|
|
4
|
+
*
|
|
5
|
+
* Defines the formal contract between babysitter and host environments.
|
|
6
|
+
* Pure functions for resolving, validating, and building host manifests.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.resolveHostCapabilities = resolveHostCapabilities;
|
|
10
|
+
exports.validateHostContract = validateHostContract;
|
|
11
|
+
exports.buildManifestFromDiscovery = buildManifestFromDiscovery;
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Resolve: adapter → manifest
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
/**
|
|
17
|
+
* Resolve a HarnessAdapter into a HostCapabilityManifest.
|
|
18
|
+
* Uses the adapter's getCapabilities() if available, otherwise defaults.
|
|
19
|
+
*/
|
|
20
|
+
function resolveHostCapabilities(adapter) {
|
|
21
|
+
const caps = adapter.getCapabilities?.() ?? [];
|
|
22
|
+
const hasCapability = (cap) => caps.includes(cap);
|
|
23
|
+
return {
|
|
24
|
+
harnessName: adapter.name,
|
|
25
|
+
version: undefined,
|
|
26
|
+
capabilities: caps,
|
|
27
|
+
supportedModels: [],
|
|
28
|
+
communication: {
|
|
29
|
+
protocol: "stdio",
|
|
30
|
+
supportsStreaming: hasCapability(types_1.HarnessCapability.Programmatic),
|
|
31
|
+
supportsJsonMode: hasCapability(types_1.HarnessCapability.Programmatic),
|
|
32
|
+
},
|
|
33
|
+
lifecycle: {
|
|
34
|
+
supportsSessionBinding: hasCapability(types_1.HarnessCapability.SessionBinding),
|
|
35
|
+
supportsStopHook: hasCapability(types_1.HarnessCapability.StopHook),
|
|
36
|
+
supportsGracefulShutdown: hasCapability(types_1.HarnessCapability.StopHook),
|
|
37
|
+
supportsHealthCheck: false,
|
|
38
|
+
},
|
|
39
|
+
limits: {},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
// Validate: manifest → validation result
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
/**
|
|
46
|
+
* Validate a HostCapabilityManifest for structural correctness and
|
|
47
|
+
* optional conformance to task requirements.
|
|
48
|
+
*/
|
|
49
|
+
function validateHostContract(manifest, requirements) {
|
|
50
|
+
const violations = [];
|
|
51
|
+
// Required fields
|
|
52
|
+
if (!manifest.harnessName) {
|
|
53
|
+
violations.push({
|
|
54
|
+
field: "harnessName",
|
|
55
|
+
requirement: "harnessName must be a non-empty string",
|
|
56
|
+
actual: String(manifest.harnessName ?? "undefined"),
|
|
57
|
+
severity: "error",
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
// Capability-lifecycle consistency
|
|
61
|
+
const hasCap = (cap) => manifest.capabilities.includes(cap);
|
|
62
|
+
if (hasCap(types_1.HarnessCapability.SessionBinding) && !manifest.lifecycle.supportsSessionBinding) {
|
|
63
|
+
violations.push({
|
|
64
|
+
field: "lifecycle.supportsSessionBinding",
|
|
65
|
+
requirement: "SessionBinding capability declared but lifecycle.supportsSessionBinding is false",
|
|
66
|
+
actual: "false",
|
|
67
|
+
severity: "error",
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (hasCap(types_1.HarnessCapability.StopHook) && !manifest.lifecycle.supportsStopHook) {
|
|
71
|
+
violations.push({
|
|
72
|
+
field: "lifecycle.supportsStopHook",
|
|
73
|
+
requirement: "StopHook capability declared but lifecycle.supportsStopHook is false",
|
|
74
|
+
actual: "false",
|
|
75
|
+
severity: "error",
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// Task requirements validation
|
|
79
|
+
if (requirements) {
|
|
80
|
+
if (requirements.requiredCapabilities) {
|
|
81
|
+
for (const cap of requirements.requiredCapabilities) {
|
|
82
|
+
if (!hasCap(cap)) {
|
|
83
|
+
violations.push({
|
|
84
|
+
field: "capabilities",
|
|
85
|
+
requirement: `Required capability: ${cap}`,
|
|
86
|
+
actual: `Missing: ${cap}`,
|
|
87
|
+
severity: "error",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (requirements.minTimeoutMs != null &&
|
|
93
|
+
manifest.limits.timeoutMs != null &&
|
|
94
|
+
manifest.limits.timeoutMs < requirements.minTimeoutMs) {
|
|
95
|
+
violations.push({
|
|
96
|
+
field: "limits.timeoutMs",
|
|
97
|
+
requirement: `Minimum timeout: ${requirements.minTimeoutMs}ms`,
|
|
98
|
+
actual: `${manifest.limits.timeoutMs}ms`,
|
|
99
|
+
severity: "error",
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
valid: violations.filter((v) => v.severity === "error").length === 0,
|
|
105
|
+
violations,
|
|
106
|
+
capabilities: manifest.capabilities,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
// Build: discovery result → manifest
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
/**
|
|
113
|
+
* Construct a HostCapabilityManifest from a HarnessDiscoveryResult.
|
|
114
|
+
*/
|
|
115
|
+
function buildManifestFromDiscovery(discovery) {
|
|
116
|
+
const caps = discovery.capabilities ?? [];
|
|
117
|
+
const hasCap = (cap) => caps.includes(cap);
|
|
118
|
+
return {
|
|
119
|
+
harnessName: discovery.name,
|
|
120
|
+
version: discovery.version,
|
|
121
|
+
capabilities: caps,
|
|
122
|
+
supportedModels: [],
|
|
123
|
+
communication: {
|
|
124
|
+
protocol: "stdio",
|
|
125
|
+
supportsStreaming: hasCap(types_1.HarnessCapability.Programmatic) || discovery.installed,
|
|
126
|
+
supportsJsonMode: hasCap(types_1.HarnessCapability.Programmatic) || discovery.installed,
|
|
127
|
+
},
|
|
128
|
+
lifecycle: {
|
|
129
|
+
supportsSessionBinding: hasCap(types_1.HarnessCapability.SessionBinding),
|
|
130
|
+
supportsStopHook: hasCap(types_1.HarnessCapability.StopHook),
|
|
131
|
+
supportsGracefulShutdown: hasCap(types_1.HarnessCapability.StopHook),
|
|
132
|
+
supportsHealthCheck: false,
|
|
133
|
+
},
|
|
134
|
+
limits: {},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type { HarnessAdapter, SessionBindOptions, SessionBindResult, HookHandlerArgs, HarnessDiscoveryResult, CallerHarnessResult, HarnessInvokeOptions, HarnessInvokeResult, HarnessInstallOptions, HarnessInstallResult, AgentCoreSessionOptions, AgentCorePromptResult, AgentCoreSessionEvent, StreamingOutputCallback, StreamingLineCallback, StreamingOutputOptions, } from "./types";
|
|
2
|
+
export { HarnessCapability } from "./types";
|
|
3
|
+
export { discoverHarnesses, detectCallerHarness, checkCliAvailable, KNOWN_HARNESSES, detectAdapter, getAdapterByName, listSupportedHarnesses, getAdapter, setAdapter, resetAdapter, } from "@a5c-ai/babysitter-sdk";
|
|
4
|
+
export { createAgentCoreToolDefinitions, disposeAgentCoreToolDefinitions, type AgenticToolOptions, type CustomToolDefinition, AGENTIC_TOOL_NAMES, stripHtmlTags, extractTextFromHtml, filterByRelevance, parseSearchResults, } from "@a5c-ai/agent-core";
|
|
5
|
+
export { invokeHarness, buildHarnessArgs, HARNESS_CLI_MAP } from "./invoker";
|
|
6
|
+
export { buildLaunchSpec } from "./invoker/launch";
|
|
7
|
+
export { createAgentCoreSession, type AgentCoreEventListener } from "@a5c-ai/agent-core";
|
|
8
|
+
export type { AgentCoreSessionHandle } from "@a5c-ai/agent-core";
|
|
9
|
+
export * as amux from "./amux";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACzF,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.amux = exports.createAgentCoreSession = exports.buildLaunchSpec = exports.HARNESS_CLI_MAP = exports.buildHarnessArgs = exports.invokeHarness = exports.parseSearchResults = exports.filterByRelevance = exports.extractTextFromHtml = exports.stripHtmlTags = exports.AGENTIC_TOOL_NAMES = exports.disposeAgentCoreToolDefinitions = exports.createAgentCoreToolDefinitions = exports.resetAdapter = exports.setAdapter = exports.getAdapter = exports.listSupportedHarnesses = exports.getAdapterByName = exports.detectAdapter = exports.KNOWN_HARNESSES = exports.checkCliAvailable = exports.detectCallerHarness = exports.discoverHarnesses = exports.HarnessCapability = void 0;
|
|
37
|
+
var types_1 = require("./types");
|
|
38
|
+
Object.defineProperty(exports, "HarnessCapability", { enumerable: true, get: function () { return types_1.HarnessCapability; } });
|
|
39
|
+
var babysitter_sdk_1 = require("@a5c-ai/babysitter-sdk");
|
|
40
|
+
Object.defineProperty(exports, "discoverHarnesses", { enumerable: true, get: function () { return babysitter_sdk_1.discoverHarnesses; } });
|
|
41
|
+
Object.defineProperty(exports, "detectCallerHarness", { enumerable: true, get: function () { return babysitter_sdk_1.detectCallerHarness; } });
|
|
42
|
+
Object.defineProperty(exports, "checkCliAvailable", { enumerable: true, get: function () { return babysitter_sdk_1.checkCliAvailable; } });
|
|
43
|
+
Object.defineProperty(exports, "KNOWN_HARNESSES", { enumerable: true, get: function () { return babysitter_sdk_1.KNOWN_HARNESSES; } });
|
|
44
|
+
Object.defineProperty(exports, "detectAdapter", { enumerable: true, get: function () { return babysitter_sdk_1.detectAdapter; } });
|
|
45
|
+
Object.defineProperty(exports, "getAdapterByName", { enumerable: true, get: function () { return babysitter_sdk_1.getAdapterByName; } });
|
|
46
|
+
Object.defineProperty(exports, "listSupportedHarnesses", { enumerable: true, get: function () { return babysitter_sdk_1.listSupportedHarnesses; } });
|
|
47
|
+
Object.defineProperty(exports, "getAdapter", { enumerable: true, get: function () { return babysitter_sdk_1.getAdapter; } });
|
|
48
|
+
Object.defineProperty(exports, "setAdapter", { enumerable: true, get: function () { return babysitter_sdk_1.setAdapter; } });
|
|
49
|
+
Object.defineProperty(exports, "resetAdapter", { enumerable: true, get: function () { return babysitter_sdk_1.resetAdapter; } });
|
|
50
|
+
var agent_core_1 = require("@a5c-ai/agent-core");
|
|
51
|
+
Object.defineProperty(exports, "createAgentCoreToolDefinitions", { enumerable: true, get: function () { return agent_core_1.createAgentCoreToolDefinitions; } });
|
|
52
|
+
Object.defineProperty(exports, "disposeAgentCoreToolDefinitions", { enumerable: true, get: function () { return agent_core_1.disposeAgentCoreToolDefinitions; } });
|
|
53
|
+
Object.defineProperty(exports, "AGENTIC_TOOL_NAMES", { enumerable: true, get: function () { return agent_core_1.AGENTIC_TOOL_NAMES; } });
|
|
54
|
+
Object.defineProperty(exports, "stripHtmlTags", { enumerable: true, get: function () { return agent_core_1.stripHtmlTags; } });
|
|
55
|
+
Object.defineProperty(exports, "extractTextFromHtml", { enumerable: true, get: function () { return agent_core_1.extractTextFromHtml; } });
|
|
56
|
+
Object.defineProperty(exports, "filterByRelevance", { enumerable: true, get: function () { return agent_core_1.filterByRelevance; } });
|
|
57
|
+
Object.defineProperty(exports, "parseSearchResults", { enumerable: true, get: function () { return agent_core_1.parseSearchResults; } });
|
|
58
|
+
var invoker_1 = require("./invoker");
|
|
59
|
+
Object.defineProperty(exports, "invokeHarness", { enumerable: true, get: function () { return invoker_1.invokeHarness; } });
|
|
60
|
+
Object.defineProperty(exports, "buildHarnessArgs", { enumerable: true, get: function () { return invoker_1.buildHarnessArgs; } });
|
|
61
|
+
Object.defineProperty(exports, "HARNESS_CLI_MAP", { enumerable: true, get: function () { return invoker_1.HARNESS_CLI_MAP; } });
|
|
62
|
+
var launch_1 = require("./invoker/launch");
|
|
63
|
+
Object.defineProperty(exports, "buildLaunchSpec", { enumerable: true, get: function () { return launch_1.buildLaunchSpec; } });
|
|
64
|
+
var agent_core_2 = require("@a5c-ai/agent-core");
|
|
65
|
+
Object.defineProperty(exports, "createAgentCoreSession", { enumerable: true, get: function () { return agent_core_2.createAgentCoreSession; } });
|
|
66
|
+
exports.amux = __importStar(require("./amux"));
|