@zakstam/codex-local-component 0.1.2 → 0.2.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/README.md +30 -44
- package/dist/app-server/client.d.ts +23 -0
- package/dist/app-server/client.d.ts.map +1 -0
- package/dist/app-server/client.js +33 -0
- package/dist/app-server/client.js.map +1 -0
- package/dist/app-server/index.d.ts +2 -0
- package/dist/app-server/index.d.ts.map +1 -0
- package/dist/app-server/index.js +2 -0
- package/dist/app-server/index.js.map +1 -0
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/sync.d.ts +4 -4
- package/dist/client/sync.d.ts.map +1 -1
- package/dist/client/sync.js +4 -4
- package/dist/client/sync.js.map +1 -1
- package/dist/client/types.d.ts +3 -3
- package/dist/client/types.d.ts.map +1 -1
- package/dist/component/_generated/component.d.ts +60 -6
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/approvals.d.ts.map +1 -1
- package/dist/component/approvals.js +33 -12
- package/dist/component/approvals.js.map +1 -1
- package/dist/component/messages.d.ts.map +1 -1
- package/dist/component/messages.js +12 -3
- package/dist/component/messages.js.map +1 -1
- package/dist/component/pagination.d.ts +5 -0
- package/dist/component/pagination.d.ts.map +1 -0
- package/dist/component/pagination.js +30 -0
- package/dist/component/pagination.js.map +1 -0
- package/dist/component/schema.d.ts +34 -6
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +22 -3
- package/dist/component/schema.js.map +1 -1
- package/dist/component/sync.d.ts +49 -5
- package/dist/component/sync.d.ts.map +1 -1
- package/dist/component/sync.js +44 -11
- package/dist/component/sync.js.map +1 -1
- package/dist/component/syncIngest.d.ts +31 -4
- package/dist/component/syncIngest.d.ts.map +1 -1
- package/dist/component/syncIngest.js +234 -148
- package/dist/component/syncIngest.js.map +1 -1
- package/dist/component/syncReplay.d.ts +28 -7
- package/dist/component/syncReplay.d.ts.map +1 -1
- package/dist/component/syncReplay.js +122 -60
- package/dist/component/syncReplay.js.map +1 -1
- package/dist/component/threads.d.ts.map +1 -1
- package/dist/component/threads.js +12 -4
- package/dist/component/threads.js.map +1 -1
- package/dist/protocol/parser.js +7 -7
- package/dist/protocol/parser.js.map +1 -1
- package/dist/protocol/schemas/index.d.ts +1 -1
- package/dist/protocol/schemas/index.d.ts.map +1 -1
- package/dist/protocol/schemas/index.js +1 -1
- package/dist/protocol/schemas/index.js.map +1 -1
- package/dist/react/types.d.ts +10 -0
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/useCodexStreamOverlay.d.ts.map +1 -1
- package/dist/react/useCodexStreamOverlay.js +46 -8
- package/dist/react/useCodexStreamOverlay.js.map +1 -1
- package/package.json +6 -1
|
@@ -1,24 +1,56 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "convex/react";
|
|
3
3
|
import { useEffect, useState } from "react";
|
|
4
|
-
function applyDeltaBatch(state,
|
|
4
|
+
function applyDeltaBatch(state, payload) {
|
|
5
|
+
const { deltas, streamWindows, nextCheckpoints } = payload;
|
|
5
6
|
if (deltas.length === 0) {
|
|
6
|
-
|
|
7
|
+
const nextOnly = { ...state.cursorsByStreamId };
|
|
8
|
+
const resetStreamIds = new Set(streamWindows
|
|
9
|
+
.filter((window) => window.status === "rebased" || window.status === "stale")
|
|
10
|
+
.map((window) => window.streamId));
|
|
11
|
+
const nextDeltas = state.deltas.filter((delta) => !resetStreamIds.has(delta.streamId));
|
|
12
|
+
for (const window of streamWindows) {
|
|
13
|
+
if (window.status !== "ok") {
|
|
14
|
+
nextOnly[window.streamId] = window.serverCursorStart;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
for (const checkpoint of nextCheckpoints) {
|
|
18
|
+
nextOnly[checkpoint.streamId] = Math.max(nextOnly[checkpoint.streamId] ?? 0, checkpoint.cursor);
|
|
19
|
+
}
|
|
20
|
+
if (nextCheckpoints.length === 0 && resetStreamIds.size === 0) {
|
|
21
|
+
return state;
|
|
22
|
+
}
|
|
23
|
+
return { ...state, cursorsByStreamId: nextOnly, deltas: nextDeltas };
|
|
7
24
|
}
|
|
8
25
|
const nextCursors = { ...state.cursorsByStreamId };
|
|
9
|
-
const
|
|
26
|
+
const resetStreamIds = new Set(streamWindows
|
|
27
|
+
.filter((window) => window.status === "rebased" || window.status === "stale")
|
|
28
|
+
.map((window) => window.streamId));
|
|
29
|
+
let nextDeltas = state.deltas.filter((delta) => !resetStreamIds.has(delta.streamId));
|
|
30
|
+
for (const window of streamWindows) {
|
|
31
|
+
if (window.status !== "ok") {
|
|
32
|
+
nextCursors[window.streamId] = window.serverCursorStart;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
10
35
|
const sorted = [...deltas].sort((a, b) => a.cursorEnd - b.cursorEnd);
|
|
11
36
|
for (const delta of sorted) {
|
|
12
37
|
const currentCursor = nextCursors[delta.streamId] ?? 0;
|
|
13
38
|
if (delta.cursorEnd <= currentCursor) {
|
|
14
39
|
continue;
|
|
15
40
|
}
|
|
16
|
-
if (delta.cursorStart
|
|
41
|
+
if (delta.cursorStart > currentCursor) {
|
|
42
|
+
nextDeltas = nextDeltas.filter((existing) => existing.streamId !== delta.streamId);
|
|
43
|
+
nextCursors[delta.streamId] = delta.cursorStart;
|
|
44
|
+
}
|
|
45
|
+
else if (delta.cursorStart < currentCursor) {
|
|
17
46
|
continue;
|
|
18
47
|
}
|
|
19
48
|
nextDeltas.push(delta);
|
|
20
49
|
nextCursors[delta.streamId] = delta.cursorEnd;
|
|
21
50
|
}
|
|
51
|
+
for (const checkpoint of nextCheckpoints) {
|
|
52
|
+
nextCursors[checkpoint.streamId] = Math.max(nextCursors[checkpoint.streamId] ?? 0, checkpoint.cursor);
|
|
53
|
+
}
|
|
22
54
|
return {
|
|
23
55
|
threadId: state.threadId,
|
|
24
56
|
cursorsByStreamId: nextCursors,
|
|
@@ -58,13 +90,19 @@ export function useCodexStreamOverlay(query, args, enabled, options) {
|
|
|
58
90
|
})),
|
|
59
91
|
},
|
|
60
92
|
});
|
|
61
|
-
const
|
|
93
|
+
const deltaPayload = streamDeltaQuery?.streams?.kind === "deltas"
|
|
94
|
+
? {
|
|
95
|
+
deltas: streamDeltaQuery.streams.deltas,
|
|
96
|
+
streamWindows: streamDeltaQuery.streams.streamWindows,
|
|
97
|
+
nextCheckpoints: streamDeltaQuery.streams.nextCheckpoints,
|
|
98
|
+
}
|
|
99
|
+
: undefined;
|
|
62
100
|
useEffect(() => {
|
|
63
|
-
if (!
|
|
101
|
+
if (!deltaPayload) {
|
|
64
102
|
return;
|
|
65
103
|
}
|
|
66
|
-
setOverlayState((current) => applyDeltaBatch(current,
|
|
67
|
-
}, [
|
|
104
|
+
setOverlayState((current) => applyDeltaBatch(current, deltaPayload));
|
|
105
|
+
}, [deltaPayload]);
|
|
68
106
|
return {
|
|
69
107
|
deltas: overlayState.deltas,
|
|
70
108
|
streamIds,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCodexStreamOverlay.js","sourceRoot":"","sources":["../../src/react/useCodexStreamOverlay.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAU5C,SAAS,eAAe,CACtB,KAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"useCodexStreamOverlay.js","sourceRoot":"","sources":["../../src/react/useCodexStreamOverlay.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zakstam/codex-local-component",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
"./protocol": {
|
|
33
33
|
"types": "./dist/protocol/index.d.ts",
|
|
34
34
|
"import": "./dist/protocol/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./app-server": {
|
|
37
|
+
"types": "./dist/app-server/index.d.ts",
|
|
38
|
+
"import": "./dist/app-server/index.js"
|
|
35
39
|
}
|
|
36
40
|
},
|
|
37
41
|
"files": [
|
|
@@ -62,6 +66,7 @@
|
|
|
62
66
|
"scripts": {
|
|
63
67
|
"clean": "rm -rf dist",
|
|
64
68
|
"build": "tsc -p tsconfig.build.json",
|
|
69
|
+
"build:watch": "tsc -p tsconfig.build.json --watch --preserveWatchOutput",
|
|
65
70
|
"typecheck": "tsc --noEmit",
|
|
66
71
|
"test": "pnpm run build && node --test test/*.test.mjs",
|
|
67
72
|
"check:mount-imports": "node ./scripts/check-mount-imports.mjs",
|