Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

callme-cli

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

callme-cli - npm Package Compare versions

Comparing version
1.3.4
to
1.4.0
+24
dist/scenario-execution.d.ts
import { type ScenarioReportView, type ScenarioRunStatus } from "./remote.js";
import type { ResolvedScenarioRunConfig } from "./config.js";
export declare const isTerminalStatus: (status: ScenarioRunStatus) => boolean;
export declare const isFailureStatus: (status: ScenarioRunStatus) => boolean;
export interface ScenarioRunResult {
reportId: string;
scenarioName: string;
report: ScenarioReportView | null;
timedOut: boolean;
}
export interface ScenarioExecutionOptions {
wait: boolean;
timeoutMs: number;
maxRuntimeMs?: number;
onTrigger?: (info: {
reportId: string;
scenarioName: string;
}) => void;
onPoll?: (report: ScenarioReportView) => void;
}
export declare const runScenarioRemotely: (config: ResolvedScenarioRunConfig, options: ScenarioExecutionOptions) => Promise<ScenarioRunResult>;
export declare const parsePositiveIntOrNull: (raw: string | undefined, label: string) => number | null;
export declare const resolveTimeoutMs: (raw: string | undefined) => number;
//# sourceMappingURL=scenario-execution.d.ts.map
{"version":3,"file":"scenario-execution.d.ts","sourceRoot":"","sources":["../src/scenario-execution.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAY7D,eAAO,MAAM,gBAAgB,GAAI,QAAQ,iBAAiB,KAAG,OAChC,CAAC;AAE9B,eAAO,MAAM,eAAe,GAAI,QAAQ,iBAAiB,KAAG,OAGtC,CAAC;AAEvB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IAGrB,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAElC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C;AAKD,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,yBAAyB,EACjC,SAAS,wBAAwB,KAChC,OAAO,CAAC,iBAAiB,CA2D3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,KAAK,MAAM,GAAG,SAAS,EACvB,OAAO,MAAM,KACZ,MAAM,GAAG,IAOX,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,GAAG,SAAS,KAAG,MAG1D,CAAC"}
// Scenario run orchestration for `callme scenario run`.
//
// Unlike collection runs (executed locally by callman-core), scenarios
// run server-side on the worker — the CLI's job is:
// 1. POST /api/pipeline/scenarios/:id/run → returns reportId.
// 2. (optional) Poll GET /api/pipeline/scenarios/reports/:id every
// ~2s until the status is terminal, or until --timeout.
//
// CLI-side --timeout ≠ server-side cancel. When the CLI gives up
// waiting, the server-side run keeps going; the report eventually
// reaches a terminal state regardless.
import { CliError } from "./errors.js";
import { fetchScenarioReport, triggerScenarioRun, } from "./remote.js";
const POLL_INTERVAL_MS = 2_000;
const DEFAULT_TIMEOUT_MS = 30 * 60 * 1000; // 30 min
const TERMINAL_STATES = new Set([
"success",
"failed",
"completed_with_failures",
"stopped",
]);
export const isTerminalStatus = (status) => TERMINAL_STATES.has(status);
export const isFailureStatus = (status) => status === "failed" ||
status === "completed_with_failures" ||
status === "stopped";
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
export const runScenarioRemotely = async (config, options) => {
const triggered = await triggerScenarioRun(config, {
scenarioId: config.scenarioId,
environmentId: config.environmentId ?? undefined,
maxRuntimeMs: options.maxRuntimeMs,
});
options.onTrigger?.({
reportId: triggered.reportId,
scenarioName: triggered.scenarioName,
});
if (!options.wait) {
return {
reportId: triggered.reportId,
scenarioName: triggered.scenarioName,
report: null,
timedOut: false,
};
}
const deadline = Date.now() + Math.max(POLL_INTERVAL_MS, options.timeoutMs);
let lastReport = null;
while (Date.now() < deadline) {
let report;
try {
report = await fetchScenarioReport(config, triggered.reportId);
}
catch (error) {
// Transient backend failures shouldn't kill the loop instantly;
// give it one retry tick. A second failure surfaces as fatal.
if (lastReport) {
throw error;
}
await sleep(POLL_INTERVAL_MS);
continue;
}
lastReport = report;
options.onPoll?.(report);
if (isTerminalStatus(report.status)) {
return {
reportId: triggered.reportId,
scenarioName: triggered.scenarioName,
report,
timedOut: false,
};
}
await sleep(POLL_INTERVAL_MS);
}
return {
reportId: triggered.reportId,
scenarioName: triggered.scenarioName,
report: lastReport,
timedOut: true,
};
};
export const parsePositiveIntOrNull = (raw, label) => {
if (raw === undefined)
return null;
const value = Number(raw);
if (!Number.isFinite(value) || !Number.isInteger(value) || value <= 0) {
throw new CliError(`${label} must be a positive integer (got "${raw}")`);
}
return value;
};
export const resolveTimeoutMs = (raw) => {
const parsed = parsePositiveIntOrNull(raw, "--timeout");
return parsed ?? DEFAULT_TIMEOUT_MS;
};
//# sourceMappingURL=scenario-execution.js.map
{"version":3,"file":"scenario-execution.js","sourceRoot":"","sources":["../src/scenario-execution.ts"],"names":[],"mappings":"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"}
+9
-0

@@ -13,2 +13,11 @@ export declare const DEFAULT_CLOUD_API_URL = "https://api.callman.io";

export declare const resolveRemoteConfig: (flags: RawRemoteFlags, env?: NodeJS.ProcessEnv) => ResolvedRemoteConfig;
export interface ResolvedScenarioRunConfig extends ResolvedRemoteConfig {
scenarioId: string;
environmentId: string | null;
}
export interface RawScenarioFlags extends RawRemoteFlags {
scenarioId?: string;
environmentId?: string;
}
export declare const resolveScenarioRunConfig: (flags: RawScenarioFlags, env?: NodeJS.ProcessEnv) => ResolvedScenarioRunConfig;
//# sourceMappingURL=config.d.ts.map
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD,eAAO,MAAM,mBAAmB,GAC9B,OAAO,cAAc,EACrB,MAAK,MAAM,CAAC,UAAwB,KACnC,oBA2BF,CAAC"}
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD,eAAO,MAAM,mBAAmB,GAC9B,OAAO,cAAc,EACrB,MAAK,MAAM,CAAC,UAAwB,KACnC,oBA2BF,CAAC;AAKF,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,wBAAwB,GACnC,OAAO,gBAAgB,EACvB,MAAK,MAAM,CAAC,UAAwB,KACnC,yBAoBF,CAAC"}

@@ -42,2 +42,15 @@ // Configuration resolution for the remote (ID-based) run mode.

};
export const resolveScenarioRunConfig = (flags, env = process.env) => {
const remote = resolveRemoteConfig(flags, env);
const scenarioId = pickFirst(flags.scenarioId, env.CALLME_SCENARIO_ID);
if (!scenarioId) {
throw new CliError("scenario-id is required (set --scenario-id or CALLME_SCENARIO_ID).");
}
const environmentId = pickFirst(flags.environmentId, env.CALLME_SCENARIO_ENV_ID);
return {
...remote,
scenarioId,
environmentId,
};
};
//# sourceMappingURL=config.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,2BAA2B;AAC3B,oCAAoC;AACpC,yCAAyC;AACzC,oEAAoE;AACpE,EAAE;AACF,qEAAqE;AACrE,oDAAoD;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAc9D,MAAM,SAAS,GAAG,CAChB,GAAG,UAAyC,EAC7B,EAAE;IACjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7D,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE,CACjD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAqB,EACrB,MAAyB,OAAO,CAAC,GAAG,EACd,EAAE;IACxB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAClF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,uDAAuD,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAChB,oEAAoE;YAClE,kEAAkE,CACrE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACxE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAChB,mFAAmF;YACjF,2EAA2E,CAC9E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;QAClC,KAAK;QACL,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC"}
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,2BAA2B;AAC3B,oCAAoC;AACpC,yCAAyC;AACzC,oEAAoE;AACpE,EAAE;AACF,qEAAqE;AACrE,oDAAoD;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAc9D,MAAM,SAAS,GAAG,CAChB,GAAG,UAAyC,EAC7B,EAAE;IACjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7D,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE,CACjD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAqB,EACrB,MAAyB,OAAO,CAAC,GAAG,EACd,EAAE;IACxB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAClF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,uDAAuD,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAChB,oEAAoE;YAClE,kEAAkE,CACrE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACxE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAChB,mFAAmF;YACjF,2EAA2E,CAC9E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;QAClC,KAAK;QACL,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,KAAuB,EACvB,MAAyB,OAAO,CAAC,GAAG,EACT,EAAE;IAC7B,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,QAAQ,CAChB,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAC7B,KAAK,CAAC,aAAa,EACnB,GAAG,CAAC,sBAAsB,CAC3B,CAAC;IAEF,OAAO;QACL,GAAG,MAAM;QACT,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC,CAAC"}

