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,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getIssueBlockText = getIssueBlockText;
|
|
4
|
+
exports.buildIssueBlocks = buildIssueBlocks;
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
const adf_1 = require("./adf");
|
|
7
|
+
const issueContext_1 = require("./issueContext");
|
|
8
|
+
const mediaPlaceholders_1 = require("./mediaPlaceholders");
|
|
9
|
+
const promptText_1 = require("./promptText");
|
|
10
|
+
const emptyBodyText = '(empty)';
|
|
11
|
+
const noneBodyText = '(none)';
|
|
12
|
+
const notReferencedText = 'not referenced in the text';
|
|
13
|
+
const descriptionLocation = 'description';
|
|
14
|
+
/** Properties of a field value that name it, in the order they are tried: a user, an option, a version or component. */
|
|
15
|
+
const namedValueProperties = ['displayName', 'value', 'name'];
|
|
16
|
+
/** @description The block as the prompt prints it; `stateNote` (`new`, `changed since your last prompt`, …) follows the heading. */
|
|
17
|
+
function getIssueBlockText(block, stateNote) {
|
|
18
|
+
return `${block.heading}${stateNote ? ` (${stateNote})` : ''}:\n${block.body}`;
|
|
19
|
+
}
|
|
20
|
+
function getHash(text) {
|
|
21
|
+
return (0, crypto_1.createHash)('sha256').update(text).digest('hex');
|
|
22
|
+
}
|
|
23
|
+
function createBlock(key, kind, heading, body, fullText = body) {
|
|
24
|
+
return { key, kind, heading, body, fullText, hash: getHash(`${heading}\n${body}`) };
|
|
25
|
+
}
|
|
26
|
+
/** `PROJ-5 "summary" (Status)`: what another issue is called. */
|
|
27
|
+
function getIssueReferenceText(reference) {
|
|
28
|
+
const summary = (0, promptText_1.getSingleLineText)(reference.fields?.summary ?? '');
|
|
29
|
+
const statusName = (0, promptText_1.getSingleLineText)(reference.fields?.status?.name ?? '');
|
|
30
|
+
return [(0, promptText_1.getSingleLineText)(reference.key), summary ? `"${summary}"` : '', statusName ? `(${statusName})` : ''].filter((part) => part !== '').join(' ');
|
|
31
|
+
}
|
|
32
|
+
function getExtraFieldValueText(value) {
|
|
33
|
+
if (value === undefined || value === null)
|
|
34
|
+
return '';
|
|
35
|
+
if (typeof value === 'string')
|
|
36
|
+
return (0, promptText_1.getSingleLineText)(value);
|
|
37
|
+
if (typeof value === 'number' || typeof value === 'boolean')
|
|
38
|
+
return value.toString();
|
|
39
|
+
if (Array.isArray(value))
|
|
40
|
+
return value.map(getExtraFieldValueText).filter((text) => text !== '').join(', ');
|
|
41
|
+
const document = adf_1.adfNodeSchema.safeParse(value);
|
|
42
|
+
if (document.success && document.data.type === 'doc')
|
|
43
|
+
return (0, promptText_1.getSingleLineText)((0, adf_1.getAdfText)(document.data));
|
|
44
|
+
for (const propertyName of namedValueProperties) {
|
|
45
|
+
const named = value[propertyName];
|
|
46
|
+
if (typeof named === 'string')
|
|
47
|
+
return (0, promptText_1.getSingleLineText)(named);
|
|
48
|
+
}
|
|
49
|
+
return (0, promptText_1.getSingleLineText)(JSON.stringify(value));
|
|
50
|
+
}
|
|
51
|
+
/** A `Label: value` line, or nothing for a field that has no value. */
|
|
52
|
+
function getFieldLine(label, value) {
|
|
53
|
+
return value === '' ? [] : [`${label}: ${value}`];
|
|
54
|
+
}
|
|
55
|
+
function getNamesText(items) {
|
|
56
|
+
return (items ?? []).map((item) => (0, promptText_1.getSingleLineText)(item.name)).filter((name) => name !== '').join(', ');
|
|
57
|
+
}
|
|
58
|
+
function getFieldsBlock(context, extraFields) {
|
|
59
|
+
const { fields, rawFields } = context.issue;
|
|
60
|
+
const lines = [
|
|
61
|
+
...getFieldLine('Summary', (0, promptText_1.getSingleLineText)(fields.summary ?? '') || '(no summary)'),
|
|
62
|
+
...getFieldLine('Type', (0, promptText_1.getSingleLineText)(fields.issuetype?.name ?? '')),
|
|
63
|
+
...getFieldLine('Priority', (0, promptText_1.getSingleLineText)(fields.priority?.name ?? '')),
|
|
64
|
+
...getFieldLine('Status', (0, promptText_1.getSingleLineText)(fields.status?.name ?? '') || 'unknown'),
|
|
65
|
+
...getFieldLine('Reporter', fields.reporter ? (0, promptText_1.getAccountName)(fields.reporter) : ''),
|
|
66
|
+
...getFieldLine('Parent', fields.parent ? getIssueReferenceText(fields.parent) : ''),
|
|
67
|
+
...getFieldLine('Fix versions', getNamesText(fields.fixVersions)),
|
|
68
|
+
...getFieldLine('Labels', (fields.labels ?? []).map(promptText_1.getSingleLineText).filter((label) => label !== '').join(', ')),
|
|
69
|
+
...getFieldLine('Components', getNamesText(fields.components)),
|
|
70
|
+
...extraFields.flatMap((extraField) => getFieldLine((0, promptText_1.getSingleLineText)(extraField.name), getExtraFieldValueText(rawFields?.[extraField.id]))),
|
|
71
|
+
];
|
|
72
|
+
return createBlock('fields', 'fields', 'Fields', lines.join('\n'));
|
|
73
|
+
}
|
|
74
|
+
function getHierarchyBlock(context) {
|
|
75
|
+
const isParent = (context.issue.fields.issuetype?.hierarchyLevel ?? 0) >= issueContext_1.jiraParentHierarchyLevel;
|
|
76
|
+
const items = isParent ? context.children : (context.issue.fields.subtasks ?? []);
|
|
77
|
+
const heading = `${isParent ? 'Child issues' : 'Sub-tasks'} (${items.length})`;
|
|
78
|
+
return createBlock('hierarchy', 'hierarchy', heading, items.length === 0 ? noneBodyText : items.map((item) => `- ${getIssueReferenceText(item)}`).join('\n'));
|
|
79
|
+
}
|
|
80
|
+
function getIssueLinkText(link) {
|
|
81
|
+
const farIssue = link.outwardIssue ?? link.inwardIssue;
|
|
82
|
+
if (!farIssue)
|
|
83
|
+
return [];
|
|
84
|
+
const phrase = (0, promptText_1.getSingleLineText)(link.outwardIssue ? link.type.outward : link.type.inward);
|
|
85
|
+
return [`- ${phrase} ${getIssueReferenceText(farIssue)}`];
|
|
86
|
+
}
|
|
87
|
+
function getLinksBlock(context) {
|
|
88
|
+
const lines = [
|
|
89
|
+
...(context.issue.fields.issuelinks ?? []).flatMap(getIssueLinkText),
|
|
90
|
+
...context.remoteLinks.map((link) => {
|
|
91
|
+
const title = (0, promptText_1.getSingleLineText)(link.object.title ?? '');
|
|
92
|
+
return `- web link: ${title ? `"${title}" ` : ''}${(0, promptText_1.getSingleLineText)(link.object.url)}`;
|
|
93
|
+
}),
|
|
94
|
+
];
|
|
95
|
+
return createBlock('links', 'links', 'Links', lines.length === 0 ? noneBodyText : lines.join('\n'));
|
|
96
|
+
}
|
|
97
|
+
function getAttachmentLine(attachment, locations) {
|
|
98
|
+
const details = [
|
|
99
|
+
(0, promptText_1.getSingleLineText)(attachment.mimeType ?? ''),
|
|
100
|
+
attachment.size === undefined ? '' : `${attachment.size} bytes`,
|
|
101
|
+
attachment.author ? `by ${(0, promptText_1.getAccountName)(attachment.author)}` : '',
|
|
102
|
+
(0, promptText_1.getSingleLineText)(attachment.created ?? ''),
|
|
103
|
+
].filter((detail) => detail !== '');
|
|
104
|
+
const detailsText = details.length > 0 ? ` (${details.join(', ')})` : '';
|
|
105
|
+
const referencedText = locations.length > 0 ? `referenced in ${locations.join(', ')}` : notReferencedText;
|
|
106
|
+
return `- ${attachment.id} ${(0, promptText_1.getSingleLineText)(attachment.filename)}${detailsText} — ${referencedText}`;
|
|
107
|
+
}
|
|
108
|
+
function getAttachmentsBlock(attachments, locationsByAttachmentId) {
|
|
109
|
+
const lines = attachments.map((attachment) => getAttachmentLine(attachment, locationsByAttachmentId.get(attachment.id) ?? []));
|
|
110
|
+
return createBlock('attachments', 'attachments', `Attachments (${attachments.length})`, lines.length === 0 ? noneBodyText : lines.join('\n'));
|
|
111
|
+
}
|
|
112
|
+
/** `[restricted to <role or group>]` and `[internal]` (a Service Management internal note): who may NOT be told what this says. */
|
|
113
|
+
function getCommentVisibilityMarker(comment) {
|
|
114
|
+
const markers = [
|
|
115
|
+
...(comment.visibility ? [`[restricted to ${(0, promptText_1.getSingleLineText)(comment.visibility.value)}]`] : []),
|
|
116
|
+
...(comment.jsdPublic === false ? ['[internal]'] : []),
|
|
117
|
+
];
|
|
118
|
+
return markers.join(' ');
|
|
119
|
+
}
|
|
120
|
+
function getCommentBlock(comment, text, aiAccountId) {
|
|
121
|
+
const marker = getCommentVisibilityMarker(comment);
|
|
122
|
+
const id = (0, promptText_1.getSingleLineText)(comment.id);
|
|
123
|
+
const authorName = (0, promptText_1.getAccountName)(comment.author);
|
|
124
|
+
const created = (0, promptText_1.getSingleLineText)(comment.created);
|
|
125
|
+
const heading = `Comment ${id} by ${authorName}, ${created}${marker ? ` ${marker}` : ''}`;
|
|
126
|
+
const updateAuthorId = comment.updateAuthor?.accountId;
|
|
127
|
+
return {
|
|
128
|
+
key: `comment:${comment.id}`,
|
|
129
|
+
kind: 'comment',
|
|
130
|
+
heading,
|
|
131
|
+
body: (0, promptText_1.getQuotedText)(text || emptyBodyText),
|
|
132
|
+
fullText: text,
|
|
133
|
+
// Author and date never change; a save that changed nothing must not resend the comment.
|
|
134
|
+
hash: getHash(`${marker}\n${text}`),
|
|
135
|
+
comment: {
|
|
136
|
+
label: `comment ${id} by ${authorName} from ${created}`,
|
|
137
|
+
editNote: `edited ${(0, promptText_1.getSingleLineText)(comment.updated ?? '') || 'at an unknown time'} by ${(0, promptText_1.getAccountName)(comment.updateAuthor ?? comment.author)}`,
|
|
138
|
+
isOwn: comment.author?.accountId === aiAccountId && (updateAuthorId === undefined || updateAuthorId === aiAccountId),
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/** Oldest first; Jira sorts them already, a tie keeps Jira's order. */
|
|
143
|
+
function getCommentsOldestFirst(comments) {
|
|
144
|
+
return [...comments].sort((left, right) => Date.parse(left.created) - Date.parse(right.created));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* @description The issue as blocks, in prompt order. Media in the description
|
|
148
|
+
* and the comments become placeholders naming their attachment (C9); the
|
|
149
|
+
* attachments block then says where each file is referenced.
|
|
150
|
+
*/
|
|
151
|
+
function buildIssueBlocks(context, extraFields, aiAccountId) {
|
|
152
|
+
const attachments = [...(context.issue.fields.attachment ?? [])].sort((left, right) => Number(left.id) - Number(right.id));
|
|
153
|
+
const comments = getCommentsOldestFirst(context.comments);
|
|
154
|
+
const attachmentIdByMediaId = new Map([
|
|
155
|
+
...(0, mediaPlaceholders_1.getAttachmentIdsByMediaId)(context.issue.renderedFields?.description),
|
|
156
|
+
...comments.flatMap((comment) => [...(0, mediaPlaceholders_1.getAttachmentIdsByMediaId)(comment.renderedBody)]),
|
|
157
|
+
]);
|
|
158
|
+
const locationsByAttachmentId = new Map();
|
|
159
|
+
const getResolver = (location) => (0, mediaPlaceholders_1.createMediaResolver)({
|
|
160
|
+
attachments,
|
|
161
|
+
attachmentIdByMediaId,
|
|
162
|
+
onResolved: (attachmentIds) => {
|
|
163
|
+
for (const attachmentId of attachmentIds) {
|
|
164
|
+
const locations = locationsByAttachmentId.get(attachmentId) ?? [];
|
|
165
|
+
if (!locations.includes(location))
|
|
166
|
+
locationsByAttachmentId.set(attachmentId, [...locations, location]);
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
const descriptionText = (0, adf_1.getAdfText)(context.issue.fields.description, getResolver(descriptionLocation));
|
|
171
|
+
const descriptionBlock = createBlock('description', 'description', 'Description', (0, promptText_1.getQuotedText)(descriptionText || emptyBodyText), descriptionText);
|
|
172
|
+
const commentBlocks = comments.map((comment) => getCommentBlock(comment, (0, adf_1.getAdfText)(comment.body, getResolver(`comment ${comment.id}`)), aiAccountId));
|
|
173
|
+
return [
|
|
174
|
+
getFieldsBlock(context, extraFields),
|
|
175
|
+
descriptionBlock,
|
|
176
|
+
getHierarchyBlock(context),
|
|
177
|
+
getLinksBlock(context),
|
|
178
|
+
getAttachmentsBlock(attachments, locationsByAttachmentId),
|
|
179
|
+
...commentBlocks,
|
|
180
|
+
];
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=issueBlocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issueBlocks.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueBlocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { JiraClient, JiraComment, JiraIssue, JiraRemoteLink } from './client';
|
|
2
|
+
/**
|
|
3
|
+
* @description Everything one request's prompt says about an issue (plan C1,
|
|
4
|
+
* C2): the issue's own fields, ALL its comments (the issue field holds at most
|
|
5
|
+
* 100), its remote links, and — for an issue that can hold children, such as an
|
|
6
|
+
* epic — ALL its children, read page by page. Fetched before the request opens:
|
|
7
|
+
* a request is never left without its prompt.
|
|
8
|
+
*/
|
|
9
|
+
/** The fields every prompt reads; a project's `extraFields` ids are added to them. */
|
|
10
|
+
export declare const jiraPromptIssueFields: string[];
|
|
11
|
+
export declare const jiraChildSearchPageSize = 100;
|
|
12
|
+
/** An issue type at this level or above holds child issues (an epic); level 0 holds sub-tasks, below 0 is a sub-task. */
|
|
13
|
+
export declare const jiraParentHierarchyLevel = 1;
|
|
14
|
+
export type JiraIssueContextClient = Pick<JiraClient, 'getIssue' | 'getComments' | 'getRemoteLinks' | 'searchIssues'>;
|
|
15
|
+
export interface JiraIssueContext {
|
|
16
|
+
issue: JiraIssue;
|
|
17
|
+
/** Oldest first. */
|
|
18
|
+
comments: JiraComment[];
|
|
19
|
+
remoteLinks: JiraRemoteLink[];
|
|
20
|
+
/** The issue's children when its type can hold them, else empty (its sub-tasks are on the issue itself). */
|
|
21
|
+
children: JiraIssue[];
|
|
22
|
+
}
|
|
23
|
+
/** @description Read the issue, its comments, its remote links and, when it can have them, its children. */
|
|
24
|
+
export declare function fetchJiraIssueContext(client: JiraIssueContextClient, issueKey: string, extraFieldIds: readonly string[]): Promise<JiraIssueContext>;
|
|
25
|
+
//# sourceMappingURL=issueContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issueContext.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/issueContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEnF;;;;;;GAMG;AAEH,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,UAGjC,CAAC;AAIF,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,yHAAyH;AACzH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,gBAAgB,GAAG,cAAc,CAAC,CAAC;AAEtH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,4GAA4G;IAC5G,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAwBD,4GAA4G;AAC5G,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAQ3B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jiraParentHierarchyLevel = exports.jiraChildSearchPageSize = exports.jiraPromptIssueFields = void 0;
|
|
4
|
+
exports.fetchJiraIssueContext = fetchJiraIssueContext;
|
|
5
|
+
/**
|
|
6
|
+
* @description Everything one request's prompt says about an issue (plan C1,
|
|
7
|
+
* C2): the issue's own fields, ALL its comments (the issue field holds at most
|
|
8
|
+
* 100), its remote links, and — for an issue that can hold children, such as an
|
|
9
|
+
* epic — ALL its children, read page by page. Fetched before the request opens:
|
|
10
|
+
* a request is never left without its prompt.
|
|
11
|
+
*/
|
|
12
|
+
/** The fields every prompt reads; a project's `extraFields` ids are added to them. */
|
|
13
|
+
exports.jiraPromptIssueFields = [
|
|
14
|
+
'summary', 'status', 'issuetype', 'priority', 'parent', 'subtasks', 'issuelinks', 'fixVersions', 'labels',
|
|
15
|
+
'components', 'attachment', 'description', 'reporter',
|
|
16
|
+
];
|
|
17
|
+
/** Only the description's HTML is asked for: it names the attachment behind an inline file (C9). */
|
|
18
|
+
const renderedFieldsExpand = 'renderedFields';
|
|
19
|
+
const childIssueFields = ['summary', 'status', 'issuetype'];
|
|
20
|
+
exports.jiraChildSearchPageSize = 100;
|
|
21
|
+
/** An issue type at this level or above holds child issues (an epic); level 0 holds sub-tasks, below 0 is a sub-task. */
|
|
22
|
+
exports.jiraParentHierarchyLevel = 1;
|
|
23
|
+
/** A JQL string literal: the key is Jira's own, but a quote or backslash in it must never end the literal. */
|
|
24
|
+
function getJqlQuoted(text) {
|
|
25
|
+
return `"${text.replace(/["\\]/g, '\\$&')}"`;
|
|
26
|
+
}
|
|
27
|
+
async function getChildIssues(client, issueKey) {
|
|
28
|
+
const children = [];
|
|
29
|
+
let nextPageToken;
|
|
30
|
+
do {
|
|
31
|
+
const page = await client.searchIssues({
|
|
32
|
+
jql: `parent = ${getJqlQuoted(issueKey)} ORDER BY created ASC`,
|
|
33
|
+
fields: childIssueFields,
|
|
34
|
+
isChangelogExpanded: false,
|
|
35
|
+
maxResults: exports.jiraChildSearchPageSize,
|
|
36
|
+
nextPageToken,
|
|
37
|
+
});
|
|
38
|
+
children.push(...page.issues);
|
|
39
|
+
nextPageToken = page.isLast ? undefined : (page.nextPageToken ?? undefined);
|
|
40
|
+
} while (nextPageToken);
|
|
41
|
+
return children;
|
|
42
|
+
}
|
|
43
|
+
/** @description Read the issue, its comments, its remote links and, when it can have them, its children. */
|
|
44
|
+
async function fetchJiraIssueContext(client, issueKey, extraFieldIds) {
|
|
45
|
+
const [issue, comments, remoteLinks] = await Promise.all([
|
|
46
|
+
client.getIssue(issueKey, [...exports.jiraPromptIssueFields, ...extraFieldIds], renderedFieldsExpand),
|
|
47
|
+
client.getComments(issueKey),
|
|
48
|
+
client.getRemoteLinks(issueKey),
|
|
49
|
+
]);
|
|
50
|
+
const isParent = (issue.fields.issuetype?.hierarchyLevel ?? 0) >= exports.jiraParentHierarchyLevel;
|
|
51
|
+
return { issue, comments, remoteLinks, children: isParent ? await getChildIssues(client, issueKey) : [] };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=issueContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issueContext.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueContext.ts"],"names":[],"mappings":";;;AAwDA,sDAYC;AAlED;;;;;;GAMG;AAEH,sFAAsF;AACzE,QAAA,qBAAqB,GAAG;IACnC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ;IACzG,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU;CACtD,CAAC;AACF,oGAAoG;AACpG,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAC9C,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC/C,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAC3C,yHAAyH;AAC5G,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAa1C,8GAA8G;AAC9G,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAA8B,EAAE,QAAgB;IAC5E,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,IAAI,aAAiC,CAAC;IACtC,GAAG,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACrC,GAAG,EAAE,YAAY,YAAY,CAAC,QAAQ,CAAC,uBAAuB;YAC9D,MAAM,EAAE,gBAAgB;YACxB,mBAAmB,EAAE,KAAK;YAC1B,UAAU,EAAE,+BAAuB;YACnC,aAAa;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC;IAC9E,CAAC,QAAQ,aAAa,EAAE;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,4GAA4G;AACrG,KAAK,UAAU,qBAAqB,CACzC,MAA8B,EAC9B,QAAgB,EAChB,aAAgC;IAEhC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,6BAAqB,EAAE,GAAG,aAAa,CAAC,EAAE,oBAAoB,CAAC;QAC7F,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,IAAI,CAAC,CAAC,IAAI,gCAAwB,CAAC;IAC3F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5G,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { JiraSentBlocks } from './contextLedger';
|
|
2
|
+
import type { IssueBlock, IssueBlockKind } from './issueBlocks';
|
|
3
|
+
/**
|
|
4
|
+
* @description What a prompt to a conversation that already knows the issue
|
|
5
|
+
* carries (prompt context C3, C7): only the blocks it has not seen.
|
|
6
|
+
*
|
|
7
|
+
* key not sent before → `new`
|
|
8
|
+
* sent, hash differs → comment: `edited <date> by <name>`, other: `changed since your last prompt`
|
|
9
|
+
* sent, same hash → left out, counted in the "unchanged" line
|
|
10
|
+
* the AI account's own comment → left out (it wrote it), unless a person edited it
|
|
11
|
+
* a sent comment that is gone → one "was deleted" line, then forgotten
|
|
12
|
+
*
|
|
13
|
+
* Every current block goes into the sent-set the prompt makes once taken in,
|
|
14
|
+
* the ones left out included; a deleted comment does not.
|
|
15
|
+
*/
|
|
16
|
+
export declare const newBlockNote = "new";
|
|
17
|
+
export declare const changedBlockNote = "changed since your last prompt";
|
|
18
|
+
export interface IssueDeltaEntry {
|
|
19
|
+
block: IssueBlock;
|
|
20
|
+
stateNote: string;
|
|
21
|
+
}
|
|
22
|
+
export interface IssueDelta {
|
|
23
|
+
/** The blocks to print, in prompt order, each with its note. */
|
|
24
|
+
entries: IssueDeltaEntry[];
|
|
25
|
+
/** The kinds of the non-comment blocks left out, in prompt order. */
|
|
26
|
+
unchangedKinds: IssueBlockKind[];
|
|
27
|
+
unchangedCommentCount: number;
|
|
28
|
+
/** `comment <id> by <name> from <date>` of each comment sent before and gone now. */
|
|
29
|
+
deletedCommentLabels: string[];
|
|
30
|
+
/** The sent-set once this prompt is taken in. */
|
|
31
|
+
sent: JiraSentBlocks;
|
|
32
|
+
}
|
|
33
|
+
/** @description The delta of `blocks` against `sent`; an empty `sent` makes every block new. */
|
|
34
|
+
export declare function getIssueDelta(blocks: readonly IssueBlock[], sent: Readonly<JiraSentBlocks>): IssueDelta;
|
|
35
|
+
//# sourceMappingURL=issueDelta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issueDelta.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/issueDelta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAGjE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,qEAAqE;IACrE,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qFAAqF;IACrF,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iDAAiD;IACjD,IAAI,EAAE,cAAc,CAAC;CACtB;AASD,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,UAAU,CAcvG"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.changedBlockNote = exports.newBlockNote = void 0;
|
|
4
|
+
exports.getIssueDelta = getIssueDelta;
|
|
5
|
+
/**
|
|
6
|
+
* @description What a prompt to a conversation that already knows the issue
|
|
7
|
+
* carries (prompt context C3, C7): only the blocks it has not seen.
|
|
8
|
+
*
|
|
9
|
+
* key not sent before → `new`
|
|
10
|
+
* sent, hash differs → comment: `edited <date> by <name>`, other: `changed since your last prompt`
|
|
11
|
+
* sent, same hash → left out, counted in the "unchanged" line
|
|
12
|
+
* the AI account's own comment → left out (it wrote it), unless a person edited it
|
|
13
|
+
* a sent comment that is gone → one "was deleted" line, then forgotten
|
|
14
|
+
*
|
|
15
|
+
* Every current block goes into the sent-set the prompt makes once taken in,
|
|
16
|
+
* the ones left out included; a deleted comment does not.
|
|
17
|
+
*/
|
|
18
|
+
exports.newBlockNote = 'new';
|
|
19
|
+
exports.changedBlockNote = 'changed since your last prompt';
|
|
20
|
+
const commentKeyPrefix = 'comment:';
|
|
21
|
+
function getStateNote(block, sentHash) {
|
|
22
|
+
if (block.comment?.isOwn)
|
|
23
|
+
return null;
|
|
24
|
+
if (sentHash === undefined)
|
|
25
|
+
return exports.newBlockNote;
|
|
26
|
+
if (sentHash === block.hash)
|
|
27
|
+
return null;
|
|
28
|
+
return block.comment ? block.comment.editNote : exports.changedBlockNote;
|
|
29
|
+
}
|
|
30
|
+
/** @description The delta of `blocks` against `sent`; an empty `sent` makes every block new. */
|
|
31
|
+
function getIssueDelta(blocks, sent) {
|
|
32
|
+
const delta = { entries: [], unchangedKinds: [], unchangedCommentCount: 0, deletedCommentLabels: [], sent: {} };
|
|
33
|
+
for (const block of blocks) {
|
|
34
|
+
delta.sent[block.key] = block.comment ? { hash: block.hash, label: block.comment.label } : { hash: block.hash };
|
|
35
|
+
const stateNote = getStateNote(block, sent[block.key]?.hash);
|
|
36
|
+
if (stateNote !== null)
|
|
37
|
+
delta.entries.push({ block, stateNote });
|
|
38
|
+
else if (block.kind === 'comment')
|
|
39
|
+
delta.unchangedCommentCount += 1;
|
|
40
|
+
else
|
|
41
|
+
delta.unchangedKinds.push(block.kind);
|
|
42
|
+
}
|
|
43
|
+
const currentKeys = new Set(blocks.map((block) => block.key));
|
|
44
|
+
for (const [key, sentBlock] of Object.entries(sent)) {
|
|
45
|
+
if (key.startsWith(commentKeyPrefix) && !currentKeys.has(key))
|
|
46
|
+
delta.deletedCommentLabels.push(sentBlock.label ?? key);
|
|
47
|
+
}
|
|
48
|
+
return delta;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=issueDelta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issueDelta.js","sourceRoot":"","sources":["../../../src/connectors/jira/issueDelta.ts"],"names":[],"mappings":";;;AA8CA,sCAcC;AAzDD;;;;;;;;;;;;GAYG;AAEU,QAAA,YAAY,GAAG,KAAK,CAAC;AACrB,QAAA,gBAAgB,GAAG,gCAAgC,CAAC;AACjE,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAmBpC,SAAS,YAAY,CAAC,KAAiB,EAAE,QAA4B;IACnE,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,oBAAY,CAAC;IAChD,IAAI,QAAQ,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAgB,CAAC;AACnE,CAAC;AAED,gGAAgG;AAChG,SAAgB,aAAa,CAAC,MAA6B,EAAE,IAA8B;IACzF,MAAM,KAAK,GAAe,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC5H,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAChH,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,IAAI;YAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;aAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC;;YAC/D,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type AdfMediaResolver } from './adf';
|
|
2
|
+
import type { JiraAttachment } from './client';
|
|
3
|
+
/**
|
|
4
|
+
* @description The media id → attachment id pairs a rendered body (a comment's
|
|
5
|
+
* `renderedBody`, an issue's `renderedFields.description`) states: every `<a>`
|
|
6
|
+
* that carries a `data-media-services-id` and a `/attachment/content/<id>` link.
|
|
7
|
+
* Only those two attributes are read; the HTML itself never reaches the prompt.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getAttachmentIdsByMediaId(renderedHtml: string | null | undefined): Map<string, string>;
|
|
10
|
+
export interface MediaResolverContext {
|
|
11
|
+
/** The issue's `attachment` list. */
|
|
12
|
+
attachments: readonly JiraAttachment[];
|
|
13
|
+
/** Media id → attachment id, merged from the rendered description and comments. */
|
|
14
|
+
attachmentIdByMediaId: ReadonlyMap<string, string>;
|
|
15
|
+
/** Told, for each media node resolved, which attachments it stands for — the attachments block's "referenced in". */
|
|
16
|
+
onResolved?: (attachmentIds: readonly string[]) => void;
|
|
17
|
+
}
|
|
18
|
+
/** @description The resolver `getAdfText` takes for one issue's text. Pure apart from `onResolved`. */
|
|
19
|
+
export declare function createMediaResolver(context: MediaResolverContext): AdfMediaResolver;
|
|
20
|
+
//# sourceMappingURL=mediaPlaceholders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaPlaceholders.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/mediaPlaceholders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,gBAAgB,EAAgB,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA6B/C;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUtG;AAED,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IACvC,mFAAmF;IACnF,qBAAqB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,qHAAqH;IACrH,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CACzD;AA0BD,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CAanF"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAttachmentIdsByMediaId = getAttachmentIdsByMediaId;
|
|
4
|
+
exports.createMediaResolver = createMediaResolver;
|
|
5
|
+
const adf_1 = require("./adf");
|
|
6
|
+
const promptText_1 = require("./promptText");
|
|
7
|
+
/**
|
|
8
|
+
* @description How a media node in an issue's text reaches the agent (plan C9):
|
|
9
|
+
* as a placeholder where the file sat, naming the attachment to fetch —
|
|
10
|
+
* `[image: login-error.png — attachment 10234]`. A pasted screenshot or video
|
|
11
|
+
* is a `media` node whose id is a Media Services id, NOT the attachment id, so
|
|
12
|
+
* the attachment is found from what Jira records (real ADF, S1 fixture):
|
|
13
|
+
*
|
|
14
|
+
* 1. an upload whose name was already taken is stored as `<stem> (<media id>).<ext>`:
|
|
15
|
+
* the attachment whose filename CONTAINS the media id — exact;
|
|
16
|
+
* 2. otherwise every attachment named exactly like the node's `alt` (the original
|
|
17
|
+
* file name) — all their ids are listed, because a REST upload keeps duplicate names;
|
|
18
|
+
* 3. an inline file (`mediaInline`) has no `alt` at all, but the rendered HTML
|
|
19
|
+
* links it to its attachment together with the media id
|
|
20
|
+
* (`<a href=".../attachment/content/<id>" data-media-services-id="<media id>">`):
|
|
21
|
+
* {@link getAttachmentIdsByMediaId} reads that — exact, so nothing is guessed;
|
|
22
|
+
* 4. nothing found → `attachment unknown`.
|
|
23
|
+
*/
|
|
24
|
+
const attachmentContentPathRe = /\/attachment\/content\/(\d+)/;
|
|
25
|
+
const htmlAnchorTagRe = /<a\b[^>]*>/gi;
|
|
26
|
+
const htmlAttributeRe = /([A-Za-z_][-A-Za-z0-9_:.]*)\s*=\s*"([^"]*)"/g;
|
|
27
|
+
const mediaServicesIdAttribute = 'data-media-services-id';
|
|
28
|
+
const unknownAttachmentText = 'attachment unknown';
|
|
29
|
+
const inlineFileLabel = 'inline file';
|
|
30
|
+
const externalMediaType = 'external';
|
|
31
|
+
/**
|
|
32
|
+
* @description The media id → attachment id pairs a rendered body (a comment's
|
|
33
|
+
* `renderedBody`, an issue's `renderedFields.description`) states: every `<a>`
|
|
34
|
+
* that carries a `data-media-services-id` and a `/attachment/content/<id>` link.
|
|
35
|
+
* Only those two attributes are read; the HTML itself never reaches the prompt.
|
|
36
|
+
*/
|
|
37
|
+
function getAttachmentIdsByMediaId(renderedHtml) {
|
|
38
|
+
const attachmentIdByMediaId = new Map();
|
|
39
|
+
for (const [anchorTag] of (renderedHtml ?? '').matchAll(htmlAnchorTagRe)) {
|
|
40
|
+
const attributes = new Map();
|
|
41
|
+
for (const [, name, value] of anchorTag.matchAll(htmlAttributeRe))
|
|
42
|
+
attributes.set(name.toLowerCase(), value);
|
|
43
|
+
const mediaId = attributes.get(mediaServicesIdAttribute);
|
|
44
|
+
const attachmentId = attachmentContentPathRe.exec(attributes.get('href') ?? '')?.[1];
|
|
45
|
+
if (mediaId && attachmentId)
|
|
46
|
+
attachmentIdByMediaId.set(mediaId, attachmentId);
|
|
47
|
+
}
|
|
48
|
+
return attachmentIdByMediaId;
|
|
49
|
+
}
|
|
50
|
+
/** What kind of file the placeholder names, from its type: only an image or a video is worth saying. */
|
|
51
|
+
function getMediaKind(mimeType) {
|
|
52
|
+
if (mimeType?.startsWith('image/'))
|
|
53
|
+
return 'image';
|
|
54
|
+
if (mimeType?.startsWith('video/'))
|
|
55
|
+
return 'video';
|
|
56
|
+
return 'file';
|
|
57
|
+
}
|
|
58
|
+
function getAttachmentTarget(attachmentIds) {
|
|
59
|
+
if (attachmentIds.length === 0)
|
|
60
|
+
return unknownAttachmentText;
|
|
61
|
+
return attachmentIds.length === 1 ? `attachment ${attachmentIds[0]}` : `attachments ${attachmentIds.join(', ')}`;
|
|
62
|
+
}
|
|
63
|
+
/** The ids of the attachments a `file` media node stands for (rules 1–3 above); empty when none is found. */
|
|
64
|
+
function getAttachmentIds(node, context) {
|
|
65
|
+
const mediaId = (0, adf_1.getStringAttribute)(node, 'id') ?? '';
|
|
66
|
+
const alt = (0, adf_1.getStringAttribute)(node, 'alt') ?? '';
|
|
67
|
+
const fromRenderedHtml = mediaId ? context.attachmentIdByMediaId.get(mediaId) : undefined;
|
|
68
|
+
if (fromRenderedHtml)
|
|
69
|
+
return [fromRenderedHtml];
|
|
70
|
+
// An empty id would match every filename.
|
|
71
|
+
const byMediaId = mediaId ? context.attachments.filter((attachment) => attachment.filename.includes(mediaId)) : [];
|
|
72
|
+
if (byMediaId.length > 0)
|
|
73
|
+
return byMediaId.map((attachment) => attachment.id);
|
|
74
|
+
return alt ? context.attachments.filter((attachment) => attachment.filename === alt).map((attachment) => attachment.id) : [];
|
|
75
|
+
}
|
|
76
|
+
/** @description The resolver `getAdfText` takes for one issue's text. Pure apart from `onResolved`. */
|
|
77
|
+
function createMediaResolver(context) {
|
|
78
|
+
return (node) => {
|
|
79
|
+
if (node.type === 'media' && (0, adf_1.getStringAttribute)(node, 'type') === externalMediaType) {
|
|
80
|
+
return `[image: ${(0, promptText_1.getSingleLineText)((0, adf_1.getStringAttribute)(node, 'url') ?? '')}]`;
|
|
81
|
+
}
|
|
82
|
+
const attachmentIds = getAttachmentIds(node, context);
|
|
83
|
+
context.onResolved?.(attachmentIds);
|
|
84
|
+
const firstAttachment = context.attachments.find((attachment) => attachment.id === attachmentIds[0]);
|
|
85
|
+
const name = (0, promptText_1.getSingleLineText)((0, adf_1.getStringAttribute)(node, 'alt') ?? firstAttachment?.filename ?? '');
|
|
86
|
+
const target = getAttachmentTarget(attachmentIds);
|
|
87
|
+
if (!name)
|
|
88
|
+
return `[${inlineFileLabel} — ${target}]`;
|
|
89
|
+
return `[${getMediaKind(firstAttachment?.mimeType)}: ${name} — ${target}]`;
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=mediaPlaceholders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaPlaceholders.js","sourceRoot":"","sources":["../../../src/connectors/jira/mediaPlaceholders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ConnectorCapabilities, ConnectorOutbound } from '../../platform/outbound';
|
|
2
|
+
export declare const jiraCapabilities: ConnectorCapabilities;
|
|
3
|
+
/** The error a file-send to a Jira issue answers with. */
|
|
4
|
+
export declare const jiraFileSendRefusal = "Files cannot be sent to a Jira issue; describe the result in your answer instead.";
|
|
5
|
+
export declare function createJiraConnectorOutbound(): ConnectorOutbound;
|
|
6
|
+
//# sourceMappingURL=outbound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/outbound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAaxF,eAAO,MAAM,gBAAgB,EAAE,qBAS9B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,sFAAsF,CAAC;AAEvH,wBAAgB,2BAA2B,IAAI,iBAAiB,CAW/D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jiraFileSendRefusal = exports.jiraCapabilities = void 0;
|
|
4
|
+
exports.createJiraConnectorOutbound = createJiraConnectorOutbound;
|
|
5
|
+
/**
|
|
6
|
+
* @description Jira's outbound (Jira connector plan J2, D19). A Jira issue gets
|
|
7
|
+
* the agent's ANSWERS only — they go through the Jira answer sink as comments —
|
|
8
|
+
* never its streamed output, so this outbound drops stream content and activity:
|
|
9
|
+
* a comment per output chunk would bury the issue. Files are refused with a
|
|
10
|
+
* reason the agent can read.
|
|
11
|
+
*/
|
|
12
|
+
/** Jira rejects a comment body longer than this. */
|
|
13
|
+
const jiraCommentMaxChars = 32_767;
|
|
14
|
+
exports.jiraCapabilities = {
|
|
15
|
+
editMessages: false,
|
|
16
|
+
pinMessages: false,
|
|
17
|
+
tappableOptions: false,
|
|
18
|
+
attachments: false,
|
|
19
|
+
threadedReplies: false,
|
|
20
|
+
activityIndicator: false,
|
|
21
|
+
maxMessageChars: jiraCommentMaxChars,
|
|
22
|
+
markupDialect: 'markdown',
|
|
23
|
+
};
|
|
24
|
+
/** The error a file-send to a Jira issue answers with. */
|
|
25
|
+
exports.jiraFileSendRefusal = 'Files cannot be sent to a Jira issue; describe the result in your answer instead.';
|
|
26
|
+
function createJiraConnectorOutbound() {
|
|
27
|
+
return {
|
|
28
|
+
capabilities: exports.jiraCapabilities,
|
|
29
|
+
deliver: async () => { },
|
|
30
|
+
deliverFile: async () => ({ ok: false, error: exports.jiraFileSendRefusal }),
|
|
31
|
+
setActivity: () => { },
|
|
32
|
+
finalize: async () => { },
|
|
33
|
+
dispose: () => { },
|
|
34
|
+
checkIsDelivering: () => false,
|
|
35
|
+
listUnfinalizedKeys: () => [],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=outbound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound.js","sourceRoot":"","sources":["../../../src/connectors/jira/outbound.ts"],"names":[],"mappings":";;;AA2BA,kEAWC;AApCD;;;;;;GAMG;AAEH,oDAAoD;AACpD,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEtB,QAAA,gBAAgB,GAA0B;IACrD,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;IACtB,iBAAiB,EAAE,KAAK;IACxB,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,UAAU;CAC1B,CAAC;AAEF,0DAA0D;AAC7C,QAAA,mBAAmB,GAAG,mFAAmF,CAAC;AAEvH,SAAgB,2BAA2B;IACzC,OAAO;QACL,YAAY,EAAE,wBAAgB;QAC9B,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QACvB,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAAmB,EAAE,CAAC;QACpE,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;QACrB,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QACxB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;QAC9B,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { JiraAccount } from './client';
|
|
2
|
+
import { type IssueBlock } from './issueBlocks';
|
|
3
|
+
import { type CommentsFile } from './promptSpill';
|
|
4
|
+
import type { IssueDelta } from './issueDelta';
|
|
5
|
+
import type { JiraIssueTrigger } from './trigger';
|
|
6
|
+
/** How the issue reached the agent, in a few words — the header's `from:`. */
|
|
7
|
+
export declare function getJiraOriginDescription(issueKey: string, trigger: JiraIssueTrigger, statusName: string | undefined): string;
|
|
8
|
+
/** What every prompt of a request says before the issue itself: who, which issue, where answers go. */
|
|
9
|
+
export interface JiraRequestPromptBase {
|
|
10
|
+
requestId: string;
|
|
11
|
+
issueKey: string;
|
|
12
|
+
/** The issue's status, for the header's `from:` of a status-triggered request. */
|
|
13
|
+
statusName: string | undefined;
|
|
14
|
+
/** `https://<site>/browse/<KEY>`. */
|
|
15
|
+
issueUrl: string;
|
|
16
|
+
trigger: JiraIssueTrigger;
|
|
17
|
+
requester: JiraAccount | null;
|
|
18
|
+
/** The same requester's earlier requests of the issue this one replaced (R34); the header names them. */
|
|
19
|
+
supersededRequestIds?: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
export interface JiraRequestPromptInput extends JiraRequestPromptBase {
|
|
22
|
+
/** The issue as its blocks, in prompt order (`buildIssueBlocks`, fitted by `fitBlocksToPrompt`). */
|
|
23
|
+
blocks: readonly IssueBlock[];
|
|
24
|
+
/** Set when the comments went to one file because even their stubs did not fit: it stands for the comment blocks. */
|
|
25
|
+
commentsFile?: CommentsFile | null;
|
|
26
|
+
}
|
|
27
|
+
/** @description The whole issue: the prompt of a conversation that does not know the issue yet (or no longer does). */
|
|
28
|
+
export declare function buildJiraRequestPrompt(input: JiraRequestPromptInput): string;
|
|
29
|
+
/**
|
|
30
|
+
* @description Only what changed since the conversation's last prompt (C3, C7):
|
|
31
|
+
* the new and changed blocks with their note, one line per deleted comment, and
|
|
32
|
+
* one line naming what was left out, so the agent knows nothing was dropped.
|
|
33
|
+
*/
|
|
34
|
+
export declare function buildJiraDeltaPrompt(input: JiraRequestPromptBase & {
|
|
35
|
+
delta: IssueDelta;
|
|
36
|
+
}): string;
|
|
37
|
+
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AA0BlD,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU5H;AAED,uGAAuG;AACvG,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,yGAAyG;IACzG,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE,oGAAoG;IACpG,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,qHAAqH;IACrH,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAmBD,uHAAuH;AACvH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAa5E;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,MAAM,CAWjG"}
|