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,548 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import type { AgentAdapter, AgentSession, AgentRuntimeInfo, CompactionResult, DisplayPrefsReader, JsonStreamTailOffset, JsonStreamTailWriter, OpenCodeQuestion, RecentTurn, ReattachRecap, ResumeSessionOptions, SeenWatermark, SeenWatermarkWriter } from '../types';
|
|
3
|
+
import type { SessionKey } from '../sessionKey';
|
|
4
|
+
import { ClaudeStreamLineReader } from '../utils/claudeStreamJson';
|
|
5
|
+
import { type McpHealOutcome } from '../utils/claudeMcpHeal';
|
|
6
|
+
import { type JsonStreamSessionPaths, type StdoutTailState } from '../utils/jsonStreamHost';
|
|
7
|
+
import { type SessionLaunchDefaultsReader } from './sessionLaunchDefaults';
|
|
8
|
+
/** The two lifecycles of the json-stream host (see {@link ClaudeJsonStreamAdapter.lifecycle}). */
|
|
9
|
+
export type JsonStreamLifecycle = 'idle' | 'perTurn';
|
|
10
|
+
/** Prefix of the per-turn token accounting line (L-D11); the process-level e2e
|
|
11
|
+
* and the live cache check read it. */
|
|
12
|
+
export declare const claudeJsonStreamUsageLogPrefix = "[ClaudeJson] usage ";
|
|
13
|
+
/** Awaiter bookkeeping for a bot-issued compaction (see {@link StreamSession.pendingCompaction}). */
|
|
14
|
+
interface PendingStreamCompaction {
|
|
15
|
+
resolve: (result: CompactionResult) => void;
|
|
16
|
+
/** The repeating silence watchdog (an INTERVAL, cleared on every resolve path). */
|
|
17
|
+
timer: NodeJS.Timeout | null;
|
|
18
|
+
/** Set when a `compact_status` reported `success` (wait for the boundary's tokens). */
|
|
19
|
+
sawSuccess: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** The settled reply to a bot-issued control request (see
|
|
22
|
+
* {@link ClaudeJsonStreamAdapter.requestControl}). */
|
|
23
|
+
interface ControlResponseOutcome {
|
|
24
|
+
/** The response envelope's `subtype` was `success` (vs `error`). */
|
|
25
|
+
isSuccess: boolean;
|
|
26
|
+
/** The INNER `response` record, `null` for a plain ack that returns no data. */
|
|
27
|
+
payload: Record<string, unknown> | null;
|
|
28
|
+
}
|
|
29
|
+
/** Awaiter bookkeeping for ONE bot-issued control request, keyed by its
|
|
30
|
+
* `request_id` in {@link StreamSession.pendingControlRequests}. */
|
|
31
|
+
interface PendingControlRequest {
|
|
32
|
+
resolve: (outcome: ControlResponseOutcome | null) => void;
|
|
33
|
+
timer: NodeJS.Timeout;
|
|
34
|
+
}
|
|
35
|
+
/** The pending answer to a live AskUserQuestion control_request. */
|
|
36
|
+
interface PendingStreamQuestion {
|
|
37
|
+
/** The control_request `request_id` the control_response must echo. */
|
|
38
|
+
requestId: string;
|
|
39
|
+
/** The AskUserQuestion `tool_use_id` (echoed as `toolUseID`). */
|
|
40
|
+
toolUseId: string;
|
|
41
|
+
/** The raw `input` (`{questions:[…]}`) — passed back verbatim + `answers`. */
|
|
42
|
+
rawInput: Record<string, unknown>;
|
|
43
|
+
/** The parsed questions (order matches the answer matrix). */
|
|
44
|
+
questions: OpenCodeQuestion[];
|
|
45
|
+
}
|
|
46
|
+
export interface StreamSession {
|
|
47
|
+
key: SessionKey;
|
|
48
|
+
workDir: string;
|
|
49
|
+
/** The `--session-id` UUID (== Claude on-disk transcript id, shared with the
|
|
50
|
+
* tmux backend's `claudeSessionId`). */
|
|
51
|
+
sessionId: string;
|
|
52
|
+
/** pid of the external claude process (from the wrapper's `pid` file). */
|
|
53
|
+
pid: number;
|
|
54
|
+
/** Host-file layout (stdin fifo / stdout log / pid / exitcode / …). */
|
|
55
|
+
paths: JsonStreamSessionPaths;
|
|
56
|
+
/** Non-blocking write fd on the stdin FIFO. */
|
|
57
|
+
fifoFd: number;
|
|
58
|
+
/** Serialises FIFO writes so control frames and user turns keep wire order. */
|
|
59
|
+
stdinWriteChain: Promise<void>;
|
|
60
|
+
/** `stdout.jsonl` tail bookkeeping (byte offsets + stateful utf8 decode). */
|
|
61
|
+
tail: StdoutTailState;
|
|
62
|
+
pollTimer: NodeJS.Timeout | null;
|
|
63
|
+
pollDelayMs: number;
|
|
64
|
+
unchangedStreak: number;
|
|
65
|
+
/** One-shot oversize warning (no stdout rotation in v1 — locked decision). */
|
|
66
|
+
isOversizeWarned: boolean;
|
|
67
|
+
/** Last line-boundary offset handed to the tail writer (monotonic guard). */
|
|
68
|
+
lastPersistedTailOffset: number;
|
|
69
|
+
reader: ClaudeStreamLineReader;
|
|
70
|
+
isActive: boolean;
|
|
71
|
+
/** True between an explicit stop and process exit → emit `stopped` not `closed`. */
|
|
72
|
+
isStopping: boolean;
|
|
73
|
+
/** True when the stop is a SUSPEND (idle stop, the session kept resumable) → emit `suspended`, not `stopped`. */
|
|
74
|
+
isSuspending: boolean;
|
|
75
|
+
/** True while re-spawning for a model/effort change → suppress closed/stopped. */
|
|
76
|
+
isRespawning: boolean;
|
|
77
|
+
/** True from a user turn sent until its `result` → drives `checkIsBusy`. */
|
|
78
|
+
isBusy: boolean;
|
|
79
|
+
/** `Date.now()` of the last consumed stdout byte / turn-start kick. Feeds the
|
|
80
|
+
* idle watchdog (`utils/jsonStreamBusyWatchdog`): stdout silence with nothing
|
|
81
|
+
* in flight is how a stuck-busy session (a missed terminal `result`) is
|
|
82
|
+
* detected and cleared, so the typing indicator can't hang for an hour. */
|
|
83
|
+
lastStdoutActivityAt: number;
|
|
84
|
+
/** `tool_use` ids started but whose `tool_result` hasn't returned. A non-empty
|
|
85
|
+
* set means the agent is legitimately waiting on a tool (possibly silent, e.g.
|
|
86
|
+
* a long Bash) → the idle watchdog must NOT clear busy. */
|
|
87
|
+
outstandingToolUseIds: Set<string>;
|
|
88
|
+
/** The model PINNED by an explicit `/model` pick — the `--model` spawn flag,
|
|
89
|
+
* replayed verbatim on every effort/model re-spawn. `null` means "no pick,
|
|
90
|
+
* claude runs its own default", so it must NOT be overwritten with the
|
|
91
|
+
* resolved live id (that would silently pin the session to one snapshot). */
|
|
92
|
+
model: string | null;
|
|
93
|
+
/** The model claude itself reports in `system/init` (the resolved id, e.g.
|
|
94
|
+
* `claude-opus-4-5-20251101`) — the only source of the LIVE model when no
|
|
95
|
+
* explicit pick was made, which is every default start, every resume, and
|
|
96
|
+
* every boot-time adopt. Read by {@link ClaudeJsonStreamAdapter.getCurrentModel}
|
|
97
|
+
* so `/status` and the pinned banner can name the running model at all. */
|
|
98
|
+
reportedModel: string | null;
|
|
99
|
+
effort: string | null;
|
|
100
|
+
currentResponseText: string;
|
|
101
|
+
emittedLength: number;
|
|
102
|
+
outputTimer: NodeJS.Timeout | null;
|
|
103
|
+
reasoningText: string;
|
|
104
|
+
reasoningStartedAt: number | null;
|
|
105
|
+
reasoningTimer: NodeJS.Timeout | null;
|
|
106
|
+
reasoningActive: boolean;
|
|
107
|
+
toolNamesById: Map<string, string>;
|
|
108
|
+
/** AskUserQuestion `tool_use_id`s — their tool_result is the internal
|
|
109
|
+
* "questions have been answered" echo, never rendered as a tool result. */
|
|
110
|
+
questionToolUseIds: Set<string>;
|
|
111
|
+
subagentActive: boolean;
|
|
112
|
+
childResponseText: string;
|
|
113
|
+
childEmittedLength: number;
|
|
114
|
+
childOutputTimer: NodeJS.Timeout | null;
|
|
115
|
+
pendingInitResolve: (() => void) | null;
|
|
116
|
+
initRequestId: string | null;
|
|
117
|
+
/** Control requests the BOT wrote that are awaiting their `control_response`,
|
|
118
|
+
* keyed by `request_id` (the `initialize` handshake keeps its own resolver
|
|
119
|
+
* above, since it predates this map and settles a plain `void`). Per session
|
|
120
|
+
* object, so nothing can be read against a replaced session. */
|
|
121
|
+
pendingControlRequests: Map<string, PendingControlRequest>;
|
|
122
|
+
/** True from a bot-issued `/compact` turn until its terminal signal — suppresses
|
|
123
|
+
* the compaction turn's own output so only the bot's confirmation shows. */
|
|
124
|
+
compactionInProgress: boolean;
|
|
125
|
+
/** Awaiter for the in-flight bot-issued compaction, resolved by the CLI's
|
|
126
|
+
* `compact_boundary` / failing `compact_status` / turn end / timeout. */
|
|
127
|
+
pendingCompaction: PendingStreamCompaction | null;
|
|
128
|
+
pendingQuestion: PendingStreamQuestion | null;
|
|
129
|
+
apiErrorFired: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* One-shot: swallow the NEXT terminal `result{is_error}` because it is the
|
|
132
|
+
* direct consequence of an interrupt WE issued (`sendInterrupt`), not a real
|
|
133
|
+
* provider error. Without it a user-initiated abort — a `/esc`, or the
|
|
134
|
+
* question-cancel path's SIGINT — surfaces the CLI's contentless error result
|
|
135
|
+
* as a bogus "Claude error: API error" line (`claudeStreamJson` falls back to
|
|
136
|
+
* the literal `'API error'` for an `is_error` result carrying no text).
|
|
137
|
+
* Consumed by the first `handleTurnEnd` after the interrupt.
|
|
138
|
+
*/
|
|
139
|
+
swallowNextAbortError: boolean;
|
|
140
|
+
/** Last transcript byte offset persisted as the seen-watermark (S7 monotonic
|
|
141
|
+
* guard). `-1` until the first advance so a never-advanced session writes on
|
|
142
|
+
* its first relayed message. */
|
|
143
|
+
lastWatermarkOffset: number;
|
|
144
|
+
/**
|
|
145
|
+
* User messages written to stdin that Claude has not echoed back yet
|
|
146
|
+
* (`--replay-user-messages`): a message written mid-turn is read only when the
|
|
147
|
+
* running turn reaches a point to take it in. See `checkHasUnconsumedInput`.
|
|
148
|
+
*/
|
|
149
|
+
unconsumedInputCount: number;
|
|
150
|
+
/**
|
|
151
|
+
* The CLI's live background-task list (`system/background_tasks_changed`,
|
|
152
|
+
* re-sent whole on every change): a background Bash / Monitor / sub-agent the
|
|
153
|
+
* process is still running between turns. Non-empty = working (L-D2) — a stop
|
|
154
|
+
* would kill them. Persisted with the tail offset so an adopt restores it.
|
|
155
|
+
*/
|
|
156
|
+
backgroundTaskIds: Set<string>;
|
|
157
|
+
/** The CLI version reported on `system/init` (`claude_code_version`); the
|
|
158
|
+
* auto-stop gate (L-D10) reads it. `null` until the first init / on an adopt. */
|
|
159
|
+
claudeCodeVersion: string | null;
|
|
160
|
+
/**
|
|
161
|
+
* Set while `onStdout` applies the lines of one chunk. The line reader hands
|
|
162
|
+
* the WHOLE chunk's lines over at once, so the line-boundary offset already
|
|
163
|
+
* sits at the chunk's end while later lines are still unapplied: a persist
|
|
164
|
+
* requested mid-chunk (a `result`'s flush) would record state the unapplied
|
|
165
|
+
* lines then change (a `background_tasks_changed` after the result) — and the
|
|
166
|
+
* monotonic guard would refuse the correct write. The persist is deferred to
|
|
167
|
+
* the end of the chunk instead.
|
|
168
|
+
*/
|
|
169
|
+
applyingChunk: {
|
|
170
|
+
isPersistDeferred: boolean;
|
|
171
|
+
} | null;
|
|
172
|
+
/**
|
|
173
|
+
* An ADOPTED session's stdout size at the adopt (`null` otherwise, or once
|
|
174
|
+
* reached): the tail must consume up to here before the session's live state
|
|
175
|
+
* (busy, tasks, input) is trustworthy — see {@link ClaudeJsonStreamAdapter.whenAdoptReplayed}.
|
|
176
|
+
*/
|
|
177
|
+
adoptCatchUpOffset: number | null;
|
|
178
|
+
/** Waiters of {@link ClaudeJsonStreamAdapter.whenAdoptReplayed}, settled when the catch-up offset is reached or the session ends. */
|
|
179
|
+
adoptCatchUpResolvers: Array<() => void>;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* @description SECOND Claude backend: drives the `claude` CLI over its
|
|
183
|
+
* documented `--input-format stream-json --output-format stream-json` protocol
|
|
184
|
+
* (typed events, no TUI scrape) as an EXTERNAL tmux-hosted process per
|
|
185
|
+
* {@link SessionKey} (plan 2026-07-05-jsonstream-restart-isolation): a `#!/bin/sh`
|
|
186
|
+
* wrapper backgrounds claude with stdin on a FIFO the process itself holds
|
|
187
|
+
* `0<>` and stdout appended to a `stdout.jsonl` the adapter TAILS — so a bot
|
|
188
|
+
* restart (every hot reload) neither EOFs claude's stdin nor loses its output;
|
|
189
|
+
* the restarted bot re-adopts the tmux session and replays the missed tail.
|
|
190
|
+
* Same structured events, on the SAME subscription billing (proven
|
|
191
|
+
* `apiKeySource:"none"` + `seven_day` rate-limit event; the wrapper runs
|
|
192
|
+
* `env -u ANTHROPIC_API_KEY`, never `--bare`).
|
|
193
|
+
*
|
|
194
|
+
* Structural template is {@link import('./openCodeAdapter').OpenCodeAdapter}
|
|
195
|
+
* (event-driven, own process, per-key session map); the Claude on-disk
|
|
196
|
+
* transcript readers are reused for `/sessions` / resume / recap.
|
|
197
|
+
*
|
|
198
|
+
* Interactive questions (`AskUserQuestion`) reach Telegram through the same
|
|
199
|
+
* `question` event + pin flow as OpenCode: the CLI surfaces them as a
|
|
200
|
+
* `control_request` (`subtype:"can_use_tool"`, `tool_name:"AskUserQuestion"`)
|
|
201
|
+
* on stdout, answered with a `control_response` carrying
|
|
202
|
+
* `updatedInput.answers` on stdin — a wire protocol reverse-engineered from a
|
|
203
|
+
* live capture + the open-source `@anthropic-ai/claude-agent-sdk`. Ordinary
|
|
204
|
+
* tool permissions are auto-allowed (operator trusts their own agent — parity
|
|
205
|
+
* with the tmux backend's `bypassPermissions`), so only questions block.
|
|
206
|
+
*
|
|
207
|
+
* A topic flips between it and the tmux-scrape backend via `/claude_mode`
|
|
208
|
+
* (they share the on-disk transcript, so the switch resumes the same
|
|
209
|
+
* conversation). The DEFAULT Claude backend (`getDefaultClaudeBackendName`):
|
|
210
|
+
* `/login` is handled out-of-band by the bot (`claude auth login` in a pty),
|
|
211
|
+
* so it no longer needs a TUI to sign in.
|
|
212
|
+
*/
|
|
213
|
+
export declare class ClaudeJsonStreamAdapter extends EventEmitter implements AgentAdapter {
|
|
214
|
+
readonly name: string;
|
|
215
|
+
readonly label: string;
|
|
216
|
+
/**
|
|
217
|
+
* `idle` — the process stays between turns and is stopped at the idle mark (L3);
|
|
218
|
+
* `perTurn` — the process is stopped right after each turn (L5, L-D3), by the
|
|
219
|
+
* bot on the `turnEnded` event. Same host, same session layout: one process per
|
|
220
|
+
* conversation at a time whichever lifecycle runs it.
|
|
221
|
+
*/
|
|
222
|
+
readonly lifecycle: JsonStreamLifecycle;
|
|
223
|
+
constructor(options?: {
|
|
224
|
+
lifecycle: JsonStreamLifecycle;
|
|
225
|
+
});
|
|
226
|
+
/** Emits incremental text deltas (like the tmux scrape) → the transports
|
|
227
|
+
* synthesise continuation (`getDmDraftContinuation` / group delta path). */
|
|
228
|
+
readonly outputsDeltas = true;
|
|
229
|
+
/** No TUI banner → keep the bot's `agent.ready` cue + one-shot boot ping (L2). */
|
|
230
|
+
readonly selfGreetsOnStart = false;
|
|
231
|
+
private readonly sessions;
|
|
232
|
+
private readonly claudePath;
|
|
233
|
+
private displayPrefsReader;
|
|
234
|
+
private seenWatermarkWriter;
|
|
235
|
+
private jsonStreamTailWriter;
|
|
236
|
+
private sessionLaunchDefaultsReader;
|
|
237
|
+
/** The stops in flight — the module-level map shared by both lifecycles' instances (see {@link stopsInFlightByKey}). */
|
|
238
|
+
private readonly stopsInFlight;
|
|
239
|
+
setDisplayPrefsReader(reader: DisplayPrefsReader): void;
|
|
240
|
+
setSeenWatermarkWriter(writer: SeenWatermarkWriter): void;
|
|
241
|
+
setJsonStreamTailWriter(writer: JsonStreamTailWriter): void;
|
|
242
|
+
setSessionLaunchDefaultsReader(reader: SessionLaunchDefaultsReader): void;
|
|
243
|
+
private getLaunchOptions;
|
|
244
|
+
private getDisplayPrefs;
|
|
245
|
+
private advanceSeenWatermark;
|
|
246
|
+
startSession(key: SessionKey, workDir: string, _args?: string, sessionId?: string): Promise<void>;
|
|
247
|
+
resumeSession(key: SessionKey, workDir: string, sessionId: string, options?: ResumeSessionOptions): Promise<void>;
|
|
248
|
+
/**
|
|
249
|
+
* @description Spawn (or re-spawn) the CLI process for a thread as an
|
|
250
|
+
* EXTERNAL tmux-hosted process (wrapper + FIFO stdin + stdout file — the
|
|
251
|
+
* probe-proven layout in `utils/jsonStreamHost.ts`), start the stdout tail
|
|
252
|
+
* poller, and complete the `initialize` control handshake (which enables the
|
|
253
|
+
* `AskUserQuestion` control channel). Rejects — with the wrapper's exit code
|
|
254
|
+
* and a stderr excerpt — if the process fails to come up. Reused by start /
|
|
255
|
+
* resume / effort-respawn.
|
|
256
|
+
*/
|
|
257
|
+
private spawnSession;
|
|
258
|
+
/** Arm the next tail poll (single-flight `setTimeout` chain, mirroring the
|
|
259
|
+
* scrape backend's `schedulePoll` — never overlapping ticks). */
|
|
260
|
+
private schedulePoll;
|
|
261
|
+
/** Snap the tail cadence back to base — called on every stdin write, when
|
|
262
|
+
* fresh output is expected shortly (mirrors the scrape backend's write snap). */
|
|
263
|
+
private snapPollToBase;
|
|
264
|
+
private pollTailTick;
|
|
265
|
+
/**
|
|
266
|
+
* @description Idle watchdog (bounded safety net). `isBusy` is cleared in
|
|
267
|
+
* exactly one place — a processed terminal `result` (`handleTurnEnd`) — so a
|
|
268
|
+
* single missed `result` (an aborted `interrupt`, a process gone quiet after
|
|
269
|
+
* the answer, a future CLI dropping the line) hangs the native typing
|
|
270
|
+
* indicator indefinitely. When the session is busy but stdout has been silent
|
|
271
|
+
* past {@link busyIdleWatchdogMs} and nothing is genuinely in flight, the turn
|
|
272
|
+
* has really ended: clear the flag. The pure decision + its rationale live in
|
|
273
|
+
* `utils/jsonStreamBusyWatchdog` — every in-flight signal (tool / sub-agent /
|
|
274
|
+
* question / batched answer) vetoes the clear, so a legitimately long-running
|
|
275
|
+
* turn is never truncated (a working agent never goes silent with nothing in
|
|
276
|
+
* flight — it streams deltas or waits on a tool/sub-agent/user).
|
|
277
|
+
*/
|
|
278
|
+
private maybeClearBusyOnIdle;
|
|
279
|
+
/**
|
|
280
|
+
* @description Read whatever `stdout.jsonl` grew since the last poll and feed
|
|
281
|
+
* it through the SAME decode → line-reader → classifier pipeline the stdio
|
|
282
|
+
* pipe used to feed. Returns whether anything new was consumed (drives the
|
|
283
|
+
* adaptive poll backoff). After consuming, persists the line-boundary tail
|
|
284
|
+
* offset so a bot restart resumes exactly where processing stopped.
|
|
285
|
+
*/
|
|
286
|
+
private drainStdoutTail;
|
|
287
|
+
/** Persist the tail's line-boundary offset (monotonic; inert until the
|
|
288
|
+
* writer is registered — same idiom as the seen-watermark writer). */
|
|
289
|
+
private persistTailOffset;
|
|
290
|
+
/**
|
|
291
|
+
* @description Single teardown convergence point for the external process —
|
|
292
|
+
* both the explicit stop (`isStopping` → `stopped`) and the poll tick's exit
|
|
293
|
+
* detection (→ `closed`, with the wrapper-reported exit code and a stderr
|
|
294
|
+
* excerpt). Kills any tmux leftovers, removes the host dir, and cleans the
|
|
295
|
+
* MCP temp files. A respawn owns its own transition (`isRespawning`).
|
|
296
|
+
*/
|
|
297
|
+
private finalizeExternalExit;
|
|
298
|
+
/** Close the FIFO fd AFTER any queued writes settle, so an in-flight write
|
|
299
|
+
* never hits a closed fd (EBADF noise on every stop). */
|
|
300
|
+
private closeFifo;
|
|
301
|
+
/** Scan tmux for `cjson-…` sessions that outlived the bot (mirror of the
|
|
302
|
+
* scrape backend's scan). The bot decides adopt-vs-orphan per key — this
|
|
303
|
+
* method only lists. */
|
|
304
|
+
listExistingTmuxSessions(): Promise<Array<{
|
|
305
|
+
key: SessionKey;
|
|
306
|
+
sessionName: string;
|
|
307
|
+
}>>;
|
|
308
|
+
/** Kill an orphan `cjson-…` tmux session AND its host dir (the dir is
|
|
309
|
+
* per-thread, derived from the parsed name; an unparseable name only
|
|
310
|
+
* kills the tmux session). */
|
|
311
|
+
killOrphanTmuxSession(sessionName: string): Promise<void>;
|
|
312
|
+
/**
|
|
313
|
+
* @description Adopt an external json-stream process that survived a bot
|
|
314
|
+
* restart: reopen the stdin FIFO writer and resume the stdout tail from the
|
|
315
|
+
* persisted line-boundary offset — everything claude produced during the
|
|
316
|
+
* downtime replays through the normal pipeline, so the in-flight turn is
|
|
317
|
+
* delivered end-to-end (which is why the bot posts NO reattach recap for an
|
|
318
|
+
* adopt). An unknown / foreign-session offset seeds to the CURRENT EOF (no
|
|
319
|
+
* backlog flood — the first-migration case). No initialize handshake — the
|
|
320
|
+
* surviving process completed it at spawn; a pending question is restored
|
|
321
|
+
* from the sidecar so its buttons stay answerable. Returns `false` — after
|
|
322
|
+
* killing the leftovers — when the process is dead (exitcode present / pid
|
|
323
|
+
* gone / FIFO unheld): the caller falls back to the dead-process `--resume`
|
|
324
|
+
* reopen.
|
|
325
|
+
*/
|
|
326
|
+
adoptExistingTmuxSession(key: SessionKey, sessionName: string, workDir: string, claudeSessionId: string, persistedTail: JsonStreamTailOffset | null): Promise<boolean>;
|
|
327
|
+
/**
|
|
328
|
+
* @description Resolves once an ADOPTED session's tail has consumed what its
|
|
329
|
+
* stdout held at the adopt — the replayed frames have rebuilt the live state
|
|
330
|
+
* (busy, tasks, input) — or once the session is gone. Immediate for a session
|
|
331
|
+
* that was not adopted or whose tail already sat at EOF. The stale-tool-list
|
|
332
|
+
* stop (L4) looks only after this: a look before it would read a turn in flight
|
|
333
|
+
* as idle.
|
|
334
|
+
*/
|
|
335
|
+
whenAdoptReplayed(key: SessionKey): Promise<void>;
|
|
336
|
+
/** Settle the adopt catch-up once the tail consumed up to the adopt-time EOF (or the session ended). */
|
|
337
|
+
private settleAdoptCatchUp;
|
|
338
|
+
/** Restore a pending question persisted by a previous bot life (see
|
|
339
|
+
* {@link writeQuestionSidecar}). Parse-boundary narrowing; the questions
|
|
340
|
+
* array re-runs the same validator as a live control_request, so a corrupt
|
|
341
|
+
* sidecar yields `null`, never a malformed pending question. */
|
|
342
|
+
private readQuestionSidecar;
|
|
343
|
+
private performInitialize;
|
|
344
|
+
stopSession(key: SessionKey): void;
|
|
345
|
+
/**
|
|
346
|
+
* @description Stop the process but KEEP the session resumable (lifecycle plan
|
|
347
|
+
* L3): the same teardown as a stop (SIGTERM, tmux kill, host dir removed —
|
|
348
|
+
* L-D13), converging on `suspended` instead of `stopped`, so the bot keeps the
|
|
349
|
+
* persisted id and the retry / compaction state the stop would drop. The caller
|
|
350
|
+
* checks `checkIsWorking` first — a suspend kills a background task like any
|
|
351
|
+
* stop. Joins a stop already in flight.
|
|
352
|
+
*/
|
|
353
|
+
suspendSession(key: SessionKey): Promise<void>;
|
|
354
|
+
private stopSessionInternal;
|
|
355
|
+
/** Explicit stop = hard-kill the EXTERNAL process (released sessions are
|
|
356
|
+
* never adopted — locked decision): SIGTERM the pid, kill the tmux session,
|
|
357
|
+
* then converge through {@link finalizeExternalExit} (dir removal + `stopped`,
|
|
358
|
+
* or `suspended` for an idle stop that keeps the session resumable). */
|
|
359
|
+
private performStop;
|
|
360
|
+
checkIsActive(key: SessionKey): boolean;
|
|
361
|
+
checkIsBusy(key: SessionKey): boolean;
|
|
362
|
+
checkHasUnconsumedInput(key: SessionKey): boolean;
|
|
363
|
+
/**
|
|
364
|
+
* @description Whether the process is WORKING and must not be stopped (L-D2):
|
|
365
|
+
* a running turn, a background task the CLI still runs (background Bash /
|
|
366
|
+
* Monitor / sub-agent — a stop kills them, and a finished one starts its own
|
|
367
|
+
* turn), input written but not yet taken in, or a bot-issued compaction in
|
|
368
|
+
* flight. An unknown / inactive session is not working.
|
|
369
|
+
*/
|
|
370
|
+
checkIsWorking(key: SessionKey): boolean;
|
|
371
|
+
/** Background tasks, input not yet taken in, a compaction in flight — "working" minus the turn (L-D2). */
|
|
372
|
+
checkHasBackgroundWork(key: SessionKey): boolean;
|
|
373
|
+
/** The CLI version the live process reported on `system/init`, `null` until then (L-D10 gate input). */
|
|
374
|
+
getClaudeCodeVersion(key: SessionKey): string | null;
|
|
375
|
+
/** L-D10: only a CLI that reports the background-task list may be stopped automatically. */
|
|
376
|
+
checkIsAutoStopSupported(key: SessionKey): boolean;
|
|
377
|
+
getRuntimeInfo(key: SessionKey): Promise<AgentRuntimeInfo>;
|
|
378
|
+
getClaudeSessionId(key: SessionKey): string | null;
|
|
379
|
+
/**
|
|
380
|
+
* @description Real, CONFIRMED compaction on the json-stream backend (F3):
|
|
381
|
+
* send `/compact` (or `/compact <instruction>` for F2's closing section) as a
|
|
382
|
+
* stream-json user turn — the CLI parses the slash command, compacts, and
|
|
383
|
+
* reports the outcome on a `compact_boundary` (success, with token counts) /
|
|
384
|
+
* a failing `compact_status` frame. The whole turn's own output is suppressed
|
|
385
|
+
* (`compactionInProgress`) so only the bot's confirmation shows. Resolves the
|
|
386
|
+
* {@link CompactionResult} — a success carrying the boundary frame's pre/post
|
|
387
|
+
* token counts (`null` when only `compact_status success` was seen) — awaiting
|
|
388
|
+
* the terminal signal so the caller can post its notice AFTER the context was
|
|
389
|
+
* really compacted.
|
|
390
|
+
*/
|
|
391
|
+
compactContext(key: SessionKey, instruction?: string): Promise<CompactionResult>;
|
|
392
|
+
/**
|
|
393
|
+
* @description Read the newest compaction summary from the on-disk transcript
|
|
394
|
+
* (the `isCompactSummary:true` message) so F2 can lift its appended closing
|
|
395
|
+
* section into the idle-compaction notice. Returns `null` when the session is
|
|
396
|
+
* inactive, the transcript is unreadable, or no summary is present.
|
|
397
|
+
*/
|
|
398
|
+
getLatestCompactionSummary(key: SessionKey): Promise<string | null>;
|
|
399
|
+
sendInput(key: SessionKey, input: string): void;
|
|
400
|
+
sendSignal(key: SessionKey, _signal: string): void;
|
|
401
|
+
sendEscape(key: SessionKey): void;
|
|
402
|
+
private sendInterrupt;
|
|
403
|
+
/** Write one user turn, counting it until Claude echoes it back (it has read it). */
|
|
404
|
+
private writeUserMessage;
|
|
405
|
+
/** Enqueue one stream-json frame onto the stdin FIFO. Fire-and-forget for
|
|
406
|
+
* callers (sync signature preserved); the per-session chain keeps wire
|
|
407
|
+
* order and absorbs transient `EAGAIN` (see `writeFifoText`). */
|
|
408
|
+
private writeStdin;
|
|
409
|
+
private onStdout;
|
|
410
|
+
private applyStdoutLines;
|
|
411
|
+
/**
|
|
412
|
+
* @description Settle the CLI's reply to a control_request the BOT wrote,
|
|
413
|
+
* matched by `request_id`: the spawn-time `initialize` handshake, plus the MCP
|
|
414
|
+
* heal's `mcp_status` / `mcp_reconnect` round-trips. A response for an id we
|
|
415
|
+
* are not waiting on belongs to nothing of ours — ignore it rather than guess
|
|
416
|
+
* which awaiter it might settle.
|
|
417
|
+
*/
|
|
418
|
+
private handleControlResponse;
|
|
419
|
+
/**
|
|
420
|
+
* @description Write ONE bot-issued control_request and resolve with its
|
|
421
|
+
* `control_response`, or `null` when none arrives within
|
|
422
|
+
* {@link mcpControlRequestTimeoutMs}. The reply comes back through the normal
|
|
423
|
+
* stdout-tail → classifier path (the CLI answers on the same stdio control
|
|
424
|
+
* channel `can_use_tool` uses), so the bounded timer is what keeps a silent
|
|
425
|
+
* CLI from hanging the caller. Never rejects: an unanswered request is an
|
|
426
|
+
* unknown, not an error.
|
|
427
|
+
*
|
|
428
|
+
* A session that is no longer the live one for its key gets NOTHING written:
|
|
429
|
+
* its fd is closed (and its number reusable), so a write after teardown could
|
|
430
|
+
* land in an unrelated file — and no reply could ever settle the awaiter
|
|
431
|
+
* anyway. Same identity guard as the poll tick and the exit finalizer.
|
|
432
|
+
*/
|
|
433
|
+
private requestControl;
|
|
434
|
+
/**
|
|
435
|
+
* @description Heal the bot's own injected MCP server inside this LIVE session:
|
|
436
|
+
* ask `mcp_status`, and reconnect the server ONLY when it reports `failed`
|
|
437
|
+
* (the latched state a bot restart leaves behind — the CLI never retries it,
|
|
438
|
+
* so the bot's tools stay gone for the rest of the session). `connected` is
|
|
439
|
+
* left strictly alone, and any other status (`needs-auth`, an unknown future
|
|
440
|
+
* one) is skipped rather than guessed at — see `decideMcpHeal`.
|
|
441
|
+
*
|
|
442
|
+
* Control frames only: nothing written here can be read as a user turn, the
|
|
443
|
+
* session is never marked busy, and the pending-request map is keyed by
|
|
444
|
+
* `request_id` so the `can_use_tool` / `interrupt` paths are untouched.
|
|
445
|
+
*
|
|
446
|
+
* `healed` is reported off the reconnect's own ack, and that ack is MEASURED to
|
|
447
|
+
* be both synchronous and honest — so no confirming third round-trip is needed
|
|
448
|
+
* and adding one would only be ceremony. Against a still-dead endpoint the
|
|
449
|
+
* reconnect answers `{subtype:'error', error:'ECONNREFUSED…'}` (never a hollow
|
|
450
|
+
* success), and after a successful one an IMMEDIATELY following `mcp_status`
|
|
451
|
+
* already reads `connected`. Do not re-litigate this as a missing verification.
|
|
452
|
+
*/
|
|
453
|
+
healMcpServer(key: SessionKey, serverName: string): Promise<McpHealOutcome>;
|
|
454
|
+
private applyAction;
|
|
455
|
+
private handleInit;
|
|
456
|
+
/** Replace the live background-task list with the frame's (it is re-sent
|
|
457
|
+
* WHOLE on every change, so no diffing). The tail-offset persist that follows
|
|
458
|
+
* this frame's drain carries the new list to `state.json`. */
|
|
459
|
+
private handleBackgroundTasks;
|
|
460
|
+
private handleCompactStatus;
|
|
461
|
+
private handleCompactBoundary;
|
|
462
|
+
/**
|
|
463
|
+
* Resolve (and clear) the in-flight compaction awaiter exactly once. Every way a bot-issued compaction can
|
|
464
|
+
* succeed (its boundary, its turn end, the timeout that saw its success) ends here, so a success is told
|
|
465
|
+
* once as `contextCompacted`.
|
|
466
|
+
*/
|
|
467
|
+
private resolveCompaction;
|
|
468
|
+
private appendAnswerDelta;
|
|
469
|
+
private flushAnswer;
|
|
470
|
+
private appendThinkingDelta;
|
|
471
|
+
private finishReasoning;
|
|
472
|
+
private handleToolUse;
|
|
473
|
+
private handleToolResult;
|
|
474
|
+
private markSubagentActive;
|
|
475
|
+
private handleSubagentText;
|
|
476
|
+
private clearSubagent;
|
|
477
|
+
/** Every terminal `result` — a normal turn, a compaction turn, an error — ends with the `turnEnded` event. */
|
|
478
|
+
private handleTurnEnd;
|
|
479
|
+
private applyTurnEnd;
|
|
480
|
+
/**
|
|
481
|
+
* @description Advance the persisted seen-watermark to the transcript's current
|
|
482
|
+
* byte size when it grew past the last write (S7). A cheap `fs.statSync().size`
|
|
483
|
+
* (NOT a whole-file read — this runs per settled parent assistant message, not
|
|
484
|
+
* only at turn end) plus a monotonic guard, mirroring the tmux backend's
|
|
485
|
+
* {@link import('./claudeCliAdapter').ClaudeCliAdapter} advance so both Claude
|
|
486
|
+
* paths track "relayed up to here". Best-effort — a transcript not yet on disk
|
|
487
|
+
* leaves the watermark where it was; the next relayed message re-tries.
|
|
488
|
+
*/
|
|
489
|
+
private advanceWatermarkFromTranscript;
|
|
490
|
+
/** Classify + emit an `apiError` once per episode; returns whether it fired. */
|
|
491
|
+
private maybeEmitApiError;
|
|
492
|
+
private handleControlRequest;
|
|
493
|
+
private surfaceQuestion;
|
|
494
|
+
/**
|
|
495
|
+
* @description Persist the pending question to the host dir. The external
|
|
496
|
+
* claude process stays BLOCKED on its `can_use_tool` across a bot restart,
|
|
497
|
+
* but the control_request line lies BEFORE the persisted tail offset (it was
|
|
498
|
+
* consumed pre-restart), so tail replay alone would never resurface it — the
|
|
499
|
+
* sidecar is what lets an adopting bot still answer over the FIFO. Removed
|
|
500
|
+
* the moment the question resolves (answer / reject); dies with the dir on
|
|
501
|
+
* stop.
|
|
502
|
+
*/
|
|
503
|
+
private writeQuestionSidecar;
|
|
504
|
+
private clearQuestionSidecar;
|
|
505
|
+
/** Map the AskUserQuestion `input.questions` to the shared question shape
|
|
506
|
+
* (dropping option `preview`, which breaks in the Telegram relay). */
|
|
507
|
+
private parseQuestions;
|
|
508
|
+
answerQuestion(key: SessionKey, answers: string[][]): void;
|
|
509
|
+
rejectQuestion(key: SessionKey): void;
|
|
510
|
+
private writeControlResponse;
|
|
511
|
+
getSessions(_key: SessionKey, workDir: string): Promise<AgentSession[]>;
|
|
512
|
+
getRecentTurns(_key: SessionKey, workDir: string, sessionId: string, limit: number): Promise<RecentTurn[]>;
|
|
513
|
+
getReattachRecap(key: SessionKey, workDir: string, sessionId: string, watermark: SeenWatermark | null): Promise<ReattachRecap>;
|
|
514
|
+
setModel(key: SessionKey, modelId: string): Promise<string | null>;
|
|
515
|
+
/**
|
|
516
|
+
* @description The model the session is RUNNING. Claude's own `system/init`
|
|
517
|
+
* report wins over the pinned `--model` pick: it is the resolved id (an alias
|
|
518
|
+
* like `opus` resolves to its snapshot) and it is the only value present when
|
|
519
|
+
* no pick was ever made. The pick is the fallback for the window between a
|
|
520
|
+
* `/model` re-spawn and its first `init`, so the label never blanks out
|
|
521
|
+
* mid-switch.
|
|
522
|
+
*/
|
|
523
|
+
getCurrentModel(key: SessionKey): string | null;
|
|
524
|
+
getAvailableModels(): Promise<string[]>;
|
|
525
|
+
setEffort(key: SessionKey, level: string): Promise<string | null>;
|
|
526
|
+
getEffort(key: SessionKey): string | null;
|
|
527
|
+
getAvailableEffortLevels(_key: SessionKey): Promise<string[]>;
|
|
528
|
+
/**
|
|
529
|
+
* @description Apply a model/effort change by re-spawning the child with
|
|
530
|
+
* `--resume <sessionId>` (the on-disk session persists, so only an in-flight
|
|
531
|
+
* streaming reply is lost — same trade-off as OpenCode's server restart). The
|
|
532
|
+
* intermediate exit is suppressed (`isRespawning`) so the bot sees no
|
|
533
|
+
* closed/stopped churn.
|
|
534
|
+
*/
|
|
535
|
+
private respawnWithChange;
|
|
536
|
+
private clearTimers;
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* @description Extract the newest compaction summary from a Claude on-disk
|
|
540
|
+
* transcript: the last JSONL line with `isCompactSummary === true`, whose
|
|
541
|
+
* `message.content` (a string, or `{type:'text'}` blocks) holds the summary the
|
|
542
|
+
* `/compact` turn produced. Returns `null` for an unreadable file or when no
|
|
543
|
+
* summary line is present. Reads the whole file — cheap enough for the
|
|
544
|
+
* once-per-idle-compaction call.
|
|
545
|
+
*/
|
|
546
|
+
export declare function readLatestCompactSummaryFromTranscript(filePath: string): string | null;
|
|
547
|
+
export {};
|
|
548
|
+
//# sourceMappingURL=claudeJsonStreamAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeJsonStreamAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/claudeJsonStreamAdapter.ts"],"names":[],"mappings":"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"}
|