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,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Single source of truth for the LINE-SHAPE regexes/predicates of
|
|
3
|
+
* a scraped, ANSI-cleaned Claude TUI pane. These were originally private to
|
|
4
|
+
* `adapters/claudeCliAdapter.ts`; they were lifted here so BOTH the adapter
|
|
5
|
+
* (`stripTuiElementsWithContext` / `fenceToolResultBodies`) and the chunk
|
|
6
|
+
* classifier (`utils/claudeChunkClassifier.ts`) consume ONE definition per
|
|
7
|
+
* shape — never a copy. The rationale comments live with each shape below.
|
|
8
|
+
*
|
|
9
|
+
* Exception: {@link checkIsClaudeChromeLine} is a DELIBERATE parallel of the
|
|
10
|
+
* adapter's inline chrome filters (the adapter drops those lines mid-strip and
|
|
11
|
+
* is NOT yet rewired to this predicate — that wiring is a behavior change
|
|
12
|
+
* deferred to S4–S6). Keep the two in sync until then; unify when the relay
|
|
13
|
+
* starts consuming the classifier.
|
|
14
|
+
*
|
|
15
|
+
* Pure module: regexes + small line predicates only, no I/O, no state. Whole-
|
|
16
|
+
* block detectors that need parsing state (question/survey extraction, input-
|
|
17
|
+
* echo) stay in the adapter and are imported there, not here.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* @description The full set of leading spinner / bullet glyphs the Claude TUI
|
|
21
|
+
* (and the bot's own rotating liveness frame, `CLAUDE_LIVENESS_GLYPHS =
|
|
22
|
+
* ['✻','✽','✶','✢']`) may prepend to a status/activity line, anchored at the
|
|
23
|
+
* line start with its trailing whitespace. Stripping it yields a
|
|
24
|
+
* GLYPH-INSENSITIVE signature so a frame that changed only its animation glyph
|
|
25
|
+
* dedups as identical. ONE definition for every call site that strips the lead
|
|
26
|
+
* glyph (status dedup, the liveness frame, the adapter's status dedup).
|
|
27
|
+
*/
|
|
28
|
+
export declare const LEADING_SPINNER_GLYPH_RE: RegExp;
|
|
29
|
+
/** Strip a single leading spinner/bullet glyph (+ trailing ws) from a line. */
|
|
30
|
+
export declare function stripLeadingSpinnerGlyph(line: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* @description Active spinner tick, per-line shape used by Claude's TUI
|
|
33
|
+
* while it is thinking or running a tool. Examples:
|
|
34
|
+
* `✽ Doing… (4s · ↓ 14 tokens)`
|
|
35
|
+
* `* Brewing… (1m 30s · ↑ 88 tokens · thought for 17s)`
|
|
36
|
+
* `· Working… (7s · ↓ 222 tokens)`
|
|
37
|
+
*
|
|
38
|
+
* Plan §2026-05-28 tg-output-readability / S4 (N1.b). Why a SECOND
|
|
39
|
+
* regex on top of `PROGRESS_LINE_RE` (in `progressLine.ts`): different
|
|
40
|
+
* job — this one strips tick lines that ride INSIDE a chunk that also
|
|
41
|
+
* carries real output, while `PROGRESS_LINE_RE` classifies whole
|
|
42
|
+
* pure-progress chunks bot-side. This regex does not require the token
|
|
43
|
+
* counter (`(5s)` alone matches), `PROGRESS_LINE_RE` does. Both accept
|
|
44
|
+
* a multi-word activity text since 2026-06-05 — the TUI now shows the
|
|
45
|
+
* active task title there ("Fixing streaming output overwrite…"), and
|
|
46
|
+
* the single-token `\S+…` let those ticks leak into permanent messages
|
|
47
|
+
* (adapter side) / flood the topic (bot side). Since 2026-06-11 both
|
|
48
|
+
* also accept single-level parenthesised segments inside the title —
|
|
49
|
+
* the TUI appends bits like "(sub-agent)" while a Task sub-agent runs
|
|
50
|
+
* ("Fixing relations add flow (sub-agent)…", the live topic flood), and
|
|
51
|
+
* a task title can carry its own parens. The trailing end-anchored
|
|
52
|
+
* `(<elapsed>[ · …])` parenthesis stays the load-bearing anchor — the
|
|
53
|
+
* same safety argument as the multi-word widening.
|
|
54
|
+
*
|
|
55
|
+
* The required text-with-ellipsis disambiguates this from a tool-call
|
|
56
|
+
* header (`● Bash(ls -la)`), which starts with the same `●` glyph but
|
|
57
|
+
* has no ellipsis.
|
|
58
|
+
*/
|
|
59
|
+
export declare const SPINNER_TICK_RE: RegExp;
|
|
60
|
+
/**
|
|
61
|
+
* @description Post-thinking trailer line that Claude's TUI prints
|
|
62
|
+
* AFTER it has finished thinking (just before resuming the prompt
|
|
63
|
+
* area). Examples observed in the live ExampleGroup debug session:
|
|
64
|
+
* `✻ Cooked for 27s`
|
|
65
|
+
* `✻ Cogitated for 20s`
|
|
66
|
+
* `✻ Crunched for 7s`
|
|
67
|
+
* `✻ Baked for 10s`
|
|
68
|
+
* `✻ Churned for 20s` (V3 iteration 1, 2026-05-28)
|
|
69
|
+
* `✻ Sautéed for 20s` (V3 iteration 2, 2026-05-28)
|
|
70
|
+
*
|
|
71
|
+
* Plan §2026-05-28 tg-output-readability / S3 (N1.a). The trailer
|
|
72
|
+
* carries zero novel info — the same time was already streaming in
|
|
73
|
+
* the active spinner that preceded it — so we drop it.
|
|
74
|
+
*
|
|
75
|
+
* Verb match is `\S+`, not an explicit list. The original plan called
|
|
76
|
+
* for an explicit list of `-ed` forms (Cooked|Cogitated|...) on the
|
|
77
|
+
* theory that a future Claude verb that IS real prose (e.g.
|
|
78
|
+
* `✻ Ready for input`) could be silently swallowed. Two live V3
|
|
79
|
+
* iterations on 2026-05-28 demonstrated the opposite failure mode:
|
|
80
|
+
* Claude ships new spinner verbs faster than we'd realistically
|
|
81
|
+
* extend the list (`Churned` and `Sautéed` both slipped through on
|
|
82
|
+
* first encounter). The triple anchor `<glyph> <verb> for <N>s` is
|
|
83
|
+
* shape-specific enough that real prose almost cannot satisfy it:
|
|
84
|
+
* - line must START with a spinner glyph (`✻✽✶✢·*●○`) — outside
|
|
85
|
+
* transient TUI status, Claude never emits these as the first
|
|
86
|
+
* non-whitespace char of a prose line;
|
|
87
|
+
* - line must END with `for \d+(?:m\s+\d+)?s` — a time literal,
|
|
88
|
+
* not a generic noun;
|
|
89
|
+
* - line has no other content (anchored `$`).
|
|
90
|
+
* `\S+` is the minimal relaxation: one non-whitespace token between
|
|
91
|
+
* the glyph and ` for `. Accepts `Sautéed`, `Churned`, future verbs,
|
|
92
|
+
* and rejects anything containing whitespace or extra structure.
|
|
93
|
+
*/
|
|
94
|
+
export declare const POST_THINKING_TRAILER_RE: RegExp;
|
|
95
|
+
/**
|
|
96
|
+
* @description Static "Thinking for {N}s…" header line the TUI prints at the
|
|
97
|
+
* TOP of a finished reasoning block (distinct from {@link SPINNER_TICK_RE},
|
|
98
|
+
* the LIVE rolling tick, and {@link POST_THINKING_TRAILER_RE}, the closing
|
|
99
|
+
* "Cooked for Ns" trailer). After `cleanOutput`'s ANSI-bold→`*…*` conversion
|
|
100
|
+
* the duration is bolded: `Thinking for *1m 6s*…`. The `⎿`-bodied reasoning
|
|
101
|
+
* summary follows on the next lines (see claudeToolFencing.test.ts).
|
|
102
|
+
*
|
|
103
|
+
* Anchored: glyph-or-bullet-optional `Thinking for`, a duration (`30s`,
|
|
104
|
+
* `1m 6s`, optionally `*`-wrapped), then the U+2026 ellipsis. The duration is
|
|
105
|
+
* load-bearing so a prose sentence "Thinking for a moment about X" cannot
|
|
106
|
+
* match (no `\d+s…` tail).
|
|
107
|
+
*/
|
|
108
|
+
export declare const THINKING_HEADER_RE: RegExp;
|
|
109
|
+
/**
|
|
110
|
+
* @description A leading star-burst spinner-glyph line (`✻ ✽ ✶ ✢`) carrying an
|
|
111
|
+
* activity TITLE that ends in the `…` ellipsis but has NO `(elapsed · tokens)`
|
|
112
|
+
* stats anchor — e.g. `✻ Herding cats…` right after a turn starts, before the
|
|
113
|
+
* timer shows. {@link SPINNER_TICK_RE} requires the trailing `(…)` stats, so
|
|
114
|
+
* these bare-title frames slip past it and, being neither chrome nor a tool
|
|
115
|
+
* line, classify as PROSE and ship as answer content (live flood 2026-07-04,
|
|
116
|
+
* alongside the table). They are transient TUI activity, never content → drop.
|
|
117
|
+
*
|
|
118
|
+
* Two deliberate narrowings keep this from eating real text:
|
|
119
|
+
* - the trailing `…` is REQUIRED — Claude's spinner activity always ends in the
|
|
120
|
+
* ellipsis, so a `✻ <word> for 4 people` / `✻ Ready for input` prose look-alike
|
|
121
|
+
* (no ellipsis) is preserved (see cleanOutput.test.ts), and a
|
|
122
|
+
* {@link POST_THINKING_TRAILER_RE} `✻ Cooked for 27s` trailer is left to its
|
|
123
|
+
* own filter;
|
|
124
|
+
* - only the FOUR star-burst glyphs — exclusively TUI animation frames that
|
|
125
|
+
* never lead prose. `·`/`*` are excluded (they lead `· item` / `* item`
|
|
126
|
+
* markdown bullets), as is a {@link THINKING_HEADER_RE} `Thinking for Ns…`
|
|
127
|
+
* header (kept verbatim under `/thinking full`).
|
|
128
|
+
*/
|
|
129
|
+
export declare function checkIsBareSpinnerActivityLine(line: string): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* @description Code-producing tool headers whose `⎿` result is code / diff /
|
|
132
|
+
* command output and should render as a monospaced Telegram code block. Two
|
|
133
|
+
* classes, differing in what the `⎿` line itself holds:
|
|
134
|
+
*
|
|
135
|
+
* - OUTPUT tools (`Bash`/`Grep`/`Glob`): the `⎿`-line content IS the first
|
|
136
|
+
* line of stdout, so it goes INSIDE the fence with the indented body;
|
|
137
|
+
* - FILE tools (`Read`/`Edit`/`Update`/`Write`/`MultiEdit`/`NotebookEdit`):
|
|
138
|
+
* the `⎿` line is a one-line summary (`Added N lines, removed M`) that
|
|
139
|
+
* stays as prose — only the deeper-indented diff/file body below it is
|
|
140
|
+
* fenced.
|
|
141
|
+
*
|
|
142
|
+
* Anchored on the tool NAME (optionally glyph-led and/or `*bold*` from the
|
|
143
|
+
* ANSI-bold conversion), NEVER on body indent: Claude wraps long thinking
|
|
144
|
+
* prose at the 300-col pane width into space-indented continuation lines
|
|
145
|
+
* byte-identical in shape to a diff/output body, so only a known code header
|
|
146
|
+
* may license fencing (a thinking block has no such header). Allowlist, not
|
|
147
|
+
* blocklist — unknown shapes stay prose.
|
|
148
|
+
*/
|
|
149
|
+
export declare const OUTPUT_TOOL_HEADER_RE: RegExp;
|
|
150
|
+
export declare const FILE_TOOL_HEADER_RE: RegExp;
|
|
151
|
+
/**
|
|
152
|
+
* @description ANY tool-call header line (`● Bash(…)`, `✓ Read(…)`,
|
|
153
|
+
* `● Update(…)`, `● Task(…)`, `● TodoWrite(…)`, `● WebFetch(…)`). MUST stay a
|
|
154
|
+
* superset of the two fence-deciding headers above (`OUTPUT_TOOL_HEADER_RE` +
|
|
155
|
+
* `FILE_TOOL_HEADER_RE`): used by the classifier to TAG a header line as
|
|
156
|
+
* `toolHeader` (and a sub-agent panel preview's `⎿ Tool(…)`) regardless of
|
|
157
|
+
* whether its body would be fenced. Anchored on the tool NAME from Claude's
|
|
158
|
+
* known set, optionally glyph-led and/or `*bold*`, followed by `(`.
|
|
159
|
+
* `Update` is Claude's TUI render of the Edit tool (`● Update(file)`) — the most
|
|
160
|
+
* common header; omitting it (live bug, all-minimal topic) let every Edit header
|
|
161
|
+
* and its sub-agent `⎿ Update(…)` previews bypass the verbosity routing and leak.
|
|
162
|
+
*/
|
|
163
|
+
export declare const ANY_TOOL_HEADER_RE: RegExp;
|
|
164
|
+
/** Tool RESULT marker line: ` ⎿ <summary or first output line>`. */
|
|
165
|
+
export declare const TOOL_RESULT_MARKER_RE: RegExp;
|
|
166
|
+
/** An agent-authored fenced code block delimiter, possibly indented. */
|
|
167
|
+
export declare const CODE_FENCE_LINE_RE: RegExp;
|
|
168
|
+
/**
|
|
169
|
+
* @description Lines the bot's progress-collapse owns and must receive
|
|
170
|
+
* UN-fenced: a sub-agent task line (`◯`, optionally `❯`-cursor-led, U+25EF —
|
|
171
|
+
* NOT the `○`/`●` glyphs) and a compaction progress bar (`▰▱`). They are
|
|
172
|
+
* indented in the pane, so a stale `output` tool kind would otherwise route
|
|
173
|
+
* them through the orphan-continuation fence; the resulting ```` ``` ````
|
|
174
|
+
* delimiters then fail `checkIsProgressChunk` (progressLine.ts), so the burst
|
|
175
|
+
* is NOT coalesced and the topic floods with one fenced tick per second.
|
|
176
|
+
*/
|
|
177
|
+
export declare const PROGRESS_PASSTHROUGH_RE: RegExp;
|
|
178
|
+
/**
|
|
179
|
+
* @description Transient activity tick the TUI paints INSIDE a tool-result
|
|
180
|
+
* body while the command is still running (`Running…`, `Waiting…`), with no
|
|
181
|
+
* elapsed-time paren. {@link SPINNER_TICK_RE} only catches the glyph-led
|
|
182
|
+
* `(Ns)` form, so these bare words slip through and get fenced as if they
|
|
183
|
+
* were stdout. They are ephemeral chrome, never command output: render plain,
|
|
184
|
+
* and DROP entirely when real output supersedes them in the same body.
|
|
185
|
+
*/
|
|
186
|
+
export declare const TRANSIENT_TICK_RE: RegExp;
|
|
187
|
+
/**
|
|
188
|
+
* @description The TUI's "output was collapsed" marker (`… +1 tool use`,
|
|
189
|
+
* `… +33 lines`). Anchored to the literal `… +N tool use(s)/line(s)` shape so
|
|
190
|
+
* a real one-line stdout that merely ends in `…` is never matched. Chrome, not
|
|
191
|
+
* output → render plain, never fenced.
|
|
192
|
+
*/
|
|
193
|
+
export declare const COLLAPSE_MARKER_RE: RegExp;
|
|
194
|
+
/**
|
|
195
|
+
* @description The tool-use-only subset of {@link COLLAPSE_MARKER_RE}: matches
|
|
196
|
+
* `… +N tool use(s)` but NOT `… +N line(s)`. WHY a dedicated regex: the
|
|
197
|
+
* "+N tool uses" collapse wall is ALWAYS sub-agent panel chatter, whereas the
|
|
198
|
+
* "+N lines" form `COLLAPSE_MARKER_RE` also matches is a legitimate tool-body
|
|
199
|
+
* summary. The classifier uses this to drop an ORPHAN "+N tool uses" wall (panel
|
|
200
|
+
* already closed / scrolled off) as chrome instead of leaking it as prose,
|
|
201
|
+
* without ever swallowing a real "+N lines" tool-body summary.
|
|
202
|
+
*/
|
|
203
|
+
export declare const COLLAPSE_TOOLUSE_MARKER_RE: RegExp;
|
|
204
|
+
/**
|
|
205
|
+
* @description Turn / sub-agent completion summary (`Done (14 tool uses ·
|
|
206
|
+
* 66.9k tokens · 1m 55s)`). The `tokens` inside the paren is the load-bearing
|
|
207
|
+
* anchor — a real `Done (…)` stdout line without token stats is not matched.
|
|
208
|
+
* Chrome, not output → render plain, never fenced.
|
|
209
|
+
*/
|
|
210
|
+
export declare const COMPLETION_SUMMARY_RE: RegExp;
|
|
211
|
+
/**
|
|
212
|
+
* @description A file-diff `NN +` CHANGE gutter line as Claude renders
|
|
213
|
+
* Read/Edit/Update diffs: a leading line number, then a literal `+` change
|
|
214
|
+
* marker (`40 +`, `3 +delta`, `51 + content`). Tight by design — `+1 done`,
|
|
215
|
+
* `3 lines changed`, `done` all fail it, so it never matches legit short prose.
|
|
216
|
+
*
|
|
217
|
+
* THE single source of truth for the short-`+`-gutter dedup bypass (live leak
|
|
218
|
+
* 2026-06-24): a short gutter re-rendered on a later poll and leaked because it
|
|
219
|
+
* was under the relay-window length gate. Both the relay window
|
|
220
|
+
* ({@link ../utils/recentRelayWindow}) and `checkIsStatusOutput` key on this
|
|
221
|
+
* shape — strictly `+` additions; `-` deletion gutters stay outside.
|
|
222
|
+
*/
|
|
223
|
+
export declare const DIFF_CHANGE_GUTTER_RE: RegExp;
|
|
224
|
+
/**
|
|
225
|
+
* @description The bottom-right corner shortcut hint Claude Code v2.1.201
|
|
226
|
+
* paints on the footer row (`/rc`). Right-aligned at the pane edge, it can
|
|
227
|
+
* scrape as a line whose ONLY content is the hint token (heavy leading
|
|
228
|
+
* whitespace) — the line-set diff then relayed it as a 3-char status frame
|
|
229
|
+
* (`sendMessage "/rc"`, `✽ /rc · 0:01`; live 2026-07-06). Anchored
|
|
230
|
+
* to the WHOLE line being nothing but the literal hint, so prose that merely
|
|
231
|
+
* mentions `/rc` inline is never matched. Closed shape — if a future version
|
|
232
|
+
* paints a different corner hint, WIDEN the alternation (keep `/rc`), don't
|
|
233
|
+
* loosen the whole-line anchor.
|
|
234
|
+
*/
|
|
235
|
+
export declare const CORNER_HINT_RE: RegExp;
|
|
236
|
+
/**
|
|
237
|
+
* @description Which tool a `⎿` result body belongs to, deciding how it is
|
|
238
|
+
* fenced: `output` (Bash/Grep/Glob — the `⎿` line is stdout, fenced with the
|
|
239
|
+
* body) vs `file` (Read/Edit/Update/Write — the `⎿` line is a prose summary,
|
|
240
|
+
* only the body below is fenced).
|
|
241
|
+
*/
|
|
242
|
+
export type ToolResultKind = 'output' | 'file';
|
|
243
|
+
/**
|
|
244
|
+
* @description Whole-line TUI chrome a scrape chunk can carry that the relay
|
|
245
|
+
* already drops: rounded box-drawing borders, full-width rules, nav / hint
|
|
246
|
+
* footers ("Enter to select", "esc to …", "↑/↓ …"), the bypass-permissions
|
|
247
|
+
* footer, tab-bar rows, and the native-installer ad. Consolidated here from
|
|
248
|
+
* the inline filters in `stripTuiElementsWithContext` so the classifier tags
|
|
249
|
+
* the SAME lines as `chrome` without re-declaring each shape.
|
|
250
|
+
*
|
|
251
|
+
* Conservative by design — every branch is anchored on a TUI-only glyph or an
|
|
252
|
+
* exact phrase, so a real prose line is never mistaken for chrome (the
|
|
253
|
+
* classifier's default is `prose`).
|
|
254
|
+
*/
|
|
255
|
+
export declare function checkIsClaudeChromeLine(line: string): boolean;
|
|
256
|
+
//# sourceMappingURL=claudeScrapeShapes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeScrapeShapes.d.ts","sourceRoot":"","sources":["../../src/utils/claudeScrapeShapes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,QAAoB,CAAC;AAE1D,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,eAAe,QAC4E,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,wBAAwB,QACa,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,QAC0C,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,QAAiD,CAAC;AACpF,eAAO,MAAM,mBAAmB,QAC+C,CAAC;AAEhF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,QACuG,CAAC;AAEvI,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,QAAY,CAAC;AAE/C,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAE5C;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,QAA8B,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,QAAkD,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAA6C,CAAC;AAE7E;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,QAAoC,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAwC,CAAC;AAE3E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,QAAiB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA+B7D"}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Single source of truth for the LINE-SHAPE regexes/predicates of
|
|
4
|
+
* a scraped, ANSI-cleaned Claude TUI pane. These were originally private to
|
|
5
|
+
* `adapters/claudeCliAdapter.ts`; they were lifted here so BOTH the adapter
|
|
6
|
+
* (`stripTuiElementsWithContext` / `fenceToolResultBodies`) and the chunk
|
|
7
|
+
* classifier (`utils/claudeChunkClassifier.ts`) consume ONE definition per
|
|
8
|
+
* shape — never a copy. The rationale comments live with each shape below.
|
|
9
|
+
*
|
|
10
|
+
* Exception: {@link checkIsClaudeChromeLine} is a DELIBERATE parallel of the
|
|
11
|
+
* adapter's inline chrome filters (the adapter drops those lines mid-strip and
|
|
12
|
+
* is NOT yet rewired to this predicate — that wiring is a behavior change
|
|
13
|
+
* deferred to S4–S6). Keep the two in sync until then; unify when the relay
|
|
14
|
+
* starts consuming the classifier.
|
|
15
|
+
*
|
|
16
|
+
* Pure module: regexes + small line predicates only, no I/O, no state. Whole-
|
|
17
|
+
* block detectors that need parsing state (question/survey extraction, input-
|
|
18
|
+
* echo) stay in the adapter and are imported there, not here.
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.CORNER_HINT_RE = exports.DIFF_CHANGE_GUTTER_RE = exports.COMPLETION_SUMMARY_RE = exports.COLLAPSE_TOOLUSE_MARKER_RE = exports.COLLAPSE_MARKER_RE = exports.TRANSIENT_TICK_RE = exports.PROGRESS_PASSTHROUGH_RE = exports.CODE_FENCE_LINE_RE = exports.TOOL_RESULT_MARKER_RE = exports.ANY_TOOL_HEADER_RE = exports.FILE_TOOL_HEADER_RE = exports.OUTPUT_TOOL_HEADER_RE = exports.THINKING_HEADER_RE = exports.POST_THINKING_TRAILER_RE = exports.SPINNER_TICK_RE = exports.LEADING_SPINNER_GLYPH_RE = void 0;
|
|
22
|
+
exports.stripLeadingSpinnerGlyph = stripLeadingSpinnerGlyph;
|
|
23
|
+
exports.checkIsBareSpinnerActivityLine = checkIsBareSpinnerActivityLine;
|
|
24
|
+
exports.checkIsClaudeChromeLine = checkIsClaudeChromeLine;
|
|
25
|
+
/**
|
|
26
|
+
* @description The full set of leading spinner / bullet glyphs the Claude TUI
|
|
27
|
+
* (and the bot's own rotating liveness frame, `CLAUDE_LIVENESS_GLYPHS =
|
|
28
|
+
* ['✻','✽','✶','✢']`) may prepend to a status/activity line, anchored at the
|
|
29
|
+
* line start with its trailing whitespace. Stripping it yields a
|
|
30
|
+
* GLYPH-INSENSITIVE signature so a frame that changed only its animation glyph
|
|
31
|
+
* dedups as identical. ONE definition for every call site that strips the lead
|
|
32
|
+
* glyph (status dedup, the liveness frame, the adapter's status dedup).
|
|
33
|
+
*/
|
|
34
|
+
exports.LEADING_SPINNER_GLYPH_RE = /^[✻✽✶✢·*●○⏺]\s*/;
|
|
35
|
+
/** Strip a single leading spinner/bullet glyph (+ trailing ws) from a line. */
|
|
36
|
+
function stripLeadingSpinnerGlyph(line) {
|
|
37
|
+
return line.replace(exports.LEADING_SPINNER_GLYPH_RE, '');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @description Active spinner tick, per-line shape used by Claude's TUI
|
|
41
|
+
* while it is thinking or running a tool. Examples:
|
|
42
|
+
* `✽ Doing… (4s · ↓ 14 tokens)`
|
|
43
|
+
* `* Brewing… (1m 30s · ↑ 88 tokens · thought for 17s)`
|
|
44
|
+
* `· Working… (7s · ↓ 222 tokens)`
|
|
45
|
+
*
|
|
46
|
+
* Plan §2026-05-28 tg-output-readability / S4 (N1.b). Why a SECOND
|
|
47
|
+
* regex on top of `PROGRESS_LINE_RE` (in `progressLine.ts`): different
|
|
48
|
+
* job — this one strips tick lines that ride INSIDE a chunk that also
|
|
49
|
+
* carries real output, while `PROGRESS_LINE_RE` classifies whole
|
|
50
|
+
* pure-progress chunks bot-side. This regex does not require the token
|
|
51
|
+
* counter (`(5s)` alone matches), `PROGRESS_LINE_RE` does. Both accept
|
|
52
|
+
* a multi-word activity text since 2026-06-05 — the TUI now shows the
|
|
53
|
+
* active task title there ("Fixing streaming output overwrite…"), and
|
|
54
|
+
* the single-token `\S+…` let those ticks leak into permanent messages
|
|
55
|
+
* (adapter side) / flood the topic (bot side). Since 2026-06-11 both
|
|
56
|
+
* also accept single-level parenthesised segments inside the title —
|
|
57
|
+
* the TUI appends bits like "(sub-agent)" while a Task sub-agent runs
|
|
58
|
+
* ("Fixing relations add flow (sub-agent)…", the live topic flood), and
|
|
59
|
+
* a task title can carry its own parens. The trailing end-anchored
|
|
60
|
+
* `(<elapsed>[ · …])` parenthesis stays the load-bearing anchor — the
|
|
61
|
+
* same safety argument as the multi-word widening.
|
|
62
|
+
*
|
|
63
|
+
* The required text-with-ellipsis disambiguates this from a tool-call
|
|
64
|
+
* header (`● Bash(ls -la)`), which starts with the same `●` glyph but
|
|
65
|
+
* has no ellipsis.
|
|
66
|
+
*/
|
|
67
|
+
exports.SPINNER_TICK_RE = /^\s*[✻✽✶✢·*●○]\s+\S(?:[^()\n]|\([^()\n]*\))*?…\s*\((?:\d+h\s+)?(?:\d+m\s+)?\d+s(?:\s*·[^()]*)?\)\s*$/;
|
|
68
|
+
/**
|
|
69
|
+
* @description Post-thinking trailer line that Claude's TUI prints
|
|
70
|
+
* AFTER it has finished thinking (just before resuming the prompt
|
|
71
|
+
* area). Examples observed in the live ExampleGroup debug session:
|
|
72
|
+
* `✻ Cooked for 27s`
|
|
73
|
+
* `✻ Cogitated for 20s`
|
|
74
|
+
* `✻ Crunched for 7s`
|
|
75
|
+
* `✻ Baked for 10s`
|
|
76
|
+
* `✻ Churned for 20s` (V3 iteration 1, 2026-05-28)
|
|
77
|
+
* `✻ Sautéed for 20s` (V3 iteration 2, 2026-05-28)
|
|
78
|
+
*
|
|
79
|
+
* Plan §2026-05-28 tg-output-readability / S3 (N1.a). The trailer
|
|
80
|
+
* carries zero novel info — the same time was already streaming in
|
|
81
|
+
* the active spinner that preceded it — so we drop it.
|
|
82
|
+
*
|
|
83
|
+
* Verb match is `\S+`, not an explicit list. The original plan called
|
|
84
|
+
* for an explicit list of `-ed` forms (Cooked|Cogitated|...) on the
|
|
85
|
+
* theory that a future Claude verb that IS real prose (e.g.
|
|
86
|
+
* `✻ Ready for input`) could be silently swallowed. Two live V3
|
|
87
|
+
* iterations on 2026-05-28 demonstrated the opposite failure mode:
|
|
88
|
+
* Claude ships new spinner verbs faster than we'd realistically
|
|
89
|
+
* extend the list (`Churned` and `Sautéed` both slipped through on
|
|
90
|
+
* first encounter). The triple anchor `<glyph> <verb> for <N>s` is
|
|
91
|
+
* shape-specific enough that real prose almost cannot satisfy it:
|
|
92
|
+
* - line must START with a spinner glyph (`✻✽✶✢·*●○`) — outside
|
|
93
|
+
* transient TUI status, Claude never emits these as the first
|
|
94
|
+
* non-whitespace char of a prose line;
|
|
95
|
+
* - line must END with `for \d+(?:m\s+\d+)?s` — a time literal,
|
|
96
|
+
* not a generic noun;
|
|
97
|
+
* - line has no other content (anchored `$`).
|
|
98
|
+
* `\S+` is the minimal relaxation: one non-whitespace token between
|
|
99
|
+
* the glyph and ` for `. Accepts `Sautéed`, `Churned`, future verbs,
|
|
100
|
+
* and rejects anything containing whitespace or extra structure.
|
|
101
|
+
*/
|
|
102
|
+
exports.POST_THINKING_TRAILER_RE = /^[✻✽✶✢·*●○]\s+\S+\s+for\s+\d+(?:m\s+\d+)?s\s*$/;
|
|
103
|
+
/**
|
|
104
|
+
* @description Static "Thinking for {N}s…" header line the TUI prints at the
|
|
105
|
+
* TOP of a finished reasoning block (distinct from {@link SPINNER_TICK_RE},
|
|
106
|
+
* the LIVE rolling tick, and {@link POST_THINKING_TRAILER_RE}, the closing
|
|
107
|
+
* "Cooked for Ns" trailer). After `cleanOutput`'s ANSI-bold→`*…*` conversion
|
|
108
|
+
* the duration is bolded: `Thinking for *1m 6s*…`. The `⎿`-bodied reasoning
|
|
109
|
+
* summary follows on the next lines (see claudeToolFencing.test.ts).
|
|
110
|
+
*
|
|
111
|
+
* Anchored: glyph-or-bullet-optional `Thinking for`, a duration (`30s`,
|
|
112
|
+
* `1m 6s`, optionally `*`-wrapped), then the U+2026 ellipsis. The duration is
|
|
113
|
+
* load-bearing so a prose sentence "Thinking for a moment about X" cannot
|
|
114
|
+
* match (no `\d+s…` tail).
|
|
115
|
+
*/
|
|
116
|
+
exports.THINKING_HEADER_RE = /^\s*[●○⏺✻✽✶✢·*]?\s*Thinking for\s+\*?(?:\d+h\s+)?(?:\d+m\s+)?\d+s\*?…/;
|
|
117
|
+
/**
|
|
118
|
+
* @description A leading star-burst spinner-glyph line (`✻ ✽ ✶ ✢`) carrying an
|
|
119
|
+
* activity TITLE that ends in the `…` ellipsis but has NO `(elapsed · tokens)`
|
|
120
|
+
* stats anchor — e.g. `✻ Herding cats…` right after a turn starts, before the
|
|
121
|
+
* timer shows. {@link SPINNER_TICK_RE} requires the trailing `(…)` stats, so
|
|
122
|
+
* these bare-title frames slip past it and, being neither chrome nor a tool
|
|
123
|
+
* line, classify as PROSE and ship as answer content (live flood 2026-07-04,
|
|
124
|
+
* alongside the table). They are transient TUI activity, never content → drop.
|
|
125
|
+
*
|
|
126
|
+
* Two deliberate narrowings keep this from eating real text:
|
|
127
|
+
* - the trailing `…` is REQUIRED — Claude's spinner activity always ends in the
|
|
128
|
+
* ellipsis, so a `✻ <word> for 4 people` / `✻ Ready for input` prose look-alike
|
|
129
|
+
* (no ellipsis) is preserved (see cleanOutput.test.ts), and a
|
|
130
|
+
* {@link POST_THINKING_TRAILER_RE} `✻ Cooked for 27s` trailer is left to its
|
|
131
|
+
* own filter;
|
|
132
|
+
* - only the FOUR star-burst glyphs — exclusively TUI animation frames that
|
|
133
|
+
* never lead prose. `·`/`*` are excluded (they lead `· item` / `* item`
|
|
134
|
+
* markdown bullets), as is a {@link THINKING_HEADER_RE} `Thinking for Ns…`
|
|
135
|
+
* header (kept verbatim under `/thinking full`).
|
|
136
|
+
*/
|
|
137
|
+
function checkIsBareSpinnerActivityLine(line) {
|
|
138
|
+
return /^\s*[✻✽✶✢]\s+\S.*…\s*$/.test(line) && !exports.THINKING_HEADER_RE.test(line);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @description Code-producing tool headers whose `⎿` result is code / diff /
|
|
142
|
+
* command output and should render as a monospaced Telegram code block. Two
|
|
143
|
+
* classes, differing in what the `⎿` line itself holds:
|
|
144
|
+
*
|
|
145
|
+
* - OUTPUT tools (`Bash`/`Grep`/`Glob`): the `⎿`-line content IS the first
|
|
146
|
+
* line of stdout, so it goes INSIDE the fence with the indented body;
|
|
147
|
+
* - FILE tools (`Read`/`Edit`/`Update`/`Write`/`MultiEdit`/`NotebookEdit`):
|
|
148
|
+
* the `⎿` line is a one-line summary (`Added N lines, removed M`) that
|
|
149
|
+
* stays as prose — only the deeper-indented diff/file body below it is
|
|
150
|
+
* fenced.
|
|
151
|
+
*
|
|
152
|
+
* Anchored on the tool NAME (optionally glyph-led and/or `*bold*` from the
|
|
153
|
+
* ANSI-bold conversion), NEVER on body indent: Claude wraps long thinking
|
|
154
|
+
* prose at the 300-col pane width into space-indented continuation lines
|
|
155
|
+
* byte-identical in shape to a diff/output body, so only a known code header
|
|
156
|
+
* may license fencing (a thinking block has no such header). Allowlist, not
|
|
157
|
+
* blocklist — unknown shapes stay prose.
|
|
158
|
+
*/
|
|
159
|
+
exports.OUTPUT_TOOL_HEADER_RE = /^\s*[●○⏺⏳✓]?\s*\*?(?:Bash|Grep|Glob)\*?\s*\(/;
|
|
160
|
+
exports.FILE_TOOL_HEADER_RE = /^\s*[●○⏺⏳✓]?\s*\*?(?:Read|Edit|Update|Write|MultiEdit|NotebookEdit)\*?\s*\(/;
|
|
161
|
+
/**
|
|
162
|
+
* @description ANY tool-call header line (`● Bash(…)`, `✓ Read(…)`,
|
|
163
|
+
* `● Update(…)`, `● Task(…)`, `● TodoWrite(…)`, `● WebFetch(…)`). MUST stay a
|
|
164
|
+
* superset of the two fence-deciding headers above (`OUTPUT_TOOL_HEADER_RE` +
|
|
165
|
+
* `FILE_TOOL_HEADER_RE`): used by the classifier to TAG a header line as
|
|
166
|
+
* `toolHeader` (and a sub-agent panel preview's `⎿ Tool(…)`) regardless of
|
|
167
|
+
* whether its body would be fenced. Anchored on the tool NAME from Claude's
|
|
168
|
+
* known set, optionally glyph-led and/or `*bold*`, followed by `(`.
|
|
169
|
+
* `Update` is Claude's TUI render of the Edit tool (`● Update(file)`) — the most
|
|
170
|
+
* common header; omitting it (live bug, all-minimal topic) let every Edit header
|
|
171
|
+
* and its sub-agent `⎿ Update(…)` previews bypass the verbosity routing and leak.
|
|
172
|
+
*/
|
|
173
|
+
exports.ANY_TOOL_HEADER_RE = /^\s*[●○⏺⏳✓]?\s*\*?(?:Bash|Read|Write|Edit|Update|MultiEdit|NotebookEdit|Glob|Grep|Task|Agent|TodoWrite|WebFetch|WebSearch)\*?\s*\(/;
|
|
174
|
+
/** Tool RESULT marker line: ` ⎿ <summary or first output line>`. */
|
|
175
|
+
exports.TOOL_RESULT_MARKER_RE = /^(\s*)⎿/;
|
|
176
|
+
/** An agent-authored fenced code block delimiter, possibly indented. */
|
|
177
|
+
exports.CODE_FENCE_LINE_RE = /^\s*```/;
|
|
178
|
+
/**
|
|
179
|
+
* @description Lines the bot's progress-collapse owns and must receive
|
|
180
|
+
* UN-fenced: a sub-agent task line (`◯`, optionally `❯`-cursor-led, U+25EF —
|
|
181
|
+
* NOT the `○`/`●` glyphs) and a compaction progress bar (`▰▱`). They are
|
|
182
|
+
* indented in the pane, so a stale `output` tool kind would otherwise route
|
|
183
|
+
* them through the orphan-continuation fence; the resulting ```` ``` ````
|
|
184
|
+
* delimiters then fail `checkIsProgressChunk` (progressLine.ts), so the burst
|
|
185
|
+
* is NOT coalesced and the topic floods with one fenced tick per second.
|
|
186
|
+
*/
|
|
187
|
+
exports.PROGRESS_PASSTHROUGH_RE = /^\s*(?:❯\s+)?◯\s|^\s*[▰▱]/;
|
|
188
|
+
/**
|
|
189
|
+
* @description Transient activity tick the TUI paints INSIDE a tool-result
|
|
190
|
+
* body while the command is still running (`Running…`, `Waiting…`), with no
|
|
191
|
+
* elapsed-time paren. {@link SPINNER_TICK_RE} only catches the glyph-led
|
|
192
|
+
* `(Ns)` form, so these bare words slip through and get fenced as if they
|
|
193
|
+
* were stdout. They are ephemeral chrome, never command output: render plain,
|
|
194
|
+
* and DROP entirely when real output supersedes them in the same body.
|
|
195
|
+
*/
|
|
196
|
+
exports.TRANSIENT_TICK_RE = /^\s*(?:Running|Waiting)…\s*(?:\([^)]*\))?\s*$/;
|
|
197
|
+
/**
|
|
198
|
+
* @description The TUI's "output was collapsed" marker (`… +1 tool use`,
|
|
199
|
+
* `… +33 lines`). Anchored to the literal `… +N tool use(s)/line(s)` shape so
|
|
200
|
+
* a real one-line stdout that merely ends in `…` is never matched. Chrome, not
|
|
201
|
+
* output → render plain, never fenced.
|
|
202
|
+
*/
|
|
203
|
+
exports.COLLAPSE_MARKER_RE = /^\s*…\s*\+\d+\s+(?:tool use|line)s?\b.*$/;
|
|
204
|
+
/**
|
|
205
|
+
* @description The tool-use-only subset of {@link COLLAPSE_MARKER_RE}: matches
|
|
206
|
+
* `… +N tool use(s)` but NOT `… +N line(s)`. WHY a dedicated regex: the
|
|
207
|
+
* "+N tool uses" collapse wall is ALWAYS sub-agent panel chatter, whereas the
|
|
208
|
+
* "+N lines" form `COLLAPSE_MARKER_RE` also matches is a legitimate tool-body
|
|
209
|
+
* summary. The classifier uses this to drop an ORPHAN "+N tool uses" wall (panel
|
|
210
|
+
* already closed / scrolled off) as chrome instead of leaking it as prose,
|
|
211
|
+
* without ever swallowing a real "+N lines" tool-body summary.
|
|
212
|
+
*/
|
|
213
|
+
exports.COLLAPSE_TOOLUSE_MARKER_RE = /^\s*…\s*\+\d+\s+tool uses?\b.*$/;
|
|
214
|
+
/**
|
|
215
|
+
* @description Turn / sub-agent completion summary (`Done (14 tool uses ·
|
|
216
|
+
* 66.9k tokens · 1m 55s)`). The `tokens` inside the paren is the load-bearing
|
|
217
|
+
* anchor — a real `Done (…)` stdout line without token stats is not matched.
|
|
218
|
+
* Chrome, not output → render plain, never fenced.
|
|
219
|
+
*/
|
|
220
|
+
exports.COMPLETION_SUMMARY_RE = /^\s*Done\s*\([^)]*tokens[^)]*\)\s*$/;
|
|
221
|
+
/**
|
|
222
|
+
* @description A file-diff `NN +` CHANGE gutter line as Claude renders
|
|
223
|
+
* Read/Edit/Update diffs: a leading line number, then a literal `+` change
|
|
224
|
+
* marker (`40 +`, `3 +delta`, `51 + content`). Tight by design — `+1 done`,
|
|
225
|
+
* `3 lines changed`, `done` all fail it, so it never matches legit short prose.
|
|
226
|
+
*
|
|
227
|
+
* THE single source of truth for the short-`+`-gutter dedup bypass (live leak
|
|
228
|
+
* 2026-06-24): a short gutter re-rendered on a later poll and leaked because it
|
|
229
|
+
* was under the relay-window length gate. Both the relay window
|
|
230
|
+
* ({@link ../utils/recentRelayWindow}) and `checkIsStatusOutput` key on this
|
|
231
|
+
* shape — strictly `+` additions; `-` deletion gutters stay outside.
|
|
232
|
+
*/
|
|
233
|
+
exports.DIFF_CHANGE_GUTTER_RE = /^\s*\d+\s+\+/;
|
|
234
|
+
/**
|
|
235
|
+
* @description The bottom-right corner shortcut hint Claude Code v2.1.201
|
|
236
|
+
* paints on the footer row (`/rc`). Right-aligned at the pane edge, it can
|
|
237
|
+
* scrape as a line whose ONLY content is the hint token (heavy leading
|
|
238
|
+
* whitespace) — the line-set diff then relayed it as a 3-char status frame
|
|
239
|
+
* (`sendMessage "/rc"`, `✽ /rc · 0:01`; live 2026-07-06). Anchored
|
|
240
|
+
* to the WHOLE line being nothing but the literal hint, so prose that merely
|
|
241
|
+
* mentions `/rc` inline is never matched. Closed shape — if a future version
|
|
242
|
+
* paints a different corner hint, WIDEN the alternation (keep `/rc`), don't
|
|
243
|
+
* loosen the whole-line anchor.
|
|
244
|
+
*/
|
|
245
|
+
exports.CORNER_HINT_RE = /^\s*\/rc\s*$/;
|
|
246
|
+
/**
|
|
247
|
+
* @description Whole-line TUI chrome a scrape chunk can carry that the relay
|
|
248
|
+
* already drops: rounded box-drawing borders, full-width rules, nav / hint
|
|
249
|
+
* footers ("Enter to select", "esc to …", "↑/↓ …"), the bypass-permissions
|
|
250
|
+
* footer, tab-bar rows, and the native-installer ad. Consolidated here from
|
|
251
|
+
* the inline filters in `stripTuiElementsWithContext` so the classifier tags
|
|
252
|
+
* the SAME lines as `chrome` without re-declaring each shape.
|
|
253
|
+
*
|
|
254
|
+
* Conservative by design — every branch is anchored on a TUI-only glyph or an
|
|
255
|
+
* exact phrase, so a real prose line is never mistaken for chrome (the
|
|
256
|
+
* classifier's default is `prose`).
|
|
257
|
+
*/
|
|
258
|
+
function checkIsClaudeChromeLine(line) {
|
|
259
|
+
const trimmed = line.trim();
|
|
260
|
+
if (trimmed === '')
|
|
261
|
+
return false;
|
|
262
|
+
return (
|
|
263
|
+
// Full-width horizontal rule.
|
|
264
|
+
/^[─━]+$/.test(trimmed) ||
|
|
265
|
+
// Pure box-drawing / blank composite (rounded chrome borders).
|
|
266
|
+
/^[╭╮╰╯┌┐└┘├┤┬┴┼─━│┃\s]+$/.test(trimmed) ||
|
|
267
|
+
// Wide bordered chrome panel row (rounded corners, >50 chars).
|
|
268
|
+
(/[╭─╮│╰╯]/.test(line) && trimmed.length > 50) ||
|
|
269
|
+
// Block / shade UI fill.
|
|
270
|
+
/^[▐▛▜▌▝▘█▀▄░▒▓\s]+$/.test(trimmed) ||
|
|
271
|
+
// Tab-bar navigation row (← … →).
|
|
272
|
+
/^←.*→\s*$/.test(trimmed) ||
|
|
273
|
+
// Selection / navigation hint footers.
|
|
274
|
+
/Enter to select/i.test(line) ||
|
|
275
|
+
/\(shift\+tab to cycle\)/i.test(line) ||
|
|
276
|
+
/⏵⏵\s*(?:bypass permissions|accept edits)\s*(?:on|off)/i.test(line) ||
|
|
277
|
+
// Bottom-right corner shortcut hint (v2.1.201 `/rc`), scraped standalone.
|
|
278
|
+
exports.CORNER_HINT_RE.test(line) ||
|
|
279
|
+
// Input-box cursor row / cursor-led nav.
|
|
280
|
+
/^❯/.test(trimmed) ||
|
|
281
|
+
// Ephemeral "Tip:" affordance under a turn.
|
|
282
|
+
/^⎿\s*Tip:\s/i.test(trimmed) ||
|
|
283
|
+
// Native-installer ad / docs link.
|
|
284
|
+
/claude code has switched|native installer|Run.*install.*or see/i.test(line) ||
|
|
285
|
+
/docs\.anthropic\.com/i.test(line) ||
|
|
286
|
+
// Resume / welcome chrome.
|
|
287
|
+
/Recent activity|What's new|\/resume for more/i.test(line) ||
|
|
288
|
+
/Welcome\s*back/i.test(line));
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=claudeScrapeShapes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeScrapeShapes.js","sourceRoot":"","sources":["../../src/utils/claudeScrapeShapes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAcH,4DAEC;AA0GD,wEAEC;AA6ID,0DA+BC;AAtSD;;;;;;;;GAQG;AACU,QAAA,wBAAwB,GAAG,iBAAiB,CAAC;AAE1D,+EAA+E;AAC/E,SAAgB,wBAAwB,CAAC,IAAY;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAwB,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACU,QAAA,eAAe,GAC1B,sGAAsG,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACU,QAAA,wBAAwB,GACnC,gDAAgD,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACU,QAAA,kBAAkB,GAC7B,uEAAuE,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,8BAA8B,CAAC,IAAY;IACzD,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACU,QAAA,qBAAqB,GAAG,8CAA8C,CAAC;AACvE,QAAA,mBAAmB,GAC9B,6EAA6E,CAAC;AAEhF;;;;;;;;;;;GAWG;AACU,QAAA,kBAAkB,GAC7B,oIAAoI,CAAC;AAEvI,sEAAsE;AACzD,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAE/C,wEAAwE;AAC3D,QAAA,kBAAkB,GAAG,SAAS,CAAC;AAE5C;;;;;;;;GAQG;AACU,QAAA,uBAAuB,GAAG,2BAA2B,CAAC;AAEnE;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG,+CAA+C,CAAC;AAEjF;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG,0CAA0C,CAAC;AAE7E;;;;;;;;GAQG;AACU,QAAA,0BAA0B,GAAG,iCAAiC,CAAC;AAE5E;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,qCAAqC,CAAC;AAE3E;;;;;;;;;;;GAWG;AACU,QAAA,qBAAqB,GAAG,cAAc,CAAC;AAEpD;;;;;;;;;;GAUG;AACU,QAAA,cAAc,GAAG,cAAc,CAAC;AAU7C;;;;;;;;;;;GAWG;AACH,SAAgB,uBAAuB,CAAC,IAAY;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO;IACL,8BAA8B;IAC9B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QACvB,+DAA+D;QAC/D,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,+DAA+D;QAC/D,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;QAC9C,yBAAyB;QACzB,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,kCAAkC;QAClC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QACzB,uCAAuC;QACvC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC;QACnE,0EAA0E;QAC1E,sBAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAClB,4CAA4C;QAC5C,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,mCAAmC;QACnC,iEAAiE,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5E,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,2BAA2B;QAC3B,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1D,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Derive a human-readable title for a Claude session from its
|
|
3
|
+
* stored user prompts, so the `/sessions` picker shows the session's TOPIC
|
|
4
|
+
* instead of noise.
|
|
5
|
+
*
|
|
6
|
+
* Why this exists: current Claude Code (2.1.201) no longer writes the
|
|
7
|
+
* LLM-generated `type:"summary"` line the old picker relied on, so
|
|
8
|
+
* {@link listClaudeSessionsForWorkDir} always fell back to the LAST stored
|
|
9
|
+
* prompt — which for bot-driven sessions is almost always garbage (the
|
|
10
|
+
* `[Telegram thread context]` preamble, a `/effort` command echo, a
|
|
11
|
+
* `<task-notification>`, or a bare `yes`/`commit`/`...`). We instead pick the
|
|
12
|
+
* FIRST *meaningful* prompt: preamble/marker stripped, tooling noise skipped.
|
|
13
|
+
*
|
|
14
|
+
* Pure (string-in, string-out) so it is unit-tested in isolation.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* @description Strip the bot's service wrappers (thread-context preamble first —
|
|
18
|
+
* it is the outermost, then the scheduled-run marker) off a stored prompt and
|
|
19
|
+
* collapse it to a single display line. No noise filtering — the raw topic line.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getSessionTitleLine(rawPrompt: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* @description A session-title candidate from ONE stored prompt: the stripped
|
|
24
|
+
* single-line topic, or `null` when the prompt is empty or tooling noise.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getSessionTitleCandidate(rawPrompt: string): string | null;
|
|
27
|
+
//# sourceMappingURL=claudeSessionTitle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeSessionTitle.d.ts","sourceRoot":"","sources":["../../src/utils/claudeSessionTitle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA2CH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK7D;AAWD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKzE"}
|