lody 0.57.1-next.8 → 0.57.1-next.9

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.
@@ -1,4 +1,4 @@
1
- import { a5 as deferredMake, a6 as deferredAwait, a7 as deferredSucceed, a8 as deferredFail, a9 as normalizeWorkspaceRelativePath, aa as DEFAULT_MAX_WATCHED_DIRECTORIES, ab as listNonIgnoredWorkspaceDirectories, ac as DEFAULT_IGNORED_DIRECTORY_NAMES, ad as runPromiseEffect, ae as map, af as gen, ag as trySyncEffect, ah as tryPromiseEffect, ai as scanWorkspaceEffect, aj as reconcileHostScanFileIds, ak as createHostScanResultWithFiles, al as resolveTransportAuth, am as ensureBucketEffect, an as forEach, ao as ensureDurableStreamEffect, ap as createFileMetadataSnapshotPayload, aq as succeed$1, ar as readEncryptedControlDocumentJsonEffect, as as createHostScanResultFromFileMetadataSnapshot, at as catchAll, au as sync, av as logCodeCollabRuntimeDebug, aw as writeEncryptedControlDocumentJsonEffect, c as validateMailboxSegment, n as createCodeCollabNamespace, ax as readStableFileBytesEffect, ay as isStableFileReadTooLargeError, az as fail$1, aA as FileRepoError, f as base64urlEncode, V as utf8Encode, l as canonicalJson, aB as all, aC as decodeUtf8Text, aD as DEFAULT_MAX_TEXT_LINE_UTF16_CODE_UNITS, aE as DEFAULT_MAX_TEXT_LINE_UTF8_BYTES, aF as DEFAULT_MAX_REALTIME_TEXT_BYTES, aG as assertMaterializerPathSafe, aH as flatMap, aI as either, U as utf8Decode, e as base64urlDecode, aJ as scoped, aK as acquireRelease, aL as promise, aM as async, aN as parseFileId, aO as assertDecodedTextLineLimits, aP as hasHostScanPathConflict, aQ as tryPromise, aR as _void, aS as normalizeWorkspacePath, aT as DEFAULT_MAX_BUCKET_BLOB_BYTES, O as serializeEncryptedBlobObjectV1, aU as isStableFileReadChangedError, w as encryptBlobObjectV1, aV as fetchWithAuthEffect, aW as putBlobRef, aX as acquireUseRelease, aY as createTurnHistoryMarker, aZ as parseTurnHistoryMarker, a_ as normalizeChangedFileEntries, a$ as createStreamUrl, b0 as StreamsCrdt, b1 as CODE_COLLAB_DURABLE_SSE_RECONNECT_CONFIG, b2 as InMemoryRemoteCursorStore, b3 as createDurableStreamsShardUrls, b4 as createSseOnlyFetch, b5 as createLoroDocAdapter, b6 as createTurnHistoryPerTurnDiffRecord, b7 as parseTurnHistoryPerTurnDiffRecord, b8 as parseTurnHistorySessionBaseState, b9 as summarizeCanonicalJsonForDebug, ba as readHostRpcMessagesV1Effect, a2 as verifyHostRpcCancelV1, I as normalizeCanonicalJsonValue, N as requiredRpcCapabilityV1, bb as forkDaemon, bc as isMissingHostRpcStreamAppendError, a3 as verifyHostRpcRequestV1, bd as createHostRpcEncryptedEnvelopeV1Effect, be as appendHostRpcMessageToExistingStreamV1Effect, bf as parseDirectoryId, bg as tap, bh as as, bi as tapError, bj as asVoid, bk as appendEphemeralStream, bl as EphemeralStore, bm as EphemeralStreamCrdt, bn as EphemeralStoreAdaptor, M as randomBytes, bo as ensureDurableStreamWithStatusEffect, bp as createInitialRemoteCursor, bq as reconcileHostScanFileIdsByTextContent, br as DEFAULT_CODE_COLLAB_HOST_PRESENCE_MS, bs as DEFAULT_CODE_COLLAB_AUTOSAVE_DEBOUNCE_MS, bt as isTerminalTurnHistoryMarkerPhase, bu as match, bv as currentTimeMillis, bw as sleepWithAbortEffect, bx as raceFirst, by as updateTurnHistoryChangedFiles, bz as markTurnHistoryChangedFilesIncomplete, bA as parseHostRpcMessagesFromEncryptedEnvelopesV1Effect, bB as computeTurnHistorySnapshotLineStats, bC as createEncryptedControlDocumentWholeValueStore, _ as verifierFromPrivateKey, bD as initializeLazyDirectoryInScanEffect, bE as countTurnHistoryTextLineDiffStats, bF as addFinalizer, bG as forkScoped, bH as timeoutFail, bI as sleep, bJ as ignore, bK as createStreamsClient, bL as parseHostRpcMessagesFromPartV1Effect, o as createHostRpcCancelV1, p as createHostRpcRequestV1, bM as HostRpcStreamReadError, bN as canonicalPathKey, bO as option, bP as parseFileMetadataSnapshot, B as BLOB_CODE_COLLAB_FEATURES_V1, K as parseEncryptedBlobObjectV1, r as decryptBlobObjectV1, bQ as parseBlobRefV1, bR as runFork, __tla as __tla_0 } from "../index.js";
1
+ import { a5 as deferredMake, a6 as deferredAwait, a7 as deferredSucceed, a8 as deferredFail, a9 as normalizeWorkspaceRelativePath, aa as DEFAULT_MAX_WATCHED_DIRECTORIES, ab as listNonIgnoredWorkspaceDirectories, ac as DEFAULT_IGNORED_DIRECTORY_NAMES, ad as runPromiseEffect, ae as map, af as gen, ag as trySyncEffect, ah as tryPromiseEffect, ai as scanWorkspaceEffect, aj as reconcileHostScanFileIds, ak as createHostScanResultWithFiles, al as resolveTransportAuth, am as ensureBucketEffect, an as forEach, ao as ensureDurableStreamEffect, ap as createFileMetadataSnapshotPayload, aq as succeed$1, ar as readEncryptedControlDocumentJsonEffect, as as createHostScanResultFromFileMetadataSnapshot, at as catchAll, au as sync, av as logCodeCollabRuntimeDebug, aw as writeEncryptedControlDocumentJsonEffect, c as validateMailboxSegment, n as createCodeCollabNamespace, ax as readStableFileBytesEffect, ay as isStableFileReadTooLargeError, az as fail$1, aA as FileRepoError, f as base64urlEncode, V as utf8Encode, l as canonicalJson, aB as all, aC as decodeUtf8Text, aD as DEFAULT_MAX_TEXT_LINE_UTF16_CODE_UNITS, aE as DEFAULT_MAX_TEXT_LINE_UTF8_BYTES, aF as DEFAULT_MAX_REALTIME_TEXT_BYTES, aG as assertMaterializerPathSafe, aH as flatMap, aI as either, U as utf8Decode, e as base64urlDecode, aJ as scoped, aK as acquireRelease, aL as promise, aM as async, aN as parseFileId, aO as assertDecodedTextLineLimits, aP as hasHostScanPathConflict, aQ as tryPromise, aR as _void, aS as normalizeWorkspacePath, aT as DEFAULT_MAX_BUCKET_BLOB_BYTES, O as serializeEncryptedBlobObjectV1, aU as isStableFileReadChangedError, w as encryptBlobObjectV1, aV as fetchWithAuthEffect, aW as putBlobRef, aX as createStreamUrl, aY as StreamsCrdt, aZ as CODE_COLLAB_DURABLE_SSE_RECONNECT_CONFIG, a_ as InMemoryRemoteCursorStore, a$ as createDurableStreamsShardUrls, b0 as createSseOnlyFetch, b1 as createLoroDocAdapter, b2 as acquireUseRelease, b3 as createTurnHistoryMarker, b4 as parseTurnHistoryMarker, b5 as normalizeChangedFileEntries, b6 as createTurnHistoryPerTurnDiffRecord, b7 as parseTurnHistoryPerTurnDiffRecord, b8 as parseTurnHistorySessionBaseState, b9 as summarizeCanonicalJsonForDebug, ba as readHostRpcMessagesV1Effect, a2 as verifyHostRpcCancelV1, I as normalizeCanonicalJsonValue, N as requiredRpcCapabilityV1, bb as forkDaemon, bc as isMissingHostRpcStreamAppendError, a3 as verifyHostRpcRequestV1, bd as createHostRpcEncryptedEnvelopeV1Effect, be as appendHostRpcMessageToExistingStreamV1Effect, bf as parseDirectoryId, bg as tap, bh as as, bi as tapError, bj as asVoid, bk as appendEphemeralStream, bl as EphemeralStore, bm as EphemeralStreamCrdt, bn as EphemeralStoreAdaptor, M as randomBytes, bo as ensureDurableStreamWithStatusEffect, bp as createInitialRemoteCursor, bq as reconcileHostScanFileIdsByTextContent, br as DEFAULT_CODE_COLLAB_HOST_PRESENCE_MS, bs as DEFAULT_CODE_COLLAB_AUTOSAVE_DEBOUNCE_MS, bt as isTerminalTurnHistoryMarkerPhase, bu as match, bv as currentTimeMillis, bw as sleepWithAbortEffect, bx as raceFirst, by as updateTurnHistoryChangedFiles, bz as markTurnHistoryChangedFilesIncomplete, bA as parseHostRpcMessagesFromEncryptedEnvelopesV1Effect, bB as computeTurnHistorySnapshotLineStats, bC as createEncryptedControlDocumentWholeValueStore, _ as verifierFromPrivateKey, bD as initializeLazyDirectoryInScanEffect, bE as countTurnHistoryTextLineDiffStats, bF as addFinalizer, bG as forkScoped, bH as timeoutFail, bI as sleep, bJ as ignore, bK as createStreamsClient, bL as parseHostRpcMessagesFromPartV1Effect, o as createHostRpcCancelV1, p as createHostRpcRequestV1, bM as HostRpcStreamReadError, bN as canonicalPathKey, bO as option, bP as parseFileMetadataSnapshot, B as BLOB_CODE_COLLAB_FEATURES_V1, K as parseEncryptedBlobObjectV1, r as decryptBlobObjectV1, bQ as parseBlobRefV1, bR as runFork, __tla as __tla_0 } from "../index.js";
2
2
  import { p as generateHostSessionSecretsV1, i as createInitialSessionStateV1, v as serializeShareLinkV1, m as createShareLinkSecretV1, o as encryptEphemeralPayloadV1, h as createHostPresenceV1, n as decryptEphemeralPayloadV1, z as verifyHostPresenceV1, e as computeEphemeralStateKeyV1, g as createEncryptedEphemeralStateEnvelopeV1, w as unwrapEncryptedEphemeralStateEnvelopeV1, r as parseHostPresenceV1, k as createParticipantPresenceV1, f as createCursorStateV1, l as createSelectionStateV1, s as parseParticipantPresenceV1, q as parseCursorStateV1, t as parseSelectionStateV1, u as parseShareLinkV1, a as assertCompatibleSessionStateV1, c as assertShareLinkMatchesSessionStateV1, __tla as __tla_1 } from "./share-link-DarNKeWd.js";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { lstat, realpath, writeFile, chmod, rename, unlink, mkdtemp, rm, readFile } from "node:fs/promises";
