sidekick-shared 0.21.1 → 0.21.3
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/README.md +45 -45
- package/dist/accountManager.js +9 -7
- package/dist/accountRegistry.js +18 -14
- package/dist/accountStatus.js +4 -1
- package/dist/accounts.js +60 -25
- package/dist/aggregation/EventAggregator.d.ts +14 -11
- package/dist/aggregation/EventAggregator.js +68 -31
- package/dist/aggregation/PatternExtractor.js +5 -4
- package/dist/autoSwitch.js +6 -12
- package/dist/claudeProfiles.js +3 -3
- package/dist/codexProfiles.js +45 -22
- package/dist/codexQuota.js +44 -16
- package/dist/codexQuotaWatcher.js +10 -3
- package/dist/context/composer.js +8 -6
- package/dist/context/sessionContext.js +12 -9
- package/dist/credentialIO.js +10 -8
- package/dist/extractors/sessionAssets.js +9 -1
- package/dist/extractors/sources/claudeAssets.js +7 -1
- package/dist/extractors/sources/codexAssets.js +14 -3
- package/dist/extractors/toolCall.js +1 -4
- package/dist/formatters/eventHighlighter.js +148 -28
- package/dist/formatters/noiseClassifier.js +3 -11
- package/dist/formatters/sessionDump.js +22 -13
- package/dist/formatters/toolSummary.js +1 -3
- package/dist/index.d.ts +25 -23
- package/dist/index.js +12 -3
- package/dist/modelContext.js +10 -8
- package/dist/modelInfo.js +11 -6
- package/dist/multiProviderQuotaService.js +10 -7
- package/dist/parsers/codexParser.js +170 -103
- package/dist/parsers/debugLogParser.js +5 -4
- package/dist/parsers/openCodeParser.js +66 -48
- package/dist/parsers/planExtractor.js +3 -3
- package/dist/parsers/sessionActivityDetector.js +10 -6
- package/dist/parsers/sessionPathResolver.js +29 -34
- package/dist/parsers/subagentScanner.js +21 -20
- package/dist/parsers/subagentTraceParser.js +7 -4
- package/dist/phrases.js +11 -11
- package/dist/providerStatus.js +3 -4
- package/dist/providers/claudeCode.js +3 -1
- package/dist/providers/codex.js +35 -14
- package/dist/providers/codexDatabase.js +14 -5
- package/dist/providers/detect.js +10 -6
- package/dist/providers/openCode.d.ts +4 -4
- package/dist/providers/openCode.js +96 -68
- package/dist/providers/openCodeDatabase.js +44 -17
- package/dist/quota.d.ts +19 -0
- package/dist/quota.js +50 -8
- package/dist/quotaHistory.js +10 -3
- package/dist/quotaSnapshots.d.ts +1 -1
- package/dist/quotaSnapshots.js +2 -2
- package/dist/readers/decisions.js +1 -1
- package/dist/readers/notes.js +5 -3
- package/dist/readers/plans.js +43 -23
- package/dist/readers/tasks.js +1 -1
- package/dist/report/htmlHelpers.js +135 -16
- package/dist/report/htmlReportGenerator.js +38 -12
- package/dist/report/transcriptParser.js +8 -2
- package/dist/schemas/index.d.ts +4 -4
- package/dist/schemas/quota.js +2 -10
- package/dist/schemas/sessionEvent.js +20 -10
- package/dist/search/advancedFilter.js +3 -3
- package/dist/search/sessionSearch.js +10 -4
- package/dist/terminalSync.js +4 -2
- package/dist/turns/assistantTurn.js +5 -1
- package/dist/watchers/eventBridge.js +56 -26
- package/dist/watchers/factory.js +5 -2
- package/dist/watchers/jsonlTail.js +3 -1
- package/dist/watchers/jsonlWatcher.js +128 -52
- package/dist/watchers/providerReaderWatcher.js +3 -1
- package/dist/watchers/sqliteWatcher.js +52 -22
- package/dist/zaiQuota.d.ts +6 -6
- package/dist/zaiQuota.js +6 -10
- package/dist/zaiQuotaApi.d.ts +33 -0
- package/dist/zaiQuotaApi.js +279 -0
- package/dist/zaiQuotaWatcher.js +10 -9
- package/package.json +5 -2
package/dist/index.d.ts
CHANGED
|
@@ -8,13 +8,13 @@ export type { PersistedTask, TaskPersistenceStore, TaskStatus } from './types/ta
|
|
|
8
8
|
export { TASK_PERSISTENCE_SCHEMA_VERSION, normalizeTaskStatus } from './types/taskPersistence';
|
|
9
9
|
export type { DecisionEntry, DecisionLogStore, DecisionSource } from './types/decisionLog';
|
|
10
10
|
export { DECISION_LOG_SCHEMA_VERSION } from './types/decisionLog';
|
|
11
|
-
export type { KnowledgeNote, KnowledgeNoteStore, KnowledgeNoteType, KnowledgeNoteSource, KnowledgeNoteStatus, KnowledgeNoteImportance } from './types/knowledgeNote';
|
|
12
|
-
export { KNOWLEDGE_NOTE_SCHEMA_VERSION, IMPORTANCE_DECAY_FACTORS, STALENESS_THRESHOLDS } from './types/knowledgeNote';
|
|
13
|
-
export type { HistoricalDataStore, DailyData, MonthlyData, AllTimeStats, TokenTotals, ModelUsageRecord, ToolUsageRecord, SessionSummary } from './types/historicalData';
|
|
11
|
+
export type { KnowledgeNote, KnowledgeNoteStore, KnowledgeNoteType, KnowledgeNoteSource, KnowledgeNoteStatus, KnowledgeNoteImportance, } from './types/knowledgeNote';
|
|
12
|
+
export { KNOWLEDGE_NOTE_SCHEMA_VERSION, IMPORTANCE_DECAY_FACTORS, STALENESS_THRESHOLDS, } from './types/knowledgeNote';
|
|
13
|
+
export type { HistoricalDataStore, DailyData, MonthlyData, AllTimeStats, TokenTotals, ModelUsageRecord, ToolUsageRecord, SessionSummary, } from './types/historicalData';
|
|
14
14
|
export { HISTORICAL_DATA_SCHEMA_VERSION, createEmptyTokenTotals } from './types/historicalData';
|
|
15
|
-
export type { PersistedPlan, PersistedPlanStep, PlanHistoryStore, PlanStepStatus, PlanStatus, PlanSource, PlanStepComplexity } from './types/plan';
|
|
15
|
+
export type { PersistedPlan, PersistedPlanStep, PlanHistoryStore, PlanStepStatus, PlanStatus, PlanSource, PlanStepComplexity, } from './types/plan';
|
|
16
16
|
export { PLAN_SCHEMA_VERSION, MAX_PLANS_PER_PROJECT } from './types/plan';
|
|
17
|
-
export { getConfigDir, getProjectDataPath, getGlobalDataPath, encodeWorkspacePath, getProjectSlug, getProjectSlugRaw } from './paths';
|
|
17
|
+
export { getConfigDir, getProjectDataPath, getGlobalDataPath, encodeWorkspacePath, getProjectSlug, getProjectSlugRaw, } from './paths';
|
|
18
18
|
export { readTasks } from './readers/tasks';
|
|
19
19
|
export type { ReadTasksOptions } from './readers/tasks';
|
|
20
20
|
export { readDecisions } from './readers/decisions';
|
|
@@ -23,9 +23,9 @@ export { readNotes } from './readers/notes';
|
|
|
23
23
|
export type { ReadNotesOptions } from './readers/notes';
|
|
24
24
|
export { readHistory } from './readers/history';
|
|
25
25
|
export { readLatestHandoff } from './readers/handoff';
|
|
26
|
-
export { readPlans, getLatestPlan, writePlans, getPlanAnalytics, readClaudeCodePlanFiles } from './readers/plans';
|
|
26
|
+
export { readPlans, getLatestPlan, writePlans, getPlanAnalytics, readClaudeCodePlanFiles, } from './readers/plans';
|
|
27
27
|
export type { ReadPlansOptions, PlanAnalytics } from './readers/plans';
|
|
28
|
-
export type { ProviderId, SessionProvider, SessionProviderBase, SessionFileStats, SessionFileInfo, SearchHit, ProjectFolderInfo, SessionReader, ProviderRuntimeStatus } from './providers/types';
|
|
28
|
+
export type { ProviderId, SessionProvider, SessionProviderBase, SessionFileStats, SessionFileInfo, SearchHit, ProjectFolderInfo, SessionReader, ProviderRuntimeStatus, } from './providers/types';
|
|
29
29
|
export { detectProvider, getAllDetectedProviders } from './providers/detect';
|
|
30
30
|
export { ClaudeCodeProvider } from './providers/claudeCode';
|
|
31
31
|
export { OpenCodeProvider, getOpenCodeDataDir } from './providers/openCode';
|
|
@@ -33,10 +33,10 @@ export { CodexProvider } from './providers/codex';
|
|
|
33
33
|
export { JsonlParser, TRUNCATION_PATTERNS } from './parsers/jsonl';
|
|
34
34
|
export type { RawSessionEvent, JsonlParserCallbacks, JsonlParserOptions } from './parsers/jsonl';
|
|
35
35
|
export { normalizeToolName, normalizeToolInput, detectPlanModeFromText, convertOpenCodeMessage, parseDbMessageData, parseDbPartData, } from './parsers/openCodeParser';
|
|
36
|
-
export { CodexRolloutParser, extractPatchFilePaths, normalizeCodexToolName, normalizeCodexToolInput } from './parsers/codexParser';
|
|
36
|
+
export { CodexRolloutParser, extractPatchFilePaths, normalizeCodexToolName, normalizeCodexToolInput, } from './parsers/codexParser';
|
|
37
37
|
export { scanSubagentDir, extractTaskInfo } from './parsers/subagentScanner';
|
|
38
38
|
export { detectSessionActivity } from './parsers/sessionActivityDetector';
|
|
39
|
-
export type { SessionActivityState, SessionActivityResult } from './parsers/sessionActivityDetector';
|
|
39
|
+
export type { SessionActivityState, SessionActivityResult, } from './parsers/sessionActivityDetector';
|
|
40
40
|
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';
|
|
41
41
|
export { scanSubagentTraces } from './parsers/subagentTraceParser';
|
|
42
42
|
export type { SubagentTrace, SubagentTraceEvent } from './parsers/subagentTraceParser';
|
|
@@ -47,18 +47,18 @@ export { CodexDatabase } from './providers/codexDatabase';
|
|
|
47
47
|
export { searchSessions } from './search/sessionSearch';
|
|
48
48
|
export type { SearchResult } from './search/sessionSearch';
|
|
49
49
|
export { FilterEngine } from './search/advancedFilter';
|
|
50
|
-
export type { FilterMode, FilterState, HighlightFormat as FilterHighlightFormat } from './search/advancedFilter';
|
|
50
|
+
export type { FilterMode, FilterState, HighlightFormat as FilterHighlightFormat, } from './search/advancedFilter';
|
|
51
51
|
export { composeContext } from './context/composer';
|
|
52
52
|
export type { Fidelity, ContextResult } from './context/composer';
|
|
53
53
|
export { buildSessionContextSnapshot, calculateSessionContextPressure, createSessionContextProjector, readSessionContextSnapshot, } from './context/sessionContext';
|
|
54
54
|
export type { BuildSessionContextSnapshotOptions, ReadSessionContextSnapshotOptions, SessionContextCapabilities, SessionContextLayerBreakdown, SessionContextPressure, SessionContextProjector, SessionContextSnapshot, SessionContextSource, SessionContextSourceType, } from './context/sessionContext';
|
|
55
55
|
export { assistantTurnEventsFromSessionEvents, extractTurnSubagents, isAssistantTurnSubagentTool, reasoningSummary, segmentAssistantTurn, } from './turns/assistantTurn';
|
|
56
56
|
export type { AssistantTurnEvent, AssistantTurnEventType, AssistantTurnProcess, AssistantTurnProcessStep, AssistantTurnProjection, AssistantTurnSubagent, AssistantTurnSubagentStatus, AssistantTurnTimelineItem, AssistantTurnToolRef, ExtractTurnSubagentsOptions, ReasoningSummary, SegmentAssistantTurnOptions, } from './turns/assistantTurn';
|
|
57
|
-
export { PlanExtractor, parsePlanMarkdown as parsePlanMarkdownShared, extractProposedPlan as extractProposedPlanShared } from './parsers/planExtractor';
|
|
57
|
+
export { PlanExtractor, parsePlanMarkdown as parsePlanMarkdownShared, extractProposedPlan as extractProposedPlanShared, } from './parsers/planExtractor';
|
|
58
58
|
export type { ExtractedPlan, ExtractedPlanStep } from './parsers/planExtractor';
|
|
59
59
|
export { parseChangelog } from './parsers/changelogParser';
|
|
60
60
|
export type { ChangelogEntry } from './parsers/changelogParser';
|
|
61
|
-
export type { FollowEvent, FollowEventType, SessionWatcher, SessionWatcherCallbacks } from './watchers/types';
|
|
61
|
+
export type { FollowEvent, FollowEventType, SessionWatcher, SessionWatcherCallbacks, } from './watchers/types';
|
|
62
62
|
export { createWatcher } from './watchers/factory';
|
|
63
63
|
export type { CreateWatcherOptions } from './watchers/factory';
|
|
64
64
|
export { toFollowEvents } from './watchers/eventBridge';
|
|
@@ -69,15 +69,15 @@ export type { FormatDurationMsOptions, FormatTokenCountOptions } from './formatt
|
|
|
69
69
|
export { formatToolSummary } from './formatters/toolSummary';
|
|
70
70
|
export { isHardNoise, isHardNoiseFollowEvent, getSoftNoiseReason, classifyMessage, classifyFollowEvent, shouldMergeWithPrevious, classifyNoise, } from './formatters/noiseClassifier';
|
|
71
71
|
export type { MessageClassification, NoiseResult } from './formatters/noiseClassifier';
|
|
72
|
-
export { formatSessionText, formatSessionMarkdown, formatSessionJson } from './formatters/sessionDump';
|
|
72
|
+
export { formatSessionText, formatSessionMarkdown, formatSessionJson, } from './formatters/sessionDump';
|
|
73
73
|
export type { SessionDumpOptions } from './formatters/sessionDump';
|
|
74
|
-
export { highlight as highlightEvent, clearHighlightCache, HIGHLIGHT_CSS } from './formatters/eventHighlighter';
|
|
74
|
+
export { highlight as highlightEvent, clearHighlightCache, HIGHLIGHT_CSS, } from './formatters/eventHighlighter';
|
|
75
75
|
export type { HighlightFormat } from './formatters/eventHighlighter';
|
|
76
76
|
export { ALL_PHRASES, PHRASE_CATEGORIES, getRandomPhrase } from './phrases';
|
|
77
77
|
export type { PhraseCategory } from './phrases';
|
|
78
78
|
export { EventAggregator, parseTodoDependencies } from './aggregation/EventAggregator';
|
|
79
79
|
export type { SerializedAggregatorState } from './aggregation/EventAggregator';
|
|
80
|
-
export { saveSnapshot, loadSnapshot, deleteSnapshot, isSnapshotValid, getSnapshotPath } from './aggregation/snapshot';
|
|
80
|
+
export { saveSnapshot, loadSnapshot, deleteSnapshot, isSnapshotValid, getSnapshotPath, } from './aggregation/snapshot';
|
|
81
81
|
export type { SessionSnapshot } from './aggregation/snapshot';
|
|
82
82
|
export type { EventAggregatorOptions, AggregatedTokens, ModelUsageStats, BurnRateInfo, SubagentLifecycle, AggregatedMetrics, FrequencyMetric, PatternMetric, HeatmapBucketMetric, } from './aggregation/types';
|
|
83
83
|
export { FrequencyTracker } from './aggregation/FrequencyTracker';
|
|
@@ -86,15 +86,15 @@ export { HeatmapTracker } from './aggregation/HeatmapTracker';
|
|
|
86
86
|
export type { HeatmapBucket, SerializedHeatmapState } from './aggregation/HeatmapTracker';
|
|
87
87
|
export { PatternExtractor } from './aggregation/PatternExtractor';
|
|
88
88
|
export type { PatternCluster, SerializedPatternState } from './aggregation/PatternExtractor';
|
|
89
|
-
export { generateHtmlReport, parseTranscript, parseTranscriptFromEvents, openInBrowser } from './report';
|
|
89
|
+
export { generateHtmlReport, parseTranscript, parseTranscriptFromEvents, openInBrowser, } from './report';
|
|
90
90
|
export type { TranscriptContentBlock, TranscriptEntry, HtmlReportOptions } from './report';
|
|
91
91
|
export { readActiveCredentials, writeActiveCredentials } from './credentialIO';
|
|
92
92
|
export { readClaudeMaxCredentials, readClaudeMaxAccessTokenSync } from './credentials';
|
|
93
93
|
export type { ClaudeMaxCredentials } from './credentials';
|
|
94
|
-
export { ensureDefaultAccounts
|
|
94
|
+
export { ensureDefaultAccounts } from './ensureDefaultAccounts';
|
|
95
95
|
export type { EnsureDefaultAccountStatus, EnsureDefaultAccountsOptions, EnsureDefaultAccountsResult, } from './ensureDefaultAccounts';
|
|
96
96
|
export { readAccountRegistry, writeAccountRegistry, readActiveClaudeAccount, addCurrentAccount, switchToAccount, resolveActiveClaudeHome, applyActiveClaudeToLiveHome, reconcileClaudeAuthState, removeAccount, listAccounts, getActiveAccount, isMultiAccountEnabled, } from './accounts';
|
|
97
|
-
export type { AccountEntry, AccountRegistry, ActiveAccountInfo, AccountManagerResult } from './accounts';
|
|
97
|
+
export type { AccountEntry, AccountRegistry, ActiveAccountInfo, AccountManagerResult, } from './accounts';
|
|
98
98
|
export { beginAccountLogin, getAccountLoginStatus, finalizeAccountLogin, spawnAccountLogin, switchAccount, listAllAccounts, resolveClaudeLoginCommand, } from './accountManager';
|
|
99
99
|
export type { AccountLoginCommand, AccountLoginState, AccountLoginStatus, BeginAccountLoginResult, FinalizeAccountLoginOptions, ListAllAccountsResult, SpawnAccountLoginOptions, } from './accountManager';
|
|
100
100
|
export { getAccountsDir, readSavedAccountRegistry, writeSavedAccountRegistry, listSavedAccountProfiles, getActiveSavedAccount, upsertSavedAccountProfile, setActiveSavedAccount, replaceSavedAccountProfiles, removeSavedAccountProfile, } from './accountRegistry';
|
|
@@ -106,10 +106,10 @@ export type { ClaudeProfileIdentity } from './claudeProfiles';
|
|
|
106
106
|
export { getCodexProfilesDir, getCodexProfileHome, getCodexMonitoringHomes, getSystemCodexHome, listCodexAccounts, getActiveCodexAccount, resolveSidekickCodexHome, getCodexExecutionEnv, prepareCodexAccount, finalizeCodexAccount, switchToCodexAccount, removeCodexAccount, } from './codexProfiles';
|
|
107
107
|
export type { CodexAccountManagerResult } from './codexProfiles';
|
|
108
108
|
export { setTerminalActiveProfile, installShellHook, uninstallShellHook, isShellHookInstalled, writeLauncher, removeLauncher, } from './terminalSync';
|
|
109
|
-
export { DEFAULT_AUTO_SWITCH_CONFIG, decideAutoSwitch, AutoSwitchController
|
|
109
|
+
export { DEFAULT_AUTO_SWITCH_CONFIG, decideAutoSwitch, AutoSwitchController } from './autoSwitch';
|
|
110
110
|
export type { AutoSwitchActiveAccount, AutoSwitchCandidate, AutoSwitchConfig, AutoSwitchControllerOptions, AutoSwitchDecision, AutoSwitchTransitionEvent, } from './autoSwitch';
|
|
111
|
-
export { fetchQuota } from './quota';
|
|
112
|
-
export type { QuotaWindow, QuotaState } from './quota';
|
|
111
|
+
export { FIVE_HOUR_WINDOW_MS, SEVEN_DAY_WINDOW_MS, fetchQuota, projectQuotaWindow, withQuotaProjections, } from './quota';
|
|
112
|
+
export type { QuotaProjectionInput, QuotaWindow, QuotaState } from './quota';
|
|
113
113
|
export { describeQuotaFailure } from './quotaPresentation';
|
|
114
114
|
export type { QuotaFailureDescriptor } from './quotaPresentation';
|
|
115
115
|
export { QuotaPoller } from './quotaPoller';
|
|
@@ -125,6 +125,8 @@ export { accumulateZaiUsage, extractNextFlushTime, inferZaiQuotaState, isZaiProv
|
|
|
125
125
|
export type { ZaiAccumulatedUsage, ZaiAssistantTurn, ZaiOpenCodeRow, ZaiProviderId, ZaiQuotaError, ZaiQuotaErrorKind, ZaiTier, InferZaiQuotaStateOptions, } from './zaiQuota';
|
|
126
126
|
export { ZaiQuotaWatcher } from './zaiQuotaWatcher';
|
|
127
127
|
export type { ZaiQuotaWatcherOptions } from './zaiQuotaWatcher';
|
|
128
|
+
export { fetchZaiQuotaFromApi, quotaStateFromZaiQuotaLimitPayload, readZaiCredentials, resolveZaiQuota, } from './zaiQuotaApi';
|
|
129
|
+
export type { ReadZaiCredentialsOptions, ZaiCredentialSource, ZaiCredentials, ZaiPlatform, ZaiQuotaApiOptions, ZaiQuotaResolveOptions, } from './zaiQuotaApi';
|
|
128
130
|
export { MultiProviderQuotaService } from './multiProviderQuotaService';
|
|
129
131
|
export type { MultiProviderQuotaServiceOptions } from './multiProviderQuotaService';
|
|
130
132
|
export type { ProviderQuotaMap, ProviderQuotaState, RuntimeQuotaProvider } from './providerQuota';
|
|
@@ -132,11 +134,11 @@ export type { QuotaSnapshotProviderId } from './quotaSnapshots';
|
|
|
132
134
|
export { getModelContextWindowSize, DEFAULT_CONTEXT_WINDOW } from './modelContext';
|
|
133
135
|
export { parseModelId, getModelPricing, getModelInfo, calculateCost, calculateCostWithPricing, calculateCostWithProvenance, mergeCostSources, shortModelName, getModelDisplayInfo, compareModelIds, sortModelIds, formatCost, } from './modelInfo';
|
|
134
136
|
export type { ModelPricing, CostTokenUsage, CostSource, CostProvenanceInput, CostWithProvenance, ModelInfo, ModelProvider, ParsedModelId, ModelDisplayInfo, } from './modelInfo';
|
|
135
|
-
export { hydratePricingCatalog, normalizeLiteLlmCatalog, LITELLM_CATALOG_URL } from './pricingCatalog';
|
|
137
|
+
export { hydratePricingCatalog, normalizeLiteLlmCatalog, LITELLM_CATALOG_URL, } from './pricingCatalog';
|
|
136
138
|
export type { HydrateOptions, HydrateResult } from './pricingCatalog';
|
|
137
139
|
export { extractTokenUsage } from './extractors/tokenUsage';
|
|
138
140
|
export { extractToolCall, extractToolCalls } from './extractors/toolCall';
|
|
139
|
-
export { extractUrls, extractFilePaths, extractCommands
|
|
141
|
+
export { extractUrls, extractFilePaths, extractCommands } from './extractors/sessionAssets';
|
|
140
142
|
export type { AssetAgent, ExtractedAsset, ExtractedAssetProvenance, ExtractedAssetType, ExtractedAssets, SourceAssets, } from './extractors/sessionAssets';
|
|
141
143
|
export { readClaudeAssets, claudeSessions } from './extractors/sources/claudeAssets';
|
|
142
144
|
export { readCodexAssets, codexSessions } from './extractors/sources/codexAssets';
|
package/dist/index.js
CHANGED
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.discoverSessionDirectory = exports.getClaudeSessionDirectory = exports.encodeClaudeWorkspacePath = 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.CodexProvider = exports.getOpenCodeDataDir = exports.OpenCodeProvider = exports.ClaudeCodeProvider = exports.getAllDetectedProviders = exports.detectProvider = exports.readClaudeCodePlanFiles = exports.getPlanAnalytics = exports.writePlans = exports.getLatestPlan = exports.readPlans = exports.readLatestHandoff = exports.readHistory = exports.readNotes = exports.readDecisions = exports.readTasks = exports.getProjectSlugRaw = exports.getProjectSlug = exports.encodeWorkspacePath = exports.getGlobalDataPath = exports.getProjectDataPath = exports.getConfigDir = exports.MAX_PLANS_PER_PROJECT = exports.PLAN_SCHEMA_VERSION = exports.createEmptyTokenTotals = 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 = void 0;
|
|
7
7
|
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.scanSubagentTraces = exports.findAllSessionsWithWorktrees = exports.discoverWorktreeSiblings = exports.resolveWorktreeMainRepo = exports.getAllClaudeProjectFolders = exports.decodeEncodedPath = exports.getMostRecentlyActiveSessionDir = exports.findSubdirectorySessionDirs = exports.findSessionsInDirectory = exports.findAllClaudeSessions = exports.findActiveClaudeSession = void 0;
|
|
8
8
|
exports.setActiveSavedAccount = exports.upsertSavedAccountProfile = exports.getActiveSavedAccount = exports.listSavedAccountProfiles = exports.writeSavedAccountRegistry = exports.readSavedAccountRegistry = exports.getAccountsDir = exports.resolveClaudeLoginCommand = exports.listAllAccounts = exports.switchAccount = exports.spawnAccountLogin = exports.finalizeAccountLogin = exports.getAccountLoginStatus = exports.beginAccountLogin = exports.isMultiAccountEnabled = 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.PatternExtractor = exports.HeatmapTracker = exports.FrequencyTracker = exports.getSnapshotPath = exports.isSnapshotValid = exports.deleteSnapshot = exports.loadSnapshot = exports.saveSnapshot = exports.parseTodoDependencies = exports.EventAggregator = exports.getRandomPhrase = exports.PHRASE_CATEGORIES = exports.ALL_PHRASES = exports.HIGHLIGHT_CSS = exports.clearHighlightCache = void 0;
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.scopePeakHoursToSessionProvider = exports.isClaudeCodeSessionProvider = exports.fetchPeakHoursStatus = exports.createPeakHoursNotApplicableState = 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 = exports.quotaHistoryDailyBucketSchema = exports.quotaHistorySampleSchema = exports.quotaHistoryRuntimeProviderSchema = exports.providerQuotaMapSchema = exports.zaiProviderQuotaStateSchema = exports.codexProviderQuotaStateSchema = exports.claudeProviderQuotaStateSchema = exports.providerQuotaStateSchema = exports.runtimeQuotaProviderSchema = void 0;
|
|
9
|
+
exports.CodexQuotaWatcher = exports.resolveCodexQuotaFromLocalSources = exports.resolveCodexQuota = exports.readLatestCodexQuotaFromRollouts = exports.quotaFromCodexRateLimits = exports.fetchCodexQuotaFromApi = exports.getWorkspaceIdFromPath = exports.pruneQuotaHistory = exports.readQuotaHistoryDailyBuckets = exports.readQuotaHistoryRange = exports.appendQuotaHistorySample = exports.writeQuotaSnapshot = exports.readQuotaSnapshot = exports.QuotaPoller = exports.describeQuotaFailure = exports.withQuotaProjections = exports.projectQuotaWindow = exports.fetchQuota = exports.SEVEN_DAY_WINDOW_MS = 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.switchToCodexAccount = exports.finalizeCodexAccount = exports.prepareCodexAccount = exports.getCodexExecutionEnv = exports.resolveSidekickCodexHome = 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.getActiveAccountStatus = exports.removeSavedAccountProfile = exports.replaceSavedAccountProfiles = void 0;
|
|
10
|
+
exports.permissionModeSchema = exports.sessionEventSchema = exports.sessionMessageSchema = exports.messageUsageSchema = exports.gatherAssetsForCwd = exports.codexSessions = exports.readCodexAssets = exports.claudeSessions = exports.readClaudeAssets = exports.extractCommands = exports.extractFilePaths = exports.extractUrls = exports.extractToolCalls = exports.extractToolCall = exports.extractTokenUsage = exports.LITELLM_CATALOG_URL = exports.normalizeLiteLlmCatalog = exports.hydratePricingCatalog = exports.formatCost = exports.sortModelIds = exports.compareModelIds = exports.getModelDisplayInfo = exports.shortModelName = exports.mergeCostSources = exports.calculateCostWithProvenance = exports.calculateCostWithPricing = exports.calculateCost = exports.getModelInfo = exports.getModelPricing = exports.parseModelId = exports.DEFAULT_CONTEXT_WINDOW = exports.getModelContextWindowSize = exports.MultiProviderQuotaService = exports.resolveZaiQuota = exports.readZaiCredentials = exports.quotaStateFromZaiQuotaLimitPayload = exports.fetchZaiQuotaFromApi = exports.ZaiQuotaWatcher = exports.ZAI_TIER_BUDGETS = exports.ZAI_PROVIDER_IDS = exports.ZAI_PROMPT_INVOCATIONS = exports.turnTokenWeight = exports.rowsToZaiTurnsAndErrors = exports.resolveZaiTier = exports.parseZaiQuotaError = exports.makeUnavailableZaiQuotaState = exports.isZaiProviderId = exports.inferZaiQuotaState = exports.extractNextFlushTime = exports.accumulateZaiUsage = void 0;
|
|
11
|
+
exports.scopePeakHoursToSessionProvider = exports.isClaudeCodeSessionProvider = exports.fetchPeakHoursStatus = exports.createPeakHoursNotApplicableState = 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 = exports.quotaHistoryDailyBucketSchema = exports.quotaHistorySampleSchema = exports.quotaHistoryRuntimeProviderSchema = exports.providerQuotaMapSchema = exports.zaiProviderQuotaStateSchema = exports.codexProviderQuotaStateSchema = exports.claudeProviderQuotaStateSchema = exports.providerQuotaStateSchema = exports.runtimeQuotaProviderSchema = exports.quotaFailureDescriptorSchema = exports.peakHoursStateSchema = exports.quotaSourceSchema = exports.quotaProviderIdSchema = exports.quotaFailureKindSchema = exports.quotaStateSchema = exports.quotaWindowSchema = exports.extractSessionEvents = void 0;
|
|
12
12
|
var taskPersistence_1 = require("./types/taskPersistence");
|
|
13
13
|
Object.defineProperty(exports, "TASK_PERSISTENCE_SCHEMA_VERSION", { enumerable: true, get: function () { return taskPersistence_1.TASK_PERSISTENCE_SCHEMA_VERSION; } });
|
|
14
14
|
Object.defineProperty(exports, "normalizeTaskStatus", { enumerable: true, get: function () { return taskPersistence_1.normalizeTaskStatus; } });
|
|
@@ -274,7 +274,11 @@ Object.defineProperty(exports, "decideAutoSwitch", { enumerable: true, get: func
|
|
|
274
274
|
Object.defineProperty(exports, "AutoSwitchController", { enumerable: true, get: function () { return autoSwitch_1.AutoSwitchController; } });
|
|
275
275
|
// Quota
|
|
276
276
|
var quota_1 = require("./quota");
|
|
277
|
+
Object.defineProperty(exports, "FIVE_HOUR_WINDOW_MS", { enumerable: true, get: function () { return quota_1.FIVE_HOUR_WINDOW_MS; } });
|
|
278
|
+
Object.defineProperty(exports, "SEVEN_DAY_WINDOW_MS", { enumerable: true, get: function () { return quota_1.SEVEN_DAY_WINDOW_MS; } });
|
|
277
279
|
Object.defineProperty(exports, "fetchQuota", { enumerable: true, get: function () { return quota_1.fetchQuota; } });
|
|
280
|
+
Object.defineProperty(exports, "projectQuotaWindow", { enumerable: true, get: function () { return quota_1.projectQuotaWindow; } });
|
|
281
|
+
Object.defineProperty(exports, "withQuotaProjections", { enumerable: true, get: function () { return quota_1.withQuotaProjections; } });
|
|
278
282
|
var quotaPresentation_1 = require("./quotaPresentation");
|
|
279
283
|
Object.defineProperty(exports, "describeQuotaFailure", { enumerable: true, get: function () { return quotaPresentation_1.describeQuotaFailure; } });
|
|
280
284
|
var quotaPoller_1 = require("./quotaPoller");
|
|
@@ -311,6 +315,11 @@ Object.defineProperty(exports, "ZAI_PROVIDER_IDS", { enumerable: true, get: func
|
|
|
311
315
|
Object.defineProperty(exports, "ZAI_TIER_BUDGETS", { enumerable: true, get: function () { return zaiQuota_1.ZAI_TIER_BUDGETS; } });
|
|
312
316
|
var zaiQuotaWatcher_1 = require("./zaiQuotaWatcher");
|
|
313
317
|
Object.defineProperty(exports, "ZaiQuotaWatcher", { enumerable: true, get: function () { return zaiQuotaWatcher_1.ZaiQuotaWatcher; } });
|
|
318
|
+
var zaiQuotaApi_1 = require("./zaiQuotaApi");
|
|
319
|
+
Object.defineProperty(exports, "fetchZaiQuotaFromApi", { enumerable: true, get: function () { return zaiQuotaApi_1.fetchZaiQuotaFromApi; } });
|
|
320
|
+
Object.defineProperty(exports, "quotaStateFromZaiQuotaLimitPayload", { enumerable: true, get: function () { return zaiQuotaApi_1.quotaStateFromZaiQuotaLimitPayload; } });
|
|
321
|
+
Object.defineProperty(exports, "readZaiCredentials", { enumerable: true, get: function () { return zaiQuotaApi_1.readZaiCredentials; } });
|
|
322
|
+
Object.defineProperty(exports, "resolveZaiQuota", { enumerable: true, get: function () { return zaiQuotaApi_1.resolveZaiQuota; } });
|
|
314
323
|
var multiProviderQuotaService_1 = require("./multiProviderQuotaService");
|
|
315
324
|
Object.defineProperty(exports, "MultiProviderQuotaService", { enumerable: true, get: function () { return multiProviderQuotaService_1.MultiProviderQuotaService; } });
|
|
316
325
|
// Model Context
|
package/dist/modelContext.js
CHANGED
|
@@ -36,21 +36,20 @@ const MODEL_CONTEXT_SIZES = {
|
|
|
36
36
|
'gpt-5.3-codex': 400_000,
|
|
37
37
|
'gpt-5': 400_000,
|
|
38
38
|
// OpenAI reasoning
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
o1: 200_000,
|
|
40
|
+
o3: 200_000,
|
|
41
|
+
o4: 200_000,
|
|
42
42
|
// OpenAI GPT-4 series
|
|
43
43
|
'gpt-4o': 128_000,
|
|
44
44
|
'gpt-4-turbo': 128_000,
|
|
45
45
|
'gpt-4': 8_192,
|
|
46
46
|
// Gemini
|
|
47
|
-
|
|
47
|
+
gemini: 1_000_000,
|
|
48
48
|
// DeepSeek
|
|
49
|
-
|
|
49
|
+
deepseek: 128_000,
|
|
50
50
|
};
|
|
51
51
|
/** Prefix keys sorted longest-first for correct prefix matching. */
|
|
52
|
-
const SORTED_KEYS = Object.keys(MODEL_CONTEXT_SIZES)
|
|
53
|
-
.sort((a, b) => b.length - a.length);
|
|
52
|
+
const SORTED_KEYS = Object.keys(MODEL_CONTEXT_SIZES).sort((a, b) => b.length - a.length);
|
|
54
53
|
/** Default context window size when model is unknown. */
|
|
55
54
|
exports.DEFAULT_CONTEXT_WINDOW = 200_000;
|
|
56
55
|
/**
|
|
@@ -75,7 +74,10 @@ function getModelContextWindowSize(modelId) {
|
|
|
75
74
|
// Strip the suffix if present, so the normal lookup still succeeds when
|
|
76
75
|
// a caller passes e.g. "claude-opus-4-7[1m]" and we've already handled it.
|
|
77
76
|
// Trim/lowercase so padded or mixed-case IDs match the lowercase table keys.
|
|
78
|
-
const normalized = modelId
|
|
77
|
+
const normalized = modelId
|
|
78
|
+
.replace(/\[1m\]/gi, '')
|
|
79
|
+
.trim()
|
|
80
|
+
.toLowerCase();
|
|
79
81
|
// Exact match
|
|
80
82
|
if (MODEL_CONTEXT_SIZES[normalized] !== undefined) {
|
|
81
83
|
return MODEL_CONTEXT_SIZES[normalized];
|
package/dist/modelInfo.js
CHANGED
|
@@ -214,7 +214,7 @@ const PRICING_TABLE = {
|
|
|
214
214
|
cacheWriteCostPerMillion: 0,
|
|
215
215
|
cacheReadCostPerMillion: 0.55,
|
|
216
216
|
},
|
|
217
|
-
|
|
217
|
+
o3: {
|
|
218
218
|
inputCostPerMillion: 2.0,
|
|
219
219
|
outputCostPerMillion: 8.0,
|
|
220
220
|
cacheWriteCostPerMillion: 0,
|
|
@@ -226,7 +226,7 @@ const PRICING_TABLE = {
|
|
|
226
226
|
cacheWriteCostPerMillion: 0,
|
|
227
227
|
cacheReadCostPerMillion: 1.5,
|
|
228
228
|
},
|
|
229
|
-
|
|
229
|
+
o1: {
|
|
230
230
|
inputCostPerMillion: 15.0,
|
|
231
231
|
outputCostPerMillion: 60.0,
|
|
232
232
|
cacheWriteCostPerMillion: 0,
|
|
@@ -275,7 +275,10 @@ const GEMINI_RE = /^gemini-([0-9][0-9.A-Za-z-]*)/i;
|
|
|
275
275
|
function parseModelId(modelId) {
|
|
276
276
|
if (!modelId)
|
|
277
277
|
return null;
|
|
278
|
-
const normalized = modelId
|
|
278
|
+
const normalized = modelId
|
|
279
|
+
.replace(/\[1m\]/gi, '')
|
|
280
|
+
.trim()
|
|
281
|
+
.toLowerCase();
|
|
279
282
|
const claude = normalized.match(CLAUDE_RE);
|
|
280
283
|
if (claude) {
|
|
281
284
|
return { provider: 'anthropic', family: claude[1].toLowerCase(), version: claude[2] };
|
|
@@ -405,8 +408,7 @@ function calculateCost(usage, modelId) {
|
|
|
405
408
|
* locally estimated from pricing, or unavailable because the model is unpriced.
|
|
406
409
|
*/
|
|
407
410
|
function calculateCostWithProvenance(input) {
|
|
408
|
-
if (typeof input.reportedCostUsd === 'number' &&
|
|
409
|
-
Number.isFinite(input.reportedCostUsd)) {
|
|
411
|
+
if (typeof input.reportedCostUsd === 'number' && Number.isFinite(input.reportedCostUsd)) {
|
|
410
412
|
return { costUsd: input.reportedCostUsd, source: 'reported' };
|
|
411
413
|
}
|
|
412
414
|
const estimated = calculateCost(input.usage, input.modelId);
|
|
@@ -489,7 +491,10 @@ function getModelDisplayInfo(modelId) {
|
|
|
489
491
|
rank = 200;
|
|
490
492
|
}
|
|
491
493
|
else if (parsed?.provider === 'openai') {
|
|
492
|
-
rank =
|
|
494
|
+
rank =
|
|
495
|
+
parsed.family === 'gpt'
|
|
496
|
+
? 300 + versionRank(parsed.version)
|
|
497
|
+
: 400 + versionRank(parsed.version);
|
|
493
498
|
}
|
|
494
499
|
else if (parsed?.provider === 'google') {
|
|
495
500
|
rank = 500 + versionRank(parsed.version);
|
|
@@ -77,7 +77,8 @@ class MultiProviderQuotaService {
|
|
|
77
77
|
constructor(options = {}) {
|
|
78
78
|
this.activeIntervalMs = options.activeIntervalMs ?? ACTIVE_POLL_INTERVAL_MS;
|
|
79
79
|
this.idleIntervalMs = options.idleIntervalMs ?? IDLE_POLL_INTERVAL_MS;
|
|
80
|
-
this.transientFailureBackoffMs =
|
|
80
|
+
this.transientFailureBackoffMs =
|
|
81
|
+
options.transientFailureBackoffMs ?? TRANSIENT_FAILURE_BACKOFF_MS;
|
|
81
82
|
this.peakHoursCacheMaxAgeMs = options.peakHoursCacheMaxAgeMs ?? PEAK_HOURS_CACHE_MAX_AGE_MS;
|
|
82
83
|
this.includePeakHours = options.includePeakHours ?? true;
|
|
83
84
|
this.readClaudeCredentials = options.readClaudeCredentials ?? credentials_1.readClaudeMaxCredentials;
|
|
@@ -97,9 +98,10 @@ class MultiProviderQuotaService {
|
|
|
97
98
|
this.codexWatcher = null;
|
|
98
99
|
this.ownsCodexWatcher = false;
|
|
99
100
|
}
|
|
100
|
-
this.codexSubscription =
|
|
101
|
-
this.
|
|
102
|
-
|
|
101
|
+
this.codexSubscription =
|
|
102
|
+
this.codexWatcher?.onUpdate((state) => {
|
|
103
|
+
this.updateProviderQuota('codex', state);
|
|
104
|
+
}) ?? null;
|
|
103
105
|
if (options.zaiWatcher !== undefined) {
|
|
104
106
|
this.zaiWatcher = options.zaiWatcher;
|
|
105
107
|
this.ownsZaiWatcher = false;
|
|
@@ -108,9 +110,10 @@ class MultiProviderQuotaService {
|
|
|
108
110
|
this.zaiWatcher = null;
|
|
109
111
|
this.ownsZaiWatcher = false;
|
|
110
112
|
}
|
|
111
|
-
this.zaiSubscription =
|
|
112
|
-
this.
|
|
113
|
-
|
|
113
|
+
this.zaiSubscription =
|
|
114
|
+
this.zaiWatcher?.onUpdate((state) => {
|
|
115
|
+
this.updateProviderQuota('zai', state);
|
|
116
|
+
}) ?? null;
|
|
114
117
|
}
|
|
115
118
|
startPolling() {
|
|
116
119
|
if (this.polling)
|