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":"installManager.js","sourceRoot":"","sources":["../src/installManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description On-disk shape of `${DATA_DIR}/instance.lock`.
|
|
3
|
+
*
|
|
4
|
+
* `tokenHash` is the first 12 hex chars of SHA-256(TELEGRAM_BOT_TOKEN) so the
|
|
5
|
+
* lockfile reveals which bot is holding it, without leaking the token itself.
|
|
6
|
+
* Useful when a user has multiple tokens behind multiple `DATA_DIR`s and
|
|
7
|
+
* confuses them.
|
|
8
|
+
*/
|
|
9
|
+
interface LockData {
|
|
10
|
+
pid: number;
|
|
11
|
+
cwd: string;
|
|
12
|
+
startedAt: string;
|
|
13
|
+
tokenHash: string;
|
|
14
|
+
/** The holder's host; absent in a lock written before it was recorded. */
|
|
15
|
+
hostname?: string;
|
|
16
|
+
/** The holder's pid namespace (`pid:[<inode>]`); absent before it was recorded or where `/proc` has none. */
|
|
17
|
+
pidNamespace?: string;
|
|
18
|
+
}
|
|
19
|
+
/** @description Lockfile path: `${DATA_DIR}/instance.lock`. */
|
|
20
|
+
export declare function lockPath(): string;
|
|
21
|
+
/**
|
|
22
|
+
* @description Result of a pure `tryAcquireLock` call. Lifted out of
|
|
23
|
+
* {@link acquireLock} so unit tests don't have to spawn a child process to
|
|
24
|
+
* inspect the failure path.
|
|
25
|
+
*
|
|
26
|
+
* - `ok: true` — lock was created with our pid in it
|
|
27
|
+
* - `live-holder` — another process already owns the lock
|
|
28
|
+
* - `lost-race` — both retry attempts hit EEXIST without a
|
|
29
|
+
* clearly-live or clearly-dead holder
|
|
30
|
+
* (concurrent starter, exotic FS, etc.)
|
|
31
|
+
*/
|
|
32
|
+
export type AcquireResult = {
|
|
33
|
+
ok: true;
|
|
34
|
+
} | {
|
|
35
|
+
ok: false;
|
|
36
|
+
reason: 'live-holder';
|
|
37
|
+
holder: LockData;
|
|
38
|
+
lockPath: string;
|
|
39
|
+
} | {
|
|
40
|
+
ok: false;
|
|
41
|
+
reason: 'foreign-host';
|
|
42
|
+
holder: LockData;
|
|
43
|
+
lockPath: string;
|
|
44
|
+
} | {
|
|
45
|
+
ok: false;
|
|
46
|
+
reason: 'lost-race';
|
|
47
|
+
lockPath: string;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* @description Core acquisition logic — no side effects beyond the
|
|
51
|
+
* filesystem. Returns a structured result for the caller to decide whether
|
|
52
|
+
* to print + exit or to handle programmatically.
|
|
53
|
+
*
|
|
54
|
+
* **Atomicity strategy** — naïve `fs.openSync(lp, 'wx')` followed by
|
|
55
|
+
* `writeSync` is racy: between open and write, a concurrent
|
|
56
|
+
* `tryAcquireLock` could read an empty lockfile, parse-fail, treat it as
|
|
57
|
+
* stale, and `unlinkSync` our just-created file. Both processes then think
|
|
58
|
+
* they own the lock.
|
|
59
|
+
*
|
|
60
|
+
* Instead we write the payload to a per-pid tmp file first, then use
|
|
61
|
+
* `fs.linkSync(tmp, lp)` to publish it atomically: `link` either creates
|
|
62
|
+
* `lp` linked to our already-populated tmp inode (success) or fails
|
|
63
|
+
* EEXIST (someone else got there first). The tmp file is always unlinked
|
|
64
|
+
* afterwards. Readers in the EEXIST branch only ever see a fully-written
|
|
65
|
+
* lockfile.
|
|
66
|
+
*
|
|
67
|
+
* On EEXIST we re-read the existing lockfile:
|
|
68
|
+
*
|
|
69
|
+
* - holder is alive → return `live-holder` with their details
|
|
70
|
+
* - holder is dead or lockfile is corrupted → unlink and retry
|
|
71
|
+
*
|
|
72
|
+
* Retry count is capped at `MAX_ACQUIRE_ATTEMPTS` to avoid pathological
|
|
73
|
+
* loops; persistent EEXIST surfaces as `lost-race`.
|
|
74
|
+
*/
|
|
75
|
+
export declare function tryAcquireLock(): AcquireResult;
|
|
76
|
+
/**
|
|
77
|
+
* @description Default same-token handoff wait: the predecessor's graceful
|
|
78
|
+
* shutdown is bounded by its watchdog ({@link DEFAULT_WATCHDOG_MS} — which now
|
|
79
|
+
* covers the bounded output flush), so the incoming process must out-wait that
|
|
80
|
+
* WHOLE window plus margin. Undersizing this re-creates the live 2026-07-05
|
|
81
|
+
* outage: nodemon spawns the replacement while the old process is still
|
|
82
|
+
* flushing, the lock wait expires, the replacement exits "already running",
|
|
83
|
+
* and nodemon then idles until the next file change — bot down.
|
|
84
|
+
*/
|
|
85
|
+
export declare const lockHandoffMaxWaitMs: number;
|
|
86
|
+
/**
|
|
87
|
+
* @description Same as {@link tryAcquireLock} but waits up to `maxWaitMs`
|
|
88
|
+
* for a same-token holder to release before giving up.
|
|
89
|
+
*
|
|
90
|
+
* Why same-token-only: a different token means a genuinely different bot
|
|
91
|
+
* instance is running against the same `DATA_DIR` (operator mistake — they
|
|
92
|
+
* forgot to set distinct `DATA_DIR`s). We MUST refuse fast in that case;
|
|
93
|
+
* polite waiting would mask the misconfiguration. A matching token, on the
|
|
94
|
+
* other hand, almost always means "my own predecessor is in the middle of
|
|
95
|
+
* its graceful-shutdown sequence" — typical during a `nodemon`-driven hot
|
|
96
|
+
* reload where the old PID has been signalled but is still flushing. That
|
|
97
|
+
* shutdown is bounded by the predecessor's watchdog, so the default wait
|
|
98
|
+
* ({@link lockHandoffMaxWaitMs}) out-waits it with margin and the new process
|
|
99
|
+
* picks the lock back up without spamming the operator with a "live-holder"
|
|
100
|
+
* abort.
|
|
101
|
+
*
|
|
102
|
+
* The sleep function is injected so unit tests can drive the retry loop
|
|
103
|
+
* deterministically without spending real wall-clock time.
|
|
104
|
+
*/
|
|
105
|
+
export declare function tryAcquireLockWithRetry(opts?: {
|
|
106
|
+
maxWaitMs?: number;
|
|
107
|
+
intervalMs?: number;
|
|
108
|
+
sleep?: (ms: number) => Promise<void>;
|
|
109
|
+
}): Promise<AcquireResult>;
|
|
110
|
+
/**
|
|
111
|
+
* @description Acquire the single-instance lock for this `DATA_DIR`, or
|
|
112
|
+
* `process.exit(1)` after printing diagnostics.
|
|
113
|
+
*
|
|
114
|
+
* Thin user-facing wrapper around {@link tryAcquireLockWithRetry} — the
|
|
115
|
+
* retry tolerates a brief overlap between an exiting old bot and the
|
|
116
|
+
* incoming new bot during a `nodemon` hot reload (same token, same
|
|
117
|
+
* `DATA_DIR`). Foreign holders still fail immediately.
|
|
118
|
+
*/
|
|
119
|
+
export declare function acquireLock(): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* @description Best-effort lockfile removal.
|
|
122
|
+
*
|
|
123
|
+
* Called from process-exit handlers; we deliberately swallow errors because
|
|
124
|
+
* an exit-time crash here masks the real shutdown cause. The worst case
|
|
125
|
+
* (file left behind after a `kill -9`) is harmless — the next `acquireLock`
|
|
126
|
+
* detects the dead pid and reclaims.
|
|
127
|
+
*
|
|
128
|
+
* Refuses to delete a lockfile that does NOT name us — defensive against
|
|
129
|
+
* `kill -9` parent + child still holding a stale handle.
|
|
130
|
+
*/
|
|
131
|
+
export declare function releaseLock(): void;
|
|
132
|
+
/**
|
|
133
|
+
* @description Register exit / crash handlers that release the lock.
|
|
134
|
+
*
|
|
135
|
+
* Wired once from `runBot()`. Covers:
|
|
136
|
+
* - normal exit (release on `process.exit`) — fires whenever any code
|
|
137
|
+
* path calls `process.exit(N)`, including the bot's own ordered
|
|
138
|
+
* shutdown (`bot.stop → state.flush → releaseLock → exit(0)`). The
|
|
139
|
+
* redundant release here is a belt-and-suspenders for code paths that
|
|
140
|
+
* hit `process.exit` without going through the bot shutdown (CLI
|
|
141
|
+
* misuse, early env-validation failures).
|
|
142
|
+
* - `uncaughtException` (release on crash).
|
|
143
|
+
*
|
|
144
|
+
* **Signal handlers are intentionally NOT installed here.** That used to
|
|
145
|
+
* be the case, but it caused a race: this module loads first
|
|
146
|
+
* (`cli/bot.ts:54`), so its `SIGINT`/`SIGTERM` handler always fires before
|
|
147
|
+
* the bot's own (`bot.ts: shutdown(...)`); a synchronous `process.exit(0)`
|
|
148
|
+
* inside the lock handler then pre-empts the bot's *async* `state.flush()`
|
|
149
|
+
* and the last <500ms of state never reaches disk. Letting the bot own
|
|
150
|
+
* signal handling (and ending with `releaseLock(); process.exit(0)` itself)
|
|
151
|
+
* makes the sequence deterministic. If a SIGINT/SIGTERM arrives before the
|
|
152
|
+
* bot installs its handler (very narrow window during boot), Node's
|
|
153
|
+
* default action terminates the process and we leak the lock file —
|
|
154
|
+
* harmless, because the next start sees a dead pid and reclaims it via
|
|
155
|
+
* the stale-lock recovery path in {@link tryAcquireLock}.
|
|
156
|
+
*
|
|
157
|
+
* SIGKILL is not catchable, hence the same stale-lock recovery path.
|
|
158
|
+
*/
|
|
159
|
+
export declare function installLockCleanupHandlers(): void;
|
|
160
|
+
export {};
|
|
161
|
+
//# sourceMappingURL=instanceLock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instanceLock.d.ts","sourceRoot":"","sources":["../src/instanceLock.ts"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AACH,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6GAA6G;IAC7G,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA0CD,+DAA+D;AAC/D,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAsDD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAyD9C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,GAAE;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,GAAG,OAAO,CAAC,aAAa,CAAC,CAuB9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,IAAI,IAAI,CASlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAajD"}
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.lockHandoffMaxWaitMs = void 0;
|
|
37
|
+
exports.lockPath = lockPath;
|
|
38
|
+
exports.tryAcquireLock = tryAcquireLock;
|
|
39
|
+
exports.tryAcquireLockWithRetry = tryAcquireLockWithRetry;
|
|
40
|
+
exports.acquireLock = acquireLock;
|
|
41
|
+
exports.releaseLock = releaseLock;
|
|
42
|
+
exports.installLockCleanupHandlers = installLockCleanupHandlers;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const os = __importStar(require("os"));
|
|
46
|
+
const crypto = __importStar(require("crypto"));
|
|
47
|
+
const shutdown_1 = require("./shutdown");
|
|
48
|
+
/**
|
|
49
|
+
* @description Number of acquisition attempts before giving up.
|
|
50
|
+
*
|
|
51
|
+
* One retry is enough to recover from a stale lockfile we cleared in the
|
|
52
|
+
* first iteration. More attempts buy nothing — if two live processes both
|
|
53
|
+
* see EEXIST with a valid live holder, we're in a real conflict and the
|
|
54
|
+
* polite thing is to surface it instead of spinning.
|
|
55
|
+
*/
|
|
56
|
+
const MAX_ACQUIRE_ATTEMPTS = 2;
|
|
57
|
+
/** Where Linux names the pid namespace of the calling process. */
|
|
58
|
+
const ownPidNamespaceLink = '/proc/self/ns/pid';
|
|
59
|
+
/** This process's pid namespace, or `undefined` where the system has no such link (macOS). */
|
|
60
|
+
function readOwnPidNamespace() {
|
|
61
|
+
try {
|
|
62
|
+
return fs.readlinkSync(ownPidNamespaceLink);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @description Classify an existing lock (plan S8 C20, the whole bot in a container). A pid is only meaningful in
|
|
70
|
+
* the pid namespace and on the host that wrote it:
|
|
71
|
+
* - another hostname → `foreign-host`: its holder cannot be probed from here, so the start is refused;
|
|
72
|
+
* - the same hostname, another pid namespace → `stale`: the container that wrote it was restarted and every
|
|
73
|
+
* process in it ended — a probe would read a reused small container pid as a live holder;
|
|
74
|
+
* - otherwise (or a lock without these fields) → today's probe.
|
|
75
|
+
*/
|
|
76
|
+
function getLockHolderState(holder, own) {
|
|
77
|
+
if (holder.hostname !== undefined && holder.hostname !== own.hostname)
|
|
78
|
+
return 'foreign-host';
|
|
79
|
+
if (holder.pidNamespace !== undefined && own.pidNamespace !== undefined && holder.pidNamespace !== own.pidNamespace)
|
|
80
|
+
return 'stale';
|
|
81
|
+
return isAlive(holder.pid) ? 'live' : 'stale';
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @description Resolve the data directory the lockfile lives in.
|
|
85
|
+
*
|
|
86
|
+
* Mirrors `src/state.ts:694` — kept independent (not imported) because lock
|
|
87
|
+
* acquisition runs BEFORE the bot module is loaded, and `state.ts` reads
|
|
88
|
+
* `process.env.DATA_DIR` at module scope which we want to avoid coupling to.
|
|
89
|
+
*/
|
|
90
|
+
function dataDir() {
|
|
91
|
+
return process.env.DATA_DIR || path.join(os.homedir(), '.telegramCode');
|
|
92
|
+
}
|
|
93
|
+
/** @description Lockfile path: `${DATA_DIR}/instance.lock`. */
|
|
94
|
+
function lockPath() {
|
|
95
|
+
return path.join(dataDir(), 'instance.lock');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @description Is the given pid currently a live process?
|
|
99
|
+
*
|
|
100
|
+
* `process.kill(pid, 0)` is the standard portable liveness probe:
|
|
101
|
+
* - throws `ESRCH` → no such process (dead)
|
|
102
|
+
* - throws `EPERM` → process exists but we lack permission to signal it
|
|
103
|
+
* (still counts as alive for our purposes)
|
|
104
|
+
* - resolves → alive
|
|
105
|
+
*
|
|
106
|
+
* Notably it does NOT verify that `pid` is *our* old bot vs. an unrelated
|
|
107
|
+
* process that happened to inherit the same pid number. PID reuse is a known
|
|
108
|
+
* edge case (see plan §risks/2); we accept it.
|
|
109
|
+
*/
|
|
110
|
+
function isAlive(pid) {
|
|
111
|
+
if (!Number.isInteger(pid) || pid <= 0)
|
|
112
|
+
return false;
|
|
113
|
+
try {
|
|
114
|
+
process.kill(pid, 0);
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
catch (e) {
|
|
118
|
+
const code = e?.code;
|
|
119
|
+
return code === 'EPERM';
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* @description Try to read and parse an existing lockfile. Returns `null` for
|
|
124
|
+
* any I/O or JSON error (file gone, truncated, corrupted) so the caller can
|
|
125
|
+
* treat it the same as "stale".
|
|
126
|
+
*/
|
|
127
|
+
function readLock(lp) {
|
|
128
|
+
try {
|
|
129
|
+
const raw = fs.readFileSync(lp, 'utf8');
|
|
130
|
+
const parsed = JSON.parse(raw);
|
|
131
|
+
if (typeof parsed.pid !== 'number')
|
|
132
|
+
return null;
|
|
133
|
+
return parsed;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @description Hash a bot token for display in the lockfile.
|
|
141
|
+
*
|
|
142
|
+
* 12 hex chars from SHA-256 is enough collision resistance for "is this the
|
|
143
|
+
* same token the running instance is using" but reveals nothing useful to an
|
|
144
|
+
* attacker who reads `~/.telegramCode/instance.lock`.
|
|
145
|
+
*/
|
|
146
|
+
function hashToken(token) {
|
|
147
|
+
if (!token)
|
|
148
|
+
return 'no-token';
|
|
149
|
+
return crypto.createHash('sha256').update(token).digest('hex').slice(0, 12);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @description Core acquisition logic — no side effects beyond the
|
|
153
|
+
* filesystem. Returns a structured result for the caller to decide whether
|
|
154
|
+
* to print + exit or to handle programmatically.
|
|
155
|
+
*
|
|
156
|
+
* **Atomicity strategy** — naïve `fs.openSync(lp, 'wx')` followed by
|
|
157
|
+
* `writeSync` is racy: between open and write, a concurrent
|
|
158
|
+
* `tryAcquireLock` could read an empty lockfile, parse-fail, treat it as
|
|
159
|
+
* stale, and `unlinkSync` our just-created file. Both processes then think
|
|
160
|
+
* they own the lock.
|
|
161
|
+
*
|
|
162
|
+
* Instead we write the payload to a per-pid tmp file first, then use
|
|
163
|
+
* `fs.linkSync(tmp, lp)` to publish it atomically: `link` either creates
|
|
164
|
+
* `lp` linked to our already-populated tmp inode (success) or fails
|
|
165
|
+
* EEXIST (someone else got there first). The tmp file is always unlinked
|
|
166
|
+
* afterwards. Readers in the EEXIST branch only ever see a fully-written
|
|
167
|
+
* lockfile.
|
|
168
|
+
*
|
|
169
|
+
* On EEXIST we re-read the existing lockfile:
|
|
170
|
+
*
|
|
171
|
+
* - holder is alive → return `live-holder` with their details
|
|
172
|
+
* - holder is dead or lockfile is corrupted → unlink and retry
|
|
173
|
+
*
|
|
174
|
+
* Retry count is capped at `MAX_ACQUIRE_ATTEMPTS` to avoid pathological
|
|
175
|
+
* loops; persistent EEXIST surfaces as `lost-race`.
|
|
176
|
+
*/
|
|
177
|
+
function tryAcquireLock() {
|
|
178
|
+
fs.mkdirSync(dataDir(), { recursive: true });
|
|
179
|
+
const lp = lockPath();
|
|
180
|
+
const own = { hostname: os.hostname(), pidNamespace: readOwnPidNamespace() };
|
|
181
|
+
const payload = {
|
|
182
|
+
pid: process.pid,
|
|
183
|
+
cwd: process.cwd(),
|
|
184
|
+
startedAt: new Date().toISOString(),
|
|
185
|
+
tokenHash: hashToken(process.env.TELEGRAM_BOT_TOKEN),
|
|
186
|
+
...own,
|
|
187
|
+
};
|
|
188
|
+
const tmpPath = `${lp}.${process.pid}.tmp`;
|
|
189
|
+
fs.writeFileSync(tmpPath, JSON.stringify(payload, null, 2));
|
|
190
|
+
try {
|
|
191
|
+
for (let attempt = 0; attempt < MAX_ACQUIRE_ATTEMPTS; attempt++) {
|
|
192
|
+
try {
|
|
193
|
+
fs.linkSync(tmpPath, lp);
|
|
194
|
+
return { ok: true };
|
|
195
|
+
}
|
|
196
|
+
catch (e) {
|
|
197
|
+
const code = e?.code;
|
|
198
|
+
if (code !== 'EEXIST')
|
|
199
|
+
throw e;
|
|
200
|
+
const existing = readLock(lp);
|
|
201
|
+
const holderState = existing ? getLockHolderState(existing, own) : 'stale';
|
|
202
|
+
if (existing && holderState === 'foreign-host') {
|
|
203
|
+
return { ok: false, reason: 'foreign-host', holder: existing, lockPath: lp };
|
|
204
|
+
}
|
|
205
|
+
if (!existing || holderState === 'stale') {
|
|
206
|
+
try {
|
|
207
|
+
fs.unlinkSync(lp);
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
// Lost the race against another cleaner; the next iteration's
|
|
211
|
+
// linkSync will see whatever they left.
|
|
212
|
+
}
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
ok: false,
|
|
217
|
+
reason: 'live-holder',
|
|
218
|
+
holder: existing,
|
|
219
|
+
lockPath: lp,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return { ok: false, reason: 'lost-race', lockPath: lp };
|
|
224
|
+
}
|
|
225
|
+
finally {
|
|
226
|
+
// Always clean up the tmp file — successful link bumps refcount, so the
|
|
227
|
+
// payload survives via `lp`; failed link leaves an orphan we must remove.
|
|
228
|
+
try {
|
|
229
|
+
fs.unlinkSync(tmpPath);
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
// best effort
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* @description Default same-token handoff wait: the predecessor's graceful
|
|
238
|
+
* shutdown is bounded by its watchdog ({@link DEFAULT_WATCHDOG_MS} — which now
|
|
239
|
+
* covers the bounded output flush), so the incoming process must out-wait that
|
|
240
|
+
* WHOLE window plus margin. Undersizing this re-creates the live 2026-07-05
|
|
241
|
+
* outage: nodemon spawns the replacement while the old process is still
|
|
242
|
+
* flushing, the lock wait expires, the replacement exits "already running",
|
|
243
|
+
* and nodemon then idles until the next file change — bot down.
|
|
244
|
+
*/
|
|
245
|
+
exports.lockHandoffMaxWaitMs = shutdown_1.DEFAULT_WATCHDOG_MS + 2000;
|
|
246
|
+
/**
|
|
247
|
+
* @description Same as {@link tryAcquireLock} but waits up to `maxWaitMs`
|
|
248
|
+
* for a same-token holder to release before giving up.
|
|
249
|
+
*
|
|
250
|
+
* Why same-token-only: a different token means a genuinely different bot
|
|
251
|
+
* instance is running against the same `DATA_DIR` (operator mistake — they
|
|
252
|
+
* forgot to set distinct `DATA_DIR`s). We MUST refuse fast in that case;
|
|
253
|
+
* polite waiting would mask the misconfiguration. A matching token, on the
|
|
254
|
+
* other hand, almost always means "my own predecessor is in the middle of
|
|
255
|
+
* its graceful-shutdown sequence" — typical during a `nodemon`-driven hot
|
|
256
|
+
* reload where the old PID has been signalled but is still flushing. That
|
|
257
|
+
* shutdown is bounded by the predecessor's watchdog, so the default wait
|
|
258
|
+
* ({@link lockHandoffMaxWaitMs}) out-waits it with margin and the new process
|
|
259
|
+
* picks the lock back up without spamming the operator with a "live-holder"
|
|
260
|
+
* abort.
|
|
261
|
+
*
|
|
262
|
+
* The sleep function is injected so unit tests can drive the retry loop
|
|
263
|
+
* deterministically without spending real wall-clock time.
|
|
264
|
+
*/
|
|
265
|
+
async function tryAcquireLockWithRetry(opts = {}) {
|
|
266
|
+
const maxWaitMs = opts.maxWaitMs ?? exports.lockHandoffMaxWaitMs;
|
|
267
|
+
const intervalMs = opts.intervalMs ?? 100;
|
|
268
|
+
const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
269
|
+
const ourTokenHash = hashToken(process.env.TELEGRAM_BOT_TOKEN);
|
|
270
|
+
const deadline = Date.now() + maxWaitMs;
|
|
271
|
+
for (;;) {
|
|
272
|
+
const r = tryAcquireLock();
|
|
273
|
+
if (r.ok)
|
|
274
|
+
return r;
|
|
275
|
+
// Foreign holder: refuse fast, no retry. Wrong DATA_DIR config or two
|
|
276
|
+
// different bots competing — surfacing the conflict is correct.
|
|
277
|
+
if (r.reason !== 'live-holder' || r.holder.tokenHash !== ourTokenHash) {
|
|
278
|
+
return r;
|
|
279
|
+
}
|
|
280
|
+
// Same-token live holder. Wait for it to release (nodemon hot reload
|
|
281
|
+
// handoff), then retry. Bounded by `maxWaitMs` so a wedged old process
|
|
282
|
+
// can't keep us spinning forever.
|
|
283
|
+
if (Date.now() >= deadline)
|
|
284
|
+
return r;
|
|
285
|
+
await sleep(intervalMs);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* @description Acquire the single-instance lock for this `DATA_DIR`, or
|
|
290
|
+
* `process.exit(1)` after printing diagnostics.
|
|
291
|
+
*
|
|
292
|
+
* Thin user-facing wrapper around {@link tryAcquireLockWithRetry} — the
|
|
293
|
+
* retry tolerates a brief overlap between an exiting old bot and the
|
|
294
|
+
* incoming new bot during a `nodemon` hot reload (same token, same
|
|
295
|
+
* `DATA_DIR`). Foreign holders still fail immediately.
|
|
296
|
+
*/
|
|
297
|
+
async function acquireLock() {
|
|
298
|
+
const r = await tryAcquireLockWithRetry();
|
|
299
|
+
if (r.ok)
|
|
300
|
+
return;
|
|
301
|
+
if (r.reason === 'live-holder') {
|
|
302
|
+
process.stderr.write(`telegramcode is already running:\n` +
|
|
303
|
+
` pid: ${r.holder.pid}\n` +
|
|
304
|
+
` cwd: ${r.holder.cwd}\n` +
|
|
305
|
+
` started: ${r.holder.startedAt}\n` +
|
|
306
|
+
` token hash: ${r.holder.tokenHash}\n` +
|
|
307
|
+
` lock file: ${r.lockPath}\n\n` +
|
|
308
|
+
`Stop the running instance first, or set DATA_DIR to use a separate state dir.\n`);
|
|
309
|
+
}
|
|
310
|
+
else if (r.reason === 'foreign-host') {
|
|
311
|
+
process.stderr.write(`telegramcode is locked by an instance on another host, which cannot be checked from here:\n` +
|
|
312
|
+
` host: ${r.holder.hostname}\n` +
|
|
313
|
+
` pid: ${r.holder.pid}\n` +
|
|
314
|
+
` started: ${r.holder.startedAt}\n` +
|
|
315
|
+
` lock file: ${r.lockPath}\n\n` +
|
|
316
|
+
`Stop that instance; if it is already gone, remove the lock file and start again.\n`);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
process.stderr.write(`telegramcode could not acquire ${r.lockPath} after retry. ` +
|
|
320
|
+
`Another instance is likely starting concurrently.\n`);
|
|
321
|
+
}
|
|
322
|
+
process.exit(1);
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* @description Best-effort lockfile removal.
|
|
326
|
+
*
|
|
327
|
+
* Called from process-exit handlers; we deliberately swallow errors because
|
|
328
|
+
* an exit-time crash here masks the real shutdown cause. The worst case
|
|
329
|
+
* (file left behind after a `kill -9`) is harmless — the next `acquireLock`
|
|
330
|
+
* detects the dead pid and reclaims.
|
|
331
|
+
*
|
|
332
|
+
* Refuses to delete a lockfile that does NOT name us — defensive against
|
|
333
|
+
* `kill -9` parent + child still holding a stale handle.
|
|
334
|
+
*/
|
|
335
|
+
function releaseLock() {
|
|
336
|
+
const lp = lockPath();
|
|
337
|
+
const existing = readLock(lp);
|
|
338
|
+
if (!existing || existing.pid !== process.pid)
|
|
339
|
+
return;
|
|
340
|
+
try {
|
|
341
|
+
fs.unlinkSync(lp);
|
|
342
|
+
}
|
|
343
|
+
catch {
|
|
344
|
+
// best effort
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* @description Register exit / crash handlers that release the lock.
|
|
349
|
+
*
|
|
350
|
+
* Wired once from `runBot()`. Covers:
|
|
351
|
+
* - normal exit (release on `process.exit`) — fires whenever any code
|
|
352
|
+
* path calls `process.exit(N)`, including the bot's own ordered
|
|
353
|
+
* shutdown (`bot.stop → state.flush → releaseLock → exit(0)`). The
|
|
354
|
+
* redundant release here is a belt-and-suspenders for code paths that
|
|
355
|
+
* hit `process.exit` without going through the bot shutdown (CLI
|
|
356
|
+
* misuse, early env-validation failures).
|
|
357
|
+
* - `uncaughtException` (release on crash).
|
|
358
|
+
*
|
|
359
|
+
* **Signal handlers are intentionally NOT installed here.** That used to
|
|
360
|
+
* be the case, but it caused a race: this module loads first
|
|
361
|
+
* (`cli/bot.ts:54`), so its `SIGINT`/`SIGTERM` handler always fires before
|
|
362
|
+
* the bot's own (`bot.ts: shutdown(...)`); a synchronous `process.exit(0)`
|
|
363
|
+
* inside the lock handler then pre-empts the bot's *async* `state.flush()`
|
|
364
|
+
* and the last <500ms of state never reaches disk. Letting the bot own
|
|
365
|
+
* signal handling (and ending with `releaseLock(); process.exit(0)` itself)
|
|
366
|
+
* makes the sequence deterministic. If a SIGINT/SIGTERM arrives before the
|
|
367
|
+
* bot installs its handler (very narrow window during boot), Node's
|
|
368
|
+
* default action terminates the process and we leak the lock file —
|
|
369
|
+
* harmless, because the next start sees a dead pid and reclaims it via
|
|
370
|
+
* the stale-lock recovery path in {@link tryAcquireLock}.
|
|
371
|
+
*
|
|
372
|
+
* SIGKILL is not catchable, hence the same stale-lock recovery path.
|
|
373
|
+
*/
|
|
374
|
+
function installLockCleanupHandlers() {
|
|
375
|
+
const cleanup = () => releaseLock();
|
|
376
|
+
process.on('exit', cleanup);
|
|
377
|
+
process.on('uncaughtException', (err) => {
|
|
378
|
+
cleanup();
|
|
379
|
+
// Print the original error ourselves and exit with the canonical
|
|
380
|
+
// crash-on-uncaught code. We intentionally do NOT re-throw — re-throwing
|
|
381
|
+
// would fire `uncaughtException` again, re-enter our handler, schedule
|
|
382
|
+
// another re-throw, and loop forever (the process would never exit and
|
|
383
|
+
// the user would never see the original stack).
|
|
384
|
+
console.error(err);
|
|
385
|
+
process.exit(1);
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
//# sourceMappingURL=instanceLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instanceLock.js","sourceRoot":"","sources":["../src/instanceLock.ts"],"names":[],"mappings":"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"}
|