charness 0.0.0-stage → 3.0.0
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/.env.example +88 -0
- package/DEVELOPMENT.md +110 -0
- package/LICENSE +21 -0
- package/MIGRATION_1_TO_2.md +24 -0
- package/README.md +1024 -2
- package/dist/accessControl.d.ts +71 -0
- package/dist/accessControl.d.ts.map +1 -0
- package/dist/accessControl.js +108 -0
- package/dist/accessControl.js.map +1 -0
- package/dist/adapters/adapterEventRouting.d.ts +51 -0
- package/dist/adapters/adapterEventRouting.d.ts.map +1 -0
- package/dist/adapters/adapterEventRouting.js +74 -0
- package/dist/adapters/adapterEventRouting.js.map +1 -0
- package/dist/adapters/adapterNames.d.ts +19 -0
- package/dist/adapters/adapterNames.d.ts.map +1 -0
- package/dist/adapters/adapterNames.js +25 -0
- package/dist/adapters/adapterNames.js.map +1 -0
- package/dist/adapters/claudeCliAdapter.d.ts +1336 -0
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeCliAdapter.js +4204 -0
- package/dist/adapters/claudeCliAdapter.js.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +548 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.js +1810 -0
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -0
- package/dist/adapters/claudePlatformFlags.d.ts +35 -0
- package/dist/adapters/claudePlatformFlags.d.ts.map +1 -0
- package/dist/adapters/claudePlatformFlags.js +46 -0
- package/dist/adapters/claudePlatformFlags.js.map +1 -0
- package/dist/adapters/createAdapter.d.ts +252 -0
- package/dist/adapters/createAdapter.d.ts.map +1 -0
- package/dist/adapters/createAdapter.js +475 -0
- package/dist/adapters/createAdapter.js.map +1 -0
- package/dist/adapters/openCodeAdapter.d.ts +1446 -0
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
- package/dist/adapters/openCodeAdapter.js +4540 -0
- package/dist/adapters/openCodeAdapter.js.map +1 -0
- package/dist/adapters/sessionLaunchDefaults.d.ts +28 -0
- package/dist/adapters/sessionLaunchDefaults.d.ts.map +1 -0
- package/dist/adapters/sessionLaunchDefaults.js +15 -0
- package/dist/adapters/sessionLaunchDefaults.js.map +1 -0
- package/dist/adapters/terminalAdapter.d.ts +68 -0
- package/dist/adapters/terminalAdapter.d.ts.map +1 -0
- package/dist/adapters/terminalAdapter.js +371 -0
- package/dist/adapters/terminalAdapter.js.map +1 -0
- package/dist/agentLogin/agentLogin.d.ts +31 -0
- package/dist/agentLogin/agentLogin.d.ts.map +1 -0
- package/dist/agentLogin/agentLogin.js +493 -0
- package/dist/agentLogin/agentLogin.js.map +1 -0
- package/dist/agentTrigger.d.ts +28 -0
- package/dist/agentTrigger.d.ts.map +1 -0
- package/dist/agentTrigger.js +53 -0
- package/dist/agentTrigger.js.map +1 -0
- package/dist/apiErrorRetry.d.ts +209 -0
- package/dist/apiErrorRetry.d.ts.map +1 -0
- package/dist/apiErrorRetry.js +351 -0
- package/dist/apiErrorRetry.js.map +1 -0
- package/dist/apiRetryKick.d.ts +148 -0
- package/dist/apiRetryKick.d.ts.map +1 -0
- package/dist/apiRetryKick.js +158 -0
- package/dist/apiRetryKick.js.map +1 -0
- package/dist/bootClassifier.d.ts +46 -0
- package/dist/bootClassifier.d.ts.map +1 -0
- package/dist/bootClassifier.js +43 -0
- package/dist/bootClassifier.js.map +1 -0
- package/dist/bot.d.ts +207 -0
- package/dist/bot.d.ts.map +1 -0
- package/dist/bot.js +10611 -0
- package/dist/bot.js.map +1 -0
- package/dist/botFileStorage.d.ts +60 -0
- package/dist/botFileStorage.d.ts.map +1 -0
- package/dist/botFileStorage.js +205 -0
- package/dist/botFileStorage.js.map +1 -0
- package/dist/cli/applyDnsFix.d.ts +7 -0
- package/dist/cli/applyDnsFix.d.ts.map +1 -0
- package/dist/cli/applyDnsFix.js +46 -0
- package/dist/cli/applyDnsFix.js.map +1 -0
- package/dist/cli/bot.d.ts +27 -0
- package/dist/cli/bot.d.ts.map +1 -0
- package/dist/cli/bot.js +98 -0
- package/dist/cli/bot.js.map +1 -0
- package/dist/cli/botEntry.d.ts +3 -0
- package/dist/cli/botEntry.d.ts.map +1 -0
- package/dist/cli/botEntry.js +11 -0
- package/dist/cli/botEntry.js.map +1 -0
- package/dist/cli/connectorGuards.d.ts +31 -0
- package/dist/cli/connectorGuards.d.ts.map +1 -0
- package/dist/cli/connectorGuards.js +159 -0
- package/dist/cli/connectorGuards.js.map +1 -0
- package/dist/cli/envLoader.d.ts +34 -0
- package/dist/cli/envLoader.d.ts.map +1 -0
- package/dist/cli/envLoader.js +132 -0
- package/dist/cli/envLoader.js.map +1 -0
- package/dist/cli/hot.d.ts +82 -0
- package/dist/cli/hot.d.ts.map +1 -0
- package/dist/cli/hot.js +323 -0
- package/dist/cli/hot.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +130 -0
- package/dist/cli.js.map +1 -0
- package/dist/connectors/jira/adf.d.ts +72 -0
- package/dist/connectors/jira/adf.d.ts.map +1 -0
- package/dist/connectors/jira/adf.js +407 -0
- package/dist/connectors/jira/adf.js.map +1 -0
- package/dist/connectors/jira/agentBinaries.d.ts +14 -0
- package/dist/connectors/jira/agentBinaries.d.ts.map +1 -0
- package/dist/connectors/jira/agentBinaries.js +75 -0
- package/dist/connectors/jira/agentBinaries.js.map +1 -0
- package/dist/connectors/jira/answerSink.d.ts +52 -0
- package/dist/connectors/jira/answerSink.d.ts.map +1 -0
- package/dist/connectors/jira/answerSink.js +220 -0
- package/dist/connectors/jira/answerSink.js.map +1 -0
- package/dist/connectors/jira/attachmentDownload.d.ts +41 -0
- package/dist/connectors/jira/attachmentDownload.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentDownload.js +92 -0
- package/dist/connectors/jira/attachmentDownload.js.map +1 -0
- package/dist/connectors/jira/attachmentTool.d.ts +43 -0
- package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentTool.js +150 -0
- package/dist/connectors/jira/attachmentTool.js.map +1 -0
- package/dist/connectors/jira/client.d.ts +490 -0
- package/dist/connectors/jira/client.d.ts.map +1 -0
- package/dist/connectors/jira/client.js +453 -0
- package/dist/connectors/jira/client.js.map +1 -0
- package/dist/connectors/jira/config.d.ts +117 -0
- package/dist/connectors/jira/config.d.ts.map +1 -0
- package/dist/connectors/jira/config.js +350 -0
- package/dist/connectors/jira/config.js.map +1 -0
- package/dist/connectors/jira/configFile.d.ts +10 -0
- package/dist/connectors/jira/configFile.d.ts.map +1 -0
- package/dist/connectors/jira/configFile.js +50 -0
- package/dist/connectors/jira/configFile.js.map +1 -0
- package/dist/connectors/jira/connector.d.ts +68 -0
- package/dist/connectors/jira/connector.d.ts.map +1 -0
- package/dist/connectors/jira/connector.js +257 -0
- package/dist/connectors/jira/connector.js.map +1 -0
- package/dist/connectors/jira/contextLedger.d.ts +59 -0
- package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
- package/dist/connectors/jira/contextLedger.js +194 -0
- package/dist/connectors/jira/contextLedger.js.map +1 -0
- package/dist/connectors/jira/contextPreamble.d.ts +18 -0
- package/dist/connectors/jira/contextPreamble.d.ts.map +1 -0
- package/dist/connectors/jira/contextPreamble.js +31 -0
- package/dist/connectors/jira/contextPreamble.js.map +1 -0
- package/dist/connectors/jira/inbound.d.ts +132 -0
- package/dist/connectors/jira/inbound.d.ts.map +1 -0
- package/dist/connectors/jira/inbound.js +316 -0
- package/dist/connectors/jira/inbound.js.map +1 -0
- package/dist/connectors/jira/issueBlocks.d.ts +51 -0
- package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
- package/dist/connectors/jira/issueBlocks.js +182 -0
- package/dist/connectors/jira/issueBlocks.js.map +1 -0
- package/dist/connectors/jira/issueContext.d.ts +25 -0
- package/dist/connectors/jira/issueContext.d.ts.map +1 -0
- package/dist/connectors/jira/issueContext.js +53 -0
- package/dist/connectors/jira/issueContext.js.map +1 -0
- package/dist/connectors/jira/issueDelta.d.ts +35 -0
- package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
- package/dist/connectors/jira/issueDelta.js +50 -0
- package/dist/connectors/jira/issueDelta.js.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts +20 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.js +92 -0
- package/dist/connectors/jira/mediaPlaceholders.js.map +1 -0
- package/dist/connectors/jira/outbound.d.ts +6 -0
- package/dist/connectors/jira/outbound.d.ts.map +1 -0
- package/dist/connectors/jira/outbound.js +38 -0
- package/dist/connectors/jira/outbound.js.map +1 -0
- package/dist/connectors/jira/prompt.d.ts +37 -0
- package/dist/connectors/jira/prompt.d.ts.map +1 -0
- package/dist/connectors/jira/prompt.js +99 -0
- package/dist/connectors/jira/prompt.js.map +1 -0
- package/dist/connectors/jira/promptSpill.d.ts +50 -0
- package/dist/connectors/jira/promptSpill.d.ts.map +1 -0
- package/dist/connectors/jira/promptSpill.js +157 -0
- package/dist/connectors/jira/promptSpill.js.map +1 -0
- package/dist/connectors/jira/promptText.d.ts +7 -0
- package/dist/connectors/jira/promptText.d.ts.map +1 -0
- package/dist/connectors/jira/promptText.js +26 -0
- package/dist/connectors/jira/promptText.js.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts +16 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.js +101 -0
- package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/jira/trigger.d.ts +50 -0
- package/dist/connectors/jira/trigger.d.ts.map +1 -0
- package/dist/connectors/jira/trigger.js +93 -0
- package/dist/connectors/jira/trigger.js.map +1 -0
- package/dist/connectors/jira/triggerLog.d.ts +51 -0
- package/dist/connectors/jira/triggerLog.d.ts.map +1 -0
- package/dist/connectors/jira/triggerLog.js +78 -0
- package/dist/connectors/jira/triggerLog.js.map +1 -0
- package/dist/connectors/jira/unconfirmedPosts.d.ts +58 -0
- package/dist/connectors/jira/unconfirmedPosts.d.ts.map +1 -0
- package/dist/connectors/jira/unconfirmedPosts.js +105 -0
- package/dist/connectors/jira/unconfirmedPosts.js.map +1 -0
- package/dist/connectors/telegram/answerSink.d.ts +46 -0
- package/dist/connectors/telegram/answerSink.d.ts.map +1 -0
- package/dist/connectors/telegram/answerSink.js +71 -0
- package/dist/connectors/telegram/answerSink.js.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +31 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js +142 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -0
- package/dist/connectors/telegram/commands/botCore.d.ts +46 -0
- package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/botCore.js +3 -0
- package/dist/connectors/telegram/commands/botCore.js.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.js +13 -0
- package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -0
- package/dist/connectors/telegram/commands/compaction.d.ts +47 -0
- package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/compaction.js +868 -0
- package/dist/connectors/telegram/commands/compaction.js.map +1 -0
- package/dist/connectors/telegram/commands/displayModes.d.ts +13 -0
- package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/displayModes.js +335 -0
- package/dist/connectors/telegram/commands/displayModes.js.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts +95 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.js +841 -0
- package/dist/connectors/telegram/commands/modelProviders.js.map +1 -0
- package/dist/connectors/telegram/commands/reminders.d.ts +54 -0
- package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/reminders.js +624 -0
- package/dist/connectors/telegram/commands/reminders.js.map +1 -0
- package/dist/connectors/telegram/fileIntake.d.ts +166 -0
- package/dist/connectors/telegram/fileIntake.d.ts.map +1 -0
- package/dist/connectors/telegram/fileIntake.js +304 -0
- package/dist/connectors/telegram/fileIntake.js.map +1 -0
- package/dist/connectors/telegram/fileSendGateway.d.ts +57 -0
- package/dist/connectors/telegram/fileSendGateway.d.ts.map +1 -0
- package/dist/connectors/telegram/fileSendGateway.js +221 -0
- package/dist/connectors/telegram/fileSendGateway.js.map +1 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.d.ts +52 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.d.ts.map +1 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.js +71 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.js.map +1 -0
- package/dist/connectors/telegram/inbound.d.ts +131 -0
- package/dist/connectors/telegram/inbound.d.ts.map +1 -0
- package/dist/connectors/telegram/inbound.js +278 -0
- package/dist/connectors/telegram/inbound.js.map +1 -0
- package/dist/connectors/telegram/languagePicker.d.ts +32 -0
- package/dist/connectors/telegram/languagePicker.d.ts.map +1 -0
- package/dist/connectors/telegram/languagePicker.js +55 -0
- package/dist/connectors/telegram/languagePicker.js.map +1 -0
- package/dist/connectors/telegram/messageSplit.d.ts +62 -0
- package/dist/connectors/telegram/messageSplit.d.ts.map +1 -0
- package/dist/connectors/telegram/messageSplit.js +119 -0
- package/dist/connectors/telegram/messageSplit.js.map +1 -0
- package/dist/connectors/telegram/outbound.d.ts +62 -0
- package/dist/connectors/telegram/outbound.d.ts.map +1 -0
- package/dist/connectors/telegram/outbound.js +116 -0
- package/dist/connectors/telegram/outbound.js.map +1 -0
- package/dist/connectors/telegram/output/createOutputTransport.d.ts +34 -0
- package/dist/connectors/telegram/output/createOutputTransport.d.ts.map +1 -0
- package/dist/connectors/telegram/output/createOutputTransport.js +77 -0
- package/dist/connectors/telegram/output/createOutputTransport.js.map +1 -0
- package/dist/connectors/telegram/output/dmOutputTransport.d.ts +47 -0
- package/dist/connectors/telegram/output/dmOutputTransport.d.ts.map +1 -0
- package/dist/connectors/telegram/output/dmOutputTransport.js +412 -0
- package/dist/connectors/telegram/output/dmOutputTransport.js.map +1 -0
- package/dist/connectors/telegram/outputBacklogGlue.d.ts +38 -0
- package/dist/connectors/telegram/outputBacklogGlue.d.ts.map +1 -0
- package/dist/connectors/telegram/outputBacklogGlue.js +49 -0
- package/dist/connectors/telegram/outputBacklogGlue.js.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts +93 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.js +120 -0
- package/dist/connectors/telegram/outputFlushPlan.js.map +1 -0
- package/dist/connectors/telegram/questionKeyboards.d.ts +30 -0
- package/dist/connectors/telegram/questionKeyboards.d.ts.map +1 -0
- package/dist/connectors/telegram/questionKeyboards.js +37 -0
- package/dist/connectors/telegram/questionKeyboards.js.map +1 -0
- package/dist/connectors/telegram/renderAgentHtml.d.ts +27 -0
- package/dist/connectors/telegram/renderAgentHtml.d.ts.map +1 -0
- package/dist/connectors/telegram/renderAgentHtml.js +97 -0
- package/dist/connectors/telegram/renderAgentHtml.js.map +1 -0
- package/dist/connectors/telegram/sessionKeyCodec.d.ts +28 -0
- package/dist/connectors/telegram/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/telegram/sessionKeyCodec.js +107 -0
- package/dist/connectors/telegram/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/telegram/telegramCallGuard.d.ts +19 -0
- package/dist/connectors/telegram/telegramCallGuard.d.ts.map +1 -0
- package/dist/connectors/telegram/telegramCallGuard.js +35 -0
- package/dist/connectors/telegram/telegramCallGuard.js.map +1 -0
- package/dist/connectors/telegram/timezonePicker.d.ts +85 -0
- package/dist/connectors/telegram/timezonePicker.d.ts.map +1 -0
- package/dist/connectors/telegram/timezonePicker.js +142 -0
- package/dist/connectors/telegram/timezonePicker.js.map +1 -0
- package/dist/connectors/telegram/updateDispatcher.d.ts +85 -0
- package/dist/connectors/telegram/updateDispatcher.d.ts.map +1 -0
- package/dist/connectors/telegram/updateDispatcher.js +159 -0
- package/dist/connectors/telegram/updateDispatcher.js.map +1 -0
- package/dist/connectors/test/connector.d.ts +52 -0
- package/dist/connectors/test/connector.d.ts.map +1 -0
- package/dist/connectors/test/connector.js +143 -0
- package/dist/connectors/test/connector.js.map +1 -0
- package/dist/connectors/test/sessionKeyCodec.d.ts +25 -0
- package/dist/connectors/test/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/test/sessionKeyCodec.js +50 -0
- package/dist/connectors/test/sessionKeyCodec.js.map +1 -0
- package/dist/diagLog.d.ts +6 -0
- package/dist/diagLog.d.ts.map +1 -0
- package/dist/diagLog.js +58 -0
- package/dist/diagLog.js.map +1 -0
- package/dist/effortLevels.d.ts +68 -0
- package/dist/effortLevels.d.ts.map +1 -0
- package/dist/effortLevels.js +114 -0
- package/dist/effortLevels.js.map +1 -0
- package/dist/folderName.d.ts +42 -0
- package/dist/folderName.d.ts.map +1 -0
- package/dist/folderName.js +51 -0
- package/dist/folderName.js.map +1 -0
- package/dist/i18n/de.d.ts +2 -0
- package/dist/i18n/de.d.ts.map +1 -0
- package/dist/i18n/de.js +537 -0
- package/dist/i18n/de.js.map +1 -0
- package/dist/i18n/en.d.ts +7 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +566 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/es.d.ts +2 -0
- package/dist/i18n/es.d.ts.map +1 -0
- package/dist/i18n/es.js +537 -0
- package/dist/i18n/es.js.map +1 -0
- package/dist/i18n/fr.d.ts +2 -0
- package/dist/i18n/fr.d.ts.map +1 -0
- package/dist/i18n/fr.js +537 -0
- package/dist/i18n/fr.js.map +1 -0
- package/dist/i18n/hi.d.ts +2 -0
- package/dist/i18n/hi.d.ts.map +1 -0
- package/dist/i18n/hi.js +537 -0
- package/dist/i18n/hi.js.map +1 -0
- package/dist/i18n/ja.d.ts +2 -0
- package/dist/i18n/ja.d.ts.map +1 -0
- package/dist/i18n/ja.js +537 -0
- package/dist/i18n/ja.js.map +1 -0
- package/dist/i18n/ka.d.ts +2 -0
- package/dist/i18n/ka.d.ts.map +1 -0
- package/dist/i18n/ka.js +537 -0
- package/dist/i18n/ka.js.map +1 -0
- package/dist/i18n/pt.d.ts +2 -0
- package/dist/i18n/pt.d.ts.map +1 -0
- package/dist/i18n/pt.js +537 -0
- package/dist/i18n/pt.js.map +1 -0
- package/dist/i18n/ru.d.ts +6 -0
- package/dist/i18n/ru.d.ts.map +1 -0
- package/dist/i18n/ru.js +540 -0
- package/dist/i18n/ru.js.map +1 -0
- package/dist/i18n/uk.d.ts +8 -0
- package/dist/i18n/uk.d.ts.map +1 -0
- package/dist/i18n/uk.js +542 -0
- package/dist/i18n/uk.js.map +1 -0
- package/dist/i18n/uz.d.ts +2 -0
- package/dist/i18n/uz.d.ts.map +1 -0
- package/dist/i18n/uz.js +537 -0
- package/dist/i18n/uz.js.map +1 -0
- package/dist/i18n/zh.d.ts +2 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/i18n/zh.js +537 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/i18n.d.ts +115 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +233 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/installManager.d.ts +99 -0
- package/dist/installManager.d.ts.map +1 -0
- package/dist/installManager.js +943 -0
- package/dist/installManager.js.map +1 -0
- package/dist/instanceLock.d.ts +161 -0
- package/dist/instanceLock.d.ts.map +1 -0
- package/dist/instanceLock.js +388 -0
- package/dist/instanceLock.js.map +1 -0
- package/dist/mcpConfig.d.ts +76 -0
- package/dist/mcpConfig.d.ts.map +1 -0
- package/dist/mcpConfig.js +270 -0
- package/dist/mcpConfig.js.map +1 -0
- package/dist/openCodeOpenQuestion.d.ts +44 -0
- package/dist/openCodeOpenQuestion.d.ts.map +1 -0
- package/dist/openCodeOpenQuestion.js +64 -0
- package/dist/openCodeOpenQuestion.js.map +1 -0
- package/dist/openCodeQuestionFlow.d.ts +105 -0
- package/dist/openCodeQuestionFlow.d.ts.map +1 -0
- package/dist/openCodeQuestionFlow.js +143 -0
- package/dist/openCodeQuestionFlow.js.map +1 -0
- package/dist/openCodeSessionRouting.d.ts +133 -0
- package/dist/openCodeSessionRouting.d.ts.map +1 -0
- package/dist/openCodeSessionRouting.js +253 -0
- package/dist/openCodeSessionRouting.js.map +1 -0
- package/dist/openCodeSessionTitle.d.ts +50 -0
- package/dist/openCodeSessionTitle.d.ts.map +1 -0
- package/dist/openCodeSessionTitle.js +84 -0
- package/dist/openCodeSessionTitle.js.map +1 -0
- package/dist/outputTrace.d.ts +108 -0
- package/dist/outputTrace.d.ts.map +1 -0
- package/dist/outputTrace.js +430 -0
- package/dist/outputTrace.js.map +1 -0
- package/dist/pendingQuestionRepost.d.ts +47 -0
- package/dist/pendingQuestionRepost.d.ts.map +1 -0
- package/dist/pendingQuestionRepost.js +29 -0
- package/dist/pendingQuestionRepost.js.map +1 -0
- package/dist/pinnedStatus.d.ts +52 -0
- package/dist/pinnedStatus.d.ts.map +1 -0
- package/dist/pinnedStatus.js +36 -0
- package/dist/pinnedStatus.js.map +1 -0
- package/dist/platform/answerSink.d.ts +93 -0
- package/dist/platform/answerSink.d.ts.map +1 -0
- package/dist/platform/answerSink.js +31 -0
- package/dist/platform/answerSink.js.map +1 -0
- package/dist/platform/capabilityFallback.d.ts +39 -0
- package/dist/platform/capabilityFallback.d.ts.map +1 -0
- package/dist/platform/capabilityFallback.js +55 -0
- package/dist/platform/capabilityFallback.js.map +1 -0
- package/dist/platform/commandRouter.d.ts +51 -0
- package/dist/platform/commandRouter.d.ts.map +1 -0
- package/dist/platform/commandRouter.js +53 -0
- package/dist/platform/commandRouter.js.map +1 -0
- package/dist/platform/connectorSet.d.ts +39 -0
- package/dist/platform/connectorSet.d.ts.map +1 -0
- package/dist/platform/connectorSet.js +55 -0
- package/dist/platform/connectorSet.js.map +1 -0
- package/dist/platform/inbound.d.ts +147 -0
- package/dist/platform/inbound.d.ts.map +1 -0
- package/dist/platform/inbound.js +18 -0
- package/dist/platform/inbound.js.map +1 -0
- package/dist/platform/outbound.d.ts +225 -0
- package/dist/platform/outbound.d.ts.map +1 -0
- package/dist/platform/outbound.js +30 -0
- package/dist/platform/outbound.js.map +1 -0
- package/dist/platform/unservedStateGuard.d.ts +27 -0
- package/dist/platform/unservedStateGuard.d.ts.map +1 -0
- package/dist/platform/unservedStateGuard.js +42 -0
- package/dist/platform/unservedStateGuard.js.map +1 -0
- package/dist/postToSession.d.ts +94 -0
- package/dist/postToSession.d.ts.map +1 -0
- package/dist/postToSession.js +56 -0
- package/dist/postToSession.js.map +1 -0
- package/dist/progressLine.d.ts +180 -0
- package/dist/progressLine.d.ts.map +1 -0
- package/dist/progressLine.js +293 -0
- package/dist/progressLine.js.map +1 -0
- package/dist/rateLimiter.d.ts +246 -0
- package/dist/rateLimiter.d.ts.map +1 -0
- package/dist/rateLimiter.js +555 -0
- package/dist/rateLimiter.js.map +1 -0
- package/dist/requests/answerRequest.d.ts +57 -0
- package/dist/requests/answerRequest.d.ts.map +1 -0
- package/dist/requests/answerRequest.js +96 -0
- package/dist/requests/answerRequest.js.map +1 -0
- package/dist/requests/answerTail.d.ts +83 -0
- package/dist/requests/answerTail.d.ts.map +1 -0
- package/dist/requests/answerTail.js +102 -0
- package/dist/requests/answerTail.js.map +1 -0
- package/dist/requests/limitWaitAnswer.d.ts +87 -0
- package/dist/requests/limitWaitAnswer.d.ts.map +1 -0
- package/dist/requests/limitWaitAnswer.js +83 -0
- package/dist/requests/limitWaitAnswer.js.map +1 -0
- package/dist/requests/requestGroup.d.ts +44 -0
- package/dist/requests/requestGroup.d.ts.map +1 -0
- package/dist/requests/requestGroup.js +63 -0
- package/dist/requests/requestGroup.js.map +1 -0
- package/dist/requests/requestHeader.d.ts +70 -0
- package/dist/requests/requestHeader.d.ts.map +1 -0
- package/dist/requests/requestHeader.js +83 -0
- package/dist/requests/requestHeader.js.map +1 -0
- package/dist/requests/requestLedger.d.ts +217 -0
- package/dist/requests/requestLedger.d.ts.map +1 -0
- package/dist/requests/requestLedger.js +468 -0
- package/dist/requests/requestLedger.js.map +1 -0
- package/dist/requests/sessionTurnProbe.d.ts +52 -0
- package/dist/requests/sessionTurnProbe.d.ts.map +1 -0
- package/dist/requests/sessionTurnProbe.js +29 -0
- package/dist/requests/sessionTurnProbe.js.map +1 -0
- package/dist/requests/types.d.ts +181 -0
- package/dist/requests/types.d.ts.map +1 -0
- package/dist/requests/types.js +9 -0
- package/dist/requests/types.js.map +1 -0
- package/dist/requests/wakeUpEngine.d.ts +160 -0
- package/dist/requests/wakeUpEngine.d.ts.map +1 -0
- package/dist/requests/wakeUpEngine.js +399 -0
- package/dist/requests/wakeUpEngine.js.map +1 -0
- package/dist/requests/wakeUpRules.d.ts +151 -0
- package/dist/requests/wakeUpRules.d.ts.map +1 -0
- package/dist/requests/wakeUpRules.js +167 -0
- package/dist/requests/wakeUpRules.js.map +1 -0
- package/dist/resumeContext.d.ts +87 -0
- package/dist/resumeContext.d.ts.map +1 -0
- package/dist/resumeContext.js +114 -0
- package/dist/resumeContext.js.map +1 -0
- package/dist/scheduler/checkRun.d.ts +95 -0
- package/dist/scheduler/checkRun.d.ts.map +1 -0
- package/dist/scheduler/checkRun.js +172 -0
- package/dist/scheduler/checkRun.js.map +1 -0
- package/dist/scheduler/delivery.d.ts +99 -0
- package/dist/scheduler/delivery.d.ts.map +1 -0
- package/dist/scheduler/delivery.js +212 -0
- package/dist/scheduler/delivery.js.map +1 -0
- package/dist/scheduler/deliveryKind.d.ts +29 -0
- package/dist/scheduler/deliveryKind.d.ts.map +1 -0
- package/dist/scheduler/deliveryKind.js +39 -0
- package/dist/scheduler/deliveryKind.js.map +1 -0
- package/dist/scheduler/directoryThreads.d.ts +19 -0
- package/dist/scheduler/directoryThreads.d.ts.map +1 -0
- package/dist/scheduler/directoryThreads.js +28 -0
- package/dist/scheduler/directoryThreads.js.map +1 -0
- package/dist/scheduler/engine.d.ts +77 -0
- package/dist/scheduler/engine.d.ts.map +1 -0
- package/dist/scheduler/engine.js +337 -0
- package/dist/scheduler/engine.js.map +1 -0
- package/dist/scheduler/injection.d.ts +102 -0
- package/dist/scheduler/injection.d.ts.map +1 -0
- package/dist/scheduler/injection.js +122 -0
- package/dist/scheduler/injection.js.map +1 -0
- package/dist/scheduler/mcpBoot.d.ts +65 -0
- package/dist/scheduler/mcpBoot.d.ts.map +1 -0
- package/dist/scheduler/mcpBoot.js +60 -0
- package/dist/scheduler/mcpBoot.js.map +1 -0
- package/dist/scheduler/mcpSurface.d.ts +355 -0
- package/dist/scheduler/mcpSurface.d.ts.map +1 -0
- package/dist/scheduler/mcpSurface.js +1257 -0
- package/dist/scheduler/mcpSurface.js.map +1 -0
- package/dist/scheduler/rebindResume.d.ts +27 -0
- package/dist/scheduler/rebindResume.d.ts.map +1 -0
- package/dist/scheduler/rebindResume.js +17 -0
- package/dist/scheduler/rebindResume.js.map +1 -0
- package/dist/scheduler/recurrence.d.ts +58 -0
- package/dist/scheduler/recurrence.d.ts.map +1 -0
- package/dist/scheduler/recurrence.js +210 -0
- package/dist/scheduler/recurrence.js.map +1 -0
- package/dist/scheduler/runLedger.d.ts +59 -0
- package/dist/scheduler/runLedger.d.ts.map +1 -0
- package/dist/scheduler/runLedger.js +54 -0
- package/dist/scheduler/runLedger.js.map +1 -0
- package/dist/scheduler/store.d.ts +97 -0
- package/dist/scheduler/store.d.ts.map +1 -0
- package/dist/scheduler/store.js +124 -0
- package/dist/scheduler/store.js.map +1 -0
- package/dist/scheduler/timezoneRecompute.d.ts +61 -0
- package/dist/scheduler/timezoneRecompute.d.ts.map +1 -0
- package/dist/scheduler/timezoneRecompute.js +46 -0
- package/dist/scheduler/timezoneRecompute.js.map +1 -0
- package/dist/scheduler/types.d.ts +139 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/scheduler/types.js +8 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/sendErrorClassifier.d.ts +45 -0
- package/dist/sendErrorClassifier.d.ts.map +1 -0
- package/dist/sendErrorClassifier.js +65 -0
- package/dist/sendErrorClassifier.js.map +1 -0
- package/dist/sessionKey.d.ts +136 -0
- package/dist/sessionKey.d.ts.map +1 -0
- package/dist/sessionKey.js +153 -0
- package/dist/sessionKey.js.map +1 -0
- package/dist/sessionPick.d.ts +42 -0
- package/dist/sessionPick.d.ts.map +1 -0
- package/dist/sessionPick.js +39 -0
- package/dist/sessionPick.js.map +1 -0
- package/dist/shutdown.d.ts +126 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +164 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/startupPromptBuffer.d.ts +85 -0
- package/dist/startupPromptBuffer.d.ts.map +1 -0
- package/dist/startupPromptBuffer.js +123 -0
- package/dist/startupPromptBuffer.js.map +1 -0
- package/dist/state.d.ts +1245 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +1830 -0
- package/dist/state.js.map +1 -0
- package/dist/threadContextPreamble.d.ts +89 -0
- package/dist/threadContextPreamble.d.ts.map +1 -0
- package/dist/threadContextPreamble.js +102 -0
- package/dist/threadContextPreamble.js.map +1 -0
- package/dist/threadRouting.d.ts +164 -0
- package/dist/threadRouting.d.ts.map +1 -0
- package/dist/threadRouting.js +182 -0
- package/dist/threadRouting.js.map +1 -0
- package/dist/types.d.ts +1015 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/abortableFifo.d.ts +10 -0
- package/dist/utils/abortableFifo.d.ts.map +1 -0
- package/dist/utils/abortableFifo.js +55 -0
- package/dist/utils/abortableFifo.js.map +1 -0
- package/dist/utils/adoptedToolList.d.ts +27 -0
- package/dist/utils/adoptedToolList.d.ts.map +1 -0
- package/dist/utils/adoptedToolList.js +22 -0
- package/dist/utils/adoptedToolList.js.map +1 -0
- package/dist/utils/agentEnvironment.d.ts +42 -0
- package/dist/utils/agentEnvironment.d.ts.map +1 -0
- package/dist/utils/agentEnvironment.js +122 -0
- package/dist/utils/agentEnvironment.js.map +1 -0
- package/dist/utils/ansiClean.d.ts +11 -0
- package/dist/utils/ansiClean.d.ts.map +1 -0
- package/dist/utils/ansiClean.js +139 -0
- package/dist/utils/ansiClean.js.map +1 -0
- package/dist/utils/autoContinueOnLimit.d.ts +49 -0
- package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
- package/dist/utils/autoContinueOnLimit.js +69 -0
- package/dist/utils/autoContinueOnLimit.js.map +1 -0
- package/dist/utils/canonicalPathContainment.d.ts +7 -0
- package/dist/utils/canonicalPathContainment.d.ts.map +1 -0
- package/dist/utils/canonicalPathContainment.js +48 -0
- package/dist/utils/canonicalPathContainment.js.map +1 -0
- package/dist/utils/claudeAuthLogin.d.ts +71 -0
- package/dist/utils/claudeAuthLogin.d.ts.map +1 -0
- package/dist/utils/claudeAuthLogin.js +93 -0
- package/dist/utils/claudeAuthLogin.js.map +1 -0
- package/dist/utils/claudeChunkClassifier.d.ts +97 -0
- package/dist/utils/claudeChunkClassifier.d.ts.map +1 -0
- package/dist/utils/claudeChunkClassifier.js +254 -0
- package/dist/utils/claudeChunkClassifier.js.map +1 -0
- package/dist/utils/claudeCodeVersion.d.ts +31 -0
- package/dist/utils/claudeCodeVersion.d.ts.map +1 -0
- package/dist/utils/claudeCodeVersion.js +62 -0
- package/dist/utils/claudeCodeVersion.js.map +1 -0
- package/dist/utils/claudeCompactHook.d.ts +64 -0
- package/dist/utils/claudeCompactHook.d.ts.map +1 -0
- package/dist/utils/claudeCompactHook.js +98 -0
- package/dist/utils/claudeCompactHook.js.map +1 -0
- package/dist/utils/claudeLivenessAction.d.ts +208 -0
- package/dist/utils/claudeLivenessAction.d.ts.map +1 -0
- package/dist/utils/claudeLivenessAction.js +135 -0
- package/dist/utils/claudeLivenessAction.js.map +1 -0
- package/dist/utils/claudeMcpHeal.d.ts +92 -0
- package/dist/utils/claudeMcpHeal.d.ts.map +1 -0
- package/dist/utils/claudeMcpHeal.js +91 -0
- package/dist/utils/claudeMcpHeal.js.map +1 -0
- package/dist/utils/claudeRelayRouting.d.ts +86 -0
- package/dist/utils/claudeRelayRouting.d.ts.map +1 -0
- package/dist/utils/claudeRelayRouting.js +159 -0
- package/dist/utils/claudeRelayRouting.js.map +1 -0
- package/dist/utils/claudeRuntimeInfo.d.ts +26 -0
- package/dist/utils/claudeRuntimeInfo.d.ts.map +1 -0
- package/dist/utils/claudeRuntimeInfo.js +151 -0
- package/dist/utils/claudeRuntimeInfo.js.map +1 -0
- package/dist/utils/claudeScrapeShapes.d.ts +256 -0
- package/dist/utils/claudeScrapeShapes.d.ts.map +1 -0
- package/dist/utils/claudeScrapeShapes.js +290 -0
- package/dist/utils/claudeScrapeShapes.js.map +1 -0
- package/dist/utils/claudeSessionTitle.d.ts +27 -0
- package/dist/utils/claudeSessionTitle.d.ts.map +1 -0
- package/dist/utils/claudeSessionTitle.js +90 -0
- package/dist/utils/claudeSessionTitle.js.map +1 -0
- package/dist/utils/claudeStreamJson.d.ts +202 -0
- package/dist/utils/claudeStreamJson.d.ts.map +1 -0
- package/dist/utils/claudeStreamJson.js +351 -0
- package/dist/utils/claudeStreamJson.js.map +1 -0
- package/dist/utils/claudeSubagentTail.d.ts +93 -0
- package/dist/utils/claudeSubagentTail.d.ts.map +1 -0
- package/dist/utils/claudeSubagentTail.js +136 -0
- package/dist/utils/claudeSubagentTail.js.map +1 -0
- package/dist/utils/clearThreadOutputQueues.d.ts +43 -0
- package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -0
- package/dist/utils/clearThreadOutputQueues.js +39 -0
- package/dist/utils/clearThreadOutputQueues.js.map +1 -0
- package/dist/utils/compactCommandRoute.d.ts +45 -0
- package/dist/utils/compactCommandRoute.d.ts.map +1 -0
- package/dist/utils/compactCommandRoute.js +36 -0
- package/dist/utils/compactCommandRoute.js.map +1 -0
- package/dist/utils/compactOnIdle.d.ts +329 -0
- package/dist/utils/compactOnIdle.d.ts.map +1 -0
- package/dist/utils/compactOnIdle.js +379 -0
- package/dist/utils/compactOnIdle.js.map +1 -0
- package/dist/utils/consoleFileTap.d.ts +51 -0
- package/dist/utils/consoleFileTap.d.ts.map +1 -0
- package/dist/utils/consoleFileTap.js +86 -0
- package/dist/utils/consoleFileTap.js.map +1 -0
- package/dist/utils/displayVerbosity.d.ts +44 -0
- package/dist/utils/displayVerbosity.d.ts.map +1 -0
- package/dist/utils/displayVerbosity.js +75 -0
- package/dist/utils/displayVerbosity.js.map +1 -0
- package/dist/utils/download.d.ts +72 -0
- package/dist/utils/download.d.ts.map +1 -0
- package/dist/utils/download.js +216 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/draftFinalize.d.ts +110 -0
- package/dist/utils/draftFinalize.d.ts.map +1 -0
- package/dist/utils/draftFinalize.js +100 -0
- package/dist/utils/draftFinalize.js.map +1 -0
- package/dist/utils/draftId.d.ts +36 -0
- package/dist/utils/draftId.d.ts.map +1 -0
- package/dist/utils/draftId.js +46 -0
- package/dist/utils/draftId.js.map +1 -0
- package/dist/utils/draftPacer.d.ts +72 -0
- package/dist/utils/draftPacer.d.ts.map +1 -0
- package/dist/utils/draftPacer.js +53 -0
- package/dist/utils/draftPacer.js.map +1 -0
- package/dist/utils/effortStartupKeystroke.d.ts +20 -0
- package/dist/utils/effortStartupKeystroke.d.ts.map +1 -0
- package/dist/utils/effortStartupKeystroke.js +28 -0
- package/dist/utils/effortStartupKeystroke.js.map +1 -0
- package/dist/utils/ensureSessionPlan.d.ts +70 -0
- package/dist/utils/ensureSessionPlan.d.ts.map +1 -0
- package/dist/utils/ensureSessionPlan.js +54 -0
- package/dist/utils/ensureSessionPlan.js.map +1 -0
- package/dist/utils/fileSendPlan.d.ts +217 -0
- package/dist/utils/fileSendPlan.d.ts.map +1 -0
- package/dist/utils/fileSendPlan.js +291 -0
- package/dist/utils/fileSendPlan.js.map +1 -0
- package/dist/utils/fileSendService.d.ts +94 -0
- package/dist/utils/fileSendService.d.ts.map +1 -0
- package/dist/utils/fileSendService.js +387 -0
- package/dist/utils/fileSendService.js.map +1 -0
- package/dist/utils/groupFinalizePlan.d.ts +38 -0
- package/dist/utils/groupFinalizePlan.d.ts.map +1 -0
- package/dist/utils/groupFinalizePlan.js +35 -0
- package/dist/utils/groupFinalizePlan.js.map +1 -0
- package/dist/utils/identicalOutputGuard.d.ts +83 -0
- package/dist/utils/identicalOutputGuard.d.ts.map +1 -0
- package/dist/utils/identicalOutputGuard.js +99 -0
- package/dist/utils/identicalOutputGuard.js.map +1 -0
- package/dist/utils/isoTimestamp.d.ts +16 -0
- package/dist/utils/isoTimestamp.d.ts.map +1 -0
- package/dist/utils/isoTimestamp.js +34 -0
- package/dist/utils/isoTimestamp.js.map +1 -0
- package/dist/utils/jsonStreamBusyWatchdog.d.ts +130 -0
- package/dist/utils/jsonStreamBusyWatchdog.d.ts.map +1 -0
- package/dist/utils/jsonStreamBusyWatchdog.js +122 -0
- package/dist/utils/jsonStreamBusyWatchdog.js.map +1 -0
- package/dist/utils/jsonStreamHost.d.ts +227 -0
- package/dist/utils/jsonStreamHost.d.ts.map +1 -0
- package/dist/utils/jsonStreamHost.js +417 -0
- package/dist/utils/jsonStreamHost.js.map +1 -0
- package/dist/utils/keyedTransitionQueue.d.ts +18 -0
- package/dist/utils/keyedTransitionQueue.d.ts.map +1 -0
- package/dist/utils/keyedTransitionQueue.js +34 -0
- package/dist/utils/keyedTransitionQueue.js.map +1 -0
- package/dist/utils/limitEpisodeRecovery.d.ts +92 -0
- package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -0
- package/dist/utils/limitEpisodeRecovery.js +133 -0
- package/dist/utils/limitEpisodeRecovery.js.map +1 -0
- package/dist/utils/limitHeldPromptQueue.d.ts +48 -0
- package/dist/utils/limitHeldPromptQueue.d.ts.map +1 -0
- package/dist/utils/limitHeldPromptQueue.js +59 -0
- package/dist/utils/limitHeldPromptQueue.js.map +1 -0
- package/dist/utils/limitHeldPrompts.d.ts +58 -0
- package/dist/utils/limitHeldPrompts.d.ts.map +1 -0
- package/dist/utils/limitHeldPrompts.js +65 -0
- package/dist/utils/limitHeldPrompts.js.map +1 -0
- package/dist/utils/linkPreviewSuppression.d.ts +18 -0
- package/dist/utils/linkPreviewSuppression.d.ts.map +1 -0
- package/dist/utils/linkPreviewSuppression.js +37 -0
- package/dist/utils/linkPreviewSuppression.js.map +1 -0
- package/dist/utils/localClock.d.ts +15 -0
- package/dist/utils/localClock.d.ts.map +1 -0
- package/dist/utils/localClock.js +29 -0
- package/dist/utils/localClock.js.map +1 -0
- package/dist/utils/markdownTableRender.d.ts +83 -0
- package/dist/utils/markdownTableRender.d.ts.map +1 -0
- package/dist/utils/markdownTableRender.js +298 -0
- package/dist/utils/markdownTableRender.js.map +1 -0
- package/dist/utils/mediaGroupCollector.d.ts +51 -0
- package/dist/utils/mediaGroupCollector.d.ts.map +1 -0
- package/dist/utils/mediaGroupCollector.js +90 -0
- package/dist/utils/mediaGroupCollector.js.map +1 -0
- package/dist/utils/messageSendService.d.ts +136 -0
- package/dist/utils/messageSendService.d.ts.map +1 -0
- package/dist/utils/messageSendService.js +165 -0
- package/dist/utils/messageSendService.js.map +1 -0
- package/dist/utils/minutesOverride.d.ts +7 -0
- package/dist/utils/minutesOverride.d.ts.map +1 -0
- package/dist/utils/minutesOverride.js +16 -0
- package/dist/utils/minutesOverride.js.map +1 -0
- package/dist/utils/modelPickerPlan.d.ts +119 -0
- package/dist/utils/modelPickerPlan.d.ts.map +1 -0
- package/dist/utils/modelPickerPlan.js +171 -0
- package/dist/utils/modelPickerPlan.js.map +1 -0
- package/dist/utils/modelSetReplyDecision.d.ts +67 -0
- package/dist/utils/modelSetReplyDecision.d.ts.map +1 -0
- package/dist/utils/modelSetReplyDecision.js +27 -0
- package/dist/utils/modelSetReplyDecision.js.map +1 -0
- package/dist/utils/openCodeAuthLogin.d.ts +181 -0
- package/dist/utils/openCodeAuthLogin.d.ts.map +1 -0
- package/dist/utils/openCodeAuthLogin.js +393 -0
- package/dist/utils/openCodeAuthLogin.js.map +1 -0
- package/dist/utils/openCodeCompactPlugin.d.ts +81 -0
- package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -0
- package/dist/utils/openCodeCompactPlugin.js +146 -0
- package/dist/utils/openCodeCompactPlugin.js.map +1 -0
- package/dist/utils/openCodeTurnActivity.d.ts +67 -0
- package/dist/utils/openCodeTurnActivity.d.ts.map +1 -0
- package/dist/utils/openCodeTurnActivity.js +27 -0
- package/dist/utils/openCodeTurnActivity.js.map +1 -0
- package/dist/utils/outputDebounce.d.ts +24 -0
- package/dist/utils/outputDebounce.d.ts.map +1 -0
- package/dist/utils/outputDebounce.js +30 -0
- package/dist/utils/outputDebounce.js.map +1 -0
- package/dist/utils/outputFlushTiming.d.ts +54 -0
- package/dist/utils/outputFlushTiming.d.ts.map +1 -0
- package/dist/utils/outputFlushTiming.js +48 -0
- package/dist/utils/outputFlushTiming.js.map +1 -0
- package/dist/utils/paginateList.d.ts +25 -0
- package/dist/utils/paginateList.d.ts.map +1 -0
- package/dist/utils/paginateList.js +32 -0
- package/dist/utils/paginateList.js.map +1 -0
- package/dist/utils/paneDiff.d.ts +55 -0
- package/dist/utils/paneDiff.d.ts.map +1 -0
- package/dist/utils/paneDiff.js +88 -0
- package/dist/utils/paneDiff.js.map +1 -0
- package/dist/utils/paneResizeGuard.d.ts +69 -0
- package/dist/utils/paneResizeGuard.d.ts.map +1 -0
- package/dist/utils/paneResizeGuard.js +91 -0
- package/dist/utils/paneResizeGuard.js.map +1 -0
- package/dist/utils/persistAdapterSessionIds.d.ts +39 -0
- package/dist/utils/persistAdapterSessionIds.d.ts.map +1 -0
- package/dist/utils/persistAdapterSessionIds.js +28 -0
- package/dist/utils/persistAdapterSessionIds.js.map +1 -0
- package/dist/utils/pinnedBannerSkipDecision.d.ts +44 -0
- package/dist/utils/pinnedBannerSkipDecision.d.ts.map +1 -0
- package/dist/utils/pinnedBannerSkipDecision.js +20 -0
- package/dist/utils/pinnedBannerSkipDecision.js.map +1 -0
- package/dist/utils/pollBackoff.d.ts +45 -0
- package/dist/utils/pollBackoff.d.ts.map +1 -0
- package/dist/utils/pollBackoff.js +44 -0
- package/dist/utils/pollBackoff.js.map +1 -0
- package/dist/utils/promptDelivery.d.ts +46 -0
- package/dist/utils/promptDelivery.d.ts.map +1 -0
- package/dist/utils/promptDelivery.js +49 -0
- package/dist/utils/promptDelivery.js.map +1 -0
- package/dist/utils/providerDisconnectPlan.d.ts +82 -0
- package/dist/utils/providerDisconnectPlan.d.ts.map +1 -0
- package/dist/utils/providerDisconnectPlan.js +110 -0
- package/dist/utils/providerDisconnectPlan.js.map +1 -0
- package/dist/utils/rateLimitLog.d.ts +48 -0
- package/dist/utils/rateLimitLog.d.ts.map +1 -0
- package/dist/utils/rateLimitLog.js +43 -0
- package/dist/utils/rateLimitLog.js.map +1 -0
- package/dist/utils/recentRelayWindow.d.ts +165 -0
- package/dist/utils/recentRelayWindow.d.ts.map +1 -0
- package/dist/utils/recentRelayWindow.js +284 -0
- package/dist/utils/recentRelayWindow.js.map +1 -0
- package/dist/utils/recvPreviewRedaction.d.ts +23 -0
- package/dist/utils/recvPreviewRedaction.d.ts.map +1 -0
- package/dist/utils/recvPreviewRedaction.js +39 -0
- package/dist/utils/recvPreviewRedaction.js.map +1 -0
- package/dist/utils/reminderFlow.d.ts +148 -0
- package/dist/utils/reminderFlow.d.ts.map +1 -0
- package/dist/utils/reminderFlow.js +122 -0
- package/dist/utils/reminderFlow.js.map +1 -0
- package/dist/utils/reminderScheduleText.d.ts +87 -0
- package/dist/utils/reminderScheduleText.d.ts.map +1 -0
- package/dist/utils/reminderScheduleText.js +135 -0
- package/dist/utils/reminderScheduleText.js.map +1 -0
- package/dist/utils/reminderWizard.d.ts +710 -0
- package/dist/utils/reminderWizard.d.ts.map +1 -0
- package/dist/utils/reminderWizard.js +1164 -0
- package/dist/utils/reminderWizard.js.map +1 -0
- package/dist/utils/replyQuote.d.ts +111 -0
- package/dist/utils/replyQuote.d.ts.map +1 -0
- package/dist/utils/replyQuote.js +122 -0
- package/dist/utils/replyQuote.js.map +1 -0
- package/dist/utils/resolveBinary.d.ts +25 -0
- package/dist/utils/resolveBinary.d.ts.map +1 -0
- package/dist/utils/resolveBinary.js +99 -0
- package/dist/utils/resolveBinary.js.map +1 -0
- package/dist/utils/retryAfterHeader.d.ts +7 -0
- package/dist/utils/retryAfterHeader.d.ts.map +1 -0
- package/dist/utils/retryAfterHeader.js +17 -0
- package/dist/utils/retryAfterHeader.js.map +1 -0
- package/dist/utils/rotatingJsonlFile.d.ts +40 -0
- package/dist/utils/rotatingJsonlFile.d.ts.map +1 -0
- package/dist/utils/rotatingJsonlFile.js +106 -0
- package/dist/utils/rotatingJsonlFile.js.map +1 -0
- package/dist/utils/rotatingLogFile.d.ts +25 -0
- package/dist/utils/rotatingLogFile.d.ts.map +1 -0
- package/dist/utils/rotatingLogFile.js +74 -0
- package/dist/utils/rotatingLogFile.js.map +1 -0
- package/dist/utils/sendRateTracker.d.ts +59 -0
- package/dist/utils/sendRateTracker.d.ts.map +1 -0
- package/dist/utils/sendRateTracker.js +144 -0
- package/dist/utils/sendRateTracker.js.map +1 -0
- package/dist/utils/serialQueue.d.ts +5 -0
- package/dist/utils/serialQueue.d.ts.map +1 -0
- package/dist/utils/serialQueue.js +14 -0
- package/dist/utils/serialQueue.js.map +1 -0
- package/dist/utils/sseStreamLifecycle.d.ts +32 -0
- package/dist/utils/sseStreamLifecycle.d.ts.map +1 -0
- package/dist/utils/sseStreamLifecycle.js +41 -0
- package/dist/utils/sseStreamLifecycle.js.map +1 -0
- package/dist/utils/startupReadiness.d.ts +119 -0
- package/dist/utils/startupReadiness.d.ts.map +1 -0
- package/dist/utils/startupReadiness.js +148 -0
- package/dist/utils/startupReadiness.js.map +1 -0
- package/dist/utils/statusFlushDecision.d.ts +18 -0
- package/dist/utils/statusFlushDecision.d.ts.map +1 -0
- package/dist/utils/statusFlushDecision.js +53 -0
- package/dist/utils/statusFlushDecision.js.map +1 -0
- package/dist/utils/subagentRender.d.ts +52 -0
- package/dist/utils/subagentRender.d.ts.map +1 -0
- package/dist/utils/subagentRender.js +66 -0
- package/dist/utils/subagentRender.js.map +1 -0
- package/dist/utils/subagentStatusRender.d.ts +90 -0
- package/dist/utils/subagentStatusRender.d.ts.map +1 -0
- package/dist/utils/subagentStatusRender.js +124 -0
- package/dist/utils/subagentStatusRender.js.map +1 -0
- package/dist/utils/telegramError.d.ts +2 -0
- package/dist/utils/telegramError.d.ts.map +1 -0
- package/dist/utils/telegramError.js +16 -0
- package/dist/utils/telegramError.js.map +1 -0
- package/dist/utils/terminalEmitPlan.d.ts +74 -0
- package/dist/utils/terminalEmitPlan.d.ts.map +1 -0
- package/dist/utils/terminalEmitPlan.js +86 -0
- package/dist/utils/terminalEmitPlan.js.map +1 -0
- package/dist/utils/thinkingRender.d.ts +74 -0
- package/dist/utils/thinkingRender.d.ts.map +1 -0
- package/dist/utils/thinkingRender.js +85 -0
- package/dist/utils/thinkingRender.js.map +1 -0
- package/dist/utils/threadStatusReport.d.ts +55 -0
- package/dist/utils/threadStatusReport.d.ts.map +1 -0
- package/dist/utils/threadStatusReport.js +65 -0
- package/dist/utils/threadStatusReport.js.map +1 -0
- package/dist/utils/threadToggle.d.ts +29 -0
- package/dist/utils/threadToggle.d.ts.map +1 -0
- package/dist/utils/threadToggle.js +39 -0
- package/dist/utils/threadToggle.js.map +1 -0
- package/dist/utils/timezone.d.ts +125 -0
- package/dist/utils/timezone.d.ts.map +1 -0
- package/dist/utils/timezone.js +278 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/utils/tmuxExec.d.ts +61 -0
- package/dist/utils/tmuxExec.d.ts.map +1 -0
- package/dist/utils/tmuxExec.js +109 -0
- package/dist/utils/tmuxExec.js.map +1 -0
- package/dist/utils/tmuxSessionName.d.ts +34 -0
- package/dist/utils/tmuxSessionName.d.ts.map +1 -0
- package/dist/utils/tmuxSessionName.js +51 -0
- package/dist/utils/tmuxSessionName.js.map +1 -0
- package/dist/utils/toolResultRender.d.ts +61 -0
- package/dist/utils/toolResultRender.d.ts.map +1 -0
- package/dist/utils/toolResultRender.js +62 -0
- package/dist/utils/toolResultRender.js.map +1 -0
- package/dist/utils/topicRequest.d.ts +61 -0
- package/dist/utils/topicRequest.d.ts.map +1 -0
- package/dist/utils/topicRequest.js +68 -0
- package/dist/utils/topicRequest.js.map +1 -0
- package/dist/utils/topicView.d.ts +55 -0
- package/dist/utils/topicView.d.ts.map +1 -0
- package/dist/utils/topicView.js +56 -0
- package/dist/utils/topicView.js.map +1 -0
- package/dist/utils/transcribeAudio.d.ts +89 -0
- package/dist/utils/transcribeAudio.d.ts.map +1 -0
- package/dist/utils/transcribeAudio.js +249 -0
- package/dist/utils/transcribeAudio.js.map +1 -0
- package/dist/utils/transientFrames.d.ts +52 -0
- package/dist/utils/transientFrames.d.ts.map +1 -0
- package/dist/utils/transientFrames.js +41 -0
- package/dist/utils/transientFrames.js.map +1 -0
- package/dist/utils/typingActive.d.ts +35 -0
- package/dist/utils/typingActive.d.ts.map +1 -0
- package/dist/utils/typingActive.js +22 -0
- package/dist/utils/typingActive.js.map +1 -0
- package/dist/utils/typingLoopBackstop.d.ts +64 -0
- package/dist/utils/typingLoopBackstop.d.ts.map +1 -0
- package/dist/utils/typingLoopBackstop.js +68 -0
- package/dist/utils/typingLoopBackstop.js.map +1 -0
- package/dist/utils/verbosityRender.d.ts +18 -0
- package/dist/utils/verbosityRender.d.ts.map +1 -0
- package/dist/utils/verbosityRender.js +17 -0
- package/dist/utils/verbosityRender.js.map +1 -0
- package/dist/utils/wedgeRecovery.d.ts +57 -0
- package/dist/utils/wedgeRecovery.d.ts.map +1 -0
- package/dist/utils/wedgeRecovery.js +24 -0
- package/dist/utils/wedgeRecovery.js.map +1 -0
- package/dist/utils.d.ts +30 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +61 -0
- package/dist/utils.js.map +1 -0
- package/dist/validation.d.ts +113 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +226 -0
- package/dist/validation.js.map +1 -0
- package/dist/voiceQueue.d.ts +7 -0
- package/dist/voiceQueue.d.ts.map +1 -0
- package/dist/voiceQueue.js +33 -0
- package/dist/voiceQueue.js.map +1 -0
- package/examples/.env.example +17 -0
- package/examples/docker-compose.yml +36 -0
- package/package.json +83 -4
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestWakeUpEngine = exports.turnActivityPersistStepMs = exports.unwatchedSweepMs = exports.watchedTurnPollMs = void 0;
|
|
4
|
+
const sessionKey_1 = require("../sessionKey");
|
|
5
|
+
const requestHeader_1 = require("./requestHeader");
|
|
6
|
+
const answerTail_1 = require("./answerTail");
|
|
7
|
+
const wakeUpRules_1 = require("./wakeUpRules");
|
|
8
|
+
/**
|
|
9
|
+
* @description The wake-up engine of the request/answer core (S4): it watches
|
|
10
|
+
* the turn each request (or reminder) started until that turn ends — one watch
|
|
11
|
+
* per REQUEST, so two requesters' open requests in one conversation are each
|
|
12
|
+
* followed to their own turn end (`requestGroup.ts`) — and runs a
|
|
13
|
+
* slower sweep over the open requests nobody is watching (the 15-minute
|
|
14
|
+
* follow-up after a progress note, and the backstop). Every decision is made by
|
|
15
|
+
* `wakeUpRules.ts`; this module only observes, persists and acts. The same sweep
|
|
16
|
+
* follows the agent's text after a final answer in a view that hides the stream
|
|
17
|
+
* (`answerTail.ts`), and reminds the agent once when that text is worth it.
|
|
18
|
+
*
|
|
19
|
+
* No adapter emits a turn-end event, so turns are POLLED through the injected
|
|
20
|
+
* `probeTurn` (the precedent is the deferred-compaction poll). The watch state is
|
|
21
|
+
* in memory: after a restart the persisted request times drive the sweep, and the
|
|
22
|
+
* backstop covers a turn whose tracking was lost.
|
|
23
|
+
*
|
|
24
|
+
* A wake-up is a reminder forwarded into the SAME session — never a request.
|
|
25
|
+
* The answer tails are in memory as well: a restart forgets them.
|
|
26
|
+
*/
|
|
27
|
+
/** How often a watched turn is polled for its end. */
|
|
28
|
+
exports.watchedTurnPollMs = 10_000;
|
|
29
|
+
/** How often the unwatched open requests are swept (follow-ups, backstop). */
|
|
30
|
+
exports.unwatchedSweepMs = 60_000;
|
|
31
|
+
/** A live turn's activity is persisted at most this often (it pushes the backstop back). */
|
|
32
|
+
exports.turnActivityPersistStepMs = 60_000;
|
|
33
|
+
class RequestWakeUpEngine {
|
|
34
|
+
deps;
|
|
35
|
+
now;
|
|
36
|
+
/** The watched turns by REQUEST id (a conversation may hold one per requester). */
|
|
37
|
+
watched = new Map();
|
|
38
|
+
/** Last persisted live-turn activity per request id, for the persist step. */
|
|
39
|
+
activityPersistedAt = new Map();
|
|
40
|
+
/** The tail after the latest final answer, by serialized conversation key. */
|
|
41
|
+
answerTails = new Map();
|
|
42
|
+
/** The request whose tail was last reminded and how often, by serialized conversation key (the reminder cap). */
|
|
43
|
+
answerTailReminders = new Map();
|
|
44
|
+
pollTimer = null;
|
|
45
|
+
sweepTimer = null;
|
|
46
|
+
isPolling = false;
|
|
47
|
+
isSweeping = false;
|
|
48
|
+
constructor(deps) {
|
|
49
|
+
this.deps = deps;
|
|
50
|
+
this.now = deps.now ?? Date.now;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @description Start the poll and sweep timers (unref'd: they never keep the
|
|
54
|
+
* process alive). A rejected tick is logged: unhandled, it would end the whole
|
|
55
|
+
* process (Node's default for an unhandled rejection).
|
|
56
|
+
*/
|
|
57
|
+
start() {
|
|
58
|
+
this.pollTimer ??= setInterval(() => {
|
|
59
|
+
void this.pollWatchedTurns().catch((e) => logWakeUpFailure('the watched-turn poll', e));
|
|
60
|
+
}, exports.watchedTurnPollMs);
|
|
61
|
+
this.sweepTimer ??= setInterval(() => {
|
|
62
|
+
void this.sweepUnwatchedRequests().catch((e) => logWakeUpFailure('the open-request sweep', e));
|
|
63
|
+
}, exports.unwatchedSweepMs);
|
|
64
|
+
this.pollTimer.unref?.();
|
|
65
|
+
this.sweepTimer.unref?.();
|
|
66
|
+
}
|
|
67
|
+
/** @description Stop both timers (shutdown). The persisted request times survive. */
|
|
68
|
+
stop() {
|
|
69
|
+
if (this.pollTimer)
|
|
70
|
+
clearInterval(this.pollTimer);
|
|
71
|
+
if (this.sweepTimer)
|
|
72
|
+
clearInterval(this.sweepTimer);
|
|
73
|
+
this.pollTimer = null;
|
|
74
|
+
this.sweepTimer = null;
|
|
75
|
+
}
|
|
76
|
+
/** The open request `requestId` when it belongs to `key`'s conversation, else `undefined`. */
|
|
77
|
+
getOpenRequestOf(key, requestId) {
|
|
78
|
+
const entry = this.deps.ledger.getOpenRequestById(requestId);
|
|
79
|
+
return entry && (0, sessionKey_1.keyToString)(entry.key) === (0, sessionKey_1.keyToString)(key) ? entry.request : undefined;
|
|
80
|
+
}
|
|
81
|
+
/** The watched turns of `key`'s conversation. */
|
|
82
|
+
getWatchedTurnsOf(key) {
|
|
83
|
+
const conversationKey = (0, sessionKey_1.keyToString)(key);
|
|
84
|
+
return [...this.watched.values()].filter((turn) => (0, sessionKey_1.keyToString)(turn.key) === conversationKey);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @description A request's message (or a reminder for it) was just forwarded to
|
|
88
|
+
* the conversation's session: watch the turn it starts. A watch already there
|
|
89
|
+
* for the SAME request is replaced — its newest message is the one that counts;
|
|
90
|
+
* another requester's request in the conversation keeps its own watch. A post
|
|
91
|
+
* retry still pending is moot from now on (R28): the session has the request.
|
|
92
|
+
*/
|
|
93
|
+
async trackForwardedTurn(key, requestId, options = { isRequestPrompt: false }) {
|
|
94
|
+
const request = this.getOpenRequestOf(key, requestId);
|
|
95
|
+
if (!request)
|
|
96
|
+
return;
|
|
97
|
+
// The agent works on an open request now: what it writes is owed to that one, not a tail.
|
|
98
|
+
this.answerTails.delete((0, sessionKey_1.keyToString)(key));
|
|
99
|
+
this.watched.set(requestId, {
|
|
100
|
+
key,
|
|
101
|
+
requestId,
|
|
102
|
+
progressCountAtTurnStart: request.progressAnswerCount,
|
|
103
|
+
hasSeenBusy: false,
|
|
104
|
+
hasSeenOutput: false,
|
|
105
|
+
isRequestPrompt: options.isRequestPrompt,
|
|
106
|
+
});
|
|
107
|
+
if (request.nextPostRetryAt !== undefined)
|
|
108
|
+
await this.deps.ledger.updateOpenRequest(request.id, { nextPostRetryAt: undefined });
|
|
109
|
+
await this.recordTurnActivity(request, true);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @description The request's prompt could not be posted to the session (no
|
|
113
|
+
* session came up, the forward failed): try again soon (R28). Once the retries
|
|
114
|
+
* are spent nothing is scheduled — the backstop and its alert take over. Never
|
|
115
|
+
* rejects: its caller is a post that already failed.
|
|
116
|
+
*/
|
|
117
|
+
async notePostFailed(key, requestId) {
|
|
118
|
+
const request = this.getOpenRequestOf(key, requestId);
|
|
119
|
+
if (!request)
|
|
120
|
+
return;
|
|
121
|
+
const retry = (0, wakeUpRules_1.getPostRetryUpdate)(request, this.now());
|
|
122
|
+
if (!retry)
|
|
123
|
+
return;
|
|
124
|
+
try {
|
|
125
|
+
await this.deps.ledger.updateOpenRequest(request.id, retry);
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
logWakeUpFailure(`scheduling a post retry of ${request.id}`, e);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/** @description The agent produced output in this conversation (a turn is under way). */
|
|
132
|
+
noteAgentOutput(key) {
|
|
133
|
+
for (const turn of this.getWatchedTurnsOf(key))
|
|
134
|
+
turn.hasSeenOutput = true;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @description An answer to `requestId` was delivered. Any answer ends the
|
|
138
|
+
* tail of the one before: the agent spoke to the requester. A final answer
|
|
139
|
+
* starts a fresh tail where the view hides the stream, unless its request
|
|
140
|
+
* already had all its reminders.
|
|
141
|
+
*/
|
|
142
|
+
noteAnswerDelivered(key, requestId, kind) {
|
|
143
|
+
const conversationKey = (0, sessionKey_1.keyToString)(key);
|
|
144
|
+
this.answerTails.delete(conversationKey);
|
|
145
|
+
if (kind !== 'final')
|
|
146
|
+
return;
|
|
147
|
+
const reminded = this.answerTailReminders.get(conversationKey);
|
|
148
|
+
if (reminded?.requestId === requestId && reminded.count >= answerTail_1.answerTailMaxReminders)
|
|
149
|
+
return;
|
|
150
|
+
if (this.deps.checkIsAnswerTailWatched?.(key) !== true)
|
|
151
|
+
return;
|
|
152
|
+
this.answerTails.set(conversationKey, { key, tail: (0, answerTail_1.createAnswerTail)(requestId, this.now()) });
|
|
153
|
+
}
|
|
154
|
+
/** @description The agent wrote text of its own in this conversation (not a sub-agent's, not a block the bot made). */
|
|
155
|
+
noteAnswerTailOutput(key) {
|
|
156
|
+
const entry = this.answerTails.get((0, sessionKey_1.keyToString)(key));
|
|
157
|
+
if (entry)
|
|
158
|
+
entry.tail = (0, answerTail_1.addAnswerTailOutput)(entry.tail, this.now());
|
|
159
|
+
}
|
|
160
|
+
/** Drop every watch of `key`'s conversation, its answer tail included. */
|
|
161
|
+
unwatchConversation(key) {
|
|
162
|
+
for (const turn of this.getWatchedTurnsOf(key))
|
|
163
|
+
this.watched.delete(turn.requestId);
|
|
164
|
+
this.answerTails.delete((0, sessionKey_1.keyToString)(key));
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* @description The person took over (interrupted, quit, restarted, switched or
|
|
168
|
+
* resumed the session, left the folder): every open request of the
|
|
169
|
+
* conversation closes silently and nothing wakes them.
|
|
170
|
+
*/
|
|
171
|
+
async cancelConversation(key) {
|
|
172
|
+
this.unwatchConversation(key);
|
|
173
|
+
for (const request of this.deps.ledger.listOpenRequestsOf(key))
|
|
174
|
+
await this.deps.ledger.closeRequest(request.id, 'cancelled');
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* @description The bot itself forwarded a "continue" nudge into the session (an
|
|
178
|
+
* API-error retry fired, or a usage-limit wait ended): watch the turn it starts
|
|
179
|
+
* as a fresh one, so the idle the error left behind is never read as its end.
|
|
180
|
+
* `isCountersReset` (the end of a limit wait) starts every open request's
|
|
181
|
+
* wake-up bookkeeping from zero — the wait was not the agent's silence — and
|
|
182
|
+
* lifts a limit stop: the work continues, so does the waking. A request the
|
|
183
|
+
* rules already gave up on stays given up. The one session turn the nudge
|
|
184
|
+
* starts is watched for every open request of the conversation.
|
|
185
|
+
*/
|
|
186
|
+
async trackContinuationTurn(key, options) {
|
|
187
|
+
for (const request of this.deps.ledger.listOpenRequestsOf(key)) {
|
|
188
|
+
if (options.isCountersReset) {
|
|
189
|
+
await this.deps.ledger.updateOpenRequest(request.id, {
|
|
190
|
+
silentTurnCount: 0,
|
|
191
|
+
wakeCount: 0,
|
|
192
|
+
nextWakeAt: undefined,
|
|
193
|
+
isLimitStopped: undefined,
|
|
194
|
+
limitWaitAnsweredFor: undefined,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
await this.trackForwardedTurn(key, request.id, { isRequestPrompt: options.isRequestPrompt === true });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* @description A usage-limit wait will not end by itself (auto-resume is off,
|
|
202
|
+
* the operator skipped or disabled this resume, or the bot gave up after its
|
|
203
|
+
* last attempt): nothing wakes the open request, the backstop included — a
|
|
204
|
+
* reminder would only spend an attempt against the same limit — until a limit
|
|
205
|
+
* wait ends with a resume or the operator's next message supersedes it. Never
|
|
206
|
+
* rejects: its callers are command handlers and the error path, and a failed
|
|
207
|
+
* write is logged instead.
|
|
208
|
+
*/
|
|
209
|
+
async stopWakingForLimitWait(key) {
|
|
210
|
+
this.unwatchConversation(key);
|
|
211
|
+
for (const request of this.deps.ledger.listOpenRequestsOf(key)) {
|
|
212
|
+
try {
|
|
213
|
+
await this.deps.ledger.updateOpenRequest(request.id, { isLimitStopped: true, nextWakeAt: undefined });
|
|
214
|
+
}
|
|
215
|
+
catch (e) {
|
|
216
|
+
logWakeUpFailure(`stopping the wake-ups of ${request.id}`, e);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/** @description One poll over the watched turns; exported for tests (the timer calls it). */
|
|
221
|
+
async pollWatchedTurns() {
|
|
222
|
+
if (this.isPolling)
|
|
223
|
+
return;
|
|
224
|
+
this.isPolling = true;
|
|
225
|
+
try {
|
|
226
|
+
for (const turn of [...this.watched.values()]) {
|
|
227
|
+
// One request's failure must not stop the others from being polled.
|
|
228
|
+
await this.pollWatchedTurn(turn).catch((e) => logWakeUpFailure(`polling ${turn.requestId}`, e));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
this.isPolling = false;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
async pollWatchedTurn(turn) {
|
|
236
|
+
// Replaced or dropped since this poll took its snapshot: the newer watch (if any) decides.
|
|
237
|
+
if (this.watched.get(turn.requestId) !== turn)
|
|
238
|
+
return;
|
|
239
|
+
const request = this.getOpenRequestOf(turn.key, turn.requestId);
|
|
240
|
+
if (!request) {
|
|
241
|
+
// Answered, cancelled or superseded meanwhile — nothing left to watch.
|
|
242
|
+
this.watched.delete(turn.requestId);
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
const probe = this.deps.probeTurn(turn.key);
|
|
246
|
+
if (probe.isBusy)
|
|
247
|
+
turn.hasSeenBusy = true;
|
|
248
|
+
if (turn.isRequestPrompt && request.isPromptTakenIn !== true && probe.isActive && (0, wakeUpRules_1.checkIsTurnInputConsumed)(turn, probe)) {
|
|
249
|
+
// R21: from now on a wake-up is a reminder — the agent has read the request.
|
|
250
|
+
await this.deps.ledger.updateOpenRequest(request.id, { isPromptTakenIn: true });
|
|
251
|
+
}
|
|
252
|
+
const turnState = (0, wakeUpRules_1.getWatchedTurnState)(turn, probe);
|
|
253
|
+
if (turnState === 'running') {
|
|
254
|
+
if (probe.isBusy)
|
|
255
|
+
await this.recordTurnActivity(request, false);
|
|
256
|
+
// Its end can no longer be seen: the sweep's backstop takes the request over.
|
|
257
|
+
else if ((0, wakeUpRules_1.checkIsWatchedTurnStale)(request, probe, this.now(), this.deps.backstopMs))
|
|
258
|
+
this.watched.delete(turn.requestId);
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
this.watched.delete(turn.requestId);
|
|
262
|
+
// A dead session is not a turn end: the backstop resumes it later.
|
|
263
|
+
if (turnState === 'sessionGone')
|
|
264
|
+
return;
|
|
265
|
+
await this.applyDecision(turn.key, request, (0, wakeUpRules_1.decideTurnEnd)(request, turn.progressCountAtTurnStart, this.now()));
|
|
266
|
+
}
|
|
267
|
+
/** @description One sweep over the open requests nobody watches; exported for tests. */
|
|
268
|
+
async sweepUnwatchedRequests() {
|
|
269
|
+
if (this.isSweeping)
|
|
270
|
+
return;
|
|
271
|
+
this.isSweeping = true;
|
|
272
|
+
try {
|
|
273
|
+
const openRequests = this.deps.ledger.listOpenRequests();
|
|
274
|
+
const openIds = new Set(openRequests.map(({ request }) => request.id));
|
|
275
|
+
for (const requestId of [...this.activityPersistedAt.keys()]) {
|
|
276
|
+
if (!openIds.has(requestId))
|
|
277
|
+
this.activityPersistedAt.delete(requestId);
|
|
278
|
+
}
|
|
279
|
+
for (const { key, request } of openRequests) {
|
|
280
|
+
if (this.watched.has(request.id))
|
|
281
|
+
continue;
|
|
282
|
+
// One conversation's failure must not stop the others from being swept.
|
|
283
|
+
await this.sweepOpenRequest(key, request).catch((e) => logWakeUpFailure(`sweeping ${(0, sessionKey_1.keyToString)(key)}`, e));
|
|
284
|
+
}
|
|
285
|
+
for (const [conversationKey, entry] of [...this.answerTails]) {
|
|
286
|
+
await this.sweepAnswerTail(conversationKey, entry).catch((e) => logWakeUpFailure(`the answer tail of ${conversationKey}`, e));
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
finally {
|
|
290
|
+
this.isSweeping = false;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
async sweepOpenRequest(key, request) {
|
|
294
|
+
const probe = this.deps.probeTurn(key);
|
|
295
|
+
if (probe.isBusy) {
|
|
296
|
+
await this.recordTurnActivity(request, false);
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
await this.applyDecision(key, request, (0, wakeUpRules_1.decideUnwatchedRequest)(request, probe, this.now(), this.deps.backstopMs));
|
|
300
|
+
}
|
|
301
|
+
async sweepAnswerTail(conversationKey, entry) {
|
|
302
|
+
if (this.answerTails.get(conversationKey) !== entry)
|
|
303
|
+
return;
|
|
304
|
+
if (this.deps.checkIsAnswerTailWatched?.(entry.key) !== true || this.deps.ledger.listOpenRequestsOf(entry.key).length > 0) {
|
|
305
|
+
// The stream is shown again, or a newer request is open and its own answer is owed.
|
|
306
|
+
this.answerTails.delete(conversationKey);
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const decision = (0, answerTail_1.decideAnswerTail)(entry.tail, this.deps.probeTurn(entry.key), this.now());
|
|
310
|
+
if (decision === 'wait')
|
|
311
|
+
return;
|
|
312
|
+
this.answerTails.delete(conversationKey);
|
|
313
|
+
if (decision === 'drop')
|
|
314
|
+
return;
|
|
315
|
+
const { requestId } = entry.tail;
|
|
316
|
+
const reminded = this.answerTailReminders.get(conversationKey);
|
|
317
|
+
this.answerTailReminders.set(conversationKey, { requestId, count: reminded?.requestId === requestId ? reminded.count + 1 : 1 });
|
|
318
|
+
const isDelivered = (await this.deps.remindAnswerTail?.(entry.key, (0, answerTail_1.buildAnswerTailReminder)(requestId))) ?? false;
|
|
319
|
+
console.log(`[requests] answer-tail reminder for ${requestId} ${isDelivered ? 'forwarded' : 'NOT delivered (the session could not be reached)'}`);
|
|
320
|
+
}
|
|
321
|
+
/** Persist that the agent is working on it, at most once per step unless forced. */
|
|
322
|
+
async recordTurnActivity(request, isForced) {
|
|
323
|
+
const nowMs = this.now();
|
|
324
|
+
const persistedAt = this.activityPersistedAt.get(request.id);
|
|
325
|
+
if (!isForced && persistedAt !== undefined && nowMs - persistedAt < exports.turnActivityPersistStepMs)
|
|
326
|
+
return;
|
|
327
|
+
this.activityPersistedAt.set(request.id, nowMs);
|
|
328
|
+
await this.deps.ledger.updateOpenRequest(request.id, { lastTurnActivityAt: nowMs });
|
|
329
|
+
}
|
|
330
|
+
async applyDecision(key, request, decision) {
|
|
331
|
+
if (decision.kind === 'none')
|
|
332
|
+
return;
|
|
333
|
+
let isStoppedMeanwhile = false;
|
|
334
|
+
const updated = await this.deps.ledger.updateOpenRequest(request.id, (current) => {
|
|
335
|
+
// `request` is a snapshot: a limit wait may have stopped the wake-ups since (no alert either).
|
|
336
|
+
isStoppedMeanwhile = (0, wakeUpRules_1.checkIsWakingStopped)(current);
|
|
337
|
+
return isStoppedMeanwhile ? {} : decision.update;
|
|
338
|
+
});
|
|
339
|
+
// Closed or superseded while we decided: the decision belonged to the old one.
|
|
340
|
+
if (!updated || isStoppedMeanwhile)
|
|
341
|
+
return;
|
|
342
|
+
if (decision.kind === 'followUpLater')
|
|
343
|
+
return;
|
|
344
|
+
if (decision.kind === 'alert') {
|
|
345
|
+
await this.raiseAlert(key, updated, decision.reason);
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
const message = (0, requestHeader_1.getWakeUpMessage)(updated, decision.reason);
|
|
349
|
+
const outcome = await this.deliverWakeUpSafely(key, updated, message);
|
|
350
|
+
if (outcome === 'delivered') {
|
|
351
|
+
await this.trackForwardedTurn(key, updated.id, { isRequestPrompt: message.isRequestPrompt });
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
if (outcome === 'requestGone')
|
|
355
|
+
return;
|
|
356
|
+
if (decision.reason === 'postRetry') {
|
|
357
|
+
// R28: a retry that failed again tries later; once spent, the backstop decides — no alert yet.
|
|
358
|
+
const retry = (0, wakeUpRules_1.getPostRetryUpdate)(updated, this.now());
|
|
359
|
+
if (retry)
|
|
360
|
+
await this.deps.ledger.updateOpenRequest(updated.id, retry);
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
const stopped = await this.deps.ledger.updateOpenRequest(updated.id, { isWakeStopped: true, nextWakeAt: undefined });
|
|
364
|
+
if (stopped)
|
|
365
|
+
await this.raiseAlert(key, stopped, 'wakeFailed');
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Resume the session if needed, re-check the request, forward the reminder. A
|
|
369
|
+
* step that threw did not reach the session: same as one that could not.
|
|
370
|
+
*/
|
|
371
|
+
async deliverWakeUpSafely(key, request, message) {
|
|
372
|
+
try {
|
|
373
|
+
if (!(await this.deps.prepareWakeUpSession(key, message)))
|
|
374
|
+
return 'failed';
|
|
375
|
+
// The resume took a while: a reminder for a request that closed, was replaced
|
|
376
|
+
// or stopped being woken meanwhile is stale.
|
|
377
|
+
const current = this.getOpenRequestOf(key, request.id);
|
|
378
|
+
if (!current || (0, wakeUpRules_1.checkIsWakingStopped)(current))
|
|
379
|
+
return 'requestGone';
|
|
380
|
+
await this.deps.forwardWakeUp(key, request, message);
|
|
381
|
+
return 'delivered';
|
|
382
|
+
}
|
|
383
|
+
catch (e) {
|
|
384
|
+
logWakeUpFailure(`delivering the reminder for ${request.id}`, e);
|
|
385
|
+
return 'failed';
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
async raiseAlert(key, request, reason) {
|
|
389
|
+
const alertRef = await this.deps.deliverAlert(key, request, reason);
|
|
390
|
+
if (alertRef !== null)
|
|
391
|
+
await this.deps.ledger.recordAlert(key, request.id, alertRef);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
exports.RequestWakeUpEngine = RequestWakeUpEngine;
|
|
395
|
+
/** Log a wake-up step that failed; the engine keeps running for every other request. */
|
|
396
|
+
function logWakeUpFailure(step, error) {
|
|
397
|
+
console.warn(`[requests] ${step} failed:`, error instanceof Error ? error.message : error);
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=wakeUpEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wakeUpEngine.js","sourceRoot":"","sources":["../../src/requests/wakeUpEngine.ts"],"names":[],"mappings":";;;AAAA,8CAA6D;AAG7D,mDAAuE;AACvE,6CAOsB;AACtB,+CAWuB;AAEvB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sDAAsD;AACzC,QAAA,iBAAiB,GAAG,MAAM,CAAC;AACxC,8EAA8E;AACjE,QAAA,gBAAgB,GAAG,MAAM,CAAC;AACvC,4FAA4F;AAC/E,QAAA,yBAAyB,GAAG,MAAM,CAAC;AAsChD,MAAa,mBAAmB;IACb,IAAI,CAA0B;IAC9B,GAAG,CAAe;IACnC,mFAAmF;IAClE,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IACjE,8EAA8E;IAC7D,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjE,8EAA8E;IAC7D,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpE,iHAAiH;IAChG,mBAAmB,GAAG,IAAI,GAAG,EAAgD,CAAC;IACvF,SAAS,GAA0B,IAAI,CAAC;IACxC,UAAU,GAA0B,IAAI,CAAC;IACzC,SAAS,GAAG,KAAK,CAAC;IAClB,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAY,IAA6B;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,GAAG,EAAE;YAClC,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC,EAAE,yBAAiB,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,GAAG,EAAE;YACnC,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;QACjG,CAAC,EAAE,wBAAgB,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5B,CAAC;IAED,qFAAqF;IACrF,IAAI;QACF,IAAI,IAAI,CAAC,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,UAAU;YAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,8FAA8F;IACtF,gBAAgB,CAAC,GAAe,EAAE,SAAiB;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,KAAK,IAAI,IAAA,wBAAW,EAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,CAAC;IAED,iDAAiD;IACzC,iBAAiB,CAAC,GAAe;QACvC,MAAM,eAAe,GAAG,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAW,EAAC,IAAI,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,CAAC;IAChG,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAe,EAAE,SAAiB,EAAE,UAAwC,EAAE,eAAe,EAAE,KAAK,EAAE;QAC7H,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,0FAA0F;QAC1F,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YAC1B,GAAG;YACH,SAAS;YACT,wBAAwB,EAAE,OAAO,CAAC,mBAAmB;YACrD,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,KAAK;YACpB,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;QAChI,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,GAAe,EAAE,SAAiB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,IAAA,gCAAkB,EAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,gBAAgB,CAAC,8BAA8B,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,eAAe,CAAC,GAAe;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,GAAe,EAAE,SAAiB,EAAE,IAAuB;QAC7E,MAAM,eAAe,GAAG,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,IAAI,mCAAsB;YAAE,OAAO;QAC1F,IAAI,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO;QAC/D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAA,6BAAgB,EAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,uHAAuH;IACvH,oBAAoB,CAAC,GAAe;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,GAAG,IAAA,gCAAmB,EAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,0EAA0E;IAClE,mBAAmB,CAAC,GAAe;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAe;QACtC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAC/H,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,qBAAqB,CAAC,GAAe,EAAE,OAAgE;QAC3G,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE;oBACnD,eAAe,EAAE,CAAC;oBAClB,SAAS,EAAE,CAAC;oBACZ,UAAU,EAAE,SAAS;oBACrB,cAAc,EAAE,SAAS;oBACzB,oBAAoB,EAAE,SAAS;iBAChC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,sBAAsB,CAAC,GAAe;QAC1C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YACxG,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,gBAAgB,CAAC,4BAA4B,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC9C,oEAAoE;gBACpE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAwB;QACpD,2FAA2F;QAC3F,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI;YAAE,OAAO;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,uEAAuE;YACvE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAA,sCAAwB,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACxH,6EAA6E;YAC7E,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,iCAAmB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAChE,8EAA8E;iBACzE,IAAI,IAAA,qCAAuB,EAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxH,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,mEAAmE;QACnE,IAAI,SAAS,KAAK,aAAa;YAAE,OAAO;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAA,2BAAa,EAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjH,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,sBAAsB;QAC1B,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAC3C,wEAAwE;gBACxE,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,IAAA,wBAAW,EAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9G,CAAC;YACD,KAAK,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAChI,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAe,EAAE,OAAyB;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAA,oCAAsB,EAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,eAAuB,EAAE,KAAwB;QAC7E,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,KAAK;YAAE,OAAO;QAC5D,IAAI,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1H,oFAAoF;YACpF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAA,6BAAgB,EAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1F,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO;QAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO;QAChC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChI,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAA,oCAAuB,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,uCAAuC,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kDAAkD,EAAE,CAAC,CAAC;IACpJ,CAAC;IAED,oFAAoF;IAC5E,KAAK,CAAC,kBAAkB,CAAC,OAAyB,EAAE,QAAiB;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,IAAI,WAAW,KAAK,SAAS,IAAI,KAAK,GAAG,WAAW,GAAG,iCAAyB;YAAE,OAAO;QACtG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAe,EAAE,OAAyB,EAAE,QAAwB;QAC9F,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QACrC,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;YAC/E,+FAA+F;YAC/F,kBAAkB,GAAG,IAAA,kCAAoB,EAAC,OAAO,CAAC,CAAC;YACnD,OAAO,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,+EAA+E;QAC/E,IAAI,CAAC,OAAO,IAAI,kBAAkB;YAAE,OAAO;QAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO;QAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,gCAAgB,EAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QACD,IAAI,OAAO,KAAK,aAAa;YAAE,OAAO;QACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACpC,+FAA+F;YAC/F,MAAM,KAAK,GAAG,IAAA,gCAAkB,EAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACrH,IAAI,OAAO;YAAE,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAC/B,GAAe,EACf,OAAyB,EACzB,OAAsB;QAEtB,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC;YAC3E,8EAA8E;YAC9E,6CAA6C;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,IAAI,IAAA,kCAAoB,EAAC,OAAO,CAAC;gBAAE,OAAO,aAAa,CAAC;YACpE,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,gBAAgB,CAAC,+BAA+B,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,GAAe,EAAE,OAAyB,EAAE,MAA0B;QAC7F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvF,CAAC;CACF;AA3VD,kDA2VC;AAED,wFAAwF;AACxF,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAc;IACpD,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { OpenRequestState, OpenRequestUpdate, RequestAlertReason, RequestWakeUpReason } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* @description The wake-up rules of the request/answer core (S4), as pure
|
|
4
|
+
* decisions over an open request and what the session looks like right now:
|
|
5
|
+
*
|
|
6
|
+
* turn ends, request still open
|
|
7
|
+
* └─ the turn sent NO answer → silent-turn counter +1
|
|
8
|
+
* counter < 2 → wake the same session at once
|
|
9
|
+
* counter = 2 → alert a person, stop waking
|
|
10
|
+
* └─ the turn sent a progress → counter = 0, wake again after 15 min
|
|
11
|
+
* cap: 10 wake-ups per request → alert, stop waking (loop guard)
|
|
12
|
+
* backstop: nothing seen working on it for 90 min (a dead process, tracking
|
|
13
|
+
* lost across a restart or a watch that never saw its turn end)
|
|
14
|
+
* → resume / wake the session
|
|
15
|
+
*
|
|
16
|
+
* A wake-up never interrupts a live turn and never starts while the session is
|
|
17
|
+
* blocked on something that is not a turn end (a pending native question, a
|
|
18
|
+
* compaction, an armed API-error retry or usage-limit wait). After the alert or
|
|
19
|
+
* the cap nothing wakes the request again until it closes or is superseded.
|
|
20
|
+
*/
|
|
21
|
+
/** Silent turns in a row that make the rules give up. */
|
|
22
|
+
export declare const maxSilentTurns = 2;
|
|
23
|
+
/** Wake-ups one request may receive before the loop guard gives up. */
|
|
24
|
+
export declare const maxWakeUpsPerRequest = 10;
|
|
25
|
+
/** After a progress answer, how long before the agent is reminded again. */
|
|
26
|
+
export declare const progressFollowUpDelayMs: number;
|
|
27
|
+
/**
|
|
28
|
+
* After a request's prompt could not be posted (no session, a forward that
|
|
29
|
+
* failed), when to try again (R28): soon, then less soon — these retries are not
|
|
30
|
+
* wake-ups of a silent agent, so they do not count against the wake-up cap.
|
|
31
|
+
*/
|
|
32
|
+
export declare const postRetryDelaysMs: readonly [number, number, number];
|
|
33
|
+
/**
|
|
34
|
+
* @description The next post retry after a failed post (R28), or `null` once the
|
|
35
|
+
* retries are spent — the normal backstop / alert rules take the request then.
|
|
36
|
+
*/
|
|
37
|
+
export declare function getPostRetryUpdate(request: OpenRequestState, nowMs: number): OpenRequestUpdate | null;
|
|
38
|
+
/** Default backstop: open with nothing seen working on it for this long. */
|
|
39
|
+
export declare const defaultRequestBackstopMs: number;
|
|
40
|
+
/**
|
|
41
|
+
* @description The backstop window, honouring the `REQUEST_BACKSTOP_MINUTES`
|
|
42
|
+
* override (a live test shortens it to finish a killed-process scenario in
|
|
43
|
+
* minutes). A missing, non-numeric or non-positive value keeps the default.
|
|
44
|
+
*/
|
|
45
|
+
export declare function getRequestBackstopMs(overrideMinutes: string | undefined): number;
|
|
46
|
+
/**
|
|
47
|
+
* @name SessionTurnProbe
|
|
48
|
+
* @description What the session of a conversation looks like right now.
|
|
49
|
+
* `hasUnconsumedInput` is `null` for a backend that cannot tell (tmux Claude).
|
|
50
|
+
*/
|
|
51
|
+
export interface SessionTurnProbe {
|
|
52
|
+
isActive: boolean;
|
|
53
|
+
isBusy: boolean;
|
|
54
|
+
hasUnconsumedInput: boolean | null;
|
|
55
|
+
/**
|
|
56
|
+
* A pending native question, a compaction, an armed retry / limit wait, a
|
|
57
|
+
* wedged-turn recovery in flight, a retry whose "continue" nudge is on its way,
|
|
58
|
+
* or a session start under way.
|
|
59
|
+
*/
|
|
60
|
+
isTurnEndBlocked: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @name WakeUpDecision
|
|
64
|
+
* @description What to do for an open request, and the bookkeeping to persist
|
|
65
|
+
* with it (`update`, applied before the action runs).
|
|
66
|
+
*/
|
|
67
|
+
export type WakeUpDecision = {
|
|
68
|
+
kind: 'none';
|
|
69
|
+
} | {
|
|
70
|
+
kind: 'wake';
|
|
71
|
+
reason: RequestWakeUpReason;
|
|
72
|
+
update: OpenRequestUpdate;
|
|
73
|
+
} | {
|
|
74
|
+
kind: 'followUpLater';
|
|
75
|
+
update: OpenRequestUpdate;
|
|
76
|
+
} | {
|
|
77
|
+
kind: 'alert';
|
|
78
|
+
reason: RequestAlertReason;
|
|
79
|
+
update: OpenRequestUpdate;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* @description Whether anything may still wake the request: the rules' own
|
|
83
|
+
* give-up (`isWakeStopped`, for good) and a limit stop (`isLimitStopped`, until a
|
|
84
|
+
* limit wait ends with a resume) both say no.
|
|
85
|
+
*/
|
|
86
|
+
export declare function checkIsWakingStopped(request: OpenRequestState): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* @description The decision at the end of a turn the request's message started.
|
|
89
|
+
* `progressCountAtTurnStart` is the request's progress-answer count when the
|
|
90
|
+
* turn began, so an increase means this turn sent a progress note (a `question`
|
|
91
|
+
* or `final` would have closed the request — there is nothing to decide then).
|
|
92
|
+
*/
|
|
93
|
+
export declare function decideTurnEnd(request: OpenRequestState, progressCountAtTurnStart: number, nowMs: number): WakeUpDecision;
|
|
94
|
+
/**
|
|
95
|
+
* @description The periodic decision for an open request whose turn is NOT being
|
|
96
|
+
* watched: a due progress follow-up, or the backstop. Never while the session is
|
|
97
|
+
* working or blocked — and a live turn counts as activity, which pushes the
|
|
98
|
+
* backstop back (the caller records it).
|
|
99
|
+
*/
|
|
100
|
+
export declare function decideUnwatchedRequest(request: OpenRequestState, probe: SessionTurnProbe, nowMs: number, backstopMs: number): WakeUpDecision;
|
|
101
|
+
/**
|
|
102
|
+
* @name WatchedTurn
|
|
103
|
+
* @description The in-memory view of a turn started by a request's message (or
|
|
104
|
+
* by a wake-up reminder), until it ends.
|
|
105
|
+
*/
|
|
106
|
+
export interface WatchedTurn {
|
|
107
|
+
requestId: string;
|
|
108
|
+
progressCountAtTurnStart: number;
|
|
109
|
+
/** Busy was observed since the forward (the backend started on it). */
|
|
110
|
+
hasSeenBusy: boolean;
|
|
111
|
+
/** The agent produced output since the forward. */
|
|
112
|
+
hasSeenOutput: boolean;
|
|
113
|
+
/** The turn carries the request's own prompt (not a reminder or a "continue" nudge) — R21. */
|
|
114
|
+
isRequestPrompt: boolean;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* @name WatchedTurnState
|
|
118
|
+
* @description Where a watched turn stands: still running (or not started on
|
|
119
|
+
* our message yet), ended, or gone (the session is no longer active — the
|
|
120
|
+
* backstop takes over). A session not active while something holds its turn
|
|
121
|
+
* open — its START under way, a recovery restarting it — is coming, not gone:
|
|
122
|
+
* the message forwarded to it waits in the startup buffer and replays once the
|
|
123
|
+
* session is up, so the watch must survive to see THAT turn end. Dropped, the
|
|
124
|
+
* replayed turn would run unwatched: a silent one would wait for the backstop
|
|
125
|
+
* (90 min) instead of its wake-up, and a backstop wake re-posts the request.
|
|
126
|
+
*/
|
|
127
|
+
export type WatchedTurnState = 'running' | 'ended' | 'sessionGone';
|
|
128
|
+
/**
|
|
129
|
+
* @description Has the backend taken in what was forwarded for this turn? Its own
|
|
130
|
+
* signal when it has one (nothing written is still unread), else busy or output
|
|
131
|
+
* seen since the forward.
|
|
132
|
+
*/
|
|
133
|
+
export declare function checkIsTurnInputConsumed(turn: WatchedTurn, probe: SessionTurnProbe): boolean;
|
|
134
|
+
/**
|
|
135
|
+
* @description Has the turn the request's message started ended? The backend
|
|
136
|
+
* must first have TAKEN IN the message — otherwise an idle reported for the
|
|
137
|
+
* earlier turn would read as this turn's end: a backend that tracks it says so
|
|
138
|
+
* (`hasUnconsumedInput`), one that does not must have been seen busy or
|
|
139
|
+
* producing output since the forward (the busy-onset race).
|
|
140
|
+
*/
|
|
141
|
+
export declare function getWatchedTurnState(turn: WatchedTurn, probe: SessionTurnProbe): WatchedTurnState;
|
|
142
|
+
/**
|
|
143
|
+
* @description Has a watched turn that is still `running` lost its tracking? It
|
|
144
|
+
* is idle, nothing holds it open, and nothing was seen working on the request
|
|
145
|
+
* for the whole backstop window — so what keeps it `running` is a consumption
|
|
146
|
+
* signal that never settled (an input counter left behind, a turn start never
|
|
147
|
+
* seen). Dropping the watch hands the request to the backstop: a watch that
|
|
148
|
+
* stayed forever would silence every wake-up and alert of the request.
|
|
149
|
+
*/
|
|
150
|
+
export declare function checkIsWatchedTurnStale(request: OpenRequestState, probe: SessionTurnProbe, nowMs: number, backstopMs: number): boolean;
|
|
151
|
+
//# sourceMappingURL=wakeUpRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wakeUpRules.d.ts","sourceRoot":"","sources":["../../src/requests/wakeUpRules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG5G;;;;;;;;;;;;;;;;;;GAkBG;AAEH,yDAAyD;AACzD,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,mCAAsD,CAAC;AAErF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAIrG;AAED,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEhF;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAE7E;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAEvE;AAyBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAaxH;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,cAAc,CAehB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,aAAa,EAAE,OAAO,CAAC;IACvB,8FAA8F;IAC9F,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE5F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAIhG;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAGT"}
|