@gkorepanov/ccodex 0.3.0 → 0.4.1

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 (210) hide show
  1. package/README.md +139 -63
  2. package/assets/ccodex/goals/continuation.md +1 -0
  3. package/{compatibility.json → config/compatibility.json} +5 -6
  4. package/dist/claude/asyncQueue.d.ts +3 -0
  5. package/dist/claude/asyncQueue.js +13 -2
  6. package/dist/claude/asyncQueue.js.map +1 -1
  7. package/dist/claude/commandActions.d.ts +6 -0
  8. package/dist/claude/commandActions.js +57 -0
  9. package/dist/claude/commandActions.js.map +1 -0
  10. package/dist/claude/compactCommand.d.ts +2 -0
  11. package/dist/claude/compactCommand.js +7 -0
  12. package/dist/claude/compactCommand.js.map +1 -0
  13. package/dist/claude/goalTools.d.ts +15 -0
  14. package/dist/claude/goalTools.js +128 -0
  15. package/dist/claude/goalTools.js.map +1 -0
  16. package/dist/claude/hookMapper.d.ts +17 -4
  17. package/dist/claude/hookMapper.js +7 -5
  18. package/dist/claude/hookMapper.js.map +1 -1
  19. package/dist/claude/inputMapper.d.ts +1 -0
  20. package/dist/claude/inputMapper.js +1 -0
  21. package/dist/claude/inputMapper.js.map +1 -1
  22. package/dist/claude/rateLimits.d.ts +72 -0
  23. package/dist/claude/rateLimits.js +330 -0
  24. package/dist/claude/rateLimits.js.map +1 -0
  25. package/dist/claude/responseItemValidation.d.ts +2 -0
  26. package/dist/claude/responseItemValidation.js +40 -0
  27. package/dist/claude/responseItemValidation.js.map +1 -0
  28. package/dist/claude/resultClassifier.d.ts +8 -2
  29. package/dist/claude/resultClassifier.js +9 -1
  30. package/dist/claude/resultClassifier.js.map +1 -1
  31. package/dist/claude/service.d.ts +116 -29
  32. package/dist/claude/service.js +1337 -680
  33. package/dist/claude/service.js.map +1 -1
  34. package/dist/claude/session/backgroundOutput.d.ts +2 -0
  35. package/dist/claude/session/backgroundOutput.js +29 -0
  36. package/dist/claude/session/backgroundOutput.js.map +1 -0
  37. package/dist/claude/session/commands.d.ts +862 -0
  38. package/dist/claude/session/commands.js +2 -0
  39. package/dist/claude/session/commands.js.map +1 -0
  40. package/dist/claude/session/goalState.d.ts +49 -0
  41. package/dist/claude/session/goalState.js +407 -0
  42. package/dist/claude/session/goalState.js.map +1 -0
  43. package/dist/claude/session/mailbox.d.ts +52 -0
  44. package/dist/claude/session/mailbox.js +190 -0
  45. package/dist/claude/session/mailbox.js.map +1 -0
  46. package/dist/claude/session/outputAdapter.d.ts +11 -0
  47. package/dist/claude/session/outputAdapter.js +31 -0
  48. package/dist/claude/session/outputAdapter.js.map +1 -0
  49. package/dist/claude/session/permissionUpdates.d.ts +4 -0
  50. package/dist/claude/session/permissionUpdates.js +17 -0
  51. package/dist/claude/session/permissionUpdates.js.map +1 -0
  52. package/dist/claude/session/providerFacts.d.ts +47 -0
  53. package/dist/claude/session/providerFacts.js +84 -0
  54. package/dist/claude/session/providerFacts.js.map +1 -0
  55. package/dist/claude/session/providerRuntime.d.ts +1 -0
  56. package/dist/claude/session/providerRuntime.js +2 -0
  57. package/dist/claude/session/providerRuntime.js.map +1 -0
  58. package/dist/claude/session/providerRuntimeFactory.d.ts +49 -0
  59. package/dist/claude/session/providerRuntimeFactory.js +122 -0
  60. package/dist/claude/session/providerRuntimeFactory.js.map +1 -0
  61. package/dist/claude/session/repository.d.ts +57 -0
  62. package/dist/claude/session/repository.js +161 -0
  63. package/dist/claude/session/repository.js.map +1 -0
  64. package/dist/claude/session/runtime.d.ts +46 -0
  65. package/dist/claude/session/runtime.js +140 -0
  66. package/dist/claude/session/runtime.js.map +1 -0
  67. package/dist/claude/session/scopeState.d.ts +61 -0
  68. package/dist/claude/session/scopeState.js +74 -0
  69. package/dist/claude/session/scopeState.js.map +1 -0
  70. package/dist/claude/session/session.d.ts +285 -0
  71. package/dist/claude/session/session.js +6778 -0
  72. package/dist/claude/session/session.js.map +1 -0
  73. package/dist/claude/session/shellRunner.d.ts +13 -0
  74. package/dist/claude/session/shellRunner.js +103 -0
  75. package/dist/claude/session/shellRunner.js.map +1 -0
  76. package/dist/claude/session/usage.d.ts +2 -0
  77. package/dist/claude/session/usage.js +10 -0
  78. package/dist/claude/session/usage.js.map +1 -0
  79. package/dist/claude/sessionRegistry.d.ts +26 -0
  80. package/dist/claude/sessionRegistry.js +118 -0
  81. package/dist/claude/sessionRegistry.js.map +1 -0
  82. package/dist/claude/shellSupervisor.d.ts +1 -0
  83. package/dist/claude/shellSupervisor.js +69 -0
  84. package/dist/claude/shellSupervisor.js.map +1 -0
  85. package/dist/claude/statusCommand.d.ts +21 -0
  86. package/dist/claude/statusCommand.js +97 -0
  87. package/dist/claude/statusCommand.js.map +1 -0
  88. package/dist/claude/toolMapper.d.ts +9 -1
  89. package/dist/claude/toolMapper.js +98 -18
  90. package/dist/claude/toolMapper.js.map +1 -1
  91. package/dist/claude/transcriptBrancher.d.ts +37 -0
  92. package/dist/claude/transcriptBrancher.js +103 -0
  93. package/dist/claude/transcriptBrancher.js.map +1 -0
  94. package/dist/cli/delegate.js +23 -1
  95. package/dist/cli/delegate.js.map +1 -1
  96. package/dist/cli/main.js +28 -12
  97. package/dist/cli/main.js.map +1 -1
  98. package/dist/codex/generated/ResponseItemRuntimeSchema.d.ts +8 -0
  99. package/dist/codex/generated/ResponseItemRuntimeSchema.js +7 -0
  100. package/dist/codex/generated/ResponseItemRuntimeSchema.js.map +1 -0
  101. package/dist/compatibility/probe.js +12 -7
  102. package/dist/compatibility/probe.js.map +1 -1
  103. package/dist/config/config.d.ts +12 -0
  104. package/dist/config/config.js +103 -11
  105. package/dist/config/config.js.map +1 -1
  106. package/dist/daemon/daemon.js +91 -43
  107. package/dist/daemon/daemon.js.map +1 -1
  108. package/dist/daemon/ownership.d.ts +15 -0
  109. package/dist/daemon/ownership.js +185 -0
  110. package/dist/daemon/ownership.js.map +1 -0
  111. package/dist/daemon/probe.js +1 -1
  112. package/dist/daemon/supervisor.d.ts +3 -0
  113. package/dist/daemon/supervisor.js +37 -1
  114. package/dist/daemon/supervisor.js.map +1 -1
  115. package/dist/gateway/clientConnection.d.ts +7 -1
  116. package/dist/gateway/clientConnection.js +656 -60
  117. package/dist/gateway/clientConnection.js.map +1 -1
  118. package/dist/gateway/logicalThreadProjection.d.ts +8 -0
  119. package/dist/gateway/logicalThreadProjection.js +59 -0
  120. package/dist/gateway/logicalThreadProjection.js.map +1 -0
  121. package/dist/gateway/remoteRelay.js +0 -1
  122. package/dist/gateway/remoteRelay.js.map +1 -1
  123. package/dist/gateway/server.d.ts +1 -1
  124. package/dist/gateway/server.js +69 -11
  125. package/dist/gateway/server.js.map +1 -1
  126. package/dist/gateway/stockRpc.d.ts +5 -2
  127. package/dist/gateway/stockRpc.js +52 -6
  128. package/dist/gateway/stockRpc.js.map +1 -1
  129. package/dist/gateway/subscriptions.d.ts +19 -3
  130. package/dist/gateway/subscriptions.js +152 -13
  131. package/dist/gateway/subscriptions.js.map +1 -1
  132. package/dist/gateway/threadList.d.ts +7 -2
  133. package/dist/gateway/threadList.js +8 -4
  134. package/dist/gateway/threadList.js.map +1 -1
  135. package/dist/gateway/transientNotice.d.ts +15 -0
  136. package/dist/gateway/transientNotice.js +96 -1
  137. package/dist/gateway/transientNotice.js.map +1 -1
  138. package/dist/handoff/providerEpochs.d.ts +18 -0
  139. package/dist/handoff/providerEpochs.js +77 -0
  140. package/dist/handoff/providerEpochs.js.map +1 -0
  141. package/dist/handoff/service.d.ts +86 -6
  142. package/dist/handoff/service.js +1276 -168
  143. package/dist/handoff/service.js.map +1 -1
  144. package/dist/handoff/store.d.ts +189 -2
  145. package/dist/handoff/store.js +618 -7
  146. package/dist/handoff/store.js.map +1 -1
  147. package/dist/handoff/titleGeneration.d.ts +28 -0
  148. package/dist/handoff/titleGeneration.js +138 -0
  149. package/dist/handoff/titleGeneration.js.map +1 -0
  150. package/dist/management/doctor.d.ts +1 -1
  151. package/dist/management/doctor.js +32 -23
  152. package/dist/management/doctor.js.map +1 -1
  153. package/dist/management/lifecycle.js +14 -2
  154. package/dist/management/lifecycle.js.map +1 -1
  155. package/dist/management/remoteShim.d.ts +10 -0
  156. package/dist/management/remoteShim.js +65 -0
  157. package/dist/management/remoteShim.js.map +1 -0
  158. package/dist/management/setup.d.ts +5 -0
  159. package/dist/management/setup.js +122 -41
  160. package/dist/management/setup.js.map +1 -1
  161. package/dist/management/shimSelect.d.ts +3 -0
  162. package/dist/management/shimSelect.js +49 -0
  163. package/dist/management/shimSelect.js.map +1 -0
  164. package/dist/management/shims.d.ts +5 -0
  165. package/dist/management/shims.js +59 -0
  166. package/dist/management/shims.js.map +1 -0
  167. package/dist/observability/metrics.d.ts +2 -0
  168. package/dist/observability/metrics.js +6 -0
  169. package/dist/observability/metrics.js.map +1 -1
  170. package/dist/protocol/errors.d.ts +1 -0
  171. package/dist/protocol/errors.js +4 -1
  172. package/dist/protocol/errors.js.map +1 -1
  173. package/dist/runtime/dependencies.js +3 -3
  174. package/dist/runtime/dependencies.js.map +1 -1
  175. package/dist/runtime/providerAvailability.d.ts +24 -0
  176. package/dist/runtime/providerAvailability.js +107 -0
  177. package/dist/runtime/providerAvailability.js.map +1 -0
  178. package/dist/state/stateCommand.d.ts +21 -0
  179. package/dist/state/stateCommand.js +198 -0
  180. package/dist/state/stateCommand.js.map +1 -0
  181. package/dist/state/stockStateTracker.d.ts +16 -0
  182. package/dist/state/stockStateTracker.js +137 -0
  183. package/dist/state/stockStateTracker.js.map +1 -0
  184. package/dist/store/HybridStore.d.ts +118 -2
  185. package/dist/store/HybridStore.js +23 -1
  186. package/dist/store/HybridStore.js.map +1 -1
  187. package/dist/store/memoryStore.d.ts +57 -7
  188. package/dist/store/memoryStore.js +337 -5
  189. package/dist/store/memoryStore.js.map +1 -1
  190. package/dist/store/sqliteStore.d.ts +30 -4
  191. package/dist/store/sqliteStore.js +395 -42
  192. package/dist/store/sqliteStore.js.map +1 -1
  193. package/examples/config.toml +35 -0
  194. package/{LICENSES.md → legal/LICENSES.md} +2 -2
  195. package/{THIRD_PARTY_NOTICES.md → legal/THIRD_PARTY_NOTICES.md} +177 -148
  196. package/package.json +36 -24
  197. package/{install.sh → scripts/install.sh} +2 -2
  198. package/scripts/postinstall.mjs +10 -0
  199. package/vendor/codex/continuation.md +51 -0
  200. package/BUILD_BENCHMARKS.md +0 -27
  201. package/RELEASING.md +0 -98
  202. package/SSH_VERIFY.md +0 -69
  203. package/config.example.toml +0 -20
  204. package/dist/claude/interactions.d.ts +0 -23
  205. package/dist/claude/interactions.js +0 -77
  206. package/dist/claude/interactions.js.map +0 -1
  207. package/dist/claude/sessionRuntime.d.ts +0 -102
  208. package/dist/claude/sessionRuntime.js +0 -1361
  209. package/dist/claude/sessionRuntime.js.map +0 -1
  210. /package/{uninstall.sh → scripts/uninstall.sh} +0 -0