@@ -5,3 +5,3 @@ #!/usr/bin/env node

import ora from "ora";
import { resolveRemoteConfig } from "./config.js";
import { resolveRemoteConfig, resolveScenarioRunConfig } from "./config.js";
import { CliError, getErrorMessage } from "./errors.js";

@@ -13,2 +13,3 @@ import { executeCollection } from "./execution.js";

import { writeReport } from "./reports.js";
import { isFailureStatus, parsePositiveIntOrNull, resolveTimeoutMs, runScenarioRemotely, } from "./scenario-execution.js";
import { hasRunFailures } from "./summary.js";

@@ -191,3 +192,117 @@ const EXIT_SUCCESS = 0;

});
const formatScenarioDuration = (ms) => {
if (ms < 1_000)
return `${ms}ms`;
const seconds = ms / 1000;
if (seconds < 60)
return `${seconds.toFixed(1)}s`;
const minutes = Math.floor(seconds / 60);
const rem = Math.round(seconds - minutes * 60);
return `${minutes}m ${rem}s`;
};
const runScenarioCommand = async (options) => {
const silent = options.silent === true;
const wait = options.wait !== false; // default true; commander turns --no-wait into wait=false
if (options.bail === true && !silent) {
console.log(chalk.dim("Note: --bail is a no-op for scenario runs (scenarios are a single graph; per-node onFailure policies are configured in the scenario itself)."));
}
if (options.report === "html" && !silent) {
console.log(chalk.yellow("HTML reports are not supported for scenarios yet — falling back to JSON if --output is set."));
}
const config = resolveScenarioRunConfig({
apiUrl: options.apiUrl,
token: options.token,
workspace: options.workspace,
scenarioId: options.scenarioId,
environmentId: options.environmentId,
});
const timeoutMs = resolveTimeoutMs(options.timeout);
const maxRuntimeMs = parsePositiveIntOrNull(options.maxRuntime, "--max-runtime") ?? undefined;
const spinner = !silent && wait ? ora("Waiting for scenario run to finish...") : null;
let lastStatus = null;
const result = await runScenarioRemotely(config, {
wait,
timeoutMs,
maxRuntimeMs,
onTrigger: ({ reportId, scenarioName }) => {
if (!silent) {
console.log(chalk.cyan(`Triggered scenario "${scenarioName}" — report ${reportId}`));
}
spinner?.start();
},
onPoll: (report) => {
if (spinner && report.status !== lastStatus) {
spinner.text = `Scenario "${report.scenarioName}" — status: ${report.status}`;
lastStatus = report.status;
}
},
});
spinner?.stop();
if (!wait) {
if (!silent) {
console.log(chalk.green(`Scenario queued (fire-and-forget). Report id: ${result.reportId}`));
}
return EXIT_SUCCESS;
}
if (result.timedOut) {
console.error(chalk.red(`Timed out after ${formatScenarioDuration(timeoutMs)} waiting for scenario run ${result.reportId}. The run continues server-side; check the desktop app for the final report.`));
return EXIT_FATAL;
}
const report = result.report;
const failed = isFailureStatus(report.status);
const failNote = report.summary.failedNode ?? "(no specific node)";
if (!silent) {
console.log("");
console.log(chalk.bold(`Scenario "${report.scenarioName}" — ${report.status} in ${formatScenarioDuration(report.durationMs)}`));
console.log(` Nodes: ${report.summary.successfulNodes}/${report.summary.totalNodes} successful, ${report.summary.failedNodes} failed, ${report.summary.skippedNodes} skipped`);
console.log(` Tests: ${report.summary.passedTests} passed, ${report.summary.failedTests} failed`);
if (failed) {
console.log(chalk.red(` Failed at: ${failNote}`));
}
}
if (options.report === "json" && options.output) {
const fs = await import("node:fs/promises");
await fs.writeFile(options.output, JSON.stringify(report, null, 2), "utf8");
if (!silent) {
console.log(chalk.green(`Report written: ${options.output}`));
}
}
if (options.fail === false) {
return EXIT_SUCCESS;
}
return failed ? EXIT_RUN_FAILURE : EXIT_SUCCESS;
};
const scenarioCommand = program
.command("scenario")
.description("commands for server-side scenario runs");
scenarioCommand
.command("run")
.option("--scenario-id <id>", "scenario id (or CALLME_SCENARIO_ID env var)")
.option("--environment-id <id>", "scenario environment id (or CALLME_SCENARIO_ENV_ID env var); falls back to the scenario's first environment")
.option("--workspace <id>", "workspace id (or CALLME_WORKSPACE_ID env var)")
.option("--token <token>", "Personal Access Token (or CALLME_TOKEN env var)")
.option("--api-url <url>", "backend base URL (default https://api.callman.io, or CALLME_API_URL)")
.option("--no-wait", "trigger the run and exit immediately (fire-and-forget)")
.option("--timeout <ms>", "max ms to wait for the run to reach a terminal state (default 1800000 = 30 min)")
.option("--max-runtime <ms>", "advisory server-side runtime cap, forwarded to the worker")
.option("--report <json|html>", "report type (only `json` supported)")
.option("--output <file>", "report output file (with --report)")
.option("--no-fail", "return exit code 0 even when the scenario fails")
.option("--bail", "no-op for scenario runs (kept for parity with `callme run`)")
.option("--verbose", "print extra status details while polling")
.option("--silent", "suppress all non-error output")
.description("trigger a scenario run server-side and (by default) wait for it to finish")
.action(async (options) => {
try {
process.exitCode = await runScenarioCommand(options);
}
catch (error) {
const message = error instanceof CliError
? error.message
: `Unexpected error: ${getErrorMessage(error)}`;
console.error(chalk.red(`Fatal: ${message}`));
process.exitCode = EXIT_FATAL;
}
});
await program.parseAsync(process.argv);
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

