@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,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Subagent Health Monitoring (GAP-SUBOBS-004).
|
|
4
|
+
*
|
|
5
|
+
* Monitors the liveness of delegated subagents via heartbeat tracking.
|
|
6
|
+
* Detects stale agents that have stopped reporting and surfaces health
|
|
7
|
+
* status for orchestration decision-making.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SubagentHealthMonitor = void 0;
|
|
11
|
+
const DEFAULT_STALE_THRESHOLD_MS = 60_000;
|
|
12
|
+
/**
|
|
13
|
+
* Monitors subagent health via heartbeat registration and staleness checks.
|
|
14
|
+
*/
|
|
15
|
+
class SubagentHealthMonitor {
|
|
16
|
+
records = new Map();
|
|
17
|
+
staleThresholdMs;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
this.staleThresholdMs = options?.staleThresholdMs ?? DEFAULT_STALE_THRESHOLD_MS;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Register a new subagent for health monitoring.
|
|
23
|
+
*/
|
|
24
|
+
register(id) {
|
|
25
|
+
const now = new Date().toISOString();
|
|
26
|
+
const record = {
|
|
27
|
+
id,
|
|
28
|
+
status: "unknown",
|
|
29
|
+
lastHeartbeatAt: now,
|
|
30
|
+
registeredAt: now,
|
|
31
|
+
heartbeatCount: 0,
|
|
32
|
+
};
|
|
33
|
+
this.records.set(id, record);
|
|
34
|
+
return record;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Record a heartbeat from a subagent.
|
|
38
|
+
* Marks the agent as healthy if it was previously unknown or degraded.
|
|
39
|
+
*/
|
|
40
|
+
heartbeat(id) {
|
|
41
|
+
const record = this.records.get(id);
|
|
42
|
+
if (!record)
|
|
43
|
+
return undefined;
|
|
44
|
+
record.lastHeartbeatAt = new Date().toISOString();
|
|
45
|
+
record.heartbeatCount += 1;
|
|
46
|
+
record.status = "healthy";
|
|
47
|
+
return record;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check the health of a specific subagent at a given point in time.
|
|
51
|
+
* Updates the status based on elapsed time since last heartbeat.
|
|
52
|
+
*/
|
|
53
|
+
checkHealth(id, now) {
|
|
54
|
+
const record = this.records.get(id);
|
|
55
|
+
if (!record)
|
|
56
|
+
return undefined;
|
|
57
|
+
const currentTime = now ?? Date.now();
|
|
58
|
+
const elapsed = currentTime - new Date(record.lastHeartbeatAt).getTime();
|
|
59
|
+
if (record.heartbeatCount === 0) {
|
|
60
|
+
record.status = "unknown";
|
|
61
|
+
}
|
|
62
|
+
else if (elapsed > this.staleThresholdMs) {
|
|
63
|
+
record.status = "stale";
|
|
64
|
+
}
|
|
65
|
+
else if (elapsed > this.staleThresholdMs / 2) {
|
|
66
|
+
record.status = "degraded";
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
record.status = "healthy";
|
|
70
|
+
}
|
|
71
|
+
return record;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get all subagents whose last heartbeat exceeds the stale threshold.
|
|
75
|
+
*/
|
|
76
|
+
getStaleAgents(now) {
|
|
77
|
+
const currentTime = now ?? Date.now();
|
|
78
|
+
const stale = [];
|
|
79
|
+
for (const record of this.records.values()) {
|
|
80
|
+
const elapsed = currentTime - new Date(record.lastHeartbeatAt).getTime();
|
|
81
|
+
if (elapsed > this.staleThresholdMs && record.heartbeatCount > 0) {
|
|
82
|
+
record.status = "stale";
|
|
83
|
+
stale.push(record);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return stale;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get a specific record by id.
|
|
90
|
+
*/
|
|
91
|
+
get(id) {
|
|
92
|
+
return this.records.get(id);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get all registered records.
|
|
96
|
+
*/
|
|
97
|
+
getAll() {
|
|
98
|
+
return [...this.records.values()];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Unregister a subagent.
|
|
102
|
+
*/
|
|
103
|
+
unregister(id) {
|
|
104
|
+
return this.records.delete(id);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.SubagentHealthMonitor = SubagentHealthMonitor;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subagent Progress Tracking (GAP-SUBOBS-002).
|
|
3
|
+
*
|
|
4
|
+
* Tracks progress of delegated subagent tasks with status, timing,
|
|
5
|
+
* and token usage. Provides real-time visibility into what subagents
|
|
6
|
+
* are doing during orchestration.
|
|
7
|
+
*/
|
|
8
|
+
export type SubagentStatus = "pending" | "running" | "completed" | "failed";
|
|
9
|
+
export interface SubagentProgressEntry {
|
|
10
|
+
/** Unique identifier for the subagent invocation. */
|
|
11
|
+
id: string;
|
|
12
|
+
/** Human-readable label or task description. */
|
|
13
|
+
label: string;
|
|
14
|
+
/** Current status. */
|
|
15
|
+
status: SubagentStatus;
|
|
16
|
+
/** When the subagent was started (ISO 8601). */
|
|
17
|
+
startedAt: string;
|
|
18
|
+
/** When the subagent completed or failed (ISO 8601), if finished. */
|
|
19
|
+
finishedAt: string | null;
|
|
20
|
+
/** Duration in milliseconds, or null if still running. */
|
|
21
|
+
durationMs: number | null;
|
|
22
|
+
/** Estimated tokens consumed so far. */
|
|
23
|
+
tokensUsed: number;
|
|
24
|
+
/** Optional progress message or detail. */
|
|
25
|
+
message?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Tracks subagent progress for an orchestration session.
|
|
29
|
+
*
|
|
30
|
+
* Thread-safe for single-threaded Node.js event loop usage.
|
|
31
|
+
*/
|
|
32
|
+
export declare class SubagentProgressTracker {
|
|
33
|
+
private readonly entries;
|
|
34
|
+
/**
|
|
35
|
+
* Start tracking a new subagent invocation.
|
|
36
|
+
*/
|
|
37
|
+
start(id: string, label: string): SubagentProgressEntry;
|
|
38
|
+
/**
|
|
39
|
+
* Update an existing subagent entry with partial data.
|
|
40
|
+
* Returns the updated entry, or undefined if the id is not found.
|
|
41
|
+
*/
|
|
42
|
+
update(id: string, updates: Partial<Pick<SubagentProgressEntry, "status" | "tokensUsed" | "message">>): SubagentProgressEntry | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Get all tracked entries.
|
|
45
|
+
*/
|
|
46
|
+
getAll(): SubagentProgressEntry[];
|
|
47
|
+
/**
|
|
48
|
+
* Get entries that are still running.
|
|
49
|
+
*/
|
|
50
|
+
getActive(): SubagentProgressEntry[];
|
|
51
|
+
/**
|
|
52
|
+
* Get entries that have completed (successfully or with failure).
|
|
53
|
+
*/
|
|
54
|
+
getCompleted(): SubagentProgressEntry[];
|
|
55
|
+
/**
|
|
56
|
+
* Get a specific entry by id.
|
|
57
|
+
*/
|
|
58
|
+
get(id: string): SubagentProgressEntry | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Remove all tracked entries.
|
|
61
|
+
*/
|
|
62
|
+
clear(): void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=subagentProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagentProgress.d.ts","sourceRoot":"","sources":["../../src/observability/subagentProgress.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0DAA0D;IAC1D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE;;OAEG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,qBAAqB;IAcvD;;;OAGG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC,GACjF,qBAAqB,GAAG,SAAS;IAqBpC;;OAEG;IACH,MAAM,IAAI,qBAAqB,EAAE;IAIjC;;OAEG;IACH,SAAS,IAAI,qBAAqB,EAAE;IAIpC;;OAEG;IACH,YAAY,IAAI,qBAAqB,EAAE;IAIvC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAIlD;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Subagent Progress Tracking (GAP-SUBOBS-002).
|
|
4
|
+
*
|
|
5
|
+
* Tracks progress of delegated subagent tasks with status, timing,
|
|
6
|
+
* and token usage. Provides real-time visibility into what subagents
|
|
7
|
+
* are doing during orchestration.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SubagentProgressTracker = void 0;
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Tracker
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Tracks subagent progress for an orchestration session.
|
|
16
|
+
*
|
|
17
|
+
* Thread-safe for single-threaded Node.js event loop usage.
|
|
18
|
+
*/
|
|
19
|
+
class SubagentProgressTracker {
|
|
20
|
+
entries = new Map();
|
|
21
|
+
/**
|
|
22
|
+
* Start tracking a new subagent invocation.
|
|
23
|
+
*/
|
|
24
|
+
start(id, label) {
|
|
25
|
+
const entry = {
|
|
26
|
+
id,
|
|
27
|
+
label,
|
|
28
|
+
status: "running",
|
|
29
|
+
startedAt: new Date().toISOString(),
|
|
30
|
+
finishedAt: null,
|
|
31
|
+
durationMs: null,
|
|
32
|
+
tokensUsed: 0,
|
|
33
|
+
};
|
|
34
|
+
this.entries.set(id, entry);
|
|
35
|
+
return entry;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Update an existing subagent entry with partial data.
|
|
39
|
+
* Returns the updated entry, or undefined if the id is not found.
|
|
40
|
+
*/
|
|
41
|
+
update(id, updates) {
|
|
42
|
+
const entry = this.entries.get(id);
|
|
43
|
+
if (!entry)
|
|
44
|
+
return undefined;
|
|
45
|
+
if (updates.status !== undefined) {
|
|
46
|
+
entry.status = updates.status;
|
|
47
|
+
if (updates.status === "completed" || updates.status === "failed") {
|
|
48
|
+
entry.finishedAt = new Date().toISOString();
|
|
49
|
+
entry.durationMs = new Date(entry.finishedAt).getTime() - new Date(entry.startedAt).getTime();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (updates.tokensUsed !== undefined) {
|
|
53
|
+
entry.tokensUsed = updates.tokensUsed;
|
|
54
|
+
}
|
|
55
|
+
if (updates.message !== undefined) {
|
|
56
|
+
entry.message = updates.message;
|
|
57
|
+
}
|
|
58
|
+
return entry;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get all tracked entries.
|
|
62
|
+
*/
|
|
63
|
+
getAll() {
|
|
64
|
+
return [...this.entries.values()];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get entries that are still running.
|
|
68
|
+
*/
|
|
69
|
+
getActive() {
|
|
70
|
+
return this.getAll().filter((e) => e.status === "running" || e.status === "pending");
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get entries that have completed (successfully or with failure).
|
|
74
|
+
*/
|
|
75
|
+
getCompleted() {
|
|
76
|
+
return this.getAll().filter((e) => e.status === "completed" || e.status === "failed");
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get a specific entry by id.
|
|
80
|
+
*/
|
|
81
|
+
get(id) {
|
|
82
|
+
return this.entries.get(id);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Remove all tracked entries.
|
|
86
|
+
*/
|
|
87
|
+
clear() {
|
|
88
|
+
this.entries.clear();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.SubagentProgressTracker = SubagentProgressTracker;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GAP-OBS-NEW-002: Phase Timeline Visualization.
|
|
3
|
+
*
|
|
4
|
+
* Synthesizes phase timeline data from journal events. Identifies planning,
|
|
5
|
+
* execution, verification, and completion phases with duration metrics.
|
|
6
|
+
*/
|
|
7
|
+
import { type JournalEvent } from "@a5c-ai/babysitter-sdk";
|
|
8
|
+
import type { PhaseTimeline } from "./types";
|
|
9
|
+
export declare function buildPhaseTimelineFromEvents(events: JournalEvent[]): PhaseTimeline;
|
|
10
|
+
export declare function buildPhaseTimeline(runDir: string): Promise<PhaseTimeline>;
|
|
11
|
+
//# sourceMappingURL=timeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../src/observability/timeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,SAAS,CAAC;AA2BjB,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,CA6HlF;AAoCD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAG/E"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GAP-OBS-NEW-002: Phase Timeline Visualization.
|
|
4
|
+
*
|
|
5
|
+
* Synthesizes phase timeline data from journal events. Identifies planning,
|
|
6
|
+
* execution, verification, and completion phases with duration metrics.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.buildPhaseTimelineFromEvents = buildPhaseTimelineFromEvents;
|
|
10
|
+
exports.buildPhaseTimeline = buildPhaseTimeline;
|
|
11
|
+
const babysitter_sdk_1 = require("@a5c-ai/babysitter-sdk");
|
|
12
|
+
const VERIFICATION_TASK_IDS = new Set([
|
|
13
|
+
"typecheck",
|
|
14
|
+
"lint",
|
|
15
|
+
"run-tests",
|
|
16
|
+
"adversarial-review",
|
|
17
|
+
]);
|
|
18
|
+
function ms(a, b) {
|
|
19
|
+
return new Date(b).getTime() - new Date(a).getTime();
|
|
20
|
+
}
|
|
21
|
+
function makePhase(name, startedAt, endedAt) {
|
|
22
|
+
return {
|
|
23
|
+
name,
|
|
24
|
+
startedAt,
|
|
25
|
+
endedAt,
|
|
26
|
+
durationMs: endedAt ? ms(startedAt, endedAt) : null,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function isVerificationEvent(event) {
|
|
30
|
+
const taskId = event.data.taskId;
|
|
31
|
+
return taskId != null && VERIFICATION_TASK_IDS.has(taskId);
|
|
32
|
+
}
|
|
33
|
+
function buildPhaseTimelineFromEvents(events) {
|
|
34
|
+
if (events.length === 0) {
|
|
35
|
+
return {
|
|
36
|
+
phases: [],
|
|
37
|
+
milestones: [],
|
|
38
|
+
iterations: [],
|
|
39
|
+
currentPhase: "planning",
|
|
40
|
+
totalDurationMs: null,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const phases = [];
|
|
44
|
+
const milestones = [];
|
|
45
|
+
let currentPhase = "planning";
|
|
46
|
+
const firstEvent = events[0];
|
|
47
|
+
const lastEvent = events[events.length - 1];
|
|
48
|
+
// Find key transition points
|
|
49
|
+
const firstEffectReq = events.find((e) => e.type === "EFFECT_REQUESTED");
|
|
50
|
+
const runCompleted = events.find((e) => e.type === "RUN_COMPLETED");
|
|
51
|
+
const runFailed = events.find((e) => e.type === "RUN_FAILED");
|
|
52
|
+
// Find first verification event (typecheck/lint/test/review)
|
|
53
|
+
const firstVerificationReq = events.find((e) => e.type === "EFFECT_REQUESTED" && isVerificationEvent(e));
|
|
54
|
+
const lastVerificationResolved = [...events]
|
|
55
|
+
.reverse()
|
|
56
|
+
.find((e) => e.type === "EFFECT_RESOLVED" && isVerificationEvent(e));
|
|
57
|
+
// Phase 1: Planning — from RUN_CREATED to first EFFECT_REQUESTED
|
|
58
|
+
if (firstEvent.type === "RUN_CREATED") {
|
|
59
|
+
const planEnd = firstEffectReq?.recordedAt ?? null;
|
|
60
|
+
phases.push(makePhase("planning", firstEvent.recordedAt, planEnd));
|
|
61
|
+
if (planEnd) {
|
|
62
|
+
currentPhase = "execution";
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Phase 2: Execution — from first EFFECT_REQUESTED to verification start (or last resolved)
|
|
66
|
+
if (firstEffectReq) {
|
|
67
|
+
// Find the last non-verification EFFECT_RESOLVED as fallback execution end
|
|
68
|
+
const lastNonVerifResolved = [...events]
|
|
69
|
+
.reverse()
|
|
70
|
+
.find((e) => e.type === "EFFECT_RESOLVED" && !isVerificationEvent(e));
|
|
71
|
+
const execEnd = firstVerificationReq?.recordedAt
|
|
72
|
+
?? runCompleted?.recordedAt
|
|
73
|
+
?? runFailed?.recordedAt
|
|
74
|
+
?? lastNonVerifResolved?.recordedAt
|
|
75
|
+
?? null;
|
|
76
|
+
phases.push(makePhase("execution", firstEffectReq.recordedAt, execEnd));
|
|
77
|
+
currentPhase = execEnd ? (firstVerificationReq ? "verification" : "execution") : "execution";
|
|
78
|
+
}
|
|
79
|
+
// Phase 3: Verification — quality gates
|
|
80
|
+
if (firstVerificationReq) {
|
|
81
|
+
const verEnd = lastVerificationResolved?.recordedAt
|
|
82
|
+
?? runCompleted?.recordedAt
|
|
83
|
+
?? runFailed?.recordedAt
|
|
84
|
+
?? null;
|
|
85
|
+
phases.push(makePhase("verification", firstVerificationReq.recordedAt, verEnd));
|
|
86
|
+
currentPhase = verEnd ? "completion" : "verification";
|
|
87
|
+
}
|
|
88
|
+
// Phase 4: Completion
|
|
89
|
+
if (runCompleted) {
|
|
90
|
+
phases.push(makePhase("completion", runCompleted.recordedAt, runCompleted.recordedAt));
|
|
91
|
+
currentPhase = "completed";
|
|
92
|
+
}
|
|
93
|
+
else if (runFailed) {
|
|
94
|
+
phases.push(makePhase("completion", runFailed.recordedAt, runFailed.recordedAt));
|
|
95
|
+
currentPhase = "failed";
|
|
96
|
+
}
|
|
97
|
+
// Extract milestones
|
|
98
|
+
for (const event of events) {
|
|
99
|
+
if (event.type === "EFFECT_RESOLVED" && event.data.kind === "breakpoint") {
|
|
100
|
+
milestones.push({
|
|
101
|
+
type: "breakpoint",
|
|
102
|
+
label: event.data.title ?? `Breakpoint ${event.data.effectId}`,
|
|
103
|
+
occurredAt: event.recordedAt,
|
|
104
|
+
data: event.data,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (event.type === "EFFECT_RESOLVED" &&
|
|
108
|
+
(event.data.taskId === "adversarial-review")) {
|
|
109
|
+
milestones.push({
|
|
110
|
+
type: "quality-gate",
|
|
111
|
+
label: `Quality review: ${event.data.taskId}`,
|
|
112
|
+
occurredAt: event.recordedAt,
|
|
113
|
+
data: event.data,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (event.type === "RUN_COMPLETED") {
|
|
117
|
+
milestones.push({
|
|
118
|
+
type: "run-completed",
|
|
119
|
+
label: "Run completed",
|
|
120
|
+
occurredAt: event.recordedAt,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
if (event.type === "RUN_FAILED") {
|
|
124
|
+
milestones.push({
|
|
125
|
+
type: "run-failed",
|
|
126
|
+
label: "Run failed",
|
|
127
|
+
occurredAt: event.recordedAt,
|
|
128
|
+
data: event.data,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Build iteration breakdowns
|
|
133
|
+
const iterations = buildIterations(events);
|
|
134
|
+
const totalDurationMs = events.length >= 2 ? ms(firstEvent.recordedAt, lastEvent.recordedAt) : null;
|
|
135
|
+
return {
|
|
136
|
+
phases,
|
|
137
|
+
milestones,
|
|
138
|
+
iterations,
|
|
139
|
+
currentPhase,
|
|
140
|
+
totalDurationMs,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function buildIterations(events) {
|
|
144
|
+
const iterationMap = new Map();
|
|
145
|
+
for (const event of events) {
|
|
146
|
+
const iter = event.data.iteration;
|
|
147
|
+
if (iter != null) {
|
|
148
|
+
let group = iterationMap.get(iter);
|
|
149
|
+
if (!group) {
|
|
150
|
+
group = [];
|
|
151
|
+
iterationMap.set(iter, group);
|
|
152
|
+
}
|
|
153
|
+
group.push(event);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const iterations = [];
|
|
157
|
+
for (const [iteration, iterEvents] of iterationMap) {
|
|
158
|
+
if (iterEvents.length === 0)
|
|
159
|
+
continue;
|
|
160
|
+
const first = iterEvents[0];
|
|
161
|
+
const last = iterEvents[iterEvents.length - 1];
|
|
162
|
+
const endedAt = last.type === "EFFECT_RESOLVED" ? last.recordedAt : null;
|
|
163
|
+
iterations.push({
|
|
164
|
+
iteration,
|
|
165
|
+
phases: [], // Per-iteration phase breakdown could be added later
|
|
166
|
+
startedAt: first.recordedAt,
|
|
167
|
+
endedAt,
|
|
168
|
+
durationMs: endedAt ? ms(first.recordedAt, endedAt) : null,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
return iterations.sort((a, b) => a.iteration - b.iteration);
|
|
172
|
+
}
|
|
173
|
+
async function buildPhaseTimeline(runDir) {
|
|
174
|
+
const events = await (0, babysitter_sdk_1.loadJournal)(runDir);
|
|
175
|
+
return buildPhaseTimelineFromEvents(events);
|
|
176
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability types.
|
|
3
|
+
*
|
|
4
|
+
* GAP-OBS-NEW-002: Phase Timeline types.
|
|
5
|
+
* GAP-STATE-008: Run Health Model types.
|
|
6
|
+
*/
|
|
7
|
+
export type RunHealthStatus = "healthy" | "degraded" | "stuck" | "failed";
|
|
8
|
+
export interface RunHealthMetrics {
|
|
9
|
+
errorRate: number;
|
|
10
|
+
avgEffectLatencyMs: number;
|
|
11
|
+
pendingCount: number;
|
|
12
|
+
oldestPendingAgeMs: number;
|
|
13
|
+
iterationCount: number;
|
|
14
|
+
lastActivityAt: string | null;
|
|
15
|
+
totalEffects: number;
|
|
16
|
+
resolvedEffects: number;
|
|
17
|
+
failedEffects: number;
|
|
18
|
+
}
|
|
19
|
+
export interface RunHealthSnapshot {
|
|
20
|
+
status: RunHealthStatus;
|
|
21
|
+
metrics: RunHealthMetrics;
|
|
22
|
+
issues: string[];
|
|
23
|
+
computedAt: string;
|
|
24
|
+
}
|
|
25
|
+
export interface HealthConfig {
|
|
26
|
+
/** Threshold for detecting stuck runs (default: 300000ms = 5min). */
|
|
27
|
+
stuckThresholdMs: number;
|
|
28
|
+
/** Error rate above which run is 'degraded' (default: 0.3). */
|
|
29
|
+
degradedErrorRate: number;
|
|
30
|
+
/** Error rate above which run is 'failed' (default: 0.7). */
|
|
31
|
+
failedErrorRate: number;
|
|
32
|
+
/** Max age for pending effects before generating issue (default: 600000ms = 10min). */
|
|
33
|
+
maxPendingAge: number;
|
|
34
|
+
}
|
|
35
|
+
export type PhaseName = "planning" | "execution" | "verification" | "completion";
|
|
36
|
+
export interface PhaseEntry {
|
|
37
|
+
name: PhaseName;
|
|
38
|
+
startedAt: string;
|
|
39
|
+
endedAt: string | null;
|
|
40
|
+
durationMs: number | null;
|
|
41
|
+
}
|
|
42
|
+
export interface Milestone {
|
|
43
|
+
type: "breakpoint" | "quality-gate" | "run-completed" | "run-failed";
|
|
44
|
+
label: string;
|
|
45
|
+
occurredAt: string;
|
|
46
|
+
data?: Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
export interface IterationTimeline {
|
|
49
|
+
iteration: number;
|
|
50
|
+
phases: PhaseEntry[];
|
|
51
|
+
startedAt: string;
|
|
52
|
+
endedAt: string | null;
|
|
53
|
+
durationMs: number | null;
|
|
54
|
+
}
|
|
55
|
+
export interface PhaseTimeline {
|
|
56
|
+
phases: PhaseEntry[];
|
|
57
|
+
milestones: Milestone[];
|
|
58
|
+
iterations: IterationTimeline[];
|
|
59
|
+
currentPhase: PhaseName | "completed" | "failed";
|
|
60
|
+
totalDurationMs: number | null;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/observability/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,CAAC;AAEjF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,YAAY,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACjD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GAP-OBS-NEW-001: Dashboard Webhook and Alert System.
|
|
3
|
+
*
|
|
4
|
+
* Webhook registration, event filtering, and alert evaluation
|
|
5
|
+
* for run health changes. Pure functions for registry management
|
|
6
|
+
* and alert level computation.
|
|
7
|
+
*/
|
|
8
|
+
import type { RunHealthSnapshot } from "./types";
|
|
9
|
+
export type AlertLevel = "info" | "warn" | "critical";
|
|
10
|
+
export type WebhookEventType = "run.health_changed" | "run.completed" | "run.failed" | "run.stuck" | "effect.pending_timeout";
|
|
11
|
+
export interface WebhookRegistration {
|
|
12
|
+
id: string;
|
|
13
|
+
url: string;
|
|
14
|
+
events: WebhookEventType[];
|
|
15
|
+
runId?: string;
|
|
16
|
+
alertLevels?: AlertLevel[];
|
|
17
|
+
secret?: string;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface WebhookEvent {
|
|
22
|
+
id: string;
|
|
23
|
+
type: WebhookEventType;
|
|
24
|
+
runId: string;
|
|
25
|
+
alertLevel: AlertLevel;
|
|
26
|
+
payload: Record<string, unknown>;
|
|
27
|
+
occurredAt: string;
|
|
28
|
+
}
|
|
29
|
+
export interface WebhookDeliveryResult {
|
|
30
|
+
webhookId: string;
|
|
31
|
+
success: boolean;
|
|
32
|
+
statusCode?: number;
|
|
33
|
+
error?: string;
|
|
34
|
+
deliveredAt: string;
|
|
35
|
+
}
|
|
36
|
+
export interface WebhookRegistry {
|
|
37
|
+
schemaVersion: string;
|
|
38
|
+
registrations: WebhookRegistration[];
|
|
39
|
+
}
|
|
40
|
+
export type WebhookRegistrationInput = Omit<WebhookRegistration, "id" | "createdAt">;
|
|
41
|
+
export declare const WEBHOOK_SCHEMA_VERSION = "2026.01.webhooks-v1";
|
|
42
|
+
/**
|
|
43
|
+
* Register a new webhook in the registry.
|
|
44
|
+
* Mutates the registry and returns the created registration.
|
|
45
|
+
*/
|
|
46
|
+
export declare function registerWebhook(registry: WebhookRegistry, input: WebhookRegistrationInput): WebhookRegistration;
|
|
47
|
+
/**
|
|
48
|
+
* Remove a webhook by id. Throws if not found.
|
|
49
|
+
*/
|
|
50
|
+
export declare function unregisterWebhook(registry: WebhookRegistry, id: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* List webhooks, optionally filtered by runId.
|
|
53
|
+
*/
|
|
54
|
+
export declare function listWebhooks(registry: WebhookRegistry, runId?: string): WebhookRegistration[];
|
|
55
|
+
/**
|
|
56
|
+
* Build a webhook event from a health snapshot.
|
|
57
|
+
*/
|
|
58
|
+
export declare function buildWebhookEvent(type: WebhookEventType, runId: string, snapshot: RunHealthSnapshot): WebhookEvent;
|
|
59
|
+
/**
|
|
60
|
+
* Evaluate whether a health transition warrants an alert.
|
|
61
|
+
* Returns the alert level, or null if no alert is needed.
|
|
62
|
+
*/
|
|
63
|
+
export declare function evaluateAlertLevel(prev: RunHealthSnapshot | null, next: RunHealthSnapshot): AlertLevel | null;
|
|
64
|
+
/**
|
|
65
|
+
* Filter registrations for a given event type and optional alert level.
|
|
66
|
+
*/
|
|
67
|
+
export declare function filterRegistrations(registrations: WebhookRegistration[], eventType: WebhookEventType, alertLevel?: AlertLevel): WebhookRegistration[];
|
|
68
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/observability/webhooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,SAAS,CAAC;AAMlE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GACxB,oBAAoB,GACpB,eAAe,GACf,YAAY,GACZ,WAAW,GACX,wBAAwB,CAAC;AAE7B,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;AAMrF,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AA0B5D;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,wBAAwB,GAC9B,mBAAmB,CAQrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,EACzB,EAAE,EAAE,MAAM,GACT,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,KAAK,CAAC,EAAE,MAAM,GACb,mBAAmB,EAAE,CAGvB;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,iBAAiB,GAC1B,YAAY,CAad;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAC9B,IAAI,EAAE,iBAAiB,GACtB,UAAU,GAAG,IAAI,CAgBnB;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,mBAAmB,EAAE,EACpC,SAAS,EAAE,gBAAgB,EAC3B,UAAU,CAAC,EAAE,UAAU,GACtB,mBAAmB,EAAE,CASvB"}
|