@@ -1,41 +1,111 @@
1
+ import type { Thread } from "../codex/generated/v2/Thread.js";
1
2
  import type { ThreadForkParams } from "../codex/generated/v2/ThreadForkParams.js";
2
3
  import type { ThreadForkResponse } from "../codex/generated/v2/ThreadForkResponse.js";
3
4
  import type { ThreadItemsListParams } from "../codex/generated/v2/ThreadItemsListParams.js";
4
5
  import type { ThreadItemsListResponse } from "../codex/generated/v2/ThreadItemsListResponse.js";
6
+ import type { ThreadRollbackParams } from "../codex/generated/v2/ThreadRollbackParams.js";
7
+ import type { ThreadRollbackResponse } from "../codex/generated/v2/ThreadRollbackResponse.js";
5
8
  import type { ThreadReadParams } from "../codex/generated/v2/ThreadReadParams.js";
6
9
  import type { ThreadReadResponse } from "../codex/generated/v2/ThreadReadResponse.js";
7
10
  import type { ThreadResumeParams } from "../codex/generated/v2/ThreadResumeParams.js";
8
11
  import type { ThreadResumeResponse } from "../codex/generated/v2/ThreadResumeResponse.js";
9
12
  import type { ThreadSettings } from "../codex/generated/v2/ThreadSettings.js";
