charness 0.0.0-stage → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +88 -0
- package/DEVELOPMENT.md +110 -0
- package/LICENSE +21 -0
- package/MIGRATION_1_TO_2.md +24 -0
- package/README.md +1196 -2
- package/dist/accessControl.d.ts +71 -0
- package/dist/accessControl.d.ts.map +1 -0
- package/dist/accessControl.js +108 -0
- package/dist/accessControl.js.map +1 -0
- package/dist/adapters/adapterEventRouting.d.ts +51 -0
- package/dist/adapters/adapterEventRouting.d.ts.map +1 -0
- package/dist/adapters/adapterEventRouting.js +74 -0
- package/dist/adapters/adapterEventRouting.js.map +1 -0
- package/dist/adapters/adapterNames.d.ts +19 -0
- package/dist/adapters/adapterNames.d.ts.map +1 -0
- package/dist/adapters/adapterNames.js +25 -0
- package/dist/adapters/adapterNames.js.map +1 -0
- package/dist/adapters/claudeCliAdapter.d.ts +1351 -0
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeCliAdapter.js +4239 -0
- package/dist/adapters/claudeCliAdapter.js.map +1 -0
- package/dist/adapters/claudeConfigDir.d.ts +40 -0
- package/dist/adapters/claudeConfigDir.d.ts.map +1 -0
- package/dist/adapters/claudeConfigDir.js +3 -0
- package/dist/adapters/claudeConfigDir.js.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +580 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.js +1891 -0
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -0
- package/dist/adapters/claudePlatformFlags.d.ts +35 -0
- package/dist/adapters/claudePlatformFlags.d.ts.map +1 -0
- package/dist/adapters/claudePlatformFlags.js +46 -0
- package/dist/adapters/claudePlatformFlags.js.map +1 -0
- package/dist/adapters/createAdapter.d.ts +260 -0
- package/dist/adapters/createAdapter.d.ts.map +1 -0
- package/dist/adapters/createAdapter.js +512 -0
- package/dist/adapters/createAdapter.js.map +1 -0
- package/dist/adapters/openCodeAdapter.d.ts +1469 -0
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
- package/dist/adapters/openCodeAdapter.js +4623 -0
- package/dist/adapters/openCodeAdapter.js.map +1 -0
- package/dist/adapters/sessionLaunchDefaults.d.ts +28 -0
- package/dist/adapters/sessionLaunchDefaults.d.ts.map +1 -0
- package/dist/adapters/sessionLaunchDefaults.js +15 -0
- package/dist/adapters/sessionLaunchDefaults.js.map +1 -0
- package/dist/adapters/terminalAdapter.d.ts +68 -0
- package/dist/adapters/terminalAdapter.d.ts.map +1 -0
- package/dist/adapters/terminalAdapter.js +371 -0
- package/dist/adapters/terminalAdapter.js.map +1 -0
- package/dist/agentLogin/agentLogin.d.ts +44 -0
- package/dist/agentLogin/agentLogin.d.ts.map +1 -0
- package/dist/agentLogin/agentLogin.js +530 -0
- package/dist/agentLogin/agentLogin.js.map +1 -0
- package/dist/agentTrigger.d.ts +28 -0
- package/dist/agentTrigger.d.ts.map +1 -0
- package/dist/agentTrigger.js +53 -0
- package/dist/agentTrigger.js.map +1 -0
- package/dist/apiErrorRetry.d.ts +214 -0
- package/dist/apiErrorRetry.d.ts.map +1 -0
- package/dist/apiErrorRetry.js +382 -0
- package/dist/apiErrorRetry.js.map +1 -0
- package/dist/apiRetryKick.d.ts +157 -0
- package/dist/apiRetryKick.d.ts.map +1 -0
- package/dist/apiRetryKick.js +174 -0
- package/dist/apiRetryKick.js.map +1 -0
- package/dist/bootClassifier.d.ts +46 -0
- package/dist/bootClassifier.d.ts.map +1 -0
- package/dist/bootClassifier.js +43 -0
- package/dist/bootClassifier.js.map +1 -0
- package/dist/bot.d.ts +207 -0
- package/dist/bot.d.ts.map +1 -0
- package/dist/bot.js +11226 -0
- package/dist/bot.js.map +1 -0
- package/dist/botFileStorage.d.ts +60 -0
- package/dist/botFileStorage.d.ts.map +1 -0
- package/dist/botFileStorage.js +205 -0
- package/dist/botFileStorage.js.map +1 -0
- package/dist/cli/applyDnsFix.d.ts +7 -0
- package/dist/cli/applyDnsFix.d.ts.map +1 -0
- package/dist/cli/applyDnsFix.js +46 -0
- package/dist/cli/applyDnsFix.js.map +1 -0
- package/dist/cli/bot.d.ts +27 -0
- package/dist/cli/bot.d.ts.map +1 -0
- package/dist/cli/bot.js +98 -0
- package/dist/cli/bot.js.map +1 -0
- package/dist/cli/botEntry.d.ts +3 -0
- package/dist/cli/botEntry.d.ts.map +1 -0
- package/dist/cli/botEntry.js +11 -0
- package/dist/cli/botEntry.js.map +1 -0
- package/dist/cli/claudeProfiles.d.ts +42 -0
- package/dist/cli/claudeProfiles.d.ts.map +1 -0
- package/dist/cli/claudeProfiles.js +106 -0
- package/dist/cli/claudeProfiles.js.map +1 -0
- package/dist/cli/connectorGuards.d.ts +31 -0
- package/dist/cli/connectorGuards.d.ts.map +1 -0
- package/dist/cli/connectorGuards.js +159 -0
- package/dist/cli/connectorGuards.js.map +1 -0
- package/dist/cli/envLoader.d.ts +34 -0
- package/dist/cli/envLoader.d.ts.map +1 -0
- package/dist/cli/envLoader.js +132 -0
- package/dist/cli/envLoader.js.map +1 -0
- package/dist/cli/hot.d.ts +82 -0
- package/dist/cli/hot.d.ts.map +1 -0
- package/dist/cli/hot.js +323 -0
- package/dist/cli/hot.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +140 -0
- package/dist/cli.js.map +1 -0
- package/dist/connectors/jira/adf.d.ts +74 -0
- package/dist/connectors/jira/adf.d.ts.map +1 -0
- package/dist/connectors/jira/adf.js +412 -0
- package/dist/connectors/jira/adf.js.map +1 -0
- package/dist/connectors/jira/agentBinaries.d.ts +14 -0
- package/dist/connectors/jira/agentBinaries.d.ts.map +1 -0
- package/dist/connectors/jira/agentBinaries.js +75 -0
- package/dist/connectors/jira/agentBinaries.js.map +1 -0
- package/dist/connectors/jira/answerSink.d.ts +59 -0
- package/dist/connectors/jira/answerSink.d.ts.map +1 -0
- package/dist/connectors/jira/answerSink.js +234 -0
- package/dist/connectors/jira/answerSink.js.map +1 -0
- package/dist/connectors/jira/attachmentDownload.d.ts +41 -0
- package/dist/connectors/jira/attachmentDownload.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentDownload.js +92 -0
- package/dist/connectors/jira/attachmentDownload.js.map +1 -0
- package/dist/connectors/jira/attachmentTool.d.ts +50 -0
- package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentTool.js +166 -0
- package/dist/connectors/jira/attachmentTool.js.map +1 -0
- package/dist/connectors/jira/client.d.ts +522 -0
- package/dist/connectors/jira/client.d.ts.map +1 -0
- package/dist/connectors/jira/client.js +491 -0
- package/dist/connectors/jira/client.js.map +1 -0
- package/dist/connectors/jira/config.d.ts +104 -0
- package/dist/connectors/jira/config.d.ts.map +1 -0
- package/dist/connectors/jira/config.js +323 -0
- package/dist/connectors/jira/config.js.map +1 -0
- package/dist/connectors/jira/configFile.d.ts +10 -0
- package/dist/connectors/jira/configFile.d.ts.map +1 -0
- package/dist/connectors/jira/configFile.js +50 -0
- package/dist/connectors/jira/configFile.js.map +1 -0
- package/dist/connectors/jira/connector.d.ts +71 -0
- package/dist/connectors/jira/connector.d.ts.map +1 -0
- package/dist/connectors/jira/connector.js +312 -0
- package/dist/connectors/jira/connector.js.map +1 -0
- package/dist/connectors/jira/contextLedger.d.ts +60 -0
- package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
- package/dist/connectors/jira/contextLedger.js +196 -0
- package/dist/connectors/jira/contextLedger.js.map +1 -0
- package/dist/connectors/jira/contextPreamble.d.ts +18 -0
- package/dist/connectors/jira/contextPreamble.d.ts.map +1 -0
- package/dist/connectors/jira/contextPreamble.js +31 -0
- package/dist/connectors/jira/contextPreamble.js.map +1 -0
- package/dist/connectors/jira/inbound.d.ts +141 -0
- package/dist/connectors/jira/inbound.d.ts.map +1 -0
- package/dist/connectors/jira/inbound.js +331 -0
- package/dist/connectors/jira/inbound.js.map +1 -0
- package/dist/connectors/jira/issueBlocks.d.ts +74 -0
- package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
- package/dist/connectors/jira/issueBlocks.js +257 -0
- package/dist/connectors/jira/issueBlocks.js.map +1 -0
- package/dist/connectors/jira/issueContext.d.ts +31 -0
- package/dist/connectors/jira/issueContext.d.ts.map +1 -0
- package/dist/connectors/jira/issueContext.js +70 -0
- package/dist/connectors/jira/issueContext.js.map +1 -0
- package/dist/connectors/jira/issueDelta.d.ts +38 -0
- package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
- package/dist/connectors/jira/issueDelta.js +59 -0
- package/dist/connectors/jira/issueDelta.js.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts +22 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.js +105 -0
- package/dist/connectors/jira/mediaPlaceholders.js.map +1 -0
- package/dist/connectors/jira/outbound.d.ts +6 -0
- package/dist/connectors/jira/outbound.d.ts.map +1 -0
- package/dist/connectors/jira/outbound.js +38 -0
- package/dist/connectors/jira/outbound.js.map +1 -0
- package/dist/connectors/jira/prompt.d.ts +39 -0
- package/dist/connectors/jira/prompt.d.ts.map +1 -0
- package/dist/connectors/jira/prompt.js +102 -0
- package/dist/connectors/jira/prompt.js.map +1 -0
- package/dist/connectors/jira/promptSpill.d.ts +50 -0
- package/dist/connectors/jira/promptSpill.d.ts.map +1 -0
- package/dist/connectors/jira/promptSpill.js +157 -0
- package/dist/connectors/jira/promptSpill.js.map +1 -0
- package/dist/connectors/jira/promptText.d.ts +7 -0
- package/dist/connectors/jira/promptText.d.ts.map +1 -0
- package/dist/connectors/jira/promptText.js +26 -0
- package/dist/connectors/jira/promptText.js.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts +18 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.js +106 -0
- package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/jira/trigger.d.ts +54 -0
- package/dist/connectors/jira/trigger.d.ts.map +1 -0
- package/dist/connectors/jira/trigger.js +101 -0
- package/dist/connectors/jira/trigger.js.map +1 -0
- package/dist/connectors/jira/triggerLog.d.ts +53 -0
- package/dist/connectors/jira/triggerLog.d.ts.map +1 -0
- package/dist/connectors/jira/triggerLog.js +78 -0
- package/dist/connectors/jira/triggerLog.js.map +1 -0
- package/dist/connectors/jira/trustedGroup.d.ts +54 -0
- package/dist/connectors/jira/trustedGroup.d.ts.map +1 -0
- package/dist/connectors/jira/trustedGroup.js +98 -0
- package/dist/connectors/jira/trustedGroup.js.map +1 -0
- package/dist/connectors/jira/unconfirmedPosts.d.ts +58 -0
- package/dist/connectors/jira/unconfirmedPosts.d.ts.map +1 -0
- package/dist/connectors/jira/unconfirmedPosts.js +105 -0
- package/dist/connectors/jira/unconfirmedPosts.js.map +1 -0
- package/dist/connectors/telegram/answerSink.d.ts +46 -0
- package/dist/connectors/telegram/answerSink.d.ts.map +1 -0
- package/dist/connectors/telegram/answerSink.js +71 -0
- package/dist/connectors/telegram/answerSink.js.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +34 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js +112 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -0
- package/dist/connectors/telegram/commands/botCore.d.ts +46 -0
- package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/botCore.js +3 -0
- package/dist/connectors/telegram/commands/botCore.js.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.js +13 -0
- package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -0
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts +58 -0
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/claudeAccounts.js +591 -0
- package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -0
- package/dist/connectors/telegram/commands/compaction.d.ts +47 -0
- package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/compaction.js +868 -0
- package/dist/connectors/telegram/commands/compaction.js.map +1 -0
- package/dist/connectors/telegram/commands/displayModes.d.ts +13 -0
- package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/displayModes.js +335 -0
- package/dist/connectors/telegram/commands/displayModes.js.map +1 -0
- package/dist/connectors/telegram/commands/fallbackChain.d.ts +49 -0
- package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/fallbackChain.js +624 -0
- package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts +117 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.js +966 -0
- package/dist/connectors/telegram/commands/modelProviders.js.map +1 -0
- package/dist/connectors/telegram/commands/reminders.d.ts +54 -0
- package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/reminders.js +624 -0
- package/dist/connectors/telegram/commands/reminders.js.map +1 -0
- package/dist/connectors/telegram/fileIntake.d.ts +166 -0
- package/dist/connectors/telegram/fileIntake.d.ts.map +1 -0
- package/dist/connectors/telegram/fileIntake.js +304 -0
- package/dist/connectors/telegram/fileIntake.js.map +1 -0
- package/dist/connectors/telegram/fileSendGateway.d.ts +57 -0
- package/dist/connectors/telegram/fileSendGateway.d.ts.map +1 -0
- package/dist/connectors/telegram/fileSendGateway.js +221 -0
- package/dist/connectors/telegram/fileSendGateway.js.map +1 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.d.ts +52 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.d.ts.map +1 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.js +71 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.js.map +1 -0
- package/dist/connectors/telegram/inbound.d.ts +131 -0
- package/dist/connectors/telegram/inbound.d.ts.map +1 -0
- package/dist/connectors/telegram/inbound.js +278 -0
- package/dist/connectors/telegram/inbound.js.map +1 -0
- package/dist/connectors/telegram/languagePicker.d.ts +32 -0
- package/dist/connectors/telegram/languagePicker.d.ts.map +1 -0
- package/dist/connectors/telegram/languagePicker.js +55 -0
- package/dist/connectors/telegram/languagePicker.js.map +1 -0
- package/dist/connectors/telegram/messageSplit.d.ts +62 -0
- package/dist/connectors/telegram/messageSplit.d.ts.map +1 -0
- package/dist/connectors/telegram/messageSplit.js +119 -0
- package/dist/connectors/telegram/messageSplit.js.map +1 -0
- package/dist/connectors/telegram/outbound.d.ts +62 -0
- package/dist/connectors/telegram/outbound.d.ts.map +1 -0
- package/dist/connectors/telegram/outbound.js +116 -0
- package/dist/connectors/telegram/outbound.js.map +1 -0
- package/dist/connectors/telegram/output/createOutputTransport.d.ts +34 -0
- package/dist/connectors/telegram/output/createOutputTransport.d.ts.map +1 -0
- package/dist/connectors/telegram/output/createOutputTransport.js +77 -0
- package/dist/connectors/telegram/output/createOutputTransport.js.map +1 -0
- package/dist/connectors/telegram/output/dmOutputTransport.d.ts +47 -0
- package/dist/connectors/telegram/output/dmOutputTransport.d.ts.map +1 -0
- package/dist/connectors/telegram/output/dmOutputTransport.js +412 -0
- package/dist/connectors/telegram/output/dmOutputTransport.js.map +1 -0
- package/dist/connectors/telegram/outputBacklogGlue.d.ts +38 -0
- package/dist/connectors/telegram/outputBacklogGlue.d.ts.map +1 -0
- package/dist/connectors/telegram/outputBacklogGlue.js +49 -0
- package/dist/connectors/telegram/outputBacklogGlue.js.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts +93 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.js +120 -0
- package/dist/connectors/telegram/outputFlushPlan.js.map +1 -0
- package/dist/connectors/telegram/questionKeyboards.d.ts +30 -0
- package/dist/connectors/telegram/questionKeyboards.d.ts.map +1 -0
- package/dist/connectors/telegram/questionKeyboards.js +37 -0
- package/dist/connectors/telegram/questionKeyboards.js.map +1 -0
- package/dist/connectors/telegram/renderAgentHtml.d.ts +27 -0
- package/dist/connectors/telegram/renderAgentHtml.d.ts.map +1 -0
- package/dist/connectors/telegram/renderAgentHtml.js +97 -0
- package/dist/connectors/telegram/renderAgentHtml.js.map +1 -0
- package/dist/connectors/telegram/sessionKeyCodec.d.ts +28 -0
- package/dist/connectors/telegram/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/telegram/sessionKeyCodec.js +107 -0
- package/dist/connectors/telegram/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/telegram/telegramCallGuard.d.ts +19 -0
- package/dist/connectors/telegram/telegramCallGuard.d.ts.map +1 -0
- package/dist/connectors/telegram/telegramCallGuard.js +35 -0
- package/dist/connectors/telegram/telegramCallGuard.js.map +1 -0
- package/dist/connectors/telegram/timezonePicker.d.ts +85 -0
- package/dist/connectors/telegram/timezonePicker.d.ts.map +1 -0
- package/dist/connectors/telegram/timezonePicker.js +142 -0
- package/dist/connectors/telegram/timezonePicker.js.map +1 -0
- package/dist/connectors/telegram/updateDispatcher.d.ts +85 -0
- package/dist/connectors/telegram/updateDispatcher.d.ts.map +1 -0
- package/dist/connectors/telegram/updateDispatcher.js +159 -0
- package/dist/connectors/telegram/updateDispatcher.js.map +1 -0
- package/dist/connectors/test/connector.d.ts +52 -0
- package/dist/connectors/test/connector.d.ts.map +1 -0
- package/dist/connectors/test/connector.js +143 -0
- package/dist/connectors/test/connector.js.map +1 -0
- package/dist/connectors/test/sessionKeyCodec.d.ts +25 -0
- package/dist/connectors/test/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/test/sessionKeyCodec.js +50 -0
- package/dist/connectors/test/sessionKeyCodec.js.map +1 -0
- package/dist/diagLog.d.ts +6 -0
- package/dist/diagLog.d.ts.map +1 -0
- package/dist/diagLog.js +58 -0
- package/dist/diagLog.js.map +1 -0
- package/dist/effortLevels.d.ts +68 -0
- package/dist/effortLevels.d.ts.map +1 -0
- package/dist/effortLevels.js +114 -0
- package/dist/effortLevels.js.map +1 -0
- package/dist/folderName.d.ts +42 -0
- package/dist/folderName.d.ts.map +1 -0
- package/dist/folderName.js +51 -0
- package/dist/folderName.js.map +1 -0
- package/dist/i18n/de.d.ts +2 -0
- package/dist/i18n/de.d.ts.map +1 -0
- package/dist/i18n/de.js +665 -0
- package/dist/i18n/de.js.map +1 -0
- package/dist/i18n/en.d.ts +7 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +694 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/es.d.ts +2 -0
- package/dist/i18n/es.d.ts.map +1 -0
- package/dist/i18n/es.js +665 -0
- package/dist/i18n/es.js.map +1 -0
- package/dist/i18n/fr.d.ts +2 -0
- package/dist/i18n/fr.d.ts.map +1 -0
- package/dist/i18n/fr.js +665 -0
- package/dist/i18n/fr.js.map +1 -0
- package/dist/i18n/hi.d.ts +2 -0
- package/dist/i18n/hi.d.ts.map +1 -0
- package/dist/i18n/hi.js +665 -0
- package/dist/i18n/hi.js.map +1 -0
- package/dist/i18n/ja.d.ts +2 -0
- package/dist/i18n/ja.d.ts.map +1 -0
- package/dist/i18n/ja.js +665 -0
- package/dist/i18n/ja.js.map +1 -0
- package/dist/i18n/ka.d.ts +2 -0
- package/dist/i18n/ka.d.ts.map +1 -0
- package/dist/i18n/ka.js +665 -0
- package/dist/i18n/ka.js.map +1 -0
- package/dist/i18n/pt.d.ts +2 -0
- package/dist/i18n/pt.d.ts.map +1 -0
- package/dist/i18n/pt.js +665 -0
- package/dist/i18n/pt.js.map +1 -0
- package/dist/i18n/ru.d.ts +6 -0
- package/dist/i18n/ru.d.ts.map +1 -0
- package/dist/i18n/ru.js +668 -0
- package/dist/i18n/ru.js.map +1 -0
- package/dist/i18n/uk.d.ts +8 -0
- package/dist/i18n/uk.d.ts.map +1 -0
- package/dist/i18n/uk.js +670 -0
- package/dist/i18n/uk.js.map +1 -0
- package/dist/i18n/uz.d.ts +2 -0
- package/dist/i18n/uz.d.ts.map +1 -0
- package/dist/i18n/uz.js +665 -0
- package/dist/i18n/uz.js.map +1 -0
- package/dist/i18n/zh.d.ts +2 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/i18n/zh.js +665 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/i18n.d.ts +115 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +233 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/installManager.d.ts +99 -0
- package/dist/installManager.d.ts.map +1 -0
- package/dist/installManager.js +943 -0
- package/dist/installManager.js.map +1 -0
- package/dist/instanceLock.d.ts +161 -0
- package/dist/instanceLock.d.ts.map +1 -0
- package/dist/instanceLock.js +388 -0
- package/dist/instanceLock.js.map +1 -0
- package/dist/mcpConfig.d.ts +76 -0
- package/dist/mcpConfig.d.ts.map +1 -0
- package/dist/mcpConfig.js +270 -0
- package/dist/mcpConfig.js.map +1 -0
- package/dist/openCodeOpenQuestion.d.ts +44 -0
- package/dist/openCodeOpenQuestion.d.ts.map +1 -0
- package/dist/openCodeOpenQuestion.js +64 -0
- package/dist/openCodeOpenQuestion.js.map +1 -0
- package/dist/openCodeQuestionFlow.d.ts +105 -0
- package/dist/openCodeQuestionFlow.d.ts.map +1 -0
- package/dist/openCodeQuestionFlow.js +143 -0
- package/dist/openCodeQuestionFlow.js.map +1 -0
- package/dist/openCodeSessionRouting.d.ts +133 -0
- package/dist/openCodeSessionRouting.d.ts.map +1 -0
- package/dist/openCodeSessionRouting.js +253 -0
- package/dist/openCodeSessionRouting.js.map +1 -0
- package/dist/openCodeSessionTitle.d.ts +50 -0
- package/dist/openCodeSessionTitle.d.ts.map +1 -0
- package/dist/openCodeSessionTitle.js +84 -0
- package/dist/openCodeSessionTitle.js.map +1 -0
- package/dist/outputTrace.d.ts +108 -0
- package/dist/outputTrace.d.ts.map +1 -0
- package/dist/outputTrace.js +430 -0
- package/dist/outputTrace.js.map +1 -0
- package/dist/pendingQuestionRepost.d.ts +47 -0
- package/dist/pendingQuestionRepost.d.ts.map +1 -0
- package/dist/pendingQuestionRepost.js +29 -0
- package/dist/pendingQuestionRepost.js.map +1 -0
- package/dist/pinnedStatus.d.ts +52 -0
- package/dist/pinnedStatus.d.ts.map +1 -0
- package/dist/pinnedStatus.js +36 -0
- package/dist/pinnedStatus.js.map +1 -0
- package/dist/platform/answerSink.d.ts +93 -0
- package/dist/platform/answerSink.d.ts.map +1 -0
- package/dist/platform/answerSink.js +31 -0
- package/dist/platform/answerSink.js.map +1 -0
- package/dist/platform/capabilityFallback.d.ts +39 -0
- package/dist/platform/capabilityFallback.d.ts.map +1 -0
- package/dist/platform/capabilityFallback.js +55 -0
- package/dist/platform/capabilityFallback.js.map +1 -0
- package/dist/platform/commandRouter.d.ts +51 -0
- package/dist/platform/commandRouter.d.ts.map +1 -0
- package/dist/platform/commandRouter.js +53 -0
- package/dist/platform/commandRouter.js.map +1 -0
- package/dist/platform/connectorSet.d.ts +39 -0
- package/dist/platform/connectorSet.d.ts.map +1 -0
- package/dist/platform/connectorSet.js +55 -0
- package/dist/platform/connectorSet.js.map +1 -0
- package/dist/platform/inbound.d.ts +147 -0
- package/dist/platform/inbound.d.ts.map +1 -0
- package/dist/platform/inbound.js +18 -0
- package/dist/platform/inbound.js.map +1 -0
- package/dist/platform/outbound.d.ts +225 -0
- package/dist/platform/outbound.d.ts.map +1 -0
- package/dist/platform/outbound.js +30 -0
- package/dist/platform/outbound.js.map +1 -0
- package/dist/platform/unservedStateGuard.d.ts +27 -0
- package/dist/platform/unservedStateGuard.d.ts.map +1 -0
- package/dist/platform/unservedStateGuard.js +42 -0
- package/dist/platform/unservedStateGuard.js.map +1 -0
- package/dist/postToSession.d.ts +94 -0
- package/dist/postToSession.d.ts.map +1 -0
- package/dist/postToSession.js +56 -0
- package/dist/postToSession.js.map +1 -0
- package/dist/progressLine.d.ts +180 -0
- package/dist/progressLine.d.ts.map +1 -0
- package/dist/progressLine.js +293 -0
- package/dist/progressLine.js.map +1 -0
- package/dist/rateLimiter.d.ts +246 -0
- package/dist/rateLimiter.d.ts.map +1 -0
- package/dist/rateLimiter.js +555 -0
- package/dist/rateLimiter.js.map +1 -0
- package/dist/requests/answerRequest.d.ts +57 -0
- package/dist/requests/answerRequest.d.ts.map +1 -0
- package/dist/requests/answerRequest.js +96 -0
- package/dist/requests/answerRequest.js.map +1 -0
- package/dist/requests/answerTail.d.ts +83 -0
- package/dist/requests/answerTail.d.ts.map +1 -0
- package/dist/requests/answerTail.js +102 -0
- package/dist/requests/answerTail.js.map +1 -0
- package/dist/requests/limitWaitAnswer.d.ts +87 -0
- package/dist/requests/limitWaitAnswer.d.ts.map +1 -0
- package/dist/requests/limitWaitAnswer.js +83 -0
- package/dist/requests/limitWaitAnswer.js.map +1 -0
- package/dist/requests/requestGroup.d.ts +44 -0
- package/dist/requests/requestGroup.d.ts.map +1 -0
- package/dist/requests/requestGroup.js +63 -0
- package/dist/requests/requestGroup.js.map +1 -0
- package/dist/requests/requestHeader.d.ts +70 -0
- package/dist/requests/requestHeader.d.ts.map +1 -0
- package/dist/requests/requestHeader.js +83 -0
- package/dist/requests/requestHeader.js.map +1 -0
- package/dist/requests/requestLedger.d.ts +217 -0
- package/dist/requests/requestLedger.d.ts.map +1 -0
- package/dist/requests/requestLedger.js +468 -0
- package/dist/requests/requestLedger.js.map +1 -0
- package/dist/requests/sessionTurnProbe.d.ts +52 -0
- package/dist/requests/sessionTurnProbe.d.ts.map +1 -0
- package/dist/requests/sessionTurnProbe.js +29 -0
- package/dist/requests/sessionTurnProbe.js.map +1 -0
- package/dist/requests/types.d.ts +181 -0
- package/dist/requests/types.d.ts.map +1 -0
- package/dist/requests/types.js +9 -0
- package/dist/requests/types.js.map +1 -0
- package/dist/requests/wakeUpEngine.d.ts +160 -0
- package/dist/requests/wakeUpEngine.d.ts.map +1 -0
- package/dist/requests/wakeUpEngine.js +399 -0
- package/dist/requests/wakeUpEngine.js.map +1 -0
- package/dist/requests/wakeUpRules.d.ts +151 -0
- package/dist/requests/wakeUpRules.d.ts.map +1 -0
- package/dist/requests/wakeUpRules.js +167 -0
- package/dist/requests/wakeUpRules.js.map +1 -0
- package/dist/resumeContext.d.ts +87 -0
- package/dist/resumeContext.d.ts.map +1 -0
- package/dist/resumeContext.js +114 -0
- package/dist/resumeContext.js.map +1 -0
- package/dist/scheduler/checkRun.d.ts +95 -0
- package/dist/scheduler/checkRun.d.ts.map +1 -0
- package/dist/scheduler/checkRun.js +172 -0
- package/dist/scheduler/checkRun.js.map +1 -0
- package/dist/scheduler/delivery.d.ts +99 -0
- package/dist/scheduler/delivery.d.ts.map +1 -0
- package/dist/scheduler/delivery.js +212 -0
- package/dist/scheduler/delivery.js.map +1 -0
- package/dist/scheduler/deliveryKind.d.ts +29 -0
- package/dist/scheduler/deliveryKind.d.ts.map +1 -0
- package/dist/scheduler/deliveryKind.js +39 -0
- package/dist/scheduler/deliveryKind.js.map +1 -0
- package/dist/scheduler/directoryThreads.d.ts +19 -0
- package/dist/scheduler/directoryThreads.d.ts.map +1 -0
- package/dist/scheduler/directoryThreads.js +28 -0
- package/dist/scheduler/directoryThreads.js.map +1 -0
- package/dist/scheduler/engine.d.ts +77 -0
- package/dist/scheduler/engine.d.ts.map +1 -0
- package/dist/scheduler/engine.js +337 -0
- package/dist/scheduler/engine.js.map +1 -0
- package/dist/scheduler/injection.d.ts +102 -0
- package/dist/scheduler/injection.d.ts.map +1 -0
- package/dist/scheduler/injection.js +122 -0
- package/dist/scheduler/injection.js.map +1 -0
- package/dist/scheduler/mcpBoot.d.ts +65 -0
- package/dist/scheduler/mcpBoot.d.ts.map +1 -0
- package/dist/scheduler/mcpBoot.js +60 -0
- package/dist/scheduler/mcpBoot.js.map +1 -0
- package/dist/scheduler/mcpSurface.d.ts +363 -0
- package/dist/scheduler/mcpSurface.d.ts.map +1 -0
- package/dist/scheduler/mcpSurface.js +1297 -0
- package/dist/scheduler/mcpSurface.js.map +1 -0
- package/dist/scheduler/rebindResume.d.ts +27 -0
- package/dist/scheduler/rebindResume.d.ts.map +1 -0
- package/dist/scheduler/rebindResume.js +17 -0
- package/dist/scheduler/rebindResume.js.map +1 -0
- package/dist/scheduler/recurrence.d.ts +58 -0
- package/dist/scheduler/recurrence.d.ts.map +1 -0
- package/dist/scheduler/recurrence.js +210 -0
- package/dist/scheduler/recurrence.js.map +1 -0
- package/dist/scheduler/runLedger.d.ts +59 -0
- package/dist/scheduler/runLedger.d.ts.map +1 -0
- package/dist/scheduler/runLedger.js +54 -0
- package/dist/scheduler/runLedger.js.map +1 -0
- package/dist/scheduler/store.d.ts +97 -0
- package/dist/scheduler/store.d.ts.map +1 -0
- package/dist/scheduler/store.js +124 -0
- package/dist/scheduler/store.js.map +1 -0
- package/dist/scheduler/timezoneRecompute.d.ts +61 -0
- package/dist/scheduler/timezoneRecompute.d.ts.map +1 -0
- package/dist/scheduler/timezoneRecompute.js +46 -0
- package/dist/scheduler/timezoneRecompute.js.map +1 -0
- package/dist/scheduler/types.d.ts +139 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/scheduler/types.js +8 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/sendErrorClassifier.d.ts +45 -0
- package/dist/sendErrorClassifier.d.ts.map +1 -0
- package/dist/sendErrorClassifier.js +65 -0
- package/dist/sendErrorClassifier.js.map +1 -0
- package/dist/sessionKey.d.ts +136 -0
- package/dist/sessionKey.d.ts.map +1 -0
- package/dist/sessionKey.js +153 -0
- package/dist/sessionKey.js.map +1 -0
- package/dist/sessionPick.d.ts +42 -0
- package/dist/sessionPick.d.ts.map +1 -0
- package/dist/sessionPick.js +39 -0
- package/dist/sessionPick.js.map +1 -0
- package/dist/shutdown.d.ts +126 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +164 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/startupPromptBuffer.d.ts +85 -0
- package/dist/startupPromptBuffer.d.ts.map +1 -0
- package/dist/startupPromptBuffer.js +123 -0
- package/dist/startupPromptBuffer.js.map +1 -0
- package/dist/state.d.ts +1416 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +2128 -0
- package/dist/state.js.map +1 -0
- package/dist/threadContextPreamble.d.ts +89 -0
- package/dist/threadContextPreamble.d.ts.map +1 -0
- package/dist/threadContextPreamble.js +102 -0
- package/dist/threadContextPreamble.js.map +1 -0
- package/dist/threadRouting.d.ts +164 -0
- package/dist/threadRouting.d.ts.map +1 -0
- package/dist/threadRouting.js +182 -0
- package/dist/threadRouting.js.map +1 -0
- package/dist/types.d.ts +1022 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/abortableFifo.d.ts +10 -0
- package/dist/utils/abortableFifo.d.ts.map +1 -0
- package/dist/utils/abortableFifo.js +55 -0
- package/dist/utils/abortableFifo.js.map +1 -0
- package/dist/utils/adoptedToolList.d.ts +27 -0
- package/dist/utils/adoptedToolList.d.ts.map +1 -0
- package/dist/utils/adoptedToolList.js +22 -0
- package/dist/utils/adoptedToolList.js.map +1 -0
- package/dist/utils/agentEnvironment.d.ts +42 -0
- package/dist/utils/agentEnvironment.d.ts.map +1 -0
- package/dist/utils/agentEnvironment.js +122 -0
- package/dist/utils/agentEnvironment.js.map +1 -0
- package/dist/utils/ansiClean.d.ts +11 -0
- package/dist/utils/ansiClean.d.ts.map +1 -0
- package/dist/utils/ansiClean.js +139 -0
- package/dist/utils/ansiClean.js.map +1 -0
- package/dist/utils/autoContinueOnLimit.d.ts +56 -0
- package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
- package/dist/utils/autoContinueOnLimit.js +79 -0
- package/dist/utils/autoContinueOnLimit.js.map +1 -0
- package/dist/utils/canonicalPathContainment.d.ts +7 -0
- package/dist/utils/canonicalPathContainment.d.ts.map +1 -0
- package/dist/utils/canonicalPathContainment.js +48 -0
- package/dist/utils/canonicalPathContainment.js.map +1 -0
- package/dist/utils/claudeAccountPickerPlan.d.ts +85 -0
- package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -0
- package/dist/utils/claudeAccountPickerPlan.js +123 -0
- package/dist/utils/claudeAccountPickerPlan.js.map +1 -0
- package/dist/utils/claudeAuthLogin.d.ts +71 -0
- package/dist/utils/claudeAuthLogin.d.ts.map +1 -0
- package/dist/utils/claudeAuthLogin.js +93 -0
- package/dist/utils/claudeAuthLogin.js.map +1 -0
- package/dist/utils/claudeChunkClassifier.d.ts +97 -0
- package/dist/utils/claudeChunkClassifier.d.ts.map +1 -0
- package/dist/utils/claudeChunkClassifier.js +254 -0
- package/dist/utils/claudeChunkClassifier.js.map +1 -0
- package/dist/utils/claudeCodeVersion.d.ts +31 -0
- package/dist/utils/claudeCodeVersion.d.ts.map +1 -0
- package/dist/utils/claudeCodeVersion.js +62 -0
- package/dist/utils/claudeCodeVersion.js.map +1 -0
- package/dist/utils/claudeCompactHook.d.ts +64 -0
- package/dist/utils/claudeCompactHook.d.ts.map +1 -0
- package/dist/utils/claudeCompactHook.js +98 -0
- package/dist/utils/claudeCompactHook.js.map +1 -0
- package/dist/utils/claudeLimitSwitch.d.ts +40 -0
- package/dist/utils/claudeLimitSwitch.d.ts.map +1 -0
- package/dist/utils/claudeLimitSwitch.js +54 -0
- package/dist/utils/claudeLimitSwitch.js.map +1 -0
- package/dist/utils/claudeLivenessAction.d.ts +208 -0
- package/dist/utils/claudeLivenessAction.d.ts.map +1 -0
- package/dist/utils/claudeLivenessAction.js +135 -0
- package/dist/utils/claudeLivenessAction.js.map +1 -0
- package/dist/utils/claudeMcpHeal.d.ts +92 -0
- package/dist/utils/claudeMcpHeal.d.ts.map +1 -0
- package/dist/utils/claudeMcpHeal.js +91 -0
- package/dist/utils/claudeMcpHeal.js.map +1 -0
- package/dist/utils/claudeProfileUsageLines.d.ts +15 -0
- package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -0
- package/dist/utils/claudeProfileUsageLines.js +42 -0
- package/dist/utils/claudeProfileUsageLines.js.map +1 -0
- package/dist/utils/claudeProfiles.d.ts +117 -0
- package/dist/utils/claudeProfiles.d.ts.map +1 -0
- package/dist/utils/claudeProfiles.js +285 -0
- package/dist/utils/claudeProfiles.js.map +1 -0
- package/dist/utils/claudeRelayRouting.d.ts +86 -0
- package/dist/utils/claudeRelayRouting.d.ts.map +1 -0
- package/dist/utils/claudeRelayRouting.js +159 -0
- package/dist/utils/claudeRelayRouting.js.map +1 -0
- package/dist/utils/claudeRuntimeInfo.d.ts +26 -0
- package/dist/utils/claudeRuntimeInfo.d.ts.map +1 -0
- package/dist/utils/claudeRuntimeInfo.js +151 -0
- package/dist/utils/claudeRuntimeInfo.js.map +1 -0
- package/dist/utils/claudeScrapeShapes.d.ts +256 -0
- package/dist/utils/claudeScrapeShapes.d.ts.map +1 -0
- package/dist/utils/claudeScrapeShapes.js +290 -0
- package/dist/utils/claudeScrapeShapes.js.map +1 -0
- package/dist/utils/claudeSessionTitle.d.ts +27 -0
- package/dist/utils/claudeSessionTitle.d.ts.map +1 -0
- package/dist/utils/claudeSessionTitle.js +90 -0
- package/dist/utils/claudeSessionTitle.js.map +1 -0
- package/dist/utils/claudeStreamJson.d.ts +214 -0
- package/dist/utils/claudeStreamJson.d.ts.map +1 -0
- package/dist/utils/claudeStreamJson.js +364 -0
- package/dist/utils/claudeStreamJson.js.map +1 -0
- package/dist/utils/claudeSubagentTail.d.ts +93 -0
- package/dist/utils/claudeSubagentTail.d.ts.map +1 -0
- package/dist/utils/claudeSubagentTail.js +136 -0
- package/dist/utils/claudeSubagentTail.js.map +1 -0
- package/dist/utils/claudeUsage.d.ts +209 -0
- package/dist/utils/claudeUsage.d.ts.map +1 -0
- package/dist/utils/claudeUsage.js +413 -0
- package/dist/utils/claudeUsage.js.map +1 -0
- package/dist/utils/claudeUsageRefresher.d.ts +44 -0
- package/dist/utils/claudeUsageRefresher.d.ts.map +1 -0
- package/dist/utils/claudeUsageRefresher.js +95 -0
- package/dist/utils/claudeUsageRefresher.js.map +1 -0
- package/dist/utils/clearThreadOutputQueues.d.ts +43 -0
- package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -0
- package/dist/utils/clearThreadOutputQueues.js +39 -0
- package/dist/utils/clearThreadOutputQueues.js.map +1 -0
- package/dist/utils/compactCommandRoute.d.ts +45 -0
- package/dist/utils/compactCommandRoute.d.ts.map +1 -0
- package/dist/utils/compactCommandRoute.js +36 -0
- package/dist/utils/compactCommandRoute.js.map +1 -0
- package/dist/utils/compactOnIdle.d.ts +329 -0
- package/dist/utils/compactOnIdle.d.ts.map +1 -0
- package/dist/utils/compactOnIdle.js +379 -0
- package/dist/utils/compactOnIdle.js.map +1 -0
- package/dist/utils/consoleFileTap.d.ts +51 -0
- package/dist/utils/consoleFileTap.d.ts.map +1 -0
- package/dist/utils/consoleFileTap.js +86 -0
- package/dist/utils/consoleFileTap.js.map +1 -0
- package/dist/utils/displayVerbosity.d.ts +44 -0
- package/dist/utils/displayVerbosity.d.ts.map +1 -0
- package/dist/utils/displayVerbosity.js +75 -0
- package/dist/utils/displayVerbosity.js.map +1 -0
- package/dist/utils/download.d.ts +72 -0
- package/dist/utils/download.d.ts.map +1 -0
- package/dist/utils/download.js +216 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/draftFinalize.d.ts +110 -0
- package/dist/utils/draftFinalize.d.ts.map +1 -0
- package/dist/utils/draftFinalize.js +100 -0
- package/dist/utils/draftFinalize.js.map +1 -0
- package/dist/utils/draftId.d.ts +36 -0
- package/dist/utils/draftId.d.ts.map +1 -0
- package/dist/utils/draftId.js +46 -0
- package/dist/utils/draftId.js.map +1 -0
- package/dist/utils/draftPacer.d.ts +72 -0
- package/dist/utils/draftPacer.d.ts.map +1 -0
- package/dist/utils/draftPacer.js +53 -0
- package/dist/utils/draftPacer.js.map +1 -0
- package/dist/utils/effortStartupKeystroke.d.ts +20 -0
- package/dist/utils/effortStartupKeystroke.d.ts.map +1 -0
- package/dist/utils/effortStartupKeystroke.js +28 -0
- package/dist/utils/effortStartupKeystroke.js.map +1 -0
- package/dist/utils/ensureSessionPlan.d.ts +70 -0
- package/dist/utils/ensureSessionPlan.d.ts.map +1 -0
- package/dist/utils/ensureSessionPlan.js +54 -0
- package/dist/utils/ensureSessionPlan.js.map +1 -0
- package/dist/utils/fallbackBridge.d.ts +32 -0
- package/dist/utils/fallbackBridge.d.ts.map +1 -0
- package/dist/utils/fallbackBridge.js +62 -0
- package/dist/utils/fallbackBridge.js.map +1 -0
- package/dist/utils/fallbackChain.d.ts +299 -0
- package/dist/utils/fallbackChain.d.ts.map +1 -0
- package/dist/utils/fallbackChain.js +542 -0
- package/dist/utils/fallbackChain.js.map +1 -0
- package/dist/utils/fileSendPlan.d.ts +217 -0
- package/dist/utils/fileSendPlan.d.ts.map +1 -0
- package/dist/utils/fileSendPlan.js +291 -0
- package/dist/utils/fileSendPlan.js.map +1 -0
- package/dist/utils/fileSendService.d.ts +94 -0
- package/dist/utils/fileSendService.d.ts.map +1 -0
- package/dist/utils/fileSendService.js +387 -0
- package/dist/utils/fileSendService.js.map +1 -0
- package/dist/utils/groupFinalizePlan.d.ts +38 -0
- package/dist/utils/groupFinalizePlan.d.ts.map +1 -0
- package/dist/utils/groupFinalizePlan.js +35 -0
- package/dist/utils/groupFinalizePlan.js.map +1 -0
- package/dist/utils/identicalOutputGuard.d.ts +83 -0
- package/dist/utils/identicalOutputGuard.d.ts.map +1 -0
- package/dist/utils/identicalOutputGuard.js +99 -0
- package/dist/utils/identicalOutputGuard.js.map +1 -0
- package/dist/utils/isoTimestamp.d.ts +16 -0
- package/dist/utils/isoTimestamp.d.ts.map +1 -0
- package/dist/utils/isoTimestamp.js +34 -0
- package/dist/utils/isoTimestamp.js.map +1 -0
- package/dist/utils/jsonStreamBusyWatchdog.d.ts +130 -0
- package/dist/utils/jsonStreamBusyWatchdog.d.ts.map +1 -0
- package/dist/utils/jsonStreamBusyWatchdog.js +122 -0
- package/dist/utils/jsonStreamBusyWatchdog.js.map +1 -0
- package/dist/utils/jsonStreamHost.d.ts +238 -0
- package/dist/utils/jsonStreamHost.d.ts.map +1 -0
- package/dist/utils/jsonStreamHost.js +438 -0
- package/dist/utils/jsonStreamHost.js.map +1 -0
- package/dist/utils/keyedTransitionQueue.d.ts +18 -0
- package/dist/utils/keyedTransitionQueue.d.ts.map +1 -0
- package/dist/utils/keyedTransitionQueue.js +34 -0
- package/dist/utils/keyedTransitionQueue.js.map +1 -0
- package/dist/utils/limitEpisodeRecovery.d.ts +92 -0
- package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -0
- package/dist/utils/limitEpisodeRecovery.js +133 -0
- package/dist/utils/limitEpisodeRecovery.js.map +1 -0
- package/dist/utils/limitHeldPromptQueue.d.ts +48 -0
- package/dist/utils/limitHeldPromptQueue.d.ts.map +1 -0
- package/dist/utils/limitHeldPromptQueue.js +59 -0
- package/dist/utils/limitHeldPromptQueue.js.map +1 -0
- package/dist/utils/limitHeldPrompts.d.ts +58 -0
- package/dist/utils/limitHeldPrompts.d.ts.map +1 -0
- package/dist/utils/limitHeldPrompts.js +65 -0
- package/dist/utils/limitHeldPrompts.js.map +1 -0
- package/dist/utils/linkPreviewSuppression.d.ts +18 -0
- package/dist/utils/linkPreviewSuppression.d.ts.map +1 -0
- package/dist/utils/linkPreviewSuppression.js +37 -0
- package/dist/utils/linkPreviewSuppression.js.map +1 -0
- package/dist/utils/localClock.d.ts +15 -0
- package/dist/utils/localClock.d.ts.map +1 -0
- package/dist/utils/localClock.js +29 -0
- package/dist/utils/localClock.js.map +1 -0
- package/dist/utils/markdownTableRender.d.ts +83 -0
- package/dist/utils/markdownTableRender.d.ts.map +1 -0
- package/dist/utils/markdownTableRender.js +298 -0
- package/dist/utils/markdownTableRender.js.map +1 -0
- package/dist/utils/mediaGroupCollector.d.ts +51 -0
- package/dist/utils/mediaGroupCollector.d.ts.map +1 -0
- package/dist/utils/mediaGroupCollector.js +90 -0
- package/dist/utils/mediaGroupCollector.js.map +1 -0
- package/dist/utils/messageSendService.d.ts +136 -0
- package/dist/utils/messageSendService.d.ts.map +1 -0
- package/dist/utils/messageSendService.js +165 -0
- package/dist/utils/messageSendService.js.map +1 -0
- package/dist/utils/minutesOverride.d.ts +7 -0
- package/dist/utils/minutesOverride.d.ts.map +1 -0
- package/dist/utils/minutesOverride.js +16 -0
- package/dist/utils/minutesOverride.js.map +1 -0
- package/dist/utils/modelPickerPlan.d.ts +119 -0
- package/dist/utils/modelPickerPlan.d.ts.map +1 -0
- package/dist/utils/modelPickerPlan.js +171 -0
- package/dist/utils/modelPickerPlan.js.map +1 -0
- package/dist/utils/modelRecentPlan.d.ts +56 -0
- package/dist/utils/modelRecentPlan.d.ts.map +1 -0
- package/dist/utils/modelRecentPlan.js +107 -0
- package/dist/utils/modelRecentPlan.js.map +1 -0
- package/dist/utils/modelSetReplyDecision.d.ts +67 -0
- package/dist/utils/modelSetReplyDecision.d.ts.map +1 -0
- package/dist/utils/modelSetReplyDecision.js +27 -0
- package/dist/utils/modelSetReplyDecision.js.map +1 -0
- package/dist/utils/openCodeAuthLogin.d.ts +181 -0
- package/dist/utils/openCodeAuthLogin.d.ts.map +1 -0
- package/dist/utils/openCodeAuthLogin.js +393 -0
- package/dist/utils/openCodeAuthLogin.js.map +1 -0
- package/dist/utils/openCodeCompactPlugin.d.ts +81 -0
- package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -0
- package/dist/utils/openCodeCompactPlugin.js +146 -0
- package/dist/utils/openCodeCompactPlugin.js.map +1 -0
- package/dist/utils/openCodeTurnActivity.d.ts +67 -0
- package/dist/utils/openCodeTurnActivity.d.ts.map +1 -0
- package/dist/utils/openCodeTurnActivity.js +27 -0
- package/dist/utils/openCodeTurnActivity.js.map +1 -0
- package/dist/utils/outputDebounce.d.ts +24 -0
- package/dist/utils/outputDebounce.d.ts.map +1 -0
- package/dist/utils/outputDebounce.js +30 -0
- package/dist/utils/outputDebounce.js.map +1 -0
- package/dist/utils/outputFlushTiming.d.ts +54 -0
- package/dist/utils/outputFlushTiming.d.ts.map +1 -0
- package/dist/utils/outputFlushTiming.js +48 -0
- package/dist/utils/outputFlushTiming.js.map +1 -0
- package/dist/utils/paginateList.d.ts +25 -0
- package/dist/utils/paginateList.d.ts.map +1 -0
- package/dist/utils/paginateList.js +32 -0
- package/dist/utils/paginateList.js.map +1 -0
- package/dist/utils/paneDiff.d.ts +55 -0
- package/dist/utils/paneDiff.d.ts.map +1 -0
- package/dist/utils/paneDiff.js +88 -0
- package/dist/utils/paneDiff.js.map +1 -0
- package/dist/utils/paneResizeGuard.d.ts +69 -0
- package/dist/utils/paneResizeGuard.d.ts.map +1 -0
- package/dist/utils/paneResizeGuard.js +91 -0
- package/dist/utils/paneResizeGuard.js.map +1 -0
- package/dist/utils/persistAdapterSessionIds.d.ts +39 -0
- package/dist/utils/persistAdapterSessionIds.d.ts.map +1 -0
- package/dist/utils/persistAdapterSessionIds.js +28 -0
- package/dist/utils/persistAdapterSessionIds.js.map +1 -0
- package/dist/utils/pinnedBannerSkipDecision.d.ts +44 -0
- package/dist/utils/pinnedBannerSkipDecision.d.ts.map +1 -0
- package/dist/utils/pinnedBannerSkipDecision.js +20 -0
- package/dist/utils/pinnedBannerSkipDecision.js.map +1 -0
- package/dist/utils/pollBackoff.d.ts +45 -0
- package/dist/utils/pollBackoff.d.ts.map +1 -0
- package/dist/utils/pollBackoff.js +44 -0
- package/dist/utils/pollBackoff.js.map +1 -0
- package/dist/utils/promptDelivery.d.ts +46 -0
- package/dist/utils/promptDelivery.d.ts.map +1 -0
- package/dist/utils/promptDelivery.js +49 -0
- package/dist/utils/promptDelivery.js.map +1 -0
- package/dist/utils/providerDisconnectPlan.d.ts +82 -0
- package/dist/utils/providerDisconnectPlan.d.ts.map +1 -0
- package/dist/utils/providerDisconnectPlan.js +110 -0
- package/dist/utils/providerDisconnectPlan.js.map +1 -0
- package/dist/utils/rateLimitLog.d.ts +48 -0
- package/dist/utils/rateLimitLog.d.ts.map +1 -0
- package/dist/utils/rateLimitLog.js +43 -0
- package/dist/utils/rateLimitLog.js.map +1 -0
- package/dist/utils/recentRelayWindow.d.ts +165 -0
- package/dist/utils/recentRelayWindow.d.ts.map +1 -0
- package/dist/utils/recentRelayWindow.js +284 -0
- package/dist/utils/recentRelayWindow.js.map +1 -0
- package/dist/utils/recvPreviewRedaction.d.ts +23 -0
- package/dist/utils/recvPreviewRedaction.d.ts.map +1 -0
- package/dist/utils/recvPreviewRedaction.js +39 -0
- package/dist/utils/recvPreviewRedaction.js.map +1 -0
- package/dist/utils/reminderFlow.d.ts +148 -0
- package/dist/utils/reminderFlow.d.ts.map +1 -0
- package/dist/utils/reminderFlow.js +122 -0
- package/dist/utils/reminderFlow.js.map +1 -0
- package/dist/utils/reminderScheduleText.d.ts +87 -0
- package/dist/utils/reminderScheduleText.d.ts.map +1 -0
- package/dist/utils/reminderScheduleText.js +135 -0
- package/dist/utils/reminderScheduleText.js.map +1 -0
- package/dist/utils/reminderWizard.d.ts +710 -0
- package/dist/utils/reminderWizard.d.ts.map +1 -0
- package/dist/utils/reminderWizard.js +1164 -0
- package/dist/utils/reminderWizard.js.map +1 -0
- package/dist/utils/replyQuote.d.ts +111 -0
- package/dist/utils/replyQuote.d.ts.map +1 -0
- package/dist/utils/replyQuote.js +122 -0
- package/dist/utils/replyQuote.js.map +1 -0
- package/dist/utils/resolveBinary.d.ts +25 -0
- package/dist/utils/resolveBinary.d.ts.map +1 -0
- package/dist/utils/resolveBinary.js +99 -0
- package/dist/utils/resolveBinary.js.map +1 -0
- package/dist/utils/retryAfterHeader.d.ts +7 -0
- package/dist/utils/retryAfterHeader.d.ts.map +1 -0
- package/dist/utils/retryAfterHeader.js +17 -0
- package/dist/utils/retryAfterHeader.js.map +1 -0
- package/dist/utils/rotatingJsonlFile.d.ts +40 -0
- package/dist/utils/rotatingJsonlFile.d.ts.map +1 -0
- package/dist/utils/rotatingJsonlFile.js +106 -0
- package/dist/utils/rotatingJsonlFile.js.map +1 -0
- package/dist/utils/rotatingLogFile.d.ts +25 -0
- package/dist/utils/rotatingLogFile.d.ts.map +1 -0
- package/dist/utils/rotatingLogFile.js +74 -0
- package/dist/utils/rotatingLogFile.js.map +1 -0
- package/dist/utils/sendRateTracker.d.ts +59 -0
- package/dist/utils/sendRateTracker.d.ts.map +1 -0
- package/dist/utils/sendRateTracker.js +144 -0
- package/dist/utils/sendRateTracker.js.map +1 -0
- package/dist/utils/serialQueue.d.ts +5 -0
- package/dist/utils/serialQueue.d.ts.map +1 -0
- package/dist/utils/serialQueue.js +14 -0
- package/dist/utils/serialQueue.js.map +1 -0
- package/dist/utils/sseStreamLifecycle.d.ts +32 -0
- package/dist/utils/sseStreamLifecycle.d.ts.map +1 -0
- package/dist/utils/sseStreamLifecycle.js +41 -0
- package/dist/utils/sseStreamLifecycle.js.map +1 -0
- package/dist/utils/startupReadiness.d.ts +119 -0
- package/dist/utils/startupReadiness.d.ts.map +1 -0
- package/dist/utils/startupReadiness.js +148 -0
- package/dist/utils/startupReadiness.js.map +1 -0
- package/dist/utils/statusFlushDecision.d.ts +18 -0
- package/dist/utils/statusFlushDecision.d.ts.map +1 -0
- package/dist/utils/statusFlushDecision.js +53 -0
- package/dist/utils/statusFlushDecision.js.map +1 -0
- package/dist/utils/subagentRender.d.ts +52 -0
- package/dist/utils/subagentRender.d.ts.map +1 -0
- package/dist/utils/subagentRender.js +66 -0
- package/dist/utils/subagentRender.js.map +1 -0
- package/dist/utils/subagentStatusRender.d.ts +90 -0
- package/dist/utils/subagentStatusRender.d.ts.map +1 -0
- package/dist/utils/subagentStatusRender.js +124 -0
- package/dist/utils/subagentStatusRender.js.map +1 -0
- package/dist/utils/telegramError.d.ts +2 -0
- package/dist/utils/telegramError.d.ts.map +1 -0
- package/dist/utils/telegramError.js +16 -0
- package/dist/utils/telegramError.js.map +1 -0
- package/dist/utils/terminalEmitPlan.d.ts +74 -0
- package/dist/utils/terminalEmitPlan.d.ts.map +1 -0
- package/dist/utils/terminalEmitPlan.js +86 -0
- package/dist/utils/terminalEmitPlan.js.map +1 -0
- package/dist/utils/thinkingRender.d.ts +74 -0
- package/dist/utils/thinkingRender.d.ts.map +1 -0
- package/dist/utils/thinkingRender.js +85 -0
- package/dist/utils/thinkingRender.js.map +1 -0
- package/dist/utils/threadStatusReport.d.ts +79 -0
- package/dist/utils/threadStatusReport.d.ts.map +1 -0
- package/dist/utils/threadStatusReport.js +88 -0
- package/dist/utils/threadStatusReport.js.map +1 -0
- package/dist/utils/threadToggle.d.ts +29 -0
- package/dist/utils/threadToggle.d.ts.map +1 -0
- package/dist/utils/threadToggle.js +39 -0
- package/dist/utils/threadToggle.js.map +1 -0
- package/dist/utils/timezone.d.ts +125 -0
- package/dist/utils/timezone.d.ts.map +1 -0
- package/dist/utils/timezone.js +278 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/utils/tmuxExec.d.ts +61 -0
- package/dist/utils/tmuxExec.d.ts.map +1 -0
- package/dist/utils/tmuxExec.js +109 -0
- package/dist/utils/tmuxExec.js.map +1 -0
- package/dist/utils/tmuxSessionName.d.ts +34 -0
- package/dist/utils/tmuxSessionName.d.ts.map +1 -0
- package/dist/utils/tmuxSessionName.js +51 -0
- package/dist/utils/tmuxSessionName.js.map +1 -0
- package/dist/utils/toolResultRender.d.ts +61 -0
- package/dist/utils/toolResultRender.d.ts.map +1 -0
- package/dist/utils/toolResultRender.js +62 -0
- package/dist/utils/toolResultRender.js.map +1 -0
- package/dist/utils/topicRequest.d.ts +61 -0
- package/dist/utils/topicRequest.d.ts.map +1 -0
- package/dist/utils/topicRequest.js +68 -0
- package/dist/utils/topicRequest.js.map +1 -0
- package/dist/utils/topicView.d.ts +55 -0
- package/dist/utils/topicView.d.ts.map +1 -0
- package/dist/utils/topicView.js +56 -0
- package/dist/utils/topicView.js.map +1 -0
- package/dist/utils/transcribeAudio.d.ts +89 -0
- package/dist/utils/transcribeAudio.d.ts.map +1 -0
- package/dist/utils/transcribeAudio.js +249 -0
- package/dist/utils/transcribeAudio.js.map +1 -0
- package/dist/utils/transientFrames.d.ts +52 -0
- package/dist/utils/transientFrames.d.ts.map +1 -0
- package/dist/utils/transientFrames.js +41 -0
- package/dist/utils/transientFrames.js.map +1 -0
- package/dist/utils/typingActive.d.ts +35 -0
- package/dist/utils/typingActive.d.ts.map +1 -0
- package/dist/utils/typingActive.js +22 -0
- package/dist/utils/typingActive.js.map +1 -0
- package/dist/utils/typingLoopBackstop.d.ts +64 -0
- package/dist/utils/typingLoopBackstop.d.ts.map +1 -0
- package/dist/utils/typingLoopBackstop.js +68 -0
- package/dist/utils/typingLoopBackstop.js.map +1 -0
- package/dist/utils/verbosityRender.d.ts +18 -0
- package/dist/utils/verbosityRender.d.ts.map +1 -0
- package/dist/utils/verbosityRender.js +17 -0
- package/dist/utils/verbosityRender.js.map +1 -0
- package/dist/utils/wedgeRecovery.d.ts +57 -0
- package/dist/utils/wedgeRecovery.d.ts.map +1 -0
- package/dist/utils/wedgeRecovery.js +24 -0
- package/dist/utils/wedgeRecovery.js.map +1 -0
- package/dist/utils.d.ts +30 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +61 -0
- package/dist/utils.js.map +1 -0
- package/dist/validation.d.ts +113 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +226 -0
- package/dist/validation.js.map +1 -0
- package/dist/voiceQueue.d.ts +7 -0
- package/dist/voiceQueue.d.ts.map +1 -0
- package/dist/voiceQueue.js +33 -0
- package/dist/voiceQueue.js.map +1 -0
- package/examples/.env.example +17 -0
- package/examples/docker-compose.yml +36 -0
- package/package.json +83 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"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":"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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description The Claude Code version gate for the json-stream lifecycle
|
|
4
|
+
* (plan 2026-10-04-claude-process-lifecycle, L-D10). A process may be stopped
|
|
5
|
+
* automatically (idle stop, per-turn stop) ONLY when its CLI reports the
|
|
6
|
+
* `system/background_tasks_changed` list — verified on 2.1.287 and never seen
|
|
7
|
+
* before it. Without that list a stop could kill background work (a background
|
|
8
|
+
* Bash, a Monitor, a background sub-agent): stdin EOF kills them ~5 s later
|
|
9
|
+
* (probe 2026-10-04). An unknown version (no `claude_code_version` on `init`)
|
|
10
|
+
* is treated as too old.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.minAutoStopClaudeCodeVersion = void 0;
|
|
14
|
+
exports.compareClaudeCodeVersions = compareClaudeCodeVersions;
|
|
15
|
+
exports.checkIsClaudeAutoStopSupported = checkIsClaudeAutoStopSupported;
|
|
16
|
+
exports.getPerTurnRefusedVersion = getPerTurnRefusedVersion;
|
|
17
|
+
/** The first Claude Code version whose stream-json reports the background-task list. */
|
|
18
|
+
exports.minAutoStopClaudeCodeVersion = '2.1.287';
|
|
19
|
+
const versionRe = /^(\d+)\.(\d+)\.(\d+)/;
|
|
20
|
+
/** Parse `major.minor.patch` (a trailing pre-release / build suffix is ignored); `null` for anything else. */
|
|
21
|
+
function parseClaudeCodeVersion(version) {
|
|
22
|
+
const match = versionRe.exec(version.trim());
|
|
23
|
+
if (!match)
|
|
24
|
+
return null;
|
|
25
|
+
return [Number(match[1]), Number(match[2]), Number(match[3])];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @description Compare two `major.minor.patch` versions numerically (so `2.1.300`
|
|
29
|
+
* sorts after `2.1.287`, which a string compare gets wrong). Returns a negative
|
|
30
|
+
* number, zero, or a positive number like `Array.prototype.sort` expects; `null`
|
|
31
|
+
* when either side does not parse.
|
|
32
|
+
*/
|
|
33
|
+
function compareClaudeCodeVersions(left, right) {
|
|
34
|
+
const leftParts = parseClaudeCodeVersion(left);
|
|
35
|
+
const rightParts = parseClaudeCodeVersion(right);
|
|
36
|
+
if (!leftParts || !rightParts)
|
|
37
|
+
return null;
|
|
38
|
+
for (let index = 0; index < leftParts.length; index += 1) {
|
|
39
|
+
if (leftParts[index] !== rightParts[index])
|
|
40
|
+
return leftParts[index] - rightParts[index];
|
|
41
|
+
}
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
/** Whether a process reporting `version` may be auto-stopped (L-D10); `null` / unparseable → `false`. */
|
|
45
|
+
function checkIsClaudeAutoStopSupported(version) {
|
|
46
|
+
if (version === null)
|
|
47
|
+
return false;
|
|
48
|
+
const comparison = compareClaudeCodeVersions(version, exports.minAutoStopClaudeCodeVersion);
|
|
49
|
+
return comparison !== null && comparison >= 0;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @description The version a switch of a conversation to the per-turn lifecycle
|
|
53
|
+
* is REFUSED on (L-D10, narrowed): its last known Claude Code version — from the
|
|
54
|
+
* live process or the persisted tail record — when that is below the gate;
|
|
55
|
+
* `null` when the switch is allowed. An unknown version allows it: the refusal is
|
|
56
|
+
* only decidable once a version is known, and the stop gate keeps an unknown or
|
|
57
|
+
* old process alive anyway.
|
|
58
|
+
*/
|
|
59
|
+
function getPerTurnRefusedVersion(lastKnownVersion) {
|
|
60
|
+
return lastKnownVersion !== null && !checkIsClaudeAutoStopSupported(lastKnownVersion) ? lastKnownVersion : null;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=claudeCodeVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeCodeVersion.js","sourceRoot":"","sources":["../../src/utils/claudeCodeVersion.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAoBH,8DAQC;AAGD,wEAIC;AAUD,4DAEC;AA7CD,wFAAwF;AAC3E,QAAA,4BAA4B,GAAG,SAAS,CAAC;AAEtD,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEzC,8GAA8G;AAC9G,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,IAAY,EAAE,KAAa;IACnE,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,yGAAyG;AACzG,SAAgB,8BAA8B,CAAC,OAAsB;IACnE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,EAAE,oCAA4B,CAAC,CAAC;IACpF,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CAAC,gBAA+B;IACtE,OAAO,gBAAgB,KAAK,IAAI,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AAClH,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description The `PreCompact` hook the bot hands every Claude session it starts,
|
|
3
|
+
* so the compaction Claude runs ON ITS OWN when the context overflows gets the
|
|
4
|
+
* same summary guidance as a bot-issued one.
|
|
5
|
+
*
|
|
6
|
+
* WHY this exists: a bot-issued compaction carries its instruction as
|
|
7
|
+
* `/compact <instruction>`, but the overflow-triggered (auto) compaction is started
|
|
8
|
+
* by the CLI itself and has no argument the bot could fill. It summarised with the
|
|
9
|
+
* default prompt: the loaded skills were not named, and the continuing session
|
|
10
|
+
* silently stopped following them. Claude Code runs `PreCompact` hooks before
|
|
11
|
+
* EVERY compaction (`trigger` `auto` and `manual`) and appends a hook's stdout to
|
|
12
|
+
* that compaction's custom instructions — measured on v2.1.289: an
|
|
13
|
+
* overflow-triggered compaction's summary opened with the line the hook printed.
|
|
14
|
+
* The hook rides `--settings <file>`, which is merged with the user's own settings
|
|
15
|
+
* and never writes to them.
|
|
16
|
+
*
|
|
17
|
+
* A bot-issued compaction already carries the same text, so the hook prints
|
|
18
|
+
* nothing when the compaction's `custom_instructions` (part of the JSON the hook
|
|
19
|
+
* reads on stdin) already contain the skills guidance — otherwise the model would
|
|
20
|
+
* get the instruction twice.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Name of the hook settings file inside `DATA_DIR`. ONE file shared by every
|
|
24
|
+
* session: its content is the same for all of them, and a session that outlives
|
|
25
|
+
* the bot (json-stream) must never find it deleted under it.
|
|
26
|
+
*/
|
|
27
|
+
export declare const claudeCompactHookSettingsFileName = "claude-compact-hook.json";
|
|
28
|
+
/**
|
|
29
|
+
* @description The instruction the hook adds to a compaction the bot did not
|
|
30
|
+
* issue: D3 + the loaded-skills guidance. No closing section — that one exists for
|
|
31
|
+
* the bot's own idle-compaction report, which an overflow compaction never feeds.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getHookCompactionInstruction(): string;
|
|
34
|
+
/**
|
|
35
|
+
* @description Build the hook's shell command: print `instruction` unless the
|
|
36
|
+
* hook's stdin (the `PreCompact` input JSON) already contains `alreadySentMarker`.
|
|
37
|
+
* The marker is matched as a fixed string against the raw JSON, so it must be text
|
|
38
|
+
* JSON leaves unescaped — the caller passes the skills guidance, and a test pins
|
|
39
|
+
* that it qualifies.
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildPreCompactHookCommand(input: {
|
|
42
|
+
instruction: string;
|
|
43
|
+
alreadySentMarker: string;
|
|
44
|
+
}): string;
|
|
45
|
+
/** The `--settings` payload: one `PreCompact` command hook, no matcher (auto AND manual). */
|
|
46
|
+
export declare function buildClaudeCompactHookSettings(command: string): {
|
|
47
|
+
hooks: {
|
|
48
|
+
PreCompact: Array<{
|
|
49
|
+
hooks: Array<{
|
|
50
|
+
type: 'command';
|
|
51
|
+
command: string;
|
|
52
|
+
}>;
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* @description Write the hook settings file and return the `--settings <path>`
|
|
58
|
+
* argument pair for a Claude launch. Rewritten on every launch (atomic rename, so
|
|
59
|
+
* a concurrently starting session never reads a half-written file) so a changed
|
|
60
|
+
* guidance reaches the next session. A write failure returns `[]` and only logs:
|
|
61
|
+
* the hook improves a summary, it must never stop an agent from starting.
|
|
62
|
+
*/
|
|
63
|
+
export declare function prepareClaudeCompactHookFlags(dataDir: string): string[];
|
|
64
|
+
//# sourceMappingURL=claudeCompactHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeCompactHook.d.ts","sourceRoot":"","sources":["../../src/utils/claudeCompactHook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAWH;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAE5E;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAOrD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAET;AAED,6FAA6F;AAC7F,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG;IAC/D,KAAK,EAAE;QAAE,UAAU,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,SAAS,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CACtF,CAEA;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBvE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description The `PreCompact` hook the bot hands every Claude session it starts,
|
|
4
|
+
* so the compaction Claude runs ON ITS OWN when the context overflows gets the
|
|
5
|
+
* same summary guidance as a bot-issued one.
|
|
6
|
+
*
|
|
7
|
+
* WHY this exists: a bot-issued compaction carries its instruction as
|
|
8
|
+
* `/compact <instruction>`, but the overflow-triggered (auto) compaction is started
|
|
9
|
+
* by the CLI itself and has no argument the bot could fill. It summarised with the
|
|
10
|
+
* default prompt: the loaded skills were not named, and the continuing session
|
|
11
|
+
* silently stopped following them. Claude Code runs `PreCompact` hooks before
|
|
12
|
+
* EVERY compaction (`trigger` `auto` and `manual`) and appends a hook's stdout to
|
|
13
|
+
* that compaction's custom instructions — measured on v2.1.289: an
|
|
14
|
+
* overflow-triggered compaction's summary opened with the line the hook printed.
|
|
15
|
+
* The hook rides `--settings <file>`, which is merged with the user's own settings
|
|
16
|
+
* and never writes to them.
|
|
17
|
+
*
|
|
18
|
+
* A bot-issued compaction already carries the same text, so the hook prints
|
|
19
|
+
* nothing when the compaction's `custom_instructions` (part of the JSON the hook
|
|
20
|
+
* reads on stdin) already contain the skills guidance — otherwise the model would
|
|
21
|
+
* get the instruction twice.
|
|
22
|
+
*/
|
|
23
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.claudeCompactHookSettingsFileName = void 0;
|
|
28
|
+
exports.getHookCompactionInstruction = getHookCompactionInstruction;
|
|
29
|
+
exports.buildPreCompactHookCommand = buildPreCompactHookCommand;
|
|
30
|
+
exports.buildClaudeCompactHookSettings = buildClaudeCompactHookSettings;
|
|
31
|
+
exports.prepareClaudeCompactHookFlags = prepareClaudeCompactHookFlags;
|
|
32
|
+
const fs_1 = __importDefault(require("fs"));
|
|
33
|
+
const path_1 = __importDefault(require("path"));
|
|
34
|
+
const compactOnIdle_1 = require("./compactOnIdle");
|
|
35
|
+
const tmuxExec_1 = require("./tmuxExec");
|
|
36
|
+
/**
|
|
37
|
+
* Name of the hook settings file inside `DATA_DIR`. ONE file shared by every
|
|
38
|
+
* session: its content is the same for all of them, and a session that outlives
|
|
39
|
+
* the bot (json-stream) must never find it deleted under it.
|
|
40
|
+
*/
|
|
41
|
+
exports.claudeCompactHookSettingsFileName = 'claude-compact-hook.json';
|
|
42
|
+
/**
|
|
43
|
+
* @description The instruction the hook adds to a compaction the bot did not
|
|
44
|
+
* issue: D3 + the loaded-skills guidance. No closing section — that one exists for
|
|
45
|
+
* the bot's own idle-compaction report, which an overflow compaction never feeds.
|
|
46
|
+
*/
|
|
47
|
+
function getHookCompactionInstruction() {
|
|
48
|
+
return (0, compactOnIdle_1.buildCompactionInstruction)({
|
|
49
|
+
bakesSummaryGuidance: false,
|
|
50
|
+
summaryGuidance: compactOnIdle_1.compactionSummaryGuidance,
|
|
51
|
+
bakesSkillsGuidance: false,
|
|
52
|
+
skillsGuidance: compactOnIdle_1.compactionSkillsGuidance,
|
|
53
|
+
}) ?? '';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @description Build the hook's shell command: print `instruction` unless the
|
|
57
|
+
* hook's stdin (the `PreCompact` input JSON) already contains `alreadySentMarker`.
|
|
58
|
+
* The marker is matched as a fixed string against the raw JSON, so it must be text
|
|
59
|
+
* JSON leaves unescaped — the caller passes the skills guidance, and a test pins
|
|
60
|
+
* that it qualifies.
|
|
61
|
+
*/
|
|
62
|
+
function buildPreCompactHookCommand(input) {
|
|
63
|
+
return `grep -qF -e ${(0, tmuxExec_1.shellSingleQuote)(input.alreadySentMarker)} || printf '%s\\n' ${(0, tmuxExec_1.shellSingleQuote)(input.instruction)}`;
|
|
64
|
+
}
|
|
65
|
+
/** The `--settings` payload: one `PreCompact` command hook, no matcher (auto AND manual). */
|
|
66
|
+
function buildClaudeCompactHookSettings(command) {
|
|
67
|
+
return { hooks: { PreCompact: [{ hooks: [{ type: 'command', command }] }] } };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @description Write the hook settings file and return the `--settings <path>`
|
|
71
|
+
* argument pair for a Claude launch. Rewritten on every launch (atomic rename, so
|
|
72
|
+
* a concurrently starting session never reads a half-written file) so a changed
|
|
73
|
+
* guidance reaches the next session. A write failure returns `[]` and only logs:
|
|
74
|
+
* the hook improves a summary, it must never stop an agent from starting.
|
|
75
|
+
*/
|
|
76
|
+
function prepareClaudeCompactHookFlags(dataDir) {
|
|
77
|
+
const settingsPath = path_1.default.join(dataDir, exports.claudeCompactHookSettingsFileName);
|
|
78
|
+
const command = buildPreCompactHookCommand({
|
|
79
|
+
instruction: getHookCompactionInstruction(),
|
|
80
|
+
alreadySentMarker: compactOnIdle_1.compactionSkillsGuidance,
|
|
81
|
+
});
|
|
82
|
+
const tmpPath = `${settingsPath}.${process.pid}.${Date.now()}.tmp`;
|
|
83
|
+
try {
|
|
84
|
+
fs_1.default.mkdirSync(dataDir, { recursive: true });
|
|
85
|
+
fs_1.default.writeFileSync(tmpPath, JSON.stringify(buildClaudeCompactHookSettings(command)));
|
|
86
|
+
fs_1.default.renameSync(tmpPath, settingsPath);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
console.warn(`[compact-hook] cannot write ${settingsPath}:`, e);
|
|
90
|
+
try {
|
|
91
|
+
fs_1.default.unlinkSync(tmpPath);
|
|
92
|
+
}
|
|
93
|
+
catch { /* never written */ }
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
return ['--settings', settingsPath];
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=claudeCompactHook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeCompactHook.js","sourceRoot":"","sources":["../../src/utils/claudeCompactHook.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;AAuBH,oEAOC;AASD,gEAKC;AAGD,wEAIC;AASD,sEAiBC;AA3ED,4CAAoB;AACpB,gDAAwB;AACxB,mDAIyB;AACzB,yCAA8C;AAE9C;;;;GAIG;AACU,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAE5E;;;;GAIG;AACH,SAAgB,4BAA4B;IAC1C,OAAO,IAAA,0CAA0B,EAAC;QAChC,oBAAoB,EAAE,KAAK;QAC3B,eAAe,EAAE,yCAAyB;QAC1C,mBAAmB,EAAE,KAAK;QAC1B,cAAc,EAAE,wCAAwB;KACzC,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,0BAA0B,CAAC,KAG1C;IACC,OAAO,eAAe,IAAA,2BAAgB,EAAC,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,IAAA,2BAAgB,EAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;AAC7H,CAAC;AAED,6FAA6F;AAC7F,SAAgB,8BAA8B,CAAC,OAAe;IAG5D,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAChF,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,6BAA6B,CAAC,OAAe;IAC3D,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,yCAAiC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,0BAA0B,CAAC;QACzC,WAAW,EAAE,4BAA4B,EAAE;QAC3C,iBAAiB,EAAE,wCAAwB;KAC5C,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IACnE,IAAI,CAAC;QACH,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,YAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnF,YAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,+BAA+B,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC;YAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Pure decisions behind SWITCHING A TOPIC TO ANOTHER CLAUDE ACCOUNT when its own hits a usage
|
|
3
|
+
* limit (`utils/claudeProfiles.ts`, `utils/claudeUsage.ts`): which profiles may take the work over, ranked by
|
|
4
|
+
* headroom, and until when the exhausted one is marked limited. This ranking is what the fallback chain
|
|
5
|
+
* (`utils/fallbackChain.ts`) falls back to when the operator configured no chain: the within-Claude
|
|
6
|
+
* account→account switch as it existed before the chain. The auto / offer decision, the notice's buttons and
|
|
7
|
+
* the auto-switch toggle (`/account`, `/fallback`; OFF by default — the operator opts in, because moving work
|
|
8
|
+
* between subscriptions is an account-policy decision) live in the chain module.
|
|
9
|
+
*
|
|
10
|
+
* No I/O, no `Date.now()`: the caller passes the clock and the profile views, so every rule is unit-tested.
|
|
11
|
+
*/
|
|
12
|
+
import { type ClaudeProfileUsageView, type ClaudeUsageSnapshot } from './claudeUsage';
|
|
13
|
+
/** The toggle's resolver (OFF when unset) lives beside `/auto_continue_limits`'s, where `state.ts` reads it. */
|
|
14
|
+
export { resolveClaudeAutoSwitchOnLimitEnabled } from './autoContinueOnLimit';
|
|
15
|
+
/**
|
|
16
|
+
* @description The profiles that may take a topic's work over, best first: signed in, not marked limited, with
|
|
17
|
+
* KNOWN and fresh usage that leaves headroom on the windows `model` drains, and not the profile that just hit
|
|
18
|
+
* the limit. A profile whose usage is unknown or stale is left out on purpose — the switch is sold as "this
|
|
19
|
+
* one has room", and a guess could land the topic in a second limit.
|
|
20
|
+
*/
|
|
21
|
+
export declare function pickClaudeLimitSwitchCandidates(input: {
|
|
22
|
+
profiles: readonly ClaudeProfileUsageView[];
|
|
23
|
+
/** The profile the topic runs on — the one at its limit. */
|
|
24
|
+
currentName: string;
|
|
25
|
+
model: string | null;
|
|
26
|
+
nowMs: number;
|
|
27
|
+
}): string[];
|
|
28
|
+
/**
|
|
29
|
+
* @description Until when the profile that hit the limit is marked limited, so the ranking skips it before the
|
|
30
|
+
* window resets: the instant the error named, else the profile's own session-window reset when that lies ahead,
|
|
31
|
+
* else `fallbackMs` from now (the retry's blind delay). A mark already further in the future is kept.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveClaudeLimitedUntil(input: {
|
|
34
|
+
resetAtMs: number | undefined;
|
|
35
|
+
usage: ClaudeUsageSnapshot | undefined;
|
|
36
|
+
existingLimitedUntil: string | null;
|
|
37
|
+
nowMs: number;
|
|
38
|
+
fallbackMs: number;
|
|
39
|
+
}): string;
|
|
40
|
+
//# sourceMappingURL=claudeLimitSwitch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeLimitSwitch.d.ts","sourceRoot":"","sources":["../../src/utils/claudeLimitSwitch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAmD,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEvI,gHAAgH;AAChH,OAAO,EAAE,qCAAqC,EAAE,MAAM,uBAAuB,CAAC;AAE9E;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC5C,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,EAAE,CAQX;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAWT"}
|