@ganakailabs/cloudeval-cli 0.26.8 → 0.26.10

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-PF2J2PFC.js";
41
+ } from "./chunk-MDLBOB5A.js";
42
42
  import {
43
43
  CLI_VERSION
44
- } from "./chunk-YMGKGMUW.js";
44
+ } from "./chunk-IVGJTC5I.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-PF2J2PFC.js";
7
- import "./chunk-YMGKGMUW.js";
6
+ } from "./chunk-MDLBOB5A.js";
7
+ import "./chunk-IVGJTC5I.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
  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.8";
2
+ var CLI_VERSION = "0.26.10";
3
3
 
4
4
  export {
5
5
  CLI_VERSION
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CLI_VERSION
3
- } from "./chunk-YMGKGMUW.js";
3
+ } from "./chunk-IVGJTC5I.js";
4
4
  import {
5
5
  shouldUseColor,
6
6
  terminalTheme
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-YMGKGMUW.js";
39
+ } from "./chunk-IVGJTC5I.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,
@@ -2539,6 +2539,15 @@ var formatValidation = (validation) => {
2539
2539
  const unitFailed = displayNumber(validation?.unitTests?.failed);
2540
2540
  return `Policy checks ${policyFailed} failed, unit tests ${unitFailed} failed`;
2541
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;
2542
2551
  var extractPillars = (waf) => {
2543
2552
  const fromArray = waf?.parsed?.score?.pillars;
2544
2553
  if (Array.isArray(fromArray)) {
@@ -2921,9 +2930,10 @@ var generateAiSummary = async ({
2921
2930
  agentProfileId,
2922
2931
  data
2923
2932
  }) => {
2924
- const core = await import("./dist-QLN52XKY.js");
2933
+ const core = await import("./dist-MQQKC6DZ.js");
2925
2934
  const threadId = `review-${data.projectId}-${Date.now()}`;
2926
2935
  let markdown = "";
2936
+ let chatState = { ...core.initialChatState, threadId };
2927
2937
  for await (const chunk of core.streamChat({
2928
2938
  baseUrl,
2929
2939
  authToken: token,
@@ -2953,17 +2963,24 @@ var generateAiSummary = async ({
2953
2963
  responseCompletionGraceMs: 250,
2954
2964
  streamIdleTimeoutMs: 12e4
2955
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;
2956
2969
  const content = chunk?.content;
2970
+ if (typeof chunkAssistantMessage === "string" && chunkAssistantMessage.trim()) {
2971
+ markdown = chunkAssistantMessage;
2972
+ }
2957
2973
  if (chunk.type === "responding" && typeof content === "string") {
2958
- markdown += content;
2974
+ markdown = latestMessage?.content || `${markdown}${content}`;
2959
2975
  }
2960
2976
  }
2977
+ const finalMessage = [...chatState.messages ?? []].reverse().find((message) => message.role === "assistant");
2961
2978
  return {
2962
2979
  enabled: true,
2963
2980
  mode,
2964
2981
  ...mode === "agent" ? { agentProfileId: agentProfileId ?? "architecture" } : {},
2965
2982
  ...model ? { model } : {},
2966
- markdown: markdown.trim(),
2983
+ markdown: String(finalMessage?.content || markdown).trim(),
2967
2984
  threadId
2968
2985
  };
2969
2986
  };
@@ -2972,47 +2989,65 @@ var buildMarkdownSummary = (data) => {
2972
2989
  const score = data.gate?.overallScore ?? "unknown";
2973
2990
  const cost = data.gate?.cost?.monthly;
2974
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);
2975
2996
  const pillarLines = Array.isArray(data.gate?.wellArchitected?.pillars) ? data.gate.wellArchitected.pillars.map(
2976
- (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()}`
2977
2998
  ) : [];
2978
2999
  const lines = [
2979
- "### CloudEval review",
3000
+ `**${gateStatus}** for ${projectDisplay}: Well-Architected ${score}, cost ${formatMoney(cost?.amount, cost?.currency)}, ${compactValidation(validation)}.`,
2980
3001
  "",
2981
- `- **Project:** \`${data.projectId}\``,
2982
- `- **Repository:** \`${data.repo ?? "unknown"}\``,
2983
- `- **Ref:** \`${data.ref ?? "unknown"}\``,
2984
- `- **Commit:** \`${String(data.commitSha ?? "unknown").slice(0, 12)}\``,
2985
- `- **Gate:** ${gateStatus}`,
2986
- `- **Well-Architected score:** ${score}`,
2987
- `- **Cost:** ${formatMoney(cost?.amount, cost?.currency)}`,
2988
- `- **Validation:** ${formatValidation(validation)}`
3002
+ `Source: \`${source}\` \xB7 commit \`${commit}\``
2989
3003
  ];
3004
+ if (data.aiSummary?.markdown) {
3005
+ lines.push("", "#### AI summary", "", data.aiSummary.markdown);
3006
+ }
2990
3007
  if (Array.isArray(data.gate?.failures) && data.gate.failures.length) {
2991
3008
  lines.push("", "#### Gate failures", "", ...data.gate.failures.map((failure) => `- ${failure}`));
2992
3009
  }
2993
3010
  if (pillarLines.length) {
2994
- 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
+ );
2995
3021
  }
2996
3022
  if (cost?.amount !== void 0 || cost?.threshold !== void 0) {
3023
+ const costLines = [`- Monthly estimate: ${formatMoney(cost?.amount, cost?.currency)}`];
3024
+ if (data.gate?.cost?.estimatedSavings?.amount !== void 0) {
3025
+ costLines.push(
3026
+ `- Estimated savings: ${formatMoney(data.gate.cost.estimatedSavings.amount, data.gate.cost.estimatedSavings.currency)}`
3027
+ );
3028
+ }
2997
3029
  lines.push(
2998
3030
  "",
2999
- "#### Cost drilldown",
3031
+ "<details>",
3032
+ "<summary>Cost details</summary>",
3033
+ "",
3034
+ ...costLines,
3000
3035
  "",
3001
- `- Cost: ${formatMoney(cost?.amount, cost?.currency)}${cost?.threshold !== void 0 ? ` (max ${cost.threshold})` : ""}`
3036
+ "</details>"
3002
3037
  );
3003
3038
  }
3004
3039
  if (validation) {
3005
3040
  lines.push(
3006
3041
  "",
3007
- "#### Validation drilldown",
3042
+ "<details>",
3043
+ "<summary>Validation details</summary>",
3008
3044
  "",
3009
- `- Validation: ${formatValidation(validation)}`
3045
+ `- ${formatValidation(validation)}`,
3046
+ "",
3047
+ "</details>"
3010
3048
  );
3011
3049
  }
3012
- if (data.aiSummary?.markdown) {
3013
- lines.push("", "## AI summary", "", data.aiSummary.markdown);
3014
- }
3015
- return lines.join("\n");
3050
+ return lines.filter((line) => line !== void 0).join("\n");
3016
3051
  };
3017
3052
  var registerReviewCommand = (program2, deps) => {
3018
3053
  const command = addAuthOptions(
@@ -3093,6 +3128,17 @@ var registerReviewCommand = (program2, deps) => {
3093
3128
  ]);
3094
3129
  const data = {
3095
3130
  projectId,
3131
+ project: {
3132
+ id: projectId,
3133
+ name: String(project?.name ?? projectId),
3134
+ url: buildFrontendUrl({
3135
+ baseUrl: resolveFrontendBaseUrl({ apiBaseUrl: context.baseUrl }),
3136
+ target: "project",
3137
+ projectId,
3138
+ view: "preview",
3139
+ layout: "architecture"
3140
+ })
3141
+ },
3096
3142
  repo,
3097
3143
  ref,
3098
3144
  commitSha,
@@ -4477,7 +4523,7 @@ var runChatRecipe = async (recipe, prompt2, options, command, deps) => {
4477
4523
  });
4478
4524
  progressWriter.write({ type: "auth", step: "auth", message: "Resolving authentication" });
4479
4525
  const context = await resolveAuthContext(options, command, deps);
4480
- const core = await import("./dist-QLN52XKY.js");
4526
+ const core = await import("./dist-MQQKC6DZ.js");
4481
4527
  progressWriter.write({
4482
4528
  type: "request",
4483
4529
  step: "project",
@@ -5946,7 +5992,7 @@ var configureDiagramExportCommand = (command, deps) => addAuthOptions(command, d
5946
5992
  const context = requireAuthUser(
5947
5993
  await resolveAuthContext(options, actionCommand, deps)
5948
5994
  );
5949
- const core = await import("./dist-QLN52XKY.js");
5995
+ const core = await import("./dist-MQQKC6DZ.js");
5950
5996
  const projects = await core.getProjects(
5951
5997
  context.baseUrl,
5952
5998
  context.token,
@@ -6023,7 +6069,7 @@ var registerProjectsCommand = (program2, deps) => {
6023
6069
  addCommon(addAuthOptions(projects.command("list").description("List projects"), deps.defaultBaseUrl)).action(async (options, command) => {
6024
6070
  try {
6025
6071
  const context = await resolveAuthContext(options, command, deps);
6026
- const core = await import("./dist-QLN52XKY.js");
6072
+ const core = await import("./dist-MQQKC6DZ.js");
6027
6073
  const data = await listProjectsForContext(core, context);
6028
6074
  const url = buildFrontendUrl({ baseUrl: frontendBase(context, options), target: "projects" });
6029
6075
  await writeProjectListOutput({ data, options, frontendUrl: url });
@@ -6041,7 +6087,7 @@ var registerProjectsCommand = (program2, deps) => {
6041
6087
  ).action(async (id, options, command) => {
6042
6088
  try {
6043
6089
  const context = await resolveAuthContext(options, command, deps);
6044
- const core = await import("./dist-QLN52XKY.js");
6090
+ const core = await import("./dist-MQQKC6DZ.js");
6045
6091
  const list = await listProjectsForContext(core, context);
6046
6092
  const data = list.find((project) => project.id === id);
6047
6093
  if (!data) {
@@ -6106,7 +6152,7 @@ var registerProjectsCommand = (program2, deps) => {
6106
6152
  try {
6107
6153
  assertSingleProjectSource(options);
6108
6154
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6109
- const core = await import("./dist-QLN52XKY.js");
6155
+ const core = await import("./dist-MQQKC6DZ.js");
6110
6156
  const template = await fileBlob(options.templateFile);
6111
6157
  const parameters = await fileBlob(options.parametersFile);
6112
6158
  const workspace = options.workspaceDir ? await collectWorkspaceFiles(options.workspaceDir, options) : void 0;
@@ -6235,7 +6281,7 @@ var registerConnectionsCommand = (program2, deps) => {
6235
6281
  addCommon2(addAuthOptions(connections.command("list").description("List connections"), deps.defaultBaseUrl)).action(async (options, command) => {
6236
6282
  try {
6237
6283
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6238
- const core = await import("./dist-QLN52XKY.js");
6284
+ const core = await import("./dist-MQQKC6DZ.js");
6239
6285
  const data = await core.listConnections({
6240
6286
  baseUrl: context.baseUrl,
6241
6287
  authToken: context.token,
@@ -6260,7 +6306,7 @@ var registerConnectionsCommand = (program2, deps) => {
6260
6306
  ).action(async (id, options, command) => {
6261
6307
  try {
6262
6308
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6263
- const core = await import("./dist-QLN52XKY.js");
6309
+ const core = await import("./dist-MQQKC6DZ.js");
6264
6310
  const data = await core.getConnection({
6265
6311
  baseUrl: context.baseUrl,
6266
6312
  authToken: context.token,
@@ -6598,7 +6644,7 @@ var checkoutReturnUrl = (context, options) => options.returnTo || billingUrl(con
6598
6644
  var runTopUpCheckout = async (commandName, packId, options, command, deps) => {
6599
6645
  try {
6600
6646
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6601
- const core = await import("./dist-QLN52XKY.js");
6647
+ const core = await import("./dist-MQQKC6DZ.js");
6602
6648
  const returnTo = checkoutReturnUrl(context, options);
6603
6649
  const session = await core.createTopUpCheckoutSession({
6604
6650
  baseUrl: context.baseUrl,
@@ -6638,7 +6684,7 @@ var registerBillingCommands = (program2, deps) => {
6638
6684
  ).action(async (options, command) => {
6639
6685
  try {
6640
6686
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6641
- const core = await import("./dist-QLN52XKY.js");
6687
+ const core = await import("./dist-MQQKC6DZ.js");
6642
6688
  const range = rangeToDates("30d");
6643
6689
  const [entitlement, usageSummary] = await Promise.all([
6644
6690
  core.getBillingEntitlement({
@@ -6668,7 +6714,7 @@ var registerBillingCommands = (program2, deps) => {
6668
6714
  addCommon3(addAuthOptions(billing.command("summary").description("Show billing summary"), deps.defaultBaseUrl)).action(async (options, command) => {
6669
6715
  try {
6670
6716
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6671
- const core = await import("./dist-QLN52XKY.js");
6717
+ const core = await import("./dist-MQQKC6DZ.js");
6672
6718
  const range = rangeToDates("30d");
6673
6719
  const [entitlement, subscriptionStatus, usageSummary] = await Promise.all([
6674
6720
  core.getBillingEntitlement({ baseUrl: context.baseUrl, authToken: context.token }),
@@ -6704,7 +6750,7 @@ var registerBillingCommands = (program2, deps) => {
6704
6750
  addCommon3(addAuthOptions(billing.command("plans").description("Show billing plans"), deps.defaultBaseUrl)).action(async (options, command) => {
6705
6751
  try {
6706
6752
  const context = await resolveAuthContext(options, command, deps);
6707
- const core = await import("./dist-QLN52XKY.js");
6753
+ const core = await import("./dist-MQQKC6DZ.js");
6708
6754
  const data = await core.getBillingConfig({ baseUrl: context.baseUrl, authToken: context.token });
6709
6755
  const url = billingUrl(context, { ...options, tab: "plans" });
6710
6756
  await write("billing plans", data, options, url);
@@ -6716,7 +6762,7 @@ var registerBillingCommands = (program2, deps) => {
6716
6762
  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) => {
6717
6763
  try {
6718
6764
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6719
- const core = await import("./dist-QLN52XKY.js");
6765
+ const core = await import("./dist-MQQKC6DZ.js");
6720
6766
  const range = rangeToDates(options.range);
6721
6767
  const data = await core.getBillingUsageSummary({
6722
6768
  baseUrl: context.baseUrl,
@@ -6739,7 +6785,7 @@ var registerBillingCommands = (program2, deps) => {
6739
6785
  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) => {
6740
6786
  try {
6741
6787
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6742
- const core = await import("./dist-QLN52XKY.js");
6788
+ const core = await import("./dist-MQQKC6DZ.js");
6743
6789
  const range = rangeToDates(options.range);
6744
6790
  const data = await core.getBillingUsageLedger({
6745
6791
  baseUrl: context.baseUrl,
@@ -6767,7 +6813,7 @@ var registerBillingCommands = (program2, deps) => {
6767
6813
  addCommon3(addAuthOptions(billing.command(name).description(`Show billing ${name}`), deps.defaultBaseUrl)).option("--limit <n>", "Result limit", "25").action(async (options, command) => {
6768
6814
  try {
6769
6815
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6770
- const core = await import("./dist-QLN52XKY.js");
6816
+ const core = await import("./dist-MQQKC6DZ.js");
6771
6817
  const data = await core[getter]({
6772
6818
  baseUrl: context.baseUrl,
6773
6819
  authToken: context.token,
@@ -6785,7 +6831,7 @@ var registerBillingCommands = (program2, deps) => {
6785
6831
  addCommon3(addAuthOptions(topups, deps.defaultBaseUrl)).option("--limit <n>", "Result limit", "25").action(async (options, command) => {
6786
6832
  try {
6787
6833
  const context = requireAuthUser(await resolveAuthContext(options, command, deps));
6788
- const core = await import("./dist-QLN52XKY.js");
6834
+ const core = await import("./dist-MQQKC6DZ.js");
6789
6835
  const data = await core.getTopUpPacks({
6790
6836
  baseUrl: context.baseUrl,
6791
6837
  authToken: context.token
@@ -9456,7 +9502,7 @@ var reportsFrontendUrl = (config, input) => buildFrontendUrl({
9456
9502
  reportVerbosity: input.reportVerbosity
9457
9503
  });
9458
9504
  var resolveAuth = async (config, options = {}) => {
9459
- const core = await import("./dist-QLN52XKY.js");
9505
+ const core = await import("./dist-MQQKC6DZ.js");
9460
9506
  core.assertSecureBaseUrl(config.baseUrl);
9461
9507
  let token;
9462
9508
  try {
@@ -9552,7 +9598,7 @@ var assertModelAvailable = async (config, token) => {
9552
9598
  if (!config.model) {
9553
9599
  return;
9554
9600
  }
9555
- const core = await import("./dist-QLN52XKY.js");
9601
+ const core = await import("./dist-MQQKC6DZ.js");
9556
9602
  try {
9557
9603
  const response = await fetch(
9558
9604
  `${core.normalizeApiBase(config.baseUrl)}/models`,
@@ -9809,7 +9855,7 @@ var buildToolHandlers = (serverOptions) => {
9809
9855
  });
9810
9856
  handlers.set("agent_profiles_list", async (args) => {
9811
9857
  const config = await resolveInvocationConfig(serverOptions, args);
9812
- const core = await import("./dist-QLN52XKY.js");
9858
+ const core = await import("./dist-MQQKC6DZ.js");
9813
9859
  const data = await listProfilesForDiscovery(core, config.baseUrl);
9814
9860
  return withEnvelope({
9815
9861
  command: "agents list",
@@ -9822,7 +9868,7 @@ var buildToolHandlers = (serverOptions) => {
9822
9868
  throw new Error("profileId is required.");
9823
9869
  }
9824
9870
  const config = await resolveInvocationConfig(serverOptions, args);
9825
- const core = await import("./dist-QLN52XKY.js");
9871
+ const core = await import("./dist-MQQKC6DZ.js");
9826
9872
  const data = await getProfileForDiscovery(core, config.baseUrl, profileId);
9827
9873
  return withEnvelope({
9828
9874
  command: "agents show",
@@ -10459,7 +10505,7 @@ var buildToolHandlers = (serverOptions) => {
10459
10505
  });
10460
10506
  handlers.set("auth_status", async (args) => {
10461
10507
  const config = await resolveInvocationConfig(serverOptions, args);
10462
- const core = await import("./dist-QLN52XKY.js");
10508
+ const core = await import("./dist-MQQKC6DZ.js");
10463
10509
  const data = await core.getAuthStatus(config.baseUrl, { validate: true });
10464
10510
  return withEnvelope({
10465
10511
  command: "auth status",
@@ -10468,7 +10514,7 @@ var buildToolHandlers = (serverOptions) => {
10468
10514
  });
10469
10515
  handlers.set("status", async (args) => {
10470
10516
  const config = await resolveInvocationConfig(serverOptions, args);
10471
- const core = await import("./dist-QLN52XKY.js");
10517
+ const core = await import("./dist-MQQKC6DZ.js");
10472
10518
  const auth = await core.getAuthStatus(config.baseUrl, { validate: true });
10473
10519
  return withEnvelope({
10474
10520
  command: "status",
@@ -10499,7 +10545,7 @@ var buildToolHandlers = (serverOptions) => {
10499
10545
  }
10500
10546
  ];
10501
10547
  try {
10502
- const core = await import("./dist-QLN52XKY.js");
10548
+ const core = await import("./dist-MQQKC6DZ.js");
10503
10549
  core.assertSecureBaseUrl(config.baseUrl);
10504
10550
  checks.push({
10505
10551
  id: "base-url-secure",
@@ -11019,7 +11065,7 @@ var buildToolHandlers = (serverOptions) => {
11019
11065
  } catch {
11020
11066
  token = config.accessKey;
11021
11067
  }
11022
- const core = await import("./dist-QLN52XKY.js");
11068
+ const core = await import("./dist-MQQKC6DZ.js");
11023
11069
  const data = await core.getBillingConfig({
11024
11070
  baseUrl: config.baseUrl,
11025
11071
  authToken: token
@@ -11873,7 +11919,7 @@ var registerCapabilitiesCommand = (program2, deps) => {
11873
11919
  warnIfAccessKeyFromCliOption(options, command);
11874
11920
  let data = capabilities;
11875
11921
  if (options.live) {
11876
- const core = await import("./dist-QLN52XKY.js");
11922
+ const core = await import("./dist-MQQKC6DZ.js");
11877
11923
  const baseUrl = await deps.resolveBaseUrl(options, command);
11878
11924
  const accessKey = options.accessKeyStdin ? await deps.readStdinValue() : options.accessKey;
11879
11925
  const token = await core.getAuthToken({ accessKey, baseUrl });
@@ -12011,7 +12057,7 @@ var writeCredentialOutput = async (input) => {
12011
12057
  };
12012
12058
  var resolveCoreAuth = async (options, command, deps) => {
12013
12059
  const context = await resolveAuthContext(options, command, deps);
12014
- const core = await import("./dist-QLN52XKY.js");
12060
+ const core = await import("./dist-MQQKC6DZ.js");
12015
12061
  return { ...context, core };
12016
12062
  };
12017
12063
  var parseCapabilities = (value) => value?.split(",").map((item) => item.trim()).filter(Boolean);
@@ -12328,7 +12374,7 @@ var registerAgentsCommand = (program2, deps) => {
12328
12374
  const agents = program2.command("agents").description("CloudEval Agent Profile utilities");
12329
12375
  addAgentOutputOptions(agents.command("list").description("List Agent Profiles"), deps).action(async (options, command) => {
12330
12376
  const baseUrl = await deps.resolveBaseUrl(options, command);
12331
- const core = await import("./dist-QLN52XKY.js");
12377
+ const core = await import("./dist-MQQKC6DZ.js");
12332
12378
  core.assertSecureBaseUrl(baseUrl);
12333
12379
  const data = await listProfilesForDiscovery2(core, baseUrl);
12334
12380
  await writeProfiles({
@@ -12344,7 +12390,7 @@ var registerAgentsCommand = (program2, deps) => {
12344
12390
  deps
12345
12391
  ).action(async (profileId, options, command) => {
12346
12392
  const baseUrl = await deps.resolveBaseUrl(options, command);
12347
- const core = await import("./dist-QLN52XKY.js");
12393
+ const core = await import("./dist-MQQKC6DZ.js");
12348
12394
  core.assertSecureBaseUrl(baseUrl);
12349
12395
  const data = await getProfileForDiscovery2(core, baseUrl, profileId);
12350
12396
  await writeProfiles({
@@ -12363,7 +12409,7 @@ var registerAgentsCommand = (program2, deps) => {
12363
12409
  const cliProfile = getActiveConfigProfile(command);
12364
12410
  const cliConfig = await loadCliConfig(cliProfile);
12365
12411
  const auth = await resolveAuthContext(options, command, deps);
12366
- const core = await import("./dist-QLN52XKY.js");
12412
+ const core = await import("./dist-MQQKC6DZ.js");
12367
12413
  const profileResponse = await core.getAgentProfile({
12368
12414
  baseUrl: auth.baseUrl,
12369
12415
  authToken: auth.token,
@@ -12861,7 +12907,7 @@ var registerDiagnosticsCommands = (program2, deps) => {
12861
12907
  const baseUrl = await deps.resolveBaseUrl(options, command);
12862
12908
  const profile = getActiveConfigProfile(command);
12863
12909
  const config = await loadCliConfig(profile);
12864
- const core = await import("./dist-QLN52XKY.js");
12910
+ const core = await import("./dist-MQQKC6DZ.js");
12865
12911
  const auth = await core.getAuthStatus(baseUrl, { validate: true });
12866
12912
  if (options.format === "text" || !options.format) {
12867
12913
  process.stdout.write(
@@ -12911,7 +12957,7 @@ var registerDiagnosticsCommands = (program2, deps) => {
12911
12957
  detail: getCliConfigPath(profile)
12912
12958
  });
12913
12959
  try {
12914
- const core = await import("./dist-QLN52XKY.js");
12960
+ const core = await import("./dist-MQQKC6DZ.js");
12915
12961
  core.assertSecureBaseUrl(baseUrl);
12916
12962
  checks.push({
12917
12963
  id: "base-url-secure",
@@ -13011,7 +13057,7 @@ var resolveToken2 = async (options, deps, baseUrl, command) => {
13011
13057
  return options.accessKey;
13012
13058
  }
13013
13059
  try {
13014
- const core = await import("./dist-QLN52XKY.js");
13060
+ const core = await import("./dist-MQQKC6DZ.js");
13015
13061
  return await core.getAuthToken({
13016
13062
  baseUrl
13017
13063
  });
@@ -13095,7 +13141,7 @@ var registerModelsCommand = (program2, deps) => {
13095
13141
  let source = "fallback";
13096
13142
  let modelList = fallbackModels;
13097
13143
  try {
13098
- const core = await import("./dist-QLN52XKY.js");
13144
+ const core = await import("./dist-MQQKC6DZ.js");
13099
13145
  const response = await fetch(`${core.normalizeApiBase(baseUrl)}/models`, {
13100
13146
  headers: {
13101
13147
  Accept: "application/json",
@@ -14274,7 +14320,7 @@ var uninstallCompletionScript = async (shell) => {
14274
14320
  var runInteractiveLoginOnboarding = async (baseUrl, token) => {
14275
14321
  const [{ render }, { Onboarding }] = await Promise.all([
14276
14322
  import("ink"),
14277
- import("./Onboarding-SAYMQ36N.js")
14323
+ import("./Onboarding-CORIICF5.js")
14278
14324
  ]);
14279
14325
  await new Promise((resolve) => {
14280
14326
  let app;
@@ -14596,7 +14642,7 @@ var resolveBaseUrl = async (options, command) => {
14596
14642
  });
14597
14643
  }
14598
14644
  try {
14599
- const { getAuthStatus } = await import("./dist-QLN52XKY.js");
14645
+ const { getAuthStatus } = await import("./dist-MQQKC6DZ.js");
14600
14646
  const status = await getAuthStatus();
14601
14647
  const storedBaseUrl = status.baseUrl;
14602
14648
  if (storedBaseUrl && shouldUseStoredBaseUrl(storedBaseUrl)) {
@@ -14670,7 +14716,7 @@ program.command("login").description("Authenticate with Cloudeval").option(
14670
14716
  checkUserStatus,
14671
14717
  ensurePlaygroundProject,
14672
14718
  login
14673
- } = await import("./dist-QLN52XKY.js");
14719
+ } = await import("./dist-MQQKC6DZ.js");
14674
14720
  assertSecureBaseUrl(options.baseUrl);
14675
14721
  const headlessEnvironment = isHeadlessEnvironment();
14676
14722
  const headlessLogin = options.headless || headlessEnvironment;
@@ -14745,7 +14791,7 @@ program.command("logout").description("Log out and clear stored authentication s
14745
14791
  DEFAULT_BASE_URL
14746
14792
  ).option("--all-devices", "Revoke sessions on all devices", false).action(async (options) => {
14747
14793
  try {
14748
- const { assertSecureBaseUrl, logout } = await import("./dist-QLN52XKY.js");
14794
+ const { assertSecureBaseUrl, logout } = await import("./dist-MQQKC6DZ.js");
14749
14795
  assertSecureBaseUrl(options.baseUrl);
14750
14796
  const result = await logout({
14751
14797
  baseUrl: options.baseUrl,
@@ -14779,7 +14825,7 @@ authCommand.command("status").description("Show current authentication status").
14779
14825
  DEFAULT_BASE_URL
14780
14826
  ).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) => {
14781
14827
  try {
14782
- const { assertSecureBaseUrl, getAuthStatus } = await import("./dist-QLN52XKY.js");
14828
+ const { assertSecureBaseUrl, getAuthStatus } = await import("./dist-MQQKC6DZ.js");
14783
14829
  const effectiveBaseUrl = await resolveBaseUrl(options, command);
14784
14830
  assertSecureBaseUrl(effectiveBaseUrl);
14785
14831
  const status = await getAuthStatus(effectiveBaseUrl, { validate: true });
@@ -14996,10 +15042,10 @@ program.command("tui").description("Open the CloudEval Terminal UI").option(
14996
15042
  "Access key for automation",
14997
15043
  process.env.CLOUDEVAL_ACCESS_KEY
14998
15044
  ).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) => {
14999
- const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
15045
+ const { assertSecureBaseUrl } = await import("./dist-MQQKC6DZ.js");
15000
15046
  const [{ render }, { App }] = await Promise.all([
15001
15047
  import("ink"),
15002
- import("./App-S7AENSQ6.js")
15048
+ import("./App-RQYQISZ6.js")
15003
15049
  ]);
15004
15050
  const baseUrl = await resolveBaseUrl(options, command);
15005
15051
  assertSecureBaseUrl(baseUrl);
@@ -15054,10 +15100,10 @@ program.command("chat").description("Start an interactive chat session").option(
15054
15100
  "Access key for automation",
15055
15101
  process.env.CLOUDEVAL_ACCESS_KEY
15056
15102
  ).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) => {
15057
- const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
15103
+ const { assertSecureBaseUrl } = await import("./dist-MQQKC6DZ.js");
15058
15104
  const [{ render }, { App }] = await Promise.all([
15059
15105
  import("ink"),
15060
- import("./App-S7AENSQ6.js")
15106
+ import("./App-RQYQISZ6.js")
15061
15107
  ]);
15062
15108
  const baseUrl = await resolveBaseUrl(options, command);
15063
15109
  assertSecureBaseUrl(baseUrl);
@@ -15132,7 +15178,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
15132
15178
  const question = Array.isArray(questionParts) ? questionParts.join(" ") : String(questionParts);
15133
15179
  const commandName = command.parent?.args?.[0] === "agent" ? "agent" : "ask";
15134
15180
  const selectedMode = commandName === "agent" ? "agent" : "ask";
15135
- const { assertSecureBaseUrl } = await import("./dist-QLN52XKY.js");
15181
+ const { assertSecureBaseUrl } = await import("./dist-MQQKC6DZ.js");
15136
15182
  const baseUrl = await resolveBaseUrl(options, command);
15137
15183
  assertSecureBaseUrl(baseUrl);
15138
15184
  const selectedProfile = getActiveConfigProfile(command);
@@ -15173,7 +15219,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
15173
15219
  const fs14 = await import("fs");
15174
15220
  const fsPromises = await import("fs/promises");
15175
15221
  const { randomUUID: randomUUID5 } = await import("crypto");
15176
- const core = await import("./dist-QLN52XKY.js");
15222
+ const core = await import("./dist-MQQKC6DZ.js");
15177
15223
  const {
15178
15224
  streamChat,
15179
15225
  reduceChunk,
@@ -15229,7 +15275,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
15229
15275
  console.error("Authentication required. Starting login process...\n");
15230
15276
  }
15231
15277
  try {
15232
- const { login } = await import("./dist-QLN52XKY.js");
15278
+ const { login } = await import("./dist-MQQKC6DZ.js");
15233
15279
  verboseLog("Calling interactive login", { baseUrl });
15234
15280
  token = await login(baseUrl, {
15235
15281
  headless: isHeadlessEnvironment()
@@ -15293,7 +15339,7 @@ program.command("ask").alias("agent").description("Ask a single question or run
15293
15339
  message: error.message
15294
15340
  });
15295
15341
  }
15296
- const { resolveAskProject } = await import("./resolveAskProject-WOMNHUYT.js");
15342
+ const { resolveAskProject } = await import("./resolveAskProject-KQKI5GRT.js");
15297
15343
  let project;
15298
15344
  try {
15299
15345
  project = await resolveAskProject({
@@ -15811,7 +15857,7 @@ Error: ${errorMsg}
15811
15857
  program.command("banner").description("Preview the startup banner and terminal capabilities").action(async () => {
15812
15858
  const { render } = await import("ink");
15813
15859
  const BannerPreview = React.lazy(async () => ({
15814
- default: (await import("./Banner-SDED2C3N.js")).Banner
15860
+ default: (await import("./Banner-AMIGQPVN.js")).Banner
15815
15861
  }));
15816
15862
  render(
15817
15863
  /* @__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.8",
3
+ "version": "0.26.10",
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.8",
17
+ "versionInfo": "0.26.10",
18
18
  "downloadLocation": "https://github.com/ganakailabs/cloudeval-cli",
19
19
  "filesAnalyzed": false,
20
20
  "licenseConcluded": "LicenseRef-CloudEval-CLI",