sidekick-shared 0.29.0 → 0.30.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.
Files changed (142) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +198 -56
  3. package/dist/aggregation/EventAggregator.d.ts +96 -2
  4. package/dist/aggregation/EventAggregator.js +535 -42
  5. package/dist/aggregation/snapshot.d.ts +37 -8
  6. package/dist/aggregation/snapshot.js +31 -9
  7. package/dist/aggregation/types.d.ts +38 -1
  8. package/dist/browser.d.ts +9 -1
  9. package/dist/browser.js +29 -3
  10. package/dist/context/sessionContext.js +8 -0
  11. package/dist/esm/aggregation/EventAggregator.js +535 -42
  12. package/dist/esm/aggregation/snapshot.js +31 -9
  13. package/dist/esm/browser.js +3 -0
  14. package/dist/esm/context/sessionContext.js +8 -0
  15. package/dist/esm/fileContinuity.js +149 -0
  16. package/dist/esm/formatters/toolSummary.js +4 -1
  17. package/dist/esm/index.js +7 -2
  18. package/dist/esm/modelCatalog.js +5 -4
  19. package/dist/esm/modelContext.js +4 -3
  20. package/dist/esm/modelInfo.js +4 -3
  21. package/dist/esm/node.js +3 -1
  22. package/dist/esm/observedContextWindows.js +2 -1
  23. package/dist/esm/ownKey.js +26 -0
  24. package/dist/esm/parsers/codexParser.js +372 -7
  25. package/dist/esm/parsers/openCodeParser.js +2 -1
  26. package/dist/esm/parsers/subagentEndState.js +61 -0
  27. package/dist/esm/parsers/subagentScanner.js +37 -12
  28. package/dist/esm/parsers/subagentTraceParser.js +103 -37
  29. package/dist/esm/pricingCatalog.js +3 -2
  30. package/dist/esm/promptHistory.js +22 -11
  31. package/dist/esm/providers/claudeCode.js +60 -29
  32. package/dist/esm/providers/codex.js +235 -201
  33. package/dist/esm/providers/codexCompressedReader.js +184 -0
  34. package/dist/esm/providers/codexDatabase.js +47 -2
  35. package/dist/esm/providers/codexRollouts.js +20 -2
  36. package/dist/esm/providers/codexSubagents.js +456 -0
  37. package/dist/esm/providers/compressedRollouts.js +330 -0
  38. package/dist/esm/providers/factory.js +4 -1
  39. package/dist/esm/providers/rolloutWalker.js +32 -4
  40. package/dist/esm/schemas/sessionEvent.js +63 -14
  41. package/dist/esm/sessionMonitor.js +7 -1
  42. package/dist/esm/sessionPreviews.js +9 -0
  43. package/dist/esm/sessionPromptHistory.js +5 -3
  44. package/dist/esm/subagentActivity.js +125 -0
  45. package/dist/esm/subagentDisplayState.js +81 -0
  46. package/dist/esm/subagentSpawn.js +363 -0
  47. package/dist/esm/testing/codexSubagentFixtures.js +336 -0
  48. package/dist/esm/toolCallOrigins.js +17 -10
  49. package/dist/esm/toolCategory.js +6 -2
  50. package/dist/esm/transcript.js +8 -0
  51. package/dist/esm/turns/assistantTurn.js +6 -2
  52. package/dist/esm/usage/claudeUsageDedupe.js +68 -0
  53. package/dist/esm/usage/usageEvents.js +4 -1
  54. package/dist/esm/watchers/eventBridge.js +45 -0
  55. package/dist/esm/watchers/factory.js +5 -3
  56. package/dist/esm/watchers/jsonlTail.js +82 -48
  57. package/dist/esm/watchers/jsonlWatcher.js +61 -4
  58. package/dist/esm/watchers/providerReaderWatcher.js +18 -4
  59. package/dist/esm/zaiQuota.js +2 -1
  60. package/dist/fileContinuity.d.ts +95 -0
  61. package/dist/fileContinuity.js +187 -0
  62. package/dist/formatters/toolSummary.js +4 -1
  63. package/dist/index.d.ts +19 -7
  64. package/dist/index.js +48 -10
  65. package/dist/modelCatalog.js +5 -4
  66. package/dist/modelContext.js +4 -3
  67. package/dist/modelInfo.js +4 -3
  68. package/dist/node.d.ts +5 -1
  69. package/dist/node.js +18 -2
  70. package/dist/observedContextWindows.js +2 -1
  71. package/dist/ownKey.d.ts +16 -0
  72. package/dist/ownKey.js +30 -0
  73. package/dist/parsers/codexParser.d.ts +107 -0
  74. package/dist/parsers/codexParser.js +373 -7
  75. package/dist/parsers/openCodeParser.js +2 -1
  76. package/dist/parsers/subagentEndState.d.ts +20 -0
  77. package/dist/parsers/subagentEndState.js +65 -0
  78. package/dist/parsers/subagentScanner.d.ts +19 -6
  79. package/dist/parsers/subagentScanner.js +37 -12
  80. package/dist/parsers/subagentTraceParser.d.ts +33 -5
  81. package/dist/parsers/subagentTraceParser.js +103 -37
  82. package/dist/pricingCatalog.js +3 -2
  83. package/dist/promptHistory.d.ts +13 -3
  84. package/dist/promptHistory.js +22 -11
  85. package/dist/providers/claudeCode.js +59 -28
  86. package/dist/providers/codex.d.ts +35 -5
  87. package/dist/providers/codex.js +232 -198
  88. package/dist/providers/codexCompressedReader.d.ts +58 -0
  89. package/dist/providers/codexCompressedReader.js +221 -0
  90. package/dist/providers/codexDatabase.d.ts +25 -0
  91. package/dist/providers/codexDatabase.js +48 -2
  92. package/dist/providers/codexRollouts.d.ts +16 -2
  93. package/dist/providers/codexRollouts.js +20 -2
  94. package/dist/providers/codexSubagents.d.ts +66 -0
  95. package/dist/providers/codexSubagents.js +495 -0
  96. package/dist/providers/compressedRollouts.d.ts +114 -0
  97. package/dist/providers/compressedRollouts.js +380 -0
  98. package/dist/providers/factory.d.ts +5 -0
  99. package/dist/providers/factory.js +4 -1
  100. package/dist/providers/rolloutWalker.d.ts +15 -2
  101. package/dist/providers/rolloutWalker.js +33 -4
  102. package/dist/providers/types.d.ts +36 -1
  103. package/dist/schemas/index.d.ts +1 -0
  104. package/dist/schemas/sessionEvent.d.ts +51 -10
  105. package/dist/schemas/sessionEvent.js +63 -14
  106. package/dist/sessionMonitor.d.ts +6 -0
  107. package/dist/sessionMonitor.js +7 -1
  108. package/dist/sessionPreviews.js +9 -0
  109. package/dist/sessionPromptHistory.d.ts +5 -0
  110. package/dist/sessionPromptHistory.js +5 -36
  111. package/dist/subagentActivity.d.ts +91 -0
  112. package/dist/subagentActivity.js +132 -0
  113. package/dist/subagentDisplayState.d.ts +81 -0
  114. package/dist/subagentDisplayState.js +86 -0
  115. package/dist/subagentSpawn.d.ts +175 -0
  116. package/dist/subagentSpawn.js +385 -0
  117. package/dist/testing/codexSubagentFixtures.d.ts +48 -0
  118. package/dist/testing/codexSubagentFixtures.js +344 -0
  119. package/dist/toolCallOrigins.d.ts +5 -0
  120. package/dist/toolCallOrigins.js +17 -10
  121. package/dist/toolCategory.js +6 -2
  122. package/dist/transcript.js +8 -0
  123. package/dist/turns/assistantTurn.d.ts +4 -0
  124. package/dist/turns/assistantTurn.js +6 -2
  125. package/dist/types/codex.d.ts +71 -2
  126. package/dist/types/sessionEvent.d.ts +38 -3
  127. package/dist/usage/claudeUsageDedupe.d.ts +31 -0
  128. package/dist/usage/claudeUsageDedupe.js +68 -0
  129. package/dist/usage/usageEvents.d.ts +4 -1
  130. package/dist/usage/usageEvents.js +4 -1
  131. package/dist/watchers/eventBridge.js +45 -0
  132. package/dist/watchers/factory.d.ts +6 -0
  133. package/dist/watchers/factory.js +5 -3
  134. package/dist/watchers/jsonlTail.d.ts +27 -4
  135. package/dist/watchers/jsonlTail.js +84 -48
  136. package/dist/watchers/jsonlWatcher.d.ts +22 -1
  137. package/dist/watchers/jsonlWatcher.js +60 -3
  138. package/dist/watchers/providerReaderWatcher.d.ts +7 -0
  139. package/dist/watchers/providerReaderWatcher.js +18 -4
  140. package/dist/watchers/types.d.ts +12 -0
  141. package/dist/zaiQuota.js +2 -1
  142. package/package.json +1 -1
@@ -11,6 +11,7 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.formatToolSummary = formatToolSummary;
13
13
  exports.truncate = truncate;
14
+ const ownKey_1 = require("../ownKey");
14
15
  // ── Helpers ──
