sidekick-shared 0.24.5 → 0.25.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 +35 -0
- package/README.md +159 -52
- package/dist/accountChangeSignal.d.ts +3 -0
- package/dist/accountChangeSignal.js +19 -0
- package/dist/accountChanges.d.ts +21 -0
- package/dist/accountChanges.js +151 -0
- package/dist/accountRegistry.d.ts +3 -1
- package/dist/accountRegistry.js +5 -0
- package/dist/browser.d.ts +8 -3
- package/dist/browser.js +15 -1
- package/dist/codexQuotaWatcher.d.ts +6 -0
- package/dist/codexQuotaWatcher.js +101 -47
- package/dist/index.d.ts +23 -13
- package/dist/index.js +34 -10
- package/dist/modelAliases.d.ts +13 -0
- package/dist/modelAliases.js +58 -0
- package/dist/modelCatalog.d.ts +32 -0
- package/dist/modelCatalog.js +145 -0
- package/dist/modelContext.d.ts +36 -3
- package/dist/modelContext.js +109 -34
- package/dist/modelInfo.d.ts +30 -1
- package/dist/modelInfo.js +116 -26
- package/dist/multiProviderQuotaService.d.ts +8 -0
- package/dist/multiProviderQuotaService.js +64 -3
- package/dist/node.d.ts +4 -4
- package/dist/node.js +4 -1
- package/dist/observedSessionCollector.d.ts +75 -4
- package/dist/observedSessionCollector.js +452 -42
- package/dist/parsers/codexHistory.d.ts +4 -2
- package/dist/parsers/codexHistory.js +9 -2
- package/dist/parsers/sessionActivityDetector.d.ts +6 -0
- package/dist/parsers/sessionActivityDetector.js +17 -0
- package/dist/providerIds.d.ts +11 -0
- package/dist/providerIds.js +9 -0
- package/dist/providerQuota.d.ts +3 -1
- package/dist/providerQuota.js +3 -0
- package/dist/providers/claudeCode.d.ts +10 -1
- package/dist/providers/claudeCode.js +204 -39
- package/dist/providers/codex.d.ts +18 -1
- package/dist/providers/codex.js +269 -40
- package/dist/providers/codexDatabase.d.ts +9 -0
- package/dist/providers/codexDatabase.js +107 -2
- package/dist/providers/diagnostics.d.ts +13 -0
- package/dist/providers/diagnostics.js +88 -0
- package/dist/providers/factory.d.ts +14 -0
- package/dist/providers/factory.js +57 -0
- package/dist/providers/openCode.d.ts +20 -1
- package/dist/providers/openCode.js +361 -11
- package/dist/providers/openCodeDatabase.d.ts +10 -0
- package/dist/providers/openCodeDatabase.js +69 -0
- package/dist/providers/types.d.ts +52 -2
- package/dist/providers/types.js +4 -0
- package/dist/quota.d.ts +4 -1
- package/dist/quota.js +3 -7
- package/dist/quotaHistory.d.ts +2 -1
- package/dist/quotaPoller.d.ts +13 -1
- package/dist/quotaPoller.js +65 -3
- package/dist/schemas/accountManager.d.ts +2 -2
- package/dist/schemas/accountManager.js +2 -4
- package/dist/schemas/accountStatus.d.ts +3 -0
- package/dist/schemas/accountStatus.js +1 -0
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.js +7 -2
- package/dist/schemas/observedSessionV1.d.ts +27 -26
- package/dist/schemas/observedSessionV1.js +6 -4
- package/dist/schemas/quota.d.ts +2 -2
- package/dist/schemas/quota.js +3 -6
- package/dist/schemas/quotaHistory.d.ts +2 -2
- package/dist/schemas/tokenEstimation.d.ts +1 -1
- package/dist/sessionMonitor.d.ts +15 -0
- package/dist/sessionMonitor.js +142 -0
- package/dist/sessionPreviews.d.ts +26 -1
- package/dist/sessionPreviews.js +319 -4
- package/dist/types/observedSessionV1.d.ts +6 -2
- package/dist/types/observedSessionV1.js +14 -8
- package/package.json +22 -1
package/dist/index.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ export { projectSessionTranscript } from './transcript';
|
|
|
9
9
|
export type { TranscriptFidelity, TranscriptSourceProvenance, CanonicalTranscriptBlock, CanonicalTranscriptMessage, CanonicalToolCall, CanonicalTranscriptUsageTotals, CanonicalSessionTranscript, ProjectSessionTranscriptOptions, } from './transcript';
|
|
10
10
|
export { listRecentSessions, readSessionTranscript } from './sessionTranscripts';
|
|
11
11
|
export type { ProviderSessionIndex, ListRecentSessionsOptions } from './sessionTranscripts';
|
|
12
|
-
export { ObservedSessionCollector, observedSessionSourceFromProvider, fileFingerprint, } from './observedSessionCollector';
|
|
13
|
-
export type { ObservedSessionReference, ObservedSessionCollectionSource, ProviderObservedSessionCollectionSource, ObservedSessionDiagnosticKind, ObservedSessionDiagnostic, ObservedSessionCollection, ObservedSessionCollectorOptions, } from './observedSessionCollector';
|
|
12
|
+
export { ObservedSessionCollector, observedSessionSourceFromProvider, fileFingerprint, fileFingerprintParts, } from './observedSessionCollector';
|
|
13
|
+
export type { KnownObservedSessionFingerprint, ObservedSessionChange, ObservedSessionChangeBatch, ObservedSessionChangeType, ObservedSessionReference, ObservedSessionFingerprintParts, ObservedSessionSourceSubscribeOptions, ObservedSessionSubscribeOptions, ObservedSessionCollectionSource, ProviderObservedSessionCollectionSource, ObservedSessionDiagnosticKind, ObservedSessionDiagnosticPhase, ObservedSessionDiagnosticSeverity, ObservedSessionDiagnostic, ObservedSessionCollection, ObservedSessionCollectorOptions, } from './observedSessionCollector';
|
|
14
14
|
export type { SessionEvent, ClaudeSessionEvent, MessageUsage, SessionMessage, SessionEventBase, MessageSessionEvent, UserSessionEvent, AssistantSessionEvent, SummarySessionEvent, SystemSessionEvent, ToolUseSessionEvent, ToolResultSessionEvent, TokenUsage, ToolCall, ToolAnalytics, TimelineEvent, PendingToolCall, TaskStatus as SessionTaskStatus, TrackedTask, TaskState, SubagentStats, PendingUserRequest, ResponseLatency, LatencyStats, PlanStep, PlanState, SessionStats, CompactionEvent, TruncationEvent, ContextAttribution, TurnAttribution, ContextSizePoint, PermissionMode, PermissionModeChange, } from './types/sessionEvent';
|
|
15
15
|
export type { OpenCodeSession, OpenCodeMessage, OpenCodePart, OpenCodeTextPart, OpenCodeReasoningPart, OpenCodeToolInvocationPart, OpenCodeCompactionPart, OpenCodeDbToolPart, OpenCodeStepStartPart, OpenCodeStepFinishPart, OpenCodePatchPart, OpenCodeSubtaskPart, OpenCodeAgentPart, OpenCodeFilePart, OpenCodeRetryPart, OpenCodeSnapshotPart, OpenCodeProject, DbProject as OpenCodeDbProject, DbSession as OpenCodeDbSession, DbMessage as OpenCodeDbMessage, DbPart as OpenCodeDbPart, } from './types/opencode';
|
|
16
16
|
export type { CodexRolloutLine, CodexSessionMeta, CodexResponseItem, CodexMessageItem, CodexContentPart, CodexReasoningItem, CodexFunctionCallItem, CodexFunctionCallOutputItem, CodexLocalShellCallItem, CodexWebSearchCallItem, CodexCustomToolCallItem, CodexCustomToolCallOutputItem, CodexCompacted, CodexTurnContext, CodexEventMsg, CodexEvent, CodexTurnStartedEvent, CodexTurnCompleteEvent, CodexTaskStartedEvent, CodexTaskCompleteEvent, CodexTurnAbortedEvent, CodexTokenCountEvent, CodexTokenUsage, CodexRateLimits, CodexAgentMessageEvent, CodexAgentReasoningEvent, CodexUserMessageEvent, CodexExecCommandBeginEvent, CodexExecCommandEndEvent, CodexMcpToolCallBeginEvent, CodexMcpToolCallEndEvent, CodexErrorEvent, CodexContextCompactedEvent, CodexPatchAppliedEvent, CodexBackgroundEvent, CodexGenericEvent, CodexDbThread, CodexReasoningSummary, } from './types/codex';
|
|
@@ -44,9 +44,12 @@ export { addDecision, decisionFingerprint } from './writers/decisions';
|
|
|
44
44
|
export { addNote } from './writers/notes';
|
|
45
45
|
export { renderHandoffUrlTemplate } from './handoffUrl';
|
|
46
46
|
export type { HandoffUrlIdentifiers } from './handoffUrl';
|
|
47
|
-
export type { ProviderId, SessionProvider, SessionProviderBase, SessionFileStats, SessionFileInfo, SearchHit, ProjectFolderInfo, SessionReader, ProviderRuntimeStatus, } from './providers/types';
|
|
47
|
+
export type { ProviderId, SessionProvider, SessionProviderBase, SessionFileStats, SessionFileInfo, SearchHit, ProjectFolderInfo, SessionReader, SessionProviderOptions, ProviderOperationStatus, SessionProviderDiagnostic, SessionProviderDiagnosticKind, SessionProviderDiagnosticPhase, SessionProviderDiagnosticSeverity, ProviderRuntimeStatus, } from './providers/types';
|
|
48
|
+
export { SESSION_PROVIDER_IDS } from './providers/types';
|
|
49
|
+
export { createSessionProviders } from './providers/factory';
|
|
50
|
+
export type { CreateSessionProvidersOptions, CreateSessionProvidersResult, } from './providers/factory';
|
|
48
51
|
export { createProviderSessionAdapterV1, derivePendingUserRequestV1, } from './types/observedSessionV1';
|
|
49
|
-
export type { ObservationProvenanceV1, ObservedAgentSessionV1, ObservedValueV1, PendingUserRequestV1, ProviderCapabilitiesV1, ProviderSessionAdapterV1, SessionEvidenceRefV1, } from './types/observedSessionV1';
|
|
52
|
+
export type { ObservationProvenanceV1, ObservedAgentSessionV1, ObservedValueV1, PendingUserRequestV1, ProviderCapabilitiesV1, ProviderSessionAdapterV1, ProviderSessionAdapterV1Options, SessionEvidenceRefV1, } from './types/observedSessionV1';
|
|
50
53
|
export { detectProvider, getAllDetectedProviders } from './providers/detect';
|
|
51
54
|
export { ClaudeCodeProvider } from './providers/claudeCode';
|
|
52
55
|
export { OpenCodeProvider, getOpenCodeDataDir } from './providers/openCode';
|
|
@@ -57,7 +60,7 @@ export type { RawSessionEvent, JsonlParserCallbacks, JsonlParserOptions } from '
|
|
|
57
60
|
export { normalizeToolName, normalizeToolInput, detectPlanModeFromText, convertOpenCodeMessage, parseDbMessageData, parseDbPartData, } from './parsers/openCodeParser';
|
|
58
61
|
export { CodexRolloutParser, extractPatchFilePaths, normalizeCodexToolName, normalizeCodexToolInput, } from './parsers/codexParser';
|
|
59
62
|
export { scanSubagentDir, extractTaskInfo } from './parsers/subagentScanner';
|
|
60
|
-
export { detectSessionActivity } from './parsers/sessionActivityDetector';
|
|
63
|
+
export { detectSessionActivity, refreshSessionActivityState, } from './parsers/sessionActivityDetector';
|
|
61
64
|
export type { SessionActivityState, SessionActivityResult, } from './parsers/sessionActivityDetector';
|
|
62
65
|
export { encodeWorkspacePath as encodeClaudeWorkspacePath, getSessionDirectory as getClaudeSessionDirectory, discoverSessionDirectory, findActiveSession as findActiveClaudeSession, findAllSessions as findAllClaudeSessions, findSessionsInDirectory, findSubdirectorySessionDirs, getMostRecentlyActiveSessionDir, decodeEncodedPath, getAllProjectFolders as getAllClaudeProjectFolders, resolveWorktreeMainRepo, discoverWorktreeSiblings, findAllSessionsWithWorktrees, } from './parsers/sessionPathResolver';
|
|
63
66
|
export { scanSubagentTraces } from './parsers/subagentTraceParser';
|
|
@@ -66,8 +69,8 @@ export { parseMcpToolName } from './parsers/mcpToolName';
|
|
|
66
69
|
export type { McpToolNameParts } from './parsers/mcpToolName';
|
|
67
70
|
export { readCodexHistory } from './parsers/codexHistory';
|
|
68
71
|
export type { CodexHistoryEntry, ReadCodexHistoryOptions } from './parsers/codexHistory';
|
|
69
|
-
export { listSessionPreviews, readSessionPreview } from './sessionPreviews';
|
|
70
|
-
export type { ListSessionPreviewsOptions, ReadSessionPreviewOptions, SessionPreview, } from './sessionPreviews';
|
|
72
|
+
export { listSessionPreviews, listSessionPreviewsAsync, readSessionPreview, readSessionPreviewAsync, } from './sessionPreviews';
|
|
73
|
+
export type { AsyncSessionPreviewOptions, ListSessionPreviewsAsyncOptions, ListSessionPreviewsOptions, ReadSessionPreviewAsyncOptions, ReadSessionPreviewOptions, SessionPreview, SessionPreviewListResult, SessionPreviewReadResult, } from './sessionPreviews';
|
|
71
74
|
export { parseDebugLog, filterByLevel, collapseDuplicates, discoverDebugLogs, } from './parsers/debugLogParser';
|
|
72
75
|
export type { DebugLogEntry, DebugLogFile, DebugLogLevel } from './parsers/debugLogParser';
|
|
73
76
|
export { OpenCodeDatabase } from './providers/openCodeDatabase';
|
|
@@ -105,7 +108,7 @@ export { ALL_PHRASES, PHRASE_CATEGORIES, getRandomPhrase } from './phrases';
|
|
|
105
108
|
export type { PhraseCategory } from './phrases';
|
|
106
109
|
export { EventAggregator, parseTodoDependencies } from './aggregation/EventAggregator';
|
|
107
110
|
export { SessionMonitor } from './sessionMonitor';
|
|
108
|
-
export type { SessionMonitorOptions } from './sessionMonitor';
|
|
111
|
+
export type { SessionMonitorOptions, SessionMonitorSubscribeOptions } from './sessionMonitor';
|
|
109
112
|
export type { SerializedAggregatorState } from './aggregation/EventAggregator';
|
|
110
113
|
export { saveSnapshot, loadSnapshot, deleteSnapshot, isSnapshotValid, getSnapshotPath, } from './aggregation/snapshot';
|
|
111
114
|
export type { SessionSnapshot } from './aggregation/snapshot';
|
|
@@ -137,8 +140,11 @@ export { beginAccountLogin, getAccountLoginStatus, getAccountLoginStatusAsync, f
|
|
|
137
140
|
export type { AccountLoginCommand, AccountLoginState, AccountLoginStatus, BeginAccountLoginResult, FinalizeAccountLoginOptions, ListAllAccountsResult, SpawnAccountLoginOptions, } from './accountManager';
|
|
138
141
|
export { getAccountsDir, readSavedAccountRegistry, writeSavedAccountRegistry, listSavedAccountProfiles, getActiveSavedAccount, upsertSavedAccountProfile, setActiveSavedAccount, replaceSavedAccountProfiles, removeSavedAccountProfile, } from './accountRegistry';
|
|
139
142
|
export type { AccountProviderId, AccountIdentityMetadata, ResolvedActiveAccount, SavedAccountProfile, SavedAccountRegistry, } from './accountRegistry';
|
|
143
|
+
export { ACCOUNT_PROVIDER_IDS } from './accountRegistry';
|
|
140
144
|
export { getActiveAccountStatus } from './accountStatus';
|
|
141
145
|
export type { ActiveAccountStatus, ActiveProviderAccountStatus } from './accountStatus';
|
|
146
|
+
export { onAccountsChanged } from './accountChanges';
|
|
147
|
+
export type { AccountsChangedEvent, OnAccountsChangedOptions } from './accountChanges';
|
|
142
148
|
export { getClaudeProfilesDir, getClaudeProfileHome, claudeKeychainSuffix, claudeKeychainService, isClaudeProfileAuthenticated, readClaudeProfileIdentity, } from './claudeProfiles';
|
|
143
149
|
export type { ClaudeProfileIdentity } from './claudeProfiles';
|
|
144
150
|
export { getCodexProfilesDir, getCodexProfileHome, getCodexMonitoringHomes, getSystemCodexHome, listCodexAccounts, getActiveCodexAccount, resolveActiveCodexAccount, resolveSidekickCodexHome, getCodexExecutionEnv, prepareCodexAccount, prepareCodexAccountAsync, finalizeCodexAccount, finalizeCodexAccountAsync, switchToCodexAccount, switchToCodexAccountAsync, removeCodexAccount, } from './codexProfiles';
|
|
@@ -146,8 +152,8 @@ export type { CodexAccountManagerResult } from './codexProfiles';
|
|
|
146
152
|
export { setTerminalActiveProfile, installShellHook, uninstallShellHook, isShellHookInstalled, writeLauncher, removeLauncher, } from './terminalSync';
|
|
147
153
|
export { DEFAULT_AUTO_SWITCH_CONFIG, decideAutoSwitch, AutoSwitchController } from './autoSwitch';
|
|
148
154
|
export type { AutoSwitchActiveAccount, AutoSwitchCandidate, AutoSwitchConfig, AutoSwitchControllerOptions, AutoSwitchDecision, AutoSwitchTransitionEvent, } from './autoSwitch';
|
|
149
|
-
export { FIVE_HOUR_WINDOW_MS, SEVEN_DAY_WINDOW_MS, fetchQuota, projectQuotaWindow, withQuotaProjections, } from './quota';
|
|
150
|
-
export type { CodexResetCredit, CodexResetCreditsSnapshot, QuotaProjectionInput, QuotaWindow, QuotaState, } from './quota';
|
|
155
|
+
export { FIVE_HOUR_WINDOW_MS, QUOTA_PROVIDER_IDS, SEVEN_DAY_WINDOW_MS, fetchQuota, projectQuotaWindow, withQuotaProjections, } from './quota';
|
|
156
|
+
export type { CodexResetCredit, CodexResetCreditsSnapshot, QuotaProjectionInput, QuotaProviderId, QuotaWindow, QuotaState, } from './quota';
|
|
151
157
|
export { describeQuotaFailure } from './quotaPresentation';
|
|
152
158
|
export type { QuotaFailureDescriptor } from './quotaPresentation';
|
|
153
159
|
export { QuotaPoller } from './quotaPoller';
|
|
@@ -163,14 +169,18 @@ export { fetchZaiQuotaFromApi, quotaStateFromZaiQuotaLimitPayload, readZaiCreden
|
|
|
163
169
|
export type { ReadZaiCredentialsOptions, ZaiCredentialSource, ZaiCredentials, ZaiPlatform, ZaiQuotaApiOptions, ZaiQuotaResolveOptions, } from './zaiQuotaApi';
|
|
164
170
|
export { MultiProviderQuotaService } from './multiProviderQuotaService';
|
|
165
171
|
export type { MultiProviderQuotaServiceOptions } from './multiProviderQuotaService';
|
|
172
|
+
export { RUNTIME_QUOTA_PROVIDER_IDS } from './providerQuota';
|
|
166
173
|
export type { ProviderQuotaMap, ProviderQuotaState, RuntimeQuotaProvider } from './providerQuota';
|
|
167
174
|
export type { QuotaSnapshotProviderId } from './quotaSnapshots';
|
|
168
175
|
export { BurnRateCalculator, estimateTimeToQuota } from './statusline/BurnRateCalculator';
|
|
169
176
|
export { formatStatusline, selectStatuslineAccount } from './statusline/formatter';
|
|
170
177
|
export type { StatuslineInput, StatuslineSelection } from './statusline/formatter';
|
|
171
|
-
export { getModelContextWindowSize, DEFAULT_CONTEXT_WINDOW } from './modelContext';
|
|
172
|
-
export {
|
|
173
|
-
export
|
|
178
|
+
export { getModelContextWindowSize, resolveModelContextWindow, DEFAULT_CONTEXT_WINDOW, } from './modelContext';
|
|
179
|
+
export type { ModelCatalogMatch, ModelContextWindowProvenance, ModelContextWindowSource, ResolvedModelContextWindow, } from './modelContext';
|
|
180
|
+
export { parseModelId, getModelPricing, resolveModelPricing, getModelInfo, calculateCost, calculateCostWithPricing, calculateCostWithProvenance, mergeCostSources, shortModelName, getModelDisplayInfo, compareModelIds, sortModelIds, formatCost, MODEL_PROVIDER_IDS, } from './modelInfo';
|
|
181
|
+
export type { ModelPricing, CostTokenUsage, CostSource, CostProvenanceInput, CostWithProvenance, ModelInfo, ModelProvider, ParsedModelId, ModelDisplayInfo, ModelPricingMatch, ModelPricingProvenance, ModelPricingSource, ResolvedModelPricing, } from './modelInfo';
|
|
182
|
+
export { exportResolvedModelCatalog, importResolvedModelCatalog, registerModelAlias, resolveModelAlias, RESOLVED_MODEL_CATALOG_SCHEMA_VERSION, } from './modelCatalog';
|
|
183
|
+
export type { ImportResolvedModelCatalogResult, ResolvedModelCatalogEntry, ResolvedModelCatalogSnapshot, } from './modelCatalog';
|
|
174
184
|
export { hydratePricingCatalog, normalizeLiteLlmCatalog, normalizeLiteLlmContextWindows, LITELLM_CATALOG_URL, } from './pricingCatalog';
|
|
175
185
|
export type { HydrateOptions, HydrateResult } from './pricingCatalog';
|
|
176
186
|
export { loadObservedContextWindows, recordObservedContextWindow, getObservedContextWindowPath, } from './observedContextWindows';
|
package/dist/index.js
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
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.scopePeakHoursToSessionProvider = exports.isClaudeCodeSessionProvider = exports.fetchPeakHoursStatus = exports.DEFAULT_PEAK_HOURS_TIMEOUT_MS = exports.createPeakHoursNotApplicableState = exports.runDoctor = exports.getSessionDiagnostics = void 0;
|
|
6
|
+
exports.atomicWriteFileSync = exports.atomicWriteJsonSync = 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.fileFingerprintParts = exports.fileFingerprint = exports.observedSessionSourceFromProvider = exports.ObservedSessionCollector = exports.readSessionTranscript = exports.listRecentSessions = exports.projectSessionTranscript = exports.estimateSerializedTokens = exports.estimateTextTokens = exports.calculateNormalizedUsageCost = exports.extractNormalizedUsage = exports.normalizeProviderUsage = void 0;
|
|
7
|
+
exports.scanSubagentTraces = exports.findAllSessionsWithWorktrees = exports.discoverWorktreeSiblings = exports.resolveWorktreeMainRepo = exports.getAllClaudeProjectFolders = exports.decodeEncodedPath = exports.getMostRecentlyActiveSessionDir = exports.findSubdirectorySessionDirs = exports.findSessionsInDirectory = exports.findAllClaudeSessions = exports.findActiveClaudeSession = exports.discoverSessionDirectory = exports.getClaudeSessionDirectory = exports.encodeClaudeWorkspacePath = exports.refreshSessionActivityState = exports.detectSessionActivity = exports.extractTaskInfo = exports.scanSubagentDir = exports.normalizeCodexToolInput = exports.normalizeCodexToolName = exports.extractPatchFilePaths = exports.CodexRolloutParser = exports.parseDbPartData = exports.parseDbMessageData = exports.convertOpenCodeMessage = exports.detectPlanModeFromText = exports.normalizeToolInput = exports.normalizeToolName = exports.TRUNCATION_PATTERNS = exports.JsonlParser = exports.findCodexRolloutFile = exports.CodexProvider = exports.getOpenCodeDataDir = exports.OpenCodeProvider = exports.ClaudeCodeProvider = exports.getAllDetectedProviders = exports.detectProvider = 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 = void 0;
|
|
8
|
+
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.formatTokenCount = exports.formatDurationMs = exports.createJsonlTail = exports.toFollowEvents = exports.createWatcher = exports.parseChangelog = 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 = void 0;
|
|
9
|
+
exports.switchAccount = exports.spawnAccountLogin = exports.finalizeAccountLoginAsync = exports.finalizeAccountLogin = exports.getAccountLoginStatusAsync = exports.getAccountLoginStatus = exports.beginAccountLogin = exports.isMultiAccountEnabled = exports.resolveActiveClaudeAccount = exports.getActiveAccount = exports.listAccounts = exports.removeAccount = exports.reconcileClaudeAuthState = exports.applyActiveClaudeToLiveHome = exports.resolveActiveClaudeHome = exports.switchToAccount = exports.addCurrentAccount = exports.readActiveClaudeAccount = exports.writeAccountRegistry = exports.readAccountRegistry = exports.ensureDefaultAccounts = exports.readClaudeMaxAccessTokenSync = exports.readClaudeMaxCredentials = exports.writeActiveCredentials = exports.readActiveCredentials = exports.openInBrowser = exports.parseTranscriptFromEvents = exports.parseTranscript = exports.generateHtmlReport = exports.formatCompactionLedger = exports.calculateCompactionLedger = 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.isSnapshotValid = exports.deleteSnapshot = exports.loadSnapshot = exports.saveSnapshot = exports.SessionMonitor = exports.parseTodoDependencies = exports.EventAggregator = void 0;
|
|
10
|
+
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.isShellHookInstalled = exports.uninstallShellHook = exports.installShellHook = exports.setTerminalActiveProfile = 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.readClaudeProfileIdentity = exports.isClaudeProfileAuthenticated = exports.claudeKeychainService = exports.claudeKeychainSuffix = 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.resolveClaudeLoginCommand = exports.listAllAccounts = exports.switchAccountAsync = void 0;
|
|
11
|
+
exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION = exports.resolveModelAlias = 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.writeQuotaSnapshot = exports.readQuotaSnapshot = exports.QuotaPoller = exports.describeQuotaFailure = exports.withQuotaProjections = exports.projectQuotaWindow = void 0;
|
|
12
|
+
exports.accountLoginStatusSchema = exports.beginAccountLoginResultSchema = exports.accountManagerResultSchema = exports.accountProviderIdSchema = exports.activeAccountStatusSchema = exports.activeProviderAccountStatusSchema = 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 = void 0;
|
|
13
|
+
exports.scopePeakHoursToSessionProvider = exports.isClaudeCodeSessionProvider = exports.fetchPeakHoursStatus = exports.DEFAULT_PEAK_HOURS_TIMEOUT_MS = exports.createPeakHoursNotApplicableState = exports.runDoctor = exports.getSessionDiagnostics = exports.formatHealthReport = 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 = void 0;
|
|
14
14
|
var usageNormalization_1 = require("./usageNormalization");
|
|
15
15
|
Object.defineProperty(exports, "normalizeProviderUsage", { enumerable: true, get: function () { return usageNormalization_1.normalizeProviderUsage; } });
|
|
16
16
|
Object.defineProperty(exports, "extractNormalizedUsage", { enumerable: true, get: function () { return usageNormalization_1.extractNormalizedUsage; } });
|
|
@@ -27,6 +27,7 @@ var observedSessionCollector_1 = require("./observedSessionCollector");
|
|
|
27
27
|
Object.defineProperty(exports, "ObservedSessionCollector", { enumerable: true, get: function () { return observedSessionCollector_1.ObservedSessionCollector; } });
|
|
28
28
|
Object.defineProperty(exports, "observedSessionSourceFromProvider", { enumerable: true, get: function () { return observedSessionCollector_1.observedSessionSourceFromProvider; } });
|
|
29
29
|
Object.defineProperty(exports, "fileFingerprint", { enumerable: true, get: function () { return observedSessionCollector_1.fileFingerprint; } });
|
|
30
|
+
Object.defineProperty(exports, "fileFingerprintParts", { enumerable: true, get: function () { return observedSessionCollector_1.fileFingerprintParts; } });
|
|
30
31
|
var codex_1 = require("./types/codex");
|
|
31
32
|
Object.defineProperty(exports, "isAggregateCodexLimit", { enumerable: true, get: function () { return codex_1.isAggregateCodexLimit; } });
|
|
32
33
|
var taskPersistence_1 = require("./types/taskPersistence");
|
|
@@ -96,6 +97,10 @@ var notes_2 = require("./writers/notes");
|
|
|
96
97
|
Object.defineProperty(exports, "addNote", { enumerable: true, get: function () { return notes_2.addNote; } });
|
|
97
98
|
var handoffUrl_1 = require("./handoffUrl");
|
|
98
99
|
Object.defineProperty(exports, "renderHandoffUrlTemplate", { enumerable: true, get: function () { return handoffUrl_1.renderHandoffUrlTemplate; } });
|
|
100
|
+
var types_1 = require("./providers/types");
|
|
101
|
+
Object.defineProperty(exports, "SESSION_PROVIDER_IDS", { enumerable: true, get: function () { return types_1.SESSION_PROVIDER_IDS; } });
|
|
102
|
+
var factory_1 = require("./providers/factory");
|
|
103
|
+
Object.defineProperty(exports, "createSessionProviders", { enumerable: true, get: function () { return factory_1.createSessionProviders; } });
|
|
99
104
|
var observedSessionV1_1 = require("./types/observedSessionV1");
|
|
100
105
|
Object.defineProperty(exports, "createProviderSessionAdapterV1", { enumerable: true, get: function () { return observedSessionV1_1.createProviderSessionAdapterV1; } });
|
|
101
106
|
Object.defineProperty(exports, "derivePendingUserRequestV1", { enumerable: true, get: function () { return observedSessionV1_1.derivePendingUserRequestV1; } });
|
|
@@ -135,6 +140,7 @@ Object.defineProperty(exports, "extractTaskInfo", { enumerable: true, get: funct
|
|
|
135
140
|
// Parsers — Session activity detection
|
|
136
141
|
var sessionActivityDetector_1 = require("./parsers/sessionActivityDetector");
|
|
137
142
|
Object.defineProperty(exports, "detectSessionActivity", { enumerable: true, get: function () { return sessionActivityDetector_1.detectSessionActivity; } });
|
|
143
|
+
Object.defineProperty(exports, "refreshSessionActivityState", { enumerable: true, get: function () { return sessionActivityDetector_1.refreshSessionActivityState; } });
|
|
138
144
|
// Parsers — Session path resolution (Claude Code)
|
|
139
145
|
var sessionPathResolver_1 = require("./parsers/sessionPathResolver");
|
|
140
146
|
Object.defineProperty(exports, "encodeClaudeWorkspacePath", { enumerable: true, get: function () { return sessionPathResolver_1.encodeWorkspacePath; } });
|
|
@@ -162,7 +168,9 @@ Object.defineProperty(exports, "readCodexHistory", { enumerable: true, get: func
|
|
|
162
168
|
// Session previews (bounded, stat-first)
|
|
163
169
|
var sessionPreviews_1 = require("./sessionPreviews");
|
|
164
170
|
Object.defineProperty(exports, "listSessionPreviews", { enumerable: true, get: function () { return sessionPreviews_1.listSessionPreviews; } });
|
|
171
|
+
Object.defineProperty(exports, "listSessionPreviewsAsync", { enumerable: true, get: function () { return sessionPreviews_1.listSessionPreviewsAsync; } });
|
|
165
172
|
Object.defineProperty(exports, "readSessionPreview", { enumerable: true, get: function () { return sessionPreviews_1.readSessionPreview; } });
|
|
173
|
+
Object.defineProperty(exports, "readSessionPreviewAsync", { enumerable: true, get: function () { return sessionPreviews_1.readSessionPreviewAsync; } });
|
|
166
174
|
// Parsers — Debug log parsing
|
|
167
175
|
var debugLogParser_1 = require("./parsers/debugLogParser");
|
|
168
176
|
Object.defineProperty(exports, "parseDebugLog", { enumerable: true, get: function () { return debugLogParser_1.parseDebugLog; } });
|
|
@@ -202,8 +210,8 @@ Object.defineProperty(exports, "extractProposedPlanShared", { enumerable: true,
|
|
|
202
210
|
// Changelog Parsing
|
|
203
211
|
var changelogParser_1 = require("./parsers/changelogParser");
|
|
204
212
|
Object.defineProperty(exports, "parseChangelog", { enumerable: true, get: function () { return changelogParser_1.parseChangelog; } });
|
|
205
|
-
var
|
|
206
|
-
Object.defineProperty(exports, "createWatcher", { enumerable: true, get: function () { return
|
|
213
|
+
var factory_2 = require("./watchers/factory");
|
|
214
|
+
Object.defineProperty(exports, "createWatcher", { enumerable: true, get: function () { return factory_2.createWatcher; } });
|
|
207
215
|
var eventBridge_1 = require("./watchers/eventBridge");
|
|
208
216
|
Object.defineProperty(exports, "toFollowEvents", { enumerable: true, get: function () { return eventBridge_1.toFollowEvents; } });
|
|
209
217
|
var jsonlTail_1 = require("./watchers/jsonlTail");
|
|
@@ -320,8 +328,12 @@ Object.defineProperty(exports, "upsertSavedAccountProfile", { enumerable: true,
|
|
|
320
328
|
Object.defineProperty(exports, "setActiveSavedAccount", { enumerable: true, get: function () { return accountRegistry_1.setActiveSavedAccount; } });
|
|
321
329
|
Object.defineProperty(exports, "replaceSavedAccountProfiles", { enumerable: true, get: function () { return accountRegistry_1.replaceSavedAccountProfiles; } });
|
|
322
330
|
Object.defineProperty(exports, "removeSavedAccountProfile", { enumerable: true, get: function () { return accountRegistry_1.removeSavedAccountProfile; } });
|
|
331
|
+
var accountRegistry_2 = require("./accountRegistry");
|
|
332
|
+
Object.defineProperty(exports, "ACCOUNT_PROVIDER_IDS", { enumerable: true, get: function () { return accountRegistry_2.ACCOUNT_PROVIDER_IDS; } });
|
|
323
333
|
var accountStatus_1 = require("./accountStatus");
|
|
324
334
|
Object.defineProperty(exports, "getActiveAccountStatus", { enumerable: true, get: function () { return accountStatus_1.getActiveAccountStatus; } });
|
|
335
|
+
var accountChanges_1 = require("./accountChanges");
|
|
336
|
+
Object.defineProperty(exports, "onAccountsChanged", { enumerable: true, get: function () { return accountChanges_1.onAccountsChanged; } });
|
|
325
337
|
var claudeProfiles_1 = require("./claudeProfiles");
|
|
326
338
|
Object.defineProperty(exports, "getClaudeProfilesDir", { enumerable: true, get: function () { return claudeProfiles_1.getClaudeProfilesDir; } });
|
|
327
339
|
Object.defineProperty(exports, "getClaudeProfileHome", { enumerable: true, get: function () { return claudeProfiles_1.getClaudeProfileHome; } });
|
|
@@ -360,6 +372,7 @@ Object.defineProperty(exports, "AutoSwitchController", { enumerable: true, get:
|
|
|
360
372
|
// Quota
|
|
361
373
|
var quota_1 = require("./quota");
|
|
362
374
|
Object.defineProperty(exports, "FIVE_HOUR_WINDOW_MS", { enumerable: true, get: function () { return quota_1.FIVE_HOUR_WINDOW_MS; } });
|
|
375
|
+
Object.defineProperty(exports, "QUOTA_PROVIDER_IDS", { enumerable: true, get: function () { return quota_1.QUOTA_PROVIDER_IDS; } });
|
|
363
376
|
Object.defineProperty(exports, "SEVEN_DAY_WINDOW_MS", { enumerable: true, get: function () { return quota_1.SEVEN_DAY_WINDOW_MS; } });
|
|
364
377
|
Object.defineProperty(exports, "fetchQuota", { enumerable: true, get: function () { return quota_1.fetchQuota; } });
|
|
365
378
|
Object.defineProperty(exports, "projectQuotaWindow", { enumerable: true, get: function () { return quota_1.projectQuotaWindow; } });
|
|
@@ -393,6 +406,8 @@ Object.defineProperty(exports, "readZaiCredentials", { enumerable: true, get: fu
|
|
|
393
406
|
Object.defineProperty(exports, "resolveZaiQuota", { enumerable: true, get: function () { return zaiQuotaApi_1.resolveZaiQuota; } });
|
|
394
407
|
var multiProviderQuotaService_1 = require("./multiProviderQuotaService");
|
|
395
408
|
Object.defineProperty(exports, "MultiProviderQuotaService", { enumerable: true, get: function () { return multiProviderQuotaService_1.MultiProviderQuotaService; } });
|
|
409
|
+
var providerQuota_1 = require("./providerQuota");
|
|
410
|
+
Object.defineProperty(exports, "RUNTIME_QUOTA_PROVIDER_IDS", { enumerable: true, get: function () { return providerQuota_1.RUNTIME_QUOTA_PROVIDER_IDS; } });
|
|
396
411
|
var BurnRateCalculator_1 = require("./statusline/BurnRateCalculator");
|
|
397
412
|
Object.defineProperty(exports, "BurnRateCalculator", { enumerable: true, get: function () { return BurnRateCalculator_1.BurnRateCalculator; } });
|
|
398
413
|
Object.defineProperty(exports, "estimateTimeToQuota", { enumerable: true, get: function () { return BurnRateCalculator_1.estimateTimeToQuota; } });
|
|
@@ -402,11 +417,13 @@ Object.defineProperty(exports, "selectStatuslineAccount", { enumerable: true, ge
|
|
|
402
417
|
// Model Context
|
|
403
418
|
var modelContext_1 = require("./modelContext");
|
|
404
419
|
Object.defineProperty(exports, "getModelContextWindowSize", { enumerable: true, get: function () { return modelContext_1.getModelContextWindowSize; } });
|
|
420
|
+
Object.defineProperty(exports, "resolveModelContextWindow", { enumerable: true, get: function () { return modelContext_1.resolveModelContextWindow; } });
|
|
405
421
|
Object.defineProperty(exports, "DEFAULT_CONTEXT_WINDOW", { enumerable: true, get: function () { return modelContext_1.DEFAULT_CONTEXT_WINDOW; } });
|
|
406
422
|
// Model Info & Pricing
|
|
407
423
|
var modelInfo_1 = require("./modelInfo");
|
|
408
424
|
Object.defineProperty(exports, "parseModelId", { enumerable: true, get: function () { return modelInfo_1.parseModelId; } });
|
|
409
425
|
Object.defineProperty(exports, "getModelPricing", { enumerable: true, get: function () { return modelInfo_1.getModelPricing; } });
|
|
426
|
+
Object.defineProperty(exports, "resolveModelPricing", { enumerable: true, get: function () { return modelInfo_1.resolveModelPricing; } });
|
|
410
427
|
Object.defineProperty(exports, "getModelInfo", { enumerable: true, get: function () { return modelInfo_1.getModelInfo; } });
|
|
411
428
|
Object.defineProperty(exports, "calculateCost", { enumerable: true, get: function () { return modelInfo_1.calculateCost; } });
|
|
412
429
|
Object.defineProperty(exports, "calculateCostWithPricing", { enumerable: true, get: function () { return modelInfo_1.calculateCostWithPricing; } });
|
|
@@ -417,6 +434,13 @@ Object.defineProperty(exports, "getModelDisplayInfo", { enumerable: true, get: f
|
|
|
417
434
|
Object.defineProperty(exports, "compareModelIds", { enumerable: true, get: function () { return modelInfo_1.compareModelIds; } });
|
|
418
435
|
Object.defineProperty(exports, "sortModelIds", { enumerable: true, get: function () { return modelInfo_1.sortModelIds; } });
|
|
419
436
|
Object.defineProperty(exports, "formatCost", { enumerable: true, get: function () { return modelInfo_1.formatCost; } });
|
|
437
|
+
Object.defineProperty(exports, "MODEL_PROVIDER_IDS", { enumerable: true, get: function () { return modelInfo_1.MODEL_PROVIDER_IDS; } });
|
|
438
|
+
var modelCatalog_1 = require("./modelCatalog");
|
|
439
|
+
Object.defineProperty(exports, "exportResolvedModelCatalog", { enumerable: true, get: function () { return modelCatalog_1.exportResolvedModelCatalog; } });
|
|
440
|
+
Object.defineProperty(exports, "importResolvedModelCatalog", { enumerable: true, get: function () { return modelCatalog_1.importResolvedModelCatalog; } });
|
|
441
|
+
Object.defineProperty(exports, "registerModelAlias", { enumerable: true, get: function () { return modelCatalog_1.registerModelAlias; } });
|
|
442
|
+
Object.defineProperty(exports, "resolveModelAlias", { enumerable: true, get: function () { return modelCatalog_1.resolveModelAlias; } });
|
|
443
|
+
Object.defineProperty(exports, "RESOLVED_MODEL_CATALOG_SCHEMA_VERSION", { enumerable: true, get: function () { return modelCatalog_1.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION; } });
|
|
420
444
|
// Pricing Catalog (LiteLLM hydration) — Node-only. Safe for extension host
|
|
421
445
|
// and CLI; do NOT import from browser bundles (webviews).
|
|
422
446
|
var pricingCatalog_1 = require("./pricingCatalog");
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register a short or host-specific model name that resolves to a canonical ID.
|
|
3
|
+
* Invalid and cyclic registrations are rejected without changing the registry.
|
|
4
|
+
*/
|
|
5
|
+
export declare function registerModelAlias(alias: string, canonicalId: string): boolean;
|
|
6
|
+
/** Resolve a registered alias, returning normalized input when no alias exists. */
|
|
7
|
+
export declare function resolveModelAlias(modelId: string): string;
|
|
8
|
+
/** Internal snapshot used by the cross-realm catalog serializer. */
|
|
9
|
+
export declare function _getModelAliases(): Record<string, string>;
|
|
10
|
+
/** Internal hydration hook used by the cross-realm catalog importer. */
|
|
11
|
+
export declare function _importModelAliases(values: Record<string, string>): void;
|
|
12
|
+
/** Internal test hook. */
|
|
13
|
+
export declare function _clearModelAliases(): void;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerModelAlias = registerModelAlias;
|
|
4
|
+
exports.resolveModelAlias = resolveModelAlias;
|
|
5
|
+
exports._getModelAliases = _getModelAliases;
|
|
6
|
+
exports._importModelAliases = _importModelAliases;
|
|
7
|
+
exports._clearModelAliases = _clearModelAliases;
|
|
8
|
+
const aliases = new Map();
|
|
9
|
+
function normalizeAlias(value) {
|
|
10
|
+
return value.trim().toLowerCase();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Register a short or host-specific model name that resolves to a canonical ID.
|
|
14
|
+
* Invalid and cyclic registrations are rejected without changing the registry.
|
|
15
|
+
*/
|
|
16
|
+
function registerModelAlias(alias, canonicalId) {
|
|
17
|
+
const normalizedAlias = normalizeAlias(alias);
|
|
18
|
+
const normalizedCanonicalId = normalizeAlias(canonicalId);
|
|
19
|
+
if (!normalizedAlias || !normalizedCanonicalId || normalizedAlias === normalizedCanonicalId) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
let candidate = normalizedCanonicalId;
|
|
23
|
+
const visited = new Set([normalizedAlias]);
|
|
24
|
+
while (aliases.has(candidate)) {
|
|
25
|
+
if (visited.has(candidate))
|
|
26
|
+
return false;
|
|
27
|
+
visited.add(candidate);
|
|
28
|
+
candidate = aliases.get(candidate);
|
|
29
|
+
}
|
|
30
|
+
if (candidate === normalizedAlias)
|
|
31
|
+
return false;
|
|
32
|
+
aliases.set(normalizedAlias, normalizedCanonicalId);
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
/** Resolve a registered alias, returning normalized input when no alias exists. */
|
|
36
|
+
function resolveModelAlias(modelId) {
|
|
37
|
+
let current = normalizeAlias(modelId);
|
|
38
|
+
const visited = new Set();
|
|
39
|
+
while (aliases.has(current) && !visited.has(current)) {
|
|
40
|
+
visited.add(current);
|
|
41
|
+
current = aliases.get(current);
|
|
42
|
+
}
|
|
43
|
+
return current;
|
|
44
|
+
}
|
|
45
|
+
/** Internal snapshot used by the cross-realm catalog serializer. */
|
|
46
|
+
function _getModelAliases() {
|
|
47
|
+
return Object.fromEntries(aliases);
|
|
48
|
+
}
|
|
49
|
+
/** Internal hydration hook used by the cross-realm catalog importer. */
|
|
50
|
+
function _importModelAliases(values) {
|
|
51
|
+
for (const [alias, canonicalId] of Object.entries(values)) {
|
|
52
|
+
registerModelAlias(alias, canonicalId);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Internal test hook. */
|
|
56
|
+
function _clearModelAliases() {
|
|
57
|
+
aliases.clear();
|
|
58
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ResolvedModelContextWindow } from './modelContext';
|
|
2
|
+
import { type ResolvedModelPricing } from './modelInfo';
|
|
3
|
+
import { registerModelAlias, resolveModelAlias } from './modelAliases';
|
|
4
|
+
export declare const RESOLVED_MODEL_CATALOG_SCHEMA_VERSION: 1;
|
|
5
|
+
export interface ResolvedModelCatalogEntry {
|
|
6
|
+
id: string;
|
|
7
|
+
canonicalId: string;
|
|
8
|
+
contextWindow: ResolvedModelContextWindow;
|
|
9
|
+
pricing: ResolvedModelPricing;
|
|
10
|
+
}
|
|
11
|
+
export interface ResolvedModelCatalogSnapshot {
|
|
12
|
+
schemaVersion: typeof RESOLVED_MODEL_CATALOG_SCHEMA_VERSION;
|
|
13
|
+
models: Record<string, ResolvedModelCatalogEntry>;
|
|
14
|
+
aliases: Record<string, string>;
|
|
15
|
+
}
|
|
16
|
+
export interface ImportResolvedModelCatalogResult {
|
|
17
|
+
imported: number;
|
|
18
|
+
diagnostics: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Export an entirely serializable catalog suitable for IPC to another JS realm.
|
|
22
|
+
* Each entry records published, observed, and tier-effective context windows,
|
|
23
|
+
* plus pricing match provenance (including prefix inheritance).
|
|
24
|
+
*/
|
|
25
|
+
export declare function exportResolvedModelCatalog(ids?: readonly string[]): ResolvedModelCatalogSnapshot;
|
|
26
|
+
/**
|
|
27
|
+
* Hydrate exact model resolutions exported by another bundle realm.
|
|
28
|
+
* Invalid entries are skipped and reported; import never partially mutates an
|
|
29
|
+
* entry or throws for malformed IPC data.
|
|
30
|
+
*/
|
|
31
|
+
export declare function importResolvedModelCatalog(snapshot: unknown): ImportResolvedModelCatalogResult;
|
|
32
|
+
export { registerModelAlias, resolveModelAlias };
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveModelAlias = exports.registerModelAlias = exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.exportResolvedModelCatalog = exportResolvedModelCatalog;
|
|
5
|
+
exports.importResolvedModelCatalog = importResolvedModelCatalog;
|
|
6
|
+
const modelContext_1 = require("./modelContext");
|
|
7
|
+
const modelInfo_1 = require("./modelInfo");
|
|
8
|
+
const modelAliases_1 = require("./modelAliases");
|
|
9
|
+
Object.defineProperty(exports, "registerModelAlias", { enumerable: true, get: function () { return modelAliases_1.registerModelAlias; } });
|
|
10
|
+
Object.defineProperty(exports, "resolveModelAlias", { enumerable: true, get: function () { return modelAliases_1.resolveModelAlias; } });
|
|
11
|
+
exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION = 1;
|
|
12
|
+
function normalizedIds(ids) {
|
|
13
|
+
if (ids) {
|
|
14
|
+
return Array.from(new Set(ids.map((id) => id.trim()).filter(Boolean)));
|
|
15
|
+
}
|
|
16
|
+
const aliases = (0, modelAliases_1._getModelAliases)();
|
|
17
|
+
return Array.from(new Set([
|
|
18
|
+
...(0, modelContext_1._getModelContextIds)(),
|
|
19
|
+
...(0, modelInfo_1._getModelPricingIds)(),
|
|
20
|
+
...Object.keys(aliases),
|
|
21
|
+
...Object.values(aliases),
|
|
22
|
+
])).sort();
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Export an entirely serializable catalog suitable for IPC to another JS realm.
|
|
26
|
+
* Each entry records published, observed, and tier-effective context windows,
|
|
27
|
+
* plus pricing match provenance (including prefix inheritance).
|
|
28
|
+
*/
|
|
29
|
+
function exportResolvedModelCatalog(ids) {
|
|
30
|
+
const models = {};
|
|
31
|
+
const selectedIds = normalizedIds(ids);
|
|
32
|
+
for (const id of selectedIds) {
|
|
33
|
+
const canonicalId = (0, modelAliases_1.resolveModelAlias)(id);
|
|
34
|
+
models[id] = {
|
|
35
|
+
id,
|
|
36
|
+
canonicalId,
|
|
37
|
+
contextWindow: (0, modelContext_1.resolveModelContextWindow)(id),
|
|
38
|
+
pricing: (0, modelInfo_1.resolveModelPricing)(id),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const selectedCanonicalIds = new Set(Object.values(models).flatMap(({ id, canonicalId }) => [id, canonicalId]));
|
|
42
|
+
const aliases = Object.fromEntries(Object.entries((0, modelAliases_1._getModelAliases)()).filter(([alias, canonicalId]) => selectedCanonicalIds.has(alias) || selectedCanonicalIds.has(canonicalId)));
|
|
43
|
+
return { schemaVersion: exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION, models, aliases };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Hydrate exact model resolutions exported by another bundle realm.
|
|
47
|
+
* Invalid entries are skipped and reported; import never partially mutates an
|
|
48
|
+
* entry or throws for malformed IPC data.
|
|
49
|
+
*/
|
|
50
|
+
function importResolvedModelCatalog(snapshot) {
|
|
51
|
+
const diagnostics = [];
|
|
52
|
+
if (!isRecord(snapshot) || snapshot.schemaVersion !== exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION) {
|
|
53
|
+
return { imported: 0, diagnostics: ['unsupported resolved model catalog snapshot'] };
|
|
54
|
+
}
|
|
55
|
+
const aliases = isStringRecord(snapshot.aliases) ? snapshot.aliases : {};
|
|
56
|
+
(0, modelAliases_1._importModelAliases)(aliases);
|
|
57
|
+
const contexts = {};
|
|
58
|
+
const prices = {};
|
|
59
|
+
const models = isRecord(snapshot.models) ? snapshot.models : {};
|
|
60
|
+
let imported = 0;
|
|
61
|
+
for (const [key, rawEntry] of Object.entries(models)) {
|
|
62
|
+
if (!isResolvedEntry(rawEntry)) {
|
|
63
|
+
diagnostics.push(`ignored invalid model catalog entry: ${key}`);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const entry = rawEntry;
|
|
67
|
+
const normalizedKey = key.trim().toLowerCase();
|
|
68
|
+
const canonicalId = entry.canonicalId.trim().toLowerCase();
|
|
69
|
+
const context = cloneContext(entry.contextWindow, entry.id, canonicalId);
|
|
70
|
+
const pricing = clonePricing(entry.pricing, entry.id, canonicalId);
|
|
71
|
+
// Unresolved facets are not importable facts: pinning a 'default' window
|
|
72
|
+
// or 'none' pricing would outrank data the importing realm can resolve
|
|
73
|
+
// (or later learn) on its own.
|
|
74
|
+
const contextResolved = context.provenance.source !== 'default';
|
|
75
|
+
const pricingResolved = pricing.provenance.source !== 'none';
|
|
76
|
+
if (!contextResolved && !pricingResolved) {
|
|
77
|
+
diagnostics.push(`skipped unresolved model catalog entry: ${key}`);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
for (const id of new Set([normalizedKey, entry.id.trim().toLowerCase(), canonicalId])) {
|
|
81
|
+
if (!id)
|
|
82
|
+
continue;
|
|
83
|
+
if (contextResolved)
|
|
84
|
+
contexts[id] = context;
|
|
85
|
+
if (pricingResolved)
|
|
86
|
+
prices[id] = pricing;
|
|
87
|
+
}
|
|
88
|
+
imported++;
|
|
89
|
+
}
|
|
90
|
+
(0, modelContext_1._setImportedResolvedContextWindows)(contexts);
|
|
91
|
+
(0, modelInfo_1._setImportedResolvedPricing)(prices);
|
|
92
|
+
return { imported, diagnostics };
|
|
93
|
+
}
|
|
94
|
+
function cloneContext(value, modelId, canonicalModelId) {
|
|
95
|
+
return {
|
|
96
|
+
...value,
|
|
97
|
+
modelId,
|
|
98
|
+
canonicalModelId,
|
|
99
|
+
provenance: { ...value.provenance },
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function clonePricing(value, modelId, canonicalModelId) {
|
|
103
|
+
return {
|
|
104
|
+
...value,
|
|
105
|
+
modelId,
|
|
106
|
+
canonicalModelId,
|
|
107
|
+
pricing: value.pricing ? { ...value.pricing } : null,
|
|
108
|
+
provenance: { ...value.provenance },
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function isRecord(value) {
|
|
112
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
113
|
+
}
|
|
114
|
+
function isStringRecord(value) {
|
|
115
|
+
return isRecord(value) && Object.values(value).every((item) => typeof item === 'string');
|
|
116
|
+
}
|
|
117
|
+
function validPricing(value) {
|
|
118
|
+
if (!isRecord(value))
|
|
119
|
+
return false;
|
|
120
|
+
return [
|
|
121
|
+
value.inputCostPerMillion,
|
|
122
|
+
value.outputCostPerMillion,
|
|
123
|
+
value.cacheWriteCostPerMillion,
|
|
124
|
+
value.cacheReadCostPerMillion,
|
|
125
|
+
].every((item) => typeof item === 'number' && Number.isFinite(item) && item >= 0);
|
|
126
|
+
}
|
|
127
|
+
function isResolvedEntry(value) {
|
|
128
|
+
if (!isRecord(value) || typeof value.id !== 'string' || typeof value.canonicalId !== 'string') {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
const context = value.contextWindow;
|
|
132
|
+
const pricing = value.pricing;
|
|
133
|
+
if (!isRecord(context) || !isRecord(pricing))
|
|
134
|
+
return false;
|
|
135
|
+
if (typeof context.tierEffective !== 'number' ||
|
|
136
|
+
!Number.isFinite(context.tierEffective) ||
|
|
137
|
+
context.tierEffective <= 0 ||
|
|
138
|
+
(context.published !== null && typeof context.published !== 'number') ||
|
|
139
|
+
(context.observed !== null && typeof context.observed !== 'number') ||
|
|
140
|
+
!isRecord(context.provenance) ||
|
|
141
|
+
!isRecord(pricing.provenance)) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
return pricing.pricing === null || validPricing(pricing.pricing);
|
|
145
|
+
}
|
package/dist/modelContext.d.ts
CHANGED
|
@@ -9,13 +9,19 @@
|
|
|
9
9
|
* model, persisted across runs by `observedContextWindows.ts`. Reflects the
|
|
10
10
|
* effective window for this account/tier, which can be well below the
|
|
11
11
|
* model's published maximum.
|
|
12
|
-
* 3.
|
|
12
|
+
* 3. Imported resolutions — exact entries hydrated from another realm via
|
|
13
|
+
* `importResolvedModelCatalog()`. Below local observed data (a window this
|
|
14
|
+
* realm saw first-hand is fresher than a transferred snapshot), above the
|
|
15
|
+
* catalog.
|
|
16
|
+
* 4. Catalog overrides — `max_input_tokens` from the LiteLLM catalog, hydrated
|
|
13
17
|
* by `pricingCatalog.ts`. Keeps new models correct without a code change.
|
|
14
|
-
*
|
|
18
|
+
* 5. The static table below — offline baseline of last resort.
|
|
15
19
|
*
|
|
16
20
|
* Within that order, match quality comes first: every layer is tried for an
|
|
17
21
|
* exact hit before any layer is tried for a prefix hit. See
|
|
18
|
-
* `getModelContextWindowSize`.
|
|
22
|
+
* `getModelContextWindowSize`. The raw (alias) id is tried before its
|
|
23
|
+
* canonical target at every step, so registering an alias never orphans data
|
|
24
|
+
* recorded under the alias itself.
|
|
19
25
|
*
|
|
20
26
|
* Layers 2 and 3 are pushed in by Node-only modules through the `_set*` hooks,
|
|
21
27
|
* so this file stays browser-safe (no node:fs, no fetch) and can be bundled for
|
|
@@ -23,6 +29,21 @@
|
|
|
23
29
|
*/
|
|
24
30
|
/** Default context window size when model is unknown. */
|
|
25
31
|
export declare const DEFAULT_CONTEXT_WINDOW = 200000;
|
|
32
|
+
export type ModelContextWindowSource = 'explicit-1m' | 'imported' | 'observed' | 'catalog' | 'static' | 'default';
|
|
33
|
+
export type ModelCatalogMatch = 'exact' | 'prefix' | 'default';
|
|
34
|
+
export interface ModelContextWindowProvenance {
|
|
35
|
+
source: ModelContextWindowSource;
|
|
36
|
+
match: ModelCatalogMatch;
|
|
37
|
+
matchedModelId?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ResolvedModelContextWindow {
|
|
40
|
+
modelId: string;
|
|
41
|
+
canonicalModelId: string;
|
|
42
|
+
published: number | null;
|
|
43
|
+
observed: number | null;
|
|
44
|
+
tierEffective: number;
|
|
45
|
+
provenance: ModelContextWindowProvenance;
|
|
46
|
+
}
|
|
26
47
|
/**
|
|
27
48
|
* Internal: replace the observed-context-window map. Called by
|
|
28
49
|
* `observedContextWindows.ts` on load and on each newly observed value.
|
|
@@ -43,6 +64,18 @@ export declare function _setCatalogContextWindows(overrides: Record<string, numb
|
|
|
43
64
|
export declare function _getCatalogContextWindows(): Record<string, number>;
|
|
44
65
|
/** Internal: clear catalog overrides (used by tests and when disabling hydration). */
|
|
45
66
|
export declare function _clearCatalogContextWindows(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Internal: hydrate exact, already-resolved context data from another realm.
|
|
69
|
+
* Merges so successive partial imports accumulate (aliases already merge);
|
|
70
|
+
* use `_clearImportedResolvedContextWindows` to reset.
|
|
71
|
+
*/
|
|
72
|
+
export declare function _setImportedResolvedContextWindows(values: Record<string, ResolvedModelContextWindow>): void;
|
|
73
|
+
/** Internal test hook. */
|
|
74
|
+
export declare function _clearImportedResolvedContextWindows(): void;
|
|
75
|
+
/** Internal: list every ID known to the context resolver. */
|
|
76
|
+
export declare function _getModelContextIds(): string[];
|
|
77
|
+
/** Resolve published, observed, and tier-effective context windows with provenance. */
|
|
78
|
+
export declare function resolveModelContextWindow(modelId?: string): ResolvedModelContextWindow;
|
|
46
79
|
/**
|
|
47
80
|
* Returns the context window size for a model ID.
|
|
48
81
|
*
|