@claudexor/cli 3.25.1 → 4.0.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 (228) hide show
  1. package/dist/account-reset-services.d.ts +2 -2
  2. package/dist/account-reset-services.d.ts.map +1 -1
  3. package/dist/account-reset-services.js.map +1 -1
  4. package/dist/account-resource-query.d.ts +2 -2
  5. package/dist/account-resource-query.d.ts.map +1 -1
  6. package/dist/account-resource-query.js +3 -3
  7. package/dist/account-resource-query.js.map +1 -1
  8. package/dist/claude-statusline.d.ts +2 -4
  9. package/dist/claude-statusline.d.ts.map +1 -1
  10. package/dist/claude-statusline.js +6 -5
  11. package/dist/claude-statusline.js.map +1 -1
  12. package/dist/claudexord-entry.d.ts +7 -2
  13. package/dist/claudexord-entry.d.ts.map +1 -1
  14. package/dist/claudexord-entry.js +10 -3
  15. package/dist/claudexord-entry.js.map +1 -1
  16. package/dist/claudexord.d.ts +0 -1
  17. package/dist/claudexord.d.ts.map +1 -1
  18. package/dist/claudexord.js +308 -240
  19. package/dist/claudexord.js.map +1 -1
  20. package/dist/cli-error.js +3 -3
  21. package/dist/cli-error.js.map +1 -1
  22. package/dist/cli.js +4 -49
  23. package/dist/cli.js.map +1 -1
  24. package/dist/codex-quota-source.js +2 -2
  25. package/dist/codex-quota-source.js.map +1 -1
  26. package/dist/command-flags.d.ts.map +1 -1
  27. package/dist/command-flags.js +1 -0
  28. package/dist/command-flags.js.map +1 -1
  29. package/dist/command-registry.js +1 -1
  30. package/dist/command-registry.js.map +1 -1
  31. package/dist/continue-from-run.d.ts +7 -8
  32. package/dist/continue-from-run.d.ts.map +1 -1
  33. package/dist/continue-from-run.js +3 -4
  34. package/dist/continue-from-run.js.map +1 -1
  35. package/dist/control-api-address.d.ts +6 -0
  36. package/dist/control-api-address.d.ts.map +1 -0
  37. package/dist/control-api-address.js +53 -0
  38. package/dist/control-api-address.js.map +1 -0
  39. package/dist/control-services.d.ts +139 -115
  40. package/dist/control-services.d.ts.map +1 -1
  41. package/dist/control-services.js +11 -32
  42. package/dist/control-services.js.map +1 -1
  43. package/dist/daemon-admission-runtime.d.ts +0 -60
  44. package/dist/daemon-admission-runtime.d.ts.map +1 -1
  45. package/dist/daemon-admission-runtime.js +3 -168
  46. package/dist/daemon-admission-runtime.js.map +1 -1
  47. package/dist/daemon-agent-runner.d.ts +6 -3
  48. package/dist/daemon-agent-runner.d.ts.map +1 -1
  49. package/dist/daemon-agent-runner.js +2 -1
  50. package/dist/daemon-agent-runner.js.map +1 -1
  51. package/dist/daemon-lifecycle.d.ts +10 -3
  52. package/dist/daemon-lifecycle.d.ts.map +1 -1
  53. package/dist/daemon-lifecycle.js +16 -7
  54. package/dist/daemon-lifecycle.js.map +1 -1
  55. package/dist/daemon-owner.d.ts +7 -0
  56. package/dist/daemon-owner.d.ts.map +1 -0
  57. package/dist/daemon-owner.js +39 -0
  58. package/dist/daemon-owner.js.map +1 -0
  59. package/dist/daemon-run.d.ts +8 -1
  60. package/dist/daemon-run.d.ts.map +1 -1
  61. package/dist/daemon-run.js +31 -3
  62. package/dist/daemon-run.js.map +1 -1
  63. package/dist/daemon-runtime-shutdown.d.ts +1 -1
  64. package/dist/daemon-runtime-shutdown.d.ts.map +1 -1
  65. package/dist/daemon-runtime-shutdown.js +2 -2
  66. package/dist/daemon-runtime-shutdown.js.map +1 -1
  67. package/dist/daemon-startup.d.ts +5 -42
  68. package/dist/daemon-startup.d.ts.map +1 -1
  69. package/dist/daemon-startup.js +7 -85
  70. package/dist/daemon-startup.js.map +1 -1
  71. package/dist/daemon-status-report.d.ts +4 -0
  72. package/dist/daemon-status-report.d.ts.map +1 -0
  73. package/dist/daemon-status-report.js +39 -0
  74. package/dist/daemon-status-report.js.map +1 -0
  75. package/dist/engine-skew.d.ts +1 -0
  76. package/dist/engine-skew.d.ts.map +1 -1
  77. package/dist/engine-skew.js +6 -2
  78. package/dist/engine-skew.js.map +1 -1
  79. package/dist/harness-maintenance-service.d.ts +9 -222
  80. package/dist/harness-maintenance-service.d.ts.map +1 -1
  81. package/dist/harness-maintenance-service.js +7 -37
  82. package/dist/harness-maintenance-service.js.map +1 -1
  83. package/dist/live.d.ts +2 -5
  84. package/dist/live.d.ts.map +1 -1
  85. package/dist/live.js +2 -44
  86. package/dist/live.js.map +1 -1
  87. package/dist/mcp-catalog-query.d.ts +2 -1
  88. package/dist/mcp-catalog-query.d.ts.map +1 -1
  89. package/dist/mcp-catalog-query.js +6 -5
  90. package/dist/mcp-catalog-query.js.map +1 -1
  91. package/dist/mcp-daemon-unavailable.d.ts.map +1 -1
  92. package/dist/mcp-daemon-unavailable.js +4 -3
  93. package/dist/mcp-daemon-unavailable.js.map +1 -1
  94. package/dist/mcp-journal-recovery.d.ts.map +1 -1
  95. package/dist/mcp-journal-recovery.js +4 -4
  96. package/dist/mcp-journal-recovery.js.map +1 -1
  97. package/dist/mcp-runner.d.ts +1 -1
  98. package/dist/mcp-runner.d.ts.map +1 -1
  99. package/dist/mcp-runner.js +8 -6
  100. package/dist/mcp-runner.js.map +1 -1
  101. package/dist/mcp-thread-query.d.ts +1 -1
  102. package/dist/mcp-thread-query.d.ts.map +1 -1
  103. package/dist/mcp-thread-query.js +2 -2
  104. package/dist/mcp-thread-query.js.map +1 -1
  105. package/dist/model-operation-control.d.ts +375 -0
  106. package/dist/model-operation-control.d.ts.map +1 -0
  107. package/dist/model-operation-control.js +16 -0
  108. package/dist/model-operation-control.js.map +1 -0
  109. package/dist/model-services.d.ts +302 -91
  110. package/dist/model-services.d.ts.map +1 -1
  111. package/dist/model-services.js +5 -7
  112. package/dist/model-services.js.map +1 -1
  113. package/dist/ops-commands.d.ts +1 -8
  114. package/dist/ops-commands.d.ts.map +1 -1
  115. package/dist/ops-commands.js +13 -16
  116. package/dist/ops-commands.js.map +1 -1
  117. package/dist/orphan-reaper.d.ts +18 -0
  118. package/dist/orphan-reaper.d.ts.map +1 -1
  119. package/dist/orphan-reaper.js +50 -0
  120. package/dist/orphan-reaper.js.map +1 -1
  121. package/dist/plugin-cli.d.ts +3 -0
  122. package/dist/plugin-cli.d.ts.map +1 -0
  123. package/dist/plugin-cli.js +57 -0
  124. package/dist/plugin-cli.js.map +1 -0
  125. package/dist/plugin-mcp.d.ts +3 -0
  126. package/dist/plugin-mcp.d.ts.map +1 -0
  127. package/dist/plugin-mcp.js +116 -0
  128. package/dist/plugin-mcp.js.map +1 -0
  129. package/dist/plugin-runtime.d.ts +24 -0
  130. package/dist/plugin-runtime.d.ts.map +1 -0
  131. package/dist/plugin-runtime.js +113 -0
  132. package/dist/plugin-runtime.js.map +1 -0
  133. package/dist/plugins.d.ts +2 -0
  134. package/dist/plugins.d.ts.map +1 -1
  135. package/dist/plugins.js +92 -184
  136. package/dist/plugins.js.map +1 -1
  137. package/dist/project-command.d.ts +4 -1
  138. package/dist/project-command.d.ts.map +1 -1
  139. package/dist/project-command.js +14 -5
  140. package/dist/project-command.js.map +1 -1
  141. package/dist/quota-services.d.ts +6 -4
  142. package/dist/quota-services.d.ts.map +1 -1
  143. package/dist/quota-services.js +58 -23
  144. package/dist/quota-services.js.map +1 -1
  145. package/dist/recovery-control-services.d.ts +99 -0
  146. package/dist/recovery-control-services.d.ts.map +1 -0
  147. package/dist/recovery-control-services.js +32 -0
  148. package/dist/recovery-control-services.js.map +1 -0
  149. package/dist/remote-filesystem.d.ts +3 -3
  150. package/dist/remote-filesystem.d.ts.map +1 -1
  151. package/dist/remote-filesystem.js.map +1 -1
  152. package/dist/request-preflight.d.ts +2 -2
  153. package/dist/request-preflight.d.ts.map +1 -1
  154. package/dist/request-preflight.js.map +1 -1
  155. package/dist/retention-service.d.ts +3 -3
  156. package/dist/retention-service.d.ts.map +1 -1
  157. package/dist/settings-command.d.ts.map +1 -1
  158. package/dist/settings-command.js +7 -2
  159. package/dist/settings-command.js.map +1 -1
  160. package/dist/settings-service.d.ts +66 -6
  161. package/dist/settings-service.d.ts.map +1 -1
  162. package/dist/settings-service.js +1 -1
  163. package/dist/settings-service.js.map +1 -1
  164. package/dist/setup-client-pty.js +1 -1
  165. package/dist/setup-client-pty.js.map +1 -1
  166. package/dist/setup-credential-window.d.ts +4 -4
  167. package/dist/setup-credential-window.d.ts.map +1 -1
  168. package/dist/setup-credential-window.js +1 -1
  169. package/dist/setup-credential-window.js.map +1 -1
  170. package/dist/setup-device-code-disclosure.js +1 -1
  171. package/dist/setup-device-code-disclosure.js.map +1 -1
  172. package/dist/setup-job-persistence.d.ts +30 -0
  173. package/dist/setup-job-persistence.d.ts.map +1 -0
  174. package/dist/setup-job-persistence.js +3 -0
  175. package/dist/setup-job-persistence.js.map +1 -0
  176. package/dist/{setup-job-store.d.ts → setup-job-projection.d.ts} +9 -17
  177. package/dist/setup-job-projection.d.ts.map +1 -0
  178. package/dist/{setup-job-store.js → setup-job-projection.js} +29 -68
  179. package/dist/setup-job-projection.js.map +1 -0
  180. package/dist/setup-job-support.js +1 -1
  181. package/dist/setup-job-support.js.map +1 -1
  182. package/dist/setup-jobs.d.ts +3 -4
  183. package/dist/setup-jobs.d.ts.map +1 -1
  184. package/dist/setup-jobs.js +3 -3
  185. package/dist/setup-jobs.js.map +1 -1
  186. package/dist/setup-lifecycle-binding.js +1 -1
  187. package/dist/setup-lifecycle-binding.js.map +1 -1
  188. package/dist/setup-login-completion.js +1 -1
  189. package/dist/setup-login-completion.js.map +1 -1
  190. package/dist/sql-daemon-queries.d.ts +24 -0
  191. package/dist/sql-daemon-queries.d.ts.map +1 -0
  192. package/dist/sql-daemon-queries.js +41 -0
  193. package/dist/sql-daemon-queries.js.map +1 -0
  194. package/dist/sql-daemon-runtime.d.ts +1415 -0
  195. package/dist/sql-daemon-runtime.d.ts.map +1 -0
  196. package/dist/sql-daemon-runtime.js +94 -0
  197. package/dist/sql-daemon-runtime.js.map +1 -0
  198. package/dist/sql-daemon-storage.d.ts +40 -0
  199. package/dist/sql-daemon-storage.d.ts.map +1 -0
  200. package/dist/sql-daemon-storage.js +203 -0
  201. package/dist/sql-daemon-storage.js.map +1 -0
  202. package/dist/sql-import-publication.d.ts +19 -0
  203. package/dist/sql-import-publication.d.ts.map +1 -0
  204. package/dist/sql-import-publication.js +54 -0
  205. package/dist/sql-import-publication.js.map +1 -0
  206. package/dist/sql-setup-lifecycle.d.ts +15 -0
  207. package/dist/sql-setup-lifecycle.d.ts.map +1 -0
  208. package/dist/sql-setup-lifecycle.js +28 -0
  209. package/dist/sql-setup-lifecycle.js.map +1 -0
  210. package/dist/sql-setup-store.d.ts +7 -0
  211. package/dist/sql-setup-store.d.ts.map +1 -0
  212. package/dist/sql-setup-store.js +102 -0
  213. package/dist/sql-setup-store.js.map +1 -0
  214. package/dist/sql-startup-storage.d.ts +15 -0
  215. package/dist/sql-startup-storage.d.ts.map +1 -0
  216. package/dist/sql-startup-storage.js +75 -0
  217. package/dist/sql-startup-storage.js.map +1 -0
  218. package/dist/thread-delivery.d.ts +2 -2
  219. package/dist/thread-purge.d.ts +8 -2
  220. package/dist/thread-purge.d.ts.map +1 -1
  221. package/dist/thread-purge.js +37 -8
  222. package/dist/thread-purge.js.map +1 -1
  223. package/dist/thread-turn-services.d.ts +2 -2
  224. package/dist/thread-turn-services.d.ts.map +1 -1
  225. package/dist/thread-turn-services.js.map +1 -1
  226. package/package.json +25 -26
  227. package/dist/setup-job-store.d.ts.map +0 -1
  228. package/dist/setup-job-store.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ import { EngineStore } from "@claudexor/daemon";