15
16
  function truncate(text, maxLen) {
16
17
  const clean = text.replace(/\s+/g, ' ').trim();
@@ -175,6 +176,8 @@ const TOOL_FORMATTERS = {
175
176
  Bash: formatBash,
176
177
  Grep: formatGrep,
177
178
  Glob: formatGlob,
179
+ // Claude Code's subagent tool; `Task` is its earlier name.
180
+ Agent: formatTask,
178
181
  Task: formatTask,
179
182
  WebFetch: formatWebFetch,
180
183
  WebSearch: formatWebSearch,
@@ -218,7 +221,7 @@ function genericFallback(input) {
218
221
  function formatToolSummary(toolName, input) {
219
222
  // Strip MCP prefixes: "mcp__server__tool" → use "tool" for matching
220
223
  const baseName = toolName.includes('__') ? (toolName.split('__').pop() ?? toolName) : toolName;
221
- const formatter = TOOL_FORMATTERS[toolName] ?? TOOL_FORMATTERS[baseName];
224
+ const formatter = (0, ownKey_1.ownValue)(TOOL_FORMATTERS, toolName) ?? (0, ownKey_1.ownValue)(TOOL_FORMATTERS, baseName);
222
225
  if (formatter) {
223
226
  const result = formatter(input);
224
227
  if (result)
package/dist/index.d.ts CHANGED
@@ -74,7 +74,7 @@ export { addDecision, decisionFingerprint } from './writers/decisions';
74
74
  export { addNote } from './writers/notes';
75
75
  export { renderHandoffUrlTemplate } from './handoffUrl';
76
76
  export type { HandoffUrlIdentifiers } from './handoffUrl';
77
- export type { ProviderId, SessionProvider, SessionProviderBase, SessionEnumerationCounters, ListSessionFilesOptions, WatchedSessionFile, SessionFileStats, SessionFileStatsAvailability, SessionFileInfo, SearchHit, ProjectFolderInfo, SessionReader, SessionProviderOptions, ProviderOperationStatus, SessionProviderDiagnostic, SessionProviderDiagnosticKind, SessionProviderDiagnosticPhase, SessionProviderDiagnosticSeverity, ProviderRuntimeStatus, } from './providers/types';
77
+ export type { ProviderId, SessionProvider, SessionProviderBase, SessionEnumerationCounters, ListSessionFilesOptions, WatchedSessionFile, SessionFileStats, SessionFileStatsAvailability, SessionFileInfo, SearchHit, ProjectFolderInfo, SessionReader, SessionReaderReset, SessionProviderOptions, ProviderOperationStatus, SessionProviderDiagnostic, SessionProviderDiagnosticKind, SessionProviderDiagnosticPhase, SessionProviderDiagnosticSeverity, ProviderRuntimeStatus, } from './providers/types';
78
78
  export { SESSION_PROVIDER_IDS } from './providers/types';
79
79
  export { createSessionProviders } from './providers/factory';
80
80
  export type { CreateSessionProvidersOptions, CreateSessionProvidersResult, } from './providers/factory';
@@ -86,16 +86,22 @@ export { OpenCodeProvider, getOpenCodeDataDir } from './providers/openCode';
86
86
  export { CodexProvider, findCodexRolloutFile } from './providers/codex';
87
87
  export { walkRolloutFiles, walkRolloutFilesAsync } from './providers/rolloutWalker';
88
88
  export type { RolloutFileInfo, WalkRolloutFilesOptions } from './providers/rolloutWalker';
89
- export type { FindCodexRolloutFileOptions } from './providers/codex';
89
+ export type { CodexProviderOptions, FindCodexRolloutFileOptions } from './providers/codex';
90
+ export { COMPRESSED_ROLLOUT_SUFFIX, isCompressedRolloutPath, isZstdDecompressionAvailable, readRolloutBuffer, readRolloutText, resolveRolloutPath, } from './providers/compressedRollouts';
91
+ export type { ReadRolloutOptions } from './providers/compressedRollouts';
90
92
  export { JsonlParser, TRUNCATION_PATTERNS } from './parsers/jsonl';
91
93
  export type { RawSessionEvent, JsonlParserCallbacks, JsonlParserOptions } from './parsers/jsonl';
92
94
  export { normalizeToolName, normalizeToolInput, detectPlanModeFromText, convertOpenCodeMessage, parseDbMessageData, parseDbPartData, } from './parsers/openCodeParser';
93
95
  export { CodexRolloutParser, DEFAULT_MAX_TRACKED_TOOL_CALLS, extractPatchFilePaths, normalizeCodexToolName, normalizeCodexToolInput, resolveCodexCallUsage, } from './parsers/codexParser';
94
- export type { CodexPendingStats, CodexRolloutParserOptions } from './parsers/codexParser';
96
+ export type { CodexPendingStats, CodexRolloutParserOptions, CodexRolloutResumeState, } from './parsers/codexParser';
95
97
  export { codexRolloutOrigin, codexSpawnParentFromSource } from './parsers/codexRolloutOrigin';
96
98
  export type { CodexRolloutOrigin } from './parsers/codexRolloutOrigin';
99
+ export { SUBAGENT_ACTIVITY_BLOCK_TYPE, SUBAGENT_ACTIVITY_ORIGIN_KIND, describeSubagentActivity, isSubagentActivitySystemEvent, parseCodexAgentMessageText, subagentActivityFromEvent, } from './subagentActivity';
100
+ export type { CodexAgentMessageText, SubagentActivity, SubagentActivityKind, } from './subagentActivity';
97
101
  export { scanSubagentDir, extractTaskInfo, readAgentMeta } from './parsers/subagentScanner';
102
+ export type { AgentMeta } from './parsers/subagentScanner';
98
103
  export { ClaudeUsageDeduper, SYNTHETIC_MODEL, dedupedRawClaudeUsage, normalizeClaudeUsage, } from './usage/claudeUsageDedupe';
104
+ export type { ClaudeUsageDedupeBuckets, ClaudeUsageDedupeState } from './usage/claudeUsageDedupe';
99
105
  export { addUsageToSubagent } from './usage/subagentUsage';
100
106
  export { collectSessionTokenTotals, combineSessionTokenTotals, readMainThreadTokenTotals, scanSessionSubagents, subagentTokenTotals, } from './sessionTokenTotals';
101
107
  export type { SessionTokenTotals, SubagentTokenSummary } from './sessionTokenTotals';
@@ -113,7 +119,8 @@ export type { AsyncSessionPreviewOptions, ListSessionPreviewsAsyncOptions, ListS
113
119
  export { parseDebugLog, filterByLevel, collapseDuplicates, discoverDebugLogs, } from './parsers/debugLogParser';
114
120
  export type { DebugLogEntry, DebugLogFile, DebugLogLevel } from './parsers/debugLogParser';
115
121
  export { OpenCodeDatabase } from './providers/openCodeDatabase';
116
- export { CodexDatabase } from './providers/codexDatabase';
122
+ export { CodexDatabase, isCodexSubagentThread } from './providers/codexDatabase';
123
+ export type { CodexSpawnedThread } from './providers/codexDatabase';
117
124
  export { searchSessions } from './search/sessionSearch';
118
125
  export type { SearchResult, SessionSearchOptions } from './search/sessionSearch';
119
126
  export { FilterEngine } from './search/advancedFilter';
@@ -122,6 +129,10 @@ export { composeContext } from './context/composer';
122
129
  export type { Fidelity, ContextResult } from './context/composer';
123
130
  export { buildSessionContextSnapshot, calculateSessionContextPressure, createSessionContextProjector, readSessionContextSnapshot, } from './context/sessionContext';
124
131
  export type { BuildSessionContextSnapshotOptions, ReadSessionContextSnapshotOptions, SessionContextCapabilities, SessionContextLayerBreakdown, SessionContextPressure, SessionContextProjector, SessionContextSnapshot, SessionContextSource, SessionContextSourceType, } from './context/sessionContext';
132
+ export { SUBAGENT_SPAWN_TOOL_NAMES, agentsStoppedNoticeFromEvent, isAgentsKilledSystemEvent, isCodexSubagentSpawnTool, isSubagentSpawnTool, isTaskNotificationSystemEvent, isTaskStatusSystemEvent, parseAgentsStoppedNotice, parseCodexSpawnLaunch, parseTaskNotification, taskNotificationFromEvent, taskStatusFromAttachment, taskStatusFromEvent, } from './subagentSpawn';
133
+ export type { AgentsStoppedNotice, CodexSpawnLaunch, SubagentTaskStatus, TaskNotification, } from './subagentSpawn';
134
+ export { SUBAGENT_PARENT_IDLE_ENDED_MS, SUBAGENT_UNREPORTED_QUIET_MS, resolveSubagentDisplayState, subagentDisplayLabel, } from './subagentDisplayState';
135
+ export type { SubagentDisplayLifecycle, SubagentDisplayOptions, SubagentDisplayReason, SubagentDisplayState, SubagentDisplayStateName, SubagentDisplayTrace, } from './subagentDisplayState';
125
136
  export { assistantTurnEventsFromSessionEvents, extractTurnSubagents, isAssistantTurnSubagentTool, reasoningSummary, segmentAssistantTurn, } from './turns/assistantTurn';
126
137
  export type { AssistantTurnEvent, AssistantTurnEventType, AssistantTurnProcess, AssistantTurnProcessStep, AssistantTurnProjection, AssistantTurnSubagent, AssistantTurnSubagentStatus, AssistantTurnTimelineItem, AssistantTurnToolRef, ExtractTurnSubagentsOptions, ReasoningSummary, SegmentAssistantTurnOptions, } from './turns/assistantTurn';
127
138
  export { PlanExtractor, parsePlanMarkdown as parsePlanMarkdownShared, extractProposedPlan as extractProposedPlanShared, } from './parsers/planExtractor';
@@ -132,7 +143,7 @@ export type { FollowEvent, FollowEventType, SessionWatcher, SessionWatcherCallba
132
143
  export { createWatcher, resolveSessionPath } from './watchers/factory';
133
144
  export type { CreateWatcherOptions } from './watchers/factory';
134
145
  export { toFollowEvents } from './watchers/eventBridge';
135
- export { createJsonlTail, DEFAULT_JSONL_TAIL_MAX_LINE_BYTES, DEFAULT_JSONL_TAIL_READ_BYTES, JSONL_TAIL_CHECKPOINT_VERSION, JsonlTailSymlinkError, } from './watchers/jsonlTail';
146
+ export { captureJsonlCheckpoint, createJsonlTail, DEFAULT_JSONL_TAIL_MAX_LINE_BYTES, DEFAULT_JSONL_TAIL_READ_BYTES, JSONL_TAIL_CHECKPOINT_VERSION, JsonlTailSymlinkError, verifyJsonlCheckpoint, } from './watchers/jsonlTail';
136
147
  export type { JsonlTail, JsonlTailCheckpoint, JsonlTailReadResult, JsonlTailEntry, JsonlTailRewritePolicy, JsonlTailBatch, JsonlTailLine, JsonlTailOptions, JsonlTailReset, JsonlTailResetReason, } from './watchers/jsonlTail';
137
148
  export { addLocalDays, formatDurationMs, formatLocalDateKey, formatTokenCount, parseLocalDateKey, } from './formatting';
138
149
  export type { FormatDurationMsOptions, FormatTokenCountOptions } from './formatting';
@@ -148,10 +159,10 @@ export type { PhraseCategory } from './phrases';
148
159
  export { EventAggregator, parseTodoDependencies } from './aggregation/EventAggregator';
149
160
  export { SessionMonitor } from './sessionMonitor';
150
161
  export type { SessionMonitorOptions, SessionMonitorSubscribeOptions } from './sessionMonitor';
151
- export type { SerializedAggregatorState } from './aggregation/EventAggregator';
162
+ export type { SerializedAggregatorState, SubagentEvidence } from './aggregation/EventAggregator';
152
163
  export { saveSnapshot, loadSnapshot, deleteSnapshot, isSnapshotValid, pruneSnapshots, MAX_SNAPSHOT_FILES, getSnapshotPath, } from './aggregation/snapshot';
153
164
  export type { SessionSnapshot } from './aggregation/snapshot';
154
- export type { EventAggregatorOptions, AggregatedCostProvenance, AggregatedTokens, ModelUsageStats, BurnRateInfo, SubagentLifecycle, AggregatedMetrics, FrequencyMetric, PatternMetric, HeatmapBucketMetric, ErrorRollup, ErrorRollupEntry, ErrorBucketMetric, } from './aggregation/types';
165
+ export type { EventAggregatorOptions, AggregatedCostProvenance, AggregatedTokens, ModelUsageStats, BurnRateInfo, SubagentLifecycle, SubagentOutcome, SubagentSettledBy, AggregatedMetrics, FrequencyMetric, PatternMetric, HeatmapBucketMetric, ErrorRollup, ErrorRollupEntry, ErrorBucketMetric, } from './aggregation/types';
155
166
  export { ERROR_HISTORY_SCHEMA_VERSION, MAX_ERROR_HISTORY_SESSIONS, appendErrorHistory, getTopFailingTools, readErrorHistory, } from './errorHistory';
156
167
  export type { ErrorHistorySessionRecord, ErrorHistoryStore, TopFailingTool } from './errorHistory';
157
168
  export { FrequencyTracker } from './aggregation/FrequencyTracker';
@@ -271,6 +282,7 @@ export type { ErrorCategory } from './extractors/errorTaxonomy';
271
282
  export { extractToolCall, extractToolCalls, ToolCallTracker } from './extractors/toolCall';
272
283
  export type { GatherAssetsOptions, GatherAssetsResult } from './extractors/gatherAssets';
273
284
  export { messageUsageSchema, sessionMessageSchema, sessionEventSchema, permissionModeSchema, extractSessionEvents, } from './schemas/sessionEvent';
285
+ export type { ExtractSessionEventsOptions } from './schemas/sessionEvent';
274
286
  export { quotaWindowSchema, quotaStateSchema, quotaLimitRowSchema, quotaExtraUsageSchema, quotaFailureKindSchema, quotaProviderIdSchema, quotaSourceSchema, codexResetCreditSchema, codexResetCreditsSnapshotSchema, peakHoursStateSchema, quotaFailureDescriptorSchema, runtimeQuotaProviderSchema, providerQuotaStateSchema, claudeProviderQuotaStateSchema, codexProviderQuotaStateSchema, zaiProviderQuotaStateSchema, providerQuotaMapSchema, } from './schemas/quota';
275
287
  export { quotaHistoryRuntimeProviderSchema, quotaHistorySampleSchema, quotaHistoryDailyBucketSchema, } from './schemas/quotaHistory';
276
288
  export { providerAuthenticationEvidenceSchema, providerFailureEvidenceSchema, providerRetryAfterSchema, providerFailureDiagnosisSchema, } from './schemas/providerFailure';
package/dist/index.js CHANGED
@@ -5,16 +5,17 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.applySessionSummary = exports.pruneUsageCache = exports.getUsageCacheDir = exports.collectUsageEvents = exports.USAGE_CACHE_VERSION = exports.MAX_USAGE_CACHE_FILES = exports.findActiveBillingBlock = exports.computeBillingBlocks = exports.BILLING_BLOCK_DURATION_MS = exports.writeStateFile = exports.readStateFile = exports.quotaToStateFile = exports.getStateFilePath = exports.billingBlockToStateFile = exports.STATE_FILE_SCHEMA_VERSION = exports.STATE_FILE_NAME = exports.sessionFingerprintParts = exports.fingerprintString = exports.readSessionReportInputs = exports.readSessionFileStats = exports.providerContextSizeFn = exports.firstUserPrompt = exports.computeSessionFileStats = exports.isHumanPrompt = exports.humanPromptText = exports.HUMAN_CODEX_SOURCES = exports.HUMAN_CLAUDE_ENTRYPOINTS = exports.collectSessionPromptHistory = exports.findToolCallOrigins = exports.PROMPT_HISTORY_ORDINAL_MAX_RECORD_BYTES = exports.parsePromptHistoryCursor = exports.isPromptHistorySessionSettled = exports.collectPromptHistory = exports.readSessionTranscript = exports.listRecentSessions = exports.projectSessionTranscript = exports.estimateSerializedTokens = exports.estimateTextTokens = exports.ASCII_CHARS_PER_TOKEN = exports.TOKEN_TOTAL_LABEL = exports.TOKEN_SUBAGENTS_LABEL = exports.TOKEN_SESSION_TOTAL_LABEL = exports.TOKEN_MAIN_THREAD_LABEL = exports.TOKEN_CONTEXT_LABEL = exports.sumTokenTotals = exports.summarizeTokens = exports.formatTokenBreakdown = exports.calculateNormalizedUsageCost = exports.extractNormalizedUsage = exports.normalizeProviderUsage = void 0;
7
7
  exports.getPlanAnalytics = exports.writePlans = exports.getLatestPlan = exports.readPlans = exports.readLatestHandoff = exports.readHistory = exports.readNotes = exports.readDecisions = exports.readTasks = exports.migrateLegacyProjectStores = exports.resolveProjectIdentity = exports.getProjectSlugRaw = exports.getProjectSlug = exports.encodeWorkspacePath = exports.getGlobalDataPath = exports.getProjectDataPath = exports.setConfigDir = exports.getDefaultConfigDir = exports.getConfigDirOverride = exports.getConfigDir = exports.CONFIG_DIR_ENV_VAR = exports.MAX_PLANS_PER_PROJECT = exports.PLAN_SCHEMA_VERSION = exports.createEmptyDataStore = exports.createEmptyTokenTotals = exports.HISTORICAL_SESSION_RETENTION_LIMIT = exports.HISTORICAL_DATA_SCHEMA_VERSION = exports.STALENESS_THRESHOLDS = exports.IMPORTANCE_DECAY_FACTORS = exports.KNOWLEDGE_NOTE_SCHEMA_VERSION = exports.DECISION_LOG_SCHEMA_VERSION = exports.normalizeTaskStatus = exports.TASK_PERSISTENCE_SCHEMA_VERSION = exports.isAggregateCodexLimit = exports.splitWatchedPath = exports.DirectoryListingCache = exports.fileFingerprintParts = exports.fileFingerprint = exports.observedSessionSourceFromProvider = exports.ObservedSessionCollector = exports.weekKey = exports.usageBucketKey = exports.summarizeUsageRows = exports.bucketUsage = exports.importSessionHistory = exports.ACTIVE_SESSION_MTIME_THRESHOLD_MS = exports.sessionSummaryFromStats = exports.removeSessionSummary = exports.markFileImported = exports.isFileImported = void 0;
8
- exports.dedupedRawClaudeUsage = exports.SYNTHETIC_MODEL = exports.ClaudeUsageDeduper = exports.readAgentMeta = exports.extractTaskInfo = exports.scanSubagentDir = exports.codexSpawnParentFromSource = exports.codexRolloutOrigin = exports.resolveCodexCallUsage = exports.normalizeCodexToolInput = exports.normalizeCodexToolName = exports.extractPatchFilePaths = exports.DEFAULT_MAX_TRACKED_TOOL_CALLS = exports.CodexRolloutParser = exports.parseDbPartData = exports.parseDbMessageData = exports.convertOpenCodeMessage = exports.detectPlanModeFromText = exports.normalizeToolInput = exports.normalizeToolName = exports.TRUNCATION_PATTERNS = exports.JsonlParser = exports.walkRolloutFilesAsync = exports.walkRolloutFiles = exports.findCodexRolloutFile = exports.CodexProvider = exports.getOpenCodeDataDir = exports.OpenCodeProvider = exports.ClaudeCodeProvider = exports.getAllDetectedProviders = exports.detectProvider = exports._resetProviderDetectionCache = exports.getObservedActivityReason = exports.derivePendingUserRequestV1 = exports.createProviderSessionAdapterV1 = exports.createSessionProviders = exports.SESSION_PROVIDER_IDS = exports.renderHandoffUrlTemplate = exports.addNote = exports.decisionFingerprint = exports.addDecision = exports.completeTask = exports.addTask = exports.withFileLockSync = exports.updateJsonStoreAtomicSync = exports.updateJsonStoreAtomic = exports.atomicWriteFileSync = exports.atomicWriteJsonSync = exports.atomicWriteJson = exports.readClaudeCodePlanFiles = void 0;
9
- exports.reasoningSummary = exports.isAssistantTurnSubagentTool = exports.extractTurnSubagents = exports.assistantTurnEventsFromSessionEvents = exports.readSessionContextSnapshot = exports.createSessionContextProjector = exports.calculateSessionContextPressure = exports.buildSessionContextSnapshot = exports.composeContext = exports.FilterEngine = exports.searchSessions = exports.CodexDatabase = exports.OpenCodeDatabase = exports.discoverDebugLogs = exports.collapseDuplicates = exports.filterByLevel = exports.parseDebugLog = exports.readSessionPreviewAsync = exports.readSessionPreview = exports.listSessionPreviewsAsync = exports.listSessionPreviews = exports.readCodexHistory = exports.parseMcpToolName = exports.scanSubagentTraces = exports.findAllSessionsWithWorktrees = exports.discoverWorktreeSiblings = exports.resolveWorktreeMainRepo = exports.getAllClaudeProjectFolders = exports.decodeEncodedPath = exports.getMostRecentlyActiveSessionDir = exports.findSubdirectorySessionDirs = exports.findSessionFilesWithStats = exports.findSessionsInDirectory = exports.findAllClaudeSessions = exports.findActiveClaudeSession = exports.discoverSessionDirectory = exports.getClaudeSessionDirectory = exports.encodeClaudeWorkspacePath = exports.SESSION_ACTIVITY_STALENESS_MS = exports.SESSION_ACTIVITY_GRACE_PERIOD_MS = exports.refreshSessionActivityState = exports.detectSessionActivity = exports.classifySessionActivity = exports.subagentTokenTotals = exports.scanSessionSubagents = exports.readMainThreadTokenTotals = exports.combineSessionTokenTotals = exports.collectSessionTokenTotals = exports.addUsageToSubagent = exports.normalizeClaudeUsage = void 0;
10
- exports.readErrorHistory = exports.getTopFailingTools = exports.appendErrorHistory = exports.MAX_ERROR_HISTORY_SESSIONS = exports.ERROR_HISTORY_SCHEMA_VERSION = exports.getSnapshotPath = exports.MAX_SNAPSHOT_FILES = exports.pruneSnapshots = exports.isSnapshotValid = exports.deleteSnapshot = exports.loadSnapshot = exports.saveSnapshot = exports.SessionMonitor = exports.parseTodoDependencies = exports.EventAggregator = exports.getRandomPhrase = exports.PHRASE_CATEGORIES = exports.ALL_PHRASES = exports.HIGHLIGHT_CSS = exports.clearHighlightCache = exports.highlightEvent = exports.formatSessionJson = exports.formatSessionMarkdown = exports.formatSessionText = exports.classifyNoise = exports.shouldMergeWithPrevious = exports.classifyFollowEvent = exports.classifyMessage = exports.getSoftNoiseReason = exports.isHardNoiseFollowEvent = exports.isHardNoise = exports.formatToolSummary = exports.parseLocalDateKey = exports.formatTokenCount = exports.formatLocalDateKey = exports.formatDurationMs = exports.addLocalDays = exports.JsonlTailSymlinkError = exports.JSONL_TAIL_CHECKPOINT_VERSION = exports.DEFAULT_JSONL_TAIL_READ_BYTES = exports.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES = exports.createJsonlTail = exports.toFollowEvents = exports.resolveSessionPath = exports.createWatcher = exports.parseChangelog = exports.extractProposedPlanShared = exports.parsePlanMarkdownShared = exports.PlanExtractor = exports.segmentAssistantTurn = void 0;
11
- exports.addCurrentAccount = exports.readActiveClaudeAccount = exports.writeAccountRegistry = exports.readAccountRegistry = exports.ensureDefaultAccounts = exports.compareCodexAuthFreshness = exports.codexRefreshFingerprint = exports.codexIdentitiesMatch = exports.readCodexAccessTokenExpiry = exports.readCodexLastRefresh = exports.readCodexAuthIdentity = exports.parseCodexAuthJson = exports.CLAUDE_REFRESH_TOKEN_LIFETIME_ESTIMATE_MS = exports.CLAUDE_ACCESS_TOKEN_LIFETIME_MS = exports.mergeClaudeLoginIntoLive = exports.claudeLoginOnly = exports.claudeRefreshFingerprint = exports.resolveClaudeRefreshExpiry = exports.isNewerClaudeCredential = exports.claudeCredentialFreshness = exports.parseClaudeCredentialBlob = exports.readClaudeMaxAccessTokenSync = exports.readClaudeMaxCredentialsRaw = exports.readClaudeMaxCredentials = exports.parseKeychainDump = exports.repairClaudeCredentialStores = exports.inspectClaudeCredentialStores = exports.getClaudeCredentialLedgerPath = exports.readClaudeCredentialLedger = exports.decideLiveClaudeWrite = exports.SIDEKICK_KEYCHAIN_COMMENT_PREFIX = exports.ClaudeCredentialWriteError = exports.deleteStoredCredentials = exports.writeActiveCredentials = exports.readClaudeCredentialStore = exports.readActiveCredentials = exports.openInBrowser = exports.parseTranscriptFromEvents = exports.parseTranscript = exports.generateHtmlReport = exports.formatCompactionLedger = exports.calculateCompactionLedger = exports.describeCostProvenance = exports.classifyCostProvenance = exports.calculateCodeImpact = exports.scoreSessionQuality = exports.calculateQualityTrend = exports.PatternExtractor = exports.HeatmapTracker = exports.FrequencyTracker = void 0;
12
- exports.setActiveSavedAccount = exports.upsertSavedAccountProfile = exports.getActiveSavedAccount = exports.listSavedAccountProfiles = exports.writeSavedAccountRegistry = exports.readSavedAccountRegistry = exports.getAccountsDir = exports.ACCOUNT_CONSUMER_REACHABILITY = exports.describeAccountConsumer = exports.detectRunningAccountConsumersSync = exports.detectRunningAccountConsumers = exports.findRunningProcessesSync = exports.findRunningProcesses = exports.keepAliveCommand = exports.refreshInactiveAccounts = exports.getAccountLaunchEnv = exports.getHealthSidecarPath = exports.readHealthSidecar = exports.listAccountsWithHealth = exports.getAccountHealth = exports.cleanupAbandonedLogins = exports.syncLiveAccountStateSync = exports.syncLiveAccountState = exports.getLastSwitchPath = exports.readLastSwitch = exports.discardAccountLogin = exports.resolveClaudeLoginCommand = exports.listAllAccounts = exports.getLastSwitch = exports.undoLastSwitch = exports.switchAccountAsync = exports.switchAccount = exports.spawnAccountLogin = exports.finalizeAccountLoginAsync = exports.finalizeAccountLogin = exports.getAccountLoginStatusAsync = exports.getAccountLoginStatus = exports.beginAccountLogin = exports.isMultiAccountEnabled = exports.resolveActiveClaudeAccount = exports.getActiveAccount = exports.listAccounts = exports.removeAccount = exports.reconcileClaudeAuthState = exports.applyActiveClaudeToLiveHome = exports.resolveActiveClaudeHome = exports.cleanupAbandonedClaudeLogins = exports.syncClaudeLiveState = exports.switchToAccountAsync = exports.switchToAccount = void 0;
13
- exports.claudePlanLabel = exports.SEVEN_DAY_WINDOW_MS = exports.QUOTA_PROVIDER_IDS = exports.FIVE_HOUR_WINDOW_MS = exports.AutoSwitchController = exports.decideAutoSwitch = exports.DEFAULT_AUTO_SWITCH_CONFIG = exports.removeLauncher = exports.writeLauncher = exports.writeAccountLauncher = exports.CODEX_KEYRING_FIX_HINT = exports.getCodexCredentialStoreMode = exports.cleanupAbandonedCodexLogins = exports.syncCodexLiveState = exports.removeCodexAccount = exports.switchToCodexAccountAsync = exports.switchToCodexAccount = exports.finalizeCodexAccountAsync = exports.finalizeCodexAccount = exports.prepareCodexAccountAsync = exports.prepareCodexAccount = exports.getCodexExecutionEnv = exports.resolveSidekickCodexHome = exports.resolveActiveCodexAccount = exports.getActiveCodexAccount = exports.listCodexAccounts = exports.getSystemCodexHome = exports.getCodexMonitoringHomes = exports.getCodexProfileHome = exports.getCodexProfilesDir = exports.getClaudeProjectsDir = exports.isDefaultClaudeHome = exports.getDefaultClaudeHome = exports.getLiveClaudeHome = exports.readLiveClaudeIdentity = exports.readClaudeProfileIdentity = exports.isClaudeProfileAuthenticated = exports.CLAUDE_SECURESTORAGE_CONFIG_DIR_ENV = exports.buildClaudeChildEnv = exports.claudeKeychainAccountName = exports.claudeKeychainService = exports.claudeKeychainSuffix = exports.getClaudeConfigPath = exports.getClaudeProfileHome = exports.getClaudeProfilesDir = exports.onAccountsChanged = exports.getActiveAccountStatus = exports.ACCOUNT_PROVIDER_IDS = exports.removeSavedAccountProfile = exports.replaceSavedAccountProfiles = void 0;
14
- 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.quotaHistoryWindow = exports.getWorkspaceIdFromPath = exports.pruneQuotaHistory = exports.readQuotaHistoryDailyBuckets = exports.readQuotaHistoryRange = exports.appendQuotaHistorySample = exports.quotaFromStatuslinePayload = exports.parseClaudeStatuslinePayload = exports.evaluateQuotaThresholds = exports.describeQuotaThresholdAlert = exports.DEFAULT_QUOTA_THRESHOLDS = exports.QUOTA_FRESH_MAX_AGE_MS = exports.QUOTA_AGING_MAX_AGE_MS = exports.formatQuotaAge = exports.classifyQuotaFreshness = exports.resolveQuota = exports.writeQuotaSnapshot = exports.readQuotaSnapshot = exports.QuotaPoller = exports.describeQuotaFailure = exports.withQuotaProjections = exports.withClaudePlan = exports.quotaWindowShortLabel = exports.quotaWindowLabel = exports.quotaWindowHasData = exports.quotaWindowApplies = exports.quotaStateFromClaudeUsagePayload = exports.quotaSampleExpired = exports.projectQuotaWindow = exports.formatExtraUsage = exports.fetchQuota = exports.extraQuotaRows = void 0;
15
- exports.messageUsageSchema = exports.ToolCallTracker = exports.extractToolCalls = exports.extractToolCall = exports.extractErrorMessage = exports.categorizeError = exports.gatherAssetsForCwd = exports.codexSessions = exports.readCodexAssets = exports.claudeSessions = exports.readClaudeAssets = exports.extractCommands = exports.extractFilePaths = exports.extractUrls = exports.extractTokenUsage = exports.getObservedContextWindowPath = exports.recordObservedContextWindow = exports.loadObservedContextWindows = exports.LITELLM_CATALOG_URL = exports.normalizeLiteLlmContextWindows = exports.normalizeLiteLlmCatalog = exports.hydratePricingCatalog = exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION = exports.resolveModelAlias = exports.registerModelAlias = exports.importResolvedModelCatalog = exports.exportResolvedModelCatalog = exports.mergeCostComponents = exports.costSourceFromPricingProvenance = exports.getPricingCatalogInfo = exports.clearRegisteredModelPricing = exports.registerModelPricing = exports.isMovingModelAlias = exports.canonicalModelId = 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 = void 0;
16
- 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.providerFailureDiagnosisSchema = exports.providerRetryAfterSchema = exports.providerFailureEvidenceSchema = exports.providerAuthenticationEvidenceSchema = exports.quotaHistoryDailyBucketSchema = exports.quotaHistorySampleSchema = exports.quotaHistoryRuntimeProviderSchema = exports.providerQuotaMapSchema = exports.zaiProviderQuotaStateSchema = exports.codexProviderQuotaStateSchema = exports.claudeProviderQuotaStateSchema = exports.providerQuotaStateSchema = exports.runtimeQuotaProviderSchema = exports.quotaFailureDescriptorSchema = exports.peakHoursStateSchema = exports.codexResetCreditsSnapshotSchema = exports.codexResetCreditSchema = exports.quotaSourceSchema = exports.quotaProviderIdSchema = exports.quotaFailureKindSchema = exports.quotaExtraUsageSchema = exports.quotaLimitRowSchema = exports.quotaStateSchema = exports.quotaWindowSchema = exports.extractSessionEvents = exports.permissionModeSchema = exports.sessionEventSchema = exports.sessionMessageSchema = void 0;
17
- exports.resolveWorkspaceRoots = exports.TOOL_CATEGORIES = exports.classifyTool = exports.CODEX_ARCHIVED_SESSIONS_SUBDIR = exports.CODEX_SESSIONS_SUBDIR = exports.forceFileCredentialStore = exports.getCodexSessionsDirs = exports.syncCodexLiveStateAsync = exports.readStoredCodexAccount = exports.repairCodexCredentialStores = exports.inspectCodexCredentialStores = exports.fetchProviderServiceStatus = exports.parseCodexLoginStatus = exports.parseClaudeAuthStatus = exports.decodeCodexErrorInfo = exports.CODEX_ERROR_INFO_KINDS = exports.PROVIDER_RECOVERY_ACTIONS = exports.PROVIDER_FAILURE_EVIDENCE_SOURCES = exports.PROVIDER_FAILURE_CODES = exports.PROVIDER_CREDENTIAL_KINDS = exports.PROVIDER_AUTHENTICATION_STATES = exports.PROVIDER_AUTHENTICATION_SOURCES = exports.diagnoseProviderFailure = exports.mergeFailingToolWindows = exports.failingToolTrend = exports.FAILING_TOOL_TREND_ARROWS = exports.scopePeakHoursToSessionProvider = exports.PEAK_HOURS_DESCRIPTION = exports.PEAK_HOURS_CACHE_MS = exports.isClaudeCodeSessionProvider = exports.getScheduledPeakHoursState = exports.fetchPeakHoursStatus = exports.DEFAULT_PEAK_HOURS_TIMEOUT_MS = exports.createPeakHoursNotApplicableState = exports._resetPeakHoursCache = exports.runDoctor = exports.getSessionDiagnostics = exports.formatHealthReport = exports.toLegacyProviderStatus = exports.fetchOpenAIStatus = void 0;
8
+ exports.codexSpawnParentFromSource = exports.codexRolloutOrigin = exports.resolveCodexCallUsage = exports.normalizeCodexToolInput = exports.normalizeCodexToolName = exports.extractPatchFilePaths = exports.DEFAULT_MAX_TRACKED_TOOL_CALLS = exports.CodexRolloutParser = exports.parseDbPartData = exports.parseDbMessageData = exports.convertOpenCodeMessage = exports.detectPlanModeFromText = exports.normalizeToolInput = exports.normalizeToolName = exports.TRUNCATION_PATTERNS = exports.JsonlParser = exports.resolveRolloutPath = exports.readRolloutText = exports.readRolloutBuffer = exports.isZstdDecompressionAvailable = exports.isCompressedRolloutPath = exports.COMPRESSED_ROLLOUT_SUFFIX = exports.walkRolloutFilesAsync = exports.walkRolloutFiles = exports.findCodexRolloutFile = exports.CodexProvider = exports.getOpenCodeDataDir = exports.OpenCodeProvider = exports.ClaudeCodeProvider = exports.getAllDetectedProviders = exports.detectProvider = exports._resetProviderDetectionCache = exports.getObservedActivityReason = exports.derivePendingUserRequestV1 = exports.createProviderSessionAdapterV1 = exports.createSessionProviders = exports.SESSION_PROVIDER_IDS = exports.renderHandoffUrlTemplate = exports.addNote = exports.decisionFingerprint = exports.addDecision = exports.completeTask = exports.addTask = exports.withFileLockSync = exports.updateJsonStoreAtomicSync = exports.updateJsonStoreAtomic = exports.atomicWriteFileSync = exports.atomicWriteJsonSync = exports.atomicWriteJson = exports.readClaudeCodePlanFiles = void 0;
9
+ exports.OpenCodeDatabase = exports.discoverDebugLogs = exports.collapseDuplicates = exports.filterByLevel = exports.parseDebugLog = exports.readSessionPreviewAsync = exports.readSessionPreview = exports.listSessionPreviewsAsync = exports.listSessionPreviews = exports.readCodexHistory = exports.parseMcpToolName = exports.scanSubagentTraces = exports.findAllSessionsWithWorktrees = exports.discoverWorktreeSiblings = exports.resolveWorktreeMainRepo = exports.getAllClaudeProjectFolders = exports.decodeEncodedPath = exports.getMostRecentlyActiveSessionDir = exports.findSubdirectorySessionDirs = exports.findSessionFilesWithStats = exports.findSessionsInDirectory = exports.findAllClaudeSessions = exports.findActiveClaudeSession = exports.discoverSessionDirectory = exports.getClaudeSessionDirectory = exports.encodeClaudeWorkspacePath = exports.SESSION_ACTIVITY_STALENESS_MS = exports.SESSION_ACTIVITY_GRACE_PERIOD_MS = exports.refreshSessionActivityState = exports.detectSessionActivity = exports.classifySessionActivity = exports.subagentTokenTotals = exports.scanSessionSubagents = exports.readMainThreadTokenTotals = exports.combineSessionTokenTotals = exports.collectSessionTokenTotals = exports.addUsageToSubagent = exports.normalizeClaudeUsage = exports.dedupedRawClaudeUsage = exports.SYNTHETIC_MODEL = exports.ClaudeUsageDeduper = exports.readAgentMeta = exports.extractTaskInfo = exports.scanSubagentDir = exports.subagentActivityFromEvent = exports.parseCodexAgentMessageText = exports.isSubagentActivitySystemEvent = exports.describeSubagentActivity = exports.SUBAGENT_ACTIVITY_ORIGIN_KIND = exports.SUBAGENT_ACTIVITY_BLOCK_TYPE = void 0;
10
+ exports.parseLocalDateKey = exports.formatTokenCount = exports.formatLocalDateKey = exports.formatDurationMs = exports.addLocalDays = exports.verifyJsonlCheckpoint = exports.JsonlTailSymlinkError = exports.JSONL_TAIL_CHECKPOINT_VERSION = exports.DEFAULT_JSONL_TAIL_READ_BYTES = exports.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES = exports.createJsonlTail = exports.captureJsonlCheckpoint = exports.toFollowEvents = exports.resolveSessionPath = exports.createWatcher = exports.parseChangelog = exports.extractProposedPlanShared = exports.parsePlanMarkdownShared = exports.PlanExtractor = exports.segmentAssistantTurn = exports.reasoningSummary = exports.isAssistantTurnSubagentTool = exports.extractTurnSubagents = exports.assistantTurnEventsFromSessionEvents = exports.subagentDisplayLabel = exports.resolveSubagentDisplayState = exports.SUBAGENT_UNREPORTED_QUIET_MS = exports.SUBAGENT_PARENT_IDLE_ENDED_MS = exports.taskStatusFromEvent = exports.taskStatusFromAttachment = exports.taskNotificationFromEvent = exports.parseTaskNotification = exports.parseCodexSpawnLaunch = exports.parseAgentsStoppedNotice = exports.isTaskStatusSystemEvent = exports.isTaskNotificationSystemEvent = exports.isSubagentSpawnTool = exports.isCodexSubagentSpawnTool = exports.isAgentsKilledSystemEvent = exports.agentsStoppedNoticeFromEvent = exports.SUBAGENT_SPAWN_TOOL_NAMES = exports.readSessionContextSnapshot = exports.createSessionContextProjector = exports.calculateSessionContextPressure = exports.buildSessionContextSnapshot = exports.composeContext = exports.FilterEngine = exports.searchSessions = exports.isCodexSubagentThread = exports.CodexDatabase = void 0;
11
+ exports.deleteStoredCredentials = exports.writeActiveCredentials = exports.readClaudeCredentialStore = exports.readActiveCredentials = exports.openInBrowser = exports.parseTranscriptFromEvents = exports.parseTranscript = exports.generateHtmlReport = exports.formatCompactionLedger = exports.calculateCompactionLedger = exports.describeCostProvenance = exports.classifyCostProvenance = exports.calculateCodeImpact = exports.scoreSessionQuality = exports.calculateQualityTrend = exports.PatternExtractor = exports.HeatmapTracker = exports.FrequencyTracker = exports.readErrorHistory = exports.getTopFailingTools = exports.appendErrorHistory = exports.MAX_ERROR_HISTORY_SESSIONS = exports.ERROR_HISTORY_SCHEMA_VERSION = exports.getSnapshotPath = exports.MAX_SNAPSHOT_FILES = exports.pruneSnapshots = exports.isSnapshotValid = exports.deleteSnapshot = exports.loadSnapshot = exports.saveSnapshot = exports.SessionMonitor = exports.parseTodoDependencies = exports.EventAggregator = exports.getRandomPhrase = exports.PHRASE_CATEGORIES = exports.ALL_PHRASES = exports.HIGHLIGHT_CSS = exports.clearHighlightCache = exports.highlightEvent = exports.formatSessionJson = exports.formatSessionMarkdown = exports.formatSessionText = exports.classifyNoise = exports.shouldMergeWithPrevious = exports.classifyFollowEvent = exports.classifyMessage = exports.getSoftNoiseReason = exports.isHardNoiseFollowEvent = exports.isHardNoise = exports.formatToolSummary = void 0;
12
+ 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.cleanupAbandonedClaudeLogins = exports.syncClaudeLiveState = exports.switchToAccountAsync = exports.switchToAccount = exports.addCurrentAccount = exports.readActiveClaudeAccount = exports.writeAccountRegistry = exports.readAccountRegistry = exports.ensureDefaultAccounts = exports.compareCodexAuthFreshness = exports.codexRefreshFingerprint = exports.codexIdentitiesMatch = exports.readCodexAccessTokenExpiry = exports.readCodexLastRefresh = exports.readCodexAuthIdentity = exports.parseCodexAuthJson = exports.CLAUDE_REFRESH_TOKEN_LIFETIME_ESTIMATE_MS = exports.CLAUDE_ACCESS_TOKEN_LIFETIME_MS = exports.mergeClaudeLoginIntoLive = exports.claudeLoginOnly = exports.claudeRefreshFingerprint = exports.resolveClaudeRefreshExpiry = exports.isNewerClaudeCredential = exports.claudeCredentialFreshness = exports.parseClaudeCredentialBlob = exports.readClaudeMaxAccessTokenSync = exports.readClaudeMaxCredentialsRaw = exports.readClaudeMaxCredentials = exports.parseKeychainDump = exports.repairClaudeCredentialStores = exports.inspectClaudeCredentialStores = exports.getClaudeCredentialLedgerPath = exports.readClaudeCredentialLedger = exports.decideLiveClaudeWrite = exports.SIDEKICK_KEYCHAIN_COMMENT_PREFIX = exports.ClaudeCredentialWriteError = void 0;
13
+ exports.getDefaultClaudeHome = exports.getLiveClaudeHome = exports.readLiveClaudeIdentity = exports.readClaudeProfileIdentity = exports.isClaudeProfileAuthenticated = exports.CLAUDE_SECURESTORAGE_CONFIG_DIR_ENV = exports.buildClaudeChildEnv = exports.claudeKeychainAccountName = exports.claudeKeychainService = exports.claudeKeychainSuffix = exports.getClaudeConfigPath = exports.getClaudeProfileHome = exports.getClaudeProfilesDir = exports.onAccountsChanged = exports.getActiveAccountStatus = exports.ACCOUNT_PROVIDER_IDS = exports.removeSavedAccountProfile = exports.replaceSavedAccountProfiles = exports.setActiveSavedAccount = exports.upsertSavedAccountProfile = exports.getActiveSavedAccount = exports.listSavedAccountProfiles = exports.writeSavedAccountRegistry = exports.readSavedAccountRegistry = exports.getAccountsDir = exports.ACCOUNT_CONSUMER_REACHABILITY = exports.describeAccountConsumer = exports.detectRunningAccountConsumersSync = exports.detectRunningAccountConsumers = exports.findRunningProcessesSync = exports.findRunningProcesses = exports.keepAliveCommand = exports.refreshInactiveAccounts = exports.getAccountLaunchEnv = exports.getHealthSidecarPath = exports.readHealthSidecar = exports.listAccountsWithHealth = exports.getAccountHealth = exports.cleanupAbandonedLogins = exports.syncLiveAccountStateSync = exports.syncLiveAccountState = exports.getLastSwitchPath = exports.readLastSwitch = exports.discardAccountLogin = exports.resolveClaudeLoginCommand = exports.listAllAccounts = exports.getLastSwitch = exports.undoLastSwitch = exports.switchAccountAsync = exports.switchAccount = void 0;
14
+ exports.classifyQuotaFreshness = exports.resolveQuota = exports.writeQuotaSnapshot = exports.readQuotaSnapshot = exports.QuotaPoller = exports.describeQuotaFailure = exports.withQuotaProjections = exports.withClaudePlan = exports.quotaWindowShortLabel = exports.quotaWindowLabel = exports.quotaWindowHasData = exports.quotaWindowApplies = exports.quotaStateFromClaudeUsagePayload = exports.quotaSampleExpired = exports.projectQuotaWindow = exports.formatExtraUsage = exports.fetchQuota = exports.extraQuotaRows = exports.claudePlanLabel = exports.SEVEN_DAY_WINDOW_MS = exports.QUOTA_PROVIDER_IDS = exports.FIVE_HOUR_WINDOW_MS = exports.AutoSwitchController = exports.decideAutoSwitch = exports.DEFAULT_AUTO_SWITCH_CONFIG = exports.removeLauncher = exports.writeLauncher = exports.writeAccountLauncher = exports.CODEX_KEYRING_FIX_HINT = exports.getCodexCredentialStoreMode = exports.cleanupAbandonedCodexLogins = exports.syncCodexLiveState = exports.removeCodexAccount = exports.switchToCodexAccountAsync = exports.switchToCodexAccount = exports.finalizeCodexAccountAsync = exports.finalizeCodexAccount = exports.prepareCodexAccountAsync = exports.prepareCodexAccount = exports.getCodexExecutionEnv = exports.resolveSidekickCodexHome = exports.resolveActiveCodexAccount = exports.getActiveCodexAccount = exports.listCodexAccounts = exports.getSystemCodexHome = exports.getCodexMonitoringHomes = exports.getCodexProfileHome = exports.getCodexProfilesDir = exports.getClaudeProjectsDir = exports.isDefaultClaudeHome = void 0;
15
+ exports.isMovingModelAlias = exports.canonicalModelId = 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.quotaHistoryWindow = exports.getWorkspaceIdFromPath = exports.pruneQuotaHistory = exports.readQuotaHistoryDailyBuckets = exports.readQuotaHistoryRange = exports.appendQuotaHistorySample = exports.quotaFromStatuslinePayload = exports.parseClaudeStatuslinePayload = exports.evaluateQuotaThresholds = exports.describeQuotaThresholdAlert = exports.DEFAULT_QUOTA_THRESHOLDS = exports.QUOTA_FRESH_MAX_AGE_MS = exports.QUOTA_AGING_MAX_AGE_MS = exports.formatQuotaAge = void 0;
16
+ exports.claudeProviderQuotaStateSchema = exports.providerQuotaStateSchema = exports.runtimeQuotaProviderSchema = exports.quotaFailureDescriptorSchema = exports.peakHoursStateSchema = exports.codexResetCreditsSnapshotSchema = exports.codexResetCreditSchema = exports.quotaSourceSchema = exports.quotaProviderIdSchema = exports.quotaFailureKindSchema = exports.quotaExtraUsageSchema = exports.quotaLimitRowSchema = exports.quotaStateSchema = exports.quotaWindowSchema = exports.extractSessionEvents = exports.permissionModeSchema = exports.sessionEventSchema = exports.sessionMessageSchema = exports.messageUsageSchema = exports.ToolCallTracker = exports.extractToolCalls = exports.extractToolCall = exports.extractErrorMessage = exports.categorizeError = exports.gatherAssetsForCwd = exports.codexSessions = exports.readCodexAssets = exports.claudeSessions = exports.readClaudeAssets = exports.extractCommands = exports.extractFilePaths = exports.extractUrls = exports.extractTokenUsage = exports.getObservedContextWindowPath = exports.recordObservedContextWindow = exports.loadObservedContextWindows = exports.LITELLM_CATALOG_URL = exports.normalizeLiteLlmContextWindows = exports.normalizeLiteLlmCatalog = exports.hydratePricingCatalog = exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION = exports.resolveModelAlias = exports.registerModelAlias = exports.importResolvedModelCatalog = exports.exportResolvedModelCatalog = exports.mergeCostComponents = exports.costSourceFromPricingProvenance = exports.getPricingCatalogInfo = exports.clearRegisteredModelPricing = exports.registerModelPricing = void 0;
17
+ exports.diagnoseProviderFailure = exports.mergeFailingToolWindows = exports.failingToolTrend = exports.FAILING_TOOL_TREND_ARROWS = exports.scopePeakHoursToSessionProvider = exports.PEAK_HOURS_DESCRIPTION = exports.PEAK_HOURS_CACHE_MS = exports.isClaudeCodeSessionProvider = exports.getScheduledPeakHoursState = exports.fetchPeakHoursStatus = exports.DEFAULT_PEAK_HOURS_TIMEOUT_MS = exports.createPeakHoursNotApplicableState = exports._resetPeakHoursCache = exports.runDoctor = exports.getSessionDiagnostics = exports.formatHealthReport = exports.toLegacyProviderStatus = exports.fetchOpenAIStatus = exports.fetchProviderStatus = exports.assistantTurnToolRefSchema = exports.assistantTurnToolGroupStepSchema = exports.assistantTurnTimelineItemSchema = exports.assistantTurnSubagentStatusSchema = exports.assistantTurnSubagentSchema = exports.assistantTurnReasoningTimelineItemSchema = exports.assistantTurnProjectionSchema = exports.assistantTurnProcessStepSchema = exports.assistantTurnProcessSchema = exports.assistantTurnNarrationStepSchema = exports.assistantTurnEventTypeSchema = exports.assistantTurnEventSchema = exports.listAllAccountsResultSchema = exports.savedAccountProfileSchema = exports.accountEntrySchema = exports.accountLoginStatusSchema = exports.beginAccountLoginResultSchema = exports.accountManagerResultSchema = exports.accountProviderIdSchema = exports.activeAccountStatusSchema = exports.activeProviderAccountStatusSchema = exports.providerFailureDiagnosisSchema = exports.providerRetryAfterSchema = exports.providerFailureEvidenceSchema = exports.providerAuthenticationEvidenceSchema = exports.quotaHistoryDailyBucketSchema = exports.quotaHistorySampleSchema = exports.quotaHistoryRuntimeProviderSchema = exports.providerQuotaMapSchema = exports.zaiProviderQuotaStateSchema = exports.codexProviderQuotaStateSchema = void 0;
18
+ exports.resolveWorkspaceRoots = exports.TOOL_CATEGORIES = exports.classifyTool = exports.CODEX_ARCHIVED_SESSIONS_SUBDIR = exports.CODEX_SESSIONS_SUBDIR = exports.forceFileCredentialStore = exports.getCodexSessionsDirs = exports.syncCodexLiveStateAsync = exports.readStoredCodexAccount = exports.repairCodexCredentialStores = exports.inspectCodexCredentialStores = exports.fetchProviderServiceStatus = exports.parseCodexLoginStatus = exports.parseClaudeAuthStatus = exports.decodeCodexErrorInfo = exports.CODEX_ERROR_INFO_KINDS = exports.PROVIDER_RECOVERY_ACTIONS = exports.PROVIDER_FAILURE_EVIDENCE_SOURCES = exports.PROVIDER_FAILURE_CODES = exports.PROVIDER_CREDENTIAL_KINDS = exports.PROVIDER_AUTHENTICATION_STATES = exports.PROVIDER_AUTHENTICATION_SOURCES = void 0;
18
19
  var usageNormalization_1 = require("./usageNormalization");
19
20
  Object.defineProperty(exports, "normalizeProviderUsage", { enumerable: true, get: function () { return usageNormalization_1.normalizeProviderUsage; } });
20
21
  Object.defineProperty(exports, "extractNormalizedUsage", { enumerable: true, get: function () { return usageNormalization_1.extractNormalizedUsage; } });
@@ -193,6 +194,13 @@ Object.defineProperty(exports, "findCodexRolloutFile", { enumerable: true, get:
193
194
  var rolloutWalker_1 = require("./providers/rolloutWalker");
194
195
  Object.defineProperty(exports, "walkRolloutFiles", { enumerable: true, get: function () { return rolloutWalker_1.walkRolloutFiles; } });
195
196
  Object.defineProperty(exports, "walkRolloutFilesAsync", { enumerable: true, get: function () { return rolloutWalker_1.walkRolloutFilesAsync; } });
197
+ var compressedRollouts_1 = require("./providers/compressedRollouts");
198
+ Object.defineProperty(exports, "COMPRESSED_ROLLOUT_SUFFIX", { enumerable: true, get: function () { return compressedRollouts_1.COMPRESSED_ROLLOUT_SUFFIX; } });
199
+ Object.defineProperty(exports, "isCompressedRolloutPath", { enumerable: true, get: function () { return compressedRollouts_1.isCompressedRolloutPath; } });
200
+ Object.defineProperty(exports, "isZstdDecompressionAvailable", { enumerable: true, get: function () { return compressedRollouts_1.isZstdDecompressionAvailable; } });
201
+ Object.defineProperty(exports, "readRolloutBuffer", { enumerable: true, get: function () { return compressedRollouts_1.readRolloutBuffer; } });
202
+ Object.defineProperty(exports, "readRolloutText", { enumerable: true, get: function () { return compressedRollouts_1.readRolloutText; } });
203
+ Object.defineProperty(exports, "resolveRolloutPath", { enumerable: true, get: function () { return compressedRollouts_1.resolveRolloutPath; } });
196
204
  // Parsers — JSONL
197
205
  var jsonl_1 = require("./parsers/jsonl");
198
206
  Object.defineProperty(exports, "JsonlParser", { enumerable: true, get: function () { return jsonl_1.JsonlParser; } });
@@ -216,6 +224,13 @@ Object.defineProperty(exports, "resolveCodexCallUsage", { enumerable: true, get:
216
224
  var codexRolloutOrigin_1 = require("./parsers/codexRolloutOrigin");
217
225
  Object.defineProperty(exports, "codexRolloutOrigin", { enumerable: true, get: function () { return codexRolloutOrigin_1.codexRolloutOrigin; } });
218
226
  Object.defineProperty(exports, "codexSpawnParentFromSource", { enumerable: true, get: function () { return codexRolloutOrigin_1.codexSpawnParentFromSource; } });
227
+ var subagentActivity_1 = require("./subagentActivity");
228
+ Object.defineProperty(exports, "SUBAGENT_ACTIVITY_BLOCK_TYPE", { enumerable: true, get: function () { return subagentActivity_1.SUBAGENT_ACTIVITY_BLOCK_TYPE; } });
229
+ Object.defineProperty(exports, "SUBAGENT_ACTIVITY_ORIGIN_KIND", { enumerable: true, get: function () { return subagentActivity_1.SUBAGENT_ACTIVITY_ORIGIN_KIND; } });
230
+ Object.defineProperty(exports, "describeSubagentActivity", { enumerable: true, get: function () { return subagentActivity_1.describeSubagentActivity; } });
231
+ Object.defineProperty(exports, "isSubagentActivitySystemEvent", { enumerable: true, get: function () { return subagentActivity_1.isSubagentActivitySystemEvent; } });
232
+ Object.defineProperty(exports, "parseCodexAgentMessageText", { enumerable: true, get: function () { return subagentActivity_1.parseCodexAgentMessageText; } });
233
+ Object.defineProperty(exports, "subagentActivityFromEvent", { enumerable: true, get: function () { return subagentActivity_1.subagentActivityFromEvent; } });
219
234
  // Parsers — Subagent scanning
220
235
  var subagentScanner_1 = require("./parsers/subagentScanner");
221
236
  Object.defineProperty(exports, "scanSubagentDir", { enumerable: true, get: function () { return subagentScanner_1.scanSubagentDir; } });
@@ -284,6 +299,7 @@ var openCodeDatabase_1 = require("./providers/openCodeDatabase");
284
299
  Object.defineProperty(exports, "OpenCodeDatabase", { enumerable: true, get: function () { return openCodeDatabase_1.OpenCodeDatabase; } });
285
300
  var codexDatabase_1 = require("./providers/codexDatabase");
286
301
  Object.defineProperty(exports, "CodexDatabase", { enumerable: true, get: function () { return codexDatabase_1.CodexDatabase; } });
302
+ Object.defineProperty(exports, "isCodexSubagentThread", { enumerable: true, get: function () { return codexDatabase_1.isCodexSubagentThread; } });
287
303
  // Search
288
304
  var sessionSearch_1 = require("./search/sessionSearch");
289
305
  Object.defineProperty(exports, "searchSessions", { enumerable: true, get: function () { return sessionSearch_1.searchSessions; } });
@@ -297,6 +313,26 @@ Object.defineProperty(exports, "buildSessionContextSnapshot", { enumerable: true
297
313
  Object.defineProperty(exports, "calculateSessionContextPressure", { enumerable: true, get: function () { return sessionContext_1.calculateSessionContextPressure; } });
298
314
  Object.defineProperty(exports, "createSessionContextProjector", { enumerable: true, get: function () { return sessionContext_1.createSessionContextProjector; } });
299
315
  Object.defineProperty(exports, "readSessionContextSnapshot", { enumerable: true, get: function () { return sessionContext_1.readSessionContextSnapshot; } });
316
+ // Subagent spawns (`Agent` / `Task`) and background-task notifications
317
+ var subagentSpawn_1 = require("./subagentSpawn");
318
+ Object.defineProperty(exports, "SUBAGENT_SPAWN_TOOL_NAMES", { enumerable: true, get: function () { return subagentSpawn_1.SUBAGENT_SPAWN_TOOL_NAMES; } });
319
+ Object.defineProperty(exports, "agentsStoppedNoticeFromEvent", { enumerable: true, get: function () { return subagentSpawn_1.agentsStoppedNoticeFromEvent; } });
320
+ Object.defineProperty(exports, "isAgentsKilledSystemEvent", { enumerable: true, get: function () { return subagentSpawn_1.isAgentsKilledSystemEvent; } });
321
+ Object.defineProperty(exports, "isCodexSubagentSpawnTool", { enumerable: true, get: function () { return subagentSpawn_1.isCodexSubagentSpawnTool; } });
322
+ Object.defineProperty(exports, "isSubagentSpawnTool", { enumerable: true, get: function () { return subagentSpawn_1.isSubagentSpawnTool; } });
323
+ Object.defineProperty(exports, "isTaskNotificationSystemEvent", { enumerable: true, get: function () { return subagentSpawn_1.isTaskNotificationSystemEvent; } });
324
+ Object.defineProperty(exports, "isTaskStatusSystemEvent", { enumerable: true, get: function () { return subagentSpawn_1.isTaskStatusSystemEvent; } });
325
+ Object.defineProperty(exports, "parseAgentsStoppedNotice", { enumerable: true, get: function () { return subagentSpawn_1.parseAgentsStoppedNotice; } });
326
+ Object.defineProperty(exports, "parseCodexSpawnLaunch", { enumerable: true, get: function () { return subagentSpawn_1.parseCodexSpawnLaunch; } });
327
+ Object.defineProperty(exports, "parseTaskNotification", { enumerable: true, get: function () { return subagentSpawn_1.parseTaskNotification; } });
328
+ Object.defineProperty(exports, "taskNotificationFromEvent", { enumerable: true, get: function () { return subagentSpawn_1.taskNotificationFromEvent; } });
329
+ Object.defineProperty(exports, "taskStatusFromAttachment", { enumerable: true, get: function () { return subagentSpawn_1.taskStatusFromAttachment; } });
330
+ Object.defineProperty(exports, "taskStatusFromEvent", { enumerable: true, get: function () { return subagentSpawn_1.taskStatusFromEvent; } });
331
+ var subagentDisplayState_1 = require("./subagentDisplayState");
332
+ Object.defineProperty(exports, "SUBAGENT_PARENT_IDLE_ENDED_MS", { enumerable: true, get: function () { return subagentDisplayState_1.SUBAGENT_PARENT_IDLE_ENDED_MS; } });
333
+ Object.defineProperty(exports, "SUBAGENT_UNREPORTED_QUIET_MS", { enumerable: true, get: function () { return subagentDisplayState_1.SUBAGENT_UNREPORTED_QUIET_MS; } });
334
+ Object.defineProperty(exports, "resolveSubagentDisplayState", { enumerable: true, get: function () { return subagentDisplayState_1.resolveSubagentDisplayState; } });
335
+ Object.defineProperty(exports, "subagentDisplayLabel", { enumerable: true, get: function () { return subagentDisplayState_1.subagentDisplayLabel; } });
300
336
  // Assistant turn projection
301
337
  var assistantTurn_1 = require("./turns/assistantTurn");
302
338
  Object.defineProperty(exports, "assistantTurnEventsFromSessionEvents", { enumerable: true, get: function () { return assistantTurn_1.assistantTurnEventsFromSessionEvents; } });
@@ -318,11 +354,13 @@ Object.defineProperty(exports, "resolveSessionPath", { enumerable: true, get: fu
318
354
  var eventBridge_1 = require("./watchers/eventBridge");
319
355
  Object.defineProperty(exports, "toFollowEvents", { enumerable: true, get: function () { return eventBridge_1.toFollowEvents; } });
320
356
  var jsonlTail_1 = require("./watchers/jsonlTail");
357
+ Object.defineProperty(exports, "captureJsonlCheckpoint", { enumerable: true, get: function () { return jsonlTail_1.captureJsonlCheckpoint; } });
321
358
  Object.defineProperty(exports, "createJsonlTail", { enumerable: true, get: function () { return jsonlTail_1.createJsonlTail; } });
322
359
  Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_MAX_LINE_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES; } });
323
360
  Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_READ_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_READ_BYTES; } });
324
361
  Object.defineProperty(exports, "JSONL_TAIL_CHECKPOINT_VERSION", { enumerable: true, get: function () { return jsonlTail_1.JSONL_TAIL_CHECKPOINT_VERSION; } });
325
362
  Object.defineProperty(exports, "JsonlTailSymlinkError", { enumerable: true, get: function () { return jsonlTail_1.JsonlTailSymlinkError; } });
363
+ Object.defineProperty(exports, "verifyJsonlCheckpoint", { enumerable: true, get: function () { return jsonlTail_1.verifyJsonlCheckpoint; } });
326
364
  // Formatters
327
365
  var formatting_1 = require("./formatting");
328
366
  Object.defineProperty(exports, "addLocalDays", { enumerable: true, get: function () { return formatting_1.addLocalDays; } });
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveModelAlias = exports.registerModelAlias = exports.RESOLVED_MODEL_CATALOG_SCHEMA_VERSION = void 0;
4
4
  exports.exportResolvedModelCatalog = exportResolvedModelCatalog;
5
5
  exports.importResolvedModelCatalog = importResolvedModelCatalog;
6
+ const ownKey_1 = require("./ownKey");
6
7
  const modelContext_1 = require("./modelContext");
7
8
  const modelInfo_1 = require("./modelInfo");
8
9
  const modelAliases_1 = require("./modelAliases");
@@ -31,13 +32,13 @@ function exportResolvedModelCatalog(ids) {
31
32
  const selectedIds = normalizedIds(ids);
32
33
  for (const id of selectedIds) {
33
34
  const canonicalId = (0, modelAliases_1.resolveModelAlias)(id);
34
- models[id] = {
35
+ (0, ownKey_1.setOwnValue)(models, id, {
35
36
  id,
36
37
  canonicalId,
37
38
  contextWindow: (0, modelContext_1.resolveModelContextWindow)(id),
38
39
  // Registered prices are this realm's local configuration, never exported.
39
40
  pricing: (0, modelInfo_1.resolveModelPricing)(id, { includeRegistered: false }),
40
- };
41
+ });
41
42
  }
42
43
  const selectedCanonicalIds = new Set(Object.values(models).flatMap(({ id, canonicalId }) => [id, canonicalId]));
43
44
  const aliases = Object.fromEntries(Object.entries((0, modelAliases_1._getModelAliases)()).filter(([alias, canonicalId]) => selectedCanonicalIds.has(alias) || selectedCanonicalIds.has(canonicalId)));
@@ -82,9 +83,9 @@ function importResolvedModelCatalog(snapshot) {
82
83
  if (!id)
83
84
  continue;
84
85
  if (contextResolved)
85
- contexts[id] = context;
86
+ (0, ownKey_1.setOwnValue)(contexts, id, context);
86
87
  if (pricingResolved)
87
- prices[id] = pricing;
88
+ (0, ownKey_1.setOwnValue)(prices, id, pricing);
88
89
  }
89
90
  imported++;
90
91
  }
@@ -42,6 +42,7 @@ exports._getModelContextIds = _getModelContextIds;
42
42
  exports.resolveModelContextWindow = resolveModelContextWindow;
43
43
  exports.getModelContextWindowSize = getModelContextWindowSize;
44
44
  const modelAliases_1 = require("./modelAliases");
45
+ const ownKey_1 = require("./ownKey");
45
46
  /** Known model context window sizes (in tokens); current models verified 2026-09-05. */
46
47
  const MODEL_CONTEXT_SIZES = {
47
48
  // Published API limits verified 2026-10-30; GLM's API documents 1M even
@@ -158,7 +159,7 @@ function normalizeOverrides(overrides) {
158
159
  for (const [key, value] of Object.entries(overrides)) {
159
160
  if (!Number.isFinite(value) || value <= 0)
160
161
  continue;
161
- out[key.trim().toLowerCase()] = value;
162
+ (0, ownKey_1.setOwnValue)(out, key.trim().toLowerCase(), value);
162
163
  }
163
164
  return out;
164
165
  }
@@ -222,7 +223,7 @@ function _getModelContextIds() {
222
223
  // ── Lookup ──
223
224
  /** Exact match against one table. */
224
225
  function exactWindow(table, modelId) {
225
- const hit = table[modelId];
226
+ const hit = (0, ownKey_1.ownValue)(table, modelId);
226
227
  return hit === undefined ? null : hit;
227
228
  }
228
229
  function exactWindowMatch(table, modelId) {
@@ -270,7 +271,7 @@ function resolveModelContextWindow(modelId) {
270
271
  // Imported resolutions rank below local observed data: a window this realm
271
272
  // saw first-hand is fresher than a snapshot transferred from another realm.
272
273
  if (!observedExact) {
273
- const imported = importedTable[stripped] ?? importedTable[canonicalModelId];
274
+ const imported = (0, ownKey_1.ownValue)(importedTable, stripped) ?? (0, ownKey_1.ownValue)(importedTable, canonicalModelId);
274
275
  if (imported) {
275
276
  return { ...imported, modelId: rawModelId, canonicalModelId };
276
277
  }
package/dist/modelInfo.js CHANGED
@@ -51,6 +51,7 @@ exports.compareModelIds = compareModelIds;
51
51
  exports.sortModelIds = sortModelIds;
52
52
  const modelContext_1 = require("./modelContext");
53
53
  const modelAliases_1 = require("./modelAliases");
54
+ const ownKey_1 = require("./ownKey");
54
55
  var providerIds_1 = require("./providerIds");
55
56
  Object.defineProperty(exports, "MODEL_PROVIDER_IDS", { enumerable: true, get: function () { return providerIds_1.MODEL_PROVIDER_IDS; } });
56
57
  var formatting_1 = require("./formatting");
@@ -1108,11 +1109,11 @@ function resolveModelPricing(modelId, options) {
1108
1109
  });
1109
1110
  if (registered && !registered.entry.onlyIfMissing)
1110
1111
  return registeredResult(registered);
1111
- const imported = importedTable[rawId] ?? importedTable[aliasId];
1112
+ const imported = (0, ownKey_1.ownValue)(importedTable, rawId) ?? (0, ownKey_1.ownValue)(importedTable, aliasId);
1112
1113
  if (imported)
1113
1114
  return { ...imported, modelId, canonicalModelId: aliasId };
1114
1115
  for (const id of candidateIds) {
1115
- const exactOverride = overrideTable[id];
1116
+ const exactOverride = (0, ownKey_1.ownValue)(overrideTable, id);
1116
1117
  if (exactOverride) {
1117
1118
  return {
1118
1119
  modelId,
@@ -1128,7 +1129,7 @@ function resolveModelPricing(modelId, options) {
1128
1129
  }
1129
1130
  }
1130
1131
  for (const id of candidateIds) {
1131
- const exactStatic = PRICING_TABLE[id];
1132
+ const exactStatic = (0, ownKey_1.ownValue)(PRICING_TABLE, id);
1132
1133
  if (exactStatic) {
1133
1134
  return {
1134
1135
  modelId,
package/dist/node.d.ts CHANGED
@@ -43,6 +43,8 @@ export { findCodexRolloutFile } from './providers/codex';
43
43
  export { walkRolloutFiles, walkRolloutFilesAsync } from './providers/rolloutWalker';
44
44
  export type { RolloutFileInfo, WalkRolloutFilesOptions } from './providers/rolloutWalker';
45
45
  export type { FindCodexRolloutFileOptions } from './providers/codex';
46
+ export { COMPRESSED_ROLLOUT_SUFFIX, isCompressedRolloutPath, isZstdDecompressionAvailable, readRolloutBuffer, readRolloutText, resolveRolloutPath, } from './providers/compressedRollouts';
47
+ export type { ReadRolloutOptions } from './providers/compressedRollouts';
46
48
  export { readCodexHistory } from './parsers/codexHistory';
47
49
  export type { CodexHistoryEntry, ReadCodexHistoryOptions } from './parsers/codexHistory';
48
50
  export { listSessionPreviews, listSessionPreviewsAsync, readSessionPreview, readSessionPreviewAsync, } from './sessionPreviews';
@@ -67,6 +69,8 @@ export { parseClaudeAuthStatus, parseCodexLoginStatus } from './authStatus';
67
69
  export type { ParsedClaudeAuthStatus, ParsedCodexLoginStatus } from './authStatus';
68
70
  export { codexRolloutOrigin, codexSpawnParentFromSource } from './parsers/codexRolloutOrigin';
69
71
  export type { CodexRolloutOrigin } from './parsers/codexRolloutOrigin';
72
+ export { SUBAGENT_ACTIVITY_BLOCK_TYPE, SUBAGENT_ACTIVITY_ORIGIN_KIND, describeSubagentActivity, isSubagentActivitySystemEvent, parseCodexAgentMessageText, subagentActivityFromEvent, } from './subagentActivity';
73
+ export type { CodexAgentMessageText, SubagentActivity, SubagentActivityKind, } from './subagentActivity';
70
74
  export { getPricingCatalogInfo, registerModelPricing, clearRegisteredModelPricing, } from './modelInfo';
71
75
  export type { PricingCatalogInfo, PricingCatalogSource, RegisterModelPricingOptions, } from './modelInfo';
72
76
  export type { ProviderServiceSeverity, ProviderServiceComponent, ProviderServiceIncident, ProviderServiceStatusFailureReason, ObservedProviderServiceStatus, UnavailableProviderServiceStatus, ProviderServiceStatus, FetchProviderServiceStatusOptions, } from './providerServiceStatusTypes';
@@ -76,5 +80,5 @@ export type { ClassifyToolOptions, ToolCategory } from './toolCategory';
76
80
  export { resolveWorkspaceRoots } from './workspaceRoots';
77
81
  export type { ResolveWorkspaceRootsOptions, ResolvedWorkspaceRoots } from './workspaceRoots';
78
82
  export { discoverWorktreeSiblings, resolveWorktreeMainRepo } from './parsers/sessionPathResolver';
79
- export { createJsonlTail, DEFAULT_JSONL_TAIL_MAX_LINE_BYTES, DEFAULT_JSONL_TAIL_READ_BYTES, JSONL_TAIL_CHECKPOINT_VERSION, JsonlTailSymlinkError, } from './watchers/jsonlTail';
83
+ export { captureJsonlCheckpoint, createJsonlTail, DEFAULT_JSONL_TAIL_MAX_LINE_BYTES, DEFAULT_JSONL_TAIL_READ_BYTES, JSONL_TAIL_CHECKPOINT_VERSION, JsonlTailSymlinkError, verifyJsonlCheckpoint, } from './watchers/jsonlTail';
80
84
  export type { JsonlTail, JsonlTailCheckpoint, JsonlTailReadResult, JsonlTailEntry, JsonlTailRewritePolicy, JsonlTailBatch, JsonlTailLine, JsonlTailOptions, JsonlTailReset, JsonlTailResetReason, } from './watchers/jsonlTail';
package/dist/node.js CHANGED
@@ -8,8 +8,8 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.removeSessionSummary = exports.markFileImported = exports.isFileImported = exports.applySessionSummary = exports.subagentTokenTotals = exports.scanSessionSubagents = exports.readMainThreadTokenTotals = exports.combineSessionTokenTotals = exports.collectSessionTokenTotals = exports.pruneUsageCache = exports.getUsageCacheDir = exports.collectUsageEvents = exports.USAGE_CACHE_VERSION = exports.MAX_USAGE_CACHE_FILES = exports.findActiveBillingBlock = exports.computeBillingBlocks = exports.BILLING_BLOCK_DURATION_MS = exports.writeStateFile = exports.readStateFile = exports.quotaToStateFile = exports.getStateFilePath = exports.billingBlockToStateFile = exports.STATE_FILE_SCHEMA_VERSION = exports.STATE_FILE_NAME = exports.sessionFingerprintParts = exports.fingerprintString = exports.readSessionReportInputs = exports.readSessionFileStats = exports.providerContextSizeFn = exports.firstUserPrompt = exports.computeSessionFileStats = exports.isHumanPrompt = exports.humanPromptText = exports.HUMAN_CODEX_SOURCES = exports.HUMAN_CLAUDE_ENTRYPOINTS = exports.collectSessionPromptHistory = exports.findToolCallOrigins = exports.PROMPT_HISTORY_ORDINAL_MAX_RECORD_BYTES = exports.parsePromptHistoryCursor = exports.isPromptHistorySessionSettled = exports.collectPromptHistory = exports.readSessionTranscript = exports.listRecentSessions = exports.getObservedContextWindowPath = exports.recordObservedContextWindow = exports.loadObservedContextWindows = exports.LITELLM_CATALOG_URL = exports.normalizeLiteLlmContextWindows = exports.normalizeLiteLlmCatalog = exports.hydratePricingCatalog = void 0;
11
- exports.atomicWriteJson = exports.compareCodexAuthFreshness = exports.codexRefreshFingerprint = exports.codexIdentitiesMatch = exports.readCodexAccessTokenExpiry = exports.readCodexLastRefresh = exports.readCodexAuthIdentity = exports.parseCodexAuthJson = exports.CODEX_ARCHIVED_SESSIONS_SUBDIR = exports.CODEX_SESSIONS_SUBDIR = exports.forceFileCredentialStore = exports.getCodexCredentialStoreMode = exports.getCodexSessionsDirs = exports.getCodexExecutionEnv = exports.resolveSidekickCodexHome = exports.getCodexMonitoringHomes = exports.getSystemCodexHome = exports.getClaudeProjectsDir = exports.isDefaultClaudeHome = exports.getDefaultClaudeHome = exports.getLiveClaudeHome = exports.getClaudeSessionDirectory = exports.encodeClaudeWorkspacePath = exports.getDefaultConfigDir = exports.getConfigDirOverride = exports.getConfigDir = exports.CONFIG_DIR_ENV_VAR = exports.SYNTHETIC_MODEL = exports.createSessionProviders = exports.splitWatchedPath = exports.DirectoryListingCache = exports.fileFingerprintParts = exports.fileFingerprint = exports.observedSessionSourceFromProvider = exports.ObservedSessionCollector = exports.readSessionPreviewAsync = exports.readSessionPreview = exports.listSessionPreviewsAsync = exports.listSessionPreviews = exports.readCodexHistory = exports.walkRolloutFilesAsync = exports.walkRolloutFiles = exports.findCodexRolloutFile = exports.weekKey = exports.usageBucketKey = exports.summarizeUsageRows = exports.bucketUsage = exports.importSessionHistory = exports.ACTIVE_SESSION_MTIME_THRESHOLD_MS = exports.sessionSummaryFromStats = void 0;
12
- exports.JsonlTailSymlinkError = exports.JSONL_TAIL_CHECKPOINT_VERSION = exports.DEFAULT_JSONL_TAIL_READ_BYTES = exports.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES = exports.createJsonlTail = exports.resolveWorktreeMainRepo = exports.discoverWorktreeSiblings = exports.resolveWorkspaceRoots = exports.TOOL_CATEGORIES = exports.classifyTool = exports.fetchProviderServiceStatus = exports.clearRegisteredModelPricing = exports.registerModelPricing = exports.getPricingCatalogInfo = exports.codexSpawnParentFromSource = exports.codexRolloutOrigin = exports.parseCodexLoginStatus = exports.parseClaudeAuthStatus = exports.atomicWriteJsonSync = void 0;
11
+ exports.readCodexAuthIdentity = exports.parseCodexAuthJson = exports.CODEX_ARCHIVED_SESSIONS_SUBDIR = exports.CODEX_SESSIONS_SUBDIR = exports.forceFileCredentialStore = exports.getCodexCredentialStoreMode = exports.getCodexSessionsDirs = exports.getCodexExecutionEnv = exports.resolveSidekickCodexHome = exports.getCodexMonitoringHomes = exports.getSystemCodexHome = exports.getClaudeProjectsDir = exports.isDefaultClaudeHome = exports.getDefaultClaudeHome = exports.getLiveClaudeHome = exports.getClaudeSessionDirectory = exports.encodeClaudeWorkspacePath = exports.getDefaultConfigDir = exports.getConfigDirOverride = exports.getConfigDir = exports.CONFIG_DIR_ENV_VAR = exports.SYNTHETIC_MODEL = exports.createSessionProviders = exports.splitWatchedPath = exports.DirectoryListingCache = exports.fileFingerprintParts = exports.fileFingerprint = exports.observedSessionSourceFromProvider = exports.ObservedSessionCollector = exports.readSessionPreviewAsync = exports.readSessionPreview = exports.listSessionPreviewsAsync = exports.listSessionPreviews = exports.readCodexHistory = exports.resolveRolloutPath = exports.readRolloutText = exports.readRolloutBuffer = exports.isZstdDecompressionAvailable = exports.isCompressedRolloutPath = exports.COMPRESSED_ROLLOUT_SUFFIX = exports.walkRolloutFilesAsync = exports.walkRolloutFiles = exports.findCodexRolloutFile = exports.weekKey = exports.usageBucketKey = exports.summarizeUsageRows = exports.bucketUsage = exports.importSessionHistory = exports.ACTIVE_SESSION_MTIME_THRESHOLD_MS = exports.sessionSummaryFromStats = void 0;
12
+ exports.verifyJsonlCheckpoint = exports.JsonlTailSymlinkError = exports.JSONL_TAIL_CHECKPOINT_VERSION = exports.DEFAULT_JSONL_TAIL_READ_BYTES = exports.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES = exports.createJsonlTail = exports.captureJsonlCheckpoint = exports.resolveWorktreeMainRepo = exports.discoverWorktreeSiblings = exports.resolveWorkspaceRoots = exports.TOOL_CATEGORIES = exports.classifyTool = exports.fetchProviderServiceStatus = exports.clearRegisteredModelPricing = exports.registerModelPricing = exports.getPricingCatalogInfo = exports.subagentActivityFromEvent = exports.parseCodexAgentMessageText = exports.isSubagentActivitySystemEvent = exports.describeSubagentActivity = exports.SUBAGENT_ACTIVITY_ORIGIN_KIND = exports.SUBAGENT_ACTIVITY_BLOCK_TYPE = exports.codexSpawnParentFromSource = exports.codexRolloutOrigin = exports.parseCodexLoginStatus = exports.parseClaudeAuthStatus = exports.atomicWriteJsonSync = exports.atomicWriteJson = exports.compareCodexAuthFreshness = exports.codexRefreshFingerprint = exports.codexIdentitiesMatch = exports.readCodexAccessTokenExpiry = exports.readCodexLastRefresh = void 0;
13
13
  var pricingCatalog_1 = require("./pricingCatalog");
14
14
  Object.defineProperty(exports, "hydratePricingCatalog", { enumerable: true, get: function () { return pricingCatalog_1.hydratePricingCatalog; } });
15
15
  Object.defineProperty(exports, "normalizeLiteLlmCatalog", { enumerable: true, get: function () { return pricingCatalog_1.normalizeLiteLlmCatalog; } });
@@ -89,6 +89,13 @@ Object.defineProperty(exports, "findCodexRolloutFile", { enumerable: true, get:
89
89
  var rolloutWalker_1 = require("./providers/rolloutWalker");
90
90
  Object.defineProperty(exports, "walkRolloutFiles", { enumerable: true, get: function () { return rolloutWalker_1.walkRolloutFiles; } });
91
91
  Object.defineProperty(exports, "walkRolloutFilesAsync", { enumerable: true, get: function () { return rolloutWalker_1.walkRolloutFilesAsync; } });
92
+ var compressedRollouts_1 = require("./providers/compressedRollouts");
93
+ Object.defineProperty(exports, "COMPRESSED_ROLLOUT_SUFFIX", { enumerable: true, get: function () { return compressedRollouts_1.COMPRESSED_ROLLOUT_SUFFIX; } });
94
+ Object.defineProperty(exports, "isCompressedRolloutPath", { enumerable: true, get: function () { return compressedRollouts_1.isCompressedRolloutPath; } });
95
+ Object.defineProperty(exports, "isZstdDecompressionAvailable", { enumerable: true, get: function () { return compressedRollouts_1.isZstdDecompressionAvailable; } });
96
+ Object.defineProperty(exports, "readRolloutBuffer", { enumerable: true, get: function () { return compressedRollouts_1.readRolloutBuffer; } });
97
+ Object.defineProperty(exports, "readRolloutText", { enumerable: true, get: function () { return compressedRollouts_1.readRolloutText; } });
98
+ Object.defineProperty(exports, "resolveRolloutPath", { enumerable: true, get: function () { return compressedRollouts_1.resolveRolloutPath; } });
92
99
  var codexHistory_1 = require("./parsers/codexHistory");
93
100
  Object.defineProperty(exports, "readCodexHistory", { enumerable: true, get: function () { return codexHistory_1.readCodexHistory; } });
94
101
  var sessionPreviews_1 = require("./sessionPreviews");
@@ -151,6 +158,13 @@ Object.defineProperty(exports, "parseCodexLoginStatus", { enumerable: true, get:
151
158
  var codexRolloutOrigin_1 = require("./parsers/codexRolloutOrigin");
152
159
  Object.defineProperty(exports, "codexRolloutOrigin", { enumerable: true, get: function () { return codexRolloutOrigin_1.codexRolloutOrigin; } });
153
160
  Object.defineProperty(exports, "codexSpawnParentFromSource", { enumerable: true, get: function () { return codexRolloutOrigin_1.codexSpawnParentFromSource; } });
161
+ var subagentActivity_1 = require("./subagentActivity");
162
+ Object.defineProperty(exports, "SUBAGENT_ACTIVITY_BLOCK_TYPE", { enumerable: true, get: function () { return subagentActivity_1.SUBAGENT_ACTIVITY_BLOCK_TYPE; } });
163
+ Object.defineProperty(exports, "SUBAGENT_ACTIVITY_ORIGIN_KIND", { enumerable: true, get: function () { return subagentActivity_1.SUBAGENT_ACTIVITY_ORIGIN_KIND; } });
164
+ Object.defineProperty(exports, "describeSubagentActivity", { enumerable: true, get: function () { return subagentActivity_1.describeSubagentActivity; } });
165
+ Object.defineProperty(exports, "isSubagentActivitySystemEvent", { enumerable: true, get: function () { return subagentActivity_1.isSubagentActivitySystemEvent; } });
166
+ Object.defineProperty(exports, "parseCodexAgentMessageText", { enumerable: true, get: function () { return subagentActivity_1.parseCodexAgentMessageText; } });
167
+ Object.defineProperty(exports, "subagentActivityFromEvent", { enumerable: true, get: function () { return subagentActivity_1.subagentActivityFromEvent; } });
154
168
  var modelInfo_1 = require("./modelInfo");
155
169
  Object.defineProperty(exports, "getPricingCatalogInfo", { enumerable: true, get: function () { return modelInfo_1.getPricingCatalogInfo; } });
156
170
  Object.defineProperty(exports, "registerModelPricing", { enumerable: true, get: function () { return modelInfo_1.registerModelPricing; } });
@@ -169,8 +183,10 @@ Object.defineProperty(exports, "discoverWorktreeSiblings", { enumerable: true, g
169
183
  Object.defineProperty(exports, "resolveWorktreeMainRepo", { enumerable: true, get: function () { return sessionPathResolver_2.resolveWorktreeMainRepo; } });
170
184
  // Bounded JSONL tail reader
171
185
  var jsonlTail_1 = require("./watchers/jsonlTail");
186
+ Object.defineProperty(exports, "captureJsonlCheckpoint", { enumerable: true, get: function () { return jsonlTail_1.captureJsonlCheckpoint; } });
172
187
  Object.defineProperty(exports, "createJsonlTail", { enumerable: true, get: function () { return jsonlTail_1.createJsonlTail; } });
173
188
  Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_MAX_LINE_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES; } });
174
189
  Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_READ_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_READ_BYTES; } });
175
190
  Object.defineProperty(exports, "JSONL_TAIL_CHECKPOINT_VERSION", { enumerable: true, get: function () { return jsonlTail_1.JSONL_TAIL_CHECKPOINT_VERSION; } });
176
191
  Object.defineProperty(exports, "JsonlTailSymlinkError", { enumerable: true, get: function () { return jsonlTail_1.JsonlTailSymlinkError; } });
192
+ Object.defineProperty(exports, "verifyJsonlCheckpoint", { enumerable: true, get: function () { return jsonlTail_1.verifyJsonlCheckpoint; } });
@@ -72,6 +72,7 @@ exports.recordObservedContextWindow = recordObservedContextWindow;
72
72
  const node_fs_1 = require("node:fs");
73
73
  const path = __importStar(require("node:path"));
74
74
  const modelContext_1 = require("./modelContext");
75
+ const ownKey_1 = require("./ownKey");
75
76
  const paths_1 = require("./paths");
76
77
  const atomic_1 = require("./writers/atomic");
77
78
  // ── Constants ──
@@ -120,7 +121,7 @@ function toOverrideMap(store, now = Date.now()) {
120
121
  const observedAt = typeof entry.observedAt === 'string' ? Date.parse(entry.observedAt) : NaN;
121
122
  if (Number.isFinite(observedAt) && now - observedAt > exports.OBSERVED_CONTEXT_WINDOW_TTL_MS)
122
123
  continue;
123
- out[modelId] = window;
124
+ (0, ownKey_1.setOwnValue)(out, modelId, window);
124
125
  }
125
126
  return out;
126
127
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Own-property lookups for plain-object tables indexed by external strings.
3
+ *
4
+ * `table[key]` also finds inherited members, so a model id, tool name, or
5
+ * error code such as `constructor`, `toString`, or `__proto__` would return an
6
+ * `Object.prototype` member instead of `undefined`.
7
+ *
8
+ * @module ownKey
9
+ */
10
+ /** The value stored under `key` in `table` itself, or `undefined`. */
11
+ export declare function ownValue<T>(table: Readonly<Record<string, T>>, key: string): T | undefined;
12
+ /**
13
+ * Store `value` as an own, enumerable property, even for `__proto__`, which a
14
+ * plain assignment would treat as a prototype change.
15
+ */
16
+ export declare function setOwnValue<T>(table: Record<string, T>, key: string, value: T): void;
package/dist/ownKey.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * Own-property lookups for plain-object tables indexed by external strings.
4
+ *
5
+ * `table[key]` also finds inherited members, so a model id, tool name, or
6
+ * error code such as `constructor`, `toString`, or `__proto__` would return an
7
+ * `Object.prototype` member instead of `undefined`.
8
+ *
9
+ * @module ownKey
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ownValue = ownValue;
13
+ exports.setOwnValue = setOwnValue;
14
+ const hasOwn = Object.prototype.hasOwnProperty;
15
+ /** The value stored under `key` in `table` itself, or `undefined`. */
16
+ function ownValue(table, key) {
17
+ return hasOwn.call(table, key) ? table[key] : undefined;
18
+ }
19
+ /**
20
+ * Store `value` as an own, enumerable property, even for `__proto__`, which a
21
+ * plain assignment would treat as a prototype change.
22
+ */
23
+ function setOwnValue(table, key, value) {
24
+ Object.defineProperty(table, key, {
25
+ value,
26
+ enumerable: true,
27
+ writable: true,
28
+ configurable: true,
29
+ });
30
+ }