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,407 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jiraCommentAdfMaxChars = exports.jiraCommentMarkdownMaxChars = exports.adfNodeSchema = exports.attributeValueSchema = void 0;
|
|
4
|
+
exports.convertMarkdownToAdf = convertMarkdownToAdf;
|
|
5
|
+
exports.getStringAttribute = getStringAttribute;
|
|
6
|
+
exports.getAdfText = getAdfText;
|
|
7
|
+
exports.splitMarkdownForComments = splitMarkdownForComments;
|
|
8
|
+
exports.createCommentBodies = createCommentBodies;
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const marklassian_1 = require("marklassian");
|
|
11
|
+
/** Any JSON value — an ADF attribute, and the raw value of a Jira field the connector does not model. */
|
|
12
|
+
exports.attributeValueSchema = zod_1.z.lazy(() => zod_1.z.union([
|
|
13
|
+
zod_1.z.string(),
|
|
14
|
+
zod_1.z.number(),
|
|
15
|
+
zod_1.z.boolean(),
|
|
16
|
+
zod_1.z.null(),
|
|
17
|
+
zod_1.z.array(exports.attributeValueSchema),
|
|
18
|
+
zod_1.z.record(zod_1.z.string(), exports.attributeValueSchema),
|
|
19
|
+
]));
|
|
20
|
+
const markSchema = zod_1.z.object({
|
|
21
|
+
type: zod_1.z.string(),
|
|
22
|
+
attrs: zod_1.z.record(zod_1.z.string(), exports.attributeValueSchema).optional(),
|
|
23
|
+
});
|
|
24
|
+
/** Validates an ADF node from a Jira response (unknown keys are dropped). */
|
|
25
|
+
exports.adfNodeSchema = zod_1.z.lazy(() => zod_1.z.object({
|
|
26
|
+
type: zod_1.z.string(),
|
|
27
|
+
attrs: zod_1.z.record(zod_1.z.string(), exports.attributeValueSchema).optional(),
|
|
28
|
+
content: zod_1.z.array(exports.adfNodeSchema).optional(),
|
|
29
|
+
marks: zod_1.z.array(markSchema).optional(),
|
|
30
|
+
text: zod_1.z.string().optional(),
|
|
31
|
+
}));
|
|
32
|
+
/** ADF refuses an empty text node (`minLength: 1`); marklassian emits one for an empty code block. */
|
|
33
|
+
function getNodesWithoutEmptyText(nodes) {
|
|
34
|
+
return nodes
|
|
35
|
+
.filter((node) => node.type !== 'text' || (node.text ?? '') !== '')
|
|
36
|
+
.map((node) => (node.content ? { ...node, content: getNodesWithoutEmptyText(node.content) } : node));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Stands in for `<` while marklassian converts (R17): with no `<` in its input
|
|
40
|
+
* the Markdown lexer sees no HTML — `Promise<string>` would otherwise lose
|
|
41
|
+
* `<string>`, and an `<adf>…</adf>` block would pass raw ADF (a mention that
|
|
42
|
+
* notifies any account) into the comment. A private-use character, restored
|
|
43
|
+
* afterwards in every text and attribute.
|
|
44
|
+
*/
|
|
45
|
+
const angleBracketPlaceholder = '\uE000';
|
|
46
|
+
const angleBracketPlaceholderRe = new RegExp(angleBracketPlaceholder, 'g');
|
|
47
|
+
/** What an occurrence of the placeholder already in the answer becomes, so a restore cannot invent a `<`. */
|
|
48
|
+
const replacementCharacter = '\uFFFD';
|
|
49
|
+
/**
|
|
50
|
+
* A `<` that does NOT open a CommonMark autolink (`<scheme:address>`,
|
|
51
|
+
* `<name@host>`). An autolink is a link token, never HTML — a tag name holds
|
|
52
|
+
* neither `:` nor `@` — so it keeps its `<` and stays a link. An address may
|
|
53
|
+
* not start with `!` or `?`: `<!` and `<?` open HTML (a comment, a
|
|
54
|
+
* declaration, a processing instruction) before an autolink is ever read, and
|
|
55
|
+
* would hide the rest of the answer.
|
|
56
|
+
*/
|
|
57
|
+
const nonAutolinkAngleBracketRe = new RegExp('<(?![A-Za-z][A-Za-z0-9+.-]{1,31}:[^\\s<>]*>|[A-Za-z0-9.#$%&\'*+/=^_`{|}~-][A-Za-z0-9.!#$%&\'*+/=?^_`{|}~-]*@[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*>)', 'g');
|
|
58
|
+
/**
|
|
59
|
+
* In prose, CommonMark reads `\<` as an escaped `<`; hidden from the lexer the
|
|
60
|
+
* `<` was no escape and the backslash stayed. Code, and a link's text (an
|
|
61
|
+
* autolink's text is its address), keep the backslash as written.
|
|
62
|
+
*/
|
|
63
|
+
const optionallyEscapedPlaceholderRe = new RegExp(`\\\\?${angleBracketPlaceholder}`, 'g');
|
|
64
|
+
function getRestoredText(node, isInCodeBlock) {
|
|
65
|
+
const isLiteral = isInCodeBlock || (node.marks ?? []).some((mark) => mark.type === 'code' || mark.type === 'link');
|
|
66
|
+
return (node.text ?? '').replace(isLiteral ? angleBracketPlaceholderRe : optionallyEscapedPlaceholderRe, '<');
|
|
67
|
+
}
|
|
68
|
+
function getRestoredAttributeValue(value) {
|
|
69
|
+
if (typeof value === 'string')
|
|
70
|
+
return value.replace(angleBracketPlaceholderRe, '<');
|
|
71
|
+
if (Array.isArray(value))
|
|
72
|
+
return value.map(getRestoredAttributeValue);
|
|
73
|
+
if (value !== null && typeof value === 'object') {
|
|
74
|
+
return Object.fromEntries(Object.entries(value).map(([name, inner]) => [name, getRestoredAttributeValue(inner)]));
|
|
75
|
+
}
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
function getRestoredAttributes(attrs) {
|
|
79
|
+
return attrs && Object.fromEntries(Object.entries(attrs).map(([name, value]) => [name, getRestoredAttributeValue(value)]));
|
|
80
|
+
}
|
|
81
|
+
function getRestoredNodes(nodes, isInCodeBlock = false) {
|
|
82
|
+
return nodes.map((node) => ({
|
|
83
|
+
...node,
|
|
84
|
+
...(node.text !== undefined ? { text: getRestoredText(node, isInCodeBlock) } : {}),
|
|
85
|
+
...(node.attrs ? { attrs: getRestoredAttributes(node.attrs) } : {}),
|
|
86
|
+
...(node.marks ? { marks: node.marks.map((mark) => (mark.attrs ? { ...mark, attrs: getRestoredAttributes(mark.attrs) } : mark)) } : {}),
|
|
87
|
+
...(node.content ? { content: getRestoredNodes(node.content, isInCodeBlock || node.type === 'codeBlock') } : {}),
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
/** R25: the only link targets a comment may carry; anything else (`javascript:`, `data:`, a relative path) stays text. */
|
|
91
|
+
const safeLinkProtocols = new Set(['http:', 'https:', 'mailto:']);
|
|
92
|
+
function checkIsSafeLinkTarget(href) {
|
|
93
|
+
try {
|
|
94
|
+
return safeLinkProtocols.has(new URL(href).protocol);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/** A text node's marks without a link to an unsafe target; `undefined` when none remain. */
|
|
101
|
+
function getSafeMarks(marks) {
|
|
102
|
+
if (!marks)
|
|
103
|
+
return undefined;
|
|
104
|
+
const kept = marks.filter((mark) => {
|
|
105
|
+
if (mark.type !== 'link')
|
|
106
|
+
return true;
|
|
107
|
+
const href = mark.attrs?.href;
|
|
108
|
+
return typeof href === 'string' && checkIsSafeLinkTarget(href);
|
|
109
|
+
});
|
|
110
|
+
return kept.length > 0 ? kept : undefined;
|
|
111
|
+
}
|
|
112
|
+
/** An image as a paragraph of one text node: its alt text (or address), linked when the address is safe. */
|
|
113
|
+
function getImageAsLink(mediaSingle) {
|
|
114
|
+
const media = mediaSingle.content?.find((node) => node.type === 'media');
|
|
115
|
+
const url = typeof media?.attrs?.url === 'string' ? media.attrs.url : '';
|
|
116
|
+
const alt = typeof media?.attrs?.alt === 'string' ? media.attrs.alt : '';
|
|
117
|
+
const text = alt || url || 'image';
|
|
118
|
+
const marks = url && checkIsSafeLinkTarget(url) ? [{ type: 'link', attrs: { href: url } }] : undefined;
|
|
119
|
+
return { type: 'paragraph', content: [{ type: 'text', text: marks || !url || url === text ? text : `${text} (${url})`, ...(marks ? { marks } : {}) }] };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* R25: no external media and no unsafe link targets in a comment. An image would
|
|
123
|
+
* be fetched by every viewer's browser — a tracking pixel, or a way to send data
|
|
124
|
+
* out in its address — so it becomes a plain link; a link to anything but
|
|
125
|
+
* http, https or mailto loses its target and stays text.
|
|
126
|
+
*/
|
|
127
|
+
function getSafeNodes(nodes) {
|
|
128
|
+
return nodes.map((node) => {
|
|
129
|
+
if (node.type === 'mediaSingle')
|
|
130
|
+
return getImageAsLink(node);
|
|
131
|
+
const { marks, ...rest } = node;
|
|
132
|
+
const safeMarks = getSafeMarks(marks);
|
|
133
|
+
return {
|
|
134
|
+
...rest,
|
|
135
|
+
...(safeMarks ? { marks: safeMarks } : {}),
|
|
136
|
+
...(node.content ? { content: getSafeNodes(node.content) } : {}),
|
|
137
|
+
};
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/** Markdown the agent wrote → an ADF document for a comment body (D3); HTML in it stays literal text (R17), no media or unsafe links (R25). */
|
|
141
|
+
function convertMarkdownToAdf(markdown) {
|
|
142
|
+
const withoutAngleBrackets = markdown
|
|
143
|
+
.replace(angleBracketPlaceholderRe, replacementCharacter)
|
|
144
|
+
.replace(nonAutolinkAngleBracketRe, angleBracketPlaceholder);
|
|
145
|
+
const document = (0, marklassian_1.markdownToAdf)(withoutAngleBrackets);
|
|
146
|
+
return { ...document, content: getSafeNodes(getRestoredNodes(getNodesWithoutEmptyText(document.content))) };
|
|
147
|
+
}
|
|
148
|
+
/** Nodes that start a line of their own in the text form. */
|
|
149
|
+
const blockNodeTypes = new Set([
|
|
150
|
+
'paragraph', 'heading', 'blockquote', 'codeBlock', 'rule', 'panel', 'listItem', 'taskItem', 'decisionItem',
|
|
151
|
+
'tableRow', 'mediaSingle', 'mediaGroup', 'expand', 'nestedExpand', 'blockCard', 'embedCard',
|
|
152
|
+
]);
|
|
153
|
+
/** Prefix of a list or task item's line. */
|
|
154
|
+
const itemPrefix = '- ';
|
|
155
|
+
const maxConsecutiveNewlines = 2;
|
|
156
|
+
function getStringAttribute(node, name) {
|
|
157
|
+
const value = node.attrs?.[name];
|
|
158
|
+
return typeof value === 'string' ? value : null;
|
|
159
|
+
}
|
|
160
|
+
/** A text node; a linked one keeps its address, which the agent may need to follow. */
|
|
161
|
+
function getTextNodeText(node) {
|
|
162
|
+
const text = node.text ?? '';
|
|
163
|
+
const linkMark = node.marks?.find((mark) => mark.type === 'link');
|
|
164
|
+
const href = linkMark ? getStringAttribute(linkMark, 'href') : null;
|
|
165
|
+
return href && href !== text ? `${text} (${href})` : text;
|
|
166
|
+
}
|
|
167
|
+
/** The inline text a leaf node stands for. */
|
|
168
|
+
function getLeafText(node, resolveMedia) {
|
|
169
|
+
switch (node.type) {
|
|
170
|
+
case 'text':
|
|
171
|
+
return getTextNodeText(node);
|
|
172
|
+
case 'hardBreak':
|
|
173
|
+
return '\n';
|
|
174
|
+
case 'mention':
|
|
175
|
+
return getStringAttribute(node, 'text') ?? '@user';
|
|
176
|
+
case 'emoji':
|
|
177
|
+
return getStringAttribute(node, 'text') ?? getStringAttribute(node, 'shortName') ?? '';
|
|
178
|
+
case 'inlineCard':
|
|
179
|
+
case 'blockCard':
|
|
180
|
+
case 'embedCard':
|
|
181
|
+
return getStringAttribute(node, 'url') ?? '';
|
|
182
|
+
case 'status':
|
|
183
|
+
return getStringAttribute(node, 'text') ?? '';
|
|
184
|
+
case 'media':
|
|
185
|
+
case 'mediaInline':
|
|
186
|
+
return resolveMedia?.(node) ?? '';
|
|
187
|
+
default:
|
|
188
|
+
return '';
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function getNodeText(node, resolveMedia) {
|
|
192
|
+
const children = node.content ?? [];
|
|
193
|
+
// A row's cells hold paragraphs, each ending its own line: trimmed, the row stays one line.
|
|
194
|
+
// A group's files sit side by side: a space keeps their placeholders apart.
|
|
195
|
+
let inner;
|
|
196
|
+
if (node.type === 'tableRow')
|
|
197
|
+
inner = children.map((cell) => getNodeText(cell, resolveMedia).trim()).join(' | ');
|
|
198
|
+
else if (node.type === 'mediaGroup')
|
|
199
|
+
inner = children.map((file) => getNodeText(file, resolveMedia)).join(' ');
|
|
200
|
+
else
|
|
201
|
+
inner = children.map((child) => getNodeText(child, resolveMedia)).join('');
|
|
202
|
+
const text = node.content ? inner : getLeafText(node, resolveMedia);
|
|
203
|
+
if (node.type === 'listItem' || node.type === 'taskItem')
|
|
204
|
+
return `${itemPrefix}${text.trim()}\n`;
|
|
205
|
+
return blockNodeTypes.has(node.type) ? `${text}\n` : text;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* @description An ADF document (or node) as plain text for the agent's prompt:
|
|
209
|
+
* one line per block, list items as `- …`, mentions by their display text,
|
|
210
|
+
* cards by their URL, a link as `text (address)`, a media node by what
|
|
211
|
+
* `resolveMedia` says (nothing without one). Other formatting is dropped.
|
|
212
|
+
*/
|
|
213
|
+
function getAdfText(node, resolveMedia) {
|
|
214
|
+
if (!node)
|
|
215
|
+
return '';
|
|
216
|
+
return getNodeText(node, resolveMedia)
|
|
217
|
+
.replace(new RegExp(`\\n{${maxConsecutiveNewlines + 1},}`, 'g'), '\n'.repeat(maxConsecutiveNewlines))
|
|
218
|
+
.trim();
|
|
219
|
+
}
|
|
220
|
+
/** Comfortably under Jira's 32 767-character comment body. */
|
|
221
|
+
exports.jiraCommentMarkdownMaxChars = 30_000;
|
|
222
|
+
/**
|
|
223
|
+
* The same margin for the serialized ADF body (R19): which count Jira enforces
|
|
224
|
+
* is not documented, and ADF JSON runs several times longer than its Markdown.
|
|
225
|
+
*/
|
|
226
|
+
exports.jiraCommentAdfMaxChars = 30_000;
|
|
227
|
+
/** How far under the measured ratio a re-split aims, so one pass usually fits. */
|
|
228
|
+
const adfResplitMargin = 0.9;
|
|
229
|
+
/** A fence line: its run of 3+ backticks or tildes, then the info string. */
|
|
230
|
+
const fenceRe = /^\s*(`{3,}|~{3,})(.*)$/;
|
|
231
|
+
/** CommonMark: a fence closes with the same character, at least as long, and no info string. */
|
|
232
|
+
function checkIsClosingFence(fence, openFence) {
|
|
233
|
+
return fence[1][0] === openFence[0] && fence[1].length >= openFence.length && fence[2].trim() === '';
|
|
234
|
+
}
|
|
235
|
+
/** Blocks separated by blank lines; a fenced code block stays one block, blank lines and all. */
|
|
236
|
+
function getMarkdownBlocks(markdown) {
|
|
237
|
+
const blocks = [];
|
|
238
|
+
let current = [];
|
|
239
|
+
let openFence = null;
|
|
240
|
+
for (const line of markdown.split('\n')) {
|
|
241
|
+
const fence = fenceRe.exec(line);
|
|
242
|
+
if (fence) {
|
|
243
|
+
if (openFence === null)
|
|
244
|
+
openFence = fence[1];
|
|
245
|
+
else if (checkIsClosingFence(fence, openFence))
|
|
246
|
+
openFence = null;
|
|
247
|
+
}
|
|
248
|
+
if (openFence === null && !fence && line.trim() === '') {
|
|
249
|
+
if (current.length > 0)
|
|
250
|
+
blocks.push(current.join('\n'));
|
|
251
|
+
current = [];
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
current.push(line);
|
|
255
|
+
}
|
|
256
|
+
if (current.length > 0)
|
|
257
|
+
blocks.push(current.join('\n'));
|
|
258
|
+
return blocks;
|
|
259
|
+
}
|
|
260
|
+
/** The first half of a character outside the BMP: a cut right after it leaves a lone surrogate on each side. */
|
|
261
|
+
const highSurrogateRe = /^[\uD800-\uDBFF]$/;
|
|
262
|
+
/**
|
|
263
|
+
* A line cut into parts of at most `maxChars`, each cut after the last space
|
|
264
|
+
* that fits (the space stays, so the text is unchanged) — a cut inside a word
|
|
265
|
+
* would split it and the emphasis around it across two comments. A run with no
|
|
266
|
+
* space is cut hard, never between the two halves of a surrogate pair.
|
|
267
|
+
*/
|
|
268
|
+
function getLineParts(line, maxChars) {
|
|
269
|
+
const parts = [];
|
|
270
|
+
let rest = line;
|
|
271
|
+
while (rest.length > maxChars) {
|
|
272
|
+
const lastSpace = rest.lastIndexOf(' ', maxChars - 1);
|
|
273
|
+
const hardCutAt = maxChars > 1 && highSurrogateRe.test(rest[maxChars - 1] ?? '') ? maxChars - 1 : maxChars;
|
|
274
|
+
const cutAt = lastSpace > 0 ? lastSpace + 1 : hardCutAt;
|
|
275
|
+
parts.push(rest.slice(0, cutAt));
|
|
276
|
+
rest = rest.slice(cutAt);
|
|
277
|
+
}
|
|
278
|
+
parts.push(rest);
|
|
279
|
+
return parts;
|
|
280
|
+
}
|
|
281
|
+
/** Pack lines into pieces of at most `maxChars`, cutting a line longer than that. */
|
|
282
|
+
function getLinePieces(lines, maxChars) {
|
|
283
|
+
const pieces = [];
|
|
284
|
+
// Lines, not a string: an empty string cannot tell "nothing yet" from a blank line, which would be dropped.
|
|
285
|
+
let currentLines = [];
|
|
286
|
+
let currentLength = 0;
|
|
287
|
+
for (const line of lines) {
|
|
288
|
+
for (const part of getLineParts(line, maxChars)) {
|
|
289
|
+
const candidateLength = currentLines.length === 0 ? part.length : currentLength + 1 + part.length;
|
|
290
|
+
if (candidateLength <= maxChars) {
|
|
291
|
+
currentLines.push(part);
|
|
292
|
+
currentLength = candidateLength;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
pieces.push(currentLines.join('\n'));
|
|
296
|
+
currentLines = [part];
|
|
297
|
+
currentLength = part.length;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
if (currentLines.length > 0)
|
|
302
|
+
pieces.push(currentLines.join('\n'));
|
|
303
|
+
return pieces;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* A block's runs: lines of text, and each fenced code block from its opener to
|
|
307
|
+
* its closer. A fence may follow a text line with no blank line between them,
|
|
308
|
+
* and rejoining the runs with a blank line renders the same: a fence
|
|
309
|
+
* interrupts a paragraph.
|
|
310
|
+
*/
|
|
311
|
+
function getFenceRuns(lines) {
|
|
312
|
+
const runs = [];
|
|
313
|
+
let current = [];
|
|
314
|
+
let openFence = null;
|
|
315
|
+
for (const line of lines) {
|
|
316
|
+
const fence = fenceRe.exec(line);
|
|
317
|
+
if (openFence === null && fence) {
|
|
318
|
+
if (current.length > 0)
|
|
319
|
+
runs.push(current);
|
|
320
|
+
current = [line];
|
|
321
|
+
openFence = fence[1];
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
current.push(line);
|
|
325
|
+
if (openFence !== null && fence && checkIsClosingFence(fence, openFence)) {
|
|
326
|
+
runs.push(current);
|
|
327
|
+
current = [];
|
|
328
|
+
openFence = null;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
if (current.length > 0)
|
|
332
|
+
runs.push(current);
|
|
333
|
+
return runs;
|
|
334
|
+
}
|
|
335
|
+
/** A block longer than a comment: split by lines; a code block is re-fenced around every piece. */
|
|
336
|
+
function getOversizedBlockPieces(block, maxChars) {
|
|
337
|
+
return getFenceRuns(block.split('\n')).flatMap((run) => getRunPieces(run, maxChars));
|
|
338
|
+
}
|
|
339
|
+
function getRunPieces(lines, maxChars) {
|
|
340
|
+
const run = lines.join('\n');
|
|
341
|
+
if (run.length <= maxChars)
|
|
342
|
+
return [run];
|
|
343
|
+
const opener = lines[0] ?? '';
|
|
344
|
+
const fence = fenceRe.exec(opener);
|
|
345
|
+
const closer = fence?.[1] ?? '';
|
|
346
|
+
const wrappingLength = opener.length + closer.length + 2;
|
|
347
|
+
// Not a code block, or an opener so long no line would fit beside it: plain line pieces.
|
|
348
|
+
if (!fence || wrappingLength >= maxChars)
|
|
349
|
+
return getLinePieces(lines, maxChars);
|
|
350
|
+
const lastFence = lines.length > 1 ? fenceRe.exec(lines[lines.length - 1] ?? '') : null;
|
|
351
|
+
const hasCloser = lastFence !== null && checkIsClosingFence(lastFence, closer);
|
|
352
|
+
const bodyLines = lines.slice(1, hasCloser ? -1 : undefined);
|
|
353
|
+
return getLinePieces(bodyLines, maxChars - wrappingLength).map((piece) => `${opener}\n${piece}\n${closer}`);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* @description Split an answer into comment-sized Markdown chunks: whole blocks
|
|
357
|
+
* (paragraphs, lists, fenced code) packed in order; only a block that alone is
|
|
358
|
+
* too long is split inside, a code block keeping its fences on every piece.
|
|
359
|
+
* Blank input yields no chunk.
|
|
360
|
+
*/
|
|
361
|
+
function splitMarkdownForComments(markdown, maxChars = exports.jiraCommentMarkdownMaxChars) {
|
|
362
|
+
if (!Number.isInteger(maxChars) || maxChars < 1)
|
|
363
|
+
throw new RangeError(`maxChars must be a positive integer, got ${maxChars}`);
|
|
364
|
+
const chunks = [];
|
|
365
|
+
let current = '';
|
|
366
|
+
for (const block of getMarkdownBlocks(markdown)) {
|
|
367
|
+
const pieces = block.length > maxChars ? getOversizedBlockPieces(block, maxChars) : [block];
|
|
368
|
+
for (const piece of pieces) {
|
|
369
|
+
const candidate = current === '' ? piece : `${current}\n\n${piece}`;
|
|
370
|
+
if (candidate.length <= maxChars) {
|
|
371
|
+
current = candidate;
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
if (current !== '')
|
|
375
|
+
chunks.push(current);
|
|
376
|
+
current = piece;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
if (current.trim() !== '')
|
|
381
|
+
chunks.push(current);
|
|
382
|
+
return chunks;
|
|
383
|
+
}
|
|
384
|
+
function getAdfLength(document) {
|
|
385
|
+
return JSON.stringify(document).length;
|
|
386
|
+
}
|
|
387
|
+
/** One Markdown piece as comment bodies that each fit `adfMaxChars`, re-split smaller as long as one does not. */
|
|
388
|
+
function getFittingBodies(markdownPiece, adfMaxChars) {
|
|
389
|
+
const body = convertMarkdownToAdf(markdownPiece);
|
|
390
|
+
const adfLength = getAdfLength(body);
|
|
391
|
+
if (adfLength <= adfMaxChars)
|
|
392
|
+
return [body];
|
|
393
|
+
const smallerMaxChars = Math.floor((markdownPiece.length * adfMaxChars * adfResplitMargin) / adfLength);
|
|
394
|
+
if (smallerMaxChars < 1)
|
|
395
|
+
throw new RangeError(`adfMaxChars ${adfMaxChars} cannot hold a single character of this answer`);
|
|
396
|
+
return splitMarkdownForComments(markdownPiece, smallerMaxChars).flatMap((piece) => getFittingBodies(piece, adfMaxChars));
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* @description An answer as the comment bodies to post, in order (R19): each
|
|
400
|
+
* fits Jira's limit by BOTH counts — its Markdown and its serialized ADF. Split
|
|
401
|
+
* by {@link splitMarkdownForComments} first; a piece whose ADF is still too
|
|
402
|
+
* long is split again with a cap scaled by its own ADF/Markdown ratio.
|
|
403
|
+
*/
|
|
404
|
+
function createCommentBodies(markdown, limits = { markdownMaxChars: exports.jiraCommentMarkdownMaxChars, adfMaxChars: exports.jiraCommentAdfMaxChars }) {
|
|
405
|
+
return splitMarkdownForComments(markdown, limits.markdownMaxChars).flatMap((piece) => getFittingBodies(piece, limits.adfMaxChars));
|
|
406
|
+
}
|
|
407
|
+
//# sourceMappingURL=adf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adf.js","sourceRoot":"","sources":["../../../src/connectors/jira/adf.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Tools the Jira agents find on their PATH (prompt context C11):
|
|
3
|
+
* `jira.json` `agentBinaries` maps a name to the program's absolute path, and
|
|
4
|
+
* each is linked into `DATA_DIR/agent-bin/`, a folder the agents' PATH starts
|
|
5
|
+
* with. A link rather than a copy keeps the tool current; a link that went stale
|
|
6
|
+
* is replaced at the next boot, and a name dropped from the config is removed.
|
|
7
|
+
*/
|
|
8
|
+
export declare const agentBinDirName = "agent-bin";
|
|
9
|
+
/**
|
|
10
|
+
* @description Rebuild `DATA_DIR/agent-bin` to hold exactly `binaries` as links. Resolves the folder
|
|
11
|
+
* when there is something in it, else `null` (nothing is added to any PATH).
|
|
12
|
+
*/
|
|
13
|
+
export declare function linkAgentBinaries(dataDir: string, binaries: ReadonlyMap<string, string>): string | null;
|
|
14
|
+
//# sourceMappingURL=agentBinaries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentBinaries.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/agentBinaries.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH,eAAO,MAAM,eAAe,cAAc,CAAC;AAW3C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAYvG"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.agentBinDirName = void 0;
|
|
37
|
+
exports.linkAgentBinaries = linkAgentBinaries;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
/**
|
|
41
|
+
* @description Tools the Jira agents find on their PATH (prompt context C11):
|
|
42
|
+
* `jira.json` `agentBinaries` maps a name to the program's absolute path, and
|
|
43
|
+
* each is linked into `DATA_DIR/agent-bin/`, a folder the agents' PATH starts
|
|
44
|
+
* with. A link rather than a copy keeps the tool current; a link that went stale
|
|
45
|
+
* is replaced at the next boot, and a name dropped from the config is removed.
|
|
46
|
+
*/
|
|
47
|
+
exports.agentBinDirName = 'agent-bin';
|
|
48
|
+
const dirMode = 0o700;
|
|
49
|
+
/** Make `linkPath` a symlink to `target`, atomically: a process running the tool never finds a gap. */
|
|
50
|
+
function replaceSymlink(target, linkPath) {
|
|
51
|
+
const tmpPath = `${linkPath}.${process.pid}.tmp`;
|
|
52
|
+
fs.rmSync(tmpPath, { force: true });
|
|
53
|
+
fs.symlinkSync(target, tmpPath);
|
|
54
|
+
fs.renameSync(tmpPath, linkPath);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @description Rebuild `DATA_DIR/agent-bin` to hold exactly `binaries` as links. Resolves the folder
|
|
58
|
+
* when there is something in it, else `null` (nothing is added to any PATH).
|
|
59
|
+
*/
|
|
60
|
+
function linkAgentBinaries(dataDir, binaries) {
|
|
61
|
+
const dir = path.join(dataDir, exports.agentBinDirName);
|
|
62
|
+
if (binaries.size === 0) {
|
|
63
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
fs.mkdirSync(dir, { recursive: true, mode: dirMode });
|
|
67
|
+
for (const entry of fs.readdirSync(dir)) {
|
|
68
|
+
if (!binaries.has(entry))
|
|
69
|
+
fs.rmSync(path.join(dir, entry), { recursive: true, force: true });
|
|
70
|
+
}
|
|
71
|
+
for (const [name, binaryPath] of binaries)
|
|
72
|
+
replaceSymlink(binaryPath, path.join(dir, name));
|
|
73
|
+
return dir;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=agentBinaries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentBinaries.js","sourceRoot":"","sources":["../../../src/connectors/jira/agentBinaries.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,8CAYC;AAtCD,uCAAyB;AACzB,2CAA6B;AAE7B;;;;;;GAMG;AAEU,QAAA,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,OAAO,GAAG,KAAK,CAAC;AAEtB,uGAAuG;AACvG,SAAS,cAAc,CAAC,MAAc,EAAE,QAAgB;IACtD,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IACjD,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,OAAe,EAAE,QAAqC;IACtF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAe,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,QAAQ;QAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5F,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { AnswerSink } from '../../platform/answerSink';
|
|
2
|
+
import type { RequestAlertReason } from '../../requests/types';
|
|
3
|
+
import type { JiraAccount, JiraClient } from './client';
|
|
4
|
+
import { type JiraUnconfirmedPosts } from './unconfirmedPosts';
|
|
5
|
+
/**
|
|
6
|
+
* @description The Jira connector's answer sink (plan J6, D20, R18): an answer
|
|
7
|
+
* becomes one or more comments by the AI account, in order; a `question` or a
|
|
8
|
+
* `final` answer to an open request hands the issue back to the requester — but
|
|
9
|
+
* ONLY while it is still assigned to the AI account (someone who took it
|
|
10
|
+
* meanwhile keeps it). Comment first, then the hand-back: a hand-back that fails
|
|
11
|
+
* leaves the answer delivered (a warning, never a retry that would post it twice).
|
|
12
|
+
* A comment post whose outcome is unknown (R18) is never re-posted blindly: the
|
|
13
|
+
* issue's newest comments are read once, after a short wait, and a matching
|
|
14
|
+
* comment by the AI account counts as delivered. A post left unconfirmed is
|
|
15
|
+
* remembered on disk (R29): when the same text is sent again for the same
|
|
16
|
+
* request, the issue is read first and a comment that did land is not posted
|
|
17
|
+
* twice. The agent cannot look at the issue itself, so every failure tells it
|
|
18
|
+
* what to send again. Bot texts on the issue are English (D20).
|
|
19
|
+
*/
|
|
20
|
+
/** How many of the issue's newest comments R18's read-back looks through. */
|
|
21
|
+
export declare const jiraReadBackCommentCount = 20;
|
|
22
|
+
/**
|
|
23
|
+
* A comment Jira dated this much before the post started still counts as the post
|
|
24
|
+
* (clock skew) — short (R30), so an earlier identical comment, such as a repeated
|
|
25
|
+
* park notice, is not taken for the new one.
|
|
26
|
+
*/
|
|
27
|
+
export declare const jiraReadBackClockSkewMs: number;
|
|
28
|
+
/**
|
|
29
|
+
* How long the read-back waits after a post of unknown outcome: a post that timed
|
|
30
|
+
* out or met a 5xx may still be committing on Jira's side, and reading at once
|
|
31
|
+
* would call it "not posted" and invite the agent to post it twice.
|
|
32
|
+
*/
|
|
33
|
+
export declare const jiraReadBackDelayMs = 10000;
|
|
34
|
+
/** @description The alert comment: which request, why, and that a person is needed (D20). */
|
|
35
|
+
export declare function buildJiraAlertText(requestId: string, reason: RequestAlertReason): string;
|
|
36
|
+
/** @description The park notice (D12): over the run budget, handed back without a new request. */
|
|
37
|
+
export declare function buildJiraParkText(runBudgetPer24h: number): string;
|
|
38
|
+
export interface JiraAnswerSinkDeps {
|
|
39
|
+
client: Pick<JiraClient, 'addComment' | 'getRecentComments' | 'getIssue' | 'assignIssue'>;
|
|
40
|
+
aiAccountId: string;
|
|
41
|
+
runBudgetPer24h: number;
|
|
42
|
+
now: () => number;
|
|
43
|
+
/** Pause before the read-back ({@link jiraReadBackDelayMs}). */
|
|
44
|
+
wait: (ms: number) => Promise<void>;
|
|
45
|
+
unconfirmedPosts: Pick<JiraUnconfirmedPosts, 'getPostedAt' | 'recordUnconfirmed' | 'settle'>;
|
|
46
|
+
}
|
|
47
|
+
export interface JiraAnswerSink extends AnswerSink {
|
|
48
|
+
/** Over the run budget (D12): the park notice, then the hand-back. Never rejects. */
|
|
49
|
+
parkIssue(issueKey: string, requester: JiraAccount | null): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
export declare function createJiraAnswerSink(deps: JiraAnswerSinkDeps): JiraAnswerSink;
|
|
52
|
+
//# sourceMappingURL=answerSink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answerSink.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/answerSink.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,2BAA2B,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEnF;;;;;;;;;;;;;;GAcG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAY,CAAC;AACjD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAU1C,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAExF;AAED,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,mBAAmB,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC;IAC1F,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,gEAAgE;IAChE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,mBAAmB,GAAG,QAAQ,CAAC,CAAC;CAC9F;AA4BD,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,qFAAqF;IACrF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAoJ7E"}
|