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
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Which conversations share a project board (D15, D16, D57) — automatic by repository:
|
|
3
|
+
*
|
|
4
|
+
* a Telegram topic → its bound folder's git repository, by ROOT COMMIT (remote names differ between checkouts,
|
|
5
|
+
* worktrees share it); a folder that is not a git checkout is a project of its own folder —
|
|
6
|
+
* so two topics on one folder are always together
|
|
7
|
+
* a Jira conversation → the repository NAMES its `jira.json` project lists (`repos`); conversations of projects
|
|
8
|
+
* that share a name are one board, and a topic whose repository folder has that name joins
|
|
9
|
+
* it; projects without `repos` all share one board per instance
|
|
10
|
+
* a topic's override → "join the project of topic X" or "own project" (`state.json` `todoProjectOverrides`)
|
|
11
|
+
*
|
|
12
|
+
* The grouping is a union-find over keys each conversation holds; a topic's repository NAME joins the union only
|
|
13
|
+
* when some Jira conversation names it, so two unrelated repositories that happen to share a folder name never meet.
|
|
14
|
+
*/
|
|
15
|
+
/** How long a folder's repository is trusted before git is asked again (a folder may become a checkout, or move). */
|
|
16
|
+
export declare const repositoryIdentityTtlMs: number;
|
|
17
|
+
/** A read that failed (git missing, slow, the folder gone) is tried again this soon — a project must not split for long. */
|
|
18
|
+
export declare const failedRepositoryReadRetryMs: number;
|
|
19
|
+
/** @name RepositoryIdentity @description What makes two folders one repository, and what it is called. */
|
|
20
|
+
export interface RepositoryIdentity {
|
|
21
|
+
/** The first (sorted) root commit — the same in every clone and worktree. */
|
|
22
|
+
rootCommit: string;
|
|
23
|
+
/** The main repository's folder name (a worktree's or a submodule's repository, not the worktree's own folder). */
|
|
24
|
+
repositoryName: string;
|
|
25
|
+
}
|
|
26
|
+
/** @name TodoProjectOverride @description A topic's choice in the project picker; absent = automatic. */
|
|
27
|
+
export type TodoProjectOverride = {
|
|
28
|
+
kind: 'own';
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'join';
|
|
31
|
+
conversationKey: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* @name TodoProjectMember
|
|
35
|
+
* @description A conversation as the grouping sees it. `workDir` = a topic's bound folder (absolute); a Jira
|
|
36
|
+
* conversation carries `jiraRepositoryNames` instead (`null` = its project lists no `repos`).
|
|
37
|
+
*/
|
|
38
|
+
export interface TodoProjectMember {
|
|
39
|
+
conversationKey: string;
|
|
40
|
+
workDir: string | null;
|
|
41
|
+
identity: RepositoryIdentity | null;
|
|
42
|
+
jiraRepositoryNames?: readonly string[] | null;
|
|
43
|
+
}
|
|
44
|
+
/** @name TodoProject @description One board: its name, its members in binding order, and how it was formed. */
|
|
45
|
+
export interface TodoProject {
|
|
46
|
+
name: string;
|
|
47
|
+
memberKeys: string[];
|
|
48
|
+
}
|
|
49
|
+
/** @description Run git in `workDir` within `timeoutMs`; its trimmed stdout, or `null` when it failed or ran too long. */
|
|
50
|
+
export type RunGit = (workDir: string, args: readonly string[], timeoutMs: number) => Promise<string | null>;
|
|
51
|
+
/** @description The real git. */
|
|
52
|
+
export declare const runGitInFolder: RunGit;
|
|
53
|
+
/** @description The repository's own folder name from git's common dir (`…/repo/.git`, a submodule's `…/modules/repo`, a bare `repo.git`). */
|
|
54
|
+
export declare function getRepositoryNameFromCommonDir(commonDir: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* @name RepositoryRootCommitStore
|
|
57
|
+
* @description Where the root commits outlive the process, by git common dir: the LAST KNOWN answer, at once after a
|
|
58
|
+
* restart while the process walks the history again (the one slow read) — a rewritten history changes it.
|
|
59
|
+
*/
|
|
60
|
+
export interface RepositoryRootCommitStore {
|
|
61
|
+
load(): Record<string, string>;
|
|
62
|
+
save(rootCommits: Readonly<Record<string, string>>): void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @description The root commits kept in `<todosDir>/repositories.json`. It is a cache: an unreadable file is logged
|
|
66
|
+
* and read as empty (the next walk rewrites it).
|
|
67
|
+
*/
|
|
68
|
+
export declare function createRepositoryRootCommitFile(todosDir: string, logWarning?: (line: string) => void): RepositoryRootCommitStore;
|
|
69
|
+
/** @name RepositoryIdentityReaderDeps @description Git, the clock, where a warning goes and where root commits persist. */
|
|
70
|
+
export interface RepositoryIdentityReaderDeps {
|
|
71
|
+
runGit: RunGit;
|
|
72
|
+
getNowMs?: () => number;
|
|
73
|
+
logWarning?: (line: string) => void;
|
|
74
|
+
rootCommitStore?: RepositoryRootCommitStore;
|
|
75
|
+
}
|
|
76
|
+
/** @name RepositoryIdentityReader @description A folder's repository: waited for, or only what is known now. */
|
|
77
|
+
export interface RepositoryIdentityReader {
|
|
78
|
+
/** The folder's repository (`null` = none, or git failed), asking git when the cached read is stale; a read in progress is shared. */
|
|
79
|
+
read(workDir: string): Promise<RepositoryIdentity | null>;
|
|
80
|
+
/**
|
|
81
|
+
* What is known NOW, never waiting for git: the last read's answer — kept past its TTL while a refresh runs in the
|
|
82
|
+
* background — or `undefined` when the folder was never read (a read starts).
|
|
83
|
+
*/
|
|
84
|
+
peek(workDir: string): RepositoryIdentity | null | undefined;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @description A reader of folders' repository identities. Two cheap-to-expensive steps, cached apart: a folder's
|
|
88
|
+
* git common dir (`git rev-parse --git-common-dir`, resolved against the folder — no `--path-format`, which needs git
|
|
89
|
+
* 2.31) for {@link repositoryIdentityTtlMs}, and the repository's root commit by its common dir: the history walk
|
|
90
|
+
* runs once per repository and process, shared by every folder of it. With a {@link RepositoryRootCommitStore}, the
|
|
91
|
+
* root commit a previous process walked answers at once while this process walks again in the background — a
|
|
92
|
+
* rewritten history (or a folder re-initialised at the same path) is corrected by the next process, and logged.
|
|
93
|
+
* Two reads of one folder at once share one git run. A failed read is tried again after
|
|
94
|
+
* {@link failedRepositoryReadRetryMs}, and a failure on a folder that IS a checkout (it has `.git`) is logged once.
|
|
95
|
+
*/
|
|
96
|
+
export declare function createRepositoryIdentityReader(deps: RepositoryIdentityReaderDeps): RepositoryIdentityReader;
|
|
97
|
+
/**
|
|
98
|
+
* @description Group `members` (in binding order) into projects. `overrides` by conversation key; an override that
|
|
99
|
+
* names a conversation not among the members falls back to automatic.
|
|
100
|
+
*/
|
|
101
|
+
export declare function groupTodoProjects(members: readonly TodoProjectMember[], overrides: Readonly<Record<string, TodoProjectOverride>>): TodoProject[];
|
|
102
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/todos/projects.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;GAaG;AAEH,qHAAqH;AACrH,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD,4HAA4H;AAC5H,eAAO,MAAM,2BAA2B,QAAY,CAAC;AAYrD,0GAA0G;AAC1G,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,mHAAmH;IACnH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,yGAAyG;AACzG,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAChD;AAED,+GAA+G;AAC/G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,0HAA0H;AAC1H,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAI7G,iCAAiC;AACjC,eAAO,MAAM,cAAc,EAAE,MAO5B,CAAC;AAEF,8IAA8I;AAC9I,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIxE;AAaD;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;CAC3D;AAOD;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAmC,GAAG,yBAAyB,CAwB7J;AAED,2HAA2H;AAC3H,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAED,gHAAgH;AAChH,MAAM,WAAW,wBAAwB;IACvC,sIAAsI;IACtI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAC1D;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9D;AAWD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,4BAA4B,GAAG,wBAAwB,CAsH3G;AA2BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,GAAG,WAAW,EAAE,CAsChJ"}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runGitInFolder = exports.failedRepositoryReadRetryMs = exports.repositoryIdentityTtlMs = void 0;
|
|
37
|
+
exports.getRepositoryNameFromCommonDir = getRepositoryNameFromCommonDir;
|
|
38
|
+
exports.createRepositoryRootCommitFile = createRepositoryRootCommitFile;
|
|
39
|
+
exports.createRepositoryIdentityReader = createRepositoryIdentityReader;
|
|
40
|
+
exports.groupTodoProjects = groupTodoProjects;
|
|
41
|
+
const child_process_1 = require("child_process");
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const util_1 = require("util");
|
|
45
|
+
const zod_1 = require("zod");
|
|
46
|
+
const configDirFile_1 = require("../configDirFile");
|
|
47
|
+
/**
|
|
48
|
+
* @description Which conversations share a project board (D15, D16, D57) — automatic by repository:
|
|
49
|
+
*
|
|
50
|
+
* a Telegram topic → its bound folder's git repository, by ROOT COMMIT (remote names differ between checkouts,
|
|
51
|
+
* worktrees share it); a folder that is not a git checkout is a project of its own folder —
|
|
52
|
+
* so two topics on one folder are always together
|
|
53
|
+
* a Jira conversation → the repository NAMES its `jira.json` project lists (`repos`); conversations of projects
|
|
54
|
+
* that share a name are one board, and a topic whose repository folder has that name joins
|
|
55
|
+
* it; projects without `repos` all share one board per instance
|
|
56
|
+
* a topic's override → "join the project of topic X" or "own project" (`state.json` `todoProjectOverrides`)
|
|
57
|
+
*
|
|
58
|
+
* The grouping is a union-find over keys each conversation holds; a topic's repository NAME joins the union only
|
|
59
|
+
* when some Jira conversation names it, so two unrelated repositories that happen to share a folder name never meet.
|
|
60
|
+
*/
|
|
61
|
+
/** How long a folder's repository is trusted before git is asked again (a folder may become a checkout, or move). */
|
|
62
|
+
exports.repositoryIdentityTtlMs = 10 * 60 * 1000;
|
|
63
|
+
/** A read that failed (git missing, slow, the folder gone) is tried again this soon — a project must not split for long. */
|
|
64
|
+
exports.failedRepositoryReadRetryMs = 30 * 1000;
|
|
65
|
+
/** `git rev-parse` answers at once; a longer one is abandoned. */
|
|
66
|
+
const gitQuickQueryTimeoutMs = 5000;
|
|
67
|
+
/** `git rev-list --max-parents=0` walks the whole history: a large repository needs longer, once per process. */
|
|
68
|
+
const gitHistoryQueryTimeoutMs = 30 * 1000;
|
|
69
|
+
const gitDirName = '.git';
|
|
70
|
+
const gitDirSuffix = '.git';
|
|
71
|
+
/** The board every Jira conversation of a project without `repos` shares. */
|
|
72
|
+
const sharedJiraBoardKey = 'jira:shared';
|
|
73
|
+
/** The name of a project none of whose members has a folder name (only such Jira conversations). */
|
|
74
|
+
const unnamedJiraProjectName = 'jira';
|
|
75
|
+
const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
76
|
+
/** @description The real git. */
|
|
77
|
+
const runGitInFolder = async (workDir, args, timeoutMs) => {
|
|
78
|
+
try {
|
|
79
|
+
const { stdout } = await execFileAsync('git', ['-C', workDir, ...args], { timeout: timeoutMs, encoding: 'utf8' });
|
|
80
|
+
return stdout.trim();
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
exports.runGitInFolder = runGitInFolder;
|
|
87
|
+
/** @description The repository's own folder name from git's common dir (`…/repo/.git`, a submodule's `…/modules/repo`, a bare `repo.git`). */
|
|
88
|
+
function getRepositoryNameFromCommonDir(commonDir) {
|
|
89
|
+
const baseName = path.basename(commonDir);
|
|
90
|
+
if (baseName === gitDirName)
|
|
91
|
+
return path.basename(path.dirname(commonDir));
|
|
92
|
+
return baseName.endsWith(gitDirSuffix) ? baseName.slice(0, -gitDirSuffix.length) : baseName;
|
|
93
|
+
}
|
|
94
|
+
/** @description Whether a cached read still stands: a success for `ttlMs`, a failure only for the short retry window. */
|
|
95
|
+
function checkIsReadFresh(cached, nowMs, ttlMs) {
|
|
96
|
+
return cached !== undefined && nowMs - cached.readAt < (cached.value === null ? exports.failedRepositoryReadRetryMs : ttlMs);
|
|
97
|
+
}
|
|
98
|
+
/** The root commits' file under the store's directory (`DATA_DIR/todos`). */
|
|
99
|
+
const rootCommitFileName = 'repositories.json';
|
|
100
|
+
const rootCommitFileMode = 0o600;
|
|
101
|
+
const rootCommitFileSchema = zod_1.z.object({ version: zod_1.z.literal(1), rootCommits: zod_1.z.record(zod_1.z.string(), zod_1.z.string()) });
|
|
102
|
+
/**
|
|
103
|
+
* @description The root commits kept in `<todosDir>/repositories.json`. It is a cache: an unreadable file is logged
|
|
104
|
+
* and read as empty (the next walk rewrites it).
|
|
105
|
+
*/
|
|
106
|
+
function createRepositoryRootCommitFile(todosDir, logWarning = (line) => console.warn(line)) {
|
|
107
|
+
const filePath = path.join(todosDir, rootCommitFileName);
|
|
108
|
+
return {
|
|
109
|
+
load() {
|
|
110
|
+
let text;
|
|
111
|
+
try {
|
|
112
|
+
text = fs.readFileSync(filePath, 'utf8');
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
if (e instanceof Error && 'code' in e && e.code === 'ENOENT')
|
|
116
|
+
return {};
|
|
117
|
+
logWarning(`[todos] ${filePath} could not be read (${e instanceof Error ? e.message : String(e)}); the repositories' first commits are read from git again`);
|
|
118
|
+
return {};
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
return rootCommitFileSchema.parse(JSON.parse(text)).rootCommits;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
logWarning(`[todos] ${filePath} is unreadable; the repositories' first commits are read from git again`);
|
|
125
|
+
return {};
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
save(rootCommits) {
|
|
129
|
+
fs.mkdirSync(todosDir, { recursive: true, mode: 0o700 });
|
|
130
|
+
(0, configDirFile_1.writeJsonFileAtomically)(filePath, { version: 1, rootCommits }, rootCommitFileMode);
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* @description A reader of folders' repository identities. Two cheap-to-expensive steps, cached apart: a folder's
|
|
136
|
+
* git common dir (`git rev-parse --git-common-dir`, resolved against the folder — no `--path-format`, which needs git
|
|
137
|
+
* 2.31) for {@link repositoryIdentityTtlMs}, and the repository's root commit by its common dir: the history walk
|
|
138
|
+
* runs once per repository and process, shared by every folder of it. With a {@link RepositoryRootCommitStore}, the
|
|
139
|
+
* root commit a previous process walked answers at once while this process walks again in the background — a
|
|
140
|
+
* rewritten history (or a folder re-initialised at the same path) is corrected by the next process, and logged.
|
|
141
|
+
* Two reads of one folder at once share one git run. A failed read is tried again after
|
|
142
|
+
* {@link failedRepositoryReadRetryMs}, and a failure on a folder that IS a checkout (it has `.git`) is logged once.
|
|
143
|
+
*/
|
|
144
|
+
function createRepositoryIdentityReader(deps) {
|
|
145
|
+
const { runGit, getNowMs = Date.now, logWarning = (line) => console.warn(line), rootCommitStore } = deps;
|
|
146
|
+
const commonDirs = new Map();
|
|
147
|
+
/** The root commits THIS process walked, by common dir (a failure is kept for the retry window). */
|
|
148
|
+
const walkedRootCommits = new Map();
|
|
149
|
+
/** Every root commit known by common dir — the store's, then this process's walks; what the store gets back. */
|
|
150
|
+
let knownRootCommits = null;
|
|
151
|
+
const lastIdentities = new Map();
|
|
152
|
+
const readsInProgress = new Map();
|
|
153
|
+
const walksInProgress = new Map();
|
|
154
|
+
const warnedFolders = new Set();
|
|
155
|
+
function getKnownRootCommits() {
|
|
156
|
+
knownRootCommits ??= new Map(Object.entries(rootCommitStore?.load() ?? {}));
|
|
157
|
+
return knownRootCommits;
|
|
158
|
+
}
|
|
159
|
+
function storeRootCommits() {
|
|
160
|
+
if (!rootCommitStore)
|
|
161
|
+
return;
|
|
162
|
+
try {
|
|
163
|
+
rootCommitStore.save(Object.fromEntries(getKnownRootCommits()));
|
|
164
|
+
}
|
|
165
|
+
catch (e) {
|
|
166
|
+
logWarning(`[todos] the repositories' first commits could not be stored: ${e instanceof Error ? e.message : String(e)}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function warnOnceIfCheckout(workDir, what) {
|
|
170
|
+
if (warnedFolders.has(workDir) || !fs.existsSync(path.join(workDir, gitDirName)))
|
|
171
|
+
return;
|
|
172
|
+
warnedFolders.add(workDir);
|
|
173
|
+
logWarning(`[todos] git could not read ${what} of ${workDir}: its topic is a project of its own until it can`);
|
|
174
|
+
}
|
|
175
|
+
function getKnownIdentity(workDir) {
|
|
176
|
+
const nowMs = getNowMs();
|
|
177
|
+
const commonDir = commonDirs.get(workDir);
|
|
178
|
+
if (!checkIsReadFresh(commonDir, nowMs, exports.repositoryIdentityTtlMs))
|
|
179
|
+
return { kind: 'due', lastIdentity: lastIdentities.get(workDir) };
|
|
180
|
+
if (commonDir.value === null)
|
|
181
|
+
return { kind: 'fresh', identity: null };
|
|
182
|
+
const walked = walkedRootCommits.get(commonDir.value);
|
|
183
|
+
const isWalked = checkIsReadFresh(walked, nowMs, Number.POSITIVE_INFINITY);
|
|
184
|
+
// A walk that failed leaves the last known root in place: a slow or broken git never splits a known repository.
|
|
185
|
+
const rootCommit = walked?.value ?? getKnownRootCommits().get(commonDir.value) ?? null;
|
|
186
|
+
const identity = rootCommit === null ? null : { rootCommit, repositoryName: getRepositoryNameFromCommonDir(commonDir.value) };
|
|
187
|
+
if (isWalked)
|
|
188
|
+
return { kind: 'fresh', identity };
|
|
189
|
+
return identity === null ? { kind: 'due', lastIdentity: lastIdentities.get(workDir) } : { kind: 'stored', identity };
|
|
190
|
+
}
|
|
191
|
+
/** The history walk of one repository, shared by its folders while it runs. */
|
|
192
|
+
function walkRootCommit(commonDir, workDir) {
|
|
193
|
+
const inProgress = walksInProgress.get(commonDir);
|
|
194
|
+
if (inProgress)
|
|
195
|
+
return inProgress;
|
|
196
|
+
const walk = (async () => {
|
|
197
|
+
const roots = await runGit(workDir, ['rev-list', '--max-parents=0', 'HEAD'], gitHistoryQueryTimeoutMs);
|
|
198
|
+
const firstRoot = roots?.split('\n').map((line) => line.trim()).filter((line) => line !== '').sort()[0] ?? null;
|
|
199
|
+
walkedRootCommits.set(commonDir, { value: firstRoot, readAt: getNowMs() });
|
|
200
|
+
if (firstRoot === null) {
|
|
201
|
+
warnOnceIfCheckout(workDir, 'the first commit');
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const previous = getKnownRootCommits().get(commonDir);
|
|
205
|
+
if (previous === firstRoot)
|
|
206
|
+
return;
|
|
207
|
+
if (previous !== undefined)
|
|
208
|
+
logWarning(`[todos] the first commit of ${commonDir} changed (its history was rewritten): its topics are grouped by the new one`);
|
|
209
|
+
getKnownRootCommits().set(commonDir, firstRoot);
|
|
210
|
+
storeRootCommits();
|
|
211
|
+
})().finally(() => walksInProgress.delete(commonDir));
|
|
212
|
+
walksInProgress.set(commonDir, walk);
|
|
213
|
+
return walk;
|
|
214
|
+
}
|
|
215
|
+
async function readFromGit(workDir) {
|
|
216
|
+
let commonDir = commonDirs.get(workDir);
|
|
217
|
+
if (!checkIsReadFresh(commonDir, getNowMs(), exports.repositoryIdentityTtlMs)) {
|
|
218
|
+
const output = await runGit(workDir, ['rev-parse', '--git-common-dir'], gitQuickQueryTimeoutMs);
|
|
219
|
+
commonDir = { value: output ? path.resolve(workDir, output) : null, readAt: getNowMs() };
|
|
220
|
+
commonDirs.set(workDir, commonDir);
|
|
221
|
+
if (commonDir.value === null)
|
|
222
|
+
warnOnceIfCheckout(workDir, 'the repository');
|
|
223
|
+
}
|
|
224
|
+
if (commonDir.value !== null && !checkIsReadFresh(walkedRootCommits.get(commonDir.value), getNowMs(), Number.POSITIVE_INFINITY)) {
|
|
225
|
+
const repositoryDir = commonDir.value;
|
|
226
|
+
const walk = walkRootCommit(repositoryDir, workDir);
|
|
227
|
+
// A stored root answers now; the walk corrects it in the background.
|
|
228
|
+
if (getKnownRootCommits().has(repositoryDir)) {
|
|
229
|
+
void walk.catch((e) => logWarning(`[todos] the history of ${repositoryDir} could not be walked: ${e instanceof Error ? e.message : String(e)}`));
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
await walk;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
const known = getKnownIdentity(workDir);
|
|
236
|
+
const identity = known.kind === 'due' ? null : known.identity;
|
|
237
|
+
lastIdentities.set(workDir, identity);
|
|
238
|
+
return identity;
|
|
239
|
+
}
|
|
240
|
+
function startRead(workDir) {
|
|
241
|
+
const inProgress = readsInProgress.get(workDir);
|
|
242
|
+
if (inProgress)
|
|
243
|
+
return inProgress;
|
|
244
|
+
const started = readFromGit(workDir).finally(() => readsInProgress.delete(workDir));
|
|
245
|
+
readsInProgress.set(workDir, started);
|
|
246
|
+
return started;
|
|
247
|
+
}
|
|
248
|
+
function startReadInBackground(workDir) {
|
|
249
|
+
void startRead(workDir).catch((e) => logWarning(`[todos] the repository of ${workDir} could not be read: ${e instanceof Error ? e.message : String(e)}`));
|
|
250
|
+
}
|
|
251
|
+
return {
|
|
252
|
+
read(workDir) {
|
|
253
|
+
const known = getKnownIdentity(workDir);
|
|
254
|
+
if (known.kind === 'due')
|
|
255
|
+
return startRead(workDir);
|
|
256
|
+
lastIdentities.set(workDir, known.identity);
|
|
257
|
+
if (known.kind === 'stored')
|
|
258
|
+
startReadInBackground(workDir);
|
|
259
|
+
return Promise.resolve(known.identity);
|
|
260
|
+
},
|
|
261
|
+
peek(workDir) {
|
|
262
|
+
const known = getKnownIdentity(workDir);
|
|
263
|
+
if (known.kind !== 'fresh')
|
|
264
|
+
startReadInBackground(workDir);
|
|
265
|
+
return known.kind === 'due' ? known.lastIdentity : known.identity;
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/** @description The keys that put a conversation into a union, before overrides. */
|
|
270
|
+
function getAutomaticKeys(member, jiraNames) {
|
|
271
|
+
if (member.jiraRepositoryNames !== undefined) {
|
|
272
|
+
return member.jiraRepositoryNames === null || member.jiraRepositoryNames.length === 0
|
|
273
|
+
? [sharedJiraBoardKey]
|
|
274
|
+
: member.jiraRepositoryNames.map((name) => `name:${name}`);
|
|
275
|
+
}
|
|
276
|
+
if (member.identity) {
|
|
277
|
+
const nameKey = `name:${member.identity.repositoryName}`;
|
|
278
|
+
return [`root:${member.identity.rootCommit}`, ...(jiraNames.has(nameKey) ? [nameKey] : [])];
|
|
279
|
+
}
|
|
280
|
+
return member.workDir === null ? [] : [`folder:${member.workDir}`];
|
|
281
|
+
}
|
|
282
|
+
/** @description What a project is called: its first member's repository folder name (D16). */
|
|
283
|
+
function getProjectName(members) {
|
|
284
|
+
for (const member of members) {
|
|
285
|
+
if (member.identity)
|
|
286
|
+
return member.identity.repositoryName;
|
|
287
|
+
if (member.workDir !== null)
|
|
288
|
+
return path.basename(member.workDir);
|
|
289
|
+
const [firstName] = member.jiraRepositoryNames ?? [];
|
|
290
|
+
if (firstName !== undefined)
|
|
291
|
+
return firstName;
|
|
292
|
+
}
|
|
293
|
+
return unnamedJiraProjectName;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* @description Group `members` (in binding order) into projects. `overrides` by conversation key; an override that
|
|
297
|
+
* names a conversation not among the members falls back to automatic.
|
|
298
|
+
*/
|
|
299
|
+
function groupTodoProjects(members, overrides) {
|
|
300
|
+
const memberKeys = new Set(members.map((member) => member.conversationKey));
|
|
301
|
+
const jiraNames = new Set(members.flatMap((member) => (member.jiraRepositoryNames ?? []).map((name) => `name:${name}`)));
|
|
302
|
+
const parents = new Map();
|
|
303
|
+
const find = (node) => {
|
|
304
|
+
let root = node;
|
|
305
|
+
while (parents.get(root) !== undefined && parents.get(root) !== root)
|
|
306
|
+
root = parents.get(root) ?? root;
|
|
307
|
+
parents.set(node, root);
|
|
308
|
+
return root;
|
|
309
|
+
};
|
|
310
|
+
const union = (left, right) => {
|
|
311
|
+
const leftRoot = find(left);
|
|
312
|
+
const rightRoot = find(right);
|
|
313
|
+
if (leftRoot !== rightRoot)
|
|
314
|
+
parents.set(rightRoot, leftRoot);
|
|
315
|
+
};
|
|
316
|
+
for (const member of members) {
|
|
317
|
+
const selfNode = `self:${member.conversationKey}`;
|
|
318
|
+
parents.set(selfNode, parents.get(selfNode) ?? selfNode);
|
|
319
|
+
const override = overrides[member.conversationKey];
|
|
320
|
+
if (override?.kind === 'own')
|
|
321
|
+
continue;
|
|
322
|
+
if (override?.kind === 'join' && memberKeys.has(override.conversationKey) && override.conversationKey !== member.conversationKey) {
|
|
323
|
+
union(`self:${override.conversationKey}`, selfNode);
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
for (const key of getAutomaticKeys(member, jiraNames)) {
|
|
327
|
+
if (!parents.has(key))
|
|
328
|
+
parents.set(key, key);
|
|
329
|
+
union(key, selfNode);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
const projects = new Map();
|
|
333
|
+
for (const member of members) {
|
|
334
|
+
const root = find(`self:${member.conversationKey}`);
|
|
335
|
+
projects.set(root, [...(projects.get(root) ?? []), member]);
|
|
336
|
+
}
|
|
337
|
+
return [...projects.values()].map((projectMembers) => ({
|
|
338
|
+
name: getProjectName(projectMembers),
|
|
339
|
+
memberKeys: projectMembers.map((member) => member.conversationKey),
|
|
340
|
+
}));
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/todos/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type SessionKey } from '../sessionKey';
|
|
2
|
+
import { type TodoUpdateArgs } from './merge';
|
|
3
|
+
import { type TodoReminderDecision, type TodoStandaloneGate } from './nag';
|
|
4
|
+
import type { TodoStore } from './store';
|
|
5
|
+
import type { TodoTopicFile } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* @description The todo registry's agent-facing service: what `todo_update` and `todo_read` do and answer, and the
|
|
8
|
+
* hint a `final` answer gets while the list still shows work in progress (D8). Platform-neutral — a Telegram topic
|
|
9
|
+
* and a Jira issue publish alike; the MCP surface only routes the conversation its token names here.
|
|
10
|
+
*/
|
|
11
|
+
/** The most closed items `todo_read`'s history returns (D5). */
|
|
12
|
+
export declare const todoHistoryMaxItems = 50;
|
|
13
|
+
/** What `todo_read` reads: the conversation's own list, or its project's whole board. */
|
|
14
|
+
export declare const todoReadScopes: readonly ["own", "project"];
|
|
15
|
+
export type TodoReadScope = (typeof todoReadScopes)[number];
|
|
16
|
+
/** @name TodoReadArgs @description A `todo_read` call: the own list (optionally with its history) or the project board. */
|
|
17
|
+
export interface TodoReadArgs {
|
|
18
|
+
scope?: TodoReadScope;
|
|
19
|
+
includeHistory?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** @description What a `todo_*` tool answers. */
|
|
22
|
+
export type TodoToolOutcome = {
|
|
23
|
+
ok: true;
|
|
24
|
+
message: string;
|
|
25
|
+
} | {
|
|
26
|
+
ok: false;
|
|
27
|
+
error: string;
|
|
28
|
+
};
|
|
29
|
+
/** @name TodoRegistryDeps @description The file store and the clock. */
|
|
30
|
+
export interface TodoRegistryDeps {
|
|
31
|
+
store: TodoStore;
|
|
32
|
+
getNowMs: () => number;
|
|
33
|
+
}
|
|
34
|
+
/** @name TodoRegistry @description The registry's operations over the conversations' lists. */
|
|
35
|
+
export interface TodoRegistry {
|
|
36
|
+
updateTodos(key: SessionKey, args: TodoUpdateArgs): TodoToolOutcome;
|
|
37
|
+
readTodos(key: SessionKey, args: TodoReadArgs): TodoToolOutcome;
|
|
38
|
+
/** The line a `final` answer's result carries when the list was not touched during the request (D8), else `null`. */
|
|
39
|
+
getFinalAnswerNote(key: SessionKey, requestCreatedAt: number): string | null;
|
|
40
|
+
/** The conversation's stored record (the `/todo` view reads it). */
|
|
41
|
+
getTopic(key: SessionKey): TodoTopicFile;
|
|
42
|
+
/** The file store itself, for the project board that reads the peers' lists and stores what each agent saw. */
|
|
43
|
+
getStore(): TodoStore;
|
|
44
|
+
/** The session was busy for `elapsedMs` (the reminder engine's poll); kept in memory until the turn ends. */
|
|
45
|
+
addTurnWork(key: SessionKey, elapsedMs: number): void;
|
|
46
|
+
/** A turn of the conversation ended: the work is stored, and the reminder's clock starts at the first one. */
|
|
47
|
+
noteTurnEnd(key: SessionKey, nowMs: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* Form a (D11): the reminder line the next prompt carries when the list is stale, else `null`. Taking it counts as
|
|
50
|
+
* a delivered reminder.
|
|
51
|
+
*/
|
|
52
|
+
takePromptReminder(key: SessionKey, intervalMs: number | null, nowMs: number): string | null;
|
|
53
|
+
/** Form b (D12): whether a standalone reminder goes out now, and its text. */
|
|
54
|
+
decideStandaloneReminder(key: SessionKey, intervalMs: number | null, gate: TodoStandaloneGate, nowMs: number): TodoReminderDecision & {
|
|
55
|
+
text: string;
|
|
56
|
+
isStale: boolean;
|
|
57
|
+
};
|
|
58
|
+
/** A standalone reminder reached the agent. */
|
|
59
|
+
noteReminderDelivered(key: SessionKey, nowMs: number): void;
|
|
60
|
+
/** A person wrote in the conversation: the silence after ignored reminders ends (D13). */
|
|
61
|
+
notePersonActivity(key: SessionKey): void;
|
|
62
|
+
}
|
|
63
|
+
export declare function createTodoRegistry(deps: TodoRegistryDeps): TodoRegistry;
|
|
64
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/todos/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAWL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;GAIG;AAEH,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,yFAAyF;AACzF,eAAO,MAAM,cAAc,6BAA8B,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,2HAA2H;AAC3H,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3F,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB;AAED,+FAA+F;AAC/F,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,GAAG,eAAe,CAAC;IACpE,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAG,eAAe,CAAC;IAChE,qHAAqH;IACrH,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7E,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC;IACzC,+GAA+G;IAC/G,QAAQ,IAAI,SAAS,CAAC;IACtB,6GAA6G;IAC7G,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,8GAA8G;IAC9G,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD;;;OAGG;IACH,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7F,8EAA8E;IAC9E,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACzK,+CAA+C;IAC/C,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,0FAA0F;IAC1F,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3C;AAQD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CA8FvE"}
|