@ganakailabs/cloudeval-cli 0.26.1 → 0.26.2
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/{App-3VDZ4SKF.js → App-RTGF4RMI.js} +6 -6
- package/dist/{Banner-7BP5U7P4.js → Banner-H2UMEBYX.js} +2 -2
- package/dist/{Onboarding-QV5RTUCR.js → Onboarding-SAYMQ36N.js} +2 -2
- package/dist/{chunk-UUXJKGRN.js → chunk-25ILWQUX.js} +1 -1
- package/dist/{chunk-KBHRBGSX.js → chunk-3MIP274G.js} +5 -1
- package/dist/{chunk-M5XGS3ZV.js → chunk-QZTBYLF7.js} +1 -1
- package/dist/{chunk-N4REL72M.js → chunk-XHA4BH3P.js} +1 -1
- package/dist/cli.js +172 -92
- package/dist/{dist-CFLR5FML.js → dist-QLN52XKY.js} +1 -1
- package/dist/{resolveAskProject-NK435I56.js → resolveAskProject-WOMNHUYT.js} +1 -1
- package/package.json +1 -1
- package/sbom.spdx.json +1 -1
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-QSBGUI25.js";
|
|
9
9
|
import {
|
|
10
10
|
Onboarding
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XHA4BH3P.js";
|
|
12
12
|
import {
|
|
13
13
|
checkUserStatus,
|
|
14
14
|
completeActiveAssistantMessage,
|
|
@@ -35,13 +35,13 @@ import {
|
|
|
35
35
|
reduceChunk,
|
|
36
36
|
runReports,
|
|
37
37
|
streamChat
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-3MIP274G.js";
|
|
39
39
|
import {
|
|
40
40
|
Banner
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-QZTBYLF7.js";
|
|
42
42
|
import {
|
|
43
43
|
CLI_VERSION
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-25ILWQUX.js";
|
|
45
45
|
import {
|
|
46
46
|
raisedButtonStyle,
|
|
47
47
|
terminalTheme
|
|
@@ -5914,7 +5914,7 @@ var getUserIdentityFromToken = async (token) => {
|
|
|
5914
5914
|
return { name: "You" };
|
|
5915
5915
|
}
|
|
5916
5916
|
try {
|
|
5917
|
-
const { extractEmailFromToken } = await import("./dist-
|
|
5917
|
+
const { extractEmailFromToken } = await import("./dist-QLN52XKY.js");
|
|
5918
5918
|
const email = extractEmailFromToken(token) ?? void 0;
|
|
5919
5919
|
return {
|
|
5920
5920
|
name: getFirstNameForDisplay({ email }),
|
|
@@ -7350,7 +7350,7 @@ var App = ({
|
|
|
7350
7350
|
setIsLoggingIn(true);
|
|
7351
7351
|
setLoaderStep(1);
|
|
7352
7352
|
try {
|
|
7353
|
-
const { login } = await import("./dist-
|
|
7353
|
+
const { login } = await import("./dist-QLN52XKY.js");
|
|
7354
7354
|
const newToken = await login(baseUrl, {
|
|
7355
7355
|
headless: Boolean(process.env.SSH_TTY || process.env.CI)
|
|
7356
7356
|
});
|
|
@@ -1998,7 +1998,11 @@ async function* streamChat(options) {
|
|
|
1998
1998
|
assertSecureBaseUrl2(options.baseUrl);
|
|
1999
1999
|
const payload = buildPayload(options);
|
|
2000
2000
|
const apiBase = normalizeApiBase(options.baseUrl);
|
|
2001
|
-
const
|
|
2001
|
+
const streamUrl = new URL(`${apiBase}/chat/stream`);
|
|
2002
|
+
if (options.project?.id) {
|
|
2003
|
+
streamUrl.searchParams.set("project_id", options.project.id);
|
|
2004
|
+
}
|
|
2005
|
+
const url = streamUrl.toString();
|
|
2002
2006
|
const streamIdleTimeoutMs = typeof options.streamIdleTimeoutMs === "number" && Number.isFinite(options.streamIdleTimeoutMs) && options.streamIdleTimeoutMs > 0 ? options.streamIdleTimeoutMs : void 0;
|
|
2003
2007
|
const headers = withIdempotencyHeader({
|
|
2004
2008
|
"Content-Type": "application/json",
|
package/dist/cli.js
CHANGED
|
@@ -33,10 +33,10 @@ import {
|
|
|
33
33
|
normalizeApiBase,
|
|
34
34
|
redactSensitiveSecrets,
|
|
35
35
|
redactSensitiveText
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-3MIP274G.js";
|
|
37
37
|
import {
|
|
38
38
|
CLI_VERSION
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-25ILWQUX.js";
|
|
40
40
|
|
|
41
41
|
// src/runtime/prepareInk.ts
|
|
42
42
|
import fs from "fs";
|
|
@@ -1643,7 +1643,7 @@ var resolveReportProjectId = async ({
|
|
|
1643
1643
|
if (!token) {
|
|
1644
1644
|
throw new Error("No project specified. Use --project <id> for report access.");
|
|
1645
1645
|
}
|
|
1646
|
-
const resolvedWorkspace = workspace ?? await import("./dist-
|
|
1646
|
+
const resolvedWorkspace = workspace ?? await import("./dist-QLN52XKY.js").then((core) => ({
|
|
1647
1647
|
checkUserStatus: core.checkUserStatus,
|
|
1648
1648
|
getProjects: core.getProjects
|
|
1649
1649
|
}));
|
|
@@ -1672,7 +1672,7 @@ var warnIfAccessKeyFromCliOption = (options, command) => {
|
|
|
1672
1672
|
};
|
|
1673
1673
|
var resolveAuthContext = async (options, command, deps) => {
|
|
1674
1674
|
const baseUrl = await deps.resolveBaseUrl(options, command);
|
|
1675
|
-
const core = await import("./dist-
|
|
1675
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
1676
1676
|
core.assertSecureBaseUrl(baseUrl);
|
|
1677
1677
|
warnIfAccessKeyFromCliOption(options, command);
|
|
1678
1678
|
let accessKey = options.accessKey;
|
|
@@ -1758,7 +1758,7 @@ var resolveToken = async (options, baseUrl, deps, command) => {
|
|
|
1758
1758
|
if (options.accessKey) {
|
|
1759
1759
|
return options.accessKey;
|
|
1760
1760
|
}
|
|
1761
|
-
const { getAuthToken } = await import("./dist-
|
|
1761
|
+
const { getAuthToken } = await import("./dist-QLN52XKY.js");
|
|
1762
1762
|
try {
|
|
1763
1763
|
return await getAuthToken({
|
|
1764
1764
|
accessKey: options.accessKey,
|
|
@@ -1769,7 +1769,7 @@ var resolveToken = async (options, baseUrl, deps, command) => {
|
|
|
1769
1769
|
if (!canLogin) {
|
|
1770
1770
|
throw error;
|
|
1771
1771
|
}
|
|
1772
|
-
const { login } = await import("./dist-
|
|
1772
|
+
const { login } = await import("./dist-QLN52XKY.js");
|
|
1773
1773
|
process.stderr.write("Authentication required. Starting login flow...\n");
|
|
1774
1774
|
const token = await login(baseUrl, {
|
|
1775
1775
|
headless: Boolean(process.env.SSH_TTY || process.env.CLOUDEVAL_HEADLESS_LOGIN)
|
|
@@ -1935,7 +1935,7 @@ var registerReportsCommand = (program2, deps) => {
|
|
|
1935
1935
|
token,
|
|
1936
1936
|
requestedProjectId: options.project
|
|
1937
1937
|
});
|
|
1938
|
-
const core = await import("./dist-
|
|
1938
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
1939
1939
|
const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
|
|
1940
1940
|
const reports2 = await core.listReports({
|
|
1941
1941
|
baseUrl,
|
|
@@ -1957,7 +1957,7 @@ var registerReportsCommand = (program2, deps) => {
|
|
|
1957
1957
|
try {
|
|
1958
1958
|
const baseUrl = await deps.resolveBaseUrl(options, command);
|
|
1959
1959
|
const token = await resolveToken(options, baseUrl, deps, command);
|
|
1960
|
-
const core = await import("./dist-
|
|
1960
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
1961
1961
|
const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
|
|
1962
1962
|
const projectId = await resolveReportProjectId({
|
|
1963
1963
|
baseUrl,
|
|
@@ -2060,7 +2060,7 @@ var registerReportsCommand = (program2, deps) => {
|
|
|
2060
2060
|
try {
|
|
2061
2061
|
const baseUrl = await deps.resolveBaseUrl(options, command);
|
|
2062
2062
|
const token = await resolveToken(options, baseUrl, deps, command);
|
|
2063
|
-
const core = await import("./dist-
|
|
2063
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
2064
2064
|
const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
|
|
2065
2065
|
const projectId = await resolveReportProjectId({
|
|
2066
2066
|
baseUrl,
|
|
@@ -2130,7 +2130,7 @@ var registerReportsCommand = (program2, deps) => {
|
|
|
2130
2130
|
token,
|
|
2131
2131
|
requestedProjectId: options.project
|
|
2132
2132
|
});
|
|
2133
|
-
const core = await import("./dist-
|
|
2133
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
2134
2134
|
const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
|
|
2135
2135
|
const report = await core.getWafReport({
|
|
2136
2136
|
baseUrl,
|
|
@@ -2169,7 +2169,7 @@ var registerReportsCommand = (program2, deps) => {
|
|
|
2169
2169
|
token,
|
|
2170
2170
|
requestedProjectId: options.project
|
|
2171
2171
|
});
|
|
2172
|
-
const core = await import("./dist-
|
|
2172
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
2173
2173
|
const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
|
|
2174
2174
|
const report = await core.getReport({
|
|
2175
2175
|
baseUrl,
|
|
@@ -2197,7 +2197,7 @@ var registerReportsCommand = (program2, deps) => {
|
|
|
2197
2197
|
token,
|
|
2198
2198
|
requestedProjectId: options.project
|
|
2199
2199
|
});
|
|
2200
|
-
const core = await import("./dist-
|
|
2200
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
2201
2201
|
const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
|
|
2202
2202
|
const report = await core.getCostReport({
|
|
2203
2203
|
baseUrl,
|
|
@@ -2226,7 +2226,7 @@ var registerReportsCommand = (program2, deps) => {
|
|
|
2226
2226
|
token,
|
|
2227
2227
|
requestedProjectId: options.project
|
|
2228
2228
|
});
|
|
2229
|
-
const core = await import("./dist-
|
|
2229
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
2230
2230
|
const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
|
|
2231
2231
|
const report = await core.getWafReport({
|
|
2232
2232
|
baseUrl,
|
|
@@ -2464,6 +2464,16 @@ var firstRecord = (...values) => {
|
|
|
2464
2464
|
}
|
|
2465
2465
|
return void 0;
|
|
2466
2466
|
};
|
|
2467
|
+
var entriesAsNamedRecords = (value, amountKey = "amount") => {
|
|
2468
|
+
const record = firstRecord(value);
|
|
2469
|
+
if (!record) {
|
|
2470
|
+
return [];
|
|
2471
|
+
}
|
|
2472
|
+
return Object.entries(record).map(([name, amount]) => ({
|
|
2473
|
+
name,
|
|
2474
|
+
[amountKey]: amount
|
|
2475
|
+
}));
|
|
2476
|
+
};
|
|
2467
2477
|
var extractPillars = (waf) => {
|
|
2468
2478
|
const fromArray = waf?.parsed?.score?.pillars;
|
|
2469
2479
|
if (Array.isArray(fromArray)) {
|
|
@@ -2483,9 +2493,11 @@ var extractPillars = (waf) => {
|
|
|
2483
2493
|
}).filter((pillar) => pillar !== void 0);
|
|
2484
2494
|
}
|
|
2485
2495
|
const scores = firstRecord(
|
|
2496
|
+
waf?.pillar_scores,
|
|
2486
2497
|
waf?.parsed?.pillar_scores,
|
|
2487
2498
|
waf?.parsed?.score?.pillar_scores,
|
|
2488
|
-
waf?.raw?.pillar_scores
|
|
2499
|
+
waf?.raw?.pillar_scores,
|
|
2500
|
+
waf?.report?.pillar_scores
|
|
2489
2501
|
);
|
|
2490
2502
|
if (!scores) return [];
|
|
2491
2503
|
return Object.entries(scores).map(([id, score]) => ({
|
|
@@ -2538,24 +2550,32 @@ var evaluateGate = ({
|
|
|
2538
2550
|
}) => {
|
|
2539
2551
|
const gateConfig = parseGateConfig(configText);
|
|
2540
2552
|
const overallScore = numberFrom(
|
|
2553
|
+
waf?.overall_score,
|
|
2554
|
+
waf?.report?.overall_score,
|
|
2541
2555
|
waf?.parsed?.score?.overall,
|
|
2542
2556
|
waf?.parsed?.overall_score,
|
|
2543
2557
|
waf?.raw?.score
|
|
2544
2558
|
);
|
|
2545
2559
|
const highRisk = numberFrom(
|
|
2560
|
+
waf?.critical_issues_count !== void 0 || waf?.high_issues_count !== void 0 ? (numberFrom(waf?.critical_issues_count) ?? 0) + (numberFrom(waf?.high_issues_count) ?? 0) : void 0,
|
|
2561
|
+
waf?.report?.critical_issues_count !== void 0 || waf?.report?.high_issues_count !== void 0 ? (numberFrom(waf?.report?.critical_issues_count) ?? 0) + (numberFrom(waf?.report?.high_issues_count) ?? 0) : void 0,
|
|
2546
2562
|
waf?.parsed?.counts?.highRisk,
|
|
2547
2563
|
waf?.parsed?.counts?.high_count,
|
|
2548
2564
|
waf?.parsed?.highRisk
|
|
2549
2565
|
);
|
|
2550
2566
|
const monthlyCost = numberFrom(
|
|
2567
|
+
cost?.report?.processed?.total_monthly_cost,
|
|
2568
|
+
cost?.report?.processed?.totalMonthlyCost,
|
|
2551
2569
|
cost?.parsed?.totalSpend?.amount,
|
|
2552
2570
|
cost?.parsed?.total_spend?.amount,
|
|
2553
2571
|
cost?.raw?.total
|
|
2554
2572
|
);
|
|
2555
2573
|
const currency = String(
|
|
2556
|
-
cost?.parsed?.totalSpend?.currency ?? cost?.parsed?.total_spend?.currency ?? cost?.raw?.currency ?? ""
|
|
2574
|
+
cost?.report?.metadata?.currency ?? cost?.parsed?.totalSpend?.currency ?? cost?.parsed?.total_spend?.currency ?? cost?.raw?.currency ?? ""
|
|
2557
2575
|
) || void 0;
|
|
2558
2576
|
const savings = numberFrom(
|
|
2577
|
+
cost?.report?.processed?.opportunity_summary?.total_monthly_savings,
|
|
2578
|
+
cost?.report?.processed?.opportunitySummary?.totalMonthlySavings,
|
|
2559
2579
|
cost?.parsed?.estimatedSavings?.amount,
|
|
2560
2580
|
cost?.parsed?.estimated_savings?.amount
|
|
2561
2581
|
);
|
|
@@ -2593,8 +2613,8 @@ var evaluateGate = ({
|
|
|
2593
2613
|
amount: savings,
|
|
2594
2614
|
currency
|
|
2595
2615
|
},
|
|
2596
|
-
topServices: Array.isArray(cost?.parsed?.serviceGroups) ? cost.parsed.serviceGroups.slice(0, 5)
|
|
2597
|
-
recommendations: Array.isArray(cost?.parsed?.recommendations) ? cost.parsed.recommendations.slice(0, 5)
|
|
2616
|
+
topServices: (Array.isArray(cost?.parsed?.serviceGroups) ? cost.parsed.serviceGroups : entriesAsNamedRecords(cost?.report?.processed?.cost_by_service_family)).slice(0, 5),
|
|
2617
|
+
recommendations: (Array.isArray(cost?.parsed?.recommendations) ? cost.parsed.recommendations : Array.isArray(cost?.report?.processed?.optimization_recommendations) ? cost.report.processed.optimization_recommendations : []).slice(0, 5)
|
|
2598
2618
|
};
|
|
2599
2619
|
if (!gateConfig) {
|
|
2600
2620
|
return {
|
|
@@ -2744,6 +2764,62 @@ var fetchProjectById = async ({
|
|
|
2744
2764
|
});
|
|
2745
2765
|
return projects?.map(asRecord).find((project) => project.id === projectId);
|
|
2746
2766
|
};
|
|
2767
|
+
var userScopedPath = (pathValue, userId) => {
|
|
2768
|
+
if (!userId) {
|
|
2769
|
+
return pathValue;
|
|
2770
|
+
}
|
|
2771
|
+
const [pathPart, queryPart = ""] = pathValue.split("?");
|
|
2772
|
+
const query = new URLSearchParams(queryPart);
|
|
2773
|
+
query.set("user_id", userId);
|
|
2774
|
+
const suffix = query.toString();
|
|
2775
|
+
return suffix ? `${pathPart}?${suffix}` : pathPart;
|
|
2776
|
+
};
|
|
2777
|
+
var sleep2 = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
2778
|
+
var fetchReviewReports = async ({
|
|
2779
|
+
baseUrl,
|
|
2780
|
+
token,
|
|
2781
|
+
projectId,
|
|
2782
|
+
userId
|
|
2783
|
+
}) => {
|
|
2784
|
+
const [cost, waf, preload] = await Promise.all([
|
|
2785
|
+
safeFetch({
|
|
2786
|
+
baseUrl,
|
|
2787
|
+
authToken: token,
|
|
2788
|
+
path: userScopedPath(`/cost-reports/${projectId}/full`, userId)
|
|
2789
|
+
}),
|
|
2790
|
+
safeFetch({
|
|
2791
|
+
baseUrl,
|
|
2792
|
+
authToken: token,
|
|
2793
|
+
path: userScopedPath(`/well-architected-reports/${projectId}/full`, userId)
|
|
2794
|
+
}),
|
|
2795
|
+
userId ? safeFetch({
|
|
2796
|
+
baseUrl,
|
|
2797
|
+
authToken: token,
|
|
2798
|
+
path: `/reports/preload/${encodeURIComponent(projectId)}?user_id=${encodeURIComponent(userId)}&include_payload=true`
|
|
2799
|
+
}) : Promise.resolve(void 0)
|
|
2800
|
+
]);
|
|
2801
|
+
return { cost, waf, preload };
|
|
2802
|
+
};
|
|
2803
|
+
var waitForReviewReports = async ({
|
|
2804
|
+
baseUrl,
|
|
2805
|
+
token,
|
|
2806
|
+
projectId,
|
|
2807
|
+
userId,
|
|
2808
|
+
wait,
|
|
2809
|
+
pollIntervalMs,
|
|
2810
|
+
waitTimeoutMs
|
|
2811
|
+
}) => {
|
|
2812
|
+
const startedAt = Date.now();
|
|
2813
|
+
let latest = await fetchReviewReports({ baseUrl, token, projectId, userId });
|
|
2814
|
+
while (wait && (!latest.cost || !latest.waf)) {
|
|
2815
|
+
if (Date.now() - startedAt > waitTimeoutMs) {
|
|
2816
|
+
return latest;
|
|
2817
|
+
}
|
|
2818
|
+
await sleep2(pollIntervalMs);
|
|
2819
|
+
latest = await fetchReviewReports({ baseUrl, token, projectId, userId });
|
|
2820
|
+
}
|
|
2821
|
+
return latest;
|
|
2822
|
+
};
|
|
2747
2823
|
var buildAiSummaryPrompt = (data) => [
|
|
2748
2824
|
"Write a concise CloudEval pull request review summary in Markdown.",
|
|
2749
2825
|
"Focus on gate status, Well-Architected posture, cost posture, and security/operational risks.",
|
|
@@ -2754,9 +2830,9 @@ var buildAiSummaryPrompt = (data) => [
|
|
|
2754
2830
|
`Ref: ${data.ref ?? "unknown"}`,
|
|
2755
2831
|
`Commit: ${data.commitSha ?? "unknown"}`,
|
|
2756
2832
|
`Gate: ${String(data.gate?.status ?? "unknown").toUpperCase()}`,
|
|
2757
|
-
`Well-Architected score: ${data.gate?.overallScore ?? "unknown"}`,
|
|
2758
|
-
`High-risk findings: ${data.gate?.highRisk ?? "unknown"}`,
|
|
2759
|
-
`Monthly cost: ${data.gate?.monthlyCost ?? "unknown"}`,
|
|
2833
|
+
`Well-Architected score: ${data.gate?.wellArchitected?.overall?.score ?? data.gate?.overallScore ?? "unknown"}`,
|
|
2834
|
+
`High-risk findings: ${data.gate?.wellArchitected?.risks?.high ?? data.gate?.highRisk ?? "unknown"}`,
|
|
2835
|
+
`Monthly cost: ${data.gate?.cost?.monthly?.amount ?? data.gate?.monthlyCost ?? "unknown"}`,
|
|
2760
2836
|
`Validation: PSRule failed ${data.gate?.validation?.psRule?.failed ?? "unknown"}, unit tests failed ${data.gate?.validation?.unitTests?.failed ?? "unknown"}`,
|
|
2761
2837
|
Array.isArray(data.gate?.failures) && data.gate.failures.length ? `Gate failures: ${data.gate.failures.join("; ")}` : "Gate failures: none reported"
|
|
2762
2838
|
].join("\n");
|
|
@@ -2770,7 +2846,7 @@ var generateAiSummary = async ({
|
|
|
2770
2846
|
agentProfileId,
|
|
2771
2847
|
data
|
|
2772
2848
|
}) => {
|
|
2773
|
-
const core = await import("./dist-
|
|
2849
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
2774
2850
|
const threadId = `review-${data.projectId}-${Date.now()}`;
|
|
2775
2851
|
let markdown = "";
|
|
2776
2852
|
for await (const chunk of core.streamChat({
|
|
@@ -2800,7 +2876,7 @@ var generateAiSummary = async ({
|
|
|
2800
2876
|
...mode === "agent" ? { agentProfileId: agentProfileId ?? "architecture" } : {},
|
|
2801
2877
|
completeAfterResponse: true,
|
|
2802
2878
|
responseCompletionGraceMs: 250,
|
|
2803
|
-
streamIdleTimeoutMs:
|
|
2879
|
+
streamIdleTimeoutMs: 12e4
|
|
2804
2880
|
})) {
|
|
2805
2881
|
const content = chunk?.content;
|
|
2806
2882
|
if (chunk.type === "responding" && typeof content === "string") {
|
|
@@ -2896,10 +2972,17 @@ var registerReviewCommand = (program2, deps) => {
|
|
|
2896
2972
|
body: commitSha ? { commit_sha: commitSha } : {},
|
|
2897
2973
|
idempotencyKey: `cloudeval-review-${projectId}-${commitSha ?? "head"}`
|
|
2898
2974
|
});
|
|
2975
|
+
const project = await fetchProjectById({
|
|
2976
|
+
baseUrl: context.baseUrl,
|
|
2977
|
+
token: context.token,
|
|
2978
|
+
projectId
|
|
2979
|
+
});
|
|
2980
|
+
const projectUserId = typeof project?.user_id === "string" && project.user_id.trim() ? project.user_id : void 0;
|
|
2981
|
+
const scopedUserId = context.user?.id ?? projectUserId;
|
|
2899
2982
|
const finalStatus = options.wait === false ? void 0 : extractJobId2(sync) ? await waitForJob({
|
|
2900
2983
|
baseUrl: context.baseUrl,
|
|
2901
2984
|
token: context.token,
|
|
2902
|
-
userId:
|
|
2985
|
+
userId: scopedUserId,
|
|
2903
2986
|
projectId,
|
|
2904
2987
|
jobId: extractJobId2(sync),
|
|
2905
2988
|
pollIntervalMs: parsePositiveInteger(
|
|
@@ -2913,29 +2996,26 @@ var registerReviewCommand = (program2, deps) => {
|
|
|
2913
2996
|
9e5
|
|
2914
2997
|
)
|
|
2915
2998
|
}) : void 0;
|
|
2916
|
-
const [cost, waf, configText] = await Promise.all([
|
|
2917
|
-
|
|
2999
|
+
const [{ cost, waf, preload }, configText] = await Promise.all([
|
|
3000
|
+
waitForReviewReports({
|
|
2918
3001
|
baseUrl: context.baseUrl,
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
3002
|
+
token: context.token,
|
|
3003
|
+
projectId,
|
|
3004
|
+
userId: scopedUserId,
|
|
3005
|
+
wait: options.wait !== false,
|
|
3006
|
+
pollIntervalMs: parsePositiveInteger(
|
|
3007
|
+
options.pollInterval,
|
|
3008
|
+
"--poll-interval",
|
|
3009
|
+
5e3
|
|
3010
|
+
),
|
|
3011
|
+
waitTimeoutMs: parsePositiveInteger(
|
|
3012
|
+
options.waitTimeout,
|
|
3013
|
+
"--wait-timeout",
|
|
3014
|
+
9e5
|
|
3015
|
+
)
|
|
2926
3016
|
}),
|
|
2927
3017
|
readConfigText(cwd, options)
|
|
2928
3018
|
]);
|
|
2929
|
-
const project = await fetchProjectById({
|
|
2930
|
-
baseUrl: context.baseUrl,
|
|
2931
|
-
token: context.token,
|
|
2932
|
-
projectId
|
|
2933
|
-
});
|
|
2934
|
-
const preload = context.user?.id ? await safeFetch({
|
|
2935
|
-
baseUrl: context.baseUrl,
|
|
2936
|
-
authToken: context.token,
|
|
2937
|
-
path: `/reports/preload/${encodeURIComponent(projectId)}?user_id=${encodeURIComponent(context.user.id)}&include_payload=true`
|
|
2938
|
-
}) : void 0;
|
|
2939
3019
|
const data = {
|
|
2940
3020
|
projectId,
|
|
2941
3021
|
repo,
|
|
@@ -4326,7 +4406,7 @@ var runChatRecipe = async (recipe, prompt2, options, command, deps) => {
|
|
|
4326
4406
|
});
|
|
4327
4407
|
progressWriter.write({ type: "auth", step: "auth", message: "Resolving authentication" });
|
|
4328
4408
|
const context = await resolveAuthContext(options, command, deps);
|
|
4329
|
-
const core = await import("./dist-
|
|
4409
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
4330
4410
|
progressWriter.write({
|
|
4331
4411
|
type: "request",
|
|
4332
4412
|
step: "project",
|
|
@@ -5795,7 +5875,7 @@ var configureDiagramExportCommand = (command, deps) => addAuthOptions(command, d
|
|
|
5795
5875
|
const context = requireAuthUser(
|
|
5796
5876
|
await resolveAuthContext(options, actionCommand, deps)
|
|
5797
5877
|
);
|
|
5798
|
-
const core = await import("./dist-
|
|
5878
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
5799
5879
|
const projects = await core.getProjects(
|
|
5800
5880
|
context.baseUrl,
|
|
5801
5881
|
context.token,
|
|
@@ -5872,7 +5952,7 @@ var registerProjectsCommand = (program2, deps) => {
|
|
|
5872
5952
|
addCommon(addAuthOptions(projects.command("list").description("List projects"), deps.defaultBaseUrl)).action(async (options, command) => {
|
|
5873
5953
|
try {
|
|
5874
5954
|
const context = await resolveAuthContext(options, command, deps);
|
|
5875
|
-
const core = await import("./dist-
|
|
5955
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
5876
5956
|
const data = await listProjectsForContext(core, context);
|
|
5877
5957
|
const url = buildFrontendUrl({ baseUrl: frontendBase(context, options), target: "projects" });
|
|
5878
5958
|
await writeProjectListOutput({ data, options, frontendUrl: url });
|
|
@@ -5890,7 +5970,7 @@ var registerProjectsCommand = (program2, deps) => {
|
|
|
5890
5970
|
).action(async (id, options, command) => {
|
|
5891
5971
|
try {
|
|
5892
5972
|
const context = await resolveAuthContext(options, command, deps);
|
|
5893
|
-
const core = await import("./dist-
|
|
5973
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
5894
5974
|
const list = await listProjectsForContext(core, context);
|
|
5895
5975
|
const data = list.find((project) => project.id === id);
|
|
5896
5976
|
if (!data) {
|
|
@@ -5955,7 +6035,7 @@ var registerProjectsCommand = (program2, deps) => {
|
|
|
5955
6035
|
try {
|
|
5956
6036
|
assertSingleProjectSource(options);
|
|
5957
6037
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
5958
|
-
const core = await import("./dist-
|
|
6038
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
5959
6039
|
const template = await fileBlob(options.templateFile);
|
|
5960
6040
|
const parameters = await fileBlob(options.parametersFile);
|
|
5961
6041
|
const workspace = options.workspaceDir ? await collectWorkspaceFiles(options.workspaceDir, options) : void 0;
|
|
@@ -6084,7 +6164,7 @@ var registerConnectionsCommand = (program2, deps) => {
|
|
|
6084
6164
|
addCommon2(addAuthOptions(connections.command("list").description("List connections"), deps.defaultBaseUrl)).action(async (options, command) => {
|
|
6085
6165
|
try {
|
|
6086
6166
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6087
|
-
const core = await import("./dist-
|
|
6167
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6088
6168
|
const data = await core.listConnections({
|
|
6089
6169
|
baseUrl: context.baseUrl,
|
|
6090
6170
|
authToken: context.token,
|
|
@@ -6109,7 +6189,7 @@ var registerConnectionsCommand = (program2, deps) => {
|
|
|
6109
6189
|
).action(async (id, options, command) => {
|
|
6110
6190
|
try {
|
|
6111
6191
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6112
|
-
const core = await import("./dist-
|
|
6192
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6113
6193
|
const data = await core.getConnection({
|
|
6114
6194
|
baseUrl: context.baseUrl,
|
|
6115
6195
|
authToken: context.token,
|
|
@@ -6447,7 +6527,7 @@ var checkoutReturnUrl = (context, options) => options.returnTo || billingUrl(con
|
|
|
6447
6527
|
var runTopUpCheckout = async (commandName, packId, options, command, deps) => {
|
|
6448
6528
|
try {
|
|
6449
6529
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6450
|
-
const core = await import("./dist-
|
|
6530
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6451
6531
|
const returnTo = checkoutReturnUrl(context, options);
|
|
6452
6532
|
const session = await core.createTopUpCheckoutSession({
|
|
6453
6533
|
baseUrl: context.baseUrl,
|
|
@@ -6487,7 +6567,7 @@ var registerBillingCommands = (program2, deps) => {
|
|
|
6487
6567
|
).action(async (options, command) => {
|
|
6488
6568
|
try {
|
|
6489
6569
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6490
|
-
const core = await import("./dist-
|
|
6570
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6491
6571
|
const range = rangeToDates("30d");
|
|
6492
6572
|
const [entitlement, usageSummary] = await Promise.all([
|
|
6493
6573
|
core.getBillingEntitlement({
|
|
@@ -6517,7 +6597,7 @@ var registerBillingCommands = (program2, deps) => {
|
|
|
6517
6597
|
addCommon3(addAuthOptions(billing.command("summary").description("Show billing summary"), deps.defaultBaseUrl)).action(async (options, command) => {
|
|
6518
6598
|
try {
|
|
6519
6599
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6520
|
-
const core = await import("./dist-
|
|
6600
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6521
6601
|
const range = rangeToDates("30d");
|
|
6522
6602
|
const [entitlement, subscriptionStatus, usageSummary] = await Promise.all([
|
|
6523
6603
|
core.getBillingEntitlement({ baseUrl: context.baseUrl, authToken: context.token }),
|
|
@@ -6553,7 +6633,7 @@ var registerBillingCommands = (program2, deps) => {
|
|
|
6553
6633
|
addCommon3(addAuthOptions(billing.command("plans").description("Show billing plans"), deps.defaultBaseUrl)).action(async (options, command) => {
|
|
6554
6634
|
try {
|
|
6555
6635
|
const context = await resolveAuthContext(options, command, deps);
|
|
6556
|
-
const core = await import("./dist-
|
|
6636
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6557
6637
|
const data = await core.getBillingConfig({ baseUrl: context.baseUrl, authToken: context.token });
|
|
6558
6638
|
const url = billingUrl(context, { ...options, tab: "plans" });
|
|
6559
6639
|
await write("billing plans", data, options, url);
|
|
@@ -6565,7 +6645,7 @@ var registerBillingCommands = (program2, deps) => {
|
|
|
6565
6645
|
addCommon3(addAuthOptions(billing.command("usage").description("Show billing usage summary"), deps.defaultBaseUrl)).option("--range <range>", "Usage range: 7d, 30d, 90d, all", "30d").option("--start-at <iso>", "Start timestamp").option("--end-at <iso>", "End timestamp").option("--granularity <value>", "Granularity: hour, day, month", "day").option("--action-type <type>", "Action type filter").option("--model <name>", "Model filter").option("--outcome <outcome>", "Outcome filter").option("--charge-status <status>", "Charge status filter").action(async (options, command) => {
|
|
6566
6646
|
try {
|
|
6567
6647
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6568
|
-
const core = await import("./dist-
|
|
6648
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6569
6649
|
const range = rangeToDates(options.range);
|
|
6570
6650
|
const data = await core.getBillingUsageSummary({
|
|
6571
6651
|
baseUrl: context.baseUrl,
|
|
@@ -6588,7 +6668,7 @@ var registerBillingCommands = (program2, deps) => {
|
|
|
6588
6668
|
addCommon3(addAuthOptions(billing.command("ledger").description("Show billing ledger"), deps.defaultBaseUrl)).option("--range <range>", "Usage range: 7d, 30d, 90d, all", "30d").option("--start-at <iso>", "Start timestamp").option("--end-at <iso>", "End timestamp").option("--action-type <type>", "Action type filter").option("--model <name>", "Model filter").option("--outcome <outcome>", "Outcome filter").option("--charge-status <status>", "Charge status filter").option("--limit <n>", "Page size", "25").option("--cursor <cursor>", "Pagination cursor").action(async (options, command) => {
|
|
6589
6669
|
try {
|
|
6590
6670
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6591
|
-
const core = await import("./dist-
|
|
6671
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6592
6672
|
const range = rangeToDates(options.range);
|
|
6593
6673
|
const data = await core.getBillingUsageLedger({
|
|
6594
6674
|
baseUrl: context.baseUrl,
|
|
@@ -6616,7 +6696,7 @@ var registerBillingCommands = (program2, deps) => {
|
|
|
6616
6696
|
addCommon3(addAuthOptions(billing.command(name).description(`Show billing ${name}`), deps.defaultBaseUrl)).option("--limit <n>", "Result limit", "25").action(async (options, command) => {
|
|
6617
6697
|
try {
|
|
6618
6698
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6619
|
-
const core = await import("./dist-
|
|
6699
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6620
6700
|
const data = await core[getter]({
|
|
6621
6701
|
baseUrl: context.baseUrl,
|
|
6622
6702
|
authToken: context.token,
|
|
@@ -6634,7 +6714,7 @@ var registerBillingCommands = (program2, deps) => {
|
|
|
6634
6714
|
addCommon3(addAuthOptions(topups, deps.defaultBaseUrl)).option("--limit <n>", "Result limit", "25").action(async (options, command) => {
|
|
6635
6715
|
try {
|
|
6636
6716
|
const context = requireAuthUser(await resolveAuthContext(options, command, deps));
|
|
6637
|
-
const core = await import("./dist-
|
|
6717
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
6638
6718
|
const data = await core.getTopUpPacks({
|
|
6639
6719
|
baseUrl: context.baseUrl,
|
|
6640
6720
|
authToken: context.token
|
|
@@ -6906,7 +6986,7 @@ var validateTemplate = async (input) => fetchCloudEvalJson({
|
|
|
6906
6986
|
userId: input.userId
|
|
6907
6987
|
})
|
|
6908
6988
|
});
|
|
6909
|
-
var
|
|
6989
|
+
var sleep3 = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
6910
6990
|
var recordValue = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
6911
6991
|
var stringField = (value, field) => {
|
|
6912
6992
|
const raw = value?.[field];
|
|
@@ -7087,7 +7167,7 @@ var waitForTemplateValidationResult = async (input) => {
|
|
|
7087
7167
|
`Template validation job ${jobId} did not finish within ${waitTimeoutMs}ms.`
|
|
7088
7168
|
);
|
|
7089
7169
|
}
|
|
7090
|
-
await
|
|
7170
|
+
await sleep3(Math.min(pollIntervalMs, Math.max(1, deadline - Date.now())));
|
|
7091
7171
|
}
|
|
7092
7172
|
if (!isSuccessfulJobStatus(status)) {
|
|
7093
7173
|
throw new Error(
|
|
@@ -9269,7 +9349,7 @@ var isTerminalJobStatus4 = (value) => {
|
|
|
9269
9349
|
"canceled"
|
|
9270
9350
|
].includes(status);
|
|
9271
9351
|
};
|
|
9272
|
-
var
|
|
9352
|
+
var sleep4 = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
9273
9353
|
var writeHeaderFile = async (outputPath, headers) => {
|
|
9274
9354
|
await fs9.mkdir(path6.dirname(outputPath), { recursive: true });
|
|
9275
9355
|
const text = Object.entries(headers).sort(([left], [right]) => left.localeCompare(right)).map(([key, value]) => `${key}: ${value}`).join("\n");
|
|
@@ -9305,7 +9385,7 @@ var reportsFrontendUrl = (config, input) => buildFrontendUrl({
|
|
|
9305
9385
|
reportVerbosity: input.reportVerbosity
|
|
9306
9386
|
});
|
|
9307
9387
|
var resolveAuth = async (config, options = {}) => {
|
|
9308
|
-
const core = await import("./dist-
|
|
9388
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
9309
9389
|
core.assertSecureBaseUrl(config.baseUrl);
|
|
9310
9390
|
let token;
|
|
9311
9391
|
try {
|
|
@@ -9401,7 +9481,7 @@ var assertModelAvailable = async (config, token) => {
|
|
|
9401
9481
|
if (!config.model) {
|
|
9402
9482
|
return;
|
|
9403
9483
|
}
|
|
9404
|
-
const core = await import("./dist-
|
|
9484
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
9405
9485
|
try {
|
|
9406
9486
|
const response = await fetch(
|
|
9407
9487
|
`${core.normalizeApiBase(config.baseUrl)}/models`,
|
|
@@ -9449,7 +9529,7 @@ var waitForReportJobs2 = async (input) => {
|
|
|
9449
9529
|
if (isTerminalJobStatus4(lastStatus)) {
|
|
9450
9530
|
break;
|
|
9451
9531
|
}
|
|
9452
|
-
await
|
|
9532
|
+
await sleep4(input.pollIntervalMs);
|
|
9453
9533
|
}
|
|
9454
9534
|
finalStatuses.push(lastStatus);
|
|
9455
9535
|
}
|
|
@@ -9658,7 +9738,7 @@ var buildToolHandlers = (serverOptions) => {
|
|
|
9658
9738
|
});
|
|
9659
9739
|
handlers.set("agent_profiles_list", async (args) => {
|
|
9660
9740
|
const config = await resolveInvocationConfig(serverOptions, args);
|
|
9661
|
-
const core = await import("./dist-
|
|
9741
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
9662
9742
|
const data = await listProfilesForDiscovery(core, config.baseUrl);
|
|
9663
9743
|
return withEnvelope({
|
|
9664
9744
|
command: "agents list",
|
|
@@ -9671,7 +9751,7 @@ var buildToolHandlers = (serverOptions) => {
|
|
|
9671
9751
|
throw new Error("profileId is required.");
|
|
9672
9752
|
}
|
|
9673
9753
|
const config = await resolveInvocationConfig(serverOptions, args);
|
|
9674
|
-
const core = await import("./dist-
|
|
9754
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
9675
9755
|
const data = await getProfileForDiscovery(core, config.baseUrl, profileId);
|
|
9676
9756
|
return withEnvelope({
|
|
9677
9757
|
command: "agents show",
|
|
@@ -10308,7 +10388,7 @@ var buildToolHandlers = (serverOptions) => {
|
|
|
10308
10388
|
});
|
|
10309
10389
|
handlers.set("auth_status", async (args) => {
|
|
10310
10390
|
const config = await resolveInvocationConfig(serverOptions, args);
|
|
10311
|
-
const core = await import("./dist-
|
|
10391
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
10312
10392
|
const data = await core.getAuthStatus(config.baseUrl, { validate: true });
|
|
10313
10393
|
return withEnvelope({
|
|
10314
10394
|
command: "auth status",
|
|
@@ -10317,7 +10397,7 @@ var buildToolHandlers = (serverOptions) => {
|
|
|
10317
10397
|
});
|
|
10318
10398
|
handlers.set("status", async (args) => {
|
|
10319
10399
|
const config = await resolveInvocationConfig(serverOptions, args);
|
|
10320
|
-
const core = await import("./dist-
|
|
10400
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
10321
10401
|
const auth = await core.getAuthStatus(config.baseUrl, { validate: true });
|
|
10322
10402
|
return withEnvelope({
|
|
10323
10403
|
command: "status",
|
|
@@ -10348,7 +10428,7 @@ var buildToolHandlers = (serverOptions) => {
|
|
|
10348
10428
|
}
|
|
10349
10429
|
];
|
|
10350
10430
|
try {
|
|
10351
|
-
const core = await import("./dist-
|
|
10431
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
10352
10432
|
core.assertSecureBaseUrl(config.baseUrl);
|
|
10353
10433
|
checks.push({
|
|
10354
10434
|
id: "base-url-secure",
|
|
@@ -10868,7 +10948,7 @@ var buildToolHandlers = (serverOptions) => {
|
|
|
10868
10948
|
} catch {
|
|
10869
10949
|
token = config.accessKey;
|
|
10870
10950
|
}
|
|
10871
|
-
const core = await import("./dist-
|
|
10951
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
10872
10952
|
const data = await core.getBillingConfig({
|
|
10873
10953
|
baseUrl: config.baseUrl,
|
|
10874
10954
|
authToken: token
|
|
@@ -11722,7 +11802,7 @@ var registerCapabilitiesCommand = (program2, deps) => {
|
|
|
11722
11802
|
warnIfAccessKeyFromCliOption(options, command);
|
|
11723
11803
|
let data = capabilities;
|
|
11724
11804
|
if (options.live) {
|
|
11725
|
-
const core = await import("./dist-
|
|
11805
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
11726
11806
|
const baseUrl = await deps.resolveBaseUrl(options, command);
|
|
11727
11807
|
const accessKey = options.accessKeyStdin ? await deps.readStdinValue() : options.accessKey;
|
|
11728
11808
|
const token = await core.getAuthToken({ accessKey, baseUrl });
|
|
@@ -11860,7 +11940,7 @@ var writeCredentialOutput = async (input) => {
|
|
|
11860
11940
|
};
|
|
11861
11941
|
var resolveCoreAuth = async (options, command, deps) => {
|
|
11862
11942
|
const context = await resolveAuthContext(options, command, deps);
|
|
11863
|
-
const core = await import("./dist-
|
|
11943
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
11864
11944
|
return { ...context, core };
|
|
11865
11945
|
};
|
|
11866
11946
|
var parseCapabilities = (value) => value?.split(",").map((item) => item.trim()).filter(Boolean);
|
|
@@ -12177,7 +12257,7 @@ var registerAgentsCommand = (program2, deps) => {
|
|
|
12177
12257
|
const agents = program2.command("agents").description("CloudEval Agent Profile utilities");
|
|
12178
12258
|
addAgentOutputOptions(agents.command("list").description("List Agent Profiles"), deps).action(async (options, command) => {
|
|
12179
12259
|
const baseUrl = await deps.resolveBaseUrl(options, command);
|
|
12180
|
-
const core = await import("./dist-
|
|
12260
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
12181
12261
|
core.assertSecureBaseUrl(baseUrl);
|
|
12182
12262
|
const data = await listProfilesForDiscovery2(core, baseUrl);
|
|
12183
12263
|
await writeProfiles({
|
|
@@ -12193,7 +12273,7 @@ var registerAgentsCommand = (program2, deps) => {
|
|
|
12193
12273
|
deps
|
|
12194
12274
|
).action(async (profileId, options, command) => {
|
|
12195
12275
|
const baseUrl = await deps.resolveBaseUrl(options, command);
|
|
12196
|
-
const core = await import("./dist-
|
|
12276
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
12197
12277
|
core.assertSecureBaseUrl(baseUrl);
|
|
12198
12278
|
const data = await getProfileForDiscovery2(core, baseUrl, profileId);
|
|
12199
12279
|
await writeProfiles({
|
|
@@ -12212,7 +12292,7 @@ var registerAgentsCommand = (program2, deps) => {
|
|
|
12212
12292
|
const cliProfile = getActiveConfigProfile(command);
|
|
12213
12293
|
const cliConfig = await loadCliConfig(cliProfile);
|
|
12214
12294
|
const auth = await resolveAuthContext(options, command, deps);
|
|
12215
|
-
const core = await import("./dist-
|
|
12295
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
12216
12296
|
const profileResponse = await core.getAgentProfile({
|
|
12217
12297
|
baseUrl: auth.baseUrl,
|
|
12218
12298
|
authToken: auth.token,
|
|
@@ -12710,7 +12790,7 @@ var registerDiagnosticsCommands = (program2, deps) => {
|
|
|
12710
12790
|
const baseUrl = await deps.resolveBaseUrl(options, command);
|
|
12711
12791
|
const profile = getActiveConfigProfile(command);
|
|
12712
12792
|
const config = await loadCliConfig(profile);
|
|
12713
|
-
const core = await import("./dist-
|
|
12793
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
12714
12794
|
const auth = await core.getAuthStatus(baseUrl, { validate: true });
|
|
12715
12795
|
if (options.format === "text" || !options.format) {
|
|
12716
12796
|
process.stdout.write(
|
|
@@ -12760,7 +12840,7 @@ var registerDiagnosticsCommands = (program2, deps) => {
|
|
|
12760
12840
|
detail: getCliConfigPath(profile)
|
|
12761
12841
|
});
|
|
12762
12842
|
try {
|
|
12763
|
-
const core = await import("./dist-
|
|
12843
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
12764
12844
|
core.assertSecureBaseUrl(baseUrl);
|
|
12765
12845
|
checks.push({
|
|
12766
12846
|
id: "base-url-secure",
|
|
@@ -12860,7 +12940,7 @@ var resolveToken2 = async (options, deps, baseUrl, command) => {
|
|
|
12860
12940
|
return options.accessKey;
|
|
12861
12941
|
}
|
|
12862
12942
|
try {
|
|
12863
|
-
const core = await import("./dist-
|
|
12943
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
12864
12944
|
return await core.getAuthToken({
|
|
12865
12945
|
baseUrl
|
|
12866
12946
|
});
|
|
@@ -12944,7 +13024,7 @@ var registerModelsCommand = (program2, deps) => {
|
|
|
12944
13024
|
let source = "fallback";
|
|
12945
13025
|
let modelList = fallbackModels;
|
|
12946
13026
|
try {
|
|
12947
|
-
const core = await import("./dist-
|
|
13027
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
12948
13028
|
const response = await fetch(`${core.normalizeApiBase(baseUrl)}/models`, {
|
|
12949
13029
|
headers: {
|
|
12950
13030
|
Accept: "application/json",
|
|
@@ -14123,7 +14203,7 @@ var uninstallCompletionScript = async (shell) => {
|
|
|
14123
14203
|
var runInteractiveLoginOnboarding = async (baseUrl, token) => {
|
|
14124
14204
|
const [{ render }, { Onboarding }] = await Promise.all([
|
|
14125
14205
|
import("ink"),
|
|
14126
|
-
import("./Onboarding-
|
|
14206
|
+
import("./Onboarding-SAYMQ36N.js")
|
|
14127
14207
|
]);
|
|
14128
14208
|
await new Promise((resolve) => {
|
|
14129
14209
|
let app;
|
|
@@ -14445,7 +14525,7 @@ var resolveBaseUrl = async (options, command) => {
|
|
|
14445
14525
|
});
|
|
14446
14526
|
}
|
|
14447
14527
|
try {
|
|
14448
|
-
const { getAuthStatus } = await import("./dist-
|
|
14528
|
+
const { getAuthStatus } = await import("./dist-QLN52XKY.js");
|
|
14449
14529
|
const status = await getAuthStatus();
|
|
14450
14530
|
const storedBaseUrl = status.baseUrl;
|
|
14451
14531
|
if (storedBaseUrl && shouldUseStoredBaseUrl(storedBaseUrl)) {
|
|
@@ -14519,7 +14599,7 @@ program.command("login").description("Authenticate with Cloudeval").option(
|
|
|
14519
14599
|
checkUserStatus,
|
|
14520
14600
|
ensurePlaygroundProject,
|
|
14521
14601
|
login
|
|
14522
|
-
} = await import("./dist-
|
|
14602
|
+
} = await import("./dist-QLN52XKY.js");
|
|
14523
14603
|
assertSecureBaseUrl(options.baseUrl);
|
|
14524
14604
|
const headlessEnvironment = isHeadlessEnvironment();
|
|
14525
14605
|
const headlessLogin = options.headless || headlessEnvironment;
|
|
@@ -14594,7 +14674,7 @@ program.command("logout").description("Log out and clear stored authentication s
|
|
|
14594
14674
|
DEFAULT_BASE_URL
|
|
14595
14675
|
).option("--all-devices", "Revoke sessions on all devices", false).action(async (options) => {
|
|
14596
14676
|
try {
|
|
14597
|
-
const { assertSecureBaseUrl, logout } = await import("./dist-
|
|
14677
|
+
const { assertSecureBaseUrl, logout } = await import("./dist-QLN52XKY.js");
|
|
14598
14678
|
assertSecureBaseUrl(options.baseUrl);
|
|
14599
14679
|
const result = await logout({
|
|
14600
14680
|
baseUrl: options.baseUrl,
|
|
@@ -14628,7 +14708,7 @@ authCommand.command("status").description("Show current authentication status").
|
|
|
14628
14708
|
DEFAULT_BASE_URL
|
|
14629
14709
|
).option("--format <format>", "Output format: text, json, ndjson, markdown", "text").option("--show-sensitive-ids", "Show full account/session identifiers in command output", false).option("-v, --verbose", "Enable verbose logging and show full non-token identifiers", false).action(async (options, command) => {
|
|
14630
14710
|
try {
|
|
14631
|
-
const { assertSecureBaseUrl, getAuthStatus } = await import("./dist-
|
|
14711
|
+
const { assertSecureBaseUrl, getAuthStatus } = await import("./dist-QLN52XKY.js");
|
|
14632
14712
|
const effectiveBaseUrl = await resolveBaseUrl(options, command);
|
|
14633
14713
|
assertSecureBaseUrl(effectiveBaseUrl);
|
|
14634
14714
|
const status = await getAuthStatus(effectiveBaseUrl, { validate: true });
|
|
@@ -14845,10 +14925,10 @@ program.command("tui").description("Open the CloudEval Terminal UI").option(
|
|
|
14845
14925
|
"Access key for automation",
|
|
14846
14926
|
process.env.CLOUDEVAL_ACCESS_KEY
|
|
14847
14927
|
).option("--access-key-stdin", "Read access key from stdin (recommended for automation)", false).option("--model <name>", "Model name").option("--debug", "Log raw chunks", false).option("--health-check", "Enable health check (disabled by default)").option("--no-banner", "Disable ASCII banner").option("--animate", "Enable TUI animations (default)").option("--no-anim", "Disable TUI animations").option("-v, --verbose", "Enable verbose logging", false).action(async (options, command) => {
|
|
14848
|
-
const { assertSecureBaseUrl } = await import("./dist-
|
|
14928
|
+
const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
|
|
14849
14929
|
const [{ render }, { App }] = await Promise.all([
|
|
14850
14930
|
import("ink"),
|
|
14851
|
-
import("./App-
|
|
14931
|
+
import("./App-RTGF4RMI.js")
|
|
14852
14932
|
]);
|
|
14853
14933
|
const baseUrl = await resolveBaseUrl(options, command);
|
|
14854
14934
|
assertSecureBaseUrl(baseUrl);
|
|
@@ -14903,10 +14983,10 @@ program.command("chat").description("Start an interactive chat session").option(
|
|
|
14903
14983
|
"Access key for automation",
|
|
14904
14984
|
process.env.CLOUDEVAL_ACCESS_KEY
|
|
14905
14985
|
).option("--access-key-stdin", "Read access key from stdin (recommended for automation)", false).option("--conversation <id>", "Conversation/thread id to resume").option("--continue", "Resume the most recent local chat session", false).option("--resume <id-or-title>", "Resume a local chat session by thread id or title").option("--model <name>", "Model name").option("--mode <mode>", "Initial chat mode: ask, agent").option("--debug", "Log raw chunks", false).option("--health-check", "Enable health check (disabled by default)").option("--no-banner", "Disable ASCII banner").option("--animate", "Enable TUI animations (default)").option("--no-anim", "Disable TUI animations").option("-v, --verbose", "Enable verbose logging", false).action(async (options, command) => {
|
|
14906
|
-
const { assertSecureBaseUrl } = await import("./dist-
|
|
14986
|
+
const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
|
|
14907
14987
|
const [{ render }, { App }] = await Promise.all([
|
|
14908
14988
|
import("ink"),
|
|
14909
|
-
import("./App-
|
|
14989
|
+
import("./App-RTGF4RMI.js")
|
|
14910
14990
|
]);
|
|
14911
14991
|
const baseUrl = await resolveBaseUrl(options, command);
|
|
14912
14992
|
assertSecureBaseUrl(baseUrl);
|
|
@@ -14981,7 +15061,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
|
|
|
14981
15061
|
const question = Array.isArray(questionParts) ? questionParts.join(" ") : String(questionParts);
|
|
14982
15062
|
const commandName = command.parent?.args?.[0] === "agent" ? "agent" : "ask";
|
|
14983
15063
|
const selectedMode = commandName === "agent" ? "agent" : "ask";
|
|
14984
|
-
const { assertSecureBaseUrl } = await import("./dist-
|
|
15064
|
+
const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
|
|
14985
15065
|
const baseUrl = await resolveBaseUrl(options, command);
|
|
14986
15066
|
assertSecureBaseUrl(baseUrl);
|
|
14987
15067
|
const selectedProfile = getActiveConfigProfile(command);
|
|
@@ -15022,7 +15102,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
|
|
|
15022
15102
|
const fs14 = await import("fs");
|
|
15023
15103
|
const fsPromises = await import("fs/promises");
|
|
15024
15104
|
const { randomUUID: randomUUID5 } = await import("crypto");
|
|
15025
|
-
const core = await import("./dist-
|
|
15105
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
15026
15106
|
const {
|
|
15027
15107
|
streamChat,
|
|
15028
15108
|
reduceChunk,
|
|
@@ -15078,7 +15158,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
|
|
|
15078
15158
|
console.error("Authentication required. Starting login process...\n");
|
|
15079
15159
|
}
|
|
15080
15160
|
try {
|
|
15081
|
-
const { login } = await import("./dist-
|
|
15161
|
+
const { login } = await import("./dist-QLN52XKY.js");
|
|
15082
15162
|
verboseLog("Calling interactive login", { baseUrl });
|
|
15083
15163
|
token = await login(baseUrl, {
|
|
15084
15164
|
headless: isHeadlessEnvironment()
|
|
@@ -15142,7 +15222,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
|
|
|
15142
15222
|
message: error.message
|
|
15143
15223
|
});
|
|
15144
15224
|
}
|
|
15145
|
-
const { resolveAskProject } = await import("./resolveAskProject-
|
|
15225
|
+
const { resolveAskProject } = await import("./resolveAskProject-WOMNHUYT.js");
|
|
15146
15226
|
let project;
|
|
15147
15227
|
try {
|
|
15148
15228
|
project = await resolveAskProject({
|
|
@@ -15660,7 +15740,7 @@ Error: ${errorMsg}
|
|
|
15660
15740
|
program.command("banner").description("Preview the startup banner and terminal capabilities").action(async () => {
|
|
15661
15741
|
const { render } = await import("ink");
|
|
15662
15742
|
const BannerPreview = React.lazy(async () => ({
|
|
15663
|
-
default: (await import("./Banner-
|
|
15743
|
+
default: (await import("./Banner-H2UMEBYX.js")).Banner
|
|
15664
15744
|
}));
|
|
15665
15745
|
render(
|
|
15666
15746
|
/* @__PURE__ */ jsx(React.Suspense, { fallback: null, children: /* @__PURE__ */ jsx(BannerPreview, { disable: false }) })
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/resolveAskProject.ts
|
|
2
2
|
var resolveAskProject = async (input) => {
|
|
3
|
-
const core = await import("./dist-
|
|
3
|
+
const core = await import("./dist-QLN52XKY.js");
|
|
4
4
|
const { getProjects, ensurePlaygroundProject, checkUserStatus } = core;
|
|
5
5
|
let userId = input.authenticatedUserId;
|
|
6
6
|
let user = input.authenticatedUser;
|
package/package.json
CHANGED
package/sbom.spdx.json
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
{
|
|
15
15
|
"SPDXID": "SPDXRef-Package-CloudEval-CLI",
|
|
16
16
|
"name": "CloudEval CLI",
|
|
17
|
-
"versionInfo": "0.26.
|
|
17
|
+
"versionInfo": "0.26.2",
|
|
18
18
|
"downloadLocation": "https://github.com/ganakailabs/cloudeval-cli",
|
|
19
19
|
"filesAnalyzed": false,
|
|
20
20
|
"licenseConcluded": "LicenseRef-CloudEval-CLI",
|