@gkorepanov/ccodex 0.3.0 → 0.3.4

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 (176) hide show
  1. package/README.md +27 -9
  2. package/RELEASING.md +14 -15
  3. package/SSH_VERIFY.md +11 -0
  4. package/archive/README.md +23 -0
  5. package/compatibility.json +1 -2
  6. package/config.example.toml +12 -4
  7. package/dist/claude/asyncQueue.d.ts +3 -0
  8. package/dist/claude/asyncQueue.js +13 -2
  9. package/dist/claude/asyncQueue.js.map +1 -1
  10. package/dist/claude/commandActions.d.ts +6 -0
  11. package/dist/claude/commandActions.js +57 -0
  12. package/dist/claude/commandActions.js.map +1 -0
  13. package/dist/claude/compactCommand.d.ts +2 -0
  14. package/dist/claude/compactCommand.js +7 -0
  15. package/dist/claude/compactCommand.js.map +1 -0
  16. package/dist/claude/goalTools.d.ts +15 -0
  17. package/dist/claude/goalTools.js +173 -0
  18. package/dist/claude/goalTools.js.map +1 -0
  19. package/dist/claude/hookMapper.d.ts +17 -4
  20. package/dist/claude/hookMapper.js +7 -5
  21. package/dist/claude/hookMapper.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 +1 -1
  30. package/dist/claude/resultClassifier.js.map +1 -1
  31. package/dist/claude/service.d.ts +108 -28
  32. package/dist/claude/service.js +1276 -668
  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 +855 -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/providerFacts.d.ts +47 -0
  50. package/dist/claude/session/providerFacts.js +84 -0
  51. package/dist/claude/session/providerFacts.js.map +1 -0
  52. package/dist/claude/session/providerRuntime.d.ts +1 -0
  53. package/dist/claude/session/providerRuntime.js +2 -0
  54. package/dist/claude/session/providerRuntime.js.map +1 -0
  55. package/dist/claude/session/providerRuntimeFactory.d.ts +49 -0
  56. package/dist/claude/session/providerRuntimeFactory.js +127 -0
  57. package/dist/claude/session/providerRuntimeFactory.js.map +1 -0
  58. package/dist/claude/session/repository.d.ts +57 -0
  59. package/dist/claude/session/repository.js +161 -0
  60. package/dist/claude/session/repository.js.map +1 -0
  61. package/dist/claude/session/runtime.d.ts +46 -0
  62. package/dist/claude/session/runtime.js +140 -0
  63. package/dist/claude/session/runtime.js.map +1 -0
  64. package/dist/claude/session/scopeState.d.ts +61 -0
  65. package/dist/claude/session/scopeState.js +74 -0
  66. package/dist/claude/session/scopeState.js.map +1 -0
  67. package/dist/claude/session/session.d.ts +281 -0
  68. package/dist/claude/session/session.js +6664 -0
  69. package/dist/claude/session/session.js.map +1 -0
  70. package/dist/claude/session/shellRunner.d.ts +13 -0
  71. package/dist/claude/session/shellRunner.js +103 -0
  72. package/dist/claude/session/shellRunner.js.map +1 -0
  73. package/dist/claude/session/usage.d.ts +2 -0
  74. package/dist/claude/session/usage.js +10 -0
  75. package/dist/claude/session/usage.js.map +1 -0
  76. package/dist/claude/sessionRegistry.d.ts +26 -0
  77. package/dist/claude/sessionRegistry.js +118 -0
  78. package/dist/claude/sessionRegistry.js.map +1 -0
  79. package/dist/claude/shellSupervisor.d.ts +1 -0
  80. package/dist/claude/shellSupervisor.js +69 -0
  81. package/dist/claude/shellSupervisor.js.map +1 -0
  82. package/dist/claude/statusCommand.d.ts +21 -0
  83. package/dist/claude/statusCommand.js +97 -0
  84. package/dist/claude/statusCommand.js.map +1 -0
  85. package/dist/claude/toolMapper.d.ts +9 -1
  86. package/dist/claude/toolMapper.js +92 -16
  87. package/dist/claude/toolMapper.js.map +1 -1
  88. package/dist/claude/transcriptBrancher.d.ts +37 -0
  89. package/dist/claude/transcriptBrancher.js +103 -0
  90. package/dist/claude/transcriptBrancher.js.map +1 -0
  91. package/dist/cli/delegate.js +23 -1
  92. package/dist/cli/delegate.js.map +1 -1
  93. package/dist/cli/main.js +28 -12
  94. package/dist/cli/main.js.map +1 -1
  95. package/dist/codex/generated/ResponseItemRuntimeSchema.d.ts +8 -0
  96. package/dist/codex/generated/ResponseItemRuntimeSchema.js +7 -0
  97. package/dist/codex/generated/ResponseItemRuntimeSchema.js.map +1 -0
  98. package/dist/compatibility/probe.js +11 -6
  99. package/dist/compatibility/probe.js.map +1 -1
  100. package/dist/config/config.d.ts +9 -0
  101. package/dist/config/config.js +80 -11
  102. package/dist/config/config.js.map +1 -1
  103. package/dist/daemon/daemon.js +91 -43
  104. package/dist/daemon/daemon.js.map +1 -1
  105. package/dist/daemon/ownership.d.ts +15 -0
  106. package/dist/daemon/ownership.js +185 -0
  107. package/dist/daemon/ownership.js.map +1 -0
  108. package/dist/daemon/supervisor.d.ts +3 -0
  109. package/dist/daemon/supervisor.js +37 -1
  110. package/dist/daemon/supervisor.js.map +1 -1
  111. package/dist/gateway/clientConnection.d.ts +7 -1
  112. package/dist/gateway/clientConnection.js +435 -48
  113. package/dist/gateway/clientConnection.js.map +1 -1
  114. package/dist/gateway/remoteRelay.js +0 -1
  115. package/dist/gateway/remoteRelay.js.map +1 -1
  116. package/dist/gateway/server.d.ts +1 -1
  117. package/dist/gateway/server.js +37 -9
  118. package/dist/gateway/server.js.map +1 -1
  119. package/dist/gateway/subscriptions.d.ts +9 -2
  120. package/dist/gateway/subscriptions.js +87 -9
  121. package/dist/gateway/subscriptions.js.map +1 -1
  122. package/dist/gateway/transientNotice.d.ts +2 -0
  123. package/dist/gateway/transientNotice.js +42 -1
  124. package/dist/gateway/transientNotice.js.map +1 -1
  125. package/dist/handoff/service.d.ts +32 -3
  126. package/dist/handoff/service.js +304 -26
  127. package/dist/handoff/service.js.map +1 -1
  128. package/dist/handoff/titleGeneration.d.ts +28 -0
  129. package/dist/handoff/titleGeneration.js +151 -0
  130. package/dist/handoff/titleGeneration.js.map +1 -0
  131. package/dist/management/doctor.d.ts +1 -1
  132. package/dist/management/doctor.js +32 -23
  133. package/dist/management/doctor.js.map +1 -1
  134. package/dist/management/lifecycle.js +14 -2
  135. package/dist/management/lifecycle.js.map +1 -1
  136. package/dist/management/remoteShim.d.ts +10 -0
  137. package/dist/management/remoteShim.js +65 -0
  138. package/dist/management/remoteShim.js.map +1 -0
  139. package/dist/management/setup.d.ts +4 -0
  140. package/dist/management/setup.js +108 -39
  141. package/dist/management/setup.js.map +1 -1
  142. package/dist/observability/metrics.d.ts +2 -0
  143. package/dist/observability/metrics.js +6 -0
  144. package/dist/observability/metrics.js.map +1 -1
  145. package/dist/protocol/errors.d.ts +1 -0
  146. package/dist/protocol/errors.js +4 -1
  147. package/dist/protocol/errors.js.map +1 -1
  148. package/dist/runtime/dependencies.js +2 -2
  149. package/dist/runtime/dependencies.js.map +1 -1
  150. package/dist/runtime/providerAvailability.d.ts +24 -0
  151. package/dist/runtime/providerAvailability.js +107 -0
  152. package/dist/runtime/providerAvailability.js.map +1 -0
  153. package/dist/state/stateCommand.d.ts +21 -0
  154. package/dist/state/stateCommand.js +198 -0
  155. package/dist/state/stateCommand.js.map +1 -0
  156. package/dist/state/stockStateTracker.d.ts +14 -0
  157. package/dist/state/stockStateTracker.js +120 -0
  158. package/dist/state/stockStateTracker.js.map +1 -0
  159. package/dist/store/HybridStore.d.ts +118 -2
  160. package/dist/store/HybridStore.js +23 -1
  161. package/dist/store/HybridStore.js.map +1 -1
  162. package/dist/store/memoryStore.d.ts +57 -7
  163. package/dist/store/memoryStore.js +337 -5
  164. package/dist/store/memoryStore.js.map +1 -1
  165. package/dist/store/sqliteStore.d.ts +30 -4
  166. package/dist/store/sqliteStore.js +395 -42
  167. package/dist/store/sqliteStore.js.map +1 -1
  168. package/install.sh +2 -2
  169. package/package.json +18 -10
  170. package/dist/claude/interactions.d.ts +0 -23
  171. package/dist/claude/interactions.js +0 -77
  172. package/dist/claude/interactions.js.map +0 -1
  173. package/dist/claude/sessionRuntime.d.ts +0 -102
  174. package/dist/claude/sessionRuntime.js +0 -1361
  175. package/dist/claude/sessionRuntime.js.map +0 -1
  176. /package/{BUILD_BENCHMARKS.md → archive/BUILD_BENCHMARKS.md} +0 -0
