charness 3.6.1 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +267 -0
- package/DEVELOPMENT.md +31 -5
- package/MIGRATION_RENAME_TO_CHARNESS.md +3 -2
- package/README.md +84 -782
- package/SETUP.md +37 -10
- package/agent-plugin/.claude-plugin/plugin.json +7 -0
- package/agent-plugin/README.md +35 -0
- package/agent-plugin/skills/charness-delegate-claude/SKILL.md +85 -0
- package/agent-plugin/skills/charness-delegate-claude/summarize-events.py +90 -0
- package/agent-plugin/skills/charness-delegate-opencode/SKILL.md +68 -0
- package/agent-plugin/skills/charness-manager/SKILL.md +152 -0
- package/dist/adapters/adapterNames.d.ts +6 -0
- package/dist/adapters/adapterNames.d.ts.map +1 -1
- package/dist/adapters/adapterNames.js +8 -2
- package/dist/adapters/adapterNames.js.map +1 -1
- package/dist/adapters/claudeCliAdapter.d.ts +8 -0
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeCliAdapter.js +42 -5
- package/dist/adapters/claudeCliAdapter.js.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +10 -9
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.js +53 -55
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
- package/dist/adapters/createAdapter.d.ts +8 -0
- package/dist/adapters/createAdapter.d.ts.map +1 -1
- package/dist/adapters/createAdapter.js +14 -2
- package/dist/adapters/createAdapter.js.map +1 -1
- package/dist/adapters/openCodeAdapter.d.ts +43 -6
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/openCodeAdapter.js +95 -6
- package/dist/adapters/openCodeAdapter.js.map +1 -1
- package/dist/agentLogin/agentLogin.d.ts +1 -1
- package/dist/agentLogin/agentLogin.d.ts.map +1 -1
- package/dist/apiRetryKick.d.ts +4 -3
- package/dist/apiRetryKick.d.ts.map +1 -1
- package/dist/apiRetryKick.js +16 -9
- package/dist/apiRetryKick.js.map +1 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +1313 -381
- package/dist/bot.js.map +1 -1
- package/dist/cli/claudeProfiles.d.ts +11 -6
- package/dist/cli/claudeProfiles.d.ts.map +1 -1
- package/dist/cli/claudeProfiles.js +50 -22
- package/dist/cli/claudeProfiles.js.map +1 -1
- package/dist/cli/hot.d.ts +5 -0
- package/dist/cli/hot.d.ts.map +1 -1
- package/dist/cli/hot.js +71 -25
- package/dist/cli/hot.js.map +1 -1
- package/dist/cli/tscWatchGuard.d.ts +95 -0
- package/dist/cli/tscWatchGuard.d.ts.map +1 -0
- package/dist/cli/tscWatchGuard.js +295 -0
- package/dist/cli/tscWatchGuard.js.map +1 -0
- package/dist/cli.js +12 -1
- package/dist/cli.js.map +1 -1
- package/dist/connectors/jira/answerSink.d.ts +10 -0
- package/dist/connectors/jira/answerSink.d.ts.map +1 -1
- package/dist/connectors/jira/answerSink.js +13 -0
- package/dist/connectors/jira/answerSink.js.map +1 -1
- package/dist/connectors/jira/config.d.ts +2 -0
- package/dist/connectors/jira/config.d.ts.map +1 -1
- package/dist/connectors/jira/config.js +9 -1
- package/dist/connectors/jira/config.js.map +1 -1
- package/dist/connectors/jira/connector.d.ts +11 -1
- package/dist/connectors/jira/connector.d.ts.map +1 -1
- package/dist/connectors/jira/connector.js +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 +8 -2
- package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/botSkills.d.ts +21 -0
- package/dist/connectors/telegram/commands/botSkills.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/botSkills.js +133 -0
- package/dist/connectors/telegram/commands/botSkills.js.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts +5 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/callbackMessage.js +9 -0
- package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -1
- package/dist/connectors/telegram/commands/compaction.d.ts +65 -3
- package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/compaction.js +512 -94
- package/dist/connectors/telegram/commands/compaction.js.map +1 -1
- package/dist/connectors/telegram/commands/displayModes.d.ts +1 -1
- package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/displayModes.js +6 -18
- package/dist/connectors/telegram/commands/displayModes.js.map +1 -1
- package/dist/connectors/telegram/commands/fallbackChain.js +5 -5
- package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -1
- package/dist/connectors/telegram/commands/reminders.d.ts +1 -1
- package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/reminders.js +4 -15
- package/dist/connectors/telegram/commands/reminders.js.map +1 -1
- package/dist/connectors/telegram/commands/selfUpdate.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/selfUpdate.js +1 -11
- package/dist/connectors/telegram/commands/selfUpdate.js.map +1 -1
- package/dist/connectors/telegram/commands/taskAgents.d.ts +22 -0
- package/dist/connectors/telegram/commands/taskAgents.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/taskAgents.js +104 -0
- package/dist/connectors/telegram/commands/taskAgents.js.map +1 -0
- package/dist/connectors/telegram/commands/todo.d.ts +82 -0
- package/dist/connectors/telegram/commands/todo.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/todo.js +384 -0
- package/dist/connectors/telegram/commands/todo.js.map +1 -0
- package/dist/connectors/telegram/commands/topicCommand.d.ts +6 -2
- package/dist/connectors/telegram/commands/topicCommand.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/topicCommand.js +6 -9
- package/dist/connectors/telegram/commands/topicCommand.js.map +1 -1
- package/dist/connectors/telegram/openBindMessages.d.ts +45 -0
- package/dist/connectors/telegram/openBindMessages.d.ts.map +1 -0
- package/dist/connectors/telegram/openBindMessages.js +67 -0
- package/dist/connectors/telegram/openBindMessages.js.map +1 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts +49 -0
- package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -1
- package/dist/connectors/telegram/outputFlushPlan.js +46 -0
- package/dist/connectors/telegram/outputFlushPlan.js.map +1 -1
- package/dist/connectors/telegram/pendingTopicName.d.ts +26 -0
- package/dist/connectors/telegram/pendingTopicName.d.ts.map +1 -0
- package/dist/connectors/telegram/pendingTopicName.js +27 -0
- package/dist/connectors/telegram/pendingTopicName.js.map +1 -0
- package/dist/connectors/test/connector.d.ts.map +1 -1
- package/dist/connectors/test/connector.js +6 -1
- package/dist/connectors/test/connector.js.map +1 -1
- package/dist/i18n/de.d.ts.map +1 -1
- package/dist/i18n/de.js +90 -7
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +90 -7
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +90 -7
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +90 -7
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +90 -7
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +90 -7
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +90 -7
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +90 -7
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +90 -7
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +90 -7
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +90 -7
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +90 -7
- package/dist/i18n/zh.js.map +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.js +1 -1
- package/dist/installManager.d.ts +13 -0
- package/dist/installManager.d.ts.map +1 -1
- package/dist/installManager.js +38 -4
- package/dist/installManager.js.map +1 -1
- package/dist/instanceSettings.d.ts +40 -1
- package/dist/instanceSettings.d.ts.map +1 -1
- package/dist/instanceSettings.js +105 -26
- package/dist/instanceSettings.js.map +1 -1
- package/dist/openCodeQuestionFlow.d.ts +30 -0
- package/dist/openCodeQuestionFlow.d.ts.map +1 -1
- package/dist/openCodeQuestionFlow.js +43 -0
- package/dist/openCodeQuestionFlow.js.map +1 -1
- package/dist/postToSession.d.ts +20 -5
- package/dist/postToSession.d.ts.map +1 -1
- package/dist/postToSession.js +38 -7
- package/dist/postToSession.js.map +1 -1
- package/dist/remoteRun/cliArgs.d.ts +73 -0
- package/dist/remoteRun/cliArgs.d.ts.map +1 -0
- package/dist/remoteRun/cliArgs.js +197 -0
- package/dist/remoteRun/cliArgs.js.map +1 -0
- package/dist/remoteRun/commands.d.ts +56 -0
- package/dist/remoteRun/commands.d.ts.map +1 -0
- package/dist/remoteRun/commands.js +306 -0
- package/dist/remoteRun/commands.js.map +1 -0
- package/dist/remoteRun/depsPlan.d.ts +16 -0
- package/dist/remoteRun/depsPlan.d.ts.map +1 -0
- package/dist/remoteRun/depsPlan.js +82 -0
- package/dist/remoteRun/depsPlan.js.map +1 -0
- package/dist/remoteRun/exitCodes.d.ts +34 -0
- package/dist/remoteRun/exitCodes.d.ts.map +1 -0
- package/dist/remoteRun/exitCodes.js +38 -0
- package/dist/remoteRun/exitCodes.js.map +1 -0
- package/dist/remoteRun/foreground.d.ts +29 -0
- package/dist/remoteRun/foreground.d.ts.map +1 -0
- package/dist/remoteRun/foreground.js +159 -0
- package/dist/remoteRun/foreground.js.map +1 -0
- package/dist/remoteRun/interrupts.d.ts +17 -0
- package/dist/remoteRun/interrupts.d.ts.map +1 -0
- package/dist/remoteRun/interrupts.js +41 -0
- package/dist/remoteRun/interrupts.js.map +1 -0
- package/dist/remoteRun/jobFiles.d.ts +31 -0
- package/dist/remoteRun/jobFiles.d.ts.map +1 -0
- package/dist/remoteRun/jobFiles.js +84 -0
- package/dist/remoteRun/jobFiles.js.map +1 -0
- package/dist/remoteRun/jobFormat.d.ts +16 -0
- package/dist/remoteRun/jobFormat.d.ts.map +1 -0
- package/dist/remoteRun/jobFormat.js +130 -0
- package/dist/remoteRun/jobFormat.js.map +1 -0
- package/dist/remoteRun/jobId.d.ts +15 -0
- package/dist/remoteRun/jobId.d.ts.map +1 -0
- package/dist/remoteRun/jobId.js +85 -0
- package/dist/remoteRun/jobId.js.map +1 -0
- package/dist/remoteRun/jobMeta.d.ts +18 -0
- package/dist/remoteRun/jobMeta.d.ts.map +1 -0
- package/dist/remoteRun/jobMeta.js +33 -0
- package/dist/remoteRun/jobMeta.js.map +1 -0
- package/dist/remoteRun/jobQuery.d.ts +12 -0
- package/dist/remoteRun/jobQuery.d.ts.map +1 -0
- package/dist/remoteRun/jobQuery.js +22 -0
- package/dist/remoteRun/jobQuery.js.map +1 -0
- package/dist/remoteRun/jobRecords.d.ts +22 -0
- package/dist/remoteRun/jobRecords.d.ts.map +1 -0
- package/dist/remoteRun/jobRecords.js +145 -0
- package/dist/remoteRun/jobRecords.js.map +1 -0
- package/dist/remoteRun/jobState.d.ts +62 -0
- package/dist/remoteRun/jobState.d.ts.map +1 -0
- package/dist/remoteRun/jobState.js +132 -0
- package/dist/remoteRun/jobState.js.map +1 -0
- package/dist/remoteRun/leaseTiming.d.ts +18 -0
- package/dist/remoteRun/leaseTiming.d.ts.map +1 -0
- package/dist/remoteRun/leaseTiming.js +43 -0
- package/dist/remoteRun/leaseTiming.js.map +1 -0
- package/dist/remoteRun/output.d.ts +35 -0
- package/dist/remoteRun/output.d.ts.map +1 -0
- package/dist/remoteRun/output.js +82 -0
- package/dist/remoteRun/output.js.map +1 -0
- package/dist/remoteRun/pathPatterns.d.ts +33 -0
- package/dist/remoteRun/pathPatterns.d.ts.map +1 -0
- package/dist/remoteRun/pathPatterns.js +115 -0
- package/dist/remoteRun/pathPatterns.js.map +1 -0
- package/dist/remoteRun/probe.d.ts +56 -0
- package/dist/remoteRun/probe.d.ts.map +1 -0
- package/dist/remoteRun/probe.js +123 -0
- package/dist/remoteRun/probe.js.map +1 -0
- package/dist/remoteRun/project.d.ts +26 -0
- package/dist/remoteRun/project.d.ts.map +1 -0
- package/dist/remoteRun/project.js +159 -0
- package/dist/remoteRun/project.js.map +1 -0
- package/dist/remoteRun/projectConfig.d.ts +38 -0
- package/dist/remoteRun/projectConfig.d.ts.map +1 -0
- package/dist/remoteRun/projectConfig.js +87 -0
- package/dist/remoteRun/projectConfig.js.map +1 -0
- package/dist/remoteRun/remoteRunCli.d.ts +15 -0
- package/dist/remoteRun/remoteRunCli.d.ts.map +1 -0
- package/dist/remoteRun/remoteRunCli.js +144 -0
- package/dist/remoteRun/remoteRunCli.js.map +1 -0
- package/dist/remoteRun/remoteRunError.d.ts +14 -0
- package/dist/remoteRun/remoteRunError.d.ts.map +1 -0
- package/dist/remoteRun/remoteRunError.js +28 -0
- package/dist/remoteRun/remoteRunError.js.map +1 -0
- package/dist/remoteRun/rsync.d.ts +17 -0
- package/dist/remoteRun/rsync.d.ts.map +1 -0
- package/dist/remoteRun/rsync.js +39 -0
- package/dist/remoteRun/rsync.js.map +1 -0
- package/dist/remoteRun/runnerClient.d.ts +50 -0
- package/dist/remoteRun/runnerClient.d.ts.map +1 -0
- package/dist/remoteRun/runnerClient.js +139 -0
- package/dist/remoteRun/runnerClient.js.map +1 -0
- package/dist/remoteRun/runners.d.ts +57 -0
- package/dist/remoteRun/runners.d.ts.map +1 -0
- package/dist/remoteRun/runners.js +181 -0
- package/dist/remoteRun/runners.js.map +1 -0
- package/dist/remoteRun/runnersConfig.d.ts +44 -0
- package/dist/remoteRun/runnersConfig.d.ts.map +1 -0
- package/dist/remoteRun/runnersConfig.js +107 -0
- package/dist/remoteRun/runnersConfig.js.map +1 -0
- package/dist/remoteRun/safeCopy.d.ts +31 -0
- package/dist/remoteRun/safeCopy.d.ts.map +1 -0
- package/dist/remoteRun/safeCopy.js +137 -0
- package/dist/remoteRun/safeCopy.js.map +1 -0
- package/dist/remoteRun/sendPlan.d.ts +67 -0
- package/dist/remoteRun/sendPlan.d.ts.map +1 -0
- package/dist/remoteRun/sendPlan.js +139 -0
- package/dist/remoteRun/sendPlan.js.map +1 -0
- package/dist/remoteRun/ssh.d.ts +62 -0
- package/dist/remoteRun/ssh.d.ts.map +1 -0
- package/dist/remoteRun/ssh.js +202 -0
- package/dist/remoteRun/ssh.js.map +1 -0
- package/dist/remoteRun/submit.d.ts +29 -0
- package/dist/remoteRun/submit.d.ts.map +1 -0
- package/dist/remoteRun/submit.js +142 -0
- package/dist/remoteRun/submit.js.map +1 -0
- package/dist/requests/answerRequest.d.ts +5 -0
- package/dist/requests/answerRequest.d.ts.map +1 -1
- package/dist/requests/answerRequest.js +16 -1
- package/dist/requests/answerRequest.js.map +1 -1
- package/dist/requests/requestLedger.d.ts +13 -0
- package/dist/requests/requestLedger.d.ts.map +1 -1
- package/dist/requests/requestLedger.js +9 -0
- package/dist/requests/requestLedger.js.map +1 -1
- package/dist/requests/topicRequestSettle.d.ts +30 -0
- package/dist/requests/topicRequestSettle.d.ts.map +1 -0
- package/dist/requests/topicRequestSettle.js +23 -0
- package/dist/requests/topicRequestSettle.js.map +1 -0
- package/dist/requests/wakeUpEngine.d.ts +4 -0
- package/dist/requests/wakeUpEngine.d.ts.map +1 -1
- package/dist/requests/wakeUpEngine.js +5 -1
- package/dist/requests/wakeUpEngine.js.map +1 -1
- package/dist/scheduler/delivery.d.ts +2 -0
- package/dist/scheduler/delivery.d.ts.map +1 -1
- package/dist/scheduler/delivery.js +8 -4
- package/dist/scheduler/delivery.js.map +1 -1
- package/dist/scheduler/mcpSurface.d.ts +59 -10
- package/dist/scheduler/mcpSurface.d.ts.map +1 -1
- package/dist/scheduler/mcpSurface.js +276 -79
- package/dist/scheduler/mcpSurface.js.map +1 -1
- package/dist/scheduler/recurrence.d.ts +5 -0
- package/dist/scheduler/recurrence.d.ts.map +1 -1
- package/dist/scheduler/recurrence.js +12 -2
- package/dist/scheduler/recurrence.js.map +1 -1
- package/dist/scheduler/strictToolInput.d.ts +45 -0
- package/dist/scheduler/strictToolInput.d.ts.map +1 -0
- package/dist/scheduler/strictToolInput.js +155 -0
- package/dist/scheduler/strictToolInput.js.map +1 -0
- package/dist/scheduler/types.d.ts +5 -0
- package/dist/scheduler/types.d.ts.map +1 -1
- package/dist/scheduler/workerWatch.d.ts +23 -0
- package/dist/scheduler/workerWatch.d.ts.map +1 -0
- package/dist/scheduler/workerWatch.js +26 -0
- package/dist/scheduler/workerWatch.js.map +1 -0
- package/dist/selfUpdate/emittedSource.d.ts +11 -0
- package/dist/selfUpdate/emittedSource.d.ts.map +1 -0
- package/dist/selfUpdate/emittedSource.js +24 -0
- package/dist/selfUpdate/emittedSource.js.map +1 -0
- package/dist/selfUpdate/gitSource.d.ts +0 -6
- package/dist/selfUpdate/gitSource.d.ts.map +1 -1
- package/dist/selfUpdate/gitSource.js +2 -18
- package/dist/selfUpdate/gitSource.js.map +1 -1
- package/dist/selfUpdate/updatePending.d.ts +1 -1
- package/dist/sendErrorClassifier.d.ts +10 -0
- package/dist/sendErrorClassifier.d.ts.map +1 -1
- package/dist/sendErrorClassifier.js +22 -0
- package/dist/sendErrorClassifier.js.map +1 -1
- package/dist/state.d.ts +78 -7
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +125 -8
- package/dist/state.js.map +1 -1
- package/dist/stateFile.d.ts +9 -0
- package/dist/stateFile.d.ts.map +1 -0
- package/dist/stateFile.js +57 -0
- package/dist/stateFile.js.map +1 -0
- package/dist/stt/sttInstall.d.ts +7 -3
- package/dist/stt/sttInstall.d.ts.map +1 -1
- package/dist/stt/sttInstall.js +8 -4
- package/dist/stt/sttInstall.js.map +1 -1
- package/dist/stt/sttSettings.d.ts +2 -1
- package/dist/stt/sttSettings.d.ts.map +1 -1
- package/dist/stt/sttSettings.js +3 -2
- package/dist/stt/sttSettings.js.map +1 -1
- package/dist/stt/transcribeChain.js +2 -0
- package/dist/stt/transcribeChain.js.map +1 -1
- package/dist/testTimings.d.ts +13 -3
- package/dist/testTimings.d.ts.map +1 -1
- package/dist/testTimings.js +26 -2
- package/dist/testTimings.js.map +1 -1
- package/dist/todos/board.d.ts +83 -0
- package/dist/todos/board.d.ts.map +1 -0
- package/dist/todos/board.js +227 -0
- package/dist/todos/board.js.map +1 -0
- package/dist/todos/format.d.ts +33 -0
- package/dist/todos/format.d.ts.map +1 -0
- package/dist/todos/format.js +90 -0
- package/dist/todos/format.js.map +1 -0
- package/dist/todos/merge.d.ts +46 -0
- package/dist/todos/merge.d.ts.map +1 -0
- package/dist/todos/merge.js +137 -0
- package/dist/todos/merge.js.map +1 -0
- package/dist/todos/midTurn.d.ts +75 -0
- package/dist/todos/midTurn.d.ts.map +1 -0
- package/dist/todos/midTurn.js +214 -0
- package/dist/todos/midTurn.js.map +1 -0
- package/dist/todos/nag.d.ts +85 -0
- package/dist/todos/nag.d.ts.map +1 -0
- package/dist/todos/nag.js +103 -0
- package/dist/todos/nag.js.map +1 -0
- package/dist/todos/order.d.ts +25 -0
- package/dist/todos/order.d.ts.map +1 -0
- package/dist/todos/order.js +61 -0
- package/dist/todos/order.js.map +1 -0
- package/dist/todos/projects.d.ts +102 -0
- package/dist/todos/projects.d.ts.map +1 -0
- package/dist/todos/projects.js +342 -0
- package/dist/todos/projects.js.map +1 -0
- package/dist/todos/registry.d.ts +64 -0
- package/dist/todos/registry.d.ts.map +1 -0
- package/dist/todos/registry.js +116 -0
- package/dist/todos/registry.js.map +1 -0
- package/dist/todos/reminderEngine.d.ts +78 -0
- package/dist/todos/reminderEngine.d.ts.map +1 -0
- package/dist/todos/reminderEngine.js +162 -0
- package/dist/todos/reminderEngine.js.map +1 -0
- package/dist/todos/store.d.ts +34 -0
- package/dist/todos/store.d.ts.map +1 -0
- package/dist/todos/store.js +208 -0
- package/dist/todos/store.js.map +1 -0
- package/dist/todos/tools.d.ts +26 -0
- package/dist/todos/tools.d.ts.map +1 -0
- package/dist/todos/tools.js +25 -0
- package/dist/todos/tools.js.map +1 -0
- package/dist/todos/types.d.ts +85 -0
- package/dist/todos/types.d.ts.map +1 -0
- package/dist/todos/types.js +30 -0
- package/dist/todos/types.js.map +1 -0
- package/dist/trackers/taskAgentLimit.d.ts +58 -0
- package/dist/trackers/taskAgentLimit.d.ts.map +1 -0
- package/dist/trackers/taskAgentLimit.js +62 -0
- package/dist/trackers/taskAgentLimit.js.map +1 -0
- package/dist/trackers/taskAgentSlots.d.ts +109 -0
- package/dist/trackers/taskAgentSlots.d.ts.map +1 -0
- package/dist/trackers/taskAgentSlots.js +227 -0
- package/dist/trackers/taskAgentSlots.js.map +1 -0
- package/dist/trackers/types.d.ts +14 -0
- package/dist/trackers/types.d.ts.map +1 -0
- package/dist/trackers/types.js +3 -0
- package/dist/trackers/types.js.map +1 -0
- package/dist/types.d.ts +80 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/adoptReplayGate.d.ts +16 -0
- package/dist/utils/adoptReplayGate.d.ts.map +1 -0
- package/dist/utils/adoptReplayGate.js +35 -0
- package/dist/utils/adoptReplayGate.js.map +1 -0
- package/dist/utils/agentPlugin.d.ts +113 -0
- package/dist/utils/agentPlugin.d.ts.map +1 -0
- package/dist/utils/agentPlugin.js +192 -0
- package/dist/utils/agentPlugin.js.map +1 -0
- package/dist/utils/autoContinueOnLimit.d.ts +7 -4
- package/dist/utils/autoContinueOnLimit.d.ts.map +1 -1
- package/dist/utils/autoContinueOnLimit.js +8 -5
- package/dist/utils/autoContinueOnLimit.js.map +1 -1
- package/dist/utils/botSkills.d.ts +62 -0
- package/dist/utils/botSkills.d.ts.map +1 -0
- package/dist/utils/botSkills.js +53 -0
- package/dist/utils/botSkills.js.map +1 -0
- package/dist/utils/botSkillsSetting.d.ts +7 -0
- package/dist/utils/botSkillsSetting.d.ts.map +1 -0
- package/dist/utils/botSkillsSetting.js +9 -0
- package/dist/utils/botSkillsSetting.js.map +1 -0
- package/dist/utils/claudeCodeVersion.d.ts +7 -0
- package/dist/utils/claudeCodeVersion.d.ts.map +1 -1
- package/dist/utils/claudeCodeVersion.js +14 -1
- package/dist/utils/claudeCodeVersion.js.map +1 -1
- package/dist/utils/claudeCompactHook.d.ts +33 -15
- package/dist/utils/claudeCompactHook.d.ts.map +1 -1
- package/dist/utils/claudeCompactHook.js +36 -17
- package/dist/utils/claudeCompactHook.js.map +1 -1
- package/dist/utils/claudeCompactSummary.d.ts +15 -0
- package/dist/utils/claudeCompactSummary.d.ts.map +1 -0
- package/dist/utils/claudeCompactSummary.js +96 -0
- package/dist/utils/claudeCompactSummary.js.map +1 -0
- package/dist/utils/claudeLimitSwitch.d.ts +11 -9
- package/dist/utils/claudeLimitSwitch.d.ts.map +1 -1
- package/dist/utils/claudeLimitSwitch.js +18 -16
- package/dist/utils/claudeLimitSwitch.js.map +1 -1
- package/dist/utils/claudeProfiles.d.ts +5 -0
- package/dist/utils/claudeProfiles.d.ts.map +1 -1
- package/dist/utils/claudeProfiles.js +14 -0
- package/dist/utils/claudeProfiles.js.map +1 -1
- package/dist/utils/claudeSessionTitle.d.ts +2 -1
- package/dist/utils/claudeSessionTitle.d.ts.map +1 -1
- package/dist/utils/claudeSessionTitle.js +14 -14
- package/dist/utils/claudeSessionTitle.js.map +1 -1
- package/dist/utils/claudeUsage.d.ts +95 -15
- package/dist/utils/claudeUsage.d.ts.map +1 -1
- package/dist/utils/claudeUsage.js +241 -41
- package/dist/utils/claudeUsage.js.map +1 -1
- package/dist/utils/claudeUsageRefresher.d.ts +10 -0
- package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
- package/dist/utils/claudeUsageRefresher.js +11 -0
- package/dist/utils/claudeUsageRefresher.js.map +1 -1
- package/dist/utils/claudeUserEntry.d.ts +50 -0
- package/dist/utils/claudeUserEntry.d.ts.map +1 -0
- package/dist/utils/claudeUserEntry.js +120 -0
- package/dist/utils/claudeUserEntry.js.map +1 -0
- package/dist/utils/clearThreadOutputQueues.d.ts +4 -3
- package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -1
- package/dist/utils/clearThreadOutputQueues.js +1 -1
- package/dist/utils/clearThreadOutputQueues.js.map +1 -1
- package/dist/utils/compactOnIdle.d.ts +33 -13
- package/dist/utils/compactOnIdle.d.ts.map +1 -1
- package/dist/utils/compactOnIdle.js +35 -15
- package/dist/utils/compactOnIdle.js.map +1 -1
- package/dist/utils/fallbackBridge.d.ts +5 -0
- package/dist/utils/fallbackBridge.d.ts.map +1 -1
- package/dist/utils/fallbackBridge.js +19 -3
- package/dist/utils/fallbackBridge.js.map +1 -1
- package/dist/utils/fallbackChain.d.ts +9 -3
- package/dist/utils/fallbackChain.d.ts.map +1 -1
- package/dist/utils/fallbackChain.js +21 -3
- package/dist/utils/fallbackChain.js.map +1 -1
- package/dist/utils/fileSendPlan.d.ts +6 -0
- package/dist/utils/fileSendPlan.d.ts.map +1 -1
- package/dist/utils/fileSendPlan.js +11 -0
- package/dist/utils/fileSendPlan.js.map +1 -1
- package/dist/utils/fileSendService.d.ts +7 -1
- package/dist/utils/fileSendService.d.ts.map +1 -1
- package/dist/utils/fileSendService.js +6 -2
- package/dist/utils/fileSendService.js.map +1 -1
- package/dist/utils/groupFinalizePlan.d.ts +8 -10
- package/dist/utils/groupFinalizePlan.d.ts.map +1 -1
- package/dist/utils/groupFinalizePlan.js +8 -12
- package/dist/utils/groupFinalizePlan.js.map +1 -1
- package/dist/utils/jsonStreamHost.d.ts +13 -0
- package/dist/utils/jsonStreamHost.d.ts.map +1 -1
- package/dist/utils/jsonStreamHost.js +13 -0
- package/dist/utils/jsonStreamHost.js.map +1 -1
- package/dist/utils/messageSendService.d.ts +5 -3
- package/dist/utils/messageSendService.d.ts.map +1 -1
- package/dist/utils/messageSendService.js +12 -5
- package/dist/utils/messageSendService.js.map +1 -1
- package/dist/utils/openCodeCompactPlugin.d.ts +39 -14
- package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -1
- package/dist/utils/openCodeCompactPlugin.js +106 -38
- package/dist/utils/openCodeCompactPlugin.js.map +1 -1
- package/dist/utils/promptDelivery.d.ts +29 -12
- package/dist/utils/promptDelivery.d.ts.map +1 -1
- package/dist/utils/promptDelivery.js +13 -5
- package/dist/utils/promptDelivery.js.map +1 -1
- package/dist/utils/sentKindsSummary.d.ts +10 -0
- package/dist/utils/sentKindsSummary.d.ts.map +1 -0
- package/dist/utils/sentKindsSummary.js +18 -0
- package/dist/utils/sentKindsSummary.js.map +1 -0
- package/dist/utils/telegramError.d.ts +6 -0
- package/dist/utils/telegramError.d.ts.map +1 -1
- package/dist/utils/telegramError.js +12 -0
- package/dist/utils/telegramError.js.map +1 -1
- package/dist/utils/topicView.d.ts +1 -1
- package/dist/utils/topicView.js +1 -1
- package/dist/utils/transcribeAudio.d.ts +10 -0
- package/dist/utils/transcribeAudio.d.ts.map +1 -1
- package/dist/utils/transcribeAudio.js +22 -3
- package/dist/utils/transcribeAudio.js.map +1 -1
- package/dist/utils/transcriptErrorTime.d.ts +8 -0
- package/dist/utils/transcriptErrorTime.d.ts.map +1 -0
- package/dist/utils/transcriptErrorTime.js +56 -0
- package/dist/utils/transcriptErrorTime.js.map +1 -0
- package/dist/utils/wedgeRecovery.d.ts +2 -0
- package/dist/utils/wedgeRecovery.d.ts.map +1 -1
- package/dist/utils/wedgeRecovery.js +1 -1
- package/dist/utils/wedgeRecovery.js.map +1 -1
- package/package.json +11 -3
- package/remoteRun/runner.sh +1242 -0
- package/stt/gigaam_sidecar.py +555 -50
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @description `charness claude-profiles [--best] [--model <name>] [--json]` — the
|
|
3
|
-
* `claude_profiles` MCP tool, for a worker that has no MCP (a shell script, a child started by
|
|
4
|
-
* Claude account profile a
|
|
5
|
-
* (`utils/claudeUsage.ts`; the bot polls every profile's usage
|
|
6
|
-
* old) and never opens the `StateStore` (that would migrate and lock a live
|
|
2
|
+
* @description `charness claude-profiles [--best] [--model <name>] [--current <name> [--stopped-by-limit]] [--json]` — the
|
|
3
|
+
* command-line twin of the `claude_profiles` MCP tool, for a worker that has no MCP (a shell script, a child started by
|
|
4
|
+
* hand): which Claude account profile a process should run on — a new one goes to the account whose weekly limit resets
|
|
5
|
+
* soonest. It reads the bot's cache off `DATA_DIR/state.json` (`utils/claudeUsage.ts`; the bot polls every profile's usage
|
|
6
|
+
* on a timer, so the figures are at most a poll old) and never opens the `StateStore` (that would migrate and lock a live
|
|
7
|
+
* bot's file) nor the network — so `--stopped-by-limit` can only leave the account out, not re-read its usage.
|
|
7
8
|
*
|
|
8
9
|
* --best print ONLY the recommended profile's config directory — an EMPTY line for the default
|
|
9
10
|
* profile (set nothing) — so `CLAUDE_CONFIG_DIR="$(charness claude-profiles --best)"`
|
|
10
|
-
* works as is; exit 1 when no profile is
|
|
11
|
+
* works as is; exit 1 when no profile is usable (stderr then says which frees up first)
|
|
11
12
|
* --model <name> the model the child will run (`fable` → the Fable weekly window counts besides the shared ones)
|
|
13
|
+
* --current <name> the profile the session being RESUMED last ran on: it stays there while it can
|
|
14
|
+
* --stopped-by-limit that session broke off on a usage limit: leave `--current` out of the answer
|
|
12
15
|
* --json the full report as JSON (the MCP tool's shape)
|
|
13
16
|
*
|
|
14
17
|
* Without a flag: one human line per profile. `DATA_DIR` comes from the environment the bot itself reads
|
|
@@ -19,6 +22,8 @@ export interface ClaudeProfilesCliArgs {
|
|
|
19
22
|
isBest: boolean;
|
|
20
23
|
isJson: boolean;
|
|
21
24
|
model: string | null;
|
|
25
|
+
currentProfile: string | null;
|
|
26
|
+
isStoppedByLimit: boolean;
|
|
22
27
|
}
|
|
23
28
|
/** Parse the subcommand's flags; `null` with a message for anything unknown. */
|
|
24
29
|
export declare function parseClaudeProfilesCliArgs(argv: readonly string[]): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeProfiles.d.ts","sourceRoot":"","sources":["../../src/cli/claudeProfiles.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claudeProfiles.d.ts","sourceRoot":"","sources":["../../src/cli/claudeProfiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,OAAO,EAML,KAAK,wBAAwB,EAE9B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAcD,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAqB5I;AAED,4PAA4P;AAC5P,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwBjG;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE;IACF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACf,GACL,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* @description `charness claude-profiles [--best] [--model <name>] [--json]` — the
|
|
4
|
-
* `claude_profiles` MCP tool, for a worker that has no MCP (a shell script, a child started by
|
|
5
|
-
* Claude account profile a
|
|
6
|
-
* (`utils/claudeUsage.ts`; the bot polls every profile's usage
|
|
7
|
-
* old) and never opens the `StateStore` (that would migrate and lock a live
|
|
3
|
+
* @description `charness claude-profiles [--best] [--model <name>] [--current <name> [--stopped-by-limit]] [--json]` — the
|
|
4
|
+
* command-line twin of the `claude_profiles` MCP tool, for a worker that has no MCP (a shell script, a child started by
|
|
5
|
+
* hand): which Claude account profile a process should run on — a new one goes to the account whose weekly limit resets
|
|
6
|
+
* soonest. It reads the bot's cache off `DATA_DIR/state.json` (`utils/claudeUsage.ts`; the bot polls every profile's usage
|
|
7
|
+
* on a timer, so the figures are at most a poll old) and never opens the `StateStore` (that would migrate and lock a live
|
|
8
|
+
* bot's file) nor the network — so `--stopped-by-limit` can only leave the account out, not re-read its usage.
|
|
8
9
|
*
|
|
9
10
|
* --best print ONLY the recommended profile's config directory — an EMPTY line for the default
|
|
10
11
|
* profile (set nothing) — so `CLAUDE_CONFIG_DIR="$(charness claude-profiles --best)"`
|
|
11
|
-
* works as is; exit 1 when no profile is
|
|
12
|
+
* works as is; exit 1 when no profile is usable (stderr then says which frees up first)
|
|
12
13
|
* --model <name> the model the child will run (`fable` → the Fable weekly window counts besides the shared ones)
|
|
14
|
+
* --current <name> the profile the session being RESUMED last ran on: it stays there while it can
|
|
15
|
+
* --stopped-by-limit that session broke off on a usage limit: leave `--current` out of the answer
|
|
13
16
|
* --json the full report as JSON (the MCP tool's shape)
|
|
14
17
|
*
|
|
15
18
|
* Without a flag: one human line per profile. `DATA_DIR` comes from the environment the bot itself reads
|
|
@@ -21,30 +24,49 @@ exports.formatClaudeProfileCliLine = formatClaudeProfileCliLine;
|
|
|
21
24
|
exports.runClaudeProfilesCli = runClaudeProfilesCli;
|
|
22
25
|
const envLoader_1 = require("./envLoader");
|
|
23
26
|
const state_1 = require("../state");
|
|
27
|
+
const stateFile_1 = require("../stateFile");
|
|
28
|
+
const fallbackChain_1 = require("../utils/fallbackChain");
|
|
24
29
|
const claudeUsage_1 = require("../utils/claudeUsage");
|
|
30
|
+
const usageLine = 'Usage: charness claude-profiles [--best] [--model <name>] [--current <name> [--stopped-by-limit]] [--json]';
|
|
31
|
+
/** The value of a flag spelled `--name value` or `--name=value`; `null` when argument `index` is not that flag, `undefined` when it has no value. */
|
|
32
|
+
function readFlagValue(argv, index, name) {
|
|
33
|
+
const arg = argv[index];
|
|
34
|
+
if (arg === name) {
|
|
35
|
+
const value = argv[index + 1];
|
|
36
|
+
return value === undefined || value.startsWith('--') ? { value: undefined, consumed: 0 } : { value, consumed: 1 };
|
|
37
|
+
}
|
|
38
|
+
return arg.startsWith(`${name}=`) ? { value: arg.slice(name.length + 1), consumed: 0 } : null;
|
|
39
|
+
}
|
|
25
40
|
/** Parse the subcommand's flags; `null` with a message for anything unknown. */
|
|
26
41
|
function parseClaudeProfilesCliArgs(argv) {
|
|
27
|
-
const args = { isBest: false, isJson: false, model: null };
|
|
42
|
+
const args = { isBest: false, isJson: false, model: null, currentProfile: null, isStoppedByLimit: false };
|
|
28
43
|
for (let i = 0; i < argv.length; i += 1) {
|
|
29
44
|
const arg = argv[i];
|
|
45
|
+
const model = readFlagValue(argv, i, '--model');
|
|
46
|
+
const current = readFlagValue(argv, i, '--current');
|
|
30
47
|
if (arg === '--best')
|
|
31
48
|
args.isBest = true;
|
|
32
49
|
else if (arg === '--json')
|
|
33
50
|
args.isJson = true;
|
|
34
|
-
else if (arg === '--
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
else if (arg === '--stopped-by-limit')
|
|
52
|
+
args.isStoppedByLimit = true;
|
|
53
|
+
else if (model !== null) {
|
|
54
|
+
if (model.value === undefined || model.value.trim() === '')
|
|
37
55
|
return { ok: false, error: '--model needs a value' };
|
|
38
|
-
args.model = value;
|
|
39
|
-
i +=
|
|
56
|
+
args.model = model.value;
|
|
57
|
+
i += model.consumed;
|
|
58
|
+
}
|
|
59
|
+
else if (current !== null) {
|
|
60
|
+
if (current.value === undefined || current.value.trim() === '')
|
|
61
|
+
return { ok: false, error: '--current needs a profile name' };
|
|
62
|
+
args.currentProfile = current.value;
|
|
63
|
+
i += current.consumed;
|
|
40
64
|
}
|
|
41
|
-
else if (arg.startsWith('--model='))
|
|
42
|
-
args.model = arg.slice('--model='.length);
|
|
43
65
|
else
|
|
44
66
|
return { ok: false, error: `unknown option: ${arg}` };
|
|
45
67
|
}
|
|
46
|
-
if (args.
|
|
47
|
-
return { ok: false, error: '--
|
|
68
|
+
if (args.isStoppedByLimit && args.currentProfile === null)
|
|
69
|
+
return { ok: false, error: '--stopped-by-limit needs --current <name>' };
|
|
48
70
|
return { ok: true, args };
|
|
49
71
|
}
|
|
50
72
|
/** One human line: `✓ work /data/…/work mail@example.com personal max 5h 12% 🔄 in 2h · week 40% 🔄 in 2d 1h · Fable 3% 🔄 in 2d 1h` (no Fable part for an account without that window; an account billed to API credits says so and has no windows). */
|
|
@@ -57,7 +79,7 @@ function formatClaudeProfileCliLine(entry, nowMs) {
|
|
|
57
79
|
const account = entry.loggedIn === false
|
|
58
80
|
? 'not signed in'
|
|
59
81
|
: isApi
|
|
60
|
-
? `${entry.email ?? 'API key'} API billing (pay per use, never
|
|
82
|
+
? `${entry.email ?? 'API key'} API billing (pay per use, never picked for a new agent)`
|
|
61
83
|
: entry.loggedIn === null && entry.email === null
|
|
62
84
|
? 'not probed yet (open /account once)'
|
|
63
85
|
: `${entry.email ?? '?'} ${entry.kind} ${entry.subscriptionType ?? '?'}`;
|
|
@@ -82,22 +104,28 @@ async function runClaudeProfilesCli(argv, io = {}) {
|
|
|
82
104
|
const stderr = io.stderr ?? ((text) => process.stderr.write(text));
|
|
83
105
|
const parsed = parseClaudeProfilesCliArgs(argv);
|
|
84
106
|
if (!parsed.ok) {
|
|
85
|
-
stderr(`${parsed.error}\
|
|
107
|
+
stderr(`${parsed.error}\n${usageLine}\n`);
|
|
86
108
|
return 2;
|
|
87
109
|
}
|
|
88
110
|
const { args } = parsed;
|
|
89
111
|
(0, envLoader_1.loadEnvFiles)();
|
|
90
112
|
const dataDir = (0, state_1.resolveDataDir)();
|
|
91
113
|
const nowMs = (io.now ?? Date.now)();
|
|
92
|
-
const
|
|
93
|
-
const
|
|
114
|
+
const stateFile = (0, stateFile_1.readStateFileObject)(dataDir);
|
|
115
|
+
const records = (0, claudeUsage_1.getClaudeProfileRecordsFromState)(stateFile);
|
|
116
|
+
const report = (0, claudeUsage_1.buildClaudeProfilesReport)((0, claudeUsage_1.buildClaudeProfileUsageViews)({ dataDir, records }), args.model, nowMs, {
|
|
117
|
+
currentProfile: args.currentProfile,
|
|
118
|
+
isStoppedByLimit: args.isStoppedByLimit,
|
|
119
|
+
excludedNames: (0, fallbackChain_1.getDisabledClaudeProfileNames)((0, fallbackChain_1.normaliseFallbackChain)(stateFile.fallbackChain)),
|
|
120
|
+
});
|
|
121
|
+
const outcome = (0, claudeUsage_1.describeClaudeLaunchOutcome)(report, args.currentProfile);
|
|
94
122
|
if (args.isJson) {
|
|
95
123
|
stdout(`${JSON.stringify(report, null, 2)}\n`);
|
|
96
124
|
return report.recommended === null && args.isBest ? 1 : 0;
|
|
97
125
|
}
|
|
98
126
|
if (args.isBest) {
|
|
99
127
|
if (report.recommended === null) {
|
|
100
|
-
stderr(
|
|
128
|
+
stderr(`no usable Claude profile: ${outcome}\n`);
|
|
101
129
|
return 1;
|
|
102
130
|
}
|
|
103
131
|
const entry = report.profiles.find((profile) => profile.name === report.recommended);
|
|
@@ -105,7 +133,7 @@ async function runClaudeProfilesCli(argv, io = {}) {
|
|
|
105
133
|
return 0;
|
|
106
134
|
}
|
|
107
135
|
stdout(`${report.profiles.map((entry) => formatClaudeProfileCliLine(entry, nowMs)).join('\n')}\n`);
|
|
108
|
-
stdout(`recommended for ${args.model ?? 'any model'}: ${report.recommended ?? 'none'}\n`);
|
|
136
|
+
stdout(`recommended for ${args.model ?? 'any model'}: ${report.recommended ?? 'none'} (${outcome})\n`);
|
|
109
137
|
return 0;
|
|
110
138
|
}
|
|
111
139
|
//# sourceMappingURL=claudeProfiles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeProfiles.js","sourceRoot":"","sources":["../../src/cli/claudeProfiles.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"claudeProfiles.js","sourceRoot":"","sources":["../../src/cli/claudeProfiles.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/hot.d.ts
CHANGED
|
@@ -39,6 +39,11 @@ type HotChildName = 'tsc' | 'nodemon';
|
|
|
39
39
|
* the supervisor's shutdown stops the recorded one. A reload of the worker leaves it running for the next
|
|
40
40
|
* worker to adopt.
|
|
41
41
|
*
|
|
42
|
+
* **A blind watcher.** `tsc -w` learns of a changed source only from file-system events, which a burst (a pull of dozens of
|
|
43
|
+
* commits, then `yarn install`) can overflow and drop — it then keeps the old text of the files it missed and the worker keeps
|
|
44
|
+
* running the old build, silently. A guard (`tscWatchGuard.ts`) compares the watcher with the tree and restarts the WATCHER
|
|
45
|
+
* (not the supervisor, not the worker) when a compiled source stays newer than its output while the watcher is idle.
|
|
46
|
+
*
|
|
42
47
|
* **Failure modes handled:**
|
|
43
48
|
* - fresh checkout → nodemon waits until `tsc -w` produces the worker entry;
|
|
44
49
|
* - broken intermediate TS edit → `tsc -w` doesn't emit, so nodemon
|
package/dist/cli/hot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hot.d.ts","sourceRoot":"","sources":["../../src/cli/hot.ts"],"names":[],"mappings":"AAgBA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"hot.d.ts","sourceRoot":"","sources":["../../src/cli/hot.ts"],"names":[],"mappings":"AAgBA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAOhC,UAAU,eAAe;IACvB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,KAAK,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;AAQtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CA+P5C;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,YAAY,EACvB,aAAa,EAAE,MAAM,CAAC,OAAO,GAC5B,MAAM,CAAC,OAAO,CAEhB;AAED,yEAAyE;AACzE,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEzE;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,OAAO,CAAC,QAAQ,GAAG,OAAO,CAElF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,GAAE,eAKL,GACA,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,UAAU,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,eAAe,GACzB,MAAM,CAAC,UAAU,CAWnB"}
|
package/dist/cli/hot.js
CHANGED
|
@@ -52,9 +52,12 @@ const legacyMigration_1 = require("../legacyMigration");
|
|
|
52
52
|
const launchEnvironment_1 = require("../selfUpdate/launchEnvironment");
|
|
53
53
|
const restart_1 = require("../selfUpdate/restart");
|
|
54
54
|
const hotSupervisor_1 = require("../selfUpdate/hotSupervisor");
|
|
55
|
+
const tscWatchGuard_1 = require("./tscWatchGuard");
|
|
55
56
|
const tscWatchCompleteMarker = 'Watching for file changes.';
|
|
56
57
|
const tscWatchReadyMarker = `Found 0 errors. ${tscWatchCompleteMarker}`;
|
|
57
58
|
const tscWatchTailLength = tscWatchReadyMarker.length - 1;
|
|
59
|
+
/** How long a `tsc -w` asked to stop for a restart gets before it is killed outright (a hung watcher must not block its replacement). */
|
|
60
|
+
const tscStopGraceMs = 5000;
|
|
58
61
|
/**
|
|
59
62
|
* @description Wrapper-entry for `charness hot` — hot-reload mode for
|
|
60
63
|
* the global terminal bin.
|
|
@@ -88,6 +91,11 @@ const tscWatchTailLength = tscWatchReadyMarker.length - 1;
|
|
|
88
91
|
* the supervisor's shutdown stops the recorded one. A reload of the worker leaves it running for the next
|
|
89
92
|
* worker to adopt.
|
|
90
93
|
*
|
|
94
|
+
* **A blind watcher.** `tsc -w` learns of a changed source only from file-system events, which a burst (a pull of dozens of
|
|
95
|
+
* commits, then `yarn install`) can overflow and drop — it then keeps the old text of the files it missed and the worker keeps
|
|
96
|
+
* running the old build, silently. A guard (`tscWatchGuard.ts`) compares the watcher with the tree and restarts the WATCHER
|
|
97
|
+
* (not the supervisor, not the worker) when a compiled source stays newer than its output while the watcher is idle.
|
|
98
|
+
*
|
|
91
99
|
* **Failure modes handled:**
|
|
92
100
|
* - fresh checkout → nodemon waits until `tsc -w` produces the worker entry;
|
|
93
101
|
* - broken intermediate TS edit → `tsc -w` doesn't emit, so nodemon
|
|
@@ -180,7 +188,10 @@ async function runHot() {
|
|
|
180
188
|
// resolves normally and Node exits with the recorded code. Re-raising
|
|
181
189
|
// would mask the underlying child exit code.
|
|
182
190
|
const children = new Set();
|
|
191
|
+
/** The `tsc -w` processes stopped on purpose to be replaced by a fresh one (a restart is no exit to shut down on). */
|
|
192
|
+
const plannedTscStops = new Set();
|
|
183
193
|
let nodemonChild = null;
|
|
194
|
+
let tscWatcher = null;
|
|
184
195
|
let shuttingDown = false;
|
|
185
196
|
let isReexecuting = false;
|
|
186
197
|
let isSidecarStopped = false;
|
|
@@ -197,6 +208,7 @@ async function runHot() {
|
|
|
197
208
|
if (shuttingDown)
|
|
198
209
|
return;
|
|
199
210
|
shuttingDown = true;
|
|
211
|
+
tscWatchGuard.stop();
|
|
200
212
|
isReexecuting = options.isReexec === true;
|
|
201
213
|
for (const child of children) {
|
|
202
214
|
if (child.killed || child.exitCode !== null)
|
|
@@ -250,6 +262,11 @@ async function runHot() {
|
|
|
250
262
|
if (!shuttingDown && finalCode === 0)
|
|
251
263
|
finalCode = 1;
|
|
252
264
|
}
|
|
265
|
+
else if (plannedTscStops.delete(child)) {
|
|
266
|
+
process.stderr.write(`charness hot: tsc -w stopped to be restarted (code=${code ?? 'null'}, signal=${signal ?? 'null'})\n`);
|
|
267
|
+
checkShouldResolveChildren();
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
253
270
|
else {
|
|
254
271
|
const label = childName === 'tsc' ? 'tsc -w' : 'nodemon';
|
|
255
272
|
process.stderr.write(`charness hot: ${label} exited ` +
|
|
@@ -277,34 +294,63 @@ async function runHot() {
|
|
|
277
294
|
};
|
|
278
295
|
// Keep stdout piped so tsc does not clear the terminal between rebuilds and
|
|
279
296
|
// so nodemon can be gated on the first completed watch compile.
|
|
280
|
-
const tscChild = (0, child_process_1.spawn)(process.execPath, [tscBin, '-w'], {
|
|
281
|
-
cwd: projectRoot,
|
|
282
|
-
stdio: ['ignore', 'pipe', 'inherit'],
|
|
283
|
-
});
|
|
284
|
-
registerChild(tscChild, 'tsc');
|
|
285
297
|
let tscOutputTail = '';
|
|
286
|
-
|
|
287
|
-
const
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
298
|
+
const startTscWatcher = () => {
|
|
299
|
+
const tscChild = (0, child_process_1.spawn)(process.execPath, [tscBin, '-w'], {
|
|
300
|
+
cwd: projectRoot,
|
|
301
|
+
stdio: ['ignore', 'pipe', 'inherit'],
|
|
302
|
+
});
|
|
303
|
+
tscWatcher = tscChild;
|
|
304
|
+
registerChild(tscChild, 'tsc');
|
|
305
|
+
tscChild.stdout?.on('data', (chunk) => {
|
|
306
|
+
const output = chunk.toString();
|
|
307
|
+
process.stdout.write(output);
|
|
308
|
+
tscWatchGuard.noteOutput(output);
|
|
309
|
+
const inspectionText = tscOutputTail + output;
|
|
310
|
+
const isWatchComplete = inspectionText.includes(tscWatchCompleteMarker);
|
|
311
|
+
const isWatchReady = checkIsTscWatchReady(inspectionText);
|
|
312
|
+
tscOutputTail = inspectionText.slice(-tscWatchTailLength);
|
|
313
|
+
if (!isWatchComplete || nodemonChild !== null || shuttingDown)
|
|
314
|
+
return;
|
|
315
|
+
tscOutputTail = '';
|
|
316
|
+
if (!isWatchReady) {
|
|
317
|
+
process.stderr.write('charness hot: compile has TypeScript errors; nodemon is waiting for a clean build. ' +
|
|
318
|
+
'Fix the errors and save.\n');
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
if (fs.existsSync(distEntry)) {
|
|
322
|
+
startNodemon();
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
process.stderr.write('charness hot: clean compile produced no dist worker entry. ' +
|
|
326
|
+
'Check the TypeScript output path and save; nodemon will keep waiting.\n');
|
|
327
|
+
});
|
|
328
|
+
};
|
|
329
|
+
// The guard restarts the WATCHER only: the supervisor, nodemon and the worker stay. The fresh `tsc -w` compiles the whole
|
|
330
|
+
// tree again and emits it, which nodemon turns into one worker reload.
|
|
331
|
+
const restartTscWatcher = () => {
|
|
332
|
+
const stopping = tscWatcher;
|
|
333
|
+
if (shuttingDown || stopping === null)
|
|
294
334
|
return;
|
|
335
|
+
plannedTscStops.add(stopping);
|
|
336
|
+
const killTimer = setTimeout(() => stopping.kill('SIGKILL'), tscStopGraceMs);
|
|
337
|
+
stopping.once('exit', () => {
|
|
338
|
+
clearTimeout(killTimer);
|
|
339
|
+
if (!shuttingDown)
|
|
340
|
+
startTscWatcher();
|
|
341
|
+
});
|
|
295
342
|
tscOutputTail = '';
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
});
|
|
343
|
+
stopping.kill('SIGTERM');
|
|
344
|
+
};
|
|
345
|
+
const tscWatchGuard = (0, tscWatchGuard_1.createTscWatchGuard)({
|
|
346
|
+
getNowMs: () => Date.now(),
|
|
347
|
+
listStaleSources: (graceMs) => (0, tscWatchGuard_1.listStaleSources)(projectRoot, Date.now(), graceMs),
|
|
348
|
+
runFreshCompile: () => (0, tscWatchGuard_1.runFreshTscCompile)(projectRoot, tscBin),
|
|
349
|
+
restartWatcher: restartTscWatcher,
|
|
350
|
+
log: (message) => process.stderr.write(message),
|
|
351
|
+
}, (0, tscWatchGuard_1.readTscWatchGuardTimings)(process.env));
|
|
352
|
+
startTscWatcher();
|
|
353
|
+
tscWatchGuard.start();
|
|
308
354
|
await childrenStopped;
|
|
309
355
|
if (isReexecuting) {
|
|
310
356
|
(0, restart_1.reexecProcess)(reexecTarget, (0, launchEnvironment_1.getLaunchEnvironment)(), (0, restart_1.createDefaultReexecDeps)());
|
package/dist/cli/hot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hot.js","sourceRoot":"","sources":["../../src/cli/hot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hot.js","sourceRoot":"","sources":["../../src/cli/hot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
/**
|
|
3
|
+
* @description The hot supervisor's check that its `tsc -w` is not blind. TypeScript's watch mode learns that a source
|
|
4
|
+
* changed ONLY from file-system events, and Node reads them through one inotify queue (16384 events by default): a burst —
|
|
5
|
+
* a pull of dozens of commits followed by `yarn install` while the compiler is busy — overflows it and the events are
|
|
6
|
+
* dropped without a word. The watcher then keeps the old text of the files it missed: it reports errors where an old
|
|
7
|
+
* definition meets new callers, or reports a clean build that emitted nothing, `touch tsconfig.json` re-reads none of the
|
|
8
|
+
* files (measured), and only a new `tsc -w` is right again — while the worker keeps running the old build and nobody is told.
|
|
9
|
+
*
|
|
10
|
+
* The guard compares what the watcher says with what is on disk: a compiled source NEWER than its output, a minute after the
|
|
11
|
+
* change, while the watcher is idle. With "0 errors" that is a missed change and the watcher is restarted. With errors it
|
|
12
|
+
* may just be a broken edit, so a one-shot compile of the same tree decides: clean there means the watcher is wrong. Pure
|
|
13
|
+
* decisions and the file scan live here; the supervisor (`hot.ts`) wires the process side and loads nothing else for it.
|
|
14
|
+
*/
|
|
15
|
+
/** How often the supervisor compares the watcher with the tree (production). */
|
|
16
|
+
export declare const tscWatchCheckIntervalMs: number;
|
|
17
|
+
/** How long a source may stay newer than its output before the watcher is blamed (production): far above a compile's debounce. */
|
|
18
|
+
export declare const tscWatchStaleGraceMs: number;
|
|
19
|
+
/** The watcher restarts at most this many times within {@link tscWatchRestartWindowMs}: a tree the guard cannot cure is reported, not looped on. */
|
|
20
|
+
export declare const tscWatchRestartBudget = 3;
|
|
21
|
+
export declare const tscWatchRestartWindowMs: number;
|
|
22
|
+
/** A one-shot compile that runs longer is given up on (production tree: about 30 s). */
|
|
23
|
+
export declare const tscFreshCompileTimeoutMs: number;
|
|
24
|
+
/** What the watcher last said about itself. */
|
|
25
|
+
export type WatcherStatus = {
|
|
26
|
+
kind: 'unknown';
|
|
27
|
+
} | {
|
|
28
|
+
kind: 'compiling';
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'idle';
|
|
31
|
+
errorCount: number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* @description The watcher's status after a chunk of its output: the LAST marker in `text` wins (a chunk may hold a whole
|
|
35
|
+
* rebuild), none leaves `previous`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function readWatcherStatus(text: string, previous: WatcherStatus): WatcherStatus;
|
|
38
|
+
/** A compiled source the watcher has not turned into its output. */
|
|
39
|
+
export interface StaleSource {
|
|
40
|
+
/** Relative to the checkout, forward slashes (`src/bot.ts`). */
|
|
41
|
+
sourcePath: string;
|
|
42
|
+
sourceMtimeMs: number;
|
|
43
|
+
/** `null`: the output does not exist. */
|
|
44
|
+
outputMtimeMs: number | null;
|
|
45
|
+
}
|
|
46
|
+
/** The file-system calls the scan needs. */
|
|
47
|
+
export interface StaleScanFs {
|
|
48
|
+
readDirectory: (directory: string) => fs.Dirent[];
|
|
49
|
+
getModifiedMs: (filePath: string) => number | null;
|
|
50
|
+
}
|
|
51
|
+
/** `src/cli/hot.ts` → `dist/cli/hot.js` (the tsconfig's `rootDir` / `outDir`). */
|
|
52
|
+
export declare function getOutputPath(sourcePath: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* @description The compiled sources under `projectRoot/src` whose output is older than they are (or missing) and which changed
|
|
55
|
+
* more than `graceMs` before `nowMs` — the ones a watcher that is up to date has long since emitted. A file the compiler skips
|
|
56
|
+
* (tests, the release tooling, declarations) is never listed.
|
|
57
|
+
*/
|
|
58
|
+
export declare function listStaleSources(projectRoot: string, nowMs: number, graceMs: number, scanFs?: StaleScanFs): StaleSource[];
|
|
59
|
+
/**
|
|
60
|
+
* @description Compile the project once with a fresh TypeScript program and write nothing (`tsc --noEmit`): `true` when it is
|
|
61
|
+
* clean. The guard's referee when the watcher reports errors — a watcher that missed file events is wrong, a fresh program
|
|
62
|
+
* reads every file again. A compile that fails to run or outlives `timeoutMs` is "not clean": the watcher is left as it is.
|
|
63
|
+
*/
|
|
64
|
+
export declare function runFreshTscCompile(projectRoot: string, tscBin: string, timeoutMs?: number): Promise<boolean>;
|
|
65
|
+
/** The ports the guard drives; the supervisor gives the real ones, a test fakes them. */
|
|
66
|
+
export interface TscWatchGuardPorts {
|
|
67
|
+
getNowMs: () => number;
|
|
68
|
+
listStaleSources: (graceMs: number) => StaleSource[];
|
|
69
|
+
/** Compile the tree once with a fresh program, writing nothing; `true` when it compiles clean. */
|
|
70
|
+
runFreshCompile: () => Promise<boolean>;
|
|
71
|
+
/** Stop the watcher and start a new one (a fresh program reads every file again). */
|
|
72
|
+
restartWatcher: () => void;
|
|
73
|
+
log: (message: string) => void;
|
|
74
|
+
}
|
|
75
|
+
export interface TscWatchGuardOptions {
|
|
76
|
+
checkIntervalMs: number;
|
|
77
|
+
staleGraceMs: number;
|
|
78
|
+
}
|
|
79
|
+
export interface TscWatchGuard {
|
|
80
|
+
/** Feed the watcher's stdout. */
|
|
81
|
+
noteOutput: (text: string) => void;
|
|
82
|
+
/** One comparison of the watcher with the tree; resolves when it is done (a test calls it directly). */
|
|
83
|
+
check: () => Promise<void>;
|
|
84
|
+
start: () => void;
|
|
85
|
+
stop: () => void;
|
|
86
|
+
}
|
|
87
|
+
export declare function createTscWatchGuard(ports: TscWatchGuardPorts, options: TscWatchGuardOptions): TscWatchGuard;
|
|
88
|
+
/**
|
|
89
|
+
* @description The two windows the supervisor's guard runs with: production, or shortened by a flow through
|
|
90
|
+
* `CHARNESS_TEST_TIMINGS`. The supervisor does not load `testTimings.ts` (it pulls half the bot in, and every module the
|
|
91
|
+
* supervisor loads is one whose change asks it to re-execute): it reads just these two keys, and a value that is not a whole
|
|
92
|
+
* number of ms within the production window is ignored — the worker's boot is what refuses it by name.
|
|
93
|
+
*/
|
|
94
|
+
export declare function readTscWatchGuardTimings(env: NodeJS.ProcessEnv): TscWatchGuardOptions;
|
|
95
|
+
//# sourceMappingURL=tscWatchGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tscWatchGuard.d.ts","sourceRoot":"","sources":["../../src/cli/tscWatchGuard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAIzB;;;;;;;;;;;;GAYG;AAEH,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,QAAY,CAAC;AACjD,kIAAkI;AAClI,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAC9C,oJAAoJ;AACpJ,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD,wFAAwF;AACxF,eAAO,MAAM,wBAAwB,QAAgB,CAAC;AAetD,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/G;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa,CAgBtF;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;IAClD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACpD;AAaD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgC,GAAG,WAAW,EAAE,CAkB7I;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAiC,GAAG,OAAO,CAAC,OAAO,CAAC,CAatI;AAED,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;IACrD,kGAAkG;IAClG,eAAe,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,qFAAqF;IACrF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wGAAwG;IACxG,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAOD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA8F3G;AAKD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAiBrF"}
|