charness 0.0.0-stage → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +88 -0
- package/DEVELOPMENT.md +110 -0
- package/LICENSE +21 -0
- package/MIGRATION_1_TO_2.md +24 -0
- package/README.md +1024 -2
- package/dist/accessControl.d.ts +71 -0
- package/dist/accessControl.d.ts.map +1 -0
- package/dist/accessControl.js +108 -0
- package/dist/accessControl.js.map +1 -0
- package/dist/adapters/adapterEventRouting.d.ts +51 -0
- package/dist/adapters/adapterEventRouting.d.ts.map +1 -0
- package/dist/adapters/adapterEventRouting.js +74 -0
- package/dist/adapters/adapterEventRouting.js.map +1 -0
- package/dist/adapters/adapterNames.d.ts +19 -0
- package/dist/adapters/adapterNames.d.ts.map +1 -0
- package/dist/adapters/adapterNames.js +25 -0
- package/dist/adapters/adapterNames.js.map +1 -0
- package/dist/adapters/claudeCliAdapter.d.ts +1336 -0
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeCliAdapter.js +4204 -0
- package/dist/adapters/claudeCliAdapter.js.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +548 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.js +1810 -0
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -0
- package/dist/adapters/claudePlatformFlags.d.ts +35 -0
- package/dist/adapters/claudePlatformFlags.d.ts.map +1 -0
- package/dist/adapters/claudePlatformFlags.js +46 -0
- package/dist/adapters/claudePlatformFlags.js.map +1 -0
- package/dist/adapters/createAdapter.d.ts +252 -0
- package/dist/adapters/createAdapter.d.ts.map +1 -0
- package/dist/adapters/createAdapter.js +475 -0
- package/dist/adapters/createAdapter.js.map +1 -0
- package/dist/adapters/openCodeAdapter.d.ts +1446 -0
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
- package/dist/adapters/openCodeAdapter.js +4540 -0
- package/dist/adapters/openCodeAdapter.js.map +1 -0
- package/dist/adapters/sessionLaunchDefaults.d.ts +28 -0
- package/dist/adapters/sessionLaunchDefaults.d.ts.map +1 -0
- package/dist/adapters/sessionLaunchDefaults.js +15 -0
- package/dist/adapters/sessionLaunchDefaults.js.map +1 -0
- package/dist/adapters/terminalAdapter.d.ts +68 -0
- package/dist/adapters/terminalAdapter.d.ts.map +1 -0
- package/dist/adapters/terminalAdapter.js +371 -0
- package/dist/adapters/terminalAdapter.js.map +1 -0
- package/dist/agentLogin/agentLogin.d.ts +31 -0
- package/dist/agentLogin/agentLogin.d.ts.map +1 -0
- package/dist/agentLogin/agentLogin.js +493 -0
- package/dist/agentLogin/agentLogin.js.map +1 -0
- package/dist/agentTrigger.d.ts +28 -0
- package/dist/agentTrigger.d.ts.map +1 -0
- package/dist/agentTrigger.js +53 -0
- package/dist/agentTrigger.js.map +1 -0
- package/dist/apiErrorRetry.d.ts +209 -0
- package/dist/apiErrorRetry.d.ts.map +1 -0
- package/dist/apiErrorRetry.js +351 -0
- package/dist/apiErrorRetry.js.map +1 -0
- package/dist/apiRetryKick.d.ts +148 -0
- package/dist/apiRetryKick.d.ts.map +1 -0
- package/dist/apiRetryKick.js +158 -0
- package/dist/apiRetryKick.js.map +1 -0
- package/dist/bootClassifier.d.ts +46 -0
- package/dist/bootClassifier.d.ts.map +1 -0
- package/dist/bootClassifier.js +43 -0
- package/dist/bootClassifier.js.map +1 -0
- package/dist/bot.d.ts +207 -0
- package/dist/bot.d.ts.map +1 -0
- package/dist/bot.js +10611 -0
- package/dist/bot.js.map +1 -0
- package/dist/botFileStorage.d.ts +60 -0
- package/dist/botFileStorage.d.ts.map +1 -0
- package/dist/botFileStorage.js +205 -0
- package/dist/botFileStorage.js.map +1 -0
- package/dist/cli/applyDnsFix.d.ts +7 -0
- package/dist/cli/applyDnsFix.d.ts.map +1 -0
- package/dist/cli/applyDnsFix.js +46 -0
- package/dist/cli/applyDnsFix.js.map +1 -0
- package/dist/cli/bot.d.ts +27 -0
- package/dist/cli/bot.d.ts.map +1 -0
- package/dist/cli/bot.js +98 -0
- package/dist/cli/bot.js.map +1 -0
- package/dist/cli/botEntry.d.ts +3 -0
- package/dist/cli/botEntry.d.ts.map +1 -0
- package/dist/cli/botEntry.js +11 -0
- package/dist/cli/botEntry.js.map +1 -0
- package/dist/cli/connectorGuards.d.ts +31 -0
- package/dist/cli/connectorGuards.d.ts.map +1 -0
- package/dist/cli/connectorGuards.js +159 -0
- package/dist/cli/connectorGuards.js.map +1 -0
- package/dist/cli/envLoader.d.ts +34 -0
- package/dist/cli/envLoader.d.ts.map +1 -0
- package/dist/cli/envLoader.js +132 -0
- package/dist/cli/envLoader.js.map +1 -0
- package/dist/cli/hot.d.ts +82 -0
- package/dist/cli/hot.d.ts.map +1 -0
- package/dist/cli/hot.js +323 -0
- package/dist/cli/hot.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +130 -0
- package/dist/cli.js.map +1 -0
- package/dist/connectors/jira/adf.d.ts +72 -0
- package/dist/connectors/jira/adf.d.ts.map +1 -0
- package/dist/connectors/jira/adf.js +407 -0
- package/dist/connectors/jira/adf.js.map +1 -0
- package/dist/connectors/jira/agentBinaries.d.ts +14 -0
- package/dist/connectors/jira/agentBinaries.d.ts.map +1 -0
- package/dist/connectors/jira/agentBinaries.js +75 -0
- package/dist/connectors/jira/agentBinaries.js.map +1 -0
- package/dist/connectors/jira/answerSink.d.ts +52 -0
- package/dist/connectors/jira/answerSink.d.ts.map +1 -0
- package/dist/connectors/jira/answerSink.js +220 -0
- package/dist/connectors/jira/answerSink.js.map +1 -0
- package/dist/connectors/jira/attachmentDownload.d.ts +41 -0
- package/dist/connectors/jira/attachmentDownload.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentDownload.js +92 -0
- package/dist/connectors/jira/attachmentDownload.js.map +1 -0
- package/dist/connectors/jira/attachmentTool.d.ts +43 -0
- package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentTool.js +150 -0
- package/dist/connectors/jira/attachmentTool.js.map +1 -0
- package/dist/connectors/jira/client.d.ts +490 -0
- package/dist/connectors/jira/client.d.ts.map +1 -0
- package/dist/connectors/jira/client.js +453 -0
- package/dist/connectors/jira/client.js.map +1 -0
- package/dist/connectors/jira/config.d.ts +117 -0
- package/dist/connectors/jira/config.d.ts.map +1 -0
- package/dist/connectors/jira/config.js +350 -0
- package/dist/connectors/jira/config.js.map +1 -0
- package/dist/connectors/jira/configFile.d.ts +10 -0
- package/dist/connectors/jira/configFile.d.ts.map +1 -0
- package/dist/connectors/jira/configFile.js +50 -0
- package/dist/connectors/jira/configFile.js.map +1 -0
- package/dist/connectors/jira/connector.d.ts +68 -0
- package/dist/connectors/jira/connector.d.ts.map +1 -0
- package/dist/connectors/jira/connector.js +257 -0
- package/dist/connectors/jira/connector.js.map +1 -0
- package/dist/connectors/jira/contextLedger.d.ts +59 -0
- package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
- package/dist/connectors/jira/contextLedger.js +194 -0
- package/dist/connectors/jira/contextLedger.js.map +1 -0
- package/dist/connectors/jira/contextPreamble.d.ts +18 -0
- package/dist/connectors/jira/contextPreamble.d.ts.map +1 -0
- package/dist/connectors/jira/contextPreamble.js +31 -0
- package/dist/connectors/jira/contextPreamble.js.map +1 -0
- package/dist/connectors/jira/inbound.d.ts +132 -0
- package/dist/connectors/jira/inbound.d.ts.map +1 -0
- package/dist/connectors/jira/inbound.js +316 -0
- package/dist/connectors/jira/inbound.js.map +1 -0
- package/dist/connectors/jira/issueBlocks.d.ts +51 -0
- package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
- package/dist/connectors/jira/issueBlocks.js +182 -0
- package/dist/connectors/jira/issueBlocks.js.map +1 -0
- package/dist/connectors/jira/issueContext.d.ts +25 -0
- package/dist/connectors/jira/issueContext.d.ts.map +1 -0
- package/dist/connectors/jira/issueContext.js +53 -0
- package/dist/connectors/jira/issueContext.js.map +1 -0
- package/dist/connectors/jira/issueDelta.d.ts +35 -0
- package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
- package/dist/connectors/jira/issueDelta.js +50 -0
- package/dist/connectors/jira/issueDelta.js.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts +20 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.js +92 -0
- package/dist/connectors/jira/mediaPlaceholders.js.map +1 -0
- package/dist/connectors/jira/outbound.d.ts +6 -0
- package/dist/connectors/jira/outbound.d.ts.map +1 -0
- package/dist/connectors/jira/outbound.js +38 -0
- package/dist/connectors/jira/outbound.js.map +1 -0
- package/dist/connectors/jira/prompt.d.ts +37 -0
- package/dist/connectors/jira/prompt.d.ts.map +1 -0
- package/dist/connectors/jira/prompt.js +99 -0
- package/dist/connectors/jira/prompt.js.map +1 -0
- package/dist/connectors/jira/promptSpill.d.ts +50 -0
- package/dist/connectors/jira/promptSpill.d.ts.map +1 -0
- package/dist/connectors/jira/promptSpill.js +157 -0
- package/dist/connectors/jira/promptSpill.js.map +1 -0
- package/dist/connectors/jira/promptText.d.ts +7 -0
- package/dist/connectors/jira/promptText.d.ts.map +1 -0
- package/dist/connectors/jira/promptText.js +26 -0
- package/dist/connectors/jira/promptText.js.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts +16 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.js +101 -0
- package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/jira/trigger.d.ts +50 -0
- package/dist/connectors/jira/trigger.d.ts.map +1 -0
- package/dist/connectors/jira/trigger.js +93 -0
- package/dist/connectors/jira/trigger.js.map +1 -0
- package/dist/connectors/jira/triggerLog.d.ts +51 -0
- package/dist/connectors/jira/triggerLog.d.ts.map +1 -0
- package/dist/connectors/jira/triggerLog.js +78 -0
- package/dist/connectors/jira/triggerLog.js.map +1 -0
- package/dist/connectors/jira/unconfirmedPosts.d.ts +58 -0
- package/dist/connectors/jira/unconfirmedPosts.d.ts.map +1 -0
- package/dist/connectors/jira/unconfirmedPosts.js +105 -0
- package/dist/connectors/jira/unconfirmedPosts.js.map +1 -0
- package/dist/connectors/telegram/answerSink.d.ts +46 -0
- package/dist/connectors/telegram/answerSink.d.ts.map +1 -0
- package/dist/connectors/telegram/answerSink.js +71 -0
- package/dist/connectors/telegram/answerSink.js.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +31 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js +142 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -0
- package/dist/connectors/telegram/commands/botCore.d.ts +46 -0
- package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/botCore.js +3 -0
- package/dist/connectors/telegram/commands/botCore.js.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.js +13 -0
- package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -0
- package/dist/connectors/telegram/commands/compaction.d.ts +47 -0
- package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/compaction.js +868 -0
- package/dist/connectors/telegram/commands/compaction.js.map +1 -0
- package/dist/connectors/telegram/commands/displayModes.d.ts +13 -0
- package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/displayModes.js +335 -0
- package/dist/connectors/telegram/commands/displayModes.js.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts +95 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.js +841 -0
- package/dist/connectors/telegram/commands/modelProviders.js.map +1 -0
- package/dist/connectors/telegram/commands/reminders.d.ts +54 -0
- package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/reminders.js +624 -0
- package/dist/connectors/telegram/commands/reminders.js.map +1 -0
- package/dist/connectors/telegram/fileIntake.d.ts +166 -0
- package/dist/connectors/telegram/fileIntake.d.ts.map +1 -0
- package/dist/connectors/telegram/fileIntake.js +304 -0
- package/dist/connectors/telegram/fileIntake.js.map +1 -0
- package/dist/connectors/telegram/fileSendGateway.d.ts +57 -0
- package/dist/connectors/telegram/fileSendGateway.d.ts.map +1 -0
- package/dist/connectors/telegram/fileSendGateway.js +221 -0
- package/dist/connectors/telegram/fileSendGateway.js.map +1 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.d.ts +52 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.d.ts.map +1 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.js +71 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.js.map +1 -0
- package/dist/connectors/telegram/inbound.d.ts +131 -0
- package/dist/connectors/telegram/inbound.d.ts.map +1 -0
- package/dist/connectors/telegram/inbound.js +278 -0
- package/dist/connectors/telegram/inbound.js.map +1 -0
- package/dist/connectors/telegram/languagePicker.d.ts +32 -0
- package/dist/connectors/telegram/languagePicker.d.ts.map +1 -0
- package/dist/connectors/telegram/languagePicker.js +55 -0
- package/dist/connectors/telegram/languagePicker.js.map +1 -0
- package/dist/connectors/telegram/messageSplit.d.ts +62 -0
- package/dist/connectors/telegram/messageSplit.d.ts.map +1 -0
- package/dist/connectors/telegram/messageSplit.js +119 -0
- package/dist/connectors/telegram/messageSplit.js.map +1 -0
- package/dist/connectors/telegram/outbound.d.ts +62 -0
- package/dist/connectors/telegram/outbound.d.ts.map +1 -0
- package/dist/connectors/telegram/outbound.js +116 -0
- package/dist/connectors/telegram/outbound.js.map +1 -0
- package/dist/connectors/telegram/output/createOutputTransport.d.ts +34 -0
- package/dist/connectors/telegram/output/createOutputTransport.d.ts.map +1 -0
- package/dist/connectors/telegram/output/createOutputTransport.js +77 -0
- package/dist/connectors/telegram/output/createOutputTransport.js.map +1 -0
- package/dist/connectors/telegram/output/dmOutputTransport.d.ts +47 -0
- package/dist/connectors/telegram/output/dmOutputTransport.d.ts.map +1 -0
- package/dist/connectors/telegram/output/dmOutputTransport.js +412 -0
- package/dist/connectors/telegram/output/dmOutputTransport.js.map +1 -0
- package/dist/connectors/telegram/outputBacklogGlue.d.ts +38 -0
- package/dist/connectors/telegram/outputBacklogGlue.d.ts.map +1 -0
- package/dist/connectors/telegram/outputBacklogGlue.js +49 -0
- package/dist/connectors/telegram/outputBacklogGlue.js.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts +93 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.js +120 -0
- package/dist/connectors/telegram/outputFlushPlan.js.map +1 -0
- package/dist/connectors/telegram/questionKeyboards.d.ts +30 -0
- package/dist/connectors/telegram/questionKeyboards.d.ts.map +1 -0
- package/dist/connectors/telegram/questionKeyboards.js +37 -0
- package/dist/connectors/telegram/questionKeyboards.js.map +1 -0
- package/dist/connectors/telegram/renderAgentHtml.d.ts +27 -0
- package/dist/connectors/telegram/renderAgentHtml.d.ts.map +1 -0
- package/dist/connectors/telegram/renderAgentHtml.js +97 -0
- package/dist/connectors/telegram/renderAgentHtml.js.map +1 -0
- package/dist/connectors/telegram/sessionKeyCodec.d.ts +28 -0
- package/dist/connectors/telegram/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/telegram/sessionKeyCodec.js +107 -0
- package/dist/connectors/telegram/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/telegram/telegramCallGuard.d.ts +19 -0
- package/dist/connectors/telegram/telegramCallGuard.d.ts.map +1 -0
- package/dist/connectors/telegram/telegramCallGuard.js +35 -0
- package/dist/connectors/telegram/telegramCallGuard.js.map +1 -0
- package/dist/connectors/telegram/timezonePicker.d.ts +85 -0
- package/dist/connectors/telegram/timezonePicker.d.ts.map +1 -0
- package/dist/connectors/telegram/timezonePicker.js +142 -0
- package/dist/connectors/telegram/timezonePicker.js.map +1 -0
- package/dist/connectors/telegram/updateDispatcher.d.ts +85 -0
- package/dist/connectors/telegram/updateDispatcher.d.ts.map +1 -0
- package/dist/connectors/telegram/updateDispatcher.js +159 -0
- package/dist/connectors/telegram/updateDispatcher.js.map +1 -0
- package/dist/connectors/test/connector.d.ts +52 -0
- package/dist/connectors/test/connector.d.ts.map +1 -0
- package/dist/connectors/test/connector.js +143 -0
- package/dist/connectors/test/connector.js.map +1 -0
- package/dist/connectors/test/sessionKeyCodec.d.ts +25 -0
- package/dist/connectors/test/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/test/sessionKeyCodec.js +50 -0
- package/dist/connectors/test/sessionKeyCodec.js.map +1 -0
- package/dist/diagLog.d.ts +6 -0
- package/dist/diagLog.d.ts.map +1 -0
- package/dist/diagLog.js +58 -0
- package/dist/diagLog.js.map +1 -0
- package/dist/effortLevels.d.ts +68 -0
- package/dist/effortLevels.d.ts.map +1 -0
- package/dist/effortLevels.js +114 -0
- package/dist/effortLevels.js.map +1 -0
- package/dist/folderName.d.ts +42 -0
- package/dist/folderName.d.ts.map +1 -0
- package/dist/folderName.js +51 -0
- package/dist/folderName.js.map +1 -0
- package/dist/i18n/de.d.ts +2 -0
- package/dist/i18n/de.d.ts.map +1 -0
- package/dist/i18n/de.js +537 -0
- package/dist/i18n/de.js.map +1 -0
- package/dist/i18n/en.d.ts +7 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +566 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/es.d.ts +2 -0
- package/dist/i18n/es.d.ts.map +1 -0
- package/dist/i18n/es.js +537 -0
- package/dist/i18n/es.js.map +1 -0
- package/dist/i18n/fr.d.ts +2 -0
- package/dist/i18n/fr.d.ts.map +1 -0
- package/dist/i18n/fr.js +537 -0
- package/dist/i18n/fr.js.map +1 -0
- package/dist/i18n/hi.d.ts +2 -0
- package/dist/i18n/hi.d.ts.map +1 -0
- package/dist/i18n/hi.js +537 -0
- package/dist/i18n/hi.js.map +1 -0
- package/dist/i18n/ja.d.ts +2 -0
- package/dist/i18n/ja.d.ts.map +1 -0
- package/dist/i18n/ja.js +537 -0
- package/dist/i18n/ja.js.map +1 -0
- package/dist/i18n/ka.d.ts +2 -0
- package/dist/i18n/ka.d.ts.map +1 -0
- package/dist/i18n/ka.js +537 -0
- package/dist/i18n/ka.js.map +1 -0
- package/dist/i18n/pt.d.ts +2 -0
- package/dist/i18n/pt.d.ts.map +1 -0
- package/dist/i18n/pt.js +537 -0
- package/dist/i18n/pt.js.map +1 -0
- package/dist/i18n/ru.d.ts +6 -0
- package/dist/i18n/ru.d.ts.map +1 -0
- package/dist/i18n/ru.js +540 -0
- package/dist/i18n/ru.js.map +1 -0
- package/dist/i18n/uk.d.ts +8 -0
- package/dist/i18n/uk.d.ts.map +1 -0
- package/dist/i18n/uk.js +542 -0
- package/dist/i18n/uk.js.map +1 -0
- package/dist/i18n/uz.d.ts +2 -0
- package/dist/i18n/uz.d.ts.map +1 -0
- package/dist/i18n/uz.js +537 -0
- package/dist/i18n/uz.js.map +1 -0
- package/dist/i18n/zh.d.ts +2 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/i18n/zh.js +537 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/i18n.d.ts +115 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +233 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/installManager.d.ts +99 -0
- package/dist/installManager.d.ts.map +1 -0
- package/dist/installManager.js +943 -0
- package/dist/installManager.js.map +1 -0
- package/dist/instanceLock.d.ts +161 -0
- package/dist/instanceLock.d.ts.map +1 -0
- package/dist/instanceLock.js +388 -0
- package/dist/instanceLock.js.map +1 -0
- package/dist/mcpConfig.d.ts +76 -0
- package/dist/mcpConfig.d.ts.map +1 -0
- package/dist/mcpConfig.js +270 -0
- package/dist/mcpConfig.js.map +1 -0
- package/dist/openCodeOpenQuestion.d.ts +44 -0
- package/dist/openCodeOpenQuestion.d.ts.map +1 -0
- package/dist/openCodeOpenQuestion.js +64 -0
- package/dist/openCodeOpenQuestion.js.map +1 -0
- package/dist/openCodeQuestionFlow.d.ts +105 -0
- package/dist/openCodeQuestionFlow.d.ts.map +1 -0
- package/dist/openCodeQuestionFlow.js +143 -0
- package/dist/openCodeQuestionFlow.js.map +1 -0
- package/dist/openCodeSessionRouting.d.ts +133 -0
- package/dist/openCodeSessionRouting.d.ts.map +1 -0
- package/dist/openCodeSessionRouting.js +253 -0
- package/dist/openCodeSessionRouting.js.map +1 -0
- package/dist/openCodeSessionTitle.d.ts +50 -0
- package/dist/openCodeSessionTitle.d.ts.map +1 -0
- package/dist/openCodeSessionTitle.js +84 -0
- package/dist/openCodeSessionTitle.js.map +1 -0
- package/dist/outputTrace.d.ts +108 -0
- package/dist/outputTrace.d.ts.map +1 -0
- package/dist/outputTrace.js +430 -0
- package/dist/outputTrace.js.map +1 -0
- package/dist/pendingQuestionRepost.d.ts +47 -0
- package/dist/pendingQuestionRepost.d.ts.map +1 -0
- package/dist/pendingQuestionRepost.js +29 -0
- package/dist/pendingQuestionRepost.js.map +1 -0
- package/dist/pinnedStatus.d.ts +52 -0
- package/dist/pinnedStatus.d.ts.map +1 -0
- package/dist/pinnedStatus.js +36 -0
- package/dist/pinnedStatus.js.map +1 -0
- package/dist/platform/answerSink.d.ts +93 -0
- package/dist/platform/answerSink.d.ts.map +1 -0
- package/dist/platform/answerSink.js +31 -0
- package/dist/platform/answerSink.js.map +1 -0
- package/dist/platform/capabilityFallback.d.ts +39 -0
- package/dist/platform/capabilityFallback.d.ts.map +1 -0
- package/dist/platform/capabilityFallback.js +55 -0
- package/dist/platform/capabilityFallback.js.map +1 -0
- package/dist/platform/commandRouter.d.ts +51 -0
- package/dist/platform/commandRouter.d.ts.map +1 -0
- package/dist/platform/commandRouter.js +53 -0
- package/dist/platform/commandRouter.js.map +1 -0
- package/dist/platform/connectorSet.d.ts +39 -0
- package/dist/platform/connectorSet.d.ts.map +1 -0
- package/dist/platform/connectorSet.js +55 -0
- package/dist/platform/connectorSet.js.map +1 -0
- package/dist/platform/inbound.d.ts +147 -0
- package/dist/platform/inbound.d.ts.map +1 -0
- package/dist/platform/inbound.js +18 -0
- package/dist/platform/inbound.js.map +1 -0
- package/dist/platform/outbound.d.ts +225 -0
- package/dist/platform/outbound.d.ts.map +1 -0
- package/dist/platform/outbound.js +30 -0
- package/dist/platform/outbound.js.map +1 -0
- package/dist/platform/unservedStateGuard.d.ts +27 -0
- package/dist/platform/unservedStateGuard.d.ts.map +1 -0
- package/dist/platform/unservedStateGuard.js +42 -0
- package/dist/platform/unservedStateGuard.js.map +1 -0
- package/dist/postToSession.d.ts +94 -0
- package/dist/postToSession.d.ts.map +1 -0
- package/dist/postToSession.js +56 -0
- package/dist/postToSession.js.map +1 -0
- package/dist/progressLine.d.ts +180 -0
- package/dist/progressLine.d.ts.map +1 -0
- package/dist/progressLine.js +293 -0
- package/dist/progressLine.js.map +1 -0
- package/dist/rateLimiter.d.ts +246 -0
- package/dist/rateLimiter.d.ts.map +1 -0
- package/dist/rateLimiter.js +555 -0
- package/dist/rateLimiter.js.map +1 -0
- package/dist/requests/answerRequest.d.ts +57 -0
- package/dist/requests/answerRequest.d.ts.map +1 -0
- package/dist/requests/answerRequest.js +96 -0
- package/dist/requests/answerRequest.js.map +1 -0
- package/dist/requests/answerTail.d.ts +83 -0
- package/dist/requests/answerTail.d.ts.map +1 -0
- package/dist/requests/answerTail.js +102 -0
- package/dist/requests/answerTail.js.map +1 -0
- package/dist/requests/limitWaitAnswer.d.ts +87 -0
- package/dist/requests/limitWaitAnswer.d.ts.map +1 -0
- package/dist/requests/limitWaitAnswer.js +83 -0
- package/dist/requests/limitWaitAnswer.js.map +1 -0
- package/dist/requests/requestGroup.d.ts +44 -0
- package/dist/requests/requestGroup.d.ts.map +1 -0
- package/dist/requests/requestGroup.js +63 -0
- package/dist/requests/requestGroup.js.map +1 -0
- package/dist/requests/requestHeader.d.ts +70 -0
- package/dist/requests/requestHeader.d.ts.map +1 -0
- package/dist/requests/requestHeader.js +83 -0
- package/dist/requests/requestHeader.js.map +1 -0
- package/dist/requests/requestLedger.d.ts +217 -0
- package/dist/requests/requestLedger.d.ts.map +1 -0
- package/dist/requests/requestLedger.js +468 -0
- package/dist/requests/requestLedger.js.map +1 -0
- package/dist/requests/sessionTurnProbe.d.ts +52 -0
- package/dist/requests/sessionTurnProbe.d.ts.map +1 -0
- package/dist/requests/sessionTurnProbe.js +29 -0
- package/dist/requests/sessionTurnProbe.js.map +1 -0
- package/dist/requests/types.d.ts +181 -0
- package/dist/requests/types.d.ts.map +1 -0
- package/dist/requests/types.js +9 -0
- package/dist/requests/types.js.map +1 -0
- package/dist/requests/wakeUpEngine.d.ts +160 -0
- package/dist/requests/wakeUpEngine.d.ts.map +1 -0
- package/dist/requests/wakeUpEngine.js +399 -0
- package/dist/requests/wakeUpEngine.js.map +1 -0
- package/dist/requests/wakeUpRules.d.ts +151 -0
- package/dist/requests/wakeUpRules.d.ts.map +1 -0
- package/dist/requests/wakeUpRules.js +167 -0
- package/dist/requests/wakeUpRules.js.map +1 -0
- package/dist/resumeContext.d.ts +87 -0
- package/dist/resumeContext.d.ts.map +1 -0
- package/dist/resumeContext.js +114 -0
- package/dist/resumeContext.js.map +1 -0
- package/dist/scheduler/checkRun.d.ts +95 -0
- package/dist/scheduler/checkRun.d.ts.map +1 -0
- package/dist/scheduler/checkRun.js +172 -0
- package/dist/scheduler/checkRun.js.map +1 -0
- package/dist/scheduler/delivery.d.ts +99 -0
- package/dist/scheduler/delivery.d.ts.map +1 -0
- package/dist/scheduler/delivery.js +212 -0
- package/dist/scheduler/delivery.js.map +1 -0
- package/dist/scheduler/deliveryKind.d.ts +29 -0
- package/dist/scheduler/deliveryKind.d.ts.map +1 -0
- package/dist/scheduler/deliveryKind.js +39 -0
- package/dist/scheduler/deliveryKind.js.map +1 -0
- package/dist/scheduler/directoryThreads.d.ts +19 -0
- package/dist/scheduler/directoryThreads.d.ts.map +1 -0
- package/dist/scheduler/directoryThreads.js +28 -0
- package/dist/scheduler/directoryThreads.js.map +1 -0
- package/dist/scheduler/engine.d.ts +77 -0
- package/dist/scheduler/engine.d.ts.map +1 -0
- package/dist/scheduler/engine.js +337 -0
- package/dist/scheduler/engine.js.map +1 -0
- package/dist/scheduler/injection.d.ts +102 -0
- package/dist/scheduler/injection.d.ts.map +1 -0
- package/dist/scheduler/injection.js +122 -0
- package/dist/scheduler/injection.js.map +1 -0
- package/dist/scheduler/mcpBoot.d.ts +65 -0
- package/dist/scheduler/mcpBoot.d.ts.map +1 -0
- package/dist/scheduler/mcpBoot.js +60 -0
- package/dist/scheduler/mcpBoot.js.map +1 -0
- package/dist/scheduler/mcpSurface.d.ts +355 -0
- package/dist/scheduler/mcpSurface.d.ts.map +1 -0
- package/dist/scheduler/mcpSurface.js +1257 -0
- package/dist/scheduler/mcpSurface.js.map +1 -0
- package/dist/scheduler/rebindResume.d.ts +27 -0
- package/dist/scheduler/rebindResume.d.ts.map +1 -0
- package/dist/scheduler/rebindResume.js +17 -0
- package/dist/scheduler/rebindResume.js.map +1 -0
- package/dist/scheduler/recurrence.d.ts +58 -0
- package/dist/scheduler/recurrence.d.ts.map +1 -0
- package/dist/scheduler/recurrence.js +210 -0
- package/dist/scheduler/recurrence.js.map +1 -0
- package/dist/scheduler/runLedger.d.ts +59 -0
- package/dist/scheduler/runLedger.d.ts.map +1 -0
- package/dist/scheduler/runLedger.js +54 -0
- package/dist/scheduler/runLedger.js.map +1 -0
- package/dist/scheduler/store.d.ts +97 -0
- package/dist/scheduler/store.d.ts.map +1 -0
- package/dist/scheduler/store.js +124 -0
- package/dist/scheduler/store.js.map +1 -0
- package/dist/scheduler/timezoneRecompute.d.ts +61 -0
- package/dist/scheduler/timezoneRecompute.d.ts.map +1 -0
- package/dist/scheduler/timezoneRecompute.js +46 -0
- package/dist/scheduler/timezoneRecompute.js.map +1 -0
- package/dist/scheduler/types.d.ts +139 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/scheduler/types.js +8 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/sendErrorClassifier.d.ts +45 -0
- package/dist/sendErrorClassifier.d.ts.map +1 -0
- package/dist/sendErrorClassifier.js +65 -0
- package/dist/sendErrorClassifier.js.map +1 -0
- package/dist/sessionKey.d.ts +136 -0
- package/dist/sessionKey.d.ts.map +1 -0
- package/dist/sessionKey.js +153 -0
- package/dist/sessionKey.js.map +1 -0
- package/dist/sessionPick.d.ts +42 -0
- package/dist/sessionPick.d.ts.map +1 -0
- package/dist/sessionPick.js +39 -0
- package/dist/sessionPick.js.map +1 -0
- package/dist/shutdown.d.ts +126 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +164 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/startupPromptBuffer.d.ts +85 -0
- package/dist/startupPromptBuffer.d.ts.map +1 -0
- package/dist/startupPromptBuffer.js +123 -0
- package/dist/startupPromptBuffer.js.map +1 -0
- package/dist/state.d.ts +1245 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +1830 -0
- package/dist/state.js.map +1 -0
- package/dist/threadContextPreamble.d.ts +89 -0
- package/dist/threadContextPreamble.d.ts.map +1 -0
- package/dist/threadContextPreamble.js +102 -0
- package/dist/threadContextPreamble.js.map +1 -0
- package/dist/threadRouting.d.ts +164 -0
- package/dist/threadRouting.d.ts.map +1 -0
- package/dist/threadRouting.js +182 -0
- package/dist/threadRouting.js.map +1 -0
- package/dist/types.d.ts +1015 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/abortableFifo.d.ts +10 -0
- package/dist/utils/abortableFifo.d.ts.map +1 -0
- package/dist/utils/abortableFifo.js +55 -0
- package/dist/utils/abortableFifo.js.map +1 -0
- package/dist/utils/adoptedToolList.d.ts +27 -0
- package/dist/utils/adoptedToolList.d.ts.map +1 -0
- package/dist/utils/adoptedToolList.js +22 -0
- package/dist/utils/adoptedToolList.js.map +1 -0
- package/dist/utils/agentEnvironment.d.ts +42 -0
- package/dist/utils/agentEnvironment.d.ts.map +1 -0
- package/dist/utils/agentEnvironment.js +122 -0
- package/dist/utils/agentEnvironment.js.map +1 -0
- package/dist/utils/ansiClean.d.ts +11 -0
- package/dist/utils/ansiClean.d.ts.map +1 -0
- package/dist/utils/ansiClean.js +139 -0
- package/dist/utils/ansiClean.js.map +1 -0
- package/dist/utils/autoContinueOnLimit.d.ts +49 -0
- package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
- package/dist/utils/autoContinueOnLimit.js +69 -0
- package/dist/utils/autoContinueOnLimit.js.map +1 -0
- package/dist/utils/canonicalPathContainment.d.ts +7 -0
- package/dist/utils/canonicalPathContainment.d.ts.map +1 -0
- package/dist/utils/canonicalPathContainment.js +48 -0
- package/dist/utils/canonicalPathContainment.js.map +1 -0
- package/dist/utils/claudeAuthLogin.d.ts +71 -0
- package/dist/utils/claudeAuthLogin.d.ts.map +1 -0
- package/dist/utils/claudeAuthLogin.js +93 -0
- package/dist/utils/claudeAuthLogin.js.map +1 -0
- package/dist/utils/claudeChunkClassifier.d.ts +97 -0
- package/dist/utils/claudeChunkClassifier.d.ts.map +1 -0
- package/dist/utils/claudeChunkClassifier.js +254 -0
- package/dist/utils/claudeChunkClassifier.js.map +1 -0
- package/dist/utils/claudeCodeVersion.d.ts +31 -0
- package/dist/utils/claudeCodeVersion.d.ts.map +1 -0
- package/dist/utils/claudeCodeVersion.js +62 -0
- package/dist/utils/claudeCodeVersion.js.map +1 -0
- package/dist/utils/claudeCompactHook.d.ts +64 -0
- package/dist/utils/claudeCompactHook.d.ts.map +1 -0
- package/dist/utils/claudeCompactHook.js +98 -0
- package/dist/utils/claudeCompactHook.js.map +1 -0
- package/dist/utils/claudeLivenessAction.d.ts +208 -0
- package/dist/utils/claudeLivenessAction.d.ts.map +1 -0
- package/dist/utils/claudeLivenessAction.js +135 -0
- package/dist/utils/claudeLivenessAction.js.map +1 -0
- package/dist/utils/claudeMcpHeal.d.ts +92 -0
- package/dist/utils/claudeMcpHeal.d.ts.map +1 -0
- package/dist/utils/claudeMcpHeal.js +91 -0
- package/dist/utils/claudeMcpHeal.js.map +1 -0
- package/dist/utils/claudeRelayRouting.d.ts +86 -0
- package/dist/utils/claudeRelayRouting.d.ts.map +1 -0
- package/dist/utils/claudeRelayRouting.js +159 -0
- package/dist/utils/claudeRelayRouting.js.map +1 -0
- package/dist/utils/claudeRuntimeInfo.d.ts +26 -0
- package/dist/utils/claudeRuntimeInfo.d.ts.map +1 -0
- package/dist/utils/claudeRuntimeInfo.js +151 -0
- package/dist/utils/claudeRuntimeInfo.js.map +1 -0
- package/dist/utils/claudeScrapeShapes.d.ts +256 -0
- package/dist/utils/claudeScrapeShapes.d.ts.map +1 -0
- package/dist/utils/claudeScrapeShapes.js +290 -0
- package/dist/utils/claudeScrapeShapes.js.map +1 -0
- package/dist/utils/claudeSessionTitle.d.ts +27 -0
- package/dist/utils/claudeSessionTitle.d.ts.map +1 -0
- package/dist/utils/claudeSessionTitle.js +90 -0
- package/dist/utils/claudeSessionTitle.js.map +1 -0
- package/dist/utils/claudeStreamJson.d.ts +202 -0
- package/dist/utils/claudeStreamJson.d.ts.map +1 -0
- package/dist/utils/claudeStreamJson.js +351 -0
- package/dist/utils/claudeStreamJson.js.map +1 -0
- package/dist/utils/claudeSubagentTail.d.ts +93 -0
- package/dist/utils/claudeSubagentTail.d.ts.map +1 -0
- package/dist/utils/claudeSubagentTail.js +136 -0
- package/dist/utils/claudeSubagentTail.js.map +1 -0
- package/dist/utils/clearThreadOutputQueues.d.ts +43 -0
- package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -0
- package/dist/utils/clearThreadOutputQueues.js +39 -0
- package/dist/utils/clearThreadOutputQueues.js.map +1 -0
- package/dist/utils/compactCommandRoute.d.ts +45 -0
- package/dist/utils/compactCommandRoute.d.ts.map +1 -0
- package/dist/utils/compactCommandRoute.js +36 -0
- package/dist/utils/compactCommandRoute.js.map +1 -0
- package/dist/utils/compactOnIdle.d.ts +329 -0
- package/dist/utils/compactOnIdle.d.ts.map +1 -0
- package/dist/utils/compactOnIdle.js +379 -0
- package/dist/utils/compactOnIdle.js.map +1 -0
- package/dist/utils/consoleFileTap.d.ts +51 -0
- package/dist/utils/consoleFileTap.d.ts.map +1 -0
- package/dist/utils/consoleFileTap.js +86 -0
- package/dist/utils/consoleFileTap.js.map +1 -0
- package/dist/utils/displayVerbosity.d.ts +44 -0
- package/dist/utils/displayVerbosity.d.ts.map +1 -0
- package/dist/utils/displayVerbosity.js +75 -0
- package/dist/utils/displayVerbosity.js.map +1 -0
- package/dist/utils/download.d.ts +72 -0
- package/dist/utils/download.d.ts.map +1 -0
- package/dist/utils/download.js +216 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/draftFinalize.d.ts +110 -0
- package/dist/utils/draftFinalize.d.ts.map +1 -0
- package/dist/utils/draftFinalize.js +100 -0
- package/dist/utils/draftFinalize.js.map +1 -0
- package/dist/utils/draftId.d.ts +36 -0
- package/dist/utils/draftId.d.ts.map +1 -0
- package/dist/utils/draftId.js +46 -0
- package/dist/utils/draftId.js.map +1 -0
- package/dist/utils/draftPacer.d.ts +72 -0
- package/dist/utils/draftPacer.d.ts.map +1 -0
- package/dist/utils/draftPacer.js +53 -0
- package/dist/utils/draftPacer.js.map +1 -0
- package/dist/utils/effortStartupKeystroke.d.ts +20 -0
- package/dist/utils/effortStartupKeystroke.d.ts.map +1 -0
- package/dist/utils/effortStartupKeystroke.js +28 -0
- package/dist/utils/effortStartupKeystroke.js.map +1 -0
- package/dist/utils/ensureSessionPlan.d.ts +70 -0
- package/dist/utils/ensureSessionPlan.d.ts.map +1 -0
- package/dist/utils/ensureSessionPlan.js +54 -0
- package/dist/utils/ensureSessionPlan.js.map +1 -0
- package/dist/utils/fileSendPlan.d.ts +217 -0
- package/dist/utils/fileSendPlan.d.ts.map +1 -0
- package/dist/utils/fileSendPlan.js +291 -0
- package/dist/utils/fileSendPlan.js.map +1 -0
- package/dist/utils/fileSendService.d.ts +94 -0
- package/dist/utils/fileSendService.d.ts.map +1 -0
- package/dist/utils/fileSendService.js +387 -0
- package/dist/utils/fileSendService.js.map +1 -0
- package/dist/utils/groupFinalizePlan.d.ts +38 -0
- package/dist/utils/groupFinalizePlan.d.ts.map +1 -0
- package/dist/utils/groupFinalizePlan.js +35 -0
- package/dist/utils/groupFinalizePlan.js.map +1 -0
- package/dist/utils/identicalOutputGuard.d.ts +83 -0
- package/dist/utils/identicalOutputGuard.d.ts.map +1 -0
- package/dist/utils/identicalOutputGuard.js +99 -0
- package/dist/utils/identicalOutputGuard.js.map +1 -0
- package/dist/utils/isoTimestamp.d.ts +16 -0
- package/dist/utils/isoTimestamp.d.ts.map +1 -0
- package/dist/utils/isoTimestamp.js +34 -0
- package/dist/utils/isoTimestamp.js.map +1 -0
- package/dist/utils/jsonStreamBusyWatchdog.d.ts +130 -0
- package/dist/utils/jsonStreamBusyWatchdog.d.ts.map +1 -0
- package/dist/utils/jsonStreamBusyWatchdog.js +122 -0
- package/dist/utils/jsonStreamBusyWatchdog.js.map +1 -0
- package/dist/utils/jsonStreamHost.d.ts +227 -0
- package/dist/utils/jsonStreamHost.d.ts.map +1 -0
- package/dist/utils/jsonStreamHost.js +417 -0
- package/dist/utils/jsonStreamHost.js.map +1 -0
- package/dist/utils/keyedTransitionQueue.d.ts +18 -0
- package/dist/utils/keyedTransitionQueue.d.ts.map +1 -0
- package/dist/utils/keyedTransitionQueue.js +34 -0
- package/dist/utils/keyedTransitionQueue.js.map +1 -0
- package/dist/utils/limitEpisodeRecovery.d.ts +92 -0
- package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -0
- package/dist/utils/limitEpisodeRecovery.js +133 -0
- package/dist/utils/limitEpisodeRecovery.js.map +1 -0
- package/dist/utils/limitHeldPromptQueue.d.ts +48 -0
- package/dist/utils/limitHeldPromptQueue.d.ts.map +1 -0
- package/dist/utils/limitHeldPromptQueue.js +59 -0
- package/dist/utils/limitHeldPromptQueue.js.map +1 -0
- package/dist/utils/limitHeldPrompts.d.ts +58 -0
- package/dist/utils/limitHeldPrompts.d.ts.map +1 -0
- package/dist/utils/limitHeldPrompts.js +65 -0
- package/dist/utils/limitHeldPrompts.js.map +1 -0
- package/dist/utils/linkPreviewSuppression.d.ts +18 -0
- package/dist/utils/linkPreviewSuppression.d.ts.map +1 -0
- package/dist/utils/linkPreviewSuppression.js +37 -0
- package/dist/utils/linkPreviewSuppression.js.map +1 -0
- package/dist/utils/localClock.d.ts +15 -0
- package/dist/utils/localClock.d.ts.map +1 -0
- package/dist/utils/localClock.js +29 -0
- package/dist/utils/localClock.js.map +1 -0
- package/dist/utils/markdownTableRender.d.ts +83 -0
- package/dist/utils/markdownTableRender.d.ts.map +1 -0
- package/dist/utils/markdownTableRender.js +298 -0
- package/dist/utils/markdownTableRender.js.map +1 -0
- package/dist/utils/mediaGroupCollector.d.ts +51 -0
- package/dist/utils/mediaGroupCollector.d.ts.map +1 -0
- package/dist/utils/mediaGroupCollector.js +90 -0
- package/dist/utils/mediaGroupCollector.js.map +1 -0
- package/dist/utils/messageSendService.d.ts +136 -0
- package/dist/utils/messageSendService.d.ts.map +1 -0
- package/dist/utils/messageSendService.js +165 -0
- package/dist/utils/messageSendService.js.map +1 -0
- package/dist/utils/minutesOverride.d.ts +7 -0
- package/dist/utils/minutesOverride.d.ts.map +1 -0
- package/dist/utils/minutesOverride.js +16 -0
- package/dist/utils/minutesOverride.js.map +1 -0
- package/dist/utils/modelPickerPlan.d.ts +119 -0
- package/dist/utils/modelPickerPlan.d.ts.map +1 -0
- package/dist/utils/modelPickerPlan.js +171 -0
- package/dist/utils/modelPickerPlan.js.map +1 -0
- package/dist/utils/modelSetReplyDecision.d.ts +67 -0
- package/dist/utils/modelSetReplyDecision.d.ts.map +1 -0
- package/dist/utils/modelSetReplyDecision.js +27 -0
- package/dist/utils/modelSetReplyDecision.js.map +1 -0
- package/dist/utils/openCodeAuthLogin.d.ts +181 -0
- package/dist/utils/openCodeAuthLogin.d.ts.map +1 -0
- package/dist/utils/openCodeAuthLogin.js +393 -0
- package/dist/utils/openCodeAuthLogin.js.map +1 -0
- package/dist/utils/openCodeCompactPlugin.d.ts +81 -0
- package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -0
- package/dist/utils/openCodeCompactPlugin.js +146 -0
- package/dist/utils/openCodeCompactPlugin.js.map +1 -0
- package/dist/utils/openCodeTurnActivity.d.ts +67 -0
- package/dist/utils/openCodeTurnActivity.d.ts.map +1 -0
- package/dist/utils/openCodeTurnActivity.js +27 -0
- package/dist/utils/openCodeTurnActivity.js.map +1 -0
- package/dist/utils/outputDebounce.d.ts +24 -0
- package/dist/utils/outputDebounce.d.ts.map +1 -0
- package/dist/utils/outputDebounce.js +30 -0
- package/dist/utils/outputDebounce.js.map +1 -0
- package/dist/utils/outputFlushTiming.d.ts +54 -0
- package/dist/utils/outputFlushTiming.d.ts.map +1 -0
- package/dist/utils/outputFlushTiming.js +48 -0
- package/dist/utils/outputFlushTiming.js.map +1 -0
- package/dist/utils/paginateList.d.ts +25 -0
- package/dist/utils/paginateList.d.ts.map +1 -0
- package/dist/utils/paginateList.js +32 -0
- package/dist/utils/paginateList.js.map +1 -0
- package/dist/utils/paneDiff.d.ts +55 -0
- package/dist/utils/paneDiff.d.ts.map +1 -0
- package/dist/utils/paneDiff.js +88 -0
- package/dist/utils/paneDiff.js.map +1 -0
- package/dist/utils/paneResizeGuard.d.ts +69 -0
- package/dist/utils/paneResizeGuard.d.ts.map +1 -0
- package/dist/utils/paneResizeGuard.js +91 -0
- package/dist/utils/paneResizeGuard.js.map +1 -0
- package/dist/utils/persistAdapterSessionIds.d.ts +39 -0
- package/dist/utils/persistAdapterSessionIds.d.ts.map +1 -0
- package/dist/utils/persistAdapterSessionIds.js +28 -0
- package/dist/utils/persistAdapterSessionIds.js.map +1 -0
- package/dist/utils/pinnedBannerSkipDecision.d.ts +44 -0
- package/dist/utils/pinnedBannerSkipDecision.d.ts.map +1 -0
- package/dist/utils/pinnedBannerSkipDecision.js +20 -0
- package/dist/utils/pinnedBannerSkipDecision.js.map +1 -0
- package/dist/utils/pollBackoff.d.ts +45 -0
- package/dist/utils/pollBackoff.d.ts.map +1 -0
- package/dist/utils/pollBackoff.js +44 -0
- package/dist/utils/pollBackoff.js.map +1 -0
- package/dist/utils/promptDelivery.d.ts +46 -0
- package/dist/utils/promptDelivery.d.ts.map +1 -0
- package/dist/utils/promptDelivery.js +49 -0
- package/dist/utils/promptDelivery.js.map +1 -0
- package/dist/utils/providerDisconnectPlan.d.ts +82 -0
- package/dist/utils/providerDisconnectPlan.d.ts.map +1 -0
- package/dist/utils/providerDisconnectPlan.js +110 -0
- package/dist/utils/providerDisconnectPlan.js.map +1 -0
- package/dist/utils/rateLimitLog.d.ts +48 -0
- package/dist/utils/rateLimitLog.d.ts.map +1 -0
- package/dist/utils/rateLimitLog.js +43 -0
- package/dist/utils/rateLimitLog.js.map +1 -0
- package/dist/utils/recentRelayWindow.d.ts +165 -0
- package/dist/utils/recentRelayWindow.d.ts.map +1 -0
- package/dist/utils/recentRelayWindow.js +284 -0
- package/dist/utils/recentRelayWindow.js.map +1 -0
- package/dist/utils/recvPreviewRedaction.d.ts +23 -0
- package/dist/utils/recvPreviewRedaction.d.ts.map +1 -0
- package/dist/utils/recvPreviewRedaction.js +39 -0
- package/dist/utils/recvPreviewRedaction.js.map +1 -0
- package/dist/utils/reminderFlow.d.ts +148 -0
- package/dist/utils/reminderFlow.d.ts.map +1 -0
- package/dist/utils/reminderFlow.js +122 -0
- package/dist/utils/reminderFlow.js.map +1 -0
- package/dist/utils/reminderScheduleText.d.ts +87 -0
- package/dist/utils/reminderScheduleText.d.ts.map +1 -0
- package/dist/utils/reminderScheduleText.js +135 -0
- package/dist/utils/reminderScheduleText.js.map +1 -0
- package/dist/utils/reminderWizard.d.ts +710 -0
- package/dist/utils/reminderWizard.d.ts.map +1 -0
- package/dist/utils/reminderWizard.js +1164 -0
- package/dist/utils/reminderWizard.js.map +1 -0
- package/dist/utils/replyQuote.d.ts +111 -0
- package/dist/utils/replyQuote.d.ts.map +1 -0
- package/dist/utils/replyQuote.js +122 -0
- package/dist/utils/replyQuote.js.map +1 -0
- package/dist/utils/resolveBinary.d.ts +25 -0
- package/dist/utils/resolveBinary.d.ts.map +1 -0
- package/dist/utils/resolveBinary.js +99 -0
- package/dist/utils/resolveBinary.js.map +1 -0
- package/dist/utils/retryAfterHeader.d.ts +7 -0
- package/dist/utils/retryAfterHeader.d.ts.map +1 -0
- package/dist/utils/retryAfterHeader.js +17 -0
- package/dist/utils/retryAfterHeader.js.map +1 -0
- package/dist/utils/rotatingJsonlFile.d.ts +40 -0
- package/dist/utils/rotatingJsonlFile.d.ts.map +1 -0
- package/dist/utils/rotatingJsonlFile.js +106 -0
- package/dist/utils/rotatingJsonlFile.js.map +1 -0
- package/dist/utils/rotatingLogFile.d.ts +25 -0
- package/dist/utils/rotatingLogFile.d.ts.map +1 -0
- package/dist/utils/rotatingLogFile.js +74 -0
- package/dist/utils/rotatingLogFile.js.map +1 -0
- package/dist/utils/sendRateTracker.d.ts +59 -0
- package/dist/utils/sendRateTracker.d.ts.map +1 -0
- package/dist/utils/sendRateTracker.js +144 -0
- package/dist/utils/sendRateTracker.js.map +1 -0
- package/dist/utils/serialQueue.d.ts +5 -0
- package/dist/utils/serialQueue.d.ts.map +1 -0
- package/dist/utils/serialQueue.js +14 -0
- package/dist/utils/serialQueue.js.map +1 -0
- package/dist/utils/sseStreamLifecycle.d.ts +32 -0
- package/dist/utils/sseStreamLifecycle.d.ts.map +1 -0
- package/dist/utils/sseStreamLifecycle.js +41 -0
- package/dist/utils/sseStreamLifecycle.js.map +1 -0
- package/dist/utils/startupReadiness.d.ts +119 -0
- package/dist/utils/startupReadiness.d.ts.map +1 -0
- package/dist/utils/startupReadiness.js +148 -0
- package/dist/utils/startupReadiness.js.map +1 -0
- package/dist/utils/statusFlushDecision.d.ts +18 -0
- package/dist/utils/statusFlushDecision.d.ts.map +1 -0
- package/dist/utils/statusFlushDecision.js +53 -0
- package/dist/utils/statusFlushDecision.js.map +1 -0
- package/dist/utils/subagentRender.d.ts +52 -0
- package/dist/utils/subagentRender.d.ts.map +1 -0
- package/dist/utils/subagentRender.js +66 -0
- package/dist/utils/subagentRender.js.map +1 -0
- package/dist/utils/subagentStatusRender.d.ts +90 -0
- package/dist/utils/subagentStatusRender.d.ts.map +1 -0
- package/dist/utils/subagentStatusRender.js +124 -0
- package/dist/utils/subagentStatusRender.js.map +1 -0
- package/dist/utils/telegramError.d.ts +2 -0
- package/dist/utils/telegramError.d.ts.map +1 -0
- package/dist/utils/telegramError.js +16 -0
- package/dist/utils/telegramError.js.map +1 -0
- package/dist/utils/terminalEmitPlan.d.ts +74 -0
- package/dist/utils/terminalEmitPlan.d.ts.map +1 -0
- package/dist/utils/terminalEmitPlan.js +86 -0
- package/dist/utils/terminalEmitPlan.js.map +1 -0
- package/dist/utils/thinkingRender.d.ts +74 -0
- package/dist/utils/thinkingRender.d.ts.map +1 -0
- package/dist/utils/thinkingRender.js +85 -0
- package/dist/utils/thinkingRender.js.map +1 -0
- package/dist/utils/threadStatusReport.d.ts +55 -0
- package/dist/utils/threadStatusReport.d.ts.map +1 -0
- package/dist/utils/threadStatusReport.js +65 -0
- package/dist/utils/threadStatusReport.js.map +1 -0
- package/dist/utils/threadToggle.d.ts +29 -0
- package/dist/utils/threadToggle.d.ts.map +1 -0
- package/dist/utils/threadToggle.js +39 -0
- package/dist/utils/threadToggle.js.map +1 -0
- package/dist/utils/timezone.d.ts +125 -0
- package/dist/utils/timezone.d.ts.map +1 -0
- package/dist/utils/timezone.js +278 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/utils/tmuxExec.d.ts +61 -0
- package/dist/utils/tmuxExec.d.ts.map +1 -0
- package/dist/utils/tmuxExec.js +109 -0
- package/dist/utils/tmuxExec.js.map +1 -0
- package/dist/utils/tmuxSessionName.d.ts +34 -0
- package/dist/utils/tmuxSessionName.d.ts.map +1 -0
- package/dist/utils/tmuxSessionName.js +51 -0
- package/dist/utils/tmuxSessionName.js.map +1 -0
- package/dist/utils/toolResultRender.d.ts +61 -0
- package/dist/utils/toolResultRender.d.ts.map +1 -0
- package/dist/utils/toolResultRender.js +62 -0
- package/dist/utils/toolResultRender.js.map +1 -0
- package/dist/utils/topicRequest.d.ts +61 -0
- package/dist/utils/topicRequest.d.ts.map +1 -0
- package/dist/utils/topicRequest.js +68 -0
- package/dist/utils/topicRequest.js.map +1 -0
- package/dist/utils/topicView.d.ts +55 -0
- package/dist/utils/topicView.d.ts.map +1 -0
- package/dist/utils/topicView.js +56 -0
- package/dist/utils/topicView.js.map +1 -0
- package/dist/utils/transcribeAudio.d.ts +89 -0
- package/dist/utils/transcribeAudio.d.ts.map +1 -0
- package/dist/utils/transcribeAudio.js +249 -0
- package/dist/utils/transcribeAudio.js.map +1 -0
- package/dist/utils/transientFrames.d.ts +52 -0
- package/dist/utils/transientFrames.d.ts.map +1 -0
- package/dist/utils/transientFrames.js +41 -0
- package/dist/utils/transientFrames.js.map +1 -0
- package/dist/utils/typingActive.d.ts +35 -0
- package/dist/utils/typingActive.d.ts.map +1 -0
- package/dist/utils/typingActive.js +22 -0
- package/dist/utils/typingActive.js.map +1 -0
- package/dist/utils/typingLoopBackstop.d.ts +64 -0
- package/dist/utils/typingLoopBackstop.d.ts.map +1 -0
- package/dist/utils/typingLoopBackstop.js +68 -0
- package/dist/utils/typingLoopBackstop.js.map +1 -0
- package/dist/utils/verbosityRender.d.ts +18 -0
- package/dist/utils/verbosityRender.d.ts.map +1 -0
- package/dist/utils/verbosityRender.js +17 -0
- package/dist/utils/verbosityRender.js.map +1 -0
- package/dist/utils/wedgeRecovery.d.ts +57 -0
- package/dist/utils/wedgeRecovery.d.ts.map +1 -0
- package/dist/utils/wedgeRecovery.js +24 -0
- package/dist/utils/wedgeRecovery.js.map +1 -0
- package/dist/utils.d.ts +30 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +61 -0
- package/dist/utils.js.map +1 -0
- package/dist/validation.d.ts +113 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +226 -0
- package/dist/validation.js.map +1 -0
- package/dist/voiceQueue.d.ts +7 -0
- package/dist/voiceQueue.d.ts.map +1 -0
- package/dist/voiceQueue.js +33 -0
- package/dist/voiceQueue.js.map +1 -0
- package/examples/.env.example +17 -0
- package/examples/docker-compose.yml +36 -0
- package/package.json +83 -4
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description The wire shapes + the decision behind healing a `claude` session
|
|
3
|
+
* whose bot-injected MCP server (`telegramBot`) has latched `failed`.
|
|
4
|
+
*
|
|
5
|
+
* WHY this exists: a json-stream session is an EXTERNAL process, so it survives
|
|
6
|
+
* every bot restart — but the MCP client inside it does not retry a server it
|
|
7
|
+
* once failed to reach. A session that was alive across a restart therefore kept
|
|
8
|
+
* reporting `{name:'telegramBot', status:'failed'}` for the rest of its life and
|
|
9
|
+
* lost `schedule_*` / `compact_conversation` / `send_file_to_user` /
|
|
10
|
+
* `send_messages_to_user` with nothing short of replacing the session to bring
|
|
11
|
+
* them back. The CLI answers `mcp_status` / `mcp_reconnect` on the SAME stdio
|
|
12
|
+
* control channel the adapter already uses for permissions, and a reconnect
|
|
13
|
+
* measurably moves the server `failed` → `connected`.
|
|
14
|
+
*
|
|
15
|
+
* The request/response format is reverse-engineered (measured against a live
|
|
16
|
+
* `claude` process, not documented anywhere), so it lives in exactly ONE tested
|
|
17
|
+
* place — the adapter only mints ids, writes the frames, and reads the verdict.
|
|
18
|
+
* Pure: no IO, no timers, no adapter imports.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* @description How long to wait for ONE control round-trip before treating the
|
|
22
|
+
* server status as unknown. The channel is loopback stdio answered by a process
|
|
23
|
+
* that is already running, so a healthy reply lands in milliseconds — this is a
|
|
24
|
+
* generous upper bound that keeps a silent CLI from hanging the caller, not a
|
|
25
|
+
* tuning knob.
|
|
26
|
+
*/
|
|
27
|
+
export declare const mcpControlRequestTimeoutMs = 15000;
|
|
28
|
+
/** `mcp_status` — ask the CLI for every MCP server it holds and its state. */
|
|
29
|
+
export interface McpStatusControlRequest {
|
|
30
|
+
type: 'control_request';
|
|
31
|
+
request_id: string;
|
|
32
|
+
request: {
|
|
33
|
+
subtype: 'mcp_status';
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** `mcp_reconnect` — make the CLI re-handshake ONE server by name. */
|
|
37
|
+
export interface McpReconnectControlRequest {
|
|
38
|
+
type: 'control_request';
|
|
39
|
+
request_id: string;
|
|
40
|
+
request: {
|
|
41
|
+
subtype: 'mcp_reconnect';
|
|
42
|
+
serverName: string;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @name McpHealDecision
|
|
47
|
+
* @description What to do about one server's reported status.
|
|
48
|
+
*/
|
|
49
|
+
export type McpHealDecision = 'reconnect' | 'healthy' | 'skip';
|
|
50
|
+
/**
|
|
51
|
+
* @name McpHealOutcome
|
|
52
|
+
* @description What a heal attempt actually achieved — the adapter method's
|
|
53
|
+
* result, so a caller can log only the sessions it really repaired.
|
|
54
|
+
* - `healed` — the server was `failed` and the reconnect answered success.
|
|
55
|
+
* - `healthy` — nothing was wrong, no frame written beyond the status ask.
|
|
56
|
+
* - `skipped` — the status says a reconnect is not the right move
|
|
57
|
+
* ({@link decideMcpHeal}).
|
|
58
|
+
* - `unavailable` — the heal could not be completed: no live session, the CLI
|
|
59
|
+
* never answered (or refused) the status ask, or the reconnect itself was
|
|
60
|
+
* refused. In every case the server is still whatever it was.
|
|
61
|
+
*/
|
|
62
|
+
export type McpHealOutcome = 'healed' | 'healthy' | 'skipped' | 'unavailable';
|
|
63
|
+
/** Build the `mcp_status` control request (`requestId` is echoed back in the
|
|
64
|
+
* response's `request_id`, which is how the reply is matched). */
|
|
65
|
+
export declare function buildMcpStatusControlRequest(requestId: string): McpStatusControlRequest;
|
|
66
|
+
/** Build the `mcp_reconnect` control request for ONE server. `serverName` is
|
|
67
|
+
* camelCase on the wire (unlike the snake_case envelope fields). */
|
|
68
|
+
export declare function buildMcpReconnectControlRequest(requestId: string, serverName: string): McpReconnectControlRequest;
|
|
69
|
+
/**
|
|
70
|
+
* @description Read one server's `status` out of an `mcp_status` response
|
|
71
|
+
* payload (`{mcpServers:[{name, status, …}]}`). Returns `null` when the payload
|
|
72
|
+
* is absent / not the expected shape, when no entry carries that name, or when
|
|
73
|
+
* the entry has no string status — every one of which means "unknown", which
|
|
74
|
+
* {@link decideMcpHeal} deliberately refuses to act on.
|
|
75
|
+
*/
|
|
76
|
+
export declare function getMcpServerStatus(payload: Record<string, unknown> | null, serverName: string): string | null;
|
|
77
|
+
/**
|
|
78
|
+
* @description Decide what a reported MCP server status calls for.
|
|
79
|
+
*
|
|
80
|
+
* - `connected` → `healthy`: the server completed its handshake, so touching it
|
|
81
|
+
* would only risk interrupting live tools.
|
|
82
|
+
* - `failed` → `reconnect`: the exact latched state this whole path exists for —
|
|
83
|
+
* the CLI never retries it on its own, and a reconnect is measurably what
|
|
84
|
+
* brings the tools back.
|
|
85
|
+
* - `needs-auth` → `skip`: a human must authorise that server; reconnecting
|
|
86
|
+
* would fail again immediately and loop.
|
|
87
|
+
* - anything else, INCLUDING `null` → `skip`: an unknown or unreadable status
|
|
88
|
+
* must never be guessed into a live session. A future status name is then
|
|
89
|
+
* inert rather than wrongly acted on.
|
|
90
|
+
*/
|
|
91
|
+
export declare function decideMcpHeal(status: string | null): McpHealDecision;
|
|
92
|
+
//# sourceMappingURL=claudeMcpHeal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeMcpHeal.d.ts","sourceRoot":"","sources":["../../src/utils/claudeMcpHeal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QAAE,OAAO,EAAE,YAAY,CAAA;KAAE,CAAC;CACpC;AAED,sEAAsE;AACtE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QAAE,OAAO,EAAE,eAAe,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAO9E;mEACmE;AACnE,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB,CAEvF;AAED;qEACqE;AACrE,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,0BAA0B,CAEjH;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS7G;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe,CAIpE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description The wire shapes + the decision behind healing a `claude` session
|
|
4
|
+
* whose bot-injected MCP server (`telegramBot`) has latched `failed`.
|
|
5
|
+
*
|
|
6
|
+
* WHY this exists: a json-stream session is an EXTERNAL process, so it survives
|
|
7
|
+
* every bot restart — but the MCP client inside it does not retry a server it
|
|
8
|
+
* once failed to reach. A session that was alive across a restart therefore kept
|
|
9
|
+
* reporting `{name:'telegramBot', status:'failed'}` for the rest of its life and
|
|
10
|
+
* lost `schedule_*` / `compact_conversation` / `send_file_to_user` /
|
|
11
|
+
* `send_messages_to_user` with nothing short of replacing the session to bring
|
|
12
|
+
* them back. The CLI answers `mcp_status` / `mcp_reconnect` on the SAME stdio
|
|
13
|
+
* control channel the adapter already uses for permissions, and a reconnect
|
|
14
|
+
* measurably moves the server `failed` → `connected`.
|
|
15
|
+
*
|
|
16
|
+
* The request/response format is reverse-engineered (measured against a live
|
|
17
|
+
* `claude` process, not documented anywhere), so it lives in exactly ONE tested
|
|
18
|
+
* place — the adapter only mints ids, writes the frames, and reads the verdict.
|
|
19
|
+
* Pure: no IO, no timers, no adapter imports.
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.mcpControlRequestTimeoutMs = void 0;
|
|
23
|
+
exports.buildMcpStatusControlRequest = buildMcpStatusControlRequest;
|
|
24
|
+
exports.buildMcpReconnectControlRequest = buildMcpReconnectControlRequest;
|
|
25
|
+
exports.getMcpServerStatus = getMcpServerStatus;
|
|
26
|
+
exports.decideMcpHeal = decideMcpHeal;
|
|
27
|
+
const claudeStreamJson_1 = require("./claudeStreamJson");
|
|
28
|
+
/**
|
|
29
|
+
* @description How long to wait for ONE control round-trip before treating the
|
|
30
|
+
* server status as unknown. The channel is loopback stdio answered by a process
|
|
31
|
+
* that is already running, so a healthy reply lands in milliseconds — this is a
|
|
32
|
+
* generous upper bound that keeps a silent CLI from hanging the caller, not a
|
|
33
|
+
* tuning knob.
|
|
34
|
+
*/
|
|
35
|
+
exports.mcpControlRequestTimeoutMs = 15000;
|
|
36
|
+
/** The status of a server that completed its handshake — nothing to do. */
|
|
37
|
+
const mcpStatusConnected = 'connected';
|
|
38
|
+
/** The status of a server whose connection attempt failed and is never retried. */
|
|
39
|
+
const mcpStatusFailed = 'failed';
|
|
40
|
+
/** Build the `mcp_status` control request (`requestId` is echoed back in the
|
|
41
|
+
* response's `request_id`, which is how the reply is matched). */
|
|
42
|
+
function buildMcpStatusControlRequest(requestId) {
|
|
43
|
+
return { type: 'control_request', request_id: requestId, request: { subtype: 'mcp_status' } };
|
|
44
|
+
}
|
|
45
|
+
/** Build the `mcp_reconnect` control request for ONE server. `serverName` is
|
|
46
|
+
* camelCase on the wire (unlike the snake_case envelope fields). */
|
|
47
|
+
function buildMcpReconnectControlRequest(requestId, serverName) {
|
|
48
|
+
return { type: 'control_request', request_id: requestId, request: { subtype: 'mcp_reconnect', serverName } };
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @description Read one server's `status` out of an `mcp_status` response
|
|
52
|
+
* payload (`{mcpServers:[{name, status, …}]}`). Returns `null` when the payload
|
|
53
|
+
* is absent / not the expected shape, when no entry carries that name, or when
|
|
54
|
+
* the entry has no string status — every one of which means "unknown", which
|
|
55
|
+
* {@link decideMcpHeal} deliberately refuses to act on.
|
|
56
|
+
*/
|
|
57
|
+
function getMcpServerStatus(payload, serverName) {
|
|
58
|
+
if (!payload)
|
|
59
|
+
return null;
|
|
60
|
+
const servers = payload.mcpServers;
|
|
61
|
+
if (!Array.isArray(servers))
|
|
62
|
+
return null;
|
|
63
|
+
for (const entry of servers) {
|
|
64
|
+
if (!(0, claudeStreamJson_1.checkIsStreamRecord)(entry) || entry.name !== serverName)
|
|
65
|
+
continue;
|
|
66
|
+
return typeof entry.status === 'string' ? entry.status : null;
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @description Decide what a reported MCP server status calls for.
|
|
72
|
+
*
|
|
73
|
+
* - `connected` → `healthy`: the server completed its handshake, so touching it
|
|
74
|
+
* would only risk interrupting live tools.
|
|
75
|
+
* - `failed` → `reconnect`: the exact latched state this whole path exists for —
|
|
76
|
+
* the CLI never retries it on its own, and a reconnect is measurably what
|
|
77
|
+
* brings the tools back.
|
|
78
|
+
* - `needs-auth` → `skip`: a human must authorise that server; reconnecting
|
|
79
|
+
* would fail again immediately and loop.
|
|
80
|
+
* - anything else, INCLUDING `null` → `skip`: an unknown or unreadable status
|
|
81
|
+
* must never be guessed into a live session. A future status name is then
|
|
82
|
+
* inert rather than wrongly acted on.
|
|
83
|
+
*/
|
|
84
|
+
function decideMcpHeal(status) {
|
|
85
|
+
if (status === mcpStatusConnected)
|
|
86
|
+
return 'healthy';
|
|
87
|
+
if (status === mcpStatusFailed)
|
|
88
|
+
return 'reconnect';
|
|
89
|
+
return 'skip';
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=claudeMcpHeal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeMcpHeal.js","sourceRoot":"","sources":["../../src/utils/claudeMcpHeal.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAsDH,oEAEC;AAID,0EAEC;AASD,gDASC;AAgBD,sCAIC;AAlGD,yDAAyD;AAEzD;;;;;;GAMG;AACU,QAAA,0BAA0B,GAAG,KAAK,CAAC;AAoChD,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,WAAW,CAAC;AACvC,mFAAmF;AACnF,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC;mEACmE;AACnE,SAAgB,4BAA4B,CAAC,SAAiB;IAC5D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;AAChG,CAAC;AAED;qEACqE;AACrE,SAAgB,+BAA+B,CAAC,SAAiB,EAAE,UAAkB;IACnF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,CAAC;AAC/G,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,OAAuC,EAAE,UAAkB;IAC5F,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAA,sCAAmB,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,SAAS;QACvE,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,aAAa,CAAC,MAAqB;IACjD,IAAI,MAAM,KAAK,kBAAkB;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,MAAM,KAAK,eAAe;QAAE,OAAO,WAAW,CAAC;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description PURE decision layer that routes the {@link ClaudeChunkSegment}s
|
|
3
|
+
* of one classified Claude scrape chunk through a thread's display-verbosity
|
|
4
|
+
* prefs (S4 `/tool_results`). Given the ordered, tagged segments and the
|
|
5
|
+
* resolved prefs it decides — per segment — whether the lines are RELAYED as
|
|
6
|
+
* permanent output, TRUNCATED, or FOLDED into the rolling status frame, and
|
|
7
|
+
* returns the reassembled permanent text plus the latest folded activity line.
|
|
8
|
+
*
|
|
9
|
+
* Kept pure (no tmux / emit) so the segment×pref matrix is unit-testable
|
|
10
|
+
* without the live relay — same shape as `toolResultRender.ts` /
|
|
11
|
+
* `subagentRender.ts`. The Claude adapter's `pollOutput` calls this, then feeds
|
|
12
|
+
* `keptText` through `stripTuiElementsWithContext` exactly as the pre-S4 path
|
|
13
|
+
* did (the stripper stays the chrome/fence backstop).
|
|
14
|
+
*
|
|
15
|
+
* Scope: the TOOL, THINKING and PANEL-PREVIEW segments branch on a pref.
|
|
16
|
+
* - `thinkingBlock` follows the `/thinking` pref (S5): full keeps it verbatim;
|
|
17
|
+
* short collapses to one `💭 thought for {N}s` when a duration is parseable
|
|
18
|
+
* from the block, else folds the live `☁️ thinking …` into status; minimal
|
|
19
|
+
* always folds the live status, nothing permanent.
|
|
20
|
+
* - `subagentPanelPreview` is ALWAYS folded to status (the overview-2 flood;
|
|
21
|
+
* S6 formalises, doing it here is part of killing the flood).
|
|
22
|
+
* - `prose` is ALWAYS kept (the agent's answer is never swallowed).
|
|
23
|
+
* - `chrome` is ALWAYS dropped (as the pre-S4 stripper did).
|
|
24
|
+
*/
|
|
25
|
+
import { type ClaudeChunkSegment } from './claudeChunkClassifier';
|
|
26
|
+
import type { DisplayVerbosityMode } from '../types';
|
|
27
|
+
/** Result of {@link routeClaudeChunkSegments}. */
|
|
28
|
+
export interface ClaudeRelayRouting {
|
|
29
|
+
/** The lines to relay as PERMANENT output (reassembled, NL-joined). May be
|
|
30
|
+
* empty when every routable segment folded to status. */
|
|
31
|
+
keptText: string;
|
|
32
|
+
/** The LATEST folded activity (a `minimal` tool header, a panel preview, or a
|
|
33
|
+
* folded `☁️ thinking …` status) to show in the rolling status frame, or null
|
|
34
|
+
* when nothing folded. */
|
|
35
|
+
activityLine: string | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @description Extract a compact tool label from a tool-header line for the
|
|
39
|
+
* folded `minimal` activity line. Returns the tool NAME (`Bash`, `Read`, …)
|
|
40
|
+
* when recognised, else the trimmed first line as a last resort (never empty).
|
|
41
|
+
*/
|
|
42
|
+
export declare function getToolActivityLabel(headerText: string): string;
|
|
43
|
+
/**
|
|
44
|
+
* @description Route one classified chunk's segments through the tool-results
|
|
45
|
+
* mode (S4). Walks the segments IN ORDER so `keptText` preserves the pane's
|
|
46
|
+
* line order; `activityLine` carries only the LAST folded activity (the status
|
|
47
|
+
* frame shows one line). Pure — the caller threads cross-poll fence context and
|
|
48
|
+
* does the strip/emit.
|
|
49
|
+
*
|
|
50
|
+
* Per tag:
|
|
51
|
+
* - `prose` → keep verbatim (always).
|
|
52
|
+
* - `thinkingBlock` → full: keep verbatim; short: collapse to one
|
|
53
|
+
* `💭 thought for {N}s` when a duration is parseable,
|
|
54
|
+
* else fold the live `☁️ thinking …`; minimal: always
|
|
55
|
+
* fold the live status, nothing permanent.
|
|
56
|
+
* - `toolHeader`/`toolBody`→ full: keep; short: keep header, truncate body;
|
|
57
|
+
* minimal: drop, fold a `🔧 <tool> …` activity from
|
|
58
|
+
* the latest header (built by the caller via i18n).
|
|
59
|
+
* - `subagentPanelPreview` → always fold (drop, contribute an activity).
|
|
60
|
+
* - `chrome` → drop.
|
|
61
|
+
*
|
|
62
|
+
* @param segments classified segments, original order.
|
|
63
|
+
* @param toolResultsMode the thread's `/tool_results` pref.
|
|
64
|
+
* @param thinkingMode the thread's `/thinking` pref (S5).
|
|
65
|
+
* @param buildToolActivity caller-supplied builder turning a tool label into a
|
|
66
|
+
* user-facing activity line (keeps i18n in `bot.ts`/`i18n.ts`, not here).
|
|
67
|
+
* @param buildPanelActivity caller-supplied builder for a folded panel preview.
|
|
68
|
+
* @param buildThinkingActivity caller-supplied builder for the folded live
|
|
69
|
+
* `☁️ thinking …` status line (short with no duration / minimal).
|
|
70
|
+
* @param buildThoughtCollapsed caller-supplied builder turning a parsed duration
|
|
71
|
+
* into the permanent `💭 thought for {N}s` line (short with a duration).
|
|
72
|
+
* @param truncationFooter the i18n "… (truncated, /tool_results full)" line
|
|
73
|
+
* appended to a `short`-mode body that was actually capped — parity with the
|
|
74
|
+
* OpenCode short path so a Claude user also learns `full` reveals the rest.
|
|
75
|
+
*/
|
|
76
|
+
export declare function routeClaudeChunkSegments(segments: ClaudeChunkSegment[], toolResultsMode: DisplayVerbosityMode, thinkingMode: DisplayVerbosityMode, buildToolActivity: (toolLabel: string) => string, buildPanelActivity: () => string, buildThinkingActivity: () => string, buildThoughtCollapsed: (seconds: number) => string, truncationFooter: string): ClaudeRelayRouting;
|
|
77
|
+
/**
|
|
78
|
+
* @description Whether a classified chunk can skip the segment-walk and run the
|
|
79
|
+
* pre-S4 direct strip→emit path BYTE-IDENTICALLY: all-`full` tool + thinking
|
|
80
|
+
* prefs AND no sub-agent panel-preview segment (the one thing the old path did
|
|
81
|
+
* NOT fold). The regression anchor — when true the relay output is provably the
|
|
82
|
+
* same as before S4. (Re-exported as a named helper so the live fast-path and
|
|
83
|
+
* its test assert the SAME predicate.)
|
|
84
|
+
*/
|
|
85
|
+
export declare function checkIsClaudeRelayFastPath(segments: ClaudeChunkSegment[], toolResultsMode: DisplayVerbosityMode, thinkingMode: DisplayVerbosityMode): boolean;
|
|
86
|
+
//# sourceMappingURL=claudeRelayRouting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeRelayRouting.d.ts","sourceRoot":"","sources":["../../src/utils/claudeRelayRouting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAOrD,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC;6DACyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB;;8BAE0B;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,oBAAoB,EAClC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,EAChD,kBAAkB,EAAE,MAAM,MAAM,EAChC,qBAAqB,EAAE,MAAM,MAAM,EACnC,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAClD,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,CAkEpB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAGT"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description PURE decision layer that routes the {@link ClaudeChunkSegment}s
|
|
4
|
+
* of one classified Claude scrape chunk through a thread's display-verbosity
|
|
5
|
+
* prefs (S4 `/tool_results`). Given the ordered, tagged segments and the
|
|
6
|
+
* resolved prefs it decides — per segment — whether the lines are RELAYED as
|
|
7
|
+
* permanent output, TRUNCATED, or FOLDED into the rolling status frame, and
|
|
8
|
+
* returns the reassembled permanent text plus the latest folded activity line.
|
|
9
|
+
*
|
|
10
|
+
* Kept pure (no tmux / emit) so the segment×pref matrix is unit-testable
|
|
11
|
+
* without the live relay — same shape as `toolResultRender.ts` /
|
|
12
|
+
* `subagentRender.ts`. The Claude adapter's `pollOutput` calls this, then feeds
|
|
13
|
+
* `keptText` through `stripTuiElementsWithContext` exactly as the pre-S4 path
|
|
14
|
+
* did (the stripper stays the chrome/fence backstop).
|
|
15
|
+
*
|
|
16
|
+
* Scope: the TOOL, THINKING and PANEL-PREVIEW segments branch on a pref.
|
|
17
|
+
* - `thinkingBlock` follows the `/thinking` pref (S5): full keeps it verbatim;
|
|
18
|
+
* short collapses to one `💭 thought for {N}s` when a duration is parseable
|
|
19
|
+
* from the block, else folds the live `☁️ thinking …` into status; minimal
|
|
20
|
+
* always folds the live status, nothing permanent.
|
|
21
|
+
* - `subagentPanelPreview` is ALWAYS folded to status (the overview-2 flood;
|
|
22
|
+
* S6 formalises, doing it here is part of killing the flood).
|
|
23
|
+
* - `prose` is ALWAYS kept (the agent's answer is never swallowed).
|
|
24
|
+
* - `chrome` is ALWAYS dropped (as the pre-S4 stripper did).
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.getToolActivityLabel = getToolActivityLabel;
|
|
28
|
+
exports.routeClaudeChunkSegments = routeClaudeChunkSegments;
|
|
29
|
+
exports.checkIsClaudeRelayFastPath = checkIsClaudeRelayFastPath;
|
|
30
|
+
const claudeChunkClassifier_1 = require("./claudeChunkClassifier");
|
|
31
|
+
const toolResultRender_1 = require("./toolResultRender");
|
|
32
|
+
const thinkingRender_1 = require("./thinkingRender");
|
|
33
|
+
/** Tool names Claude's known headers carry, used to derive a compact activity
|
|
34
|
+
* label (`Bash`, `Read`, …). Matches the set in `claudeScrapeShapes.ANY_TOOL_HEADER_RE`. */
|
|
35
|
+
const TOOL_NAME_RE = /\b(Bash|Read|Write|Edit|Update|MultiEdit|NotebookEdit|Glob|Grep|Task|Agent|TodoWrite|WebFetch|WebSearch)\b/;
|
|
36
|
+
/**
|
|
37
|
+
* @description Extract a compact tool label from a tool-header line for the
|
|
38
|
+
* folded `minimal` activity line. Returns the tool NAME (`Bash`, `Read`, …)
|
|
39
|
+
* when recognised, else the trimmed first line as a last resort (never empty).
|
|
40
|
+
*/
|
|
41
|
+
function getToolActivityLabel(headerText) {
|
|
42
|
+
const firstLine = headerText.split('\n')[0] ?? '';
|
|
43
|
+
const nameMatch = firstLine.match(TOOL_NAME_RE);
|
|
44
|
+
if (nameMatch)
|
|
45
|
+
return nameMatch[1];
|
|
46
|
+
return firstLine.trim();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @description Route one classified chunk's segments through the tool-results
|
|
50
|
+
* mode (S4). Walks the segments IN ORDER so `keptText` preserves the pane's
|
|
51
|
+
* line order; `activityLine` carries only the LAST folded activity (the status
|
|
52
|
+
* frame shows one line). Pure — the caller threads cross-poll fence context and
|
|
53
|
+
* does the strip/emit.
|
|
54
|
+
*
|
|
55
|
+
* Per tag:
|
|
56
|
+
* - `prose` → keep verbatim (always).
|
|
57
|
+
* - `thinkingBlock` → full: keep verbatim; short: collapse to one
|
|
58
|
+
* `💭 thought for {N}s` when a duration is parseable,
|
|
59
|
+
* else fold the live `☁️ thinking …`; minimal: always
|
|
60
|
+
* fold the live status, nothing permanent.
|
|
61
|
+
* - `toolHeader`/`toolBody`→ full: keep; short: keep header, truncate body;
|
|
62
|
+
* minimal: drop, fold a `🔧 <tool> …` activity from
|
|
63
|
+
* the latest header (built by the caller via i18n).
|
|
64
|
+
* - `subagentPanelPreview` → always fold (drop, contribute an activity).
|
|
65
|
+
* - `chrome` → drop.
|
|
66
|
+
*
|
|
67
|
+
* @param segments classified segments, original order.
|
|
68
|
+
* @param toolResultsMode the thread's `/tool_results` pref.
|
|
69
|
+
* @param thinkingMode the thread's `/thinking` pref (S5).
|
|
70
|
+
* @param buildToolActivity caller-supplied builder turning a tool label into a
|
|
71
|
+
* user-facing activity line (keeps i18n in `bot.ts`/`i18n.ts`, not here).
|
|
72
|
+
* @param buildPanelActivity caller-supplied builder for a folded panel preview.
|
|
73
|
+
* @param buildThinkingActivity caller-supplied builder for the folded live
|
|
74
|
+
* `☁️ thinking …` status line (short with no duration / minimal).
|
|
75
|
+
* @param buildThoughtCollapsed caller-supplied builder turning a parsed duration
|
|
76
|
+
* into the permanent `💭 thought for {N}s` line (short with a duration).
|
|
77
|
+
* @param truncationFooter the i18n "… (truncated, /tool_results full)" line
|
|
78
|
+
* appended to a `short`-mode body that was actually capped — parity with the
|
|
79
|
+
* OpenCode short path so a Claude user also learns `full` reveals the rest.
|
|
80
|
+
*/
|
|
81
|
+
function routeClaudeChunkSegments(segments, toolResultsMode, thinkingMode, buildToolActivity, buildPanelActivity, buildThinkingActivity, buildThoughtCollapsed, truncationFooter) {
|
|
82
|
+
const keptLines = [];
|
|
83
|
+
let activityLine = null;
|
|
84
|
+
/** The most recent tool-header label, so a minimal-mode body folds under its
|
|
85
|
+
* own header's label even when the header arrived in a separate segment. */
|
|
86
|
+
let latestToolLabel = null;
|
|
87
|
+
for (const segment of segments) {
|
|
88
|
+
switch (segment.tag) {
|
|
89
|
+
case claudeChunkClassifier_1.ClaudeChunkTag.Prose:
|
|
90
|
+
keptLines.push(segment.text);
|
|
91
|
+
break;
|
|
92
|
+
case claudeChunkClassifier_1.ClaudeChunkTag.ThinkingBlock: {
|
|
93
|
+
if (thinkingMode === 'full') {
|
|
94
|
+
keptLines.push(segment.text);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// short/minimal: collapse to a permanent "💭 thought for {N}s" only
|
|
98
|
+
// when short AND a duration is parseable from the scraped block;
|
|
99
|
+
// otherwise fold the live "☁️ thinking …" into the status frame.
|
|
100
|
+
const seconds = (0, thinkingRender_1.parseThinkingDurationSeconds)(segment.text);
|
|
101
|
+
if (thinkingMode === 'short' && seconds !== null) {
|
|
102
|
+
keptLines.push(buildThoughtCollapsed(seconds));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
activityLine = buildThinkingActivity();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
case claudeChunkClassifier_1.ClaudeChunkTag.ToolHeader: {
|
|
111
|
+
latestToolLabel = getToolActivityLabel(segment.text);
|
|
112
|
+
if (toolResultsMode === 'minimal') {
|
|
113
|
+
activityLine = buildToolActivity(latestToolLabel);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// full and short both keep the header verbatim (short only caps the
|
|
117
|
+
// body — the header names which tool ran).
|
|
118
|
+
keptLines.push(segment.text);
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case claudeChunkClassifier_1.ClaudeChunkTag.ToolBody: {
|
|
123
|
+
if (toolResultsMode === 'full') {
|
|
124
|
+
keptLines.push(segment.text);
|
|
125
|
+
}
|
|
126
|
+
else if (toolResultsMode === 'short') {
|
|
127
|
+
const truncated = (0, toolResultRender_1.getTruncatedToolResult)(segment.text);
|
|
128
|
+
keptLines.push(truncated.isTruncated ? `${truncated.text}\n${truncationFooter}` : truncated.text);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// minimal: drop the body; fold under the latest header's label (or a
|
|
132
|
+
// generic 🔧 when a body's header streamed in a prior poll).
|
|
133
|
+
activityLine = buildToolActivity(latestToolLabel ?? '');
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case claudeChunkClassifier_1.ClaudeChunkTag.SubagentPanelPreview:
|
|
138
|
+
activityLine = buildPanelActivity();
|
|
139
|
+
break;
|
|
140
|
+
case claudeChunkClassifier_1.ClaudeChunkTag.Chrome:
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return { keptText: keptLines.join('\n'), activityLine };
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* @description Whether a classified chunk can skip the segment-walk and run the
|
|
148
|
+
* pre-S4 direct strip→emit path BYTE-IDENTICALLY: all-`full` tool + thinking
|
|
149
|
+
* prefs AND no sub-agent panel-preview segment (the one thing the old path did
|
|
150
|
+
* NOT fold). The regression anchor — when true the relay output is provably the
|
|
151
|
+
* same as before S4. (Re-exported as a named helper so the live fast-path and
|
|
152
|
+
* its test assert the SAME predicate.)
|
|
153
|
+
*/
|
|
154
|
+
function checkIsClaudeRelayFastPath(segments, toolResultsMode, thinkingMode) {
|
|
155
|
+
if (toolResultsMode !== 'full' || thinkingMode !== 'full')
|
|
156
|
+
return false;
|
|
157
|
+
return !segments.some(segment => segment.tag === claudeChunkClassifier_1.ClaudeChunkTag.SubagentPanelPreview);
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=claudeRelayRouting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeRelayRouting.js","sourceRoot":"","sources":["../../src/utils/claudeRelayRouting.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AgentRuntimeInfo } from '../types';
|
|
2
|
+
export declare const claudeRuntimeInfoTailBytes: number;
|
|
3
|
+
/**
|
|
4
|
+
* @description Return the documented context window for an exact Claude model
|
|
5
|
+
* family. Unknown aliases and model ids deliberately stay unknown rather than
|
|
6
|
+
* inheriting a default from a neighbouring model.
|
|
7
|
+
*
|
|
8
|
+
* The minor group is capped at two digits so a released id whose family carries
|
|
9
|
+
* no minor at all (`claude-opus-4-20250514`) can never have its 8-digit DATE
|
|
10
|
+
* read as the minor — that misread reported a 1M window for a 200k model.
|
|
11
|
+
* Such an id has no minor to match on, so it stays honestly unknown.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getClaudeContextWindowTokens(model: string): number | null;
|
|
14
|
+
/**
|
|
15
|
+
* @description Parse the latest valid main-session runtime fields from a Claude
|
|
16
|
+
* transcript. Sidechain records are not part of the topic's live conversation,
|
|
17
|
+
* so their version, model, and usage must never overwrite main-session data.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseClaudeRuntimeInfo(transcript: string): AgentRuntimeInfo;
|
|
20
|
+
/**
|
|
21
|
+
* @description Read only the transcript tail needed for the latest runtime
|
|
22
|
+
* metadata. A nonzero read offset can start in a JSONL record, so that partial
|
|
23
|
+
* first line is discarded before parsing.
|
|
24
|
+
*/
|
|
25
|
+
export declare function readClaudeRuntimeInfo(filePath: string): Promise<AgentRuntimeInfo>;
|
|
26
|
+
//# sourceMappingURL=claudeRuntimeInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeRuntimeInfo.d.ts","sourceRoot":"","sources":["../../src/utils/claudeRuntimeInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAyBrD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQzE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAiC3E;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmBvF"}
|
|
@@ -0,0 +1,151 @@
|
|
|
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.claudeRuntimeInfoTailBytes = void 0;
|
|
37
|
+
exports.getClaudeContextWindowTokens = getClaudeContextWindowTokens;
|
|
38
|
+
exports.parseClaudeRuntimeInfo = parseClaudeRuntimeInfo;
|
|
39
|
+
exports.readClaudeRuntimeInfo = readClaudeRuntimeInfo;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const claude45ContextWindowTokens = 200_000;
|
|
42
|
+
const claude46AndLaterContextWindowTokens = 1_000_000;
|
|
43
|
+
exports.claudeRuntimeInfoTailBytes = 128 * 1024;
|
|
44
|
+
function checkIsRecord(value) {
|
|
45
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
46
|
+
}
|
|
47
|
+
function checkIsTokenCount(value) {
|
|
48
|
+
return typeof value === 'number' && Number.isFinite(value) && Number.isInteger(value) && value >= 0;
|
|
49
|
+
}
|
|
50
|
+
function getClaudeContextUsedTokens(usage) {
|
|
51
|
+
if (!checkIsRecord(usage) || !checkIsTokenCount(usage.input_tokens))
|
|
52
|
+
return null;
|
|
53
|
+
const outputTokens = usage.output_tokens;
|
|
54
|
+
const cacheReadTokens = usage.cache_read_input_tokens;
|
|
55
|
+
const cacheCreationTokens = usage.cache_creation_input_tokens;
|
|
56
|
+
if ((outputTokens !== undefined && !checkIsTokenCount(outputTokens)) ||
|
|
57
|
+
(cacheReadTokens !== undefined && !checkIsTokenCount(cacheReadTokens)) ||
|
|
58
|
+
(cacheCreationTokens !== undefined && !checkIsTokenCount(cacheCreationTokens))) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return usage.input_tokens + (cacheReadTokens ?? 0) + (cacheCreationTokens ?? 0) + (outputTokens ?? 0);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @description Return the documented context window for an exact Claude model
|
|
65
|
+
* family. Unknown aliases and model ids deliberately stay unknown rather than
|
|
66
|
+
* inheriting a default from a neighbouring model.
|
|
67
|
+
*
|
|
68
|
+
* The minor group is capped at two digits so a released id whose family carries
|
|
69
|
+
* no minor at all (`claude-opus-4-20250514`) can never have its 8-digit DATE
|
|
70
|
+
* read as the minor — that misread reported a 1M window for a 200k model.
|
|
71
|
+
* Such an id has no minor to match on, so it stays honestly unknown.
|
|
72
|
+
*/
|
|
73
|
+
function getClaudeContextWindowTokens(model) {
|
|
74
|
+
const match = model.toLowerCase().match(/(?:^|\/)claude-(?:opus|sonnet|haiku)-(\d+)-(\d{1,2})(?:-|$)/);
|
|
75
|
+
if (!match)
|
|
76
|
+
return null;
|
|
77
|
+
const major = Number(match[1]);
|
|
78
|
+
const minor = Number(match[2]);
|
|
79
|
+
if (major === 4 && minor === 5)
|
|
80
|
+
return claude45ContextWindowTokens;
|
|
81
|
+
if (major === 5 || (major === 4 && minor >= 6))
|
|
82
|
+
return claude46AndLaterContextWindowTokens;
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @description Parse the latest valid main-session runtime fields from a Claude
|
|
87
|
+
* transcript. Sidechain records are not part of the topic's live conversation,
|
|
88
|
+
* so their version, model, and usage must never overwrite main-session data.
|
|
89
|
+
*/
|
|
90
|
+
function parseClaudeRuntimeInfo(transcript) {
|
|
91
|
+
let version = null;
|
|
92
|
+
let latestContextEntry = null;
|
|
93
|
+
for (const line of transcript.split('\n')) {
|
|
94
|
+
const trimmed = line.trim();
|
|
95
|
+
if (!trimmed)
|
|
96
|
+
continue;
|
|
97
|
+
let entry;
|
|
98
|
+
try {
|
|
99
|
+
entry = JSON.parse(trimmed);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
if (!checkIsRecord(entry) || entry.isSidechain === true)
|
|
105
|
+
continue;
|
|
106
|
+
if (typeof entry.version === 'string' && entry.version.trim()) {
|
|
107
|
+
version = entry.version;
|
|
108
|
+
}
|
|
109
|
+
if (entry.type !== 'assistant' || !checkIsRecord(entry.message))
|
|
110
|
+
continue;
|
|
111
|
+
const model = entry.message.model;
|
|
112
|
+
const usedTokens = getClaudeContextUsedTokens(entry.message.usage);
|
|
113
|
+
if (typeof model === 'string' && model.trim() && usedTokens !== null) {
|
|
114
|
+
latestContextEntry = { model, contextUsedTokens: usedTokens };
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
version,
|
|
119
|
+
model: latestContextEntry?.model ?? null,
|
|
120
|
+
contextWindowTokens: latestContextEntry === null ? null : getClaudeContextWindowTokens(latestContextEntry.model),
|
|
121
|
+
contextUsedTokens: latestContextEntry?.contextUsedTokens ?? null,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @description Read only the transcript tail needed for the latest runtime
|
|
126
|
+
* metadata. A nonzero read offset can start in a JSONL record, so that partial
|
|
127
|
+
* first line is discarded before parsing.
|
|
128
|
+
*/
|
|
129
|
+
async function readClaudeRuntimeInfo(filePath) {
|
|
130
|
+
let fileHandle = null;
|
|
131
|
+
try {
|
|
132
|
+
fileHandle = await fs.promises.open(filePath, 'r');
|
|
133
|
+
const { size } = await fileHandle.stat();
|
|
134
|
+
const bytesToRead = Math.min(size, exports.claudeRuntimeInfoTailBytes);
|
|
135
|
+
if (bytesToRead === 0)
|
|
136
|
+
return parseClaudeRuntimeInfo('');
|
|
137
|
+
const offset = size - bytesToRead;
|
|
138
|
+
const buffer = Buffer.alloc(bytesToRead);
|
|
139
|
+
const { bytesRead } = await fileHandle.read(buffer, 0, bytesToRead, offset);
|
|
140
|
+
const text = buffer.toString('utf8', 0, bytesRead);
|
|
141
|
+
if (offset === 0)
|
|
142
|
+
return parseClaudeRuntimeInfo(text);
|
|
143
|
+
const firstLineBreak = text.indexOf('\n');
|
|
144
|
+
return parseClaudeRuntimeInfo(firstLineBreak === -1 ? '' : text.slice(firstLineBreak + 1));
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
if (fileHandle)
|
|
148
|
+
await fileHandle.close();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=claudeRuntimeInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeRuntimeInfo.js","sourceRoot":"","sources":["../../src/utils/claudeRuntimeInfo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,oEAQC;AAOD,wDAiCC;AAOD,sDAmBC;AAlHD,uCAAyB;AAGzB,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAC5C,MAAM,mCAAmC,GAAG,SAAS,CAAC;AACzC,QAAA,0BAA0B,GAAG,GAAG,GAAG,IAAI,CAAC;AAErD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IACzC,MAAM,eAAe,GAAG,KAAK,CAAC,uBAAuB,CAAC;IACtD,MAAM,mBAAmB,GAAG,KAAK,CAAC,2BAA2B,CAAC;IAC9D,IACE,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACtE,CAAC,mBAAmB,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,EAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,YAAY,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;AACxG,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,4BAA4B,CAAC,KAAa;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACvG,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,2BAA2B,CAAC;IACnE,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAAE,OAAO,mCAAmC,CAAC;IAC3F,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,UAAkB;IACvD,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,kBAAkB,GAAwD,IAAI,CAAC;IAEnF,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;YAAE,SAAS;QAElE,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9D,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,SAAS;QAE1E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,MAAM,UAAU,GAAG,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACrE,kBAAkB,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;QAChE,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,KAAK,EAAE,kBAAkB,EAAE,KAAK,IAAI,IAAI;QACxC,mBAAmB,EAAE,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAChH,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,IAAI,IAAI;KACjE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IAC1D,IAAI,UAAU,GAAkC,IAAI,CAAC;IACrD,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,kCAA0B,CAAC,CAAC;QAC/D,IAAI,WAAW,KAAK,CAAC;YAAE,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,IAAI,GAAG,WAAW,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,sBAAsB,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;YAAS,CAAC;QACT,IAAI,UAAU;YAAE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC"}
|