@@ -15,2 +15,41 @@ import type { ResolvedRemoteConfig } from "./config.js";

}) => Promise<RemoteBundle>;
export type ScenarioRunStatus = "queued" | "running" | "success" | "failed" | "completed_with_failures" | "stopped";
export interface ScenarioTriggerResult {
reportId: string;
status: "queued";
scenarioId: string;
scenarioName: string;
environmentId: string | null;
}
export interface ScenarioReportSummary {
totalNodes: number;
successfulNodes: number;
failedNodes: number;
skippedNodes: number;
retriedNodes: number;
totalTests: number;
passedTests: number;
failedTests: number;
finalNode: string | null;
failedNode: string | null;
}
export interface ScenarioReportView {
reportId: string;
scenarioId: string;
scenarioName: string;
scenarioVersion: number;
status: ScenarioRunStatus;
triggerType: string;
environmentId: string | null;
startedAt: string;
endedAt: string;
durationMs: number;
summary: ScenarioReportSummary;
}
export declare const triggerScenarioRun: (config: ResolvedRemoteConfig, input: {
scenarioId: string;
environmentId?: string;
maxRuntimeMs?: number;
}) => Promise<ScenarioTriggerResult>;
export declare const fetchScenarioReport: (config: ResolvedRemoteConfig, reportId: string) => Promise<ScenarioReportView>;
//# sourceMappingURL=remote.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAI3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAyBD,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,oBAAoB,EAC5B,KAAK;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,KACnD,OAAO,CAAC,YAAY,CAiDtB,CAAC"}
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAI3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAyBD,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,oBAAoB,EAC5B,KAAK;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,KACnD,OAAO,CAAC,YAAY,CAiDtB,CAAC;AAOF,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,GACR,yBAAyB,GACzB,SAAS,CAAC;AAEd,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,qBAAqB,CAAC;CAChC;AA+DD,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,oBAAoB,EAC5B,OAAO;IACL,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA,OAAO,CAAC,qBAAqB,CAW/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,oBAAoB,EAC5B,UAAU,MAAM,KACf,OAAO,CAAC,kBAAkB,CAM1B,CAAC"}