2
+ import type { StoreMigrationProgress } from "@claudexor/schema";
3
+ /** Called only after root-authority acquisition and real recovery-transport
4
+ * proof. Opens one serving store after its sole import writer has closed. */
5
+ export declare function openSqlStoreAfterTransport(input: {
6
+ daemonDir: string;
7
+ advanceFloor(): void;
8
+ signal?: AbortSignal;
9
+ progress?: (progress: StoreMigrationProgress) => void;
10
+ log?: (message: string) => void;
11
+ onCorrupt?: (error: Error) => void;
12
+ importWorkerEntry?: string;
13
+ flusherWorkerEntry?: string;
14
+ }): Promise<EngineStore>;
15
+ //# sourceMappingURL=sql-startup-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-startup-storage.d.ts","sourceRoot":"","sources":["../src/sql-startup-storage.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAKZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE;6EAC6E;AAC7E,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,IAAI,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,WAAW,CAAC,CAyEvB"}
@@ -0,0 +1,75 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { EngineStore, createPartition, globalGeneration, importLegacyInWorker, setGlobalGenerationInTx, } from "@claudexor/daemon";
4
+ import { preserveLegacyJournal, publishImportedStore } from "./sql-import-publication.js";
5
+ /** Called only after root-authority acquisition and real recovery-transport
6
+ * proof. Opens one serving store after its sole import writer has closed. */
7
+ export async function openSqlStoreAfterTransport(input) {
8
+ const database = join(input.daemonDir, "engine.sqlite"), journalRoot = join(input.daemonDir, "journal");
9
+ const existing = existsSync(database);
10
+ let imported = false;
11
+ input.signal?.throwIfAborted();
12
+ if (!existing && existsSync(journalRoot)) {
13
+ let latest = null;
14
+ const receipt = await importLegacyInWorker({
15
+ databasePath: join(input.daemonDir, "engine.sqlite.import"),
16
+ journalRoot,
17
+ resourceStoreDir: join(input.daemonDir, "resource-store"),
18
+ }, {
19
+ signal: input.signal,
20
+ workerEntry: input.importWorkerEntry,
21
+ onProgress: (progress) => {
22
+ latest = progress;
23
+ input.progress?.(progress);
24
+ },
25
+ });
26
+ input.signal?.throwIfAborted();
27
+ if (latest)
28
+ input.progress?.({ ...latest, phase: "publishing" });
29
+ publishImportedStore({
30
+ daemonDir: input.daemonDir,
31
+ externalDirectories: receipt.externalDirectories,
32
+ advanceFloor: input.advanceFloor,
33
+ });
34
+ imported = true;
35
+ input.log?.(`legacy import published: ${receipt.partitions.length} partitions, ${receipt.compared} comparisons, ${receipt.unclassified} retained unclassified records`);
36
+ }
37
+ else if (!existing && existsSync(join(input.daemonDir, "engine.sqlite.import"))) {
38
+ throw Object.assign(new Error("an unfinished SQL import has no legacy source; preserved for recovery"), {
39
+ code: "store_import_source_missing",
40
+ status: 503,
41
+ retryable: false,
42
+ });
43
+ }
44
+ const store = await EngineStore.open({
45
+ daemonDir: input.daemonDir,
46
+ workerEntry: input.flusherWorkerEntry,
47
+ log: input.log,
48
+ onCorrupt: input.onCorrupt,
49
+ });
50
+ try {
51
+ input.signal?.throwIfAborted();
52
+ if (!globalGeneration(store)) {
53
+ if (existing || imported)
54
+ throw Object.assign(new Error("engine store has no global generation"), {
55
+ code: "store_corrupt",
56
+ status: 503,
57
+ retryable: false,
58
+ });
59
+ store.transaction(() => setGlobalGenerationInTx(store, createPartition(store, "global").pid));
60
+ }
61
+ if (!imported) {
62
+ store.registerExternal(input.daemonDir);
63
+ await store.flushed();
64
+ input.signal?.throwIfAborted();
65
+ input.advanceFloor();
66
+ preserveLegacyJournal(input.daemonDir);
67
+ }
68
+ return store;
69
+ }
70
+ catch (error) {
71
+ await store.close();
72
+ throw error;
73
+ }
74
+ }
75
+ //# sourceMappingURL=sql-startup-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-startup-storage.js","sourceRoot":"","sources":["../src/sql-startup-storage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ProjectPartitions } from "@claudexor/daemon";
1
+ import type { ProjectThreadPort } from "@claudexor/daemon";
2
2
  import { verifyAndDeliver } from "@claudexor/delivery";
