@kortix/sdk 0.13.3 → 0.13.5
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/dist/browser/cache/idb-sync-cache.d.ts +19 -1
- package/dist/browser/cache/idb-sync-cache.d.ts.map +1 -1
- package/dist/browser/cache/idb-sync-cache.js +39 -4
- package/dist/browser/cache/idb-sync-cache.js.map +1 -1
- package/dist/browser/session-sync/session-sync-registry.d.ts +20 -0
- package/dist/browser/session-sync/session-sync-registry.d.ts.map +1 -1
- package/dist/browser/session-sync/session-sync-registry.js +69 -6
- package/dist/browser/session-sync/session-sync-registry.js.map +1 -1
- package/dist/browser/session-sync/visibility.d.ts +19 -0
- package/dist/browser/session-sync/visibility.d.ts.map +1 -0
- package/dist/browser/session-sync/visibility.js +16 -0
- package/dist/browser/session-sync/visibility.js.map +1 -0
- package/dist/browser/stores/sandbox-connection-store.js +1 -1
- package/dist/browser/stores/sandbox-connection-store.js.map +1 -1
- package/dist/browser/stores/sync-store.d.ts +27 -1
- package/dist/browser/stores/sync-store.d.ts.map +1 -1
- package/dist/browser/stores/sync-store.js +198 -41
- package/dist/browser/stores/sync-store.js.map +1 -1
- package/dist/core/client/kortix.d.ts +0 -11
- package/dist/core/client/kortix.d.ts.map +1 -1
- package/dist/core/client/kortix.js +14 -8
- package/dist/core/client/kortix.js.map +1 -1
- package/dist/core/rest/projects-client/channels.d.ts +0 -3
- package/dist/core/rest/projects-client/channels.d.ts.map +1 -1
- package/dist/core/rest/projects-client/channels.js +0 -6
- package/dist/core/rest/projects-client/channels.js.map +1 -1
- package/dist/core/rest/projects-client/index.d.ts +0 -2
- package/dist/core/rest/projects-client/index.d.ts.map +1 -1
- package/dist/core/rest/projects-client/index.js +0 -2
- package/dist/core/rest/projects-client/index.js.map +1 -1
- package/dist/core/rest/projects-client/projects.d.ts +1 -1
- package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
- package/dist/core/rest/projects-client/projects.js +5 -3
- package/dist/core/rest/projects-client/projects.js.map +1 -1
- package/dist/core/rest/projects-client/sessions.d.ts +8 -33
- package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
- package/dist/core/rest/projects-client/sessions.js +1 -18
- package/dist/core/rest/projects-client/sessions.js.map +1 -1
- package/dist/core/runtime/attachment-part.d.ts +26 -0
- package/dist/core/runtime/attachment-part.d.ts.map +1 -0
- package/dist/core/runtime/attachment-part.js +41 -0
- package/dist/core/runtime/attachment-part.js.map +1 -0
- package/dist/core/runtime/client.d.ts +4 -2
- package/dist/core/runtime/client.d.ts.map +1 -1
- package/dist/core/runtime/client.js +3 -2
- package/dist/core/runtime/client.js.map +1 -1
- package/dist/core/runtime/opencode-v2-event-aliases.d.ts +184 -0
- package/dist/core/runtime/opencode-v2-event-aliases.d.ts.map +1 -0
- package/dist/core/runtime/opencode-v2-event-aliases.js +2 -0
- package/dist/core/runtime/opencode-v2-event-aliases.js.map +1 -0
- package/dist/core/runtime/pty.d.ts +11 -1
- package/dist/core/runtime/pty.d.ts.map +1 -1
- package/dist/core/runtime/pty.js +19 -6
- package/dist/core/runtime/pty.js.map +1 -1
- package/dist/core/session/connection.d.ts +64 -0
- package/dist/core/session/connection.d.ts.map +1 -0
- package/dist/core/session/connection.js +36 -0
- package/dist/core/session/connection.js.map +1 -0
- package/dist/core/session/index.d.ts +1 -0
- package/dist/core/session/index.d.ts.map +1 -1
- package/dist/core/session/index.js +1 -0
- package/dist/core/session/index.js.map +1 -1
- package/dist/core/session/preview-auth.d.ts +25 -0
- package/dist/core/session/preview-auth.d.ts.map +1 -1
- package/dist/core/session/preview-auth.js +31 -1
- package/dist/core/session/preview-auth.js.map +1 -1
- package/dist/core/session/preview-config.d.ts +26 -0
- package/dist/core/session/preview-config.d.ts.map +1 -0
- package/dist/core/session/preview-config.js +95 -0
- package/dist/core/session/preview-config.js.map +1 -0
- package/dist/core/session/preview-options.d.ts +25 -0
- package/dist/core/session/preview-options.d.ts.map +1 -0
- package/dist/core/session/preview-options.js +45 -0
- package/dist/core/session/preview-options.js.map +1 -0
- package/dist/core/session/preview.d.ts +8 -3
- package/dist/core/session/preview.d.ts.map +1 -1
- package/dist/core/session/preview.js +11 -4
- package/dist/core/session/preview.js.map +1 -1
- package/dist/core/session/rewind.d.ts +67 -24
- package/dist/core/session/rewind.d.ts.map +1 -1
- package/dist/core/session/rewind.js +74 -26
- package/dist/core/session/rewind.js.map +1 -1
- package/dist/core/session/server-store/active.d.ts +10 -12
- package/dist/core/session/server-store/active.d.ts.map +1 -1
- package/dist/core/session/server-store/active.js +11 -9
- package/dist/core/session/server-store/active.js.map +1 -1
- package/dist/core/session/server-store/url-helpers.d.ts +11 -2
- package/dist/core/session/server-store/url-helpers.d.ts.map +1 -1
- package/dist/core/session/server-store/url-helpers.js +11 -2
- package/dist/core/session/server-store/url-helpers.js.map +1 -1
- package/dist/core/session/url.d.ts +25 -2
- package/dist/core/session/url.d.ts.map +1 -1
- package/dist/core/session/url.js +87 -11
- package/dist/core/session/url.js.map +1 -1
- package/dist/core/session/working.d.ts +44 -0
- package/dist/core/session/working.d.ts.map +1 -1
- package/dist/core/session/working.js +146 -4
- package/dist/core/session/working.js.map +1 -1
- package/dist/core/session-sync/durable-log.d.ts +96 -0
- package/dist/core/session-sync/durable-log.d.ts.map +1 -0
- package/dist/core/session-sync/durable-log.js +94 -0
- package/dist/core/session-sync/durable-log.js.map +1 -0
- package/dist/core/session-sync/fragment.d.ts +27 -0
- package/dist/core/session-sync/fragment.d.ts.map +1 -0
- package/dist/core/session-sync/fragment.js +24 -0
- package/dist/core/session-sync/fragment.js.map +1 -0
- package/dist/core/session-sync/session-sync-controller.d.ts +83 -9
- package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
- package/dist/core/session-sync/session-sync-controller.js +183 -17
- package/dist/core/session-sync/session-sync-controller.js.map +1 -1
- package/dist/core/turns/grouping.d.ts.map +1 -1
- package/dist/core/turns/grouping.js +60 -23
- package/dist/core/turns/grouping.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/kortix.esm.min.js +24 -24
- package/dist/kortix.global.js +24 -24
- package/dist/platform/auth-core.d.ts +13 -1
- package/dist/platform/auth-core.d.ts.map +1 -1
- package/dist/platform/auth-core.js +13 -1
- package/dist/platform/auth-core.js.map +1 -1
- package/dist/react/opencode.d.ts +1 -0
- package/dist/react/opencode.d.ts.map +1 -1
- package/dist/react/opencode.js +3 -0
- package/dist/react/opencode.js.map +1 -1
- package/dist/react/use-admin-accounts.d.ts +35 -0
- package/dist/react/use-admin-accounts.d.ts.map +1 -1
- package/dist/react/use-admin-accounts.js +18 -0
- package/dist/react/use-admin-accounts.js.map +1 -1
- package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -1
- package/dist/react/use-opencode-events/handle-event.js +26 -0
- package/dist/react/use-opencode-events/handle-event.js.map +1 -1
- package/dist/react/use-opencode-events/index.d.ts.map +1 -1
- package/dist/react/use-opencode-events/index.js +59 -6
- package/dist/react/use-opencode-events/index.js.map +1 -1
- package/dist/react/use-opencode-events/rehydrate-targets.d.ts +18 -0
- package/dist/react/use-opencode-events/rehydrate-targets.d.ts.map +1 -0
- package/dist/react/use-opencode-events/rehydrate-targets.js +20 -0
- package/dist/react/use-opencode-events/rehydrate-targets.js.map +1 -0
- package/dist/react/use-opencode-events/stream-revival.d.ts +37 -0
- package/dist/react/use-opencode-events/stream-revival.d.ts.map +1 -0
- package/dist/react/use-opencode-events/stream-revival.js +53 -0
- package/dist/react/use-opencode-events/stream-revival.js.map +1 -0
- package/dist/react/use-opencode-pty.d.ts +7 -1
- package/dist/react/use-opencode-pty.d.ts.map +1 -1
- package/dist/react/use-opencode-pty.js +6 -2
- package/dist/react/use-opencode-pty.js.map +1 -1
- package/dist/react/use-opencode-sessions/agents.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/agents.js +13 -2
- package/dist/react/use-opencode-sessions/agents.js.map +1 -1
- package/dist/react/use-opencode-sessions/commands.d.ts +12 -0
- package/dist/react/use-opencode-sessions/commands.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/commands.js +15 -3
- package/dist/react/use-opencode-sessions/commands.js.map +1 -1
- package/dist/react/use-opencode-sessions/index.d.ts +1 -0
- package/dist/react/use-opencode-sessions/index.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/index.js +1 -0
- package/dist/react/use-opencode-sessions/index.js.map +1 -1
- package/dist/react/use-opencode-sessions/keys.d.ts +8 -0
- package/dist/react/use-opencode-sessions/keys.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/keys.js +8 -0
- package/dist/react/use-opencode-sessions/keys.js.map +1 -1
- package/dist/react/use-opencode-sessions/providers.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/providers.js +12 -2
- package/dist/react/use-opencode-sessions/providers.js.map +1 -1
- package/dist/react/use-opencode-sessions/shared.d.ts +23 -0
- package/dist/react/use-opencode-sessions/shared.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/shared.js +31 -0
- package/dist/react/use-opencode-sessions/shared.js.map +1 -1
- package/dist/react/use-opencode-sessions/vcs.d.ts +28 -0
- package/dist/react/use-opencode-sessions/vcs.d.ts.map +1 -0
- package/dist/react/use-opencode-sessions/vcs.js +42 -0
- package/dist/react/use-opencode-sessions/vcs.js.map +1 -0
- package/dist/react/use-session-prompts.d.ts +37 -2
- package/dist/react/use-session-prompts.d.ts.map +1 -1
- package/dist/react/use-session-prompts.js +62 -15
- package/dist/react/use-session-prompts.js.map +1 -1
- package/dist/react/use-session-send.d.ts +17 -0
- package/dist/react/use-session-send.d.ts.map +1 -1
- package/dist/react/use-session-send.js +40 -4
- package/dist/react/use-session-send.js.map +1 -1
- package/dist/react/use-session-sync.d.ts +13 -1
- package/dist/react/use-session-sync.d.ts.map +1 -1
- package/dist/react/use-session-sync.js +81 -55
- package/dist/react/use-session-sync.js.map +1 -1
- package/dist/react/use-session-working.d.ts +17 -0
- package/dist/react/use-session-working.d.ts.map +1 -1
- package/dist/react/use-session-working.js +33 -3
- package/dist/react/use-session-working.js.map +1 -1
- package/package.json +3 -3
- package/dist/browser/session-sync/session-transcript-cache.d.ts +0 -79
- package/dist/browser/session-sync/session-transcript-cache.d.ts.map +0 -1
- package/dist/browser/session-sync/session-transcript-cache.js +0 -91
- package/dist/browser/session-sync/session-transcript-cache.js.map +0 -1
- package/dist/core/rest/projects-client/public-voice-join.d.ts +0 -59
- package/dist/core/rest/projects-client/public-voice-join.d.ts.map +0 -1
- package/dist/core/rest/projects-client/public-voice-join.js +0 -64
- package/dist/core/rest/projects-client/public-voice-join.js.map +0 -1
- package/dist/core/rest/projects-client/transcription.d.ts +0 -5
- package/dist/core/rest/projects-client/transcription.d.ts.map +0 -1
- package/dist/core/rest/projects-client/transcription.js +0 -14
- package/dist/core/rest/projects-client/transcription.js.map +0 -1
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* IndexedDB persistence layer for the sync store.
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* **NOTHING IN KORTIX WRITES OR READS TRANSCRIPTS HERE ANY MORE.** The mirror
|
|
5
|
+
* that painted a session before its sandbox woke is gone (`use-session-sync.ts`
|
|
6
|
+
* carries the full reasoning): its freshness test read the transcript's SHAPE —
|
|
7
|
+
* message count, total part count, tail id — and the two changes that END a
|
|
8
|
+
* turn move none of them. `time.completed` on the tail and the `error` an abort
|
|
9
|
+
* stamps were both invisible, so a stopped thread's disk copy claimed the turn
|
|
10
|
+
* was still running and the next cold paint dimmed every message after it to
|
|
11
|
+
* "Queued".
|
|
12
|
+
*
|
|
13
|
+
* What remains, and why:
|
|
14
|
+
*
|
|
15
|
+
* - `deleteSessionFromIDB` / `clearSessionIDBCache` / `pruneIDBCache` — the
|
|
16
|
+
* CLEANUP half, still wired to session delete, sign-out and account switch.
|
|
17
|
+
* They must keep working to purge what earlier versions left on disk.
|
|
18
|
+
* - `saveSessionToIDB` / `loadSessionFromIDB` / `flushIDBWrites` /
|
|
19
|
+
* `loadAllSessionIdsFromIDB` — published API (`public-surface.snapshot.json`).
|
|
20
|
+
* Removing an export is a breaking change for a package on npm, so they stay
|
|
21
|
+
* and keep their contract. No Kortix host calls them.
|
|
4
22
|
*
|
|
5
23
|
* Schema: one object store "sessions" keyed by cacheKey, each entry holds
|
|
6
24
|
* { cacheKey, userId, sessionId, messages, parts, updatedAt }.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idb-sync-cache.d.ts","sourceRoot":"","sources":["../../../src/browser/cache/idb-sync-cache.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"idb-sync-cache.d.ts","sourceRoot":"","sources":["../../../src/browser/cache/idb-sync-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAsJH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,GAAG,EAAE,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC5B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAK9C;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,CA4BnE;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBlE;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB1D;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA6BnD"}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* IndexedDB persistence layer for the sync store.
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* **NOTHING IN KORTIX WRITES OR READS TRANSCRIPTS HERE ANY MORE.** The mirror
|
|
5
|
+
* that painted a session before its sandbox woke is gone (`use-session-sync.ts`
|
|
6
|
+
* carries the full reasoning): its freshness test read the transcript's SHAPE —
|
|
7
|
+
* message count, total part count, tail id — and the two changes that END a
|
|
8
|
+
* turn move none of them. `time.completed` on the tail and the `error` an abort
|
|
9
|
+
* stamps were both invisible, so a stopped thread's disk copy claimed the turn
|
|
10
|
+
* was still running and the next cold paint dimmed every message after it to
|
|
11
|
+
* "Queued".
|
|
12
|
+
*
|
|
13
|
+
* What remains, and why:
|
|
14
|
+
*
|
|
15
|
+
* - `deleteSessionFromIDB` / `clearSessionIDBCache` / `pruneIDBCache` — the
|
|
16
|
+
* CLEANUP half, still wired to session delete, sign-out and account switch.
|
|
17
|
+
* They must keep working to purge what earlier versions left on disk.
|
|
18
|
+
* - `saveSessionToIDB` / `loadSessionFromIDB` / `flushIDBWrites` /
|
|
19
|
+
* `loadAllSessionIdsFromIDB` — published API (`public-surface.snapshot.json`).
|
|
20
|
+
* Removing an export is a breaking change for a package on npm, so they stay
|
|
21
|
+
* and keep their contract. No Kortix host calls them.
|
|
4
22
|
*
|
|
5
23
|
* Schema: one object store "sessions" keyed by cacheKey, each entry holds
|
|
6
24
|
* { cacheKey, userId, sessionId, messages, parts, updatedAt }.
|
|
@@ -8,7 +26,25 @@
|
|
|
8
26
|
import { platformConfig } from '../../core/http/config.js';
|
|
9
27
|
import { buildSessionCacheKey } from './idb-sync-cache-key.js';
|
|
10
28
|
const DB_NAME = 'kortix-session-cache';
|
|
11
|
-
|
|
29
|
+
/**
|
|
30
|
+
* 3 — bumped to PURGE what the retired mirror left behind: `onupgradeneeded`
|
|
31
|
+
* drops and recreates the store.
|
|
32
|
+
*
|
|
33
|
+
* BUT NOT ON PAGE LOAD, and that is worth being exact about. `openDB` is lazy,
|
|
34
|
+
* and with the mirror gone the only callers that still reach it are
|
|
35
|
+
* `deleteSessionFromIDB` (a session was deleted) and `clearSessionIDBCache`
|
|
36
|
+
* (sign-out / account switch). So a user who does neither keeps their old
|
|
37
|
+
* entries on disk indefinitely — `pruneIDBCache`'s 50-session / 7-day caps are
|
|
38
|
+
* unreachable too, because the only thing that called it was the flush.
|
|
39
|
+
*
|
|
40
|
+
* That data is INERT: nothing reads it, so it cannot affect the transcript. It
|
|
41
|
+
* is wasted quota, not a correctness risk. Purging it eagerly would need a
|
|
42
|
+
* host-side call at app start, which is deliberately not added here.
|
|
43
|
+
*/
|
|
44
|
+
const DB_VERSION = 3;
|
|
45
|
+
/** Debounce for the batched write. Flat: the caller that made this cadence
|
|
46
|
+
* worth tuning is gone. */
|
|
47
|
+
const FLUSH_INTERVAL_MS = 500;
|
|
12
48
|
const STORE_NAME = 'sessions';
|
|
13
49
|
const MAX_CACHED_SESSIONS = 50;
|
|
14
50
|
const MAX_SESSION_AGE_MS = 7 * 24 * 60 * 60 * 1000; // 7 days
|
|
@@ -65,7 +101,6 @@ function openDB() {
|
|
|
65
101
|
}
|
|
66
102
|
const pendingWrites = new Map();
|
|
67
103
|
let flushTimer = null;
|
|
68
|
-
const FLUSH_INTERVAL_MS = 500;
|
|
69
104
|
// The caps below are only real if something enforces them. Prune once per page
|
|
70
105
|
// load, off the back of the first flush, so the cache cannot grow forever
|
|
71
106
|
// without any host having to remember to call it.
|
|
@@ -107,7 +142,7 @@ async function flushPendingWrites() {
|
|
|
107
142
|
});
|
|
108
143
|
}
|
|
109
144
|
catch {
|
|
110
|
-
// Non-critical
|
|
145
|
+
// Non-critical — this cache is disposable by construction.
|
|
111
146
|
}
|
|
112
147
|
}
|
|
113
148
|
export async function saveSessionToIDB(sessionId, messages, parts, kortixSessionScope) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idb-sync-cache.js","sourceRoot":"","sources":["../../../src/browser/cache/idb-sync-cache.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"idb-sync-cache.js","sourceRoot":"","sources":["../../../src/browser/cache/idb-sync-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,26 @@ interface SessionMessageClient {
|
|
|
21
21
|
}
|
|
22
22
|
export declare const ACTIVE_SESSION_PREFETCH_SOURCE: unique symbol;
|
|
23
23
|
type SessionPrefetchSource = string | typeof ACTIVE_SESSION_PREFETCH_SOURCE;
|
|
24
|
+
/**
|
|
25
|
+
* One page of a session's messages, normalized the way OpenCode's own client
|
|
26
|
+
* normalizes it.
|
|
27
|
+
*
|
|
28
|
+
* Their v1 branch (`packages/app/src/context/server-session.ts:566-583`) makes
|
|
29
|
+
* the same call we do — `client.session.messages({sessionID, limit, before})`,
|
|
30
|
+
* cursor from the `x-next-cursor` header — and then does three things we did
|
|
31
|
+
* not:
|
|
32
|
+
*
|
|
33
|
+
* 1. `.filter((item) => !!item?.info?.id)` — a row without a message id is
|
|
34
|
+
* dropped, not rendered. We passed `result.data ?? []` straight through,
|
|
35
|
+
* so one malformed row reached the renderer. That is the shape behind
|
|
36
|
+
* "TypeError: t is not iterable".
|
|
37
|
+
* 2. `.sort(compareMessages)` — deterministic transcript order rather than
|
|
38
|
+
* whatever the wire happened to say.
|
|
39
|
+
* 3. `item.parts.filter((part) => !!part?.id).sort(byId)` — same treatment
|
|
40
|
+
* for parts.
|
|
41
|
+
*
|
|
42
|
+
* Cheap, and it means nothing downstream has to be defensive about shape again.
|
|
43
|
+
*/
|
|
24
44
|
export declare function readSessionMessagePage(client: SessionMessageClient, sessionId: string, request: {
|
|
25
45
|
limit: number;
|
|
26
46
|
before?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sync-registry.d.ts","sourceRoot":"","sources":["../../../src/browser/session-sync/session-sync-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,iDAAiD,CAAC;AAIzD,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE;QACP,QAAQ,EAAE,CAAC,OAAO,EAAE;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC;CACH;AAED,eAAO,MAAM,8BAA8B,eAAoC,CAAC;AAChF,KAAK,qBAAqB,GAAG,MAAM,GAAG,OAAO,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"session-sync-registry.d.ts","sourceRoot":"","sources":["../../../src/browser/session-sync/session-sync-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,iDAAiD,CAAC;AAIzD,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE;QACP,QAAQ,EAAE,CAAC,OAAO,EAAE;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC;CACH;AAED,eAAO,MAAM,8BAA8B,eAAoC,CAAC;AAChF,KAAK,qBAAqB,GAAG,MAAM,GAAG,OAAO,8BAA8B,CAAC;AA8D5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,eAAe,CAAC,CAqB1B;AAoED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB,qBAAqB,CAKvB;AAED,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,EAC7B,MAAM,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAMnD;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAoBhG;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,iBAAiB,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,oBAAkC,GACzC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkB/B;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAItC;AAcD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,IAAI,CAuBP;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD;AAED,8EAA8E;AAC9E,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,IAAI,CAMN"}
|
|
@@ -31,14 +31,58 @@ function findExistingSessionEntry(sessionId, runtimeScope) {
|
|
|
31
31
|
}
|
|
32
32
|
return match;
|
|
33
33
|
}
|
|
34
|
+
/** Lexicographic compare, as upstream's `cmp` (`server-session.ts:28`). */
|
|
35
|
+
function cmp(a, b) {
|
|
36
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A transcript's canonical order, taken from OpenCode's `compareMessages`
|
|
40
|
+
* (`packages/app/src/utils/session-message.ts:15-21`): the key is
|
|
41
|
+
* `time.created + id`, so creation time leads and the id breaks ties.
|
|
42
|
+
*
|
|
43
|
+
* Sorting on the id alone is not equivalent — two messages created a
|
|
44
|
+
* millisecond apart can carry ids that sort the other way — and taking the
|
|
45
|
+
* wire order on trust is not equivalent either, which is what we did.
|
|
46
|
+
*/
|
|
47
|
+
function messageKey(info) {
|
|
48
|
+
return `${info.time?.created ?? 0}${info.id}`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* One page of a session's messages, normalized the way OpenCode's own client
|
|
52
|
+
* normalizes it.
|
|
53
|
+
*
|
|
54
|
+
* Their v1 branch (`packages/app/src/context/server-session.ts:566-583`) makes
|
|
55
|
+
* the same call we do — `client.session.messages({sessionID, limit, before})`,
|
|
56
|
+
* cursor from the `x-next-cursor` header — and then does three things we did
|
|
57
|
+
* not:
|
|
58
|
+
*
|
|
59
|
+
* 1. `.filter((item) => !!item?.info?.id)` — a row without a message id is
|
|
60
|
+
* dropped, not rendered. We passed `result.data ?? []` straight through,
|
|
61
|
+
* so one malformed row reached the renderer. That is the shape behind
|
|
62
|
+
* "TypeError: t is not iterable".
|
|
63
|
+
* 2. `.sort(compareMessages)` — deterministic transcript order rather than
|
|
64
|
+
* whatever the wire happened to say.
|
|
65
|
+
* 3. `item.parts.filter((part) => !!part?.id).sort(byId)` — same treatment
|
|
66
|
+
* for parts.
|
|
67
|
+
*
|
|
68
|
+
* Cheap, and it means nothing downstream has to be defensive about shape again.
|
|
69
|
+
*/
|
|
34
70
|
export async function readSessionMessagePage(client, sessionId, request) {
|
|
35
71
|
const result = await client.session.messages({
|
|
36
72
|
sessionID: sessionId,
|
|
37
73
|
limit: request.limit,
|
|
38
74
|
...(request.before ? { before: request.before } : {}),
|
|
39
75
|
});
|
|
76
|
+
const items = (Array.isArray(result.data) ? result.data : []).filter((item) => !!item && typeof item === 'object' && !!item.info?.id);
|
|
40
77
|
return {
|
|
41
|
-
messages:
|
|
78
|
+
messages: items
|
|
79
|
+
.map((item) => ({
|
|
80
|
+
info: item.info,
|
|
81
|
+
parts: (Array.isArray(item.parts) ? item.parts : [])
|
|
82
|
+
.filter((part) => !!part?.id)
|
|
83
|
+
.sort((a, b) => cmp(a.id, b.id)),
|
|
84
|
+
}))
|
|
85
|
+
.sort((a, b) => cmp(messageKey(a.info), messageKey(b.info))),
|
|
42
86
|
nextCursor: result.response?.headers.get('x-next-cursor') || undefined,
|
|
43
87
|
};
|
|
44
88
|
}
|
|
@@ -182,6 +226,17 @@ export async function loadSessionRuntimeStatus(sessionId, client = getClient())
|
|
|
182
226
|
export function loadSessionTranscriptMessages(sessionId) {
|
|
183
227
|
return loadCompleteSessionHistory((request) => readSessionMessagePage(getClient(), sessionId, request));
|
|
184
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* The frame types that carry transcript content. Everything else the runtime
|
|
231
|
+
* emits — status, idle, permission, question, diagnostics — says something
|
|
232
|
+
* about the session but nothing about whether this tab has its messages.
|
|
233
|
+
*/
|
|
234
|
+
const TRANSCRIPT_EVENT_TYPES = new Set([
|
|
235
|
+
'message.updated',
|
|
236
|
+
'message.part.updated',
|
|
237
|
+
'message.removed',
|
|
238
|
+
'message.part.removed',
|
|
239
|
+
]);
|
|
185
240
|
export function noteSessionSyncEvent(event) {
|
|
186
241
|
if (!event.properties || typeof event.properties !== 'object')
|
|
187
242
|
return;
|
|
@@ -193,11 +248,19 @@ export function noteSessionSyncEvent(event) {
|
|
|
193
248
|
part?.sessionID;
|
|
194
249
|
if (!sessionId)
|
|
195
250
|
return;
|
|
196
|
-
//
|
|
197
|
-
//
|
|
198
|
-
//
|
|
199
|
-
//
|
|
200
|
-
//
|
|
251
|
+
// Only a frame that MOVES the transcript renews freshness — and freshness is
|
|
252
|
+
// what postpones the liveness poll, the one repair for a stream that is
|
|
253
|
+
// dropping content.
|
|
254
|
+
//
|
|
255
|
+
// It used to be every frame carrying this session's id. That inverted the
|
|
256
|
+
// repair: a runtime emitting status while its message frames were lost kept
|
|
257
|
+
// renewing the very timer built to catch the loss, so the browser's
|
|
258
|
+
// transcript could sit arbitrarily stale and the poll would never run. The
|
|
259
|
+
// frames themselves are applied by the event handler, and "is this session
|
|
260
|
+
// working?" is answered by `projectWorking` over the server's turn authority
|
|
261
|
+
// — not by inferring a phase from which frame arrived when.
|
|
262
|
+
if (!TRANSCRIPT_EVENT_TYPES.has(event.type ?? ''))
|
|
263
|
+
return;
|
|
201
264
|
findExistingSessionEntry(sessionId)?.controller.noteActivity();
|
|
202
265
|
}
|
|
203
266
|
export function resetSessionSyncControllers() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sync-registry.js","sourceRoot":"","sources":["../../../src/browser/session-sync/session-sync-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,qBAAqB,EAIrB,0BAA0B,GAC3B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAkBpD,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAahF,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;AAErD,SAAS,eAAe,CAAC,YAAqB;IAC5C,OAAO,YAAY,IAAI,0BAA0B,EAAE,IAAI,MAAM,CAAC;AAChE,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB,EAAE,YAAqB;IAC7D,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,wBAAwB,CAC/B,SAAiB,EACjB,YAAqB;IAErB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,eAAe,CAAC,YAAY,CAAC,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAC/D,IAAI,KAAgC,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS;QAC5C,IAAI,KAAK;YAAE,OAAO,SAAS,CAAC;QAC5B,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAA4B,EAC5B,SAAiB,EACjB,OAA2C;IAE3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3C,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"session-sync-registry.js","sourceRoot":"","sources":["../../../src/browser/session-sync/session-sync-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run something when the tab comes back to the foreground.
|
|
3
|
+
*
|
|
4
|
+
* A backgrounded tab is throttled, not paused and not told: browsers clamp its
|
|
5
|
+
* timers (Chrome to roughly one tick a minute), so the transcript liveness
|
|
6
|
+
* poll — 10s while a session is working — effectively stops, and the SSE
|
|
7
|
+
* connection can be dropped without a visible error. Return is therefore the
|
|
8
|
+
* moment the tab is LEAST sure it has the runtime's messages, and the only
|
|
9
|
+
* moment it can find out cheaply.
|
|
10
|
+
*
|
|
11
|
+
* Framework-free and injectable so the rule is testable without a DOM.
|
|
12
|
+
*/
|
|
13
|
+
export interface VisibilityTarget {
|
|
14
|
+
visibilityState: string;
|
|
15
|
+
addEventListener: (type: 'visibilitychange', handler: () => void) => void;
|
|
16
|
+
removeEventListener: (type: 'visibilitychange', handler: () => void) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare function onTabVisible(run: () => void, target?: VisibilityTarget | undefined): () => void;
|
|
19
|
+
//# sourceMappingURL=visibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../../src/browser/session-sync/visibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC1E,mBAAmB,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC9E;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,IAAI,EACf,MAAM,GAAE,gBAAgB,GAAG,SAEkB,GAC5C,MAAM,IAAI,CAUZ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function onTabVisible(run, target = typeof document === 'undefined'
|
|
2
|
+
? undefined
|
|
3
|
+
: document) {
|
|
4
|
+
if (!target)
|
|
5
|
+
return () => { };
|
|
6
|
+
const handler = () => {
|
|
7
|
+
// Only the transition INTO visible. `visibilitychange` fires on the way out
|
|
8
|
+
// too, and reading a tail the moment a tab is hidden repairs nothing.
|
|
9
|
+
if (target.visibilityState !== 'visible')
|
|
10
|
+
return;
|
|
11
|
+
run();
|
|
12
|
+
};
|
|
13
|
+
target.addEventListener('visibilitychange', handler);
|
|
14
|
+
return () => target.removeEventListener('visibilitychange', handler);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=visibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../src/browser/session-sync/visibility.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,YAAY,CAC1B,GAAe,EACf,SAAuC,OAAO,QAAQ,KAAK,WAAW;IACpE,CAAC,CAAC,SAAS;IACX,CAAC,CAAE,QAAwC;IAE7C,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,4EAA4E;QAC5E,sEAAsE;QACtE,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO;QACjD,GAAG,EAAE,CAAC;IACR,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -151,7 +151,7 @@ export function resetForServerSwitch() {
|
|
|
151
151
|
// (use-opencode-events) AND message sync (use-session-sync) both gate on this
|
|
152
152
|
// same `healthy` flag, so seeding null left the FE UNSUBSCRIBED until the
|
|
153
153
|
// ~350ms client health poll flipped it green — by which point the server-side
|
|
154
|
-
// first turn (
|
|
154
|
+
// first turn (claimed from the API and delivered during boot) had accumulated
|
|
155
155
|
// and bulk-rendered AT ONCE instead of streaming. healthy=true subscribes at
|
|
156
156
|
// the switch, so part.updated events render token-by-token, and also reclaims
|
|
157
157
|
// the redundant health RTT. The 350ms poller still runs and self-corrects to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-connection-store.js","sourceRoot":"","sources":["../../../src/browser/stores/sandbox-connection-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sandbox-connection-store.js","sourceRoot":"","sources":["../../../src/browser/stores/sandbox-connection-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,34 @@ export type { MessageError, MessageWithParts, SessionRewindState };
|
|
|
18
18
|
* the object in the store. Two equal values are one observation.
|
|
19
19
|
*/
|
|
20
20
|
export declare function sameSessionStatus(a: SessionStatus | undefined, b: SessionStatus | undefined): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* PARTS are the exception, and deliberately so: every writer of a `parts[…]`
|
|
23
|
+
* array sorts it by id first (`optimisticAdd`'s `messageParts`, `hydrate`'s
|
|
24
|
+
* `inParts`), and every later insert goes in at the position `Binary.search`
|
|
25
|
+
* computed over an already-sorted list. That array is therefore id-sorted BY
|
|
26
|
+
* CONSTRUCTION — not by any assumption about ids and time — so a binary search
|
|
27
|
+
* over it is exact, and `upsertPart`/`removePart`/`applyPartDelta` need no
|
|
28
|
+
* fallback. Delete either of those two sorts and that stops being true; the
|
|
29
|
+
* three call sites would then need `indexOfId` exactly as the message paths do.
|
|
30
|
+
*/
|
|
21
31
|
interface SyncState {
|
|
22
32
|
messages: Record<string, Message[]>;
|
|
23
33
|
parts: Record<string, Part[]>;
|
|
24
34
|
sessionStatus: Record<string, SessionStatus>;
|
|
35
|
+
/**
|
|
36
|
+
* When the RUNTIME'S OWN OUTPUT last reached this tab, per session.
|
|
37
|
+
*
|
|
38
|
+
* Not a status, not a poll — the instant a streamed part or message landed.
|
|
39
|
+
* `projectWorking` reads it as the one input that is not an observer of the
|
|
40
|
+
* runtime but the runtime itself (see `WorkingActivityInput`): a composer
|
|
41
|
+
* showing its send arrow over a transcript that is visibly streaming is what
|
|
42
|
+
* its absence looked like.
|
|
43
|
+
*
|
|
44
|
+
* QUANTIZED to `ACTIVITY_STAMP_RESOLUTION_MS`. A busy runtime emits parts
|
|
45
|
+
* every few tens of milliseconds; stamping each one would re-render every
|
|
46
|
+
* subscriber at that rate for a value nothing needs to the millisecond.
|
|
47
|
+
*/
|
|
48
|
+
sessionActivityAt: Record<string, number>;
|
|
25
49
|
diffs: Record<string, FileDiff[]>;
|
|
26
50
|
todos: Record<string, Todo[]>;
|
|
27
51
|
/**
|
|
@@ -129,7 +153,7 @@ interface SyncState {
|
|
|
129
153
|
* invariant. A session with no local messages (or nothing in range)
|
|
130
154
|
* safely clears the record and does nothing else.
|
|
131
155
|
*/
|
|
132
|
-
applyCommittedRevert: (sessionId: string, boundaryId: string, watermark: string) => void;
|
|
156
|
+
applyCommittedRevert: (sessionId: string, boundaryId: string, watermark: string, hiddenIds?: readonly string[]) => void;
|
|
133
157
|
/**
|
|
134
158
|
* F2 — mark `sessionId` as owing a tail reconcile: a
|
|
135
159
|
* `session.next.revert.committed` event arrived with no tracked local
|
|
@@ -191,6 +215,8 @@ interface SyncState {
|
|
|
191
215
|
*/
|
|
192
216
|
markOptimisticInboxBacked: (sessionID: string, messageID: string) => void;
|
|
193
217
|
clearOptimisticMessages: (sessionID: string) => void;
|
|
218
|
+
/** Record that the runtime produced output for this session just now. */
|
|
219
|
+
noteSessionActivity: (sessionID: string, atMs?: number) => void;
|
|
194
220
|
/**
|
|
195
221
|
* The runtime's id for an optimistic message that was superseded under a
|
|
196
222
|
* DIFFERENT id (the control plane re-mints a wire id that would sort below
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-store.d.ts","sourceRoot":"","sources":["../../../src/browser/stores/sync-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,OAAO,EACP,KAAK,IAAI,aAAa,EACtB,IAAI,EAEJ,aAAa,EAEb,IAAI,EACJ,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,KAAK,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC/B,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAChC,CAAC,EAAE,aAAa,GAAG,SAAS,EAC5B,CAAC,EAAE,aAAa,GAAG,SAAS,GAC1B,OAAO,CAMT;
|
|
1
|
+
{"version":3,"file":"sync-store.d.ts","sourceRoot":"","sources":["../../../src/browser/stores/sync-store.ts"],"names":[],"mappings":"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"}
|