charness 0.0.0-stage → 3.1.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 +1196 -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 +1351 -0
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeCliAdapter.js +4239 -0
- package/dist/adapters/claudeCliAdapter.js.map +1 -0
- package/dist/adapters/claudeConfigDir.d.ts +40 -0
- package/dist/adapters/claudeConfigDir.d.ts.map +1 -0
- package/dist/adapters/claudeConfigDir.js +3 -0
- package/dist/adapters/claudeConfigDir.js.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +580 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.js +1891 -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 +260 -0
- package/dist/adapters/createAdapter.d.ts.map +1 -0
- package/dist/adapters/createAdapter.js +512 -0
- package/dist/adapters/createAdapter.js.map +1 -0
- package/dist/adapters/openCodeAdapter.d.ts +1469 -0
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
- package/dist/adapters/openCodeAdapter.js +4623 -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 +44 -0
- package/dist/agentLogin/agentLogin.d.ts.map +1 -0
- package/dist/agentLogin/agentLogin.js +530 -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 +214 -0
- package/dist/apiErrorRetry.d.ts.map +1 -0
- package/dist/apiErrorRetry.js +382 -0
- package/dist/apiErrorRetry.js.map +1 -0
- package/dist/apiRetryKick.d.ts +157 -0
- package/dist/apiRetryKick.d.ts.map +1 -0
- package/dist/apiRetryKick.js +174 -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 +11226 -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/claudeProfiles.d.ts +42 -0
- package/dist/cli/claudeProfiles.d.ts.map +1 -0
- package/dist/cli/claudeProfiles.js +106 -0
- package/dist/cli/claudeProfiles.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 +140 -0
- package/dist/cli.js.map +1 -0
- package/dist/connectors/jira/adf.d.ts +74 -0
- package/dist/connectors/jira/adf.d.ts.map +1 -0
- package/dist/connectors/jira/adf.js +412 -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 +59 -0
- package/dist/connectors/jira/answerSink.d.ts.map +1 -0
- package/dist/connectors/jira/answerSink.js +234 -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 +50 -0
- package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentTool.js +166 -0
- package/dist/connectors/jira/attachmentTool.js.map +1 -0
- package/dist/connectors/jira/client.d.ts +522 -0
- package/dist/connectors/jira/client.d.ts.map +1 -0
- package/dist/connectors/jira/client.js +491 -0
- package/dist/connectors/jira/client.js.map +1 -0
- package/dist/connectors/jira/config.d.ts +104 -0
- package/dist/connectors/jira/config.d.ts.map +1 -0
- package/dist/connectors/jira/config.js +323 -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 +71 -0
- package/dist/connectors/jira/connector.d.ts.map +1 -0
- package/dist/connectors/jira/connector.js +312 -0
- package/dist/connectors/jira/connector.js.map +1 -0
- package/dist/connectors/jira/contextLedger.d.ts +60 -0
- package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
- package/dist/connectors/jira/contextLedger.js +196 -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 +141 -0
- package/dist/connectors/jira/inbound.d.ts.map +1 -0
- package/dist/connectors/jira/inbound.js +331 -0
- package/dist/connectors/jira/inbound.js.map +1 -0
- package/dist/connectors/jira/issueBlocks.d.ts +74 -0
- package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
- package/dist/connectors/jira/issueBlocks.js +257 -0
- package/dist/connectors/jira/issueBlocks.js.map +1 -0
- package/dist/connectors/jira/issueContext.d.ts +31 -0
- package/dist/connectors/jira/issueContext.d.ts.map +1 -0
- package/dist/connectors/jira/issueContext.js +70 -0
- package/dist/connectors/jira/issueContext.js.map +1 -0
- package/dist/connectors/jira/issueDelta.d.ts +38 -0
- package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
- package/dist/connectors/jira/issueDelta.js +59 -0
- package/dist/connectors/jira/issueDelta.js.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts +22 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.js +105 -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 +39 -0
- package/dist/connectors/jira/prompt.d.ts.map +1 -0
- package/dist/connectors/jira/prompt.js +102 -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 +18 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.js +106 -0
- package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/jira/trigger.d.ts +54 -0
- package/dist/connectors/jira/trigger.d.ts.map +1 -0
- package/dist/connectors/jira/trigger.js +101 -0
- package/dist/connectors/jira/trigger.js.map +1 -0
- package/dist/connectors/jira/triggerLog.d.ts +53 -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/trustedGroup.d.ts +54 -0
- package/dist/connectors/jira/trustedGroup.d.ts.map +1 -0
- package/dist/connectors/jira/trustedGroup.js +98 -0
- package/dist/connectors/jira/trustedGroup.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 +34 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js +112 -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/claudeAccounts.d.ts +58 -0
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/claudeAccounts.js +591 -0
- package/dist/connectors/telegram/commands/claudeAccounts.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/fallbackChain.d.ts +49 -0
- package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/fallbackChain.js +624 -0
- package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts +117 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.js +966 -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 +665 -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 +694 -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 +665 -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 +665 -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 +665 -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 +665 -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 +665 -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 +665 -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 +668 -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 +670 -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 +665 -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 +665 -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 +363 -0
- package/dist/scheduler/mcpSurface.d.ts.map +1 -0
- package/dist/scheduler/mcpSurface.js +1297 -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 +1416 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +2128 -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 +1022 -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 +56 -0
- package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
- package/dist/utils/autoContinueOnLimit.js +79 -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/claudeAccountPickerPlan.d.ts +85 -0
- package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -0
- package/dist/utils/claudeAccountPickerPlan.js +123 -0
- package/dist/utils/claudeAccountPickerPlan.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/claudeLimitSwitch.d.ts +40 -0
- package/dist/utils/claudeLimitSwitch.d.ts.map +1 -0
- package/dist/utils/claudeLimitSwitch.js +54 -0
- package/dist/utils/claudeLimitSwitch.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/claudeProfileUsageLines.d.ts +15 -0
- package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -0
- package/dist/utils/claudeProfileUsageLines.js +42 -0
- package/dist/utils/claudeProfileUsageLines.js.map +1 -0
- package/dist/utils/claudeProfiles.d.ts +117 -0
- package/dist/utils/claudeProfiles.d.ts.map +1 -0
- package/dist/utils/claudeProfiles.js +285 -0
- package/dist/utils/claudeProfiles.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 +214 -0
- package/dist/utils/claudeStreamJson.d.ts.map +1 -0
- package/dist/utils/claudeStreamJson.js +364 -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/claudeUsage.d.ts +209 -0
- package/dist/utils/claudeUsage.d.ts.map +1 -0
- package/dist/utils/claudeUsage.js +413 -0
- package/dist/utils/claudeUsage.js.map +1 -0
- package/dist/utils/claudeUsageRefresher.d.ts +44 -0
- package/dist/utils/claudeUsageRefresher.d.ts.map +1 -0
- package/dist/utils/claudeUsageRefresher.js +95 -0
- package/dist/utils/claudeUsageRefresher.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/fallbackBridge.d.ts +32 -0
- package/dist/utils/fallbackBridge.d.ts.map +1 -0
- package/dist/utils/fallbackBridge.js +62 -0
- package/dist/utils/fallbackBridge.js.map +1 -0
- package/dist/utils/fallbackChain.d.ts +299 -0
- package/dist/utils/fallbackChain.d.ts.map +1 -0
- package/dist/utils/fallbackChain.js +542 -0
- package/dist/utils/fallbackChain.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 +238 -0
- package/dist/utils/jsonStreamHost.d.ts.map +1 -0
- package/dist/utils/jsonStreamHost.js +438 -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/modelRecentPlan.d.ts +56 -0
- package/dist/utils/modelRecentPlan.d.ts.map +1 -0
- package/dist/utils/modelRecentPlan.js +107 -0
- package/dist/utils/modelRecentPlan.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 +79 -0
- package/dist/utils/threadStatusReport.d.ts.map +1 -0
- package/dist/utils/threadStatusReport.js +88 -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,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Pure decision layer for the boot-time readiness status message
|
|
4
|
+
* (plan 2026-07-12-startup-readiness-status). On startup the bot tells the owner
|
|
5
|
+
* whether it can process messages in the topics / group, or — if not — a numbered
|
|
6
|
+
* list of only the setup steps that are still unmet. This module holds the pure,
|
|
7
|
+
* unit-testable core: which items are unmet, whether the bot is ready, the
|
|
8
|
+
* cadence gate, and the full message composition (via an injected translate so
|
|
9
|
+
* the numbering / header logic is testable without the i18n runtime). `bot.ts`
|
|
10
|
+
* gathers the live facts and does the actual Telegram send.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.botRightLabels = void 0;
|
|
14
|
+
exports.getMissingBotRights = getMissingBotRights;
|
|
15
|
+
exports.formatMissingRights = formatMissingRights;
|
|
16
|
+
exports.buildReadinessReport = buildReadinessReport;
|
|
17
|
+
exports.checkShouldSendStartupStatus = checkShouldSendStartupStatus;
|
|
18
|
+
exports.resolveStartupTargets = resolveStartupTargets;
|
|
19
|
+
exports.buildStartupStatusText = buildStartupStatusText;
|
|
20
|
+
/** The order every checklist item renders in — matches the IDEAL list. */
|
|
21
|
+
const readinessItemOrder = [
|
|
22
|
+
'create_group',
|
|
23
|
+
'grant_admin',
|
|
24
|
+
'bind_topic',
|
|
25
|
+
'install_agent',
|
|
26
|
+
'optional_groq',
|
|
27
|
+
'optional_owner',
|
|
28
|
+
];
|
|
29
|
+
/** The REQUIRED items — an unmet one makes the bot not-ready. */
|
|
30
|
+
const requiredItemKeys = [
|
|
31
|
+
'create_group',
|
|
32
|
+
'grant_admin',
|
|
33
|
+
'bind_topic',
|
|
34
|
+
'install_agent',
|
|
35
|
+
];
|
|
36
|
+
/**
|
|
37
|
+
* @description Telegram's canonical permission names for the three rights the
|
|
38
|
+
* bot needs — proper nouns shown verbatim in the `grant_admin` item so the
|
|
39
|
+
* operator can find the exact toggles in Telegram's admin UI. Kept here (not in
|
|
40
|
+
* i18n) because they are feature identifiers, not translated prose.
|
|
41
|
+
*/
|
|
42
|
+
exports.botRightLabels = {
|
|
43
|
+
manageTopics: 'Manage Topics',
|
|
44
|
+
pin: 'Pin Messages',
|
|
45
|
+
delete: 'Delete Messages',
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* @description The admin rights the bot is missing. A `null` rights object (not
|
|
49
|
+
* an admin / unreadable) counts as ALL three missing.
|
|
50
|
+
*/
|
|
51
|
+
function getMissingBotRights(rights) {
|
|
52
|
+
if (!rights)
|
|
53
|
+
return ['manageTopics', 'pin', 'delete'];
|
|
54
|
+
const missing = [];
|
|
55
|
+
if (!rights.manageTopics)
|
|
56
|
+
missing.push('manageTopics');
|
|
57
|
+
if (!rights.pin)
|
|
58
|
+
missing.push('pin');
|
|
59
|
+
if (!rights.delete)
|
|
60
|
+
missing.push('delete');
|
|
61
|
+
return missing;
|
|
62
|
+
}
|
|
63
|
+
/** Join the missing rights into the human list for the `grant_admin` item copy. */
|
|
64
|
+
function formatMissingRights(keys) {
|
|
65
|
+
return keys.map((key) => exports.botRightLabels[key]).join(', ');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @description Turn the live facts into the readiness verdict.
|
|
69
|
+
*
|
|
70
|
+
* `isReady` is true iff NONE of the required items are unmet:
|
|
71
|
+
* groupPaired && all admin rights held && a binding exists && an agent CLI installed.
|
|
72
|
+
* The optional groq / owner items are informational — they populate `unmetKeys`
|
|
73
|
+
* (so they render inside a not-ready checklist) but never flip `isReady`.
|
|
74
|
+
*
|
|
75
|
+
* `grant_admin` is only unmet while a group IS paired (you cannot grant admin
|
|
76
|
+
* before the group exists — an unpaired bot shows `create_group` instead).
|
|
77
|
+
*/
|
|
78
|
+
function buildReadinessReport(facts) {
|
|
79
|
+
const missingRights = facts.groupPaired ? getMissingBotRights(facts.botRights) : [];
|
|
80
|
+
const unmet = new Set();
|
|
81
|
+
if (!facts.groupPaired)
|
|
82
|
+
unmet.add('create_group');
|
|
83
|
+
if (facts.groupPaired && missingRights.length > 0)
|
|
84
|
+
unmet.add('grant_admin');
|
|
85
|
+
if (!facts.hasBinding)
|
|
86
|
+
unmet.add('bind_topic');
|
|
87
|
+
if (facts.availableAgents.length === 0)
|
|
88
|
+
unmet.add('install_agent');
|
|
89
|
+
if (!facts.hasGroq)
|
|
90
|
+
unmet.add('optional_groq');
|
|
91
|
+
if (!facts.ownerSet && facts.usedGeneralFallback)
|
|
92
|
+
unmet.add('optional_owner');
|
|
93
|
+
const isReady = requiredItemKeys.every((key) => !unmet.has(key));
|
|
94
|
+
const unmetKeys = readinessItemOrder.filter((key) => unmet.has(key));
|
|
95
|
+
return { isReady, unmetKeys, missingRights };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @description Cadence gate. A COLD start always sends (ready or not). A HOT
|
|
99
|
+
* reload stays silent when fully ready (no spam on frequent rebuilds) and sends
|
|
100
|
+
* only when something is missing.
|
|
101
|
+
*/
|
|
102
|
+
function checkShouldSendStartupStatus(input) {
|
|
103
|
+
return !(input.isHotReload && input.isReady);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @description Resolve the ordered delivery targets for the boot-time status.
|
|
107
|
+
*
|
|
108
|
+
* The READY status is only meaningful in the owner's private DM, so it is
|
|
109
|
+
* DM-ONLY and NEVER falls back to the group's General topic (a "✅ Ready" in the
|
|
110
|
+
* shared group is pure noise). If there is no owner DM, a ready status resolves
|
|
111
|
+
* to an empty list — nothing is delivered (the caller logs it).
|
|
112
|
+
*
|
|
113
|
+
* The NOT-READY checklist is actionable, so it uses the owner DM when available
|
|
114
|
+
* and falls back to General otherwise (owner first):
|
|
115
|
+
*
|
|
116
|
+
* ready → hasOwnerTarget ? ['owner'] : [] (private-only, never 'general')
|
|
117
|
+
* not-ready → ['owner', 'general'] filtered to the available surfaces (owner first)
|
|
118
|
+
*/
|
|
119
|
+
function resolveStartupTargets(isReady, hasOwnerTarget, hasGeneralTarget) {
|
|
120
|
+
if (isReady) {
|
|
121
|
+
return hasOwnerTarget ? ['owner'] : [];
|
|
122
|
+
}
|
|
123
|
+
const targets = [];
|
|
124
|
+
if (hasOwnerTarget)
|
|
125
|
+
targets.push('owner');
|
|
126
|
+
if (hasGeneralTarget)
|
|
127
|
+
targets.push('general');
|
|
128
|
+
return targets;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @description Compose the full status message. Ready ⇒ the short ready line.
|
|
132
|
+
* Not ready ⇒ a header followed by the unmet items renumbered 1..N (the
|
|
133
|
+
* `grant_admin` line interpolates the missing-rights list).
|
|
134
|
+
*/
|
|
135
|
+
function buildStartupStatusText(report, translate) {
|
|
136
|
+
if (report.isReady) {
|
|
137
|
+
return translate('startup.ready');
|
|
138
|
+
}
|
|
139
|
+
const header = translate('startup.header_not_ready');
|
|
140
|
+
const lines = report.unmetKeys.map((key, index) => {
|
|
141
|
+
const itemText = key === 'grant_admin'
|
|
142
|
+
? translate('startup.item.grant_admin', { missing: formatMissingRights(report.missingRights) })
|
|
143
|
+
: translate(`startup.item.${key}`);
|
|
144
|
+
return `${index + 1}. ${itemText}`;
|
|
145
|
+
});
|
|
146
|
+
return `${header}\n\n${lines.join('\n')}`;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=startupReadiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startupReadiness.js","sourceRoot":"","sources":["../../src/utils/startupReadiness.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AA+FH,kDAOC;AAGD,kDAEC;AAaD,oDAeC;AAOD,oEAKC;AAmBD,sDAYC;AAUD,wDAgBC;AA/ID,0EAA0E;AAC1E,MAAM,kBAAkB,GAAuB;IAC7C,cAAc;IACd,aAAa;IACb,YAAY;IACZ,eAAe;IACf,eAAe;IACf,gBAAgB;CACjB,CAAC;AAEF,iEAAiE;AACjE,MAAM,gBAAgB,GAAuB;IAC3C,cAAc;IACd,aAAa;IACb,YAAY;IACZ,eAAe;CAChB,CAAC;AAEF;;;;;GAKG;AACU,QAAA,cAAc,GAAgC;IACzD,YAAY,EAAE,eAAe;IAC7B,GAAG,EAAE,cAAc;IACnB,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAEF;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,MAA6B;IAC/D,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,YAAY;QAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mFAAmF;AACnF,SAAgB,mBAAmB,CAAC,IAAmB;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,oBAAoB,CAAC,KAAqB;IACxD,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC5E,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,mBAAmB;QAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAErE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAgB,4BAA4B,CAAC,KAG5C;IACC,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAKD;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CACnC,OAAgB,EAChB,cAAuB,EACvB,gBAAyB;IAEzB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,IAAI,cAAc;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,gBAAgB;QAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,MAAuB,EACvB,SAAiC;IAEjC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAChD,MAAM,QAAQ,GACZ,GAAG,KAAK,aAAa;YACnB,CAAC,CAAC,SAAS,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/F,CAAC,CAAC,SAAS,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,GAAG,KAAK,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type StatusFlushAction = 'send' | 'skip' | 'defer';
|
|
2
|
+
export interface StatusFlushDecisionInput {
|
|
3
|
+
/** Frame the loop is about to send. */
|
|
4
|
+
nextText: string;
|
|
5
|
+
/** Last frame that successfully reached Telegram for this thread, or null. */
|
|
6
|
+
lastSentText: string | null;
|
|
7
|
+
/** Is the chat currently inside a Telegram 429 cooldown? */
|
|
8
|
+
isRateLimited: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @description Decide what the status-flush loop should do with `nextText`.
|
|
12
|
+
*
|
|
13
|
+
* Cooldown wins over dedup: while rate-limited we always `defer` (even an
|
|
14
|
+
* identical frame) so the loop exits leaving the latest `pendingText` for the
|
|
15
|
+
* post-cooldown flush, instead of spinning and re-checking the clock.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getStatusFlushAction(input: StatusFlushDecisionInput): StatusFlushAction;
|
|
18
|
+
//# sourceMappingURL=statusFlushDecision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusFlushDecision.d.ts","sourceRoot":"","sources":["../../src/utils/statusFlushDecision.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,4DAA4D;IAC5D,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,GAAG,iBAAiB,CAWvF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStatusFlushAction = getStatusFlushAction;
|
|
4
|
+
/**
|
|
5
|
+
* @description Pure decision for the per-thread status-coalescer flush loop:
|
|
6
|
+
* given the frame about to be sent, the last frame that actually reached
|
|
7
|
+
* Telegram, and whether the chat is in a 429 cooldown, decide what the loop
|
|
8
|
+
* should do with this frame.
|
|
9
|
+
*
|
|
10
|
+
* Extracted from `bot.ts`'s `flushStatusCoalescer` so the rule is unit-testable
|
|
11
|
+
* without the Telegraf / bucket machinery (same pattern as
|
|
12
|
+
* `clearThreadOutputQueues.ts`). Status frames are disposable spinner ticks:
|
|
13
|
+
* during congestion it is correct to drop or defer them rather than burn the
|
|
14
|
+
* chat-wide send budget that interactive command replies and agent output need.
|
|
15
|
+
*
|
|
16
|
+
* @name StatusFlushAction
|
|
17
|
+
* @description
|
|
18
|
+
* - `send` — text differs from the last sent frame and the chat is not in a
|
|
19
|
+
* cooldown: send it now.
|
|
20
|
+
* - `skip` — text equals the last sent frame after stripping the leading
|
|
21
|
+
* spinner glyph: sending it would either earn a `400 "message is not
|
|
22
|
+
* modified"` (truly identical) or an `editMessageText` that changed ONLY the
|
|
23
|
+
* rotating liveness glyph — a per-second edit purely for animation. Either
|
|
24
|
+
* way it wastes a token, so consume `pendingText` and move on. The native
|
|
25
|
+
* typing indicator already carries alive-ness; the visible status frame's
|
|
26
|
+
* glyph effectively freezes until the activity text actually changes.
|
|
27
|
+
* - `defer` — the chat is rate-limited: do NOT send (a stale spinner frame is
|
|
28
|
+
* not worth a token while a 429 cooldown is starving real traffic). Leave
|
|
29
|
+
* `pendingText` in place so the newest frame is sent once the cooldown lifts.
|
|
30
|
+
*/
|
|
31
|
+
const claudeScrapeShapes_1 = require("./claudeScrapeShapes");
|
|
32
|
+
/**
|
|
33
|
+
* @description Decide what the status-flush loop should do with `nextText`.
|
|
34
|
+
*
|
|
35
|
+
* Cooldown wins over dedup: while rate-limited we always `defer` (even an
|
|
36
|
+
* identical frame) so the loop exits leaving the latest `pendingText` for the
|
|
37
|
+
* post-cooldown flush, instead of spinning and re-checking the clock.
|
|
38
|
+
*/
|
|
39
|
+
function getStatusFlushAction(input) {
|
|
40
|
+
if (input.isRateLimited)
|
|
41
|
+
return 'defer';
|
|
42
|
+
if (input.lastSentText === null)
|
|
43
|
+
return 'send';
|
|
44
|
+
// Compare on a glyph-stripped signature: the liveness frame rotates its
|
|
45
|
+
// leading spinner glyph every tick, so an exact-string compare treated each
|
|
46
|
+
// cosmetic-only tick as new → one editMessageText per second. Equal after
|
|
47
|
+
// stripping the lead glyph ⇒ skip (no edit); a real activity-text change ⇒ send.
|
|
48
|
+
if ((0, claudeScrapeShapes_1.stripLeadingSpinnerGlyph)(input.nextText) === (0, claudeScrapeShapes_1.stripLeadingSpinnerGlyph)(input.lastSentText)) {
|
|
49
|
+
return 'skip';
|
|
50
|
+
}
|
|
51
|
+
return 'send';
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=statusFlushDecision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusFlushDecision.js","sourceRoot":"","sources":["../../src/utils/statusFlushDecision.ts"],"names":[],"mappings":";;AA+CA,oDAWC;AA1DD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,6DAAgE;AAahE;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,KAA+B;IAClE,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC;IACxC,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAC/C,wEAAwE;IACxE,4EAA4E;IAC5E,0EAA0E;IAC1E,iFAAiF;IACjF,IAAI,IAAA,6CAAwB,EAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAA,6CAAwB,EAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9F,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { DisplayVerbosityMode } from '../types';
|
|
2
|
+
/** Part kinds a sub-agent (child session) event can carry that the adapter
|
|
3
|
+
* must decide on. `step-start`/`step-finish`/unknown parts are skipped before
|
|
4
|
+
* the matrix is consulted (same as for the parent's own parts). */
|
|
5
|
+
export type SubagentPartKind = 'text' | 'tool' | 'reasoning';
|
|
6
|
+
/**
|
|
7
|
+
* @name SubagentPartAction
|
|
8
|
+
* @description What the adapter does with one sub-agent part event.
|
|
9
|
+
*
|
|
10
|
+
* - `status` — emit/refresh a transient status only (for `text` that is the
|
|
11
|
+
* rolling "🤖 sub-agent: <title> …" line; for `tool` the generic 🔧 line).
|
|
12
|
+
* - `stream` — accumulate into the SEPARATE child accumulator and emit as
|
|
13
|
+
* marked `output` (`meta.isSubagent`). Never the parent accumulator.
|
|
14
|
+
* - `ignore` — drop entirely (no status, no output, no toolResult).
|
|
15
|
+
*/
|
|
16
|
+
export type SubagentPartAction = 'status' | 'stream' | 'ignore';
|
|
17
|
+
/**
|
|
18
|
+
* @description The sub-agent mode×part-kind matrix:
|
|
19
|
+
* ```
|
|
20
|
+
* minimal/short full
|
|
21
|
+
* text status stream
|
|
22
|
+
* tool ignore status
|
|
23
|
+
* reasoning ignore ignore
|
|
24
|
+
* ```
|
|
25
|
+
* `minimal` and `short` are EQUIVALENT here (the v1 contract on the unified
|
|
26
|
+
* vocabulary): both are status-only, because the "working" indicator is never
|
|
27
|
+
* hidden (locked decision — see {@link DisplayVerbosityMode}). Reasoning is
|
|
28
|
+
* `ignore` in EVERY mode — child chain-of-thought is never rendered (locked
|
|
29
|
+
* decision). Non-`full` ignores child tool parts because their generic 🔧
|
|
30
|
+
* statuses would overwrite the single sub-agent status line. Child toolResult
|
|
31
|
+
* bodies are suppressed in ALL modes (handled by the adapter outside this
|
|
32
|
+
* matrix): the parent's `task` tool output already carries the child's final
|
|
33
|
+
* result.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getSubagentPartAction(mode: DisplayVerbosityMode, partKind: SubagentPartKind): SubagentPartAction;
|
|
36
|
+
/**
|
|
37
|
+
* @description Build the parent-side "Delegating" activity status
|
|
38
|
+
* ("🤖 Delegating: <title> …") rendered while the parent's delegation (`task`)
|
|
39
|
+
* tool part is pending/running (S5) — in `full` mode only (in `minimal`/`short`
|
|
40
|
+
* the dedicated self-updating sub-agent status message owns this indicator; see
|
|
41
|
+
* `utils/subagentStatusRender.ts`). `title` is the part's `state.title` falling
|
|
42
|
+
* back to its `input.description`; `null` (neither present) falls back to the
|
|
43
|
+
* same localized generic label.
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildDelegatingStatusText(title: string | null): string;
|
|
46
|
+
/**
|
|
47
|
+
* @description The marker prepended to every full-mode sub-agent chunk
|
|
48
|
+
* ("🤖 ⤷") so a streamed child transcript is visually separated from the main
|
|
49
|
+
* agent's reply.
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildSubagentOutputPrefix(): string;
|
|
52
|
+
//# sourceMappingURL=subagentRender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagentRender.d.ts","sourceRoot":"","sources":["../../src/utils/subagentRender.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD;;mEAEmE;AACnE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,kBAAkB,CAIhH;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSubagentPartAction = getSubagentPartAction;
|
|
4
|
+
exports.buildDelegatingStatusText = buildDelegatingStatusText;
|
|
5
|
+
exports.buildSubagentOutputPrefix = buildSubagentOutputPrefix;
|
|
6
|
+
/**
|
|
7
|
+
* @description Decision + formatting helpers for sub-agent rendering behind
|
|
8
|
+
* `/subagent` (S4). Claude's transcript-tail path lives in
|
|
9
|
+
* `claudeSubagentTail.ts`; the mode×part-kind matrix
|
|
10
|
+
* ({@link getSubagentPartAction}) and the status builders are OpenCode's
|
|
11
|
+
* child-session SSE concerns. The matrix is consulted by the ADAPTER — unlike
|
|
12
|
+
* the thinking / tool-result modes the sub-agent mode decides what is
|
|
13
|
+
* ACCUMULATED (status vs a separate streamed accumulator), which cannot be
|
|
14
|
+
* deferred to the bot's render time. Extracted from the adapter so the matrix
|
|
15
|
+
* is unit-testable without an SSE stream (same pattern as
|
|
16
|
+
* `toolResultRender.ts`). The string builders are pure-ish (they only read
|
|
17
|
+
* i18n), mirroring `buildThinkingFrameText`. Mode options / type guard /
|
|
18
|
+
* default live in the shared `utils/displayVerbosity.ts`.
|
|
19
|
+
*/
|
|
20
|
+
const i18n_1 = require("../i18n");
|
|
21
|
+
/**
|
|
22
|
+
* @description The sub-agent mode×part-kind matrix:
|
|
23
|
+
* ```
|
|
24
|
+
* minimal/short full
|
|
25
|
+
* text status stream
|
|
26
|
+
* tool ignore status
|
|
27
|
+
* reasoning ignore ignore
|
|
28
|
+
* ```
|
|
29
|
+
* `minimal` and `short` are EQUIVALENT here (the v1 contract on the unified
|
|
30
|
+
* vocabulary): both are status-only, because the "working" indicator is never
|
|
31
|
+
* hidden (locked decision — see {@link DisplayVerbosityMode}). Reasoning is
|
|
32
|
+
* `ignore` in EVERY mode — child chain-of-thought is never rendered (locked
|
|
33
|
+
* decision). Non-`full` ignores child tool parts because their generic 🔧
|
|
34
|
+
* statuses would overwrite the single sub-agent status line. Child toolResult
|
|
35
|
+
* bodies are suppressed in ALL modes (handled by the adapter outside this
|
|
36
|
+
* matrix): the parent's `task` tool output already carries the child's final
|
|
37
|
+
* result.
|
|
38
|
+
*/
|
|
39
|
+
function getSubagentPartAction(mode, partKind) {
|
|
40
|
+
if (partKind === 'reasoning')
|
|
41
|
+
return 'ignore';
|
|
42
|
+
if (partKind === 'text')
|
|
43
|
+
return mode === 'full' ? 'stream' : 'status';
|
|
44
|
+
return mode === 'full' ? 'status' : 'ignore';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @description Build the parent-side "Delegating" activity status
|
|
48
|
+
* ("🤖 Delegating: <title> …") rendered while the parent's delegation (`task`)
|
|
49
|
+
* tool part is pending/running (S5) — in `full` mode only (in `minimal`/`short`
|
|
50
|
+
* the dedicated self-updating sub-agent status message owns this indicator; see
|
|
51
|
+
* `utils/subagentStatusRender.ts`). `title` is the part's `state.title` falling
|
|
52
|
+
* back to its `input.description`; `null` (neither present) falls back to the
|
|
53
|
+
* same localized generic label.
|
|
54
|
+
*/
|
|
55
|
+
function buildDelegatingStatusText(title) {
|
|
56
|
+
return (0, i18n_1.t)('subagent.delegating_status', { title: title ?? (0, i18n_1.t)('subagent.fallback_title') });
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @description The marker prepended to every full-mode sub-agent chunk
|
|
60
|
+
* ("🤖 ⤷") so a streamed child transcript is visually separated from the main
|
|
61
|
+
* agent's reply.
|
|
62
|
+
*/
|
|
63
|
+
function buildSubagentOutputPrefix() {
|
|
64
|
+
return (0, i18n_1.t)('subagent.chunk_prefix');
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=subagentRender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagentRender.js","sourceRoot":"","sources":["../../src/utils/subagentRender.ts"],"names":[],"mappings":";;AAoDA,sDAIC;AAWD,8DAEC;AAOD,8DAEC;AA9ED;;;;;;;;;;;;;GAaG;AACH,kCAA4B;AAoB5B;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,qBAAqB,CAAC,IAA0B,EAAE,QAA0B;IAC1F,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtE,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,yBAAyB,CAAC,KAAoB;IAC5D,OAAO,IAAA,QAAC,EAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,IAAA,QAAC,EAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB;IACvC,OAAO,IAAA,QAAC,EAAC,uBAAuB,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Format an elapsed duration (ms) as `m:ss` — minutes unpadded,
|
|
3
|
+
* seconds zero-padded to two digits. Floored to whole seconds (the timer ticks
|
|
4
|
+
* coarsely, sub-second precision is noise). Examples: `0 → "0:00"`,
|
|
5
|
+
* `7000 → "0:07"`, `60000 → "1:00"`, `843000 → "14:03"`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function formatElapsed(ms: number): string;
|
|
8
|
+
/**
|
|
9
|
+
* @description Build the dedicated sub-agent status line
|
|
10
|
+
* ("🤖 sub-agent: <title> · m:ss") from the sticky title and the elapsed ms.
|
|
11
|
+
* `null` title falls back to the same localized generic label the other
|
|
12
|
+
* sub-agent status builders use.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildSubagentElapsedText(title: string | null, elapsedMs: number): string;
|
|
15
|
+
/**
|
|
16
|
+
* @name SubagentStatusAction
|
|
17
|
+
* @description The bot's next move for the dedicated sub-agent status message,
|
|
18
|
+
* decided purely from whether a message currently exists and whether the
|
|
19
|
+
* incoming event says a delegation is active.
|
|
20
|
+
*
|
|
21
|
+
* - `open` — a delegation started and no message exists yet → create one + arm the timer.
|
|
22
|
+
* - `refresh` — a delegation is in flight and a message exists → re-edit it (title/elapsed).
|
|
23
|
+
* - `close` — the delegation ended and a message exists → delete it + stop the timer.
|
|
24
|
+
* - `noop` — the delegation ended and no message exists → nothing to do (idempotent close).
|
|
25
|
+
*/
|
|
26
|
+
export type SubagentStatusAction = 'open' | 'refresh' | 'close' | 'noop';
|
|
27
|
+
/**
|
|
28
|
+
* @description Map "(does a message exist?) × (is the event active?)" to the
|
|
29
|
+
* bot's next move. Keeping it a named pure helper makes the lifecycle a truth
|
|
30
|
+
* table the bot handler reads declaratively (same shape as
|
|
31
|
+
* `getToolResultRenderAction`), and lets a defensive `active:false` close
|
|
32
|
+
* no-op safely when nothing is open.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getSubagentStatusAction(input: {
|
|
35
|
+
hasMessage: boolean;
|
|
36
|
+
eventActive: boolean;
|
|
37
|
+
}): SubagentStatusAction;
|
|
38
|
+
/**
|
|
39
|
+
* @description S1 dedup gate for the dedicated sub-agent status edit: should the
|
|
40
|
+
* freshly rendered line actually be re-sent, given the last text that reached
|
|
41
|
+
* Telegram? `false` when the text is unchanged — re-editing identical text only
|
|
42
|
+
* earns a `400 "message is not modified"`, and a stuck/frozen elapsed counter
|
|
43
|
+
* would otherwise churn that 400 on every refresh until the per-group 429 flood
|
|
44
|
+
* limit starves the whole topic (live incident 2026-08-03). A `null` last text
|
|
45
|
+
* (fresh open / post-clear) always sends.
|
|
46
|
+
*/
|
|
47
|
+
export declare function checkShouldSendSubagentStatus(nextText: string, lastText: string | null): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* @description S1' COALESCING gate for the dedicated sub-agent status edit:
|
|
50
|
+
* should a fresh refresh actually ENQUEUE an edit right now? Combines the text
|
|
51
|
+
* dedup ({@link checkShouldSendSubagentStatus}) with an in-flight guard so that,
|
|
52
|
+
* under a per-thread send backlog (the global pacer drains ~1 send / 2s), a
|
|
53
|
+
* burst of same-second refreshes can enqueue AT MOST ONE edit instead of
|
|
54
|
+
* stacking hundreds of identical closures.
|
|
55
|
+
*
|
|
56
|
+
* The bug this closes (live 2026-08-07): OpenCode streams frequent
|
|
57
|
+
* `message.part.updated` events for a live parent `task` part, so the bot got a
|
|
58
|
+
* high-frequency run of `subagentStatus{active:true}` refreshes. The plain S1
|
|
59
|
+
* dedup compared against the last text that REACHED Telegram, which only updates
|
|
60
|
+
* after the pacer-delayed send resolves — so during that window every same-text
|
|
61
|
+
* refresh passed the gate and enqueued another identical `editMessageText`.
|
|
62
|
+
* Hundreds piled into the thread's FIFO, drained one every 2s, and
|
|
63
|
+
* head-of-line-blocked the agent's OWN answer behind them — the topic looked
|
|
64
|
+
* hung. Fix: dedup against the last text we DECIDED to enqueue (recorded
|
|
65
|
+
* synchronously at decision time) AND never enqueue while one edit is still in
|
|
66
|
+
* flight.
|
|
67
|
+
*/
|
|
68
|
+
export declare function checkShouldEnqueueSubagentStatus(input: {
|
|
69
|
+
nextText: string;
|
|
70
|
+
lastEnqueuedText: string | null;
|
|
71
|
+
isEditInFlight: boolean;
|
|
72
|
+
}): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* @description S2 hard safety net for the dedicated sub-agent status tick:
|
|
75
|
+
* should the frame be CLOSED (instead of re-arming the elapsed-tick timer)?
|
|
76
|
+
* `true` when the owning session is no longer active, OR the frame has outlived
|
|
77
|
+
* any realistic delegation (`maxAgeMs`). A session that dies server-side emits
|
|
78
|
+
* no clean idle/finish, so the adapter's defensive close never fires and the
|
|
79
|
+
* self-re-arming timer would otherwise live forever churning the topic (live
|
|
80
|
+
* 2026-08-03). A `null` `startedAtMs` (should never happen while a message is
|
|
81
|
+
* open) is treated as "just started", so a transient race can never force-close
|
|
82
|
+
* an otherwise healthy frame on the age branch.
|
|
83
|
+
*/
|
|
84
|
+
export declare function checkShouldExpireSubagentStatus(input: {
|
|
85
|
+
startedAtMs: number | null;
|
|
86
|
+
nowMs: number;
|
|
87
|
+
maxAgeMs: number;
|
|
88
|
+
isOwningSessionActive: boolean;
|
|
89
|
+
}): boolean;
|
|
90
|
+
//# sourceMappingURL=subagentStatusRender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagentStatusRender.d.ts","sourceRoot":"","sources":["../../src/utils/subagentStatusRender.ts"],"names":[],"mappings":"AA6BA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKxF;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,oBAAoB,CAGvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAEhG;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG,OAAO,CAGV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;CAChC,GAAG,OAAO,CAIV"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatElapsed = formatElapsed;
|
|
4
|
+
exports.buildSubagentElapsedText = buildSubagentElapsedText;
|
|
5
|
+
exports.getSubagentStatusAction = getSubagentStatusAction;
|
|
6
|
+
exports.checkShouldSendSubagentStatus = checkShouldSendSubagentStatus;
|
|
7
|
+
exports.checkShouldEnqueueSubagentStatus = checkShouldEnqueueSubagentStatus;
|
|
8
|
+
exports.checkShouldExpireSubagentStatus = checkShouldExpireSubagentStatus;
|
|
9
|
+
/**
|
|
10
|
+
* @description Pure decision + formatting helpers behind the dedicated OpenCode
|
|
11
|
+
* sub-agent status message (the `subagentStatus` adapter event, for the
|
|
12
|
+
* `minimal`/`short` `/subagent` modes). The adapter emits a mode-AGNOSTIC
|
|
13
|
+
* {@link SubagentStatusEvent}; the bot's `handleSubagentStatus` owns the
|
|
14
|
+
* message lifecycle and a ticking elapsed timer, and consults
|
|
15
|
+
* {@link getSubagentStatusAction} (open / refresh / close / noop) +
|
|
16
|
+
* {@link buildSubagentElapsedText} here. Extracted from `bot.ts` so the
|
|
17
|
+
* elapsed formatting and the lifecycle decision are unit-testable without the
|
|
18
|
+
* Telegraf machinery (same pattern as `toolResultRender.ts` /
|
|
19
|
+
* `subagentRender.ts`).
|
|
20
|
+
*
|
|
21
|
+
* Why a DEDICATED message instead of the shared transient status: the old
|
|
22
|
+
* status-only sub-agent line rode `statusMessageId`, whose single-message
|
|
23
|
+
* identity was lost between sparse child-text bursts, so every burst posted a
|
|
24
|
+
* NEW message (flood). This module backs the fix — one explicitly-managed
|
|
25
|
+
* message edited in place with a live elapsed counter.
|
|
26
|
+
*/
|
|
27
|
+
const i18n_1 = require("../i18n");
|
|
28
|
+
/** Seconds in one minute — for the `m:ss` split in {@link formatElapsed}. */
|
|
29
|
+
const secondsPerMinute = 60;
|
|
30
|
+
/** Milliseconds in one second — for flooring elapsed ms to whole seconds. */
|
|
31
|
+
const millisPerSecond = 1000;
|
|
32
|
+
/** Zero-pad target width for the seconds field in `m:ss` (always two digits). */
|
|
33
|
+
const secondsPadWidth = 2;
|
|
34
|
+
/**
|
|
35
|
+
* @description Format an elapsed duration (ms) as `m:ss` — minutes unpadded,
|
|
36
|
+
* seconds zero-padded to two digits. Floored to whole seconds (the timer ticks
|
|
37
|
+
* coarsely, sub-second precision is noise). Examples: `0 → "0:00"`,
|
|
38
|
+
* `7000 → "0:07"`, `60000 → "1:00"`, `843000 → "14:03"`.
|
|
39
|
+
*/
|
|
40
|
+
function formatElapsed(ms) {
|
|
41
|
+
const totalSeconds = Math.floor(ms / millisPerSecond);
|
|
42
|
+
const minutes = Math.floor(totalSeconds / secondsPerMinute);
|
|
43
|
+
const seconds = totalSeconds % secondsPerMinute;
|
|
44
|
+
return `${minutes}:${seconds.toString().padStart(secondsPadWidth, '0')}`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @description Build the dedicated sub-agent status line
|
|
48
|
+
* ("🤖 sub-agent: <title> · m:ss") from the sticky title and the elapsed ms.
|
|
49
|
+
* `null` title falls back to the same localized generic label the other
|
|
50
|
+
* sub-agent status builders use.
|
|
51
|
+
*/
|
|
52
|
+
function buildSubagentElapsedText(title, elapsedMs) {
|
|
53
|
+
return (0, i18n_1.t)('subagent.status_elapsed', {
|
|
54
|
+
title: title ?? (0, i18n_1.t)('subagent.fallback_title'),
|
|
55
|
+
elapsed: formatElapsed(elapsedMs),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @description Map "(does a message exist?) × (is the event active?)" to the
|
|
60
|
+
* bot's next move. Keeping it a named pure helper makes the lifecycle a truth
|
|
61
|
+
* table the bot handler reads declaratively (same shape as
|
|
62
|
+
* `getToolResultRenderAction`), and lets a defensive `active:false` close
|
|
63
|
+
* no-op safely when nothing is open.
|
|
64
|
+
*/
|
|
65
|
+
function getSubagentStatusAction(input) {
|
|
66
|
+
if (input.eventActive)
|
|
67
|
+
return input.hasMessage ? 'refresh' : 'open';
|
|
68
|
+
return input.hasMessage ? 'close' : 'noop';
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @description S1 dedup gate for the dedicated sub-agent status edit: should the
|
|
72
|
+
* freshly rendered line actually be re-sent, given the last text that reached
|
|
73
|
+
* Telegram? `false` when the text is unchanged — re-editing identical text only
|
|
74
|
+
* earns a `400 "message is not modified"`, and a stuck/frozen elapsed counter
|
|
75
|
+
* would otherwise churn that 400 on every refresh until the per-group 429 flood
|
|
76
|
+
* limit starves the whole topic (live incident 2026-08-03). A `null` last text
|
|
77
|
+
* (fresh open / post-clear) always sends.
|
|
78
|
+
*/
|
|
79
|
+
function checkShouldSendSubagentStatus(nextText, lastText) {
|
|
80
|
+
return nextText !== lastText;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @description S1' COALESCING gate for the dedicated sub-agent status edit:
|
|
84
|
+
* should a fresh refresh actually ENQUEUE an edit right now? Combines the text
|
|
85
|
+
* dedup ({@link checkShouldSendSubagentStatus}) with an in-flight guard so that,
|
|
86
|
+
* under a per-thread send backlog (the global pacer drains ~1 send / 2s), a
|
|
87
|
+
* burst of same-second refreshes can enqueue AT MOST ONE edit instead of
|
|
88
|
+
* stacking hundreds of identical closures.
|
|
89
|
+
*
|
|
90
|
+
* The bug this closes (live 2026-08-07): OpenCode streams frequent
|
|
91
|
+
* `message.part.updated` events for a live parent `task` part, so the bot got a
|
|
92
|
+
* high-frequency run of `subagentStatus{active:true}` refreshes. The plain S1
|
|
93
|
+
* dedup compared against the last text that REACHED Telegram, which only updates
|
|
94
|
+
* after the pacer-delayed send resolves — so during that window every same-text
|
|
95
|
+
* refresh passed the gate and enqueued another identical `editMessageText`.
|
|
96
|
+
* Hundreds piled into the thread's FIFO, drained one every 2s, and
|
|
97
|
+
* head-of-line-blocked the agent's OWN answer behind them — the topic looked
|
|
98
|
+
* hung. Fix: dedup against the last text we DECIDED to enqueue (recorded
|
|
99
|
+
* synchronously at decision time) AND never enqueue while one edit is still in
|
|
100
|
+
* flight.
|
|
101
|
+
*/
|
|
102
|
+
function checkShouldEnqueueSubagentStatus(input) {
|
|
103
|
+
if (input.isEditInFlight)
|
|
104
|
+
return false;
|
|
105
|
+
return checkShouldSendSubagentStatus(input.nextText, input.lastEnqueuedText);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @description S2 hard safety net for the dedicated sub-agent status tick:
|
|
109
|
+
* should the frame be CLOSED (instead of re-arming the elapsed-tick timer)?
|
|
110
|
+
* `true` when the owning session is no longer active, OR the frame has outlived
|
|
111
|
+
* any realistic delegation (`maxAgeMs`). A session that dies server-side emits
|
|
112
|
+
* no clean idle/finish, so the adapter's defensive close never fires and the
|
|
113
|
+
* self-re-arming timer would otherwise live forever churning the topic (live
|
|
114
|
+
* 2026-08-03). A `null` `startedAtMs` (should never happen while a message is
|
|
115
|
+
* open) is treated as "just started", so a transient race can never force-close
|
|
116
|
+
* an otherwise healthy frame on the age branch.
|
|
117
|
+
*/
|
|
118
|
+
function checkShouldExpireSubagentStatus(input) {
|
|
119
|
+
if (!input.isOwningSessionActive)
|
|
120
|
+
return true;
|
|
121
|
+
const startedAt = input.startedAtMs ?? input.nowMs;
|
|
122
|
+
return input.nowMs - startedAt > input.maxAgeMs;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=subagentStatusRender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagentStatusRender.js","sourceRoot":"","sources":["../../src/utils/subagentStatusRender.ts"],"names":[],"mappings":";;AAmCA,sCAKC;AAQD,4DAKC;AAsBD,0DAMC;AAWD,sEAEC;AAsBD,4EAOC;AAaD,0EASC;AAjJD;;;;;;;;;;;;;;;;;GAiBG;AACH,kCAA4B;AAE5B,6EAA6E;AAC7E,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,6EAA6E;AAC7E,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,iFAAiF;AACjF,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,EAAU;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAChD,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,KAAoB,EAAE,SAAiB;IAC9E,OAAO,IAAA,QAAC,EAAC,yBAAyB,EAAE;QAClC,KAAK,EAAE,KAAK,IAAI,IAAA,QAAC,EAAC,yBAAyB,CAAC;QAC5C,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAeD;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,KAGvC;IACC,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,6BAA6B,CAAC,QAAgB,EAAE,QAAuB;IACrF,OAAO,QAAQ,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,gCAAgC,CAAC,KAIhD;IACC,IAAI,KAAK,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,6BAA6B,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,+BAA+B,CAAC,KAK/C;IACC,IAAI,CAAC,KAAK,CAAC,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC;IACnD,OAAO,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegramError.d.ts","sourceRoot":"","sources":["../../src/utils/telegramError.ts"],"names":[],"mappings":"AAcA,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAS1E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkIsStaleAnswerCallbackQueryError = checkIsStaleAnswerCallbackQueryError;
|
|
4
|
+
function checkIsRecord(value) {
|
|
5
|
+
return typeof value === 'object' && value !== null;
|
|
6
|
+
}
|
|
7
|
+
function checkIsStaleAnswerCallbackQueryError(err) {
|
|
8
|
+
if (!checkIsRecord(err))
|
|
9
|
+
return false;
|
|
10
|
+
const e = err;
|
|
11
|
+
const description = e.response?.description ?? '';
|
|
12
|
+
return (e.response?.error_code === 400 &&
|
|
13
|
+
e.on?.method === 'answerCallbackQuery' &&
|
|
14
|
+
/query is too old|query ID is invalid/i.test(description));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=telegramError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegramError.js","sourceRoot":"","sources":["../../src/utils/telegramError.ts"],"names":[],"mappings":";;AAcA,oFASC;AAbD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAgB,oCAAoC,CAAC,GAAY;IAC/D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,CAAC,GAAG,GAAwB,CAAC;IACnC,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;IAClD,OAAO,CACL,CAAC,CAAC,QAAQ,EAAE,UAAU,KAAK,GAAG;QAC9B,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,qBAAqB;QACtC,uCAAuC,CAAC,IAAI,CAAC,WAAW,CAAC,CAC1D,CAAC;AACJ,CAAC"}
|