sidekick-shared 0.28.3 → 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +86 -0
- package/README.md +188 -27
- package/dist/aggregation/EventAggregator.d.ts +19 -0
- package/dist/aggregation/EventAggregator.js +174 -35
- package/dist/aggregation/snapshot.d.ts +37 -8
- package/dist/aggregation/snapshot.js +31 -9
- package/dist/aggregation/types.d.ts +13 -0
- package/dist/authStatus.d.ts +54 -0
- package/dist/authStatus.js +91 -0
- package/dist/browser.d.ts +16 -6
- package/dist/browser.js +24 -2
- package/dist/codex.d.ts +23 -0
- package/dist/codex.js +44 -0
- package/dist/codexProfiles.d.ts +1 -0
- package/dist/codexProfiles.js +8 -11
- package/dist/context/sessionContext.js +4 -0
- package/dist/esm/aggregation/EventAggregator.js +174 -35
- package/dist/esm/aggregation/snapshot.js +31 -9
- package/dist/esm/authStatus.js +87 -0
- package/dist/esm/browser.js +5 -2
- package/dist/esm/codex.js +18 -0
- package/dist/esm/codexProfiles.js +8 -11
- package/dist/esm/context/sessionContext.js +4 -0
- package/dist/esm/formatters/toolSummary.js +4 -1
- package/dist/esm/formatting.js +10 -1
- package/dist/esm/index.js +11 -6
- package/dist/esm/modelCatalog.js +7 -5
- package/dist/esm/modelContext.js +4 -3
- package/dist/esm/modelInfo.js +425 -47
- package/dist/esm/node.js +9 -3
- package/dist/esm/observedContextWindows.js +2 -1
- package/dist/esm/ownKey.js +26 -0
- package/dist/esm/parsers/codexParser.js +351 -54
- package/dist/esm/parsers/codexRolloutOrigin.js +107 -0
- package/dist/esm/parsers/openCodeParser.js +85 -22
- package/dist/esm/parsers/subagentScanner.js +33 -12
- package/dist/esm/parsers/subagentTraceParser.js +97 -37
- package/dist/esm/pricing.js +18 -0
- package/dist/esm/pricingCatalog.js +17 -9
- package/dist/esm/promptHistory.js +66 -4
- package/dist/esm/providerFailure.js +124 -3
- package/dist/esm/providers/claudeCode.js +10 -2
- package/dist/esm/providers/codex.js +84 -62
- package/dist/esm/providers/codexDatabase.js +3 -19
- package/dist/esm/providers/codexRollouts.js +24 -1
- package/dist/esm/providers/openCode.js +9 -17
- package/dist/esm/report/htmlReportGenerator.js +42 -5
- package/dist/esm/report/transcriptParser.js +13 -11
- package/dist/esm/schemas/providerFailure.js +3 -1
- package/dist/esm/schemas/sessionEvent.js +35 -14
- package/dist/esm/schemas/transcript.js +4 -0
- package/dist/esm/sessionPromptHistory.js +2 -2
- package/dist/esm/statusline/payload.js +9 -0
- package/dist/esm/subagentSpawn.js +163 -0
- package/dist/esm/testing/credentialGuard.js +87 -5
- package/dist/esm/toolCallOrigins.js +310 -0
- package/dist/esm/transcript.js +46 -3
- package/dist/esm/turns/assistantTurn.js +3 -2
- package/dist/esm/usage/claudeUsageDedupe.js +68 -0
- package/dist/esm/usage/usageEvents.js +146 -17
- package/dist/esm/usage/usageReports.js +39 -6
- package/dist/esm/watchers/eventBridge.js +15 -0
- package/dist/esm/watchers/factory.js +5 -3
- package/dist/esm/watchers/jsonlTail.js +442 -58
- package/dist/esm/watchers/jsonlWatcher.js +51 -4
- package/dist/esm/watchers/providerReaderWatcher.js +13 -0
- package/dist/esm/zaiQuota.js +2 -1
- package/dist/formatters/toolSummary.js +4 -1
- package/dist/formatting.d.ts +26 -1
- package/dist/formatting.js +11 -1
- package/dist/index.d.ts +22 -11
- package/dist/index.js +44 -12
- package/dist/modelCatalog.js +7 -5
- package/dist/modelContext.js +4 -3
- package/dist/modelInfo.d.ts +185 -16
- package/dist/modelInfo.js +434 -49
- package/dist/node.d.ts +16 -5
- package/dist/node.js +33 -2
- package/dist/observedContextWindows.js +2 -1
- package/dist/ownKey.d.ts +16 -0
- package/dist/ownKey.js +30 -0
- package/dist/parsers/codexParser.d.ts +118 -0
- package/dist/parsers/codexParser.js +352 -54
- package/dist/parsers/codexRolloutOrigin.d.ts +49 -0
- package/dist/parsers/codexRolloutOrigin.js +111 -0
- package/dist/parsers/openCodeParser.d.ts +38 -0
- package/dist/parsers/openCodeParser.js +88 -22
- package/dist/parsers/subagentScanner.d.ts +19 -6
- package/dist/parsers/subagentScanner.js +33 -12
- package/dist/parsers/subagentTraceParser.d.ts +25 -5
- package/dist/parsers/subagentTraceParser.js +97 -37
- package/dist/pricing.d.ts +22 -0
- package/dist/pricing.js +50 -0
- package/dist/pricingCatalog.d.ts +10 -0
- package/dist/pricingCatalog.js +16 -8
- package/dist/promptHistory.d.ts +65 -4
- package/dist/promptHistory.js +68 -5
- package/dist/providerFailure.d.ts +44 -0
- package/dist/providerFailure.js +126 -4
- package/dist/providers/claudeCode.js +9 -1
- package/dist/providers/codex.d.ts +3 -22
- package/dist/providers/codex.js +85 -64
- package/dist/providers/codexDatabase.d.ts +3 -2
- package/dist/providers/codexDatabase.js +4 -22
- package/dist/providers/codexRollouts.d.ts +22 -0
- package/dist/providers/codexRollouts.js +24 -0
- package/dist/providers/openCode.js +8 -16
- package/dist/providers/types.d.ts +14 -0
- package/dist/report/htmlReportGenerator.js +42 -5
- package/dist/report/transcriptParser.d.ts +10 -1
- package/dist/report/transcriptParser.js +13 -11
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/providerFailure.d.ts +39 -0
- package/dist/schemas/providerFailure.js +2 -0
- package/dist/schemas/sessionEvent.d.ts +27 -10
- package/dist/schemas/sessionEvent.js +35 -14
- package/dist/schemas/transcript.d.ts +2 -0
- package/dist/schemas/transcript.js +4 -0
- package/dist/sessionPromptHistory.d.ts +7 -1
- package/dist/sessionPromptHistory.js +1 -1
- package/dist/statusline/payload.d.ts +10 -0
- package/dist/statusline/payload.js +14 -0
- package/dist/subagentSpawn.d.ts +80 -0
- package/dist/subagentSpawn.js +174 -0
- package/dist/testing/credentialGuard.d.ts +14 -0
- package/dist/testing/credentialGuard.js +87 -5
- package/dist/toolCallOrigins.d.ts +70 -0
- package/dist/toolCallOrigins.js +346 -0
- package/dist/transcript.d.ts +12 -0
- package/dist/transcript.js +46 -3
- package/dist/turns/assistantTurn.d.ts +1 -0
- package/dist/turns/assistantTurn.js +3 -2
- package/dist/types/opencode.d.ts +2 -0
- package/dist/usage/claudeUsageDedupe.d.ts +31 -0
- package/dist/usage/claudeUsageDedupe.js +68 -0
- package/dist/usage/usageEvents.d.ts +54 -6
- package/dist/usage/usageEvents.js +146 -17
- package/dist/usage/usageReports.d.ts +35 -4
- package/dist/usage/usageReports.js +39 -6
- package/dist/watchers/eventBridge.js +15 -0
- package/dist/watchers/factory.d.ts +6 -0
- package/dist/watchers/factory.js +5 -3
- package/dist/watchers/jsonlTail.d.ts +124 -4
- package/dist/watchers/jsonlTail.js +446 -59
- package/dist/watchers/jsonlWatcher.d.ts +18 -1
- package/dist/watchers/jsonlWatcher.js +50 -3
- package/dist/watchers/providerReaderWatcher.d.ts +7 -0
- package/dist/watchers/providerReaderWatcher.js +13 -0
- package/dist/watchers/types.d.ts +12 -0
- package/dist/zaiQuota.js +2 -1
- package/package.json +41 -1
package/dist/node.d.ts
CHANGED
|
@@ -10,7 +10,9 @@ export type { HydrateOptions, HydrateResult } from './pricingCatalog';
|
|
|
10
10
|
export { loadObservedContextWindows, recordObservedContextWindow, getObservedContextWindowPath, } from './observedContextWindows';
|
|
11
11
|
export type { ObservedContextWindowOptions, ObservedContextWindowStore, } from './observedContextWindows';
|
|
12
12
|
export { listRecentSessions, readSessionTranscript } from './sessionTranscripts';
|
|
13
|
-
export { collectPromptHistory, isPromptHistorySessionSettled, parsePromptHistoryCursor, } from './promptHistory';
|
|
13
|
+
export { collectPromptHistory, isPromptHistorySessionSettled, parsePromptHistoryCursor, PROMPT_HISTORY_ORDINAL_MAX_RECORD_BYTES, } from './promptHistory';
|
|
14
|
+
export { findToolCallOrigins } from './toolCallOrigins';
|
|
15
|
+
export type { FindToolCallOriginsOptions, ToolCallOrigin } from './toolCallOrigins';
|
|
14
16
|
export type { CollectPromptHistoryOptions, PromptHistoryAnswerState, PromptHistoryBound, PromptHistoryBounds, PromptHistoryCursor, PromptHistoryCursorSession, PromptHistoryEntry, PromptHistoryExclusion, PromptHistoryMetadataStatus, PromptHistoryPendingPrompt, PromptHistoryProvider, PromptHistoryResult, PromptHistoryResumeState, PromptHistoryStats, PromptHistoryUsage, } from './promptHistory';
|
|
15
17
|
export { collectSessionPromptHistory } from './sessionPromptHistory';
|
|
16
18
|
export type { CollectSessionPromptHistoryOptions, PromptHistorySession, PromptHistorySessionPrompt, PromptHistorySessionRef, SessionPromptHistoryBound, SessionPromptHistoryBounds, SessionPromptHistoryInclude, SessionPromptHistoryResult, SessionPromptHistoryStats, } from './sessionPromptHistory';
|
|
@@ -56,8 +58,17 @@ export { SYNTHETIC_MODEL } from './usage/claudeUsageDedupe';
|
|
|
56
58
|
export { CONFIG_DIR_ENV_VAR, getConfigDir, getConfigDirOverride, getDefaultConfigDir, } from './paths';
|
|
57
59
|
export { encodeWorkspacePath as encodeClaudeWorkspacePath, getSessionDirectory as getClaudeSessionDirectory, } from './parsers/sessionPathResolver';
|
|
58
60
|
export { getLiveClaudeHome, getDefaultClaudeHome, isDefaultClaudeHome, getClaudeProjectsDir, } from './claudePaths';
|
|
59
|
-
export { getSystemCodexHome, getCodexMonitoringHomes, resolveSidekickCodexHome, getCodexExecutionEnv, getCodexSessionsDirs, CODEX_SESSIONS_SUBDIR, CODEX_ARCHIVED_SESSIONS_SUBDIR, } from './codexPaths';
|
|
60
|
-
export type { CodexSessionsDirsOptions } from './codexPaths';
|
|
61
|
+
export { getSystemCodexHome, getCodexMonitoringHomes, resolveSidekickCodexHome, getCodexExecutionEnv, getCodexSessionsDirs, getCodexCredentialStoreMode, forceFileCredentialStore, CODEX_SESSIONS_SUBDIR, CODEX_ARCHIVED_SESSIONS_SUBDIR, } from './codexPaths';
|
|
62
|
+
export type { CodexCredentialStoreMode, CodexSessionsDirsOptions } from './codexPaths';
|
|
63
|
+
export { parseAuthJson as parseCodexAuthJson, readAuthIdentityFromRaw as readCodexAuthIdentity, readLastRefresh as readCodexLastRefresh, readAccessTokenExpiry as readCodexAccessTokenExpiry, identitiesMatch as codexIdentitiesMatch, codexRefreshFingerprint, compareCodexAuthFreshness, } from './codexAuth';
|
|
64
|
+
export type { CodexAuthIdentity, CodexAuthJsonFile } from './codexAuth';
|
|
65
|
+
export { atomicWriteJson, atomicWriteJsonSync } from './writers/atomic';
|
|
66
|
+
export { parseClaudeAuthStatus, parseCodexLoginStatus } from './authStatus';
|
|
67
|
+
export type { ParsedClaudeAuthStatus, ParsedCodexLoginStatus } from './authStatus';
|
|
68
|
+
export { codexRolloutOrigin, codexSpawnParentFromSource } from './parsers/codexRolloutOrigin';
|
|
69
|
+
export type { CodexRolloutOrigin } from './parsers/codexRolloutOrigin';
|
|
70
|
+
export { getPricingCatalogInfo, registerModelPricing, clearRegisteredModelPricing, } from './modelInfo';
|
|
71
|
+
export type { PricingCatalogInfo, PricingCatalogSource, RegisterModelPricingOptions, } from './modelInfo';
|
|
61
72
|
export type { ProviderServiceSeverity, ProviderServiceComponent, ProviderServiceIncident, ProviderServiceStatusFailureReason, ObservedProviderServiceStatus, UnavailableProviderServiceStatus, ProviderServiceStatus, FetchProviderServiceStatusOptions, } from './providerServiceStatusTypes';
|
|
62
73
|
export { fetchProviderServiceStatus } from './providerServiceStatus';
|
|
63
74
|
export { classifyTool, TOOL_CATEGORIES } from './toolCategory';
|
|
@@ -65,5 +76,5 @@ export type { ClassifyToolOptions, ToolCategory } from './toolCategory';
|
|
|
65
76
|
export { resolveWorkspaceRoots } from './workspaceRoots';
|
|
66
77
|
export type { ResolveWorkspaceRootsOptions, ResolvedWorkspaceRoots } from './workspaceRoots';
|
|
67
78
|
export { discoverWorktreeSiblings, resolveWorktreeMainRepo } from './parsers/sessionPathResolver';
|
|
68
|
-
export { createJsonlTail, DEFAULT_JSONL_TAIL_MAX_LINE_BYTES, DEFAULT_JSONL_TAIL_READ_BYTES, } from './watchers/jsonlTail';
|
|
69
|
-
export type { JsonlTail, JsonlTailBatch, JsonlTailLine, JsonlTailOptions, JsonlTailReset, JsonlTailResetReason, } from './watchers/jsonlTail';
|
|
79
|
+
export { captureJsonlCheckpoint, createJsonlTail, DEFAULT_JSONL_TAIL_MAX_LINE_BYTES, DEFAULT_JSONL_TAIL_READ_BYTES, JSONL_TAIL_CHECKPOINT_VERSION, JsonlTailSymlinkError, verifyJsonlCheckpoint, } from './watchers/jsonlTail';
|
|
80
|
+
export type { JsonlTail, JsonlTailCheckpoint, JsonlTailReadResult, JsonlTailEntry, JsonlTailRewritePolicy, JsonlTailBatch, JsonlTailLine, JsonlTailOptions, JsonlTailReset, JsonlTailResetReason, } from './watchers/jsonlTail';
|
package/dist/node.js
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
* for browser bundles — use `sidekick-shared/browser` there.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
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.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.codexSpawnParentFromSource = exports.codexRolloutOrigin = exports.parseCodexLoginStatus = exports.parseClaudeAuthStatus = exports.atomicWriteJsonSync = void 0;
|
|
12
13
|
var pricingCatalog_1 = require("./pricingCatalog");
|
|
13
14
|
Object.defineProperty(exports, "hydratePricingCatalog", { enumerable: true, get: function () { return pricingCatalog_1.hydratePricingCatalog; } });
|
|
14
15
|
Object.defineProperty(exports, "normalizeLiteLlmCatalog", { enumerable: true, get: function () { return pricingCatalog_1.normalizeLiteLlmCatalog; } });
|
|
@@ -25,6 +26,9 @@ var promptHistory_1 = require("./promptHistory");
|
|
|
25
26
|
Object.defineProperty(exports, "collectPromptHistory", { enumerable: true, get: function () { return promptHistory_1.collectPromptHistory; } });
|
|
26
27
|
Object.defineProperty(exports, "isPromptHistorySessionSettled", { enumerable: true, get: function () { return promptHistory_1.isPromptHistorySessionSettled; } });
|
|
27
28
|
Object.defineProperty(exports, "parsePromptHistoryCursor", { enumerable: true, get: function () { return promptHistory_1.parsePromptHistoryCursor; } });
|
|
29
|
+
Object.defineProperty(exports, "PROMPT_HISTORY_ORDINAL_MAX_RECORD_BYTES", { enumerable: true, get: function () { return promptHistory_1.PROMPT_HISTORY_ORDINAL_MAX_RECORD_BYTES; } });
|
|
30
|
+
var toolCallOrigins_1 = require("./toolCallOrigins");
|
|
31
|
+
Object.defineProperty(exports, "findToolCallOrigins", { enumerable: true, get: function () { return toolCallOrigins_1.findToolCallOrigins; } });
|
|
28
32
|
var sessionPromptHistory_1 = require("./sessionPromptHistory");
|
|
29
33
|
Object.defineProperty(exports, "collectSessionPromptHistory", { enumerable: true, get: function () { return sessionPromptHistory_1.collectSessionPromptHistory; } });
|
|
30
34
|
var humanPrompt_1 = require("./humanPrompt");
|
|
@@ -126,8 +130,31 @@ Object.defineProperty(exports, "getCodexMonitoringHomes", { enumerable: true, ge
|
|
|
126
130
|
Object.defineProperty(exports, "resolveSidekickCodexHome", { enumerable: true, get: function () { return codexPaths_1.resolveSidekickCodexHome; } });
|
|
127
131
|
Object.defineProperty(exports, "getCodexExecutionEnv", { enumerable: true, get: function () { return codexPaths_1.getCodexExecutionEnv; } });
|
|
128
132
|
Object.defineProperty(exports, "getCodexSessionsDirs", { enumerable: true, get: function () { return codexPaths_1.getCodexSessionsDirs; } });
|
|
133
|
+
Object.defineProperty(exports, "getCodexCredentialStoreMode", { enumerable: true, get: function () { return codexPaths_1.getCodexCredentialStoreMode; } });
|
|
134
|
+
Object.defineProperty(exports, "forceFileCredentialStore", { enumerable: true, get: function () { return codexPaths_1.forceFileCredentialStore; } });
|
|
129
135
|
Object.defineProperty(exports, "CODEX_SESSIONS_SUBDIR", { enumerable: true, get: function () { return codexPaths_1.CODEX_SESSIONS_SUBDIR; } });
|
|
130
136
|
Object.defineProperty(exports, "CODEX_ARCHIVED_SESSIONS_SUBDIR", { enumerable: true, get: function () { return codexPaths_1.CODEX_ARCHIVED_SESSIONS_SUBDIR; } });
|
|
137
|
+
var codexAuth_1 = require("./codexAuth");
|
|
138
|
+
Object.defineProperty(exports, "parseCodexAuthJson", { enumerable: true, get: function () { return codexAuth_1.parseAuthJson; } });
|
|
139
|
+
Object.defineProperty(exports, "readCodexAuthIdentity", { enumerable: true, get: function () { return codexAuth_1.readAuthIdentityFromRaw; } });
|
|
140
|
+
Object.defineProperty(exports, "readCodexLastRefresh", { enumerable: true, get: function () { return codexAuth_1.readLastRefresh; } });
|
|
141
|
+
Object.defineProperty(exports, "readCodexAccessTokenExpiry", { enumerable: true, get: function () { return codexAuth_1.readAccessTokenExpiry; } });
|
|
142
|
+
Object.defineProperty(exports, "codexIdentitiesMatch", { enumerable: true, get: function () { return codexAuth_1.identitiesMatch; } });
|
|
143
|
+
Object.defineProperty(exports, "codexRefreshFingerprint", { enumerable: true, get: function () { return codexAuth_1.codexRefreshFingerprint; } });
|
|
144
|
+
Object.defineProperty(exports, "compareCodexAuthFreshness", { enumerable: true, get: function () { return codexAuth_1.compareCodexAuthFreshness; } });
|
|
145
|
+
var atomic_1 = require("./writers/atomic");
|
|
146
|
+
Object.defineProperty(exports, "atomicWriteJson", { enumerable: true, get: function () { return atomic_1.atomicWriteJson; } });
|
|
147
|
+
Object.defineProperty(exports, "atomicWriteJsonSync", { enumerable: true, get: function () { return atomic_1.atomicWriteJsonSync; } });
|
|
148
|
+
var authStatus_1 = require("./authStatus");
|
|
149
|
+
Object.defineProperty(exports, "parseClaudeAuthStatus", { enumerable: true, get: function () { return authStatus_1.parseClaudeAuthStatus; } });
|
|
150
|
+
Object.defineProperty(exports, "parseCodexLoginStatus", { enumerable: true, get: function () { return authStatus_1.parseCodexLoginStatus; } });
|
|
151
|
+
var codexRolloutOrigin_1 = require("./parsers/codexRolloutOrigin");
|
|
152
|
+
Object.defineProperty(exports, "codexRolloutOrigin", { enumerable: true, get: function () { return codexRolloutOrigin_1.codexRolloutOrigin; } });
|
|
153
|
+
Object.defineProperty(exports, "codexSpawnParentFromSource", { enumerable: true, get: function () { return codexRolloutOrigin_1.codexSpawnParentFromSource; } });
|
|
154
|
+
var modelInfo_1 = require("./modelInfo");
|
|
155
|
+
Object.defineProperty(exports, "getPricingCatalogInfo", { enumerable: true, get: function () { return modelInfo_1.getPricingCatalogInfo; } });
|
|
156
|
+
Object.defineProperty(exports, "registerModelPricing", { enumerable: true, get: function () { return modelInfo_1.registerModelPricing; } });
|
|
157
|
+
Object.defineProperty(exports, "clearRegisteredModelPricing", { enumerable: true, get: function () { return modelInfo_1.clearRegisteredModelPricing; } });
|
|
131
158
|
var providerServiceStatus_1 = require("./providerServiceStatus");
|
|
132
159
|
Object.defineProperty(exports, "fetchProviderServiceStatus", { enumerable: true, get: function () { return providerServiceStatus_1.fetchProviderServiceStatus; } });
|
|
133
160
|
// Tool categories across providers
|
|
@@ -142,6 +169,10 @@ Object.defineProperty(exports, "discoverWorktreeSiblings", { enumerable: true, g
|
|
|
142
169
|
Object.defineProperty(exports, "resolveWorktreeMainRepo", { enumerable: true, get: function () { return sessionPathResolver_2.resolveWorktreeMainRepo; } });
|
|
143
170
|
// Bounded JSONL tail reader
|
|
144
171
|
var jsonlTail_1 = require("./watchers/jsonlTail");
|
|
172
|
+
Object.defineProperty(exports, "captureJsonlCheckpoint", { enumerable: true, get: function () { return jsonlTail_1.captureJsonlCheckpoint; } });
|
|
145
173
|
Object.defineProperty(exports, "createJsonlTail", { enumerable: true, get: function () { return jsonlTail_1.createJsonlTail; } });
|
|
146
174
|
Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_MAX_LINE_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES; } });
|
|
147
175
|
Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_READ_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_READ_BYTES; } });
|
|
176
|
+
Object.defineProperty(exports, "JSONL_TAIL_CHECKPOINT_VERSION", { enumerable: true, get: function () { return jsonlTail_1.JSONL_TAIL_CHECKPOINT_VERSION; } });
|
|
177
|
+
Object.defineProperty(exports, "JsonlTailSymlinkError", { enumerable: true, get: function () { return jsonlTail_1.JsonlTailSymlinkError; } });
|
|
178
|
+
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
|
|
124
|
+
(0, ownKey_1.setOwnValue)(out, modelId, window);
|
|
124
125
|
}
|
|
125
126
|
return out;
|
|
126
127
|
}
|
package/dist/ownKey.d.ts
ADDED
|
@@ -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
|
+
}
|
|
@@ -13,6 +13,21 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import type { SessionEvent } from '../types/sessionEvent';
|
|
15
15
|
import type { CodexRolloutLine, CodexSessionMeta, CodexTokenUsage, CodexRateLimits } from '../types/codex';
|
|
16
|
+
/** Pending exec command awaiting its end event. */
|
|
17
|
+
interface PendingExecCommand {
|
|
18
|
+
call_id: string;
|
|
19
|
+
command: string[];
|
|
20
|
+
workdir?: string;
|
|
21
|
+
timestamp: string;
|
|
22
|
+
}
|
|
23
|
+
/** Pending MCP tool call awaiting its end event. */
|
|
24
|
+
interface PendingMcpToolCall {
|
|
25
|
+
call_id: string;
|
|
26
|
+
server_name?: string;
|
|
27
|
+
tool_name: string;
|
|
28
|
+
arguments?: Record<string, unknown>;
|
|
29
|
+
timestamp: string;
|
|
30
|
+
}
|
|
16
31
|
/**
|
|
17
32
|
* Resolve the usage of the single call a Codex `token_count` event reports.
|
|
18
33
|
*
|
|
@@ -53,7 +68,67 @@ export interface CodexRolloutParserOptions {
|
|
|
53
68
|
* oldest. Bounds memory on long-running rollouts; default 4096.
|
|
54
69
|
*/
|
|
55
70
|
maxTrackedToolCalls?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Approximate bytes the parser may hold for pending tool calls: exec and
|
|
73
|
+
* MCP calls still waiting for their end event (with their buffered command
|
|
74
|
+
* or arguments) and `apply_patch` calls waiting for their output. Past the
|
|
75
|
+
* budget the oldest pending call is forgotten first, as
|
|
76
|
+
* `maxTrackedToolCalls` does by count, so its end event still emits a tool
|
|
77
|
+
* use but without the forgotten details; a single call larger than the
|
|
78
|
+
* budget is not kept at all. `getPendingStats()` counts the evictions.
|
|
79
|
+
* Default: unlimited.
|
|
80
|
+
*/
|
|
81
|
+
maxPendingBytes?: number;
|
|
82
|
+
/**
|
|
83
|
+
* Metadata-only scan: tool-call inputs are emitted as `{}` plus the
|
|
84
|
+
* `_sidekick*` raw-name keys, tool results carry empty content (their
|
|
85
|
+
* `is_error` and `duration` are kept), reasoning is emitted with empty
|
|
86
|
+
* thinking text, and pending calls buffer no command or arguments. Tool
|
|
87
|
+
* names, ids, timestamps, models, usage, rate limits, and message text are
|
|
88
|
+
* unchanged. For cheap passes over large rollouts; default false.
|
|
89
|
+
*/
|
|
90
|
+
metadataOnly?: boolean;
|
|
91
|
+
}
|
|
92
|
+
/** Pending tool-call state counters from {@link CodexRolloutParser.getPendingStats}. */
|
|
93
|
+
export interface CodexPendingStats {
|
|
94
|
+
/** Tool calls waiting for their end or output event. */
|
|
95
|
+
pendingCalls: number;
|
|
96
|
+
/** Approximate bytes they hold; `null` unless `maxPendingBytes` is set. */
|
|
97
|
+
pendingBytes: number | null;
|
|
98
|
+
/** Pending calls forgotten because a table exceeded `maxTrackedToolCalls`. */
|
|
99
|
+
evictedByCount: number;
|
|
100
|
+
/** Pending calls forgotten because `maxPendingBytes` was exceeded. */
|
|
101
|
+
evictedByBytes: number;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* JSON-serializable continuation state of a {@link CodexRolloutParser}, from
|
|
105
|
+
* `exportResumeState()`, for `importResumeState()` in a parser that resumes
|
|
106
|
+
* at the same rollout position (for example from a persisted session
|
|
107
|
+
* snapshot). Every table lists its entries oldest first.
|
|
108
|
+
*/
|
|
109
|
+
export interface CodexRolloutResumeState {
|
|
110
|
+
version: 1;
|
|
111
|
+
sessionMeta: CodexSessionMeta | null;
|
|
112
|
+
/** Model from the latest `turn_context`, attributed to later events. */
|
|
113
|
+
currentModel: string | null;
|
|
114
|
+
/** Cumulative total of the previous token_count event, to skip its duplicates. */
|
|
115
|
+
prevTotalUsage: CodexTokenUsage | null;
|
|
116
|
+
lastTokenUsage: CodexTokenUsage | null;
|
|
117
|
+
modelContextWindow: number | null;
|
|
118
|
+
lastRateLimits: CodexRateLimits | null;
|
|
119
|
+
hasAggregateRateLimits: boolean;
|
|
120
|
+
inPlanMode: boolean;
|
|
121
|
+
/** Call ids whose tool use was already emitted, so their end event does not emit another. */
|
|
122
|
+
emittedToolUseIds: string[];
|
|
123
|
+
/** `apply_patch` calls awaiting output: call id and its per-file tool-use ids. */
|
|
124
|
+
patchExpandedToolUseIds: Array<[string, string[]]>;
|
|
125
|
+
/** `exec_command_begin` events awaiting their end. */
|
|
126
|
+
pendingExecCommands: PendingExecCommand[];
|
|
127
|
+
/** `mcp_tool_call_begin` events awaiting their end. */
|
|
128
|
+
pendingMcpToolCalls: PendingMcpToolCall[];
|
|
56
129
|
}
|
|
130
|
+
/** A valid `CodexTokenUsage` (copied), `null` for `null`, or `undefined` when invalid. Internal. */
|
|
131
|
+
export declare function codexTokenUsageFrom(value: unknown): CodexTokenUsage | null | undefined;
|
|
57
132
|
/**
|
|
58
133
|
* Stateful parser for Codex JSONL rollout lines.
|
|
59
134
|
*
|
|
@@ -78,7 +153,17 @@ export declare class CodexRolloutParser {
|
|
|
78
153
|
private emittedToolUseIds;
|
|
79
154
|
private patchExpandedToolUseIds;
|
|
80
155
|
private readonly maxTrackedToolCalls;
|
|
156
|
+
/** Byte budget for pending calls; `null` = unlimited (no accounting). */
|
|
157
|
+
private readonly maxPendingBytes;
|
|
158
|
+
private readonly metadataOnly;
|
|
159
|
+
/** Pending calls in insertion order, for the byte budget. */
|
|
160
|
+
private pendingLedger;
|
|
161
|
+
private pendingBytes;
|
|
162
|
+
private evictedByCount;
|
|
163
|
+
private evictedByBytes;
|
|
81
164
|
constructor(options?: CodexRolloutParserOptions);
|
|
165
|
+
/** Counters for the pending tool-call state and what the caps evicted. */
|
|
166
|
+
getPendingStats(): CodexPendingStats;
|
|
82
167
|
/** Get stored session metadata. */
|
|
83
168
|
getSessionMeta(): CodexSessionMeta | null;
|
|
84
169
|
/** Get current model from turn_context. */
|
|
@@ -89,12 +174,44 @@ export declare class CodexRolloutParser {
|
|
|
89
174
|
getModelContextWindow(): number | null;
|
|
90
175
|
/** Get the last observed rate limits from token_count events. */
|
|
91
176
|
getLastRateLimits(): CodexRateLimits | null;
|
|
177
|
+
/**
|
|
178
|
+
* The state later lines depend on — session metadata, current model,
|
|
179
|
+
* previous cumulative token total, context window, rate limits, plan mode,
|
|
180
|
+
* and the tool-call correlation tables (newest `limit` entries each) — as
|
|
181
|
+
* JSON-serializable data. Eviction counters are not included.
|
|
182
|
+
*/
|
|
183
|
+
exportResumeState(limit?: number): CodexRolloutResumeState;
|
|
184
|
+
/**
|
|
185
|
+
* Replaces this parser's state with one from {@link exportResumeState}, as
|
|
186
|
+
* if it had parsed the rollout up to where that state was taken. Returns
|
|
187
|
+
* false, changing nothing, when `state` is not a valid version-1 state.
|
|
188
|
+
* This parser's own `maxTrackedToolCalls`, `maxPendingBytes`, and
|
|
189
|
+
* `metadataOnly` options apply to the imported tables.
|
|
190
|
+
*/
|
|
191
|
+
importResumeState(state: unknown): boolean;
|
|
92
192
|
/**
|
|
93
193
|
* Converts a single rollout line to zero or more session events.
|
|
94
194
|
*/
|
|
95
195
|
convertLine(line: CodexRolloutLine): SessionEvent[];
|
|
96
196
|
/** Reset all parser state. */
|
|
97
197
|
reset(): void;
|
|
198
|
+
/**
|
|
199
|
+
* Stores a pending call, refreshing its position, then enforces the count
|
|
200
|
+
* cap on its table and the byte budget across all pending tables, oldest
|
|
201
|
+
* first.
|
|
202
|
+
*/
|
|
203
|
+
private putPending;
|
|
204
|
+
private putPendingExec;
|
|
205
|
+
private putPendingMcp;
|
|
206
|
+
private putPendingPatch;
|
|
207
|
+
/** Removes and returns a pending call. */
|
|
208
|
+
private takePending;
|
|
209
|
+
private forgetPendingBytes;
|
|
210
|
+
private ledgerKey;
|
|
211
|
+
/** The emitted tool input: unchanged, or only its `_sidekick*` keys in metadata-only mode. */
|
|
212
|
+
private toolInput;
|
|
213
|
+
/** The emitted tool-result content: unchanged, or empty in metadata-only mode. */
|
|
214
|
+
private toolOutput;
|
|
98
215
|
private handleSessionMeta;
|
|
99
216
|
private handleResponseItem;
|
|
100
217
|
private handleMessage;
|
|
@@ -109,3 +226,4 @@ export declare class CodexRolloutParser {
|
|
|
109
226
|
private handleEventMsg;
|
|
110
227
|
private handleTokenCount;
|
|
111
228
|
}
|
|
229
|
+
export {};
|