@gkorepanov/ccodex 0.4.9 → 0.4.11

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.
Files changed (220) hide show
  1. package/README.md +1 -1
  2. package/config/compatibility.json +3 -3
  3. package/dist/claude/goalTools.js +1 -1
  4. package/dist/claude/goalTools.js.map +1 -1
  5. package/dist/claude/hookMapper.d.ts +1 -0
  6. package/dist/claude/hookMapper.js +1 -0
  7. package/dist/claude/hookMapper.js.map +1 -1
  8. package/dist/claude/inputMapper.js +4 -1
  9. package/dist/claude/inputMapper.js.map +1 -1
  10. package/dist/claude/rateLimits.d.ts +1 -0
  11. package/dist/claude/rateLimits.js +2 -1
  12. package/dist/claude/rateLimits.js.map +1 -1
  13. package/dist/claude/service.d.ts +13 -1
  14. package/dist/claude/service.js +156 -21
  15. package/dist/claude/service.js.map +1 -1
  16. package/dist/claude/session/commands.d.ts +3 -0
  17. package/dist/claude/session/goalState.js +9 -0
  18. package/dist/claude/session/goalState.js.map +1 -1
  19. package/dist/claude/session/repository.d.ts +1 -1
  20. package/dist/claude/session/repository.js +2 -2
  21. package/dist/claude/session/repository.js.map +1 -1
  22. package/dist/claude/session/scopeState.js +3 -1
  23. package/dist/claude/session/scopeState.js.map +1 -1
  24. package/dist/claude/session/session.js +13 -2
  25. package/dist/claude/session/session.js.map +1 -1
  26. package/dist/claude/session/usage.js +1 -0
  27. package/dist/claude/session/usage.js.map +1 -1
  28. package/dist/claude/toolMapper.js +2 -2
  29. package/dist/claude/toolMapper.js.map +1 -1
  30. package/dist/codex/generated/ClientRequest.d.ts +20 -0
  31. package/dist/codex/generated/CodexResponseHandoffMode.d.ts +1 -0
  32. package/dist/codex/generated/CodexResponseHandoffMode.js +3 -0
  33. package/dist/codex/generated/CodexResponseHandoffMode.js.map +1 -0
  34. package/dist/codex/generated/ContentItem.d.ts +3 -0
  35. package/dist/codex/generated/FunctionCallOutputContentItem.d.ts +3 -0
  36. package/dist/codex/generated/InputModality.d.ts +1 -1
  37. package/dist/codex/generated/LegacyAppPathString.d.ts +7 -6
  38. package/dist/codex/generated/RealtimeConversationVersion.d.ts +1 -1
  39. package/dist/codex/generated/ResponseItem.d.ts +15 -14
  40. package/dist/codex/generated/ResponseItemId.d.ts +5 -0
  41. package/dist/codex/generated/ResponseItemId.js +3 -0
  42. package/dist/codex/generated/ResponseItemId.js.map +1 -0
  43. package/dist/codex/generated/ResponseItemRuntimeSchema.js +2 -2
  44. package/dist/codex/generated/ResponseItemRuntimeSchema.js.map +1 -1
  45. package/dist/codex/generated/ReviewDecision.d.ts +5 -1
  46. package/dist/codex/generated/ServerNotification.d.ts +11 -0
  47. package/dist/codex/generated/ServerNotificationEnvelope.d.ts +302 -0
  48. package/dist/codex/generated/ServerNotificationEnvelope.js +3 -0
  49. package/dist/codex/generated/ServerNotificationEnvelope.js.map +1 -0
  50. package/dist/codex/generated/SleepItem.d.ts +7 -0
  51. package/dist/codex/generated/SleepItem.js +3 -0
  52. package/dist/codex/generated/SleepItem.js.map +1 -0
  53. package/dist/codex/generated/WebSearchItem.d.ts +8 -0
  54. package/dist/codex/generated/index.d.ts +4 -1
  55. package/dist/codex/generated/index.js.map +1 -1
  56. package/dist/codex/generated/v2/Account.d.ts +1 -2
  57. package/dist/codex/generated/v2/AppToolSummary.d.ts +8 -0
  58. package/dist/codex/generated/v2/AppToolSummary.js +3 -0
  59. package/dist/codex/generated/v2/AppToolSummary.js.map +1 -0
  60. package/dist/codex/generated/v2/AppsInstalledParams.d.ts +14 -0
  61. package/dist/codex/generated/v2/AppsInstalledParams.js +3 -0
  62. package/dist/codex/generated/v2/AppsInstalledParams.js.map +1 -0
  63. package/dist/codex/generated/v2/AppsInstalledResponse.d.ts +7 -0
  64. package/dist/codex/generated/v2/AppsInstalledResponse.js +3 -0
  65. package/dist/codex/generated/v2/AppsInstalledResponse.js.map +1 -0
  66. package/dist/codex/generated/v2/AppsReadParams.d.ts +14 -0
  67. package/dist/codex/generated/v2/AppsReadParams.js +3 -0
  68. package/dist/codex/generated/v2/AppsReadParams.js.map +1 -0
  69. package/dist/codex/generated/v2/AppsReadResponse.d.ts +8 -0
  70. package/dist/codex/generated/v2/AppsReadResponse.js +3 -0
  71. package/dist/codex/generated/v2/AppsReadResponse.js.map +1 -0
  72. package/dist/codex/generated/v2/ConfiguredHookHandler.d.ts +7 -0
  73. package/dist/codex/generated/v2/ConnectorMetadata.d.ts +15 -0
  74. package/dist/codex/generated/v2/ConnectorMetadata.js +3 -0
  75. package/dist/codex/generated/v2/ConnectorMetadata.js.map +1 -0
  76. package/dist/codex/generated/v2/DynamicToolCallOutputContentItem.d.ts +3 -0
  77. package/dist/codex/generated/v2/EnvironmentConnectionNotification.d.ts +4 -0
  78. package/dist/codex/generated/v2/EnvironmentConnectionNotification.js +3 -0
  79. package/dist/codex/generated/v2/EnvironmentConnectionNotification.js.map +1 -0
  80. package/dist/codex/generated/v2/EnvironmentStatusKind.d.ts +7 -0
  81. package/dist/codex/generated/v2/EnvironmentStatusKind.js +3 -0
  82. package/dist/codex/generated/v2/EnvironmentStatusKind.js.map +1 -0
  83. package/dist/codex/generated/v2/EnvironmentStatusParams.d.ts +9 -0
  84. package/dist/codex/generated/v2/EnvironmentStatusParams.js +3 -0
  85. package/dist/codex/generated/v2/EnvironmentStatusParams.js.map +1 -0
  86. package/dist/codex/generated/v2/EnvironmentStatusResponse.d.ts +14 -0
  87. package/dist/codex/generated/v2/EnvironmentStatusResponse.js +3 -0
  88. package/dist/codex/generated/v2/EnvironmentStatusResponse.js.map +1 -0
  89. package/dist/codex/generated/v2/ExternalAgentConfigDetectParams.d.ts +9 -0
  90. package/dist/codex/generated/v2/ExternalAgentConfigImportHistoriesReadResponse.d.ts +2 -0
  91. package/dist/codex/generated/v2/ExternalAgentConfigImportItemTypeFailure.d.ts +1 -0
  92. package/dist/codex/generated/v2/ExternalAgentConfigImportParams.d.ts +6 -1
  93. package/dist/codex/generated/v2/ExternalAgentConfigMigrationItemType.d.ts +1 -1
  94. package/dist/codex/generated/v2/ExternalAgentImportedConnectorCandidate.d.ts +6 -0
  95. package/dist/codex/generated/v2/ExternalAgentImportedConnectorCandidate.js +3 -0
  96. package/dist/codex/generated/v2/ExternalAgentImportedConnectorCandidate.js.map +1 -0
  97. package/dist/codex/generated/v2/ExternalAgentImportedConnectorSource.d.ts +1 -0
  98. package/dist/codex/generated/v2/ExternalAgentImportedConnectorSource.js +3 -0
  99. package/dist/codex/generated/v2/ExternalAgentImportedConnectorSource.js.map +1 -0
  100. package/dist/codex/generated/v2/FileSystemSpecialPath.d.ts +3 -2
  101. package/dist/codex/generated/v2/HookEventName.d.ts +1 -1
  102. package/dist/codex/generated/v2/HookMetadata.d.ts +5 -0
  103. package/dist/codex/generated/v2/InstalledApp.d.ts +21 -0
  104. package/dist/codex/generated/v2/InstalledApp.js +3 -0
  105. package/dist/codex/generated/v2/InstalledApp.js.map +1 -0
  106. package/dist/codex/generated/v2/LoginAccountParams.d.ts +4 -0
  107. package/dist/codex/generated/v2/LoginAccountResponse.d.ts +2 -0
  108. package/dist/codex/generated/v2/ManagedHooksRequirements.d.ts +1 -0
  109. package/dist/codex/generated/v2/McpToolCallAppContext.d.ts +0 -1
  110. package/dist/codex/generated/v2/MigrationDetails.d.ts +1 -0
  111. package/dist/codex/generated/v2/PluginDetail.d.ts +2 -0
  112. package/dist/codex/generated/v2/PluginShareUpdateDiscoverability.d.ts +1 -1
  113. package/dist/codex/generated/v2/PluginSummary.d.ts +1 -0
  114. package/dist/codex/generated/v2/RateLimitSnapshot.d.ts +4 -0
  115. package/dist/codex/generated/v2/RawResponseCompletedNotification.d.ts +11 -0
  116. package/dist/codex/generated/v2/RawResponseCompletedNotification.js +3 -0
  117. package/dist/codex/generated/v2/RawResponseCompletedNotification.js.map +1 -0
  118. package/dist/codex/generated/v2/ScheduledTaskSchedule.d.ts +16 -0
  119. package/dist/codex/generated/v2/ScheduledTaskSchedule.js +3 -0
  120. package/dist/codex/generated/v2/ScheduledTaskSchedule.js.map +1 -0
  121. package/dist/codex/generated/v2/ScheduledTaskSummary.d.ts +7 -0
  122. package/dist/codex/generated/v2/ScheduledTaskSummary.js +3 -0
  123. package/dist/codex/generated/v2/ScheduledTaskSummary.js.map +1 -0
  124. package/dist/codex/generated/v2/ScheduledTaskWeekday.d.ts +1 -0
  125. package/dist/codex/generated/v2/ScheduledTaskWeekday.js +3 -0
  126. package/dist/codex/generated/v2/ScheduledTaskWeekday.js.map +1 -0
  127. package/dist/codex/generated/v2/Thread.d.ts +5 -0
  128. package/dist/codex/generated/v2/ThreadForkParams.d.ts +11 -0
  129. package/dist/codex/generated/v2/ThreadItem.d.ts +2 -3
  130. package/dist/codex/generated/v2/ThreadItemEntry.d.ts +8 -0
  131. package/dist/codex/generated/v2/ThreadItemEntry.js +3 -0
  132. package/dist/codex/generated/v2/ThreadItemEntry.js.map +1 -0
  133. package/dist/codex/generated/v2/ThreadItemsListResponse.d.ts +2 -2
  134. package/dist/codex/generated/v2/ThreadRealtimeInitialItem.d.ts +8 -0
  135. package/dist/codex/generated/v2/ThreadRealtimeInitialItem.js +3 -0
  136. package/dist/codex/generated/v2/ThreadRealtimeInitialItem.js.map +1 -0
  137. package/dist/codex/generated/v2/ThreadRealtimeStartParams.d.ts +11 -4
  138. package/dist/codex/generated/v2/ThreadResumeResponse.d.ts +14 -0
  139. package/dist/codex/generated/v2/ThreadSearchOccurrence.d.ts +17 -0
  140. package/dist/codex/generated/v2/ThreadSearchOccurrence.js +3 -0
  141. package/dist/codex/generated/v2/ThreadSearchOccurrence.js.map +1 -0
  142. package/dist/codex/generated/v2/ThreadSearchOccurrencesParams.d.ts +19 -0
  143. package/dist/codex/generated/v2/ThreadSearchOccurrencesParams.js +3 -0
  144. package/dist/codex/generated/v2/ThreadSearchOccurrencesParams.js.map +1 -0
  145. package/dist/codex/generated/v2/ThreadSearchOccurrencesResponse.d.ts +11 -0
  146. package/dist/codex/generated/v2/ThreadSearchOccurrencesResponse.js +3 -0
  147. package/dist/codex/generated/v2/ThreadSearchOccurrencesResponse.js.map +1 -0
  148. package/dist/codex/generated/v2/ThreadSearchTextRange.d.ts +13 -0
  149. package/dist/codex/generated/v2/ThreadSearchTextRange.js +3 -0
  150. package/dist/codex/generated/v2/ThreadSearchTextRange.js.map +1 -0
  151. package/dist/codex/generated/v2/TokenUsageBreakdown.d.ts +1 -0
  152. package/dist/codex/generated/v2/TurnEnvironmentParams.d.ts +4 -0
  153. package/dist/codex/generated/v2/UserInput.d.ts +6 -0
  154. package/dist/codex/generated/v2/index.d.ts +23 -0
  155. package/dist/daemon/daemon.js +5 -20
  156. package/dist/daemon/daemon.js.map +1 -1
  157. package/dist/daemon/probe.js +1 -1
  158. package/dist/daemon/settings.d.ts +6 -0
  159. package/dist/daemon/settings.js +23 -0
  160. package/dist/daemon/settings.js.map +1 -0
  161. package/dist/gateway/clientConnection.d.ts +3 -2
  162. package/dist/gateway/clientConnection.js +47 -50
  163. package/dist/gateway/clientConnection.js.map +1 -1
  164. package/dist/gateway/logicalThreadProjection.d.ts +5 -0
  165. package/dist/gateway/logicalThreadProjection.js +58 -1
  166. package/dist/gateway/logicalThreadProjection.js.map +1 -1
  167. package/dist/gateway/remoteControlController.d.ts +29 -0
  168. package/dist/gateway/remoteControlController.js +78 -0
  169. package/dist/gateway/remoteControlController.js.map +1 -0
  170. package/dist/gateway/remoteControlHub.js +2 -1
  171. package/dist/gateway/remoteControlHub.js.map +1 -1
  172. package/dist/gateway/remoteControlMode.js +2 -12
  173. package/dist/gateway/remoteControlMode.js.map +1 -1
  174. package/dist/gateway/server.js +42 -15
  175. package/dist/gateway/server.js.map +1 -1
  176. package/dist/gateway/sideFork.d.ts +3 -0
  177. package/dist/gateway/sideFork.js +11 -0
  178. package/dist/gateway/sideFork.js.map +1 -0
  179. package/dist/gateway/stockSideThreads.js +2 -4
  180. package/dist/gateway/stockSideThreads.js.map +1 -1
  181. package/dist/gateway/subscriptions.d.ts +9 -2
  182. package/dist/gateway/subscriptions.js +40 -9
  183. package/dist/gateway/subscriptions.js.map +1 -1
  184. package/dist/gateway/threadList.d.ts +25 -0
  185. package/dist/gateway/threadList.js +112 -26
  186. package/dist/gateway/threadList.js.map +1 -1
  187. package/dist/handoff/lineageStore.d.ts +102 -0
  188. package/dist/handoff/lineageStore.js +515 -0
  189. package/dist/handoff/lineageStore.js.map +1 -0
  190. package/dist/handoff/providerEpochs.d.ts +19 -5
  191. package/dist/handoff/providerEpochs.js +119 -41
  192. package/dist/handoff/providerEpochs.js.map +1 -1
  193. package/dist/handoff/service.d.ts +16 -2
  194. package/dist/handoff/service.js +502 -140
  195. package/dist/handoff/service.js.map +1 -1
  196. package/dist/handoff/startupMigration.d.ts +22 -0
  197. package/dist/handoff/startupMigration.js +52 -0
  198. package/dist/handoff/startupMigration.js.map +1 -0
  199. package/dist/handoff/store.d.ts +10 -0
  200. package/dist/handoff/store.js +141 -28
  201. package/dist/handoff/store.js.map +1 -1
  202. package/dist/runtime/dependencies.js +1 -1
  203. package/dist/state/stockStateTracker.js +1 -0
  204. package/dist/state/stockStateTracker.js.map +1 -1
  205. package/dist/store/HybridStore.d.ts +3 -1
  206. package/dist/store/HybridStore.js.map +1 -1
  207. package/dist/store/memoryStore.d.ts +3 -2
  208. package/dist/store/memoryStore.js +18 -4
  209. package/dist/store/memoryStore.js.map +1 -1
  210. package/dist/store/sqliteStore.d.ts +2 -2
  211. package/dist/store/sqliteStore.js +84 -24
  212. package/dist/store/sqliteStore.js.map +1 -1
  213. package/dist/store/threadFilter.js +2 -0
  214. package/dist/store/threadFilter.js.map +1 -1
  215. package/legal/LICENSES.md +1 -1
  216. package/legal/THIRD_PARTY_NOTICES.md +136 -124
  217. package/package.json +5 -5
  218. package/dist/codex/generated/AmazonBedrockCredentialSource.d.ts +0 -1
  219. package/dist/codex/generated/AmazonBedrockCredentialSource.js +0 -3
  220. package/dist/codex/generated/AmazonBedrockCredentialSource.js.map +0 -1
