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 @@
|
|
|
1
|
+
{"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/reminders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Pure helpers for the Telegram → agent file-intake feature.
|
|
3
|
+
*
|
|
4
|
+
* A file sent to a bound, agent-active topic is downloaded into a bot-owned
|
|
5
|
+
* per-thread dir and announced to the agent through the normal prompt funnel.
|
|
6
|
+
* This module holds the side-effect-free pieces so they can be unit-tested
|
|
7
|
+
* without booting Telegraf or touching the disk:
|
|
8
|
+
*
|
|
9
|
+
* - {@link getTelegramFileMeta} — normalise the six supported media types
|
|
10
|
+
* (photo, document, video, video_note, audio, animation) into a flat
|
|
11
|
+
* {@link TelegramFileMeta}. Voice is intentionally NOT handled here — it
|
|
12
|
+
* stays on the existing transcription path.
|
|
13
|
+
* - {@link buildSavedFileName} — derive a safe on-disk filename
|
|
14
|
+
* (`<unixSeconds>-<fileUniqueId>-<sanitizedName>`), sanitising the
|
|
15
|
+
* Telegram-provided original name (basename only, no separators / control
|
|
16
|
+
* chars, length-capped).
|
|
17
|
+
* - {@link buildFilePromptText} — render the agent-facing English
|
|
18
|
+
* announcement line (plus the caption, if any), matching the
|
|
19
|
+
* thread-context-preamble style.
|
|
20
|
+
* - {@link checkIsFileTooBig} — compare a known file size against the Bot
|
|
21
|
+
* API download cap before we even call `getFile`.
|
|
22
|
+
*
|
|
23
|
+
* All magic numbers / strings live as named constants below.
|
|
24
|
+
*/
|
|
25
|
+
import type { Message } from 'telegraf/typings/core/types/typegram';
|
|
26
|
+
/**
|
|
27
|
+
* @name TelegramFileKind
|
|
28
|
+
* @description The six media kinds we ingest. Mirrors the Telegram message
|
|
29
|
+
* field name so the kind reads naturally in the agent announcement line and
|
|
30
|
+
* maps 1:1 to the `bot.on(message(<kind>))` filters that produce it.
|
|
31
|
+
*/
|
|
32
|
+
export type TelegramFileKind = 'photo' | 'document' | 'video' | 'video_note' | 'audio' | 'animation';
|
|
33
|
+
/**
|
|
34
|
+
* @description Update-level filter for the media handler. CRITICAL nuance
|
|
35
|
+
* (user-caught live: a photo got ZERO reaction): Telegraf's
|
|
36
|
+
* `message('photo', 'document', …)` is an AND filter — it matches only
|
|
37
|
+
* messages carrying ALL listed fields, which no real media message does. The
|
|
38
|
+
* correct composition is `anyOf(message(kind), …)` — one filter per kind,
|
|
39
|
+
* OR'd. Exported from this module (telegraf/filters is pure, no side
|
|
40
|
+
* effects) so the OR semantics are unit-testable against real update shapes
|
|
41
|
+
* — the exact filter `bot.on` uses, not a copy.
|
|
42
|
+
*/
|
|
43
|
+
export declare const incomingFileMessageFilter: (update: import("@telegraf/types/update").Update) => update is import("@telegraf/types/update").Update.MessageUpdate<Record<"photo", {}> & Message.PhotoMessage & {}> | import("@telegraf/types/update").Update.MessageUpdate<(Record<"document", {}> & Message.AnimationMessage & {}) | (Record<"document", {}> & Message.DocumentMessage & {})> | import("@telegraf/types/update").Update.MessageUpdate<Record<"video", {}> & Message.VideoMessage & {}> | import("@telegraf/types/update").Update.MessageUpdate<Record<"video_note", {}> & Message.VideoNoteMessage & {}> | import("@telegraf/types/update").Update.MessageUpdate<Record<"audio", {}> & Message.AudioMessage & {}> | import("@telegraf/types/update").Update.MessageUpdate<Record<"animation", {}> & Message.AnimationMessage & {}>;
|
|
44
|
+
/**
|
|
45
|
+
* @description Normalised, backend-agnostic view of an inbound media message.
|
|
46
|
+
* `fileName` / `fileSize` / `caption` are optional because Telegram doesn't
|
|
47
|
+
* always supply them (photos and video notes carry no original name; size is
|
|
48
|
+
* occasionally absent).
|
|
49
|
+
*/
|
|
50
|
+
export interface TelegramFileMeta {
|
|
51
|
+
/** Telegram `file_id` — the handle passed to `getFile` / `getFileLink`. */
|
|
52
|
+
fileId: string;
|
|
53
|
+
/**
|
|
54
|
+
* Telegram `file_unique_id` — stable across bots / time, used in the saved
|
|
55
|
+
* filename so re-sends of the same file are recognisable and collisions are
|
|
56
|
+
* avoided without leaking the (bot-scoped, reusable) `file_id`.
|
|
57
|
+
*/
|
|
58
|
+
fileUniqueId: string;
|
|
59
|
+
/** Which media kind produced this meta. */
|
|
60
|
+
kind: TelegramFileKind;
|
|
61
|
+
/** Original filename when Telegram provides one (documents/audio/video/animation). */
|
|
62
|
+
fileName?: string;
|
|
63
|
+
/** Size in bytes when known — lets us reject over-cap files before download. */
|
|
64
|
+
fileSize?: number;
|
|
65
|
+
/** Caption text accompanying the media, if any. */
|
|
66
|
+
caption?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Bot API hard cap for downloading a file via `getFile` (20 MB). Files larger
|
|
70
|
+
* than this fail with a 400 "file is too big" — we surface that to the user as
|
|
71
|
+
* a friendly error instead of a stack trace.
|
|
72
|
+
*/
|
|
73
|
+
export declare const telegramFileDownloadCapBytes: number;
|
|
74
|
+
/**
|
|
75
|
+
* @description Extract a normalised {@link TelegramFileMeta} from an inbound
|
|
76
|
+
* message, or `null` if the message carries none of the six supported media
|
|
77
|
+
* kinds (e.g. plain text, voice, sticker).
|
|
78
|
+
*
|
|
79
|
+
* Order matters for `animation`: Telegram sets BOTH `animation` and
|
|
80
|
+
* `document` on an animation message (documented backward-compat), so we test
|
|
81
|
+
* `animation` first to classify it as the more specific kind.
|
|
82
|
+
*
|
|
83
|
+
* For photos we take the LAST `PhotoSize` — Telegram orders the array
|
|
84
|
+
* smallest→largest, so the last entry is the highest resolution available.
|
|
85
|
+
*/
|
|
86
|
+
export declare function getTelegramFileMeta(message: Message): TelegramFileMeta | null;
|
|
87
|
+
/**
|
|
88
|
+
* @description Extract the `media_group_id` from an inbound message, or
|
|
89
|
+
* `undefined` when the message is not part of an album. Telegram sets this same
|
|
90
|
+
* id on every message of a multi-file album (photos/documents sent together);
|
|
91
|
+
* the bot uses it to batch the burst into one combined prompt. Kept here (next
|
|
92
|
+
* to {@link getTelegramFileMeta}) so the message-shape narrowing stays in one
|
|
93
|
+
* pure, testable place.
|
|
94
|
+
*/
|
|
95
|
+
export declare function getMediaGroupId(message: Message): string | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* @description Build the on-disk filename for a downloaded file:
|
|
98
|
+
* `<unixSeconds>-<fileUniqueId>-<sanitizedName>`. The timestamp + unique id
|
|
99
|
+
* prefix guarantees uniqueness even when two threads receive the same file or
|
|
100
|
+
* the original name is missing/sanitised away; the name suffix is a human
|
|
101
|
+
* hint and keeps the original extension when one survives.
|
|
102
|
+
*
|
|
103
|
+
* When no usable original name exists (photos, video notes, or a name that
|
|
104
|
+
* sanitised to nothing) we synthesise `<fileUniqueId>.<kindExt>`.
|
|
105
|
+
*/
|
|
106
|
+
export declare function buildSavedFileName(unixSeconds: number, fileUniqueId: string, kind: TelegramFileKind, originalName?: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* @description The bot's saved copy of a file among a thread dir's entries, by
|
|
109
|
+
* the name {@link buildSavedFileName} gave it. Everything after the timestamp is
|
|
110
|
+
* fixed by the file (`<fileUniqueId>-<name>`), so a match is exact, never a
|
|
111
|
+
* prefix guess (a unique id may itself contain `-`). The newest copy wins when
|
|
112
|
+
* the same file was sent twice; `undefined` when none is left.
|
|
113
|
+
*/
|
|
114
|
+
export declare function findSavedFileName(entries: readonly string[], meta: Pick<TelegramFileMeta, 'fileUniqueId' | 'kind' | 'fileName'>): string | undefined;
|
|
115
|
+
/** Marker line the agent recognises as a bot-injected single-file announcement. */
|
|
116
|
+
export declare const filePromptHeader = "[Telegram file]";
|
|
117
|
+
/**
|
|
118
|
+
* Marker line for a bot-injected media-album announcement — sibling of
|
|
119
|
+
* {@link filePromptHeader}. A Telegram album (multiple files in one visual
|
|
120
|
+
* message) is batched into ONE combined prompt under this header instead of N
|
|
121
|
+
* separate single-file prompts (see {@link buildAlbumPromptText}).
|
|
122
|
+
*/
|
|
123
|
+
export declare const albumPromptHeader = "[Telegram album]";
|
|
124
|
+
/**
|
|
125
|
+
* @description Render the agent-facing prompt text announcing a saved file.
|
|
126
|
+
* Plain English (agent-facing, NOT i18n), same register as the thread-context
|
|
127
|
+
* preamble. The caption, when present, follows on its own line so the agent
|
|
128
|
+
* sees the user's instruction verbatim.
|
|
129
|
+
*
|
|
130
|
+
* Example:
|
|
131
|
+
* [Telegram file] photo saved to: /…/files/<thread>/<ts>-<id>.jpg (1.2 MB)
|
|
132
|
+
* what is in this file?
|
|
133
|
+
*/
|
|
134
|
+
export declare function buildFilePromptText(kind: TelegramFileKind, savedPath: string, fileSize?: number, caption?: string): string;
|
|
135
|
+
/**
|
|
136
|
+
* @description One successfully-saved member of a media album, as fed to
|
|
137
|
+
* {@link buildAlbumPromptText}. Mirrors the single-file announcement inputs
|
|
138
|
+
* (kind / saved path / size); the caption is handled once for the whole album,
|
|
139
|
+
* not per file, so it is not part of this shape.
|
|
140
|
+
*/
|
|
141
|
+
export interface AlbumFile {
|
|
142
|
+
kind: TelegramFileKind;
|
|
143
|
+
savedPath: string;
|
|
144
|
+
fileSize?: number;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* @description Render the agent-facing prompt for a settled media album: one
|
|
148
|
+
* header line with the file count, then one bullet per saved file (kind + path
|
|
149
|
+
* + size), then the album caption (whichever album item carried it) on its own
|
|
150
|
+
* line. Reuses {@link formatFileSize} — the KB/MB formatting is NOT duplicated.
|
|
151
|
+
*
|
|
152
|
+
* Example:
|
|
153
|
+
* [Telegram album] 3 files saved:
|
|
154
|
+
* - photo: /…/a.jpg (1.2 MB)
|
|
155
|
+
* - photo: /…/b.jpg (900 KB)
|
|
156
|
+
* - document: /…/c.pdf (40 KB)
|
|
157
|
+
* <caption>
|
|
158
|
+
*/
|
|
159
|
+
export declare function buildAlbumPromptText(files: AlbumFile[], caption?: string): string;
|
|
160
|
+
/**
|
|
161
|
+
* @description Whether a KNOWN file size exceeds the Bot API download cap.
|
|
162
|
+
* An unknown size returns `false` — we can't pre-reject it, so we let the
|
|
163
|
+
* `getFile` call itself surface the "file is too big" error.
|
|
164
|
+
*/
|
|
165
|
+
export declare function checkIsFileTooBig(fileSize?: number): boolean;
|
|
166
|
+
//# sourceMappingURL=fileIntake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileIntake.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/fileIntake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,UAAU,GACV,OAAO,GACP,YAAY,GACZ,OAAO,GACP,WAAW,CAAC;AAEhB;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,wwBAOrC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAAmB,CAAC;AAoB7D;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAkE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKpE;AA6BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,gBAAgB,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAIR;AAKD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC,GACjE,MAAM,GAAG,SAAS,CAUpB;AAED,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAmBpD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAMR;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAWjF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAG5D"}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Pure helpers for the Telegram → agent file-intake feature.
|
|
4
|
+
*
|
|
5
|
+
* A file sent to a bound, agent-active topic is downloaded into a bot-owned
|
|
6
|
+
* per-thread dir and announced to the agent through the normal prompt funnel.
|
|
7
|
+
* This module holds the side-effect-free pieces so they can be unit-tested
|
|
8
|
+
* without booting Telegraf or touching the disk:
|
|
9
|
+
*
|
|
10
|
+
* - {@link getTelegramFileMeta} — normalise the six supported media types
|
|
11
|
+
* (photo, document, video, video_note, audio, animation) into a flat
|
|
12
|
+
* {@link TelegramFileMeta}. Voice is intentionally NOT handled here — it
|
|
13
|
+
* stays on the existing transcription path.
|
|
14
|
+
* - {@link buildSavedFileName} — derive a safe on-disk filename
|
|
15
|
+
* (`<unixSeconds>-<fileUniqueId>-<sanitizedName>`), sanitising the
|
|
16
|
+
* Telegram-provided original name (basename only, no separators / control
|
|
17
|
+
* chars, length-capped).
|
|
18
|
+
* - {@link buildFilePromptText} — render the agent-facing English
|
|
19
|
+
* announcement line (plus the caption, if any), matching the
|
|
20
|
+
* thread-context-preamble style.
|
|
21
|
+
* - {@link checkIsFileTooBig} — compare a known file size against the Bot
|
|
22
|
+
* API download cap before we even call `getFile`.
|
|
23
|
+
*
|
|
24
|
+
* All magic numbers / strings live as named constants below.
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.albumPromptHeader = exports.filePromptHeader = exports.telegramFileDownloadCapBytes = exports.incomingFileMessageFilter = void 0;
|
|
28
|
+
exports.getTelegramFileMeta = getTelegramFileMeta;
|
|
29
|
+
exports.getMediaGroupId = getMediaGroupId;
|
|
30
|
+
exports.buildSavedFileName = buildSavedFileName;
|
|
31
|
+
exports.findSavedFileName = findSavedFileName;
|
|
32
|
+
exports.buildFilePromptText = buildFilePromptText;
|
|
33
|
+
exports.buildAlbumPromptText = buildAlbumPromptText;
|
|
34
|
+
exports.checkIsFileTooBig = checkIsFileTooBig;
|
|
35
|
+
const filters_1 = require("telegraf/filters");
|
|
36
|
+
/**
|
|
37
|
+
* @description Update-level filter for the media handler. CRITICAL nuance
|
|
38
|
+
* (user-caught live: a photo got ZERO reaction): Telegraf's
|
|
39
|
+
* `message('photo', 'document', …)` is an AND filter — it matches only
|
|
40
|
+
* messages carrying ALL listed fields, which no real media message does. The
|
|
41
|
+
* correct composition is `anyOf(message(kind), …)` — one filter per kind,
|
|
42
|
+
* OR'd. Exported from this module (telegraf/filters is pure, no side
|
|
43
|
+
* effects) so the OR semantics are unit-testable against real update shapes
|
|
44
|
+
* — the exact filter `bot.on` uses, not a copy.
|
|
45
|
+
*/
|
|
46
|
+
exports.incomingFileMessageFilter = (0, filters_1.anyOf)((0, filters_1.message)('photo'), (0, filters_1.message)('document'), (0, filters_1.message)('video'), (0, filters_1.message)('video_note'), (0, filters_1.message)('audio'), (0, filters_1.message)('animation'));
|
|
47
|
+
/**
|
|
48
|
+
* Bot API hard cap for downloading a file via `getFile` (20 MB). Files larger
|
|
49
|
+
* than this fail with a 400 "file is too big" — we surface that to the user as
|
|
50
|
+
* a friendly error instead of a stack trace.
|
|
51
|
+
*/
|
|
52
|
+
exports.telegramFileDownloadCapBytes = 20 * 1024 * 1024;
|
|
53
|
+
/**
|
|
54
|
+
* Max length of the sanitized original-name segment kept in the saved
|
|
55
|
+
* filename. Caps total path length and blunts pathological 255-char names;
|
|
56
|
+
* the `<ts>-<uniqueId>-` prefix already guarantees uniqueness, so the name is
|
|
57
|
+
* only a human hint.
|
|
58
|
+
*/
|
|
59
|
+
const savedFileNameMaxNameChars = 64;
|
|
60
|
+
/** Fallback extension per kind when Telegram gives us no original filename. */
|
|
61
|
+
const fallbackExtensionByKind = {
|
|
62
|
+
photo: 'jpg',
|
|
63
|
+
document: 'bin',
|
|
64
|
+
video: 'mp4',
|
|
65
|
+
video_note: 'mp4',
|
|
66
|
+
audio: 'mp3',
|
|
67
|
+
animation: 'mp4',
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @description Extract a normalised {@link TelegramFileMeta} from an inbound
|
|
71
|
+
* message, or `null` if the message carries none of the six supported media
|
|
72
|
+
* kinds (e.g. plain text, voice, sticker).
|
|
73
|
+
*
|
|
74
|
+
* Order matters for `animation`: Telegram sets BOTH `animation` and
|
|
75
|
+
* `document` on an animation message (documented backward-compat), so we test
|
|
76
|
+
* `animation` first to classify it as the more specific kind.
|
|
77
|
+
*
|
|
78
|
+
* For photos we take the LAST `PhotoSize` — Telegram orders the array
|
|
79
|
+
* smallest→largest, so the last entry is the highest resolution available.
|
|
80
|
+
*/
|
|
81
|
+
function getTelegramFileMeta(message) {
|
|
82
|
+
if ('animation' in message && message.animation) {
|
|
83
|
+
const { animation } = message;
|
|
84
|
+
return {
|
|
85
|
+
fileId: animation.file_id,
|
|
86
|
+
fileUniqueId: animation.file_unique_id,
|
|
87
|
+
kind: 'animation',
|
|
88
|
+
fileName: animation.file_name,
|
|
89
|
+
fileSize: animation.file_size,
|
|
90
|
+
caption: message.caption,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
if ('photo' in message && message.photo && message.photo.length > 0) {
|
|
94
|
+
const largest = message.photo[message.photo.length - 1];
|
|
95
|
+
return {
|
|
96
|
+
fileId: largest.file_id,
|
|
97
|
+
fileUniqueId: largest.file_unique_id,
|
|
98
|
+
kind: 'photo',
|
|
99
|
+
fileSize: largest.file_size,
|
|
100
|
+
caption: message.caption,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
if ('video' in message && message.video) {
|
|
104
|
+
const { video } = message;
|
|
105
|
+
return {
|
|
106
|
+
fileId: video.file_id,
|
|
107
|
+
fileUniqueId: video.file_unique_id,
|
|
108
|
+
kind: 'video',
|
|
109
|
+
fileName: video.file_name,
|
|
110
|
+
fileSize: video.file_size,
|
|
111
|
+
caption: message.caption,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
if ('video_note' in message && message.video_note) {
|
|
115
|
+
const note = message.video_note;
|
|
116
|
+
// Video notes are not captionable in the Bot API — no `caption` field.
|
|
117
|
+
return {
|
|
118
|
+
fileId: note.file_id,
|
|
119
|
+
fileUniqueId: note.file_unique_id,
|
|
120
|
+
kind: 'video_note',
|
|
121
|
+
fileSize: note.file_size,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
if ('audio' in message && message.audio) {
|
|
125
|
+
const { audio } = message;
|
|
126
|
+
return {
|
|
127
|
+
fileId: audio.file_id,
|
|
128
|
+
fileUniqueId: audio.file_unique_id,
|
|
129
|
+
kind: 'audio',
|
|
130
|
+
fileName: audio.file_name,
|
|
131
|
+
fileSize: audio.file_size,
|
|
132
|
+
caption: message.caption,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
if ('document' in message && message.document) {
|
|
136
|
+
const { document } = message;
|
|
137
|
+
return {
|
|
138
|
+
fileId: document.file_id,
|
|
139
|
+
fileUniqueId: document.file_unique_id,
|
|
140
|
+
kind: 'document',
|
|
141
|
+
fileName: document.file_name,
|
|
142
|
+
fileSize: document.file_size,
|
|
143
|
+
caption: message.caption,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* @description Extract the `media_group_id` from an inbound message, or
|
|
150
|
+
* `undefined` when the message is not part of an album. Telegram sets this same
|
|
151
|
+
* id on every message of a multi-file album (photos/documents sent together);
|
|
152
|
+
* the bot uses it to batch the burst into one combined prompt. Kept here (next
|
|
153
|
+
* to {@link getTelegramFileMeta}) so the message-shape narrowing stays in one
|
|
154
|
+
* pure, testable place.
|
|
155
|
+
*/
|
|
156
|
+
function getMediaGroupId(message) {
|
|
157
|
+
if ('media_group_id' in message && typeof message.media_group_id === 'string') {
|
|
158
|
+
return message.media_group_id;
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* @description Sanitise a Telegram-provided original filename into a safe
|
|
164
|
+
* single path segment: basename only (drop any directory parts), control
|
|
165
|
+
* chars and path separators stripped, collapsed to a bounded ASCII-ish slug.
|
|
166
|
+
*
|
|
167
|
+
* Security-critical — the saved path is built from this, so a hostile name
|
|
168
|
+
* like `../../etc/passwd` or `a/b\0c` must never escape the thread dir or
|
|
169
|
+
* smuggle a separator. We keep dots (extensions) but never a leading dot run
|
|
170
|
+
* (so the result can't become `..` or a hidden file).
|
|
171
|
+
*
|
|
172
|
+
* Returns `null` when nothing usable survives sanitisation, so the caller can
|
|
173
|
+
* fall back to a kind-derived extension.
|
|
174
|
+
*/
|
|
175
|
+
function sanitizeOriginalName(originalName) {
|
|
176
|
+
// Basename only — strip everything up to the last separator of either kind.
|
|
177
|
+
const baseName = originalName.split(/[/\\]/).pop() ?? '';
|
|
178
|
+
// Replace any character outside a conservative allow-list (incl. control
|
|
179
|
+
// chars and remaining separators) with `_`, collapse runs, trim edge `_`/`.`.
|
|
180
|
+
const cleaned = baseName
|
|
181
|
+
.replace(/[^A-Za-z0-9._-]/g, '_')
|
|
182
|
+
.replace(/_{2,}/g, '_')
|
|
183
|
+
.replace(/^[._]+/, '')
|
|
184
|
+
.replace(/[._]+$/, '');
|
|
185
|
+
if (!cleaned)
|
|
186
|
+
return null;
|
|
187
|
+
return cleaned.slice(0, savedFileNameMaxNameChars);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @description Build the on-disk filename for a downloaded file:
|
|
191
|
+
* `<unixSeconds>-<fileUniqueId>-<sanitizedName>`. The timestamp + unique id
|
|
192
|
+
* prefix guarantees uniqueness even when two threads receive the same file or
|
|
193
|
+
* the original name is missing/sanitised away; the name suffix is a human
|
|
194
|
+
* hint and keeps the original extension when one survives.
|
|
195
|
+
*
|
|
196
|
+
* When no usable original name exists (photos, video notes, or a name that
|
|
197
|
+
* sanitised to nothing) we synthesise `<fileUniqueId>.<kindExt>`.
|
|
198
|
+
*/
|
|
199
|
+
function buildSavedFileName(unixSeconds, fileUniqueId, kind, originalName) {
|
|
200
|
+
const safeName = originalName ? sanitizeOriginalName(originalName) : null;
|
|
201
|
+
const nameSegment = safeName ?? `${fileUniqueId}.${fallbackExtensionByKind[kind]}`;
|
|
202
|
+
return `${unixSeconds}-${fileUniqueId}-${nameSegment}`;
|
|
203
|
+
}
|
|
204
|
+
/** A saved file's name split at its timestamp: `<unixSeconds>-<rest>`. */
|
|
205
|
+
const savedFileNamePattern = /^(\d+)-(.+)$/s;
|
|
206
|
+
/**
|
|
207
|
+
* @description The bot's saved copy of a file among a thread dir's entries, by
|
|
208
|
+
* the name {@link buildSavedFileName} gave it. Everything after the timestamp is
|
|
209
|
+
* fixed by the file (`<fileUniqueId>-<name>`), so a match is exact, never a
|
|
210
|
+
* prefix guess (a unique id may itself contain `-`). The newest copy wins when
|
|
211
|
+
* the same file was sent twice; `undefined` when none is left.
|
|
212
|
+
*/
|
|
213
|
+
function findSavedFileName(entries, meta) {
|
|
214
|
+
const timestamplessName = buildSavedFileName(0, meta.fileUniqueId, meta.kind, meta.fileName).slice('0-'.length);
|
|
215
|
+
let newest;
|
|
216
|
+
for (const name of entries) {
|
|
217
|
+
const match = savedFileNamePattern.exec(name);
|
|
218
|
+
if (!match || match[2] !== timestamplessName)
|
|
219
|
+
continue;
|
|
220
|
+
const unixSeconds = Number(match[1]);
|
|
221
|
+
if (!newest || unixSeconds > newest.unixSeconds)
|
|
222
|
+
newest = { name, unixSeconds };
|
|
223
|
+
}
|
|
224
|
+
return newest?.name;
|
|
225
|
+
}
|
|
226
|
+
/** Marker line the agent recognises as a bot-injected single-file announcement. */
|
|
227
|
+
exports.filePromptHeader = '[Telegram file]';
|
|
228
|
+
/**
|
|
229
|
+
* Marker line for a bot-injected media-album announcement — sibling of
|
|
230
|
+
* {@link filePromptHeader}. A Telegram album (multiple files in one visual
|
|
231
|
+
* message) is batched into ONE combined prompt under this header instead of N
|
|
232
|
+
* separate single-file prompts (see {@link buildAlbumPromptText}).
|
|
233
|
+
*/
|
|
234
|
+
exports.albumPromptHeader = '[Telegram album]';
|
|
235
|
+
/** Threshold below which a byte size renders in KB rather than MB. */
|
|
236
|
+
const bytesPerMegabyte = 1024 * 1024;
|
|
237
|
+
const bytesPerKilobyte = 1024;
|
|
238
|
+
/**
|
|
239
|
+
* @description Human-readable size string for the announcement line (e.g.
|
|
240
|
+
* `1.2 MB`, `840 KB`). Returns an empty string when the size is unknown so the
|
|
241
|
+
* caller can omit the parenthetical.
|
|
242
|
+
*/
|
|
243
|
+
function formatFileSize(fileSize) {
|
|
244
|
+
if (fileSize === undefined || fileSize <= 0)
|
|
245
|
+
return '';
|
|
246
|
+
if (fileSize >= bytesPerMegabyte) {
|
|
247
|
+
return `${(fileSize / bytesPerMegabyte).toFixed(1)} MB`;
|
|
248
|
+
}
|
|
249
|
+
return `${Math.round(fileSize / bytesPerKilobyte)} KB`;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* @description Render the agent-facing prompt text announcing a saved file.
|
|
253
|
+
* Plain English (agent-facing, NOT i18n), same register as the thread-context
|
|
254
|
+
* preamble. The caption, when present, follows on its own line so the agent
|
|
255
|
+
* sees the user's instruction verbatim.
|
|
256
|
+
*
|
|
257
|
+
* Example:
|
|
258
|
+
* [Telegram file] photo saved to: /…/files/<thread>/<ts>-<id>.jpg (1.2 MB)
|
|
259
|
+
* what is in this file?
|
|
260
|
+
*/
|
|
261
|
+
function buildFilePromptText(kind, savedPath, fileSize, caption) {
|
|
262
|
+
const sizeText = formatFileSize(fileSize);
|
|
263
|
+
const sizeSuffix = sizeText ? ` (${sizeText})` : '';
|
|
264
|
+
const announcement = `${exports.filePromptHeader} ${kind} saved to: ${savedPath}${sizeSuffix}`;
|
|
265
|
+
const trimmedCaption = caption?.trim();
|
|
266
|
+
return trimmedCaption ? `${announcement}\n${trimmedCaption}` : announcement;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* @description Render the agent-facing prompt for a settled media album: one
|
|
270
|
+
* header line with the file count, then one bullet per saved file (kind + path
|
|
271
|
+
* + size), then the album caption (whichever album item carried it) on its own
|
|
272
|
+
* line. Reuses {@link formatFileSize} — the KB/MB formatting is NOT duplicated.
|
|
273
|
+
*
|
|
274
|
+
* Example:
|
|
275
|
+
* [Telegram album] 3 files saved:
|
|
276
|
+
* - photo: /…/a.jpg (1.2 MB)
|
|
277
|
+
* - photo: /…/b.jpg (900 KB)
|
|
278
|
+
* - document: /…/c.pdf (40 KB)
|
|
279
|
+
* <caption>
|
|
280
|
+
*/
|
|
281
|
+
function buildAlbumPromptText(files, caption) {
|
|
282
|
+
const headerLine = `${exports.albumPromptHeader} ${files.length} ${files.length === 1 ? 'file' : 'files'} saved:`;
|
|
283
|
+
const bulletLines = files.map((file) => {
|
|
284
|
+
const sizeText = formatFileSize(file.fileSize);
|
|
285
|
+
const sizeSuffix = sizeText ? ` (${sizeText})` : '';
|
|
286
|
+
return `- ${file.kind}: ${file.savedPath}${sizeSuffix}`;
|
|
287
|
+
});
|
|
288
|
+
const lines = [headerLine, ...bulletLines];
|
|
289
|
+
const trimmedCaption = caption?.trim();
|
|
290
|
+
if (trimmedCaption)
|
|
291
|
+
lines.push(trimmedCaption);
|
|
292
|
+
return lines.join('\n');
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* @description Whether a KNOWN file size exceeds the Bot API download cap.
|
|
296
|
+
* An unknown size returns `false` — we can't pre-reject it, so we let the
|
|
297
|
+
* `getFile` call itself surface the "file is too big" error.
|
|
298
|
+
*/
|
|
299
|
+
function checkIsFileTooBig(fileSize) {
|
|
300
|
+
if (fileSize === undefined)
|
|
301
|
+
return false;
|
|
302
|
+
return fileSize > exports.telegramFileDownloadCapBytes;
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=fileIntake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileIntake.js","sourceRoot":"","sources":["../../../src/connectors/telegram/fileIntake.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
import { type AbortSignal as TelegrafAbortSignal } from 'abort-controller';
|
|
3
|
+
import type { InputMediaDocument, InputMediaPhoto, InputMediaVideo } from 'telegraf/typings/core/types/typegram';
|
|
4
|
+
import type { FileDescriptorSnapshot, FileSendDocumentMediaGroup, FileSendMediaGroup } from '../../utils/fileSendPlan';
|
|
5
|
+
import { type FileSendGateway } from '../../utils/fileSendService';
|
|
6
|
+
/** Telegraf input backed by one fresh source bounded to an owned descriptor snapshot. */
|
|
7
|
+
export interface TelegramDescriptorInputFile {
|
|
8
|
+
source: Readable;
|
|
9
|
+
filename: string;
|
|
10
|
+
}
|
|
11
|
+
/** Minimal sent-message shape shared by single sends and media-group results. */
|
|
12
|
+
export interface TelegramMessageId {
|
|
13
|
+
message_id: number;
|
|
14
|
+
}
|
|
15
|
+
export type TelegramDescriptorInputMediaPhoto = Omit<InputMediaPhoto, 'media'> & {
|
|
16
|
+
media: TelegramDescriptorInputFile;
|
|
17
|
+
};
|
|
18
|
+
export type TelegramDescriptorInputMediaVideo = Omit<InputMediaVideo, 'media'> & {
|
|
19
|
+
media: TelegramDescriptorInputFile;
|
|
20
|
+
};
|
|
21
|
+
export type TelegramDescriptorInputMediaDocument = Omit<InputMediaDocument, 'media'> & {
|
|
22
|
+
media: TelegramDescriptorInputFile;
|
|
23
|
+
};
|
|
24
|
+
/** Telegraf-compatible media group whose inputs all expose owned attempt streams. */
|
|
25
|
+
export type TelegramDescriptorMediaGroup = readonly (TelegramDescriptorInputMediaPhoto | TelegramDescriptorInputMediaVideo)[] | readonly TelegramDescriptorInputMediaDocument[];
|
|
26
|
+
type TelegramSingleSend<TTarget> = (target: TTarget, input: TelegramDescriptorInputFile, caption?: string, signal?: TelegrafAbortSignal) => Promise<TelegramMessageId>;
|
|
27
|
+
export type StartPostUploadResponseDeadline = (callback: () => void, delayMs: number) => () => void;
|
|
28
|
+
/** Maximum wait for Telegram's response after every request-body stream ends. */
|
|
29
|
+
export declare const telegramPostUploadResponseDeadlineMs = 30000;
|
|
30
|
+
/** Telegraf operations used for one delivery attempt. */
|
|
31
|
+
export interface TelegramFileSendGatewayDeps<TTarget> {
|
|
32
|
+
sendPhoto: TelegramSingleSend<TTarget>;
|
|
33
|
+
sendAnimation: TelegramSingleSend<TTarget>;
|
|
34
|
+
sendVideo: TelegramSingleSend<TTarget>;
|
|
35
|
+
sendDocument: TelegramSingleSend<TTarget>;
|
|
36
|
+
sendMediaGroup: (target: TTarget, mediaGroup: TelegramDescriptorMediaGroup, signal?: TelegrafAbortSignal) => Promise<TelegramMessageId[]>;
|
|
37
|
+
startPostUploadResponseDeadline?: StartPostUploadResponseDeadline;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build a fresh retry input without transferring descriptor ownership. Non-empty
|
|
41
|
+
* snapshots use a positional stream capped at the validated end byte; an empty
|
|
42
|
+
* snapshot uses an in-memory empty Readable so later file growth stays invisible.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createTelegramFileInput(snapshot: FileDescriptorSnapshot): TelegramDescriptorInputFile;
|
|
45
|
+
/** Narrow the project media union before constructing Telegraf's homogeneous arrays. */
|
|
46
|
+
export declare function checkIsDocumentFileSendMediaGroup(mediaGroup: FileSendMediaGroup): mediaGroup is FileSendDocumentMediaGroup;
|
|
47
|
+
/** Convert a project-owned descriptor group into fresh Telegraf inputs for one attempt. */
|
|
48
|
+
export declare function createTelegramMediaGroup(mediaGroup: FileSendMediaGroup): TelegramDescriptorMediaGroup;
|
|
49
|
+
/** Extract sent message ids in Telegram response order for `/clear` tracking. */
|
|
50
|
+
export declare function getTelegramMessageIds(sent: TelegramMessageId | TelegramMessageId[]): number[];
|
|
51
|
+
/**
|
|
52
|
+
* Build the production gateway so every invocation constructs fresh bounded
|
|
53
|
+
* inputs and no attempt settles until all of its streams are terminal.
|
|
54
|
+
*/
|
|
55
|
+
export declare function createTelegramFileSendGateway<TTarget>(deps: TelegramFileSendGatewayDeps<TTarget>): FileSendGateway<TTarget>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=fileSendGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileSendGateway.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/fileSendGateway.ts"],"names":[],"mappings":"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"}
|