@claudexor/cli 3.0.4 → 3.1.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 (160) hide show
  1. package/dist/about-command.d.ts +32 -0
  2. package/dist/about-command.d.ts.map +1 -0
  3. package/dist/about-command.js +40 -0
  4. package/dist/about-command.js.map +1 -0
  5. package/dist/acp-auth-command.d.ts +3 -0
  6. package/dist/acp-auth-command.d.ts.map +1 -0
  7. package/dist/acp-auth-command.js +18 -0
  8. package/dist/acp-auth-command.js.map +1 -0
  9. package/dist/acp-auth.d.ts +13 -0
  10. package/dist/acp-auth.d.ts.map +1 -0
  11. package/dist/acp-auth.js +47 -0
  12. package/dist/acp-auth.js.map +1 -0
  13. package/dist/acp-surface-runner.d.ts +12 -0
  14. package/dist/acp-surface-runner.d.ts.map +1 -1
  15. package/dist/acp-surface-runner.js +113 -11
  16. package/dist/acp-surface-runner.js.map +1 -1
  17. package/dist/bridge-serve.d.ts.map +1 -1
  18. package/dist/bridge-serve.js +2 -0
  19. package/dist/bridge-serve.js.map +1 -1
  20. package/dist/capabilities.d.ts.map +1 -1
  21. package/dist/capabilities.js +2 -1
  22. package/dist/capabilities.js.map +1 -1
  23. package/dist/claudexord.d.ts +21 -0
  24. package/dist/claudexord.d.ts.map +1 -1
  25. package/dist/claudexord.js +105 -21
  26. package/dist/claudexord.js.map +1 -1
  27. package/dist/cli-error.d.ts +97 -0
  28. package/dist/cli-error.d.ts.map +1 -0
  29. package/dist/cli-error.js +308 -0
  30. package/dist/cli-error.js.map +1 -0
  31. package/dist/cli-io.d.ts +9 -0
  32. package/dist/cli-io.d.ts.map +1 -1
  33. package/dist/cli-io.js +10 -1
  34. package/dist/cli-io.js.map +1 -1
  35. package/dist/cli.js +110 -116
  36. package/dist/cli.js.map +1 -1
  37. package/dist/codex-device-login.d.ts +117 -0
  38. package/dist/codex-device-login.d.ts.map +1 -0
  39. package/dist/codex-device-login.js +227 -0
  40. package/dist/codex-device-login.js.map +1 -0
  41. package/dist/command-flags.d.ts +0 -6
  42. package/dist/command-flags.d.ts.map +1 -1
  43. package/dist/command-flags.js +12 -4
  44. package/dist/command-flags.js.map +1 -1
  45. package/dist/command-help.d.ts +46 -0
  46. package/dist/command-help.d.ts.map +1 -0
  47. package/dist/command-help.js +92 -0
  48. package/dist/command-help.js.map +1 -0
  49. package/dist/command-registry.d.ts +2 -0
  50. package/dist/command-registry.d.ts.map +1 -1
  51. package/dist/command-registry.js +14 -7
  52. package/dist/command-registry.js.map +1 -1
  53. package/dist/control-services.d.ts +54 -27
  54. package/dist/control-services.d.ts.map +1 -1
  55. package/dist/control-services.js +56 -30
  56. package/dist/control-services.js.map +1 -1
  57. package/dist/credential-commands.d.ts.map +1 -1
  58. package/dist/credential-commands.js +44 -1
  59. package/dist/credential-commands.js.map +1 -1
  60. package/dist/daemon-outcome.d.ts +24 -0
  61. package/dist/daemon-outcome.d.ts.map +1 -0
  62. package/dist/daemon-outcome.js +59 -0
  63. package/dist/daemon-outcome.js.map +1 -0
  64. package/dist/daemon-run.d.ts +23 -4
  65. package/dist/daemon-run.d.ts.map +1 -1
  66. package/dist/daemon-run.js +66 -27
  67. package/dist/daemon-run.js.map +1 -1
  68. package/dist/delegation-belt-descriptor.d.ts +31 -13
  69. package/dist/delegation-belt-descriptor.d.ts.map +1 -1
  70. package/dist/delegation-belt-descriptor.js +43 -15
  71. package/dist/delegation-belt-descriptor.js.map +1 -1
  72. package/dist/live.d.ts +13 -1
  73. package/dist/live.d.ts.map +1 -1
  74. package/dist/live.js +56 -7
  75. package/dist/live.js.map +1 -1
  76. package/dist/mcp-runner.d.ts.map +1 -1
  77. package/dist/mcp-runner.js +60 -6
  78. package/dist/mcp-runner.js.map +1 -1
  79. package/dist/native-login.d.ts +10 -1
  80. package/dist/native-login.d.ts.map +1 -1
  81. package/dist/native-login.js +32 -10
  82. package/dist/native-login.js.map +1 -1
  83. package/dist/ops-commands.d.ts +5 -1
  84. package/dist/ops-commands.d.ts.map +1 -1
  85. package/dist/ops-commands.js +45 -52
  86. package/dist/ops-commands.js.map +1 -1
  87. package/dist/plan-implement-readiness.d.ts +32 -0
  88. package/dist/plan-implement-readiness.d.ts.map +1 -0
  89. package/dist/plan-implement-readiness.js +51 -0
  90. package/dist/plan-implement-readiness.js.map +1 -0
  91. package/dist/plugins.d.ts.map +1 -1
  92. package/dist/plugins.js +73 -20
  93. package/dist/plugins.js.map +1 -1
  94. package/dist/project-command.d.ts +15 -0
  95. package/dist/project-command.d.ts.map +1 -1
  96. package/dist/project-command.js +75 -20
  97. package/dist/project-command.js.map +1 -1
  98. package/dist/quota-command.d.ts.map +1 -1
  99. package/dist/quota-command.js +2 -6
  100. package/dist/quota-command.js.map +1 -1
  101. package/dist/release-command.d.ts.map +1 -1
  102. package/dist/release-command.js +31 -6
  103. package/dist/release-command.js.map +1 -1
  104. package/dist/release.d.ts +41 -10
  105. package/dist/release.d.ts.map +1 -1
  106. package/dist/release.js +70 -48
  107. package/dist/release.js.map +1 -1
  108. package/dist/repo-asset-authority.d.ts +89 -0
  109. package/dist/repo-asset-authority.d.ts.map +1 -0
  110. package/dist/repo-asset-authority.js +175 -0
  111. package/dist/repo-asset-authority.js.map +1 -0
  112. package/dist/retry-command.d.ts +15 -0
  113. package/dist/retry-command.d.ts.map +1 -1
  114. package/dist/retry-command.js +7 -4
  115. package/dist/retry-command.js.map +1 -1
  116. package/dist/review-command.d.ts.map +1 -1
  117. package/dist/review-command.js +2 -6
  118. package/dist/review-command.js.map +1 -1
  119. package/dist/reviewer-options.d.ts +11 -1
  120. package/dist/reviewer-options.d.ts.map +1 -1
  121. package/dist/reviewer-options.js +24 -9
  122. package/dist/reviewer-options.js.map +1 -1
  123. package/dist/run-options.d.ts.map +1 -1
  124. package/dist/run-options.js +13 -1
  125. package/dist/run-options.js.map +1 -1
  126. package/dist/settings-command.d.ts.map +1 -1
  127. package/dist/settings-command.js +2 -6
  128. package/dist/settings-command.js.map +1 -1
  129. package/dist/settings-service.d.ts +101 -10
  130. package/dist/settings-service.d.ts.map +1 -1
  131. package/dist/settings-service.js +201 -12
  132. package/dist/settings-service.js.map +1 -1
  133. package/dist/setup-job-store.d.ts +16 -5
  134. package/dist/setup-job-store.d.ts.map +1 -1
  135. package/dist/setup-job-store.js +24 -4
  136. package/dist/setup-job-store.js.map +1 -1
  137. package/dist/setup-jobs.d.ts +14 -4
  138. package/dist/setup-jobs.d.ts.map +1 -1
  139. package/dist/setup-jobs.js +204 -23
  140. package/dist/setup-jobs.js.map +1 -1
  141. package/dist/setup-login-inline.d.ts +71 -0
  142. package/dist/setup-login-inline.d.ts.map +1 -0
  143. package/dist/setup-login-inline.js +207 -0
  144. package/dist/setup-login-inline.js.map +1 -0
  145. package/dist/setup-login-protocol.d.ts +3 -2
  146. package/dist/setup-login-protocol.d.ts.map +1 -1
  147. package/dist/setup-login-protocol.js +16 -1
  148. package/dist/setup-login-protocol.js.map +1 -1
  149. package/dist/setup-login-runner.d.ts +9 -0
  150. package/dist/setup-login-runner.d.ts.map +1 -1
  151. package/dist/setup-login-runner.js +212 -5
  152. package/dist/setup-login-runner.js.map +1 -1
  153. package/dist/thread-delivery.d.ts.map +1 -1
  154. package/dist/thread-delivery.js +3 -1
  155. package/dist/thread-delivery.js.map +1 -1
  156. package/dist/thread-execution-workspace.d.ts +22 -0
  157. package/dist/thread-execution-workspace.d.ts.map +1 -0
  158. package/dist/thread-execution-workspace.js +21 -0
  159. package/dist/thread-execution-workspace.js.map +1 -0
  160. package/package.json +23 -23
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /** A single GitHub release asset as returned by the releases API (subset). */
2
+ export interface ReleaseAsset {
3
+ name?: string;
4
+ download_count?: number;
5
+ }
6
+ /** A single GitHub release as returned by the releases API (subset). */
7
+ export interface ReleaseSummary {
8
+ assets?: ReleaseAsset[];
9
+ }
10
+ /** One release asset's contribution to the totals, tagged by policy. */
11
+ export interface AssetDownloadCount {
12
+ name: string;
13
+ downloads: number;
14
+ /** True when this asset counts as an app install under the allowlist. */
15
+ appInstaller: boolean;
16
+ }
17
+ /** The GitHub release-asset download breakdown under the ONE asset policy. */
18
+ export interface ReleaseAssetTotals {
19
+ /** Allowlisted app-installer downloads — the honest install count. */
20
+ appInstallerDownloads: number;
21
+ /** Raw sum across ALL assets (installers + tooling) — diagnostic only. */
22
+ rawTotalDownloads: number;
23
+ /** Per-asset breakdown, each tagged with whether it is an app installer. */
24
+ perAsset: AssetDownloadCount[];
25
+ }
26
+ /**
27
+ * The ONE app-installer allowlist: the signed `Claudexor-<version>.dmg` / `.zip`
28
+ * a human downloads to install the app. Case-sensitive on the `Claudexor-`
29
+ * prefix so the lowercase `claudexor-runtime-*.tar.gz` engine closure is
30
+ * excluded. No path separators are allowed in the matched name.
31
+ */
32
+ export declare function isAppInstallerAsset(name: unknown): name is string;
33
+ /**
34
+ * Fold a list of releases into the asset totals under the one policy. Missing
35
+ * or malformed asset entries contribute zero rather than throwing, so a partial
36
+ * API payload degrades gracefully instead of poisoning the whole count.
37
+ */
38
+ export declare function computeReleaseAssetTotals(releases: readonly ReleaseSummary[] | null | undefined): ReleaseAssetTotals;
39
+ /** Convenience: the honest app-installer download sum for a release list. */
40
+ export declare function sumAppInstallerDownloads(releases: readonly ReleaseSummary[] | null | undefined): number;
41
+ /**
42
+ * Whether the releases pager should fetch another page after `batch`. Stops on a
43
+ * non-array, an empty page, or a short (< pageSize) page — the last page.
44
+ */
45
+ export declare function hasMoreReleasePages(batch: unknown, pageSize?: number): boolean;
46
+ /** One day of the npm range payload (`downloads: [{ day, downloads }]`). */
47
+ export interface NpmDailyPoint {
48
+ day?: string;
49
+ downloads?: number;
50
+ }
51
+ /** UTC day string (YYYY-MM-DD) so cron time zone never splits a run in two. */
52
+ export declare function utcDate(d?: Date): string;
53
+ /** Shift a YYYY-MM-DD day string by whole days in UTC. */
54
+ export declare function addDaysUtc(dateStr: string, days: number): string;
55
+ /**
56
+ * Sum npm daily downloads for days strictly after `afterDate` through `through`
57
+ * inclusive. This is the daily-delta engine: extending a cumulative total by
58
+ * only the untallied tail, so a same-day rerun (afterDate = the prior row's
59
+ * date) never double-counts and a missed cron day is recovered (gap repair)
60
+ * without recomputing lifetime from scratch.
61
+ */
62
+ export declare function sumNpmDeltaAfter(daily: readonly NpmDailyPoint[] | null | undefined, afterDate: string, through: string): number;
63
+ export declare const CSV_HEADER = "date,npm_through,npm_total,github_release_downloads,total_downloads";
64
+ export interface MetricsRow {
65
+ date: string;
66
+ /** Last fully closed UTC npm day included in `npm_total`. */
67
+ npm_through: string;
68
+ npm_total: number;
69
+ /** Raw cumulative count across every uploaded GitHub release asset. */
70
+ github_release_downloads: number;
71
+ total_downloads: number;
72
+ }
73
+ export declare function parseCsv(text: string): {
74
+ header: string;
75
+ rows: MetricsRow[];
76
+ };
77
+ export declare function serializeCsv(rows: readonly MetricsRow[]): string;
78
+ /**
79
+ * Insert or replace the row for its date, keeping the ledger sorted by date.
80
+ * Idempotent: re-running the same day updates that day's row, never duplicates.
81
+ */
82
+ export declare function upsertRow(rows: readonly MetricsRow[], row: MetricsRow): MetricsRow[];
83
+ /**
84
+ * The latest persisted row at or before `date`. Same-day reruns reuse its npm
85
+ * closed-day watermark while refreshing the live GitHub cumulative count.
86
+ */
87
+ export declare function latestRowAtOrBefore(rows: readonly MetricsRow[], date: string): MetricsRow | null;
88
+ export declare function formatThousands(n: number): string;
89
+ //# sourceMappingURL=repo-asset-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-asset-authority.d.ts","sourceRoot":"","sources":["../src/repo-asset-authority.ts"],"names":[],"mappings":"AAmBA,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,GACrD,kBAAkB,CAsBpB;AAED,6EAA6E;AAC7E,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,GACrD,MAAM,CAER;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAM,GAAG,OAAO,CAE3E;AAMD,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,CAAC,GAAE,IAAiB,GAAG,MAAM,CAEpD;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI,GAAG,SAAS,EAClD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CASR;AAMD,eAAO,MAAM,UAAU,wEAAwE,CAAC;AAEhG,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,EAAE,CAAA;CAAE,CAoC7E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAOhE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,EAAE,CAKpF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMhG;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIjD"}
@@ -0,0 +1,175 @@
1
+ // Single shared collector / asset-authority for repository download metrics
2
+ // (D-15 reuse-lock; audit A-6). BOTH consumers import the pure logic here so
3
+ // there is exactly ONE definition of the GitHub release-asset totals:
4
+ //
5
+ // - the CLI `claudexor release stats` (packages/cli/src/release.ts), and
6
+ // - the daily metrics workflow script (scripts/update-repo-metrics.mjs),
7
+ // which imports this file directly under Node's native TypeScript type
8
+ // stripping (the workflow runs plain `node`, no build step — see
9
+ // .github/workflows/repo-metrics.yml and .node-version).
10
+ //
11
+ // Because the script imports this module unbuilt, every export MUST use only
12
+ // erasable syntax (types/interfaces only — no enums, no namespaces, no
13
+ // parameter properties) and depend on nothing outside the Node stdlib.
14
+ //
15
+ // ASSET POLICY (the "one authority" the audit demanded): `release stats`
16
+ // exposes both the DMG/ZIP app-installer subtotal and the raw sum across every
17
+ // uploaded release asset. The README total-downloads badge deliberately uses
18
+ // that raw sum; it is a download-event counter, not an installation counter.
19
+ // ---------------------------------------------------------------------------
20
+ // Asset authority (the drift the audit caught: two collectors, two allowlists)
21
+ // ---------------------------------------------------------------------------
22
+ /**
23
+ * The ONE app-installer allowlist: the signed `Claudexor-<version>.dmg` / `.zip`
24
+ * a human downloads to install the app. Case-sensitive on the `Claudexor-`
25
+ * prefix so the lowercase `claudexor-runtime-*.tar.gz` engine closure is
26
+ * excluded. No path separators are allowed in the matched name.
27
+ */
28
+ export function isAppInstallerAsset(name) {
29
+ return typeof name === "string" && /^Claudexor-[^/]*\.(?:dmg|zip)$/.test(name);
30
+ }
31
+ /**
32
+ * Fold a list of releases into the asset totals under the one policy. Missing
33
+ * or malformed asset entries contribute zero rather than throwing, so a partial
34
+ * API payload degrades gracefully instead of poisoning the whole count.
35
+ */
36
+ export function computeReleaseAssetTotals(releases) {
37
+ const perAssetMap = new Map();
38
+ let appInstallerDownloads = 0;
39
+ let rawTotalDownloads = 0;
40
+ for (const release of releases ?? []) {
41
+ for (const asset of release?.assets ?? []) {
42
+ const count = typeof asset?.download_count === "number" ? asset.download_count : 0;
43
+ const name = typeof asset?.name === "string" ? asset.name : "(unnamed)";
44
+ const appInstaller = isAppInstallerAsset(asset?.name);
45
+ rawTotalDownloads += count;
46
+ if (appInstaller)
47
+ appInstallerDownloads += count;
48
+ const existing = perAssetMap.get(name);
49
+ perAssetMap.set(name, {
50
+ downloads: (existing?.downloads ?? 0) + count,
51
+ appInstaller: existing?.appInstaller ?? appInstaller,
52
+ });
53
+ }
54
+ }
55
+ const perAsset = [...perAssetMap.entries()]
56
+ .map(([name, v]) => ({ name, downloads: v.downloads, appInstaller: v.appInstaller }))
57
+ .sort((a, b) => b.downloads - a.downloads);
58
+ return { appInstallerDownloads, rawTotalDownloads, perAsset };
59
+ }
60
+ /** Convenience: the honest app-installer download sum for a release list. */
61
+ export function sumAppInstallerDownloads(releases) {
62
+ return computeReleaseAssetTotals(releases).appInstallerDownloads;
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // Pagination authority (releases API is paged 100/response)
66
+ // ---------------------------------------------------------------------------
67
+ /**
68
+ * Whether the releases pager should fetch another page after `batch`. Stops on a
69
+ * non-array, an empty page, or a short (< pageSize) page — the last page.
70
+ */
71
+ export function hasMoreReleasePages(batch, pageSize = 100) {
72
+ return Array.isArray(batch) && batch.length >= pageSize;
73
+ }
74
+ /** UTC day string (YYYY-MM-DD) so cron time zone never splits a run in two. */
75
+ export function utcDate(d = new Date()) {
76
+ return d.toISOString().slice(0, 10);
77
+ }
78
+ /** Shift a YYYY-MM-DD day string by whole days in UTC. */
79
+ export function addDaysUtc(dateStr, days) {
80
+ const d = new Date(`${dateStr}T00:00:00Z`);
81
+ d.setUTCDate(d.getUTCDate() + days);
82
+ return d.toISOString().slice(0, 10);
83
+ }
84
+ /**
85
+ * Sum npm daily downloads for days strictly after `afterDate` through `through`
86
+ * inclusive. This is the daily-delta engine: extending a cumulative total by
87
+ * only the untallied tail, so a same-day rerun (afterDate = the prior row's
88
+ * date) never double-counts and a missed cron day is recovered (gap repair)
89
+ * without recomputing lifetime from scratch.
90
+ */
91
+ export function sumNpmDeltaAfter(daily, afterDate, through) {
92
+ let sum = 0;
93
+ for (const point of daily ?? []) {
94
+ if (typeof point?.day !== "string")
95
+ continue;
96
+ if (point.day > afterDate && point.day <= through) {
97
+ sum += typeof point.downloads === "number" ? point.downloads : 0;
98
+ }
99
+ }
100
+ return sum;
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // CSV ledger authority (idempotent upsert + closed-day npm watermark)
104
+ // ---------------------------------------------------------------------------
105
+ export const CSV_HEADER = "date,npm_through,npm_total,github_release_downloads,total_downloads";
106
+ export function parseCsv(text) {
107
+ const lines = text
108
+ .split("\n")
109
+ .map((l) => l.trim())
110
+ .filter((l) => l.length > 0);
111
+ if (lines.length === 0)
112
+ return { header: CSV_HEADER, rows: [] };
113
+ const header = lines[0];
114
+ if (header !== CSV_HEADER) {
115
+ throw new Error(`repo metrics CSV header mismatch: expected ${CSV_HEADER}`);
116
+ }
117
+ const datePattern = /^\d{4}-\d{2}-\d{2}$/;
118
+ const rows = lines.slice(1).map((line, index) => {
119
+ const fields = line.split(",");
120
+ if (fields.length !== 5) {
121
+ throw new Error(`repo metrics CSV row ${index + 2} must have 5 columns`);
122
+ }
123
+ const [date, npm_through, npmRaw, githubRaw, totalRaw] = fields;
124
+ const npm_total = Number(npmRaw);
125
+ const github_release_downloads = Number(githubRaw);
126
+ const total_downloads = Number(totalRaw);
127
+ if (!datePattern.test(date) || !datePattern.test(npm_through)) {
128
+ throw new Error(`repo metrics CSV row ${index + 2} has an invalid UTC date`);
129
+ }
130
+ if (!Number.isSafeInteger(npm_total) ||
131
+ npm_total < 0 ||
132
+ !Number.isSafeInteger(github_release_downloads) ||
133
+ github_release_downloads < 0 ||
134
+ !Number.isSafeInteger(total_downloads) ||
135
+ total_downloads !== npm_total + github_release_downloads) {
136
+ throw new Error(`repo metrics CSV row ${index + 2} has invalid download totals`);
137
+ }
138
+ return { date, npm_through, npm_total, github_release_downloads, total_downloads };
139
+ });
140
+ return { header, rows };
141
+ }
142
+ export function serializeCsv(rows) {
143
+ const body = rows
144
+ .map((r) => [r.date, r.npm_through, r.npm_total, r.github_release_downloads, r.total_downloads].join(","))
145
+ .join("\n");
146
+ return body.length > 0 ? `${CSV_HEADER}\n${body}\n` : `${CSV_HEADER}\n`;
147
+ }
148
+ /**
149
+ * Insert or replace the row for its date, keeping the ledger sorted by date.
150
+ * Idempotent: re-running the same day updates that day's row, never duplicates.
151
+ */
152
+ export function upsertRow(rows, row) {
153
+ const next = rows.filter((r) => r.date !== row.date);
154
+ next.push(row);
155
+ next.sort((a, b) => (a.date < b.date ? -1 : a.date > b.date ? 1 : 0));
156
+ return next;
157
+ }
158
+ /**
159
+ * The latest persisted row at or before `date`. Same-day reruns reuse its npm
160
+ * closed-day watermark while refreshing the live GitHub cumulative count.
161
+ */
162
+ export function latestRowAtOrBefore(rows, date) {
163
+ let latest = null;
164
+ for (const r of rows) {
165
+ if (r.date <= date && (latest === null || r.date > latest.date))
166
+ latest = r;
167
+ }
168
+ return latest;
169
+ }
170
+ export function formatThousands(n) {
171
+ return Math.round(n)
172
+ .toString()
173
+ .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
174
+ }
175
+ //# sourceMappingURL=repo-asset-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-asset-authority.js","sourceRoot":"","sources":["../src/repo-asset-authority.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,qEAAqE;AACrE,6DAA6D;AAC7D,EAAE;AACF,6EAA6E;AAC7E,uEAAuE;AACvE,uEAAuE;AACvE,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AA+B7E,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAsD;IAEtD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwD,CAAC;IACpF,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,OAAO,KAAK,EAAE,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;YACxE,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtD,iBAAiB,IAAI,KAAK,CAAC;YAC3B,IAAI,YAAY;gBAAE,qBAAqB,IAAI,KAAK,CAAC;YACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE;gBACpB,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK;gBAC7C,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,YAAY;aACrD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;SACpF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;AAChE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CACtC,QAAsD;IAEtD,OAAO,yBAAyB,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC;AACnE,CAAC;AAED,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,QAAQ,GAAG,GAAG;IAChE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC;AAC1D,CAAC;AAYD,+EAA+E;AAC/E,MAAM,UAAU,OAAO,CAAC,IAAU,IAAI,IAAI,EAAE;IAC1C,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,IAAY;IACtD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,OAAO,YAAY,CAAC,CAAC;IAC3C,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAkD,EAClD,SAAiB,EACjB,OAAe;IAEf,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChC,IAAI,OAAO,KAAK,EAAE,GAAG,KAAK,QAAQ;YAAE,SAAS;QAC7C,IAAI,KAAK,CAAC,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;YAClD,GAAG,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAG,qEAAqE,CAAC;AAYhG,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,IAAI;SACf,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,WAAW,GAAG,qBAAqB,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,wBAAwB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC/E,CAAC;QACD,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YAChC,SAAS,GAAG,CAAC;YACb,CAAC,MAAM,CAAC,aAAa,CAAC,wBAAwB,CAAC;YAC/C,wBAAwB,GAAG,CAAC;YAC5B,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC;YACtC,eAAe,KAAK,SAAS,GAAG,wBAAwB,EACxD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,wBAAwB,EAAE,eAAe,EAAE,CAAC;IACrF,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAA2B;IACtD,MAAM,IAAI,GAAG,IAAI;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC9F;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAA2B,EAAE,GAAe;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA2B,EAAE,IAAY;IAC3E,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAAE,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACjB,QAAQ,EAAE;SACV,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,3 +1,18 @@
1
+ /**
2
+ * `claudexor retry` / `claudexor run-again`.
3
+ *
4
+ * Both refusals go through the SAME projector the rest of the CLI uses
5
+ * (`controlProblemError` → `renderCliFailure`), because the daemon does not
6
+ * serve the field these commands used to read. Every `>= 400` reply from the
7
+ * control API is re-projected into a strict `ControlProblem` before it reaches
8
+ * the wire, so the human text arrives in `message` and there is no `error` key
9
+ * at all — reading `data["error"]` therefore always fell through to a bare
10
+ * `HTTP <status>` and threw away the actionable refusal. The projector reads
11
+ * `message` first and still salvages a legacy `error` body, so a sender that
12
+ * has not moved to problem+json does not regress, and the typed fields
13
+ * (`code`/`retryable`/`requiredActions`/`context`) survive instead of being
14
+ * flattened into one string.
15
+ */
1
16
  import type { ParsedArgs } from "./args.js";
2
17
  export declare function retryCommand(args: ParsedArgs, json: boolean): Promise<number>;
3
18
  export declare function runAgainCommand(args: ParsedArgs, json: boolean): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"retry-command.d.ts","sourceRoot":"","sources":["../src/retry-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBnF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BtF"}
1
+ {"version":3,"file":"retry-command.d.ts","sourceRoot":"","sources":["../src/retry-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBnF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBtF"}
@@ -1,4 +1,5 @@
1
1
  import { print, printJson, printUsageError } from "./cli-io.js";
2
+ import { controlProblemError, renderCliFailure } from "./cli-error.js";
2
3
  import { ensureDaemon } from "./daemon-run.js";
3
4
  import { controlApiFetch } from "./live.js";
4
5
  export async function retryCommand(args, json) {
@@ -13,8 +14,10 @@ export async function retryCommand(args, json) {
13
14
  body: "{}",
14
15
  });
15
16
  const data = (await response.json());
17
+ // A pre-start terminal (the trust gate's typed 403, a requirements refusal)
18
+ // answers here — its message is what the operator has to act on.
16
19
  if (!response.ok)
17
- throw new Error(String(data["error"] ?? `HTTP ${response.status}`));
20
+ throw controlProblemError(response.status, data, `HTTP ${response.status}`);
18
21
  if (json)
19
22
  printJson(data);
20
23
  else
@@ -22,7 +25,7 @@ export async function retryCommand(args, json) {
22
25
  return 0;
23
26
  }
24
27
  catch (error) {
25
- return printUsageError(json, `claudexor retry: ${error instanceof Error ? error.message : String(error)}`);
28
+ return renderCliFailure(json, error, { messagePrefix: "claudexor retry:" });
26
29
  }
27
30
  }
28
31
  export async function runAgainCommand(args, json) {
@@ -36,7 +39,7 @@ export async function runAgainCommand(args, json) {
36
39
  });
37
40
  const data = (await response.json());
38
41
  if (!response.ok)
39
- throw new Error(String(data["error"] ?? `HTTP ${response.status}`));
42
+ throw controlProblemError(response.status, data, `HTTP ${response.status}`);
40
43
  if (json)
41
44
  printJson(data);
42
45
  else {
@@ -51,7 +54,7 @@ export async function runAgainCommand(args, json) {
51
54
  return 0;
52
55
  }
53
56
  catch (error) {
54
- return printUsageError(json, `claudexor run-again: ${error instanceof Error ? error.message : String(error)}`);
57
+ return renderCliFailure(json, error, { messagePrefix: "claudexor run-again:" });
55
58
  }
56
59
  }
57
60
  //# sourceMappingURL=retry-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry-command.js","sourceRoot":"","sources":["../src/retry-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry-command.js","sourceRoot":"","sources":["../src/retry-command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-command.d.ts","sourceRoot":"","sources":["../src/review-command.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,WAAW,CAAC;AAQjE,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA4GpF"}
1
+ {"version":3,"file":"review-command.d.ts","sourceRoot":"","sources":["../src/review-command.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,WAAW,CAAC;AASjE,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAyGpF"}
@@ -10,6 +10,7 @@ import { isBlocking } from "@claudexor/schema";
10
10
  import { parseReviewerPanelFlags } from "./run-options.js";
11
11
  import { flagStr, flagValues } from "./args.js";
12
12
  import { print, printJson, printUsageError } from "./cli-io.js";
13
+ import { renderCliFailure } from "./cli-error.js";
13
14
  import { buildRegistry } from "./registry.js";
14
15
  function panelFlags(args) {
15
16
  return parseReviewerPanelFlags(flagValues(args, "reviewer-panel"));
@@ -107,12 +108,7 @@ export async function reviewCommand(args, json) {
107
108
  return ok ? 0 : 1;
108
109
  }
109
110
  catch (err) {
110
- const message = err instanceof Error ? err.message : String(err);
111
- if (json)
112
- printJson({ ok: false, error: message });
113
- else
114
- process.stderr.write(`claudexor review: ${message}\n`);
115
- return 1;
111
+ return renderCliFailure(json, err, { messagePrefix: "claudexor review:" });
116
112
  }
117
113
  }
118
114
  //# sourceMappingURL=review-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-command.js","sourceRoot":"","sources":["../src/review-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-command.js","sourceRoot":"","sources":["../src/review-command.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,16 @@ export declare function parseReviewerModelMap(value: string | undefined): Partia
13
13
  * into an ordered reviewer list. Entries are harness-id based, not
14
14
  * provider-family based, so repeated harnesses are preserved for multi-model
15
15
  * panels on the same native provider.
16
+ *
17
+ * `advertisedEfforts` disambiguates a trailing `:token`: every slug is a
18
+ * well-formed effort, so only membership in a harness-ADVERTISED set can say
19
+ * whether `cursor=org:model:v2` ends in an effort or a model-id segment. The
20
+ * set is the union across harnesses (the harness's live manifest is not
21
+ * resolvable at flag-parse time); a level outside it stays part of the model
22
+ * id or, in the `harness:effort` spelling, is refused — the unambiguous
23
+ * `--reviewer-effort family=level` spelling carries any level the set has not
24
+ * caught up with. The macOS composer applies the same rule with its live
25
+ * manifest union (`ComposerOptionParser`).
16
26
  */
17
- export declare function parseReviewerPanel(value: string | undefined): ControlReviewerPanelEntry[] | undefined;
27
+ export declare function parseReviewerPanel(value: string | undefined, advertisedEfforts: ReadonlySet<string>): ControlReviewerPanelEntry[] | undefined;
18
28
  //# sourceMappingURL=reviewer-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer-options.d.ts","sourceRoot":"","sources":["../src/reviewer-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,UAAU,IAAI,eAAe,EACnC,MAAM,mBAAmB,CAAC;AAE3B,4FAA4F;AAC5F,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,GAAG,SAAS,CAuB9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAqBrD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,yBAAyB,EAAE,GAAG,SAAS,CAiDzC"}
1
+ {"version":3,"file":"reviewer-options.d.ts","sourceRoot":"","sources":["../src/reviewer-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,UAAU,IAAI,eAAe,EACnC,MAAM,mBAAmB,CAAC;AAE3B,4FAA4F;AAC5F,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,GAAG,SAAS,CAuB9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAqBrD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,yBAAyB,EAAE,GAAG,SAAS,CAsDzC"}
@@ -1,4 +1,4 @@
1
- import { EffortHint, ProviderFamily, } from "@claudexor/schema";
1
+ import { EFFORT_HINT_HELP, EffortHint, ProviderFamily, } from "@claudexor/schema";
2
2
  /** Parse `--reviewer-effort openai=xhigh,anthropic=high` into the control-api DTO shape. */
3
3
  export function parseReviewerEffortMap(value) {
4
4
  if (value === undefined)
@@ -20,7 +20,7 @@ export function parseReviewerEffortMap(value) {
20
20
  throw new Error(`invalid reviewer provider '${family}' (expected openai|anthropic|google|cursor|opencode|xai|local|unknown)`);
21
21
  const parsed = EffortHint.safeParse(effort);
22
22
  if (!parsed.success)
23
- throw new Error(`invalid reviewer effort '${effort}' (expected low|medium|high|xhigh|max)`);
23
+ throw new Error(`invalid reviewer effort '${effort}' (expected a ${EFFORT_HINT_HELP})`);
24
24
  map[parsedFamily.data] = parsed.data;
25
25
  }
26
26
  return Object.keys(map).length > 0 ? map : undefined;
@@ -59,8 +59,18 @@ export function parseReviewerModelMap(value) {
59
59
  * into an ordered reviewer list. Entries are harness-id based, not
60
60
  * provider-family based, so repeated harnesses are preserved for multi-model
61
61
  * panels on the same native provider.
62
+ *
63
+ * `advertisedEfforts` disambiguates a trailing `:token`: every slug is a
64
+ * well-formed effort, so only membership in a harness-ADVERTISED set can say
65
+ * whether `cursor=org:model:v2` ends in an effort or a model-id segment. The
66
+ * set is the union across harnesses (the harness's live manifest is not
67
+ * resolvable at flag-parse time); a level outside it stays part of the model
68
+ * id or, in the `harness:effort` spelling, is refused — the unambiguous
69
+ * `--reviewer-effort family=level` spelling carries any level the set has not
70
+ * caught up with. The macOS composer applies the same rule with its live
71
+ * manifest union (`ComposerOptionParser`).
62
72
  */
63
- export function parseReviewerPanel(value) {
73
+ export function parseReviewerPanel(value, advertisedEfforts) {
64
74
  if (value === undefined)
65
75
  return undefined;
66
76
  const out = [];
@@ -78,10 +88,14 @@ export function parseReviewerPanel(value) {
78
88
  const colon = harness.lastIndexOf(":");
79
89
  if (colon > -1) {
80
90
  const suffix = harness.slice(colon + 1).trim();
81
- const parsedEffort = EffortHint.safeParse(suffix);
82
- if (!parsedEffort.success)
91
+ // Disambiguation keys off the ADVERTISED set, not the open vocabulary:
92
+ // every slug is a well-formed effort, so accepting any of them here
93
+ // would make `cursor=org:model:v2` swallow `v2`. A level the set does
94
+ // not know rides the unambiguous `--reviewer-effort family=level`
95
+ // spelling instead.
96
+ if (!advertisedEfforts.has(suffix))
83
97
  throw new Error(`invalid --reviewer-panel entry '${pair}' (expected harness[:effort] or harness[=model[:effort]])`);
84
- effort = parsedEffort.data;
98
+ effort = suffix;
85
99
  harness = harness.slice(0, colon).trim();
86
100
  }
87
101
  }
@@ -92,9 +106,10 @@ export function parseReviewerPanel(value) {
92
106
  const colon = model.lastIndexOf(":");
93
107
  if (colon > -1) {
94
108
  const suffix = model.slice(colon + 1).trim();
95
- const parsedEffort = EffortHint.safeParse(suffix);
96
- if (parsedEffort.success) {
97
- effort = parsedEffort.data;
109
+ // Same advertised-set disambiguation: a colon suffix no harness
110
+ // advertises stays part of the model id (`org:model:v2`).
111
+ if (advertisedEfforts.has(suffix)) {
112
+ effort = suffix;
98
113
  model = model.slice(0, colon).trim();
99
114
  if (!model)
100
115
  throw new Error(`invalid --reviewer-panel entry '${pair}' (missing model after '=')`);
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer-options.js","sourceRoot":"","sources":["../src/reviewer-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewer-options.js","sourceRoot":"","sources":["../src/reviewer-options.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-options.d.ts","sourceRoot":"","sources":["../src/run-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,UAAU,EACV,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAO3B,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKxF;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,qBAAqB,EAAE,GAAG,SAAS,CAarC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,qBAAqB,EAAE,GAAG,SAAS,CAqCrC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,yBAAyB,EAAE,GAAG,SAAS,CAGzC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAGrD;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAGzD"}
1
+ {"version":3,"file":"run-options.d.ts","sourceRoot":"","sources":["../src/run-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,UAAU,EACV,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAoB3B,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKxF;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,qBAAqB,EAAE,GAAG,SAAS,CAarC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,qBAAqB,EAAE,GAAG,SAAS,CAqCrC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,yBAAyB,EAAE,GAAG,SAAS,CAMzC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAGrD;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAGzD"}
@@ -1,4 +1,16 @@
1
+ import { CLAUDE_EFFORT_SNAPSHOT } from "@claudexor/harness-claude";
2
+ import { CODEX_EFFORT_SNAPSHOT, unionEffortLevels } from "@claudexor/harness-codex";
1
3
  import { parseReviewerEffortMap, parseReviewerModelMap, parseReviewerPanel, } from "./reviewer-options.js";
4
+ /**
5
+ * Effort levels the recorded vendor snapshots advertise, unioned across
6
+ * harnesses — the CLI's parse-time answer to "could this `:token` be an
7
+ * effort?". Stamped vendor data (the same snapshots discovery falls back to),
8
+ * never a hand-ranked table; a live-only level the snapshots have not caught
9
+ * up with rides the unambiguous `--reviewer-effort family=level` spelling.
10
+ */
11
+ function snapshotAdvertisedEfforts() {
12
+ return new Set([...CLAUDE_EFFORT_SNAPSHOT, ...unionEffortLevels(CODEX_EFFORT_SNAPSHOT.models)]);
13
+ }
2
14
  export function stringFlagValues(values, flag) {
3
15
  const strings = values.filter((value) => typeof value === "string");
4
16
  if (strings.length !== values.length)
@@ -59,7 +71,7 @@ export function parseTestCommandFlags(values) {
59
71
  }
60
72
  export function parseReviewerPanelFlags(values) {
61
73
  const strings = stringFlagValues(values, "reviewer-panel");
62
- return parseReviewerPanel(strings.length > 0 ? strings.join(",") : undefined);
74
+ return parseReviewerPanel(strings.length > 0 ? strings.join(",") : undefined, snapshotAdvertisedEfforts());
63
75
  }
64
76
  export function parseReviewerModelFlags(values) {
65
77
  const strings = stringFlagValues(values, "reviewer-model");