@@ -1,65 +1,102 @@
1
1
  import { v7 as uuidv7 } from "uuid";
2
- function providerTurns(epochId, turns) {
3
- return turns.map((turn) => ({
4
- publicTurnId: turn.id,
5
- epochId,
6
- providerTurnId: turn.id,
7
- turn,
8
- kind: "provider",
9
- }));
2
+ const STOCK_SWITCH_SOURCE_PREFIX = "ccodexProviderSwitch:";
3
+ export function stockSwitchThreadSource(jobId, source) {
4
+ return `${STOCK_SWITCH_SOURCE_PREFIX}${jobId}|${encodeURIComponent(source ?? "")}`;
5
+ }
6
+ function publicThreadSource(source) {
7
+ if (!source?.startsWith(STOCK_SWITCH_SOURCE_PREFIX))
8
+ return source;
9
+ const separator = source.indexOf("|", STOCK_SWITCH_SOURCE_PREFIX.length);
10
+ if (separator < 0)
11
+ return source;
12
+ return decodeURIComponent(source.slice(separator + 1)) || null;
10
13
  }
11
14
  export class ProviderEpochs {
12
- store;
13
- constructor(store) {
14
- this.store = store;
15
+ lineage;
16
+ legacyMirror;
17
+ legacySnapshots;
18
+ constructor(lineage, legacyMirror, legacySnapshots) {
19
+ this.lineage = lineage;
20
+ this.legacyMirror = legacyMirror;
21
+ this.legacySnapshots = legacySnapshots;
15
22
  }
16
23
  resolve(publicThreadId) {
17
- const logical = this.store.getLogicalThread(publicThreadId);
18
- const epoch = logical && this.store.getEpoch(logical.currentEpochId);
19
- return logical && epoch ? { logical, epoch } : undefined;
24
+ const task = this.lineage.getTask(publicThreadId);
25
+ const boundary = task && this.lineage.getEpoch(task.currentEpochId);
26
+ if (!task || !boundary)
27
+ return undefined;
28
+ return {
29
+ logical: logicalTask(task, this.legacySnapshots?.threads.get(publicThreadId)),
30
+ epoch: providerEpoch(boundary, this.legacySnapshots?.epochs.get(boundary.epochId) ?? this.legacyMirror?.getEpoch(boundary.epochId)),
31
+ };
20
32
  }
21
33
  publicId(provider, backendThreadId) {
22
- const epoch = this.store.findEpochByBackend(provider, backendThreadId);
23
- return epoch?.state === "current" ? epoch.publicThreadId : undefined;
34
+ const epoch = this.lineage.findEpoch(provider, backendThreadId);
35
+ const task = epoch && this.lineage.getTask(epoch.publicThreadId);
36
+ return epoch && task?.currentEpochId === epoch.epochId ? epoch.publicThreadId : undefined;
24
37
  }
25
38
  hiddenBackendIds(provider) {
26
- return new Set(this.store.listBackendMappings()
39
+ return new Set(this.lineage.listMappings()
27
40
  .filter((mapping) => provider === undefined || mapping.provider === provider)
28
41
  .map((mapping) => mapping.backendThreadId));
29
42
  }
43
+ mappings() { return this.lineage.listMappings(); }
44
+ segments(publicThreadId) { return this.lineage.listSegments(publicThreadId); }
45
+ epoch(epochId) { return this.lineage.getEpoch(epochId); }
46
+ configuredEpoch(epochId) { return this.legacySnapshots?.epochs.get(epochId); }
47
+ belongs(publicThreadId, epochId) {
48
+ return this.lineage.epochBelongsToLineage(publicThreadId, epochId);
49
+ }
30
50
  seed(thread, provider, model, settings) {
31
51
  const existing = this.resolve(thread.id);
32
52
  if (existing)
33
53
  return existing;
34
54
  const epochId = uuidv7();
35
- const logical = this.store.createLogicalThread({
55
+ this.lineage.createTask({
56
+ publicThreadId: thread.id,
57
+ currentEpochId: epochId,
58
+ sessionId: thread.sessionId,
59
+ ...(thread.forkedFromId ? { forkedFromId: thread.forkedFromId } : {}),
60
+ ...(thread.parentThreadId ? { parentThreadId: thread.parentThreadId } : {}),
61
+ createdAt: thread.createdAt,
62
+ }, { epochId, provider, backendThreadId: thread.id });
63
+ // Operational compatibility mirror: provider payloads are scrubbed by HandoffStore.
64
+ this.legacyMirror?.createLogicalThread({
36
65
  thread,
37
66
  epoch: { id: epochId, provider, backendThreadId: thread.id, model, settings },
38
67
  });
68
+ this.legacySnapshots?.threads?.set(thread.id, thread);
69
+ this.legacySnapshots?.epochs?.set(epochId, {
70
+ id: epochId,
71
+ publicThreadId: thread.id,
72
+ ordinal: 0,
73
+ provider,
74
+ backendThreadId: thread.id,
75
+ model,
76
+ settings,
77
+ state: "current",
78
+ createdAt: Date.now(),
79
+ });
39
80
  return this.resolve(thread.id);
40
81
  }
41
- visibleTurns(publicThreadId, currentBackendTurns) {
42
- return [
43
- ...this.store.listLogicalTurns(publicThreadId).map((turn) => turn.turn),
44
- ...currentBackendTurns,
45
- ];
46
- }
47
- snapshotTurns(publicThreadId, currentBackendTurns) {
48
- const resolved = this.resolve(publicThreadId);
49
- if (!resolved)
50
- throw new Error(`Unknown logical thread '${publicThreadId}'.`);
51
- return [
52
- ...this.store.listLogicalTurns(publicThreadId).map((turn) => ({
53
- publicTurnId: turn.publicTurnId,
54
- ...(turn.epochId ? { epochId: turn.epochId } : {}),
55
- ...(turn.providerTurnId ? { providerTurnId: turn.providerTurnId } : {}),
56
- turn: turn.turn,
57
- kind: turn.kind,
58
- })),
59
- ...providerTurns(resolved.epoch.id, currentBackendTurns),
60
- ];
82
+ createFork(thread, backendThreadId, provider, model, settings, inheritedSegments) {
83
+ const epochId = uuidv7();
84
+ this.lineage.createForkTask({
85
+ publicThreadId: thread.id,
86
+ currentEpochId: epochId,
87
+ sessionId: thread.sessionId,
88
+ ...(thread.forkedFromId ? { forkedFromId: thread.forkedFromId } : {}),
89
+ ...(thread.parentThreadId ? { parentThreadId: thread.parentThreadId } : {}),
90
+ createdAt: thread.createdAt,
91
+ }, { epochId, provider, backendThreadId }, inheritedSegments);
92
+ this.legacyMirror?.createLogicalThread({
93
+ thread,
94
+ epoch: { id: epochId, provider, backendThreadId, model, settings },
95
+ });
96
+ this.legacySnapshots?.threads?.set(thread.id, thread);
97
+ return this.resolve(thread.id);
61
98
  }
62
- projectThread(publicThreadId, backend, includeTurns) {
99
+ projectThread(publicThreadId, backend, includeTurns, historicalTurns = []) {
63
100
  const resolved = this.resolve(publicThreadId);
64
101
  if (!resolved)
65
102
  throw new Error(`Unknown logical thread '${publicThreadId}'.`);
@@ -67,11 +104,52 @@ export class ProviderEpochs {
67
104
  return {
68
105
  ...backend,
69
106
  id: publicThreadId,
107
+ sessionId: base.sessionId,
70
108
  forkedFromId: base.forkedFromId,
71
- name: base.name ?? backend.name,
109
+ parentThreadId: base.parentThreadId,
72
110
  createdAt: base.createdAt,
73
- turns: includeTurns ? this.visibleTurns(publicThreadId, backend.turns) : [],
111
+ threadSource: publicThreadSource(backend.threadSource),
112
+ turns: includeTurns ? [...historicalTurns, ...backend.turns] : [],
74
113
  };
75
114
  }
115
+ /** Legacy-test helper; production history is assembled from provider segments. */
116
+ visibleTurns(publicThreadId, currentBackendTurns) {
117
+ return [
118
+ ...(this.legacyMirror?.listLogicalTurns(publicThreadId).map((turn) => turn.turn) ?? []),
119
+ ...currentBackendTurns,
120
+ ];
121
+ }
122
+ }
123
+ function logicalTask(task, snapshot) {
124
+ return {
125
+ publicThreadId: task.publicThreadId,
126
+ currentEpochId: task.currentEpochId,
127
+ revision: task.revision,
128
+ createdAt: task.createdAt * 1_000,
129
+ updatedAt: task.createdAt * 1_000,
130
+ thread: snapshot ? { ...snapshot, id: task.publicThreadId, turns: [] } : {
131
+ id: task.publicThreadId,
132
+ sessionId: task.sessionId,
133
+ forkedFromId: task.forkedFromId ?? null,
134
+ parentThreadId: task.parentThreadId ?? null,
135
+ createdAt: task.createdAt,
136
+ turns: [],
137
+ },
138
+ };
139
+ }
140
+ function providerEpoch(boundary, mirror) {
141
+ return {
142
+ id: boundary.epochId,
143
+ publicThreadId: boundary.publicThreadId,
144
+ ordinal: boundary.ordinal,
145
+ provider: boundary.provider,
146
+ backendThreadId: boundary.backendThreadId,
147
+ model: mirror?.model ?? "",
148
+ settings: mirror?.settings ?? {},
149
+ state: boundary.state,
150
+ createdAt: mirror?.createdAt ?? 0,
151
+ archivePending: boundary.archivePending,
152
+ deleteDone: boundary.deleteDone,
153
+ };
76
154
  }
77
155
  //# sourceMappingURL=providerEpochs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"providerEpochs.js","sourceRoot":"","sources":["../../src/handoff/providerEpochs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAgBpC,SAAS,aAAa,CAAC,OAAe,EAAE,KAAsB;IAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,YAAY,EAAE,IAAI,CAAC,EAAE;QACrB,OAAO;QACP,cAAc,EAAE,IAAI,CAAC,EAAE;QACvB,IAAI;QACJ,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,OAAO,cAAc;IACW;IAApC,YAAoC,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,OAAO,CAAC,cAAsB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACrE,OAAO,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAEM,QAAQ,CAAC,QAAsB,EAAE,eAAuB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACvE,OAAO,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IAEM,gBAAgB,CAAC,QAAuB;QAC7C,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;aAC5C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;aAC5E,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,IAAI,CACT,MAAc,EACd,QAAsB,EACtB,KAAa,EACb,QAAiC;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;YAC7C,MAAM;YACN,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC9E,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAE,CAAC;IAClC,CAAC;IAEM,YAAY,CAAC,cAAsB,EAAE,mBAAoC;QAC9E,OAAO;YACL,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YACvE,GAAG,mBAAmB;SACvB,CAAC;IACJ,CAAC;IAEM,aAAa,CAAC,cAAsB,EAAE,mBAAoC;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,IAAI,CAAC,CAAC;QAC9E,OAAO;YACL,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5D,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;YACH,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,CAAC;SACzD,CAAC;IACJ,CAAC;IAEM,aAAa,CAClB,cAAsB,EACtB,OAAe,EACf,YAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,IAAI,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,OAAO;YACL,GAAG,OAAO;YACV,EAAE,EAAE,cAAc;YAClB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;SAC5E,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"providerEpochs.js","sourceRoot":"","sources":["../../src/handoff/providerEpochs.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ import type { StockRpc } from "../gateway/stockRpc.js";
22
22
  import type { SubscriptionHub } from "../gateway/subscriptions.js";
23
23
  import { HandoffStore, type PendingProviderSwitch, type ProviderKind, type StockHistoryOverlay } from "./store.js";
24
24
  import { type ResolvedProviderEpoch } from "./providerEpochs.js";
25
+ import { LineageStore } from "./lineageStore.js";
25
26
  export declare const HANDOFF_DAEMON_CONNECTION_ID = "ccodex-handoff-daemon";
26
27
  export interface LogicalRequestResult {
27
28
  readonly provider: ProviderKind;
@@ -44,14 +45,18 @@ export declare class CrossProviderForks {
44
45
  private readonly stockServerRequests;
45
46
  private readonly stockServerRequestAliases;
46
47
  private readonly recentDurableProviders;
48
+ private readonly adminTails;
49
+ private readonly lineage;
50
+ private readonly legacyMirror;
47
51
  private daemonStock?;
48
52
  private subscriptions?;
49
53
  private jobTail;
50
- constructor(store: HandoffStore, claude: ClaudeService, renamePrompt?: string | null);
54
+ constructor(store: HandoffStore, claude: ClaudeService, renamePrompt?: string | null, lineage?: LineageStore);
51
55
  pending(threadId: string): PendingProviderSwitch | undefined;
52
56
  logical(threadId: string): ResolvedProviderEpoch | undefined;
53
57
  hiddenBackendIds(provider?: ProviderKind): Set<string>;
54
- sideSnapshot(params: ThreadForkParams, targetThreadId: string): ThreadForkResponse | undefined;
58
+ catalogTombstones(): string[];
59
+ sideSnapshot(params: ThreadForkParams, targetThreadId: string): Promise<ThreadForkResponse | undefined>;
55
60
  projectThreadCatalog(stockThreads: Thread[], claudeThreads: Thread[], params?: ThreadListParams): Thread[];
56
61
  projectLoadedThreadIds(stockIds: string[], claudeIds: string[]): string[];
57
62
  projectStockMessage(message: {
@@ -120,6 +125,11 @@ export declare class CrossProviderForks {
120
125
  close(): void;
121
126
  private seedProviderSwitch;
122
127
  private currentBackendTurns;
128
+ private hydrate;
129
+ private hydrateEpoch;
130
+ private historicalTurns;
131
+ private visibleTurns;
132
+ private snapshotTurns;
123
133
  private patchLogicalThread;
124
134
  private updateLogicalEpochFromParams;
125
135
  private deleteLogicalThread;
@@ -127,7 +137,11 @@ export declare class CrossProviderForks {
127
137
  private providerSwitchMaterial;
128
138
  private providerSwitchSummary;
129
139
  private targetThreadStart;
140
+ private finalizeProviderSwitch;
130
141
  private commitProviderSwitch;
142
+ private archiveSealedStockEpoch;
143
+ private settlePendingStockArchives;
144
+ private withAdminLock;
131
145
  private summarizeStock;
132
146
  private registerInternalStockThread;
133
147
  private waitStockTurn;