@@ -68,2 +68,52 @@ // Fetch a (collection + environment) bundle from the backend so the

};
const buildScenarioRunUrl = (apiUrl, scenarioId) => new URL(`/api/pipeline/scenarios/${encodeURIComponent(scenarioId)}/run`, apiUrl).toString();
const buildScenarioReportUrl = (apiUrl, reportId) => new URL(`/api/pipeline/scenarios/reports/${encodeURIComponent(reportId)}`, apiUrl).toString();
const callPipelineApi = async (url, config, init, errorPrefix) => {
let response;
try {
response = await fetch(url, {
method: init.method,
headers: {
Authorization: `Bearer ${config.token}`,
"x-workspace-id": config.workspaceId,
Accept: "application/json",
...(init.body !== undefined
? { "Content-Type": "application/json" }
: {}),
},
body: init.body !== undefined ? JSON.stringify(init.body) : undefined,
});
}
catch (error) {
throw new CliError(`Could not reach ${config.apiUrl}: ${getErrorMessage(error)}`, error);
}
let parsed = null;
try {
parsed = await response.json();
}
catch {
// Non-JSON — leave parsed as null.
}
if (!response.ok) {
const envelope = isEnvelope(parsed) ? parsed : null;
const detail = extractMessage(envelope, response.status);
// The backend distinguishes "scope missing" with a recognisable
// message that the user can act on. Echo it verbatim so CI logs
// are self-explanatory.
throw new CliError(`${errorPrefix}: ${response.status} — ${detail}`);
}
if (!isEnvelope(parsed) || !parsed.success || !parsed.data) {
throw new CliError(`${errorPrefix}: unexpected response shape`);
}
return parsed.data;
};
export const triggerScenarioRun = async (config, input) => {
const body = {};
if (input.environmentId)
body.environmentId = input.environmentId;
if (input.maxRuntimeMs)
body.maxRuntimeMs = input.maxRuntimeMs;
return callPipelineApi(buildScenarioRunUrl(config.apiUrl, input.scenarioId), config, { method: "POST", body }, "Scenario trigger failed");
};
export const fetchScenarioReport = async (config, reportId) => callPipelineApi(buildScenarioReportUrl(config.apiUrl, reportId), config, { method: "GET" }, "Scenario report fetch failed");
//# sourceMappingURL=remote.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}

