@ganakailabs/cloudeval-cli 0.26.7 → 0.26.9

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.
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-QSBGUI25.js";
9
9
  import {
10
10
  Onboarding
11
- } from "./chunk-XHA4BH3P.js";
11
+ } from "./chunk-AO6RCQ3P.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-3MIP274G.js";
38
+ } from "./chunk-2OLI5VOG.js";
39
39
  import {
40
40
  Banner
41
- } from "./chunk-MNNLTARP.js";
41
+ } from "./chunk-6TCB66QU.js";
42
42
  import {
43
43
  CLI_VERSION
44
- } from "./chunk-SMZ375N4.js";
44
+ } from "./chunk-NCMNBZG7.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-QLN52XKY.js");
5917
+ const { extractEmailFromToken } = await import("./dist-MQQKC6DZ.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-QLN52XKY.js");
7353
+ const { login } = await import("./dist-MQQKC6DZ.js");
7354
7354
  const newToken = await login(baseUrl, {
7355
7355
  headless: Boolean(process.env.SSH_TTY || process.env.CI)
7356
7356
  });
@@ -3,8 +3,8 @@ import {
3
3
  bannerMetaColor,
4
4
  bannerSegmentColor,
5
5
  splitBannerLineSegments
6
- } from "./chunk-MNNLTARP.js";
7
- import "./chunk-SMZ375N4.js";
6
+ } from "./chunk-6TCB66QU.js";
7
+ import "./chunk-NCMNBZG7.js";
8
8
  import "./chunk-ZDKRIOMB.js";
9
9
  export {
10
10
  Banner,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Onboarding
3
- } from "./chunk-XHA4BH3P.js";
4
- import "./chunk-3MIP274G.js";
3
+ } from "./chunk-AO6RCQ3P.js";
4
+ import "./chunk-2OLI5VOG.js";
5
5
  import "./chunk-ZDKRIOMB.js";
6
6
  export {
7
7
  Onboarding
@@ -1803,6 +1803,13 @@ var objectArrayOrUndefined = (value) => {
1803
1803
  const records = value.filter(isObject2);
1804
1804
  return records.length ? records : void 0;
1805
1805
  };
1806
+ var assistantMessageContent = (value) => {
1807
+ const messages = objectArrayOrUndefined(value);
1808
+ const message = messages ? [...messages].reverse().find(
1809
+ (entry) => entry.role === "assistant" && typeof entry.content === "string"
1810
+ ) : void 0;
1811
+ return typeof message?.content === "string" ? message.content : void 0;
1812
+ };
1806
1813
  var isResponseOutputChunk = (chunk) => chunk.type === "responding" && (!chunk.node || RESPONSE_OUTPUT_NODES.has(chunk.node));
1807
1814
  var isResponseCompletionChunk = (chunk) => isResponseOutputChunk(chunk) && chunk.status === "completed";
1808
1815
  var isTerminalEndChunk = (chunk) => (chunk.type === "thinking" || chunk.type === "responding") && chunk.status === "completed" && chunk.node === "end";
@@ -1884,7 +1891,7 @@ var normalizeChunk = (raw, receivedAt) => {
1884
1891
  status: isValidChunkStatus(raw.status) ? raw.status : void 0,
1885
1892
  description: typeof raw.description === "string" ? raw.description : void 0,
1886
1893
  message: typeof raw.message === "string" ? raw.message : void 0,
1887
- content: typeof raw.content === "string" ? raw.content : void 0,
1894
+ content: typeof raw.content === "string" ? raw.content : assistantMessageContent(raw.messages) ?? assistantMessageContent(data?.messages),
1888
1895
  source: stringOrUndefined(raw.source),
1889
1896
  tools_used: objectArrayOrUndefined(raw.tools_used) ?? objectArrayOrUndefined(data?.tools_used),
1890
1897
  citation_markers: objectArrayOrUndefined(raw.citation_markers) ?? objectArrayOrUndefined(data?.citation_markers),
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CLI_VERSION
3
- } from "./chunk-SMZ375N4.js";
3
+ } from "./chunk-NCMNBZG7.js";
4
4
  import {
5
5
  shouldUseColor,
6
6
  terminalTheme
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  completeOnboarding
3
- } from "./chunk-3MIP274G.js";
3
+ } from "./chunk-2OLI5VOG.js";
4
4
  import {
5
5
  terminalTheme
6
6
  } from "./chunk-ZDKRIOMB.js";
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var CLI_VERSION = "0.26.7";
2
+ var CLI_VERSION = "0.26.9";
3
3
 
4
4
  export {
5
5
  CLI_VERSION
package/dist/cli.js CHANGED
@@ -33,10 +33,10 @@ import {
33
33
  normalizeApiBase,
34
34
  redactSensitiveSecrets,
35
35
  redactSensitiveText
36
- } from "./chunk-3MIP274G.js";
36
+ } from "./chunk-2OLI5VOG.js";
37
37
  import {
38
38
  CLI_VERSION
39
- } from "./chunk-SMZ375N4.js";
39
+ } from "./chunk-NCMNBZG7.js";
40
40
 
41
41
  // src/runtime/prepareInk.ts
42
42
  import fs from "fs";
