@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.
- package/dist/about-command.d.ts +32 -0
- package/dist/about-command.d.ts.map +1 -0
- package/dist/about-command.js +40 -0
- package/dist/about-command.js.map +1 -0
- package/dist/acp-auth-command.d.ts +3 -0
- package/dist/acp-auth-command.d.ts.map +1 -0
- package/dist/acp-auth-command.js +18 -0
- package/dist/acp-auth-command.js.map +1 -0
- package/dist/acp-auth.d.ts +13 -0
- package/dist/acp-auth.d.ts.map +1 -0
- package/dist/acp-auth.js +47 -0
- package/dist/acp-auth.js.map +1 -0
- package/dist/acp-surface-runner.d.ts +12 -0
- package/dist/acp-surface-runner.d.ts.map +1 -1
- package/dist/acp-surface-runner.js +113 -11
- package/dist/acp-surface-runner.js.map +1 -1
- package/dist/bridge-serve.d.ts.map +1 -1
- package/dist/bridge-serve.js +2 -0
- package/dist/bridge-serve.js.map +1 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +2 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/claudexord.d.ts +21 -0
- package/dist/claudexord.d.ts.map +1 -1
- package/dist/claudexord.js +105 -21
- package/dist/claudexord.js.map +1 -1
- package/dist/cli-error.d.ts +97 -0
- package/dist/cli-error.d.ts.map +1 -0
- package/dist/cli-error.js +308 -0
- package/dist/cli-error.js.map +1 -0
- package/dist/cli-io.d.ts +9 -0
- package/dist/cli-io.d.ts.map +1 -1
- package/dist/cli-io.js +10 -1
- package/dist/cli-io.js.map +1 -1
- package/dist/cli.js +110 -116
- package/dist/cli.js.map +1 -1
- package/dist/codex-device-login.d.ts +117 -0
- package/dist/codex-device-login.d.ts.map +1 -0
- package/dist/codex-device-login.js +227 -0
- package/dist/codex-device-login.js.map +1 -0
- package/dist/command-flags.d.ts +0 -6
- package/dist/command-flags.d.ts.map +1 -1
- package/dist/command-flags.js +12 -4
- package/dist/command-flags.js.map +1 -1
- package/dist/command-help.d.ts +46 -0
- package/dist/command-help.d.ts.map +1 -0
- package/dist/command-help.js +92 -0
- package/dist/command-help.js.map +1 -0
- package/dist/command-registry.d.ts +2 -0
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +14 -7
- package/dist/command-registry.js.map +1 -1
- package/dist/control-services.d.ts +54 -27
- package/dist/control-services.d.ts.map +1 -1
- package/dist/control-services.js +56 -30
- package/dist/control-services.js.map +1 -1
- package/dist/credential-commands.d.ts.map +1 -1
- package/dist/credential-commands.js +44 -1
- package/dist/credential-commands.js.map +1 -1
- package/dist/daemon-outcome.d.ts +24 -0
- package/dist/daemon-outcome.d.ts.map +1 -0
- package/dist/daemon-outcome.js +59 -0
- package/dist/daemon-outcome.js.map +1 -0
- package/dist/daemon-run.d.ts +23 -4
- package/dist/daemon-run.d.ts.map +1 -1
- package/dist/daemon-run.js +66 -27
- package/dist/daemon-run.js.map +1 -1
- package/dist/delegation-belt-descriptor.d.ts +31 -13
- package/dist/delegation-belt-descriptor.d.ts.map +1 -1
- package/dist/delegation-belt-descriptor.js +43 -15
- package/dist/delegation-belt-descriptor.js.map +1 -1
- package/dist/live.d.ts +13 -1
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +56 -7
- package/dist/live.js.map +1 -1
- package/dist/mcp-runner.d.ts.map +1 -1
- package/dist/mcp-runner.js +60 -6
- package/dist/mcp-runner.js.map +1 -1
- package/dist/native-login.d.ts +10 -1
- package/dist/native-login.d.ts.map +1 -1
- package/dist/native-login.js +32 -10
- package/dist/native-login.js.map +1 -1
- package/dist/ops-commands.d.ts +5 -1
- package/dist/ops-commands.d.ts.map +1 -1
- package/dist/ops-commands.js +45 -52
- package/dist/ops-commands.js.map +1 -1
- package/dist/plan-implement-readiness.d.ts +32 -0
- package/dist/plan-implement-readiness.d.ts.map +1 -0
- package/dist/plan-implement-readiness.js +51 -0
- package/dist/plan-implement-readiness.js.map +1 -0
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +73 -20
- package/dist/plugins.js.map +1 -1
- package/dist/project-command.d.ts +15 -0
- package/dist/project-command.d.ts.map +1 -1
- package/dist/project-command.js +75 -20
- package/dist/project-command.js.map +1 -1
- package/dist/quota-command.d.ts.map +1 -1
- package/dist/quota-command.js +2 -6
- package/dist/quota-command.js.map +1 -1
- package/dist/release-command.d.ts.map +1 -1
- package/dist/release-command.js +31 -6
- package/dist/release-command.js.map +1 -1
- package/dist/release.d.ts +41 -10
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +70 -48
- package/dist/release.js.map +1 -1
- package/dist/repo-asset-authority.d.ts +89 -0
- package/dist/repo-asset-authority.d.ts.map +1 -0
- package/dist/repo-asset-authority.js +175 -0
- package/dist/repo-asset-authority.js.map +1 -0
- package/dist/retry-command.d.ts +15 -0
- package/dist/retry-command.d.ts.map +1 -1
- package/dist/retry-command.js +7 -4
- package/dist/retry-command.js.map +1 -1
- package/dist/review-command.d.ts.map +1 -1
- package/dist/review-command.js +2 -6
- package/dist/review-command.js.map +1 -1
- package/dist/reviewer-options.d.ts +11 -1
- package/dist/reviewer-options.d.ts.map +1 -1
- package/dist/reviewer-options.js +24 -9
- package/dist/reviewer-options.js.map +1 -1
- package/dist/run-options.d.ts.map +1 -1
- package/dist/run-options.js +13 -1
- package/dist/run-options.js.map +1 -1
- package/dist/settings-command.d.ts.map +1 -1
- package/dist/settings-command.js +2 -6
- package/dist/settings-command.js.map +1 -1
- package/dist/settings-service.d.ts +101 -10
- package/dist/settings-service.d.ts.map +1 -1
- package/dist/settings-service.js +201 -12
- package/dist/settings-service.js.map +1 -1
- package/dist/setup-job-store.d.ts +16 -5
- package/dist/setup-job-store.d.ts.map +1 -1
- package/dist/setup-job-store.js +24 -4
- package/dist/setup-job-store.js.map +1 -1
- package/dist/setup-jobs.d.ts +14 -4
- package/dist/setup-jobs.d.ts.map +1 -1
- package/dist/setup-jobs.js +204 -23
- package/dist/setup-jobs.js.map +1 -1
- package/dist/setup-login-inline.d.ts +71 -0
- package/dist/setup-login-inline.d.ts.map +1 -0
- package/dist/setup-login-inline.js +207 -0
- package/dist/setup-login-inline.js.map +1 -0
- package/dist/setup-login-protocol.d.ts +3 -2
- package/dist/setup-login-protocol.d.ts.map +1 -1
- package/dist/setup-login-protocol.js +16 -1
- package/dist/setup-login-protocol.js.map +1 -1
- package/dist/setup-login-runner.d.ts +9 -0
- package/dist/setup-login-runner.d.ts.map +1 -1
- package/dist/setup-login-runner.js +212 -5
- package/dist/setup-login-runner.js.map +1 -1
- package/dist/thread-delivery.d.ts.map +1 -1
- package/dist/thread-delivery.js +3 -1
- package/dist/thread-delivery.js.map +1 -1
- package/dist/thread-execution-workspace.d.ts +22 -0
- package/dist/thread-execution-workspace.d.ts.map +1 -0
- package/dist/thread-execution-workspace.js +21 -0
- package/dist/thread-execution-workspace.js.map +1 -0
- package/package.json +23 -23
package/dist/release.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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":"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"}
|
package/dist/retry-command.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/retry-command.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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":"
|
|
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;
|
|
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"}
|
package/dist/review-command.js
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
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"}
|
package/dist/reviewer-options.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
82
|
-
|
|
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 =
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAE3B,4FAA4F;AAC5F,MAAM,UAAU,sBAAsB,CACpC,KAAyB;IAEzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,GAAG,GAAqD,EAAE,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC3F,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;YAAE,SAAS;QACjC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,4BAA4B,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,OAAO;YACvB,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,wEAAwE,CAC7G,CAAC;QACJ,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,
|
|
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;
|
|
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"}
|
package/dist/run-options.js
CHANGED
|
@@ -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");
|