charness 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +3 -6
- package/DEVELOPMENT.md +15 -0
- package/README.md +111 -38
- package/SETUP.md +121 -16
- package/dist/adapters/adapterEventRouting.d.ts +2 -1
- package/dist/adapters/adapterEventRouting.d.ts.map +1 -1
- package/dist/adapters/adapterEventRouting.js +3 -0
- package/dist/adapters/adapterEventRouting.js.map +1 -1
- package/dist/adapters/adapterNames.d.ts +13 -0
- package/dist/adapters/adapterNames.d.ts.map +1 -1
- package/dist/adapters/adapterNames.js +16 -0
- package/dist/adapters/adapterNames.js.map +1 -1
- package/dist/adapters/backendUnavailableError.d.ts +11 -0
- package/dist/adapters/backendUnavailableError.d.ts.map +1 -0
- package/dist/adapters/backendUnavailableError.js +19 -0
- package/dist/adapters/backendUnavailableError.js.map +1 -0
- package/dist/adapters/claudeCliAdapter.d.ts +29 -6
- package/dist/adapters/claudeCliAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeCliAdapter.js +70 -16
- package/dist/adapters/claudeCliAdapter.js.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +36 -3
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.js +93 -30
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
- package/dist/adapters/createAdapter.d.ts +3 -14
- package/dist/adapters/createAdapter.d.ts.map +1 -1
- package/dist/adapters/createAdapter.js +9 -19
- package/dist/adapters/createAdapter.js.map +1 -1
- package/dist/adapters/openCodeAdapter.d.ts +140 -12
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/openCodeAdapter.js +385 -119
- package/dist/adapters/openCodeAdapter.js.map +1 -1
- package/dist/apiErrorRetry.d.ts +70 -6
- package/dist/apiErrorRetry.d.ts.map +1 -1
- package/dist/apiErrorRetry.js +312 -34
- package/dist/apiErrorRetry.js.map +1 -1
- package/dist/apiRetryKick.d.ts +26 -1
- package/dist/apiRetryKick.d.ts.map +1 -1
- package/dist/apiRetryKick.js +41 -2
- package/dist/apiRetryKick.js.map +1 -1
- package/dist/bot.d.ts +2 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +736 -184
- package/dist/bot.js.map +1 -1
- package/dist/cli/claudeProfiles.d.ts +1 -1
- package/dist/cli/claudeProfiles.js +1 -1
- package/dist/cli/hot.d.ts +7 -1
- package/dist/cli/hot.d.ts.map +1 -1
- package/dist/cli/hot.js +29 -3
- package/dist/cli/hot.js.map +1 -1
- package/dist/configDirFile.d.ts +73 -0
- package/dist/configDirFile.d.ts.map +1 -0
- package/dist/configDirFile.js +216 -0
- package/dist/configDirFile.js.map +1 -0
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +2 -2
- package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/autoContinueLimits.js +4 -4
- package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -1
- package/dist/connectors/telegram/commands/backendSwitch.d.ts +25 -0
- package/dist/connectors/telegram/commands/backendSwitch.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/backendSwitch.js +104 -0
- package/dist/connectors/telegram/commands/backendSwitch.js.map +1 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
- package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/callbackMessage.js +24 -0
- package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -1
- package/dist/connectors/telegram/commands/callbackToast.d.ts +36 -0
- package/dist/connectors/telegram/commands/callbackToast.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/callbackToast.js +83 -0
- package/dist/connectors/telegram/commands/callbackToast.js.map +1 -0
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts +18 -0
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/claudeAccounts.js +220 -66
- package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -1
- package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/displayModes.js +4 -2
- package/dist/connectors/telegram/commands/displayModes.js.map +1 -1
- package/dist/connectors/telegram/commands/fallbackChain.d.ts +5 -8
- package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/fallbackChain.js +183 -193
- package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -1
- package/dist/connectors/telegram/commands/limitsBoard.d.ts +40 -0
- package/dist/connectors/telegram/commands/limitsBoard.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/limitsBoard.js +281 -0
- package/dist/connectors/telegram/commands/limitsBoard.js.map +1 -0
- package/dist/connectors/telegram/commands/modelPage.d.ts +130 -0
- package/dist/connectors/telegram/commands/modelPage.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/modelPage.js +120 -0
- package/dist/connectors/telegram/commands/modelPage.js.map +1 -0
- package/dist/connectors/telegram/commands/modelProviders.d.ts +9 -1
- package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/modelProviders.js +203 -111
- package/dist/connectors/telegram/commands/modelProviders.js.map +1 -1
- package/dist/connectors/telegram/commands/stt.d.ts +32 -0
- package/dist/connectors/telegram/commands/stt.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/stt.js +460 -0
- package/dist/connectors/telegram/commands/stt.js.map +1 -0
- package/dist/effortLevels.d.ts +57 -7
- package/dist/effortLevels.d.ts.map +1 -1
- package/dist/effortLevels.js +65 -9
- package/dist/effortLevels.js.map +1 -1
- package/dist/i18n/de.d.ts.map +1 -1
- package/dist/i18n/de.js +160 -17
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +160 -17
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +160 -17
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +160 -17
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +160 -17
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +160 -17
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +160 -17
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +160 -17
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +160 -17
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +160 -17
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +160 -17
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +160 -17
- package/dist/i18n/zh.js.map +1 -1
- package/dist/installManager.d.ts +20 -4
- package/dist/installManager.d.ts.map +1 -1
- package/dist/installManager.js +82 -14
- package/dist/installManager.js.map +1 -1
- package/dist/instanceSettings.d.ts +52 -0
- package/dist/instanceSettings.d.ts.map +1 -0
- package/dist/instanceSettings.js +136 -0
- package/dist/instanceSettings.js.map +1 -0
- package/dist/pinnedStatus.d.ts +7 -1
- package/dist/pinnedStatus.d.ts.map +1 -1
- package/dist/pinnedStatus.js +1 -1
- package/dist/pinnedStatus.js.map +1 -1
- package/dist/requests/requestLedger.d.ts +8 -0
- package/dist/requests/requestLedger.d.ts.map +1 -1
- package/dist/requests/requestLedger.js +19 -1
- package/dist/requests/requestLedger.js.map +1 -1
- package/dist/scheduler/mcpSurface.js +4 -4
- package/dist/scheduler/mcpSurface.js.map +1 -1
- package/dist/shutdown.d.ts +14 -0
- package/dist/shutdown.d.ts.map +1 -1
- package/dist/shutdown.js +16 -0
- package/dist/shutdown.js.map +1 -1
- package/dist/state.d.ts +54 -2
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +62 -1
- package/dist/state.js.map +1 -1
- package/dist/stt/sttAutoInstall.d.ts +39 -0
- package/dist/stt/sttAutoInstall.d.ts.map +1 -0
- package/dist/stt/sttAutoInstall.js +158 -0
- package/dist/stt/sttAutoInstall.js.map +1 -0
- package/dist/stt/sttChildEnv.d.ts +11 -0
- package/dist/stt/sttChildEnv.d.ts.map +1 -0
- package/dist/stt/sttChildEnv.js +30 -0
- package/dist/stt/sttChildEnv.js.map +1 -0
- package/dist/stt/sttConfigEdit.d.ts +71 -0
- package/dist/stt/sttConfigEdit.d.ts.map +1 -0
- package/dist/stt/sttConfigEdit.js +144 -0
- package/dist/stt/sttConfigEdit.js.map +1 -0
- package/dist/stt/sttInstall.d.ts +147 -0
- package/dist/stt/sttInstall.d.ts.map +1 -0
- package/dist/stt/sttInstall.js +491 -0
- package/dist/stt/sttInstall.js.map +1 -0
- package/dist/stt/sttInstallEntry.d.ts +2 -0
- package/dist/stt/sttInstallEntry.d.ts.map +1 -0
- package/dist/stt/sttInstallEntry.js +31 -0
- package/dist/stt/sttInstallEntry.js.map +1 -0
- package/dist/stt/sttInstallReporter.d.ts +45 -0
- package/dist/stt/sttInstallReporter.d.ts.map +1 -0
- package/dist/stt/sttInstallReporter.js +57 -0
- package/dist/stt/sttInstallReporter.js.map +1 -0
- package/dist/stt/sttRuntime.d.ts +35 -0
- package/dist/stt/sttRuntime.d.ts.map +1 -0
- package/dist/stt/sttRuntime.js +73 -0
- package/dist/stt/sttRuntime.js.map +1 -0
- package/dist/stt/sttScreenPlan.d.ts +193 -0
- package/dist/stt/sttScreenPlan.d.ts.map +1 -0
- package/dist/stt/sttScreenPlan.js +541 -0
- package/dist/stt/sttScreenPlan.js.map +1 -0
- package/dist/stt/sttSettings.d.ts +201 -0
- package/dist/stt/sttSettings.d.ts.map +1 -0
- package/dist/stt/sttSettings.js +387 -0
- package/dist/stt/sttSettings.js.map +1 -0
- package/dist/stt/sttSidecarOwner.d.ts +115 -0
- package/dist/stt/sttSidecarOwner.d.ts.map +1 -0
- package/dist/stt/sttSidecarOwner.js +475 -0
- package/dist/stt/sttSidecarOwner.js.map +1 -0
- package/dist/stt/transcribeChain.d.ts +36 -0
- package/dist/stt/transcribeChain.d.ts.map +1 -0
- package/dist/stt/transcribeChain.js +42 -0
- package/dist/stt/transcribeChain.js.map +1 -0
- package/dist/types.d.ts +77 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/adapterSwitchSessionIds.d.ts +32 -0
- package/dist/utils/adapterSwitchSessionIds.d.ts.map +1 -0
- package/dist/utils/adapterSwitchSessionIds.js +44 -0
- package/dist/utils/adapterSwitchSessionIds.js.map +1 -0
- package/dist/utils/backendSwitchPlan.d.ts +63 -0
- package/dist/utils/backendSwitchPlan.d.ts.map +1 -0
- package/dist/utils/backendSwitchPlan.js +73 -0
- package/dist/utils/backendSwitchPlan.js.map +1 -0
- package/dist/utils/claudeAccountPickerPlan.d.ts +12 -1
- package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -1
- package/dist/utils/claudeAccountPickerPlan.js +20 -1
- package/dist/utils/claudeAccountPickerPlan.js.map +1 -1
- package/dist/utils/claudeTranscriptContent.d.ts +24 -0
- package/dist/utils/claudeTranscriptContent.d.ts.map +1 -0
- package/dist/utils/claudeTranscriptContent.js +107 -0
- package/dist/utils/claudeTranscriptContent.js.map +1 -0
- package/dist/utils/claudeUsage.d.ts +47 -8
- package/dist/utils/claudeUsage.d.ts.map +1 -1
- package/dist/utils/claudeUsage.js +76 -14
- package/dist/utils/claudeUsage.js.map +1 -1
- package/dist/utils/claudeUsageRefresher.d.ts +8 -1
- package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
- package/dist/utils/claudeUsageRefresher.js +9 -4
- package/dist/utils/claudeUsageRefresher.js.map +1 -1
- package/dist/utils/effortPickerPlan.d.ts +54 -0
- package/dist/utils/effortPickerPlan.d.ts.map +1 -0
- package/dist/utils/effortPickerPlan.js +56 -0
- package/dist/utils/effortPickerPlan.js.map +1 -0
- package/dist/utils/ensureSessionPlan.d.ts +20 -4
- package/dist/utils/ensureSessionPlan.d.ts.map +1 -1
- package/dist/utils/ensureSessionPlan.js +17 -4
- package/dist/utils/ensureSessionPlan.js.map +1 -1
- package/dist/utils/fallbackBridge.d.ts +6 -2
- package/dist/utils/fallbackBridge.d.ts.map +1 -1
- package/dist/utils/fallbackBridge.js +10 -3
- package/dist/utils/fallbackBridge.js.map +1 -1
- package/dist/utils/fallbackChain.d.ts +36 -0
- package/dist/utils/fallbackChain.d.ts.map +1 -1
- package/dist/utils/fallbackChain.js +65 -1
- package/dist/utils/fallbackChain.js.map +1 -1
- package/dist/utils/fallbackSwitchNotice.d.ts +41 -0
- package/dist/utils/fallbackSwitchNotice.d.ts.map +1 -0
- package/dist/utils/fallbackSwitchNotice.js +75 -0
- package/dist/utils/fallbackSwitchNotice.js.map +1 -0
- package/dist/utils/fileSendService.d.ts +33 -10
- package/dist/utils/fileSendService.d.ts.map +1 -1
- package/dist/utils/fileSendService.js +78 -27
- package/dist/utils/fileSendService.js.map +1 -1
- package/dist/utils/jsonStreamHost.d.ts +39 -0
- package/dist/utils/jsonStreamHost.d.ts.map +1 -1
- package/dist/utils/jsonStreamHost.js +60 -1
- package/dist/utils/jsonStreamHost.js.map +1 -1
- package/dist/utils/limitEpisodeRecovery.d.ts +16 -2
- package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -1
- package/dist/utils/limitEpisodeRecovery.js +44 -3
- package/dist/utils/limitEpisodeRecovery.js.map +1 -1
- package/dist/utils/limitSettings.d.ts +25 -0
- package/dist/utils/limitSettings.d.ts.map +1 -0
- package/dist/utils/limitSettings.js +31 -0
- package/dist/utils/limitSettings.js.map +1 -0
- package/dist/utils/limitsBoardPlan.d.ts +52 -0
- package/dist/utils/limitsBoardPlan.d.ts.map +1 -0
- package/dist/utils/limitsBoardPlan.js +93 -0
- package/dist/utils/limitsBoardPlan.js.map +1 -0
- package/dist/utils/openCodeUsage.d.ts +93 -0
- package/dist/utils/openCodeUsage.d.ts.map +1 -0
- package/dist/utils/openCodeUsage.js +248 -0
- package/dist/utils/openCodeUsage.js.map +1 -0
- package/dist/utils/operatorSwitchPlan.d.ts +61 -0
- package/dist/utils/operatorSwitchPlan.d.ts.map +1 -0
- package/dist/utils/operatorSwitchPlan.js +32 -0
- package/dist/utils/operatorSwitchPlan.js.map +1 -0
- package/dist/utils/promptDelivery.d.ts +40 -0
- package/dist/utils/promptDelivery.d.ts.map +1 -1
- package/dist/utils/promptDelivery.js +31 -0
- package/dist/utils/promptDelivery.js.map +1 -1
- package/dist/utils/recvPreviewRedaction.d.ts +14 -4
- package/dist/utils/recvPreviewRedaction.d.ts.map +1 -1
- package/dist/utils/recvPreviewRedaction.js +19 -7
- package/dist/utils/recvPreviewRedaction.js.map +1 -1
- package/dist/utils/startupReadiness.d.ts +3 -3
- package/dist/utils/startupReadiness.d.ts.map +1 -1
- package/dist/utils/startupReadiness.js +2 -2
- package/dist/utils/startupReadiness.js.map +1 -1
- package/dist/utils/threadStatusReport.d.ts +3 -1
- package/dist/utils/threadStatusReport.d.ts.map +1 -1
- package/dist/utils/threadStatusReport.js +4 -3
- package/dist/utils/threadStatusReport.js.map +1 -1
- package/dist/utils/timezone.d.ts +23 -0
- package/dist/utils/timezone.d.ts.map +1 -1
- package/dist/utils/timezone.js +38 -0
- package/dist/utils/timezone.js.map +1 -1
- package/dist/utils/transcribeAudio.d.ts +25 -12
- package/dist/utils/transcribeAudio.d.ts.map +1 -1
- package/dist/utils/transcribeAudio.js +39 -21
- package/dist/utils/transcribeAudio.js.map +1 -1
- package/dist/utils/usageRefreshBudget.d.ts +9 -0
- package/dist/utils/usageRefreshBudget.d.ts.map +1 -0
- package/dist/utils/usageRefreshBudget.js +27 -0
- package/dist/utils/usageRefreshBudget.js.map +1 -0
- package/examples/.env.example +7 -3
- package/examples/docker-compose.yml +9 -7
- package/package.json +2 -1
- package/stt/gigaam_sidecar.py +800 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeAccountPickerPlan.js","sourceRoot":"","sources":["../../src/utils/claudeAccountPickerPlan.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"claudeAccountPickerPlan.js","sourceRoot":"","sources":["../../src/utils/claudeAccountPickerPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** `absent`: no file; `metadataOnly`: a file with no conversation entry (the CLI's stub); `conversation`: a resumable one. */
|
|
2
|
+
export type ClaudeTranscriptContent = 'absent' | 'metadataOnly' | 'conversation';
|
|
3
|
+
/**
|
|
4
|
+
* @description What the transcript at `transcriptPath` holds. Streams the file from its start and stops at the first
|
|
5
|
+
* conversation entry — a real conversation answers within its first lines, a stub is a few hundred bytes — so a
|
|
6
|
+
* transcript of any size costs next to nothing. A file that cannot be read for another reason than being absent
|
|
7
|
+
* counts as a conversation: it is never taken for a stub, which the caller may remove.
|
|
8
|
+
*/
|
|
9
|
+
export declare function readClaudeTranscriptContent(transcriptPath: string): Promise<ClaudeTranscriptContent>;
|
|
10
|
+
/**
|
|
11
|
+
* @description How the CLI can be launched on a session id: `isResumable` — a resume was asked for AND the transcript
|
|
12
|
+
* holds a conversation; `isConversationLost` — a resume was asked for and the conversation is known to have had turns
|
|
13
|
+
* that are gone: the transcript is the metadata-only STUB (proof by itself), or it is missing while the caller
|
|
14
|
+
* `isConversationRecorded` (the bot saw the session take a turn — the file was removed by Claude Code's cleanup of
|
|
15
|
+
* old conversations). A missing transcript of a session nobody saw take a turn loses nothing (a session that never took
|
|
16
|
+
* a turn has none): it is neither resumable nor lost, and the id is simply started. What a launch that cannot resume does
|
|
17
|
+
* is the caller's to decide. A metadata-only stub is removed first — no launch flag accepts it («already in use»), and
|
|
18
|
+
* it holds nothing a conversation could be rebuilt from.
|
|
19
|
+
*/
|
|
20
|
+
export declare function prepareClaudeSessionLaunch(transcriptPath: string, isResumeRequested: boolean, isConversationRecorded?: boolean): Promise<{
|
|
21
|
+
isResumable: boolean;
|
|
22
|
+
isConversationLost: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=claudeTranscriptContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeTranscriptContent.d.ts","sourceRoot":"","sources":["../../src/utils/claudeTranscriptContent.ts"],"names":[],"mappings":"AAkBA,8HAA8H;AAC9H,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC;AAWjF;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAgB1G;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,OAAO,EAC1B,sBAAsB,UAAQ,GAC7B,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAE,CAAC,CAKhE"}
|
|
@@ -0,0 +1,107 @@
|
|
|
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.readClaudeTranscriptContent = readClaudeTranscriptContent;
|
|
37
|
+
exports.prepareClaudeSessionLaunch = prepareClaudeSessionLaunch;
|
|
38
|
+
/**
|
|
39
|
+
* What a Claude transcript file (`<projects>/<slug>/<sessionId>.jsonl`) holds, as far as launching the CLI on its
|
|
40
|
+
* session id is concerned. A file's EXISTENCE says nothing: the CLI leaves metadata-only stubs of its own (a process that
|
|
41
|
+
* is stopped while its transcript was removed under it — Claude Code's own cleanup of old transcripts — writes its
|
|
42
|
+
* `last-prompt`, `cost-state`, … entries back into a fresh file at exit), and measured against CLI 2.1.302 such a stub
|
|
43
|
+
* is refused by BOTH launch flags: `--resume` answers «No conversation found with session ID», `--session-id` answers
|
|
44
|
+
* «Session ID … is already in use».
|
|
45
|
+
*/
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const readline = __importStar(require("readline"));
|
|
48
|
+
/**
|
|
49
|
+
* The entry types that make a transcript a conversation. Measured against CLI 2.1.302: `--resume` runs on a transcript
|
|
50
|
+
* holding any one of them (even alone) and refuses one holding only metadata — `last-prompt`, `cost-state`,
|
|
51
|
+
* `atis-latch`, `ai-title`, `mode`, `queue-operation`, `api-request*`.
|
|
52
|
+
*/
|
|
53
|
+
const conversationEntryTypes = ['user', 'assistant', 'attachment'];
|
|
54
|
+
function readEntryType(line) {
|
|
55
|
+
try {
|
|
56
|
+
const entry = JSON.parse(line);
|
|
57
|
+
return typeof entry?.type === 'string' ? entry.type : null;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null; // a torn or foreign line holds no conversation
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @description What the transcript at `transcriptPath` holds. Streams the file from its start and stops at the first
|
|
65
|
+
* conversation entry — a real conversation answers within its first lines, a stub is a few hundred bytes — so a
|
|
66
|
+
* transcript of any size costs next to nothing. A file that cannot be read for another reason than being absent
|
|
67
|
+
* counts as a conversation: it is never taken for a stub, which the caller may remove.
|
|
68
|
+
*/
|
|
69
|
+
async function readClaudeTranscriptContent(transcriptPath) {
|
|
70
|
+
const stream = fs.createReadStream(transcriptPath, { encoding: 'utf8' });
|
|
71
|
+
const lines = readline.createInterface({ input: stream, crlfDelay: Infinity });
|
|
72
|
+
try {
|
|
73
|
+
for await (const line of lines) {
|
|
74
|
+
const entryType = readEntryType(line);
|
|
75
|
+
if (entryType !== null && conversationEntryTypes.includes(entryType))
|
|
76
|
+
return 'conversation';
|
|
77
|
+
}
|
|
78
|
+
return 'metadataOnly';
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
if (error instanceof Error && 'code' in error && error.code === 'ENOENT')
|
|
82
|
+
return 'absent';
|
|
83
|
+
return 'conversation';
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
lines.close();
|
|
87
|
+
stream.destroy();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* @description How the CLI can be launched on a session id: `isResumable` — a resume was asked for AND the transcript
|
|
92
|
+
* holds a conversation; `isConversationLost` — a resume was asked for and the conversation is known to have had turns
|
|
93
|
+
* that are gone: the transcript is the metadata-only STUB (proof by itself), or it is missing while the caller
|
|
94
|
+
* `isConversationRecorded` (the bot saw the session take a turn — the file was removed by Claude Code's cleanup of
|
|
95
|
+
* old conversations). A missing transcript of a session nobody saw take a turn loses nothing (a session that never took
|
|
96
|
+
* a turn has none): it is neither resumable nor lost, and the id is simply started. What a launch that cannot resume does
|
|
97
|
+
* is the caller's to decide. A metadata-only stub is removed first — no launch flag accepts it («already in use»), and
|
|
98
|
+
* it holds nothing a conversation could be rebuilt from.
|
|
99
|
+
*/
|
|
100
|
+
async function prepareClaudeSessionLaunch(transcriptPath, isResumeRequested, isConversationRecorded = false) {
|
|
101
|
+
const content = await readClaudeTranscriptContent(transcriptPath);
|
|
102
|
+
if (content === 'metadataOnly')
|
|
103
|
+
await fs.promises.rm(transcriptPath, { force: true });
|
|
104
|
+
const isGone = content === 'metadataOnly' || (content === 'absent' && isConversationRecorded);
|
|
105
|
+
return { isResumable: isResumeRequested && content === 'conversation', isConversationLost: isResumeRequested && isGone };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=claudeTranscriptContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeTranscriptContent.js","sourceRoot":"","sources":["../../src/utils/claudeTranscriptContent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,kEAgBC;AAYD,gEASC;AAzED;;;;;;;GAOG;AACH,uCAAyB;AACzB,mDAAqC;AAErC;;;;GAIG;AACH,MAAM,sBAAsB,GAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAKtF,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,GAA8B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,+CAA+C;IAC9D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,2BAA2B,CAAC,cAAsB;IACtE,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,SAAS,KAAK,IAAI,IAAI,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,cAAc,CAAC;QAC9F,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC1F,OAAO,cAAc,CAAC;IACxB,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,0BAA0B,CAC9C,cAAsB,EACtB,iBAA0B,EAC1B,sBAAsB,GAAG,KAAK;IAE9B,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,cAAc,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,cAAc;QAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,OAAO,KAAK,cAAc,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,sBAAsB,CAAC,CAAC;IAC9F,OAAO,EAAE,WAAW,EAAE,iBAAiB,IAAI,OAAO,KAAK,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,IAAI,MAAM,EAAE,CAAC;AAC3H,CAAC"}
|
|
@@ -68,20 +68,33 @@ export type ClaudeUsageFetchResult = {
|
|
|
68
68
|
error: string;
|
|
69
69
|
isAuthError: boolean;
|
|
70
70
|
};
|
|
71
|
-
type
|
|
71
|
+
export type UsageFetchLike = (url: string, init: {
|
|
72
72
|
headers: Record<string, string>;
|
|
73
73
|
signal: AbortSignal;
|
|
74
74
|
}) => Promise<{
|
|
75
75
|
status: number;
|
|
76
76
|
json(): Promise<unknown>;
|
|
77
77
|
}>;
|
|
78
|
+
/** What one GET of a usage endpoint needs: where, with which headers, and how its body becomes buckets. */
|
|
79
|
+
export interface UsageEndpointRequest {
|
|
80
|
+
url: string;
|
|
81
|
+
headers: Record<string, string>;
|
|
82
|
+
parse: (body: unknown) => ClaudeUsageBucket[];
|
|
83
|
+
fetchImpl?: UsageFetchLike;
|
|
84
|
+
timeoutMs?: number;
|
|
85
|
+
}
|
|
78
86
|
/**
|
|
79
|
-
* @description One GET of
|
|
80
|
-
* token is no longer accepted — the CLI's next run
|
|
81
|
-
* throws;
|
|
87
|
+
* @description One GET of a usage endpoint, the shared mechanics of every subscription usage reader (Claude's own, the
|
|
88
|
+
* ChatGPT one of `openCodeUsage.ts`): a 401/403 is an auth error (the token is no longer accepted — the CLI's next run
|
|
89
|
+
* renews it), anything else non-200 a plain failure, an empty parse a failure too. Never throws; the headers (the token)
|
|
90
|
+
* never appear in the result.
|
|
91
|
+
*/
|
|
92
|
+
export declare function fetchUsageBuckets(request: UsageEndpointRequest): Promise<ClaudeUsageFetchResult>;
|
|
93
|
+
/**
|
|
94
|
+
* @description One GET of the Claude usage endpoint with the profile's token (see {@link fetchUsageBuckets}).
|
|
82
95
|
*/
|
|
83
96
|
export declare function fetchClaudeUsage(token: string, options?: {
|
|
84
|
-
fetchImpl?:
|
|
97
|
+
fetchImpl?: UsageFetchLike;
|
|
85
98
|
timeoutMs?: number;
|
|
86
99
|
}): Promise<ClaudeUsageFetchResult>;
|
|
87
100
|
/**
|
|
@@ -113,10 +126,37 @@ export declare function markClaudeUsageSnapshotStale(previous: ClaudeUsageSnapsh
|
|
|
113
126
|
/** Whether `next` says anything `previous` did not — a stream frame per API request must not rewrite state.json each time. */
|
|
114
127
|
export declare function checkClaudeUsageBucketsChanged(previous: ClaudeUsageSnapshot | undefined, next: readonly ClaudeUsageBucket[]): boolean;
|
|
115
128
|
export declare function getClaudeUsageBucket(snapshot: ClaudeUsageSnapshot | undefined, kind: ClaudeUsageBucketKind): ClaudeUsageBucket | null;
|
|
116
|
-
/** Whether a model name (`fable`, `claude-fable-5-1`, …)
|
|
129
|
+
/** Whether a model name (`fable`, `claude-fable-5-1`, …) also drains Fable's own weekly window. */
|
|
117
130
|
export declare function checkIsScopedWeeklyModel(model: string | null): boolean;
|
|
118
|
-
/**
|
|
131
|
+
/**
|
|
132
|
+
* The windows that bound a launch of `model`. The session window and the weekly «all models» window are shared by EVERY model,
|
|
133
|
+
* Fable included; Fable additionally drains its own weekly window (`weekly_scoped`). So an exhausted shared window stops Fable
|
|
134
|
+
* too, while an exhausted Fable window stops Fable alone.
|
|
135
|
+
*/
|
|
119
136
|
export declare function getRelevantClaudeUsageKinds(model: string | null): ClaudeUsageBucketKind[];
|
|
137
|
+
/**
|
|
138
|
+
* @description Whether every window a launch of `model` drains is KNOWN and below 100 % — the model is clear of an exhausted
|
|
139
|
+
* window: a Fable-only weekly limit does not stop `sonnet`, while an exhausted session or shared weekly window stops every
|
|
140
|
+
* model, Fable included. Unknown figures (no snapshot, a window the snapshot lacks) are `false`: a limit nobody can tell the
|
|
141
|
+
* scope of is taken to cover the model. A stale snapshot still counts — its last figures are the best there are.
|
|
142
|
+
*/
|
|
143
|
+
export declare function checkHasHeadroomForClaudeModel(usage: ClaudeUsageSnapshot | undefined, model: string | null): boolean;
|
|
144
|
+
/**
|
|
145
|
+
* @description Whether the usage reading SHOWS a window `model` drains at 100 % NOW (`nowMs`) — the proof an
|
|
146
|
+
* unconfirmed usage-limit wording lacks. Unknown figures prove nothing (`false`), unlike
|
|
147
|
+
* {@link checkHasHeadroomForClaudeModel}, which takes an unknown window as covering the model; neither does an
|
|
148
|
+
* out-of-date reading — a snapshot marked stale, or a 100 % window whose reset has passed since it was read.
|
|
149
|
+
*/
|
|
150
|
+
export declare function checkIsClaudeUsageExhausted(usage: ClaudeUsageSnapshot | undefined, model: string | null, nowMs: number): boolean;
|
|
151
|
+
/**
|
|
152
|
+
* @description Whether a pick of `pickedModel`, on the account a usage limit stopped while it ran `limitedModel`, is clear of that
|
|
153
|
+
* limit. The window that stopped the limited model is one of the windows IT drains, so a picked model that drains all of them
|
|
154
|
+
* (the same model, a model on the same windows, or Fable after any other model — Fable drains the shared windows too) is covered
|
|
155
|
+
* by the limit however far the figures lag behind it. Only a model draining FEWER windows — a non-Fable model after Fable, which
|
|
156
|
+
* may have stopped on its own weekly window alone — is judged by {@link checkHasHeadroomForClaudeModel}. An unknown
|
|
157
|
+
* `limitedModel` leaves it to the figures.
|
|
158
|
+
*/
|
|
159
|
+
export declare function checkIsClaudeModelClearOfLimit(usage: ClaudeUsageSnapshot | undefined, limitedModel: string | null, pickedModel: string): boolean;
|
|
120
160
|
/** What the ranking needs to know about one profile (the bot reads it off state, the CLI off state.json). */
|
|
121
161
|
export interface ClaudeProfileUsageView {
|
|
122
162
|
name: string;
|
|
@@ -205,5 +245,4 @@ export declare function formatClaudeUsageBucket(bucket: ClaudeUsageBucket | null
|
|
|
205
245
|
fallbackResetsAt?: string | null;
|
|
206
246
|
words?: ClaudeRelativeResetWords;
|
|
207
247
|
}): string;
|
|
208
|
-
export {};
|
|
209
248
|
//# sourceMappingURL=claudeUsage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeUsage.d.ts","sourceRoot":"","sources":["../../src/utils/claudeUsage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAuE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE/H,eAAO,MAAM,mBAAmB,8CAA8C,CAAC;AAK/E,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD,gGAAgG;AAChG,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,YAAY,GAAG,eAAe,CAAC;AAE/E,eAAO,MAAM,sBAAsB,EAAE,SAAS,qBAAqB,EAA+C,CAAC;AAEnH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,4FAA4F;IAC5F,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,aAAa,GAAE,MAA+B,GAAG,gBAAgB,GAAG,IAAI,CAWtI;AAED,+FAA+F;AAC/F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzF;AAID,MAAM,MAAM,sBAAsB,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvD,
|
|
1
|
+
{"version":3,"file":"claudeUsage.d.ts","sourceRoot":"","sources":["../../src/utils/claudeUsage.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
55
55
|
exports.englishRelativeResetWords = exports.claudeUsageBucketKinds = exports.claudeUsageFetchTimeoutMs = exports.claudeUsageEndpoint = void 0;
|
|
56
56
|
exports.readClaudeOAuthToken = readClaudeOAuthToken;
|
|
57
57
|
exports.checkIsClaudeTokenExpired = checkIsClaudeTokenExpired;
|
|
58
|
+
exports.fetchUsageBuckets = fetchUsageBuckets;
|
|
58
59
|
exports.fetchClaudeUsage = fetchClaudeUsage;
|
|
59
60
|
exports.parseClaudeUsageResponse = parseClaudeUsageResponse;
|
|
60
61
|
exports.buildBucketsFromRateLimitWindows = buildBucketsFromRateLimitWindows;
|
|
@@ -64,6 +65,9 @@ exports.checkClaudeUsageBucketsChanged = checkClaudeUsageBucketsChanged;
|
|
|
64
65
|
exports.getClaudeUsageBucket = getClaudeUsageBucket;
|
|
65
66
|
exports.checkIsScopedWeeklyModel = checkIsScopedWeeklyModel;
|
|
66
67
|
exports.getRelevantClaudeUsageKinds = getRelevantClaudeUsageKinds;
|
|
68
|
+
exports.checkHasHeadroomForClaudeModel = checkHasHeadroomForClaudeModel;
|
|
69
|
+
exports.checkIsClaudeUsageExhausted = checkIsClaudeUsageExhausted;
|
|
70
|
+
exports.checkIsClaudeModelClearOfLimit = checkIsClaudeModelClearOfLimit;
|
|
67
71
|
exports.buildClaudeProfilesReport = buildClaudeProfilesReport;
|
|
68
72
|
exports.buildClaudeProfileUsageViews = buildClaudeProfileUsageViews;
|
|
69
73
|
exports.readClaudeProfileRecordsFromStateFile = readClaudeProfileRecordsFromStateFile;
|
|
@@ -102,24 +106,22 @@ function checkIsClaudeTokenExpired(token, nowMs) {
|
|
|
102
106
|
return token.expiresAtMs !== null && token.expiresAtMs <= nowMs;
|
|
103
107
|
}
|
|
104
108
|
/**
|
|
105
|
-
* @description One GET of
|
|
106
|
-
* token is no longer accepted — the CLI's next run
|
|
107
|
-
* throws;
|
|
109
|
+
* @description One GET of a usage endpoint, the shared mechanics of every subscription usage reader (Claude's own, the
|
|
110
|
+
* ChatGPT one of `openCodeUsage.ts`): a 401/403 is an auth error (the token is no longer accepted — the CLI's next run
|
|
111
|
+
* renews it), anything else non-200 a plain failure, an empty parse a failure too. Never throws; the headers (the token)
|
|
112
|
+
* never appear in the result.
|
|
108
113
|
*/
|
|
109
|
-
async function
|
|
110
|
-
const fetchImpl =
|
|
114
|
+
async function fetchUsageBuckets(request) {
|
|
115
|
+
const fetchImpl = request.fetchImpl ?? globalThis.fetch;
|
|
111
116
|
const controller = new AbortController();
|
|
112
|
-
const timer = setTimeout(() => controller.abort(),
|
|
117
|
+
const timer = setTimeout(() => controller.abort(), request.timeoutMs ?? exports.claudeUsageFetchTimeoutMs);
|
|
113
118
|
try {
|
|
114
|
-
const response = await fetchImpl(
|
|
115
|
-
headers: { Authorization: `Bearer ${token}`, 'anthropic-beta': claudeOAuthBetaHeader, Accept: 'application/json' },
|
|
116
|
-
signal: controller.signal,
|
|
117
|
-
});
|
|
119
|
+
const response = await fetchImpl(request.url, { headers: request.headers, signal: controller.signal });
|
|
118
120
|
if (response.status === 401 || response.status === 403)
|
|
119
121
|
return { ok: false, error: `http ${response.status}`, isAuthError: true };
|
|
120
122
|
if (response.status !== 200)
|
|
121
123
|
return { ok: false, error: `http ${response.status}`, isAuthError: false };
|
|
122
|
-
const buckets =
|
|
124
|
+
const buckets = request.parse(await response.json());
|
|
123
125
|
if (buckets.length === 0)
|
|
124
126
|
return { ok: false, error: 'no limits in the response', isAuthError: false };
|
|
125
127
|
return { ok: true, buckets };
|
|
@@ -132,6 +134,17 @@ async function fetchClaudeUsage(token, options = {}) {
|
|
|
132
134
|
clearTimeout(timer);
|
|
133
135
|
}
|
|
134
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* @description One GET of the Claude usage endpoint with the profile's token (see {@link fetchUsageBuckets}).
|
|
139
|
+
*/
|
|
140
|
+
async function fetchClaudeUsage(token, options = {}) {
|
|
141
|
+
return fetchUsageBuckets({
|
|
142
|
+
url: exports.claudeUsageEndpoint,
|
|
143
|
+
headers: { Authorization: `Bearer ${token}`, 'anthropic-beta': claudeOAuthBetaHeader, Accept: 'application/json' },
|
|
144
|
+
parse: parseClaudeUsageResponse,
|
|
145
|
+
...options,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
135
148
|
/**
|
|
136
149
|
* @description The buckets of a usage response. Reads `limits[]` (`kind` session / weekly_all /
|
|
137
150
|
* weekly_scoped, `percent`, `resets_at`, `scope.model.display_name`); a response without it (an older
|
|
@@ -229,13 +242,62 @@ function getClaudeUsageBucket(snapshot, kind) {
|
|
|
229
242
|
return snapshot?.buckets.find((bucket) => bucket.kind === kind) ?? null;
|
|
230
243
|
}
|
|
231
244
|
// ── which profile for a model ──
|
|
232
|
-
/** Whether a model name (`fable`, `claude-fable-5-1`, …)
|
|
245
|
+
/** Whether a model name (`fable`, `claude-fable-5-1`, …) also drains Fable's own weekly window. */
|
|
233
246
|
function checkIsScopedWeeklyModel(model) {
|
|
234
247
|
return model !== null && /fable/i.test(model);
|
|
235
248
|
}
|
|
236
|
-
/**
|
|
249
|
+
/**
|
|
250
|
+
* The windows that bound a launch of `model`. The session window and the weekly «all models» window are shared by EVERY model,
|
|
251
|
+
* Fable included; Fable additionally drains its own weekly window (`weekly_scoped`). So an exhausted shared window stops Fable
|
|
252
|
+
* too, while an exhausted Fable window stops Fable alone.
|
|
253
|
+
*/
|
|
237
254
|
function getRelevantClaudeUsageKinds(model) {
|
|
238
|
-
return
|
|
255
|
+
return checkIsScopedWeeklyModel(model) ? ['session', 'weekly_all', 'weekly_scoped'] : ['session', 'weekly_all'];
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* @description Whether every window a launch of `model` drains is KNOWN and below 100 % — the model is clear of an exhausted
|
|
259
|
+
* window: a Fable-only weekly limit does not stop `sonnet`, while an exhausted session or shared weekly window stops every
|
|
260
|
+
* model, Fable included. Unknown figures (no snapshot, a window the snapshot lacks) are `false`: a limit nobody can tell the
|
|
261
|
+
* scope of is taken to cover the model. A stale snapshot still counts — its last figures are the best there are.
|
|
262
|
+
*/
|
|
263
|
+
function checkHasHeadroomForClaudeModel(usage, model) {
|
|
264
|
+
return getRelevantClaudeUsageKinds(model).every((kind) => {
|
|
265
|
+
const bucket = getClaudeUsageBucket(usage, kind);
|
|
266
|
+
return bucket !== null && bucket.percent < 100;
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* @description Whether the usage reading SHOWS a window `model` drains at 100 % NOW (`nowMs`) — the proof an
|
|
271
|
+
* unconfirmed usage-limit wording lacks. Unknown figures prove nothing (`false`), unlike
|
|
272
|
+
* {@link checkHasHeadroomForClaudeModel}, which takes an unknown window as covering the model; neither does an
|
|
273
|
+
* out-of-date reading — a snapshot marked stale, or a 100 % window whose reset has passed since it was read.
|
|
274
|
+
*/
|
|
275
|
+
function checkIsClaudeUsageExhausted(usage, model, nowMs) {
|
|
276
|
+
if (!usage || usage.isStale === true)
|
|
277
|
+
return false;
|
|
278
|
+
return getRelevantClaudeUsageKinds(model).some((kind) => {
|
|
279
|
+
const bucket = getClaudeUsageBucket(usage, kind);
|
|
280
|
+
if (!bucket || bucket.percent < 100)
|
|
281
|
+
return false;
|
|
282
|
+
const resetsAtMs = bucket.resetsAt === null ? Number.NaN : Date.parse(bucket.resetsAt);
|
|
283
|
+
return !(Number.isFinite(resetsAtMs) && resetsAtMs <= nowMs);
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* @description Whether a pick of `pickedModel`, on the account a usage limit stopped while it ran `limitedModel`, is clear of that
|
|
288
|
+
* limit. The window that stopped the limited model is one of the windows IT drains, so a picked model that drains all of them
|
|
289
|
+
* (the same model, a model on the same windows, or Fable after any other model — Fable drains the shared windows too) is covered
|
|
290
|
+
* by the limit however far the figures lag behind it. Only a model draining FEWER windows — a non-Fable model after Fable, which
|
|
291
|
+
* may have stopped on its own weekly window alone — is judged by {@link checkHasHeadroomForClaudeModel}. An unknown
|
|
292
|
+
* `limitedModel` leaves it to the figures.
|
|
293
|
+
*/
|
|
294
|
+
function checkIsClaudeModelClearOfLimit(usage, limitedModel, pickedModel) {
|
|
295
|
+
if (limitedModel !== null) {
|
|
296
|
+
const pickedKinds = getRelevantClaudeUsageKinds(pickedModel);
|
|
297
|
+
if (getRelevantClaudeUsageKinds(limitedModel).every((kind) => pickedKinds.includes(kind)))
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
300
|
+
return checkHasHeadroomForClaudeModel(usage, pickedModel);
|
|
239
301
|
}
|
|
240
302
|
/**
|
|
241
303
|
* @description Rank the profiles for a launch of `model`: a profile that is signed out, marked limited
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeUsage.js","sourceRoot":"","sources":["../../src/utils/claudeUsage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claudeUsage.js","sourceRoot":"","sources":["../../src/utils/claudeUsage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @description The usage poller behind `/account`, the `claude_profiles` MCP tool and the stream frames: keeps
|
|
3
3
|
* one `ClaudeUsageSnapshot` per account profile current (`utils/claudeUsage.ts`), reading every signed-in
|
|
4
|
-
* profile's own token. Runs on a modest timer (`claudeUsageRefreshIntervalMs`), on `/account` open and on
|
|
4
|
+
* profile's own token — and, beside them, the usage of the OpenCode subscriptions (`utils/openCodeUsage.ts`). Runs on a modest timer (`claudeUsageRefreshIntervalMs`), on `/account` open and on
|
|
5
5
|
* demand (`refreshAll({ maxAgeMs })` skips a snapshot fresher than that), and folds in the `rate_limit_event`
|
|
6
6
|
* windows a json-stream session reports (`noteStreamWindows`), persisting only when a bucket actually moved.
|
|
7
7
|
*
|
|
@@ -25,6 +25,13 @@ export interface ClaudeUsageRefresherDeps {
|
|
|
25
25
|
saveSnapshot: (name: string, snapshot: ClaudeUsageSnapshot) => void;
|
|
26
26
|
readToken: (configDir: string | null) => ClaudeOAuthToken | null;
|
|
27
27
|
fetchUsage: (accessToken: string) => Promise<ClaudeUsageFetchResult>;
|
|
28
|
+
/**
|
|
29
|
+
* The OpenCode providers' usage (`openCodeUsage.ts`) is polled on the same timer and by the same on-demand call; a
|
|
30
|
+
* failure there never reaches the Claude profiles' polls.
|
|
31
|
+
*/
|
|
32
|
+
refreshOpenCode?: (options: {
|
|
33
|
+
maxAgeMs?: number;
|
|
34
|
+
}) => Promise<void>;
|
|
28
35
|
now?: () => number;
|
|
29
36
|
log?: (line: string) => void;
|
|
30
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeUsageRefresher.d.ts","sourceRoot":"","sources":["../../src/utils/claudeUsageRefresher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,4BAA4B,QAAc,CAAC;AAExD,wGAAwG;AACxG,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAElD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,2BAA2B,EAAE,CAAC;IAClD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,mBAAmB,GAAG,SAAS,CAAC;IAC/D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,gBAAgB,GAAG,IAAI,CAAC;IACjE,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,kIAAkI;IAClI,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,qDAAqD;IACrD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,yEAAyE;IACzE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,qBAAqB,EAAE,KAAK,IAAI,CAAC;IACrF,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"claudeUsageRefresher.d.ts","sourceRoot":"","sources":["../../src/utils/claudeUsageRefresher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,4BAA4B,QAAc,CAAC;AAExD,wGAAwG;AACxG,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAElD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,2BAA2B,EAAE,CAAC;IAClD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,mBAAmB,GAAG,SAAS,CAAC;IAC/D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,gBAAgB,GAAG,IAAI,CAAC;IACjE,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrE;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,kIAAkI;IAClI,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,qDAAqD;IACrD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,yEAAyE;IACzE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,qBAAqB,EAAE,KAAK,IAAI,CAAC;IACrF,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,oBAAoB,CA8E/F"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @description The usage poller behind `/account`, the `claude_profiles` MCP tool and the stream frames: keeps
|
|
4
4
|
* one `ClaudeUsageSnapshot` per account profile current (`utils/claudeUsage.ts`), reading every signed-in
|
|
5
|
-
* profile's own token. Runs on a modest timer (`claudeUsageRefreshIntervalMs`), on `/account` open and on
|
|
5
|
+
* profile's own token — and, beside them, the usage of the OpenCode subscriptions (`utils/openCodeUsage.ts`). Runs on a modest timer (`claudeUsageRefreshIntervalMs`), on `/account` open and on
|
|
6
6
|
* demand (`refreshAll({ maxAgeMs })` skips a snapshot fresher than that), and folds in the `rate_limit_event`
|
|
7
7
|
* windows a json-stream session reports (`noteStreamWindows`), persisting only when a bucket actually moved.
|
|
8
8
|
*
|
|
@@ -60,9 +60,14 @@ function createClaudeUsageRefresher(deps) {
|
|
|
60
60
|
return inFlight;
|
|
61
61
|
inFlight = (async () => {
|
|
62
62
|
const due = deps.listProfiles().filter((profile) => checkNeedsPoll(profile, options.maxAgeMs));
|
|
63
|
-
await Promise.all(
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
await Promise.all([
|
|
64
|
+
...due.map((profile) => pollProfile(profile).catch((e) => {
|
|
65
|
+
log(`[usage] ${profile.name}: usage poll threw: ${e instanceof Error ? e.message : String(e)}`);
|
|
66
|
+
})),
|
|
67
|
+
deps.refreshOpenCode?.(options).catch((e) => {
|
|
68
|
+
log(`[usage] OpenCode providers: usage poll threw: ${e instanceof Error ? e.message : String(e)}`);
|
|
69
|
+
}),
|
|
70
|
+
]);
|
|
66
71
|
})().finally(() => { inFlight = null; });
|
|
67
72
|
return inFlight;
|
|
68
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeUsageRefresher.js","sourceRoot":"","sources":["../../src/utils/claudeUsageRefresher.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
|
1
|
+
{"version":3,"file":"claudeUsageRefresher.js","sourceRoot":"","sources":["../../src/utils/claudeUsageRefresher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Pure plan of the `/effort` picker (text + buttons), shared by the command and its buttons in
|
|
3
|
+
* `connectors/telegram/commands/modelProviders.ts` so the text and the ✓ can never drift between the first render
|
|
4
|
+
* and the re-render after a tap.
|
|
5
|
+
*
|
|
6
|
+
* Two screens:
|
|
7
|
+
* - **General** — the instance default (`settings.json`): says it is the default of every topic without its own
|
|
8
|
+
* effort; one button per level, the current default marked ✓.
|
|
9
|
+
* - **A topic** — the level in force AND where it comes from («as in General» / «set for this topic»); one button
|
|
10
|
+
* per level the backend offers (✓ on the one in force) and, when the backend can clear a pick, a last button
|
|
11
|
+
* that puts the topic back on General's value.
|
|
12
|
+
*/
|
|
13
|
+
/** Levels per keyboard row. */
|
|
14
|
+
export declare const effortPickerColumns = 3;
|
|
15
|
+
/** The «as in General» button of a topic's picker. Disjoint from {@link effortLevelCallbackRe} (no underscore). */
|
|
16
|
+
export declare const effortSameCallback = "effortsame";
|
|
17
|
+
/** Matches a level button's callback data. */
|
|
18
|
+
export declare const effortLevelCallbackRe: RegExp;
|
|
19
|
+
/** @description A level button's callback data. */
|
|
20
|
+
export declare function buildEffortLevelCallback(level: string): string;
|
|
21
|
+
export interface EffortPickerButton {
|
|
22
|
+
text: string;
|
|
23
|
+
data: string;
|
|
24
|
+
}
|
|
25
|
+
export interface EffortPicker {
|
|
26
|
+
text: string;
|
|
27
|
+
/** Rows of buttons, top to bottom. */
|
|
28
|
+
rows: EffortPickerButton[][];
|
|
29
|
+
}
|
|
30
|
+
export type EffortPickerInput = {
|
|
31
|
+
isGeneral: true;
|
|
32
|
+
/** The levels General offers (the Claude set). */
|
|
33
|
+
levels: readonly string[];
|
|
34
|
+
/** The instance default now in force. */
|
|
35
|
+
instanceDefault: string;
|
|
36
|
+
} | {
|
|
37
|
+
isGeneral: false;
|
|
38
|
+
levels: readonly string[];
|
|
39
|
+
/** The level the topic's RUNNING session uses, else the level its next start will use (OpenCode: among `levels`). */
|
|
40
|
+
inForce: string;
|
|
41
|
+
/** The level the next start will use when it differs from `inForce` — the default changed under a running session. */
|
|
42
|
+
nextStartLevel: string | null;
|
|
43
|
+
/** The topic's next start takes its own pick (`getOwnEffort`), instead of following General. */
|
|
44
|
+
isOwnPick: boolean;
|
|
45
|
+
/** What the «as in General» button promises: the instance default as the topic will really get it (among `levels`). */
|
|
46
|
+
instanceDefault: string;
|
|
47
|
+
/** The backend can clear a pick (`clearEffort`): the «as in General» button is offered. */
|
|
48
|
+
canClear: boolean;
|
|
49
|
+
};
|
|
50
|
+
type Translate = (code: string, vars?: Record<string, string | number>) => string;
|
|
51
|
+
/** @description The `/effort` picker for `input`: its text and button rows. */
|
|
52
|
+
export declare function buildEffortPicker(input: EffortPickerInput, translate: Translate): EffortPicker;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=effortPickerPlan.d.ts.map
|