@@ -57,3 +57,19 @@ import type { ExecutionResult, RunCollectionResult, TestResult } from "callman-core";

}
export interface ScenarioRunOptions {
scenarioId?: string;
environmentId?: string;
workspace?: string;
token?: string;
apiUrl?: string;
wait?: boolean;
timeout?: string;
maxRuntime?: string;
fail?: boolean;
bail?: boolean;
silent?: boolean;
verbose?: boolean;
report?: string;
output?: string;
}
export type { ExecutionResult, RunCollectionResult, TestResult, };
//# sourceMappingURL=types.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,GAAG;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,UAAU,GACX,CAAC"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
{
"name": "callme-cli",
"version": "1.3.4",
"version": "1.4.0",
"description": "Professional command-line runner for API collections exported from the Callman desktop app. Runs requests, scripts, and contract checks via callman-core; emits HTML/JSON reports; CI-friendly exit codes.",

@@ -54,1 +54,4 @@ "keywords": [

}

@@ -167,2 +167,67 @@ # Callme CLI

## Scenario Runs (Server-Side)
`callme scenario run` triggers a Callman **scenario** on the backend
worker and (by default) polls until it finishes. Unlike `callme run`,
the scenario does not execute locally — the worker has the DB / Kafka
/ Redis pools the scenario nodes need.
```bash
# Trigger + wait (default). Exit code reflects the run result.
callme scenario run \
--scenario-id <scenarioId> \
--environment-id <scenarioEnvId> \
--workspace <workspaceId> \
--token <cm_pat_...>
# Fire-and-forget — return as soon as the run is queued.
callme scenario run --scenario-id <id> --no-wait \
--workspace <id> --token <cm_pat_...>
# Save a JSON report when finished.
callme scenario run --scenario-id <id> \
--workspace <id> --token <cm_pat_...> \
--report json --output ./scenario.json
npm run start -- scenario run \
--api-url http://localhost:4000 \
--token cm_pat_J_acaYXOAxs1jSIMBL-R34p522QiHj5RQBJlXyQDcIQ \
--workspace 69ee34951f9f4d2754369276 \
--scenario-id 69f8f261f7f688ff34f50a79 \
--environment-id e76e66f1-3000-475c-a8d8-344886e7c829 \
--report json --output ./scenario-report.json \
--timeout 4000
```
### PAT scope
Scenario triggers require the PAT to carry the `pipeline:trigger`
scope. Generate a new token from the desktop app (Workspace
Settings → CI Tokens → "New CI Token" → check **Trigger**). Tokens
created before this scope existed will get `403` with the message
`Token is missing the 'pipeline:trigger' scope`.
### Flag semantics
| Flag | Behaviour |
|---|---|
| `--scenario-id <id>` | Required. Or set `CALLME_SCENARIO_ID`. |
| `--environment-id <id>` | Optional. Names the scenario's inline environment to use (NOT a Mongo `_id`). Or set `CALLME_SCENARIO_ENV_ID`. Falls back to the first environment when omitted. |
| `--no-wait` | Trigger and exit immediately with `0`. The run keeps going server-side. |
| `--timeout <ms>` | How long the CLI is willing to wait for a terminal state. Default: `1800000` (30 min). Hitting it exits `2` (fatal); the server-side run **continues**, it is not cancelled. |
| `--max-runtime <ms>` | Advisory cap forwarded to the worker. |
| `--no-fail` | Force exit `0` on `failed` / `completed_with_failures` / `stopped`. |
| `--bail` | Parsed but no-op for scenarios. Logged in non-silent mode. Kept for parity with `callme run`. |
| `--report json --output <file>` | Dumps the slim report shape to disk. HTML reports are not yet supported for scenarios. |
### Exit codes
| State | `--no-fail` off (default) | `--no-fail` on |
|---|---|---|
| `success` | `0` | `0` |
| `failed`, `completed_with_failures`, `stopped` | `1` | `0` |
| Timeout / network / auth error | `2` | `2` |
| `--no-wait` trigger succeeded | `0` | `0` |
## Command Reference

@@ -169,0 +234,0 @@