@claudexor/cli 2.1.2 → 3.0.0

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 (127) hide show
  1. package/dist/accounts-projection.d.ts +26 -0
  2. package/dist/accounts-projection.d.ts.map +1 -0
  3. package/dist/accounts-projection.js +90 -0
  4. package/dist/accounts-projection.js.map +1 -0
  5. package/dist/acp-surface-runner.d.ts.map +1 -1
  6. package/dist/acp-surface-runner.js +12 -16
  7. package/dist/acp-surface-runner.js.map +1 -1
  8. package/dist/bridge-serve.d.ts +9 -0
  9. package/dist/bridge-serve.d.ts.map +1 -1
  10. package/dist/bridge-serve.js +20 -1
  11. package/dist/bridge-serve.js.map +1 -1
  12. package/dist/claude-oauth-usage.d.ts +8 -2
  13. package/dist/claude-oauth-usage.d.ts.map +1 -1
  14. package/dist/claude-oauth-usage.js +27 -12
  15. package/dist/claude-oauth-usage.js.map +1 -1
  16. package/dist/claude-statusline.d.ts +5 -2
  17. package/dist/claude-statusline.d.ts.map +1 -1
  18. package/dist/claude-statusline.js +4 -2
  19. package/dist/claude-statusline.js.map +1 -1
  20. package/dist/claudexord.d.ts +7 -1
  21. package/dist/claudexord.d.ts.map +1 -1
  22. package/dist/claudexord.js +116 -19
  23. package/dist/claudexord.js.map +1 -1
  24. package/dist/cli.js +105 -276
  25. package/dist/cli.js.map +1 -1
  26. package/dist/codex-quota-source.d.ts +9 -3
  27. package/dist/codex-quota-source.d.ts.map +1 -1
  28. package/dist/codex-quota-source.js +82 -9
  29. package/dist/codex-quota-source.js.map +1 -1
  30. package/dist/command-flags.d.ts +1 -1
  31. package/dist/command-flags.d.ts.map +1 -1
  32. package/dist/command-flags.js +8 -9
  33. package/dist/command-flags.js.map +1 -1
  34. package/dist/command-registry.d.ts.map +1 -1
  35. package/dist/command-registry.js +19 -54
  36. package/dist/command-registry.js.map +1 -1
  37. package/dist/control-services.d.ts +163 -349
  38. package/dist/control-services.d.ts.map +1 -1
  39. package/dist/control-services.js +116 -146
  40. package/dist/control-services.js.map +1 -1
  41. package/dist/credential-commands.d.ts.map +1 -1
  42. package/dist/credential-commands.js +70 -8
  43. package/dist/credential-commands.js.map +1 -1
  44. package/dist/daemon-run.d.ts +49 -7
  45. package/dist/daemon-run.d.ts.map +1 -1
  46. package/dist/daemon-run.js +152 -30
  47. package/dist/daemon-run.js.map +1 -1
  48. package/dist/decision.js +2 -2
  49. package/dist/decision.js.map +1 -1
  50. package/dist/delegation-belt-descriptor.d.ts +43 -0
  51. package/dist/delegation-belt-descriptor.d.ts.map +1 -0
  52. package/dist/delegation-belt-descriptor.js +75 -0
  53. package/dist/delegation-belt-descriptor.js.map +1 -0
  54. package/dist/live.d.ts +5 -2
  55. package/dist/live.d.ts.map +1 -1
  56. package/dist/live.js +29 -12
  57. package/dist/live.js.map +1 -1
  58. package/dist/mcp-runner.d.ts.map +1 -1
  59. package/dist/mcp-runner.js +49 -22
  60. package/dist/mcp-runner.js.map +1 -1
  61. package/dist/native-login.js +3 -4
  62. package/dist/native-login.js.map +1 -1
  63. package/dist/plan-question-loop.d.ts +46 -0
  64. package/dist/plan-question-loop.d.ts.map +1 -0
  65. package/dist/plan-question-loop.js +149 -0
  66. package/dist/plan-question-loop.js.map +1 -0
  67. package/dist/plugins.d.ts.map +1 -1
  68. package/dist/plugins.js +1 -3
  69. package/dist/plugins.js.map +1 -1
  70. package/dist/primary-output.d.ts.map +1 -1
  71. package/dist/primary-output.js +9 -17
  72. package/dist/primary-output.js.map +1 -1
  73. package/dist/profile-compatibility.d.ts +6 -0
  74. package/dist/profile-compatibility.d.ts.map +1 -0
  75. package/dist/profile-compatibility.js +21 -0
  76. package/dist/profile-compatibility.js.map +1 -0
  77. package/dist/profile-registration.d.ts.map +1 -1
  78. package/dist/profile-registration.js +16 -0
  79. package/dist/profile-registration.js.map +1 -1
  80. package/dist/project-command.d.ts.map +1 -1
  81. package/dist/project-command.js +41 -2
  82. package/dist/project-command.js.map +1 -1
  83. package/dist/quota-command.js +8 -1
  84. package/dist/quota-command.js.map +1 -1
  85. package/dist/release-command.d.ts +12 -0
  86. package/dist/release-command.d.ts.map +1 -0
  87. package/dist/release-command.js +70 -0
  88. package/dist/release-command.js.map +1 -0
  89. package/dist/release.d.ts +59 -0
  90. package/dist/release.d.ts.map +1 -1
  91. package/dist/release.js +181 -0
  92. package/dist/release.js.map +1 -1
  93. package/dist/repl.d.ts +4 -3
  94. package/dist/repl.d.ts.map +1 -1
  95. package/dist/repl.js +27 -4
  96. package/dist/repl.js.map +1 -1
  97. package/dist/request-preflight.d.ts.map +1 -1
  98. package/dist/request-preflight.js +0 -2
  99. package/dist/request-preflight.js.map +1 -1
  100. package/dist/retention-service.d.ts.map +1 -1
  101. package/dist/retention-service.js +21 -0
  102. package/dist/retention-service.js.map +1 -1
  103. package/dist/settings-command.d.ts +38 -0
  104. package/dist/settings-command.d.ts.map +1 -1
  105. package/dist/settings-command.js +97 -15
  106. package/dist/settings-command.js.map +1 -1
  107. package/dist/settings-service.d.ts +5 -5
  108. package/dist/settings-service.d.ts.map +1 -1
  109. package/dist/settings-service.js +4 -1
  110. package/dist/settings-service.js.map +1 -1
  111. package/dist/setup-job-store.d.ts +9 -9
  112. package/dist/setup-job-store.d.ts.map +1 -1
  113. package/dist/setup-jobs.d.ts +13 -13
  114. package/dist/setup-jobs.d.ts.map +1 -1
  115. package/dist/thread-select.d.ts +6 -2
  116. package/dist/thread-select.d.ts.map +1 -1
  117. package/dist/thread-select.js +20 -3
  118. package/dist/thread-select.js.map +1 -1
  119. package/package.json +23 -24
  120. package/dist/orchestrate-options.d.ts +0 -9
  121. package/dist/orchestrate-options.d.ts.map +0 -1
  122. package/dist/orchestrate-options.js +0 -16
  123. package/dist/orchestrate-options.js.map +0 -1
  124. package/dist/spec.d.ts +0 -73
  125. package/dist/spec.d.ts.map +0 -1
  126. package/dist/spec.js +0 -466
  127. package/dist/spec.js.map +0 -1
