remote-codex 0.11.13 → 0.11.15
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/apps/supervisor-api/dist/{chunk-ZTQPMDTP.js → chunk-ZYCD54EZ.js} +67 -28
- package/apps/supervisor-api/dist/index.js +1 -1
- package/apps/supervisor-api/dist/worker-index.js +1 -1
- package/apps/supervisor-web/dist/assets/index-DKyefuy8.js +6 -0
- package/apps/supervisor-web/dist/index.html +1 -1
- package/package.json +1 -1
- package/packages/shared/src/index.ts +1 -0
- package/apps/supervisor-web/dist/assets/index-Z5yu-xV3.js +0 -6
|
@@ -16492,8 +16492,11 @@ function historyItemSequence(item) {
|
|
|
16492
16492
|
function historyItemTranscriptOrder(item) {
|
|
16493
16493
|
return typeof item.transcriptOrder === "number" && Number.isFinite(item.transcriptOrder) ? item.transcriptOrder : null;
|
|
16494
16494
|
}
|
|
16495
|
-
function copyPersistedOrderingHints(item, persistedItem) {
|
|
16495
|
+
function copyPersistedOrderingHints(item, persistedItem, turnStartedAt) {
|
|
16496
16496
|
let nextItem = item;
|
|
16497
|
+
if (persistedItem.createdAt && (!nextItem.createdAt || nextItem.kind === "agentMessage" && nextItem.createdAt === turnStartedAt)) {
|
|
16498
|
+
nextItem = { ...nextItem, createdAt: persistedItem.createdAt };
|
|
16499
|
+
}
|
|
16497
16500
|
if (hasHistoryItemSequence(persistedItem)) {
|
|
16498
16501
|
const sequence = historyItemSequence(persistedItem);
|
|
16499
16502
|
if (nextItem.sequence !== sequence) {
|
|
@@ -16631,7 +16634,8 @@ function mergePersistedHistoryItemsIntoTurns(turns, persistedItemsByTurnId, defe
|
|
|
16631
16634
|
};
|
|
16632
16635
|
const sequencedItem = copyPersistedOrderingHints(
|
|
16633
16636
|
itemWithTranscriptOrder,
|
|
16634
|
-
persistedItemWithTranscriptOrder
|
|
16637
|
+
persistedItemWithTranscriptOrder,
|
|
16638
|
+
turn.startedAt
|
|
16635
16639
|
);
|
|
16636
16640
|
if (sequencedItem !== item) {
|
|
16637
16641
|
changed = true;
|
|
@@ -16812,6 +16816,11 @@ var ThreadLiveStateStore = class {
|
|
|
16812
16816
|
return this.threadTurnItemOrder.get(localThreadId) ?? /* @__PURE__ */ new Map();
|
|
16813
16817
|
}
|
|
16814
16818
|
finalTurnAgentMessageOrderingHints(localThreadId, turnId, items, options = {}) {
|
|
16819
|
+
return new Map(
|
|
16820
|
+
[...this.finalTurnAgentMessageOrderingMetadata(localThreadId, turnId, items, options)].map(([itemId, metadata]) => [itemId, metadata.sequence])
|
|
16821
|
+
);
|
|
16822
|
+
}
|
|
16823
|
+
finalTurnAgentMessageOrderingMetadata(localThreadId, turnId, items, options = {}) {
|
|
16815
16824
|
const hints = /* @__PURE__ */ new Map();
|
|
16816
16825
|
const turnOrder = this.threadTurnItemOrder.get(localThreadId)?.get(turnId);
|
|
16817
16826
|
const liveAgentMessages = [
|
|
@@ -16819,17 +16828,21 @@ var ThreadLiveStateStore = class {
|
|
|
16819
16828
|
].map((item) => ({
|
|
16820
16829
|
id: item.id,
|
|
16821
16830
|
text: normalizeAgentMessageForMatching(item.text),
|
|
16822
|
-
sequence: item.sequence
|
|
16831
|
+
sequence: item.sequence,
|
|
16832
|
+
createdAt: item.createdAt
|
|
16823
16833
|
}));
|
|
16824
16834
|
const usedLiveAgentIds = /* @__PURE__ */ new Set();
|
|
16825
16835
|
const finalAgentItems = items.filter((item) => item.kind === "agentMessage");
|
|
16826
16836
|
for (const item of finalAgentItems) {
|
|
16827
16837
|
const existingSequence = turnOrder?.get(item.id);
|
|
16828
16838
|
if (existingSequence !== void 0) {
|
|
16829
|
-
hints.set(item.id, existingSequence);
|
|
16830
16839
|
const matchingLiveAgent = liveAgentMessages.find(
|
|
16831
16840
|
(liveAgent) => liveAgent.id === item.id || liveAgent.sequence === existingSequence
|
|
16832
16841
|
);
|
|
16842
|
+
hints.set(item.id, {
|
|
16843
|
+
sequence: existingSequence,
|
|
16844
|
+
createdAt: matchingLiveAgent?.createdAt ?? null
|
|
16845
|
+
});
|
|
16833
16846
|
if (matchingLiveAgent) {
|
|
16834
16847
|
usedLiveAgentIds.add(matchingLiveAgent.id);
|
|
16835
16848
|
}
|
|
@@ -16851,12 +16864,16 @@ var ThreadLiveStateStore = class {
|
|
|
16851
16864
|
bestMatch = {
|
|
16852
16865
|
id: liveAgent.id,
|
|
16853
16866
|
sequence: liveAgent.sequence,
|
|
16867
|
+
createdAt: liveAgent.createdAt,
|
|
16854
16868
|
score
|
|
16855
16869
|
};
|
|
16856
16870
|
}
|
|
16857
16871
|
if (bestMatch) {
|
|
16858
16872
|
usedLiveAgentIds.add(bestMatch.id);
|
|
16859
|
-
hints.set(item.id,
|
|
16873
|
+
hints.set(item.id, {
|
|
16874
|
+
sequence: bestMatch.sequence,
|
|
16875
|
+
createdAt: bestMatch.createdAt
|
|
16876
|
+
});
|
|
16860
16877
|
}
|
|
16861
16878
|
}
|
|
16862
16879
|
if (options.allowUnmatchedFallback ?? true) {
|
|
@@ -16870,7 +16887,10 @@ var ThreadLiveStateStore = class {
|
|
|
16870
16887
|
if (!liveAgent) {
|
|
16871
16888
|
break;
|
|
16872
16889
|
}
|
|
16873
|
-
hints.set(item.id,
|
|
16890
|
+
hints.set(item.id, {
|
|
16891
|
+
sequence: liveAgent.sequence,
|
|
16892
|
+
createdAt: liveAgent.createdAt
|
|
16893
|
+
});
|
|
16874
16894
|
remainingLiveAgentIndex += 1;
|
|
16875
16895
|
}
|
|
16876
16896
|
}
|
|
@@ -16892,7 +16912,8 @@ var ThreadLiveStateStore = class {
|
|
|
16892
16912
|
const current = this.threadLiveItems.get(localThreadId);
|
|
16893
16913
|
const currentItems = current?.turnId === turnId ? current.items : [];
|
|
16894
16914
|
const existingIndex = currentItems.findIndex((entry) => entry.id === item.id);
|
|
16895
|
-
const
|
|
16915
|
+
const nextItem = existingIndex >= 0 && !item.createdAt && currentItems[existingIndex]?.createdAt ? { ...item, createdAt: currentItems[existingIndex].createdAt } : item;
|
|
16916
|
+
const nextItems = existingIndex >= 0 ? currentItems.map((entry, index) => index === existingIndex ? nextItem : entry) : [...currentItems, nextItem];
|
|
16896
16917
|
this.setLiveItems(localThreadId, {
|
|
16897
16918
|
turnId,
|
|
16898
16919
|
items: sortHistoryItemsBySequence(nextItems),
|
|
@@ -16909,7 +16930,7 @@ var ThreadLiveStateStore = class {
|
|
|
16909
16930
|
sequence: input.sequence
|
|
16910
16931
|
} : {
|
|
16911
16932
|
id: input.itemId,
|
|
16912
|
-
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
16933
|
+
createdAt: input.createdAt ?? (/* @__PURE__ */ new Date()).toISOString(),
|
|
16913
16934
|
kind: "agentMessage",
|
|
16914
16935
|
text: input.delta,
|
|
16915
16936
|
sequence: input.sequence
|
|
@@ -16948,7 +16969,8 @@ var ThreadLiveStateStore = class {
|
|
|
16948
16969
|
turnHints.set(item.id, {
|
|
16949
16970
|
id: item.id,
|
|
16950
16971
|
text: item.text,
|
|
16951
|
-
sequence
|
|
16972
|
+
sequence,
|
|
16973
|
+
createdAt: item.createdAt ?? null
|
|
16952
16974
|
});
|
|
16953
16975
|
}
|
|
16954
16976
|
reconcileLiveItems(localThreadId, turns) {
|
|
@@ -17505,8 +17527,9 @@ var ThreadRuntimeEventProjector = class {
|
|
|
17505
17527
|
if (!turnId) {
|
|
17506
17528
|
return;
|
|
17507
17529
|
}
|
|
17530
|
+
const eventTimestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
17508
17531
|
const liveItem = {
|
|
17509
|
-
...event.item,
|
|
17532
|
+
...withHistoryItemCreatedAt(event.item, eventTimestamp),
|
|
17510
17533
|
sequence: liveState.recordTurnItemOrder(record.id, turnId, event.item.id)
|
|
17511
17534
|
};
|
|
17512
17535
|
const transportLiveItem = deferHistoryItemDetailForTransport(liveItem);
|
|
@@ -17537,8 +17560,9 @@ var ThreadRuntimeEventProjector = class {
|
|
|
17537
17560
|
displayTurnId,
|
|
17538
17561
|
event.item.id
|
|
17539
17562
|
);
|
|
17563
|
+
const eventTimestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
17540
17564
|
const orderedLiveItem = {
|
|
17541
|
-
...event.item,
|
|
17565
|
+
...withHistoryItemCreatedAt(event.item, eventTimestamp),
|
|
17542
17566
|
sequence
|
|
17543
17567
|
};
|
|
17544
17568
|
const transportLiveItem = deferHistoryItemDetailForTransport(orderedLiveItem);
|
|
@@ -17590,18 +17614,21 @@ var ThreadRuntimeEventProjector = class {
|
|
|
17590
17614
|
displayTurnId,
|
|
17591
17615
|
event.itemId
|
|
17592
17616
|
);
|
|
17617
|
+
const createdAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
17593
17618
|
callbacks.appendLiveAgentMessageDelta({
|
|
17594
17619
|
localThreadId: record.id,
|
|
17595
17620
|
turnId: displayTurnId,
|
|
17596
17621
|
itemId: event.itemId,
|
|
17597
17622
|
delta: event.delta,
|
|
17598
|
-
sequence
|
|
17623
|
+
sequence,
|
|
17624
|
+
createdAt
|
|
17599
17625
|
});
|
|
17600
17626
|
callbacks.emitThreadEvent("thread.output.delta", record.id, {
|
|
17601
17627
|
turnId: displayTurnId,
|
|
17602
17628
|
itemId: event.itemId,
|
|
17603
17629
|
sequence,
|
|
17604
|
-
delta: event.delta
|
|
17630
|
+
delta: event.delta,
|
|
17631
|
+
createdAt
|
|
17605
17632
|
});
|
|
17606
17633
|
return;
|
|
17607
17634
|
}
|
|
@@ -17701,6 +17728,9 @@ var ThreadRuntimeEventProjector = class {
|
|
|
17701
17728
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
17702
17729
|
}
|
|
17703
17730
|
};
|
|
17731
|
+
function withHistoryItemCreatedAt(item, createdAt) {
|
|
17732
|
+
return item.createdAt ? item : { ...item, createdAt };
|
|
17733
|
+
}
|
|
17704
17734
|
|
|
17705
17735
|
// src/provider-request-coordinator.ts
|
|
17706
17736
|
var LOCAL_PLAN_DECISION_PREFIX = "plan-decision:";
|
|
@@ -18245,7 +18275,7 @@ function cacheKeyForDetailOptions(options) {
|
|
|
18245
18275
|
}
|
|
18246
18276
|
function applyLiveAgentMessageOrderingHints(turns, localThreadId, liveState) {
|
|
18247
18277
|
return turns.map((turn) => {
|
|
18248
|
-
const orderingHints = liveState.
|
|
18278
|
+
const orderingHints = liveState.finalTurnAgentMessageOrderingMetadata(
|
|
18249
18279
|
localThreadId,
|
|
18250
18280
|
turn.id,
|
|
18251
18281
|
turn.items,
|
|
@@ -18259,15 +18289,21 @@ function applyLiveAgentMessageOrderingHints(turns, localThreadId, liveState) {
|
|
|
18259
18289
|
if (item.kind !== "agentMessage") {
|
|
18260
18290
|
return item;
|
|
18261
18291
|
}
|
|
18262
|
-
const
|
|
18263
|
-
if (
|
|
18292
|
+
const metadata = orderingHints.get(item.id);
|
|
18293
|
+
if (!metadata) {
|
|
18264
18294
|
return item;
|
|
18265
18295
|
}
|
|
18266
|
-
|
|
18267
|
-
|
|
18268
|
-
...
|
|
18269
|
-
|
|
18270
|
-
|
|
18296
|
+
let nextItem = item;
|
|
18297
|
+
if (nextItem.sequence !== metadata.sequence) {
|
|
18298
|
+
nextItem = { ...nextItem, sequence: metadata.sequence };
|
|
18299
|
+
}
|
|
18300
|
+
if (metadata.createdAt && (!nextItem.createdAt || nextItem.createdAt === turn.startedAt)) {
|
|
18301
|
+
nextItem = { ...nextItem, createdAt: metadata.createdAt };
|
|
18302
|
+
}
|
|
18303
|
+
if (nextItem !== item) {
|
|
18304
|
+
changed = true;
|
|
18305
|
+
}
|
|
18306
|
+
return nextItem;
|
|
18271
18307
|
});
|
|
18272
18308
|
return changed ? {
|
|
18273
18309
|
...turn,
|
|
@@ -19340,7 +19376,7 @@ var ThreadHistoryPersistenceCoordinator = class {
|
|
|
19340
19376
|
deleteThreadHistoryItemRecordsByThreadAndTurnId(this.db, localThreadId, turnId);
|
|
19341
19377
|
}
|
|
19342
19378
|
persistFinalTurnOrderingHints(localThreadId, turnId, items) {
|
|
19343
|
-
const orderingHints = this.liveState.
|
|
19379
|
+
const orderingHints = this.liveState.finalTurnAgentMessageOrderingMetadata(
|
|
19344
19380
|
localThreadId,
|
|
19345
19381
|
turnId,
|
|
19346
19382
|
items
|
|
@@ -19349,8 +19385,8 @@ var ThreadHistoryPersistenceCoordinator = class {
|
|
|
19349
19385
|
if (item.kind !== "agentMessage" || !shouldPersistRuntimeFinalHistoryItem(item)) {
|
|
19350
19386
|
continue;
|
|
19351
19387
|
}
|
|
19352
|
-
const
|
|
19353
|
-
if (
|
|
19388
|
+
const metadata = orderingHints.get(item.id);
|
|
19389
|
+
if (!metadata) {
|
|
19354
19390
|
continue;
|
|
19355
19391
|
}
|
|
19356
19392
|
upsertThreadHistoryItemRecord(this.db, {
|
|
@@ -19359,7 +19395,8 @@ var ThreadHistoryPersistenceCoordinator = class {
|
|
|
19359
19395
|
itemId: item.id,
|
|
19360
19396
|
itemJson: JSON.stringify({
|
|
19361
19397
|
...item,
|
|
19362
|
-
sequence,
|
|
19398
|
+
sequence: metadata.sequence,
|
|
19399
|
+
createdAt: item.createdAt ?? metadata.createdAt,
|
|
19363
19400
|
sourceTurnId: turnId
|
|
19364
19401
|
})
|
|
19365
19402
|
});
|
|
@@ -21313,7 +21350,8 @@ var ThreadService = class {
|
|
|
21313
21350
|
input.turnId,
|
|
21314
21351
|
input.itemId,
|
|
21315
21352
|
input.delta,
|
|
21316
|
-
input.sequence
|
|
21353
|
+
input.sequence,
|
|
21354
|
+
input.createdAt
|
|
21317
21355
|
),
|
|
21318
21356
|
clearPendingPlanDecisionRequests: (localThreadId, emitEvents) => this.clearPendingPlanDecisionRequests(localThreadId, emitEvents),
|
|
21319
21357
|
clearPendingSteersForTurn: (localThreadId, turnId) => this.auxiliaryState.clearPendingSteersForTurn(localThreadId, turnId),
|
|
@@ -22225,13 +22263,14 @@ var ThreadService = class {
|
|
|
22225
22263
|
listPendingRequests(localThreadId, options = {}) {
|
|
22226
22264
|
return this.requestCoordinator.listPendingRequests(localThreadId, options);
|
|
22227
22265
|
}
|
|
22228
|
-
appendLiveAgentMessageDelta(localThreadId, turnId, itemId, delta, sequence) {
|
|
22266
|
+
appendLiveAgentMessageDelta(localThreadId, turnId, itemId, delta, sequence, createdAt) {
|
|
22229
22267
|
this.liveState.appendLiveAgentMessageDelta({
|
|
22230
22268
|
localThreadId,
|
|
22231
22269
|
turnId,
|
|
22232
22270
|
itemId,
|
|
22233
22271
|
delta,
|
|
22234
|
-
sequence
|
|
22272
|
+
sequence,
|
|
22273
|
+
createdAt
|
|
22235
22274
|
});
|
|
22236
22275
|
}
|
|
22237
22276
|
createPendingPlanDecisionRequest(localThreadId, turnId, emitEvents) {
|