@@ -27,6 +27,13 @@ import type { ThreadStartResponse } from "../codex/generated/v2/ThreadStartRespo
27
27
  import type { TurnStartParams } from "../codex/generated/v2/TurnStartParams.js";
28
28
  import type { TurnStartResponse } from "../codex/generated/v2/TurnStartResponse.js";
29
29
  import type { TurnSteerParams } from "../codex/generated/v2/TurnSteerParams.js";
30
+ import type { TurnInterruptParams } from "../codex/generated/v2/TurnInterruptParams.js";
31
+ import type { ThreadBackgroundTerminalsCleanParams } from "../codex/generated/v2/ThreadBackgroundTerminalsCleanParams.js";
32
+ import type { ThreadBackgroundTerminalsCleanResponse } from "../codex/generated/v2/ThreadBackgroundTerminalsCleanResponse.js";
33
+ import type { ThreadBackgroundTerminalsListParams } from "../codex/generated/v2/ThreadBackgroundTerminalsListParams.js";
34
+ import type { ThreadBackgroundTerminalsListResponse } from "../codex/generated/v2/ThreadBackgroundTerminalsListResponse.js";
35
+ import type { ThreadBackgroundTerminalsTerminateParams } from "../codex/generated/v2/ThreadBackgroundTerminalsTerminateParams.js";
36
+ import type { ThreadBackgroundTerminalsTerminateResponse } from "../codex/generated/v2/ThreadBackgroundTerminalsTerminateResponse.js";
30
37
  import type { HybridConfig } from "../config/config.js";
