sidekick-shared 0.27.6 → 0.28.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 +28 -0
- package/README.md +58 -18
- package/dist/browser.d.ts +13 -2
- package/dist/browser.js +30 -2
- package/dist/claudePaths.d.ts +11 -0
- package/dist/claudePaths.js +61 -0
- package/dist/claudeProfiles.d.ts +2 -9
- package/dist/claudeProfiles.js +10 -25
- package/dist/codexPaths.d.ts +22 -0
- package/dist/codexPaths.js +67 -0
- package/dist/codexProfiles.d.ts +1 -4
- package/dist/codexProfiles.js +5 -43
- package/dist/doctor.js +2 -2
- package/dist/esm/accountChangeSignal.js +15 -0
- package/dist/esm/accountChanges.js +152 -0
- package/dist/esm/accountHealth.js +288 -0
- package/dist/esm/accountLaunch.js +145 -0
- package/dist/esm/accountLease.js +60 -0
- package/dist/esm/accountManager.js +606 -0
- package/dist/esm/accountRegistry.js +214 -0
- package/dist/esm/accountStatus.js +51 -0
- package/dist/esm/accountSwitch.js +74 -0
- package/dist/esm/accountSync.js +156 -0
- package/dist/esm/accountSyncTypes.js +4 -0
- package/dist/esm/accounts.js +1291 -0
- package/dist/esm/aggregation/EventAggregator.js +2034 -0
- package/dist/esm/aggregation/FrequencyTracker.js +69 -0
- package/dist/esm/aggregation/HeatmapTracker.js +89 -0
- package/dist/esm/aggregation/PatternExtractor.js +168 -0
- package/dist/esm/aggregation/costProvenance.js +31 -0
- package/dist/esm/aggregation/snapshot.js +161 -0
- package/dist/esm/aggregation/types.js +5 -0
- package/dist/esm/analytics/codeImpact.js +18 -0
- package/dist/esm/analytics/compactionLedger.js +37 -0
- package/dist/esm/analytics/qualityScore.js +112 -0
- package/dist/esm/autoSwitch.js +185 -0
- package/dist/esm/browser.js +34 -0
- package/dist/esm/claudeCredentialDoctor.js +239 -0
- package/dist/esm/claudeCredentialLedger.js +91 -0
- package/dist/esm/claudeCredentials.js +111 -0
- package/dist/esm/claudeLiveGuard.js +43 -0
- package/dist/esm/claudePaths.js +22 -0
- package/dist/esm/claudeProfiles.js +142 -0
- package/dist/esm/claudeRefreshLock.js +106 -0
- package/dist/esm/codexAuth.js +101 -0
- package/dist/esm/codexCredentialDoctor.js +265 -0
- package/dist/esm/codexCredentialStore.js +164 -0
- package/dist/esm/codexKeepAlive.js +112 -0
- package/dist/esm/codexPaths.js +172 -0
- package/dist/esm/codexProfiles.js +1251 -0
- package/dist/esm/codexQuota.js +564 -0
- package/dist/esm/codexQuotaWatcher.js +363 -0
- package/dist/esm/context/composer.js +71 -0
- package/dist/esm/context/sessionContext.js +546 -0
- package/dist/esm/credentialIO.js +283 -0
- package/dist/esm/credentials.js +49 -0
- package/dist/esm/doctor.js +305 -0
- package/dist/esm/ensureDefaultAccounts.js +62 -0
- package/dist/esm/errorHistory.js +56 -0
- package/dist/esm/extractors/errorTaxonomy.js +43 -0
- package/dist/esm/extractors/gatherAssets.js +32 -0
- package/dist/esm/extractors/sessionAssets.js +176 -0
- package/dist/esm/extractors/sources/claudeAssets.js +158 -0
- package/dist/esm/extractors/sources/codexAssets.js +234 -0
- package/dist/esm/extractors/tokenUsage.js +41 -0
- package/dist/esm/extractors/toolCall.js +142 -0
- package/dist/esm/failingTools.js +65 -0
- package/dist/esm/fileHead.js +27 -0
- package/dist/esm/formatters/eventHighlighter.js +332 -0
- package/dist/esm/formatters/noiseClassifier.js +209 -0
- package/dist/esm/formatters/sessionDump.js +328 -0
- package/dist/esm/formatters/toolSummary.js +226 -0
- package/dist/esm/formatting.js +82 -0
- package/dist/esm/handoffUrl.js +23 -0
- package/dist/esm/historicalStore.js +305 -0
- package/dist/esm/humanPrompt.js +88 -0
- package/dist/esm/index.js +213 -0
- package/dist/esm/keepAlive.js +189 -0
- package/dist/esm/liveCredentialGuard.js +33 -0
- package/dist/esm/modelAliases.js +51 -0
- package/dist/esm/modelCatalog.js +139 -0
- package/dist/esm/modelContext.js +280 -0
- package/dist/esm/modelInfo.js +832 -0
- package/dist/esm/multiProviderQuotaService.js +450 -0
- package/dist/esm/node.js +46 -0
- package/dist/esm/observedContextWindows.js +165 -0
- package/dist/esm/observedSessionCollector.js +939 -0
- package/dist/esm/parsers/changelogParser.js +71 -0
- package/dist/esm/parsers/codexHistory.js +89 -0
- package/dist/esm/parsers/codexParser.js +906 -0
- package/dist/esm/parsers/debugLogParser.js +126 -0
- package/dist/esm/parsers/jsonl.js +66 -0
- package/dist/esm/parsers/mcpToolName.js +28 -0
- package/dist/esm/parsers/openCodeParser.js +625 -0
- package/dist/esm/parsers/planExtractor.js +335 -0
- package/dist/esm/parsers/sessionActivityDetector.js +246 -0
- package/dist/esm/parsers/sessionPathResolver.js +713 -0
- package/dist/esm/parsers/subagentScanner.js +360 -0
- package/dist/esm/parsers/subagentStatsCache.js +45 -0
- package/dist/esm/parsers/subagentTraceParser.js +325 -0
- package/dist/esm/paths.js +134 -0
- package/dist/esm/peakHours.js +194 -0
- package/dist/esm/phrases.js +1330 -0
- package/dist/esm/pricingCatalog.js +247 -0
- package/dist/esm/processDetection.js +200 -0
- package/dist/esm/projectMigration.js +59 -0
- package/dist/esm/promptHistory.js +1221 -0
- package/dist/esm/providerFailure.js +362 -0
- package/dist/esm/providerIds.js +6 -0
- package/dist/esm/providerQuota.js +1 -0
- package/dist/esm/providerServiceStatus.js +145 -0
- package/dist/esm/providerServiceStatusTypes.js +1 -0
- package/dist/esm/providerStatus.js +117 -0
- package/dist/esm/providers/claudeCode.js +575 -0
- package/dist/esm/providers/claudeListing.js +121 -0
- package/dist/esm/providers/codex.js +1034 -0
- package/dist/esm/providers/codexDatabase.js +297 -0
- package/dist/esm/providers/codexRollouts.js +215 -0
- package/dist/esm/providers/detect.js +185 -0
- package/dist/esm/providers/diagnostics.js +83 -0
- package/dist/esm/providers/directoryListingCache.js +206 -0
- package/dist/esm/providers/factory.js +54 -0
- package/dist/esm/providers/openCode.js +2008 -0
- package/dist/esm/providers/openCodeDatabase.js +419 -0
- package/dist/esm/providers/rolloutWalker.js +252 -0
- package/dist/esm/providers/types.js +12 -0
- package/dist/esm/quota.js +182 -0
- package/dist/esm/quotaHistory.js +364 -0
- package/dist/esm/quotaPoller.js +230 -0
- package/dist/esm/quotaPresentation.js +97 -0
- package/dist/esm/quotaResolver.js +231 -0
- package/dist/esm/quotaSnapshots.js +130 -0
- package/dist/esm/quotaThresholds.js +85 -0
- package/dist/esm/readers/decisions.js +24 -0
- package/dist/esm/readers/handoff.js +20 -0
- package/dist/esm/readers/helpers.js +27 -0
- package/dist/esm/readers/history.js +9 -0
- package/dist/esm/readers/notes.js +48 -0
- package/dist/esm/readers/plans.js +225 -0
- package/dist/esm/readers/tasks.js +19 -0
- package/dist/esm/report/htmlHelpers.js +280 -0
- package/dist/esm/report/htmlReportGenerator.js +704 -0
- package/dist/esm/report/index.js +7 -0
- package/dist/esm/report/logo.js +2 -0
- package/dist/esm/report/openBrowser.js +19 -0
- package/dist/esm/report/sessionReportInputs.js +33 -0
- package/dist/esm/report/transcriptParser.js +83 -0
- package/dist/esm/report/types.js +4 -0
- package/dist/esm/schemas/accountManager.js +204 -0
- package/dist/esm/schemas/accountStatus.js +25 -0
- package/dist/esm/schemas/assistantTurn.js +74 -0
- package/dist/esm/schemas/index.js +25 -0
- package/dist/esm/schemas/observedSessionV1.js +77 -0
- package/dist/esm/schemas/providerFailure.js +37 -0
- package/dist/esm/schemas/quota.js +132 -0
- package/dist/esm/schemas/quotaHistory.js +40 -0
- package/dist/esm/schemas/sessionEvent.js +216 -0
- package/dist/esm/schemas/stateFile.js +75 -0
- package/dist/esm/schemas/tokenEstimation.js +7 -0
- package/dist/esm/schemas/transcript.js +86 -0
- package/dist/esm/schemas/usageNormalization.js +38 -0
- package/dist/esm/search/advancedFilter.js +197 -0
- package/dist/esm/search/sessionSearch.js +66 -0
- package/dist/esm/sessionFingerprint.js +40 -0
- package/dist/esm/sessionMonitor.js +198 -0
- package/dist/esm/sessionPreviews.js +522 -0
- package/dist/esm/sessionPromptHistory.js +254 -0
- package/dist/esm/sessionPromptSignals.js +364 -0
- package/dist/esm/sessionStats.js +160 -0
- package/dist/esm/sessionTokenTotals.js +98 -0
- package/dist/esm/sessionTranscripts.js +49 -0
- package/dist/esm/stateFile.js +119 -0
- package/dist/esm/statusline/BurnRateCalculator.js +40 -0
- package/dist/esm/statusline/claudeStatuslinePayload.js +148 -0
- package/dist/esm/statusline/formatter.js +122 -0
- package/dist/esm/statusline/index.js +8 -0
- package/dist/esm/terminalSync.js +95 -0
- package/dist/esm/testing/credentialGuard.js +197 -0
- package/dist/esm/testing/index.js +12 -0
- package/dist/esm/testing/sessionLogFixtures.js +128 -0
- package/dist/esm/tokenEstimation.js +67 -0
- package/dist/esm/tokenSummary.js +113 -0
- package/dist/esm/toolCategory.js +82 -0
- package/dist/esm/transcript.js +257 -0
- package/dist/esm/turns/assistantTurn.js +373 -0
- package/dist/esm/types/codex.js +23 -0
- package/dist/esm/types/decisionLog.js +5 -0
- package/dist/esm/types/historicalData.js +47 -0
- package/dist/esm/types/knowledgeNote.js +15 -0
- package/dist/esm/types/observedSessionV1.js +257 -0
- package/dist/esm/types/opencode.js +12 -0
- package/dist/esm/types/plan.js +7 -0
- package/dist/esm/types/sessionEvent.js +10 -0
- package/dist/esm/types/taskPersistence.js +12 -0
- package/dist/esm/usage/billingBlocks.js +148 -0
- package/dist/esm/usage/claudeUsageDedupe.js +189 -0
- package/dist/esm/usage/importSessionHistory.js +84 -0
- package/dist/esm/usage/subagentUsage.js +18 -0
- package/dist/esm/usage/usageEvents.js +402 -0
- package/dist/esm/usage/usageReports.js +202 -0
- package/dist/esm/usageNormalization.js +95 -0
- package/dist/esm/watchers/eventBridge.js +219 -0
- package/dist/esm/watchers/factory.js +63 -0
- package/dist/esm/watchers/jsonlTail.js +289 -0
- package/dist/esm/watchers/jsonlWatcher.js +435 -0
- package/dist/esm/watchers/providerReaderWatcher.js +118 -0
- package/dist/esm/watchers/sqliteWatcher.js +285 -0
- package/dist/esm/watchers/types.js +4 -0
- package/dist/esm/workspaceRoots.js +56 -0
- package/dist/esm/writers/atomic.js +375 -0
- package/dist/esm/writers/decisions.js +51 -0
- package/dist/esm/writers/notes.js +46 -0
- package/dist/esm/writers/tasks.js +63 -0
- package/dist/esm/zaiQuota.js +323 -0
- package/dist/esm/zaiQuotaApi.js +271 -0
- package/dist/esm/zaiQuotaWatcher.js +265 -0
- package/dist/fileHead.d.ts +22 -0
- package/dist/fileHead.js +33 -0
- package/dist/index.d.ts +16 -7
- package/dist/index.js +49 -15
- package/dist/node.d.ts +13 -1
- package/dist/node.js +43 -2
- package/dist/parsers/codexHistory.js +2 -2
- package/dist/parsers/codexParser.d.ts +12 -0
- package/dist/parsers/codexParser.js +34 -12
- package/dist/parsers/debugLogParser.js +2 -2
- package/dist/parsers/sessionPathResolver.js +5 -4
- package/dist/promptHistory.d.ts +32 -0
- package/dist/promptHistory.js +115 -59
- package/dist/providerFailure.d.ts +12 -6
- package/dist/providerFailure.js +45 -0
- package/dist/providers/claudeCode.js +7 -99
- package/dist/providers/claudeListing.d.ts +22 -0
- package/dist/providers/claudeListing.js +158 -0
- package/dist/providers/codex.d.ts +3 -1
- package/dist/providers/codex.js +26 -227
- package/dist/providers/codexRollouts.d.ts +44 -0
- package/dist/providers/codexRollouts.js +261 -0
- package/dist/providers/detect.js +4 -4
- package/dist/readers/plans.js +3 -3
- package/dist/schemas/index.d.ts +2 -0
- package/dist/schemas/index.js +7 -2
- package/dist/schemas/providerFailure.d.ts +154 -0
- package/dist/schemas/providerFailure.js +40 -0
- package/dist/sessionPromptHistory.d.ts +12 -7
- package/dist/sessionPromptHistory.js +15 -3
- package/dist/sessionPromptSignals.d.ts +9 -0
- package/dist/sessionPromptSignals.js +13 -0
- package/dist/testing/credentialGuard.d.ts +23 -0
- package/dist/testing/credentialGuard.js +233 -0
- package/dist/testing/index.d.ts +14 -0
- package/dist/testing/index.js +22 -0
- package/dist/testing/sessionLogFixtures.d.ts +28 -0
- package/dist/testing/sessionLogFixtures.js +169 -0
- package/dist/tokenEstimation.d.ts +2 -0
- package/dist/tokenEstimation.js +21 -11
- package/dist/toolCategory.d.ts +18 -0
- package/dist/toolCategory.js +86 -0
- package/dist/types/codex.d.ts +4 -0
- package/dist/usage/usageEvents.d.ts +16 -0
- package/dist/usage/usageEvents.js +53 -9
- package/dist/watchers/jsonlTail.d.ts +26 -1
- package/dist/watchers/jsonlTail.js +136 -28
- package/dist/watchers/jsonlWatcher.js +7 -0
- package/dist/watchers/providerReaderWatcher.js +1 -0
- package/dist/watchers/types.d.ts +6 -0
- package/dist/workspaceRoots.d.ts +23 -0
- package/dist/workspaceRoots.js +93 -0
- package/package.json +22 -2
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deprecated event-driven watcher that derives a z.ai coding-plan
|
|
3
|
+
* `QuotaState` from observed OpenCode assistant turns.
|
|
4
|
+
*
|
|
5
|
+
* This watcher is retained for compatibility. Product code now uses
|
|
6
|
+
* `zaiQuotaApi.ts` to call z.ai's authoritative quota endpoint. The legacy
|
|
7
|
+
* watcher maintains rolling 5-hour / 7-day windows in memory and recomputes a
|
|
8
|
+
* derived `QuotaState` whenever a new turn arrives. The consumer is
|
|
9
|
+
* responsible for feeding it z.ai-routed assistant turns (and any trapped
|
|
10
|
+
* error events) — typically by subscribing to `SessionMonitor.onSessionEvent`
|
|
11
|
+
* and filtering on `providerID ∈ {zai, zai-coding-plan}`.
|
|
12
|
+
*
|
|
13
|
+
* Optionally writes snapshots + history samples for cross-session cache
|
|
14
|
+
* and trend visualisation, mirroring `CodexQuotaWatcher`.
|
|
15
|
+
*/
|
|
16
|
+
import { appendQuotaHistorySample } from './quotaHistory';
|
|
17
|
+
import { readQuotaSnapshot, writeQuotaSnapshot } from './quotaSnapshots';
|
|
18
|
+
import { accumulateZaiUsage, inferZaiQuotaState, makeUnavailableZaiQuotaState, parseZaiQuotaError, resolveZaiTier, } from './zaiQuota';
|
|
19
|
+
const DEFAULT_ACCOUNT_ID = 'default';
|
|
20
|
+
const DEFAULT_RECOMPUTE_DEBOUNCE_MS = 1_000;
|
|
21
|
+
const DEFAULT_PRUNE_INTERVAL_MS = 60_000;
|
|
22
|
+
const SEVEN_DAY_MS = 7 * 86_400_000;
|
|
23
|
+
function enrichZaiState(state) {
|
|
24
|
+
return {
|
|
25
|
+
...state,
|
|
26
|
+
runtimeProvider: 'zai',
|
|
27
|
+
providerId: 'zai',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Watches z.ai-routed OpenCode activity and emits derived `QuotaState`.
|
|
32
|
+
*
|
|
33
|
+
* The watcher is event-driven (not a poller): call `ingestAssistantTurn`
|
|
34
|
+
* for every observed z.ai assistant turn, and `ingestError` whenever a
|
|
35
|
+
* z.ai business error is observed. The watcher debounces recompute and
|
|
36
|
+
* emits via `onUpdate` / `onQuotaUpdate`.
|
|
37
|
+
*
|
|
38
|
+
* @deprecated Unreachable from every package entrypoint and no longer used by
|
|
39
|
+
* product code. Use `resolveZaiQuota()` from `zaiQuotaApi` instead.
|
|
40
|
+
*/
|
|
41
|
+
export class ZaiQuotaWatcher {
|
|
42
|
+
tier;
|
|
43
|
+
resolveTier;
|
|
44
|
+
readSnapshot;
|
|
45
|
+
writeSnapshot;
|
|
46
|
+
appendHistorySample;
|
|
47
|
+
workspaceId;
|
|
48
|
+
accountId;
|
|
49
|
+
recomputeDebounceMs;
|
|
50
|
+
pruneIntervalMs;
|
|
51
|
+
now;
|
|
52
|
+
listeners = [];
|
|
53
|
+
/** In-memory rolling 7-day buffer of observed turns. */
|
|
54
|
+
turns = [];
|
|
55
|
+
/** Most recent authoritative 5h reset (parsed from a z.ai error event). */
|
|
56
|
+
authoritativeFiveHourResetAt;
|
|
57
|
+
/** Most recent authoritative weekly reset (parsed from a z.ai error event). */
|
|
58
|
+
authoritativeWeeklyResetAt;
|
|
59
|
+
/** Most recent trapped error (so consumers can show "rate-limited until X"). */
|
|
60
|
+
lastError = null;
|
|
61
|
+
lastEmissionKey = null;
|
|
62
|
+
pendingRecomputeTimer;
|
|
63
|
+
pruneTimer;
|
|
64
|
+
running = false;
|
|
65
|
+
constructor(options = {}) {
|
|
66
|
+
this.tier = options.tier ?? 'auto';
|
|
67
|
+
this.resolveTier = options.resolveTier ?? resolveZaiTier;
|
|
68
|
+
this.readSnapshot = options.readSnapshot ?? readQuotaSnapshot;
|
|
69
|
+
this.writeSnapshot = options.writeSnapshot ?? writeQuotaSnapshot;
|
|
70
|
+
this.appendHistorySample = options.appendHistorySample ?? appendQuotaHistorySample;
|
|
71
|
+
this.workspaceId = options.workspaceId;
|
|
72
|
+
this.accountId = options.accountId ?? DEFAULT_ACCOUNT_ID;
|
|
73
|
+
this.recomputeDebounceMs = options.recomputeDebounceMs ?? DEFAULT_RECOMPUTE_DEBOUNCE_MS;
|
|
74
|
+
this.pruneIntervalMs = options.pruneIntervalMs ?? DEFAULT_PRUNE_INTERVAL_MS;
|
|
75
|
+
this.now = options.now ?? Date.now;
|
|
76
|
+
}
|
|
77
|
+
start() {
|
|
78
|
+
if (this.running)
|
|
79
|
+
return;
|
|
80
|
+
this.running = true;
|
|
81
|
+
// Emit cached state immediately so consumers don't show "unavailable"
|
|
82
|
+
// during the gap before the first z.ai turn arrives.
|
|
83
|
+
this.emitCachedOrUnavailable();
|
|
84
|
+
this.pruneTimer = setInterval(() => this.pruneOldTurns(), this.pruneIntervalMs);
|
|
85
|
+
}
|
|
86
|
+
stop() {
|
|
87
|
+
if (!this.running)
|
|
88
|
+
return;
|
|
89
|
+
this.running = false;
|
|
90
|
+
if (this.pendingRecomputeTimer) {
|
|
91
|
+
clearTimeout(this.pendingRecomputeTimer);
|
|
92
|
+
this.pendingRecomputeTimer = undefined;
|
|
93
|
+
}
|
|
94
|
+
if (this.pruneTimer) {
|
|
95
|
+
clearInterval(this.pruneTimer);
|
|
96
|
+
this.pruneTimer = undefined;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
dispose() {
|
|
100
|
+
this.stop();
|
|
101
|
+
this.listeners.splice(0, this.listeners.length);
|
|
102
|
+
}
|
|
103
|
+
onUpdate(cb) {
|
|
104
|
+
this.listeners.push(cb);
|
|
105
|
+
return {
|
|
106
|
+
dispose: () => {
|
|
107
|
+
const index = this.listeners.indexOf(cb);
|
|
108
|
+
if (index >= 0)
|
|
109
|
+
this.listeners.splice(index, 1);
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
onQuotaUpdate(cb) {
|
|
114
|
+
return this.onUpdate(cb);
|
|
115
|
+
}
|
|
116
|
+
/** Feed an observed z.ai assistant turn. Schedules a debounced recompute. */
|
|
117
|
+
ingestAssistantTurn(turn) {
|
|
118
|
+
this.turns.push(turn);
|
|
119
|
+
this.scheduleRecompute();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Feed multiple turns at once (used for cold-start seeding from the DB).
|
|
123
|
+
* Schedules a single debounced recompute.
|
|
124
|
+
*/
|
|
125
|
+
ingestAssistantTurns(turns) {
|
|
126
|
+
for (const turn of turns)
|
|
127
|
+
this.turns.push(turn);
|
|
128
|
+
this.scheduleRecompute();
|
|
129
|
+
}
|
|
130
|
+
/** Feed a z.ai error event. Triggers an immediate recompute + emit. */
|
|
131
|
+
ingestError(error) {
|
|
132
|
+
const parsed = parseZaiQuotaError(error);
|
|
133
|
+
if (!parsed)
|
|
134
|
+
return false;
|
|
135
|
+
this.lastError = parsed;
|
|
136
|
+
if (parsed.resetsAt) {
|
|
137
|
+
// The first observed error after the user crosses a threshold tells
|
|
138
|
+
// us the authoritative window boundary. Apply to whichever window
|
|
139
|
+
// the kind maps to.
|
|
140
|
+
if (parsed.kind === 'exhausted') {
|
|
141
|
+
this.authoritativeFiveHourResetAt = parsed.resetsAt;
|
|
142
|
+
// 1310 is "weekly/monthly exhausted" — also pin the weekly window.
|
|
143
|
+
if (String(parsed.code) === '1310') {
|
|
144
|
+
this.authoritativeWeeklyResetAt = parsed.resetsAt;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
this.scheduleRecompute();
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
/** Force a recompute+emit now (skipping the debounce). Used by tests. */
|
|
152
|
+
refresh() {
|
|
153
|
+
this.recomputeAndEmit();
|
|
154
|
+
}
|
|
155
|
+
/** Current in-memory turn count (testing/diagnostics). */
|
|
156
|
+
get bufferedTurnCount() {
|
|
157
|
+
return this.turns.length;
|
|
158
|
+
}
|
|
159
|
+
// ── internals ──
|
|
160
|
+
scheduleRecompute() {
|
|
161
|
+
if (!this.running)
|
|
162
|
+
return;
|
|
163
|
+
if (this.pendingRecomputeTimer)
|
|
164
|
+
clearTimeout(this.pendingRecomputeTimer);
|
|
165
|
+
this.pendingRecomputeTimer = setTimeout(() => {
|
|
166
|
+
this.pendingRecomputeTimer = undefined;
|
|
167
|
+
this.recomputeAndEmit();
|
|
168
|
+
}, this.recomputeDebounceMs);
|
|
169
|
+
}
|
|
170
|
+
recomputeAndEmit() {
|
|
171
|
+
const nowMs = this.now();
|
|
172
|
+
if (this.lastError?.resetsAt) {
|
|
173
|
+
const resetsAt = Date.parse(this.lastError.resetsAt);
|
|
174
|
+
if (Number.isFinite(resetsAt) && resetsAt <= nowMs) {
|
|
175
|
+
this.lastError = null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const accumulated = accumulateZaiUsage(this.turns, nowMs);
|
|
179
|
+
const tier = this.resolveTier(this.tier, accumulated);
|
|
180
|
+
const state = accumulated.fiveHourTurns > 0 || accumulated.weeklyTurns > 0
|
|
181
|
+
? inferZaiQuotaState(accumulated, tier, {
|
|
182
|
+
capturedAt: new Date(nowMs).toISOString(),
|
|
183
|
+
stale: false,
|
|
184
|
+
authoritativeFiveHourResetAt: this.authoritativeFiveHourResetAt,
|
|
185
|
+
authoritativeWeeklyResetAt: this.authoritativeWeeklyResetAt,
|
|
186
|
+
})
|
|
187
|
+
: makeUnavailableZaiQuotaState(undefined, tier, new Date(nowMs).toISOString());
|
|
188
|
+
// If we recently saw an error, override availability so the UI shows it.
|
|
189
|
+
if (this.lastError) {
|
|
190
|
+
state.error = this.lastError.message;
|
|
191
|
+
state.failureKind = this.lastError.kind === 'expired' ? 'auth' : 'rate_limit';
|
|
192
|
+
state.rateLimitReachedType = this.lastError.kind;
|
|
193
|
+
}
|
|
194
|
+
this.writeSnapshot('zai', this.accountId, state);
|
|
195
|
+
this.maybeAppendHistory(state);
|
|
196
|
+
this.emitState(enrichZaiState(state));
|
|
197
|
+
}
|
|
198
|
+
maybeAppendHistory(state) {
|
|
199
|
+
if (!this.workspaceId)
|
|
200
|
+
return;
|
|
201
|
+
const sample = {
|
|
202
|
+
timestamp: state.capturedAt ?? new Date(this.now()).toISOString(),
|
|
203
|
+
runtimeProvider: 'zai',
|
|
204
|
+
providerId: this.accountId,
|
|
205
|
+
workspaceId: this.workspaceId,
|
|
206
|
+
fiveHour: { utilization: state.fiveHour.utilization, resetsAt: state.fiveHour.resetsAt },
|
|
207
|
+
sevenDay: { utilization: state.sevenDay.utilization, resetsAt: state.sevenDay.resetsAt },
|
|
208
|
+
available: state.available,
|
|
209
|
+
error: state.error,
|
|
210
|
+
source: 'session',
|
|
211
|
+
stale: state.stale,
|
|
212
|
+
};
|
|
213
|
+
try {
|
|
214
|
+
const result = this.appendHistorySample(sample);
|
|
215
|
+
if (result && typeof result.catch === 'function') {
|
|
216
|
+
result.catch(() => {
|
|
217
|
+
// History append must never break the live emission path.
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
// Synchronous errors swallowed for the same reason.
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
emitCachedOrUnavailable() {
|
|
226
|
+
const cached = this.readSnapshot('zai', this.accountId);
|
|
227
|
+
if (cached) {
|
|
228
|
+
this.emitState(enrichZaiState({
|
|
229
|
+
...cached,
|
|
230
|
+
providerId: 'zai',
|
|
231
|
+
source: 'cache',
|
|
232
|
+
stale: true,
|
|
233
|
+
fiveHourLabel: cached.fiveHourLabel ?? '5-Hour',
|
|
234
|
+
sevenDayLabel: cached.sevenDayLabel ?? 'Weekly',
|
|
235
|
+
}));
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
// Initial state with no observations yet.
|
|
239
|
+
const tier = this.tier === 'auto' ? 'lite' : this.tier;
|
|
240
|
+
this.emitState(enrichZaiState(makeUnavailableZaiQuotaState(undefined, tier)));
|
|
241
|
+
}
|
|
242
|
+
emitState(state) {
|
|
243
|
+
const nextKey = JSON.stringify(state);
|
|
244
|
+
if (this.lastEmissionKey === nextKey)
|
|
245
|
+
return;
|
|
246
|
+
this.lastEmissionKey = nextKey;
|
|
247
|
+
for (const listener of this.listeners) {
|
|
248
|
+
try {
|
|
249
|
+
listener(state);
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
// Listener failures must not stop the watcher.
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
pruneOldTurns() {
|
|
257
|
+
const cutoff = this.now() - SEVEN_DAY_MS;
|
|
258
|
+
if (this.turns.length === 0)
|
|
259
|
+
return;
|
|
260
|
+
const next = this.turns.filter((turn) => turn.timestampMs >= cutoff);
|
|
261
|
+
if (next.length !== this.turns.length) {
|
|
262
|
+
this.turns = next;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rewrite detection shared by the incremental JSONL readers: a file whose
|
|
3
|
+
* first bytes changed, or whose resume point no longer follows a newline,
|
|
4
|
+
* was rewritten rather than appended to.
|
|
5
|
+
*
|
|
6
|
+
* @module fileHead
|
|
7
|
+
*/
|
|
8
|
+
/** How many leading bytes identify a file's content. */
|
|
9
|
+
export declare const HEAD_BYTES = 4096;
|
|
10
|
+
/** The recorded prefix of a file: its length and a hash of it. */
|
|
11
|
+
export interface FileHead {
|
|
12
|
+
bytes: number;
|
|
13
|
+
hash: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function hashHead(buffer: Buffer): string;
|
|
16
|
+
/** Records the prefix just read (at most `HEAD_BYTES`). */
|
|
17
|
+
export declare function fileHeadOf(prefix: Buffer): FileHead;
|
|
18
|
+
/**
|
|
19
|
+
* True when `prefix` (the file's current first bytes) still starts with the
|
|
20
|
+
* recorded head. A file that grew past a short head still matches.
|
|
21
|
+
*/
|
|
22
|
+
export declare function headMatches(known: FileHead, prefix: Buffer): boolean;
|
package/dist/fileHead.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Rewrite detection shared by the incremental JSONL readers: a file whose
|
|
4
|
+
* first bytes changed, or whose resume point no longer follows a newline,
|
|
5
|
+
* was rewritten rather than appended to.
|
|
6
|
+
*
|
|
7
|
+
* @module fileHead
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.HEAD_BYTES = void 0;
|
|
11
|
+
exports.hashHead = hashHead;
|
|
12
|
+
exports.fileHeadOf = fileHeadOf;
|
|
13
|
+
exports.headMatches = headMatches;
|
|
14
|
+
const crypto_1 = require("crypto");
|
|
15
|
+
/** How many leading bytes identify a file's content. */
|
|
16
|
+
exports.HEAD_BYTES = 4096;
|
|
17
|
+
function hashHead(buffer) {
|
|
18
|
+
return (0, crypto_1.createHash)('sha256').update(buffer).digest('hex').slice(0, 32);
|
|
19
|
+
}
|
|
20
|
+
/** Records the prefix just read (at most `HEAD_BYTES`). */
|
|
21
|
+
function fileHeadOf(prefix) {
|
|
22
|
+
return { bytes: prefix.length, hash: hashHead(prefix) };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* True when `prefix` (the file's current first bytes) still starts with the
|
|
26
|
+
* recorded head. A file that grew past a short head still matches.
|
|
27
|
+
*/
|
|
28
|
+
function headMatches(known, prefix) {
|
|
29
|
+
if (!Number.isInteger(known.bytes) || known.bytes < 0 || known.bytes > prefix.length) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return hashHead(prefix.subarray(0, known.bytes)) === known.hash;
|
|
33
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,12 +5,12 @@ export { normalizeProviderUsage, extractNormalizedUsage, calculateNormalizedUsag
|
|
|
5
5
|
export type { UsageProvider, UsageSemantics, UsageNormalizationProvenance, ProviderUsageInput, AnthropicUsageInput, OpenAIUsageInput, SidekickUsageInput, NormalizedUsage, PricingProvenance, NormalizedUsageCostInput, NormalizedUsageCost, } from './usageNormalization';
|
|
6
6
|
export { formatTokenBreakdown, summarizeTokens, sumTokenTotals, TOKEN_CONTEXT_LABEL, TOKEN_MAIN_THREAD_LABEL, TOKEN_SESSION_TOTAL_LABEL, TOKEN_SUBAGENTS_LABEL, TOKEN_TOTAL_LABEL, } from './tokenSummary';
|
|
7
7
|
export type { TokenSummary, TokenTotalsLike } from './tokenSummary';
|
|
8
|
-
export { estimateTextTokens, estimateSerializedTokens } from './tokenEstimation';
|
|
8
|
+
export { ASCII_CHARS_PER_TOKEN, estimateTextTokens, estimateSerializedTokens, } from './tokenEstimation';
|
|
9
9
|
export type { ExactTokenCounterContext, ExactTokenCounter, TokenEstimationMethod, TokenEstimationConfidence, TokenEstimationOptions, TokenEstimate, } from './tokenEstimation';
|
|
10
10
|
export { projectSessionTranscript } from './transcript';
|
|
11
11
|
export type { TranscriptFidelity, TranscriptSourceProvenance, CanonicalTranscriptBlock, CanonicalTranscriptMessage, CanonicalToolCall, CanonicalTranscriptUsageTotals, CanonicalSessionTranscript, ProjectSessionTranscriptOptions, } from './transcript';
|
|
12
12
|
export { listRecentSessions, readSessionTranscript } from './sessionTranscripts';
|
|
13
|
-
export { collectPromptHistory } from './promptHistory';
|
|
13
|
+
export { collectPromptHistory, isPromptHistorySessionSettled, parsePromptHistoryCursor, } from './promptHistory';
|
|
14
14
|
export type { CollectPromptHistoryOptions, PromptHistoryAnswerState, PromptHistoryBound, PromptHistoryBounds, PromptHistoryCursor, PromptHistoryCursorSession, PromptHistoryEntry, PromptHistoryExclusion, PromptHistoryMetadataStatus, PromptHistoryPendingPrompt, PromptHistoryProvider, PromptHistoryResult, PromptHistoryResumeState, PromptHistoryStats, PromptHistoryUsage, } from './promptHistory';
|
|
15
15
|
export { collectSessionPromptHistory } from './sessionPromptHistory';
|
|
16
16
|
export type { CollectSessionPromptHistoryOptions, PromptHistorySession, PromptHistorySessionPrompt, PromptHistorySessionRef, SessionPromptHistoryBound, SessionPromptHistoryBounds, SessionPromptHistoryInclude, SessionPromptHistoryResult, SessionPromptHistoryStats, } from './sessionPromptHistory';
|
|
@@ -88,7 +88,8 @@ export type { FindCodexRolloutFileOptions } from './providers/codex';
|
|
|
88
88
|
export { JsonlParser, TRUNCATION_PATTERNS } from './parsers/jsonl';
|
|
89
89
|
export type { RawSessionEvent, JsonlParserCallbacks, JsonlParserOptions } from './parsers/jsonl';
|
|
90
90
|
export { normalizeToolName, normalizeToolInput, detectPlanModeFromText, convertOpenCodeMessage, parseDbMessageData, parseDbPartData, } from './parsers/openCodeParser';
|
|
91
|
-
export { CodexRolloutParser, extractPatchFilePaths, normalizeCodexToolName, normalizeCodexToolInput, resolveCodexCallUsage, } from './parsers/codexParser';
|
|
91
|
+
export { CodexRolloutParser, DEFAULT_MAX_TRACKED_TOOL_CALLS, extractPatchFilePaths, normalizeCodexToolName, normalizeCodexToolInput, resolveCodexCallUsage, } from './parsers/codexParser';
|
|
92
|
+
export type { CodexRolloutParserOptions } from './parsers/codexParser';
|
|
92
93
|
export { scanSubagentDir, extractTaskInfo, readAgentMeta } from './parsers/subagentScanner';
|
|
93
94
|
export { ClaudeUsageDeduper, SYNTHETIC_MODEL, dedupedRawClaudeUsage, normalizeClaudeUsage, } from './usage/claudeUsageDedupe';
|
|
94
95
|
export { addUsageToSubagent } from './usage/subagentUsage';
|
|
@@ -127,8 +128,8 @@ export type { FollowEvent, FollowEventType, SessionWatcher, SessionWatcherCallba
|
|
|
127
128
|
export { createWatcher, resolveSessionPath } from './watchers/factory';
|
|
128
129
|
export type { CreateWatcherOptions } from './watchers/factory';
|
|
129
130
|
export { toFollowEvents } from './watchers/eventBridge';
|
|
130
|
-
export { createJsonlTail } from './watchers/jsonlTail';
|
|
131
|
-
export type { JsonlTail, JsonlTailBatch, JsonlTailOptions } from './watchers/jsonlTail';
|
|
131
|
+
export { createJsonlTail, DEFAULT_JSONL_TAIL_MAX_LINE_BYTES, DEFAULT_JSONL_TAIL_READ_BYTES, } from './watchers/jsonlTail';
|
|
132
|
+
export type { JsonlTail, JsonlTailBatch, JsonlTailLine, JsonlTailOptions, JsonlTailReset, JsonlTailResetReason, } from './watchers/jsonlTail';
|
|
132
133
|
export { addLocalDays, formatDurationMs, formatLocalDateKey, formatTokenCount, parseLocalDateKey, } from './formatting';
|
|
133
134
|
export type { FormatDurationMsOptions, FormatTokenCountOptions } from './formatting';
|
|
134
135
|
export { formatToolSummary } from './formatters/toolSummary';
|
|
@@ -205,8 +206,9 @@ export { getActiveAccountStatus } from './accountStatus';
|
|
|
205
206
|
export type { ActiveAccountStatus, ActiveAccountStatusOptions, ActiveProviderAccountStatus, } from './accountStatus';
|
|
206
207
|
export { onAccountsChanged } from './accountChanges';
|
|
207
208
|
export type { AccountsChangedEvent, OnAccountsChangedOptions } from './accountChanges';
|
|
208
|
-
export { getClaudeProfilesDir, getClaudeProfileHome,
|
|
209
|
+
export { getClaudeProfilesDir, getClaudeProfileHome, getClaudeConfigPath, claudeKeychainSuffix, claudeKeychainService, claudeKeychainAccountName, buildClaudeChildEnv, CLAUDE_SECURESTORAGE_CONFIG_DIR_ENV, isClaudeProfileAuthenticated, readClaudeProfileIdentity, readLiveClaudeIdentity, } from './claudeProfiles';
|
|
209
210
|
export type { ClaudeProfileIdentity } from './claudeProfiles';
|
|
211
|
+
export { getLiveClaudeHome, getDefaultClaudeHome, isDefaultClaudeHome, getClaudeProjectsDir, } from './claudePaths';
|
|
210
212
|
export { getCodexProfilesDir, getCodexProfileHome, getCodexMonitoringHomes, getSystemCodexHome, listCodexAccounts, getActiveCodexAccount, resolveActiveCodexAccount, resolveSidekickCodexHome, getCodexExecutionEnv, prepareCodexAccount, prepareCodexAccountAsync, finalizeCodexAccount, finalizeCodexAccountAsync, switchToCodexAccount, switchToCodexAccountAsync, removeCodexAccount, syncCodexLiveState, cleanupAbandonedCodexLogins, getCodexCredentialStoreMode, CODEX_KEYRING_FIX_HINT, } from './codexProfiles';
|
|
211
213
|
export type { CodexAccountManagerResult, CodexCredentialStoreMode } from './codexProfiles';
|
|
212
214
|
export { writeAccountLauncher, writeLauncher, removeLauncher } from './terminalSync';
|
|
@@ -267,6 +269,7 @@ export type { GatherAssetsOptions, GatherAssetsResult } from './extractors/gathe
|
|
|
267
269
|
export { messageUsageSchema, sessionMessageSchema, sessionEventSchema, permissionModeSchema, extractSessionEvents, } from './schemas/sessionEvent';
|
|
268
270
|
export { quotaWindowSchema, quotaStateSchema, quotaFailureKindSchema, quotaProviderIdSchema, quotaSourceSchema, codexResetCreditSchema, codexResetCreditsSnapshotSchema, peakHoursStateSchema, quotaFailureDescriptorSchema, runtimeQuotaProviderSchema, providerQuotaStateSchema, claudeProviderQuotaStateSchema, codexProviderQuotaStateSchema, zaiProviderQuotaStateSchema, providerQuotaMapSchema, } from './schemas/quota';
|
|
269
271
|
export { quotaHistoryRuntimeProviderSchema, quotaHistorySampleSchema, quotaHistoryDailyBucketSchema, } from './schemas/quotaHistory';
|
|
272
|
+
export { providerAuthenticationEvidenceSchema, providerFailureEvidenceSchema, providerRetryAfterSchema, providerFailureDiagnosisSchema, } from './schemas/providerFailure';
|
|
270
273
|
export { activeProviderAccountStatusSchema, activeAccountStatusSchema, } from './schemas/accountStatus';
|
|
271
274
|
export { accountProviderIdSchema, accountManagerResultSchema, beginAccountLoginResultSchema, accountLoginStatusSchema, accountEntrySchema, savedAccountProfileSchema, listAllAccountsResultSchema, } from './schemas/accountManager';
|
|
272
275
|
export { assistantTurnEventSchema, assistantTurnEventTypeSchema, assistantTurnNarrationStepSchema, assistantTurnProcessSchema, assistantTurnProcessStepSchema, assistantTurnProjectionSchema, assistantTurnReasoningTimelineItemSchema, assistantTurnSubagentSchema, assistantTurnSubagentStatusSchema, assistantTurnTimelineItemSchema, assistantTurnToolGroupStepSchema, assistantTurnToolRefSchema, } from './schemas/assistantTurn';
|
|
@@ -278,10 +281,16 @@ export { _resetPeakHoursCache, createPeakHoursNotApplicableState, DEFAULT_PEAK_H
|
|
|
278
281
|
export type { FetchPeakHoursOptions, PeakHoursState } from './peakHours';
|
|
279
282
|
export { FAILING_TOOL_TREND_ARROWS, failingToolTrend, mergeFailingToolWindows, } from './failingTools';
|
|
280
283
|
export type { FailingToolTrend, FailingToolTrendRow, FailingToolWindow } from './failingTools';
|
|
281
|
-
export { diagnoseProviderFailure } from './providerFailure';
|
|
284
|
+
export { diagnoseProviderFailure, PROVIDER_AUTHENTICATION_SOURCES, PROVIDER_AUTHENTICATION_STATES, PROVIDER_CREDENTIAL_KINDS, PROVIDER_FAILURE_CODES, PROVIDER_FAILURE_EVIDENCE_SOURCES, PROVIDER_RECOVERY_ACTIONS, } from './providerFailure';
|
|
282
285
|
export type { ProviderCredentialKind, ProviderAuthenticationEvidence, ProviderFailureInput, ProviderFailureCode, ProviderRecoveryAction, ProviderRetryAfter, ProviderFailureEvidence, ProviderFailureDiagnosis, } from './providerFailure';
|
|
283
286
|
export type { ProviderServiceSeverity, ProviderServiceComponent, ProviderServiceIncident, ProviderServiceStatusFailureReason, ObservedProviderServiceStatus, UnavailableProviderServiceStatus, ProviderServiceStatus, FetchProviderServiceStatusOptions, } from './providerServiceStatusTypes';
|
|
284
287
|
export { fetchProviderServiceStatus } from './providerServiceStatus';
|
|
285
288
|
export { inspectCodexCredentialStores, repairCodexCredentialStores } from './codexCredentialDoctor';
|
|
286
289
|
export type { CodexCredentialFinding, CodexCredentialInspection, CodexCredentialRepairResult, } from './codexCredentialDoctor';
|
|
287
290
|
export { readStoredCodexAccount, syncCodexLiveStateAsync } from './codexProfiles';
|
|
291
|
+
export { getCodexSessionsDirs, CODEX_SESSIONS_SUBDIR, CODEX_ARCHIVED_SESSIONS_SUBDIR, } from './codexPaths';
|
|
292
|
+
export type { CodexSessionsDirsOptions } from './codexPaths';
|
|
293
|
+
export { classifyTool, TOOL_CATEGORIES } from './toolCategory';
|
|
294
|
+
export type { ClassifyToolOptions, ToolCategory } from './toolCategory';
|
|
295
|
+
export { resolveWorkspaceRoots } from './workspaceRoots';
|
|
296
|
+
export type { ResolveWorkspaceRootsOptions, ResolvedWorkspaceRoots } from './workspaceRoots';
|
package/dist/index.js
CHANGED
|
@@ -3,17 +3,18 @@
|
|
|
3
3
|
* Public API for sidekick-shared.
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
6
|
+
exports.markFileImported = exports.isFileImported = exports.applySessionSummary = exports.pruneUsageCache = exports.getUsageCacheDir = exports.collectUsageEvents = exports.USAGE_CACHE_VERSION = exports.MAX_USAGE_CACHE_FILES = exports.findActiveBillingBlock = exports.computeBillingBlocks = exports.BILLING_BLOCK_DURATION_MS = exports.writeStateFile = exports.readStateFile = exports.quotaToStateFile = exports.getStateFilePath = exports.billingBlockToStateFile = exports.STATE_FILE_SCHEMA_VERSION = exports.STATE_FILE_NAME = exports.sessionFingerprintParts = exports.fingerprintString = exports.readSessionReportInputs = exports.readSessionFileStats = exports.providerContextSizeFn = exports.firstUserPrompt = exports.computeSessionFileStats = exports.isHumanPrompt = exports.humanPromptText = exports.HUMAN_CODEX_SOURCES = exports.HUMAN_CLAUDE_ENTRYPOINTS = exports.collectSessionPromptHistory = exports.parsePromptHistoryCursor = exports.isPromptHistorySessionSettled = exports.collectPromptHistory = exports.readSessionTranscript = exports.listRecentSessions = exports.projectSessionTranscript = exports.estimateSerializedTokens = exports.estimateTextTokens = exports.ASCII_CHARS_PER_TOKEN = exports.TOKEN_TOTAL_LABEL = exports.TOKEN_SUBAGENTS_LABEL = exports.TOKEN_SESSION_TOTAL_LABEL = exports.TOKEN_MAIN_THREAD_LABEL = exports.TOKEN_CONTEXT_LABEL = exports.sumTokenTotals = exports.summarizeTokens = exports.formatTokenBreakdown = exports.calculateNormalizedUsageCost = exports.extractNormalizedUsage = exports.normalizeProviderUsage = void 0;
|
|
7
|
+
exports.atomicWriteJson = exports.readClaudeCodePlanFiles = exports.getPlanAnalytics = exports.writePlans = exports.getLatestPlan = exports.readPlans = exports.readLatestHandoff = exports.readHistory = exports.readNotes = exports.readDecisions = exports.readTasks = exports.migrateLegacyProjectStores = exports.resolveProjectIdentity = exports.getProjectSlugRaw = exports.getProjectSlug = exports.encodeWorkspacePath = exports.getGlobalDataPath = exports.getProjectDataPath = exports.setConfigDir = exports.getDefaultConfigDir = exports.getConfigDirOverride = exports.getConfigDir = exports.CONFIG_DIR_ENV_VAR = exports.MAX_PLANS_PER_PROJECT = exports.PLAN_SCHEMA_VERSION = exports.createEmptyDataStore = exports.createEmptyTokenTotals = exports.HISTORICAL_SESSION_RETENTION_LIMIT = exports.HISTORICAL_DATA_SCHEMA_VERSION = exports.STALENESS_THRESHOLDS = exports.IMPORTANCE_DECAY_FACTORS = exports.KNOWLEDGE_NOTE_SCHEMA_VERSION = exports.DECISION_LOG_SCHEMA_VERSION = exports.normalizeTaskStatus = exports.TASK_PERSISTENCE_SCHEMA_VERSION = exports.isAggregateCodexLimit = exports.splitWatchedPath = exports.DirectoryListingCache = exports.fileFingerprintParts = exports.fileFingerprint = exports.observedSessionSourceFromProvider = exports.ObservedSessionCollector = exports.weekKey = exports.usageBucketKey = exports.summarizeUsageRows = exports.bucketUsage = exports.importSessionHistory = exports.ACTIVE_SESSION_MTIME_THRESHOLD_MS = exports.sessionSummaryFromStats = exports.removeSessionSummary = void 0;
|
|
8
|
+
exports.combineSessionTokenTotals = exports.collectSessionTokenTotals = exports.addUsageToSubagent = exports.normalizeClaudeUsage = exports.dedupedRawClaudeUsage = exports.SYNTHETIC_MODEL = exports.ClaudeUsageDeduper = exports.readAgentMeta = exports.extractTaskInfo = exports.scanSubagentDir = exports.resolveCodexCallUsage = exports.normalizeCodexToolInput = exports.normalizeCodexToolName = exports.extractPatchFilePaths = exports.DEFAULT_MAX_TRACKED_TOOL_CALLS = exports.CodexRolloutParser = exports.parseDbPartData = exports.parseDbMessageData = exports.convertOpenCodeMessage = exports.detectPlanModeFromText = exports.normalizeToolInput = exports.normalizeToolName = exports.TRUNCATION_PATTERNS = exports.JsonlParser = exports.walkRolloutFilesAsync = exports.walkRolloutFiles = exports.findCodexRolloutFile = exports.CodexProvider = exports.getOpenCodeDataDir = exports.OpenCodeProvider = exports.ClaudeCodeProvider = exports.getAllDetectedProviders = exports.detectProvider = exports._resetProviderDetectionCache = exports.getObservedActivityReason = exports.derivePendingUserRequestV1 = exports.createProviderSessionAdapterV1 = exports.createSessionProviders = exports.SESSION_PROVIDER_IDS = exports.renderHandoffUrlTemplate = exports.addNote = exports.decisionFingerprint = exports.addDecision = exports.completeTask = exports.addTask = exports.withFileLockSync = exports.updateJsonStoreAtomicSync = exports.updateJsonStoreAtomic = exports.atomicWriteFileSync = exports.atomicWriteJsonSync = void 0;
|
|
9
|
+
exports.extractProposedPlanShared = exports.parsePlanMarkdownShared = exports.PlanExtractor = exports.segmentAssistantTurn = exports.reasoningSummary = exports.isAssistantTurnSubagentTool = exports.extractTurnSubagents = exports.assistantTurnEventsFromSessionEvents = exports.readSessionContextSnapshot = exports.createSessionContextProjector = exports.calculateSessionContextPressure = exports.buildSessionContextSnapshot = exports.composeContext = exports.FilterEngine = exports.searchSessions = exports.CodexDatabase = exports.OpenCodeDatabase = exports.discoverDebugLogs = exports.collapseDuplicates = exports.filterByLevel = exports.parseDebugLog = exports.readSessionPreviewAsync = exports.readSessionPreview = exports.listSessionPreviewsAsync = exports.listSessionPreviews = exports.readCodexHistory = exports.parseMcpToolName = exports.scanSubagentTraces = exports.findAllSessionsWithWorktrees = exports.discoverWorktreeSiblings = exports.resolveWorktreeMainRepo = exports.getAllClaudeProjectFolders = exports.decodeEncodedPath = exports.getMostRecentlyActiveSessionDir = exports.findSubdirectorySessionDirs = exports.findSessionFilesWithStats = exports.findSessionsInDirectory = exports.findAllClaudeSessions = exports.findActiveClaudeSession = exports.discoverSessionDirectory = exports.getClaudeSessionDirectory = exports.encodeClaudeWorkspacePath = exports.SESSION_ACTIVITY_STALENESS_MS = exports.SESSION_ACTIVITY_GRACE_PERIOD_MS = exports.refreshSessionActivityState = exports.detectSessionActivity = exports.classifySessionActivity = exports.subagentTokenTotals = exports.scanSessionSubagents = exports.readMainThreadTokenTotals = void 0;
|
|
10
|
+
exports.calculateCodeImpact = exports.scoreSessionQuality = exports.calculateQualityTrend = exports.PatternExtractor = exports.HeatmapTracker = exports.FrequencyTracker = exports.readErrorHistory = exports.getTopFailingTools = exports.appendErrorHistory = exports.MAX_ERROR_HISTORY_SESSIONS = exports.ERROR_HISTORY_SCHEMA_VERSION = exports.getSnapshotPath = exports.MAX_SNAPSHOT_FILES = exports.pruneSnapshots = exports.isSnapshotValid = exports.deleteSnapshot = exports.loadSnapshot = exports.saveSnapshot = exports.SessionMonitor = exports.parseTodoDependencies = exports.EventAggregator = exports.getRandomPhrase = exports.PHRASE_CATEGORIES = exports.ALL_PHRASES = exports.HIGHLIGHT_CSS = exports.clearHighlightCache = exports.highlightEvent = exports.formatSessionJson = exports.formatSessionMarkdown = exports.formatSessionText = exports.classifyNoise = exports.shouldMergeWithPrevious = exports.classifyFollowEvent = exports.classifyMessage = exports.getSoftNoiseReason = exports.isHardNoiseFollowEvent = exports.isHardNoise = exports.formatToolSummary = exports.parseLocalDateKey = exports.formatTokenCount = exports.formatLocalDateKey = exports.formatDurationMs = exports.addLocalDays = exports.DEFAULT_JSONL_TAIL_READ_BYTES = exports.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES = exports.createJsonlTail = exports.toFollowEvents = exports.resolveSessionPath = exports.createWatcher = exports.parseChangelog = void 0;
|
|
11
|
+
exports.removeAccount = exports.reconcileClaudeAuthState = exports.applyActiveClaudeToLiveHome = exports.resolveActiveClaudeHome = exports.cleanupAbandonedClaudeLogins = exports.syncClaudeLiveState = exports.switchToAccountAsync = exports.switchToAccount = exports.addCurrentAccount = exports.readActiveClaudeAccount = exports.writeAccountRegistry = exports.readAccountRegistry = exports.ensureDefaultAccounts = exports.codexIdentitiesMatch = exports.readCodexAccessTokenExpiry = exports.readCodexLastRefresh = exports.readCodexAuthIdentity = exports.parseCodexAuthJson = exports.CLAUDE_REFRESH_TOKEN_LIFETIME_ESTIMATE_MS = exports.CLAUDE_ACCESS_TOKEN_LIFETIME_MS = exports.mergeClaudeLoginIntoLive = exports.claudeLoginOnly = exports.claudeRefreshFingerprint = exports.resolveClaudeRefreshExpiry = exports.isNewerClaudeCredential = exports.claudeCredentialFreshness = exports.parseClaudeCredentialBlob = exports.readClaudeMaxAccessTokenSync = exports.readClaudeMaxCredentialsRaw = exports.readClaudeMaxCredentials = exports.parseKeychainDump = exports.repairClaudeCredentialStores = exports.inspectClaudeCredentialStores = exports.getClaudeCredentialLedgerPath = exports.readClaudeCredentialLedger = exports.decideLiveClaudeWrite = exports.SIDEKICK_KEYCHAIN_COMMENT_PREFIX = exports.ClaudeCredentialWriteError = exports.deleteStoredCredentials = exports.writeActiveCredentials = exports.readClaudeCredentialStore = exports.readActiveCredentials = exports.openInBrowser = exports.parseTranscriptFromEvents = exports.parseTranscript = exports.generateHtmlReport = exports.formatCompactionLedger = exports.calculateCompactionLedger = exports.describeCostProvenance = exports.classifyCostProvenance = void 0;
|
|
12
|
+
exports.getClaudeConfigPath = exports.getClaudeProfileHome = exports.getClaudeProfilesDir = exports.onAccountsChanged = exports.getActiveAccountStatus = exports.ACCOUNT_PROVIDER_IDS = exports.removeSavedAccountProfile = exports.replaceSavedAccountProfiles = exports.setActiveSavedAccount = exports.upsertSavedAccountProfile = exports.getActiveSavedAccount = exports.listSavedAccountProfiles = exports.writeSavedAccountRegistry = exports.readSavedAccountRegistry = exports.getAccountsDir = exports.ACCOUNT_CONSUMER_REACHABILITY = exports.describeAccountConsumer = exports.detectRunningAccountConsumersSync = exports.detectRunningAccountConsumers = exports.findRunningProcessesSync = exports.findRunningProcesses = exports.keepAliveCommand = exports.refreshInactiveAccounts = exports.getAccountLaunchEnv = exports.getHealthSidecarPath = exports.readHealthSidecar = exports.listAccountsWithHealth = exports.getAccountHealth = exports.cleanupAbandonedLogins = exports.syncLiveAccountStateSync = exports.syncLiveAccountState = exports.getLastSwitchPath = exports.readLastSwitch = exports.discardAccountLogin = exports.resolveClaudeLoginCommand = exports.listAllAccounts = exports.getLastSwitch = exports.undoLastSwitch = exports.switchAccountAsync = exports.switchAccount = exports.spawnAccountLogin = exports.finalizeAccountLoginAsync = exports.finalizeAccountLogin = exports.getAccountLoginStatusAsync = exports.getAccountLoginStatus = exports.beginAccountLogin = exports.isMultiAccountEnabled = exports.resolveActiveClaudeAccount = exports.getActiveAccount = exports.listAccounts = void 0;
|
|
13
|
+
exports.classifyQuotaFreshness = exports.resolveQuota = exports.writeQuotaSnapshot = exports.readQuotaSnapshot = exports.QuotaPoller = exports.describeQuotaFailure = exports.withQuotaProjections = exports.projectQuotaWindow = exports.fetchQuota = exports.SEVEN_DAY_WINDOW_MS = exports.QUOTA_PROVIDER_IDS = exports.FIVE_HOUR_WINDOW_MS = exports.AutoSwitchController = exports.decideAutoSwitch = exports.DEFAULT_AUTO_SWITCH_CONFIG = exports.removeLauncher = exports.writeLauncher = exports.writeAccountLauncher = exports.CODEX_KEYRING_FIX_HINT = exports.getCodexCredentialStoreMode = exports.cleanupAbandonedCodexLogins = exports.syncCodexLiveState = exports.removeCodexAccount = exports.switchToCodexAccountAsync = exports.switchToCodexAccount = exports.finalizeCodexAccountAsync = exports.finalizeCodexAccount = exports.prepareCodexAccountAsync = exports.prepareCodexAccount = exports.getCodexExecutionEnv = exports.resolveSidekickCodexHome = exports.resolveActiveCodexAccount = exports.getActiveCodexAccount = exports.listCodexAccounts = exports.getSystemCodexHome = exports.getCodexMonitoringHomes = exports.getCodexProfileHome = exports.getCodexProfilesDir = exports.getClaudeProjectsDir = exports.isDefaultClaudeHome = exports.getDefaultClaudeHome = exports.getLiveClaudeHome = exports.readLiveClaudeIdentity = exports.readClaudeProfileIdentity = exports.isClaudeProfileAuthenticated = exports.CLAUDE_SECURESTORAGE_CONFIG_DIR_ENV = exports.buildClaudeChildEnv = exports.claudeKeychainAccountName = exports.claudeKeychainService = exports.claudeKeychainSuffix = void 0;
|
|
14
|
+
exports.registerModelAlias = exports.importResolvedModelCatalog = exports.exportResolvedModelCatalog = exports.MODEL_PROVIDER_IDS = exports.formatCost = exports.sortModelIds = exports.compareModelIds = exports.getModelDisplayInfo = exports.shortModelName = exports.mergeCostSources = exports.calculateCostWithProvenance = exports.calculateCostWithPricing = exports.calculateCost = exports.getModelInfo = exports.resolveModelPricing = exports.getModelPricing = exports.parseModelId = exports.DEFAULT_CONTEXT_WINDOW = exports.resolveModelContextWindow = exports.getModelContextWindowSize = exports.selectStatuslineAccount = exports.formatStatusline = exports.estimateTimeToQuota = exports.BurnRateCalculator = exports.RUNTIME_QUOTA_PROVIDER_IDS = exports.MultiProviderQuotaService = exports.resolveZaiQuota = exports.readZaiCredentials = exports.quotaStateFromZaiQuotaLimitPayload = exports.fetchZaiQuotaFromApi = exports.CodexQuotaWatcher = exports.resolveCodexQuotaFromLocalSources = exports.resolveCodexQuota = exports.readLatestCodexQuotaFromRollouts = exports.quotaFromCodexRateLimits = exports.fetchCodexQuotaFromApi = exports.fetchCodexResetCreditsFromApi = exports.getWorkspaceIdFromPath = exports.pruneQuotaHistory = exports.readQuotaHistoryDailyBuckets = exports.readQuotaHistoryRange = exports.appendQuotaHistorySample = exports.quotaFromStatuslinePayload = exports.parseClaudeStatuslinePayload = exports.evaluateQuotaThresholds = exports.describeQuotaThresholdAlert = exports.DEFAULT_QUOTA_THRESHOLDS = exports.QUOTA_FRESH_MAX_AGE_MS = exports.QUOTA_AGING_MAX_AGE_MS = exports.formatQuotaAge = void 0;
|
|
15
|
+
exports.providerFailureDiagnosisSchema = exports.providerRetryAfterSchema = exports.providerFailureEvidenceSchema = exports.providerAuthenticationEvidenceSchema = exports.quotaHistoryDailyBucketSchema = exports.quotaHistorySampleSchema = exports.quotaHistoryRuntimeProviderSchema = exports.providerQuotaMapSchema = exports.zaiProviderQuotaStateSchema = exports.codexProviderQuotaStateSchema = exports.claudeProviderQuotaStateSchema = exports.providerQuotaStateSchema = exports.runtimeQuotaProviderSchema = exports.quotaFailureDescriptorSchema = exports.peakHoursStateSchema = exports.codexResetCreditsSnapshotSchema = exports.codexResetCreditSchema = exports.quotaSourceSchema = exports.quotaProviderIdSchema = exports.quotaFailureKindSchema = exports.quotaStateSchema = exports.quotaWindowSchema = exports.extractSessionEvents = exports.permissionModeSchema = exports.sessionEventSchema = exports.sessionMessageSchema = exports.messageUsageSchema = exports.ToolCallTracker = exports.extractToolCalls = exports.extractToolCall = exports.extractErrorMessage = exports.categorizeError = exports.gatherAssetsForCwd = exports.codexSessions = exports.readCodexAssets = exports.claudeSessions = exports.readClaudeAssets = exports.extractCommands = exports.extractFilePaths = exports.extractUrls = exports.extractTokenUsage = exports.getObservedContextWindowPath = exports.recordObservedContextWindow = exports.loadObservedContextWindows = exports.LITELLM_CATALOG_URL = exports.normalizeLiteLlmContextWindows = exports.normalizeLiteLlmCatalog = exports.hydratePricingCatalog = exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION = exports.resolveModelAlias = void 0;
|
|
16
|
+
exports.readStoredCodexAccount = exports.repairCodexCredentialStores = exports.inspectCodexCredentialStores = exports.fetchProviderServiceStatus = exports.PROVIDER_RECOVERY_ACTIONS = exports.PROVIDER_FAILURE_EVIDENCE_SOURCES = exports.PROVIDER_FAILURE_CODES = exports.PROVIDER_CREDENTIAL_KINDS = exports.PROVIDER_AUTHENTICATION_STATES = exports.PROVIDER_AUTHENTICATION_SOURCES = exports.diagnoseProviderFailure = exports.mergeFailingToolWindows = exports.failingToolTrend = exports.FAILING_TOOL_TREND_ARROWS = exports.scopePeakHoursToSessionProvider = exports.PEAK_HOURS_DESCRIPTION = exports.PEAK_HOURS_CACHE_MS = exports.isClaudeCodeSessionProvider = exports.getScheduledPeakHoursState = exports.fetchPeakHoursStatus = exports.DEFAULT_PEAK_HOURS_TIMEOUT_MS = exports.createPeakHoursNotApplicableState = exports._resetPeakHoursCache = exports.runDoctor = exports.getSessionDiagnostics = exports.formatHealthReport = exports.toLegacyProviderStatus = exports.fetchOpenAIStatus = exports.fetchProviderStatus = exports.assistantTurnToolRefSchema = exports.assistantTurnToolGroupStepSchema = exports.assistantTurnTimelineItemSchema = exports.assistantTurnSubagentStatusSchema = exports.assistantTurnSubagentSchema = exports.assistantTurnReasoningTimelineItemSchema = exports.assistantTurnProjectionSchema = exports.assistantTurnProcessStepSchema = exports.assistantTurnProcessSchema = exports.assistantTurnNarrationStepSchema = exports.assistantTurnEventTypeSchema = exports.assistantTurnEventSchema = exports.listAllAccountsResultSchema = exports.savedAccountProfileSchema = exports.accountEntrySchema = exports.accountLoginStatusSchema = exports.beginAccountLoginResultSchema = exports.accountManagerResultSchema = exports.accountProviderIdSchema = exports.activeAccountStatusSchema = exports.activeProviderAccountStatusSchema = void 0;
|
|
17
|
+
exports.resolveWorkspaceRoots = exports.TOOL_CATEGORIES = exports.classifyTool = exports.CODEX_ARCHIVED_SESSIONS_SUBDIR = exports.CODEX_SESSIONS_SUBDIR = exports.getCodexSessionsDirs = exports.syncCodexLiveStateAsync = void 0;
|
|
17
18
|
var usageNormalization_1 = require("./usageNormalization");
|
|
18
19
|
Object.defineProperty(exports, "normalizeProviderUsage", { enumerable: true, get: function () { return usageNormalization_1.normalizeProviderUsage; } });
|
|
19
20
|
Object.defineProperty(exports, "extractNormalizedUsage", { enumerable: true, get: function () { return usageNormalization_1.extractNormalizedUsage; } });
|
|
@@ -28,6 +29,7 @@ Object.defineProperty(exports, "TOKEN_SESSION_TOTAL_LABEL", { enumerable: true,
|
|
|
28
29
|
Object.defineProperty(exports, "TOKEN_SUBAGENTS_LABEL", { enumerable: true, get: function () { return tokenSummary_1.TOKEN_SUBAGENTS_LABEL; } });
|
|
29
30
|
Object.defineProperty(exports, "TOKEN_TOTAL_LABEL", { enumerable: true, get: function () { return tokenSummary_1.TOKEN_TOTAL_LABEL; } });
|
|
30
31
|
var tokenEstimation_1 = require("./tokenEstimation");
|
|
32
|
+
Object.defineProperty(exports, "ASCII_CHARS_PER_TOKEN", { enumerable: true, get: function () { return tokenEstimation_1.ASCII_CHARS_PER_TOKEN; } });
|
|
31
33
|
Object.defineProperty(exports, "estimateTextTokens", { enumerable: true, get: function () { return tokenEstimation_1.estimateTextTokens; } });
|
|
32
34
|
Object.defineProperty(exports, "estimateSerializedTokens", { enumerable: true, get: function () { return tokenEstimation_1.estimateSerializedTokens; } });
|
|
33
35
|
var transcript_1 = require("./transcript");
|
|
@@ -37,6 +39,8 @@ Object.defineProperty(exports, "listRecentSessions", { enumerable: true, get: fu
|
|
|
37
39
|
Object.defineProperty(exports, "readSessionTranscript", { enumerable: true, get: function () { return sessionTranscripts_1.readSessionTranscript; } });
|
|
38
40
|
var promptHistory_1 = require("./promptHistory");
|
|
39
41
|
Object.defineProperty(exports, "collectPromptHistory", { enumerable: true, get: function () { return promptHistory_1.collectPromptHistory; } });
|
|
42
|
+
Object.defineProperty(exports, "isPromptHistorySessionSettled", { enumerable: true, get: function () { return promptHistory_1.isPromptHistorySessionSettled; } });
|
|
43
|
+
Object.defineProperty(exports, "parsePromptHistoryCursor", { enumerable: true, get: function () { return promptHistory_1.parsePromptHistoryCursor; } });
|
|
40
44
|
var sessionPromptHistory_1 = require("./sessionPromptHistory");
|
|
41
45
|
Object.defineProperty(exports, "collectSessionPromptHistory", { enumerable: true, get: function () { return sessionPromptHistory_1.collectSessionPromptHistory; } });
|
|
42
46
|
var humanPrompt_1 = require("./humanPrompt");
|
|
@@ -201,6 +205,7 @@ Object.defineProperty(exports, "parseDbPartData", { enumerable: true, get: funct
|
|
|
201
205
|
// Parsers — Codex
|
|
202
206
|
var codexParser_1 = require("./parsers/codexParser");
|
|
203
207
|
Object.defineProperty(exports, "CodexRolloutParser", { enumerable: true, get: function () { return codexParser_1.CodexRolloutParser; } });
|
|
208
|
+
Object.defineProperty(exports, "DEFAULT_MAX_TRACKED_TOOL_CALLS", { enumerable: true, get: function () { return codexParser_1.DEFAULT_MAX_TRACKED_TOOL_CALLS; } });
|
|
204
209
|
Object.defineProperty(exports, "extractPatchFilePaths", { enumerable: true, get: function () { return codexParser_1.extractPatchFilePaths; } });
|
|
205
210
|
Object.defineProperty(exports, "normalizeCodexToolName", { enumerable: true, get: function () { return codexParser_1.normalizeCodexToolName; } });
|
|
206
211
|
Object.defineProperty(exports, "normalizeCodexToolInput", { enumerable: true, get: function () { return codexParser_1.normalizeCodexToolInput; } });
|
|
@@ -308,6 +313,8 @@ var eventBridge_1 = require("./watchers/eventBridge");
|
|
|
308
313
|
Object.defineProperty(exports, "toFollowEvents", { enumerable: true, get: function () { return eventBridge_1.toFollowEvents; } });
|
|
309
314
|
var jsonlTail_1 = require("./watchers/jsonlTail");
|
|
310
315
|
Object.defineProperty(exports, "createJsonlTail", { enumerable: true, get: function () { return jsonlTail_1.createJsonlTail; } });
|
|
316
|
+
Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_MAX_LINE_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES; } });
|
|
317
|
+
Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_READ_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_READ_BYTES; } });
|
|
311
318
|
// Formatters
|
|
312
319
|
var formatting_1 = require("./formatting");
|
|
313
320
|
Object.defineProperty(exports, "addLocalDays", { enumerable: true, get: function () { return formatting_1.addLocalDays; } });
|
|
@@ -497,8 +504,6 @@ Object.defineProperty(exports, "onAccountsChanged", { enumerable: true, get: fun
|
|
|
497
504
|
var claudeProfiles_1 = require("./claudeProfiles");
|
|
498
505
|
Object.defineProperty(exports, "getClaudeProfilesDir", { enumerable: true, get: function () { return claudeProfiles_1.getClaudeProfilesDir; } });
|
|
499
506
|
Object.defineProperty(exports, "getClaudeProfileHome", { enumerable: true, get: function () { return claudeProfiles_1.getClaudeProfileHome; } });
|
|
500
|
-
Object.defineProperty(exports, "getLiveClaudeHome", { enumerable: true, get: function () { return claudeProfiles_1.getLiveClaudeHome; } });
|
|
501
|
-
Object.defineProperty(exports, "getDefaultClaudeHome", { enumerable: true, get: function () { return claudeProfiles_1.getDefaultClaudeHome; } });
|
|
502
507
|
Object.defineProperty(exports, "getClaudeConfigPath", { enumerable: true, get: function () { return claudeProfiles_1.getClaudeConfigPath; } });
|
|
503
508
|
Object.defineProperty(exports, "claudeKeychainSuffix", { enumerable: true, get: function () { return claudeProfiles_1.claudeKeychainSuffix; } });
|
|
504
509
|
Object.defineProperty(exports, "claudeKeychainService", { enumerable: true, get: function () { return claudeProfiles_1.claudeKeychainService; } });
|
|
@@ -508,6 +513,11 @@ Object.defineProperty(exports, "CLAUDE_SECURESTORAGE_CONFIG_DIR_ENV", { enumerab
|
|
|
508
513
|
Object.defineProperty(exports, "isClaudeProfileAuthenticated", { enumerable: true, get: function () { return claudeProfiles_1.isClaudeProfileAuthenticated; } });
|
|
509
514
|
Object.defineProperty(exports, "readClaudeProfileIdentity", { enumerable: true, get: function () { return claudeProfiles_1.readClaudeProfileIdentity; } });
|
|
510
515
|
Object.defineProperty(exports, "readLiveClaudeIdentity", { enumerable: true, get: function () { return claudeProfiles_1.readLiveClaudeIdentity; } });
|
|
516
|
+
var claudePaths_1 = require("./claudePaths");
|
|
517
|
+
Object.defineProperty(exports, "getLiveClaudeHome", { enumerable: true, get: function () { return claudePaths_1.getLiveClaudeHome; } });
|
|
518
|
+
Object.defineProperty(exports, "getDefaultClaudeHome", { enumerable: true, get: function () { return claudePaths_1.getDefaultClaudeHome; } });
|
|
519
|
+
Object.defineProperty(exports, "isDefaultClaudeHome", { enumerable: true, get: function () { return claudePaths_1.isDefaultClaudeHome; } });
|
|
520
|
+
Object.defineProperty(exports, "getClaudeProjectsDir", { enumerable: true, get: function () { return claudePaths_1.getClaudeProjectsDir; } });
|
|
511
521
|
var codexProfiles_1 = require("./codexProfiles");
|
|
512
522
|
Object.defineProperty(exports, "getCodexProfilesDir", { enumerable: true, get: function () { return codexProfiles_1.getCodexProfilesDir; } });
|
|
513
523
|
Object.defineProperty(exports, "getCodexProfileHome", { enumerable: true, get: function () { return codexProfiles_1.getCodexProfileHome; } });
|
|
@@ -688,6 +698,12 @@ var quotaHistory_2 = require("./schemas/quotaHistory");
|
|
|
688
698
|
Object.defineProperty(exports, "quotaHistoryRuntimeProviderSchema", { enumerable: true, get: function () { return quotaHistory_2.quotaHistoryRuntimeProviderSchema; } });
|
|
689
699
|
Object.defineProperty(exports, "quotaHistorySampleSchema", { enumerable: true, get: function () { return quotaHistory_2.quotaHistorySampleSchema; } });
|
|
690
700
|
Object.defineProperty(exports, "quotaHistoryDailyBucketSchema", { enumerable: true, get: function () { return quotaHistory_2.quotaHistoryDailyBucketSchema; } });
|
|
701
|
+
// Schemas — Zod runtime validation for provider-failure diagnoses
|
|
702
|
+
var providerFailure_1 = require("./schemas/providerFailure");
|
|
703
|
+
Object.defineProperty(exports, "providerAuthenticationEvidenceSchema", { enumerable: true, get: function () { return providerFailure_1.providerAuthenticationEvidenceSchema; } });
|
|
704
|
+
Object.defineProperty(exports, "providerFailureEvidenceSchema", { enumerable: true, get: function () { return providerFailure_1.providerFailureEvidenceSchema; } });
|
|
705
|
+
Object.defineProperty(exports, "providerRetryAfterSchema", { enumerable: true, get: function () { return providerFailure_1.providerRetryAfterSchema; } });
|
|
706
|
+
Object.defineProperty(exports, "providerFailureDiagnosisSchema", { enumerable: true, get: function () { return providerFailure_1.providerFailureDiagnosisSchema; } });
|
|
691
707
|
// Schemas — Zod runtime validation for account status
|
|
692
708
|
var accountStatus_2 = require("./schemas/accountStatus");
|
|
693
709
|
Object.defineProperty(exports, "activeProviderAccountStatusSchema", { enumerable: true, get: function () { return accountStatus_2.activeProviderAccountStatusSchema; } });
|
|
@@ -738,8 +754,14 @@ var failingTools_1 = require("./failingTools");
|
|
|
738
754
|
Object.defineProperty(exports, "FAILING_TOOL_TREND_ARROWS", { enumerable: true, get: function () { return failingTools_1.FAILING_TOOL_TREND_ARROWS; } });
|
|
739
755
|
Object.defineProperty(exports, "failingToolTrend", { enumerable: true, get: function () { return failingTools_1.failingToolTrend; } });
|
|
740
756
|
Object.defineProperty(exports, "mergeFailingToolWindows", { enumerable: true, get: function () { return failingTools_1.mergeFailingToolWindows; } });
|
|
741
|
-
var
|
|
742
|
-
Object.defineProperty(exports, "diagnoseProviderFailure", { enumerable: true, get: function () { return
|
|
757
|
+
var providerFailure_2 = require("./providerFailure");
|
|
758
|
+
Object.defineProperty(exports, "diagnoseProviderFailure", { enumerable: true, get: function () { return providerFailure_2.diagnoseProviderFailure; } });
|
|
759
|
+
Object.defineProperty(exports, "PROVIDER_AUTHENTICATION_SOURCES", { enumerable: true, get: function () { return providerFailure_2.PROVIDER_AUTHENTICATION_SOURCES; } });
|
|
760
|
+
Object.defineProperty(exports, "PROVIDER_AUTHENTICATION_STATES", { enumerable: true, get: function () { return providerFailure_2.PROVIDER_AUTHENTICATION_STATES; } });
|
|
761
|
+
Object.defineProperty(exports, "PROVIDER_CREDENTIAL_KINDS", { enumerable: true, get: function () { return providerFailure_2.PROVIDER_CREDENTIAL_KINDS; } });
|
|
762
|
+
Object.defineProperty(exports, "PROVIDER_FAILURE_CODES", { enumerable: true, get: function () { return providerFailure_2.PROVIDER_FAILURE_CODES; } });
|
|
763
|
+
Object.defineProperty(exports, "PROVIDER_FAILURE_EVIDENCE_SOURCES", { enumerable: true, get: function () { return providerFailure_2.PROVIDER_FAILURE_EVIDENCE_SOURCES; } });
|
|
764
|
+
Object.defineProperty(exports, "PROVIDER_RECOVERY_ACTIONS", { enumerable: true, get: function () { return providerFailure_2.PROVIDER_RECOVERY_ACTIONS; } });
|
|
743
765
|
var providerServiceStatus_1 = require("./providerServiceStatus");
|
|
744
766
|
Object.defineProperty(exports, "fetchProviderServiceStatus", { enumerable: true, get: function () { return providerServiceStatus_1.fetchProviderServiceStatus; } });
|
|
745
767
|
var codexCredentialDoctor_1 = require("./codexCredentialDoctor");
|
|
@@ -748,3 +770,15 @@ Object.defineProperty(exports, "repairCodexCredentialStores", { enumerable: true
|
|
|
748
770
|
var codexProfiles_2 = require("./codexProfiles");
|
|
749
771
|
Object.defineProperty(exports, "readStoredCodexAccount", { enumerable: true, get: function () { return codexProfiles_2.readStoredCodexAccount; } });
|
|
750
772
|
Object.defineProperty(exports, "syncCodexLiveStateAsync", { enumerable: true, get: function () { return codexProfiles_2.syncCodexLiveStateAsync; } });
|
|
773
|
+
// Codex rollout directories (live and archived)
|
|
774
|
+
var codexPaths_1 = require("./codexPaths");
|
|
775
|
+
Object.defineProperty(exports, "getCodexSessionsDirs", { enumerable: true, get: function () { return codexPaths_1.getCodexSessionsDirs; } });
|
|
776
|
+
Object.defineProperty(exports, "CODEX_SESSIONS_SUBDIR", { enumerable: true, get: function () { return codexPaths_1.CODEX_SESSIONS_SUBDIR; } });
|
|
777
|
+
Object.defineProperty(exports, "CODEX_ARCHIVED_SESSIONS_SUBDIR", { enumerable: true, get: function () { return codexPaths_1.CODEX_ARCHIVED_SESSIONS_SUBDIR; } });
|
|
778
|
+
// Tool categories across providers
|
|
779
|
+
var toolCategory_1 = require("./toolCategory");
|
|
780
|
+
Object.defineProperty(exports, "classifyTool", { enumerable: true, get: function () { return toolCategory_1.classifyTool; } });
|
|
781
|
+
Object.defineProperty(exports, "TOOL_CATEGORIES", { enumerable: true, get: function () { return toolCategory_1.TOOL_CATEGORIES; } });
|
|
782
|
+
// Workspace roots (realpath plus git worktree expansion)
|
|
783
|
+
var workspaceRoots_1 = require("./workspaceRoots");
|
|
784
|
+
Object.defineProperty(exports, "resolveWorkspaceRoots", { enumerable: true, get: function () { return workspaceRoots_1.resolveWorkspaceRoots; } });
|