charness 0.0.0-stage → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +88 -0
- package/DEVELOPMENT.md +110 -0
- package/LICENSE +21 -0
- package/MIGRATION_1_TO_2.md +24 -0
- package/README.md +1024 -2
- package/dist/accessControl.d.ts +71 -0
- package/dist/accessControl.d.ts.map +1 -0
- package/dist/accessControl.js +108 -0
- package/dist/accessControl.js.map +1 -0
- package/dist/adapters/adapterEventRouting.d.ts +51 -0
- package/dist/adapters/adapterEventRouting.d.ts.map +1 -0
- package/dist/adapters/adapterEventRouting.js +74 -0
- package/dist/adapters/adapterEventRouting.js.map +1 -0
- package/dist/adapters/adapterNames.d.ts +19 -0
- package/dist/adapters/adapterNames.d.ts.map +1 -0
- package/dist/adapters/adapterNames.js +25 -0
- package/dist/adapters/adapterNames.js.map +1 -0
- package/dist/adapters/claudeCliAdapter.d.ts +1336 -0
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeCliAdapter.js +4204 -0
- package/dist/adapters/claudeCliAdapter.js.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +548 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
- package/dist/adapters/claudeJsonStreamAdapter.js +1810 -0
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -0
- package/dist/adapters/claudePlatformFlags.d.ts +35 -0
- package/dist/adapters/claudePlatformFlags.d.ts.map +1 -0
- package/dist/adapters/claudePlatformFlags.js +46 -0
- package/dist/adapters/claudePlatformFlags.js.map +1 -0
- package/dist/adapters/createAdapter.d.ts +252 -0
- package/dist/adapters/createAdapter.d.ts.map +1 -0
- package/dist/adapters/createAdapter.js +475 -0
- package/dist/adapters/createAdapter.js.map +1 -0
- package/dist/adapters/openCodeAdapter.d.ts +1446 -0
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
- package/dist/adapters/openCodeAdapter.js +4540 -0
- package/dist/adapters/openCodeAdapter.js.map +1 -0
- package/dist/adapters/sessionLaunchDefaults.d.ts +28 -0
- package/dist/adapters/sessionLaunchDefaults.d.ts.map +1 -0
- package/dist/adapters/sessionLaunchDefaults.js +15 -0
- package/dist/adapters/sessionLaunchDefaults.js.map +1 -0
- package/dist/adapters/terminalAdapter.d.ts +68 -0
- package/dist/adapters/terminalAdapter.d.ts.map +1 -0
- package/dist/adapters/terminalAdapter.js +371 -0
- package/dist/adapters/terminalAdapter.js.map +1 -0
- package/dist/agentLogin/agentLogin.d.ts +31 -0
- package/dist/agentLogin/agentLogin.d.ts.map +1 -0
- package/dist/agentLogin/agentLogin.js +493 -0
- package/dist/agentLogin/agentLogin.js.map +1 -0
- package/dist/agentTrigger.d.ts +28 -0
- package/dist/agentTrigger.d.ts.map +1 -0
- package/dist/agentTrigger.js +53 -0
- package/dist/agentTrigger.js.map +1 -0
- package/dist/apiErrorRetry.d.ts +209 -0
- package/dist/apiErrorRetry.d.ts.map +1 -0
- package/dist/apiErrorRetry.js +351 -0
- package/dist/apiErrorRetry.js.map +1 -0
- package/dist/apiRetryKick.d.ts +148 -0
- package/dist/apiRetryKick.d.ts.map +1 -0
- package/dist/apiRetryKick.js +158 -0
- package/dist/apiRetryKick.js.map +1 -0
- package/dist/bootClassifier.d.ts +46 -0
- package/dist/bootClassifier.d.ts.map +1 -0
- package/dist/bootClassifier.js +43 -0
- package/dist/bootClassifier.js.map +1 -0
- package/dist/bot.d.ts +207 -0
- package/dist/bot.d.ts.map +1 -0
- package/dist/bot.js +10611 -0
- package/dist/bot.js.map +1 -0
- package/dist/botFileStorage.d.ts +60 -0
- package/dist/botFileStorage.d.ts.map +1 -0
- package/dist/botFileStorage.js +205 -0
- package/dist/botFileStorage.js.map +1 -0
- package/dist/cli/applyDnsFix.d.ts +7 -0
- package/dist/cli/applyDnsFix.d.ts.map +1 -0
- package/dist/cli/applyDnsFix.js +46 -0
- package/dist/cli/applyDnsFix.js.map +1 -0
- package/dist/cli/bot.d.ts +27 -0
- package/dist/cli/bot.d.ts.map +1 -0
- package/dist/cli/bot.js +98 -0
- package/dist/cli/bot.js.map +1 -0
- package/dist/cli/botEntry.d.ts +3 -0
- package/dist/cli/botEntry.d.ts.map +1 -0
- package/dist/cli/botEntry.js +11 -0
- package/dist/cli/botEntry.js.map +1 -0
- package/dist/cli/connectorGuards.d.ts +31 -0
- package/dist/cli/connectorGuards.d.ts.map +1 -0
- package/dist/cli/connectorGuards.js +159 -0
- package/dist/cli/connectorGuards.js.map +1 -0
- package/dist/cli/envLoader.d.ts +34 -0
- package/dist/cli/envLoader.d.ts.map +1 -0
- package/dist/cli/envLoader.js +132 -0
- package/dist/cli/envLoader.js.map +1 -0
- package/dist/cli/hot.d.ts +82 -0
- package/dist/cli/hot.d.ts.map +1 -0
- package/dist/cli/hot.js +323 -0
- package/dist/cli/hot.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +130 -0
- package/dist/cli.js.map +1 -0
- package/dist/connectors/jira/adf.d.ts +72 -0
- package/dist/connectors/jira/adf.d.ts.map +1 -0
- package/dist/connectors/jira/adf.js +407 -0
- package/dist/connectors/jira/adf.js.map +1 -0
- package/dist/connectors/jira/agentBinaries.d.ts +14 -0
- package/dist/connectors/jira/agentBinaries.d.ts.map +1 -0
- package/dist/connectors/jira/agentBinaries.js +75 -0
- package/dist/connectors/jira/agentBinaries.js.map +1 -0
- package/dist/connectors/jira/answerSink.d.ts +52 -0
- package/dist/connectors/jira/answerSink.d.ts.map +1 -0
- package/dist/connectors/jira/answerSink.js +220 -0
- package/dist/connectors/jira/answerSink.js.map +1 -0
- package/dist/connectors/jira/attachmentDownload.d.ts +41 -0
- package/dist/connectors/jira/attachmentDownload.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentDownload.js +92 -0
- package/dist/connectors/jira/attachmentDownload.js.map +1 -0
- package/dist/connectors/jira/attachmentTool.d.ts +43 -0
- package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
- package/dist/connectors/jira/attachmentTool.js +150 -0
- package/dist/connectors/jira/attachmentTool.js.map +1 -0
- package/dist/connectors/jira/client.d.ts +490 -0
- package/dist/connectors/jira/client.d.ts.map +1 -0
- package/dist/connectors/jira/client.js +453 -0
- package/dist/connectors/jira/client.js.map +1 -0
- package/dist/connectors/jira/config.d.ts +117 -0
- package/dist/connectors/jira/config.d.ts.map +1 -0
- package/dist/connectors/jira/config.js +350 -0
- package/dist/connectors/jira/config.js.map +1 -0
- package/dist/connectors/jira/configFile.d.ts +10 -0
- package/dist/connectors/jira/configFile.d.ts.map +1 -0
- package/dist/connectors/jira/configFile.js +50 -0
- package/dist/connectors/jira/configFile.js.map +1 -0
- package/dist/connectors/jira/connector.d.ts +68 -0
- package/dist/connectors/jira/connector.d.ts.map +1 -0
- package/dist/connectors/jira/connector.js +257 -0
- package/dist/connectors/jira/connector.js.map +1 -0
- package/dist/connectors/jira/contextLedger.d.ts +59 -0
- package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
- package/dist/connectors/jira/contextLedger.js +194 -0
- package/dist/connectors/jira/contextLedger.js.map +1 -0
- package/dist/connectors/jira/contextPreamble.d.ts +18 -0
- package/dist/connectors/jira/contextPreamble.d.ts.map +1 -0
- package/dist/connectors/jira/contextPreamble.js +31 -0
- package/dist/connectors/jira/contextPreamble.js.map +1 -0
- package/dist/connectors/jira/inbound.d.ts +132 -0
- package/dist/connectors/jira/inbound.d.ts.map +1 -0
- package/dist/connectors/jira/inbound.js +316 -0
- package/dist/connectors/jira/inbound.js.map +1 -0
- package/dist/connectors/jira/issueBlocks.d.ts +51 -0
- package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
- package/dist/connectors/jira/issueBlocks.js +182 -0
- package/dist/connectors/jira/issueBlocks.js.map +1 -0
- package/dist/connectors/jira/issueContext.d.ts +25 -0
- package/dist/connectors/jira/issueContext.d.ts.map +1 -0
- package/dist/connectors/jira/issueContext.js +53 -0
- package/dist/connectors/jira/issueContext.js.map +1 -0
- package/dist/connectors/jira/issueDelta.d.ts +35 -0
- package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
- package/dist/connectors/jira/issueDelta.js +50 -0
- package/dist/connectors/jira/issueDelta.js.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts +20 -0
- package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
- package/dist/connectors/jira/mediaPlaceholders.js +92 -0
- package/dist/connectors/jira/mediaPlaceholders.js.map +1 -0
- package/dist/connectors/jira/outbound.d.ts +6 -0
- package/dist/connectors/jira/outbound.d.ts.map +1 -0
- package/dist/connectors/jira/outbound.js +38 -0
- package/dist/connectors/jira/outbound.js.map +1 -0
- package/dist/connectors/jira/prompt.d.ts +37 -0
- package/dist/connectors/jira/prompt.d.ts.map +1 -0
- package/dist/connectors/jira/prompt.js +99 -0
- package/dist/connectors/jira/prompt.js.map +1 -0
- package/dist/connectors/jira/promptSpill.d.ts +50 -0
- package/dist/connectors/jira/promptSpill.d.ts.map +1 -0
- package/dist/connectors/jira/promptSpill.js +157 -0
- package/dist/connectors/jira/promptSpill.js.map +1 -0
- package/dist/connectors/jira/promptText.d.ts +7 -0
- package/dist/connectors/jira/promptText.d.ts.map +1 -0
- package/dist/connectors/jira/promptText.js +26 -0
- package/dist/connectors/jira/promptText.js.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts +16 -0
- package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/jira/sessionKeyCodec.js +101 -0
- package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/jira/trigger.d.ts +50 -0
- package/dist/connectors/jira/trigger.d.ts.map +1 -0
- package/dist/connectors/jira/trigger.js +93 -0
- package/dist/connectors/jira/trigger.js.map +1 -0
- package/dist/connectors/jira/triggerLog.d.ts +51 -0
- package/dist/connectors/jira/triggerLog.d.ts.map +1 -0
- package/dist/connectors/jira/triggerLog.js +78 -0
- package/dist/connectors/jira/triggerLog.js.map +1 -0
- package/dist/connectors/jira/unconfirmedPosts.d.ts +58 -0
- package/dist/connectors/jira/unconfirmedPosts.d.ts.map +1 -0
- package/dist/connectors/jira/unconfirmedPosts.js +105 -0
- package/dist/connectors/jira/unconfirmedPosts.js.map +1 -0
- package/dist/connectors/telegram/answerSink.d.ts +46 -0
- package/dist/connectors/telegram/answerSink.d.ts.map +1 -0
- package/dist/connectors/telegram/answerSink.js +71 -0
- package/dist/connectors/telegram/answerSink.js.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +31 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js +142 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -0
- package/dist/connectors/telegram/commands/botCore.d.ts +46 -0
- package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/botCore.js +3 -0
- package/dist/connectors/telegram/commands/botCore.js.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.js +13 -0
- package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -0
- package/dist/connectors/telegram/commands/compaction.d.ts +47 -0
- package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/compaction.js +868 -0
- package/dist/connectors/telegram/commands/compaction.js.map +1 -0
- package/dist/connectors/telegram/commands/displayModes.d.ts +13 -0
- package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/displayModes.js +335 -0
- package/dist/connectors/telegram/commands/displayModes.js.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts +95 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.js +841 -0
- package/dist/connectors/telegram/commands/modelProviders.js.map +1 -0
- package/dist/connectors/telegram/commands/reminders.d.ts +54 -0
- package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/reminders.js +624 -0
- package/dist/connectors/telegram/commands/reminders.js.map +1 -0
- package/dist/connectors/telegram/fileIntake.d.ts +166 -0
- package/dist/connectors/telegram/fileIntake.d.ts.map +1 -0
- package/dist/connectors/telegram/fileIntake.js +304 -0
- package/dist/connectors/telegram/fileIntake.js.map +1 -0
- package/dist/connectors/telegram/fileSendGateway.d.ts +57 -0
- package/dist/connectors/telegram/fileSendGateway.d.ts.map +1 -0
- package/dist/connectors/telegram/fileSendGateway.js +221 -0
- package/dist/connectors/telegram/fileSendGateway.js.map +1 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.d.ts +52 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.d.ts.map +1 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.js +71 -0
- package/dist/connectors/telegram/foreignKeyFallbacks.js.map +1 -0
- package/dist/connectors/telegram/inbound.d.ts +131 -0
- package/dist/connectors/telegram/inbound.d.ts.map +1 -0
- package/dist/connectors/telegram/inbound.js +278 -0
- package/dist/connectors/telegram/inbound.js.map +1 -0
- package/dist/connectors/telegram/languagePicker.d.ts +32 -0
- package/dist/connectors/telegram/languagePicker.d.ts.map +1 -0
- package/dist/connectors/telegram/languagePicker.js +55 -0
- package/dist/connectors/telegram/languagePicker.js.map +1 -0
- package/dist/connectors/telegram/messageSplit.d.ts +62 -0
- package/dist/connectors/telegram/messageSplit.d.ts.map +1 -0
- package/dist/connectors/telegram/messageSplit.js +119 -0
- package/dist/connectors/telegram/messageSplit.js.map +1 -0
- package/dist/connectors/telegram/outbound.d.ts +62 -0
- package/dist/connectors/telegram/outbound.d.ts.map +1 -0
- package/dist/connectors/telegram/outbound.js +116 -0
- package/dist/connectors/telegram/outbound.js.map +1 -0
- package/dist/connectors/telegram/output/createOutputTransport.d.ts +34 -0
- package/dist/connectors/telegram/output/createOutputTransport.d.ts.map +1 -0
- package/dist/connectors/telegram/output/createOutputTransport.js +77 -0
- package/dist/connectors/telegram/output/createOutputTransport.js.map +1 -0
- package/dist/connectors/telegram/output/dmOutputTransport.d.ts +47 -0
- package/dist/connectors/telegram/output/dmOutputTransport.d.ts.map +1 -0
- package/dist/connectors/telegram/output/dmOutputTransport.js +412 -0
- package/dist/connectors/telegram/output/dmOutputTransport.js.map +1 -0
- package/dist/connectors/telegram/outputBacklogGlue.d.ts +38 -0
- package/dist/connectors/telegram/outputBacklogGlue.d.ts.map +1 -0
- package/dist/connectors/telegram/outputBacklogGlue.js +49 -0
- package/dist/connectors/telegram/outputBacklogGlue.js.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts +93 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.js +120 -0
- package/dist/connectors/telegram/outputFlushPlan.js.map +1 -0
- package/dist/connectors/telegram/questionKeyboards.d.ts +30 -0
- package/dist/connectors/telegram/questionKeyboards.d.ts.map +1 -0
- package/dist/connectors/telegram/questionKeyboards.js +37 -0
- package/dist/connectors/telegram/questionKeyboards.js.map +1 -0
- package/dist/connectors/telegram/renderAgentHtml.d.ts +27 -0
- package/dist/connectors/telegram/renderAgentHtml.d.ts.map +1 -0
- package/dist/connectors/telegram/renderAgentHtml.js +97 -0
- package/dist/connectors/telegram/renderAgentHtml.js.map +1 -0
- package/dist/connectors/telegram/sessionKeyCodec.d.ts +28 -0
- package/dist/connectors/telegram/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/telegram/sessionKeyCodec.js +107 -0
- package/dist/connectors/telegram/sessionKeyCodec.js.map +1 -0
- package/dist/connectors/telegram/telegramCallGuard.d.ts +19 -0
- package/dist/connectors/telegram/telegramCallGuard.d.ts.map +1 -0
- package/dist/connectors/telegram/telegramCallGuard.js +35 -0
- package/dist/connectors/telegram/telegramCallGuard.js.map +1 -0
- package/dist/connectors/telegram/timezonePicker.d.ts +85 -0
- package/dist/connectors/telegram/timezonePicker.d.ts.map +1 -0
- package/dist/connectors/telegram/timezonePicker.js +142 -0
- package/dist/connectors/telegram/timezonePicker.js.map +1 -0
- package/dist/connectors/telegram/updateDispatcher.d.ts +85 -0
- package/dist/connectors/telegram/updateDispatcher.d.ts.map +1 -0
- package/dist/connectors/telegram/updateDispatcher.js +159 -0
- package/dist/connectors/telegram/updateDispatcher.js.map +1 -0
- package/dist/connectors/test/connector.d.ts +52 -0
- package/dist/connectors/test/connector.d.ts.map +1 -0
- package/dist/connectors/test/connector.js +143 -0
- package/dist/connectors/test/connector.js.map +1 -0
- package/dist/connectors/test/sessionKeyCodec.d.ts +25 -0
- package/dist/connectors/test/sessionKeyCodec.d.ts.map +1 -0
- package/dist/connectors/test/sessionKeyCodec.js +50 -0
- package/dist/connectors/test/sessionKeyCodec.js.map +1 -0
- package/dist/diagLog.d.ts +6 -0
- package/dist/diagLog.d.ts.map +1 -0
- package/dist/diagLog.js +58 -0
- package/dist/diagLog.js.map +1 -0
- package/dist/effortLevels.d.ts +68 -0
- package/dist/effortLevels.d.ts.map +1 -0
- package/dist/effortLevels.js +114 -0
- package/dist/effortLevels.js.map +1 -0
- package/dist/folderName.d.ts +42 -0
- package/dist/folderName.d.ts.map +1 -0
- package/dist/folderName.js +51 -0
- package/dist/folderName.js.map +1 -0
- package/dist/i18n/de.d.ts +2 -0
- package/dist/i18n/de.d.ts.map +1 -0
- package/dist/i18n/de.js +537 -0
- package/dist/i18n/de.js.map +1 -0
- package/dist/i18n/en.d.ts +7 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +566 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/es.d.ts +2 -0
- package/dist/i18n/es.d.ts.map +1 -0
- package/dist/i18n/es.js +537 -0
- package/dist/i18n/es.js.map +1 -0
- package/dist/i18n/fr.d.ts +2 -0
- package/dist/i18n/fr.d.ts.map +1 -0
- package/dist/i18n/fr.js +537 -0
- package/dist/i18n/fr.js.map +1 -0
- package/dist/i18n/hi.d.ts +2 -0
- package/dist/i18n/hi.d.ts.map +1 -0
- package/dist/i18n/hi.js +537 -0
- package/dist/i18n/hi.js.map +1 -0
- package/dist/i18n/ja.d.ts +2 -0
- package/dist/i18n/ja.d.ts.map +1 -0
- package/dist/i18n/ja.js +537 -0
- package/dist/i18n/ja.js.map +1 -0
- package/dist/i18n/ka.d.ts +2 -0
- package/dist/i18n/ka.d.ts.map +1 -0
- package/dist/i18n/ka.js +537 -0
- package/dist/i18n/ka.js.map +1 -0
- package/dist/i18n/pt.d.ts +2 -0
- package/dist/i18n/pt.d.ts.map +1 -0
- package/dist/i18n/pt.js +537 -0
- package/dist/i18n/pt.js.map +1 -0
- package/dist/i18n/ru.d.ts +6 -0
- package/dist/i18n/ru.d.ts.map +1 -0
- package/dist/i18n/ru.js +540 -0
- package/dist/i18n/ru.js.map +1 -0
- package/dist/i18n/uk.d.ts +8 -0
- package/dist/i18n/uk.d.ts.map +1 -0
- package/dist/i18n/uk.js +542 -0
- package/dist/i18n/uk.js.map +1 -0
- package/dist/i18n/uz.d.ts +2 -0
- package/dist/i18n/uz.d.ts.map +1 -0
- package/dist/i18n/uz.js +537 -0
- package/dist/i18n/uz.js.map +1 -0
- package/dist/i18n/zh.d.ts +2 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/i18n/zh.js +537 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/i18n.d.ts +115 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +233 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/installManager.d.ts +99 -0
- package/dist/installManager.d.ts.map +1 -0
- package/dist/installManager.js +943 -0
- package/dist/installManager.js.map +1 -0
- package/dist/instanceLock.d.ts +161 -0
- package/dist/instanceLock.d.ts.map +1 -0
- package/dist/instanceLock.js +388 -0
- package/dist/instanceLock.js.map +1 -0
- package/dist/mcpConfig.d.ts +76 -0
- package/dist/mcpConfig.d.ts.map +1 -0
- package/dist/mcpConfig.js +270 -0
- package/dist/mcpConfig.js.map +1 -0
- package/dist/openCodeOpenQuestion.d.ts +44 -0
- package/dist/openCodeOpenQuestion.d.ts.map +1 -0
- package/dist/openCodeOpenQuestion.js +64 -0
- package/dist/openCodeOpenQuestion.js.map +1 -0
- package/dist/openCodeQuestionFlow.d.ts +105 -0
- package/dist/openCodeQuestionFlow.d.ts.map +1 -0
- package/dist/openCodeQuestionFlow.js +143 -0
- package/dist/openCodeQuestionFlow.js.map +1 -0
- package/dist/openCodeSessionRouting.d.ts +133 -0
- package/dist/openCodeSessionRouting.d.ts.map +1 -0
- package/dist/openCodeSessionRouting.js +253 -0
- package/dist/openCodeSessionRouting.js.map +1 -0
- package/dist/openCodeSessionTitle.d.ts +50 -0
- package/dist/openCodeSessionTitle.d.ts.map +1 -0
- package/dist/openCodeSessionTitle.js +84 -0
- package/dist/openCodeSessionTitle.js.map +1 -0
- package/dist/outputTrace.d.ts +108 -0
- package/dist/outputTrace.d.ts.map +1 -0
- package/dist/outputTrace.js +430 -0
- package/dist/outputTrace.js.map +1 -0
- package/dist/pendingQuestionRepost.d.ts +47 -0
- package/dist/pendingQuestionRepost.d.ts.map +1 -0
- package/dist/pendingQuestionRepost.js +29 -0
- package/dist/pendingQuestionRepost.js.map +1 -0
- package/dist/pinnedStatus.d.ts +52 -0
- package/dist/pinnedStatus.d.ts.map +1 -0
- package/dist/pinnedStatus.js +36 -0
- package/dist/pinnedStatus.js.map +1 -0
- package/dist/platform/answerSink.d.ts +93 -0
- package/dist/platform/answerSink.d.ts.map +1 -0
- package/dist/platform/answerSink.js +31 -0
- package/dist/platform/answerSink.js.map +1 -0
- package/dist/platform/capabilityFallback.d.ts +39 -0
- package/dist/platform/capabilityFallback.d.ts.map +1 -0
- package/dist/platform/capabilityFallback.js +55 -0
- package/dist/platform/capabilityFallback.js.map +1 -0
- package/dist/platform/commandRouter.d.ts +51 -0
- package/dist/platform/commandRouter.d.ts.map +1 -0
- package/dist/platform/commandRouter.js +53 -0
- package/dist/platform/commandRouter.js.map +1 -0
- package/dist/platform/connectorSet.d.ts +39 -0
- package/dist/platform/connectorSet.d.ts.map +1 -0
- package/dist/platform/connectorSet.js +55 -0
- package/dist/platform/connectorSet.js.map +1 -0
- package/dist/platform/inbound.d.ts +147 -0
- package/dist/platform/inbound.d.ts.map +1 -0
- package/dist/platform/inbound.js +18 -0
- package/dist/platform/inbound.js.map +1 -0
- package/dist/platform/outbound.d.ts +225 -0
- package/dist/platform/outbound.d.ts.map +1 -0
- package/dist/platform/outbound.js +30 -0
- package/dist/platform/outbound.js.map +1 -0
- package/dist/platform/unservedStateGuard.d.ts +27 -0
- package/dist/platform/unservedStateGuard.d.ts.map +1 -0
- package/dist/platform/unservedStateGuard.js +42 -0
- package/dist/platform/unservedStateGuard.js.map +1 -0
- package/dist/postToSession.d.ts +94 -0
- package/dist/postToSession.d.ts.map +1 -0
- package/dist/postToSession.js +56 -0
- package/dist/postToSession.js.map +1 -0
- package/dist/progressLine.d.ts +180 -0
- package/dist/progressLine.d.ts.map +1 -0
- package/dist/progressLine.js +293 -0
- package/dist/progressLine.js.map +1 -0
- package/dist/rateLimiter.d.ts +246 -0
- package/dist/rateLimiter.d.ts.map +1 -0
- package/dist/rateLimiter.js +555 -0
- package/dist/rateLimiter.js.map +1 -0
- package/dist/requests/answerRequest.d.ts +57 -0
- package/dist/requests/answerRequest.d.ts.map +1 -0
- package/dist/requests/answerRequest.js +96 -0
- package/dist/requests/answerRequest.js.map +1 -0
- package/dist/requests/answerTail.d.ts +83 -0
- package/dist/requests/answerTail.d.ts.map +1 -0
- package/dist/requests/answerTail.js +102 -0
- package/dist/requests/answerTail.js.map +1 -0
- package/dist/requests/limitWaitAnswer.d.ts +87 -0
- package/dist/requests/limitWaitAnswer.d.ts.map +1 -0
- package/dist/requests/limitWaitAnswer.js +83 -0
- package/dist/requests/limitWaitAnswer.js.map +1 -0
- package/dist/requests/requestGroup.d.ts +44 -0
- package/dist/requests/requestGroup.d.ts.map +1 -0
- package/dist/requests/requestGroup.js +63 -0
- package/dist/requests/requestGroup.js.map +1 -0
- package/dist/requests/requestHeader.d.ts +70 -0
- package/dist/requests/requestHeader.d.ts.map +1 -0
- package/dist/requests/requestHeader.js +83 -0
- package/dist/requests/requestHeader.js.map +1 -0
- package/dist/requests/requestLedger.d.ts +217 -0
- package/dist/requests/requestLedger.d.ts.map +1 -0
- package/dist/requests/requestLedger.js +468 -0
- package/dist/requests/requestLedger.js.map +1 -0
- package/dist/requests/sessionTurnProbe.d.ts +52 -0
- package/dist/requests/sessionTurnProbe.d.ts.map +1 -0
- package/dist/requests/sessionTurnProbe.js +29 -0
- package/dist/requests/sessionTurnProbe.js.map +1 -0
- package/dist/requests/types.d.ts +181 -0
- package/dist/requests/types.d.ts.map +1 -0
- package/dist/requests/types.js +9 -0
- package/dist/requests/types.js.map +1 -0
- package/dist/requests/wakeUpEngine.d.ts +160 -0
- package/dist/requests/wakeUpEngine.d.ts.map +1 -0
- package/dist/requests/wakeUpEngine.js +399 -0
- package/dist/requests/wakeUpEngine.js.map +1 -0
- package/dist/requests/wakeUpRules.d.ts +151 -0
- package/dist/requests/wakeUpRules.d.ts.map +1 -0
- package/dist/requests/wakeUpRules.js +167 -0
- package/dist/requests/wakeUpRules.js.map +1 -0
- package/dist/resumeContext.d.ts +87 -0
- package/dist/resumeContext.d.ts.map +1 -0
- package/dist/resumeContext.js +114 -0
- package/dist/resumeContext.js.map +1 -0
- package/dist/scheduler/checkRun.d.ts +95 -0
- package/dist/scheduler/checkRun.d.ts.map +1 -0
- package/dist/scheduler/checkRun.js +172 -0
- package/dist/scheduler/checkRun.js.map +1 -0
- package/dist/scheduler/delivery.d.ts +99 -0
- package/dist/scheduler/delivery.d.ts.map +1 -0
- package/dist/scheduler/delivery.js +212 -0
- package/dist/scheduler/delivery.js.map +1 -0
- package/dist/scheduler/deliveryKind.d.ts +29 -0
- package/dist/scheduler/deliveryKind.d.ts.map +1 -0
- package/dist/scheduler/deliveryKind.js +39 -0
- package/dist/scheduler/deliveryKind.js.map +1 -0
- package/dist/scheduler/directoryThreads.d.ts +19 -0
- package/dist/scheduler/directoryThreads.d.ts.map +1 -0
- package/dist/scheduler/directoryThreads.js +28 -0
- package/dist/scheduler/directoryThreads.js.map +1 -0
- package/dist/scheduler/engine.d.ts +77 -0
- package/dist/scheduler/engine.d.ts.map +1 -0
- package/dist/scheduler/engine.js +337 -0
- package/dist/scheduler/engine.js.map +1 -0
- package/dist/scheduler/injection.d.ts +102 -0
- package/dist/scheduler/injection.d.ts.map +1 -0
- package/dist/scheduler/injection.js +122 -0
- package/dist/scheduler/injection.js.map +1 -0
- package/dist/scheduler/mcpBoot.d.ts +65 -0
- package/dist/scheduler/mcpBoot.d.ts.map +1 -0
- package/dist/scheduler/mcpBoot.js +60 -0
- package/dist/scheduler/mcpBoot.js.map +1 -0
- package/dist/scheduler/mcpSurface.d.ts +355 -0
- package/dist/scheduler/mcpSurface.d.ts.map +1 -0
- package/dist/scheduler/mcpSurface.js +1257 -0
- package/dist/scheduler/mcpSurface.js.map +1 -0
- package/dist/scheduler/rebindResume.d.ts +27 -0
- package/dist/scheduler/rebindResume.d.ts.map +1 -0
- package/dist/scheduler/rebindResume.js +17 -0
- package/dist/scheduler/rebindResume.js.map +1 -0
- package/dist/scheduler/recurrence.d.ts +58 -0
- package/dist/scheduler/recurrence.d.ts.map +1 -0
- package/dist/scheduler/recurrence.js +210 -0
- package/dist/scheduler/recurrence.js.map +1 -0
- package/dist/scheduler/runLedger.d.ts +59 -0
- package/dist/scheduler/runLedger.d.ts.map +1 -0
- package/dist/scheduler/runLedger.js +54 -0
- package/dist/scheduler/runLedger.js.map +1 -0
- package/dist/scheduler/store.d.ts +97 -0
- package/dist/scheduler/store.d.ts.map +1 -0
- package/dist/scheduler/store.js +124 -0
- package/dist/scheduler/store.js.map +1 -0
- package/dist/scheduler/timezoneRecompute.d.ts +61 -0
- package/dist/scheduler/timezoneRecompute.d.ts.map +1 -0
- package/dist/scheduler/timezoneRecompute.js +46 -0
- package/dist/scheduler/timezoneRecompute.js.map +1 -0
- package/dist/scheduler/types.d.ts +139 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/scheduler/types.js +8 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/sendErrorClassifier.d.ts +45 -0
- package/dist/sendErrorClassifier.d.ts.map +1 -0
- package/dist/sendErrorClassifier.js +65 -0
- package/dist/sendErrorClassifier.js.map +1 -0
- package/dist/sessionKey.d.ts +136 -0
- package/dist/sessionKey.d.ts.map +1 -0
- package/dist/sessionKey.js +153 -0
- package/dist/sessionKey.js.map +1 -0
- package/dist/sessionPick.d.ts +42 -0
- package/dist/sessionPick.d.ts.map +1 -0
- package/dist/sessionPick.js +39 -0
- package/dist/sessionPick.js.map +1 -0
- package/dist/shutdown.d.ts +126 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +164 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/startupPromptBuffer.d.ts +85 -0
- package/dist/startupPromptBuffer.d.ts.map +1 -0
- package/dist/startupPromptBuffer.js +123 -0
- package/dist/startupPromptBuffer.js.map +1 -0
- package/dist/state.d.ts +1245 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +1830 -0
- package/dist/state.js.map +1 -0
- package/dist/threadContextPreamble.d.ts +89 -0
- package/dist/threadContextPreamble.d.ts.map +1 -0
- package/dist/threadContextPreamble.js +102 -0
- package/dist/threadContextPreamble.js.map +1 -0
- package/dist/threadRouting.d.ts +164 -0
- package/dist/threadRouting.d.ts.map +1 -0
- package/dist/threadRouting.js +182 -0
- package/dist/threadRouting.js.map +1 -0
- package/dist/types.d.ts +1015 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/abortableFifo.d.ts +10 -0
- package/dist/utils/abortableFifo.d.ts.map +1 -0
- package/dist/utils/abortableFifo.js +55 -0
- package/dist/utils/abortableFifo.js.map +1 -0
- package/dist/utils/adoptedToolList.d.ts +27 -0
- package/dist/utils/adoptedToolList.d.ts.map +1 -0
- package/dist/utils/adoptedToolList.js +22 -0
- package/dist/utils/adoptedToolList.js.map +1 -0
- package/dist/utils/agentEnvironment.d.ts +42 -0
- package/dist/utils/agentEnvironment.d.ts.map +1 -0
- package/dist/utils/agentEnvironment.js +122 -0
- package/dist/utils/agentEnvironment.js.map +1 -0
- package/dist/utils/ansiClean.d.ts +11 -0
- package/dist/utils/ansiClean.d.ts.map +1 -0
- package/dist/utils/ansiClean.js +139 -0
- package/dist/utils/ansiClean.js.map +1 -0
- package/dist/utils/autoContinueOnLimit.d.ts +49 -0
- package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
- package/dist/utils/autoContinueOnLimit.js +69 -0
- package/dist/utils/autoContinueOnLimit.js.map +1 -0
- package/dist/utils/canonicalPathContainment.d.ts +7 -0
- package/dist/utils/canonicalPathContainment.d.ts.map +1 -0
- package/dist/utils/canonicalPathContainment.js +48 -0
- package/dist/utils/canonicalPathContainment.js.map +1 -0
- package/dist/utils/claudeAuthLogin.d.ts +71 -0
- package/dist/utils/claudeAuthLogin.d.ts.map +1 -0
- package/dist/utils/claudeAuthLogin.js +93 -0
- package/dist/utils/claudeAuthLogin.js.map +1 -0
- package/dist/utils/claudeChunkClassifier.d.ts +97 -0
- package/dist/utils/claudeChunkClassifier.d.ts.map +1 -0
- package/dist/utils/claudeChunkClassifier.js +254 -0
- package/dist/utils/claudeChunkClassifier.js.map +1 -0
- package/dist/utils/claudeCodeVersion.d.ts +31 -0
- package/dist/utils/claudeCodeVersion.d.ts.map +1 -0
- package/dist/utils/claudeCodeVersion.js +62 -0
- package/dist/utils/claudeCodeVersion.js.map +1 -0
- package/dist/utils/claudeCompactHook.d.ts +64 -0
- package/dist/utils/claudeCompactHook.d.ts.map +1 -0
- package/dist/utils/claudeCompactHook.js +98 -0
- package/dist/utils/claudeCompactHook.js.map +1 -0
- package/dist/utils/claudeLivenessAction.d.ts +208 -0
- package/dist/utils/claudeLivenessAction.d.ts.map +1 -0
- package/dist/utils/claudeLivenessAction.js +135 -0
- package/dist/utils/claudeLivenessAction.js.map +1 -0
- package/dist/utils/claudeMcpHeal.d.ts +92 -0
- package/dist/utils/claudeMcpHeal.d.ts.map +1 -0
- package/dist/utils/claudeMcpHeal.js +91 -0
- package/dist/utils/claudeMcpHeal.js.map +1 -0
- package/dist/utils/claudeRelayRouting.d.ts +86 -0
- package/dist/utils/claudeRelayRouting.d.ts.map +1 -0
- package/dist/utils/claudeRelayRouting.js +159 -0
- package/dist/utils/claudeRelayRouting.js.map +1 -0
- package/dist/utils/claudeRuntimeInfo.d.ts +26 -0
- package/dist/utils/claudeRuntimeInfo.d.ts.map +1 -0
- package/dist/utils/claudeRuntimeInfo.js +151 -0
- package/dist/utils/claudeRuntimeInfo.js.map +1 -0
- package/dist/utils/claudeScrapeShapes.d.ts +256 -0
- package/dist/utils/claudeScrapeShapes.d.ts.map +1 -0
- package/dist/utils/claudeScrapeShapes.js +290 -0
- package/dist/utils/claudeScrapeShapes.js.map +1 -0
- package/dist/utils/claudeSessionTitle.d.ts +27 -0
- package/dist/utils/claudeSessionTitle.d.ts.map +1 -0
- package/dist/utils/claudeSessionTitle.js +90 -0
- package/dist/utils/claudeSessionTitle.js.map +1 -0
- package/dist/utils/claudeStreamJson.d.ts +202 -0
- package/dist/utils/claudeStreamJson.d.ts.map +1 -0
- package/dist/utils/claudeStreamJson.js +351 -0
- package/dist/utils/claudeStreamJson.js.map +1 -0
- package/dist/utils/claudeSubagentTail.d.ts +93 -0
- package/dist/utils/claudeSubagentTail.d.ts.map +1 -0
- package/dist/utils/claudeSubagentTail.js +136 -0
- package/dist/utils/claudeSubagentTail.js.map +1 -0
- package/dist/utils/clearThreadOutputQueues.d.ts +43 -0
- package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -0
- package/dist/utils/clearThreadOutputQueues.js +39 -0
- package/dist/utils/clearThreadOutputQueues.js.map +1 -0
- package/dist/utils/compactCommandRoute.d.ts +45 -0
- package/dist/utils/compactCommandRoute.d.ts.map +1 -0
- package/dist/utils/compactCommandRoute.js +36 -0
- package/dist/utils/compactCommandRoute.js.map +1 -0
- package/dist/utils/compactOnIdle.d.ts +329 -0
- package/dist/utils/compactOnIdle.d.ts.map +1 -0
- package/dist/utils/compactOnIdle.js +379 -0
- package/dist/utils/compactOnIdle.js.map +1 -0
- package/dist/utils/consoleFileTap.d.ts +51 -0
- package/dist/utils/consoleFileTap.d.ts.map +1 -0
- package/dist/utils/consoleFileTap.js +86 -0
- package/dist/utils/consoleFileTap.js.map +1 -0
- package/dist/utils/displayVerbosity.d.ts +44 -0
- package/dist/utils/displayVerbosity.d.ts.map +1 -0
- package/dist/utils/displayVerbosity.js +75 -0
- package/dist/utils/displayVerbosity.js.map +1 -0
- package/dist/utils/download.d.ts +72 -0
- package/dist/utils/download.d.ts.map +1 -0
- package/dist/utils/download.js +216 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/draftFinalize.d.ts +110 -0
- package/dist/utils/draftFinalize.d.ts.map +1 -0
- package/dist/utils/draftFinalize.js +100 -0
- package/dist/utils/draftFinalize.js.map +1 -0
- package/dist/utils/draftId.d.ts +36 -0
- package/dist/utils/draftId.d.ts.map +1 -0
- package/dist/utils/draftId.js +46 -0
- package/dist/utils/draftId.js.map +1 -0
- package/dist/utils/draftPacer.d.ts +72 -0
- package/dist/utils/draftPacer.d.ts.map +1 -0
- package/dist/utils/draftPacer.js +53 -0
- package/dist/utils/draftPacer.js.map +1 -0
- package/dist/utils/effortStartupKeystroke.d.ts +20 -0
- package/dist/utils/effortStartupKeystroke.d.ts.map +1 -0
- package/dist/utils/effortStartupKeystroke.js +28 -0
- package/dist/utils/effortStartupKeystroke.js.map +1 -0
- package/dist/utils/ensureSessionPlan.d.ts +70 -0
- package/dist/utils/ensureSessionPlan.d.ts.map +1 -0
- package/dist/utils/ensureSessionPlan.js +54 -0
- package/dist/utils/ensureSessionPlan.js.map +1 -0
- package/dist/utils/fileSendPlan.d.ts +217 -0
- package/dist/utils/fileSendPlan.d.ts.map +1 -0
- package/dist/utils/fileSendPlan.js +291 -0
- package/dist/utils/fileSendPlan.js.map +1 -0
- package/dist/utils/fileSendService.d.ts +94 -0
- package/dist/utils/fileSendService.d.ts.map +1 -0
- package/dist/utils/fileSendService.js +387 -0
- package/dist/utils/fileSendService.js.map +1 -0
- package/dist/utils/groupFinalizePlan.d.ts +38 -0
- package/dist/utils/groupFinalizePlan.d.ts.map +1 -0
- package/dist/utils/groupFinalizePlan.js +35 -0
- package/dist/utils/groupFinalizePlan.js.map +1 -0
- package/dist/utils/identicalOutputGuard.d.ts +83 -0
- package/dist/utils/identicalOutputGuard.d.ts.map +1 -0
- package/dist/utils/identicalOutputGuard.js +99 -0
- package/dist/utils/identicalOutputGuard.js.map +1 -0
- package/dist/utils/isoTimestamp.d.ts +16 -0
- package/dist/utils/isoTimestamp.d.ts.map +1 -0
- package/dist/utils/isoTimestamp.js +34 -0
- package/dist/utils/isoTimestamp.js.map +1 -0
- package/dist/utils/jsonStreamBusyWatchdog.d.ts +130 -0
- package/dist/utils/jsonStreamBusyWatchdog.d.ts.map +1 -0
- package/dist/utils/jsonStreamBusyWatchdog.js +122 -0
- package/dist/utils/jsonStreamBusyWatchdog.js.map +1 -0
- package/dist/utils/jsonStreamHost.d.ts +227 -0
- package/dist/utils/jsonStreamHost.d.ts.map +1 -0
- package/dist/utils/jsonStreamHost.js +417 -0
- package/dist/utils/jsonStreamHost.js.map +1 -0
- package/dist/utils/keyedTransitionQueue.d.ts +18 -0
- package/dist/utils/keyedTransitionQueue.d.ts.map +1 -0
- package/dist/utils/keyedTransitionQueue.js +34 -0
- package/dist/utils/keyedTransitionQueue.js.map +1 -0
- package/dist/utils/limitEpisodeRecovery.d.ts +92 -0
- package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -0
- package/dist/utils/limitEpisodeRecovery.js +133 -0
- package/dist/utils/limitEpisodeRecovery.js.map +1 -0
- package/dist/utils/limitHeldPromptQueue.d.ts +48 -0
- package/dist/utils/limitHeldPromptQueue.d.ts.map +1 -0
- package/dist/utils/limitHeldPromptQueue.js +59 -0
- package/dist/utils/limitHeldPromptQueue.js.map +1 -0
- package/dist/utils/limitHeldPrompts.d.ts +58 -0
- package/dist/utils/limitHeldPrompts.d.ts.map +1 -0
- package/dist/utils/limitHeldPrompts.js +65 -0
- package/dist/utils/limitHeldPrompts.js.map +1 -0
- package/dist/utils/linkPreviewSuppression.d.ts +18 -0
- package/dist/utils/linkPreviewSuppression.d.ts.map +1 -0
- package/dist/utils/linkPreviewSuppression.js +37 -0
- package/dist/utils/linkPreviewSuppression.js.map +1 -0
- package/dist/utils/localClock.d.ts +15 -0
- package/dist/utils/localClock.d.ts.map +1 -0
- package/dist/utils/localClock.js +29 -0
- package/dist/utils/localClock.js.map +1 -0
- package/dist/utils/markdownTableRender.d.ts +83 -0
- package/dist/utils/markdownTableRender.d.ts.map +1 -0
- package/dist/utils/markdownTableRender.js +298 -0
- package/dist/utils/markdownTableRender.js.map +1 -0
- package/dist/utils/mediaGroupCollector.d.ts +51 -0
- package/dist/utils/mediaGroupCollector.d.ts.map +1 -0
- package/dist/utils/mediaGroupCollector.js +90 -0
- package/dist/utils/mediaGroupCollector.js.map +1 -0
- package/dist/utils/messageSendService.d.ts +136 -0
- package/dist/utils/messageSendService.d.ts.map +1 -0
- package/dist/utils/messageSendService.js +165 -0
- package/dist/utils/messageSendService.js.map +1 -0
- package/dist/utils/minutesOverride.d.ts +7 -0
- package/dist/utils/minutesOverride.d.ts.map +1 -0
- package/dist/utils/minutesOverride.js +16 -0
- package/dist/utils/minutesOverride.js.map +1 -0
- package/dist/utils/modelPickerPlan.d.ts +119 -0
- package/dist/utils/modelPickerPlan.d.ts.map +1 -0
- package/dist/utils/modelPickerPlan.js +171 -0
- package/dist/utils/modelPickerPlan.js.map +1 -0
- package/dist/utils/modelSetReplyDecision.d.ts +67 -0
- package/dist/utils/modelSetReplyDecision.d.ts.map +1 -0
- package/dist/utils/modelSetReplyDecision.js +27 -0
- package/dist/utils/modelSetReplyDecision.js.map +1 -0
- package/dist/utils/openCodeAuthLogin.d.ts +181 -0
- package/dist/utils/openCodeAuthLogin.d.ts.map +1 -0
- package/dist/utils/openCodeAuthLogin.js +393 -0
- package/dist/utils/openCodeAuthLogin.js.map +1 -0
- package/dist/utils/openCodeCompactPlugin.d.ts +81 -0
- package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -0
- package/dist/utils/openCodeCompactPlugin.js +146 -0
- package/dist/utils/openCodeCompactPlugin.js.map +1 -0
- package/dist/utils/openCodeTurnActivity.d.ts +67 -0
- package/dist/utils/openCodeTurnActivity.d.ts.map +1 -0
- package/dist/utils/openCodeTurnActivity.js +27 -0
- package/dist/utils/openCodeTurnActivity.js.map +1 -0
- package/dist/utils/outputDebounce.d.ts +24 -0
- package/dist/utils/outputDebounce.d.ts.map +1 -0
- package/dist/utils/outputDebounce.js +30 -0
- package/dist/utils/outputDebounce.js.map +1 -0
- package/dist/utils/outputFlushTiming.d.ts +54 -0
- package/dist/utils/outputFlushTiming.d.ts.map +1 -0
- package/dist/utils/outputFlushTiming.js +48 -0
- package/dist/utils/outputFlushTiming.js.map +1 -0
- package/dist/utils/paginateList.d.ts +25 -0
- package/dist/utils/paginateList.d.ts.map +1 -0
- package/dist/utils/paginateList.js +32 -0
- package/dist/utils/paginateList.js.map +1 -0
- package/dist/utils/paneDiff.d.ts +55 -0
- package/dist/utils/paneDiff.d.ts.map +1 -0
- package/dist/utils/paneDiff.js +88 -0
- package/dist/utils/paneDiff.js.map +1 -0
- package/dist/utils/paneResizeGuard.d.ts +69 -0
- package/dist/utils/paneResizeGuard.d.ts.map +1 -0
- package/dist/utils/paneResizeGuard.js +91 -0
- package/dist/utils/paneResizeGuard.js.map +1 -0
- package/dist/utils/persistAdapterSessionIds.d.ts +39 -0
- package/dist/utils/persistAdapterSessionIds.d.ts.map +1 -0
- package/dist/utils/persistAdapterSessionIds.js +28 -0
- package/dist/utils/persistAdapterSessionIds.js.map +1 -0
- package/dist/utils/pinnedBannerSkipDecision.d.ts +44 -0
- package/dist/utils/pinnedBannerSkipDecision.d.ts.map +1 -0
- package/dist/utils/pinnedBannerSkipDecision.js +20 -0
- package/dist/utils/pinnedBannerSkipDecision.js.map +1 -0
- package/dist/utils/pollBackoff.d.ts +45 -0
- package/dist/utils/pollBackoff.d.ts.map +1 -0
- package/dist/utils/pollBackoff.js +44 -0
- package/dist/utils/pollBackoff.js.map +1 -0
- package/dist/utils/promptDelivery.d.ts +46 -0
- package/dist/utils/promptDelivery.d.ts.map +1 -0
- package/dist/utils/promptDelivery.js +49 -0
- package/dist/utils/promptDelivery.js.map +1 -0
- package/dist/utils/providerDisconnectPlan.d.ts +82 -0
- package/dist/utils/providerDisconnectPlan.d.ts.map +1 -0
- package/dist/utils/providerDisconnectPlan.js +110 -0
- package/dist/utils/providerDisconnectPlan.js.map +1 -0
- package/dist/utils/rateLimitLog.d.ts +48 -0
- package/dist/utils/rateLimitLog.d.ts.map +1 -0
- package/dist/utils/rateLimitLog.js +43 -0
- package/dist/utils/rateLimitLog.js.map +1 -0
- package/dist/utils/recentRelayWindow.d.ts +165 -0
- package/dist/utils/recentRelayWindow.d.ts.map +1 -0
- package/dist/utils/recentRelayWindow.js +284 -0
- package/dist/utils/recentRelayWindow.js.map +1 -0
- package/dist/utils/recvPreviewRedaction.d.ts +23 -0
- package/dist/utils/recvPreviewRedaction.d.ts.map +1 -0
- package/dist/utils/recvPreviewRedaction.js +39 -0
- package/dist/utils/recvPreviewRedaction.js.map +1 -0
- package/dist/utils/reminderFlow.d.ts +148 -0
- package/dist/utils/reminderFlow.d.ts.map +1 -0
- package/dist/utils/reminderFlow.js +122 -0
- package/dist/utils/reminderFlow.js.map +1 -0
- package/dist/utils/reminderScheduleText.d.ts +87 -0
- package/dist/utils/reminderScheduleText.d.ts.map +1 -0
- package/dist/utils/reminderScheduleText.js +135 -0
- package/dist/utils/reminderScheduleText.js.map +1 -0
- package/dist/utils/reminderWizard.d.ts +710 -0
- package/dist/utils/reminderWizard.d.ts.map +1 -0
- package/dist/utils/reminderWizard.js +1164 -0
- package/dist/utils/reminderWizard.js.map +1 -0
- package/dist/utils/replyQuote.d.ts +111 -0
- package/dist/utils/replyQuote.d.ts.map +1 -0
- package/dist/utils/replyQuote.js +122 -0
- package/dist/utils/replyQuote.js.map +1 -0
- package/dist/utils/resolveBinary.d.ts +25 -0
- package/dist/utils/resolveBinary.d.ts.map +1 -0
- package/dist/utils/resolveBinary.js +99 -0
- package/dist/utils/resolveBinary.js.map +1 -0
- package/dist/utils/retryAfterHeader.d.ts +7 -0
- package/dist/utils/retryAfterHeader.d.ts.map +1 -0
- package/dist/utils/retryAfterHeader.js +17 -0
- package/dist/utils/retryAfterHeader.js.map +1 -0
- package/dist/utils/rotatingJsonlFile.d.ts +40 -0
- package/dist/utils/rotatingJsonlFile.d.ts.map +1 -0
- package/dist/utils/rotatingJsonlFile.js +106 -0
- package/dist/utils/rotatingJsonlFile.js.map +1 -0
- package/dist/utils/rotatingLogFile.d.ts +25 -0
- package/dist/utils/rotatingLogFile.d.ts.map +1 -0
- package/dist/utils/rotatingLogFile.js +74 -0
- package/dist/utils/rotatingLogFile.js.map +1 -0
- package/dist/utils/sendRateTracker.d.ts +59 -0
- package/dist/utils/sendRateTracker.d.ts.map +1 -0
- package/dist/utils/sendRateTracker.js +144 -0
- package/dist/utils/sendRateTracker.js.map +1 -0
- package/dist/utils/serialQueue.d.ts +5 -0
- package/dist/utils/serialQueue.d.ts.map +1 -0
- package/dist/utils/serialQueue.js +14 -0
- package/dist/utils/serialQueue.js.map +1 -0
- package/dist/utils/sseStreamLifecycle.d.ts +32 -0
- package/dist/utils/sseStreamLifecycle.d.ts.map +1 -0
- package/dist/utils/sseStreamLifecycle.js +41 -0
- package/dist/utils/sseStreamLifecycle.js.map +1 -0
- package/dist/utils/startupReadiness.d.ts +119 -0
- package/dist/utils/startupReadiness.d.ts.map +1 -0
- package/dist/utils/startupReadiness.js +148 -0
- package/dist/utils/startupReadiness.js.map +1 -0
- package/dist/utils/statusFlushDecision.d.ts +18 -0
- package/dist/utils/statusFlushDecision.d.ts.map +1 -0
- package/dist/utils/statusFlushDecision.js +53 -0
- package/dist/utils/statusFlushDecision.js.map +1 -0
- package/dist/utils/subagentRender.d.ts +52 -0
- package/dist/utils/subagentRender.d.ts.map +1 -0
- package/dist/utils/subagentRender.js +66 -0
- package/dist/utils/subagentRender.js.map +1 -0
- package/dist/utils/subagentStatusRender.d.ts +90 -0
- package/dist/utils/subagentStatusRender.d.ts.map +1 -0
- package/dist/utils/subagentStatusRender.js +124 -0
- package/dist/utils/subagentStatusRender.js.map +1 -0
- package/dist/utils/telegramError.d.ts +2 -0
- package/dist/utils/telegramError.d.ts.map +1 -0
- package/dist/utils/telegramError.js +16 -0
- package/dist/utils/telegramError.js.map +1 -0
- package/dist/utils/terminalEmitPlan.d.ts +74 -0
- package/dist/utils/terminalEmitPlan.d.ts.map +1 -0
- package/dist/utils/terminalEmitPlan.js +86 -0
- package/dist/utils/terminalEmitPlan.js.map +1 -0
- package/dist/utils/thinkingRender.d.ts +74 -0
- package/dist/utils/thinkingRender.d.ts.map +1 -0
- package/dist/utils/thinkingRender.js +85 -0
- package/dist/utils/thinkingRender.js.map +1 -0
- package/dist/utils/threadStatusReport.d.ts +55 -0
- package/dist/utils/threadStatusReport.d.ts.map +1 -0
- package/dist/utils/threadStatusReport.js +65 -0
- package/dist/utils/threadStatusReport.js.map +1 -0
- package/dist/utils/threadToggle.d.ts +29 -0
- package/dist/utils/threadToggle.d.ts.map +1 -0
- package/dist/utils/threadToggle.js +39 -0
- package/dist/utils/threadToggle.js.map +1 -0
- package/dist/utils/timezone.d.ts +125 -0
- package/dist/utils/timezone.d.ts.map +1 -0
- package/dist/utils/timezone.js +278 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/utils/tmuxExec.d.ts +61 -0
- package/dist/utils/tmuxExec.d.ts.map +1 -0
- package/dist/utils/tmuxExec.js +109 -0
- package/dist/utils/tmuxExec.js.map +1 -0
- package/dist/utils/tmuxSessionName.d.ts +34 -0
- package/dist/utils/tmuxSessionName.d.ts.map +1 -0
- package/dist/utils/tmuxSessionName.js +51 -0
- package/dist/utils/tmuxSessionName.js.map +1 -0
- package/dist/utils/toolResultRender.d.ts +61 -0
- package/dist/utils/toolResultRender.d.ts.map +1 -0
- package/dist/utils/toolResultRender.js +62 -0
- package/dist/utils/toolResultRender.js.map +1 -0
- package/dist/utils/topicRequest.d.ts +61 -0
- package/dist/utils/topicRequest.d.ts.map +1 -0
- package/dist/utils/topicRequest.js +68 -0
- package/dist/utils/topicRequest.js.map +1 -0
- package/dist/utils/topicView.d.ts +55 -0
- package/dist/utils/topicView.d.ts.map +1 -0
- package/dist/utils/topicView.js +56 -0
- package/dist/utils/topicView.js.map +1 -0
- package/dist/utils/transcribeAudio.d.ts +89 -0
- package/dist/utils/transcribeAudio.d.ts.map +1 -0
- package/dist/utils/transcribeAudio.js +249 -0
- package/dist/utils/transcribeAudio.js.map +1 -0
- package/dist/utils/transientFrames.d.ts +52 -0
- package/dist/utils/transientFrames.d.ts.map +1 -0
- package/dist/utils/transientFrames.js +41 -0
- package/dist/utils/transientFrames.js.map +1 -0
- package/dist/utils/typingActive.d.ts +35 -0
- package/dist/utils/typingActive.d.ts.map +1 -0
- package/dist/utils/typingActive.js +22 -0
- package/dist/utils/typingActive.js.map +1 -0
- package/dist/utils/typingLoopBackstop.d.ts +64 -0
- package/dist/utils/typingLoopBackstop.d.ts.map +1 -0
- package/dist/utils/typingLoopBackstop.js +68 -0
- package/dist/utils/typingLoopBackstop.js.map +1 -0
- package/dist/utils/verbosityRender.d.ts +18 -0
- package/dist/utils/verbosityRender.d.ts.map +1 -0
- package/dist/utils/verbosityRender.js +17 -0
- package/dist/utils/verbosityRender.js.map +1 -0
- package/dist/utils/wedgeRecovery.d.ts +57 -0
- package/dist/utils/wedgeRecovery.d.ts.map +1 -0
- package/dist/utils/wedgeRecovery.js +24 -0
- package/dist/utils/wedgeRecovery.js.map +1 -0
- package/dist/utils.d.ts +30 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +61 -0
- package/dist/utils.js.map +1 -0
- package/dist/validation.d.ts +113 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +226 -0
- package/dist/validation.js.map +1 -0
- package/dist/voiceQueue.d.ts +7 -0
- package/dist/voiceQueue.d.ts.map +1 -0
- package/dist/voiceQueue.js +33 -0
- package/dist/voiceQueue.js.map +1 -0
- package/examples/.env.example +17 -0
- package/examples/docker-compose.yml +36 -0
- package/package.json +83 -4
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Pure helpers behind the OpenCode `/connect` OAuth (subscription)
|
|
3
|
+
* flow. The bot's `/connect` used to do API-key auth only (`PUT /auth/{id}` with
|
|
4
|
+
* `{type:'api',key}`); this layer adds provider OAuth by driving
|
|
5
|
+
* `opencode auth login -p <id> -m <label>` in a pty out-of-band — the same
|
|
6
|
+
* pattern as the json-stream Claude `/login` flow (`utils/claudeAuthLogin.ts`).
|
|
7
|
+
* These are the parse/decision helpers; the impure pty driving + per-thread
|
|
8
|
+
* state live in `agentLogin/agentLogin.ts`.
|
|
9
|
+
*
|
|
10
|
+
* Two OAuth shapes are handled, auto-detected from the pty output:
|
|
11
|
+
* - DEVICE flow (openai "ChatGPT Pro/Plus (headless)", github-copilot, …): the
|
|
12
|
+
* CLI prints a sign-in URL + a short code to ENTER at that URL, then polls
|
|
13
|
+
* ("Waiting for authorization…") and exits 0 once the user authorises in a
|
|
14
|
+
* browser. Nothing is pasted back — the bot relays URL+code and waits for exit.
|
|
15
|
+
* - PASTE flow: the CLI prints a URL then waits for the user to paste an
|
|
16
|
+
* authorization code back — the bot arms a pending-code state (next plain text
|
|
17
|
+
* is written into the pty, then deleted as a secret).
|
|
18
|
+
*
|
|
19
|
+
* Success is authoritative from the on-disk `auth.json` (the provider's entry
|
|
20
|
+
* flips to `type:"oauth"`), with the process exit code as the fallback.
|
|
21
|
+
*/
|
|
22
|
+
/** One auth method offered by a provider in the `/provider/auth` catalog. */
|
|
23
|
+
export interface OpenCodeAuthMethod {
|
|
24
|
+
/** `oauth` | `api` | (future) — verbatim from the catalog. */
|
|
25
|
+
type: string;
|
|
26
|
+
/** Human label, passed verbatim to `opencode auth login -m <label>`. */
|
|
27
|
+
label: string;
|
|
28
|
+
/** Whether the method carries extra `prompts` (multi-step, e.g. an instance URL). */
|
|
29
|
+
hasPrompts: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @description Strip ANSI/OSC escape sequences and carriage returns so the
|
|
33
|
+
* text-shape detectors below match against clean content. Deliberately minimal
|
|
34
|
+
* (detection-only) — the topic-facing relay reuses the fuller `cleanOutput`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function stripAnsiForDetection(raw: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* @description Parse a provider's auth methods out of the `GET /provider/auth`
|
|
39
|
+
* catalog (`{ providerId: [{type,label,prompts?}, …] }`). Returns `[]` for an
|
|
40
|
+
* unknown provider or a malformed catalog. Order is preserved (the picker shows
|
|
41
|
+
* methods in catalog order).
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseProviderAuthMethods(raw: unknown, providerId: string): OpenCodeAuthMethod[];
|
|
44
|
+
/** Whether a provider owns a custom auth flow in the `/provider/auth` catalog. */
|
|
45
|
+
export declare function checkProviderHasAuthCatalogEntry(raw: unknown, providerId: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* OpenCode lists ordinary API-key providers in `/provider`, not `/provider/auth`.
|
|
48
|
+
* Give those providers the same one-field key flow used by the native `/connect` UI.
|
|
49
|
+
*/
|
|
50
|
+
export declare function getGenericProviderAuthMethods(raw: unknown, providerId: string): OpenCodeAuthMethod[];
|
|
51
|
+
/** An OAuth (subscription/account) method. */
|
|
52
|
+
export declare function checkIsOAuthMethod(method: OpenCodeAuthMethod): boolean;
|
|
53
|
+
/** A single-field API-key method (no extra prompts) — the legacy `/connect` path. */
|
|
54
|
+
export declare function checkIsSimpleApiMethod(method: OpenCodeAuthMethod): boolean;
|
|
55
|
+
/** argv for `opencode auth login`, skipping the interactive provider+method pickers. */
|
|
56
|
+
export declare function buildOpenCodeAuthLoginArgs(providerId: string, methodLabel: string): string[];
|
|
57
|
+
export declare function parseOpenCodeOAuthUrl(ptyOutput: string): string | null;
|
|
58
|
+
export declare function parseOpenCodeDeviceCode(ptyOutput: string): string | null;
|
|
59
|
+
/** The device flow has printed everything and is polling for authorisation. */
|
|
60
|
+
export declare function checkIsAwaitingAuthorization(ptyOutput: string): boolean;
|
|
61
|
+
export declare function checkIsOpenCodeOAuthPastePrompt(ptyOutput: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* @description Whether the accumulated pty output has reached the point where the
|
|
64
|
+
* sign-in info is fully rendered and ready to relay: a URL is present AND the
|
|
65
|
+
* flow has reached a stable stage (a device code, the "waiting" poll, or a paste
|
|
66
|
+
* prompt). Gating on this avoids relaying a URL that is still rendering.
|
|
67
|
+
*/
|
|
68
|
+
export declare function checkIsOAuthInfoReady(ptyOutput: string): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* @description Resolve the OpenCode credentials file path, honouring
|
|
71
|
+
* `XDG_DATA_HOME` (falls back to `~/.local/share`). This is where a completed
|
|
72
|
+
* `opencode auth login` writes the provider's credential entry.
|
|
73
|
+
*/
|
|
74
|
+
export declare function getOpenCodeAuthFilePath(env: {
|
|
75
|
+
XDG_DATA_HOME?: string;
|
|
76
|
+
HOME?: string;
|
|
77
|
+
}): string;
|
|
78
|
+
/**
|
|
79
|
+
* @description Whether the provider is authed in the parsed `auth.json` map. When
|
|
80
|
+
* `wantType` is given (e.g. `'oauth'`), the entry's `type` must match — this is
|
|
81
|
+
* what distinguishes a fresh OAuth success from a stale `api` entry left by an
|
|
82
|
+
* earlier key-based `/connect`. Returns `null` when the map is unreadable so the
|
|
83
|
+
* caller can fall back to the process exit code.
|
|
84
|
+
*/
|
|
85
|
+
export declare function checkProviderAuthed(authJson: unknown, providerId: string, wantType?: string): boolean | null;
|
|
86
|
+
/**
|
|
87
|
+
* @description Final success decision for the OAuth flow. `auth.json` is
|
|
88
|
+
* authoritative (it reflects the real on-disk credential the CLI just wrote); the
|
|
89
|
+
* process exit code is only the fallback when the file could not be read
|
|
90
|
+
* (`authed === null`).
|
|
91
|
+
*/
|
|
92
|
+
export declare function checkIsOpenCodeOAuthSucceeded(input: {
|
|
93
|
+
exitCode: number | null;
|
|
94
|
+
authed: boolean | null;
|
|
95
|
+
}): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* @description Short button label for a method in the `/connect` picker: a lock
|
|
98
|
+
* for OAuth, a key for API. The catalog label is used verbatim but capped so a
|
|
99
|
+
* long label never blows the inline-button width.
|
|
100
|
+
*/
|
|
101
|
+
export declare function buildConnectMethodButtonLabel(method: OpenCodeAuthMethod): string;
|
|
102
|
+
/** Details parsed out of the CLI's `Go to: <authorize-url>` sign-in URL. */
|
|
103
|
+
export interface OAuthAuthorizeDetails {
|
|
104
|
+
/** The loopback callback port from `redirect_uri` (e.g. 1455), or `null`. */
|
|
105
|
+
redirectPort: number | null;
|
|
106
|
+
/** The loopback callback path from `redirect_uri` (e.g. `/auth/callback`), or `null`. */
|
|
107
|
+
redirectPath: string | null;
|
|
108
|
+
/** Whether `redirect_uri` targets loopback (localhost / 127.0.0.1 / [::1]). */
|
|
109
|
+
isLoopback: boolean;
|
|
110
|
+
/** The `state` param the CLI generated (needed to complete a bare-code reply). */
|
|
111
|
+
state: string | null;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* @description Parse the authorize URL rendered by `opencode auth login` into its
|
|
115
|
+
* loopback redirect target + `state`. Returns all-null/false when there is no
|
|
116
|
+
* URL yet or it carries no loopback `redirect_uri`. Robust to junk: a malformed
|
|
117
|
+
* URL yields the empty result rather than throwing.
|
|
118
|
+
*/
|
|
119
|
+
export declare function parseOAuthAuthorizeDetails(ptyOutput: string): OAuthAuthorizeDetails;
|
|
120
|
+
/**
|
|
121
|
+
* @description A loopback (browser) OAuth flow: the CLI redirects to a localhost
|
|
122
|
+
* callback and shows NO device code (so it can't be relayed as a device flow).
|
|
123
|
+
* This is the shape that can't self-complete over Telegram and needs the paste
|
|
124
|
+
* bridge.
|
|
125
|
+
*/
|
|
126
|
+
export declare function checkIsLoopbackOAuthFlow(ptyOutput: string): boolean;
|
|
127
|
+
export declare function checkIsPlausibleOAuthCode(text: string): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* @description Is `text` a plausible provider API key? A key is sent verbatim as
|
|
130
|
+
* an HTTP `Authorization: Bearer <key>` header, and HTTP header values are
|
|
131
|
+
* ISO-8859-1 with no whitespace/controls — so a value carrying spaces, tabs,
|
|
132
|
+
* newlines, control chars or non-Latin-1 characters (e.g. Cyrillic) can NEVER be
|
|
133
|
+
* a real key. Rejecting them up front turns a stray chat message ("я
|
|
134
|
+
* перезагрузил") captured by a stale `/connect` state into a clear error at
|
|
135
|
+
* paste time, instead of a cryptic `Header … has invalid value` on the next
|
|
136
|
+
* request (live 2026-07-20). Deliberately permissive otherwise — it
|
|
137
|
+
* only rules out the impossible, never guesses a provider's key shape.
|
|
138
|
+
*/
|
|
139
|
+
export declare function checkIsPlausibleProviderApiKey(text: string): boolean;
|
|
140
|
+
/** A parsed OAuth callback URL the user pasted back (or one embedded in text). */
|
|
141
|
+
export interface OAuthCallbackParts {
|
|
142
|
+
code: string | null;
|
|
143
|
+
state: string | null;
|
|
144
|
+
port: number | null;
|
|
145
|
+
path: string | null;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* @description Extract callback parts from a pasted string IF it contains an
|
|
149
|
+
* `http(s)` URL that looks like an OAuth callback — i.e. it carries a `code`
|
|
150
|
+
* query param, or its path ends in `/callback`. Returns `null` when the text has
|
|
151
|
+
* no such URL (so the caller can fall back to bare-code parsing). Never throws.
|
|
152
|
+
*/
|
|
153
|
+
export declare function parseOAuthCallbackFromReply(text: string): OAuthCallbackParts | null;
|
|
154
|
+
/**
|
|
155
|
+
* @name OpenCodeOAuthReply
|
|
156
|
+
* @description The classified user reply to a pending OAuth flow. URL-FIRST (a
|
|
157
|
+
* pasted callback URL wins), then a bare code, else `null` (not an OAuth reply —
|
|
158
|
+
* the caller must NOT consume it as one). This ordering is the requested
|
|
159
|
+
* behaviour: recognise a link first, otherwise recognise + validate a code.
|
|
160
|
+
*/
|
|
161
|
+
export type OpenCodeOAuthReply = ({
|
|
162
|
+
kind: 'callback';
|
|
163
|
+
} & OAuthCallbackParts) | {
|
|
164
|
+
kind: 'code';
|
|
165
|
+
code: string;
|
|
166
|
+
} | null;
|
|
167
|
+
export declare function classifyOpenCodeOAuthReply(text: string): OpenCodeOAuthReply;
|
|
168
|
+
/**
|
|
169
|
+
* @description Build the loopback completion URL to replay against the CLI's
|
|
170
|
+
* local callback server on the host: `http://127.0.0.1:<port><path>?code&state`.
|
|
171
|
+
* Returns `null` unless all of port, code and state are known (state may come
|
|
172
|
+
* from the stored authorize URL when the user pasted only a bare code). Path
|
|
173
|
+
* defaults to `/auth/callback`.
|
|
174
|
+
*/
|
|
175
|
+
export declare function buildLoopbackCompletionUrl(input: {
|
|
176
|
+
port: number | null;
|
|
177
|
+
path: string | null;
|
|
178
|
+
code: string | null;
|
|
179
|
+
state: string | null;
|
|
180
|
+
}): string | null;
|
|
181
|
+
//# sourceMappingURL=openCodeAuthLogin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openCodeAuthLogin.d.ts","sourceRoot":"","sources":["../../src/utils/openCodeAuthLogin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Pure helpers behind the OpenCode `/connect` OAuth (subscription)
|
|
4
|
+
* flow. The bot's `/connect` used to do API-key auth only (`PUT /auth/{id}` with
|
|
5
|
+
* `{type:'api',key}`); this layer adds provider OAuth by driving
|
|
6
|
+
* `opencode auth login -p <id> -m <label>` in a pty out-of-band — the same
|
|
7
|
+
* pattern as the json-stream Claude `/login` flow (`utils/claudeAuthLogin.ts`).
|
|
8
|
+
* These are the parse/decision helpers; the impure pty driving + per-thread
|
|
9
|
+
* state live in `agentLogin/agentLogin.ts`.
|
|
10
|
+
*
|
|
11
|
+
* Two OAuth shapes are handled, auto-detected from the pty output:
|
|
12
|
+
* - DEVICE flow (openai "ChatGPT Pro/Plus (headless)", github-copilot, …): the
|
|
13
|
+
* CLI prints a sign-in URL + a short code to ENTER at that URL, then polls
|
|
14
|
+
* ("Waiting for authorization…") and exits 0 once the user authorises in a
|
|
15
|
+
* browser. Nothing is pasted back — the bot relays URL+code and waits for exit.
|
|
16
|
+
* - PASTE flow: the CLI prints a URL then waits for the user to paste an
|
|
17
|
+
* authorization code back — the bot arms a pending-code state (next plain text
|
|
18
|
+
* is written into the pty, then deleted as a secret).
|
|
19
|
+
*
|
|
20
|
+
* Success is authoritative from the on-disk `auth.json` (the provider's entry
|
|
21
|
+
* flips to `type:"oauth"`), with the process exit code as the fallback.
|
|
22
|
+
*/
|
|
23
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
26
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
27
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
28
|
+
}
|
|
29
|
+
Object.defineProperty(o, k2, desc);
|
|
30
|
+
}) : (function(o, m, k, k2) {
|
|
31
|
+
if (k2 === undefined) k2 = k;
|
|
32
|
+
o[k2] = m[k];
|
|
33
|
+
}));
|
|
34
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
35
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
+
}) : function(o, v) {
|
|
37
|
+
o["default"] = v;
|
|
38
|
+
});
|
|
39
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
40
|
+
var ownKeys = function(o) {
|
|
41
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
42
|
+
var ar = [];
|
|
43
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
44
|
+
return ar;
|
|
45
|
+
};
|
|
46
|
+
return ownKeys(o);
|
|
47
|
+
};
|
|
48
|
+
return function (mod) {
|
|
49
|
+
if (mod && mod.__esModule) return mod;
|
|
50
|
+
var result = {};
|
|
51
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
52
|
+
__setModuleDefault(result, mod);
|
|
53
|
+
return result;
|
|
54
|
+
};
|
|
55
|
+
})();
|
|
56
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
+
exports.stripAnsiForDetection = stripAnsiForDetection;
|
|
58
|
+
exports.parseProviderAuthMethods = parseProviderAuthMethods;
|
|
59
|
+
exports.checkProviderHasAuthCatalogEntry = checkProviderHasAuthCatalogEntry;
|
|
60
|
+
exports.getGenericProviderAuthMethods = getGenericProviderAuthMethods;
|
|
61
|
+
exports.checkIsOAuthMethod = checkIsOAuthMethod;
|
|
62
|
+
exports.checkIsSimpleApiMethod = checkIsSimpleApiMethod;
|
|
63
|
+
exports.buildOpenCodeAuthLoginArgs = buildOpenCodeAuthLoginArgs;
|
|
64
|
+
exports.parseOpenCodeOAuthUrl = parseOpenCodeOAuthUrl;
|
|
65
|
+
exports.parseOpenCodeDeviceCode = parseOpenCodeDeviceCode;
|
|
66
|
+
exports.checkIsAwaitingAuthorization = checkIsAwaitingAuthorization;
|
|
67
|
+
exports.checkIsOpenCodeOAuthPastePrompt = checkIsOpenCodeOAuthPastePrompt;
|
|
68
|
+
exports.checkIsOAuthInfoReady = checkIsOAuthInfoReady;
|
|
69
|
+
exports.getOpenCodeAuthFilePath = getOpenCodeAuthFilePath;
|
|
70
|
+
exports.checkProviderAuthed = checkProviderAuthed;
|
|
71
|
+
exports.checkIsOpenCodeOAuthSucceeded = checkIsOpenCodeOAuthSucceeded;
|
|
72
|
+
exports.buildConnectMethodButtonLabel = buildConnectMethodButtonLabel;
|
|
73
|
+
exports.parseOAuthAuthorizeDetails = parseOAuthAuthorizeDetails;
|
|
74
|
+
exports.checkIsLoopbackOAuthFlow = checkIsLoopbackOAuthFlow;
|
|
75
|
+
exports.checkIsPlausibleOAuthCode = checkIsPlausibleOAuthCode;
|
|
76
|
+
exports.checkIsPlausibleProviderApiKey = checkIsPlausibleProviderApiKey;
|
|
77
|
+
exports.parseOAuthCallbackFromReply = parseOAuthCallbackFromReply;
|
|
78
|
+
exports.classifyOpenCodeOAuthReply = classifyOpenCodeOAuthReply;
|
|
79
|
+
exports.buildLoopbackCompletionUrl = buildLoopbackCompletionUrl;
|
|
80
|
+
const path = __importStar(require("path"));
|
|
81
|
+
/**
|
|
82
|
+
* @description Strip ANSI/OSC escape sequences and carriage returns so the
|
|
83
|
+
* text-shape detectors below match against clean content. Deliberately minimal
|
|
84
|
+
* (detection-only) — the topic-facing relay reuses the fuller `cleanOutput`.
|
|
85
|
+
*/
|
|
86
|
+
function stripAnsiForDetection(raw) {
|
|
87
|
+
return raw
|
|
88
|
+
// CSI sequences: ESC [ … final-byte
|
|
89
|
+
.replace(/\u001b\[[0-9;?]*[ -/]*[@-~]/g, '')
|
|
90
|
+
// OSC sequences: ESC ] … (BEL | ESC \)
|
|
91
|
+
.replace(/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g, '')
|
|
92
|
+
// stray single-char escapes
|
|
93
|
+
.replace(/\u001b[@-Z\\-_]/g, '')
|
|
94
|
+
.replace(/\r/g, '');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @description Parse a provider's auth methods out of the `GET /provider/auth`
|
|
98
|
+
* catalog (`{ providerId: [{type,label,prompts?}, …] }`). Returns `[]` for an
|
|
99
|
+
* unknown provider or a malformed catalog. Order is preserved (the picker shows
|
|
100
|
+
* methods in catalog order).
|
|
101
|
+
*/
|
|
102
|
+
function parseProviderAuthMethods(raw, providerId) {
|
|
103
|
+
if (!raw || typeof raw !== 'object')
|
|
104
|
+
return [];
|
|
105
|
+
const methods = raw[providerId];
|
|
106
|
+
if (!Array.isArray(methods))
|
|
107
|
+
return [];
|
|
108
|
+
const out = [];
|
|
109
|
+
for (const m of methods) {
|
|
110
|
+
if (!m || typeof m !== 'object')
|
|
111
|
+
continue;
|
|
112
|
+
const { type, label, prompts } = m;
|
|
113
|
+
if (typeof type !== 'string' || typeof label !== 'string')
|
|
114
|
+
continue;
|
|
115
|
+
out.push({ type, label, hasPrompts: Array.isArray(prompts) && prompts.length > 0 });
|
|
116
|
+
}
|
|
117
|
+
return out;
|
|
118
|
+
}
|
|
119
|
+
/** Whether a provider owns a custom auth flow in the `/provider/auth` catalog. */
|
|
120
|
+
function checkProviderHasAuthCatalogEntry(raw, providerId) {
|
|
121
|
+
if (!raw || typeof raw !== 'object')
|
|
122
|
+
return false;
|
|
123
|
+
return Array.isArray(raw[providerId]);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* OpenCode lists ordinary API-key providers in `/provider`, not `/provider/auth`.
|
|
127
|
+
* Give those providers the same one-field key flow used by the native `/connect` UI.
|
|
128
|
+
*/
|
|
129
|
+
function getGenericProviderAuthMethods(raw, providerId) {
|
|
130
|
+
if (!raw || typeof raw !== 'object')
|
|
131
|
+
return [];
|
|
132
|
+
const providers = raw.all;
|
|
133
|
+
if (!Array.isArray(providers))
|
|
134
|
+
return [];
|
|
135
|
+
const isAvailable = providers.some((provider) => {
|
|
136
|
+
if (!provider || typeof provider !== 'object')
|
|
137
|
+
return false;
|
|
138
|
+
return provider.id === providerId;
|
|
139
|
+
});
|
|
140
|
+
return isAvailable
|
|
141
|
+
? [{ type: 'api', label: 'Manually enter API Key', hasPrompts: false }]
|
|
142
|
+
: [];
|
|
143
|
+
}
|
|
144
|
+
/** An OAuth (subscription/account) method. */
|
|
145
|
+
function checkIsOAuthMethod(method) {
|
|
146
|
+
return method.type === 'oauth';
|
|
147
|
+
}
|
|
148
|
+
/** A single-field API-key method (no extra prompts) — the legacy `/connect` path. */
|
|
149
|
+
function checkIsSimpleApiMethod(method) {
|
|
150
|
+
return method.type === 'api' && !method.hasPrompts;
|
|
151
|
+
}
|
|
152
|
+
/** argv for `opencode auth login`, skipping the interactive provider+method pickers. */
|
|
153
|
+
function buildOpenCodeAuthLoginArgs(providerId, methodLabel) {
|
|
154
|
+
return ['auth', 'login', '-p', providerId, '-m', methodLabel];
|
|
155
|
+
}
|
|
156
|
+
/** First `http(s)` URL in the (ANSI-stripped) pty output — the sign-in link. */
|
|
157
|
+
const oauthUrlRe = /https?:\/\/[^\s\u0000-\u001f]+/;
|
|
158
|
+
function parseOpenCodeOAuthUrl(ptyOutput) {
|
|
159
|
+
const match = stripAnsiForDetection(ptyOutput).match(oauthUrlRe);
|
|
160
|
+
return match ? match[0] : null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* @description The short device code the user types AT the sign-in URL
|
|
164
|
+
* ("Enter code: 95J2-4U74J"). Returns the code, or `null` for a non-device
|
|
165
|
+
* (paste-style) flow that shows no such line.
|
|
166
|
+
*/
|
|
167
|
+
const deviceCodeRe = /Enter code:\s*([A-Za-z0-9][A-Za-z0-9-]{3,})/;
|
|
168
|
+
function parseOpenCodeDeviceCode(ptyOutput) {
|
|
169
|
+
const match = stripAnsiForDetection(ptyOutput).match(deviceCodeRe);
|
|
170
|
+
return match ? match[1] : null;
|
|
171
|
+
}
|
|
172
|
+
/** The device flow has printed everything and is polling for authorisation. */
|
|
173
|
+
function checkIsAwaitingAuthorization(ptyOutput) {
|
|
174
|
+
return /Waiting for authorization/i.test(stripAnsiForDetection(ptyOutput));
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* @description A paste-style flow is asking for the authorization code back
|
|
178
|
+
* (the bot then treats the next plain text as that code). Kept a closed set of
|
|
179
|
+
* phrasings so an unrelated line never false-arms the code-paste state.
|
|
180
|
+
*/
|
|
181
|
+
const pastePromptRe = /paste (?:the )?code|enter the (?:authorization|auth) code|authorization code:/i;
|
|
182
|
+
function checkIsOpenCodeOAuthPastePrompt(ptyOutput) {
|
|
183
|
+
return pastePromptRe.test(stripAnsiForDetection(ptyOutput));
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* @description Whether the accumulated pty output has reached the point where the
|
|
187
|
+
* sign-in info is fully rendered and ready to relay: a URL is present AND the
|
|
188
|
+
* flow has reached a stable stage (a device code, the "waiting" poll, or a paste
|
|
189
|
+
* prompt). Gating on this avoids relaying a URL that is still rendering.
|
|
190
|
+
*/
|
|
191
|
+
function checkIsOAuthInfoReady(ptyOutput) {
|
|
192
|
+
if (!parseOpenCodeOAuthUrl(ptyOutput))
|
|
193
|
+
return false;
|
|
194
|
+
return (parseOpenCodeDeviceCode(ptyOutput) !== null ||
|
|
195
|
+
checkIsAwaitingAuthorization(ptyOutput) ||
|
|
196
|
+
checkIsOpenCodeOAuthPastePrompt(ptyOutput));
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* @description Resolve the OpenCode credentials file path, honouring
|
|
200
|
+
* `XDG_DATA_HOME` (falls back to `~/.local/share`). This is where a completed
|
|
201
|
+
* `opencode auth login` writes the provider's credential entry.
|
|
202
|
+
*/
|
|
203
|
+
function getOpenCodeAuthFilePath(env) {
|
|
204
|
+
const dataHome = env.XDG_DATA_HOME?.trim() || path.join(env.HOME || '', '.local', 'share');
|
|
205
|
+
return path.join(dataHome, 'opencode', 'auth.json');
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* @description Whether the provider is authed in the parsed `auth.json` map. When
|
|
209
|
+
* `wantType` is given (e.g. `'oauth'`), the entry's `type` must match — this is
|
|
210
|
+
* what distinguishes a fresh OAuth success from a stale `api` entry left by an
|
|
211
|
+
* earlier key-based `/connect`. Returns `null` when the map is unreadable so the
|
|
212
|
+
* caller can fall back to the process exit code.
|
|
213
|
+
*/
|
|
214
|
+
function checkProviderAuthed(authJson, providerId, wantType) {
|
|
215
|
+
if (authJson === null || authJson === undefined)
|
|
216
|
+
return null;
|
|
217
|
+
if (typeof authJson !== 'object')
|
|
218
|
+
return false;
|
|
219
|
+
const entry = authJson[providerId];
|
|
220
|
+
if (!entry || typeof entry !== 'object')
|
|
221
|
+
return false;
|
|
222
|
+
const type = entry.type;
|
|
223
|
+
if (typeof type !== 'string')
|
|
224
|
+
return false;
|
|
225
|
+
return wantType ? type === wantType : true;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* @description Final success decision for the OAuth flow. `auth.json` is
|
|
229
|
+
* authoritative (it reflects the real on-disk credential the CLI just wrote); the
|
|
230
|
+
* process exit code is only the fallback when the file could not be read
|
|
231
|
+
* (`authed === null`).
|
|
232
|
+
*/
|
|
233
|
+
function checkIsOpenCodeOAuthSucceeded(input) {
|
|
234
|
+
if (input.authed !== null)
|
|
235
|
+
return input.authed;
|
|
236
|
+
return input.exitCode === 0;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* @description Short button label for a method in the `/connect` picker: a lock
|
|
240
|
+
* for OAuth, a key for API. The catalog label is used verbatim but capped so a
|
|
241
|
+
* long label never blows the inline-button width.
|
|
242
|
+
*/
|
|
243
|
+
function buildConnectMethodButtonLabel(method) {
|
|
244
|
+
const emoji = checkIsOAuthMethod(method) ? '🔓' : '🔑';
|
|
245
|
+
const label = method.label.length > 40 ? `${method.label.slice(0, 39)}…` : method.label;
|
|
246
|
+
return `${emoji} ${label}`;
|
|
247
|
+
}
|
|
248
|
+
function checkIsLoopbackHost(host) {
|
|
249
|
+
const h = host.toLowerCase();
|
|
250
|
+
return h === 'localhost' || h === '127.0.0.1' || h === '::1' || h === '[::1]';
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* @description Parse the authorize URL rendered by `opencode auth login` into its
|
|
254
|
+
* loopback redirect target + `state`. Returns all-null/false when there is no
|
|
255
|
+
* URL yet or it carries no loopback `redirect_uri`. Robust to junk: a malformed
|
|
256
|
+
* URL yields the empty result rather than throwing.
|
|
257
|
+
*/
|
|
258
|
+
function parseOAuthAuthorizeDetails(ptyOutput) {
|
|
259
|
+
const empty = {
|
|
260
|
+
redirectPort: null,
|
|
261
|
+
redirectPath: null,
|
|
262
|
+
isLoopback: false,
|
|
263
|
+
state: null,
|
|
264
|
+
};
|
|
265
|
+
const authorizeUrl = parseOpenCodeOAuthUrl(ptyOutput);
|
|
266
|
+
if (!authorizeUrl)
|
|
267
|
+
return empty;
|
|
268
|
+
let parsed;
|
|
269
|
+
try {
|
|
270
|
+
parsed = new URL(authorizeUrl);
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
return empty;
|
|
274
|
+
}
|
|
275
|
+
const state = parsed.searchParams.get('state');
|
|
276
|
+
const redirectUri = parsed.searchParams.get('redirect_uri');
|
|
277
|
+
if (!redirectUri)
|
|
278
|
+
return { ...empty, state };
|
|
279
|
+
let redirect;
|
|
280
|
+
try {
|
|
281
|
+
redirect = new URL(redirectUri);
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
return { ...empty, state };
|
|
285
|
+
}
|
|
286
|
+
const isLoopback = checkIsLoopbackHost(redirect.hostname);
|
|
287
|
+
const port = redirect.port ? Number(redirect.port) : null;
|
|
288
|
+
return {
|
|
289
|
+
redirectPort: Number.isFinite(port) ? port : null,
|
|
290
|
+
redirectPath: redirect.pathname || null,
|
|
291
|
+
isLoopback,
|
|
292
|
+
state,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* @description A loopback (browser) OAuth flow: the CLI redirects to a localhost
|
|
297
|
+
* callback and shows NO device code (so it can't be relayed as a device flow).
|
|
298
|
+
* This is the shape that can't self-complete over Telegram and needs the paste
|
|
299
|
+
* bridge.
|
|
300
|
+
*/
|
|
301
|
+
function checkIsLoopbackOAuthFlow(ptyOutput) {
|
|
302
|
+
if (parseOpenCodeDeviceCode(ptyOutput) !== null)
|
|
303
|
+
return false;
|
|
304
|
+
return parseOAuthAuthorizeDetails(ptyOutput).isLoopback;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* @description Is `text` a plausible OAuth authorization code? Deliberately
|
|
308
|
+
* strict so a stale "awaiting reply" state can never swallow an unrelated chat
|
|
309
|
+
* message (the "я перезагрузил" bug): a real code is a single token — no
|
|
310
|
+
* whitespace, ASCII only, url-safe charset (optionally `#state`), bounded
|
|
311
|
+
* length. A normal sentence (spaces / non-Latin) is rejected.
|
|
312
|
+
*/
|
|
313
|
+
const oauthCodeRe = /^[A-Za-z0-9._~+/=#-]{8,1024}$/;
|
|
314
|
+
function checkIsPlausibleOAuthCode(text) {
|
|
315
|
+
return oauthCodeRe.test(text.trim());
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* @description Is `text` a plausible provider API key? A key is sent verbatim as
|
|
319
|
+
* an HTTP `Authorization: Bearer <key>` header, and HTTP header values are
|
|
320
|
+
* ISO-8859-1 with no whitespace/controls — so a value carrying spaces, tabs,
|
|
321
|
+
* newlines, control chars or non-Latin-1 characters (e.g. Cyrillic) can NEVER be
|
|
322
|
+
* a real key. Rejecting them up front turns a stray chat message ("я
|
|
323
|
+
* перезагрузил") captured by a stale `/connect` state into a clear error at
|
|
324
|
+
* paste time, instead of a cryptic `Header … has invalid value` on the next
|
|
325
|
+
* request (live 2026-07-20). Deliberately permissive otherwise — it
|
|
326
|
+
* only rules out the impossible, never guesses a provider's key shape.
|
|
327
|
+
*/
|
|
328
|
+
function checkIsPlausibleProviderApiKey(text) {
|
|
329
|
+
const key = text.trim();
|
|
330
|
+
if (key.length < 8 || key.length > 4096)
|
|
331
|
+
return false;
|
|
332
|
+
// No whitespace/controls anywhere, and every char within Latin-1 (0x21–0xFF).
|
|
333
|
+
for (const ch of key) {
|
|
334
|
+
const code = ch.codePointAt(0);
|
|
335
|
+
if (code <= 0x20 || code === 0x7f || code > 0xff)
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
return true;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* @description Extract callback parts from a pasted string IF it contains an
|
|
342
|
+
* `http(s)` URL that looks like an OAuth callback — i.e. it carries a `code`
|
|
343
|
+
* query param, or its path ends in `/callback`. Returns `null` when the text has
|
|
344
|
+
* no such URL (so the caller can fall back to bare-code parsing). Never throws.
|
|
345
|
+
*/
|
|
346
|
+
function parseOAuthCallbackFromReply(text) {
|
|
347
|
+
const urlMatch = stripAnsiForDetection(text).match(oauthUrlRe);
|
|
348
|
+
if (!urlMatch)
|
|
349
|
+
return null;
|
|
350
|
+
let parsed;
|
|
351
|
+
try {
|
|
352
|
+
parsed = new URL(urlMatch[0]);
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
return null;
|
|
356
|
+
}
|
|
357
|
+
const code = parsed.searchParams.get('code');
|
|
358
|
+
const isCallbackPath = /\/callback\/?$/i.test(parsed.pathname);
|
|
359
|
+
if (!code && !isCallbackPath)
|
|
360
|
+
return null;
|
|
361
|
+
const port = parsed.port ? Number(parsed.port) : null;
|
|
362
|
+
return {
|
|
363
|
+
code,
|
|
364
|
+
state: parsed.searchParams.get('state'),
|
|
365
|
+
port: Number.isFinite(port) ? port : null,
|
|
366
|
+
path: parsed.pathname || null,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
function classifyOpenCodeOAuthReply(text) {
|
|
370
|
+
const callback = parseOAuthCallbackFromReply(text);
|
|
371
|
+
if (callback)
|
|
372
|
+
return { kind: 'callback', ...callback };
|
|
373
|
+
const trimmed = text.trim();
|
|
374
|
+
if (checkIsPlausibleOAuthCode(trimmed))
|
|
375
|
+
return { kind: 'code', code: trimmed };
|
|
376
|
+
return null;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* @description Build the loopback completion URL to replay against the CLI's
|
|
380
|
+
* local callback server on the host: `http://127.0.0.1:<port><path>?code&state`.
|
|
381
|
+
* Returns `null` unless all of port, code and state are known (state may come
|
|
382
|
+
* from the stored authorize URL when the user pasted only a bare code). Path
|
|
383
|
+
* defaults to `/auth/callback`.
|
|
384
|
+
*/
|
|
385
|
+
function buildLoopbackCompletionUrl(input) {
|
|
386
|
+
const { port, code, state } = input;
|
|
387
|
+
if (port === null || !code || !state)
|
|
388
|
+
return null;
|
|
389
|
+
const path = input.path && input.path.startsWith('/') ? input.path : '/auth/callback';
|
|
390
|
+
const params = new URLSearchParams({ code, state });
|
|
391
|
+
return `http://127.0.0.1:${port}${path}?${params.toString()}`;
|
|
392
|
+
}
|
|
393
|
+
//# sourceMappingURL=openCodeAuthLogin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openCodeAuthLogin.js","sourceRoot":"","sources":["../../src/utils/openCodeAuthLogin.ts"],"names":[],"mappings":"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"}
|