@@ -0,0 +1,70 @@
1
+ import { print, printJson, printUsageError } from "./cli-io.js";
2
+ import { checkName, checkRuntimeUpdate, releaseStats } from "./release.js";
3
+ /**
4
+ * `claudexor release <sub>` dispatch, kept out of cli.ts so the top-level
5
+ * switch stays thin (complexity ratchet). Three read-only subcommands:
6
+ * check-name <name> naming gate across public registries
7
+ * check engine-runtime update check (M7 D22 — same manifest the
8
+ * macOS app auto-updater reads; npm users update via npm)
9
+ * stats owner-facing install counter (M7 D23 — GitHub asset
10
+ * download counts + the npm downloads API; no telemetry)
11
+ */
12
+ export async function releaseCommand(args, json) {
13
+ const sub = args._[1];
14
+ if (sub === "check-name") {
15
+ const name = args._[2] ?? "claudexor";
16
+ const checks = await checkName(name);
17
+ if (json) {
18
+ printJson({ name, checks });
19
+ }
20
+ else {
21
+ print(`naming gate for "${name}":`);
22
+ for (const c of checks) {
23
+ const tag = c.availability === "free"
24
+ ? "[free] "
25
+ : c.availability === "taken"
26
+ ? "[taken] "
27
+ : "[unknown]";
28
+ print(` ${tag} ${c.registry}: ${c.detail}`);
29
+ }
30
+ }
31
+ return 0;
32
+ }
33
+ if (sub === "check") {
34
+ const check = await checkRuntimeUpdate();
35
+ if (json) {
36
+ printJson(check);
37
+ }
38
+ else if (check.source === "unavailable") {
39
+ print(`engine runtime update check unavailable: ${check.detail}`);
40
+ }
41
+ else if (check.updateAvailable) {
42
+ print(`engine runtime ${check.latestVersion} available (running ${check.currentVersion}).`);
43
+ if (check.notes)
44
+ print(` notes: ${check.notes}`);
45
+ print(" The macOS app auto-updates its engine in place.");
46
+ print(" npm installs update via `npm install -g claudexor@latest`.");
47
+ }
48
+ else {
49
+ print(`engine runtime ${check.currentVersion} is current.`);
50
+ }
51
+ return 0;
52
+ }
53
+ if (sub === "stats") {
54
+ const stats = await releaseStats();
55
+ if (json) {
56
+ printJson(stats);
57
+ }
58
+ else {
59
+ print("install counter (owner-facing; no telemetry):");
60
+ print(` GitHub: ${stats.github.detail}`);
61
+ for (const asset of stats.github.perAsset) {
62
+ print(` ${asset.downloads}\t${asset.name}`);
63
+ }
64
+ print(` npm: ${stats.npm.detail}`);
65
+ }
66
+ return 0;
67
+ }
68
+ return printUsageError(json, "usage: claudexor release check-name <name> | check | stats");
69
+ }
70
+ //# sourceMappingURL=release-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-command.js","sourceRoot":"","sources":["../src/release-command.ts"],"names":[],"mappings":"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"}
package/dist/release.d.ts CHANGED
@@ -11,4 +11,63 @@ export interface NameCheck {
11
11
  * non-404/200 response is not evidence the name is unavailable.
12
12
  */
13
13
  export declare function checkName(name: string): Promise<NameCheck[]>;
14
+ /** github.com/<RELEASE_REPO> — the one release source of truth. */
15
+ export declare const RELEASE_REPO = "razzant/claudexor";
16
+ /** npm package name (the version SSOT ships as `claudexor` on npm). */
17
+ export declare const NPM_PACKAGE = "claudexor";
18
+ /** Injectable fetch so the commands are honestly testable with no live network
19
+ * (tests pass a stub; production defaults to the global fetch). */
20
+ export type FetchLike = typeof fetch;
21
+ /** The runtime manifest published beside the closure tarball on each release. */
22
+ export interface RuntimeManifest {
23
+ version: string;
24
+ sha256: string;
25
+ minAppVersion: string;
26
+ signature: string | null;
27
+ notes: string | null;
28
+ }
29
+ export interface RuntimeUpdateCheck {
30
+ currentVersion: string;
31
+ latestVersion: string | null;
32
+ updateAvailable: boolean;
33
+ minAppVersion: string | null;
34
+ notes: string | null;
35
+ /** "github" when a manifest was read; "unavailable" on any failure (offline,
36
+ * rate-limit, no release yet, malformed manifest) — never a false verdict. */
37
+ source: "github" | "unavailable";
38
+ detail: string;
39
+ }
40
+ /**
41
+ * Read the latest release's `runtime-manifest.json` and compare it to the
42
+ * running engine version. Any failure degrades to `source: "unavailable"` with
43
+ * an honest detail — this command never invents an update or a false "current".
44
+ */
45
+ export declare function checkRuntimeUpdate(opts?: {
46
+ fetchImpl?: FetchLike;
47
+ currentVersion?: string;
48
+ }): Promise<RuntimeUpdateCheck>;
49
+ export interface AssetDownloads {
50
+ name: string;
51
+ downloads: number;
52
+ }
53
+ export interface InstallStats {
54
+ github: {
55
+ totalDownloads: number | null;
56
+ perAsset: AssetDownloads[];
57
+ releases: number | null;
58
+ detail: string;
59
+ };
60
+ npm: {
61
+ lastMonth: number | null;
62
+ detail: string;
63
+ };
64
+ }
65
+ /**
66
+ * Owner-facing install counter (D23): GitHub asset download_count summed across
67
+ * releases + the npm last-month downloads point. Read-only, no infra, no ping.
68
+ * A failed source reports null + a reason — never a fabricated zero.
69
+ */
70
+ export declare function releaseStats(opts?: {
71
+ fetchImpl?: FetchLike;
72
+ }): Promise<InstallStats>;
14
73
  //# sourceMappingURL=release.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAC5D,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAWD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkClE"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAC5D,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAWD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkClE;AAoBD,mEAAmE;AACnE,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAChD,uEAAuE;AACvE,eAAO,MAAM,WAAW,cAAc,CAAC;AAEvC;mEACmE;AACnE,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;AAErC,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;kFAC8E;IAC9E,MAAM,EAAE,QAAQ,GAAG,aAAa,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAkCD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,CAAC,EAAE;IAC9C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwD9B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,GAAG,EAAE;QACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAgE1F"}
package/dist/release.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { CLAUDEXOR_VERSION } from "@claudexor/util";
1
2
  async function head(url) {
2
3
  try {
3
4
  const res = await fetch(url, { method: "GET" });
@@ -47,6 +48,186 @@ function availability(code) {
47
48
  return "taken";
48
49
  return "unknown";
49
50
  }
51
+ // ---------------------------------------------------------------------------
52
+ // M7 engine-runtime update check + install counter (D22/D23)
53
+ //
54
+ // The GitHub-release asset `runtime-manifest.json` is the SAME manifest the
55
+ // macOS app's auto-updater reads. `claudexor release check` reports whether a
56
+ // newer engine runtime is published; npm users are told they update via npm
57
+ // (the app is the only surface that swaps the runtime closure in place).
58
+ // `claudexor release stats` is the owner-facing install counter — GitHub asset
59
+ // download_count + the npm downloads API, zero infra, NO telemetry, NO ping.
60
+ // Every network call is behind these user-invoked commands only.
61
+ // ---------------------------------------------------------------------------
62
+ /** github.com/<RELEASE_REPO> — the one release source of truth. */
63
+ export const RELEASE_REPO = "razzant/claudexor";
64
+ /** npm package name (the version SSOT ships as `claudexor` on npm). */
65
+ export const NPM_PACKAGE = "claudexor";
66
+ const GH_HEADERS = {
67
+ Accept: "application/vnd.github+json",
68
+ "User-Agent": "claudexor-release-check",
69
+ "X-GitHub-Api-Version": "2022-11-28",
70
+ };
71
+ function isSemver(value) {
72
+ return typeof value === "string" && /^\d+\.\d+\.\d+$/.test(value);
73
+ }
74
+ function compareSemver(a, b) {
75
+ const pa = a.split(".").map(Number);
76
+ const pb = b.split(".").map(Number);
77
+ for (let i = 0; i < 3; i += 1)
78
+ if (pa[i] !== pb[i])
79
+ return pa[i] - pb[i];
80
+ return 0;
81
+ }
82
+ function parseRuntimeManifest(value) {
83
+ if (typeof value !== "object" || value === null)
84
+ return null;
85
+ const record = value;
86
+ if (!isSemver(record.version))
87
+ return null;
88
+ if (typeof record.sha256 !== "string" || !/^[0-9a-f]{64}$/.test(record.sha256))
89
+ return null;
90
+ if (!isSemver(record.minAppVersion))
91
+ return null;
92
+ return {
93
+ version: record.version,
94
+ sha256: record.sha256,
95
+ minAppVersion: record.minAppVersion,
96
+ signature: typeof record.signature === "string" ? record.signature : null,
97
+ notes: typeof record.notes === "string" ? record.notes : null,
98
+ };
99
+ }
100
+ /**
101
+ * Read the latest release's `runtime-manifest.json` and compare it to the
102
+ * running engine version. Any failure degrades to `source: "unavailable"` with
103
+ * an honest detail — this command never invents an update or a false "current".
104
+ */
105
+ export async function checkRuntimeUpdate(opts) {
106
+ const fetchImpl = opts?.fetchImpl ?? fetch;
107
+ const currentVersion = opts?.currentVersion ?? CLAUDEXOR_VERSION;
108
+ const unavailable = (detail) => ({
109
+ currentVersion,
110
+ latestVersion: null,
111
+ updateAvailable: false,
112
+ minAppVersion: null,
113
+ notes: null,
114
+ source: "unavailable",
115
+ detail,
116
+ });
117
+ let manifestUrl;
118
+ try {
119
+ const res = await fetchImpl(`https://api.github.com/repos/${RELEASE_REPO}/releases/latest`, {
120
+ headers: GH_HEADERS,
121
+ });
122
+ if (!res.ok)
123
+ return unavailable(`GitHub releases API returned HTTP ${res.status}`);
124
+ const body = (await res.json());
125
+ const asset = (body.assets ?? []).find((a) => a.name === "runtime-manifest.json");
126
+ if (!asset?.browser_download_url) {
127
+ return unavailable("latest release has no runtime-manifest.json asset yet");
128
+ }
129
+ manifestUrl = asset.browser_download_url;
130
+ }
131
+ catch (error) {
132
+ return unavailable(`could not reach the GitHub releases API (${describeError(error)})`);
133
+ }
134
+ let manifest;
135
+ try {
136
+ const res = await fetchImpl(manifestUrl, {
137
+ headers: { "User-Agent": GH_HEADERS["User-Agent"] },
138
+ });
139
+ if (!res.ok)
140
+ return unavailable(`runtime-manifest.json download returned HTTP ${res.status}`);
141
+ manifest = parseRuntimeManifest(await res.json());
142
+ }
143
+ catch (error) {
144
+ return unavailable(`could not download runtime-manifest.json (${describeError(error)})`);
145
+ }
146
+ if (!manifest)
147
+ return unavailable("runtime-manifest.json is malformed");
148
+ const updateAvailable = isSemver(currentVersion) && compareSemver(manifest.version, currentVersion) > 0;
149
+ return {
150
+ currentVersion,
151
+ latestVersion: manifest.version,
152
+ updateAvailable,
153
+ minAppVersion: manifest.minAppVersion,
154
+ notes: manifest.notes,
155
+ source: "github",
156
+ detail: updateAvailable
157
+ ? `engine runtime ${manifest.version} is available (running ${currentVersion})`
158
+ : `running engine runtime ${currentVersion} is current`,
159
+ };
160
+ }
161
+ /**
162
+ * Owner-facing install counter (D23): GitHub asset download_count summed across
163
+ * releases + the npm last-month downloads point. Read-only, no infra, no ping.
164
+ * A failed source reports null + a reason — never a fabricated zero.
165
+ */
166
+ export async function releaseStats(opts) {
167
+ const fetchImpl = opts?.fetchImpl ?? fetch;
168
+ const github = {
169
+ totalDownloads: null,
170
+ perAsset: [],
171
+ releases: null,
172
+ detail: "",
173
+ };
174
+ try {
175
+ const res = await fetchImpl(`https://api.github.com/repos/${RELEASE_REPO}/releases?per_page=100`, {
176
+ headers: GH_HEADERS,
177
+ });
178
+ if (!res.ok) {
179
+ github.detail = `GitHub releases API returned HTTP ${res.status}`;
180
+ }
181
+ else {
182
+ const releases = (await res.json());
183
+ const perAsset = new Map();
184
+ let total = 0;
185
+ for (const release of releases) {
186
+ for (const asset of release.assets ?? []) {
187
+ const count = typeof asset.download_count === "number" ? asset.download_count : 0;
188
+ const name = typeof asset.name === "string" ? asset.name : "(unnamed)";
189
+ perAsset.set(name, (perAsset.get(name) ?? 0) + count);
190
+ total += count;
191
+ }
192
+ }
193
+ github.totalDownloads = total;
194
+ github.releases = releases.length;
195
+ github.perAsset = [...perAsset.entries()]
196
+ .map(([name, downloads]) => ({ name, downloads }))
197
+ .sort((a, b) => b.downloads - a.downloads);
198
+ github.detail = `${total} asset downloads across ${releases.length} releases`;
199
+ }
200
+ }
201
+ catch (error) {
202
+ github.detail = `could not reach the GitHub releases API (${describeError(error)})`;
203
+ }
204
+ const npm = { lastMonth: null, detail: "" };
205
+ try {
206
+ const res = await fetchImpl(`https://api.npmjs.org/downloads/point/last-month/${NPM_PACKAGE}`, {
207
+ headers: { "User-Agent": GH_HEADERS["User-Agent"] },
208
+ });
209
+ if (!res.ok) {
210
+ npm.detail = `npm downloads API returned HTTP ${res.status}`;
211
+ }
212
+ else {
213
+ const body = (await res.json());
214
+ if (typeof body.downloads === "number") {
215
+ npm.lastMonth = body.downloads;
216
+ npm.detail = `${body.downloads} npm downloads in the last month`;
217
+ }
218
+ else {
219
+ npm.detail = "npm downloads API returned no count";
220
+ }
221
+ }
222
+ }
223
+ catch (error) {
224
+ npm.detail = `could not reach the npm downloads API (${describeError(error)})`;
225
+ }
226
+ return { github, npm };
227
+ }
228
+ function describeError(error) {
229
+ return error instanceof Error ? error.message : String(error);
230
+ }
50
231
  function status(code) {
51
232
  if (code === -1)
52
233
  return "check failed (network)";
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAOA,KAAK,UAAU,IAAI,CAAC,GAAW;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEvF,MAAM,SAAS,GAAG,MAAM,IAAI,CAC1B,8BAA8B,kBAAkB,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CACtE,CAAC;IACF,MAAM,CAAC,IAAI,CAAC;QACV,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,yBAAyB,kBAAkB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAChF,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mCAAmC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvF,MAAM,CAAC,IAAI,CAAC;QACV,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1E,MAAM,CAAC,IAAI,CAAC;QACV,QAAQ,EAAE,iBAAiB;QAC3B,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC;IACjC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,wBAAwB,CAAC;IACjD,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IACtC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,aAAa,CAAC;IACvC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,wCAAwC,CAAC;IAClE,OAAO,QAAQ,IAAI,YAAY,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
package/dist/repl.d.ts CHANGED
@@ -4,10 +4,11 @@ interface ReplTurnSpec {
4
4
  prompt: string;
5
5
  race?: boolean;
6
6
  }
7
- declare function parseReplLine(line: string): ReplTurnSpec | {
8
- command: "thread" | "new" | "help" | "quit";
7
+ type ReplCommand = {
8
+ command: "thread" | "new" | "help" | "quit" | "harness" | "profile";
9
9
  arg?: string;
10
- } | null;
10
+ };
11
+ declare function parseReplLine(line: string): ReplTurnSpec | ReplCommand | null;
11
12
  /**
12
13
  * Interactive REPL: `claudexor` with no arguments. A thread of turns over the
13
14
  * project in the current directory. The REPL is a THIN CLIENT of the control
@@ -1 +1 @@
1
- {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASlD,UAAU,YAAY;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,iBAAS,aAAa,CACpB,IAAI,EAAE,MAAM,GACX,YAAY,GAAG;IAAE,OAAO,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6BrF;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU/D;AAiID,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASlD,UAAU,YAAY;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,iBAAS,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,IAAI,CA6BtE;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU/D;AA4JD,OAAO,EAAE,aAAa,EAAE,CAAC"}
package/dist/repl.js CHANGED
@@ -19,16 +19,16 @@ function parseReplLine(line) {
19
19
  return { mode: "ask", prompt: arg };
20
20
  case "plan":
21
21
  return { mode: "plan", prompt: arg };
22
- case "audit":
23
- return { mode: "audit", prompt: arg };
24
22
  case "best-of":
25
23
  return { mode: "agent", prompt: arg, race: true };
26
- case "orchestrate":
27
- return { mode: "orchestrate", prompt: arg };
28
24
  case "thread":
29
25
  return { command: "thread" };
30
26
  case "new":
31
27
  return { command: "new", arg };
28
+ case "harness":
29
+ return { command: "harness", arg };
30
+ case "profile":
31
+ return { command: "profile", arg };
32
32
  case "help":
33
33
  return { command: "help" };
34
34
  case "quit":
@@ -134,6 +134,29 @@ async function runDaemonRepl(repoRoot, addr) {
134
134
  process.stdout.write(`thread fetch failed: ${err instanceof Error ? err.message : String(err)}\n`);
135
135
  }
136
136
  }
137
+ if (parsed.command === "harness" || parsed.command === "profile") {
138
+ // Sticky lane preference: PATCH the thread through the SAME server route
139
+ // the app composer uses (never a REPL-only path). `/harness <id>` sets
140
+ // the sticky primary; `/profile <id|default>` sets the sticky credential
141
+ // profile (`default` => null, back to the engine ladder). A bare command
142
+ // with no id clears the preference (null).
143
+ const raw = parsed.arg ?? "";
144
+ const clear = raw === "" || (parsed.command === "profile" && raw === "default");
145
+ const body = parsed.command === "harness"
146
+ ? { primaryHarness: clear ? null : raw }
147
+ : { credentialProfileId: clear ? null : raw };
148
+ try {
149
+ const active = await ensureThread();
150
+ await api("PATCH", `/threads/${encodeURIComponent(active.id)}`, body);
151
+ const label = parsed.command === "harness" ? "primary harness" : "credential profile";
152
+ process.stdout.write(clear
153
+ ? `sticky ${label} cleared (back to engine routing)\n`
154
+ : `sticky ${label} set to ${raw}\n`);
155
+ }
156
+ catch (err) {
157
+ process.stdout.write(`${parsed.command} failed: ${err instanceof Error ? err.message : String(err)}\n`);
158
+ }
159
+ }
137
160
  rl.prompt();
138
161
  continue;
139
162
  }
package/dist/repl.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAA0B,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,0EAA0E;AAC1E,wBAAwB;AACxB,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;AAQnC,SAAS,aAAa,CACpB,IAAY;IAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACxE,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACtC,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACxC,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpD,KAAK,aAAa;YAChB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC9C,KAAK,QAAQ;YACX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC/B,KAAK,KAAK;YACR,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7B;YACE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAgB;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0CAA0C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAChG,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,IAAuB;IACpE,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC9F,MAAM,GAAG,GAAG,KAAK,EAAE,MAAc,EAAE,IAAY,EAAE,IAAc,EAAgB,EAAE;QAC/E,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE;YAC5C,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC5D,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,2EAA2E;IAC3E,yEAAyE;IACzE,6EAA6E;IAC7E,mCAAmC;IACnC,IAAI,MAAM,GAAQ,IAAI,CAAC;IACvB,8EAA8E;IAC9E,IAAI,YAAgC,CAAC;IACrC,MAAM,YAAY,GAAG,KAAK,EAAE,KAAc,EAAgB,EAAE;QAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,cAAc,GAAG,KAAK,IAAI,YAAY,CAAC;YAC7C,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE;gBACrC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3C,CAAC,CAAC;YACH,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,QAAQ,mGAAmG,CACjI,CAAC;IACF,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM;gBAAE,MAAM;YACrC,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC7B,sEAAsE;gBACtE,uEAAuE;gBACvE,+DAA+D;gBAC/D,MAAM,GAAG,IAAI,CAAC;gBACd,YAAY,GAAG,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;gBACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY;oBACV,CAAC,CAAC,qDAAqD;oBACvD,CAAC,CAAC,4CAA4C,CACjD,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;oBACtE,EAAE,CAAC,MAAM,EAAE,CAAC;oBACZ,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,KAAK,CACtE,CAAC;oBACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE;wBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CACtG,CAAC;oBACJ,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE;wBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,eAAe,IAAI,GAAG,UAAU,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CACxF,CAAC;gBACN,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC7E,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACzC,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnF,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjC,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,oEAAoE;gBACpE,oEAAoE;gBACpE,mCAAmC;gBACnC,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBAChD,CAAC;wBAAS,CAAC;oBACT,EAAE,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7F,CAAC;QACD,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC;IACD,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-preflight.d.ts","sourceRoot":"","sources":["../src/request-preflight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAU,MAAM,mBAAmB,CAAC;AAWvF,UAAU,oCAAoC;IAC5C,SAAS,CAAC,EAAE,CACV,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7E,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC;CAChD;AAED,yFAAyF;AACzF,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EACzC,aAAa,EAAE,MAAM,EACrB,YAAY,GAAE,oCAAyC,GACtD,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAgFpD"}
1
+ {"version":3,"file":"request-preflight.d.ts","sourceRoot":"","sources":["../src/request-preflight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAU,MAAM,mBAAmB,CAAC;AASvF,UAAU,oCAAoC;IAC5C,SAAS,CAAC,EAAE,CACV,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7E,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC;CAChD;AAED,yFAAyF;AACzF,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EACzC,aAAa,EAAE,MAAM,EACrB,YAAY,GAAE,oCAAyC,GACtD,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAgFpD"}
@@ -5,8 +5,6 @@ const modeIntent = {
5
5
  agent: "implement",
6
6
  ask: "explain",
7
7
  plan: "plan",
8
- audit: "audit",
9
- orchestrate: "orchestrate",
10
8
  };
11
9
  /** Refuse requests that no selected lane can satisfy before a run or turn is created. */
12
10
  export function createRunRequirementsPreflight(resources, noProjectRoot, dependencies = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"request-preflight.js","sourceRoot":"","sources":["../src/request-preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-preflight.js","sourceRoot":"","sources":["../src/request-preflight.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"retention-service.d.ts","sourceRoot":"","sources":["../src/retention-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAO5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,YAAY,CAAC;IAC7B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC1F;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CA4EhF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,IAAI,CAkBN"}
1
+ {"version":3,"file":"retention-service.d.ts","sourceRoot":"","sources":["../src/retention-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,YAAY,CAAC;IAC7B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC1F;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAiGhF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,IAAI,CAkBN"}
@@ -10,6 +10,7 @@ import { ArtifactStore } from "@claudexor/artifact-store";
10
10
  import { runRetentionPass } from "@claudexor/control-api";
11
11
  import { loadConfig } from "@claudexor/config";
12
12
  import { noProjectRepoRoot } from "@claudexor/util";
13
+ import { sweepOrphanLanes } from "@claudexor/workspace";
13
14
  import { logLine } from "./daemon-lifecycle.js";
14
15
  export function createRetentionRunner(deps) {
15
16
  const noProjectRoot = noProjectRepoRoot();
@@ -68,6 +69,26 @@ export function createRetentionRunner(deps) {
68
69
  // no-project root has none.
69
70
  reviewsDir: root === noProjectRoot ? null : join(root, ".claudexor", "reviews"),
70
71
  }));
72
+ // INV-034 lifecycle owner (c): remove durable per-lane read-only homes whose
73
+ // thread no longer exists. Bounded to HEALTHY roots only (same fail-closed
74
+ // set as the run GC): a quarantined partition contributes no live thread
75
+ // ids, so its lanes are left untouched until it recovers rather than swept
76
+ // as false orphans. Skip in dry-run — a GC preview must not delete bytes.
77
+ if (!request.dry_run) {
78
+ const liveThreadsByRoot = new Map();
79
+ for (const thread of deps.threads.listThreads()) {
80
+ const root = thread.repo?.root ?? noProjectRoot;
81
+ (liveThreadsByRoot.get(root) ?? liveThreadsByRoot.set(root, new Set()).get(root)).add(thread.id);
82
+ }
83
+ for (const root of roots) {
84
+ try {
85
+ sweepOrphanLanes(root, liveThreadsByRoot.get(root) ?? new Set());
86
+ }
87
+ catch {
88
+ /* best-effort: orphan lane dirs are harmless and re-sweepable */
89
+ }
90
+ }
91
+ }
71
92
  return runRetentionPass({
72
93
  runsMaxAgeDays: retention.runs_max_age_days,
73
94
  reviewsMaxAgeDays: retention.reviews_max_age_days,
@@ -1 +1 @@
1
- {"version":3,"file":"retention-service.js","sourceRoot":"","sources":["../src/retention-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAUhD,MAAM,UAAU,qBAAqB,CAAC,IAAyB;IAC7D,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;IAC1C,wEAAwE;IACxE,sEAAsE;IACtE,oEAAoE;IACpE,2DAA2D;IAC3D,IAAI,QAAQ,GAAqC,IAAI,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,EAAE,OAAyB,EAA6B,EAAE;QAC7E,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI;aACjB,MAAM,CAAC,CAAC,GAAG,EAAgE,EAAE,CAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CACnB;aACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,gBAAgB,GAAG,GAAgB,EAAE;YACzC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO;oBAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,WAAW;oBAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpD,KAAK,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;wBACrE,IAAI,EAAE;4BAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;QACF,iEAAiE;QACjE,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,YAAY;QACZ,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,IAAI;qBACJ,QAAQ,EAAE;qBACV,IAAI,EAAE;qBACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3C,aAAa;aACd,CAAC;SACH,CAAC;QACF,MAAM,UAAU,GAAuB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1D,IAAI;YACJ,OAAO,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;YAC1C,8DAA8D;YAC9D,4BAA4B;YAC5B,UAAU,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC;SAChF,CAAC,CAAC,CAAC;QACJ,OAAO,gBAAgB,CACrB;YACE,cAAc,EAAE,SAAS,CAAC,iBAAiB;YAC3C,iBAAiB,EAAE,SAAS,CAAC,oBAAoB;YACjD,sBAAsB,EAAE,SAAS,CAAC,0BAA0B;SAC7D,EACD,OAAO,EACP,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,CACzE,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAClD,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EACtB,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CACvB,CAAC;QACF,QAAQ,GAAG,OAAO,CAAC;QACnB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1B,IAAI,QAAQ,KAAK,OAAO;gBAAE,QAAQ,GAAG,IAAI,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAuB,EACvB,IAAwE;IAExE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,IAAI,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;QAChC,KAAK,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAClC,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CACL,IAAI,CAAC,OAAO,EACZ,oBAAoB,OAAO,CAAC,WAAW,WAAW,OAAO,CAAC,YAAY,CAAC,MAAM,SAAS;YACpF,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,aAAa,OAAO,CAAC,MAAM,CAAC,MAAM,UAAU,CAChF,EACH,CAAC,KAAc,EAAE,EAAE,CACjB,OAAO,CACL,IAAI,CAAC,OAAO,EACZ,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9E,CACJ,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;IAC3B,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"retention-service.js","sourceRoot":"","sources":["../src/retention-service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,41 @@
1
+ /** `claudexor settings` is a thin projection of the daemon-owned /v2/settings surface. */
2
+ import { type ControlSettingsUpdateRequest as SettingsPatch } from "@claudexor/schema";
1
3
  import type { ParsedArgs } from "./args.js";
4
+ /**
5
+ * CLI global setting key -> the ControlSettingsUpdateRequest field it writes.
6
+ * The settings-coverage sweep test asserts every settable global field the
7
+ * daemon honors is reachable here — a NEW schema field with no CLI key FAILS
8
+ * the test (self-enforcing), so the surface can never silently lag the daemon.
9
+ */
10
+ export declare const GLOBAL_SETTING_FIELDS: {
11
+ readonly routing_goal: "routingGoal";
12
+ readonly paid_fallback: "paidFallback";
13
+ readonly quality_tiers: "qualityTiers";
14
+ readonly interaction_timeout_ms: "interactionTimeoutMs";
15
+ readonly primary_harness: "primaryHarness";
16
+ readonly eligible_harnesses: "eligibleHarnesses";
17
+ readonly env_inheritance: "envInheritance";
18
+ readonly paid_budget_per_run: "paidBudgetPerRun";
19
+ readonly auth_preference: "authPreference";
20
+ };
21
+ /**
22
+ * CLI harness.<id>.<field> -> the ControlHarnessSettingsPatch field it writes.
23
+ * Same self-enforcing contract as the global map.
24
+ */
25
+ export declare const HARNESS_SETTING_FIELDS: {
26
+ readonly enabled: "enabled";
27
+ readonly native_credentials_enabled: "nativeCredentialsEnabled";
28
+ readonly default_model: "defaultModel";
29
+ readonly fallback_model: "fallbackModel";
30
+ readonly effort: "effort";
31
+ readonly max_turns: "maxTurns";
32
+ readonly max_rounds: "maxRounds";
33
+ readonly tools_allow: "toolsAllow";
34
+ readonly tools_deny: "toolsDeny";
35
+ readonly web: "web";
36
+ readonly auth_preference: "authPreference";
37
+ readonly profile_limit_action: "profileLimitAction";
38
+ };
2
39
  export declare function settingsCommand(args: ParsedArgs, json: boolean): Promise<number>;
40
+ export declare function settingPatch(key: string, value: string): SettingsPatch;
3
41
  //# sourceMappingURL=settings-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-command.d.ts","sourceRoot":"","sources":["../src/settings-command.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAQ5C,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBtF"}
1
+ {"version":3,"file":"settings-command.d.ts","sourceRoot":"","sources":["../src/settings-command.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,EAGL,KAAK,4BAA4B,IAAI,aAAa,EACnD,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUxB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAazB,CAAC;AAWX,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBtF;AAsFD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CA2DtE"}