sidekick-shared 0.27.6 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +58 -18
- package/dist/browser.d.ts +13 -2
- package/dist/browser.js +30 -2
- package/dist/claudePaths.d.ts +11 -0
- package/dist/claudePaths.js +61 -0
- package/dist/claudeProfiles.d.ts +2 -9
- package/dist/claudeProfiles.js +10 -25
- package/dist/codexPaths.d.ts +22 -0
- package/dist/codexPaths.js +67 -0
- package/dist/codexProfiles.d.ts +1 -4
- package/dist/codexProfiles.js +5 -43
- package/dist/doctor.js +2 -2
- package/dist/esm/accountChangeSignal.js +15 -0
- package/dist/esm/accountChanges.js +152 -0
- package/dist/esm/accountHealth.js +288 -0
- package/dist/esm/accountLaunch.js +145 -0
- package/dist/esm/accountLease.js +60 -0
- package/dist/esm/accountManager.js +606 -0
- package/dist/esm/accountRegistry.js +214 -0
- package/dist/esm/accountStatus.js +51 -0
- package/dist/esm/accountSwitch.js +74 -0
- package/dist/esm/accountSync.js +156 -0
- package/dist/esm/accountSyncTypes.js +4 -0
- package/dist/esm/accounts.js +1291 -0
- package/dist/esm/aggregation/EventAggregator.js +2034 -0
- package/dist/esm/aggregation/FrequencyTracker.js +69 -0
- package/dist/esm/aggregation/HeatmapTracker.js +89 -0
- package/dist/esm/aggregation/PatternExtractor.js +168 -0
- package/dist/esm/aggregation/costProvenance.js +31 -0
- package/dist/esm/aggregation/snapshot.js +161 -0
- package/dist/esm/aggregation/types.js +5 -0
- package/dist/esm/analytics/codeImpact.js +18 -0
- package/dist/esm/analytics/compactionLedger.js +37 -0
- package/dist/esm/analytics/qualityScore.js +112 -0
- package/dist/esm/autoSwitch.js +185 -0
- package/dist/esm/browser.js +34 -0
- package/dist/esm/claudeCredentialDoctor.js +239 -0
- package/dist/esm/claudeCredentialLedger.js +91 -0
- package/dist/esm/claudeCredentials.js +111 -0
- package/dist/esm/claudeLiveGuard.js +43 -0
- package/dist/esm/claudePaths.js +22 -0
- package/dist/esm/claudeProfiles.js +142 -0
- package/dist/esm/claudeRefreshLock.js +106 -0
- package/dist/esm/codexAuth.js +101 -0
- package/dist/esm/codexCredentialDoctor.js +265 -0
- package/dist/esm/codexCredentialStore.js +164 -0
- package/dist/esm/codexKeepAlive.js +112 -0
- package/dist/esm/codexPaths.js +172 -0
- package/dist/esm/codexProfiles.js +1251 -0
- package/dist/esm/codexQuota.js +564 -0
- package/dist/esm/codexQuotaWatcher.js +363 -0
- package/dist/esm/context/composer.js +71 -0
- package/dist/esm/context/sessionContext.js +546 -0
- package/dist/esm/credentialIO.js +283 -0
- package/dist/esm/credentials.js +49 -0
- package/dist/esm/doctor.js +305 -0
- package/dist/esm/ensureDefaultAccounts.js +62 -0
- package/dist/esm/errorHistory.js +56 -0
- package/dist/esm/extractors/errorTaxonomy.js +43 -0
- package/dist/esm/extractors/gatherAssets.js +32 -0
- package/dist/esm/extractors/sessionAssets.js +176 -0
- package/dist/esm/extractors/sources/claudeAssets.js +158 -0
- package/dist/esm/extractors/sources/codexAssets.js +234 -0
- package/dist/esm/extractors/tokenUsage.js +41 -0
- package/dist/esm/extractors/toolCall.js +142 -0
- package/dist/esm/failingTools.js +65 -0
- package/dist/esm/fileHead.js +27 -0
- package/dist/esm/formatters/eventHighlighter.js +332 -0
- package/dist/esm/formatters/noiseClassifier.js +209 -0
- package/dist/esm/formatters/sessionDump.js +328 -0
- package/dist/esm/formatters/toolSummary.js +226 -0
- package/dist/esm/formatting.js +82 -0
- package/dist/esm/handoffUrl.js +23 -0
- package/dist/esm/historicalStore.js +305 -0
- package/dist/esm/humanPrompt.js +88 -0
- package/dist/esm/index.js +213 -0
- package/dist/esm/keepAlive.js +189 -0
- package/dist/esm/liveCredentialGuard.js +33 -0
- package/dist/esm/modelAliases.js +51 -0
- package/dist/esm/modelCatalog.js +139 -0
- package/dist/esm/modelContext.js +280 -0
- package/dist/esm/modelInfo.js +832 -0
- package/dist/esm/multiProviderQuotaService.js +450 -0
- package/dist/esm/node.js +46 -0
- package/dist/esm/observedContextWindows.js +165 -0
- package/dist/esm/observedSessionCollector.js +939 -0
- package/dist/esm/parsers/changelogParser.js +71 -0
- package/dist/esm/parsers/codexHistory.js +89 -0
- package/dist/esm/parsers/codexParser.js +906 -0
- package/dist/esm/parsers/debugLogParser.js +126 -0
- package/dist/esm/parsers/jsonl.js +66 -0
- package/dist/esm/parsers/mcpToolName.js +28 -0
- package/dist/esm/parsers/openCodeParser.js +625 -0
- package/dist/esm/parsers/planExtractor.js +335 -0
- package/dist/esm/parsers/sessionActivityDetector.js +246 -0
- package/dist/esm/parsers/sessionPathResolver.js +713 -0
- package/dist/esm/parsers/subagentScanner.js +360 -0
- package/dist/esm/parsers/subagentStatsCache.js +45 -0
- package/dist/esm/parsers/subagentTraceParser.js +325 -0
- package/dist/esm/paths.js +134 -0
- package/dist/esm/peakHours.js +194 -0
- package/dist/esm/phrases.js +1330 -0
- package/dist/esm/pricingCatalog.js +247 -0
- package/dist/esm/processDetection.js +200 -0
- package/dist/esm/projectMigration.js +59 -0
- package/dist/esm/promptHistory.js +1221 -0
- package/dist/esm/providerFailure.js +362 -0
- package/dist/esm/providerIds.js +6 -0
- package/dist/esm/providerQuota.js +1 -0
- package/dist/esm/providerServiceStatus.js +145 -0
- package/dist/esm/providerServiceStatusTypes.js +1 -0
- package/dist/esm/providerStatus.js +117 -0
- package/dist/esm/providers/claudeCode.js +575 -0
- package/dist/esm/providers/claudeListing.js +121 -0
- package/dist/esm/providers/codex.js +1034 -0
- package/dist/esm/providers/codexDatabase.js +297 -0
- package/dist/esm/providers/codexRollouts.js +215 -0
- package/dist/esm/providers/detect.js +185 -0
- package/dist/esm/providers/diagnostics.js +83 -0
- package/dist/esm/providers/directoryListingCache.js +206 -0
- package/dist/esm/providers/factory.js +54 -0
- package/dist/esm/providers/openCode.js +2008 -0
- package/dist/esm/providers/openCodeDatabase.js +419 -0
- package/dist/esm/providers/rolloutWalker.js +252 -0
- package/dist/esm/providers/types.js +12 -0
- package/dist/esm/quota.js +182 -0
- package/dist/esm/quotaHistory.js +364 -0
- package/dist/esm/quotaPoller.js +230 -0
- package/dist/esm/quotaPresentation.js +97 -0
- package/dist/esm/quotaResolver.js +231 -0
- package/dist/esm/quotaSnapshots.js +130 -0
- package/dist/esm/quotaThresholds.js +85 -0
- package/dist/esm/readers/decisions.js +24 -0
- package/dist/esm/readers/handoff.js +20 -0
- package/dist/esm/readers/helpers.js +27 -0
- package/dist/esm/readers/history.js +9 -0
- package/dist/esm/readers/notes.js +48 -0
- package/dist/esm/readers/plans.js +225 -0
- package/dist/esm/readers/tasks.js +19 -0
- package/dist/esm/report/htmlHelpers.js +280 -0
- package/dist/esm/report/htmlReportGenerator.js +704 -0
- package/dist/esm/report/index.js +7 -0
- package/dist/esm/report/logo.js +2 -0
- package/dist/esm/report/openBrowser.js +19 -0
- package/dist/esm/report/sessionReportInputs.js +33 -0
- package/dist/esm/report/transcriptParser.js +83 -0
- package/dist/esm/report/types.js +4 -0
- package/dist/esm/schemas/accountManager.js +204 -0
- package/dist/esm/schemas/accountStatus.js +25 -0
- package/dist/esm/schemas/assistantTurn.js +74 -0
- package/dist/esm/schemas/index.js +25 -0
- package/dist/esm/schemas/observedSessionV1.js +77 -0
- package/dist/esm/schemas/providerFailure.js +37 -0
- package/dist/esm/schemas/quota.js +132 -0
- package/dist/esm/schemas/quotaHistory.js +40 -0
- package/dist/esm/schemas/sessionEvent.js +216 -0
- package/dist/esm/schemas/stateFile.js +75 -0
- package/dist/esm/schemas/tokenEstimation.js +7 -0
- package/dist/esm/schemas/transcript.js +86 -0
- package/dist/esm/schemas/usageNormalization.js +38 -0
- package/dist/esm/search/advancedFilter.js +197 -0
- package/dist/esm/search/sessionSearch.js +66 -0
- package/dist/esm/sessionFingerprint.js +40 -0
- package/dist/esm/sessionMonitor.js +198 -0
- package/dist/esm/sessionPreviews.js +522 -0
- package/dist/esm/sessionPromptHistory.js +254 -0
- package/dist/esm/sessionPromptSignals.js +364 -0
- package/dist/esm/sessionStats.js +160 -0
- package/dist/esm/sessionTokenTotals.js +98 -0
- package/dist/esm/sessionTranscripts.js +49 -0
- package/dist/esm/stateFile.js +119 -0
- package/dist/esm/statusline/BurnRateCalculator.js +40 -0
- package/dist/esm/statusline/claudeStatuslinePayload.js +148 -0
- package/dist/esm/statusline/formatter.js +122 -0
- package/dist/esm/statusline/index.js +8 -0
- package/dist/esm/terminalSync.js +95 -0
- package/dist/esm/testing/credentialGuard.js +197 -0
- package/dist/esm/testing/index.js +12 -0
- package/dist/esm/testing/sessionLogFixtures.js +128 -0
- package/dist/esm/tokenEstimation.js +67 -0
- package/dist/esm/tokenSummary.js +113 -0
- package/dist/esm/toolCategory.js +82 -0
- package/dist/esm/transcript.js +257 -0
- package/dist/esm/turns/assistantTurn.js +373 -0
- package/dist/esm/types/codex.js +23 -0
- package/dist/esm/types/decisionLog.js +5 -0
- package/dist/esm/types/historicalData.js +47 -0
- package/dist/esm/types/knowledgeNote.js +15 -0
- package/dist/esm/types/observedSessionV1.js +257 -0
- package/dist/esm/types/opencode.js +12 -0
- package/dist/esm/types/plan.js +7 -0
- package/dist/esm/types/sessionEvent.js +10 -0
- package/dist/esm/types/taskPersistence.js +12 -0
- package/dist/esm/usage/billingBlocks.js +148 -0
- package/dist/esm/usage/claudeUsageDedupe.js +189 -0
- package/dist/esm/usage/importSessionHistory.js +84 -0
- package/dist/esm/usage/subagentUsage.js +18 -0
- package/dist/esm/usage/usageEvents.js +402 -0
- package/dist/esm/usage/usageReports.js +202 -0
- package/dist/esm/usageNormalization.js +95 -0
- package/dist/esm/watchers/eventBridge.js +219 -0
- package/dist/esm/watchers/factory.js +63 -0
- package/dist/esm/watchers/jsonlTail.js +289 -0
- package/dist/esm/watchers/jsonlWatcher.js +435 -0
- package/dist/esm/watchers/providerReaderWatcher.js +118 -0
- package/dist/esm/watchers/sqliteWatcher.js +285 -0
- package/dist/esm/watchers/types.js +4 -0
- package/dist/esm/workspaceRoots.js +56 -0
- package/dist/esm/writers/atomic.js +375 -0
- package/dist/esm/writers/decisions.js +51 -0
- package/dist/esm/writers/notes.js +46 -0
- package/dist/esm/writers/tasks.js +63 -0
- package/dist/esm/zaiQuota.js +323 -0
- package/dist/esm/zaiQuotaApi.js +271 -0
- package/dist/esm/zaiQuotaWatcher.js +265 -0
- package/dist/fileHead.d.ts +22 -0
- package/dist/fileHead.js +33 -0
- package/dist/index.d.ts +16 -7
- package/dist/index.js +49 -15
- package/dist/node.d.ts +13 -1
- package/dist/node.js +43 -2
- package/dist/parsers/codexHistory.js +2 -2
- package/dist/parsers/codexParser.d.ts +12 -0
- package/dist/parsers/codexParser.js +34 -12
- package/dist/parsers/debugLogParser.js +2 -2
- package/dist/parsers/sessionPathResolver.js +5 -4
- package/dist/promptHistory.d.ts +32 -0
- package/dist/promptHistory.js +115 -59
- package/dist/providerFailure.d.ts +12 -6
- package/dist/providerFailure.js +45 -0
- package/dist/providers/claudeCode.js +7 -99
- package/dist/providers/claudeListing.d.ts +22 -0
- package/dist/providers/claudeListing.js +158 -0
- package/dist/providers/codex.d.ts +3 -1
- package/dist/providers/codex.js +26 -227
- package/dist/providers/codexRollouts.d.ts +44 -0
- package/dist/providers/codexRollouts.js +261 -0
- package/dist/providers/detect.js +4 -4
- package/dist/readers/plans.js +3 -3
- package/dist/schemas/index.d.ts +2 -0
- package/dist/schemas/index.js +7 -2
- package/dist/schemas/providerFailure.d.ts +154 -0
- package/dist/schemas/providerFailure.js +40 -0
- package/dist/sessionPromptHistory.d.ts +12 -7
- package/dist/sessionPromptHistory.js +15 -3
- package/dist/sessionPromptSignals.d.ts +9 -0
- package/dist/sessionPromptSignals.js +13 -0
- package/dist/testing/credentialGuard.d.ts +23 -0
- package/dist/testing/credentialGuard.js +233 -0
- package/dist/testing/index.d.ts +14 -0
- package/dist/testing/index.js +22 -0
- package/dist/testing/sessionLogFixtures.d.ts +28 -0
- package/dist/testing/sessionLogFixtures.js +169 -0
- package/dist/tokenEstimation.d.ts +2 -0
- package/dist/tokenEstimation.js +21 -11
- package/dist/toolCategory.d.ts +18 -0
- package/dist/toolCategory.js +86 -0
- package/dist/types/codex.d.ts +4 -0
- package/dist/usage/usageEvents.d.ts +16 -0
- package/dist/usage/usageEvents.js +53 -9
- package/dist/watchers/jsonlTail.d.ts +26 -1
- package/dist/watchers/jsonlTail.js +136 -28
- package/dist/watchers/jsonlWatcher.js +7 -0
- package/dist/watchers/providerReaderWatcher.js +1 -0
- package/dist/watchers/types.d.ts +6 -0
- package/dist/workspaceRoots.d.ts +23 -0
- package/dist/workspaceRoots.js +93 -0
- package/package.json +22 -2
package/dist/node.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ 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 } from './promptHistory';
|
|
13
|
+
export { collectPromptHistory, isPromptHistorySessionSettled, parsePromptHistoryCursor, } from './promptHistory';
|
|
14
14
|
export type { CollectPromptHistoryOptions, PromptHistoryAnswerState, PromptHistoryBound, PromptHistoryBounds, PromptHistoryCursor, PromptHistoryCursorSession, PromptHistoryEntry, PromptHistoryExclusion, PromptHistoryMetadataStatus, PromptHistoryPendingPrompt, PromptHistoryProvider, PromptHistoryResult, PromptHistoryResumeState, PromptHistoryStats, PromptHistoryUsage, } from './promptHistory';
|
|
15
15
|
export { collectSessionPromptHistory } from './sessionPromptHistory';
|
|
16
16
|
export type { CollectSessionPromptHistoryOptions, PromptHistorySession, PromptHistorySessionPrompt, PromptHistorySessionRef, SessionPromptHistoryBound, SessionPromptHistoryBounds, SessionPromptHistoryInclude, SessionPromptHistoryResult, SessionPromptHistoryStats, } from './sessionPromptHistory';
|
|
@@ -53,5 +53,17 @@ export type { ListSessionFilesOptions, ProviderId, SessionEnumerationCounters, S
|
|
|
53
53
|
export { createSessionProviders } from './providers/factory';
|
|
54
54
|
export type { CreateSessionProvidersOptions, CreateSessionProvidersResult, } from './providers/factory';
|
|
55
55
|
export { SYNTHETIC_MODEL } from './usage/claudeUsageDedupe';
|
|
56
|
+
export { CONFIG_DIR_ENV_VAR, getConfigDir, getConfigDirOverride, getDefaultConfigDir, } from './paths';
|
|
57
|
+
export { encodeWorkspacePath as encodeClaudeWorkspacePath, getSessionDirectory as getClaudeSessionDirectory, } from './parsers/sessionPathResolver';
|
|
58
|
+
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';
|
|
56
61
|
export type { ProviderServiceSeverity, ProviderServiceComponent, ProviderServiceIncident, ProviderServiceStatusFailureReason, ObservedProviderServiceStatus, UnavailableProviderServiceStatus, ProviderServiceStatus, FetchProviderServiceStatusOptions, } from './providerServiceStatusTypes';
|
|
57
62
|
export { fetchProviderServiceStatus } from './providerServiceStatus';
|
|
63
|
+
export { classifyTool, TOOL_CATEGORIES } from './toolCategory';
|
|
64
|
+
export type { ClassifyToolOptions, ToolCategory } from './toolCategory';
|
|
65
|
+
export { resolveWorkspaceRoots } from './workspaceRoots';
|
|
66
|
+
export type { ResolveWorkspaceRootsOptions, ResolvedWorkspaceRoots } from './workspaceRoots';
|
|
67
|
+
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';
|
package/dist/node.js
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* for browser bundles — use `sidekick-shared/browser` there.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
11
|
-
exports.fetchProviderServiceStatus = 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 = void 0;
|
|
10
|
+
exports.ACTIVE_SESSION_MTIME_THRESHOLD_MS = exports.sessionSummaryFromStats = 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.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.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.CODEX_ARCHIVED_SESSIONS_SUBDIR = exports.CODEX_SESSIONS_SUBDIR = 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 = void 0;
|
|
12
12
|
var pricingCatalog_1 = require("./pricingCatalog");
|
|
13
13
|
Object.defineProperty(exports, "hydratePricingCatalog", { enumerable: true, get: function () { return pricingCatalog_1.hydratePricingCatalog; } });
|
|
14
14
|
Object.defineProperty(exports, "normalizeLiteLlmCatalog", { enumerable: true, get: function () { return pricingCatalog_1.normalizeLiteLlmCatalog; } });
|
|
@@ -23,6 +23,8 @@ Object.defineProperty(exports, "listRecentSessions", { enumerable: true, get: fu
|
|
|
23
23
|
Object.defineProperty(exports, "readSessionTranscript", { enumerable: true, get: function () { return sessionTranscripts_1.readSessionTranscript; } });
|
|
24
24
|
var promptHistory_1 = require("./promptHistory");
|
|
25
25
|
Object.defineProperty(exports, "collectPromptHistory", { enumerable: true, get: function () { return promptHistory_1.collectPromptHistory; } });
|
|
26
|
+
Object.defineProperty(exports, "isPromptHistorySessionSettled", { enumerable: true, get: function () { return promptHistory_1.isPromptHistorySessionSettled; } });
|
|
27
|
+
Object.defineProperty(exports, "parsePromptHistoryCursor", { enumerable: true, get: function () { return promptHistory_1.parsePromptHistoryCursor; } });
|
|
26
28
|
var sessionPromptHistory_1 = require("./sessionPromptHistory");
|
|
27
29
|
Object.defineProperty(exports, "collectSessionPromptHistory", { enumerable: true, get: function () { return sessionPromptHistory_1.collectSessionPromptHistory; } });
|
|
28
30
|
var humanPrompt_1 = require("./humanPrompt");
|
|
@@ -102,5 +104,44 @@ var factory_1 = require("./providers/factory");
|
|
|
102
104
|
Object.defineProperty(exports, "createSessionProviders", { enumerable: true, get: function () { return factory_1.createSessionProviders; } });
|
|
103
105
|
var claudeUsageDedupe_1 = require("./usage/claudeUsageDedupe");
|
|
104
106
|
Object.defineProperty(exports, "SYNTHETIC_MODEL", { enumerable: true, get: function () { return claudeUsageDedupe_1.SYNTHETIC_MODEL; } });
|
|
107
|
+
// Sidekick's config root
|
|
108
|
+
var paths_1 = require("./paths");
|
|
109
|
+
Object.defineProperty(exports, "CONFIG_DIR_ENV_VAR", { enumerable: true, get: function () { return paths_1.CONFIG_DIR_ENV_VAR; } });
|
|
110
|
+
Object.defineProperty(exports, "getConfigDir", { enumerable: true, get: function () { return paths_1.getConfigDir; } });
|
|
111
|
+
Object.defineProperty(exports, "getConfigDirOverride", { enumerable: true, get: function () { return paths_1.getConfigDirOverride; } });
|
|
112
|
+
Object.defineProperty(exports, "getDefaultConfigDir", { enumerable: true, get: function () { return paths_1.getDefaultConfigDir; } });
|
|
113
|
+
// Claude Code session directories (Claude's own path encoding)
|
|
114
|
+
var sessionPathResolver_1 = require("./parsers/sessionPathResolver");
|
|
115
|
+
Object.defineProperty(exports, "encodeClaudeWorkspacePath", { enumerable: true, get: function () { return sessionPathResolver_1.encodeWorkspacePath; } });
|
|
116
|
+
Object.defineProperty(exports, "getClaudeSessionDirectory", { enumerable: true, get: function () { return sessionPathResolver_1.getSessionDirectory; } });
|
|
117
|
+
// Provider homes the CLIs read for this process
|
|
118
|
+
var claudePaths_1 = require("./claudePaths");
|
|
119
|
+
Object.defineProperty(exports, "getLiveClaudeHome", { enumerable: true, get: function () { return claudePaths_1.getLiveClaudeHome; } });
|
|
120
|
+
Object.defineProperty(exports, "getDefaultClaudeHome", { enumerable: true, get: function () { return claudePaths_1.getDefaultClaudeHome; } });
|
|
121
|
+
Object.defineProperty(exports, "isDefaultClaudeHome", { enumerable: true, get: function () { return claudePaths_1.isDefaultClaudeHome; } });
|
|
122
|
+
Object.defineProperty(exports, "getClaudeProjectsDir", { enumerable: true, get: function () { return claudePaths_1.getClaudeProjectsDir; } });
|
|
123
|
+
var codexPaths_1 = require("./codexPaths");
|
|
124
|
+
Object.defineProperty(exports, "getSystemCodexHome", { enumerable: true, get: function () { return codexPaths_1.getSystemCodexHome; } });
|
|
125
|
+
Object.defineProperty(exports, "getCodexMonitoringHomes", { enumerable: true, get: function () { return codexPaths_1.getCodexMonitoringHomes; } });
|
|
126
|
+
Object.defineProperty(exports, "resolveSidekickCodexHome", { enumerable: true, get: function () { return codexPaths_1.resolveSidekickCodexHome; } });
|
|
127
|
+
Object.defineProperty(exports, "getCodexExecutionEnv", { enumerable: true, get: function () { return codexPaths_1.getCodexExecutionEnv; } });
|
|
128
|
+
Object.defineProperty(exports, "getCodexSessionsDirs", { enumerable: true, get: function () { return codexPaths_1.getCodexSessionsDirs; } });
|
|
129
|
+
Object.defineProperty(exports, "CODEX_SESSIONS_SUBDIR", { enumerable: true, get: function () { return codexPaths_1.CODEX_SESSIONS_SUBDIR; } });
|
|
130
|
+
Object.defineProperty(exports, "CODEX_ARCHIVED_SESSIONS_SUBDIR", { enumerable: true, get: function () { return codexPaths_1.CODEX_ARCHIVED_SESSIONS_SUBDIR; } });
|
|
105
131
|
var providerServiceStatus_1 = require("./providerServiceStatus");
|
|
106
132
|
Object.defineProperty(exports, "fetchProviderServiceStatus", { enumerable: true, get: function () { return providerServiceStatus_1.fetchProviderServiceStatus; } });
|
|
133
|
+
// Tool categories across providers
|
|
134
|
+
var toolCategory_1 = require("./toolCategory");
|
|
135
|
+
Object.defineProperty(exports, "classifyTool", { enumerable: true, get: function () { return toolCategory_1.classifyTool; } });
|
|
136
|
+
Object.defineProperty(exports, "TOOL_CATEGORIES", { enumerable: true, get: function () { return toolCategory_1.TOOL_CATEGORIES; } });
|
|
137
|
+
// Workspace roots and git worktrees
|
|
138
|
+
var workspaceRoots_1 = require("./workspaceRoots");
|
|
139
|
+
Object.defineProperty(exports, "resolveWorkspaceRoots", { enumerable: true, get: function () { return workspaceRoots_1.resolveWorkspaceRoots; } });
|
|
140
|
+
var sessionPathResolver_2 = require("./parsers/sessionPathResolver");
|
|
141
|
+
Object.defineProperty(exports, "discoverWorktreeSiblings", { enumerable: true, get: function () { return sessionPathResolver_2.discoverWorktreeSiblings; } });
|
|
142
|
+
Object.defineProperty(exports, "resolveWorktreeMainRepo", { enumerable: true, get: function () { return sessionPathResolver_2.resolveWorktreeMainRepo; } });
|
|
143
|
+
// Bounded JSONL tail reader
|
|
144
|
+
var jsonlTail_1 = require("./watchers/jsonlTail");
|
|
145
|
+
Object.defineProperty(exports, "createJsonlTail", { enumerable: true, get: function () { return jsonlTail_1.createJsonlTail; } });
|
|
146
|
+
Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_MAX_LINE_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_MAX_LINE_BYTES; } });
|
|
147
|
+
Object.defineProperty(exports, "DEFAULT_JSONL_TAIL_READ_BYTES", { enumerable: true, get: function () { return jsonlTail_1.DEFAULT_JSONL_TAIL_READ_BYTES; } });
|
|
@@ -47,7 +47,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
47
47
|
exports.readCodexHistory = readCodexHistory;
|
|
48
48
|
const fs = __importStar(require("fs"));
|
|
49
49
|
const path = __importStar(require("path"));
|
|
50
|
-
const
|
|
50
|
+
const codexPaths_1 = require("../codexPaths");
|
|
51
51
|
const DEFAULT_LIMIT = 100;
|
|
52
52
|
const DEFAULT_TAIL_BYTES = 512 * 1024;
|
|
53
53
|
/**
|
|
@@ -59,7 +59,7 @@ function readCodexHistory(options = {}) {
|
|
|
59
59
|
if (limit === 0)
|
|
60
60
|
return [];
|
|
61
61
|
const maxTailBytes = Math.max(1, options.maxTailBytes ?? Math.max(DEFAULT_TAIL_BYTES, limit * 4096));
|
|
62
|
-
const historyPath = path.join(options.codexHome ?? (0,
|
|
62
|
+
const historyPath = path.join(options.codexHome ?? (0, codexPaths_1.getSystemCodexHome)(), 'history.jsonl');
|
|
63
63
|
let descriptor;
|
|
64
64
|
try {
|
|
65
65
|
descriptor = fs.openSync(historyPath, 'r');
|
|
@@ -44,6 +44,16 @@ export declare function normalizeCodexToolInput(canonicalToolName: string, rawTo
|
|
|
44
44
|
* Matches lines like: `*** Add File: src/math.ts` or `*** Update File: src/index.ts`
|
|
45
45
|
*/
|
|
46
46
|
export declare function extractPatchFilePaths(input: string): string[];
|
|
47
|
+
/** Default cap on each piece of per-call correlation state the parser keeps. */
|
|
48
|
+
export declare const DEFAULT_MAX_TRACKED_TOOL_CALLS = 4096;
|
|
49
|
+
export interface CodexRolloutParserOptions {
|
|
50
|
+
/**
|
|
51
|
+
* How many call ids each correlation table (emitted tool uses, expanded
|
|
52
|
+
* patches, pending exec and MCP calls) remembers before forgetting the
|
|
53
|
+
* oldest. Bounds memory on long-running rollouts; default 4096.
|
|
54
|
+
*/
|
|
55
|
+
maxTrackedToolCalls?: number;
|
|
56
|
+
}
|
|
47
57
|
/**
|
|
48
58
|
* Stateful parser for Codex JSONL rollout lines.
|
|
49
59
|
*
|
|
@@ -67,6 +77,8 @@ export declare class CodexRolloutParser {
|
|
|
67
77
|
private inPlanMode;
|
|
68
78
|
private emittedToolUseIds;
|
|
69
79
|
private patchExpandedToolUseIds;
|
|
80
|
+
private readonly maxTrackedToolCalls;
|
|
81
|
+
constructor(options?: CodexRolloutParserOptions);
|
|
70
82
|
/** Get stored session metadata. */
|
|
71
83
|
getSessionMeta(): CodexSessionMeta | null;
|
|
72
84
|
/** Get current model from turn_context. */
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @module parsers/codexParser
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.CodexRolloutParser = void 0;
|
|
16
|
+
exports.CodexRolloutParser = exports.DEFAULT_MAX_TRACKED_TOOL_CALLS = void 0;
|
|
17
17
|
exports.resolveCodexCallUsage = resolveCodexCallUsage;
|
|
18
18
|
exports.normalizeCodexToolName = normalizeCodexToolName;
|
|
19
19
|
exports.normalizeCodexToolInput = normalizeCodexToolInput;
|
|
@@ -176,6 +176,22 @@ function extractPatchFilePaths(input) {
|
|
|
176
176
|
}
|
|
177
177
|
return paths;
|
|
178
178
|
}
|
|
179
|
+
/** Default cap on each piece of per-call correlation state the parser keeps. */
|
|
180
|
+
exports.DEFAULT_MAX_TRACKED_TOOL_CALLS = 4096;
|
|
181
|
+
/** Adds `key`, refreshing its position, and evicts the oldest past `max`. */
|
|
182
|
+
function rememberBounded(set, key, max) {
|
|
183
|
+
set.delete(key);
|
|
184
|
+
set.add(key);
|
|
185
|
+
while (set.size > max)
|
|
186
|
+
set.delete(set.values().next().value);
|
|
187
|
+
}
|
|
188
|
+
/** Sets `key`, refreshing its position, and evicts the oldest past `max`. */
|
|
189
|
+
function setBounded(map, key, value, max) {
|
|
190
|
+
map.delete(key);
|
|
191
|
+
map.set(key, value);
|
|
192
|
+
while (map.size > max)
|
|
193
|
+
map.delete(map.keys().next().value);
|
|
194
|
+
}
|
|
179
195
|
/**
|
|
180
196
|
* Stateful parser for Codex JSONL rollout lines.
|
|
181
197
|
*
|
|
@@ -199,6 +215,12 @@ class CodexRolloutParser {
|
|
|
199
215
|
inPlanMode = false;
|
|
200
216
|
emittedToolUseIds = new Set();
|
|
201
217
|
patchExpandedToolUseIds = new Map();
|
|
218
|
+
maxTrackedToolCalls;
|
|
219
|
+
constructor(options = {}) {
|
|
220
|
+
const max = options.maxTrackedToolCalls;
|
|
221
|
+
this.maxTrackedToolCalls =
|
|
222
|
+
typeof max === 'number' && max >= 1 ? Math.floor(max) : exports.DEFAULT_MAX_TRACKED_TOOL_CALLS;
|
|
223
|
+
}
|
|
202
224
|
/** Get stored session metadata. */
|
|
203
225
|
getSessionMeta() {
|
|
204
226
|
return this.sessionMeta;
|
|
@@ -374,7 +396,7 @@ class CodexRolloutParser {
|
|
|
374
396
|
}
|
|
375
397
|
const canonicalName = normalizeCodexToolName(item.name);
|
|
376
398
|
const normalizedInput = normalizeCodexToolInput(canonicalName, item.name, parsedArgs);
|
|
377
|
-
this.emittedToolUseIds
|
|
399
|
+
rememberBounded(this.emittedToolUseIds, item.call_id, this.maxTrackedToolCalls);
|
|
378
400
|
return [
|
|
379
401
|
{
|
|
380
402
|
type: 'assistant',
|
|
@@ -418,7 +440,7 @@ class CodexRolloutParser {
|
|
|
418
440
|
}
|
|
419
441
|
handleLocalShellCall(timestamp, item) {
|
|
420
442
|
const command = item.action?.command?.join(' ') || '';
|
|
421
|
-
this.emittedToolUseIds
|
|
443
|
+
rememberBounded(this.emittedToolUseIds, item.call_id, this.maxTrackedToolCalls);
|
|
422
444
|
return [
|
|
423
445
|
{
|
|
424
446
|
type: 'assistant',
|
|
@@ -449,9 +471,9 @@ class CodexRolloutParser {
|
|
|
449
471
|
if (filePaths.length === 0)
|
|
450
472
|
return [];
|
|
451
473
|
const toolUseIds = filePaths.map((fp) => `${item.call_id}-${fp}`);
|
|
452
|
-
this.patchExpandedToolUseIds
|
|
474
|
+
setBounded(this.patchExpandedToolUseIds, item.call_id, toolUseIds, this.maxTrackedToolCalls);
|
|
453
475
|
for (const id of toolUseIds) {
|
|
454
|
-
this.emittedToolUseIds.
|
|
476
|
+
rememberBounded(this.emittedToolUseIds, id, this.maxTrackedToolCalls);
|
|
455
477
|
}
|
|
456
478
|
return filePaths.map((fp) => ({
|
|
457
479
|
type: 'assistant',
|
|
@@ -484,7 +506,7 @@ class CodexRolloutParser {
|
|
|
484
506
|
}
|
|
485
507
|
const canonicalName = normalizeCodexToolName(item.name);
|
|
486
508
|
const normalizedInput = normalizeCodexToolInput(canonicalName, item.name, parsedInput);
|
|
487
|
-
this.emittedToolUseIds
|
|
509
|
+
rememberBounded(this.emittedToolUseIds, item.call_id, this.maxTrackedToolCalls);
|
|
488
510
|
return [
|
|
489
511
|
{
|
|
490
512
|
type: 'assistant',
|
|
@@ -593,12 +615,12 @@ class CodexRolloutParser {
|
|
|
593
615
|
// response_item/message events which carry richer metadata (id, content parts, role).
|
|
594
616
|
case 'exec_command_begin': {
|
|
595
617
|
const e = event;
|
|
596
|
-
this.pendingExecCommands
|
|
618
|
+
setBounded(this.pendingExecCommands, e.call_id, {
|
|
597
619
|
call_id: e.call_id,
|
|
598
620
|
command: e.command,
|
|
599
621
|
workdir: e.workdir,
|
|
600
622
|
timestamp,
|
|
601
|
-
});
|
|
623
|
+
}, this.maxTrackedToolCalls);
|
|
602
624
|
return [];
|
|
603
625
|
}
|
|
604
626
|
case 'exec_command_end': {
|
|
@@ -608,7 +630,7 @@ class CodexRolloutParser {
|
|
|
608
630
|
const command = pending?.command?.join(' ') || '';
|
|
609
631
|
const events = [];
|
|
610
632
|
if (!this.emittedToolUseIds.has(e.call_id)) {
|
|
611
|
-
this.emittedToolUseIds
|
|
633
|
+
rememberBounded(this.emittedToolUseIds, e.call_id, this.maxTrackedToolCalls);
|
|
612
634
|
events.push({
|
|
613
635
|
type: 'assistant',
|
|
614
636
|
message: {
|
|
@@ -653,13 +675,13 @@ class CodexRolloutParser {
|
|
|
653
675
|
}
|
|
654
676
|
case 'mcp_tool_call_begin': {
|
|
655
677
|
const e = event;
|
|
656
|
-
this.pendingMcpToolCalls
|
|
678
|
+
setBounded(this.pendingMcpToolCalls, e.call_id, {
|
|
657
679
|
call_id: e.call_id,
|
|
658
680
|
server_name: e.server_name,
|
|
659
681
|
tool_name: e.tool_name,
|
|
660
682
|
arguments: e.arguments,
|
|
661
683
|
timestamp,
|
|
662
|
-
});
|
|
684
|
+
}, this.maxTrackedToolCalls);
|
|
663
685
|
return [];
|
|
664
686
|
}
|
|
665
687
|
case 'mcp_tool_call_end': {
|
|
@@ -669,7 +691,7 @@ class CodexRolloutParser {
|
|
|
669
691
|
const toolName = pendingMcp?.tool_name || 'McpTool';
|
|
670
692
|
const events = [];
|
|
671
693
|
if (!this.emittedToolUseIds.has(e.call_id)) {
|
|
672
|
-
this.emittedToolUseIds
|
|
694
|
+
rememberBounded(this.emittedToolUseIds, e.call_id, this.maxTrackedToolCalls);
|
|
673
695
|
events.push({
|
|
674
696
|
type: 'assistant',
|
|
675
697
|
message: {
|
|
@@ -47,7 +47,7 @@ exports.collapseDuplicates = collapseDuplicates;
|
|
|
47
47
|
exports.discoverDebugLogs = discoverDebugLogs;
|
|
48
48
|
const fs = __importStar(require("fs"));
|
|
49
49
|
const path = __importStar(require("path"));
|
|
50
|
-
const
|
|
50
|
+
const claudePaths_1 = require("../claudePaths");
|
|
51
51
|
// ── Constants ──
|
|
52
52
|
const LOG_LINE_PATTERN = /^(\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}[.\d]*Z?)\s+(DEBUG|INFO|WARN|ERROR)\s+(.*)$/;
|
|
53
53
|
const LEVEL_ORDER = {
|
|
@@ -134,7 +134,7 @@ function collapseDuplicates(entries) {
|
|
|
134
134
|
* @returns Array of debug log file info, sorted by mtime (most recent first)
|
|
135
135
|
*/
|
|
136
136
|
function discoverDebugLogs() {
|
|
137
|
-
const debugDir = path.join(
|
|
137
|
+
const debugDir = path.join((0, claudePaths_1.getLiveClaudeHome)(), 'debug');
|
|
138
138
|
try {
|
|
139
139
|
if (!fs.existsSync(debugDir))
|
|
140
140
|
return [];
|
|
@@ -61,6 +61,7 @@ exports.findAllSessionsWithWorktrees = findAllSessionsWithWorktrees;
|
|
|
61
61
|
const fs = __importStar(require("fs"));
|
|
62
62
|
const path = __importStar(require("path"));
|
|
63
63
|
const os = __importStar(require("os"));
|
|
64
|
+
const claudePaths_1 = require("../claudePaths");
|
|
64
65
|
/**
|
|
65
66
|
* Encodes a workspace path to Claude Code's on-disk directory naming scheme
|
|
66
67
|
* under `~/.claude/projects/` — every non-ASCII-alphanumeric character
|
|
@@ -110,7 +111,7 @@ function encodeWorkspacePath(workspacePath) {
|
|
|
110
111
|
*/
|
|
111
112
|
function getSessionDirectory(workspacePath) {
|
|
112
113
|
const encoded = encodeWorkspacePath(workspacePath);
|
|
113
|
-
return path.join(
|
|
114
|
+
return path.join((0, claudePaths_1.getClaudeProjectsDir)(), encoded);
|
|
114
115
|
}
|
|
115
116
|
/** How recently a file must be modified to be considered "active" (5 minutes) */
|
|
116
117
|
const ACTIVE_SESSION_THRESHOLD_MS = 5 * 60 * 1000;
|
|
@@ -134,7 +135,7 @@ const ACTIVE_SESSION_THRESHOLD_MS = 5 * 60 * 1000;
|
|
|
134
135
|
* ```
|
|
135
136
|
*/
|
|
136
137
|
function findSubdirectorySessionDirs(workspacePath) {
|
|
137
|
-
const projectsDir =
|
|
138
|
+
const projectsDir = (0, claudePaths_1.getClaudeProjectsDir)();
|
|
138
139
|
try {
|
|
139
140
|
if (!fs.existsSync(projectsDir)) {
|
|
140
141
|
return [];
|
|
@@ -225,7 +226,7 @@ function getMostRecentlyActiveSessionDir(sessionDirs) {
|
|
|
225
226
|
* @returns Absolute path to session directory, or null if not found
|
|
226
227
|
*/
|
|
227
228
|
function discoverSessionDirectory(workspacePath) {
|
|
228
|
-
const projectsDir =
|
|
229
|
+
const projectsDir = (0, claudePaths_1.getClaudeProjectsDir)();
|
|
229
230
|
// Strategy 1: Try computed encoded path (exact match)
|
|
230
231
|
const computedDir = getSessionDirectory(workspacePath);
|
|
231
232
|
if (fs.existsSync(computedDir)) {
|
|
@@ -498,7 +499,7 @@ function decodeEncodedPath(encoded) {
|
|
|
498
499
|
* ```
|
|
499
500
|
*/
|
|
500
501
|
function getAllProjectFolders(workspacePath) {
|
|
501
|
-
const projectsDir =
|
|
502
|
+
const projectsDir = (0, claudePaths_1.getClaudeProjectsDir)();
|
|
502
503
|
const folders = [];
|
|
503
504
|
try {
|
|
504
505
|
if (!fs.existsSync(projectsDir)) {
|
package/dist/promptHistory.d.ts
CHANGED
|
@@ -154,6 +154,18 @@ export interface PromptHistoryEntry {
|
|
|
154
154
|
* and text, by a later call once its metadata or status changes.
|
|
155
155
|
*/
|
|
156
156
|
metadataStatus: PromptHistoryMetadataStatus;
|
|
157
|
+
/**
|
|
158
|
+
* Opaque key of the session file this entry came from, the same as its
|
|
159
|
+
* cursor key. It tells apart two files that carry the same session id.
|
|
160
|
+
*/
|
|
161
|
+
sessionKey?: string;
|
|
162
|
+
}
|
|
163
|
+
/** A session by provider and id, optionally pinned to one file by `sessionKey`. */
|
|
164
|
+
export interface PromptHistorySessionRef {
|
|
165
|
+
provider: PromptHistoryProvider;
|
|
166
|
+
sessionId: string;
|
|
167
|
+
/** Opaque key of one session file; see `PromptHistoryEntry.sessionKey`. */
|
|
168
|
+
sessionKey?: string;
|
|
157
169
|
}
|
|
158
170
|
/**
|
|
159
171
|
* A log record permanently left out. Records over `maxRecordBytes` and lines
|
|
@@ -213,6 +225,15 @@ export interface PromptHistoryResult {
|
|
|
213
225
|
exclusions: PromptHistoryExclusion[];
|
|
214
226
|
/** A bound left bytes or files unread; call again with the cursor to continue. */
|
|
215
227
|
hasMore: boolean;
|
|
228
|
+
/**
|
|
229
|
+
* Sessions whose cursor entry this call added, advanced, moved, or dropped
|
|
230
|
+
* after a rewrite. Fetch them whole with `collectSessionPromptHistory({ sessionRefs })`.
|
|
231
|
+
*/
|
|
232
|
+
changed?: PromptHistorySessionRef[];
|
|
233
|
+
/** Whether this call read past where the cursor stood for any session. */
|
|
234
|
+
progressed?: boolean;
|
|
235
|
+
/** Realpaths of the roots scanned, after worktree expansion. */
|
|
236
|
+
roots?: string[];
|
|
216
237
|
}
|
|
217
238
|
/** @internal */
|
|
218
239
|
export declare const DEFAULT_BOUNDS: Required<PromptHistoryBounds>;
|
|
@@ -274,6 +295,17 @@ export interface FileOutcome {
|
|
|
274
295
|
export declare function collectPromptHistory(options: CollectPromptHistoryOptions): Promise<PromptHistoryResult>;
|
|
275
296
|
/** @internal */
|
|
276
297
|
export declare function emptyStats(): PromptHistoryStats;
|
|
298
|
+
/**
|
|
299
|
+
* True when a cursor entry's last pass reached the end of its file with no
|
|
300
|
+
* prompt still waiting for its answer: an unchanged file needs no read.
|
|
301
|
+
*/
|
|
302
|
+
export declare function isPromptHistorySessionSettled(session: PromptHistoryCursorSession): boolean;
|
|
303
|
+
/**
|
|
304
|
+
* Validates a stored cursor (versions 1 to 3). Returns it as a version-3
|
|
305
|
+
* cursor with malformed session entries dropped, or undefined when it is
|
|
306
|
+
* not a cursor at all.
|
|
307
|
+
*/
|
|
308
|
+
export declare function parsePromptHistoryCursor(value: unknown): PromptHistoryCursor | undefined;
|
|
277
309
|
/** @internal */
|
|
278
310
|
export declare function compareStrings(left: string, right: string): number;
|
|
279
311
|
/** @internal */
|