31
38
  import type { SubscriptionHub } from "../gateway/subscriptions.js";
32
39
  import type { Logger } from "../observability/logger.js";
@@ -34,15 +41,32 @@ import type { HybridStore } from "../store/HybridStore.js";
34
41
  import { type ClaudeQueryFactory } from "./queryFactory.js";
35
42
  import type { Model } from "../codex/generated/v2/Model.js";
36
43
  import { MetricsRegistry } from "../observability/metrics.js";
44
+ import { type TranscriptBrancher } from "./transcriptBrancher.js";
45
+ import { type ClaudeRateLimitStatus, type ClaudeRateLimitsResponse } from "./rateLimits.js";
46
+ import { ShellRunner } from "./session/shellRunner.js";
47
+ import { type ProviderAvailabilityProbe } from "../runtime/providerAvailability.js";
48
+ import { type ThreadStateSnapshot } from "../state/stateCommand.js";
37
49
  interface ModelCatalog {
38
50
  list(): Promise<Model[]>;
39
51
  invalidate?(): void;
40
52
  }
53
+ type PreparedGoalHandle<T> = {
54
+ readonly response: T;
55
+ notify(): Promise<void>;
56
+ };
57
+ type PreparedResume = {
58
+ readonly response: ThreadResumeResponse;
59
+ notifyGoalSnapshot(notify: (method: string, params: unknown) => void): Promise<void>;
60
+ };
41
61
  export interface ClaudeHandoffSource {
42
62
  readonly thread: Thread;
43
63
  readonly turns: Turn[];
44
64
  readonly settings: ThreadSettings;
45
65
  }