10
13
  import type { ThreadSettingsUpdateParams } from "../codex/generated/v2/ThreadSettingsUpdateParams.js";
14
+ import type { ThreadStartParams } from "../codex/generated/v2/ThreadStartParams.js";
11
15
  import type { ThreadTurnsListParams } from "../codex/generated/v2/ThreadTurnsListParams.js";
12
16
  import type { ThreadTurnsListResponse } from "../codex/generated/v2/ThreadTurnsListResponse.js";
17
+ import type { Turn } from "../codex/generated/v2/Turn.js";
13
18
  import type { TurnStartParams } from "../codex/generated/v2/TurnStartParams.js";
14
19
  import type { ClaudeService } from "../claude/service.js";
15
20
  import type { StockRpc } from "../gateway/stockRpc.js";
16
- import { HandoffStore, type PendingProviderSwitch, type StockHistoryOverlay } from "./store.js";
21
+ import type { SubscriptionHub } from "../gateway/subscriptions.js";
22
+ import { HandoffStore, type PendingProviderSwitch, type ProviderKind, type StockHistoryOverlay } from "./store.js";
23
+ import { type ResolvedProviderEpoch } from "./providerEpochs.js";
24
+ export declare const HANDOFF_DAEMON_CONNECTION_ID = "ccodex-handoff-daemon";
25
+ export interface LogicalRequestResult {
26
+ readonly provider: ProviderKind;
27
+ readonly result: unknown;
28
+ readonly after?: () => Promise<void> | void;
29
+ }
17
30
  export declare class CrossProviderForks {
18
31
  private readonly store;
19
32
  private readonly claude;
33
+ private readonly renamePrompt;
34
+ private readonly epochs;
20
35
  private readonly internalStockThreads;
36
+ private readonly suppressedInternalStockThreads;
21
37
  private readonly internalStockTurns;
38
+ private readonly internalStockBuilds;
22
39
  private readonly stockTargetBuilds;
23
- constructor(store: HandoffStore, claude: ClaudeService);
40
+ private readonly systemEphemeralThreads;
41
+ private readonly directTitleCandidates;
42
+ private readonly titleTurns;
43
+ private readonly stockServerRequests;
44
+ private readonly stockServerRequestAliases;
45
+ private readonly recentDurableProviders;
46
+ private daemonStock?;
47
+ private subscriptions?;
48
+ private jobTail;
49
+ constructor(store: HandoffStore, claude: ClaudeService, renamePrompt?: string | null);
24
50
  pending(threadId: string): PendingProviderSwitch | undefined;
51
+ logical(threadId: string): ResolvedProviderEpoch | undefined;
52
+ hiddenBackendIds(provider?: ProviderKind): Set<string>;
53
+ projectThreadCatalog(stockThreads: Thread[], claudeThreads: Thread[]): Thread[];
54
+ projectLoadedThreadIds(stockIds: string[], claudeIds: string[]): string[];
55
+ projectStockMessage(message: {
56
+ id?: string | number;
57
+ method?: string;
58
+ params?: unknown;
59
+ }): boolean;
60
+ ownsStockBackendMessage(message: {
61
+ params?: unknown;
62
+ }): boolean;
63
+ resolveStockServerRequest(requestId: string, result: unknown): Promise<boolean>;
64
+ requestLogical(method: string, publicParams: Record<string, unknown>, clientStock: StockRpc): Promise<LogicalRequestResult>;
65
+ private requestProvisionalLogical;
66
+ forkLogical(params: ThreadForkParams, clientStock: StockRpc): Promise<ThreadForkResponse>;
67
+ rollbackLogicalFork(params: ThreadRollbackParams, clientStock: StockRpc, connectionId?: string): Promise<ThreadRollbackResponse>;
68
+ configureDaemonStock(stock: StockRpc): void;
69
+ configureSubscriptions(subscriptions: SubscriptionHub): void;
70
+ claimFailedFork(threadId: string): string | undefined;
71
+ drain(): Promise<void>;
72
+ switchProviderTurn(params: TurnStartParams, compactionTurn: Turn, clientStock: StockRpc, connectionId: string, compacted: () => void): Promise<void>;
73
+ private runProviderSwitchJob;
74
+ private recoverProviderSwitch;
25
75
  interceptSettings(params: ThreadSettingsUpdateParams): {
26
76
  handled: boolean;
27
77
  notification?: ThreadSettings;
28
78
  };
79
+ stageTurnSwitch(params: TurnStartParams): PendingProviderSwitch | undefined;
29
80
  blockedTurnTarget(params: TurnStartParams): string | undefined;
30
- shouldFork(params: ThreadForkParams): boolean;
31
- fork(params: ThreadForkParams, stock: StockRpc, connectionId?: string): Promise<ThreadForkResponse>;
81
+ isSystemEphemeralFork(params: ThreadForkParams): boolean;
82
+ forkSystemEphemeral(params: ThreadForkParams, stock: StockRpc, connectionId: string): Promise<ThreadForkResponse>;
32
83
  overlay(threadId: string): StockHistoryOverlay | undefined;
33
84
  ownsInternalStockThread(threadId: string): boolean;
85
+ captureInternalStockMessage(_connectionId: string, message: {
86
+ method: string;
87
+ params?: unknown;
88
+ }): boolean;
89
+ registerForwardedEphemeralCandidate(connectionId: string, threadId: string, params: ThreadStartParams | ThreadForkParams): void;
90
+ observeDurableThread(connectionId: string, provider: ProviderKind): void;
91
+ observeDurableTurn(connectionId: string, params: TurnStartParams): void;
92
+ prepareTitleTurn(connectionId: string, params: TurnStartParams): TurnStartParams;
93
+ rewriteTitleMessages(message: {
94
+ method: string;
95
+ params?: unknown;
96
+ }): Array<{
97
+ method: string;
98
+ params?: unknown;
99
+ }> | undefined;
34
100
  suppressStockTargetMessage(connectionId: string, message: {
101
+ id?: string | number;
35
102
  method: string;
36
103
  params?: unknown;
37
104
  }): boolean;
38
- detachConnection(connectionId: string): void;
105
+ private flushStockTargetBuild;
106
+ releaseSystemEphemeral(connectionId: string, threadId: string): boolean;
107
+ ownsSystemEphemeral(connectionId: string, threadId: string): boolean;
108
+ detachConnection(connectionId: string, stock: StockRpc): Promise<void>;
39
109
  recordInternalStockMessage(message: {
40
110
  method: string;
41
111
  params?: unknown;
@@ -46,9 +116,19 @@ export declare class CrossProviderForks {
46
116
  itemsOverlay(params: ThreadItemsListParams, stock: StockRpc): Promise<ThreadItemsListResponse>;
47
117
  clearThread(threadId: string): void;
48
118
  close(): void;
119
+ private seedProviderSwitch;
120
+ private currentBackendTurns;
121
+ private patchLogicalThread;
122
+ private updateLogicalEpochFromParams;
123
+ private deleteLogicalThread;
124
+ private providerSwitchSource;
125
+ private providerSwitchMaterial;
126
+ private providerSwitchSummary;
127
+ private targetThreadStart;
128
+ private commitProviderSwitch;
49
129
  private summarizeStock;
130
+ private registerInternalStockThread;
50
131
  private waitStockTurn;
51
- private createStockFork;
52
132
  private requireOverlay;
53
133
  private patchThread;
54
134
  private fullOverlayTurns;