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,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatClaudeProfileUsageLines = formatClaudeProfileUsageLines;
|
|
4
|
+
/**
|
|
5
|
+
* The usage lines of one Claude account profile — what `/accounts` prints under a profile row and `/limits`
|
|
6
|
+
* prints at the top of its screen. ONE renderer for both, so the two screens can never word a window differently.
|
|
7
|
+
*/
|
|
8
|
+
const i18n_1 = require("../i18n");
|
|
9
|
+
const claudeUsage_1 = require("./claudeUsage");
|
|
10
|
+
/** The localised words of a relative reset («🔄 in 2h»). */
|
|
11
|
+
function getRelativeResetWords() {
|
|
12
|
+
return { pattern: (0, i18n_1.t)('usage.resetIn'), day: (0, i18n_1.t)('usage.unitDay'), hour: (0, i18n_1.t)('usage.unitHour'), minute: (0, i18n_1.t)('usage.unitMinute') };
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @description The profile's usage as display lines: the windows as `used% 🔄 reset` — 5h and weekly always (`—`
|
|
16
|
+
* for one the snapshot lacks), Fable only when the account HAS that window (a corporate seat has none: nothing
|
|
17
|
+
* is written about it) — `(stale)` when the last poll could not refresh, and the limit mark while it holds, the
|
|
18
|
+
* reset instant in `timezone`. The lines carry the locale's own indentation (they hang under a row); empty for a
|
|
19
|
+
* profile never polled and not limited.
|
|
20
|
+
*/
|
|
21
|
+
function formatClaudeProfileUsageLines(source, timezone, nowMs) {
|
|
22
|
+
const lines = [];
|
|
23
|
+
const usage = source?.usage;
|
|
24
|
+
if (usage && usage.buckets.length > 0) {
|
|
25
|
+
const words = getRelativeResetWords();
|
|
26
|
+
// An unknown 5h reset shows the weekly window's instead (with neither, the bare percent).
|
|
27
|
+
const weeklyReset = (0, claudeUsage_1.getClaudeUsageBucket)(usage, 'weekly_all')?.resetsAt ?? null;
|
|
28
|
+
const read = (kind) => (0, claudeUsage_1.formatClaudeUsageBucket)((0, claudeUsage_1.getClaudeUsageBucket)(usage, kind), nowMs, {
|
|
29
|
+
words,
|
|
30
|
+
fallbackResetsAt: kind === 'session' ? weeklyReset : null,
|
|
31
|
+
});
|
|
32
|
+
const stale = usage.isStale ? (0, i18n_1.t)('account.row.usageStale') : '';
|
|
33
|
+
const hasFable = (0, claudeUsage_1.getClaudeUsageBucket)(usage, 'weekly_scoped') !== null;
|
|
34
|
+
const fable = hasFable ? (0, i18n_1.t)('account.row.usageFable', { fable: read('weekly_scoped') }) : '';
|
|
35
|
+
lines.push((0, i18n_1.t)('account.row.usage', { session: read('session'), weekly: read('weekly_all'), fable }) + stale);
|
|
36
|
+
}
|
|
37
|
+
if (source?.limitedUntil && Date.parse(source.limitedUntil) > nowMs) {
|
|
38
|
+
lines.push((0, i18n_1.t)('account.row.limited', { until: (0, claudeUsage_1.formatClaudeUsageResetAt)(source.limitedUntil, timezone, nowMs) }));
|
|
39
|
+
}
|
|
40
|
+
return lines;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=claudeProfileUsageLines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeProfileUsageLines.js","sourceRoot":"","sources":["../../src/utils/claudeProfileUsageLines.ts"],"names":[],"mappings":";;AAgCA,sEAoBC;AApDD;;;GAGG;AACH,kCAA4B;AAC5B,+CAOuB;AAQvB,4DAA4D;AAC5D,SAAS,qBAAqB;IAC5B,OAAO,EAAE,OAAO,EAAE,IAAA,QAAC,EAAC,eAAe,CAAC,EAAE,GAAG,EAAE,IAAA,QAAC,EAAC,eAAe,CAAC,EAAE,IAAI,EAAE,IAAA,QAAC,EAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAA,QAAC,EAAC,kBAAkB,CAAC,EAAE,CAAC;AAC5H,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,6BAA6B,CAAC,MAA4C,EAAE,QAAgB,EAAE,KAAa;IACzH,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC;IAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;QACtC,0FAA0F;QAC1F,MAAM,WAAW,GAAG,IAAA,kCAAoB,EAAC,KAAK,EAAE,YAAY,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;QAChF,MAAM,IAAI,GAAG,CAAC,IAA2B,EAAE,EAAE,CAAC,IAAA,qCAAuB,EAAC,IAAA,kCAAoB,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE;YAC9G,KAAK;YACL,gBAAgB,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;SAC1D,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,QAAC,EAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAA,kCAAoB,EAAC,KAAK,EAAE,eAAe,CAAC,KAAK,IAAI,CAAC;QACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,QAAC,EAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAA,sCAAwB,EAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Claude ACCOUNT PROFILES — several Claude subscription logins kept side by side, one picked per
|
|
3
|
+
* topic (`/account`). A profile is a Claude Code config directory of its own under
|
|
4
|
+
* `DATA_DIR/claude-profiles/<name>/`, handed to the CLI through `CLAUDE_CONFIG_DIR`: the CLI keeps its
|
|
5
|
+
* login (`.credentials.json`, `.claude.json`) there, while the entries that must stay ONE across accounts —
|
|
6
|
+
* the transcripts (`projects/`), settings, skills, plugins and the user memory — are symlinks back into
|
|
7
|
+
* `~/.claude`, so a conversation started under one account resumes under another and every account sees
|
|
8
|
+
* the same hooks and skills.
|
|
9
|
+
*
|
|
10
|
+
* The profile `default` IS `~/.claude` itself: nothing is set for it and nothing is migrated. A process is
|
|
11
|
+
* never switched by swapping files under `~/.claude` (the CLI re-reads its credentials live and EVERY running
|
|
12
|
+
* session would change account at once); the variable is per process, set at spawn.
|
|
13
|
+
*
|
|
14
|
+
* Pure helpers (layout, name gate, resolution, parsers) — the registry and the selection live in
|
|
15
|
+
* `state.json` (`StateStore`), the spawn-side use in the adapters, the UI in
|
|
16
|
+
* `connectors/telegram/commands/claudeAccounts.ts`. Shaped for the later phases: a record carries room for a
|
|
17
|
+
* `limitedUntil` mark and a cached usage snapshot, and the resolver takes the known names so a selection that
|
|
18
|
+
* names a removed profile falls back instead of launching a dead directory.
|
|
19
|
+
*/
|
|
20
|
+
/** The profile that is `~/.claude` itself (no `CLAUDE_CONFIG_DIR`). */
|
|
21
|
+
export declare const defaultClaudeProfileName = "default";
|
|
22
|
+
/** Subdirectory of `DATA_DIR` that holds every profile's config directory. */
|
|
23
|
+
export declare const claudeProfilesDirName = "claude-profiles";
|
|
24
|
+
/**
|
|
25
|
+
* The entries a profile shares with `~/.claude` through symlinks. `projects/` is load-bearing: the bot reads
|
|
26
|
+
* transcripts from `~/.claude/projects` (`getClaudeProjectsRoot`) and `--resume` must find a conversation whatever
|
|
27
|
+
* account started it. The user memory (`CLAUDE.md`) is linked only when it exists (a dangling link would be a
|
|
28
|
+
* file the CLI tries to read on every start).
|
|
29
|
+
*/
|
|
30
|
+
export declare const claudeProfileSharedEntries: readonly ["projects", "settings.json", "skills", "plugins"];
|
|
31
|
+
export declare const claudeProfileOptionalSharedEntries: readonly ["CLAUDE.md"];
|
|
32
|
+
/** Profile names are safe slugs: they become a directory name and a button's `callback_data`. */
|
|
33
|
+
export declare const claudeProfileNameMaxLength = 32;
|
|
34
|
+
/** Longest `callback_data` prefix the account picker uses; with the name cap it stays far under Telegram's 64 bytes. */
|
|
35
|
+
export declare const claudeAccountCallbackPrefix = "acct_";
|
|
36
|
+
/**
|
|
37
|
+
* @description Whether `name` may name a NEW profile: a lowercase slug of at most {@link claudeProfileNameMaxLength}
|
|
38
|
+
* characters that is not the reserved `default`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function checkIsValidClaudeProfileName(name: string): boolean;
|
|
41
|
+
/** Lowercase + trim the operator's typed name before the gate (a `/account add MyWork` means `mywork`). */
|
|
42
|
+
export declare function normaliseClaudeProfileName(raw: string): string;
|
|
43
|
+
export declare function resolveClaudeProfilesRoot(dataDir: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* @description The config directory a profile hands the CLI, or `null` for `default` (nothing is set and the CLI
|
|
46
|
+
* uses `~/.claude`, or whatever `CLAUDE_CONFIG_DIR` the bot itself inherited).
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveClaudeProfileDir(dataDir: string, name: string): string | null;
|
|
49
|
+
/** `~/.claude` — the directory the shared entries link back into. */
|
|
50
|
+
export declare function resolveHomeClaudeDir(homeDir?: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* @description Create a profile's config directory: `0700`, with the shared entries symlinked into `~/.claude`.
|
|
53
|
+
* Idempotent — an existing directory keeps its login and only gains a missing link, so a re-run after a crash is
|
|
54
|
+
* safe. Refuses `default` and an invalid name (defence in depth: the command gate already rejected them).
|
|
55
|
+
* `~/.claude/projects` is created when absent so the link never dangles into the one entry the bot reads.
|
|
56
|
+
*/
|
|
57
|
+
export declare function createClaudeProfileLayout(input: {
|
|
58
|
+
dataDir: string;
|
|
59
|
+
name: string;
|
|
60
|
+
homeClaudeDir?: string;
|
|
61
|
+
}): string;
|
|
62
|
+
/**
|
|
63
|
+
* @description Remove a profile's directory — its login with it. `fs.rmSync` removes the symlinks AS LINKS, so
|
|
64
|
+
* the shared `~/.claude` entries behind them are never touched. Refuses `default`.
|
|
65
|
+
*/
|
|
66
|
+
export declare function removeClaudeProfileLayout(dataDir: string, name: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* @description Sign `~/.claude` (the `default` account) out by deleting ONLY its subscription login: the
|
|
69
|
+
* `claudeAiOauth` entry of `<homeClaudeDir>/.credentials.json`. The file's other entries (`mcpOAuth` tokens
|
|
70
|
+
* of MCP servers) stay; a file left with nothing else is deleted. `projects/`, settings, skills, plugins, the
|
|
71
|
+
* user memory and `~/.claude.json` are never touched. Returns whether a login was found and removed.
|
|
72
|
+
*/
|
|
73
|
+
export declare function signOutDefaultClaudeLogin(homeClaudeDir?: string): boolean;
|
|
74
|
+
/** Whether a profile's directory exists on disk (the login may still be missing — see the auth status). */
|
|
75
|
+
export declare function checkClaudeProfileDirExists(dataDir: string, name: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* @description Which profile a conversation uses: its own override when it names a known profile, else the
|
|
78
|
+
* instance default when THAT is known, else `default`. A selection that names a removed profile is not an
|
|
79
|
+
* error — the conversation silently runs on `default` (the removal already told the operator).
|
|
80
|
+
*/
|
|
81
|
+
export declare function resolveClaudeProfileName(input: {
|
|
82
|
+
globalDefault: string | undefined;
|
|
83
|
+
threadOverride: string | undefined;
|
|
84
|
+
knownNames: ReadonlySet<string>;
|
|
85
|
+
}): string;
|
|
86
|
+
/** What the account picker shows per profile, as the CLI reports it (`claude auth status --json`). */
|
|
87
|
+
export interface ClaudeAuthStatus {
|
|
88
|
+
loggedIn: boolean;
|
|
89
|
+
email: string | null;
|
|
90
|
+
/** `pro` / `max` (personal), `team` / `enterprise` (corporate), or whatever newer CLIs add. */
|
|
91
|
+
subscriptionType: string | null;
|
|
92
|
+
orgName: string | null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* @description Parse the CLI's auth status. `null` for anything that is not the JSON object the CLI prints
|
|
96
|
+
* (the probe failed, an older CLI) — the caller treats it as "unknown", never as "logged out".
|
|
97
|
+
*/
|
|
98
|
+
export declare function parseClaudeAuthStatus(statusJson: string): ClaudeAuthStatus | null;
|
|
99
|
+
/**
|
|
100
|
+
* @description The stdout a failed `execFile` carries, `''` for anything else. `claude auth status --json`
|
|
101
|
+
* exits NON-ZERO for a logged-out directory while printing its JSON (probed on 2.1.296), so the probe's
|
|
102
|
+
* rejection IS the answer — fed to {@link parseClaudeAuthStatus}, which yields `null` for an empty string.
|
|
103
|
+
*/
|
|
104
|
+
export declare function readProcessErrorStdout(error: unknown): string;
|
|
105
|
+
export type ClaudeAccountKind = 'personal' | 'corporate' | 'unknown';
|
|
106
|
+
/** Personal (`pro`, `max`) versus corporate (`team`, `enterprise`) subscription, from the CLI's `subscriptionType`. */
|
|
107
|
+
export declare function getClaudeAccountKind(subscriptionType: string | null): ClaudeAccountKind;
|
|
108
|
+
export declare const claudeConfigDirVariableName = "CLAUDE_CONFIG_DIR";
|
|
109
|
+
/**
|
|
110
|
+
* @description Recover the `CLAUDE_CONFIG_DIR` a running process was started with from its command line —
|
|
111
|
+
* the json-stream wrapper script or a tmux pane's `#{pane_start_command}` — so an adopted process after a bot
|
|
112
|
+
* restart is compared against the profile its topic has NOW (a mismatch is corrected at the next idle point).
|
|
113
|
+
* The value is single-quoted by the bot's own quoting (`shellSingleQuote`), bare in older shapes; `null` when the
|
|
114
|
+
* command carries none (the default profile).
|
|
115
|
+
*/
|
|
116
|
+
export declare function parseClaudeConfigDirFromCommand(command: string): string | null;
|
|
117
|
+
//# sourceMappingURL=claudeProfiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeProfiles.d.ts","sourceRoot":"","sources":["../../src/utils/claudeProfiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,uEAAuE;AACvE,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAElD,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,6DAA8D,CAAC;AACtG,eAAO,MAAM,kCAAkC,wBAAyB,CAAC;AAEzE,iGAAiG;AACjG,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAG7C,wHAAwH;AACxH,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,2GAA2G;AAC3G,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGpF;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA6BlH;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI7E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,GAAE,MAA+B,GAAG,OAAO,CAoBjG;AAED,2GAA2G;AAC3G,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC,GAAG,MAAM,CAMT;AAID,sGAAsG;AACtG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,+FAA+F;IAC/F,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAiBjF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM7D;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAErE,uHAAuH;AACvH,wBAAgB,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAMvF;AAID,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAE/D;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM9E"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Claude ACCOUNT PROFILES — several Claude subscription logins kept side by side, one picked per
|
|
4
|
+
* topic (`/account`). A profile is a Claude Code config directory of its own under
|
|
5
|
+
* `DATA_DIR/claude-profiles/<name>/`, handed to the CLI through `CLAUDE_CONFIG_DIR`: the CLI keeps its
|
|
6
|
+
* login (`.credentials.json`, `.claude.json`) there, while the entries that must stay ONE across accounts —
|
|
7
|
+
* the transcripts (`projects/`), settings, skills, plugins and the user memory — are symlinks back into
|
|
8
|
+
* `~/.claude`, so a conversation started under one account resumes under another and every account sees
|
|
9
|
+
* the same hooks and skills.
|
|
10
|
+
*
|
|
11
|
+
* The profile `default` IS `~/.claude` itself: nothing is set for it and nothing is migrated. A process is
|
|
12
|
+
* never switched by swapping files under `~/.claude` (the CLI re-reads its credentials live and EVERY running
|
|
13
|
+
* session would change account at once); the variable is per process, set at spawn.
|
|
14
|
+
*
|
|
15
|
+
* Pure helpers (layout, name gate, resolution, parsers) — the registry and the selection live in
|
|
16
|
+
* `state.json` (`StateStore`), the spawn-side use in the adapters, the UI in
|
|
17
|
+
* `connectors/telegram/commands/claudeAccounts.ts`. Shaped for the later phases: a record carries room for a
|
|
18
|
+
* `limitedUntil` mark and a cached usage snapshot, and the resolver takes the known names so a selection that
|
|
19
|
+
* names a removed profile falls back instead of launching a dead directory.
|
|
20
|
+
*/
|
|
21
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
24
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
25
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(o, k2, desc);
|
|
28
|
+
}) : (function(o, m, k, k2) {
|
|
29
|
+
if (k2 === undefined) k2 = k;
|
|
30
|
+
o[k2] = m[k];
|
|
31
|
+
}));
|
|
32
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
33
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
34
|
+
}) : function(o, v) {
|
|
35
|
+
o["default"] = v;
|
|
36
|
+
});
|
|
37
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
38
|
+
var ownKeys = function(o) {
|
|
39
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
40
|
+
var ar = [];
|
|
41
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
42
|
+
return ar;
|
|
43
|
+
};
|
|
44
|
+
return ownKeys(o);
|
|
45
|
+
};
|
|
46
|
+
return function (mod) {
|
|
47
|
+
if (mod && mod.__esModule) return mod;
|
|
48
|
+
var result = {};
|
|
49
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
50
|
+
__setModuleDefault(result, mod);
|
|
51
|
+
return result;
|
|
52
|
+
};
|
|
53
|
+
})();
|
|
54
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
55
|
+
exports.claudeConfigDirVariableName = exports.claudeAccountCallbackPrefix = exports.claudeProfileNameMaxLength = exports.claudeProfileOptionalSharedEntries = exports.claudeProfileSharedEntries = exports.claudeProfilesDirName = exports.defaultClaudeProfileName = void 0;
|
|
56
|
+
exports.checkIsValidClaudeProfileName = checkIsValidClaudeProfileName;
|
|
57
|
+
exports.normaliseClaudeProfileName = normaliseClaudeProfileName;
|
|
58
|
+
exports.resolveClaudeProfilesRoot = resolveClaudeProfilesRoot;
|
|
59
|
+
exports.resolveClaudeProfileDir = resolveClaudeProfileDir;
|
|
60
|
+
exports.resolveHomeClaudeDir = resolveHomeClaudeDir;
|
|
61
|
+
exports.createClaudeProfileLayout = createClaudeProfileLayout;
|
|
62
|
+
exports.removeClaudeProfileLayout = removeClaudeProfileLayout;
|
|
63
|
+
exports.signOutDefaultClaudeLogin = signOutDefaultClaudeLogin;
|
|
64
|
+
exports.checkClaudeProfileDirExists = checkClaudeProfileDirExists;
|
|
65
|
+
exports.resolveClaudeProfileName = resolveClaudeProfileName;
|
|
66
|
+
exports.parseClaudeAuthStatus = parseClaudeAuthStatus;
|
|
67
|
+
exports.readProcessErrorStdout = readProcessErrorStdout;
|
|
68
|
+
exports.getClaudeAccountKind = getClaudeAccountKind;
|
|
69
|
+
exports.parseClaudeConfigDirFromCommand = parseClaudeConfigDirFromCommand;
|
|
70
|
+
const fs = __importStar(require("fs"));
|
|
71
|
+
const os = __importStar(require("os"));
|
|
72
|
+
const path = __importStar(require("path"));
|
|
73
|
+
/** The profile that is `~/.claude` itself (no `CLAUDE_CONFIG_DIR`). */
|
|
74
|
+
exports.defaultClaudeProfileName = 'default';
|
|
75
|
+
/** Subdirectory of `DATA_DIR` that holds every profile's config directory. */
|
|
76
|
+
exports.claudeProfilesDirName = 'claude-profiles';
|
|
77
|
+
/**
|
|
78
|
+
* The entries a profile shares with `~/.claude` through symlinks. `projects/` is load-bearing: the bot reads
|
|
79
|
+
* transcripts from `~/.claude/projects` (`getClaudeProjectsRoot`) and `--resume` must find a conversation whatever
|
|
80
|
+
* account started it. The user memory (`CLAUDE.md`) is linked only when it exists (a dangling link would be a
|
|
81
|
+
* file the CLI tries to read on every start).
|
|
82
|
+
*/
|
|
83
|
+
exports.claudeProfileSharedEntries = ['projects', 'settings.json', 'skills', 'plugins'];
|
|
84
|
+
exports.claudeProfileOptionalSharedEntries = ['CLAUDE.md'];
|
|
85
|
+
/** Profile names are safe slugs: they become a directory name and a button's `callback_data`. */
|
|
86
|
+
exports.claudeProfileNameMaxLength = 32;
|
|
87
|
+
const claudeProfileNameRe = /^[a-z0-9][a-z0-9_-]{0,31}$/;
|
|
88
|
+
/** Longest `callback_data` prefix the account picker uses; with the name cap it stays far under Telegram's 64 bytes. */
|
|
89
|
+
exports.claudeAccountCallbackPrefix = 'acct_';
|
|
90
|
+
/**
|
|
91
|
+
* @description Whether `name` may name a NEW profile: a lowercase slug of at most {@link claudeProfileNameMaxLength}
|
|
92
|
+
* characters that is not the reserved `default`.
|
|
93
|
+
*/
|
|
94
|
+
function checkIsValidClaudeProfileName(name) {
|
|
95
|
+
return name !== exports.defaultClaudeProfileName && claudeProfileNameRe.test(name);
|
|
96
|
+
}
|
|
97
|
+
/** Lowercase + trim the operator's typed name before the gate (a `/account add MyWork` means `mywork`). */
|
|
98
|
+
function normaliseClaudeProfileName(raw) {
|
|
99
|
+
return raw.trim().toLowerCase();
|
|
100
|
+
}
|
|
101
|
+
function resolveClaudeProfilesRoot(dataDir) {
|
|
102
|
+
return path.join(dataDir, exports.claudeProfilesDirName);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @description The config directory a profile hands the CLI, or `null` for `default` (nothing is set and the CLI
|
|
106
|
+
* uses `~/.claude`, or whatever `CLAUDE_CONFIG_DIR` the bot itself inherited).
|
|
107
|
+
*/
|
|
108
|
+
function resolveClaudeProfileDir(dataDir, name) {
|
|
109
|
+
if (name === exports.defaultClaudeProfileName)
|
|
110
|
+
return null;
|
|
111
|
+
return path.join(resolveClaudeProfilesRoot(dataDir), name);
|
|
112
|
+
}
|
|
113
|
+
/** `~/.claude` — the directory the shared entries link back into. */
|
|
114
|
+
function resolveHomeClaudeDir(homeDir = os.homedir()) {
|
|
115
|
+
return path.join(homeDir, '.claude');
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* @description Create a profile's config directory: `0700`, with the shared entries symlinked into `~/.claude`.
|
|
119
|
+
* Idempotent — an existing directory keeps its login and only gains a missing link, so a re-run after a crash is
|
|
120
|
+
* safe. Refuses `default` and an invalid name (defence in depth: the command gate already rejected them).
|
|
121
|
+
* `~/.claude/projects` is created when absent so the link never dangles into the one entry the bot reads.
|
|
122
|
+
*/
|
|
123
|
+
function createClaudeProfileLayout(input) {
|
|
124
|
+
const { dataDir, name } = input;
|
|
125
|
+
if (!checkIsValidClaudeProfileName(name))
|
|
126
|
+
throw new Error(`invalid Claude profile name: ${JSON.stringify(name)}`);
|
|
127
|
+
const homeClaudeDir = input.homeClaudeDir ?? resolveHomeClaudeDir();
|
|
128
|
+
const dir = resolveClaudeProfileDir(dataDir, name);
|
|
129
|
+
if (dir === null)
|
|
130
|
+
throw new Error('the default profile has no directory of its own');
|
|
131
|
+
fs.mkdirSync(resolveClaudeProfilesRoot(dataDir), { recursive: true, mode: 0o700 });
|
|
132
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
133
|
+
fs.chmodSync(dir, 0o700);
|
|
134
|
+
fs.mkdirSync(path.join(homeClaudeDir, 'projects'), { recursive: true });
|
|
135
|
+
const linked = [...exports.claudeProfileSharedEntries];
|
|
136
|
+
for (const entry of exports.claudeProfileOptionalSharedEntries) {
|
|
137
|
+
if (fs.existsSync(path.join(homeClaudeDir, entry)))
|
|
138
|
+
linked.push(entry);
|
|
139
|
+
}
|
|
140
|
+
for (const entry of linked) {
|
|
141
|
+
const linkPath = path.join(dir, entry);
|
|
142
|
+
const target = path.join(homeClaudeDir, entry);
|
|
143
|
+
try {
|
|
144
|
+
const existing = fs.lstatSync(linkPath);
|
|
145
|
+
// A real file or dir of the profile's own (the CLI wrote one before the link existed) is left alone.
|
|
146
|
+
if (!existing.isSymbolicLink())
|
|
147
|
+
continue;
|
|
148
|
+
if (fs.readlinkSync(linkPath) === target)
|
|
149
|
+
continue;
|
|
150
|
+
fs.unlinkSync(linkPath);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
/* absent → create below */
|
|
154
|
+
}
|
|
155
|
+
fs.symlinkSync(target, linkPath);
|
|
156
|
+
}
|
|
157
|
+
return dir;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* @description Remove a profile's directory — its login with it. `fs.rmSync` removes the symlinks AS LINKS, so
|
|
161
|
+
* the shared `~/.claude` entries behind them are never touched. Refuses `default`.
|
|
162
|
+
*/
|
|
163
|
+
function removeClaudeProfileLayout(dataDir, name) {
|
|
164
|
+
const dir = resolveClaudeProfileDir(dataDir, name);
|
|
165
|
+
if (dir === null || !checkIsValidClaudeProfileName(name))
|
|
166
|
+
throw new Error(`cannot remove the Claude profile ${JSON.stringify(name)}`);
|
|
167
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* @description Sign `~/.claude` (the `default` account) out by deleting ONLY its subscription login: the
|
|
171
|
+
* `claudeAiOauth` entry of `<homeClaudeDir>/.credentials.json`. The file's other entries (`mcpOAuth` tokens
|
|
172
|
+
* of MCP servers) stay; a file left with nothing else is deleted. `projects/`, settings, skills, plugins, the
|
|
173
|
+
* user memory and `~/.claude.json` are never touched. Returns whether a login was found and removed.
|
|
174
|
+
*/
|
|
175
|
+
function signOutDefaultClaudeLogin(homeClaudeDir = resolveHomeClaudeDir()) {
|
|
176
|
+
const file = path.join(homeClaudeDir, '.credentials.json');
|
|
177
|
+
let parsed;
|
|
178
|
+
try {
|
|
179
|
+
parsed = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed) || !('claudeAiOauth' in parsed))
|
|
185
|
+
return false;
|
|
186
|
+
const rest = { ...parsed };
|
|
187
|
+
delete rest.claudeAiOauth;
|
|
188
|
+
if (Object.keys(rest).length === 0) {
|
|
189
|
+
fs.rmSync(file, { force: true });
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
const mode = fs.statSync(file).mode & 0o777;
|
|
193
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
194
|
+
fs.writeFileSync(tmp, JSON.stringify(rest), { mode });
|
|
195
|
+
fs.renameSync(tmp, file);
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
/** Whether a profile's directory exists on disk (the login may still be missing — see the auth status). */
|
|
199
|
+
function checkClaudeProfileDirExists(dataDir, name) {
|
|
200
|
+
const dir = resolveClaudeProfileDir(dataDir, name);
|
|
201
|
+
return dir === null ? true : fs.existsSync(dir);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* @description Which profile a conversation uses: its own override when it names a known profile, else the
|
|
205
|
+
* instance default when THAT is known, else `default`. A selection that names a removed profile is not an
|
|
206
|
+
* error — the conversation silently runs on `default` (the removal already told the operator).
|
|
207
|
+
*/
|
|
208
|
+
function resolveClaudeProfileName(input) {
|
|
209
|
+
const checkIsKnown = (name) => name !== undefined && (name === exports.defaultClaudeProfileName || input.knownNames.has(name));
|
|
210
|
+
if (checkIsKnown(input.threadOverride))
|
|
211
|
+
return input.threadOverride;
|
|
212
|
+
if (checkIsKnown(input.globalDefault))
|
|
213
|
+
return input.globalDefault;
|
|
214
|
+
return exports.defaultClaudeProfileName;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* @description Parse the CLI's auth status. `null` for anything that is not the JSON object the CLI prints
|
|
218
|
+
* (the probe failed, an older CLI) — the caller treats it as "unknown", never as "logged out".
|
|
219
|
+
*/
|
|
220
|
+
function parseClaudeAuthStatus(statusJson) {
|
|
221
|
+
let parsed;
|
|
222
|
+
try {
|
|
223
|
+
parsed = JSON.parse(statusJson);
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
229
|
+
return null;
|
|
230
|
+
const record = parsed;
|
|
231
|
+
if (typeof record.loggedIn !== 'boolean')
|
|
232
|
+
return null;
|
|
233
|
+
const readString = (value) => (typeof value === 'string' && value.trim() !== '' ? value : null);
|
|
234
|
+
return {
|
|
235
|
+
loggedIn: record.loggedIn,
|
|
236
|
+
email: readString(record.email),
|
|
237
|
+
subscriptionType: readString(record.subscriptionType),
|
|
238
|
+
orgName: readString(record.orgName),
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* @description The stdout a failed `execFile` carries, `''` for anything else. `claude auth status --json`
|
|
243
|
+
* exits NON-ZERO for a logged-out directory while printing its JSON (probed on 2.1.296), so the probe's
|
|
244
|
+
* rejection IS the answer — fed to {@link parseClaudeAuthStatus}, which yields `null` for an empty string.
|
|
245
|
+
*/
|
|
246
|
+
function readProcessErrorStdout(error) {
|
|
247
|
+
if (!error || typeof error !== 'object')
|
|
248
|
+
return '';
|
|
249
|
+
const stdout = error.stdout;
|
|
250
|
+
if (typeof stdout === 'string')
|
|
251
|
+
return stdout;
|
|
252
|
+
if (Buffer.isBuffer(stdout))
|
|
253
|
+
return stdout.toString('utf8');
|
|
254
|
+
return '';
|
|
255
|
+
}
|
|
256
|
+
/** Personal (`pro`, `max`) versus corporate (`team`, `enterprise`) subscription, from the CLI's `subscriptionType`. */
|
|
257
|
+
function getClaudeAccountKind(subscriptionType) {
|
|
258
|
+
if (subscriptionType === null)
|
|
259
|
+
return 'unknown';
|
|
260
|
+
const normalised = subscriptionType.toLowerCase();
|
|
261
|
+
if (normalised === 'pro' || normalised === 'max')
|
|
262
|
+
return 'personal';
|
|
263
|
+
if (normalised === 'team' || normalised === 'enterprise')
|
|
264
|
+
return 'corporate';
|
|
265
|
+
return 'unknown';
|
|
266
|
+
}
|
|
267
|
+
// ── the spawn-side variable ──
|
|
268
|
+
exports.claudeConfigDirVariableName = 'CLAUDE_CONFIG_DIR';
|
|
269
|
+
/**
|
|
270
|
+
* @description Recover the `CLAUDE_CONFIG_DIR` a running process was started with from its command line —
|
|
271
|
+
* the json-stream wrapper script or a tmux pane's `#{pane_start_command}` — so an adopted process after a bot
|
|
272
|
+
* restart is compared against the profile its topic has NOW (a mismatch is corrected at the next idle point).
|
|
273
|
+
* The value is single-quoted by the bot's own quoting (`shellSingleQuote`), bare in older shapes; `null` when the
|
|
274
|
+
* command carries none (the default profile).
|
|
275
|
+
*/
|
|
276
|
+
function parseClaudeConfigDirFromCommand(command) {
|
|
277
|
+
// `shellSingleQuote` wraps the WHOLE assignment (`'CLAUDE_CONFIG_DIR=/dir'`), an embedded quote becoming `'\''`.
|
|
278
|
+
const match = command.match(/(?:^|\s)(?:'CLAUDE_CONFIG_DIR=((?:[^']|'\\'')*)'|"CLAUDE_CONFIG_DIR=([^"]*)"|CLAUDE_CONFIG_DIR=(\S+))/);
|
|
279
|
+
if (!match)
|
|
280
|
+
return null;
|
|
281
|
+
if (match[1] !== undefined)
|
|
282
|
+
return match[1].replace(/'\\''/g, "'");
|
|
283
|
+
return match[2] ?? match[3] ?? null;
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=claudeProfiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeProfiles.js","sourceRoot":"","sources":["../../src/utils/claudeProfiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description PURE decision layer that routes the {@link ClaudeChunkSegment}s
|
|
3
|
+
* of one classified Claude scrape chunk through a thread's display-verbosity
|
|
4
|
+
* prefs (S4 `/tool_results`). Given the ordered, tagged segments and the
|
|
5
|
+
* resolved prefs it decides — per segment — whether the lines are RELAYED as
|
|
6
|
+
* permanent output, TRUNCATED, or FOLDED into the rolling status frame, and
|
|
7
|
+
* returns the reassembled permanent text plus the latest folded activity line.
|
|
8
|
+
*
|
|
9
|
+
* Kept pure (no tmux / emit) so the segment×pref matrix is unit-testable
|
|
10
|
+
* without the live relay — same shape as `toolResultRender.ts` /
|
|
11
|
+
* `subagentRender.ts`. The Claude adapter's `pollOutput` calls this, then feeds
|
|
12
|
+
* `keptText` through `stripTuiElementsWithContext` exactly as the pre-S4 path
|
|
13
|
+
* did (the stripper stays the chrome/fence backstop).
|
|
14
|
+
*
|
|
15
|
+
* Scope: the TOOL, THINKING and PANEL-PREVIEW segments branch on a pref.
|
|
16
|
+
* - `thinkingBlock` follows the `/thinking` pref (S5): full keeps it verbatim;
|
|
17
|
+
* short collapses to one `💭 thought for {N}s` when a duration is parseable
|
|
18
|
+
* from the block, else folds the live `☁️ thinking …` into status; minimal
|
|
19
|
+
* always folds the live status, nothing permanent.
|
|
20
|
+
* - `subagentPanelPreview` is ALWAYS folded to status (the overview-2 flood;
|
|
21
|
+
* S6 formalises, doing it here is part of killing the flood).
|
|
22
|
+
* - `prose` is ALWAYS kept (the agent's answer is never swallowed).
|
|
23
|
+
* - `chrome` is ALWAYS dropped (as the pre-S4 stripper did).
|
|
24
|
+
*/
|
|
25
|
+
import { type ClaudeChunkSegment } from './claudeChunkClassifier';
|
|
26
|
+
import type { DisplayVerbosityMode } from '../types';
|
|
27
|
+
/** Result of {@link routeClaudeChunkSegments}. */
|
|
28
|
+
export interface ClaudeRelayRouting {
|
|
29
|
+
/** The lines to relay as PERMANENT output (reassembled, NL-joined). May be
|
|
30
|
+
* empty when every routable segment folded to status. */
|
|
31
|
+
keptText: string;
|
|
32
|
+
/** The LATEST folded activity (a `minimal` tool header, a panel preview, or a
|
|
33
|
+
* folded `☁️ thinking …` status) to show in the rolling status frame, or null
|
|
34
|
+
* when nothing folded. */
|
|
35
|
+
activityLine: string | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @description Extract a compact tool label from a tool-header line for the
|
|
39
|
+
* folded `minimal` activity line. Returns the tool NAME (`Bash`, `Read`, …)
|
|
40
|
+
* when recognised, else the trimmed first line as a last resort (never empty).
|
|
41
|
+
*/
|
|
42
|
+
export declare function getToolActivityLabel(headerText: string): string;
|
|
43
|
+
/**
|
|
44
|
+
* @description Route one classified chunk's segments through the tool-results
|
|
45
|
+
* mode (S4). Walks the segments IN ORDER so `keptText` preserves the pane's
|
|
46
|
+
* line order; `activityLine` carries only the LAST folded activity (the status
|
|
47
|
+
* frame shows one line). Pure — the caller threads cross-poll fence context and
|
|
48
|
+
* does the strip/emit.
|
|
49
|
+
*
|
|
50
|
+
* Per tag:
|
|
51
|
+
* - `prose` → keep verbatim (always).
|
|
52
|
+
* - `thinkingBlock` → full: keep verbatim; short: collapse to one
|
|
53
|
+
* `💭 thought for {N}s` when a duration is parseable,
|
|
54
|
+
* else fold the live `☁️ thinking …`; minimal: always
|
|
55
|
+
* fold the live status, nothing permanent.
|
|
56
|
+
* - `toolHeader`/`toolBody`→ full: keep; short: keep header, truncate body;
|
|
57
|
+
* minimal: drop, fold a `🔧 <tool> …` activity from
|
|
58
|
+
* the latest header (built by the caller via i18n).
|
|
59
|
+
* - `subagentPanelPreview` → always fold (drop, contribute an activity).
|
|
60
|
+
* - `chrome` → drop.
|
|
61
|
+
*
|
|
62
|
+
* @param segments classified segments, original order.
|
|
63
|
+
* @param toolResultsMode the thread's `/tool_results` pref.
|
|
64
|
+
* @param thinkingMode the thread's `/thinking` pref (S5).
|
|
65
|
+
* @param buildToolActivity caller-supplied builder turning a tool label into a
|
|
66
|
+
* user-facing activity line (keeps i18n in `bot.ts`/`i18n.ts`, not here).
|
|
67
|
+
* @param buildPanelActivity caller-supplied builder for a folded panel preview.
|
|
68
|
+
* @param buildThinkingActivity caller-supplied builder for the folded live
|
|
69
|
+
* `☁️ thinking …` status line (short with no duration / minimal).
|
|
70
|
+
* @param buildThoughtCollapsed caller-supplied builder turning a parsed duration
|
|
71
|
+
* into the permanent `💭 thought for {N}s` line (short with a duration).
|
|
72
|
+
* @param truncationFooter the i18n "… (truncated, /tool_results full)" line
|
|
73
|
+
* appended to a `short`-mode body that was actually capped — parity with the
|
|
74
|
+
* OpenCode short path so a Claude user also learns `full` reveals the rest.
|
|
75
|
+
*/
|
|
76
|
+
export declare function routeClaudeChunkSegments(segments: ClaudeChunkSegment[], toolResultsMode: DisplayVerbosityMode, thinkingMode: DisplayVerbosityMode, buildToolActivity: (toolLabel: string) => string, buildPanelActivity: () => string, buildThinkingActivity: () => string, buildThoughtCollapsed: (seconds: number) => string, truncationFooter: string): ClaudeRelayRouting;
|
|
77
|
+
/**
|
|
78
|
+
* @description Whether a classified chunk can skip the segment-walk and run the
|
|
79
|
+
* pre-S4 direct strip→emit path BYTE-IDENTICALLY: all-`full` tool + thinking
|
|
80
|
+
* prefs AND no sub-agent panel-preview segment (the one thing the old path did
|
|
81
|
+
* NOT fold). The regression anchor — when true the relay output is provably the
|
|
82
|
+
* same as before S4. (Re-exported as a named helper so the live fast-path and
|
|
83
|
+
* its test assert the SAME predicate.)
|
|
84
|
+
*/
|
|
85
|
+
export declare function checkIsClaudeRelayFastPath(segments: ClaudeChunkSegment[], toolResultsMode: DisplayVerbosityMode, thinkingMode: DisplayVerbosityMode): boolean;
|
|
86
|
+
//# sourceMappingURL=claudeRelayRouting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeRelayRouting.d.ts","sourceRoot":"","sources":["../../src/utils/claudeRelayRouting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAOrD,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC;6DACyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB;;8BAE0B;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,oBAAoB,EAClC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,EAChD,kBAAkB,EAAE,MAAM,MAAM,EAChC,qBAAqB,EAAE,MAAM,MAAM,EACnC,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAClD,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,CAkEpB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAGT"}
|