@@ -1649,7 +1649,7 @@ var resolveReportProjectId = async ({
1649
1649
  if (!token) {
1650
1650
  throw new Error("No project specified. Use --project <id> for report access.");
1651
1651
  }
1652
- const resolvedWorkspace = workspace ?? await import("./dist-QLN52XKY.js").then((core) => ({
1652
+ const resolvedWorkspace = workspace ?? await import("./dist-MQQKC6DZ.js").then((core) => ({
1653
1653
  checkUserStatus: core.checkUserStatus,
1654
1654
  getProjects: core.getProjects
1655
1655
  }));
@@ -1678,7 +1678,7 @@ var warnIfAccessKeyFromCliOption = (options, command) => {
1678
1678
  };
1679
1679
  var resolveAuthContext = async (options, command, deps) => {
1680
1680
  const baseUrl = await deps.resolveBaseUrl(options, command);
1681
- const core = await import("./dist-QLN52XKY.js");
1681
+ const core = await import("./dist-MQQKC6DZ.js");
1682
1682
  core.assertSecureBaseUrl(baseUrl);
1683
1683
  warnIfAccessKeyFromCliOption(options, command);
1684
1684
  let accessKey = options.accessKey;
@@ -1764,7 +1764,7 @@ var resolveToken = async (options, baseUrl, deps, command) => {
1764
1764
  if (options.accessKey) {
1765
1765
  return options.accessKey;
1766
1766
  }
1767
- const { getAuthToken } = await import("./dist-QLN52XKY.js");
1767
+ const { getAuthToken } = await import("./dist-MQQKC6DZ.js");
1768
1768
  try {
1769
1769
  return await getAuthToken({
1770
1770
  accessKey: options.accessKey,
@@ -1775,7 +1775,7 @@ var resolveToken = async (options, baseUrl, deps, command) => {
1775
1775
  if (!canLogin) {
1776
1776
  throw error;
1777
1777
  }
1778
- const { login } = await import("./dist-QLN52XKY.js");
1778
+ const { login } = await import("./dist-MQQKC6DZ.js");
1779
1779
  process.stderr.write("Authentication required. Starting login flow...\n");
1780
1780
  const token = await login(baseUrl, {
1781
1781
  headless: Boolean(process.env.SSH_TTY || process.env.CLOUDEVAL_HEADLESS_LOGIN)
@@ -1941,7 +1941,7 @@ var registerReportsCommand = (program2, deps) => {
1941
1941
  token,
1942
1942
  requestedProjectId: options.project
1943
1943
  });
1944
- const core = await import("./dist-QLN52XKY.js");
1944
+ const core = await import("./dist-MQQKC6DZ.js");
1945
1945
  const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
1946
1946
  const reports2 = await core.listReports({
1947
1947
  baseUrl,
@@ -1963,7 +1963,7 @@ var registerReportsCommand = (program2, deps) => {
1963
1963
  try {
1964
1964
  const baseUrl = await deps.resolveBaseUrl(options, command);
1965
1965
  const token = await resolveToken(options, baseUrl, deps, command);
1966
- const core = await import("./dist-QLN52XKY.js");
1966
+ const core = await import("./dist-MQQKC6DZ.js");
1967
1967
  const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
1968
1968
  const projectId = await resolveReportProjectId({
1969
1969
  baseUrl,
@@ -2066,7 +2066,7 @@ var registerReportsCommand = (program2, deps) => {
2066
2066
  try {
2067
2067
  const baseUrl = await deps.resolveBaseUrl(options, command);
2068
2068
  const token = await resolveToken(options, baseUrl, deps, command);
2069
- const core = await import("./dist-QLN52XKY.js");
2069
+ const core = await import("./dist-MQQKC6DZ.js");
2070
2070
  const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
2071
2071
  const projectId = await resolveReportProjectId({
2072
2072
  baseUrl,
@@ -2136,7 +2136,7 @@ var registerReportsCommand = (program2, deps) => {
2136
2136
  token,
2137
2137
  requestedProjectId: options.project
2138
2138
  });
2139
- const core = await import("./dist-QLN52XKY.js");
2139
+ const core = await import("./dist-MQQKC6DZ.js");
2140
2140
  const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
2141
2141
  const report = await core.getWafReport({
2142
2142
  baseUrl,
@@ -2175,7 +2175,7 @@ var registerReportsCommand = (program2, deps) => {
2175
2175
  token,
2176
2176
  requestedProjectId: options.project
2177
2177
  });
2178
- const core = await import("./dist-QLN52XKY.js");
2178
+ const core = await import("./dist-MQQKC6DZ.js");
2179
2179
  const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
2180
2180
  const report = await core.getReport({
2181
2181
  baseUrl,
@@ -2203,7 +2203,7 @@ var registerReportsCommand = (program2, deps) => {
2203
2203
  token,
2204
2204
  requestedProjectId: options.project
2205
2205
  });
2206
- const core = await import("./dist-QLN52XKY.js");
2206
+ const core = await import("./dist-MQQKC6DZ.js");
2207
2207
  const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
2208
2208
  const report = await core.getCostReport({
2209
2209
  baseUrl,
@@ -2232,7 +2232,7 @@ var registerReportsCommand = (program2, deps) => {
2232
2232
  token,
2233
2233
  requestedProjectId: options.project
2234
2234
  });
2235
- const core = await import("./dist-QLN52XKY.js");
2235
+ const core = await import("./dist-MQQKC6DZ.js");
2236
2236
  const status = token ? await core.checkUserStatus(baseUrl, token) : void 0;
2237
2237
  const report = await core.getWafReport({
2238
2238
  baseUrl,
@@ -2499,6 +2499,30 @@ var reviewReportStatuses = ({
2499
2499
  wellArchitected: reviewReportStatus(waf),
2500
2500
  preload: reviewReportStatus(preload)
2501
2501
  });
2502
+ var publicJobStatus = (value) => {
2503
+ const record = firstRecord(value);
2504
+ if (!record) {
2505
+ return void 0;
2506
+ }
2507
+ return {
2508
+ jobId: record.job_id ?? record.jobId ?? record.id,
2509
+ status: record.status,
2510
+ operation: record.operation,
2511
+ progress: record.progress,
2512
+ submittedAt: record.submitted_at ?? record.submittedAt,
2513
+ startedAt: record.started_at ?? record.startedAt,
2514
+ completedAt: record.completed_at ?? record.completedAt
2515
+ };
2516
+ };
2517
+ var reviewSyncStatus = (sync, finalStatus) => {
2518
+ const syncRecord = asRecord(sync);
2519
+ return {
2520
+ job: publicJobStatus(syncRecord.job ?? syncRecord),
2521
+ projectId: syncRecord.project_id ?? syncRecord.projectId,
2522
+ commitSha: syncRecord.commit_sha ?? syncRecord.commitSha,
2523
+ finalStatus: publicJobStatus(finalStatus)
2524
+ };
2525
+ };
2502
2526
  var displayNumber = (value, fallback = "not available") => {
2503
2527
  const number = numberFrom(value);
2504
2528
  return number === void 0 ? fallback : String(number);
@@ -2515,6 +2539,15 @@ var formatValidation = (validation) => {
2515
2539
  const unitFailed = displayNumber(validation?.unitTests?.failed);
2516
2540
  return `Policy checks ${policyFailed} failed, unit tests ${unitFailed} failed`;
2517
2541
  };
2542
+ var compactValidation = (validation) => {
2543
+ const policyFailed = numberFrom(validation?.policyChecks?.failed);
2544
+ const unitFailed = numberFrom(validation?.unitTests?.failed);
2545
+ if (policyFailed === 0 && unitFailed === 0) {
2546
+ return "validation clean";
2547
+ }
2548
+ return formatValidation(validation);
2549
+ };
2550
+ var markdownLink = (label, url) => url ? `[${label}](${url})` : label;
2518
2551
  var extractPillars = (waf) => {
2519
2552
  const fromArray = waf?.parsed?.score?.pillars;
2520
2553
  if (Array.isArray(fromArray)) {
@@ -2897,9 +2930,10 @@ var generateAiSummary = async ({
2897
2930
  agentProfileId,
2898
2931
  data
2899
2932
  }) => {
2900
- const core = await import("./dist-QLN52XKY.js");
2933
+ const core = await import("./dist-MQQKC6DZ.js");
2901
2934
  const threadId = `review-${data.projectId}-${Date.now()}`;
2902
2935
  let markdown = "";
2936
+ let chatState = { ...core.initialChatState, threadId };
2903
2937
  for await (const chunk of core.streamChat({
2904
2938
  baseUrl,
2905
2939
  authToken: token,
@@ -2929,17 +2963,24 @@ var generateAiSummary = async ({
2929
2963
  responseCompletionGraceMs: 250,
2930
2964
  streamIdleTimeoutMs: 12e4
2931
2965
  })) {
2966
+ chatState = core.reduceChunk(chatState, chunk);
2967
+ const latestMessage = [...chatState.messages ?? []].reverse().find((message) => message.role === "assistant");
2968
+ const chunkAssistantMessage = Array.isArray(chunk?.messages) ? [...chunk.messages].reverse().find((message) => message?.role === "assistant" && typeof message?.content === "string")?.content : void 0;
2932
2969
  const content = chunk?.content;
2970
+ if (typeof chunkAssistantMessage === "string" && chunkAssistantMessage.trim()) {
2971
+ markdown = chunkAssistantMessage;
2972
+ }
2933
2973
  if (chunk.type === "responding" && typeof content === "string") {
2934
- markdown += content;
2974
+ markdown = latestMessage?.content || `${markdown}${content}`;
2935
2975
  }
2936
2976
  }
2977
+ const finalMessage = [...chatState.messages ?? []].reverse().find((message) => message.role === "assistant");
2937
2978
  return {
2938
2979
  enabled: true,
2939
2980
  mode,
2940
2981
  ...mode === "agent" ? { agentProfileId: agentProfileId ?? "architecture" } : {},
2941
2982
  ...model ? { model } : {},
2942
- markdown: markdown.trim(),
2983
+ markdown: String(finalMessage?.content || markdown).trim(),
2943
2984
  threadId
2944
2985
  };
2945
2986
  };
@@ -2948,47 +2989,60 @@ var buildMarkdownSummary = (data) => {
2948
2989
  const score = data.gate?.overallScore ?? "unknown";
2949
2990
  const cost = data.gate?.cost?.monthly;
2950
2991
  const validation = data.gate?.validation;
2992
+ const projectLabel = String(data.project?.name ?? data.projectName ?? data.projectId);
2993
+ const projectDisplay = markdownLink(projectLabel, data.project?.url ?? data.projectUrl);
2994
+ const source = data.repo ? `${data.repo}${data.ref ? ` @ ${data.ref}` : ""}` : data.ref ?? "unknown source";
2995
+ const commit = String(data.commitSha ?? "unknown").slice(0, 12);
2951
2996
  const pillarLines = Array.isArray(data.gate?.wellArchitected?.pillars) ? data.gate.wellArchitected.pillars.map(
2952
- (pillar) => ` - ${pillar.label}: ${pillar.score}${pillar.threshold !== void 0 ? ` (min ${pillar.threshold})` : ""} - ${String(pillar.status ?? "unknown").toUpperCase()}`
2997
+ (pillar) => `- ${pillar.label}: ${pillar.score} - ${String(pillar.status ?? "unknown").toUpperCase()}`
2953
2998
  ) : [];
2954
2999
  const lines = [
2955
- "### CloudEval review",
3000
+ `**${gateStatus}** for ${projectDisplay}: Well-Architected ${score}, cost ${formatMoney(cost?.amount, cost?.currency)}, ${compactValidation(validation)}.`,
2956
3001
  "",
2957
- `- **Project:** \`${data.projectId}\``,
2958
- `- **Repository:** \`${data.repo ?? "unknown"}\``,
2959
- `- **Ref:** \`${data.ref ?? "unknown"}\``,
2960
- `- **Commit:** \`${String(data.commitSha ?? "unknown").slice(0, 12)}\``,
2961
- `- **Gate:** ${gateStatus}`,
2962
- `- **Well-Architected score:** ${score}`,
2963
- `- **Cost:** ${formatMoney(cost?.amount, cost?.currency)}`,
2964
- `- **Validation:** ${formatValidation(validation)}`
3002
+ `Source: \`${source}\` \xB7 commit \`${commit}\``
2965
3003
  ];
3004
+ if (data.aiSummary?.markdown) {
3005
+ lines.push("", "#### AI summary", "", data.aiSummary.markdown);
3006
+ }
2966
3007
  if (Array.isArray(data.gate?.failures) && data.gate.failures.length) {
2967
3008
  lines.push("", "#### Gate failures", "", ...data.gate.failures.map((failure) => `- ${failure}`));
2968
3009
  }
2969
3010
  if (pillarLines.length) {
2970
- lines.push("", "#### Well-Architected drilldown", "", ...pillarLines);
3011
+ lines.push(
3012
+ "",
3013
+ "<details>",
3014
+ "<summary>Well-Architected details</summary>",
3015
+ "",
3016
+ `- Overall score: ${score}`,
3017
+ ...pillarLines,
3018
+ "",
3019
+ "</details>"
3020
+ );
2971
3021
  }
2972
3022
  if (cost?.amount !== void 0 || cost?.threshold !== void 0) {
2973
3023
  lines.push(
2974
3024
  "",
2975
- "#### Cost drilldown",
3025
+ "<details>",
3026
+ "<summary>Cost details</summary>",
2976
3027
  "",
2977
- `- Cost: ${formatMoney(cost?.amount, cost?.currency)}${cost?.threshold !== void 0 ? ` (max ${cost.threshold})` : ""}`
3028
+ `- Monthly estimate: ${formatMoney(cost?.amount, cost?.currency)}`,
3029
+ data.gate?.cost?.estimatedSavings?.amount !== void 0 ? `- Estimated savings: ${formatMoney(data.gate.cost.estimatedSavings.amount, data.gate.cost.estimatedSavings.currency)}` : void 0,
3030
+ "",
3031
+ "</details>"
2978
3032
  );
2979
3033
  }
2980
3034
  if (validation) {
2981
3035
  lines.push(
2982
3036
  "",
2983
- "#### Validation drilldown",
3037
+ "<details>",
3038
+ "<summary>Validation details</summary>",
3039
+ "",
3040
+ `- ${formatValidation(validation)}`,
2984
3041
  "",
2985
- `- Validation: ${formatValidation(validation)}`
3042
+ "</details>"
2986
3043
  );
2987
3044
  }
2988
- if (data.aiSummary?.markdown) {
2989
- lines.push("", "## AI summary", "", data.aiSummary.markdown);
2990
- }
2991
- return lines.join("\n");
3045
+ return lines.filter((line) => line !== void 0).join("\n");
2992
3046
  };
2993
3047
  var registerReviewCommand = (program2, deps) => {
2994
3048
  const command = addAuthOptions(
@@ -3069,11 +3123,22 @@ var registerReviewCommand = (program2, deps) => {
3069
3123
  ]);
3070
3124
  const data = {
3071
3125
  projectId,
3126
+ project: {
3127
+ id: projectId,
3128
+ name: String(project?.name ?? projectId),
3129
+ url: buildFrontendUrl({
3130
+ baseUrl: resolveFrontendBaseUrl({ apiBaseUrl: context.baseUrl }),
3131
+ target: "project",
3132
+ projectId,
3133
+ view: "preview",
3134
+ layout: "architecture"
3135
+ })
3136
+ },
3072
3137
  repo,
3073
3138
  ref,
3074
3139
  commitSha,
3075
3140
  sourceRoot,
3076
- sync: finalStatus ? { ...asRecord(sync), finalStatus } : sync,
3141
+ sync: reviewSyncStatus(sync, finalStatus),
3077
3142
  reports: reviewReportStatuses({ cost, waf, preload }),
3078
3143
  gate: evaluateGate({ configText, waf, cost, preload, project })
3079
3144
  };
@@ -4453,7 +4518,7 @@ var runChatRecipe = async (recipe, prompt2, options, command, deps) => {
4453
4518
  });
4454
4519
  progressWriter.write({ type: "auth", step: "auth", message: "Resolving authentication" });
4455
4520
  const context = await resolveAuthContext(options, command, deps);
4456
- const core = await import("./dist-QLN52XKY.js");
4521
+ const core = await import("./dist-MQQKC6DZ.js");
4457
4522
  progressWriter.write({
4458
4523
  type: "request",
4459
4524
  step: "project",
@@ -5922,7 +5987,7 @@ var configureDiagramExportCommand = (command, deps) => addAuthOptions(command, d
5922
5987
  const context = requireAuthUser(
5923
5988
  await resolveAuthContext(options, actionCommand, deps)
5924
5989
  );
5925
- const core = await import("./dist-QLN52XKY.js");
5990
+ const core = await import("./dist-MQQKC6DZ.js");
5926
5991
  const projects = await core.getProjects(
5927
5992
  context.baseUrl,
5928
5993
  context.token,
@@ -5999,7 +6064,7 @@ var registerProjectsCommand = (program2, deps) => {
5999
6064
  addCommon(addAuthOptions(projects.command("list").description("List projects"), deps.defaultBaseUrl)).action(async (options, command) => {
6000
6065
  try {
6001
6066
  const context = await resolveAuthContext(options, command, deps);
6002
- const core = await import("./dist-QLN52XKY.js");
6067
+ const core = await import("./dist-MQQKC6DZ.js");
6003
6068
  const data = await listProjectsForContext(core, context);
6004
6069
  const url = buildFrontendUrl({ baseUrl: frontendBase(context, options), target: "projects" });
6005
6070
  await writeProjectListOutput({ data, options, frontendUrl: url });
@@ -6017,7 +6082,7 @@ var registerProjectsCommand = (program2, deps) => {
6017
6082
  ).action(async (id, options, command) => {
6018
6083
  try {
6019
6084
  const context = await resolveAuthContext(options, command, deps);
6020
- const core = await import("./dist-QLN52XKY.js");
6085
+ const core = await import("./dist-MQQKC6DZ.js");
6021
6086
  const list = await listProjectsForContext(core, context);
6022
6087
  const data = list.find((project) => project.id === id);
6023
6088
  if (!data) {
@@ -6082,7 +6147,7 @@ var registerProjectsCommand = (program2, deps) => {
6082
6147
  try {
6083
6148
  assertSingleProjectSource(options);
6084
6149
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6085
- const core = await import("./dist-QLN52XKY.js");
6150
+ const core = await import("./dist-MQQKC6DZ.js");
6086
6151
  const template = await fileBlob(options.templateFile);
6087
6152
  const parameters = await fileBlob(options.parametersFile);
6088
6153
  const workspace = options.workspaceDir ? await collectWorkspaceFiles(options.workspaceDir, options) : void 0;
@@ -6211,7 +6276,7 @@ var registerConnectionsCommand = (program2, deps) => {
6211
6276
  addCommon2(addAuthOptions(connections.command("list").description("List connections"), deps.defaultBaseUrl)).action(async (options, command) => {
6212
6277
  try {
6213
6278
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6214
- const core = await import("./dist-QLN52XKY.js");
6279
+ const core = await import("./dist-MQQKC6DZ.js");
6215
6280
  const data = await core.listConnections({
6216
6281
  baseUrl: context.baseUrl,
6217
6282
  authToken: context.token,
@@ -6236,7 +6301,7 @@ var registerConnectionsCommand = (program2, deps) => {
6236
6301
  ).action(async (id, options, command) => {
6237
6302
  try {
6238
6303
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6239
- const core = await import("./dist-QLN52XKY.js");
6304
+ const core = await import("./dist-MQQKC6DZ.js");
6240
6305
  const data = await core.getConnection({
6241
6306
  baseUrl: context.baseUrl,
6242
6307
  authToken: context.token,
@@ -6574,7 +6639,7 @@ var checkoutReturnUrl = (context, options) => options.returnTo || billingUrl(con
6574
6639
  var runTopUpCheckout = async (commandName, packId, options, command, deps) => {
6575
6640
  try {
6576
6641
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6577
- const core = await import("./dist-QLN52XKY.js");
6642
+ const core = await import("./dist-MQQKC6DZ.js");
6578
6643
  const returnTo = checkoutReturnUrl(context, options);
6579
6644
  const session = await core.createTopUpCheckoutSession({
6580
6645
  baseUrl: context.baseUrl,
@@ -6614,7 +6679,7 @@ var registerBillingCommands = (program2, deps) => {
6614
6679
  ).action(async (options, command) => {
6615
6680
  try {
6616
6681
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6617
- const core = await import("./dist-QLN52XKY.js");
6682
+ const core = await import("./dist-MQQKC6DZ.js");
6618
6683
  const range = rangeToDates("30d");
6619
6684
  const [entitlement, usageSummary] = await Promise.all([
6620
6685
  core.getBillingEntitlement({
@@ -6644,7 +6709,7 @@ var registerBillingCommands = (program2, deps) => {
6644
6709
  addCommon3(addAuthOptions(billing.command("summary").description("Show billing summary"), deps.defaultBaseUrl)).action(async (options, command) => {
6645
6710
  try {
6646
6711
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6647
- const core = await import("./dist-QLN52XKY.js");
6712
+ const core = await import("./dist-MQQKC6DZ.js");
6648
6713
  const range = rangeToDates("30d");
6649
6714
  const [entitlement, subscriptionStatus, usageSummary] = await Promise.all([
6650
6715
  core.getBillingEntitlement({ baseUrl: context.baseUrl, authToken: context.token }),
@@ -6680,7 +6745,7 @@ var registerBillingCommands = (program2, deps) => {
6680
6745
  addCommon3(addAuthOptions(billing.command("plans").description("Show billing plans"), deps.defaultBaseUrl)).action(async (options, command) => {
6681
6746
  try {
6682
6747
  const context = await resolveAuthContext(options, command, deps);
6683
- const core = await import("./dist-QLN52XKY.js");
6748
+ const core = await import("./dist-MQQKC6DZ.js");
6684
6749
  const data = await core.getBillingConfig({ baseUrl: context.baseUrl, authToken: context.token });
6685
6750
  const url = billingUrl(context, { ...options, tab: "plans" });
6686
6751
  await write("billing plans", data, options, url);
@@ -6692,7 +6757,7 @@ var registerBillingCommands = (program2, deps) => {
6692
6757
  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) => {
6693
6758
  try {
6694
6759
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6695
- const core = await import("./dist-QLN52XKY.js");
6760
+ const core = await import("./dist-MQQKC6DZ.js");
6696
6761
  const range = rangeToDates(options.range);
6697
6762
  const data = await core.getBillingUsageSummary({
6698
6763
  baseUrl: context.baseUrl,
@@ -6715,7 +6780,7 @@ var registerBillingCommands = (program2, deps) => {
6715
6780
  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) => {
6716
6781
  try {
6717
6782
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6718
- const core = await import("./dist-QLN52XKY.js");
6783
+ const core = await import("./dist-MQQKC6DZ.js");
6719
6784
  const range = rangeToDates(options.range);
6720
6785
  const data = await core.getBillingUsageLedger({
6721
6786
  baseUrl: context.baseUrl,
@@ -6743,7 +6808,7 @@ var registerBillingCommands = (program2, deps) => {
6743
6808
  addCommon3(addAuthOptions(billing.command(name).description(`Show billing ${name}`), deps.defaultBaseUrl)).option("--limit <n>", "Result limit", "25").action(async (options, command) => {
6744
6809
  try {
6745
6810
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6746
- const core = await import("./dist-QLN52XKY.js");
6811
+ const core = await import("./dist-MQQKC6DZ.js");
6747
6812
  const data = await core[getter]({
6748
6813
  baseUrl: context.baseUrl,
6749
6814
  authToken: context.token,
@@ -6761,7 +6826,7 @@ var registerBillingCommands = (program2, deps) => {
6761
6826
  addCommon3(addAuthOptions(topups, deps.defaultBaseUrl)).option("--limit <n>", "Result limit", "25").action(async (options, command) => {
6762
6827
  try {
6763
6828
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6764
- const core = await import("./dist-QLN52XKY.js");
6829
+ const core = await import("./dist-MQQKC6DZ.js");
6765
6830
  const data = await core.getTopUpPacks({
6766
6831
  baseUrl: context.baseUrl,
6767
6832
  authToken: context.token
@@ -9432,7 +9497,7 @@ var reportsFrontendUrl = (config, input) => buildFrontendUrl({
9432
9497
  reportVerbosity: input.reportVerbosity
9433
9498
  });
9434
9499
  var resolveAuth = async (config, options = {}) => {
9435
- const core = await import("./dist-QLN52XKY.js");
9500
+ const core = await import("./dist-MQQKC6DZ.js");
9436
9501
  core.assertSecureBaseUrl(config.baseUrl);
9437
9502
  let token;
9438
9503
  try {
@@ -9528,7 +9593,7 @@ var assertModelAvailable = async (config, token) => {
9528
9593
  if (!config.model) {
9529
9594
  return;
9530
9595
  }
9531
- const core = await import("./dist-QLN52XKY.js");
9596
+ const core = await import("./dist-MQQKC6DZ.js");
9532
9597
  try {
9533
9598
  const response = await fetch(
9534
9599
  `${core.normalizeApiBase(config.baseUrl)}/models`,
@@ -9785,7 +9850,7 @@ var buildToolHandlers = (serverOptions) => {
9785
9850
  });
9786
9851
  handlers.set("agent_profiles_list", async (args) => {
9787
9852
  const config = await resolveInvocationConfig(serverOptions, args);
9788
- const core = await import("./dist-QLN52XKY.js");
9853
+ const core = await import("./dist-MQQKC6DZ.js");
9789
9854
  const data = await listProfilesForDiscovery(core, config.baseUrl);
9790
9855
  return withEnvelope({
9791
9856
  command: "agents list",
@@ -9798,7 +9863,7 @@ var buildToolHandlers = (serverOptions) => {
9798
9863
  throw new Error("profileId is required.");
9799
9864
  }
9800
9865
  const config = await resolveInvocationConfig(serverOptions, args);
9801
- const core = await import("./dist-QLN52XKY.js");
9866
+ const core = await import("./dist-MQQKC6DZ.js");
9802
9867
  const data = await getProfileForDiscovery(core, config.baseUrl, profileId);
9803
9868
  return withEnvelope({
9804
9869
  command: "agents show",
@@ -10435,7 +10500,7 @@ var buildToolHandlers = (serverOptions) => {
10435
10500
  });
10436
10501
  handlers.set("auth_status", async (args) => {
10437
10502
  const config = await resolveInvocationConfig(serverOptions, args);
10438
- const core = await import("./dist-QLN52XKY.js");
10503
+ const core = await import("./dist-MQQKC6DZ.js");
10439
10504
  const data = await core.getAuthStatus(config.baseUrl, { validate: true });
10440
10505
  return withEnvelope({
10441
10506
  command: "auth status",
@@ -10444,7 +10509,7 @@ var buildToolHandlers = (serverOptions) => {
10444
10509
  });
10445
10510
  handlers.set("status", async (args) => {
10446
10511
  const config = await resolveInvocationConfig(serverOptions, args);
10447
- const core = await import("./dist-QLN52XKY.js");
10512
+ const core = await import("./dist-MQQKC6DZ.js");
10448
10513
  const auth = await core.getAuthStatus(config.baseUrl, { validate: true });
10449
10514
  return withEnvelope({
10450
10515
  command: "status",
@@ -10475,7 +10540,7 @@ var buildToolHandlers = (serverOptions) => {
10475
10540
  }
10476
10541
  ];
10477
10542
  try {
10478
- const core = await import("./dist-QLN52XKY.js");
10543
+ const core = await import("./dist-MQQKC6DZ.js");
10479
10544
  core.assertSecureBaseUrl(config.baseUrl);
10480
10545
  checks.push({
10481
10546
  id: "base-url-secure",
@@ -10995,7 +11060,7 @@ var buildToolHandlers = (serverOptions) => {
10995
11060
  } catch {
10996
11061
  token = config.accessKey;
10997
11062
  }
10998
- const core = await import("./dist-QLN52XKY.js");
11063
+ const core = await import("./dist-MQQKC6DZ.js");
10999
11064
  const data = await core.getBillingConfig({
11000
11065
  baseUrl: config.baseUrl,
11001
11066
  authToken: token
@@ -11849,7 +11914,7 @@ var registerCapabilitiesCommand = (program2, deps) => {
11849
11914
  warnIfAccessKeyFromCliOption(options, command);
11850
11915
  let data = capabilities;
11851
11916
  if (options.live) {
11852
- const core = await import("./dist-QLN52XKY.js");
11917
+ const core = await import("./dist-MQQKC6DZ.js");
11853
11918
  const baseUrl = await deps.resolveBaseUrl(options, command);
11854
11919
  const accessKey = options.accessKeyStdin ? await deps.readStdinValue() : options.accessKey;
11855
11920
  const token = await core.getAuthToken({ accessKey, baseUrl });
@@ -11987,7 +12052,7 @@ var writeCredentialOutput = async (input) => {
11987
12052
  };
11988
12053
  var resolveCoreAuth = async (options, command, deps) => {
11989
12054
  const context = await resolveAuthContext(options, command, deps);
11990
- const core = await import("./dist-QLN52XKY.js");
12055
+ const core = await import("./dist-MQQKC6DZ.js");
11991
12056
  return { ...context, core };
11992
12057
  };
11993
12058
  var parseCapabilities = (value) => value?.split(",").map((item) => item.trim()).filter(Boolean);
@@ -12304,7 +12369,7 @@ var registerAgentsCommand = (program2, deps) => {
12304
12369
  const agents = program2.command("agents").description("CloudEval Agent Profile utilities");
12305
12370
  addAgentOutputOptions(agents.command("list").description("List Agent Profiles"), deps).action(async (options, command) => {
12306
12371
  const baseUrl = await deps.resolveBaseUrl(options, command);
12307
- const core = await import("./dist-QLN52XKY.js");
12372
+ const core = await import("./dist-MQQKC6DZ.js");
12308
12373
  core.assertSecureBaseUrl(baseUrl);
12309
12374
  const data = await listProfilesForDiscovery2(core, baseUrl);
12310
12375
  await writeProfiles({
@@ -12320,7 +12385,7 @@ var registerAgentsCommand = (program2, deps) => {
12320
12385
  deps
12321
12386
  ).action(async (profileId, options, command) => {
12322
12387
  const baseUrl = await deps.resolveBaseUrl(options, command);
12323
- const core = await import("./dist-QLN52XKY.js");
12388
+ const core = await import("./dist-MQQKC6DZ.js");
12324
12389
  core.assertSecureBaseUrl(baseUrl);
12325
12390
  const data = await getProfileForDiscovery2(core, baseUrl, profileId);
12326
12391
  await writeProfiles({
@@ -12339,7 +12404,7 @@ var registerAgentsCommand = (program2, deps) => {
12339
12404
  const cliProfile = getActiveConfigProfile(command);
12340
12405
  const cliConfig = await loadCliConfig(cliProfile);
12341
12406
  const auth = await resolveAuthContext(options, command, deps);
12342
- const core = await import("./dist-QLN52XKY.js");
12407
+ const core = await import("./dist-MQQKC6DZ.js");
12343
12408
  const profileResponse = await core.getAgentProfile({
12344
12409
  baseUrl: auth.baseUrl,
12345
12410
  authToken: auth.token,
@@ -12837,7 +12902,7 @@ var registerDiagnosticsCommands = (program2, deps) => {
12837
12902
  const baseUrl = await deps.resolveBaseUrl(options, command);
12838
12903
  const profile = getActiveConfigProfile(command);
12839
12904
  const config = await loadCliConfig(profile);
12840
- const core = await import("./dist-QLN52XKY.js");
12905
+ const core = await import("./dist-MQQKC6DZ.js");
12841
12906
  const auth = await core.getAuthStatus(baseUrl, { validate: true });
12842
12907
  if (options.format === "text" || !options.format) {
12843
12908
  process.stdout.write(
@@ -12887,7 +12952,7 @@ var registerDiagnosticsCommands = (program2, deps) => {
12887
12952
  detail: getCliConfigPath(profile)
12888
12953
  });
12889
12954
  try {
12890
- const core = await import("./dist-QLN52XKY.js");
12955
+ const core = await import("./dist-MQQKC6DZ.js");
12891
12956
  core.assertSecureBaseUrl(baseUrl);
12892
12957
  checks.push({
12893
12958
  id: "base-url-secure",
@@ -12987,7 +13052,7 @@ var resolveToken2 = async (options, deps, baseUrl, command) => {
12987
13052
  return options.accessKey;
12988
13053
  }
12989
13054
  try {
12990
- const core = await import("./dist-QLN52XKY.js");
13055
+ const core = await import("./dist-MQQKC6DZ.js");
12991
13056
  return await core.getAuthToken({
12992
13057
  baseUrl
12993
13058
  });
@@ -13071,7 +13136,7 @@ var registerModelsCommand = (program2, deps) => {
13071
13136
  let source = "fallback";
13072
13137
  let modelList = fallbackModels;
13073
13138
  try {
13074
- const core = await import("./dist-QLN52XKY.js");
13139
+ const core = await import("./dist-MQQKC6DZ.js");
13075
13140
  const response = await fetch(`${core.normalizeApiBase(baseUrl)}/models`, {
13076
13141
  headers: {
13077
13142
  Accept: "application/json",
@@ -14250,7 +14315,7 @@ var uninstallCompletionScript = async (shell) => {
14250
14315
  var runInteractiveLoginOnboarding = async (baseUrl, token) => {
14251
14316
  const [{ render }, { Onboarding }] = await Promise.all([
14252
14317
  import("ink"),
14253
- import("./Onboarding-SAYMQ36N.js")
14318
+ import("./Onboarding-CORIICF5.js")
14254
14319
  ]);
14255
14320
  await new Promise((resolve) => {
14256
14321
  let app;
@@ -14572,7 +14637,7 @@ var resolveBaseUrl = async (options, command) => {
14572
14637
  });
14573
14638
  }
14574
14639
  try {
14575
- const { getAuthStatus } = await import("./dist-QLN52XKY.js");
14640
+ const { getAuthStatus } = await import("./dist-MQQKC6DZ.js");
14576
14641
  const status = await getAuthStatus();
14577
14642
  const storedBaseUrl = status.baseUrl;
14578
14643
  if (storedBaseUrl && shouldUseStoredBaseUrl(storedBaseUrl)) {
@@ -14646,7 +14711,7 @@ program.command("login").description("Authenticate with Cloudeval").option(
14646
14711
  checkUserStatus,
14647
14712
  ensurePlaygroundProject,
14648
14713
  login
14649
- } = await import("./dist-QLN52XKY.js");
14714
+ } = await import("./dist-MQQKC6DZ.js");
14650
14715
  assertSecureBaseUrl(options.baseUrl);
14651
14716
  const headlessEnvironment = isHeadlessEnvironment();
14652
14717
  const headlessLogin = options.headless || headlessEnvironment;
@@ -14721,7 +14786,7 @@ program.command("logout").description("Log out and clear stored authentication s
14721
14786
  DEFAULT_BASE_URL
14722
14787
  ).option("--all-devices", "Revoke sessions on all devices", false).action(async (options) => {
14723
14788
  try {
14724
- const { assertSecureBaseUrl, logout } = await import("./dist-QLN52XKY.js");
14789
+ const { assertSecureBaseUrl, logout } = await import("./dist-MQQKC6DZ.js");
14725
14790
  assertSecureBaseUrl(options.baseUrl);
14726
14791
  const result = await logout({
14727
14792
  baseUrl: options.baseUrl,
@@ -14755,7 +14820,7 @@ authCommand.command("status").description("Show current authentication status").
14755
14820
  DEFAULT_BASE_URL
14756
14821
  ).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) => {
14757
14822
  try {
14758
- const { assertSecureBaseUrl, getAuthStatus } = await import("./dist-QLN52XKY.js");
14823
+ const { assertSecureBaseUrl, getAuthStatus } = await import("./dist-MQQKC6DZ.js");
14759
14824
  const effectiveBaseUrl = await resolveBaseUrl(options, command);
14760
14825
  assertSecureBaseUrl(effectiveBaseUrl);
14761
14826
  const status = await getAuthStatus(effectiveBaseUrl, { validate: true });
@@ -14972,10 +15037,10 @@ program.command("tui").description("Open the CloudEval Terminal UI").option(
14972
15037
  "Access key for automation",
14973
15038
  process.env.CLOUDEVAL_ACCESS_KEY
14974
15039
  ).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) => {
14975
- const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
15040
+ const { assertSecureBaseUrl } = await import("./dist-MQQKC6DZ.js");
14976
15041
  const [{ render }, { App }] = await Promise.all([
14977
15042
  import("ink"),
14978
- import("./App-ZUKNFEP4.js")
15043
+ import("./App-4NDMTVMJ.js")
14979
15044
  ]);
14980
15045
  const baseUrl = await resolveBaseUrl(options, command);
14981
15046
  assertSecureBaseUrl(baseUrl);
@@ -15030,10 +15095,10 @@ program.command("chat").description("Start an interactive chat session").option(
15030
15095
  "Access key for automation",
15031
15096
  process.env.CLOUDEVAL_ACCESS_KEY
15032
15097
  ).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) => {
15033
- const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
15098
+ const { assertSecureBaseUrl } = await import("./dist-MQQKC6DZ.js");
15034
15099
  const [{ render }, { App }] = await Promise.all([
15035
15100
  import("ink"),
15036
- import("./App-ZUKNFEP4.js")
15101
+ import("./App-4NDMTVMJ.js")
15037
15102
  ]);
15038
15103
  const baseUrl = await resolveBaseUrl(options, command);
15039
15104
  assertSecureBaseUrl(baseUrl);
@@ -15108,7 +15173,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
15108
15173
  const question = Array.isArray(questionParts) ? questionParts.join(" ") : String(questionParts);
15109
15174
  const commandName = command.parent?.args?.[0] === "agent" ? "agent" : "ask";
15110
15175
  const selectedMode = commandName === "agent" ? "agent" : "ask";
15111
- const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
15176
+ const { assertSecureBaseUrl } = await import("./dist-MQQKC6DZ.js");
15112
15177
  const baseUrl = await resolveBaseUrl(options, command);
15113
15178
  assertSecureBaseUrl(baseUrl);
15114
15179
  const selectedProfile = getActiveConfigProfile(command);
@@ -15149,7 +15214,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
15149
15214
  const fs14 = await import("fs");
15150
15215
  const fsPromises = await import("fs/promises");
15151
15216
  const { randomUUID: randomUUID5 } = await import("crypto");
15152
- const core = await import("./dist-QLN52XKY.js");
15217
+ const core = await import("./dist-MQQKC6DZ.js");
15153
15218
  const {
15154
15219
  streamChat,
15155
15220
  reduceChunk,
@@ -15205,7 +15270,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
15205
15270
  console.error("Authentication required. Starting login process...\n");
15206
15271
  }
15207
15272
  try {
15208
- const { login } = await import("./dist-QLN52XKY.js");
15273
+ const { login } = await import("./dist-MQQKC6DZ.js");
15209
15274
  verboseLog("Calling interactive login", { baseUrl });
15210
15275
  token = await login(baseUrl, {
15211
15276
  headless: isHeadlessEnvironment()
@@ -15269,7 +15334,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
15269
15334
  message: error.message
15270
15335
  });
15271
15336
  }
15272
- const { resolveAskProject } = await import("./resolveAskProject-WOMNHUYT.js");
15337
+ const { resolveAskProject } = await import("./resolveAskProject-KQKI5GRT.js");
15273
15338
  let project;
15274
15339
  try {
15275
15340
  project = await resolveAskProject({
@@ -15787,7 +15852,7 @@ Error: ${errorMsg}
15787
15852
  program.command("banner").description("Preview the startup banner and terminal capabilities").action(async () => {
15788
15853
  const { render } = await import("ink");
15789
15854
  const BannerPreview = React.lazy(async () => ({
15790
- default: (await import("./Banner-ZPALP2NW.js")).Banner
15855
+ default: (await import("./Banner-LP37NIKI.js")).Banner
15791
15856
  }));
15792
15857
  render(
15793
15858
  /* @__PURE__ */ jsx(React.Suspense, { fallback: null, children: /* @__PURE__ */ jsx(BannerPreview, { disable: false }) })
@@ -72,7 +72,7 @@ import {
72
72
  revokeCredential,
73
73
  runReports,
74
74
  streamChat
75
- } from "./chunk-3MIP274G.js";
75
+ } from "./chunk-2OLI5VOG.js";
76
76
  export {
77
77
  AgentProfileRequestError,
78
78
  BUNDLED_AGENT_PROFILES,
@@ -1,6 +1,6 @@
1
1
  // src/resolveAskProject.ts
2
2
  var resolveAskProject = async (input) => {
3
- const core = await import("./dist-QLN52XKY.js");
3
+ const core = await import("./dist-MQQKC6DZ.js");
4
4
  const { getProjects, ensurePlaygroundProject, checkUserStatus } = core;
5
5
  let userId = input.authenticatedUserId;
6
6
  let user = input.authenticatedUser;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ganakailabs/cloudeval-cli",
3
- "version": "0.26.7",
3
+ "version": "0.26.9",
4
4
  "license": "LicenseRef-CloudEval-CLI",
5
5
  "type": "module",
6
6
  "description": "CloudEval CLI for cloud architecture, cost, report, automation, and MCP workflows.",
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.7",
17
+ "versionInfo": "0.26.9",
18
18
  "downloadLocation": "https://github.com/ganakailabs/cloudeval-cli",
19
19
  "filesAnalyzed": false,
20
20
  "licenseConcluded": "LicenseRef-CloudEval-CLI",