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,7 @@
|
|
|
1
|
+
export interface CanonicalPathContainment {
|
|
2
|
+
canonicalPath: string;
|
|
3
|
+
isWithinRoot: boolean;
|
|
4
|
+
}
|
|
5
|
+
/** Resolve one candidate against a canonical root and compare with a separator-safe boundary. */
|
|
6
|
+
export declare function resolveCanonicalPathContainment(canonicalRootPath: string, relativePath: string): CanonicalPathContainment;
|
|
7
|
+
//# sourceMappingURL=canonicalPathContainment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonicalPathContainment.d.ts","sourceRoot":"","sources":["../../src/utils/canonicalPathContainment.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,iGAAiG;AACjG,wBAAgB,+BAA+B,CAC7C,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,MAAM,GACnB,wBAAwB,CAQ1B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
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.resolveCanonicalPathContainment = resolveCanonicalPathContainment;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
/** Resolve one candidate against a canonical root and compare with a separator-safe boundary. */
|
|
40
|
+
function resolveCanonicalPathContainment(canonicalRootPath, relativePath) {
|
|
41
|
+
const canonicalPath = fs.realpathSync(path.resolve(canonicalRootPath, relativePath));
|
|
42
|
+
return {
|
|
43
|
+
canonicalPath,
|
|
44
|
+
isWithinRoot: canonicalPath === canonicalRootPath ||
|
|
45
|
+
canonicalPath.startsWith(canonicalRootPath + path.sep),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=canonicalPathContainment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonicalPathContainment.js","sourceRoot":"","sources":["../../src/utils/canonicalPathContainment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,0EAWC;AApBD,uCAAyB;AACzB,2CAA6B;AAO7B,iGAAiG;AACjG,SAAgB,+BAA+B,CAC7C,iBAAyB,EACzB,YAAoB;IAEpB,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;IACrF,OAAO;QACL,aAAa;QACb,YAAY,EACV,aAAa,KAAK,iBAAiB;YACnC,aAAa,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC;KACzD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Pure helpers behind the json-stream `/login` out-of-band auth
|
|
3
|
+
* flow. The json-stream Claude backend has no TUI to host Claude's interactive
|
|
4
|
+
* `/login`, so the bot drives `claude auth login --claudeai` in a pty and relays
|
|
5
|
+
* it through the topic (URL out -> pasted code in). These are the parse/decision
|
|
6
|
+
* helpers; the impure pty driving + per-thread state live in `agentLogin/agentLogin.ts`
|
|
7
|
+
* (mirrors the `apiErrorRetry.ts` pure-layer / manager split).
|
|
8
|
+
*
|
|
9
|
+
* The success signal is authoritative from `claude auth status --json`
|
|
10
|
+
* (`{"loggedIn": true, ...}`), with the process exit code as the fallback.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* @description The load-bearing marker line of Claude's `/login` OAuth
|
|
14
|
+
* "paste the code" step (`Paste code here if prompted > `). Shared with the
|
|
15
|
+
* tmux-scrape backend's login-paste detection so the marker string has a single
|
|
16
|
+
* definition.
|
|
17
|
+
*/
|
|
18
|
+
export declare const claudeLoginPastePromptRe: RegExp;
|
|
19
|
+
/**
|
|
20
|
+
* @description First `http(s)` URL in `claude auth login`'s pty output — the
|
|
21
|
+
* OAuth sign-in link. The CLI prints it inside an OSC-8 hyperlink
|
|
22
|
+
* (`ESC]8;;<url>BEL`) and again as visible blue text; the match stops at the
|
|
23
|
+
* first whitespace / C0 control char (the BEL that terminates the OSC-8 target),
|
|
24
|
+
* so the captured URL is already clean of ANSI. Returns `null` if none yet.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseClaudeAuthLoginUrl(ptyOutput: string): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* @description Whether the accumulated pty output has reached the "paste the
|
|
29
|
+
* code" prompt — i.e. the CLI has printed the sign-in URL and is now waiting for
|
|
30
|
+
* the code. Used to gate the URL relay so a URL split across pty chunks is never
|
|
31
|
+
* relayed half-rendered.
|
|
32
|
+
*/
|
|
33
|
+
export declare function checkIsClaudeAuthLoginCodePrompt(ptyOutput: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* @description Read `loggedIn` out of `claude auth status --json`. Returns the
|
|
36
|
+
* boolean, or `null` when the JSON is missing/malformed or lacks the field.
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseAuthStatusLoggedIn(statusJson: string): boolean | null;
|
|
39
|
+
/**
|
|
40
|
+
* @description Decide whether the login succeeded. `claude auth status` is
|
|
41
|
+
* authoritative (it reflects the real on-disk credentials after the flow); the
|
|
42
|
+
* process exit code is only the fallback when the status probe could not be read
|
|
43
|
+
* (`loggedIn === null`).
|
|
44
|
+
*/
|
|
45
|
+
export declare function checkIsAuthLoginSucceeded(input: {
|
|
46
|
+
exitCode: number | null;
|
|
47
|
+
loggedIn: boolean | null;
|
|
48
|
+
}): boolean;
|
|
49
|
+
/** How a `/login` slash command is handled for a thread. */
|
|
50
|
+
export type LoginCommandRoute = 'outOfBand' | 'forwardToAgent';
|
|
51
|
+
/**
|
|
52
|
+
* @description Route a `/login` command by the thread's Claude backend. Only the
|
|
53
|
+
* json-stream backends (`claude-json-stream` and `claude-per-turn` — one host,
|
|
54
|
+
* no TUI to host the OAuth flow) intercept it into the bot-driven out-of-band
|
|
55
|
+
* flow; every other case — tmux-scrape Claude
|
|
56
|
+
* (its TUI hosts `/login` itself), OpenCode/terminal, or a no-pick thread — keeps
|
|
57
|
+
* the existing verbatim forward.
|
|
58
|
+
*
|
|
59
|
+
* The backend is read from the thread's RAW adapter pick, NOT a "resolve to the
|
|
60
|
+
* Claude default" call: an OpenCode/terminal thread has a non-Claude raw pick, so
|
|
61
|
+
* gating on the raw name avoids wrongly intercepting `/login` on those threads
|
|
62
|
+
* (which a default-resolving check would do once json-stream is the default).
|
|
63
|
+
* `checkIsJsonStreamBackend` is injected to keep this helper free of an adapter
|
|
64
|
+
* import.
|
|
65
|
+
*/
|
|
66
|
+
export declare function getLoginCommandRoute(input: {
|
|
67
|
+
command: string;
|
|
68
|
+
rawBackendName: string | undefined;
|
|
69
|
+
checkIsJsonStreamBackend: (adapterName: string) => boolean;
|
|
70
|
+
}): LoginCommandRoute;
|
|
71
|
+
//# sourceMappingURL=claudeAuthLogin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeAuthLogin.d.ts","sourceRoot":"","sources":["../../src/utils/claudeAuthLogin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAgC,CAAC;AAKtE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAO1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAGV;AAED,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,wBAAwB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5D,GAAG,iBAAiB,CAIpB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Pure helpers behind the json-stream `/login` out-of-band auth
|
|
4
|
+
* flow. The json-stream Claude backend has no TUI to host Claude's interactive
|
|
5
|
+
* `/login`, so the bot drives `claude auth login --claudeai` in a pty and relays
|
|
6
|
+
* it through the topic (URL out -> pasted code in). These are the parse/decision
|
|
7
|
+
* helpers; the impure pty driving + per-thread state live in `agentLogin/agentLogin.ts`
|
|
8
|
+
* (mirrors the `apiErrorRetry.ts` pure-layer / manager split).
|
|
9
|
+
*
|
|
10
|
+
* The success signal is authoritative from `claude auth status --json`
|
|
11
|
+
* (`{"loggedIn": true, ...}`), with the process exit code as the fallback.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.claudeLoginPastePromptRe = void 0;
|
|
15
|
+
exports.parseClaudeAuthLoginUrl = parseClaudeAuthLoginUrl;
|
|
16
|
+
exports.checkIsClaudeAuthLoginCodePrompt = checkIsClaudeAuthLoginCodePrompt;
|
|
17
|
+
exports.parseAuthStatusLoggedIn = parseAuthStatusLoggedIn;
|
|
18
|
+
exports.checkIsAuthLoginSucceeded = checkIsAuthLoginSucceeded;
|
|
19
|
+
exports.getLoginCommandRoute = getLoginCommandRoute;
|
|
20
|
+
/**
|
|
21
|
+
* @description The load-bearing marker line of Claude's `/login` OAuth
|
|
22
|
+
* "paste the code" step (`Paste code here if prompted > `). Shared with the
|
|
23
|
+
* tmux-scrape backend's login-paste detection so the marker string has a single
|
|
24
|
+
* definition.
|
|
25
|
+
*/
|
|
26
|
+
exports.claudeLoginPastePromptRe = /Paste code here if prompted/;
|
|
27
|
+
/** Matches the first http(s) URL, stopping at whitespace or any C0 control char. */
|
|
28
|
+
const oauthLoginUrlRe = /https?:\/\/[^\s\u0000-\u001f]+/;
|
|
29
|
+
/**
|
|
30
|
+
* @description First `http(s)` URL in `claude auth login`'s pty output — the
|
|
31
|
+
* OAuth sign-in link. The CLI prints it inside an OSC-8 hyperlink
|
|
32
|
+
* (`ESC]8;;<url>BEL`) and again as visible blue text; the match stops at the
|
|
33
|
+
* first whitespace / C0 control char (the BEL that terminates the OSC-8 target),
|
|
34
|
+
* so the captured URL is already clean of ANSI. Returns `null` if none yet.
|
|
35
|
+
*/
|
|
36
|
+
function parseClaudeAuthLoginUrl(ptyOutput) {
|
|
37
|
+
const match = ptyOutput.match(oauthLoginUrlRe);
|
|
38
|
+
return match ? match[0] : null;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @description Whether the accumulated pty output has reached the "paste the
|
|
42
|
+
* code" prompt — i.e. the CLI has printed the sign-in URL and is now waiting for
|
|
43
|
+
* the code. Used to gate the URL relay so a URL split across pty chunks is never
|
|
44
|
+
* relayed half-rendered.
|
|
45
|
+
*/
|
|
46
|
+
function checkIsClaudeAuthLoginCodePrompt(ptyOutput) {
|
|
47
|
+
return exports.claudeLoginPastePromptRe.test(ptyOutput);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @description Read `loggedIn` out of `claude auth status --json`. Returns the
|
|
51
|
+
* boolean, or `null` when the JSON is missing/malformed or lacks the field.
|
|
52
|
+
*/
|
|
53
|
+
function parseAuthStatusLoggedIn(statusJson) {
|
|
54
|
+
try {
|
|
55
|
+
const parsed = JSON.parse(statusJson);
|
|
56
|
+
return typeof parsed.loggedIn === 'boolean' ? parsed.loggedIn : null;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @description Decide whether the login succeeded. `claude auth status` is
|
|
64
|
+
* authoritative (it reflects the real on-disk credentials after the flow); the
|
|
65
|
+
* process exit code is only the fallback when the status probe could not be read
|
|
66
|
+
* (`loggedIn === null`).
|
|
67
|
+
*/
|
|
68
|
+
function checkIsAuthLoginSucceeded(input) {
|
|
69
|
+
if (input.loggedIn !== null)
|
|
70
|
+
return input.loggedIn;
|
|
71
|
+
return input.exitCode === 0;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @description Route a `/login` command by the thread's Claude backend. Only the
|
|
75
|
+
* json-stream backends (`claude-json-stream` and `claude-per-turn` — one host,
|
|
76
|
+
* no TUI to host the OAuth flow) intercept it into the bot-driven out-of-band
|
|
77
|
+
* flow; every other case — tmux-scrape Claude
|
|
78
|
+
* (its TUI hosts `/login` itself), OpenCode/terminal, or a no-pick thread — keeps
|
|
79
|
+
* the existing verbatim forward.
|
|
80
|
+
*
|
|
81
|
+
* The backend is read from the thread's RAW adapter pick, NOT a "resolve to the
|
|
82
|
+
* Claude default" call: an OpenCode/terminal thread has a non-Claude raw pick, so
|
|
83
|
+
* gating on the raw name avoids wrongly intercepting `/login` on those threads
|
|
84
|
+
* (which a default-resolving check would do once json-stream is the default).
|
|
85
|
+
* `checkIsJsonStreamBackend` is injected to keep this helper free of an adapter
|
|
86
|
+
* import.
|
|
87
|
+
*/
|
|
88
|
+
function getLoginCommandRoute(input) {
|
|
89
|
+
return input.command === 'login' && input.rawBackendName !== undefined && input.checkIsJsonStreamBackend(input.rawBackendName)
|
|
90
|
+
? 'outOfBand'
|
|
91
|
+
: 'forwardToAgent';
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=claudeAuthLogin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeAuthLogin.js","sourceRoot":"","sources":["../../src/utils/claudeAuthLogin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAoBH,0DAGC;AAQD,4EAEC;AAMD,0DAOC;AAQD,8DAMC;AAoBD,oDAQC;AAtFD;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,6BAA6B,CAAC;AAEtE,oFAAoF;AACpF,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEzD;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gCAAgC,CAAC,SAAiB;IAChE,OAAO,gCAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,UAAkB;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAA2B,CAAC;QAChE,OAAO,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,KAGzC;IACC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IACnD,OAAO,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC9B,CAAC;AAKD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAAC,KAIpC;IACC,OAAO,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,cAAc,CAAC;QAC5H,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,gBAAgB,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description PURE classifier that segments a scraped, ANSI-cleaned Claude
|
|
3
|
+
* TUI pane chunk into TAGGED spans, carrying tool-fence context across poll
|
|
4
|
+
* chunks (the same cross-poll state the relay already threads as
|
|
5
|
+
* `session.openToolKind` through {@link stripTuiElementsWithContext}).
|
|
6
|
+
*
|
|
7
|
+
* This is the decision layer for the verbosity scopes (S4 `/tool_results`, S5
|
|
8
|
+
* `/thinking`, S6 sub-agent panel fold): given a chunk it labels each run of
|
|
9
|
+
* lines so a later caller can keep / drop / re-route them per the topic's
|
|
10
|
+
* verbosity mode. S3 only BUILDS and TESTS the classifier — it is NOT wired
|
|
11
|
+
* into the live relay yet, so the relay path keeps behaving exactly as today.
|
|
12
|
+
*
|
|
13
|
+
* Design rules:
|
|
14
|
+
* - Reuses the line-shape regexes from {@link ./claudeScrapeShapes} and the
|
|
15
|
+
* sub-agent progress shape from {@link ../progressLine} — ONE definition per
|
|
16
|
+
* shape, never a copy.
|
|
17
|
+
* - Conservative default: a line not positively recognised as tool / thinking
|
|
18
|
+
* / panel chatter / chrome is tagged {@link ClaudeChunkTag.Prose} — the
|
|
19
|
+
* agent's real answer is never swallowed.
|
|
20
|
+
* - Cross-poll fence semantics DERIVE FROM {@link fenceToolResultBodies} but
|
|
21
|
+
* are not identical (this classifier serves the verbosity consumer, not the
|
|
22
|
+
* fencer): a tool header opens a kind; a `⎿` body or its orphan indented
|
|
23
|
+
* continuation is the tool body for that kind; a solid prose line closes the
|
|
24
|
+
* kind. Two intentional divergences, flagged at their call sites below: a
|
|
25
|
+
* file-kind `⎿` summary is tagged `ToolBody` (the fencer keeps it prose),
|
|
26
|
+
* and a `◯`/`▰▱` panel line does NOT close an open kind (the fencer resets
|
|
27
|
+
* it). A future S4 reader must not assume identical reset behavior.
|
|
28
|
+
*/
|
|
29
|
+
import { type ToolResultKind } from './claudeScrapeShapes';
|
|
30
|
+
/**
|
|
31
|
+
* @name ClaudeChunkTag
|
|
32
|
+
* @description The classification of a run of pane lines.
|
|
33
|
+
* - `thinkingBlock` — "Thinking for {N}s…" / "Thought for Ns" headers,
|
|
34
|
+
* their reasoning body, and the post-thinking trailer.
|
|
35
|
+
* - `toolHeader` — a tool-call header line (`● Bash(…)`, `✓ Read(…)`).
|
|
36
|
+
* - `toolBody` — the `⎿` result body + its fenced/indented body.
|
|
37
|
+
* - `subagentPanelPreview` — the tool-PREVIEW chatter the TUI draws under a
|
|
38
|
+
* running `◯` sub-agent panel (`⎿ Bash(…)` previews,
|
|
39
|
+
* "… +N tool uses" walls) — distinct from the ◯
|
|
40
|
+
* title line itself (progress, tagged chrome).
|
|
41
|
+
* - `prose` — real agent answer text (the conservative default).
|
|
42
|
+
* - `chrome` — TUI chrome the relay already drops (box-drawing,
|
|
43
|
+
* nav hints, question/survey chrome, input echo,
|
|
44
|
+
* installer ads, ◯ panel title, spinner ticks).
|
|
45
|
+
*/
|
|
46
|
+
export declare enum ClaudeChunkTag {
|
|
47
|
+
ThinkingBlock = "thinkingBlock",
|
|
48
|
+
ToolHeader = "toolHeader",
|
|
49
|
+
ToolBody = "toolBody",
|
|
50
|
+
SubagentPanelPreview = "subagentPanelPreview",
|
|
51
|
+
Prose = "prose",
|
|
52
|
+
Chrome = "chrome"
|
|
53
|
+
}
|
|
54
|
+
/** One classified run of consecutive same-tag lines, original order preserved. */
|
|
55
|
+
export interface ClaudeChunkSegment {
|
|
56
|
+
tag: ClaudeChunkTag;
|
|
57
|
+
text: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @description Fence / block state threaded BETWEEN poll chunks — mirrors the
|
|
61
|
+
* adapter's `session.openToolKind`. A tool body, a thinking block, or a
|
|
62
|
+
* sub-agent panel can span the boundary between two scraped chunks (Claude
|
|
63
|
+
* redraws the whole pane each poll; the diff emits only NEW lines, so a slow
|
|
64
|
+
* command's output arrives in a later poll without its header).
|
|
65
|
+
*/
|
|
66
|
+
export interface ClaudeChunkContext {
|
|
67
|
+
/** Open tool-result kind (`output`/`file`) whose body is still streaming, or null. */
|
|
68
|
+
toolKind: ToolResultKind | null;
|
|
69
|
+
/** A "Thinking for…" block is open and its reasoning body is still streaming. */
|
|
70
|
+
isThinkingOpen: boolean;
|
|
71
|
+
/** A `◯` sub-agent panel is on screen, so its `⎿`/`Tool(…)` previews are panel chatter. */
|
|
72
|
+
isSubagentPanelOpen: boolean;
|
|
73
|
+
}
|
|
74
|
+
/** The all-closed starting context (also used when a fresh session begins). */
|
|
75
|
+
export declare function createInitialChunkContext(): ClaudeChunkContext;
|
|
76
|
+
/** Result of classifying one chunk: ordered segments + the context to thread on. */
|
|
77
|
+
export interface ClaudeChunkClassification {
|
|
78
|
+
segments: ClaudeChunkSegment[];
|
|
79
|
+
outgoingContext: ClaudeChunkContext;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @description Classify one scraped, ANSI-cleaned chunk into tagged segments,
|
|
83
|
+
* threading {@link ClaudeChunkContext} across polls.
|
|
84
|
+
*
|
|
85
|
+
* Per-line precedence (first match wins), then adjacent same-tag lines coalesce:
|
|
86
|
+
* 1. blank line → inherits the still-open block's tag (keeps a body contiguous)
|
|
87
|
+
* 2. code fence → toggles an agent fence; inside it everything is prose
|
|
88
|
+
* 3. ◯ panel title / spinner tick / generic chrome → `chrome` (sets panel flag)
|
|
89
|
+
* 4. sub-agent panel preview (`⎿ Tool(…)`, indented `Tool(…)`, "+N tool uses"
|
|
90
|
+
* while a panel is open) → `subagentPanelPreview`
|
|
91
|
+
* 5. thinking header / trailer / open-thinking body → `thinkingBlock`
|
|
92
|
+
* 6. tool header → `toolHeader` (opens the matching kind)
|
|
93
|
+
* 7. `⎿` marker / indented continuation of an open tool kind → `toolBody`
|
|
94
|
+
* 8. anything else → `prose` (closes any open tool/thinking block)
|
|
95
|
+
*/
|
|
96
|
+
export declare function classifyClaudeChunk(chunkText: string, incomingContext: ClaudeChunkContext): ClaudeChunkClassification;
|
|
97
|
+
//# sourceMappingURL=claudeChunkClassifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeChunkClassifier.d.ts","sourceRoot":"","sources":["../../src/utils/claudeChunkClassifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAeL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,cAAc;IACxB,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,oBAAoB,yBAAyB;IAC7C,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,iFAAiF;IACjF,cAAc,EAAE,OAAO,CAAC;IACxB,2FAA2F;IAC3F,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,IAAI,kBAAkB,CAE9D;AAED,oFAAoF;AACpF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,eAAe,EAAE,kBAAkB,CAAC;CACrC;AAeD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,kBAAkB,GAClC,yBAAyB,CA8K3B"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description PURE classifier that segments a scraped, ANSI-cleaned Claude
|
|
4
|
+
* TUI pane chunk into TAGGED spans, carrying tool-fence context across poll
|
|
5
|
+
* chunks (the same cross-poll state the relay already threads as
|
|
6
|
+
* `session.openToolKind` through {@link stripTuiElementsWithContext}).
|
|
7
|
+
*
|
|
8
|
+
* This is the decision layer for the verbosity scopes (S4 `/tool_results`, S5
|
|
9
|
+
* `/thinking`, S6 sub-agent panel fold): given a chunk it labels each run of
|
|
10
|
+
* lines so a later caller can keep / drop / re-route them per the topic's
|
|
11
|
+
* verbosity mode. S3 only BUILDS and TESTS the classifier — it is NOT wired
|
|
12
|
+
* into the live relay yet, so the relay path keeps behaving exactly as today.
|
|
13
|
+
*
|
|
14
|
+
* Design rules:
|
|
15
|
+
* - Reuses the line-shape regexes from {@link ./claudeScrapeShapes} and the
|
|
16
|
+
* sub-agent progress shape from {@link ../progressLine} — ONE definition per
|
|
17
|
+
* shape, never a copy.
|
|
18
|
+
* - Conservative default: a line not positively recognised as tool / thinking
|
|
19
|
+
* / panel chatter / chrome is tagged {@link ClaudeChunkTag.Prose} — the
|
|
20
|
+
* agent's real answer is never swallowed.
|
|
21
|
+
* - Cross-poll fence semantics DERIVE FROM {@link fenceToolResultBodies} but
|
|
22
|
+
* are not identical (this classifier serves the verbosity consumer, not the
|
|
23
|
+
* fencer): a tool header opens a kind; a `⎿` body or its orphan indented
|
|
24
|
+
* continuation is the tool body for that kind; a solid prose line closes the
|
|
25
|
+
* kind. Two intentional divergences, flagged at their call sites below: a
|
|
26
|
+
* file-kind `⎿` summary is tagged `ToolBody` (the fencer keeps it prose),
|
|
27
|
+
* and a `◯`/`▰▱` panel line does NOT close an open kind (the fencer resets
|
|
28
|
+
* it). A future S4 reader must not assume identical reset behavior.
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.ClaudeChunkTag = void 0;
|
|
32
|
+
exports.createInitialChunkContext = createInitialChunkContext;
|
|
33
|
+
exports.classifyClaudeChunk = classifyClaudeChunk;
|
|
34
|
+
const claudeScrapeShapes_1 = require("./claudeScrapeShapes");
|
|
35
|
+
const progressLine_1 = require("../progressLine");
|
|
36
|
+
/**
|
|
37
|
+
* @name ClaudeChunkTag
|
|
38
|
+
* @description The classification of a run of pane lines.
|
|
39
|
+
* - `thinkingBlock` — "Thinking for {N}s…" / "Thought for Ns" headers,
|
|
40
|
+
* their reasoning body, and the post-thinking trailer.
|
|
41
|
+
* - `toolHeader` — a tool-call header line (`● Bash(…)`, `✓ Read(…)`).
|
|
42
|
+
* - `toolBody` — the `⎿` result body + its fenced/indented body.
|
|
43
|
+
* - `subagentPanelPreview` — the tool-PREVIEW chatter the TUI draws under a
|
|
44
|
+
* running `◯` sub-agent panel (`⎿ Bash(…)` previews,
|
|
45
|
+
* "… +N tool uses" walls) — distinct from the ◯
|
|
46
|
+
* title line itself (progress, tagged chrome).
|
|
47
|
+
* - `prose` — real agent answer text (the conservative default).
|
|
48
|
+
* - `chrome` — TUI chrome the relay already drops (box-drawing,
|
|
49
|
+
* nav hints, question/survey chrome, input echo,
|
|
50
|
+
* installer ads, ◯ panel title, spinner ticks).
|
|
51
|
+
*/
|
|
52
|
+
var ClaudeChunkTag;
|
|
53
|
+
(function (ClaudeChunkTag) {
|
|
54
|
+
ClaudeChunkTag["ThinkingBlock"] = "thinkingBlock";
|
|
55
|
+
ClaudeChunkTag["ToolHeader"] = "toolHeader";
|
|
56
|
+
ClaudeChunkTag["ToolBody"] = "toolBody";
|
|
57
|
+
ClaudeChunkTag["SubagentPanelPreview"] = "subagentPanelPreview";
|
|
58
|
+
ClaudeChunkTag["Prose"] = "prose";
|
|
59
|
+
ClaudeChunkTag["Chrome"] = "chrome";
|
|
60
|
+
})(ClaudeChunkTag || (exports.ClaudeChunkTag = ClaudeChunkTag = {}));
|
|
61
|
+
/** The all-closed starting context (also used when a fresh session begins). */
|
|
62
|
+
function createInitialChunkContext() {
|
|
63
|
+
return { toolKind: null, isThinkingOpen: false, isSubagentPanelOpen: false };
|
|
64
|
+
}
|
|
65
|
+
/** Indented (leading-whitespace) non-blank continuation line of an open body. */
|
|
66
|
+
function checkIsIndentedContinuation(line) {
|
|
67
|
+
return /^\s/.test(line) && line.trim() !== '';
|
|
68
|
+
}
|
|
69
|
+
/** A `⎿` line whose post-marker content is itself a tool-call header = a sub-agent panel preview. */
|
|
70
|
+
function checkIsPanelToolPreviewMarker(line) {
|
|
71
|
+
const markerMatch = line.match(claudeScrapeShapes_1.TOOL_RESULT_MARKER_RE);
|
|
72
|
+
if (!markerMatch)
|
|
73
|
+
return false;
|
|
74
|
+
const afterMarker = line.slice(markerMatch[0].length);
|
|
75
|
+
return claudeScrapeShapes_1.ANY_TOOL_HEADER_RE.test(afterMarker);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @description Classify one scraped, ANSI-cleaned chunk into tagged segments,
|
|
79
|
+
* threading {@link ClaudeChunkContext} across polls.
|
|
80
|
+
*
|
|
81
|
+
* Per-line precedence (first match wins), then adjacent same-tag lines coalesce:
|
|
82
|
+
* 1. blank line → inherits the still-open block's tag (keeps a body contiguous)
|
|
83
|
+
* 2. code fence → toggles an agent fence; inside it everything is prose
|
|
84
|
+
* 3. ◯ panel title / spinner tick / generic chrome → `chrome` (sets panel flag)
|
|
85
|
+
* 4. sub-agent panel preview (`⎿ Tool(…)`, indented `Tool(…)`, "+N tool uses"
|
|
86
|
+
* while a panel is open) → `subagentPanelPreview`
|
|
87
|
+
* 5. thinking header / trailer / open-thinking body → `thinkingBlock`
|
|
88
|
+
* 6. tool header → `toolHeader` (opens the matching kind)
|
|
89
|
+
* 7. `⎿` marker / indented continuation of an open tool kind → `toolBody`
|
|
90
|
+
* 8. anything else → `prose` (closes any open tool/thinking block)
|
|
91
|
+
*/
|
|
92
|
+
function classifyClaudeChunk(chunkText, incomingContext) {
|
|
93
|
+
const lines = chunkText.split('\n');
|
|
94
|
+
const context = { ...incomingContext };
|
|
95
|
+
const segments = [];
|
|
96
|
+
let inAgentFence = false;
|
|
97
|
+
const push = (tag, line) => {
|
|
98
|
+
const last = segments[segments.length - 1];
|
|
99
|
+
if (last && last.tag === tag) {
|
|
100
|
+
last.text += `\n${line}`;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
segments.push({ tag, text: line });
|
|
104
|
+
};
|
|
105
|
+
/** The tag a blank line / inherited run carries given the open block. */
|
|
106
|
+
const getOpenBlockTag = () => {
|
|
107
|
+
if (context.toolKind !== null)
|
|
108
|
+
return ClaudeChunkTag.ToolBody;
|
|
109
|
+
if (context.isThinkingOpen)
|
|
110
|
+
return ClaudeChunkTag.ThinkingBlock;
|
|
111
|
+
return ClaudeChunkTag.Prose;
|
|
112
|
+
};
|
|
113
|
+
for (const line of lines) {
|
|
114
|
+
// 0. Inside an agent-authored ``` block: pass through as prose, the fence
|
|
115
|
+
// toggles on its delimiters. A fence line itself stays prose (it is real
|
|
116
|
+
// agent content). Tool/thinking context is irrelevant inside the fence.
|
|
117
|
+
if (claudeScrapeShapes_1.CODE_FENCE_LINE_RE.test(line)) {
|
|
118
|
+
inAgentFence = !inAgentFence;
|
|
119
|
+
context.toolKind = null;
|
|
120
|
+
context.isThinkingOpen = false;
|
|
121
|
+
push(ClaudeChunkTag.Prose, line);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (inAgentFence) {
|
|
125
|
+
push(ClaudeChunkTag.Prose, line);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
// 1. Blank line — keep the open block contiguous (do NOT close it; the
|
|
129
|
+
// adapter's fencer also leaves the kind intact across blanks).
|
|
130
|
+
if (line.trim() === '') {
|
|
131
|
+
push(getOpenBlockTag(), line);
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
// 2. ◯ sub-agent panel title / compaction bar / spinner tick → chrome. The
|
|
135
|
+
// ◯ line marks a panel as open so its previews below are panel chatter; it
|
|
136
|
+
// does NOT close an open tool/thinking block (the panel is a separate pane).
|
|
137
|
+
if (claudeScrapeShapes_1.PROGRESS_PASSTHROUGH_RE.test(line) || progressLine_1.SUBAGENT_PROGRESS_LINE_RE.test(line)) {
|
|
138
|
+
context.isSubagentPanelOpen = true;
|
|
139
|
+
push(ClaudeChunkTag.Chrome, line);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
if (claudeScrapeShapes_1.SPINNER_TICK_RE.test(line)) {
|
|
143
|
+
push(ClaudeChunkTag.Chrome, line);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
// 3. Sub-agent panel preview chatter (the bulk of the overview-2 flood):
|
|
147
|
+
// - a `⎿ Bash(…)` whose marker content is itself a tool header;
|
|
148
|
+
// - a "… +N tool uses" collapse wall while a panel is open;
|
|
149
|
+
// - an indented bare `Tool(…)` header continuation while a panel is open.
|
|
150
|
+
if (checkIsPanelToolPreviewMarker(line)) {
|
|
151
|
+
context.isSubagentPanelOpen = true;
|
|
152
|
+
push(ClaudeChunkTag.SubagentPanelPreview, line);
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
if (context.isSubagentPanelOpen && claudeScrapeShapes_1.COLLAPSE_MARKER_RE.test(line)) {
|
|
156
|
+
push(ClaudeChunkTag.SubagentPanelPreview, line);
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
if (context.isSubagentPanelOpen &&
|
|
160
|
+
checkIsIndentedContinuation(line) &&
|
|
161
|
+
claudeScrapeShapes_1.ANY_TOOL_HEADER_RE.test(line)) {
|
|
162
|
+
push(ClaudeChunkTag.SubagentPanelPreview, line);
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
// An orphan "… +N tool uses" collapse wall (panel already closed / scrolled
|
|
166
|
+
// off, no open panel context above) is still sub-agent panel chrome — drop it
|
|
167
|
+
// rather than leak it as prose. The panel-OPEN case is handled above (folds to
|
|
168
|
+
// a sub-agent status activity); this catches the orphan tail. "+N lines" (a
|
|
169
|
+
// real tool-body summary) is deliberately NOT matched here.
|
|
170
|
+
if (claudeScrapeShapes_1.COLLAPSE_TOOLUSE_MARKER_RE.test(line)) {
|
|
171
|
+
push(ClaudeChunkTag.Chrome, line);
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
// 4. Thinking block: header opens it, trailer / body continue it.
|
|
175
|
+
if (claudeScrapeShapes_1.THINKING_HEADER_RE.test(line)) {
|
|
176
|
+
context.isThinkingOpen = true;
|
|
177
|
+
context.toolKind = null;
|
|
178
|
+
context.isSubagentPanelOpen = false;
|
|
179
|
+
push(ClaudeChunkTag.ThinkingBlock, line);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
if (claudeScrapeShapes_1.POST_THINKING_TRAILER_RE.test(line.trim())) {
|
|
183
|
+
// The trailer closes the thinking block (the reasoning is done).
|
|
184
|
+
context.isThinkingOpen = false;
|
|
185
|
+
push(ClaudeChunkTag.ThinkingBlock, line);
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (context.isThinkingOpen) {
|
|
189
|
+
// The reasoning body: the `⎿ <summary>` line and its indented wrapped
|
|
190
|
+
// continuation. A non-indented, non-`⎿` solid line ends the block (it is
|
|
191
|
+
// the agent resuming prose / a tool header), handled by falling through.
|
|
192
|
+
if (claudeScrapeShapes_1.TOOL_RESULT_MARKER_RE.test(line) || checkIsIndentedContinuation(line)) {
|
|
193
|
+
push(ClaudeChunkTag.ThinkingBlock, line);
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
context.isThinkingOpen = false;
|
|
197
|
+
}
|
|
198
|
+
// 5. Tool header → opens the matching fence kind (output / file / generic).
|
|
199
|
+
if (claudeScrapeShapes_1.ANY_TOOL_HEADER_RE.test(line)) {
|
|
200
|
+
context.isSubagentPanelOpen = false;
|
|
201
|
+
if (claudeScrapeShapes_1.OUTPUT_TOOL_HEADER_RE.test(line))
|
|
202
|
+
context.toolKind = 'output';
|
|
203
|
+
else if (claudeScrapeShapes_1.FILE_TOOL_HEADER_RE.test(line))
|
|
204
|
+
context.toolKind = 'file';
|
|
205
|
+
else
|
|
206
|
+
context.toolKind = 'output'; // non-code tools: treat the body region as one block
|
|
207
|
+
push(ClaudeChunkTag.ToolHeader, line);
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
// 6. `⎿` result marker. With an open tool kind it is the tool body. With no
|
|
211
|
+
// open kind the header was consumed by a prior poll's line-SET diff and an
|
|
212
|
+
// interleaved prose line nulled the context (rule #10) — the `⎿` glyph is
|
|
213
|
+
// itself a positive tool-result signal in the TUI, so OPEN a synthetic
|
|
214
|
+
// `output` kind and tag it ToolBody. The indented-continuation branch (#7)
|
|
215
|
+
// then keeps the rest of the orphan result region as ToolBody until a solid
|
|
216
|
+
// prose line ends the run. Without this an orphan `⎿ trace rows: …` block
|
|
217
|
+
// leaked as Prose, which the router always keeps even in minimal.
|
|
218
|
+
if (claudeScrapeShapes_1.TOOL_RESULT_MARKER_RE.test(line)) {
|
|
219
|
+
if (context.toolKind === null)
|
|
220
|
+
context.toolKind = 'output';
|
|
221
|
+
context.isSubagentPanelOpen = false;
|
|
222
|
+
push(ClaudeChunkTag.ToolBody, line);
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
// 7. Orphan indented continuation of an open tool body (header / `⎿` came in
|
|
226
|
+
// a prior poll) → tool body. Mirrors the adapter's orphan-output fencing.
|
|
227
|
+
if (context.toolKind !== null && checkIsIndentedContinuation(line)) {
|
|
228
|
+
push(ClaudeChunkTag.ToolBody, line);
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
// 8. Tool-body status / summary lines (`Running…`, "… +N lines",
|
|
232
|
+
// "Done (… tokens)") belong to the open tool body region.
|
|
233
|
+
if (context.toolKind !== null &&
|
|
234
|
+
(claudeScrapeShapes_1.TRANSIENT_TICK_RE.test(line) ||
|
|
235
|
+
claudeScrapeShapes_1.COLLAPSE_MARKER_RE.test(line) ||
|
|
236
|
+
claudeScrapeShapes_1.COMPLETION_SUMMARY_RE.test(line))) {
|
|
237
|
+
push(ClaudeChunkTag.ToolBody, line);
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
// 9. Generic TUI chrome (box-drawing, nav hints, installer ad, input echo).
|
|
241
|
+
if ((0, claudeScrapeShapes_1.checkIsClaudeChromeLine)(line)) {
|
|
242
|
+
push(ClaudeChunkTag.Chrome, line);
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
// 10. Default: real agent prose. A solid prose line CLOSES any open tool /
|
|
246
|
+
// thinking / panel block (the agent has resumed answering).
|
|
247
|
+
context.toolKind = null;
|
|
248
|
+
context.isThinkingOpen = false;
|
|
249
|
+
context.isSubagentPanelOpen = false;
|
|
250
|
+
push(ClaudeChunkTag.Prose, line);
|
|
251
|
+
}
|
|
252
|
+
return { segments, outgoingContext: context };
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=claudeChunkClassifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeChunkClassifier.js","sourceRoot":"","sources":["../../src/utils/claudeChunkClassifier.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAqEH,8DAEC;AAoCD,kDAiLC;AA1RD,6DAgB8B;AAC9B,kDAA4D;AAE5D;;;;;;;;;;;;;;;GAeG;AACH,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,iDAA+B,CAAA;IAC/B,2CAAyB,CAAA;IACzB,uCAAqB,CAAA;IACrB,+DAA6C,CAAA;IAC7C,iCAAe,CAAA;IACf,mCAAiB,CAAA;AACnB,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB;AAwBD,+EAA+E;AAC/E,SAAgB,yBAAyB;IACvC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;AAC/E,CAAC;AAQD,iFAAiF;AACjF,SAAS,2BAA2B,CAAC,IAAY;IAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC;AAED,qGAAqG;AACrG,SAAS,6BAA6B,CAAC,IAAY;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,0CAAqB,CAAC,CAAC;IACtD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,uCAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,mBAAmB,CACjC,SAAiB,EACjB,eAAmC;IAEnC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,OAAO,GAAuB,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,MAAM,IAAI,GAAG,CAAC,GAAmB,EAAE,IAAY,EAAQ,EAAE;QACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,yEAAyE;IACzE,MAAM,eAAe,GAAG,GAAmB,EAAE;QAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAO,cAAc,CAAC,QAAQ,CAAC;QAC9D,IAAI,OAAO,CAAC,cAAc;YAAE,OAAO,cAAc,CAAC,aAAa,CAAC;QAChE,OAAO,cAAc,CAAC,KAAK,CAAC;IAC9B,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,IAAI,uCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,YAAY,GAAG,CAAC,YAAY,CAAC;YAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,uEAAuE;QACvE,+DAA+D;QAC/D,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,IAAI,4CAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,wCAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/E,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,oCAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QAED,yEAAyE;QACzE,mEAAmE;QACnE,8DAA8D;QAC9D,4EAA4E;QAC5E,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,mBAAmB,IAAI,uCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QACD,IACE,OAAO,CAAC,mBAAmB;YAC3B,2BAA2B,CAAC,IAAI,CAAC;YACjC,uCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QAED,4EAA4E;QAC5E,8EAA8E;QAC9E,+EAA+E;QAC/E,4EAA4E;QAC5E,4DAA4D;QAC5D,IAAI,+CAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QAED,kEAAkE;QAClE,IAAI,uCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAC9B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QACD,IAAI,6CAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,iEAAiE;YACjE,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,uEAAuE;YACvE,yEAAyE;YACzE,yEAAyE;YACzE,IAAI,0CAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1E,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YACD,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;QACjC,CAAC;QAED,4EAA4E;QAC5E,IAAI,uCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACpC,IAAI,0CAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBAC7D,IAAI,wCAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;;gBAC9D,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,qDAAqD;YACvF,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACtC,SAAS;QACX,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,0EAA0E;QAC1E,uEAAuE;QACvE,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,kEAAkE;QAClE,IAAI,0CAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;gBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3D,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,iEAAiE;QACjE,0DAA0D;QAC1D,IACE,OAAO,CAAC,QAAQ,KAAK,IAAI;YACzB,CAAC,sCAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3B,uCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC7B,0CAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EACnC,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,4EAA4E;QAC5E,IAAI,IAAA,4CAAuB,EAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QAED,2EAA2E;QAC3E,4DAA4D;QAC5D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;QAC/B,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description The Claude Code version gate for the json-stream lifecycle
|
|
3
|
+
* (plan 2026-10-04-claude-process-lifecycle, L-D10). A process may be stopped
|
|
4
|
+
* automatically (idle stop, per-turn stop) ONLY when its CLI reports the
|
|
5
|
+
* `system/background_tasks_changed` list — verified on 2.1.287 and never seen
|
|
6
|
+
* before it. Without that list a stop could kill background work (a background
|
|
7
|
+
* Bash, a Monitor, a background sub-agent): stdin EOF kills them ~5 s later
|
|
8
|
+
* (probe 2026-10-04). An unknown version (no `claude_code_version` on `init`)
|
|
9
|
+
* is treated as too old.
|
|
10
|
+
*/
|
|
11
|
+
/** The first Claude Code version whose stream-json reports the background-task list. */
|
|
12
|
+
export declare const minAutoStopClaudeCodeVersion = "2.1.287";
|
|
13
|
+
/**
|
|
14
|
+
* @description Compare two `major.minor.patch` versions numerically (so `2.1.300`
|
|
15
|
+
* sorts after `2.1.287`, which a string compare gets wrong). Returns a negative
|
|
16
|
+
* number, zero, or a positive number like `Array.prototype.sort` expects; `null`
|
|
17
|
+
* when either side does not parse.
|
|
18
|
+
*/
|
|
19
|
+
export declare function compareClaudeCodeVersions(left: string, right: string): number | null;
|
|
20
|
+
/** Whether a process reporting `version` may be auto-stopped (L-D10); `null` / unparseable → `false`. */
|
|
21
|
+
export declare function checkIsClaudeAutoStopSupported(version: string | null): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* @description The version a switch of a conversation to the per-turn lifecycle
|
|
24
|
+
* is REFUSED on (L-D10, narrowed): its last known Claude Code version — from the
|
|
25
|
+
* live process or the persisted tail record — when that is below the gate;
|
|
26
|
+
* `null` when the switch is allowed. An unknown version allows it: the refusal is
|
|
27
|
+
* only decidable once a version is known, and the stop gate keeps an unknown or
|
|
28
|
+
* old process alive anyway.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getPerTurnRefusedVersion(lastKnownVersion: string | null): string | null;
|
|
31
|
+
//# sourceMappingURL=claudeCodeVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeCodeVersion.d.ts","sourceRoot":"","sources":["../../src/utils/claudeCodeVersion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,wFAAwF;AACxF,eAAO,MAAM,4BAA4B,YAAY,CAAC;AAWtD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQpF;AAED,yGAAyG;AACzG,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAI9E;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEvF"}
|