66
+ export interface ClaudeThreadAdminEffects {
67
+ rename(sessionId: string, name: string, cwd: string): Promise<void>;
68
+ delete(sessionId: string, cwd: string): Promise<void>;
69
+ }
46
70
  export declare class ClaudeService {
47
71
  private readonly config;
48
72
  private readonly hub;
@@ -50,32 +74,72 @@ export declare class ClaudeService {
50
74
  private readonly queryFactory;
51
75
  private readonly modelCatalog?;
52
76
  private readonly metrics;
53
- private readonly runtimes;
77
+ private readonly transcripts;
78
+ private readonly threadAdminEffects;
79
+ private readonly availabilityProbe;
80
+ private readonly ephemeralReleases;
81
+ private readonly removalRetries;
82
+ private readonly terminalAdmins;
54
83
  private readonly idleTimer;
55
84
  private readonly store;
56
- private readonly interactions;
85
+ private readonly sessionOutput;
86
+ private readonly sessions;
87
+ private readonly rateLimits;
57
88
  private idleSweep;
58
- constructor(config: HybridConfig, hub: SubscriptionHub, logger: Logger, durableStore?: HybridStore, queryFactory?: ClaudeQueryFactory, modelCatalog?: ModelCatalog | undefined, metrics?: MetricsRegistry);
89
+ private readonly restartRecovery;
90
+ private closing;
91
+ private closePromise;
92
+ private standaloneStatusRead;
93
+ constructor(config: HybridConfig, hub: SubscriptionHub, logger: Logger, durableStore?: HybridStore, queryFactory?: ClaudeQueryFactory, modelCatalog?: ModelCatalog | undefined, metrics?: MetricsRegistry, transcripts?: TranscriptBrancher, threadAdminEffects?: ClaudeThreadAdminEffects, shellRunner?: ShellRunner, availabilityProbe?: ProviderAvailabilityProbe);
59
94
  ownsThread(threadId: string): boolean;
95
+ ready(): Promise<void>;
60
96
  ownsModel(modelId: string): boolean;
61
- handoffSource(threadId: string, lastTurnId?: string | null): ClaudeHandoffSource;
97
+ readRateLimits(foregroundThreadId?: string): Promise<ClaudeRateLimitsResponse>;
98
+ readRateLimitStatus(foregroundThreadId?: string): Promise<ClaudeRateLimitStatus>;
99
+ cachedRateLimits(): ClaudeRateLimitsResponse;
100
+ subscribeRateLimits(connectionId: string, listener: (response: ClaudeRateLimitsResponse) => void): void;
101
+ unsubscribeRateLimits(connectionId: string): void;
102
+ handoffSource(threadId: string, lastTurnId?: string | null): Promise<ClaudeHandoffSource>;
62
103
  currentThreadSettings(threadId: string): ThreadSettings;
63
104
  loadedThreadIds(): string[];
64
- reportError(threadId: string, requestedTurnId: string | undefined, message: string, codexErrorInfo: CodexErrorInfo): void;
105
+ reportError(threadId: string, requestedTurnId: string | undefined, message: string, codexErrorInfo: CodexErrorInfo): Promise<void>;
65
106
  startThread(params: ThreadStartParams): Promise<ThreadStartResponse>;
66
- announceThread(thread: Thread): void;
107
+ announceThread(thread: Thread): Promise<void>;
67
108
  resumeThread(params: ThreadResumeParams | string): Promise<ThreadResumeResponse>;
109
+ prepareResume(params: ThreadResumeParams): Promise<PreparedResume>;
68
110
  readThread(threadId: string, includeTurns: boolean): ThreadReadResponse;
69
- prepareTurn(params: TurnStartParams): Promise<{
111
+ prepareTurn(params: TurnStartParams, review?: {
112
+ label: string;
113
+ display: string;
114
+ }): Promise<{
70
115
  response: TurnStartResponse;
71
- announce: () => void;
116
+ announce: () => Promise<void>;
72
117
  start: () => void;
73
118
  }>;
74
- interruptTurn(threadId: string): Promise<void>;
119
+ prepareStatusTurn(params: TurnStartParams, render: () => Promise<string>): Promise<{
120
+ response: TurnStartResponse;
121
+ announce: () => Promise<void>;
122
+ start: () => void;
123
+ }>;
124
+ prepareStateTurn(params: TurnStartParams, render: () => Promise<string>): Promise<{
125
+ response: TurnStartResponse;
126
+ announce: () => Promise<void>;
127
+ start: () => void;
128
+ }>;
129
+ stateSnapshot(threadId: string): ThreadStateSnapshot;
130
+ private prepareSyntheticCommandTurn;
131
+ interruptTurn(value: string | TurnInterruptParams): Promise<void>;
132
+ cleanBackgroundTerminals(params: ThreadBackgroundTerminalsCleanParams): Promise<ThreadBackgroundTerminalsCleanResponse>;
133
+ listBackgroundTerminals(params: ThreadBackgroundTerminalsListParams): Promise<ThreadBackgroundTerminalsListResponse>;
134
+ terminateBackgroundTerminal(params: ThreadBackgroundTerminalsTerminateParams): Promise<ThreadBackgroundTerminalsTerminateResponse>;
75
135
  steerTurn(params: TurnSteerParams): Promise<{
76
136
  turnId: string;
77
137
  }>;
78
138
  compactThread(threadId: string): Promise<Record<string, never>>;
139
+ preparePromptedCompact(threadId: string, input: string): Promise<{
140
+ response: TurnStartResponse;
141
+ announce: () => Promise<void>;
142
+ }>;
79
143
  updateThreadSettings(params: ThreadSettingsUpdateParams): Promise<Record<string, never>>;
80
144
  injectItems(params: ThreadInjectItemsParams): Promise<Record<string, never>>;
81
145
  summarizeHandoff(threadId: string, prompt: string): Promise<string>;
@@ -91,42 +155,58 @@ export declare class ClaudeService {
91
155
  turnsPage(params: ThreadTurnsListParams): ThreadTurnsListResponse;
92
156
  listThreads(params: Parameters<HybridStore["listThreads"]>[0]): Thread[];
93
157
  setThreadName(params: ThreadSetNameParams): Promise<Record<string, never>>;
94
- updateThreadMetadata(params: ThreadMetadataUpdateParams): {
158
+ updateThreadMetadata(params: ThreadMetadataUpdateParams): Promise<{
95
159
  thread: Thread;
96
- };
160
+ }>;
97
161
  archiveThread(threadId: string): Promise<Record<string, never>>;
98
- unarchiveThread(threadId: string): {
162
+ unarchiveThread(threadId: string): Promise<{
99
163
  thread: Thread;
100
- };
164
+ }>;
101
165
  deleteThread(threadId: string): Promise<Record<string, never>>;
166
+ releaseEphemeralThread(threadId: string): Promise<void>;
167
+ private releaseEphemeralThreadOnce;
102
168
  listItems(params: ThreadItemsListParams): ThreadItemsListResponse;
103
169
  forkThread(params: ThreadForkParams): Promise<ThreadForkResponse>;
104
170
  rollbackThread(params: ThreadRollbackParams): Promise<ThreadRollbackResponse>;
105
- setGoal(params: ThreadGoalSetParams): {
171
+ prepareGoalSet(params: ThreadGoalSetParams): Promise<PreparedGoalHandle<{
106
172
  goal: ThreadGoal;
107
- };
108
- getGoal(threadId: string): {
173
+ }>>;
174
+ getGoal(threadId: string): Promise<{
109
175
  goal: ThreadGoal | null;
110
- };
111
- clearGoal(threadId: string): {
176
+ }>;
177
+ prepareGoalClear(threadId: string): Promise<PreparedGoalHandle<{
112
178
  cleared: boolean;
113
- };
114
- resolveServerRequest(requestId: string, response: unknown): boolean;
115
- replayPendingRequests(threadId: string): void;
179
+ }>>;
180
+ private goalHandle;
181
+ resolveServerRequest(requestId: string, response: unknown): Promise<boolean>;
182
+ replayPendingRequests(threadId: string, connectionId?: string): Promise<void>;
183
+ eventHighWatermark(threadId: string): number;
184
+ eventsAfter(threadId: string, sequence: number): import("../store/HybridStore.js").StoredEvent[];
185
+ latestTokenUsage(threadId: string): import("../store/HybridStore.js").StoredEvent | undefined;
116
186
  close(): Promise<void>;
187
+ private closeOnce;
117
188
  private discardThreadSilently;
189
+ private removeThread;
190
+ private startThreadRemoval;
191
+ private threadAdminEffect;
192
+ private resumeThreadRemovals;
193
+ private resumeThreadRemoval;
194
+ private resumeThreadRemovalOnce;
195
+ private deleteProviderSession;
118
196
  private reconcileAfterRestart;
119
197
  private unloadIdleRuntimes;
120
- private requireRuntime;
121
198
  private requireRecord;
122
- private lastProviderBoundary;
123
- private unloadRuntime;
199
+ private requireIndependentThread;
200
+ isChildProjection(threadId: string): boolean;
201
+ private assertThreadAvailable;
202
+ private throwPendingRemoval;
203
+ private pendingThreadRemoval;
204
+ private newThreadRecord;
124
205
  private applyTurnOverrides;
125
206
  private applySettings;
126
207
  private validateModelSettings;
127
- private threadSettings;
128
- private emit;
129
- private currentGoal;
130
- private forkTranscript;
208
+ private readStandaloneRateLimitStatus;
209
+ private completeCommandTurn;
210
+ private failStatusTurnForUnload;
131
211
  }
132
212
  export {};