@a5c-ai/genty-platform 5.1.1-staging.00ceebd28cf2
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/sessions.d.ts +17 -0
- package/dist/api/sessions.d.ts.map +1 -0
- package/dist/api/sessions.js +58 -0
- package/dist/api/utils.d.ts +28 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/api/utils.js +74 -0
- package/dist/breakpoints/analytics.d.ts +46 -0
- package/dist/breakpoints/analytics.d.ts.map +1 -0
- package/dist/breakpoints/analytics.js +64 -0
- package/dist/breakpoints/approvalChains.d.ts +68 -0
- package/dist/breakpoints/approvalChains.d.ts.map +1 -0
- package/dist/breakpoints/approvalChains.js +111 -0
- package/dist/breakpoints/delegation.d.ts +42 -0
- package/dist/breakpoints/delegation.d.ts.map +1 -0
- package/dist/breakpoints/delegation.js +199 -0
- package/dist/breakpoints/delegationTypes.d.ts +46 -0
- package/dist/breakpoints/delegationTypes.d.ts.map +1 -0
- package/dist/breakpoints/delegationTypes.js +10 -0
- package/dist/breakpoints/postures.d.ts +28 -0
- package/dist/breakpoints/postures.d.ts.map +1 -0
- package/dist/breakpoints/postures.js +100 -0
- package/dist/compression/compaction.d.ts +82 -0
- package/dist/compression/compaction.d.ts.map +1 -0
- package/dist/compression/compaction.js +310 -0
- package/dist/compression/compactionStrategy.d.ts +37 -0
- package/dist/compression/compactionStrategy.d.ts.map +1 -0
- package/dist/compression/compactionStrategy.js +52 -0
- package/dist/compression/compressionFamilies.d.ts +39 -0
- package/dist/compression/compressionFamilies.d.ts.map +1 -0
- package/dist/compression/compressionFamilies.js +123 -0
- package/dist/context/dynamic.d.ts +16 -0
- package/dist/context/dynamic.d.ts.map +1 -0
- package/dist/context/dynamic.js +55 -0
- package/dist/context/instructions.d.ts +15 -0
- package/dist/context/instructions.d.ts.map +1 -0
- package/dist/context/instructions.js +97 -0
- package/dist/cost/claudeCodeParser.d.ts +81 -0
- package/dist/cost/claudeCodeParser.d.ts.map +1 -0
- package/dist/cost/claudeCodeParser.js +232 -0
- package/dist/cost/collector.d.ts +42 -0
- package/dist/cost/collector.d.ts.map +1 -0
- package/dist/cost/collector.js +105 -0
- package/dist/cost/effectCost.d.ts +23 -0
- package/dist/cost/effectCost.d.ts.map +1 -0
- package/dist/cost/effectCost.js +26 -0
- package/dist/cost/index.d.ts +7 -0
- package/dist/cost/index.d.ts.map +1 -0
- package/dist/cost/index.js +28 -0
- package/dist/cost/journal.d.ts +40 -0
- package/dist/cost/journal.d.ts.map +1 -0
- package/dist/cost/journal.js +158 -0
- package/dist/cost/types.d.ts +172 -0
- package/dist/cost/types.d.ts.map +1 -0
- package/dist/cost/types.js +229 -0
- package/dist/daemon/automationExecutor.d.ts +16 -0
- package/dist/daemon/automationExecutor.d.ts.map +1 -0
- package/dist/daemon/automationExecutor.js +222 -0
- package/dist/daemon/config.d.ts +8 -0
- package/dist/daemon/config.d.ts.map +1 -0
- package/dist/daemon/config.js +245 -0
- package/dist/daemon/daemonLog.d.ts +13 -0
- package/dist/daemon/daemonLog.d.ts.map +1 -0
- package/dist/daemon/daemonLog.js +64 -0
- package/dist/daemon/durableQueue.d.ts +41 -0
- package/dist/daemon/durableQueue.d.ts.map +1 -0
- package/dist/daemon/durableQueue.js +183 -0
- package/dist/daemon/fileWatcher.d.ts +9 -0
- package/dist/daemon/fileWatcher.d.ts.map +1 -0
- package/dist/daemon/fileWatcher.js +144 -0
- package/dist/daemon/index.d.ts +9 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +26 -0
- package/dist/daemon/lifecycle.d.ts +12 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +257 -0
- package/dist/daemon/loop.d.ts +27 -0
- package/dist/daemon/loop.d.ts.map +1 -0
- package/dist/daemon/loop.js +387 -0
- package/dist/daemon/timerScheduler.d.ts +13 -0
- package/dist/daemon/timerScheduler.d.ts.map +1 -0
- package/dist/daemon/timerScheduler.js +212 -0
- package/dist/daemon/types.d.ts +122 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +25 -0
- package/dist/daemon/webhookListener.d.ts +6 -0
- package/dist/daemon/webhookListener.d.ts.map +1 -0
- package/dist/daemon/webhookListener.js +132 -0
- package/dist/extensions/discovery.d.ts +15 -0
- package/dist/extensions/discovery.d.ts.map +1 -0
- package/dist/extensions/discovery.js +119 -0
- package/dist/extensions/installer.d.ts +14 -0
- package/dist/extensions/installer.d.ts.map +1 -0
- package/dist/extensions/installer.js +100 -0
- package/dist/governance/authority.d.ts +68 -0
- package/dist/governance/authority.d.ts.map +1 -0
- package/dist/governance/authority.js +136 -0
- package/dist/governance/bridge.d.ts +17 -0
- package/dist/governance/bridge.d.ts.map +1 -0
- package/dist/governance/bridge.js +46 -0
- package/dist/governance/builtins.d.ts +25 -0
- package/dist/governance/builtins.d.ts.map +1 -0
- package/dist/governance/builtins.js +67 -0
- package/dist/governance/categories.d.ts +58 -0
- package/dist/governance/categories.d.ts.map +1 -0
- package/dist/governance/categories.js +120 -0
- package/dist/governance/decisionTrail.d.ts +60 -0
- package/dist/governance/decisionTrail.d.ts.map +1 -0
- package/dist/governance/decisionTrail.js +68 -0
- package/dist/governance/engine.d.ts +20 -0
- package/dist/governance/engine.d.ts.map +1 -0
- package/dist/governance/engine.js +124 -0
- package/dist/governance/index.d.ts +20 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +75 -0
- package/dist/governance/logging.d.ts +18 -0
- package/dist/governance/logging.d.ts.map +1 -0
- package/dist/governance/logging.js +83 -0
- package/dist/governance/mandate.d.ts +83 -0
- package/dist/governance/mandate.d.ts.map +1 -0
- package/dist/governance/mandate.js +180 -0
- package/dist/governance/permissionEvents.d.ts +51 -0
- package/dist/governance/permissionEvents.d.ts.map +1 -0
- package/dist/governance/permissionEvents.js +52 -0
- package/dist/governance/permissionPropagation.d.ts +18 -0
- package/dist/governance/permissionPropagation.d.ts.map +1 -0
- package/dist/governance/permissionPropagation.js +58 -0
- package/dist/governance/postureBridge.d.ts +17 -0
- package/dist/governance/postureBridge.d.ts.map +1 -0
- package/dist/governance/postureBridge.js +117 -0
- package/dist/governance/privacySettings.d.ts +31 -0
- package/dist/governance/privacySettings.d.ts.map +1 -0
- package/dist/governance/privacySettings.js +104 -0
- package/dist/governance/sandboxBridge.d.ts +49 -0
- package/dist/governance/sandboxBridge.d.ts.map +1 -0
- package/dist/governance/sandboxBridge.js +77 -0
- package/dist/governance/sandboxPolicy.d.ts +51 -0
- package/dist/governance/sandboxPolicy.d.ts.map +1 -0
- package/dist/governance/sandboxPolicy.js +177 -0
- package/dist/governance/types.d.ts +3 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +5 -0
- package/dist/harness/adapters/adapterBridge.d.ts +71 -0
- package/dist/harness/adapters/adapterBridge.d.ts.map +1 -0
- package/dist/harness/adapters/adapterBridge.js +117 -0
- package/dist/harness/adapters/adapterClientFactory.d.ts +29 -0
- package/dist/harness/adapters/adapterClientFactory.d.ts.map +1 -0
- package/dist/harness/adapters/adapterClientFactory.js +90 -0
- package/dist/harness/adapters/adapterEventEmitter.d.ts +51 -0
- package/dist/harness/adapters/adapterEventEmitter.d.ts.map +1 -0
- package/dist/harness/adapters/adapterEventEmitter.js +143 -0
- package/dist/harness/adapters/adapterEventMapper.d.ts +63 -0
- package/dist/harness/adapters/adapterEventMapper.d.ts.map +1 -0
- package/dist/harness/adapters/adapterEventMapper.js +100 -0
- package/dist/harness/adapters/adapterHarnessMap.d.ts +25 -0
- package/dist/harness/adapters/adapterHarnessMap.d.ts.map +1 -0
- package/dist/harness/adapters/adapterHarnessMap.js +55 -0
- package/dist/harness/adapters/adapterStdinReader.d.ts +45 -0
- package/dist/harness/adapters/adapterStdinReader.d.ts.map +1 -0
- package/dist/harness/adapters/adapterStdinReader.js +106 -0
- package/dist/harness/adapters/adapterTypes.d.ts +122 -0
- package/dist/harness/adapters/adapterTypes.d.ts.map +1 -0
- package/dist/harness/adapters/adapterTypes.js +11 -0
- package/dist/harness/adapters/index.d.ts +17 -0
- package/dist/harness/adapters/index.d.ts.map +1 -0
- package/dist/harness/adapters/index.js +34 -0
- package/dist/harness/backgroundTracker.d.ts +64 -0
- package/dist/harness/backgroundTracker.d.ts.map +1 -0
- package/dist/harness/backgroundTracker.js +107 -0
- package/dist/harness/budgetDowngrade.d.ts +12 -0
- package/dist/harness/budgetDowngrade.d.ts.map +1 -0
- package/dist/harness/budgetDowngrade.js +71 -0
- package/dist/harness/builtInHarness.d.ts +3 -0
- package/dist/harness/builtInHarness.d.ts.map +1 -0
- package/dist/harness/builtInHarness.js +18 -0
- package/dist/harness/capabilityRouter.d.ts +76 -0
- package/dist/harness/capabilityRouter.d.ts.map +1 -0
- package/dist/harness/capabilityRouter.js +176 -0
- package/dist/harness/circuitBreaker.d.ts +51 -0
- package/dist/harness/circuitBreaker.d.ts.map +1 -0
- package/dist/harness/circuitBreaker.js +110 -0
- package/dist/harness/concurrentEffects.d.ts +39 -0
- package/dist/harness/concurrentEffects.d.ts.map +1 -0
- package/dist/harness/concurrentEffects.js +90 -0
- package/dist/harness/effectRouting.d.ts +57 -0
- package/dist/harness/effectRouting.d.ts.map +1 -0
- package/dist/harness/effectRouting.js +130 -0
- package/dist/harness/extensionToolBridge.d.ts +13 -0
- package/dist/harness/extensionToolBridge.d.ts.map +1 -0
- package/dist/harness/extensionToolBridge.js +23 -0
- package/dist/harness/fallbackChains.d.ts +42 -0
- package/dist/harness/fallbackChains.d.ts.map +1 -0
- package/dist/harness/fallbackChains.js +69 -0
- package/dist/harness/gentySessionContext.d.ts +31 -0
- package/dist/harness/gentySessionContext.d.ts.map +1 -0
- package/dist/harness/gentySessionContext.js +49 -0
- package/dist/harness/gentySessionIntegration.d.ts +16 -0
- package/dist/harness/gentySessionIntegration.d.ts.map +1 -0
- package/dist/harness/gentySessionIntegration.js +66 -0
- package/dist/harness/hostContract.d.ts +69 -0
- package/dist/harness/hostContract.d.ts.map +1 -0
- package/dist/harness/hostContract.js +169 -0
- package/dist/harness/index.d.ts +25 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +122 -0
- package/dist/harness/internal/createRun/agent-core-loop.d.ts +43 -0
- package/dist/harness/internal/createRun/agent-core-loop.d.ts.map +1 -0
- package/dist/harness/internal/createRun/agent-core-loop.js +247 -0
- package/dist/harness/internal/createRun/askUserQuestion.d.ts +11 -0
- package/dist/harness/internal/createRun/askUserQuestion.d.ts.map +1 -0
- package/dist/harness/internal/createRun/askUserQuestion.js +162 -0
- package/dist/harness/internal/createRun/index.d.ts +25 -0
- package/dist/harness/internal/createRun/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/index.js +163 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts +7 -0
- package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/constants.js +17 -0
- package/dist/harness/internal/createRun/orchestration/dispatch.d.ts +23 -0
- package/dist/harness/internal/createRun/orchestration/dispatch.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/dispatch.js +135 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts +135 -0
- package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effects.js +904 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +21 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +80 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts +3 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/externalPhase.js +403 -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 +106 -0
- package/dist/harness/internal/createRun/orchestration/hookDecisionEffects.d.ts +32 -0
- package/dist/harness/internal/createRun/orchestration/hookDecisionEffects.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/hookDecisionEffects.js +76 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts +29 -0
- package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/index.js +370 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +3 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalPhase.js +656 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +27 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalTools.js +264 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts +17 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.js +23 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.d.ts +10 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/taskResult.js +67 -0
- package/dist/harness/internal/createRun/orchestration/types.d.ts +48 -0
- package/dist/harness/internal/createRun/orchestration/types.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/types.js +2 -0
- package/dist/harness/internal/createRun/orchestration/verbose.d.ts +7 -0
- package/dist/harness/internal/createRun/orchestration/verbose.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/verbose.js +240 -0
- package/dist/harness/internal/createRun/orchestration/workerSessionEnhancer.d.ts +4 -0
- package/dist/harness/internal/createRun/orchestration/workerSessionEnhancer.d.ts.map +1 -0
- package/dist/harness/internal/createRun/orchestration/workerSessionEnhancer.js +36 -0
- package/dist/harness/internal/createRun/output.d.ts +40 -0
- package/dist/harness/internal/createRun/output.d.ts.map +1 -0
- package/dist/harness/internal/createRun/output.js +467 -0
- package/dist/harness/internal/createRun/pi.d.ts +10 -0
- package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
- package/dist/harness/internal/createRun/pi.js +35 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts +5 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/agentOutput.js +113 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts +23 -0
- package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/delegation.js +176 -0
- package/dist/harness/internal/createRun/planProcess/external.d.ts +14 -0
- package/dist/harness/internal/createRun/planProcess/external.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/external.js +139 -0
- package/dist/harness/internal/createRun/planProcess/index.d.ts +12 -0
- package/dist/harness/internal/createRun/planProcess/index.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/index.js +24 -0
- package/dist/harness/internal/createRun/planProcess/paths.d.ts +7 -0
- package/dist/harness/internal/createRun/planProcess/paths.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/paths.js +98 -0
- package/dist/harness/internal/createRun/planProcess/phase.d.ts +6 -0
- package/dist/harness/internal/createRun/planProcess/phase.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phase.js +424 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +37 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +159 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts +25 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/phaseTypes.js +6 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts +22 -0
- package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/prompts.js +239 -0
- package/dist/harness/internal/createRun/planProcess/recovery.d.ts +18 -0
- package/dist/harness/internal/createRun/planProcess/recovery.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/recovery.js +205 -0
- package/dist/harness/internal/createRun/planProcess/runState.d.ts +40 -0
- package/dist/harness/internal/createRun/planProcess/runState.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/runState.js +179 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts +22 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/understandIntent.js +65 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts +4 -0
- package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validation.js +260 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +13 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationSource.js +345 -0
- package/dist/harness/internal/createRun/planProcess/validationText.d.ts +3 -0
- package/dist/harness/internal/createRun/planProcess/validationText.d.ts.map +1 -0
- package/dist/harness/internal/createRun/planProcess/validationText.js +145 -0
- package/dist/harness/internal/createRun/prompts.d.ts +59 -0
- package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
- package/dist/harness/internal/createRun/prompts.js +427 -0
- package/dist/harness/internal/createRun/resumeState.d.ts +28 -0
- package/dist/harness/internal/createRun/resumeState.d.ts.map +1 -0
- package/dist/harness/internal/createRun/resumeState.js +133 -0
- package/dist/harness/internal/createRun/utils.d.ts +184 -0
- package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
- package/dist/harness/internal/createRun/utils.js +218 -0
- package/dist/harness/internal.d.ts +13 -0
- package/dist/harness/internal.d.ts.map +1 -0
- package/dist/harness/internal.js +149 -0
- package/dist/harness/invoker/launch.d.ts +20 -0
- package/dist/harness/invoker/launch.d.ts.map +1 -0
- package/dist/harness/invoker/launch.js +23 -0
- package/dist/harness/invoker/processControl.d.ts +11 -0
- package/dist/harness/invoker/processControl.d.ts.map +1 -0
- package/dist/harness/invoker/processControl.js +50 -0
- package/dist/harness/invoker.d.ts +44 -0
- package/dist/harness/invoker.d.ts.map +1 -0
- package/dist/harness/invoker.js +341 -0
- package/dist/harness/lspIntegration.d.ts +48 -0
- package/dist/harness/lspIntegration.d.ts.map +1 -0
- package/dist/harness/lspIntegration.js +45 -0
- package/dist/harness/modeSelector.d.ts +50 -0
- package/dist/harness/modeSelector.d.ts.map +1 -0
- package/dist/harness/modeSelector.js +124 -0
- package/dist/harness/modelSelection.d.ts +37 -0
- package/dist/harness/modelSelection.d.ts.map +1 -0
- package/dist/harness/modelSelection.js +81 -0
- package/dist/harness/multiHarnessDispatch.d.ts +49 -0
- package/dist/harness/multiHarnessDispatch.d.ts.map +1 -0
- package/dist/harness/multiHarnessDispatch.js +73 -0
- package/dist/harness/oauthIntegration.d.ts +55 -0
- package/dist/harness/oauthIntegration.d.ts.map +1 -0
- package/dist/harness/oauthIntegration.js +84 -0
- package/dist/harness/operatorCommands.d.ts +38 -0
- package/dist/harness/operatorCommands.d.ts.map +1 -0
- package/dist/harness/operatorCommands.js +118 -0
- package/dist/harness/parallelFileOps.d.ts +56 -0
- package/dist/harness/parallelFileOps.d.ts.map +1 -0
- package/dist/harness/parallelFileOps.js +166 -0
- package/dist/harness/piSecureSandbox.d.ts +8 -0
- package/dist/harness/piSecureSandbox.d.ts.map +1 -0
- package/dist/harness/piSecureSandbox.js +366 -0
- package/dist/harness/piSecureSandboxTypes.d.ts +51 -0
- package/dist/harness/piSecureSandboxTypes.d.ts.map +1 -0
- package/dist/harness/piSecureSandboxTypes.js +6 -0
- package/dist/harness/piWrapper/compaction.d.ts +13 -0
- package/dist/harness/piWrapper/compaction.d.ts.map +1 -0
- package/dist/harness/piWrapper/compaction.js +38 -0
- package/dist/harness/piWrapper/instructionPrompts.d.ts +2 -0
- package/dist/harness/piWrapper/instructionPrompts.d.ts.map +1 -0
- package/dist/harness/piWrapper/instructionPrompts.js +97 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts +78 -0
- package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
- package/dist/harness/piWrapper/moduleSupport.js +207 -0
- package/dist/harness/piWrapper.d.ts +82 -0
- package/dist/harness/piWrapper.d.ts.map +1 -0
- package/dist/harness/piWrapper.js +406 -0
- package/dist/harness/planMode.d.ts +68 -0
- package/dist/harness/planMode.d.ts.map +1 -0
- package/dist/harness/planMode.js +145 -0
- package/dist/harness/profileOrchestration.d.ts +55 -0
- package/dist/harness/profileOrchestration.d.ts.map +1 -0
- package/dist/harness/profileOrchestration.js +61 -0
- package/dist/harness/selectionPolicies.d.ts +29 -0
- package/dist/harness/selectionPolicies.d.ts.map +1 -0
- package/dist/harness/selectionPolicies.js +165 -0
- package/dist/harness/streamingParallelism.d.ts +43 -0
- package/dist/harness/streamingParallelism.d.ts.map +1 -0
- package/dist/harness/streamingParallelism.js +113 -0
- package/dist/harness/streamingRenderer.d.ts +64 -0
- package/dist/harness/streamingRenderer.d.ts.map +1 -0
- package/dist/harness/streamingRenderer.js +85 -0
- package/dist/harness/types.d.ts +278 -0
- package/dist/harness/types.d.ts.map +1 -0
- package/dist/harness/types.js +34 -0
- package/dist/harness/websocketSession.d.ts +63 -0
- package/dist/harness/websocketSession.d.ts.map +1 -0
- package/dist/harness/websocketSession.js +113 -0
- package/dist/harness/worktreeIsolation.d.ts +39 -0
- package/dist/harness/worktreeIsolation.d.ts.map +1 -0
- package/dist/harness/worktreeIsolation.js +85 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/interaction/askUserQuestion/core.d.ts +8 -0
- package/dist/interaction/askUserQuestion/core.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion/core.js +112 -0
- package/dist/interaction/askUserQuestion/terminal.d.ts +15 -0
- package/dist/interaction/askUserQuestion/terminal.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion/terminal.js +128 -0
- package/dist/interaction/askUserQuestion.d.ts +10 -0
- package/dist/interaction/askUserQuestion.d.ts.map +1 -0
- package/dist/interaction/askUserQuestion.js +295 -0
- package/dist/interaction/askUserQuestionTypes.d.ts +31 -0
- package/dist/interaction/askUserQuestionTypes.d.ts.map +1 -0
- package/dist/interaction/askUserQuestionTypes.js +6 -0
- package/dist/interaction/commandDiscovery.d.ts +38 -0
- package/dist/interaction/commandDiscovery.d.ts.map +1 -0
- package/dist/interaction/commandDiscovery.js +106 -0
- package/dist/interaction/index.d.ts +11 -0
- package/dist/interaction/index.d.ts.map +1 -0
- package/dist/interaction/index.js +42 -0
- package/dist/interaction/interactionRouter.d.ts +25 -0
- package/dist/interaction/interactionRouter.d.ts.map +1 -0
- package/dist/interaction/interactionRouter.js +55 -0
- package/dist/interaction/model-switch.d.ts +16 -0
- package/dist/interaction/model-switch.d.ts.map +1 -0
- package/dist/interaction/model-switch.js +41 -0
- package/dist/interaction/permissionApprovalUi.d.ts +32 -0
- package/dist/interaction/permissionApprovalUi.d.ts.map +1 -0
- package/dist/interaction/permissionApprovalUi.js +96 -0
- package/dist/interaction/steering.d.ts +17 -0
- package/dist/interaction/steering.d.ts.map +1 -0
- package/dist/interaction/steering.js +41 -0
- package/dist/interaction/typedEffectPatterns.d.ts +55 -0
- package/dist/interaction/typedEffectPatterns.d.ts.map +1 -0
- package/dist/interaction/typedEffectPatterns.js +190 -0
- package/dist/mcp/channels/allowlist.d.ts +19 -0
- package/dist/mcp/channels/allowlist.d.ts.map +1 -0
- package/dist/mcp/channels/allowlist.js +140 -0
- package/dist/mcp/channels/channelManager.d.ts +64 -0
- package/dist/mcp/channels/channelManager.d.ts.map +1 -0
- package/dist/mcp/channels/channelManager.js +137 -0
- package/dist/mcp/channels/inboundQueue.d.ts +47 -0
- package/dist/mcp/channels/inboundQueue.d.ts.map +1 -0
- package/dist/mcp/channels/inboundQueue.js +96 -0
- package/dist/mcp/channels/index.d.ts +16 -0
- package/dist/mcp/channels/index.d.ts.map +1 -0
- package/dist/mcp/channels/index.js +38 -0
- package/dist/mcp/channels/outbound.d.ts +33 -0
- package/dist/mcp/channels/outbound.d.ts.map +1 -0
- package/dist/mcp/channels/outbound.js +94 -0
- package/dist/mcp/channels/permissionRelay.d.ts +62 -0
- package/dist/mcp/channels/permissionRelay.d.ts.map +1 -0
- package/dist/mcp/channels/permissionRelay.js +159 -0
- package/dist/mcp/channels/types.d.ts +135 -0
- package/dist/mcp/channels/types.d.ts.map +1 -0
- package/dist/mcp/channels/types.js +16 -0
- package/dist/mcp/client/auth.d.ts +57 -0
- package/dist/mcp/client/auth.d.ts.map +1 -0
- package/dist/mcp/client/auth.js +99 -0
- package/dist/mcp/client/config.d.ts +28 -0
- package/dist/mcp/client/config.d.ts.map +1 -0
- package/dist/mcp/client/config.js +144 -0
- package/dist/mcp/client/executor.d.ts +30 -0
- package/dist/mcp/client/executor.d.ts.map +1 -0
- package/dist/mcp/client/executor.js +61 -0
- package/dist/mcp/client/index.d.ts +13 -0
- package/dist/mcp/client/index.d.ts.map +1 -0
- package/dist/mcp/client/index.js +30 -0
- package/dist/mcp/client/manager.d.ts +74 -0
- package/dist/mcp/client/manager.d.ts.map +1 -0
- package/dist/mcp/client/manager.js +215 -0
- package/dist/mcp/client/resourceBrowser.d.ts +52 -0
- package/dist/mcp/client/resourceBrowser.d.ts.map +1 -0
- package/dist/mcp/client/resourceBrowser.js +80 -0
- package/dist/mcp/client/toolRegistry.d.ts +113 -0
- package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
- package/dist/mcp/client/toolRegistry.js +190 -0
- package/dist/mcp/client/types.d.ts +96 -0
- package/dist/mcp/client/types.d.ts.map +1 -0
- package/dist/mcp/client/types.js +15 -0
- package/dist/mcp/transport/index.d.ts +9 -0
- package/dist/mcp/transport/index.d.ts.map +1 -0
- package/dist/mcp/transport/index.js +13 -0
- package/dist/mcp/transport/session.d.ts +18 -0
- package/dist/mcp/transport/session.d.ts.map +1 -0
- package/dist/mcp/transport/session.js +78 -0
- package/dist/mcp/transport/types.d.ts +19 -0
- package/dist/mcp/transport/types.d.ts.map +1 -0
- package/dist/mcp/transport/types.js +7 -0
- package/dist/mcp/transport/websocket.d.ts +41 -0
- package/dist/mcp/transport/websocket.d.ts.map +1 -0
- package/dist/mcp/transport/websocket.js +271 -0
- package/dist/observability/alertWebhooks.d.ts +35 -0
- package/dist/observability/alertWebhooks.d.ts.map +1 -0
- package/dist/observability/alertWebhooks.js +68 -0
- package/dist/observability/analytics.d.ts +66 -0
- package/dist/observability/analytics.d.ts.map +1 -0
- package/dist/observability/analytics.js +104 -0
- package/dist/observability/auditExport.d.ts +25 -0
- package/dist/observability/auditExport.d.ts.map +1 -0
- package/dist/observability/auditExport.js +108 -0
- package/dist/observability/contextIntrospection.d.ts +40 -0
- package/dist/observability/contextIntrospection.d.ts.map +1 -0
- package/dist/observability/contextIntrospection.js +93 -0
- package/dist/observability/failureTriage.d.ts +28 -0
- package/dist/observability/failureTriage.d.ts.map +1 -0
- package/dist/observability/failureTriage.js +168 -0
- package/dist/observability/health.d.ts +19 -0
- package/dist/observability/health.d.ts.map +1 -0
- package/dist/observability/health.js +129 -0
- package/dist/observability/index.d.ts +14 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +53 -0
- package/dist/observability/progressSummarizer.d.ts +27 -0
- package/dist/observability/progressSummarizer.d.ts.map +1 -0
- package/dist/observability/progressSummarizer.js +143 -0
- package/dist/observability/promptPlan.d.ts +52 -0
- package/dist/observability/promptPlan.d.ts.map +1 -0
- package/dist/observability/promptPlan.js +101 -0
- package/dist/observability/resumeDashboard.d.ts +32 -0
- package/dist/observability/resumeDashboard.d.ts.map +1 -0
- package/dist/observability/resumeDashboard.js +204 -0
- package/dist/observability/runStatus.d.ts +44 -0
- package/dist/observability/runStatus.d.ts.map +1 -0
- package/dist/observability/runStatus.js +169 -0
- package/dist/observability/subagentHealth.d.ts +66 -0
- package/dist/observability/subagentHealth.d.ts.map +1 -0
- package/dist/observability/subagentHealth.js +107 -0
- package/dist/observability/subagentProgress.d.ts +64 -0
- package/dist/observability/subagentProgress.d.ts.map +1 -0
- package/dist/observability/subagentProgress.js +91 -0
- package/dist/observability/timeline.d.ts +11 -0
- package/dist/observability/timeline.d.ts.map +1 -0
- package/dist/observability/timeline.js +176 -0
- package/dist/observability/types.d.ts +62 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +8 -0
- package/dist/observability/webhooks.d.ts +68 -0
- package/dist/observability/webhooks.d.ts.map +1 -0
- package/dist/observability/webhooks.js +132 -0
- package/dist/plugins/ccCompatibility.d.ts +79 -0
- package/dist/plugins/ccCompatibility.d.ts.map +1 -0
- package/dist/plugins/ccCompatibility.js +139 -0
- package/dist/plugins/index.d.ts +16 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +38 -0
- package/dist/plugins/loader.d.ts +37 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +112 -0
- package/dist/plugins/management.d.ts +33 -0
- package/dist/plugins/management.d.ts.map +1 -0
- package/dist/plugins/management.js +99 -0
- package/dist/plugins/marketplace.d.ts +64 -0
- package/dist/plugins/marketplace.d.ts.map +1 -0
- package/dist/plugins/marketplace.js +101 -0
- package/dist/plugins/sandbox.d.ts +38 -0
- package/dist/plugins/sandbox.d.ts.map +1 -0
- package/dist/plugins/sandbox.js +109 -0
- package/dist/plugins/trust.d.ts +31 -0
- package/dist/plugins/trust.d.ts.map +1 -0
- package/dist/plugins/trust.js +66 -0
- package/dist/plugins/types.d.ts +27 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +7 -0
- package/dist/plugins/validation.d.ts +32 -0
- package/dist/plugins/validation.d.ts.map +1 -0
- package/dist/plugins/validation.js +117 -0
- package/dist/plugins/version-check.d.ts +23 -0
- package/dist/plugins/version-check.d.ts.map +1 -0
- package/dist/plugins/version-check.js +70 -0
- package/dist/plugins/versioning.d.ts +40 -0
- package/dist/plugins/versioning.d.ts.map +1 -0
- package/dist/plugins/versioning.js +101 -0
- package/dist/processes/index.d.ts +12 -0
- package/dist/processes/index.d.ts.map +1 -0
- package/dist/processes/index.js +15 -0
- package/dist/processes/recommender.d.ts +36 -0
- package/dist/processes/recommender.d.ts.map +1 -0
- package/dist/processes/recommender.js +73 -0
- package/dist/processes/scorer.d.ts +26 -0
- package/dist/processes/scorer.d.ts.map +1 -0
- package/dist/processes/scorer.js +104 -0
- package/dist/processes/types.d.ts +48 -0
- package/dist/processes/types.d.ts.map +1 -0
- package/dist/processes/types.js +9 -0
- package/dist/runtime/index.d.ts +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 +141 -0
- package/dist/seams/index.d.ts +3 -0
- package/dist/seams/index.d.ts.map +1 -0
- package/dist/seams/index.js +8 -0
- package/dist/session/context.d.ts +22 -0
- package/dist/session/context.d.ts.map +1 -0
- package/dist/session/context.js +113 -0
- package/dist/session/continuityState.d.ts +39 -0
- package/dist/session/continuityState.d.ts.map +1 -0
- package/dist/session/continuityState.js +164 -0
- package/dist/session/cost.d.ts +72 -0
- package/dist/session/cost.d.ts.map +1 -0
- package/dist/session/cost.js +221 -0
- package/dist/session/crossRunComm.d.ts +40 -0
- package/dist/session/crossRunComm.d.ts.map +1 -0
- package/dist/session/crossRunComm.js +86 -0
- package/dist/session/crossRunState.d.ts +8 -0
- package/dist/session/crossRunState.d.ts.map +1 -0
- package/dist/session/crossRunState.js +45 -0
- package/dist/session/discovery.d.ts +22 -0
- package/dist/session/discovery.d.ts.map +1 -0
- package/dist/session/discovery.js +35 -0
- package/dist/session/history.d.ts +30 -0
- package/dist/session/history.d.ts.map +1 -0
- package/dist/session/history.js +144 -0
- package/dist/session/index.d.ts +8 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +73 -0
- package/dist/session/memoryConsolidation.d.ts +31 -0
- package/dist/session/memoryConsolidation.d.ts.map +1 -0
- package/dist/session/memoryConsolidation.js +135 -0
- package/dist/session/memoryExtraction.d.ts +65 -0
- package/dist/session/memoryExtraction.d.ts.map +1 -0
- package/dist/session/memoryExtraction.js +201 -0
- package/dist/session/parse.d.ts +45 -0
- package/dist/session/parse.d.ts.map +1 -0
- package/dist/session/parse.js +170 -0
- package/dist/session/persistence.d.ts +46 -0
- package/dist/session/persistence.d.ts.map +1 -0
- package/dist/session/persistence.js +180 -0
- package/dist/session/sessionSharing.d.ts +55 -0
- package/dist/session/sessionSharing.d.ts.map +1 -0
- package/dist/session/sessionSharing.js +113 -0
- package/dist/session/sessionTemplates.d.ts +57 -0
- package/dist/session/sessionTemplates.d.ts.map +1 -0
- package/dist/session/sessionTemplates.js +93 -0
- package/dist/session/types.d.ts +267 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +45 -0
- package/dist/session/write.d.ts +61 -0
- package/dist/session/write.d.ts.map +1 -0
- package/dist/session/write.js +213 -0
- package/dist/skills/chain.d.ts +31 -0
- package/dist/skills/chain.d.ts.map +1 -0
- package/dist/skills/chain.js +113 -0
- package/dist/skills/discovery.d.ts +34 -0
- package/dist/skills/discovery.d.ts.map +1 -0
- package/dist/skills/discovery.js +185 -0
- package/dist/skills/index.d.ts +12 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +18 -0
- package/dist/skills/router.d.ts +35 -0
- package/dist/skills/router.d.ts.map +1 -0
- package/dist/skills/router.js +143 -0
- package/dist/skills/types.d.ts +33 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +5 -0
- package/dist/storage/atomic.d.ts +2 -0
- package/dist/storage/atomic.d.ts.map +1 -0
- package/dist/storage/atomic.js +54 -0
- package/dist/storage/clock.d.ts +2 -0
- package/dist/storage/clock.d.ts.map +1 -0
- package/dist/storage/clock.js +6 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +9 -0
- package/dist/storage/journalWatcher.d.ts +24 -0
- package/dist/storage/journalWatcher.d.ts.map +1 -0
- package/dist/storage/journalWatcher.js +173 -0
- package/dist/storage/paths.d.ts +5 -0
- package/dist/storage/paths.d.ts.map +1 -0
- package/dist/storage/paths.js +26 -0
- package/dist/storage/snapshotState.d.ts +10 -0
- package/dist/storage/snapshotState.d.ts.map +1 -0
- package/dist/storage/snapshotState.js +15 -0
- package/dist/storage/storeTaskArtifacts.d.ts +6 -0
- package/dist/storage/storeTaskArtifacts.d.ts.map +1 -0
- package/dist/storage/storeTaskArtifacts.js +55 -0
- package/dist/storage/types.d.ts +21 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/tasks/crud.d.ts +33 -0
- package/dist/tasks/crud.d.ts.map +1 -0
- package/dist/tasks/crud.js +150 -0
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +9 -0
- package/dist/trust/harness-signing.d.ts +15 -0
- package/dist/trust/harness-signing.d.ts.map +1 -0
- package/dist/trust/harness-signing.js +46 -0
- package/dist/trust/key-store.d.ts +15 -0
- package/dist/trust/key-store.d.ts.map +1 -0
- package/dist/trust/key-store.js +66 -0
- package/package.json +161 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Profile-driven orchestration configuration — derive orchestration
|
|
4
|
+
* preferences from a user profile so runs automatically align with
|
|
5
|
+
* the operator's breakpoint tolerance, model preference, and tool
|
|
6
|
+
* choices (GAP-PROF-001).
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.deriveOrchestrationConfig = deriveOrchestrationConfig;
|
|
10
|
+
exports.applyProfileToProcessOptions = applyProfileToProcessOptions;
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Mapping helpers
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
const TOLERANCE_TO_DENSITY = {
|
|
15
|
+
minimal: 'none',
|
|
16
|
+
low: 'sparse',
|
|
17
|
+
moderate: 'moderate',
|
|
18
|
+
high: 'frequent',
|
|
19
|
+
maximum: 'frequent',
|
|
20
|
+
};
|
|
21
|
+
function mapBreakpointDensity(tolerance) {
|
|
22
|
+
if (!tolerance)
|
|
23
|
+
return 'moderate';
|
|
24
|
+
return TOLERANCE_TO_DENSITY[tolerance] ?? 'moderate';
|
|
25
|
+
}
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Public API
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/**
|
|
30
|
+
* Derive orchestration configuration from a user profile.
|
|
31
|
+
*/
|
|
32
|
+
function deriveOrchestrationConfig(profile) {
|
|
33
|
+
const breakpointDensity = mapBreakpointDensity(profile.breakpointTolerance?.global);
|
|
34
|
+
// Model preference is an open-ended string stored under preferences
|
|
35
|
+
const preferredModel = typeof profile.preferences?.preferredModel === 'string'
|
|
36
|
+
? profile.preferences.preferredModel
|
|
37
|
+
: undefined;
|
|
38
|
+
const toolPreferences = {
|
|
39
|
+
editor: profile.toolPreferences?.editor,
|
|
40
|
+
shell: profile.toolPreferences?.shell,
|
|
41
|
+
packageManagers: profile.toolPreferences?.packageManagers ?? [],
|
|
42
|
+
};
|
|
43
|
+
return { breakpointDensity, preferredModel, toolPreferences };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Merge profile-derived preferences into process options.
|
|
47
|
+
* Explicit values in `options` take precedence over the profile.
|
|
48
|
+
*/
|
|
49
|
+
function applyProfileToProcessOptions(profile, options) {
|
|
50
|
+
const config = deriveOrchestrationConfig(profile);
|
|
51
|
+
return {
|
|
52
|
+
...options,
|
|
53
|
+
breakpointDensity: options.breakpointDensity ?? config.breakpointDensity,
|
|
54
|
+
model: options.model ?? config.preferredModel,
|
|
55
|
+
toolPreferences: {
|
|
56
|
+
editor: options.toolPreferences?.editor ?? config.toolPreferences.editor,
|
|
57
|
+
shell: options.toolPreferences?.shell ?? config.toolPreferences.shell,
|
|
58
|
+
packageManagers: options.toolPreferences?.packageManagers ?? config.toolPreferences.packageManagers,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GAP-HADAPT-008: Harness Selection Policies.
|
|
3
|
+
*
|
|
4
|
+
* Configurable policies for harness selection: cost-optimized,
|
|
5
|
+
* latency-optimized, capability-first, user-preferred.
|
|
6
|
+
* Policy evaluator scores candidates using selectHarness from capabilityRouter.
|
|
7
|
+
*/
|
|
8
|
+
import { type TaskRequirements, type HarnessCandidate, type RoutingResult } from "./capabilityRouter";
|
|
9
|
+
export type PolicyName = "cost-optimized" | "latency-optimized" | "capability-first" | "user-preferred";
|
|
10
|
+
export interface SelectionPolicy {
|
|
11
|
+
name: PolicyName;
|
|
12
|
+
description: string;
|
|
13
|
+
evaluate(candidates: HarnessCandidate[], requirements: Partial<TaskRequirements>, options?: PolicyEvaluatorOptions): PolicyEvaluatorResult;
|
|
14
|
+
}
|
|
15
|
+
export interface PolicyEvaluatorResult {
|
|
16
|
+
selected: HarnessCandidate | null;
|
|
17
|
+
policyName: PolicyName;
|
|
18
|
+
score: number;
|
|
19
|
+
reason: string;
|
|
20
|
+
routingResult: RoutingResult | null;
|
|
21
|
+
}
|
|
22
|
+
export interface PolicyEvaluatorOptions {
|
|
23
|
+
preferredHarness?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function getDefaultPolicy(): SelectionPolicy;
|
|
26
|
+
export declare function getPolicyByName(name: PolicyName): SelectionPolicy;
|
|
27
|
+
export declare function createPolicyEvaluator(policy: SelectionPolicy): (candidates: HarnessCandidate[], requirements: Partial<TaskRequirements>, options?: PolicyEvaluatorOptions) => PolicyEvaluatorResult;
|
|
28
|
+
export declare function evaluatePolicy(policyName: PolicyName, candidates: HarnessCandidate[], requirements: Partial<TaskRequirements>, options?: PolicyEvaluatorOptions): PolicyEvaluatorResult;
|
|
29
|
+
//# sourceMappingURL=selectionPolicies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectionPolicies.d.ts","sourceRoot":"","sources":["../../src/harness/selectionPolicies.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAO5B,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CACN,UAAU,EAAE,gBAAgB,EAAE,EAC9B,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACvC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,qBAAqB,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkKD,wBAAgB,gBAAgB,IAAI,eAAe,CAElD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAMjE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,GACtB,CACD,UAAU,EAAE,gBAAgB,EAAE,EAC9B,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACvC,OAAO,CAAC,EAAE,sBAAsB,KAC7B,qBAAqB,CAGzB;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACvC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,qBAAqB,CAGvB"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GAP-HADAPT-008: Harness Selection Policies.
|
|
4
|
+
*
|
|
5
|
+
* Configurable policies for harness selection: cost-optimized,
|
|
6
|
+
* latency-optimized, capability-first, user-preferred.
|
|
7
|
+
* Policy evaluator scores candidates using selectHarness from capabilityRouter.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.getDefaultPolicy = getDefaultPolicy;
|
|
11
|
+
exports.getPolicyByName = getPolicyByName;
|
|
12
|
+
exports.createPolicyEvaluator = createPolicyEvaluator;
|
|
13
|
+
exports.evaluatePolicy = evaluatePolicy;
|
|
14
|
+
const capabilityRouter_1 = require("./capabilityRouter");
|
|
15
|
+
const types_1 = require("./types");
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Policy implementations
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
const capabilityFirstPolicy = {
|
|
20
|
+
name: "capability-first",
|
|
21
|
+
description: "Select the harness with the highest capability score",
|
|
22
|
+
evaluate(candidates, requirements) {
|
|
23
|
+
const result = (0, capabilityRouter_1.selectHarness)(requirements, candidates);
|
|
24
|
+
if (!result) {
|
|
25
|
+
return { selected: null, policyName: "capability-first", score: 0, reason: "No candidate met threshold", routingResult: null };
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
selected: result.selected,
|
|
29
|
+
policyName: "capability-first",
|
|
30
|
+
score: result.score,
|
|
31
|
+
reason: `Selected ${result.selected.name} with score ${result.score}`,
|
|
32
|
+
routingResult: result,
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
const costOptimizedPolicy = {
|
|
37
|
+
name: "cost-optimized",
|
|
38
|
+
description: "Prefer harnesses with fewer capabilities (proxy for lower cost)",
|
|
39
|
+
evaluate(candidates, requirements) {
|
|
40
|
+
const result = (0, capabilityRouter_1.selectHarness)(requirements, candidates);
|
|
41
|
+
if (!result) {
|
|
42
|
+
return { selected: null, policyName: "cost-optimized", score: 0, reason: "No candidate met threshold", routingResult: null };
|
|
43
|
+
}
|
|
44
|
+
// Among eligible candidates (those that passed the threshold), pick the one
|
|
45
|
+
// with the fewest capabilities — a proxy for cost
|
|
46
|
+
const eligible = result.scores
|
|
47
|
+
.filter((s) => !s.disqualified && s.total >= 50)
|
|
48
|
+
.map((s) => s.name);
|
|
49
|
+
const eligibleCandidates = candidates.filter((c) => eligible.includes(c.name));
|
|
50
|
+
if (eligibleCandidates.length === 0) {
|
|
51
|
+
return { selected: null, policyName: "cost-optimized", score: 0, reason: "No eligible candidate", routingResult: result };
|
|
52
|
+
}
|
|
53
|
+
// Sort by fewest capabilities ascending
|
|
54
|
+
const sorted = [...eligibleCandidates].sort((a, b) => a.capabilities.length - b.capabilities.length);
|
|
55
|
+
const pick = sorted[0];
|
|
56
|
+
const pickScore = result.scores.find((s) => s.name === pick.name);
|
|
57
|
+
return {
|
|
58
|
+
selected: pick,
|
|
59
|
+
policyName: "cost-optimized",
|
|
60
|
+
score: pickScore?.total ?? 0,
|
|
61
|
+
reason: `Selected ${pick.name} (fewest capabilities: ${pick.capabilities.length})`,
|
|
62
|
+
routingResult: result,
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
const latencyOptimizedPolicy = {
|
|
67
|
+
name: "latency-optimized",
|
|
68
|
+
description: "Prefer harnesses with Programmatic + StopHook for lowest latency",
|
|
69
|
+
evaluate(candidates, requirements) {
|
|
70
|
+
const result = (0, capabilityRouter_1.selectHarness)(requirements, candidates);
|
|
71
|
+
if (!result) {
|
|
72
|
+
return { selected: null, policyName: "latency-optimized", score: 0, reason: "No candidate met threshold", routingResult: null };
|
|
73
|
+
}
|
|
74
|
+
const eligible = result.scores
|
|
75
|
+
.filter((s) => !s.disqualified && s.total >= 50)
|
|
76
|
+
.map((s) => s.name);
|
|
77
|
+
const eligibleCandidates = candidates.filter((c) => eligible.includes(c.name));
|
|
78
|
+
if (eligibleCandidates.length === 0) {
|
|
79
|
+
return { selected: null, policyName: "latency-optimized", score: 0, reason: "No eligible candidate", routingResult: result };
|
|
80
|
+
}
|
|
81
|
+
// Score: +2 for StopHook, +2 for Programmatic, +1 for SessionBinding
|
|
82
|
+
const latencyScore = (c) => {
|
|
83
|
+
let s = 0;
|
|
84
|
+
if (c.capabilities.includes(types_1.HarnessCapability.StopHook))
|
|
85
|
+
s += 2;
|
|
86
|
+
if (c.capabilities.includes(types_1.HarnessCapability.Programmatic))
|
|
87
|
+
s += 2;
|
|
88
|
+
if (c.capabilities.includes(types_1.HarnessCapability.SessionBinding))
|
|
89
|
+
s += 1;
|
|
90
|
+
return s;
|
|
91
|
+
};
|
|
92
|
+
const sorted = [...eligibleCandidates].sort((a, b) => latencyScore(b) - latencyScore(a));
|
|
93
|
+
const pick = sorted[0];
|
|
94
|
+
const pickScore = result.scores.find((s) => s.name === pick.name);
|
|
95
|
+
return {
|
|
96
|
+
selected: pick,
|
|
97
|
+
policyName: "latency-optimized",
|
|
98
|
+
score: pickScore?.total ?? 0,
|
|
99
|
+
reason: `Selected ${pick.name} (latency-optimized: StopHook+Programmatic)`,
|
|
100
|
+
routingResult: result,
|
|
101
|
+
};
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
const userPreferredPolicy = {
|
|
105
|
+
name: "user-preferred",
|
|
106
|
+
description: "Select the user-preferred harness if it qualifies, else fall back to capability-first",
|
|
107
|
+
evaluate(candidates, requirements, options) {
|
|
108
|
+
const preferred = options?.preferredHarness;
|
|
109
|
+
if (preferred) {
|
|
110
|
+
// Try routing with the preferred harness hint
|
|
111
|
+
const augmented = {
|
|
112
|
+
...requirements,
|
|
113
|
+
preferredHarness: preferred,
|
|
114
|
+
};
|
|
115
|
+
const result = (0, capabilityRouter_1.selectHarness)(augmented, candidates);
|
|
116
|
+
if (result && result.selected.name === preferred) {
|
|
117
|
+
return {
|
|
118
|
+
selected: result.selected,
|
|
119
|
+
policyName: "user-preferred",
|
|
120
|
+
score: result.score,
|
|
121
|
+
reason: `Selected user-preferred harness ${preferred}`,
|
|
122
|
+
routingResult: result,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Fall back to capability-first
|
|
127
|
+
const fallback = capabilityFirstPolicy.evaluate(candidates, requirements);
|
|
128
|
+
return {
|
|
129
|
+
...fallback,
|
|
130
|
+
policyName: "user-preferred",
|
|
131
|
+
reason: preferred
|
|
132
|
+
? `Preferred harness '${preferred}' not available, fell back to ${fallback.selected?.name ?? "none"}`
|
|
133
|
+
: fallback.reason,
|
|
134
|
+
};
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
// ---------------------------------------------------------------------------
|
|
138
|
+
// Registry
|
|
139
|
+
// ---------------------------------------------------------------------------
|
|
140
|
+
const POLICIES = {
|
|
141
|
+
"capability-first": capabilityFirstPolicy,
|
|
142
|
+
"cost-optimized": costOptimizedPolicy,
|
|
143
|
+
"latency-optimized": latencyOptimizedPolicy,
|
|
144
|
+
"user-preferred": userPreferredPolicy,
|
|
145
|
+
};
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
// Public API
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
function getDefaultPolicy() {
|
|
150
|
+
return POLICIES["capability-first"];
|
|
151
|
+
}
|
|
152
|
+
function getPolicyByName(name) {
|
|
153
|
+
const policy = POLICIES[name];
|
|
154
|
+
if (!policy) {
|
|
155
|
+
throw new TypeError(`Unknown selection policy: ${String(name)}`);
|
|
156
|
+
}
|
|
157
|
+
return policy;
|
|
158
|
+
}
|
|
159
|
+
function createPolicyEvaluator(policy) {
|
|
160
|
+
return (candidates, requirements, options) => policy.evaluate(candidates, requirements, options);
|
|
161
|
+
}
|
|
162
|
+
function evaluatePolicy(policyName, candidates, requirements, options) {
|
|
163
|
+
const policy = getPolicyByName(policyName);
|
|
164
|
+
return policy.evaluate(candidates, requirements, options);
|
|
165
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming parallelism — merge and fan-out async streams (GAP-PAR-006).
|
|
3
|
+
*
|
|
4
|
+
* StreamMerger: merges multiple async iterables into a single ordered-by-arrival
|
|
5
|
+
* async generator.
|
|
6
|
+
* StreamFanout: pushes items to multiple consumers concurrently.
|
|
7
|
+
*/
|
|
8
|
+
interface TaggedItem<T> {
|
|
9
|
+
streamId: string;
|
|
10
|
+
value: T;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Merges multiple async iterables into a single async generator that yields
|
|
14
|
+
* items as they arrive from any source.
|
|
15
|
+
*/
|
|
16
|
+
export declare class StreamMerger<T> {
|
|
17
|
+
private streams;
|
|
18
|
+
/** Register an async iterable source with a unique id. */
|
|
19
|
+
addStream(id: string, iterable: AsyncIterable<T>): void;
|
|
20
|
+
/**
|
|
21
|
+
* Async generator that yields `{ streamId, value }` tuples from all
|
|
22
|
+
* registered streams, in order of arrival.
|
|
23
|
+
*/
|
|
24
|
+
merged(): AsyncGenerator<TaggedItem<T>>;
|
|
25
|
+
}
|
|
26
|
+
export type FanoutCallback<T> = (item: T) => void | Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Forwards each pushed item to all registered consumers.
|
|
29
|
+
*/
|
|
30
|
+
export declare class StreamFanout<T> {
|
|
31
|
+
private consumers;
|
|
32
|
+
/** Register a consumer callback with a unique id. */
|
|
33
|
+
addConsumer(id: string, callback: FanoutCallback<T>): void;
|
|
34
|
+
/** Remove a consumer by id. Returns true if it existed. */
|
|
35
|
+
removeConsumer(id: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Push an item to all consumers. If any consumer returns a Promise,
|
|
38
|
+
* push waits for all of them to settle.
|
|
39
|
+
*/
|
|
40
|
+
push(item: T): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=streamingParallelism.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamingParallelism.d.ts","sourceRoot":"","sources":["../../src/harness/streamingParallelism.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,UAAU,UAAU,CAAC,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,CAAC;CACV;AAED;;;GAGG;AACH,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,OAAO,CAAuC;IAEtD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAIvD;;;OAGG;IACI,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CA6D/C;AAMD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAElE;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,SAAS,CAAwC;IAEzD,qDAAqD;IACrD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAI1D,2DAA2D;IAC3D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAInC;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAYnC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Streaming parallelism — merge and fan-out async streams (GAP-PAR-006).
|
|
4
|
+
*
|
|
5
|
+
* StreamMerger: merges multiple async iterables into a single ordered-by-arrival
|
|
6
|
+
* async generator.
|
|
7
|
+
* StreamFanout: pushes items to multiple consumers concurrently.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.StreamFanout = exports.StreamMerger = void 0;
|
|
11
|
+
/**
|
|
12
|
+
* Merges multiple async iterables into a single async generator that yields
|
|
13
|
+
* items as they arrive from any source.
|
|
14
|
+
*/
|
|
15
|
+
class StreamMerger {
|
|
16
|
+
streams = new Map();
|
|
17
|
+
/** Register an async iterable source with a unique id. */
|
|
18
|
+
addStream(id, iterable) {
|
|
19
|
+
this.streams.set(id, iterable);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Async generator that yields `{ streamId, value }` tuples from all
|
|
23
|
+
* registered streams, in order of arrival.
|
|
24
|
+
*/
|
|
25
|
+
async *merged() {
|
|
26
|
+
if (this.streams.size === 0)
|
|
27
|
+
return;
|
|
28
|
+
// We use a shared queue + resolvers pattern to merge multiple iterators
|
|
29
|
+
const queue = [];
|
|
30
|
+
let done = 0;
|
|
31
|
+
const total = this.streams.size;
|
|
32
|
+
let resolve = null;
|
|
33
|
+
let finished = false;
|
|
34
|
+
function enqueue(item) {
|
|
35
|
+
queue.push(item);
|
|
36
|
+
if (resolve) {
|
|
37
|
+
const r = resolve;
|
|
38
|
+
resolve = null;
|
|
39
|
+
r();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function signalDone() {
|
|
43
|
+
done++;
|
|
44
|
+
if (done >= total) {
|
|
45
|
+
finished = true;
|
|
46
|
+
if (resolve) {
|
|
47
|
+
const r = resolve;
|
|
48
|
+
resolve = null;
|
|
49
|
+
r();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Start consuming each stream
|
|
54
|
+
const consumers = [];
|
|
55
|
+
for (const [id, iterable] of this.streams.entries()) {
|
|
56
|
+
consumers.push((async () => {
|
|
57
|
+
try {
|
|
58
|
+
for await (const value of iterable) {
|
|
59
|
+
enqueue({ streamId: id, value });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
signalDone();
|
|
64
|
+
}
|
|
65
|
+
})());
|
|
66
|
+
}
|
|
67
|
+
// Yield items as they arrive
|
|
68
|
+
while (!finished || queue.length > 0) {
|
|
69
|
+
if (queue.length > 0) {
|
|
70
|
+
yield queue.shift();
|
|
71
|
+
}
|
|
72
|
+
else if (!finished) {
|
|
73
|
+
await new Promise((r) => {
|
|
74
|
+
resolve = r;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Wait for all consumer promises to settle
|
|
79
|
+
await Promise.allSettled(consumers);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.StreamMerger = StreamMerger;
|
|
83
|
+
/**
|
|
84
|
+
* Forwards each pushed item to all registered consumers.
|
|
85
|
+
*/
|
|
86
|
+
class StreamFanout {
|
|
87
|
+
consumers = new Map();
|
|
88
|
+
/** Register a consumer callback with a unique id. */
|
|
89
|
+
addConsumer(id, callback) {
|
|
90
|
+
this.consumers.set(id, callback);
|
|
91
|
+
}
|
|
92
|
+
/** Remove a consumer by id. Returns true if it existed. */
|
|
93
|
+
removeConsumer(id) {
|
|
94
|
+
return this.consumers.delete(id);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Push an item to all consumers. If any consumer returns a Promise,
|
|
98
|
+
* push waits for all of them to settle.
|
|
99
|
+
*/
|
|
100
|
+
async push(item) {
|
|
101
|
+
const promises = [];
|
|
102
|
+
for (const cb of this.consumers.values()) {
|
|
103
|
+
const result = cb(item);
|
|
104
|
+
if (result && typeof result === 'object' && 'then' in result) {
|
|
105
|
+
promises.push(result);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (promises.length > 0) {
|
|
109
|
+
await Promise.all(promises);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.StreamFanout = StreamFanout;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming Renderer (GAP-PERF-004).
|
|
3
|
+
*
|
|
4
|
+
* Buffers and dispatches streaming output chunks from harness sessions.
|
|
5
|
+
* Supports typed chunk handling with listener registration and
|
|
6
|
+
* buffered replay for late subscribers.
|
|
7
|
+
*/
|
|
8
|
+
/** Type of streaming content chunk. */
|
|
9
|
+
export type StreamChunkType = "text" | "tool_use" | "tool_result" | "thinking" | "error";
|
|
10
|
+
/** A single chunk of streaming output. */
|
|
11
|
+
export interface StreamChunk {
|
|
12
|
+
/** Chunk type discriminator. */
|
|
13
|
+
type: StreamChunkType;
|
|
14
|
+
/** The content of the chunk. */
|
|
15
|
+
content: string;
|
|
16
|
+
/** When the chunk was received (ISO 8601). */
|
|
17
|
+
timestamp: string;
|
|
18
|
+
/** Sequence number within the stream. */
|
|
19
|
+
seq: number;
|
|
20
|
+
}
|
|
21
|
+
/** Callback invoked for each incoming chunk. */
|
|
22
|
+
export type StreamChunkListener = (chunk: StreamChunk) => void;
|
|
23
|
+
/**
|
|
24
|
+
* Buffers streaming output and dispatches chunks to registered listeners.
|
|
25
|
+
*
|
|
26
|
+
* Designed for single-session use: one renderer per harness invocation.
|
|
27
|
+
*/
|
|
28
|
+
export declare class StreamingRenderer {
|
|
29
|
+
private readonly buffer;
|
|
30
|
+
private readonly listeners;
|
|
31
|
+
private seq;
|
|
32
|
+
/**
|
|
33
|
+
* Push a new chunk into the stream.
|
|
34
|
+
* Immediately dispatches to all registered listeners.
|
|
35
|
+
*/
|
|
36
|
+
push(type: StreamChunkType, content: string): StreamChunk;
|
|
37
|
+
/**
|
|
38
|
+
* Register a listener for incoming chunks.
|
|
39
|
+
* Returns an unsubscribe function.
|
|
40
|
+
*/
|
|
41
|
+
onChunk(listener: StreamChunkListener): () => void;
|
|
42
|
+
/**
|
|
43
|
+
* Flush the buffer and return all accumulated chunks.
|
|
44
|
+
* Clears the internal buffer after flushing.
|
|
45
|
+
*/
|
|
46
|
+
flush(): StreamChunk[];
|
|
47
|
+
/**
|
|
48
|
+
* Get the current buffer contents without clearing.
|
|
49
|
+
*/
|
|
50
|
+
getBuffer(): readonly StreamChunk[];
|
|
51
|
+
/**
|
|
52
|
+
* Get the number of chunks currently in the buffer.
|
|
53
|
+
*/
|
|
54
|
+
get size(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Get all chunks of a specific type from the buffer.
|
|
57
|
+
*/
|
|
58
|
+
getByType(type: StreamChunkType): StreamChunk[];
|
|
59
|
+
/**
|
|
60
|
+
* Clear the buffer and reset the sequence counter.
|
|
61
|
+
*/
|
|
62
|
+
reset(): void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=streamingRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamingRenderer.d.ts","sourceRoot":"","sources":["../../src/harness/streamingRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,uCAAuC;AACvC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzF,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAM/D;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,GAAG,CAAK;IAEhB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW;IAgBzD;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAOlD;;;OAGG;IACH,KAAK,IAAI,WAAW,EAAE;IAMtB;;OAEG;IACH,SAAS,IAAI,SAAS,WAAW,EAAE;IAInC;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,EAAE;IAI/C;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Streaming Renderer (GAP-PERF-004).
|
|
4
|
+
*
|
|
5
|
+
* Buffers and dispatches streaming output chunks from harness sessions.
|
|
6
|
+
* Supports typed chunk handling with listener registration and
|
|
7
|
+
* buffered replay for late subscribers.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.StreamingRenderer = void 0;
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Renderer
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Buffers streaming output and dispatches chunks to registered listeners.
|
|
16
|
+
*
|
|
17
|
+
* Designed for single-session use: one renderer per harness invocation.
|
|
18
|
+
*/
|
|
19
|
+
class StreamingRenderer {
|
|
20
|
+
buffer = [];
|
|
21
|
+
listeners = new Set();
|
|
22
|
+
seq = 0;
|
|
23
|
+
/**
|
|
24
|
+
* Push a new chunk into the stream.
|
|
25
|
+
* Immediately dispatches to all registered listeners.
|
|
26
|
+
*/
|
|
27
|
+
push(type, content) {
|
|
28
|
+
const chunk = {
|
|
29
|
+
type,
|
|
30
|
+
content,
|
|
31
|
+
timestamp: new Date().toISOString(),
|
|
32
|
+
seq: this.seq++,
|
|
33
|
+
};
|
|
34
|
+
this.buffer.push(chunk);
|
|
35
|
+
for (const listener of this.listeners) {
|
|
36
|
+
listener(chunk);
|
|
37
|
+
}
|
|
38
|
+
return chunk;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Register a listener for incoming chunks.
|
|
42
|
+
* Returns an unsubscribe function.
|
|
43
|
+
*/
|
|
44
|
+
onChunk(listener) {
|
|
45
|
+
this.listeners.add(listener);
|
|
46
|
+
return () => {
|
|
47
|
+
this.listeners.delete(listener);
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Flush the buffer and return all accumulated chunks.
|
|
52
|
+
* Clears the internal buffer after flushing.
|
|
53
|
+
*/
|
|
54
|
+
flush() {
|
|
55
|
+
const flushed = [...this.buffer];
|
|
56
|
+
this.buffer.length = 0;
|
|
57
|
+
return flushed;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get the current buffer contents without clearing.
|
|
61
|
+
*/
|
|
62
|
+
getBuffer() {
|
|
63
|
+
return [...this.buffer];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get the number of chunks currently in the buffer.
|
|
67
|
+
*/
|
|
68
|
+
get size() {
|
|
69
|
+
return this.buffer.length;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get all chunks of a specific type from the buffer.
|
|
73
|
+
*/
|
|
74
|
+
getByType(type) {
|
|
75
|
+
return this.buffer.filter((c) => c.type === type);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Clear the buffer and reset the sequence counter.
|
|
79
|
+
*/
|
|
80
|
+
reset() {
|
|
81
|
+
this.buffer.length = 0;
|
|
82
|
+
this.seq = 0;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.StreamingRenderer = StreamingRenderer;
|