charness 3.6.0 → 3.7.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/CHANGELOG.md +274 -0
- package/DEVELOPMENT.md +31 -5
- package/MIGRATION_RENAME_TO_CHARNESS.md +3 -2
- package/README.md +84 -782
- package/SETUP.md +37 -10
- package/agent-plugin/.claude-plugin/plugin.json +7 -0
- package/agent-plugin/README.md +35 -0
- package/agent-plugin/skills/charness-delegate-claude/SKILL.md +85 -0
- package/agent-plugin/skills/charness-delegate-claude/summarize-events.py +90 -0
- package/agent-plugin/skills/charness-delegate-opencode/SKILL.md +68 -0
- package/agent-plugin/skills/charness-manager/SKILL.md +152 -0
- package/dist/adapters/adapterNames.d.ts +6 -0
- package/dist/adapters/adapterNames.d.ts.map +1 -1
- package/dist/adapters/adapterNames.js +8 -2
- package/dist/adapters/adapterNames.js.map +1 -1
- package/dist/adapters/claudeCliAdapter.d.ts +8 -0
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeCliAdapter.js +42 -5
- package/dist/adapters/claudeCliAdapter.js.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +10 -9
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.js +53 -55
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
- package/dist/adapters/createAdapter.d.ts +8 -0
- package/dist/adapters/createAdapter.d.ts.map +1 -1
- package/dist/adapters/createAdapter.js +14 -2
- package/dist/adapters/createAdapter.js.map +1 -1
- package/dist/adapters/openCodeAdapter.d.ts +43 -6
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/openCodeAdapter.js +95 -6
- package/dist/adapters/openCodeAdapter.js.map +1 -1
- package/dist/agentLogin/agentLogin.d.ts +1 -1
- package/dist/agentLogin/agentLogin.d.ts.map +1 -1
- package/dist/apiRetryKick.d.ts +4 -3
- package/dist/apiRetryKick.d.ts.map +1 -1
- package/dist/apiRetryKick.js +16 -9
- package/dist/apiRetryKick.js.map +1 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +1313 -381
- package/dist/bot.js.map +1 -1
- package/dist/cli/claudeProfiles.d.ts +11 -6
- package/dist/cli/claudeProfiles.d.ts.map +1 -1
- package/dist/cli/claudeProfiles.js +50 -22
- package/dist/cli/claudeProfiles.js.map +1 -1
- package/dist/cli/hot.d.ts +5 -0
- package/dist/cli/hot.d.ts.map +1 -1
- package/dist/cli/hot.js +71 -25
- package/dist/cli/hot.js.map +1 -1
- package/dist/cli/tscWatchGuard.d.ts +95 -0
- package/dist/cli/tscWatchGuard.d.ts.map +1 -0
- package/dist/cli/tscWatchGuard.js +295 -0
- package/dist/cli/tscWatchGuard.js.map +1 -0
- package/dist/cli.js +12 -1
- package/dist/cli.js.map +1 -1
- package/dist/connectors/jira/answerSink.d.ts +10 -0
- package/dist/connectors/jira/answerSink.d.ts.map +1 -1
- package/dist/connectors/jira/answerSink.js +13 -0
- package/dist/connectors/jira/answerSink.js.map +1 -1
- package/dist/connectors/jira/config.d.ts +2 -0
- package/dist/connectors/jira/config.d.ts.map +1 -1
- package/dist/connectors/jira/config.js +9 -1
- package/dist/connectors/jira/config.js.map +1 -1
- package/dist/connectors/jira/connector.d.ts +11 -1
- package/dist/connectors/jira/connector.d.ts.map +1 -1
- package/dist/connectors/jira/connector.js +13 -1
- package/dist/connectors/jira/connector.js.map +1 -1
- package/dist/connectors/jira/inbound.d.ts +29 -4
- package/dist/connectors/jira/inbound.d.ts.map +1 -1
- package/dist/connectors/jira/inbound.js +71 -8
- package/dist/connectors/jira/inbound.js.map +1 -1
- package/dist/connectors/jira/issueBlocks.d.ts +5 -0
- package/dist/connectors/jira/issueBlocks.d.ts.map +1 -1
- package/dist/connectors/jira/issueBlocks.js +11 -0
- package/dist/connectors/jira/issueBlocks.js.map +1 -1
- package/dist/connectors/jira/prompt.d.ts +4 -0
- package/dist/connectors/jira/prompt.d.ts.map +1 -1
- package/dist/connectors/jira/prompt.js +11 -2
- package/dist/connectors/jira/prompt.js.map +1 -1
- package/dist/connectors/telegram/bindPicker.d.ts +5 -0
- package/dist/connectors/telegram/bindPicker.d.ts.map +1 -1
- package/dist/connectors/telegram/bindPicker.js +18 -1
- package/dist/connectors/telegram/bindPicker.js.map +1 -1
- package/dist/connectors/telegram/bindPickerClaims.d.ts +46 -0
- package/dist/connectors/telegram/bindPickerClaims.d.ts.map +1 -0
- package/dist/connectors/telegram/bindPickerClaims.js +83 -0
- package/dist/connectors/telegram/bindPickerClaims.js.map +1 -0
- package/dist/connectors/telegram/bindSweep.d.ts +32 -0
- package/dist/connectors/telegram/bindSweep.d.ts.map +1 -0
- package/dist/connectors/telegram/bindSweep.js +47 -0
- package/dist/connectors/telegram/bindSweep.js.map +1 -0
- package/dist/connectors/telegram/bindingWelcome.d.ts +23 -0
- package/dist/connectors/telegram/bindingWelcome.d.ts.map +1 -0
- package/dist/connectors/telegram/bindingWelcome.js +26 -0
- package/dist/connectors/telegram/bindingWelcome.js.map +1 -0
- package/dist/connectors/telegram/botApiConnection.d.ts +74 -0
- package/dist/connectors/telegram/botApiConnection.d.ts.map +1 -0
- package/dist/connectors/telegram/botApiConnection.js +201 -0
- package/dist/connectors/telegram/botApiConnection.js.map +1 -0
- package/dist/connectors/telegram/commands/botCore.d.ts +8 -2
- package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/botSkills.d.ts +21 -0
- package/dist/connectors/telegram/commands/botSkills.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/botSkills.js +133 -0
- package/dist/connectors/telegram/commands/botSkills.js.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts +5 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/callbackMessage.js +9 -0
- package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -1
- package/dist/connectors/telegram/commands/compaction.d.ts +65 -3
- package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/compaction.js +512 -94
- package/dist/connectors/telegram/commands/compaction.js.map +1 -1
- package/dist/connectors/telegram/commands/displayModes.d.ts +1 -1
- package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/displayModes.js +6 -18
- package/dist/connectors/telegram/commands/displayModes.js.map +1 -1
- package/dist/connectors/telegram/commands/fallbackChain.js +5 -5
- package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -1
- package/dist/connectors/telegram/commands/reminders.d.ts +1 -1
- package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/reminders.js +4 -15
- package/dist/connectors/telegram/commands/reminders.js.map +1 -1
- package/dist/connectors/telegram/commands/selfUpdate.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/selfUpdate.js +1 -11
- package/dist/connectors/telegram/commands/selfUpdate.js.map +1 -1
- package/dist/connectors/telegram/commands/taskAgents.d.ts +22 -0
- package/dist/connectors/telegram/commands/taskAgents.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/taskAgents.js +104 -0
- package/dist/connectors/telegram/commands/taskAgents.js.map +1 -0
- package/dist/connectors/telegram/commands/todo.d.ts +82 -0
- package/dist/connectors/telegram/commands/todo.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/todo.js +384 -0
- package/dist/connectors/telegram/commands/todo.js.map +1 -0
- package/dist/connectors/telegram/commands/topicCommand.d.ts +6 -2
- package/dist/connectors/telegram/commands/topicCommand.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/topicCommand.js +6 -9
- package/dist/connectors/telegram/commands/topicCommand.js.map +1 -1
- package/dist/connectors/telegram/openBindMessages.d.ts +45 -0
- package/dist/connectors/telegram/openBindMessages.d.ts.map +1 -0
- package/dist/connectors/telegram/openBindMessages.js +67 -0
- package/dist/connectors/telegram/openBindMessages.js.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts +49 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -1
- package/dist/connectors/telegram/outputFlushPlan.js +46 -0
- package/dist/connectors/telegram/outputFlushPlan.js.map +1 -1
- package/dist/connectors/telegram/pendingTopicName.d.ts +26 -0
- package/dist/connectors/telegram/pendingTopicName.d.ts.map +1 -0
- package/dist/connectors/telegram/pendingTopicName.js +27 -0
- package/dist/connectors/telegram/pendingTopicName.js.map +1 -0
- package/dist/connectors/test/connector.d.ts.map +1 -1
- package/dist/connectors/test/connector.js +6 -1
- package/dist/connectors/test/connector.js.map +1 -1
- package/dist/i18n/de.d.ts.map +1 -1
- package/dist/i18n/de.js +90 -7
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +90 -7
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +90 -7
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +90 -7
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +90 -7
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +90 -7
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +90 -7
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +90 -7
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +90 -7
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +90 -7
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +90 -7
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +90 -7
- package/dist/i18n/zh.js.map +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.js +1 -1
- package/dist/installManager.d.ts +13 -0
- package/dist/installManager.d.ts.map +1 -1
- package/dist/installManager.js +38 -4
- package/dist/installManager.js.map +1 -1
- package/dist/instanceSettings.d.ts +40 -1
- package/dist/instanceSettings.d.ts.map +1 -1
- package/dist/instanceSettings.js +105 -26
- package/dist/instanceSettings.js.map +1 -1
- package/dist/openCodeQuestionFlow.d.ts +30 -0
- package/dist/openCodeQuestionFlow.d.ts.map +1 -1
- package/dist/openCodeQuestionFlow.js +43 -0
- package/dist/openCodeQuestionFlow.js.map +1 -1
- package/dist/postToSession.d.ts +20 -5
- package/dist/postToSession.d.ts.map +1 -1
- package/dist/postToSession.js +38 -7
- package/dist/postToSession.js.map +1 -1
- package/dist/remoteRun/cliArgs.d.ts +73 -0
- package/dist/remoteRun/cliArgs.d.ts.map +1 -0
- package/dist/remoteRun/cliArgs.js +197 -0
- package/dist/remoteRun/cliArgs.js.map +1 -0
- package/dist/remoteRun/commands.d.ts +56 -0
- package/dist/remoteRun/commands.d.ts.map +1 -0
- package/dist/remoteRun/commands.js +306 -0
- package/dist/remoteRun/commands.js.map +1 -0
- package/dist/remoteRun/depsPlan.d.ts +16 -0
- package/dist/remoteRun/depsPlan.d.ts.map +1 -0
- package/dist/remoteRun/depsPlan.js +82 -0
- package/dist/remoteRun/depsPlan.js.map +1 -0
- package/dist/remoteRun/exitCodes.d.ts +34 -0
- package/dist/remoteRun/exitCodes.d.ts.map +1 -0
- package/dist/remoteRun/exitCodes.js +38 -0
- package/dist/remoteRun/exitCodes.js.map +1 -0
- package/dist/remoteRun/foreground.d.ts +29 -0
- package/dist/remoteRun/foreground.d.ts.map +1 -0
- package/dist/remoteRun/foreground.js +159 -0
- package/dist/remoteRun/foreground.js.map +1 -0
- package/dist/remoteRun/interrupts.d.ts +17 -0
- package/dist/remoteRun/interrupts.d.ts.map +1 -0
- package/dist/remoteRun/interrupts.js +41 -0
- package/dist/remoteRun/interrupts.js.map +1 -0
- package/dist/remoteRun/jobFiles.d.ts +31 -0
- package/dist/remoteRun/jobFiles.d.ts.map +1 -0
- package/dist/remoteRun/jobFiles.js +84 -0
- package/dist/remoteRun/jobFiles.js.map +1 -0
- package/dist/remoteRun/jobFormat.d.ts +16 -0
- package/dist/remoteRun/jobFormat.d.ts.map +1 -0
- package/dist/remoteRun/jobFormat.js +130 -0
- package/dist/remoteRun/jobFormat.js.map +1 -0
- package/dist/remoteRun/jobId.d.ts +15 -0
- package/dist/remoteRun/jobId.d.ts.map +1 -0
- package/dist/remoteRun/jobId.js +85 -0
- package/dist/remoteRun/jobId.js.map +1 -0
- package/dist/remoteRun/jobMeta.d.ts +18 -0
- package/dist/remoteRun/jobMeta.d.ts.map +1 -0
- package/dist/remoteRun/jobMeta.js +33 -0
- package/dist/remoteRun/jobMeta.js.map +1 -0
- package/dist/remoteRun/jobQuery.d.ts +12 -0
- package/dist/remoteRun/jobQuery.d.ts.map +1 -0
- package/dist/remoteRun/jobQuery.js +22 -0
- package/dist/remoteRun/jobQuery.js.map +1 -0
- package/dist/remoteRun/jobRecords.d.ts +22 -0
- package/dist/remoteRun/jobRecords.d.ts.map +1 -0
- package/dist/remoteRun/jobRecords.js +145 -0
- package/dist/remoteRun/jobRecords.js.map +1 -0
- package/dist/remoteRun/jobState.d.ts +62 -0
- package/dist/remoteRun/jobState.d.ts.map +1 -0
- package/dist/remoteRun/jobState.js +132 -0
- package/dist/remoteRun/jobState.js.map +1 -0
- package/dist/remoteRun/leaseTiming.d.ts +18 -0
- package/dist/remoteRun/leaseTiming.d.ts.map +1 -0
- package/dist/remoteRun/leaseTiming.js +43 -0
- package/dist/remoteRun/leaseTiming.js.map +1 -0
- package/dist/remoteRun/output.d.ts +35 -0
- package/dist/remoteRun/output.d.ts.map +1 -0
- package/dist/remoteRun/output.js +82 -0
- package/dist/remoteRun/output.js.map +1 -0
- package/dist/remoteRun/pathPatterns.d.ts +33 -0
- package/dist/remoteRun/pathPatterns.d.ts.map +1 -0
- package/dist/remoteRun/pathPatterns.js +115 -0
- package/dist/remoteRun/pathPatterns.js.map +1 -0
- package/dist/remoteRun/probe.d.ts +56 -0
- package/dist/remoteRun/probe.d.ts.map +1 -0
- package/dist/remoteRun/probe.js +123 -0
- package/dist/remoteRun/probe.js.map +1 -0
- package/dist/remoteRun/project.d.ts +26 -0
- package/dist/remoteRun/project.d.ts.map +1 -0
- package/dist/remoteRun/project.js +159 -0
- package/dist/remoteRun/project.js.map +1 -0
- package/dist/remoteRun/projectConfig.d.ts +38 -0
- package/dist/remoteRun/projectConfig.d.ts.map +1 -0
- package/dist/remoteRun/projectConfig.js +87 -0
- package/dist/remoteRun/projectConfig.js.map +1 -0
- package/dist/remoteRun/remoteRunCli.d.ts +15 -0
- package/dist/remoteRun/remoteRunCli.d.ts.map +1 -0
- package/dist/remoteRun/remoteRunCli.js +144 -0
- package/dist/remoteRun/remoteRunCli.js.map +1 -0
- package/dist/remoteRun/remoteRunError.d.ts +14 -0
- package/dist/remoteRun/remoteRunError.d.ts.map +1 -0
- package/dist/remoteRun/remoteRunError.js +28 -0
- package/dist/remoteRun/remoteRunError.js.map +1 -0
- package/dist/remoteRun/rsync.d.ts +17 -0
- package/dist/remoteRun/rsync.d.ts.map +1 -0
- package/dist/remoteRun/rsync.js +39 -0
- package/dist/remoteRun/rsync.js.map +1 -0
- package/dist/remoteRun/runnerClient.d.ts +50 -0
- package/dist/remoteRun/runnerClient.d.ts.map +1 -0
- package/dist/remoteRun/runnerClient.js +139 -0
- package/dist/remoteRun/runnerClient.js.map +1 -0
- package/dist/remoteRun/runners.d.ts +57 -0
- package/dist/remoteRun/runners.d.ts.map +1 -0
- package/dist/remoteRun/runners.js +181 -0
- package/dist/remoteRun/runners.js.map +1 -0
- package/dist/remoteRun/runnersConfig.d.ts +44 -0
- package/dist/remoteRun/runnersConfig.d.ts.map +1 -0
- package/dist/remoteRun/runnersConfig.js +107 -0
- package/dist/remoteRun/runnersConfig.js.map +1 -0
- package/dist/remoteRun/safeCopy.d.ts +31 -0
- package/dist/remoteRun/safeCopy.d.ts.map +1 -0
- package/dist/remoteRun/safeCopy.js +137 -0
- package/dist/remoteRun/safeCopy.js.map +1 -0
- package/dist/remoteRun/sendPlan.d.ts +67 -0
- package/dist/remoteRun/sendPlan.d.ts.map +1 -0
- package/dist/remoteRun/sendPlan.js +139 -0
- package/dist/remoteRun/sendPlan.js.map +1 -0
- package/dist/remoteRun/ssh.d.ts +62 -0
- package/dist/remoteRun/ssh.d.ts.map +1 -0
- package/dist/remoteRun/ssh.js +202 -0
- package/dist/remoteRun/ssh.js.map +1 -0
- package/dist/remoteRun/submit.d.ts +29 -0
- package/dist/remoteRun/submit.d.ts.map +1 -0
- package/dist/remoteRun/submit.js +142 -0
- package/dist/remoteRun/submit.js.map +1 -0
- package/dist/requests/answerRequest.d.ts +5 -0
- package/dist/requests/answerRequest.d.ts.map +1 -1
- package/dist/requests/answerRequest.js +16 -1
- package/dist/requests/answerRequest.js.map +1 -1
- package/dist/requests/requestLedger.d.ts +13 -0
- package/dist/requests/requestLedger.d.ts.map +1 -1
- package/dist/requests/requestLedger.js +9 -0
- package/dist/requests/requestLedger.js.map +1 -1
- package/dist/requests/topicRequestSettle.d.ts +30 -0
- package/dist/requests/topicRequestSettle.d.ts.map +1 -0
- package/dist/requests/topicRequestSettle.js +23 -0
- package/dist/requests/topicRequestSettle.js.map +1 -0
- package/dist/requests/wakeUpEngine.d.ts +4 -0
- package/dist/requests/wakeUpEngine.d.ts.map +1 -1
- package/dist/requests/wakeUpEngine.js +5 -1
- package/dist/requests/wakeUpEngine.js.map +1 -1
- package/dist/scheduler/delivery.d.ts +2 -0
- package/dist/scheduler/delivery.d.ts.map +1 -1
- package/dist/scheduler/delivery.js +8 -4
- package/dist/scheduler/delivery.js.map +1 -1
- package/dist/scheduler/mcpSurface.d.ts +59 -10
- package/dist/scheduler/mcpSurface.d.ts.map +1 -1
- package/dist/scheduler/mcpSurface.js +276 -79
- package/dist/scheduler/mcpSurface.js.map +1 -1
- package/dist/scheduler/recurrence.d.ts +5 -0
- package/dist/scheduler/recurrence.d.ts.map +1 -1
- package/dist/scheduler/recurrence.js +12 -2
- package/dist/scheduler/recurrence.js.map +1 -1
- package/dist/scheduler/strictToolInput.d.ts +45 -0
- package/dist/scheduler/strictToolInput.d.ts.map +1 -0
- package/dist/scheduler/strictToolInput.js +155 -0
- package/dist/scheduler/strictToolInput.js.map +1 -0
- package/dist/scheduler/types.d.ts +5 -0
- package/dist/scheduler/types.d.ts.map +1 -1
- package/dist/scheduler/workerWatch.d.ts +23 -0
- package/dist/scheduler/workerWatch.d.ts.map +1 -0
- package/dist/scheduler/workerWatch.js +26 -0
- package/dist/scheduler/workerWatch.js.map +1 -0
- package/dist/selfUpdate/emittedSource.d.ts +11 -0
- package/dist/selfUpdate/emittedSource.d.ts.map +1 -0
- package/dist/selfUpdate/emittedSource.js +24 -0
- package/dist/selfUpdate/emittedSource.js.map +1 -0
- package/dist/selfUpdate/gitSource.d.ts +0 -6
- package/dist/selfUpdate/gitSource.d.ts.map +1 -1
- package/dist/selfUpdate/gitSource.js +2 -18
- package/dist/selfUpdate/gitSource.js.map +1 -1
- package/dist/selfUpdate/updatePending.d.ts +1 -1
- package/dist/sendErrorClassifier.d.ts +10 -0
- package/dist/sendErrorClassifier.d.ts.map +1 -1
- package/dist/sendErrorClassifier.js +22 -0
- package/dist/sendErrorClassifier.js.map +1 -1
- package/dist/state.d.ts +78 -7
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +125 -8
- package/dist/state.js.map +1 -1
- package/dist/stateFile.d.ts +9 -0
- package/dist/stateFile.d.ts.map +1 -0
- package/dist/stateFile.js +57 -0
- package/dist/stateFile.js.map +1 -0
- package/dist/stt/sttInstall.d.ts +7 -3
- package/dist/stt/sttInstall.d.ts.map +1 -1
- package/dist/stt/sttInstall.js +8 -4
- package/dist/stt/sttInstall.js.map +1 -1
- package/dist/stt/sttSettings.d.ts +2 -1
- package/dist/stt/sttSettings.d.ts.map +1 -1
- package/dist/stt/sttSettings.js +3 -2
- package/dist/stt/sttSettings.js.map +1 -1
- package/dist/stt/transcribeChain.js +2 -0
- package/dist/stt/transcribeChain.js.map +1 -1
- package/dist/testTimings.d.ts +13 -3
- package/dist/testTimings.d.ts.map +1 -1
- package/dist/testTimings.js +26 -2
- package/dist/testTimings.js.map +1 -1
- package/dist/todos/board.d.ts +83 -0
- package/dist/todos/board.d.ts.map +1 -0
- package/dist/todos/board.js +227 -0
- package/dist/todos/board.js.map +1 -0
- package/dist/todos/format.d.ts +33 -0
- package/dist/todos/format.d.ts.map +1 -0
- package/dist/todos/format.js +90 -0
- package/dist/todos/format.js.map +1 -0
- package/dist/todos/merge.d.ts +46 -0
- package/dist/todos/merge.d.ts.map +1 -0
- package/dist/todos/merge.js +137 -0
- package/dist/todos/merge.js.map +1 -0
- package/dist/todos/midTurn.d.ts +75 -0
- package/dist/todos/midTurn.d.ts.map +1 -0
- package/dist/todos/midTurn.js +214 -0
- package/dist/todos/midTurn.js.map +1 -0
- package/dist/todos/nag.d.ts +85 -0
- package/dist/todos/nag.d.ts.map +1 -0
- package/dist/todos/nag.js +103 -0
- package/dist/todos/nag.js.map +1 -0
- package/dist/todos/order.d.ts +25 -0
- package/dist/todos/order.d.ts.map +1 -0
- package/dist/todos/order.js +61 -0
- package/dist/todos/order.js.map +1 -0
- package/dist/todos/projects.d.ts +102 -0
- package/dist/todos/projects.d.ts.map +1 -0
- package/dist/todos/projects.js +342 -0
- package/dist/todos/projects.js.map +1 -0
- package/dist/todos/registry.d.ts +64 -0
- package/dist/todos/registry.d.ts.map +1 -0
- package/dist/todos/registry.js +116 -0
- package/dist/todos/registry.js.map +1 -0
- package/dist/todos/reminderEngine.d.ts +78 -0
- package/dist/todos/reminderEngine.d.ts.map +1 -0
- package/dist/todos/reminderEngine.js +162 -0
- package/dist/todos/reminderEngine.js.map +1 -0
- package/dist/todos/store.d.ts +34 -0
- package/dist/todos/store.d.ts.map +1 -0
- package/dist/todos/store.js +208 -0
- package/dist/todos/store.js.map +1 -0
- package/dist/todos/tools.d.ts +26 -0
- package/dist/todos/tools.d.ts.map +1 -0
- package/dist/todos/tools.js +25 -0
- package/dist/todos/tools.js.map +1 -0
- package/dist/todos/types.d.ts +85 -0
- package/dist/todos/types.d.ts.map +1 -0
- package/dist/todos/types.js +30 -0
- package/dist/todos/types.js.map +1 -0
- package/dist/trackers/taskAgentLimit.d.ts +58 -0
- package/dist/trackers/taskAgentLimit.d.ts.map +1 -0
- package/dist/trackers/taskAgentLimit.js +62 -0
- package/dist/trackers/taskAgentLimit.js.map +1 -0
- package/dist/trackers/taskAgentSlots.d.ts +109 -0
- package/dist/trackers/taskAgentSlots.d.ts.map +1 -0
- package/dist/trackers/taskAgentSlots.js +227 -0
- package/dist/trackers/taskAgentSlots.js.map +1 -0
- package/dist/trackers/types.d.ts +14 -0
- package/dist/trackers/types.d.ts.map +1 -0
- package/dist/trackers/types.js +3 -0
- package/dist/trackers/types.js.map +1 -0
- package/dist/types.d.ts +80 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/adoptReplayGate.d.ts +16 -0
- package/dist/utils/adoptReplayGate.d.ts.map +1 -0
- package/dist/utils/adoptReplayGate.js +35 -0
- package/dist/utils/adoptReplayGate.js.map +1 -0
- package/dist/utils/agentPlugin.d.ts +113 -0
- package/dist/utils/agentPlugin.d.ts.map +1 -0
- package/dist/utils/agentPlugin.js +192 -0
- package/dist/utils/agentPlugin.js.map +1 -0
- package/dist/utils/autoContinueOnLimit.d.ts +7 -4
- package/dist/utils/autoContinueOnLimit.d.ts.map +1 -1
- package/dist/utils/autoContinueOnLimit.js +8 -5
- package/dist/utils/autoContinueOnLimit.js.map +1 -1
- package/dist/utils/botSkills.d.ts +62 -0
- package/dist/utils/botSkills.d.ts.map +1 -0
- package/dist/utils/botSkills.js +53 -0
- package/dist/utils/botSkills.js.map +1 -0
- package/dist/utils/botSkillsSetting.d.ts +7 -0
- package/dist/utils/botSkillsSetting.d.ts.map +1 -0
- package/dist/utils/botSkillsSetting.js +9 -0
- package/dist/utils/botSkillsSetting.js.map +1 -0
- package/dist/utils/claudeCodeVersion.d.ts +7 -0
- package/dist/utils/claudeCodeVersion.d.ts.map +1 -1
- package/dist/utils/claudeCodeVersion.js +14 -1
- package/dist/utils/claudeCodeVersion.js.map +1 -1
- package/dist/utils/claudeCompactHook.d.ts +33 -15
- package/dist/utils/claudeCompactHook.d.ts.map +1 -1
- package/dist/utils/claudeCompactHook.js +36 -17
- package/dist/utils/claudeCompactHook.js.map +1 -1
- package/dist/utils/claudeCompactSummary.d.ts +15 -0
- package/dist/utils/claudeCompactSummary.d.ts.map +1 -0
- package/dist/utils/claudeCompactSummary.js +96 -0
- package/dist/utils/claudeCompactSummary.js.map +1 -0
- package/dist/utils/claudeLimitSwitch.d.ts +11 -9
- package/dist/utils/claudeLimitSwitch.d.ts.map +1 -1
- package/dist/utils/claudeLimitSwitch.js +18 -16
- package/dist/utils/claudeLimitSwitch.js.map +1 -1
- package/dist/utils/claudeProfiles.d.ts +5 -0
- package/dist/utils/claudeProfiles.d.ts.map +1 -1
- package/dist/utils/claudeProfiles.js +14 -0
- package/dist/utils/claudeProfiles.js.map +1 -1
- package/dist/utils/claudeSessionTitle.d.ts +2 -1
- package/dist/utils/claudeSessionTitle.d.ts.map +1 -1
- package/dist/utils/claudeSessionTitle.js +14 -14
- package/dist/utils/claudeSessionTitle.js.map +1 -1
- package/dist/utils/claudeUsage.d.ts +95 -15
- package/dist/utils/claudeUsage.d.ts.map +1 -1
- package/dist/utils/claudeUsage.js +241 -41
- package/dist/utils/claudeUsage.js.map +1 -1
- package/dist/utils/claudeUsageRefresher.d.ts +10 -0
- package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
- package/dist/utils/claudeUsageRefresher.js +11 -0
- package/dist/utils/claudeUsageRefresher.js.map +1 -1
- package/dist/utils/claudeUserEntry.d.ts +50 -0
- package/dist/utils/claudeUserEntry.d.ts.map +1 -0
- package/dist/utils/claudeUserEntry.js +120 -0
- package/dist/utils/claudeUserEntry.js.map +1 -0
- package/dist/utils/clearThreadOutputQueues.d.ts +4 -3
- package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -1
- package/dist/utils/clearThreadOutputQueues.js +1 -1
- package/dist/utils/clearThreadOutputQueues.js.map +1 -1
- package/dist/utils/compactOnIdle.d.ts +33 -13
- package/dist/utils/compactOnIdle.d.ts.map +1 -1
- package/dist/utils/compactOnIdle.js +35 -15
- package/dist/utils/compactOnIdle.js.map +1 -1
- package/dist/utils/fallbackBridge.d.ts +5 -0
- package/dist/utils/fallbackBridge.d.ts.map +1 -1
- package/dist/utils/fallbackBridge.js +19 -3
- package/dist/utils/fallbackBridge.js.map +1 -1
- package/dist/utils/fallbackChain.d.ts +9 -3
- package/dist/utils/fallbackChain.d.ts.map +1 -1
- package/dist/utils/fallbackChain.js +21 -3
- package/dist/utils/fallbackChain.js.map +1 -1
- package/dist/utils/fileSendPlan.d.ts +6 -0
- package/dist/utils/fileSendPlan.d.ts.map +1 -1
- package/dist/utils/fileSendPlan.js +11 -0
- package/dist/utils/fileSendPlan.js.map +1 -1
- package/dist/utils/fileSendService.d.ts +7 -1
- package/dist/utils/fileSendService.d.ts.map +1 -1
- package/dist/utils/fileSendService.js +6 -2
- package/dist/utils/fileSendService.js.map +1 -1
- package/dist/utils/groupFinalizePlan.d.ts +8 -10
- package/dist/utils/groupFinalizePlan.d.ts.map +1 -1
- package/dist/utils/groupFinalizePlan.js +8 -12
- package/dist/utils/groupFinalizePlan.js.map +1 -1
- package/dist/utils/jsonStreamHost.d.ts +13 -0
- package/dist/utils/jsonStreamHost.d.ts.map +1 -1
- package/dist/utils/jsonStreamHost.js +13 -0
- package/dist/utils/jsonStreamHost.js.map +1 -1
- package/dist/utils/messageSendService.d.ts +5 -3
- package/dist/utils/messageSendService.d.ts.map +1 -1
- package/dist/utils/messageSendService.js +12 -5
- package/dist/utils/messageSendService.js.map +1 -1
- package/dist/utils/openCodeCompactPlugin.d.ts +39 -14
- package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -1
- package/dist/utils/openCodeCompactPlugin.js +106 -38
- package/dist/utils/openCodeCompactPlugin.js.map +1 -1
- package/dist/utils/promptDelivery.d.ts +29 -12
- package/dist/utils/promptDelivery.d.ts.map +1 -1
- package/dist/utils/promptDelivery.js +13 -5
- package/dist/utils/promptDelivery.js.map +1 -1
- package/dist/utils/sentKindsSummary.d.ts +10 -0
- package/dist/utils/sentKindsSummary.d.ts.map +1 -0
- package/dist/utils/sentKindsSummary.js +18 -0
- package/dist/utils/sentKindsSummary.js.map +1 -0
- package/dist/utils/telegramError.d.ts +6 -0
- package/dist/utils/telegramError.d.ts.map +1 -1
- package/dist/utils/telegramError.js +12 -0
- package/dist/utils/telegramError.js.map +1 -1
- package/dist/utils/topicView.d.ts +1 -1
- package/dist/utils/topicView.js +1 -1
- package/dist/utils/transcribeAudio.d.ts +10 -0
- package/dist/utils/transcribeAudio.d.ts.map +1 -1
- package/dist/utils/transcribeAudio.js +22 -3
- package/dist/utils/transcribeAudio.js.map +1 -1
- package/dist/utils/transcriptErrorTime.d.ts +8 -0
- package/dist/utils/transcriptErrorTime.d.ts.map +1 -0
- package/dist/utils/transcriptErrorTime.js +56 -0
- package/dist/utils/transcriptErrorTime.js.map +1 -0
- package/dist/utils/wedgeRecovery.d.ts +2 -0
- package/dist/utils/wedgeRecovery.d.ts.map +1 -1
- package/dist/utils/wedgeRecovery.js +1 -1
- package/dist/utils/wedgeRecovery.js.map +1 -1
- package/package.json +11 -3
- package/remoteRun/runner.sh +1242 -0
- package/stt/gigaam_sidecar.py +555 -50
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The messages the bot has open in a topic that offer a bind or ask for a folder's name: a `/bind` picker, the «not bound»
|
|
4
|
+
* reply that carries one, the «send the folder name» prompt of «create new folder». A leaf module (no `bot.ts`, no
|
|
5
|
+
* environment), so a test can reach it.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.OpenBindMessages = exports.keyboardStripsPerSweepLimit = exports.telegramDeleteWindowMs = exports.openBindMessagesPerTopicLimit = void 0;
|
|
9
|
+
exports.splitByDeleteWindow = splitByDeleteWindow;
|
|
10
|
+
/** How many are kept per topic: the oldest is dropped past it, so a topic nobody ever binds cannot grow the list. */
|
|
11
|
+
exports.openBindMessagesPerTopicLimit = 50;
|
|
12
|
+
/** How long a bot's message can be deleted, per the Bot API's `deleteMessage` («less than 48 hours ago»). */
|
|
13
|
+
exports.telegramDeleteWindowMs = 48 * 60 * 60 * 1000;
|
|
14
|
+
/**
|
|
15
|
+
* The most keyboards one sweep of a topic's open messages strips: each strip is a paced send of the bot's ONE global gate, so a
|
|
16
|
+
* topic with dozens of pickers must not queue dozens of them. The messages past the bound keep their buttons, and a tap on one
|
|
17
|
+
* is refused instead (`BindPickerClaims.retire`).
|
|
18
|
+
*/
|
|
19
|
+
exports.keyboardStripsPerSweepLimit = 10;
|
|
20
|
+
/**
|
|
21
|
+
* Every plain message in an unbound topic posts a picker of its own, and each stays there with live buttons; any bind or
|
|
22
|
+
* leave makes all of them untrue («not bound, pick from the list») and a tap on a stale one would rebind the topic. The bot
|
|
23
|
+
* remembers them here, per topic, to delete them together when the topic is bound or left.
|
|
24
|
+
*/
|
|
25
|
+
class OpenBindMessages {
|
|
26
|
+
limitPerTopic;
|
|
27
|
+
byTopic = new Map();
|
|
28
|
+
constructor(limitPerTopic = exports.openBindMessagesPerTopicLimit) {
|
|
29
|
+
this.limitPerTopic = limitPerTopic;
|
|
30
|
+
}
|
|
31
|
+
/** @description Remember a message the bot sent into the topic at `sentAtMs`. */
|
|
32
|
+
remember(topicKey, messageId, sentAtMs) {
|
|
33
|
+
const sentAtByMessage = this.byTopic.get(topicKey) ?? new Map();
|
|
34
|
+
sentAtByMessage.delete(messageId);
|
|
35
|
+
sentAtByMessage.set(messageId, sentAtMs);
|
|
36
|
+
while (sentAtByMessage.size > this.limitPerTopic) {
|
|
37
|
+
const oldest = sentAtByMessage.keys().next().value;
|
|
38
|
+
if (oldest === undefined)
|
|
39
|
+
break;
|
|
40
|
+
sentAtByMessage.delete(oldest);
|
|
41
|
+
}
|
|
42
|
+
this.byTopic.set(topicKey, sentAtByMessage);
|
|
43
|
+
}
|
|
44
|
+
/** @description Forget one message (it is gone, or being deleted by whoever holds it). */
|
|
45
|
+
forget(topicKey, messageId) {
|
|
46
|
+
this.byTopic.get(topicKey)?.delete(messageId);
|
|
47
|
+
}
|
|
48
|
+
/** @description Every message remembered for the topic, oldest first — and forget them: the caller closes them. */
|
|
49
|
+
take(topicKey) {
|
|
50
|
+
const entries = [...(this.byTopic.get(topicKey) ?? [])].map(([messageId, sentAtMs]) => ({ messageId, sentAtMs }));
|
|
51
|
+
this.byTopic.delete(topicKey);
|
|
52
|
+
return entries;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.OpenBindMessages = OpenBindMessages;
|
|
56
|
+
/**
|
|
57
|
+
* @description Split messages into those Telegram still lets the bot delete and those it no longer does: a message sent
|
|
58
|
+
* `telegramDeleteWindowMs` ago or longer stays, whatever is asked, so for it only its buttons can go.
|
|
59
|
+
*/
|
|
60
|
+
function splitByDeleteWindow(entries, nowMs) {
|
|
61
|
+
const deletable = [];
|
|
62
|
+
const tooOld = [];
|
|
63
|
+
for (const { messageId, sentAtMs } of entries)
|
|
64
|
+
(nowMs - sentAtMs >= exports.telegramDeleteWindowMs ? tooOld : deletable).push(messageId);
|
|
65
|
+
return { deletable, tooOld };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=openBindMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openBindMessages.js","sourceRoot":"","sources":["../../../src/connectors/telegram/openBindMessages.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA6DH,kDAKC;AAhED,qHAAqH;AACxG,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEhD,6GAA6G;AAChG,QAAA,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D;;;;GAIG;AACU,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAQ9C;;;;GAIG;AACH,MAAa,gBAAgB;IAGE;IAFZ,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IAElE,YAA6B,gBAAwB,qCAA6B;QAArD,kBAAa,GAAb,aAAa,CAAwC;IAAG,CAAC;IAEtF,iFAAiF;IACjF,QAAQ,CAAC,QAAgB,EAAE,SAAiB,EAAE,QAAgB;QAC5D,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QAChF,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzC,OAAO,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACnD,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC9C,CAAC;IAED,0FAA0F;IAC1F,MAAM,CAAC,QAAgB,EAAE,SAAiB;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,mHAAmH;IACnH,IAAI,CAAC,QAAgB;QACnB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA7BD,4CA6BC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,OAAmC,EAAE,KAAa;IACpF,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,OAAO;QAAE,CAAC,KAAK,GAAG,QAAQ,IAAI,8BAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjI,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -75,6 +75,55 @@ export declare function getGroupDeltaContinuation(metaIsContinuation: boolean, o
|
|
|
75
75
|
* a single wrapped paragraph spanning two polls is NOT split by a blank.
|
|
76
76
|
*/
|
|
77
77
|
export declare function appendPendingOutput(pending: string | null, output: string, isContinuation: boolean, startsNewParagraph?: boolean): string;
|
|
78
|
+
/**
|
|
79
|
+
* @name PendingOutputSegment
|
|
80
|
+
* @description A run of agent text waiting for its flush that belongs to ONE side of a turn boundary: batches queued with
|
|
81
|
+
* no boundary marked between them are coalesced into one segment, and a boundary marked after a segment started ends it.
|
|
82
|
+
*/
|
|
83
|
+
export interface PendingOutputSegment {
|
|
84
|
+
output: string;
|
|
85
|
+
/** Whether the FIRST batch in `output` continues the last sent message. */
|
|
86
|
+
isContinuation: boolean;
|
|
87
|
+
/** Whether the first batch opens a message of its own: a turn boundary was marked before it was queued. */
|
|
88
|
+
startsNewMessage: boolean;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* @name PendingOutputBuffer
|
|
92
|
+
* @description What a thread's output queue holds until its debounce ends, oldest segment first: `bot.ts`'s
|
|
93
|
+
* `OutputQueueState` carries it and the helpers below keep it consistent.
|
|
94
|
+
*/
|
|
95
|
+
export interface PendingOutputBuffer {
|
|
96
|
+
pendingSegments: PendingOutputSegment[];
|
|
97
|
+
}
|
|
98
|
+
/** @description The thread's mark that the next output opens a new message (a prompt forwarded, a session started, a question posted, a status frame shown). */
|
|
99
|
+
export interface NewMessageMark {
|
|
100
|
+
needsNewMessage: boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @description Queue one batch of agent output. Without a mark set it joins the newest segment (or starts the first one). With
|
|
104
|
+
* the mark set it starts a segment of its own and spends the mark — also when an earlier segment is still waiting: that
|
|
105
|
+
* text belongs to the turn before the boundary, so it flushes where it was going (as a continuation of the message it
|
|
106
|
+
* extends) and the batch after the boundary opens a new message.
|
|
107
|
+
*
|
|
108
|
+
* The mark belongs to the first text queued AFTER it, not to whichever send completes next: a send already under way when the
|
|
109
|
+
* boundary was marked (the previous turn's text on a slow Bot API round trip) would otherwise spend it, and the new turn's
|
|
110
|
+
* first text would be appended by edit to the previous turn's message.
|
|
111
|
+
*/
|
|
112
|
+
export declare function addPendingOutput(buffer: PendingOutputBuffer, mark: NewMessageMark, batch: {
|
|
113
|
+
output: string;
|
|
114
|
+
isContinuation: boolean;
|
|
115
|
+
startsNewParagraph: boolean;
|
|
116
|
+
}): void;
|
|
117
|
+
/** @description Whether anything waits to be sent. */
|
|
118
|
+
export declare function checkHasPendingOutput(buffer: PendingOutputBuffer): boolean;
|
|
119
|
+
/** @description Take the oldest segment out for a flush. `null` when nothing is pending. */
|
|
120
|
+
export declare function takePendingOutput(buffer: PendingOutputBuffer): PendingOutputSegment | null;
|
|
121
|
+
/**
|
|
122
|
+
* @description Put the text a flush could not send (see {@link getUnsentRemainder}) back at the FRONT of the buffer: it is
|
|
123
|
+
* older than anything queued during the send. It restarts a fresh message (its predecessors landed or were edited in
|
|
124
|
+
* place already), so it is not a continuation; it joins the next segment unless a boundary was marked before that one.
|
|
125
|
+
*/
|
|
126
|
+
export declare function requeueUnsentRemainder(buffer: PendingOutputBuffer, unsentRemainder: string): void;
|
|
78
127
|
/**
|
|
79
128
|
* @description Compute the text that must be RE-ENQUEUED after a flush where one
|
|
80
129
|
* or more chunks failed to send (live incident 2026-06-11, plan
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputFlushPlan.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/outputFlushPlan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,eAAe,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mEAAmE;IACnE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,eAAe,CAgB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CACvC,kBAAkB,EAAE,OAAO,EAC3B,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,OAAO,GAC1B,OAAO,CAGT;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,kBAAkB,UAAQ,GACzB,MAAM,CAIR;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrF"}
|
|
1
|
+
{"version":3,"file":"outputFlushPlan.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/outputFlushPlan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,eAAe,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mEAAmE;IACnE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,eAAe,CAgB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CACvC,kBAAkB,EAAE,OAAO,EAC3B,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,OAAO,GAC1B,OAAO,CAGT;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,kBAAkB,UAAQ,GACzB,MAAM,CAIR;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,cAAc,EAAE,OAAO,CAAC;IACxB,2GAA2G;IAC3G,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,oBAAoB,EAAE,CAAC;CACzC;AAED,gKAAgK;AAChK,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAE,GAC9E,IAAI,CASN;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAE1E;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,IAAI,CAE1F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAOjG;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrF"}
|
|
@@ -16,6 +16,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.getOutputFlushPlan = getOutputFlushPlan;
|
|
17
17
|
exports.getGroupDeltaContinuation = getGroupDeltaContinuation;
|
|
18
18
|
exports.appendPendingOutput = appendPendingOutput;
|
|
19
|
+
exports.addPendingOutput = addPendingOutput;
|
|
20
|
+
exports.checkHasPendingOutput = checkHasPendingOutput;
|
|
21
|
+
exports.takePendingOutput = takePendingOutput;
|
|
22
|
+
exports.requeueUnsentRemainder = requeueUnsentRemainder;
|
|
19
23
|
exports.getUnsentRemainder = getUnsentRemainder;
|
|
20
24
|
const messageSplit_1 = require("./messageSplit");
|
|
21
25
|
const renderAgentHtml_1 = require("./renderAgentHtml");
|
|
@@ -91,6 +95,48 @@ function appendPendingOutput(pending, output, isContinuation, startsNewParagraph
|
|
|
91
95
|
return pending + output;
|
|
92
96
|
return startsNewParagraph ? `${pending}\n\n${output}` : `${pending}\n${output}`;
|
|
93
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* @description Queue one batch of agent output. Without a mark set it joins the newest segment (or starts the first one). With
|
|
100
|
+
* the mark set it starts a segment of its own and spends the mark — also when an earlier segment is still waiting: that
|
|
101
|
+
* text belongs to the turn before the boundary, so it flushes where it was going (as a continuation of the message it
|
|
102
|
+
* extends) and the batch after the boundary opens a new message.
|
|
103
|
+
*
|
|
104
|
+
* The mark belongs to the first text queued AFTER it, not to whichever send completes next: a send already under way when the
|
|
105
|
+
* boundary was marked (the previous turn's text on a slow Bot API round trip) would otherwise spend it, and the new turn's
|
|
106
|
+
* first text would be appended by edit to the previous turn's message.
|
|
107
|
+
*/
|
|
108
|
+
function addPendingOutput(buffer, mark, batch) {
|
|
109
|
+
if (batch.output === '')
|
|
110
|
+
return;
|
|
111
|
+
const newest = buffer.pendingSegments.at(-1);
|
|
112
|
+
if (newest && !mark.needsNewMessage) {
|
|
113
|
+
newest.output = appendPendingOutput(newest.output, batch.output, batch.isContinuation, batch.startsNewParagraph);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
buffer.pendingSegments.push({ output: batch.output, isContinuation: batch.isContinuation, startsNewMessage: mark.needsNewMessage });
|
|
117
|
+
mark.needsNewMessage = false;
|
|
118
|
+
}
|
|
119
|
+
/** @description Whether anything waits to be sent. */
|
|
120
|
+
function checkHasPendingOutput(buffer) {
|
|
121
|
+
return buffer.pendingSegments.length > 0;
|
|
122
|
+
}
|
|
123
|
+
/** @description Take the oldest segment out for a flush. `null` when nothing is pending. */
|
|
124
|
+
function takePendingOutput(buffer) {
|
|
125
|
+
return buffer.pendingSegments.shift() ?? null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* @description Put the text a flush could not send (see {@link getUnsentRemainder}) back at the FRONT of the buffer: it is
|
|
129
|
+
* older than anything queued during the send. It restarts a fresh message (its predecessors landed or were edited in
|
|
130
|
+
* place already), so it is not a continuation; it joins the next segment unless a boundary was marked before that one.
|
|
131
|
+
*/
|
|
132
|
+
function requeueUnsentRemainder(buffer, unsentRemainder) {
|
|
133
|
+
const [next, ...later] = buffer.pendingSegments;
|
|
134
|
+
if (next && !next.startsNewMessage) {
|
|
135
|
+
buffer.pendingSegments = [{ output: appendPendingOutput(unsentRemainder, next.output, false), isContinuation: false, startsNewMessage: false }, ...later];
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
buffer.pendingSegments = [{ output: unsentRemainder, isContinuation: false, startsNewMessage: false }, ...buffer.pendingSegments];
|
|
139
|
+
}
|
|
94
140
|
/** Separator used to re-join un-sent chunks before re-enqueueing them (S2). The
|
|
95
141
|
* planner re-splits the rejoined text next flush, so a blank line keeps the
|
|
96
142
|
* chunk boundary readable without gluing two messages together. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputFlushPlan.js","sourceRoot":"","sources":["../../../src/connectors/telegram/outputFlushPlan.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AAsCH,gDAgBC;AA2BD,8DAOC;AAYD,kDASC;AAqBD,gDAKC;
|
|
1
|
+
{"version":3,"file":"outputFlushPlan.js","sourceRoot":"","sources":["../../../src/connectors/telegram/outputFlushPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The topic names the bot sets aside while a topic has no binding yet, and what each may be used for. A leaf module (no
|
|
3
|
+
* `bot.ts`, no environment), so a test can reach it.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* A name seen for an unbound topic. `isFromAdmin`: an authorised user made the topic or renamed it. A name only anyone else
|
|
7
|
+
* gave is kept for ONE use — a fuzzy match against a folder's name — and never written onto a binding, because the
|
|
8
|
+
* binding's topic name goes unescaped into the agent's thread-context preamble: the topic that name matched is bound under
|
|
9
|
+
* the folder's own name instead ({@link getAutoBindTopicName}).
|
|
10
|
+
*/
|
|
11
|
+
export interface PendingTopicName {
|
|
12
|
+
name: string;
|
|
13
|
+
ts: number;
|
|
14
|
+
isFromAdmin: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** @description The entry, unless it is missing or older than `ttlMs`. */
|
|
17
|
+
export declare function getFreshPendingTopicName(entry: PendingTopicName | undefined, nowMs: number, ttlMs: number): PendingTopicName | undefined;
|
|
18
|
+
/** @description The name a binding may carry: a fresh one an authorised user gave, else `undefined`. */
|
|
19
|
+
export declare function getTrustedPendingTopicName(entry: PendingTopicName | undefined, nowMs: number, ttlMs: number): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* @description The topic name an auto-bind writes onto the binding: the name itself when an authorised user gave it, else
|
|
22
|
+
* the name of the folder it matched — a stranger's spelling (`BIND_Deferred` for `bind-deferred`) is text the bot never
|
|
23
|
+
* vetted, and the folder's own name says the same.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getAutoBindTopicName(entry: PendingTopicName, folderName: string): string;
|
|
26
|
+
//# sourceMappingURL=pendingTopicName.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingTopicName.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/pendingTopicName.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAExI;AAED,wGAAwG;AACxG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGhI;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAExF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The topic names the bot sets aside while a topic has no binding yet, and what each may be used for. A leaf module (no
|
|
4
|
+
* `bot.ts`, no environment), so a test can reach it.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.getFreshPendingTopicName = getFreshPendingTopicName;
|
|
8
|
+
exports.getTrustedPendingTopicName = getTrustedPendingTopicName;
|
|
9
|
+
exports.getAutoBindTopicName = getAutoBindTopicName;
|
|
10
|
+
/** @description The entry, unless it is missing or older than `ttlMs`. */
|
|
11
|
+
function getFreshPendingTopicName(entry, nowMs, ttlMs) {
|
|
12
|
+
return entry !== undefined && nowMs - entry.ts < ttlMs ? entry : undefined;
|
|
13
|
+
}
|
|
14
|
+
/** @description The name a binding may carry: a fresh one an authorised user gave, else `undefined`. */
|
|
15
|
+
function getTrustedPendingTopicName(entry, nowMs, ttlMs) {
|
|
16
|
+
const fresh = getFreshPendingTopicName(entry, nowMs, ttlMs);
|
|
17
|
+
return fresh?.isFromAdmin ? fresh.name : undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @description The topic name an auto-bind writes onto the binding: the name itself when an authorised user gave it, else
|
|
21
|
+
* the name of the folder it matched — a stranger's spelling (`BIND_Deferred` for `bind-deferred`) is text the bot never
|
|
22
|
+
* vetted, and the folder's own name says the same.
|
|
23
|
+
*/
|
|
24
|
+
function getAutoBindTopicName(entry, folderName) {
|
|
25
|
+
return entry.isFromAdmin ? entry.name : folderName;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=pendingTopicName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingTopicName.js","sourceRoot":"","sources":["../../../src/connectors/telegram/pendingTopicName.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAeH,4DAEC;AAGD,gEAGC;AAOD,oDAEC;AAlBD,0EAA0E;AAC1E,SAAgB,wBAAwB,CAAC,KAAmC,EAAE,KAAa,EAAE,KAAa;IACxG,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC;AAED,wGAAwG;AACxG,SAAgB,0BAA0B,CAAC,KAAmC,EAAE,KAAa,EAAE,KAAa;IAC1G,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,KAAuB,EAAE,UAAkB;IAC9E,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../../src/connectors/test/connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../../src/connectors/test/connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAEb,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EAEjB,mBAAmB,EAEnB,aAAa,EACd,MAAM,yBAAyB,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,qBASjC,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,EAAE,qBAS9B,CAAC;AAEF,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iFAAiF;IACjF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,uDAAuD;IACvD,cAAc,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,gBAAgB;IACxE,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,EAAE,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,2DAA2D;IAC3D,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAgBD,wBAAgB,mBAAmB,CACjC,YAAY,GAAE,qBAA2C,GACxD,aAAa,CAgGf"}
|
|
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.richCapabilities = exports.minimalCapabilities = void 0;
|
|
17
17
|
exports.createTestConnector = createTestConnector;
|
|
18
18
|
const sessionKey_1 = require("../../sessionKey");
|
|
19
|
+
const fileSendPlan_1 = require("../../utils/fileSendPlan");
|
|
19
20
|
const capabilityFallback_1 = require("../../platform/capabilityFallback");
|
|
20
21
|
/**
|
|
21
22
|
* @description The deliberately POOR surface: no editing, no pins, no tappable
|
|
@@ -93,7 +94,11 @@ function createTestConnector(capabilities = exports.minimalCapabilities) {
|
|
|
93
94
|
return { ok: false, error: 'this surface cannot receive file attachments' };
|
|
94
95
|
}
|
|
95
96
|
files.push(request);
|
|
96
|
-
return {
|
|
97
|
+
return {
|
|
98
|
+
ok: true,
|
|
99
|
+
summary: `Sent ${request.paths.length} file(s) to ${(0, sessionKey_1.keyToString)(key)}.`,
|
|
100
|
+
sentKinds: request.paths.map(fileSendPlan_1.classifyFileSendKind),
|
|
101
|
+
};
|
|
97
102
|
},
|
|
98
103
|
setActivity(key, state) {
|
|
99
104
|
// A surface with no "working" affordance drops it silently — the core
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../../src/connectors/test/connector.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../../src/connectors/test/connector.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/de.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA+nCzC,CAAC"}
|
package/dist/i18n/de.js
CHANGED
|
@@ -7,12 +7,9 @@ exports.deDict = {
|
|
|
7
7
|
'access.group_only': 'Ich arbeite nur in der konfigurierten Forum-Supergroup.',
|
|
8
8
|
'thread.no_binding': '📁 Dieser Thread ist nicht mit einem Ordner verknüpft. Verwende /bind <subdir> oder wähle aus der Liste.',
|
|
9
9
|
'thread.bind_required': '📁 Verknüpfe zuerst einen Ordner: /bind <subdir>. Der Agent läuft nur im verknüpften Ordner.',
|
|
10
|
-
'thread.bound': '📁 Verknüpft mit `{subdir}`.\nStarte /claude oder /opencode.',
|
|
11
10
|
'thread.unbound': '📁 Verknüpfung aufgehoben.',
|
|
12
11
|
'thread.general_no_agent': 'General ist nicht mit einem Ordner verknüpft — wechsle in einen thematischen Thread, um mit einem Agent zu sprechen.',
|
|
13
|
-
'thread.welcome_bound': '👋 Thread erstellt und automatisch mit `{subdir}` verknüpft (Thread-Name passte zu einem Unterordner).\nStarte /claude oder /opencode.',
|
|
14
12
|
'thread.welcome_pick': '👋 Thread erstellt. Verknüpfe einen Ordner: /bind <subdir>, oder wähle einen aus der Liste.',
|
|
15
|
-
'thread.bind_collision': '⚠️ Ordner `{subdir}` wird bereits von Threads verwendet: {threads}.\nVerknüpfung hinzugefügt; Sessions bleiben unabhängig (eigene tmux/SSE).',
|
|
16
13
|
'thread.no_agent_with_binding': '📁 Ordner `{subdir}` ist verknüpft. Starte /claude oder /opencode, um den Dialog zu beginnen.',
|
|
17
14
|
'bind.usage': 'Verwendung: /bind <subdir>\nBeispiel: /bind overview',
|
|
18
15
|
'bind.current': '📂 Aktuell verknüpft: `{subdir}`',
|
|
@@ -63,6 +60,9 @@ exports.deDict = {
|
|
|
63
60
|
'/quitall — jeden laufenden Agent beenden\n' +
|
|
64
61
|
'/stt — Spracherkennung einstellen\n' +
|
|
65
62
|
'/update — Bot-Updates: automatisch, nur benachrichtigen, aus\n' +
|
|
63
|
+
'/bot\\_skills — Skills des Bots für Agenten: ein / aus\n' +
|
|
64
|
+
'/task\\_agents — wie viele Tracker-Aufgaben-Agenten gleichzeitig arbeiten dürfen\n' +
|
|
65
|
+
'/todo — die Aufgabenlisten der Agenten aller Projekte; ihre Einstellungen\n' +
|
|
66
66
|
'/topic — weiteren Thread auf einem Ordner öffnen\n' +
|
|
67
67
|
'/whoami /version — Debug\n\n' +
|
|
68
68
|
'Um mit einem Agent zu sprechen — öffne einen thematischen Thread.',
|
|
@@ -79,6 +79,8 @@ exports.deDict = {
|
|
|
79
79
|
'/quit /status /output — Steuerung\n' +
|
|
80
80
|
'/compact — Agent-Kontext komprimieren\n' +
|
|
81
81
|
'/compact_on_idle — bei Leerlauf automatisch komprimieren (Umschalter)\n' +
|
|
82
|
+
'/bot_skills — Skills des Bots für Agenten (ein / aus für dieses Thema)\n' +
|
|
83
|
+
'/todo — die veröffentlichte Aufgabenliste des Agenten und sein Projekt\n' +
|
|
82
84
|
'/limits — Verbrauch aller Konten und Provider; tippe auf eines, um dieses Thema umzustellen\n' +
|
|
83
85
|
'/limits_autoswitch — automatischer Modellwechsel bei Nutzungslimit (Ersatzliste, Wechsel, Warten)\n' +
|
|
84
86
|
'/accounts — Claude-Konten und OpenCode-Provider (wechseln, hinzufügen, neu anmelden, entfernen, verbinden, trennen)\n' +
|
|
@@ -121,6 +123,10 @@ exports.deDict = {
|
|
|
121
123
|
'binding.welcome.git_clean': ', sauber',
|
|
122
124
|
'binding.welcome.git_dirty': ', unbestätigte Änderungen',
|
|
123
125
|
'binding.welcome.git_none': '• git: nicht initialisiert',
|
|
126
|
+
'binding.welcome.auto_bound': '• Automatisch verknüpft: Thread-Name passt zum Ordner',
|
|
127
|
+
'binding.welcome.existed': '• Der Ordner existierte bereits — damit verknüpft',
|
|
128
|
+
'binding.welcome.shared': '• ⚠️ Auch genutzt von: {threads} — Sessions bleiben unabhängig',
|
|
129
|
+
'binding.welcome.sharedMore': '+{count} weitere',
|
|
124
130
|
'binding.welcome.start_prompt': 'Beginne eine Unterhaltung:',
|
|
125
131
|
'mcp.header': '🔌 *MCP-Server für diesen Thread:*',
|
|
126
132
|
'mcp.row': '• `{name}` — {source}',
|
|
@@ -166,6 +172,7 @@ exports.deDict = {
|
|
|
166
172
|
'status.thread_stopped': 'gestoppt',
|
|
167
173
|
'status.thread_sleeping': 'schläft — wird mit der nächsten Nachricht fortgesetzt',
|
|
168
174
|
'status.thread_no_agent': 'keiner (starte /claude oder /opencode)',
|
|
175
|
+
'status.thread_agentTmuxDeprecated': '{agent} — tmux-Backend, veraltet',
|
|
169
176
|
'status.thread_no_binding': '(keine Bindung — WORK_ROOT)',
|
|
170
177
|
'status.thread_workdir': 'Arbeitsverzeichnis: {workDir}',
|
|
171
178
|
'status.thread_runtime_version': 'Laufzeitversion: {version}',
|
|
@@ -213,7 +220,9 @@ exports.deDict = {
|
|
|
213
220
|
'agent.session_restarting': '⚠️ Der Agent hat nicht geantwortet – die Sitzung hängt. Ich starte sie neu und wiederhole deine Anfrage…',
|
|
214
221
|
'agent.session_recovering': '⚠️ Der Agent hat nicht geantwortet – ich stelle wieder her (dein Verlauf bleibt erhalten) und wiederhole die Anfrage…',
|
|
215
222
|
'agent.question_cancelled_for_prompt': '⚠️ Vorherige Frage abgebrochen — führe deine neue Anfrage aus.',
|
|
216
|
-
'agent.
|
|
223
|
+
'agent.question_answered_note': '✅ Antwort: {answer}',
|
|
224
|
+
'agent.question_unanswered_note': '❌ Nicht beantwortet',
|
|
225
|
+
'agent.question_asked_again_note': '↓ Unten erneut gestellt',
|
|
217
226
|
'agent.login_code_relayed': '🔐 Login-Code an Claude weitergeleitet — die Token-Nachricht wurde aus dem Verlauf gelöscht.',
|
|
218
227
|
'agent.login_url': '🔐 Um dich bei Claude anzumelden, öffne diesen Link, schließe die Anmeldung ab und füge den Code hier ein:\n{url}',
|
|
219
228
|
'agent.login_success': '✅ Bei Claude angemeldet.',
|
|
@@ -410,7 +419,7 @@ exports.deDict = {
|
|
|
410
419
|
'compact.model_unresolved': '⚠️ Komprimieren nicht möglich: für diese Session ist kein Modell ermittelt. Wähle eines mit /model und versuche es erneut.',
|
|
411
420
|
'compact.failed': '⚠️ Session-Kontext konnte nicht komprimiert werden: {reason}',
|
|
412
421
|
'compact.busy': '⚠️ Der Agent ist gerade beschäftigt — führe /compact erneut aus, sobald der aktuelle Vorgang fertig ist.',
|
|
413
|
-
'compact.closingSectionInstruction': 'After the summary, append a final section wrapped EXACTLY between a line containing only {startMarker} and a line containing only {endMarker}. Inside that section, write IN GERMAN: (1) one or two terse sentences on what we were doing and the immediate next step; (2) if you asked the user a question that is still unanswered, restate that question and list its answer options. Write nothing after {endMarker}.',
|
|
422
|
+
'compact.closingSectionInstruction': 'After the summary, append a final section wrapped EXACTLY between a line containing only {startMarker} and a line containing only {endMarker}. Inside that section, write IN GERMAN: (1) one or two terse sentences on what we were doing and the immediate next step; (2) if you asked the user a question that is still unanswered, restate that question and list its answer options; (3) as the LAST part of the section, right before {endMarker}, the numbered what-to-do-next checklist that these instructions ask the summary to end with. Write nothing after {endMarker}.',
|
|
414
423
|
'compactOnIdle.notice': '🧹 Bei Leerlauf automatisch komprimiert, um Tokens über den Cache zu sparen.\n/compact_on_idle — abschalten oder die Zusammenfassung zeigen.',
|
|
415
424
|
'compactOnIdle.on': 'AN',
|
|
416
425
|
'compactOnIdle.off': 'AUS',
|
|
@@ -434,6 +443,38 @@ exports.deDict = {
|
|
|
434
443
|
'compactSummary.setThisTopic': '✅ Zusammenfassung der Komprimierung: {state} für dieses Thema.',
|
|
435
444
|
'compactSummary.setGlobal': '✅ Zusammenfassung der Komprimierung: {state} für ALLE Themen (themenspezifische Überschreibungen gelten weiter).',
|
|
436
445
|
'compactSummary.unsupported': 'Eine Shell hat keinen Kontext zum Komprimieren, also gibt es keine Zusammenfassung zu posten.',
|
|
446
|
+
'botSkills.on': 'EIN',
|
|
447
|
+
'botSkills.off': 'AUS',
|
|
448
|
+
'botSkills.titleGeneral': '🧰 Bot-Skills für ALLE Themen: {state} — {source}',
|
|
449
|
+
'botSkills.titleTopic': '🧰 Bot-Skills in diesem Thema: {state} — {source}',
|
|
450
|
+
'botSkills.sourceGeneral': 'wie in General',
|
|
451
|
+
'botSkills.sourceTopic': 'für dieses Thema gesetzt',
|
|
452
|
+
'botSkills.instanceSourceGeneral': 'in General gesetzt',
|
|
453
|
+
'botSkills.instanceSourceSettingsFile': 'aus settings.json',
|
|
454
|
+
'botSkills.instanceSourceBuiltIn': 'eingebauter Standard',
|
|
455
|
+
'botSkills.explanationText': 'Die Skills, die Charness seinen Agenten mitgibt (der Manager und die zwei Skills zum Delegieren an Worker), und der Hinweis in den Anweisungen des Bots, den Manager zu laden.',
|
|
456
|
+
'botSkills.runningAgentNote': 'Ein laufender Agent behält seine Skills bis zu seinem nächsten Start (nach einem Leerlauf-Stopp, in einer neuen Sitzung oder nach einem Modellwechsel).',
|
|
457
|
+
'botSkills.generalScopeNote': 'Das ist der Standard jedes Themas ohne eigene Wahl. OpenCode läuft mit einem Server für alle Themen: Er übernimmt diesen Wert beim nächsten Start des Bots.',
|
|
458
|
+
'botSkills.openCodeTopicNote': 'Dieses Thema läuft auf OpenCode: Dessen einziger Server bedient alle Themen, deshalb bleiben die Skills hier gelistet — der Schalter ändert nur den Hinweis, den Manager zu laden, und das erst beim nächsten Neustart des OpenCode-Servers. OpenCode-Themen im selben Ordner teilen sich den Hinweis: Er bleibt, solange bei mindestens einem von ihnen die Skills an sind.',
|
|
459
|
+
'botSkills.onButton': 'Ein',
|
|
460
|
+
'botSkills.offButton': 'Aus',
|
|
461
|
+
'botSkills.sameAsGeneralButton': 'Wie in General ({state})',
|
|
462
|
+
'botSkills.setGeneralConfirmation': '✅ Bot-Skills: {state} für ALLE Themen (die eigene Wahl eines Themas gilt weiter). Ein laufender Agent behält seine Skills bis zu seinem nächsten Start; der OpenCode-Server übernimmt den Wert beim nächsten Start des Bots.',
|
|
463
|
+
'botSkills.setTopicConfirmation': '✅ Bot-Skills: {state} für dieses Thema.',
|
|
464
|
+
'botSkills.followGeneralConfirmation': '✅ Bot-Skills in diesem Thema folgen wieder General: {state}.',
|
|
465
|
+
'taskAgents.noLimitValue': 'kein Limit',
|
|
466
|
+
'taskAgents.title': '🧵 Aufgaben-Agenten gleichzeitig, für den ganzen Bot: {value} — {source}',
|
|
467
|
+
'taskAgents.sourceGeneral': 'in General festgelegt',
|
|
468
|
+
'taskAgents.sourceSettingsFile': 'aus settings.json',
|
|
469
|
+
'taskAgents.sourceBuiltIn': 'der eingebaute Standard',
|
|
470
|
+
'taskAgents.explanationText': 'Die höchste Zahl von Agenten, die gleichzeitig an Tracker-Aufgaben (Jira-Tickets) arbeiten dürfen. Eine Aufgabe über dem Limit wartet in einer gemeinsamen Warteschlange und startet von selbst, sobald ein Agent seine Aufgabe zurückgibt. Antworten auf Erwähnungen zählen nicht mit.',
|
|
471
|
+
'taskAgents.statusText': 'Jetzt: {running} arbeiten, {waiting} warten auf einen freien Platz.',
|
|
472
|
+
'taskAgents.manualEntryText': 'Wähle unten eine Zahl oder sende diesen Befehl mit einer anderen Zahl dahinter (0 bedeutet kein Limit).',
|
|
473
|
+
'taskAgents.topicNote': 'Es ist ein Limit für den ganzen Bot — es wird in General geändert.',
|
|
474
|
+
'taskAgents.noLimitButton': 'Kein Limit',
|
|
475
|
+
'taskAgents.setConfirmation': '✅ Aufgaben-Agenten gleichzeitig: {value}, für den ganzen Bot. Bereits arbeitende Agenten werden nicht gestoppt; ein niedrigeres Limit hält die nächsten Aufgaben zurück.',
|
|
476
|
+
'taskAgents.invalidArgumentText': '⚠️ Sende eine ganze Zahl von 0 bis {max} (0 oder off — kein Limit).',
|
|
477
|
+
'taskAgents.generalOnlyText': '⚠️ Das Limit gilt für den ganzen Bot — ändere es in General.',
|
|
437
478
|
'autoContinueLimits.on': 'AN',
|
|
438
479
|
'autoContinueLimits.off': 'AUS',
|
|
439
480
|
'autoContinueLimits.skipButton': '⏭ Einmal überspringen',
|
|
@@ -466,7 +507,7 @@ exports.deDict = {
|
|
|
466
507
|
'connect.oauth_failed': '⚠️ OAuth-Anmeldung für `{provider}` nicht abgeschlossen. Führe /connect erneut aus.',
|
|
467
508
|
'quit_all.none_active': 'Keine Agenten laufen — nichts zu stoppen.',
|
|
468
509
|
'quit_all.summary': '🚪 {stopped} von {total} aktiven Agenten beendet.',
|
|
469
|
-
'quit_all.general_only': '`/
|
|
510
|
+
'quit_all.general_only': '`/quitall` ist nur im General-Topic verfügbar.',
|
|
470
511
|
'clearMessages.summary': '🗑 {deleted} von {total} Nachrichten gelöscht. ' +
|
|
471
512
|
'Telegram weigert sich, Nachrichten älter als 48 h zu löschen — der Rest bleibt im Verlauf.',
|
|
472
513
|
'clearMessages.no_messages': 'Keine Nachrichten zum Löschen in diesem Thread.',
|
|
@@ -586,6 +627,7 @@ exports.deDict = {
|
|
|
586
627
|
'error.start_in_general': 'Agent kann in General nicht gestartet werden — das ist ein Service-Topic. Öffne einen thematischen Thread.',
|
|
587
628
|
'cb.access_denied': 'Zugriff verweigert',
|
|
588
629
|
'cb.bind_only_topical': '/bind funktioniert nur in thematischen Threads',
|
|
630
|
+
'cb.bind_picker_used': 'Diese Auswahl wurde bereits verwendet.',
|
|
589
631
|
'cb.binding_to': 'Verknüpfe mit {subdir}…',
|
|
590
632
|
'cb.no_active_session': 'Keine aktive Session',
|
|
591
633
|
'cb.model_error': 'Fehler: {error}',
|
|
@@ -610,13 +652,15 @@ exports.deDict = {
|
|
|
610
652
|
'cb.effort_same': 'Wie in General: {level}',
|
|
611
653
|
'cb.claudeMode_already': 'Bereits aktiv',
|
|
612
654
|
'cb.claudeMode_switching': 'Wechsle…',
|
|
613
|
-
'claudeMode.pick': '⚙️ Claude Code Backend — aktuell: {label}\nWähle ein Backend (Wechsel behält denselben Dialog):',
|
|
655
|
+
'claudeMode.pick': '⚙️ Claude Code Backend — aktuell: {label}\n{hint}\nWähle ein Backend (Wechsel behält denselben Dialog):',
|
|
614
656
|
'claudeMode.not_claude': "Dieses Topic ist nicht auf Claude Code — /claude_mode wechselt nur Claude's Backend.",
|
|
615
657
|
'claudeMode.already': 'Bereits {label}.',
|
|
616
658
|
'claudeMode.set_idle': '⚙️ Claude-Backend: {label} — wird beim nächsten Start angewendet.',
|
|
617
659
|
'claudeMode.switched_resumed': '⚙️ Gewechselt zu {label} — derselbe Dialog fortgesetzt.',
|
|
618
660
|
'claudeMode.switched_fresh': '⚙️ Gewechselt zu {label} — neue Session gestartet.',
|
|
619
661
|
'claudeMode.perTurn_refused': '⚠️ Per-turn braucht Claude Code {min} oder neuer — dieses Gespräch lief zuletzt mit {version}. Das Backend wurde nicht geändert.',
|
|
662
|
+
'claudeMode.tmuxButtonLabel': '🖥 tmux (veraltet)',
|
|
663
|
+
'claudeMode.tmuxDeprecatedHint': '⚠️ Das tmux-Backend ist veraltet: es ist eingefroren und wird nicht mehr weiterentwickelt. Empfohlen: {recommended}.',
|
|
620
664
|
'cb.thinking_set': 'Thinking: {mode}',
|
|
621
665
|
'cb.thinking_error': 'Fehler: {error}',
|
|
622
666
|
'cb.toolresults_set': 'Tool-Ergebnisse: {mode}',
|
|
@@ -951,5 +995,44 @@ exports.deDict = {
|
|
|
951
995
|
'limits.btnDown': '⬇️ Tiefer',
|
|
952
996
|
'limits.btnUse': '✅ Verwenden',
|
|
953
997
|
'limits.btnDontUse': '🚫 Nicht verwenden',
|
|
998
|
+
'todo.topicTitle': '📋 Aufgaben — {topic}',
|
|
999
|
+
'todo.inWorkHeader': '▶ In Arbeit',
|
|
1000
|
+
'todo.queueHeader': '▷ Warteschlange',
|
|
1001
|
+
'todo.doneTodayHeader': '✓ Heute erledigt',
|
|
1002
|
+
'todo.sinceClock': 'seit {time}',
|
|
1003
|
+
'todo.emptyList': 'Noch nichts veröffentlicht — der Agent trägt Aufgaben ein, sobald er mit der Arbeit beginnt.',
|
|
1004
|
+
'todo.generalTitle': '📋 Aufgaben — alle Projekte',
|
|
1005
|
+
'todo.settingsButton': 'Einstellungen ▸',
|
|
1006
|
+
'todo.settingsTitle': 'Aufgaben-Einstellungen',
|
|
1007
|
+
'todo.settingsEnabledLine': 'Gemeinsame Aufgabenlisten: {state}',
|
|
1008
|
+
'todo.stateOn': 'an',
|
|
1009
|
+
'todo.stateOff': 'aus',
|
|
1010
|
+
'todo.settingsReminderLine': 'Erinnerung bei veralteter Liste: {interval}',
|
|
1011
|
+
'todo.turnOffButton': 'Ausschalten',
|
|
1012
|
+
'todo.turnOnButton': 'Einschalten',
|
|
1013
|
+
'todo.reminderOff': 'aus',
|
|
1014
|
+
'todo.intervalMinutes': '{count} Min.',
|
|
1015
|
+
'todo.intervalHours': '{count} Std.',
|
|
1016
|
+
'todo.backButton': '‹ Zurück',
|
|
1017
|
+
'todo.settingsSavedToast': '✅ Gespeichert',
|
|
1018
|
+
'todo.generalOnly': 'Die Aufgaben-Einstellungen werden in General geändert.',
|
|
1019
|
+
'todo.disabledNote': 'Gemeinsame Aufgabenlisten sind aus: Agenten bekommen sie nicht angeboten. In General einschalten.',
|
|
1020
|
+
'todo.generalProjectLine': '{name} · Themen: {count}',
|
|
1021
|
+
'todo.generalAsleep': 'schläft',
|
|
1022
|
+
'todo.generalNothingInWork': 'nichts in Arbeit',
|
|
1023
|
+
'todo.generalQueueCount': 'Warteschlange {count}',
|
|
1024
|
+
'todo.generalNoProjects': 'Noch ist kein Thema an einen Ordner gebunden.',
|
|
1025
|
+
'todo.projectModeAutomatic': 'automatisch',
|
|
1026
|
+
'todo.projectModeOwn': 'eigenes Projekt',
|
|
1027
|
+
'todo.projectModeJoined': 'von Hand zugeordnet',
|
|
1028
|
+
'todo.projectLine': 'Projekt: {name} · Themen: {count} ({mode})',
|
|
1029
|
+
'todo.projectButton': 'Projekt ▸',
|
|
1030
|
+
'todo.projectPickerTitle': 'Projekt für {topic}',
|
|
1031
|
+
'todo.projectPickerNow': 'Jetzt: {name} — {mode} · Themen: {count}',
|
|
1032
|
+
'todo.projectAutomaticButton': 'Automatisch',
|
|
1033
|
+
'todo.projectOwnButton': 'Eigenes Projekt',
|
|
1034
|
+
'todo.projectJoinButton': 'Dem Projekt von {topic} beitreten',
|
|
1035
|
+
'todo.projectSavedToast': '✅ Projekt: {name}',
|
|
1036
|
+
'todo.pickerStale': 'Diese Liste hat sich geändert — bitte neu wählen.',
|
|
954
1037
|
};
|
|
955
1038
|
//# sourceMappingURL=de.js.map
|