3
3
  import type { ControlDeliveryResponse } from "@claudexor/schema";
4
4
  export interface ThreadApplyOptions {
@@ -8,7 +8,7 @@ export interface ThreadApplyOptions {
8
8
  gates?: NonNullable<Parameters<typeof verifyAndDeliver>[3]>;
9
9
  }
10
10
  /** Deliver an isolated thread and advance its persistent branch/watermark. */
11
- export declare function applyThreadDiff(threads: ProjectPartitions, id: string, opts: ThreadApplyOptions): Promise<{
11
+ export declare function applyThreadDiff(threads: ProjectThreadPort, id: string, opts: ThreadApplyOptions): Promise<{
12
12
  applied: boolean;
13
13
  status: string;
14
14
  headMoved: boolean;
@@ -13,9 +13,12 @@
13
13
  * exactly the directories this owner deletes, so the retention pass retries a
14
14
  * purge until they are gone and never loops on a directory it cannot own.
15
15
  */
16
- import type { ProjectPartitions } from "@claudexor/daemon";
16
+ import type { ProjectThreadPort } from "@claudexor/daemon";
17
17
  import type { Thread } from "@claudexor/schema";
18
- export declare function threadPurgeOwner(threads: Pick<ProjectPartitions, "getThread" | "purgeThread">, noProjectRoot: string): {
18
+ export interface ThreadPurgeDurability {
19
+ complete(id: string, perform: (thread: Thread) => Promise<readonly string[]>): Promise<void>;
20
+ }
21
+ export declare function threadPurgeOwner(threads: Pick<ProjectThreadPort, "getThread" | "purgeThread">, noProjectRoot: string, durability?: ThreadPurgeDurability): {
19
22
  purgeThread: (id: string) => Promise<{
20
23
  schema_version: 2;
21
24
  id: string;
@@ -50,4 +53,7 @@ export declare function threadPurgeOwner(threads: Pick<ProjectPartitions, "getTh
50
53
  /** Whether a directory this owner deletes for the thread is still on disk. */
51
54
  hasPurgeLeftovers: (thread: Thread) => boolean;
52
55
  };
56
+ /** The same exact directory owner is used for immediate purge and obligation
57
+ * recovery. A delegated workspace is never a deletion target. */
58
+ export declare function threadPurgeEffect(noProjectRoot: string): (thread: Thread) => Promise<string[]>;
53
59
  //# sourceMappingURL=thread-purge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-purge.d.ts","sourceRoot":"","sources":["../src/thread-purge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQhD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,aAAa,CAAC,EAC7D,aAAa,EAAE,MAAM;IAMnB,WAAW,OAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAW9B,8EAA8E;IAC9E,iBAAiB,WAAW,MAAM,KAAG,OAAO;EAQ/C"}
1
+ {"version":3,"file":"thread-purge.d.ts","sourceRoot":"","sources":["../src/thread-purge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAYhD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9F;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,aAAa,CAAC,EAC7D,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,qBAAqB;IAOhC,WAAW,OAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQ9B,8EAA8E;IAC9E,iBAAiB,WAAW,MAAM,KAAG,OAAO;EAQ/C;AAED;iEACiE;AACjE,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,YAC/B,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBjD"}
@@ -1,19 +1,21 @@
1
- import { purgeThreadLanes, purgeThreadWorktree, threadLanesExist, threadWorktreeDirExists, } from "@claudexor/workspace";
2
- export function threadPurgeOwner(threads, noProjectRoot) {
1
+ import { existsSync, statSync } from "node:fs";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { projectRuntimeDir } from "@claudexor/util";
4
+ import { purgeThreadLanes, purgeThreadWorktree, threadLanesExist, threadWorktreeDirExists, git, } from "@claudexor/workspace";
5
+ export function threadPurgeOwner(threads, noProjectRoot, durability) {
3
6
  const isolatedRoot = (thread) => thread.repo && thread.workspace.mode === "isolated" ? thread.repo.root : null;
4
7
  const lanesRoot = (thread) => thread.repo?.root ?? noProjectRoot;
8
+ const perform = threadPurgeEffect(noProjectRoot);
5
9
  return {
6
10
  purgeThread: async (id) => {
7
11
  const thread = threads.getThread(id);
8
12
  if (!thread)
9
13
  throw Object.assign(new Error(`no such thread: ${id}`), { status: 404 });
10
14
  const purged = threads.purgeThread(id);
11
- const worktreeRoot = isolatedRoot(thread);
12
- if (worktreeRoot)
13
- await purgeThreadWorktree(worktreeRoot, id);
14
- // Lane homes exist regardless of workspace mode (in_place threads have
15
- // them too), so they go for EVERY purged thread.
16
- purgeThreadLanes(lanesRoot(thread), id);
15
+ if (durability)
16
+ await durability.complete(id, perform);
17
+ else
18
+ await perform(thread);
17
19
  return purged;
18
20
  },
19
21
  /** Whether a directory this owner deletes for the thread is still on disk. */
@@ -24,4 +26,31 @@ export function threadPurgeOwner(threads, noProjectRoot) {
24
26
  },
25
27
  };
26
28
  }
29
+ /** The same exact directory owner is used for immediate purge and obligation
30
+ * recovery. A delegated workspace is never a deletion target. */
31
+ export function threadPurgeEffect(noProjectRoot) {
32
+ return async (thread) => {
33
+ const root = thread.repo?.root ?? noProjectRoot;
34
+ const parents = [join(projectRuntimeDir(root), "lanes")];
35
+ if (thread.repo && thread.workspace.mode === "isolated") {
36
+ const gitDir = await git(thread.repo.root, ["rev-parse", "--git-common-dir"])
37
+ .then((result) => result.code === 0 ? resolve(thread.repo.root, result.stdout.trim()) : null)
38
+ .catch(() => null);
39
+ await purgeThreadWorktree(thread.repo.root, thread.id);
40
+ parents.push(join(projectRuntimeDir(thread.repo.root), "threads"));
41
+ if (gitDir)
42
+ parents.push(gitDir, join(gitDir, "worktrees"), join(gitDir, "refs", "heads", "claudexor"));
43
+ }
44
+ purgeThreadLanes(root, thread.id);
45
+ return [...new Set(parents.map(survivingDirectory))];
46
+ };
47
+ }
48
+ function survivingDirectory(path) {
49
+ for (let current = path;; current = dirname(current)) {
50
+ if (existsSync(current) && statSync(current).isDirectory())
51
+ return current;
52
+ if (dirname(current) === current)
53
+ throw new Error(`no surviving parent directory of ${path}`);
54
+ }
55
+ }
27
56
  //# sourceMappingURL=thread-purge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-purge.js","sourceRoot":"","sources":["../src/thread-purge.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,UAAU,gBAAgB,CAC9B,OAA6D,EAC7D,aAAqB;IAErB,MAAM,YAAY,GAAG,CAAC,MAAc,EAAiB,EAAE,CACrD,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,aAAa,CAAC;IACjF,OAAO;QACL,WAAW,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,YAAY;gBAAE,MAAM,mBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAC9D,uEAAuE;YACvE,iDAAiD;YACjD,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,8EAA8E;QAC9E,iBAAiB,EAAE,CAAC,MAAc,EAAW,EAAE;YAC7C,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO,CACL,CAAC,YAAY,KAAK,IAAI,IAAI,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3E,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAC/C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"thread-purge.js","sourceRoot":"","sources":["../src/thread-purge.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { ProjectPartitions, ResourceStore } from "@claudexor/daemon";
1
+ import type { ProjectThreadPort, ResourceStorePort } from "@claudexor/daemon";
2
2
  import type { ResourceAttachmentRef, TurnEnqueueProblem } from "@claudexor/schema";
3
3
  /** Thin Control API bindings over the daemon's durable thread and turn authority. */
4
- export declare function threadTurnServices(threads: ProjectPartitions, resources: Pick<ResourceStore, "resolve">): {
4
+ export declare function threadTurnServices(threads: ProjectThreadPort, resources: Pick<ResourceStorePort, "resolve">): {
5
5
  findThreadCreation: (input: unknown) => Promise<{
6
6
  schema_version: 2;
7
7
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"thread-turn-services.d.ts","sourceRoot":"","sources":["../src/thread-turn-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,qFAAqF;AACrF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;IAGvC,kBAAkB,UAAgB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEzC,YAAY,OAAa,MAAM;gBAIT,OAAO;kBACkB,OAAO,EAAE;eACrB,OAAO,EAAE;;IAG5C,gBAAgB,OACV,MAAM,UACF,MAAM,WACL;QACP,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;QACtC,WAAW,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;KACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYH,2BAA2B,OACrB,MAAM,eACG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEhE,mBAAmB,WAAW,MAAM,WAAW,kBAAkB;EAGpE"}
1
+ {"version":3,"file":"thread-turn-services.d.ts","sourceRoot":"","sources":["../src/thread-turn-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,qFAAqF;AACrF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;IAG3C,kBAAkB,UAAgB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEzC,YAAY,OAAa,MAAM;gBAIT,OAAO;kBACkB,OAAO,EAAE;eACrB,OAAO,EAAE;;IAG5C,gBAAgB,OACV,MAAM,UACF,MAAM,WACL;QACP,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;QACtC,WAAW,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;KACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYH,2BAA2B,OACrB,MAAM,eACG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEhE,mBAAmB,WAAW,MAAM,WAAW,kBAAkB;EAGpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"thread-turn-services.js","sourceRoot":"","sources":["../src/thread-turn-services.ts"],"names":[],"mappings":"AAGA,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,SAAyC;IAEzC,OAAO;QACL,kBAAkB,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAC3C,OAAO,CAAC,kBAAkB,CAAC,KAA+D,CAAC;QAC7F,YAAY,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,OAAO;gBACL,MAAM,EAAE,MAAiB;gBACzB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAc;gBACpD,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;aACzC,CAAC;QACJ,CAAC;QACD,gBAAgB,EAAE,KAAK,EACrB,EAAU,EACV,MAAc,EACd,OASC,EACD,EAAE,CACF,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE;YAC7B,IAAI,EAAE,OAAO,CAAC,IAAW;YACzB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;YACnD,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC;QACJ,2BAA2B,EAAE,KAAK,EAChC,EAAU,EACV,WAA8D,EAC9D,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,IAAI;QAC3D,mBAAmB,EAAE,CAAC,MAAc,EAAE,OAA2B,EAAE,EAAE,CACnE,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC;KAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"thread-turn-services.js","sourceRoot":"","sources":["../src/thread-turn-services.ts"],"names":[],"mappings":"AAGA,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,SAA6C;IAE7C,OAAO;QACL,kBAAkB,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAC3C,OAAO,CAAC,kBAAkB,CAAC,KAA+D,CAAC;QAC7F,YAAY,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,OAAO;gBACL,MAAM,EAAE,MAAiB;gBACzB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAc;gBACpD,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;aACzC,CAAC;QACJ,CAAC;QACD,gBAAgB,EAAE,KAAK,EACrB,EAAU,EACV,MAAc,EACd,OASC,EACD,EAAE,CACF,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE;YAC7B,IAAI,EAAE,OAAO,CAAC,IAAW;YACzB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;YACnD,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC;QACJ,2BAA2B,EAAE,KAAK,EAChC,EAAU,EACV,WAA8D,EAC9D,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,IAAI;QAC3D,mBAAmB,EAAE,CAAC,MAAc,EAAE,OAA2B,EAAE,EAAE,CACnE,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC;KAC/C,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/cli",
3
- "version": "3.25.1",
3
+ "version": "4.0.1",
4
4
  "license": "MIT",
5
5
  "description": "Claudexor CLI (claudexor). Thin surface over the orchestrator.",
6
6
  "type": "module",
@@ -10,30 +10,29 @@
10
10
  "dist"
11
11
  ],
12
12
  "dependencies": {
13
- "@claudexor/artifact-store": "3.25.1",
14
- "@claudexor/config": "3.25.1",
15
- "@claudexor/acp-server": "3.25.1",
16
- "@claudexor/control-api": "3.25.1",
17
- "@claudexor/core": "3.25.1",
18
- "@claudexor/daemon": "3.25.1",
19
- "@claudexor/delivery": "3.25.1",
20
- "@claudexor/gateway": "3.25.1",
21
- "@claudexor/harness-agy": "3.25.1",
22
- "@claudexor/harness-claude": "3.25.1",
23
- "@claudexor/harness-codex": "3.25.1",
24
- "@claudexor/harness-fake": "3.25.1",
25
- "@claudexor/harness-cursor": "3.25.1",
26
- "@claudexor/harness-opencode": "3.25.1",
27
- "@claudexor/harness-raw-api": "3.25.1",
28
- "@claudexor/journal": "3.25.1",
29
- "@claudexor/secrets": "3.25.1",
30
- "@claudexor/schema": "3.25.1",
31
- "@claudexor/review": "3.25.1",
32
- "@claudexor/mcp-server": "3.25.1",
33
- "@claudexor/util": "3.25.1",
34
- "@claudexor/workspace": "3.25.1",
35
- "@claudexor/harness-acp": "3.25.1",
36
- "@claudexor/orchestrator": "3.25.1"
13
+ "@claudexor/acp-server": "4.0.1",
14
+ "@claudexor/artifact-store": "4.0.1",
15
+ "@claudexor/config": "4.0.1",
16
+ "@claudexor/control-api": "4.0.1",
17
+ "@claudexor/core": "4.0.1",
18
+ "@claudexor/daemon": "4.0.1",
19
+ "@claudexor/delivery": "4.0.1",
20
+ "@claudexor/gateway": "4.0.1",
21
+ "@claudexor/harness-agy": "4.0.1",
22
+ "@claudexor/harness-claude": "4.0.1",
23
+ "@claudexor/harness-codex": "4.0.1",
24
+ "@claudexor/harness-fake": "4.0.1",
25
+ "@claudexor/harness-cursor": "4.0.1",
26
+ "@claudexor/harness-opencode": "4.0.1",
27
+ "@claudexor/harness-raw-api": "4.0.1",
28
+ "@claudexor/mcp-server": "4.0.1",
29
+ "@claudexor/review": "4.0.1",
30
+ "@claudexor/orchestrator": "4.0.1",
31
+ "@claudexor/schema": "4.0.1",
32
+ "@claudexor/secrets": "4.0.1",
33
+ "@claudexor/workspace": "4.0.1",
34
+ "@claudexor/util": "4.0.1",
35
+ "@claudexor/harness-acp": "4.0.1"
37
36
  },
38
37
  "repository": {
39
38
  "type": "git",
@@ -45,7 +44,7 @@
45
44
  "url": "https://github.com/razzant/claudexor/issues"
46
45
  },
47
46
  "engines": {
48
- "node": ">=20.19"
47
+ "node": ">=24.15.0"
49
48
  },
50
49
  "exports": {
51
50
  ".": "./dist/cli.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-job-store.d.ts","sourceRoot":"","sources":["../src/setup-job-store.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-job-store.js","sourceRoot":"","sources":["../src/setup-job-store.ts"],"names":[],"mappings":"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"}