remote-codex 0.11.13 → 0.11.14

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.
@@ -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, bestMatch.sequence);
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, liveAgent.sequence);
16890
+ hints.set(item.id, {
16891
+ sequence: liveAgent.sequence,
16892
+ createdAt: liveAgent.createdAt
16893
+ });
16874
16894
  remainingLiveAgentIndex += 1;
16875
16895
  }
16876
16896
  }
@@ -16909,7 +16929,7 @@ var ThreadLiveStateStore = class {
16909
16929
  sequence: input.sequence
16910
16930
  } : {
16911
16931
  id: input.itemId,
16912
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
16932
+ createdAt: input.createdAt ?? (/* @__PURE__ */ new Date()).toISOString(),
16913
16933
  kind: "agentMessage",
16914
16934
  text: input.delta,
16915
16935
  sequence: input.sequence
@@ -16948,7 +16968,8 @@ var ThreadLiveStateStore = class {
16948
16968
  turnHints.set(item.id, {
16949
16969
  id: item.id,
16950
16970
  text: item.text,
16951
- sequence
16971
+ sequence,
16972
+ createdAt: item.createdAt ?? null
16952
16973
  });
16953
16974
  }
16954
16975
  reconcileLiveItems(localThreadId, turns) {
@@ -17505,8 +17526,9 @@ var ThreadRuntimeEventProjector = class {
17505
17526
  if (!turnId) {
17506
17527
  return;
17507
17528
  }
17529
+ const eventTimestamp = (/* @__PURE__ */ new Date()).toISOString();
17508
17530
  const liveItem = {
17509
- ...event.item,
17531
+ ...withHistoryItemCreatedAt(event.item, eventTimestamp),
17510
17532
  sequence: liveState.recordTurnItemOrder(record.id, turnId, event.item.id)
17511
17533
  };
17512
17534
  const transportLiveItem = deferHistoryItemDetailForTransport(liveItem);
@@ -17537,8 +17559,9 @@ var ThreadRuntimeEventProjector = class {
17537
17559
  displayTurnId,
17538
17560
  event.item.id
17539
17561
  );
17562
+ const eventTimestamp = (/* @__PURE__ */ new Date()).toISOString();
17540
17563
  const orderedLiveItem = {
17541
- ...event.item,
17564
+ ...withHistoryItemCreatedAt(event.item, eventTimestamp),
17542
17565
  sequence
17543
17566
  };
17544
17567
  const transportLiveItem = deferHistoryItemDetailForTransport(orderedLiveItem);
@@ -17590,18 +17613,21 @@ var ThreadRuntimeEventProjector = class {
17590
17613
  displayTurnId,
17591
17614
  event.itemId
17592
17615
  );
17616
+ const createdAt = (/* @__PURE__ */ new Date()).toISOString();
17593
17617
  callbacks.appendLiveAgentMessageDelta({
17594
17618
  localThreadId: record.id,
17595
17619
  turnId: displayTurnId,
17596
17620
  itemId: event.itemId,
17597
17621
  delta: event.delta,
17598
- sequence
17622
+ sequence,
17623
+ createdAt
17599
17624
  });
17600
17625
  callbacks.emitThreadEvent("thread.output.delta", record.id, {
17601
17626
  turnId: displayTurnId,
17602
17627
  itemId: event.itemId,
17603
17628
  sequence,
17604
- delta: event.delta
17629
+ delta: event.delta,
17630
+ createdAt
17605
17631
  });
17606
17632
  return;
17607
17633
  }
@@ -17701,6 +17727,9 @@ var ThreadRuntimeEventProjector = class {
17701
17727
  return typeof value === "object" && value !== null && !Array.isArray(value);
17702
17728
  }
17703
17729
  };
17730
+ function withHistoryItemCreatedAt(item, createdAt) {
17731
+ return item.createdAt ? item : { ...item, createdAt };
17732
+ }
17704
17733
 
17705
17734
  // src/provider-request-coordinator.ts
17706
17735
  var LOCAL_PLAN_DECISION_PREFIX = "plan-decision:";
@@ -19340,7 +19369,7 @@ var ThreadHistoryPersistenceCoordinator = class {
19340
19369
  deleteThreadHistoryItemRecordsByThreadAndTurnId(this.db, localThreadId, turnId);
19341
19370
  }
19342
19371
  persistFinalTurnOrderingHints(localThreadId, turnId, items) {
19343
- const orderingHints = this.liveState.finalTurnAgentMessageOrderingHints(
19372
+ const orderingHints = this.liveState.finalTurnAgentMessageOrderingMetadata(
19344
19373
  localThreadId,
19345
19374
  turnId,
19346
19375
  items
@@ -19349,8 +19378,8 @@ var ThreadHistoryPersistenceCoordinator = class {
19349
19378
  if (item.kind !== "agentMessage" || !shouldPersistRuntimeFinalHistoryItem(item)) {
19350
19379
  continue;
19351
19380
  }
19352
- const sequence = orderingHints.get(item.id);
19353
- if (sequence === void 0) {
19381
+ const metadata = orderingHints.get(item.id);
19382
+ if (!metadata) {
19354
19383
  continue;
19355
19384
  }
19356
19385
  upsertThreadHistoryItemRecord(this.db, {
@@ -19359,7 +19388,8 @@ var ThreadHistoryPersistenceCoordinator = class {
19359
19388
  itemId: item.id,
19360
19389
  itemJson: JSON.stringify({
19361
19390
  ...item,
19362
- sequence,
19391
+ sequence: metadata.sequence,
19392
+ createdAt: item.createdAt ?? metadata.createdAt,
19363
19393
  sourceTurnId: turnId
19364
19394
  })
19365
19395
  });
@@ -21313,7 +21343,8 @@ var ThreadService = class {
21313
21343
  input.turnId,
21314
21344
  input.itemId,
21315
21345
  input.delta,
21316
- input.sequence
21346
+ input.sequence,
21347
+ input.createdAt
21317
21348
  ),
21318
21349
  clearPendingPlanDecisionRequests: (localThreadId, emitEvents) => this.clearPendingPlanDecisionRequests(localThreadId, emitEvents),
21319
21350
  clearPendingSteersForTurn: (localThreadId, turnId) => this.auxiliaryState.clearPendingSteersForTurn(localThreadId, turnId),
@@ -22225,13 +22256,14 @@ var ThreadService = class {
22225
22256
  listPendingRequests(localThreadId, options = {}) {
22226
22257
  return this.requestCoordinator.listPendingRequests(localThreadId, options);
22227
22258
  }
22228
- appendLiveAgentMessageDelta(localThreadId, turnId, itemId, delta, sequence) {
22259
+ appendLiveAgentMessageDelta(localThreadId, turnId, itemId, delta, sequence, createdAt) {
22229
22260
  this.liveState.appendLiveAgentMessageDelta({
22230
22261
  localThreadId,
22231
22262
  turnId,
22232
22263
  itemId,
22233
22264
  delta,
22234
- sequence
22265
+ sequence,
22266
+ createdAt
22235
22267
  });
22236
22268
  }
22237
22269
  createPendingPlanDecisionRequest(localThreadId, turnId, emitEvents) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildApp
3
- } from "./chunk-ZTQPMDTP.js";
3
+ } from "./chunk-B3T3GIKQ.js";
4
4
 
5
5
  // src/index.ts
6
6
  import fs from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildApp
3
- } from "./chunk-ZTQPMDTP.js";
3
+ } from "./chunk-B3T3GIKQ.js";
4
4
 
5
5
  // src/worker-index.ts
6
6
  import fs2 from "fs";