@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,310 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Status: Integrated with agent-platform orchestration.
|
|
4
|
+
* Moved from @a5c-ai/babysitter-sdk.
|
|
5
|
+
* GAP-PERF-002: Session Compaction.
|
|
6
|
+
*
|
|
7
|
+
* Summarizes and condenses orchestration history to prevent context window
|
|
8
|
+
* overflow during long runs. Multiple strategies with auto-triggering
|
|
9
|
+
* based on token budget thresholds.
|
|
10
|
+
*
|
|
11
|
+
* Compacted data is stored as overlays — original journals and task artifacts
|
|
12
|
+
* are never modified.
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.DEFAULT_COMPACTION_CONFIG = void 0;
|
|
49
|
+
exports.getCompactionStatePath = getCompactionStatePath;
|
|
50
|
+
exports.getCompactionState = getCompactionState;
|
|
51
|
+
exports.shouldAutoCompact = shouldAutoCompact;
|
|
52
|
+
exports.buildIterationDigest = buildIterationDigest;
|
|
53
|
+
exports.compactSession = compactSession;
|
|
54
|
+
exports.renderCompactedHistory = renderCompactedHistory;
|
|
55
|
+
const node_fs_1 = require("node:fs");
|
|
56
|
+
const path = __importStar(require("node:path"));
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Defaults
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
exports.DEFAULT_COMPACTION_CONFIG = {
|
|
61
|
+
enabled: true,
|
|
62
|
+
autoCompactThreshold: 80_000,
|
|
63
|
+
strategies: ["tool-output-summarization", "iteration-digest"],
|
|
64
|
+
keepRecentIterations: 3,
|
|
65
|
+
toolOutputTargetReduction: 0.6,
|
|
66
|
+
};
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
// Internal helpers
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
function emptyCompactionState() {
|
|
71
|
+
return { operations: [], iterationDigests: [], toolOutputSummaries: [], totalTokensSaved: 0 };
|
|
72
|
+
}
|
|
73
|
+
async function readRaw(filePath) {
|
|
74
|
+
let raw;
|
|
75
|
+
try {
|
|
76
|
+
raw = await node_fs_1.promises.readFile(filePath, "utf8");
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const err = error;
|
|
80
|
+
if (err.code === "ENOENT")
|
|
81
|
+
return emptyCompactionState();
|
|
82
|
+
return emptyCompactionState();
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const data = JSON.parse(raw);
|
|
86
|
+
return {
|
|
87
|
+
operations: Array.isArray(data.operations) ? data.operations : [],
|
|
88
|
+
iterationDigests: Array.isArray(data.iterationDigests) ? data.iterationDigests : [],
|
|
89
|
+
toolOutputSummaries: Array.isArray(data.toolOutputSummaries) ? data.toolOutputSummaries : [],
|
|
90
|
+
totalTokensSaved: typeof data.totalTokensSaved === "number" ? data.totalTokensSaved : 0,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return emptyCompactionState();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async function writeRaw(filePath, data) {
|
|
98
|
+
const dir = path.dirname(filePath);
|
|
99
|
+
const tempPath = `${filePath}.tmp.${process.pid}`;
|
|
100
|
+
await node_fs_1.promises.mkdir(dir, { recursive: true });
|
|
101
|
+
await node_fs_1.promises.writeFile(tempPath, JSON.stringify(data, null, 2), "utf8");
|
|
102
|
+
await node_fs_1.promises.rename(tempPath, filePath);
|
|
103
|
+
}
|
|
104
|
+
/** Rough token estimate: ~4 chars per token. */
|
|
105
|
+
function estimateTokens(text) {
|
|
106
|
+
return Math.ceil(text.length / 4);
|
|
107
|
+
}
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Public API
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
function getCompactionStatePath(stateDir, sessionId) {
|
|
112
|
+
return path.join(stateDir, `${sessionId}.compaction.json`);
|
|
113
|
+
}
|
|
114
|
+
async function getCompactionState(stateDir, sessionId) {
|
|
115
|
+
return readRaw(getCompactionStatePath(stateDir, sessionId));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Check whether auto-compaction should trigger.
|
|
119
|
+
*/
|
|
120
|
+
function shouldAutoCompact(estimatedTokens, config) {
|
|
121
|
+
if (!config.enabled)
|
|
122
|
+
return false;
|
|
123
|
+
return estimatedTokens > config.autoCompactThreshold;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Build a digest from a set of journal events belonging to one iteration.
|
|
127
|
+
* Pure function.
|
|
128
|
+
*/
|
|
129
|
+
function buildIterationDigest(runId, iteration, events) {
|
|
130
|
+
const resolvedEffects = [];
|
|
131
|
+
let earliestAt = "";
|
|
132
|
+
let latestAt = "";
|
|
133
|
+
for (const ev of events) {
|
|
134
|
+
if (!earliestAt || ev.recordedAt < earliestAt)
|
|
135
|
+
earliestAt = ev.recordedAt;
|
|
136
|
+
if (!latestAt || ev.recordedAt > latestAt)
|
|
137
|
+
latestAt = ev.recordedAt;
|
|
138
|
+
if (ev.type === "EFFECT_RESOLVED" && ev.data) {
|
|
139
|
+
const effectId = ev.data.effectId;
|
|
140
|
+
if (effectId)
|
|
141
|
+
resolvedEffects.push(effectId);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const durationSeconds = earliestAt && latestAt
|
|
145
|
+
? (new Date(latestAt).getTime() - new Date(earliestAt).getTime()) / 1000
|
|
146
|
+
: 0;
|
|
147
|
+
const effectCount = resolvedEffects.length;
|
|
148
|
+
const eventTypes = [...new Set(events.map((e) => e.type))];
|
|
149
|
+
const summary = `Iteration ${iteration}: ${effectCount} effect(s) resolved, events: ${eventTypes.join(", ")}`;
|
|
150
|
+
return {
|
|
151
|
+
iteration,
|
|
152
|
+
runId,
|
|
153
|
+
summary,
|
|
154
|
+
resolvedEffects,
|
|
155
|
+
durationSeconds,
|
|
156
|
+
timestamp: latestAt || new Date().toISOString(),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Run compaction strategies on a session.
|
|
161
|
+
* Reads journal/tasks as needed but only writes to the overlay file — never
|
|
162
|
+
* modifies originals.
|
|
163
|
+
*/
|
|
164
|
+
async function compactSession(stateDir, sessionId, runsDir, config = exports.DEFAULT_COMPACTION_CONFIG) {
|
|
165
|
+
if (!config.enabled)
|
|
166
|
+
return [];
|
|
167
|
+
const overlayPath = getCompactionStatePath(stateDir, sessionId);
|
|
168
|
+
const state = await readRaw(overlayPath);
|
|
169
|
+
const results = [];
|
|
170
|
+
for (const strategy of config.strategies) {
|
|
171
|
+
const result = await applyStrategy(strategy, runsDir, config, state);
|
|
172
|
+
if (result) {
|
|
173
|
+
state.operations.push(result);
|
|
174
|
+
state.totalTokensSaved += result.tokensBefore - result.tokensAfter;
|
|
175
|
+
results.push(result);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
await writeRaw(overlayPath, state);
|
|
179
|
+
return results;
|
|
180
|
+
}
|
|
181
|
+
async function applyStrategy(strategy, runsDir, config, state) {
|
|
182
|
+
const now = new Date().toISOString();
|
|
183
|
+
if (strategy === "iteration-digest") {
|
|
184
|
+
// Scan run directories for journal files, build digests for old iterations
|
|
185
|
+
const existingDigestIterations = new Set(state.iterationDigests.map((d) => `${d.runId}:${d.iteration}`));
|
|
186
|
+
let itemsCompacted = 0;
|
|
187
|
+
let tokensBefore = 0;
|
|
188
|
+
let tokensAfter = 0;
|
|
189
|
+
let runDirs;
|
|
190
|
+
try {
|
|
191
|
+
const entries = await node_fs_1.promises.readdir(runsDir, { withFileTypes: true });
|
|
192
|
+
runDirs = entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
for (const runDir of runDirs) {
|
|
198
|
+
const journalDir = path.join(runsDir, runDir, "journal");
|
|
199
|
+
let files;
|
|
200
|
+
try {
|
|
201
|
+
files = await node_fs_1.promises.readdir(journalDir);
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
// Group events by iteration (heuristic: each EFFECT_REQUESTED starts new iteration group)
|
|
207
|
+
const events = [];
|
|
208
|
+
for (const file of files.sort()) {
|
|
209
|
+
if (!file.endsWith(".json"))
|
|
210
|
+
continue;
|
|
211
|
+
try {
|
|
212
|
+
const raw = await node_fs_1.promises.readFile(path.join(journalDir, file), "utf8");
|
|
213
|
+
events.push(JSON.parse(raw));
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
if (events.length === 0)
|
|
220
|
+
continue;
|
|
221
|
+
// Simple iteration grouping: split at RUN_CREATED or sequential grouping
|
|
222
|
+
const iterationSize = Math.max(1, Math.ceil(events.length / Math.max(1, config.keepRecentIterations + 1)));
|
|
223
|
+
const totalGroups = Math.ceil(events.length / iterationSize);
|
|
224
|
+
const compactableGroups = Math.max(0, totalGroups - config.keepRecentIterations);
|
|
225
|
+
for (let i = 0; i < compactableGroups; i++) {
|
|
226
|
+
const key = `${runDir}:${i + 1}`;
|
|
227
|
+
if (existingDigestIterations.has(key))
|
|
228
|
+
continue;
|
|
229
|
+
const groupEvents = events.slice(i * iterationSize, (i + 1) * iterationSize);
|
|
230
|
+
const beforeTokens = estimateTokens(JSON.stringify(groupEvents));
|
|
231
|
+
const digest = buildIterationDigest(runDir, i + 1, groupEvents);
|
|
232
|
+
const afterTokens = estimateTokens(JSON.stringify(digest));
|
|
233
|
+
state.iterationDigests.push(digest);
|
|
234
|
+
tokensBefore += beforeTokens;
|
|
235
|
+
tokensAfter += afterTokens;
|
|
236
|
+
itemsCompacted++;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
if (itemsCompacted === 0)
|
|
240
|
+
return undefined;
|
|
241
|
+
return { strategy, tokensBefore, tokensAfter, itemsCompacted, compactedAt: now };
|
|
242
|
+
}
|
|
243
|
+
if (strategy === "tool-output-summarization") {
|
|
244
|
+
// Scan task directories for large stdout/stderr, create summarized overlays
|
|
245
|
+
let itemsCompacted = 0;
|
|
246
|
+
let tokensBefore = 0;
|
|
247
|
+
let tokensAfter = 0;
|
|
248
|
+
let runDirs;
|
|
249
|
+
try {
|
|
250
|
+
const entries = await node_fs_1.promises.readdir(runsDir, { withFileTypes: true });
|
|
251
|
+
runDirs = entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
return undefined;
|
|
255
|
+
}
|
|
256
|
+
for (const runDir of runDirs) {
|
|
257
|
+
const tasksDir = path.join(runsDir, runDir, "tasks");
|
|
258
|
+
let taskDirs;
|
|
259
|
+
try {
|
|
260
|
+
const entries = await node_fs_1.promises.readdir(tasksDir, { withFileTypes: true });
|
|
261
|
+
taskDirs = entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
for (const taskDir of taskDirs) {
|
|
267
|
+
for (const file of ["stdout.txt", "stderr.txt"]) {
|
|
268
|
+
const filePath = path.join(tasksDir, taskDir, file);
|
|
269
|
+
try {
|
|
270
|
+
const content = await node_fs_1.promises.readFile(filePath, "utf8");
|
|
271
|
+
const beforeTokens = estimateTokens(content);
|
|
272
|
+
if (beforeTokens < 200)
|
|
273
|
+
continue; // Skip small outputs
|
|
274
|
+
const relativePath = `${runDir}/tasks/${taskDir}/${file}`;
|
|
275
|
+
// Skip if already summarized
|
|
276
|
+
if (state.toolOutputSummaries.some((s) => s.relativePath === relativePath))
|
|
277
|
+
continue;
|
|
278
|
+
const targetLength = Math.ceil(content.length * (1 - config.toolOutputTargetReduction));
|
|
279
|
+
const truncated = content.slice(0, targetLength) + "\n... [compacted]";
|
|
280
|
+
const afterTokens = estimateTokens(truncated);
|
|
281
|
+
state.toolOutputSummaries.push({
|
|
282
|
+
relativePath,
|
|
283
|
+
summary: truncated,
|
|
284
|
+
originalTokens: beforeTokens,
|
|
285
|
+
});
|
|
286
|
+
tokensBefore += beforeTokens;
|
|
287
|
+
tokensAfter += afterTokens;
|
|
288
|
+
itemsCompacted++;
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (itemsCompacted === 0)
|
|
297
|
+
return undefined;
|
|
298
|
+
return { strategy, tokensBefore, tokensAfter, itemsCompacted, compactedAt: now };
|
|
299
|
+
}
|
|
300
|
+
return undefined;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Render iteration digests as markdown for prompt injection.
|
|
304
|
+
*/
|
|
305
|
+
function renderCompactedHistory(state) {
|
|
306
|
+
if (state.iterationDigests.length === 0)
|
|
307
|
+
return "";
|
|
308
|
+
const lines = state.iterationDigests.map((d) => `- **Iter ${d.iteration}** (${d.runId}): ${d.summary} [${d.durationSeconds.toFixed(1)}s]`);
|
|
309
|
+
return `## Compacted History\n\n${lines.join("\n")}\n\n_${state.totalTokensSaved} tokens saved across ${state.operations.length} compaction(s)._`;
|
|
310
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compaction Strategy (GAP-PERF-002).
|
|
3
|
+
*
|
|
4
|
+
* Higher-level compaction strategy selection and auto-compaction triggers.
|
|
5
|
+
* Complements the existing compaction.ts with strategy-based compression
|
|
6
|
+
* targeting and message-count-aware auto-compact recommendations.
|
|
7
|
+
*/
|
|
8
|
+
/** Compaction aggressiveness level. */
|
|
9
|
+
export type CompactionStrategyLevel = "aggressive" | "balanced" | "conservative";
|
|
10
|
+
/** Metrics captured from a compaction pass. */
|
|
11
|
+
export interface CompactionMetrics {
|
|
12
|
+
/** Token count of input (pre-compaction). */
|
|
13
|
+
inputTokens: number;
|
|
14
|
+
/** Token count of output (post-compaction). */
|
|
15
|
+
outputTokens: number;
|
|
16
|
+
/** Ratio of output to input (0-1, lower = more compressed). */
|
|
17
|
+
compressionRatio: number;
|
|
18
|
+
/** Wall-clock duration of the compaction pass in milliseconds. */
|
|
19
|
+
durationMs: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns the target compression ratio for a given strategy.
|
|
23
|
+
*
|
|
24
|
+
* - aggressive → 0.3 (keep 30% of tokens)
|
|
25
|
+
* - balanced → 0.5 (keep 50% of tokens)
|
|
26
|
+
* - conservative → 0.7 (keep 70% of tokens)
|
|
27
|
+
*/
|
|
28
|
+
export declare function getCompressionTarget(strategy: CompactionStrategyLevel): number;
|
|
29
|
+
/**
|
|
30
|
+
* Determines whether auto-compaction should be triggered based on
|
|
31
|
+
* current message count, estimated token usage, and the chosen strategy.
|
|
32
|
+
*
|
|
33
|
+
* Returns true when either threshold (message count OR token estimate)
|
|
34
|
+
* is exceeded.
|
|
35
|
+
*/
|
|
36
|
+
export declare function shouldAutoCompact(messageCount: number, tokenEstimate: number, strategy: CompactionStrategyLevel): boolean;
|
|
37
|
+
//# sourceMappingURL=compactionStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compactionStrategy.d.ts","sourceRoot":"","sources":["../../src/compression/compactionStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,uCAAuC;AACvC,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC;AAEjF,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;CACpB;AAYD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAE9E;AAgBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,uBAAuB,GAChC,OAAO,CAGT"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Compaction Strategy (GAP-PERF-002).
|
|
4
|
+
*
|
|
5
|
+
* Higher-level compaction strategy selection and auto-compaction triggers.
|
|
6
|
+
* Complements the existing compaction.ts with strategy-based compression
|
|
7
|
+
* targeting and message-count-aware auto-compact recommendations.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.getCompressionTarget = getCompressionTarget;
|
|
11
|
+
exports.shouldAutoCompact = shouldAutoCompact;
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Strategy → target ratio mapping
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
const STRATEGY_TARGETS = {
|
|
16
|
+
aggressive: 0.3,
|
|
17
|
+
balanced: 0.5,
|
|
18
|
+
conservative: 0.7,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Returns the target compression ratio for a given strategy.
|
|
22
|
+
*
|
|
23
|
+
* - aggressive → 0.3 (keep 30% of tokens)
|
|
24
|
+
* - balanced → 0.5 (keep 50% of tokens)
|
|
25
|
+
* - conservative → 0.7 (keep 70% of tokens)
|
|
26
|
+
*/
|
|
27
|
+
function getCompressionTarget(strategy) {
|
|
28
|
+
return STRATEGY_TARGETS[strategy];
|
|
29
|
+
}
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Auto-compaction recommendation
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
/**
|
|
34
|
+
* Thresholds per strategy for triggering auto-compaction.
|
|
35
|
+
* More aggressive strategies trigger sooner.
|
|
36
|
+
*/
|
|
37
|
+
const AUTO_COMPACT_THRESHOLDS = {
|
|
38
|
+
aggressive: { messageCount: 20, tokenEstimate: 40_000 },
|
|
39
|
+
balanced: { messageCount: 50, tokenEstimate: 80_000 },
|
|
40
|
+
conservative: { messageCount: 100, tokenEstimate: 120_000 },
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Determines whether auto-compaction should be triggered based on
|
|
44
|
+
* current message count, estimated token usage, and the chosen strategy.
|
|
45
|
+
*
|
|
46
|
+
* Returns true when either threshold (message count OR token estimate)
|
|
47
|
+
* is exceeded.
|
|
48
|
+
*/
|
|
49
|
+
function shouldAutoCompact(messageCount, tokenEstimate, strategy) {
|
|
50
|
+
const thresholds = AUTO_COMPACT_THRESHOLDS[strategy];
|
|
51
|
+
return messageCount >= thresholds.messageCount || tokenEstimate >= thresholds.tokenEstimate;
|
|
52
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context compression families (GAP-PROMPT-007).
|
|
3
|
+
*
|
|
4
|
+
* Groups messages by role/type and applies family-specific compression
|
|
5
|
+
* strategies ranging from aggressive (tool results) to minimal (system).
|
|
6
|
+
*/
|
|
7
|
+
export type CompressionStrategy = 'aggressive' | 'moderate' | 'conservative' | 'minimal';
|
|
8
|
+
export type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
|
|
9
|
+
export interface CompressionFamily {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
strategy: CompressionStrategy;
|
|
13
|
+
/** Which message roles/types this family applies to. */
|
|
14
|
+
applicableTo: MessageRole[];
|
|
15
|
+
/** Custom compression function. Receives content, returns compressed content. */
|
|
16
|
+
compressionFn: (content: string) => string;
|
|
17
|
+
}
|
|
18
|
+
export interface CompressibleMessage {
|
|
19
|
+
role: MessageRole;
|
|
20
|
+
content: string;
|
|
21
|
+
/** Optional sub-type like 'thinking', 'tool-result', 'conversation'. */
|
|
22
|
+
type?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const BUILT_IN_FAMILIES: readonly CompressionFamily[];
|
|
25
|
+
/**
|
|
26
|
+
* Select the best compression family for a given message.
|
|
27
|
+
*
|
|
28
|
+
* Priority:
|
|
29
|
+
* 1. 'tool' role messages → tool-results (aggressive)
|
|
30
|
+
* 2. Assistant messages with type 'thinking' → thinking (moderate)
|
|
31
|
+
* 3. User/assistant conversation → conversation (conservative)
|
|
32
|
+
* 4. System → system (minimal)
|
|
33
|
+
*/
|
|
34
|
+
export declare function selectFamily(message: CompressibleMessage): CompressionFamily;
|
|
35
|
+
/**
|
|
36
|
+
* Apply a compression family's strategy to content.
|
|
37
|
+
*/
|
|
38
|
+
export declare function applyFamilyCompression(family: CompressionFamily, content: string): string;
|
|
39
|
+
//# sourceMappingURL=compressionFamilies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressionFamilies.d.ts","sourceRoot":"","sources":["../../src/compression/compressionFamilies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAEzF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,wDAAwD;IACxD,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,iFAAiF;IACjF,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAwDD,eAAO,MAAM,iBAAiB,EAAE,SAAS,iBAAiB,EA6BzD,CAAC;AAMF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,iBAAiB,CAY5E;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzF"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Context compression families (GAP-PROMPT-007).
|
|
4
|
+
*
|
|
5
|
+
* Groups messages by role/type and applies family-specific compression
|
|
6
|
+
* strategies ranging from aggressive (tool results) to minimal (system).
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BUILT_IN_FAMILIES = void 0;
|
|
10
|
+
exports.selectFamily = selectFamily;
|
|
11
|
+
exports.applyFamilyCompression = applyFamilyCompression;
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Built-in compression functions
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Aggressive: collapse repeated whitespace, remove blank lines, truncate
|
|
17
|
+
* long outputs to first/last N lines with a summary marker.
|
|
18
|
+
*/
|
|
19
|
+
function compressAggressive(content) {
|
|
20
|
+
const lines = content.split('\n').filter((l) => l.trim().length > 0);
|
|
21
|
+
if (lines.length <= 20) {
|
|
22
|
+
return lines.join('\n');
|
|
23
|
+
}
|
|
24
|
+
const head = lines.slice(0, 8);
|
|
25
|
+
const tail = lines.slice(-8);
|
|
26
|
+
const omitted = lines.length - 16;
|
|
27
|
+
return [...head, `[... ${omitted} lines omitted ...]`, ...tail].join('\n');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Moderate: collapse repeated whitespace and trim very long lines.
|
|
31
|
+
*/
|
|
32
|
+
function compressModerate(content) {
|
|
33
|
+
return content
|
|
34
|
+
.split('\n')
|
|
35
|
+
.map((line) => {
|
|
36
|
+
const trimmed = line.trimEnd();
|
|
37
|
+
if (trimmed.length > 500) {
|
|
38
|
+
return trimmed.slice(0, 497) + '...';
|
|
39
|
+
}
|
|
40
|
+
return trimmed;
|
|
41
|
+
})
|
|
42
|
+
.join('\n')
|
|
43
|
+
.replace(/\n{3,}/g, '\n\n');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Conservative: only collapse excessive blank lines.
|
|
47
|
+
*/
|
|
48
|
+
function compressConservative(content) {
|
|
49
|
+
return content.replace(/\n{4,}/g, '\n\n\n');
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Minimal: pass through unchanged.
|
|
53
|
+
*/
|
|
54
|
+
function compressMinimal(content) {
|
|
55
|
+
return content;
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Built-in families
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
exports.BUILT_IN_FAMILIES = [
|
|
61
|
+
{
|
|
62
|
+
id: 'tool-results',
|
|
63
|
+
name: 'Tool Results',
|
|
64
|
+
strategy: 'aggressive',
|
|
65
|
+
applicableTo: ['tool'],
|
|
66
|
+
compressionFn: compressAggressive,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'thinking',
|
|
70
|
+
name: 'Thinking',
|
|
71
|
+
strategy: 'moderate',
|
|
72
|
+
applicableTo: ['assistant'],
|
|
73
|
+
compressionFn: compressModerate,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 'conversation',
|
|
77
|
+
name: 'Conversation',
|
|
78
|
+
strategy: 'conservative',
|
|
79
|
+
applicableTo: ['user', 'assistant'],
|
|
80
|
+
compressionFn: compressConservative,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: 'system',
|
|
84
|
+
name: 'System',
|
|
85
|
+
strategy: 'minimal',
|
|
86
|
+
applicableTo: ['system'],
|
|
87
|
+
compressionFn: compressMinimal,
|
|
88
|
+
},
|
|
89
|
+
];
|
|
90
|
+
// ---------------------------------------------------------------------------
|
|
91
|
+
// selectFamily
|
|
92
|
+
// ---------------------------------------------------------------------------
|
|
93
|
+
/**
|
|
94
|
+
* Select the best compression family for a given message.
|
|
95
|
+
*
|
|
96
|
+
* Priority:
|
|
97
|
+
* 1. 'tool' role messages → tool-results (aggressive)
|
|
98
|
+
* 2. Assistant messages with type 'thinking' → thinking (moderate)
|
|
99
|
+
* 3. User/assistant conversation → conversation (conservative)
|
|
100
|
+
* 4. System → system (minimal)
|
|
101
|
+
*/
|
|
102
|
+
function selectFamily(message) {
|
|
103
|
+
if (message.role === 'tool') {
|
|
104
|
+
return exports.BUILT_IN_FAMILIES[0]; // tool-results
|
|
105
|
+
}
|
|
106
|
+
if (message.role === 'assistant' && message.type === 'thinking') {
|
|
107
|
+
return exports.BUILT_IN_FAMILIES[1]; // thinking
|
|
108
|
+
}
|
|
109
|
+
if (message.role === 'system') {
|
|
110
|
+
return exports.BUILT_IN_FAMILIES[3]; // system
|
|
111
|
+
}
|
|
112
|
+
// Default: conversation
|
|
113
|
+
return exports.BUILT_IN_FAMILIES[2]; // conversation
|
|
114
|
+
}
|
|
115
|
+
// ---------------------------------------------------------------------------
|
|
116
|
+
// applyFamilyCompression
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
/**
|
|
119
|
+
* Apply a compression family's strategy to content.
|
|
120
|
+
*/
|
|
121
|
+
function applyFamilyCompression(family, content) {
|
|
122
|
+
return family.compressionFn(content);
|
|
123
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ContextInjection, ContextProvider, TurnContext } from '@a5c-ai/genty-core/extensions';
|
|
2
|
+
export interface DynamicContextPipeline {
|
|
3
|
+
providers: ContextProvider[];
|
|
4
|
+
addProvider(provider: ContextProvider): void;
|
|
5
|
+
removeProvider(id: string): void;
|
|
6
|
+
collectInjections(turnCtx: TurnContext): Promise<ContextInjection[]>;
|
|
7
|
+
applyInjections(injections: ContextInjection[], messages: Array<{
|
|
8
|
+
role: string;
|
|
9
|
+
content: string;
|
|
10
|
+
}>): Array<{
|
|
11
|
+
role: string;
|
|
12
|
+
content: string;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createDynamicContextPipeline(): DynamicContextPipeline;
|
|
16
|
+
//# sourceMappingURL=dynamic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../../src/context/dynamic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEpG,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrE,eAAe,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/I;AAED,wBAAgB,4BAA4B,IAAI,sBAAsB,CAwDrE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDynamicContextPipeline = createDynamicContextPipeline;
|
|
4
|
+
function createDynamicContextPipeline() {
|
|
5
|
+
const providers = [];
|
|
6
|
+
return {
|
|
7
|
+
providers,
|
|
8
|
+
addProvider(provider) {
|
|
9
|
+
providers.push(provider);
|
|
10
|
+
},
|
|
11
|
+
removeProvider(id) {
|
|
12
|
+
const idx = providers.findIndex(p => p.id === id);
|
|
13
|
+
if (idx >= 0)
|
|
14
|
+
providers.splice(idx, 1);
|
|
15
|
+
},
|
|
16
|
+
async collectInjections(turnCtx) {
|
|
17
|
+
const results = [];
|
|
18
|
+
for (const provider of providers) {
|
|
19
|
+
try {
|
|
20
|
+
const injection = await provider.provide(turnCtx);
|
|
21
|
+
results.push(injection);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// Provider errors must not block the turn
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return results;
|
|
28
|
+
},
|
|
29
|
+
applyInjections(injections, messages) {
|
|
30
|
+
const result = [...messages];
|
|
31
|
+
let systemAppend = '';
|
|
32
|
+
for (const injection of injections) {
|
|
33
|
+
if (injection.messages) {
|
|
34
|
+
const lastUserIdx = result.findLastIndex((m) => m.role === 'user');
|
|
35
|
+
if (lastUserIdx >= 0) {
|
|
36
|
+
result.splice(lastUserIdx, 0, ...injection.messages);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
result.push(...injection.messages);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (injection.systemPromptAppend) {
|
|
43
|
+
systemAppend += '\n' + injection.systemPromptAppend;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (systemAppend && result.length > 0) {
|
|
47
|
+
const first = result[0];
|
|
48
|
+
if (first.role === 'system') {
|
|
49
|
+
result[0] = { ...first, content: first.content + systemAppend };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface LoadedInstructions {
|
|
2
|
+
agentInstructions: string[];
|
|
3
|
+
systemPrompt?: string;
|
|
4
|
+
systemPromptMode: 'replace' | 'append' | 'none';
|
|
5
|
+
sources: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function loadInstructions(cwd: string): LoadedInstructions;
|
|
8
|
+
export interface InstructionsLoadedEvent {
|
|
9
|
+
sources: string[];
|
|
10
|
+
agentInstructions: string[];
|
|
11
|
+
systemPrompt?: string;
|
|
12
|
+
systemPromptMode: 'replace' | 'append' | 'none';
|
|
13
|
+
}
|
|
14
|
+
export declare function loadInstructionsWithHook(cwd: string, emitEvent?: (event: InstructionsLoadedEvent) => Promise<void> | void): Promise<LoadedInstructions>;
|
|
15
|
+
//# sourceMappingURL=instructions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/context/instructions.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAiDhE;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjD;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACnE,OAAO,CAAC,kBAAkB,CAAC,CAkB7B"}
|