@@ -53,7 +53,7 @@ import "node:buffer";
53
53
  import "node:async_hooks";
54
54
  import { __tla as __tla_3 } from "../index.js";
55
55
  import { bS, bT, bU, bV, bW, bX, bY, bZ, b_, b$, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, i, cl, cm, cn, t, y, co, cp, cq, cr, cs, ct, cu, cv, cw, cx, cy, cz, cA, L, cB, cC, cD, cE, cF, cG, cH, cI, cJ, cK, cL, cM, cN, cO, cP, cQ, cR, cS, cT, cU, cV, cW, cX, cY, cZ } from "../index.js";
56
- let CODE_COLLAB_PACKAGE, CodeCollabGuestSession, CodeCollabTextDocumentStore, DEFAULT_TEXT_DOCUMENT_UPDATE_TIMEOUT_MS, GuestRpcClient, WEB_JOIN_LINK_MAX_LENGTH, WEB_JOIN_LINK_WARNING_LENGTH, assertWebJoinLinkWithinBudget, buildCapturedTurnHistoryRecords, classifyHostFileWatchPathEvent, classifyHostLivenessFromPresences, clearTurnHistorySessionBase, clearTurnHistorySessionBaseEffect, computeHostFileWatcherMaxWaitMs, computeHostLoopSleepMs, createDiskTokenForPath, createDiskTokenForPathEffect, createHostHydrationContextFromSession, createHostLoopWakeSignal, createHostSaveEchoSuppressorV1, createLoroCursorAnchorV1, createWebJoinLink, createWebJoinLinks, dispatchHostRpcEnvelopeV1, dispatchHostRpcEnvelopeV1Effect, downloadBlobObjectEffect, getHostLivenessStatusV1, getHostLivenessStatusV1Effect, handleHostFileWatcherEventV1, hydrateBlobFile, hydrateBlobFileEffect, hydrateTextFile, hydrateTextFileEffect, initializeTextSaveStateV1, initializeTextSaveStateV1Effect, makeHostLoopTelemetryHandlers, markTextSaveStateDirtyForSnapshotV1, parseHostCommandArgs, prepareHostSession, prepareHostSessionEffect, prepareHostSessionRuntime, prepareHostSessionRuntimeEffect, prepareTextHydrationBaselineV1Effect, processHostRpcBatchEffect$1, processHostRpcBatchV1, projectTurnHistorySessionBaseRefs, publishCursorStateV1, publishCursorStateV1Effect, publishHostCursorV1, publishHostParticipantPresenceV1, publishHostPresenceV1, publishHostPresenceV1Effect, publishHostSelectionV1, publishHostSession, publishHostSessionEffect, publishHostSessionRuntime, publishHostSessionRuntimeEffect, publishParticipantPresenceV1, publishParticipantPresenceV1Effect, publishPreparedHostSessionRuntime, publishPreparedHostSessionRuntimeEffect, publishSelectionStateV1, publishSelectionStateV1Effect, readCursorStateSnapshotV1, readCursorStateSnapshotV1Effect, readHostCursorsV1, readHostParticipantPresenceV1, readHostPresencePeerSnapshotV1, readHostPresencePeerSnapshotV1Effect, readHostPresenceSnapshotV1, readHostPresenceSnapshotV1Effect, readHostSelectionsV1, readParticipantPresenceSnapshotV1, readParticipantPresenceSnapshotV1Effect, readSelectionStateSnapshotV1, readSelectionStateSnapshotV1Effect, readTurnHistoryChangedFiles, readTurnHistoryChangedFilesAtFrontiers, readTurnHistoryChangedFilesAtFrontiersEffect, readTurnHistoryChangedFilesAtMarker, readTurnHistoryChangedFilesAtMarkerEffect, readTurnHistoryChangedFilesEffect, readTurnHistoryInitialBase, readTurnHistoryInitialBaseEffect, readTurnHistoryMarkers, readTurnHistoryMarkersEffect, readTurnHistoryPerTurnDiffs, readTurnHistoryPerTurnDiffsEffect, readTurnHistorySessionBase, readTurnHistorySessionBaseEffect, readTurnHistorySessionBaseRefs, readTurnHistorySessionBaseRefsEffect, reconcileOpenTextDocumentRenamesByContent, reconcileOpenTextDocumentRenamesByContentEffect, recordTextHydrationBaselineV1Effect, recordTurnHistoryInitialBase, recordTurnHistoryInitialBaseEffect, recordTurnHistorySessionBase, recordTurnHistorySessionBaseEffect, reloadTextFileFromDiskIfChangedV1, reloadTextFileFromDiskIfChangedV1Effect, reloadTextFileFromDiskV1, reloadTextFileFromDiskV1Effect, requestPendingMetadataRescanV1, resolveHostLspDefinition, resolveHostLspDefinitionEffect, resolveHostLspReferences, resolveHostLspReferencesEffect, resolveLoroCursorAnchorOffsetV1, resolveSaveConflictV1, resolveSaveConflictV1Effect, runHostEventLoopEffect, runHostEventLoopV1, saveTextFileV1, saveTextFileV1Effect, shouldAutoSaveDirtyTextDocument, snapshotHostTurnHistoryFiles, snapshotHostTurnHistoryFilesEffect, startHostFileWatcher, startHostSession, startHostSessionEffect, startPreparedHostSession, startPreparedHostSessionEffect, takeDuePendingMetadataRescanV1, watchCursorStateV1, watchHostPresencePeerSnapshotV1, watchHostPresenceSnapshotV1, watchParticipantPresenceV1, watchSelectionStateV1, writeHostTurnHistoryChangedFiles, writeHostTurnHistoryChangedFilesEffect, writeHostTurnHistoryMarker, writeHostTurnHistoryMarkerEffect, writeTurnHistoryChangedFiles, writeTurnHistoryChangedFilesAndMarkerEffect, writeTurnHistoryChangedFilesEffect, writeTurnHistoryChangedFilesWithFrontiersEffect, writeTurnHistoryMarker, writeTurnHistoryMarkerEffect, writeTurnHistoryPerTurnDiff, writeTurnHistoryPerTurnDiffEffect;
56
+ let CODE_COLLAB_PACKAGE, CodeCollabGuestSession, CodeCollabTextDocumentStore, DEFAULT_TEXT_DOCUMENT_UPDATE_TIMEOUT_MS, GuestRpcClient, TurnHistoryDocStore, WEB_JOIN_LINK_MAX_LENGTH, WEB_JOIN_LINK_WARNING_LENGTH, assertWebJoinLinkWithinBudget, buildCapturedTurnHistoryRecords, classifyHostFileWatchPathEvent, classifyHostLivenessFromPresences, clearTurnHistorySessionBase, clearTurnHistorySessionBaseEffect, computeHostFileWatcherMaxWaitMs, computeHostLoopSleepMs, createDiskTokenForPath, createDiskTokenForPathEffect, createHostHydrationContextFromSession, createHostLoopWakeSignal, createHostSaveEchoSuppressorV1, createLoroCursorAnchorV1, createWebJoinLink, createWebJoinLinks, dispatchHostRpcEnvelopeV1, dispatchHostRpcEnvelopeV1Effect, downloadBlobObjectEffect, getHostLivenessStatusV1, getHostLivenessStatusV1Effect, handleHostFileWatcherEventV1, hydrateBlobFile, hydrateBlobFileEffect, hydrateTextFile, hydrateTextFileEffect, initializeTextSaveStateV1, initializeTextSaveStateV1Effect, makeHostLoopTelemetryHandlers, markTextSaveStateDirtyForSnapshotV1, parseHostCommandArgs, prepareHostSession, prepareHostSessionEffect, prepareHostSessionRuntime, prepareHostSessionRuntimeEffect, prepareTextHydrationBaselineV1Effect, processHostRpcBatchEffect$1, processHostRpcBatchV1, projectTurnHistorySessionBaseRefs, publishCursorStateV1, publishCursorStateV1Effect, publishHostCursorV1, publishHostParticipantPresenceV1, publishHostPresenceV1, publishHostPresenceV1Effect, publishHostSelectionV1, publishHostSession, publishHostSessionEffect, publishHostSessionRuntime, publishHostSessionRuntimeEffect, publishParticipantPresenceV1, publishParticipantPresenceV1Effect, publishPreparedHostSessionRuntime, publishPreparedHostSessionRuntimeEffect, publishSelectionStateV1, publishSelectionStateV1Effect, readCursorStateSnapshotV1, readCursorStateSnapshotV1Effect, readHostCursorsV1, readHostParticipantPresenceV1, readHostPresencePeerSnapshotV1, readHostPresencePeerSnapshotV1Effect, readHostPresenceSnapshotV1, readHostPresenceSnapshotV1Effect, readHostSelectionsV1, readParticipantPresenceSnapshotV1, readParticipantPresenceSnapshotV1Effect, readSelectionStateSnapshotV1, readSelectionStateSnapshotV1Effect, readTurnHistoryChangedFiles, readTurnHistoryChangedFilesAtFrontiers, readTurnHistoryChangedFilesAtFrontiersEffect, readTurnHistoryChangedFilesAtMarker, readTurnHistoryChangedFilesAtMarkerEffect, readTurnHistoryChangedFilesEffect, readTurnHistoryInitialBase, readTurnHistoryInitialBaseEffect, readTurnHistoryMarkers, readTurnHistoryMarkersEffect, readTurnHistoryPerTurnDiffs, readTurnHistoryPerTurnDiffsEffect, readTurnHistorySessionBase, readTurnHistorySessionBaseEffect, readTurnHistorySessionBaseRefs, readTurnHistorySessionBaseRefsEffect, reconcileOpenTextDocumentRenamesByContent, reconcileOpenTextDocumentRenamesByContentEffect, recordTextHydrationBaselineV1Effect, recordTurnHistoryInitialBase, recordTurnHistoryInitialBaseEffect, recordTurnHistorySessionBase, recordTurnHistorySessionBaseEffect, reloadTextFileFromDiskIfChangedV1, reloadTextFileFromDiskIfChangedV1Effect, reloadTextFileFromDiskV1, reloadTextFileFromDiskV1Effect, requestPendingMetadataRescanV1, resolveHostLspDefinition, resolveHostLspDefinitionEffect, resolveHostLspReferences, resolveHostLspReferencesEffect, resolveLoroCursorAnchorOffsetV1, resolveSaveConflictV1, resolveSaveConflictV1Effect, runHostEventLoopEffect, runHostEventLoopV1, saveTextFileV1, saveTextFileV1Effect, shouldAutoSaveDirtyTextDocument, snapshotHostTurnHistoryFiles, snapshotHostTurnHistoryFilesEffect, startHostFileWatcher, startHostSession, startHostSessionEffect, startPreparedHostSession, startPreparedHostSessionEffect, takeDuePendingMetadataRescanV1, watchCursorStateV1, watchHostPresencePeerSnapshotV1, watchHostPresenceSnapshotV1, watchParticipantPresenceV1, watchSelectionStateV1, writeHostTurnHistoryChangedFiles, writeHostTurnHistoryChangedFilesEffect, writeHostTurnHistoryMarker, writeHostTurnHistoryMarkerEffect, writeTurnHistoryChangedFiles, writeTurnHistoryChangedFilesAndMarkerEffect, writeTurnHistoryChangedFilesEffect, writeTurnHistoryChangedFilesWithFrontiersEffect, writeTurnHistoryMarker, writeTurnHistoryMarkerEffect, writeTurnHistoryPerTurnDiff, writeTurnHistoryPerTurnDiffEffect;
57
57
  let __tla = Promise.all([
58
58
  (() => {
59
59
  try {
@@ -2977,6 +2977,77 @@ let __tla = Promise.all([
2977
2977
  frontiers: input.marker.f
2978
2978
  });
2979
2979
  };
2980
+ TurnHistoryDocStore = class {
2981
+ doc;
2982
+ crdt;
2983
+ syncPromise;
2984
+ closePromise;
2985
+ closed = false;
2986
+ constructor(input) {
2987
+ this.doc = new LoroDoc();
2988
+ this.crdt = createTurnHistoryCrdt(input, this.doc);
2989
+ }
2990
+ readMarkersEffect() {
2991
+ return gen(this, function* () {
2992
+ yield* this.syncEffect();
2993
+ return yield* trySyncEffect(() => this.doc.getList(TURN_MARKERS_LIST_NAME).toArray().map((item) => parseTurnHistoryMarker(item)));
2994
+ });
2995
+ }
2996
+ readChangedFilesEffect() {
2997
+ return gen(this, function* () {
2998
+ yield* this.syncEffect();
2999
+ return yield* trySyncEffect(() => readChangedFilesFromDoc(this.doc));
3000
+ });
3001
+ }
3002
+ readPerTurnDiffsEffect() {
3003
+ return gen(this, function* () {
3004
+ yield* this.syncEffect();
3005
+ return yield* trySyncEffect(() => readPerTurnDiffsFromDoc(this.doc));
3006
+ });
3007
+ }
3008
+ readChangedFilesAtMarkerEffect(marker) {
3009
+ return this.readChangedFilesAtFrontiersEffect(marker.f);
3010
+ }
3011
+ readChangedFilesAtFrontiersEffect(frontiers) {
3012
+ return gen(this, function* () {
3013
+ yield* this.syncEffect();
3014
+ return yield* trySyncEffect(() => {
3015
+ const fork = this.doc.forkAt(parseFrontiersFromCanonicalJson$1(frontiers));
3016
+ return readChangedFilesFromDoc(fork);
3017
+ });
3018
+ });
3019
+ }
3020
+ closeEffect() {
3021
+ return tryPromiseEffect(() => this.close()).pipe(catchAll(() => _void));
3022
+ }
3023
+ syncEffect() {
3024
+ return tryPromiseEffect(() => this.syncOnce());
3025
+ }
3026
+ syncOnce() {
3027
+ this.assertOpen();
3028
+ let syncPromise = this.syncPromise;
3029
+ if (syncPromise === void 0) {
3030
+ syncPromise = runPromiseEffect(syncTurnHistoryCrdtEffect(this.crdt));
3031
+ this.syncPromise = syncPromise;
3032
+ syncPromise.then(() => {
3033
+ if (this.syncPromise === syncPromise) this.syncPromise = void 0;
3034
+ }, () => {
3035
+ if (this.syncPromise === syncPromise) this.syncPromise = void 0;
3036
+ });
3037
+ }
3038
+ return syncPromise.then(() => this.assertOpen());
3039
+ }
3040
+ assertOpen() {
3041
+ if (this.closed) throw new Error("turn history doc store is closed");
3042
+ }
3043
+ close() {
3044
+ this.closed = true;
3045
+ if (this.closePromise === void 0) {
3046
+ this.closePromise = this.crdt.close().catch(() => void 0);
3047
+ }
3048
+ return this.closePromise;
3049
+ }
3050
+ };
2980
3051
  recordTurnHistorySessionBase = async function(input) {
2981
3052
  return runPromiseEffect(recordTurnHistorySessionBaseEffect(input));
2982
3053
  };
@@ -8114,10 +8185,16 @@ let __tla = Promise.all([
8114
8185
  workspaceRoot: input.runtime.plan.scan.workspaceRoot,
8115
8186
  scan: input.runtime.plan.scan,
8116
8187
  onTextFileChanged: (fileId, filePath) => {
8117
- if (input.hostSaveEchoSuppressor?.shouldSuppress(filePath, input.nowMs?.() ?? Date.now())) {
8188
+ const nowMs = input.nowMs?.() ?? Date.now();
8189
+ if (input.hostSaveEchoSuppressor?.shouldSuppress(filePath, nowMs)) {
8118
8190
  return;
8119
8191
  }
8120
8192
  input.pendingExternalReloadFileIds.add(fileId);
8193
+ requestPendingMetadataRescanV1({
8194
+ pending: input.pendingMetadataRescan,
8195
+ nowMs,
8196
+ debounceMs: input.debounceMs ?? 50
8197
+ });
8121
8198
  input.externalChangeWakeSignal?.notify();
8122
8199
  },
8123
8200
  onWorkspaceChanged: (changedPath) => {
@@ -10417,6 +10494,7 @@ export {
10417
10494
  HostRpcStreamReadError,
10418
10495
  ca as HostScanLimitError,
10419
10496
  cb as TURN_HISTORY_MARKER_KIND,
10497
+ TurnHistoryDocStore,
10420
10498
  WEB_JOIN_LINK_MAX_LENGTH,
10421
10499
  WEB_JOIN_LINK_WARNING_LENGTH,
10422
10500
  __tla,