charness 3.6.1 → 3.8.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 +297 -0
- package/DEVELOPMENT.md +35 -5
- package/MIGRATION_RENAME_TO_CHARNESS.md +3 -2
- package/README.md +84 -782
- package/SETUP.md +48 -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 +97 -7
- 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 +1360 -387
- 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 +55 -1
- package/dist/cli.js.map +1 -1
- package/dist/configDirFile.d.ts +7 -3
- package/dist/configDirFile.d.ts.map +1 -1
- package/dist/configDirFile.js +12 -5
- package/dist/configDirFile.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 +7 -0
- package/dist/connectors/jira/connector.js.map +1 -1
- package/dist/connectors/jira/inbound.d.ts +27 -4
- package/dist/connectors/jira/inbound.d.ts.map +1 -1
- package/dist/connectors/jira/inbound.js +69 -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/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 +13 -3
- 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/runners.d.ts +52 -0
- package/dist/connectors/telegram/commands/runners.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/runners.js +486 -0
- package/dist/connectors/telegram/commands/runners.js.map +1 -0
- 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/telegram/runnerPairingMessages.d.ts +27 -0
- package/dist/connectors/telegram/runnerPairingMessages.d.ts.map +1 -0
- package/dist/connectors/telegram/runnerPairingMessages.js +105 -0
- package/dist/connectors/telegram/runnerPairingMessages.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 +148 -7
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +148 -7
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +148 -7
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +148 -7
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +148 -7
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +148 -7
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +148 -7
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +148 -7
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +148 -7
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +148 -7
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +148 -7
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +148 -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 +70 -1
- package/dist/installManager.d.ts.map +1 -1
- package/dist/installManager.js +125 -13
- package/dist/installManager.js.map +1 -1
- package/dist/instanceSettings.d.ts +50 -1
- package/dist/instanceSettings.d.ts.map +1 -1
- package/dist/instanceSettings.js +119 -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/outputTrace.d.ts +6 -0
- package/dist/outputTrace.d.ts.map +1 -1
- package/dist/outputTrace.js +24 -1
- package/dist/outputTrace.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 +75 -0
- package/dist/remoteRun/cliArgs.d.ts.map +1 -0
- package/dist/remoteRun/cliArgs.js +206 -0
- package/dist/remoteRun/cliArgs.js.map +1 -0
- package/dist/remoteRun/commands.d.ts +77 -0
- package/dist/remoteRun/commands.d.ts.map +1 -0
- package/dist/remoteRun/commands.js +327 -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 +27 -0
- package/dist/remoteRun/interrupts.d.ts.map +1 -0
- package/dist/remoteRun/interrupts.js +78 -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 +37 -0
- package/dist/remoteRun/output.d.ts.map +1 -0
- package/dist/remoteRun/output.js +127 -0
- package/dist/remoteRun/output.js.map +1 -0
- package/dist/remoteRun/pairedRunners.d.ts +51 -0
- package/dist/remoteRun/pairedRunners.d.ts.map +1 -0
- package/dist/remoteRun/pairedRunners.js +165 -0
- package/dist/remoteRun/pairedRunners.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 +78 -0
- package/dist/remoteRun/probe.d.ts.map +1 -0
- package/dist/remoteRun/probe.js +157 -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 +22 -0
- package/dist/remoteRun/remoteRunCli.d.ts.map +1 -0
- package/dist/remoteRun/remoteRunCli.js +119 -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 +52 -0
- package/dist/remoteRun/runnerClient.d.ts.map +1 -0
- package/dist/remoteRun/runnerClient.js +143 -0
- package/dist/remoteRun/runnerClient.js.map +1 -0
- package/dist/remoteRun/runnerSummary.d.ts +24 -0
- package/dist/remoteRun/runnerSummary.d.ts.map +1 -0
- package/dist/remoteRun/runnerSummary.js +86 -0
- package/dist/remoteRun/runnerSummary.js.map +1 -0
- package/dist/remoteRun/runnerWait.d.ts +68 -0
- package/dist/remoteRun/runnerWait.d.ts.map +1 -0
- package/dist/remoteRun/runnerWait.js +137 -0
- package/dist/remoteRun/runnerWait.js.map +1 -0
- package/dist/remoteRun/runnerWaitTiming.d.ts +16 -0
- package/dist/remoteRun/runnerWaitTiming.d.ts.map +1 -0
- package/dist/remoteRun/runnerWaitTiming.js +37 -0
- package/dist/remoteRun/runnerWaitTiming.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 +209 -0
- package/dist/remoteRun/runners.js.map +1 -0
- package/dist/remoteRun/runnersCatalog.d.ts +14 -0
- package/dist/remoteRun/runnersCatalog.d.ts.map +1 -0
- package/dist/remoteRun/runnersCatalog.js +68 -0
- package/dist/remoteRun/runnersCatalog.js.map +1 -0
- package/dist/remoteRun/runnersConfig.d.ts +53 -0
- package/dist/remoteRun/runnersConfig.d.ts.map +1 -0
- package/dist/remoteRun/runnersConfig.js +109 -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 +82 -0
- package/dist/remoteRun/ssh.d.ts.map +1 -0
- package/dist/remoteRun/ssh.js +236 -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/runnerUtility/adminCheck.d.ts +11 -0
- package/dist/runnerUtility/adminCheck.d.ts.map +1 -0
- package/dist/runnerUtility/adminCheck.js +68 -0
- package/dist/runnerUtility/adminCheck.js.map +1 -0
- package/dist/runnerUtility/appInstall.d.ts +25 -0
- package/dist/runnerUtility/appInstall.d.ts.map +1 -0
- package/dist/runnerUtility/appInstall.js +147 -0
- package/dist/runnerUtility/appInstall.js.map +1 -0
- package/dist/runnerUtility/appUpdate.d.ts +39 -0
- package/dist/runnerUtility/appUpdate.d.ts.map +1 -0
- package/dist/runnerUtility/appUpdate.js +90 -0
- package/dist/runnerUtility/appUpdate.js.map +1 -0
- package/dist/runnerUtility/execEnv.d.ts +21 -0
- package/dist/runnerUtility/execEnv.d.ts.map +1 -0
- package/dist/runnerUtility/execEnv.js +109 -0
- package/dist/runnerUtility/execEnv.js.map +1 -0
- package/dist/runnerUtility/execSession.d.ts +13 -0
- package/dist/runnerUtility/execSession.d.ts.map +1 -0
- package/dist/runnerUtility/execSession.js +58 -0
- package/dist/runnerUtility/execSession.js.map +1 -0
- package/dist/runnerUtility/hubClient.d.ts +30 -0
- package/dist/runnerUtility/hubClient.d.ts.map +1 -0
- package/dist/runnerUtility/hubClient.js +127 -0
- package/dist/runnerUtility/hubClient.js.map +1 -0
- package/dist/runnerUtility/injectStream.d.ts +9 -0
- package/dist/runnerUtility/injectStream.d.ts.map +1 -0
- package/dist/runnerUtility/injectStream.js +12 -0
- package/dist/runnerUtility/injectStream.js.map +1 -0
- package/dist/runnerUtility/iosCheck.d.ts +62 -0
- package/dist/runnerUtility/iosCheck.d.ts.map +1 -0
- package/dist/runnerUtility/iosCheck.js +200 -0
- package/dist/runnerUtility/iosCheck.js.map +1 -0
- package/dist/runnerUtility/launcher.d.ts +5 -0
- package/dist/runnerUtility/launcher.d.ts.map +1 -0
- package/dist/runnerUtility/launcher.js +85 -0
- package/dist/runnerUtility/launcher.js.map +1 -0
- package/dist/runnerUtility/linkLoop.d.ts +47 -0
- package/dist/runnerUtility/linkLoop.d.ts.map +1 -0
- package/dist/runnerUtility/linkLoop.js +281 -0
- package/dist/runnerUtility/linkLoop.js.map +1 -0
- package/dist/runnerUtility/localLinkStop.d.ts +23 -0
- package/dist/runnerUtility/localLinkStop.d.ts.map +1 -0
- package/dist/runnerUtility/localLinkStop.js +79 -0
- package/dist/runnerUtility/localLinkStop.js.map +1 -0
- package/dist/runnerUtility/machineReport.d.ts +39 -0
- package/dist/runnerUtility/machineReport.d.ts.map +1 -0
- package/dist/runnerUtility/machineReport.js +161 -0
- package/dist/runnerUtility/machineReport.js.map +1 -0
- package/dist/runnerUtility/packageId.d.ts +5 -0
- package/dist/runnerUtility/packageId.d.ts.map +1 -0
- package/dist/runnerUtility/packageId.js +64 -0
- package/dist/runnerUtility/packageId.js.map +1 -0
- package/dist/runnerUtility/pairingRecovery.d.ts +31 -0
- package/dist/runnerUtility/pairingRecovery.d.ts.map +1 -0
- package/dist/runnerUtility/pairingRecovery.js +24 -0
- package/dist/runnerUtility/pairingRecovery.js.map +1 -0
- package/dist/runnerUtility/pueueDaemon.d.ts +36 -0
- package/dist/runnerUtility/pueueDaemon.d.ts.map +1 -0
- package/dist/runnerUtility/pueueDaemon.js +165 -0
- package/dist/runnerUtility/pueueDaemon.js.map +1 -0
- package/dist/runnerUtility/runnerCli.d.ts +18 -0
- package/dist/runnerUtility/runnerCli.d.ts.map +1 -0
- package/dist/runnerUtility/runnerCli.js +184 -0
- package/dist/runnerUtility/runnerCli.js.map +1 -0
- package/dist/runnerUtility/runnerCommands.d.ts +67 -0
- package/dist/runnerUtility/runnerCommands.d.ts.map +1 -0
- package/dist/runnerUtility/runnerCommands.js +418 -0
- package/dist/runnerUtility/runnerCommands.js.map +1 -0
- package/dist/runnerUtility/runnerConfig.d.ts +63 -0
- package/dist/runnerUtility/runnerConfig.d.ts.map +1 -0
- package/dist/runnerUtility/runnerConfig.js +153 -0
- package/dist/runnerUtility/runnerConfig.js.map +1 -0
- package/dist/runnerUtility/runnerFlags.d.ts +9 -0
- package/dist/runnerUtility/runnerFlags.d.ts.map +1 -0
- package/dist/runnerUtility/runnerFlags.js +53 -0
- package/dist/runnerUtility/runnerFlags.js.map +1 -0
- package/dist/runnerUtility/runnerHome.d.ts +30 -0
- package/dist/runnerUtility/runnerHome.d.ts.map +1 -0
- package/dist/runnerUtility/runnerHome.js +82 -0
- package/dist/runnerUtility/runnerHome.js.map +1 -0
- package/dist/runnerUtility/runnerKeys.d.ts +11 -0
- package/dist/runnerUtility/runnerKeys.d.ts.map +1 -0
- package/dist/runnerUtility/runnerKeys.js +80 -0
- package/dist/runnerUtility/runnerKeys.js.map +1 -0
- package/dist/runnerUtility/runnerServers.d.ts +40 -0
- package/dist/runnerUtility/runnerServers.d.ts.map +1 -0
- package/dist/runnerUtility/runnerServers.js +79 -0
- package/dist/runnerUtility/runnerServers.js.map +1 -0
- package/dist/runnerUtility/serviceManager.d.ts +54 -0
- package/dist/runnerUtility/serviceManager.d.ts.map +1 -0
- package/dist/runnerUtility/serviceManager.js +413 -0
- package/dist/runnerUtility/serviceManager.js.map +1 -0
- package/dist/runnerUtility/serviceUnits.d.ts +36 -0
- package/dist/runnerUtility/serviceUnits.d.ts.map +1 -0
- package/dist/runnerUtility/serviceUnits.js +169 -0
- package/dist/runnerUtility/serviceUnits.js.map +1 -0
- package/dist/runnerUtility/toolInstall.d.ts +95 -0
- package/dist/runnerUtility/toolInstall.d.ts.map +1 -0
- package/dist/runnerUtility/toolInstall.js +232 -0
- package/dist/runnerUtility/toolInstall.js.map +1 -0
- package/dist/runnerUtility/versionPollTiming.d.ts +16 -0
- package/dist/runnerUtility/versionPollTiming.d.ts.map +1 -0
- package/dist/runnerUtility/versionPollTiming.js +36 -0
- package/dist/runnerUtility/versionPollTiming.js.map +1 -0
- package/dist/runners/authorizedKeys.d.ts +52 -0
- package/dist/runners/authorizedKeys.d.ts.map +1 -0
- package/dist/runners/authorizedKeys.js +153 -0
- package/dist/runners/authorizedKeys.js.map +1 -0
- package/dist/runners/bootstrapLine.d.ts +4 -0
- package/dist/runners/bootstrapLine.d.ts.map +1 -0
- package/dist/runners/bootstrapLine.js +69 -0
- package/dist/runners/bootstrapLine.js.map +1 -0
- package/dist/runners/gate.d.ts +41 -0
- package/dist/runners/gate.d.ts.map +1 -0
- package/dist/runners/gate.js +216 -0
- package/dist/runners/gate.js.map +1 -0
- package/dist/runners/gateLink.d.ts +26 -0
- package/dist/runners/gateLink.d.ts.map +1 -0
- package/dist/runners/gateLink.js +240 -0
- package/dist/runners/gateLink.js.map +1 -0
- package/dist/runners/gateProtocol.d.ts +98 -0
- package/dist/runners/gateProtocol.d.ts.map +1 -0
- package/dist/runners/gateProtocol.js +149 -0
- package/dist/runners/gateProtocol.js.map +1 -0
- package/dist/runners/gateWrapper.d.ts +6 -0
- package/dist/runners/gateWrapper.d.ts.map +1 -0
- package/dist/runners/gateWrapper.js +70 -0
- package/dist/runners/gateWrapper.js.map +1 -0
- package/dist/runners/hubAddress.d.ts +33 -0
- package/dist/runners/hubAddress.d.ts.map +1 -0
- package/dist/runners/hubAddress.js +88 -0
- package/dist/runners/hubAddress.js.map +1 -0
- package/dist/runners/hubAddressCandidates.d.ts +16 -0
- package/dist/runners/hubAddressCandidates.d.ts.map +1 -0
- package/dist/runners/hubAddressCandidates.js +96 -0
- package/dist/runners/hubAddressCandidates.js.map +1 -0
- package/dist/runners/hubIds.d.ts +16 -0
- package/dist/runners/hubIds.d.ts.map +1 -0
- package/dist/runners/hubIds.js +25 -0
- package/dist/runners/hubIds.js.map +1 -0
- package/dist/runners/hubKey.d.ts +6 -0
- package/dist/runners/hubKey.d.ts.map +1 -0
- package/dist/runners/hubKey.js +78 -0
- package/dist/runners/hubKey.js.map +1 -0
- package/dist/runners/hubLock.d.ts +7 -0
- package/dist/runners/hubLock.d.ts.map +1 -0
- package/dist/runners/hubLock.js +230 -0
- package/dist/runners/hubLock.js.map +1 -0
- package/dist/runners/hubPackage.d.ts +23 -0
- package/dist/runners/hubPackage.d.ts.map +1 -0
- package/dist/runners/hubPackage.js +184 -0
- package/dist/runners/hubPackage.js.map +1 -0
- package/dist/runners/hubPairing.d.ts +63 -0
- package/dist/runners/hubPairing.d.ts.map +1 -0
- package/dist/runners/hubPairing.js +261 -0
- package/dist/runners/hubPairing.js.map +1 -0
- package/dist/runners/hubPaths.d.ts +38 -0
- package/dist/runners/hubPaths.d.ts.map +1 -0
- package/dist/runners/hubPaths.js +94 -0
- package/dist/runners/hubPaths.js.map +1 -0
- package/dist/runners/hubRegistry.d.ts +112 -0
- package/dist/runners/hubRegistry.d.ts.map +1 -0
- package/dist/runners/hubRegistry.js +210 -0
- package/dist/runners/hubRegistry.js.map +1 -0
- package/dist/runners/linkControl.d.ts +27 -0
- package/dist/runners/linkControl.d.ts.map +1 -0
- package/dist/runners/linkControl.js +124 -0
- package/dist/runners/linkControl.js.map +1 -0
- package/dist/runners/pairCode.d.ts +30 -0
- package/dist/runners/pairCode.d.ts.map +1 -0
- package/dist/runners/pairCode.js +46 -0
- package/dist/runners/pairCode.js.map +1 -0
- package/dist/runners/pairingTiming.d.ts +18 -0
- package/dist/runners/pairingTiming.d.ts.map +1 -0
- package/dist/runners/pairingTiming.js +42 -0
- package/dist/runners/pairingTiming.js.map +1 -0
- package/dist/runners/runnerProxy.d.ts +9 -0
- package/dist/runners/runnerProxy.d.ts.map +1 -0
- package/dist/runners/runnerProxy.js +67 -0
- package/dist/runners/runnerProxy.js.map +1 -0
- package/dist/runners/runnerRemoval.d.ts +21 -0
- package/dist/runners/runnerRemoval.d.ts.map +1 -0
- package/dist/runners/runnerRemoval.js +82 -0
- package/dist/runners/runnerRemoval.js.map +1 -0
- package/dist/runners/runnersCli.d.ts +16 -0
- package/dist/runners/runnersCli.d.ts.map +1 -0
- package/dist/runners/runnersCli.js +214 -0
- package/dist/runners/runnersCli.js.map +1 -0
- package/dist/runners/runnersList.d.ts +17 -0
- package/dist/runners/runnersList.d.ts.map +1 -0
- package/dist/runners/runnersList.js +49 -0
- package/dist/runners/runnersList.js.map +1 -0
- package/dist/runners/runnersOverview.d.ts +20 -0
- package/dist/runners/runnersOverview.d.ts.map +1 -0
- package/dist/runners/runnersOverview.js +55 -0
- package/dist/runners/runnersOverview.js.map +1 -0
- package/dist/runners/sshKeys.d.ts +26 -0
- package/dist/runners/sshKeys.d.ts.map +1 -0
- package/dist/runners/sshKeys.js +60 -0
- package/dist/runners/sshKeys.js.map +1 -0
- package/dist/runners/tarArchive.d.ts +20 -0
- package/dist/runners/tarArchive.d.ts.map +1 -0
- package/dist/runners/tarArchive.js +70 -0
- package/dist/runners/tarArchive.js.map +1 -0
- 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 +65 -10
- package/dist/scheduler/mcpSurface.d.ts.map +1 -1
- package/dist/scheduler/mcpSurface.js +319 -89
- 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/selfCheck.js +2 -2
- package/dist/selfUpdate/selfCheck.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 +16 -3
- package/dist/testTimings.d.ts.map +1 -1
- package/dist/testTimings.js +35 -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/agentEnvironment.d.ts +6 -2
- package/dist/utils/agentEnvironment.d.ts.map +1 -1
- package/dist/utils/agentEnvironment.js +13 -2
- package/dist/utils/agentEnvironment.js.map +1 -1
- 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/runnersScreenPlan.d.ts +130 -0
- package/dist/utils/runnersScreenPlan.d.ts.map +1 -0
- package/dist/utils/runnersScreenPlan.js +257 -0
- package/dist/utils/runnersScreenPlan.js.map +1 -0
- 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 +15 -4
- package/remoteRun/runner.sh +1317 -0
- package/stt/gigaam_sidecar.py +555 -50
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* @description The OpenCode plugin the bot installs so that a compaction OpenCode
|
|
4
|
-
* runs ON ITS OWN when the context overflows also
|
|
5
|
-
* skills to load again
|
|
4
|
+
* runs ON ITS OWN when the context overflows also gets the resume guidance — the
|
|
5
|
+
* skills to load again and the next-steps checklist that ends the summary
|
|
6
|
+
* (`compactionResumeGuidance`).
|
|
6
7
|
*
|
|
7
|
-
* WHY this exists: the
|
|
8
|
+
* WHY this exists: the resume guidance rides the bot's per-invocation
|
|
8
9
|
* `instruction` (`POST /session/:id/summarize`), which an overflow compaction
|
|
9
10
|
* never receives, and unlike D3 it is not baked into the fork's prompt. OpenCode
|
|
10
11
|
* runs the plugin hook `experimental.session.compacting` before EVERY compaction
|
|
@@ -18,6 +19,15 @@
|
|
|
18
19
|
* file and rewrites it only when its content changed; the user's `opencode.json`
|
|
19
20
|
* is never touched.
|
|
20
21
|
*
|
|
22
|
+
* The file name carries a hash of the plugin's content. `GET /config` reports a
|
|
23
|
+
* loaded plugin only by that name, so a name that is the same for every version
|
|
24
|
+
* would make an instance that loaded an OLDER text read as up to date: it would
|
|
25
|
+
* never be recreated, and the bot would leave the guidance out of its own
|
|
26
|
+
* instruction on the strength of a plugin that carries less than the current
|
|
27
|
+
* one. With the hash only an instance that loaded the current text counts
|
|
28
|
+
* ({@link checkHasOpenCodeCompactPlugin}); an older copy of the file is removed on
|
|
29
|
+
* install, so a new instance never loads two.
|
|
30
|
+
*
|
|
21
31
|
* A RUNNING instance does not rescan: OpenCode loads plugins once per project
|
|
22
32
|
* folder. `POST /instance/dispose?directory=` makes the next request recreate the
|
|
23
33
|
* folder's instance, which then loads the plugin — no server restart, sessions
|
|
@@ -29,34 +39,41 @@
|
|
|
29
39
|
*
|
|
30
40
|
* The hook only sees the session id, never the bot's per-invocation instruction,
|
|
31
41
|
* so it cannot skip a compaction that already carries the guidance. The bot
|
|
32
|
-
* therefore leaves the
|
|
33
|
-
* instance has
|
|
42
|
+
* therefore leaves the resume guidance out of its instruction when the folder's
|
|
43
|
+
* instance has the CURRENT plugin ({@link checkHasOpenCodeCompactPlugin} over
|
|
34
44
|
* `GET /config`), and keeps it otherwise.
|
|
35
45
|
*/
|
|
36
46
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
47
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
48
|
};
|
|
39
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.
|
|
50
|
+
exports.openCodeCompactPluginFileName = exports.legacyOpenCodeCompactPluginId = exports.legacyOpenCodeCompactPluginFileName = exports.openCodeCompactPluginId = void 0;
|
|
41
51
|
exports.getOpenCodeCompactPluginContext = getOpenCodeCompactPluginContext;
|
|
42
52
|
exports.buildOpenCodeCompactPluginSource = buildOpenCodeCompactPluginSource;
|
|
53
|
+
exports.getOpenCodeCompactPluginFileName = getOpenCodeCompactPluginFileName;
|
|
43
54
|
exports.resolveOpenCodeGlobalPluginDir = resolveOpenCodeGlobalPluginDir;
|
|
44
55
|
exports.checkHasOpenCodeCompactPlugin = checkHasOpenCodeCompactPlugin;
|
|
45
56
|
exports.getCompactPluginActivation = getCompactPluginActivation;
|
|
57
|
+
exports.checkIsOpenCodeSessionStatusIdle = checkIsOpenCodeSessionStatusIdle;
|
|
46
58
|
exports.installOpenCodeCompactPlugin = installOpenCodeCompactPlugin;
|
|
59
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
47
60
|
const fs_1 = __importDefault(require("fs"));
|
|
48
61
|
const os_1 = __importDefault(require("os"));
|
|
49
62
|
const path_1 = __importDefault(require("path"));
|
|
50
63
|
const compactOnIdle_1 = require("./compactOnIdle");
|
|
51
64
|
const legacyNames_1 = require("../legacyNames");
|
|
52
|
-
/** File name of the plugin in OpenCode's plugin folder; also how the bot recognises it in `GET /config`. */
|
|
53
|
-
exports.openCodeCompactPluginFileName = 'charness-compaction.js';
|
|
54
65
|
/** OpenCode requires a path plugin to export an id. */
|
|
55
66
|
exports.openCodeCompactPluginId = 'charness-compaction';
|
|
67
|
+
/** The part of the plugin's file name before the content hash. */
|
|
68
|
+
const openCodeCompactPluginFileStem = 'charness-compaction';
|
|
69
|
+
/** Hex digits of the content hash in the file name: enough that two texts never share one, short enough to read. */
|
|
70
|
+
const openCodeCompactPluginHashLength = 8;
|
|
71
|
+
/** The file name of any version of the plugin: the stem, an optional content hash (the first release had none). */
|
|
72
|
+
const openCodeCompactPluginFileNamePattern = new RegExp(`^${openCodeCompactPluginFileStem}(?:-[0-9a-f]{${openCodeCompactPluginHashLength}})?\\.js$`);
|
|
56
73
|
/**
|
|
57
|
-
* The file and id the same plugin had before the rename.
|
|
58
|
-
*
|
|
59
|
-
*
|
|
74
|
+
* The file and id the same plugin had before the rename. The file is removed on
|
|
75
|
+
* install so a new instance does not load both; an instance that loaded it carries
|
|
76
|
+
* an older text, so it no longer counts as "has the plugin".
|
|
60
77
|
*/
|
|
61
78
|
exports.legacyOpenCodeCompactPluginFileName = 'telegramcode-compaction.js';
|
|
62
79
|
exports.legacyOpenCodeCompactPluginId = 'telegramcode-compaction';
|
|
@@ -64,10 +81,10 @@ exports.legacyOpenCodeCompactPluginId = 'telegramcode-compaction';
|
|
|
64
81
|
* @description The text the plugin adds to every compaction prompt. OpenCode
|
|
65
82
|
* appends it AFTER the bot's per-invocation instruction, which may end with the
|
|
66
83
|
* F2 closing-section directive ("write nothing after the end marker"), so the text
|
|
67
|
-
* says outright that the skills list
|
|
84
|
+
* says outright that the skills list and the checklist belong inside the summary.
|
|
68
85
|
*/
|
|
69
86
|
function getOpenCodeCompactPluginContext() {
|
|
70
|
-
return `Additional instruction for the summary itself (put it inside the summary, never after a closing section the instructions above require): ${compactOnIdle_1.
|
|
87
|
+
return `Additional instruction for the summary itself (put it inside the summary, never after a closing section the instructions above require): ${compactOnIdle_1.compactionResumeGuidance}`;
|
|
71
88
|
}
|
|
72
89
|
/** @description The plugin module source: a v1 plugin (`default` export with `id` + `server`). */
|
|
73
90
|
function buildOpenCodeCompactPluginSource(context) {
|
|
@@ -85,24 +102,36 @@ function buildOpenCodeCompactPluginSource(context) {
|
|
|
85
102
|
'',
|
|
86
103
|
].join('\n');
|
|
87
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* @description The plugin's file name for a given source: the stem and a hash of the source. `GET /config` names a
|
|
107
|
+
* loaded plugin by this file name alone, so the name is what tells an instance that loaded this text from one that
|
|
108
|
+
* loaded an older one.
|
|
109
|
+
*/
|
|
110
|
+
function getOpenCodeCompactPluginFileName(source) {
|
|
111
|
+
const contentHash = crypto_1.default.createHash('sha256').update(source).digest('hex').slice(0, openCodeCompactPluginHashLength);
|
|
112
|
+
return `${openCodeCompactPluginFileStem}-${contentHash}.js`;
|
|
113
|
+
}
|
|
114
|
+
/** File name of the CURRENT plugin in OpenCode's plugin folder; also how the bot recognises it in `GET /config`. */
|
|
115
|
+
exports.openCodeCompactPluginFileName = getOpenCodeCompactPluginFileName(buildOpenCodeCompactPluginSource(getOpenCodeCompactPluginContext()));
|
|
88
116
|
/** @description OpenCode's global plugin folder, resolved the way OpenCode resolves it (XDG config home). */
|
|
89
117
|
function resolveOpenCodeGlobalPluginDir(env) {
|
|
90
118
|
const configHome = env.XDG_CONFIG_HOME || path_1.default.join(os_1.default.homedir(), '.config');
|
|
91
119
|
return path_1.default.join(configHome, 'opencode', 'plugins');
|
|
92
120
|
}
|
|
93
121
|
/**
|
|
94
|
-
* @description Whether a `GET /config` `plugin` list contains the bot
|
|
122
|
+
* @description Whether a `GET /config` `plugin` list contains the CURRENT bot plugin. A
|
|
95
123
|
* spec is a string or a `[spec, options]` tuple; OpenCode reports a path plugin as
|
|
96
|
-
* a `file://` URL.
|
|
124
|
+
* a `file://` URL. Only the current file name counts: an instance that loaded an
|
|
125
|
+
* older version of the plugin (another content hash, the unhashed first release, the
|
|
126
|
+
* pre-rename file) keeps the older text in memory, so it must be recreated and the
|
|
127
|
+
* bot must still send the guidance itself.
|
|
97
128
|
*/
|
|
98
129
|
function checkHasOpenCodeCompactPlugin(pluginSpecs) {
|
|
99
130
|
if (!Array.isArray(pluginSpecs))
|
|
100
131
|
return false;
|
|
101
132
|
return pluginSpecs.some((entry) => {
|
|
102
133
|
const spec = Array.isArray(entry) ? entry[0] : entry;
|
|
103
|
-
return
|
|
104
|
-
(spec.endsWith(`/${exports.openCodeCompactPluginFileName}`) ||
|
|
105
|
-
spec.endsWith(`/${exports.legacyOpenCodeCompactPluginFileName}`)));
|
|
134
|
+
return typeof spec === 'string' && spec.endsWith(`/${exports.openCodeCompactPluginFileName}`);
|
|
106
135
|
});
|
|
107
136
|
}
|
|
108
137
|
/**
|
|
@@ -114,11 +143,16 @@ function checkHasOpenCodeCompactPlugin(pluginSpecs) {
|
|
|
114
143
|
function getCompactPluginActivation(input) {
|
|
115
144
|
if (checkHasOpenCodeCompactPlugin(input.pluginSpecs))
|
|
116
145
|
return 'loaded';
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
146
|
+
return checkIsOpenCodeSessionStatusIdle(input.sessionStatus) ? 'recreate' : 'busy';
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* @description Whether a `GET /session/status` map says every session of the instance is idle. A status the bot
|
|
150
|
+
* cannot read counts as busy: an instance or a server is never recreated on a guess.
|
|
151
|
+
*/
|
|
152
|
+
function checkIsOpenCodeSessionStatusIdle(sessionStatus) {
|
|
153
|
+
if (!sessionStatus || typeof sessionStatus !== 'object' || Array.isArray(sessionStatus))
|
|
154
|
+
return false;
|
|
155
|
+
return Object.values(sessionStatus).every((entry) => typeof entry === 'object' && entry !== null && 'type' in entry && entry.type === 'idle');
|
|
122
156
|
}
|
|
123
157
|
/**
|
|
124
158
|
* @description Remove the plugin file a pre-rename release installed, so a folder
|
|
@@ -140,39 +174,73 @@ function removeLegacyOpenCodeCompactPlugin(pluginDir) {
|
|
|
140
174
|
}
|
|
141
175
|
(0, legacyNames_1.warnLegacyNameOnce)('opencode-compact-plugin', `${(0, legacyNames_1.formatDeprecation)(legacyPath, path_1.default.join(pluginDir, exports.openCodeCompactPluginFileName))}; the old file was removed`);
|
|
142
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* @description Remove every OTHER version of the plugin from the folder, so a new
|
|
179
|
+
* folder instance loads one copy of the guidance, not an older text beside the
|
|
180
|
+
* current one. Only a file that is the bot's own (its name fits the plugin's and it
|
|
181
|
+
* exports the plugin's id) goes; anything else stays. Best-effort: a failure leaves a
|
|
182
|
+
* duplicate guidance, which is harmless.
|
|
183
|
+
*/
|
|
184
|
+
function removeOutdatedOpenCodeCompactPlugins(pluginDir) {
|
|
185
|
+
let fileNames;
|
|
186
|
+
try {
|
|
187
|
+
fileNames = fs_1.default.readdirSync(pluginDir);
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
for (const fileName of fileNames) {
|
|
193
|
+
if (fileName === exports.openCodeCompactPluginFileName || !openCodeCompactPluginFileNamePattern.test(fileName))
|
|
194
|
+
continue;
|
|
195
|
+
const outdatedPath = path_1.default.join(pluginDir, fileName);
|
|
196
|
+
try {
|
|
197
|
+
if (!fs_1.default.readFileSync(outdatedPath, 'utf-8').includes(JSON.stringify(exports.openCodeCompactPluginId)))
|
|
198
|
+
continue;
|
|
199
|
+
fs_1.default.unlinkSync(outdatedPath);
|
|
200
|
+
console.log(`[compact-plugin] removed the outdated plugin file ${outdatedPath}`);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// Gone already or not ours to read: it stays.
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
143
207
|
/**
|
|
144
208
|
* @description Put the plugin into OpenCode's global plugin folder. Idempotent:
|
|
145
209
|
* an identical file is left alone, a stale one is replaced atomically (a folder
|
|
146
210
|
* instance being created concurrently never reads half a file). Any failure is
|
|
147
211
|
* logged and returned — the plugin improves a summary, it must never block an
|
|
148
212
|
* OpenCode start or the bot's boot. The file a pre-rename release installed is
|
|
149
|
-
* removed first
|
|
213
|
+
* removed first; the older versions of the current name, once the current file is
|
|
214
|
+
* in place (a folder instance created in between loads both, never none).
|
|
150
215
|
*/
|
|
151
216
|
function installOpenCodeCompactPlugin(pluginDir = resolveOpenCodeGlobalPluginDir(process.env)) {
|
|
152
217
|
removeLegacyOpenCodeCompactPlugin(pluginDir);
|
|
153
218
|
const pluginPath = path_1.default.join(pluginDir, exports.openCodeCompactPluginFileName);
|
|
154
219
|
const source = buildOpenCodeCompactPluginSource(getOpenCodeCompactPluginContext());
|
|
220
|
+
let isCurrentFileInPlace = false;
|
|
155
221
|
try {
|
|
156
|
-
|
|
157
|
-
return 'unchanged';
|
|
222
|
+
isCurrentFileInPlace = fs_1.default.readFileSync(pluginPath, 'utf-8') === source;
|
|
158
223
|
}
|
|
159
224
|
catch {
|
|
160
225
|
// Missing or unreadable: (re)write below.
|
|
161
226
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
fs_1.default.mkdirSync(pluginDir, { recursive: true });
|
|
165
|
-
fs_1.default.writeFileSync(tmpPath, source);
|
|
166
|
-
fs_1.default.renameSync(tmpPath, pluginPath);
|
|
167
|
-
}
|
|
168
|
-
catch (e) {
|
|
169
|
-
console.warn(`[compact-plugin] cannot write ${pluginPath}:`, e);
|
|
227
|
+
if (!isCurrentFileInPlace) {
|
|
228
|
+
const tmpPath = `${pluginPath}.${process.pid}.${Date.now()}.tmp`;
|
|
170
229
|
try {
|
|
171
|
-
fs_1.default.
|
|
230
|
+
fs_1.default.mkdirSync(pluginDir, { recursive: true });
|
|
231
|
+
fs_1.default.writeFileSync(tmpPath, source);
|
|
232
|
+
fs_1.default.renameSync(tmpPath, pluginPath);
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
console.warn(`[compact-plugin] cannot write ${pluginPath}:`, e);
|
|
236
|
+
try {
|
|
237
|
+
fs_1.default.unlinkSync(tmpPath);
|
|
238
|
+
}
|
|
239
|
+
catch { /* never written */ }
|
|
240
|
+
return 'failed';
|
|
172
241
|
}
|
|
173
|
-
catch { /* never written */ }
|
|
174
|
-
return 'failed';
|
|
175
242
|
}
|
|
176
|
-
|
|
243
|
+
removeOutdatedOpenCodeCompactPlugins(pluginDir);
|
|
244
|
+
return isCurrentFileInPlace ? 'unchanged' : 'written';
|
|
177
245
|
}
|
|
178
246
|
//# sourceMappingURL=openCodeCompactPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openCodeCompactPlugin.js","sourceRoot":"","sources":["../../src/utils/openCodeCompactPlugin.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"openCodeCompactPlugin.js","sourceRoot":"","sources":["../../src/utils/openCodeCompactPlugin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;;;;;;AAmCH,0EAEC;AAGD,4EAcC;AAOD,4EAGC;AAMD,wEAGC;AAUD,sEAMC;AAcD,gEAMC;AAMD,4EAKC;AA+DD,oEA0BC;AA/MD,oDAA4B;AAC5B,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,mDAA2D;AAC3D,gDAAuE;AAEvE,uDAAuD;AAC1C,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D,kEAAkE;AAClE,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAE5D,oHAAoH;AACpH,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAE1C,mHAAmH;AACnH,MAAM,oCAAoC,GAAG,IAAI,MAAM,CAAC,IAAI,6BAA6B,gBAAgB,+BAA+B,WAAW,CAAC,CAAC;AAErJ;;;;GAIG;AACU,QAAA,mCAAmC,GAAG,4BAA4B,CAAC;AACnE,QAAA,6BAA6B,GAAG,yBAAyB,CAAC;AAEvE;;;;;GAKG;AACH,SAAgB,+BAA+B;IAC7C,OAAO,4IAA4I,wCAAwB,EAAE,CAAC;AAChL,CAAC;AAED,kGAAkG;AAClG,SAAgB,gCAAgC,CAAC,OAAe;IAC9D,OAAO;QACL,oFAAoF;QACpF,mBAAmB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG;QAC7C,kBAAkB;QAClB,SAAS,IAAI,CAAC,SAAS,CAAC,+BAAuB,CAAC,GAAG;QACnD,0BAA0B;QAC1B,oEAAoE;QACpE,qCAAqC;QACrC,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,gCAAgC,CAAC,MAAc;IAC7D,MAAM,WAAW,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACvH,OAAO,GAAG,6BAA6B,IAAI,WAAW,KAAK,CAAC;AAC9D,CAAC;AAED,oHAAoH;AACvG,QAAA,6BAA6B,GAAG,gCAAgC,CAAC,gCAAgC,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;AAEnJ,6GAA6G;AAC7G,SAAgB,8BAA8B,CAAC,GAAsB;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,IAAI,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7E,OAAO,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,6BAA6B,CAAC,WAAoB;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,qCAA6B,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;AACL,CAAC;AAQD;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,KAG1C;IACC,IAAI,6BAA6B,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtE,OAAO,gCAAgC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AACrF,CAAC;AAED;;;GAGG;AACH,SAAgB,gCAAgC,CAAC,aAAsB;IACrE,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IACtG,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CACnG,CAAC;AACJ,CAAC;AAKD;;;;;;GAMG;AACH,SAAS,iCAAiC,CAAC,SAAiB;IAC1D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2CAAmC,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,qCAA6B,CAAC,CAAC;YAAE,OAAO;QAC5E,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,IAAA,gCAAkB,EAChB,yBAAyB,EACzB,GAAG,IAAA,+BAAiB,EAAC,UAAU,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qCAA6B,CAAC,CAAC,4BAA4B,CAClH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oCAAoC,CAAC,SAAiB;IAC7D,IAAI,SAAmB,CAAC;IACxB,IAAI,CAAC;QACH,SAAS,GAAG,YAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,KAAK,qCAA6B,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjH,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,IAAI,CAAC,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,+BAAuB,CAAC,CAAC;gBAAE,SAAS;YACxG,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,qDAAqD,YAAY,EAAE,CAAC,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,4BAA4B,CAC1C,YAAoB,8BAA8B,CAAC,OAAO,CAAC,GAAG,CAAC;IAE/D,iCAAiC,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qCAA6B,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,gCAAgC,CAAC,+BAA+B,EAAE,CAAC,CAAC;IACnF,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,IAAI,CAAC;QACH,oBAAoB,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;IACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;QACjE,IAAI,CAAC;YACH,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,YAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,YAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,iCAAiC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC;gBAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;YAC7D,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,oCAAoC,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC"}
|
|
@@ -2,22 +2,26 @@ import { type SessionKey } from '../sessionKey';
|
|
|
2
2
|
import type { BufferedPromptSettled, StartupPromptBuffer } from '../startupPromptBuffer';
|
|
3
3
|
/**
|
|
4
4
|
* @name PromptDeliveryDeps
|
|
5
|
-
* @description What {@link deliverPromptOrBuffer} acts through. `
|
|
6
|
-
*
|
|
7
|
-
* message, so it is only called for a
|
|
5
|
+
* @description What {@link deliverPromptOrBuffer} acts through. `forwardPrompt` says where the
|
|
6
|
+
* forward put the prompt ({@link LatePromptOutcome}); `announceQueued` tells the person their
|
|
7
|
+
* prompt waits for the session to come up — a topic message, so it is only called for a
|
|
8
|
+
* Telegram conversation.
|
|
8
9
|
*/
|
|
9
10
|
export interface PromptDeliveryDeps {
|
|
10
11
|
startupBuffer: Pick<StartupPromptBuffer, 'addPrompt'>;
|
|
11
|
-
forwardPrompt: (key: SessionKey, text: string) => Promise<
|
|
12
|
+
forwardPrompt: (key: SessionKey, text: string) => Promise<LatePromptOutcome>;
|
|
12
13
|
announceQueued: (key: SessionKey) => Promise<void>;
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
15
16
|
* @name PromptDelivery
|
|
16
17
|
* @description Where {@link deliverPromptOrBuffer} put the prompt: `forwarded` to the
|
|
17
|
-
* session (done),
|
|
18
|
-
* start ends — see `onBufferedSettled`)
|
|
18
|
+
* session (done), `buffered` behind a session start (it waits in memory until the
|
|
19
|
+
* start ends — see `onBufferedSettled`), or `noSession` — the forward found no session
|
|
20
|
+
* left to take it (a prompt that waited for a bot restart's replay; the person was
|
|
21
|
+
* told), so nothing will ever answer it: what the caller opened for it must not wait
|
|
22
|
+
* for a turn.
|
|
19
23
|
*/
|
|
20
|
-
export type PromptDelivery = 'forwarded' | 'buffered';
|
|
24
|
+
export type PromptDelivery = 'forwarded' | 'buffered' | 'noSession';
|
|
21
25
|
/**
|
|
22
26
|
* @description Deliver `text` to a conversation's agent while honouring the startup
|
|
23
27
|
* window: mid-startup the prompt is buffered (it replays in order once the session
|
|
@@ -47,18 +51,24 @@ export declare function deliverPromptOrBuffer(deps: PromptDeliveryDeps, key: Ses
|
|
|
47
51
|
* @name LatePromptRoute
|
|
48
52
|
* @description How a prompt decided on when it ARRIVED is delivered once its handler is ready to forward it:
|
|
49
53
|
* `buffer` — a start or the idle stop is under way (its window is open: the prompt waits there, and the stop resumes the
|
|
50
|
-
* session for it); `wake` — the process is gone meanwhile (the conversation sleeps: wake it, then forward); `forward
|
|
54
|
+
* session for it); `wake` — the process is gone meanwhile (the conversation sleeps: wake it, then forward); `forward`;
|
|
55
|
+
* `drop` — only for a technical prompt that finds no live session without a window: nothing is done for it.
|
|
51
56
|
*/
|
|
52
|
-
export type LatePromptRoute = 'buffer' | 'wake' | 'forward';
|
|
57
|
+
export type LatePromptRoute = 'buffer' | 'wake' | 'forward' | 'drop';
|
|
53
58
|
/**
|
|
54
59
|
* @description The {@link LatePromptRoute} of a prompt, read at the moment it is forwarded. The idle stop posts a
|
|
55
60
|
* re-asked question just before it stops the process, and a handler awaits between reading the session's state and the
|
|
56
61
|
* forward (the tap's toast, the request it opens): written into a process being stopped the prompt was lost, and
|
|
57
62
|
* into one already gone it was dropped.
|
|
63
|
+
*
|
|
64
|
+
* A bot-made TECHNICAL prompt (the todo list's standalone reminder) is posted only into a live session that is idle at
|
|
65
|
+
* this moment — never a resume, never held for a later one, never reported to the person: where a user's prompt would be
|
|
66
|
+
* buffered or wake the conversation, it is dropped.
|
|
58
67
|
*/
|
|
59
68
|
export declare function getLatePromptRoute(input: {
|
|
60
69
|
isWindowOpen: boolean;
|
|
61
70
|
isSessionActive: boolean;
|
|
71
|
+
isTechnical?: boolean;
|
|
62
72
|
}): LatePromptRoute;
|
|
63
73
|
/** @description What a wake did: whether a session is up to forward to, and whether it already told the topic something. */
|
|
64
74
|
export interface LateWakeResult {
|
|
@@ -74,15 +84,22 @@ export interface LateWakeResult {
|
|
|
74
84
|
* already said why (`isAlreadyTold`), where a second, generic line would contradict it.
|
|
75
85
|
*/
|
|
76
86
|
export interface LatePromptDeliveryPorts {
|
|
87
|
+
/** A bot-made technical prompt: dropped, not buffered or woken for, where a session is not live (see {@link getLatePromptRoute}). */
|
|
88
|
+
isTechnical?: boolean;
|
|
77
89
|
checkIsWindowOpen: () => boolean;
|
|
78
90
|
checkIsSessionActive: () => boolean;
|
|
79
91
|
buffer: () => Promise<void>;
|
|
80
92
|
wake: () => Promise<LateWakeResult>;
|
|
81
|
-
forward: ()
|
|
93
|
+
/** Where the forward put the prompt: `forwarded`, or what a forward that routes it again itself (a prompt that waited for an adopt replay) ended in — passed on as the answer. */
|
|
94
|
+
forward: () => Promise<LatePromptOutcome>;
|
|
82
95
|
reportNoSession: (isAlreadyTold: boolean) => Promise<void>;
|
|
83
96
|
}
|
|
84
|
-
/**
|
|
85
|
-
|
|
97
|
+
/**
|
|
98
|
+
* @description Where {@link deliverLatePrompt} put the prompt; `noSession` — nowhere: nothing to deliver it to (the wake found
|
|
99
|
+
* nothing to resume, or the forward itself ended so); `dropped` — a technical prompt that found no live session, left alone
|
|
100
|
+
* on purpose (nothing buffered, woken or said).
|
|
101
|
+
*/
|
|
102
|
+
export type LatePromptOutcome = 'buffered' | 'forwarded' | 'noSession' | 'dropped';
|
|
86
103
|
/**
|
|
87
104
|
* @description Deliver a prompt whose handler decided, when it arrived, that the session is live — routed again by
|
|
88
105
|
* {@link getLatePromptRoute} now, after the handler's awaits. A wake that finds nothing never forwards: the forward
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptDelivery.d.ts","sourceRoot":"","sources":["../../src/utils/promptDelivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEzF
|
|
1
|
+
{"version":3,"file":"promptDelivery.d.ts","sourceRoot":"","sources":["../../src/utils/promptDelivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEzF;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACtD,aAAa,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7E,cAAc,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,EACnB,iBAAiB,CAAC,EAAE,qBAAqB,GACxC,OAAO,CAAC,cAAc,CAAC,CAkBzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,eAAe,CAIrI;AAED,4HAA4H;AAC5H,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,gGAAgG;IAChG,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,qIAAqI;IACrI,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACpC,kLAAkL;IAClL,OAAO,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1C,eAAe,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnF;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAelG"}
|
|
@@ -31,8 +31,9 @@ const sessionKeyCodec_1 = require("../connectors/telegram/sessionKeyCodec");
|
|
|
31
31
|
*/
|
|
32
32
|
async function deliverPromptOrBuffer(deps, key, text, isStarting, onBufferedSettled) {
|
|
33
33
|
if (!isStarting) {
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
// Only `noSession` is told apart: a forward that re-routed the prompt behind a stop window itself registered no
|
|
35
|
+
// `onBufferedSettled`, so it reads as forwarded, as it always did.
|
|
36
|
+
return (await deps.forwardPrompt(key, text)) === 'noSession' ? 'noSession' : 'forwarded';
|
|
36
37
|
}
|
|
37
38
|
const isFirstBuffered = deps.startupBuffer.addPrompt((0, sessionKey_1.keyToString)(key), text, onBufferedSettled);
|
|
38
39
|
if (isFirstBuffered && (0, sessionKeyCodec_1.checkIsTelegramKey)(key)) {
|
|
@@ -53,8 +54,14 @@ async function deliverPromptOrBuffer(deps, key, text, isStarting, onBufferedSett
|
|
|
53
54
|
* re-asked question just before it stops the process, and a handler awaits between reading the session's state and the
|
|
54
55
|
* forward (the tap's toast, the request it opens): written into a process being stopped the prompt was lost, and
|
|
55
56
|
* into one already gone it was dropped.
|
|
57
|
+
*
|
|
58
|
+
* A bot-made TECHNICAL prompt (the todo list's standalone reminder) is posted only into a live session that is idle at
|
|
59
|
+
* this moment — never a resume, never held for a later one, never reported to the person: where a user's prompt would be
|
|
60
|
+
* buffered or wake the conversation, it is dropped.
|
|
56
61
|
*/
|
|
57
62
|
function getLatePromptRoute(input) {
|
|
63
|
+
if (input.isTechnical === true)
|
|
64
|
+
return input.isWindowOpen || !input.isSessionActive ? 'drop' : 'forward';
|
|
58
65
|
if (input.isWindowOpen)
|
|
59
66
|
return 'buffer';
|
|
60
67
|
return input.isSessionActive ? 'forward' : 'wake';
|
|
@@ -65,7 +72,9 @@ function getLatePromptRoute(input) {
|
|
|
65
72
|
* would show the topic as working while the adapter drops the text.
|
|
66
73
|
*/
|
|
67
74
|
async function deliverLatePrompt(ports) {
|
|
68
|
-
const route = getLatePromptRoute({ isWindowOpen: ports.checkIsWindowOpen(), isSessionActive: ports.checkIsSessionActive() });
|
|
75
|
+
const route = getLatePromptRoute({ isWindowOpen: ports.checkIsWindowOpen(), isSessionActive: ports.checkIsSessionActive(), isTechnical: ports.isTechnical });
|
|
76
|
+
if (route === 'drop')
|
|
77
|
+
return 'dropped';
|
|
69
78
|
if (route === 'buffer') {
|
|
70
79
|
await ports.buffer();
|
|
71
80
|
return 'buffered';
|
|
@@ -77,7 +86,6 @@ async function deliverLatePrompt(ports) {
|
|
|
77
86
|
return 'noSession';
|
|
78
87
|
}
|
|
79
88
|
}
|
|
80
|
-
|
|
81
|
-
return 'forwarded';
|
|
89
|
+
return ports.forward();
|
|
82
90
|
}
|
|
83
91
|
//# sourceMappingURL=promptDelivery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptDelivery.js","sourceRoot":"","sources":["../../src/utils/promptDelivery.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"promptDelivery.js","sourceRoot":"","sources":["../../src/utils/promptDelivery.ts"],"names":[],"mappings":";;AAoDA,sDAwBC;AAqBD,gDAIC;AAwCD,8CAeC;AA5JD,8CAA6D;AAC7D,4EAA4E;AA2B5E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,qBAAqB,CACzC,IAAwB,EACxB,GAAe,EACf,IAAY,EACZ,UAAmB,EACnB,iBAAyC;IAEzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,gHAAgH;QAChH,mEAAmE;QACnE,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3F,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAA,wBAAW,EAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAChG,IAAI,eAAe,IAAI,IAAA,oCAAkB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,sGAAsG;QACtG,sGAAsG;QACtG,gDAAgD;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,IAAA,wBAAW,EAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAWD;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CAAC,KAAiF;IAClH,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACzG,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAC;IACxC,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACpD,CAAC;AAmCD;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CAAC,KAA8B;IACpE,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,iBAAiB,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7J,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Pure plan of the `/runners` screen (`connectors/telegram/commands/runners.ts`): the list of paired machines with
|
|
3
|
+
* what they said about themselves, the buttons, the confirmation of a removal, the address step of the first pairing, the pairing
|
|
4
|
+
* message and the texts that replace it once the code was used or expired. Everything here takes the facts in and gives text and
|
|
5
|
+
* button data out, so the first render and every re-render can never drift apart, and the callback data is checked for Telegram's
|
|
6
|
+
* 64-byte cap in one place.
|
|
7
|
+
*
|
|
8
|
+
* Buttons carry the registry revision AND the runner's position in the WHOLE list (`rnr_<rev>_<i>_<action>`): a keyboard left in the
|
|
9
|
+
* history acts on the list it was drawn from or is refused, never on a neighbour that moved up — whichever page it stands on.
|
|
10
|
+
*
|
|
11
|
+
* The text is BOUNDED: Telegram refuses a message over 4096 characters, and what a machine reports about itself (CPU model, capability
|
|
12
|
+
* details) has no length of its own, so every reported string is clipped and the machines are split over pages of at most
|
|
13
|
+
* {@link maxScreenTextChars}. A page holds at least one machine; a list that fits is one page with no navigation.
|
|
14
|
+
*/
|
|
15
|
+
import type { Translate } from '../i18n';
|
|
16
|
+
import { type RunnerProbe } from '../remoteRun/probe';
|
|
17
|
+
import type { PairedRunner } from '../runners/hubRegistry';
|
|
18
|
+
import type { RunnerJobsStop } from '../runners/runnerRemoval';
|
|
19
|
+
/** Telegram refuses callback data over 64 BYTES. */
|
|
20
|
+
export declare const maxCallbackDataBytes = 64;
|
|
21
|
+
/** The most characters a screen's text may have: Telegram's limit is 4096, the rest is the margin for the title, notes and the page line. */
|
|
22
|
+
export declare const maxScreenTextChars = 3600;
|
|
23
|
+
/** The longest a string a machine reported about itself (CPU model, a capability's detail, its OS name) is shown. */
|
|
24
|
+
export declare const maxReportedTextChars = 80;
|
|
25
|
+
export declare const runnersCallbackPrefix = "rnr_";
|
|
26
|
+
export declare const runnersPairCallback = "rnr_pair";
|
|
27
|
+
export declare const runnersRefreshCallback = "rnr_refresh";
|
|
28
|
+
export declare const runnersAddressUseCallback = "rnr_aduse";
|
|
29
|
+
export declare const runnersAddressOtherCallback = "rnr_adother";
|
|
30
|
+
/** Matches `rnr_pg_<page>` (0-based): a view change that acts on nothing, so it carries no revision. */
|
|
31
|
+
export declare const runnersPageCallbackRe: RegExp;
|
|
32
|
+
/** What a button next to a runner does. `remove` asks; `removeYes` / `removeNo` answer the question. */
|
|
33
|
+
export type RunnerAction = 'pause' | 'resume' | 'remove' | 'removeYes' | 'removeNo';
|
|
34
|
+
/** Matches `rnr_<rev>_<index>_<action code>`. */
|
|
35
|
+
export declare const runnerActionCallbackRe: RegExp;
|
|
36
|
+
export type RunnersCallback = {
|
|
37
|
+
kind: 'pair';
|
|
38
|
+
} | {
|
|
39
|
+
kind: 'refresh';
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'addressUse';
|
|
42
|
+
} | {
|
|
43
|
+
kind: 'addressOther';
|
|
44
|
+
} | {
|
|
45
|
+
kind: 'page';
|
|
46
|
+
page: number;
|
|
47
|
+
} | {
|
|
48
|
+
kind: 'runner';
|
|
49
|
+
revision: number;
|
|
50
|
+
index: number;
|
|
51
|
+
action: RunnerAction;
|
|
52
|
+
};
|
|
53
|
+
export declare function buildRunnersPageCallback(page: number): string;
|
|
54
|
+
export declare function buildRunnerActionCallback(revision: number, index: number, action: RunnerAction): string;
|
|
55
|
+
/** @description Read a button's callback data; `null` when it is not one of this screen's. */
|
|
56
|
+
export declare function parseRunnersCallback(data: string): RunnersCallback | null;
|
|
57
|
+
export interface ScreenButton {
|
|
58
|
+
text: string;
|
|
59
|
+
data: string;
|
|
60
|
+
}
|
|
61
|
+
/** @name RunnersScreen @description Text and keyboard rows of one render. */
|
|
62
|
+
export interface RunnersScreen {
|
|
63
|
+
text: string;
|
|
64
|
+
rows: ScreenButton[][];
|
|
65
|
+
}
|
|
66
|
+
/** @name RunnersListScreen @description The list as one page: which of how many it is. */
|
|
67
|
+
export interface RunnersListScreen extends RunnersScreen {
|
|
68
|
+
/** 0-based, clamped into the list that exists. */
|
|
69
|
+
page: number;
|
|
70
|
+
pageCount: number;
|
|
71
|
+
}
|
|
72
|
+
/** @name RunnerScreenEntry @description One paired machine and everything known of it right now. */
|
|
73
|
+
export interface RunnerScreenEntry {
|
|
74
|
+
runner: PairedRunner;
|
|
75
|
+
isOnline: boolean;
|
|
76
|
+
/** The last time the hub knew the link alive; `null` = never connected. */
|
|
77
|
+
lastSeenMs: number | null;
|
|
78
|
+
/** The live probe while online, else the last snapshot taken when the machine was seen; `null` = never probed. */
|
|
79
|
+
probe: RunnerProbe | null;
|
|
80
|
+
}
|
|
81
|
+
export interface RunnersScreenModel {
|
|
82
|
+
/** The registry revision the keyboard is built from. */
|
|
83
|
+
revision: number;
|
|
84
|
+
entries: readonly RunnerScreenEntry[];
|
|
85
|
+
/** When each pairing code that is still open expires. */
|
|
86
|
+
openPairingExpiries: readonly number[];
|
|
87
|
+
/** A probe is running: the screen says so, and is re-rendered when it ends. */
|
|
88
|
+
isChecking: boolean;
|
|
89
|
+
}
|
|
90
|
+
/** @description Formats an instant for the operator (`1 Nov 14:02`) in the bot's timezone and the topic's language. */
|
|
91
|
+
export type FormatTime = (epochMs: number) => string;
|
|
92
|
+
/** @description `text` as a string a machine reported: no longer than {@link maxReportedTextChars}, cut with an ellipsis. */
|
|
93
|
+
export declare function clipReportedText(text: string): string;
|
|
94
|
+
/**
|
|
95
|
+
* @description Split the entry blocks over pages: each page takes blocks while the text stays within `budget` characters (blocks joined by
|
|
96
|
+
* a blank line), and at least one block, so a block over the budget alone still has a page. Returns each page's first block and the
|
|
97
|
+
* block after its last.
|
|
98
|
+
*/
|
|
99
|
+
export declare function paginateBlocks(blocks: readonly string[], budget: number): Array<{
|
|
100
|
+
start: number;
|
|
101
|
+
end: number;
|
|
102
|
+
}>;
|
|
103
|
+
/**
|
|
104
|
+
* @description The list screen, page `page` (0-based; a page past the end is the last): the machines on it, a button to pair another, a
|
|
105
|
+
* Pause/Resume and a Remove per machine on the page, the page buttons when there is more than one page, Refresh.
|
|
106
|
+
*/
|
|
107
|
+
export declare function buildRunnersScreen(model: RunnersScreenModel, t: Translate, formatTime: FormatTime, page?: number): RunnersListScreen;
|
|
108
|
+
/**
|
|
109
|
+
* @description The message that says what a removal came to: the key is deleted in every case, and the jobs were stopped from the hub, or the
|
|
110
|
+
* machine was offline (it stops them itself once it finds out), or they could not be stopped from here (it does the same). Three outcomes,
|
|
111
|
+
* three texts — «offline» is not what «failed» means.
|
|
112
|
+
*/
|
|
113
|
+
export declare function buildRemovalOutcomeText(runnerName: string, jobs: RunnerJobsStop, t: Translate): string;
|
|
114
|
+
/** @description The question a Remove button turns the screen into. */
|
|
115
|
+
export declare function buildRemoveConfirmation(runnerName: string, revision: number, index: number, t: Translate): RunnersScreen;
|
|
116
|
+
/**
|
|
117
|
+
* @description The address step of the first pairing. With a proposal (an address of this machine that answered with its own
|
|
118
|
+
* sshd) it offers «Use …» and «Enter another address»; without one only the second, and says no address was found.
|
|
119
|
+
*/
|
|
120
|
+
export declare function buildAddressStep(proposedAddress: string | null, t: Translate): RunnersScreen;
|
|
121
|
+
/** @description The pairing message's text parts: what stands above the line and below it. The line itself sits between them. */
|
|
122
|
+
export declare function buildPairingMessageParts(pairingLifetimeMinutes: number, t: Translate): {
|
|
123
|
+
intro: string;
|
|
124
|
+
outro: string;
|
|
125
|
+
};
|
|
126
|
+
/** @description What the pairing message becomes once the code was used. */
|
|
127
|
+
export declare function buildPairedText(runnerName: string, pairedAtMs: number, t: Translate, formatTime: FormatTime): string;
|
|
128
|
+
/** @description What the pairing message becomes once the code expired unused. */
|
|
129
|
+
export declare function buildExpiredText(t: Translate): string;
|
|
130
|
+
//# sourceMappingURL=runnersScreenPlan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runnersScreenPlan.d.ts","sourceRoot":"","sources":["../../src/utils/runnersScreenPlan.ts"],"names":[],"mappings":"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"}
|