@moda-ai/cli 1.55.51 → 1.55.52

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.
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  buildDoctorReport
3
- } from "./cli-3pn6w6m3.js";
3
+ } from "./cli-zgmxsmbt.js";
4
4
  import"./cli-rdh9jjr2.js";
5
- import"./cli-s3bcce69.js";
5
+ import"./cli-arze1hgb.js";
6
6
  import"./cli-mm48br00.js";
7
7
  import {
8
8
  readHarnessSyncState
@@ -95,7 +95,7 @@ async function buildAgentContext(context) {
95
95
  const graph = readHarnessGraphIfPresent(context.cwd);
96
96
  const reportState = readHarnessReportState(context.cwd);
97
97
  const syncState = readHarnessSyncState(context.cwd);
98
- const harness = graph ? await import("./harness-0pzqswvr.js") : undefined;
98
+ const harness = graph ? await import("./harness-t2xjak6g.js") : undefined;
99
99
  const topFindings = doctor.checks.filter((check) => check.status === "fail" || check.status === "warning").slice(0, 12).map(checkToFinding);
100
100
  const evidenceRefs = [
101
101
  ...doctor.checks.map(checkToEvidenceRef),
@@ -5768,7 +5768,7 @@ async function runPromptSyncExclusive(flags, profileOptions, options) {
5768
5768
  const analyzedDefinitions = new Map;
5769
5769
  if (flags["no-analyze"] !== "true") {
5770
5770
  options.onProgress?.("Analyzing prompt sources before sync.");
5771
- const { analyzeHarnessPrompts } = await import("./harness-0pzqswvr.js");
5771
+ const { analyzeHarnessPrompts } = await import("./harness-t2xjak6g.js");
5772
5772
  const result = await analyzeHarnessPrompts({
5773
5773
  rootDir: process.cwd(),
5774
5774
  existing: established.flatMap((prompt) => prompt.sourceDefinition ? [prompt.sourceDefinition.source] : []),
@@ -5796,7 +5796,7 @@ async function runPromptSyncExclusive(flags, profileOptions, options) {
5796
5796
  const mergedSources = mergePromptSources(manifest.sources, extraSources);
5797
5797
  const manifestUpdate = stableJson(mergedSources) === stableJson(mergePromptSources(manifest.sources, [])) ? undefined : $stringify({ version: 2, prompt_paths: manifest.promptPaths, sources: mergedSources });
5798
5798
  const prompts = await discoverPrompts(extraSources);
5799
- const { checkPromptAttribution } = await import("./prompt-attribution-dfj7etks.js");
5799
+ const { checkPromptAttribution } = await import("./prompt-attribution-ey193cg9.js");
5800
5800
  const attribution = checkPromptAttribution(process.cwd(), prompts.map((prompt) => prompt.key));
5801
5801
  const brokenAttribution = attribution.references.filter((reference) => reference.status === "missing");
5802
5802
  if (brokenAttribution.length) {
@@ -6102,7 +6102,7 @@ async function migratePromptManifest(options = {}) {
6102
6102
  let addedSources = [];
6103
6103
  let pendingSources = [];
6104
6104
  if (options.discover) {
6105
- const { analyzeHarnessPrompts } = await import("./harness-0pzqswvr.js");
6105
+ const { analyzeHarnessPrompts } = await import("./harness-t2xjak6g.js");
6106
6106
  const result = await analyzeHarnessPrompts({
6107
6107
  rootDir: root,
6108
6108
  existing: manifest.sources,
@@ -12333,6 +12333,7 @@ var NON_PROMPT_DOC_BASENAMES = new Set([
12333
12333
  "requirements.txt"
12334
12334
  ]);
12335
12335
  var PROMPT_NAME_HINT = /(prompt|system[-_]?message|instruction|persona|sop)/i;
12336
+ var PROMPTS_DIR = /(^|\/)(?:system[-_]?)?prompts?(\/|$)/i;
12336
12337
  var AGENTIC_DIR_HINT = /(^|\/)(agents?|prompts?|llm|ai|assistants?|chains?|crew|graph)s?(\/|$)/i;
12337
12338
  var INSTRUCTION_MARKERS = [
12338
12339
  /\byou are\b/i,
@@ -12532,6 +12533,9 @@ function detectPromptFile(file, out) {
12532
12533
  if (nameHint) {
12533
12534
  confidence2 = "high";
12534
12535
  signal = "prompt_file.name_hint";
12536
+ } else if (PROMPTS_DIR.test(dir)) {
12537
+ confidence2 = "high";
12538
+ signal = "prompt_file.prompts_dir";
12535
12539
  } else if (dirHint && score >= 3) {
12536
12540
  confidence2 = "medium";
12537
12541
  signal = "prompt_file.agent_dir_instruction_text";
@@ -14465,6 +14469,8 @@ function promoteHarnessCandidates(report, rootDir) {
14465
14469
  artifact = promoteToolCandidate(candidate, rootDir, confidence2, fileCache);
14466
14470
  break;
14467
14471
  case "prompt_file":
14472
+ if (candidate.signal === "prompt_module.name_hint")
14473
+ break;
14468
14474
  artifact = promotePromptFileCandidate(candidate, confidence2);
14469
14475
  break;
14470
14476
  case "prompt_literal":
@@ -14535,6 +14541,7 @@ var HARNESS_FAMILY_FLAGS = [
14535
14541
  "offset",
14536
14542
  "out",
14537
14543
  "path",
14544
+ "promote",
14538
14545
  "remote",
14539
14546
  "report",
14540
14547
  "run",
@@ -14821,7 +14828,7 @@ async function runHarnessCommand(context) {
14821
14828
  throw new CliInputError("Focused remote prompt analysis is not supported yet.", "Use local --analyst=claude|codex|cursor|local-scan, or drop --concern for a full remote report.");
14822
14829
  }
14823
14830
  if (context.flags["github-actions"] === "true") {
14824
- const { runGithubActionsAnalyze } = await import("./harness-github-actions-nzcpftjn.js");
14831
+ const { runGithubActionsAnalyze } = await import("./harness-github-actions-p3g8cjf2.js");
14825
14832
  const result = await runGithubActionsAnalyze(rootDir, {
14826
14833
  writeReport: (report2) => {
14827
14834
  const normalized = normalizeHarnessReport(report2);
@@ -14956,6 +14963,28 @@ async function runHarnessCommand(context) {
14956
14963
  message: "Scan this project for static harness candidates?"
14957
14964
  });
14958
14965
  writeHumanProgress(context, "Harness candidates: static pre-pass (no LLM, no network)...");
14966
+ if (context.flags.promote !== undefined) {
14967
+ const promote = context.flags.promote === "true" ? "all" : context.flags.promote.trim().toLowerCase();
14968
+ if (promote !== "all" && !HARNESS_ANALYZE_CONCERNS.includes(promote)) {
14969
+ throw new CliInputError(`Unknown --promote value "${context.flags.promote}".`, `Use --promote=all or one of: ${HARNESS_ANALYZE_CONCERNS.join(", ")}.`);
14970
+ }
14971
+ const promoteOut = context.flags.out;
14972
+ if (promoteOut === "true") {
14973
+ throw new CliInputError("Missing output path for --out.", "Usage: moda harness candidates --promote=<concern|all> --out=<file>");
14974
+ }
14975
+ const artifacts = deterministicArtifacts(rootDir, promote === "all" ? undefined : promote);
14976
+ const promoted = { concern: promote, artifacts };
14977
+ const promoteWritten = [];
14978
+ if (promoteOut && !context.dryRun) {
14979
+ const target = resolve10(context.cwd, promoteOut);
14980
+ mkdirSync5(dirname7(target), { recursive: true });
14981
+ writeFileSync5(target, `${JSON.stringify(promoted, null, 2)}
14982
+ `, "utf8");
14983
+ promoteWritten.push(target);
14984
+ }
14985
+ context.output.writeData({ scanPlan, ...promoted, written: promoteWritten, dryRun: context.dryRun });
14986
+ return { exitCode: 0 };
14987
+ }
14959
14988
  const report = detectHarnessCandidates(rootDir);
14960
14989
  const written = [];
14961
14990
  const outFlag = context.flags.out;
@@ -15474,6 +15503,17 @@ function applyResolvedPromptSource(artifact, source) {
15474
15503
  artifact.sourcePath = source.sourcePath;
15475
15504
  artifact.contentHash = source.sourceDefinition.sourceHash;
15476
15505
  }
15506
+ function isToolGroupPlaceholder(name) {
15507
+ const trimmed = (name ?? "").trim();
15508
+ if (!trimmed)
15509
+ return false;
15510
+ if (trimmed.includes("*"))
15511
+ return true;
15512
+ return /\s(?:tools|toolkits?|toolsets?)$/i.test(trimmed);
15513
+ }
15514
+ function isDetectedToolDefinitionReason(reason) {
15515
+ return typeof reason === "string" && (reason.startsWith("deterministic detector ") || reason.startsWith("Tool definition detected"));
15516
+ }
15477
15517
  function removeArtifacts(report, ids) {
15478
15518
  const graph = report.graph;
15479
15519
  const keep = (id) => typeof id !== "string" || !ids.has(id);
@@ -15523,6 +15563,33 @@ function repairExternalAnalystReport(report, rootDir, options = {}) {
15523
15563
  normalized.graph.unknowns.push({ id: `unresolved_${artifact.id}`, question: error instanceof Error ? error.message : String(error), candidateIds: [artifact.id], evidence: artifact.evidence });
15524
15564
  }
15525
15565
  }
15566
+ for (const artifact of normalized.graph.artifacts) {
15567
+ if (artifact.type !== "tool" || unverified.has(artifact.id) || !isToolGroupPlaceholder(artifact.name))
15568
+ continue;
15569
+ if (artifact.evidence.some((entry) => isDetectedToolDefinitionReason(entry.reason)))
15570
+ continue;
15571
+ unverified.add(artifact.id);
15572
+ normalized.graph.unknowns.push({
15573
+ id: `unresolved_${artifact.id}`,
15574
+ question: `"${artifact.name}" is a dynamic tool source (a group of tools resolved at runtime), not a single tool definition, so its tools are not enumerated in the harness.`,
15575
+ candidateIds: [artifact.id],
15576
+ evidence: artifact.evidence
15577
+ });
15578
+ }
15579
+ for (const artifact of normalized.graph.artifacts) {
15580
+ if (artifact.type !== "model_config" || unverified.has(artifact.id))
15581
+ continue;
15582
+ const paths = artifact.evidence.map((entry) => entry.path).filter((path) => typeof path === "string" && path.length > 0);
15583
+ if (paths.length === 0 || !paths.every((path) => TEST_PATH2.test(path)))
15584
+ continue;
15585
+ unverified.add(artifact.id);
15586
+ normalized.graph.unknowns.push({
15587
+ id: `unresolved_${artifact.id}`,
15588
+ question: `Model ${artifact.name ?? artifact.id} is cited only from test or fixture files, so it is a test input rather than the harness's model configuration.`,
15589
+ candidateIds: [artifact.id],
15590
+ evidence: artifact.evidence
15591
+ });
15592
+ }
15526
15593
  for (const artifact of normalized.graph.artifacts) {
15527
15594
  if (unverified.has(artifact.id) || !requiresArtifactBody(artifact.type))
15528
15595
  continue;
@@ -15606,6 +15673,12 @@ var CONCERN_PROMOTED_ARTIFACT_TYPES = {
15606
15673
  prompts: new Set(["prompt"]),
15607
15674
  evals: new Set(["model_config"])
15608
15675
  };
15676
+ function deterministicArtifacts(rootDir, concern) {
15677
+ const graph = { artifacts: [], unknowns: [] };
15678
+ mergeDeterministicArtifacts(graph, rootDir, { concern });
15679
+ hydratePromptAndToolBodies(graph, rootDir);
15680
+ return graph.artifacts;
15681
+ }
15609
15682
  function mergeDeterministicArtifacts(graph, rootDir, options = {}) {
15610
15683
  if (process.env.MODA_HARNESS_DETERMINISTIC_MERGE === "0")
15611
15684
  return { added: 0 };
@@ -16590,6 +16663,9 @@ function renderExternalHarnessAnalystPrompt(options) {
16590
16663
  "- unknowns: report-level open questions with id, question, and citationIds",
16591
16664
  "",
16592
16665
  'Use exact field names and numeric confidence values from 0 to 1. Do not write string confidence values like "high". Do not use confidence >= 0.90 unless the claim is direct evidence from the cited line(s).',
16666
+ `Name each runtime agent after the class or exported symbol that defines it, adding the role in parentheses when helpful, e.g. "AutonomousPlanWorkflow (weekly planner)"; a Cloudflare Workflow or Durable Object class keeps its class name. Never emit an agent whose class is not defined or exported in this source tree: a binding to another worker's class (e.g. a wrangler script_name binding) is a deployment detail, not an agent of this repo.`,
16667
+ 'A `tool` artifact is one tool definition. Never emit a group of tools ("MCP server tools", "composio_*", "worker tools") as a tool; record a dynamic tool source (MCP servers, Composio, webhooks) as a graph unknown that cites where the tools are loaded.',
16668
+ "Ignore any checked-in .moda/ directory: it is the output of an earlier Moda run and is often stale. Never cite it or reuse its entities.",
16593
16669
  'Every graph item with confidence below 0.85 must also carry confidenceReason: one sentence naming what held confidence down, e.g. "Inferred from AGENTS.md:231-232 only; no source file defines this agent." or "Entrypoint read, but the tool registry was outside the snapshot."',
16594
16670
  "Each graph item with evidence must use evidence: [{ path, reason }], not citationIds/citations.",
16595
16671
  ...spec ? spec.contractLines : [
@@ -18994,4 +19070,4 @@ function hashText(text) {
18994
19070
  return createHash5("sha256").update(text).digest("hex");
18995
19071
  }
18996
19072
 
18997
- export { startRemoteAnalyze, pollRemoteAnalyzeUntilDone, isRecoverableRemoteRun, checkPromptMapping, safePromptEvidencePath, discoverHarnessPromptSources, runHarnessCommand, writeHarnessAnalyzeResult, emitWrittenArtifacts, analyzeHarnessPrompts, repairExternalAnalystReport, deriveRelationshipsFromGraph, mergeDeterministicArtifacts, analystRefutations, describeCodingAgentEvent, analystEventProgress, isRetryableExternalAnalystFailure, sleep, summarizeInvalidAnalystReport, isDeterministicLocalAnalyst, resolveHarnessAnalyzeConcern, detectAvailableCodingAgents, codingAgentDisplayName, runCodingAgent, resolveAnalystModel, renderExternalHarnessAnalystPrompt, CONCERN_CANDIDATE_KINDS, SEED_CANDIDATE_KIND_LABELS, renderAnalystCandidateLines, renderAnalystSeedLines, truncateText, scanHarness, summarizeHarness, buildSourceSnapshot, writeHumanProgress, describeSyncIdentity, describeSyncTenantLabel, findFresherHarnessReports, writeHarnessArtifacts, assertHarnessGraphSyncQuality, graphForSync, inventoryFiles, numericEnv, numericEnvAllowZero, computeDeterministicFloor, stableId, titleFromId, promptNameFromPath };
19073
+ export { startRemoteAnalyze, pollRemoteAnalyzeUntilDone, isRecoverableRemoteRun, checkPromptMapping, safePromptEvidencePath, discoverHarnessPromptSources, runHarnessCommand, writeHarnessAnalyzeResult, emitWrittenArtifacts, analyzeHarnessPrompts, isToolGroupPlaceholder, repairExternalAnalystReport, deriveRelationshipsFromGraph, deterministicArtifacts, mergeDeterministicArtifacts, analystRefutations, describeCodingAgentEvent, analystEventProgress, isRetryableExternalAnalystFailure, sleep, summarizeInvalidAnalystReport, isDeterministicLocalAnalyst, resolveHarnessAnalyzeConcern, detectAvailableCodingAgents, codingAgentDisplayName, runCodingAgent, resolveAnalystModel, renderExternalHarnessAnalystPrompt, CONCERN_CANDIDATE_KINDS, SEED_CANDIDATE_KIND_LABELS, renderAnalystCandidateLines, renderAnalystSeedLines, truncateText, scanHarness, summarizeHarness, buildSourceSnapshot, writeHumanProgress, describeSyncIdentity, describeSyncTenantLabel, findFresherHarnessReports, writeHarnessArtifacts, assertHarnessGraphSyncQuality, graphForSync, inventoryFiles, numericEnv, numericEnvAllowZero, computeDeterministicFloor, stableId, titleFromId, promptNameFromPath };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./cli-rdh9jjr2.js";
5
5
  import {
6
6
  inspectPromptManifest
7
- } from "./cli-s3bcce69.js";
7
+ } from "./cli-arze1hgb.js";
8
8
  import {
9
9
  readHarnessSyncState,
10
10
  renderDoctorHuman,
@@ -395,7 +395,7 @@ async function harnessCurrentCheck(cwd, manifestPath, manifestExists, tenantId)
395
395
  };
396
396
  }
397
397
  try {
398
- const { scanHarness } = await import("./harness-0pzqswvr.js");
398
+ const { scanHarness } = await import("./harness-t2xjak6g.js");
399
399
  const current = scanHarness({
400
400
  rootDir: cwd,
401
401
  scannerVersion: "doctor",
package/dist/cli.js CHANGED
@@ -2145,9 +2145,10 @@ var HARNESS_SUBCOMMAND_HELP = [
2145
2145
  {
2146
2146
  name: "candidates",
2147
2147
  description: "Static pre-pass listing likely agents, prompts, and tools (local; no LLM, no network)",
2148
- usage: "moda harness candidates [--path=<dir>] [--out=<file>] [--dry-run] [--yes]",
2148
+ usage: "moda harness candidates [--path=<dir>] [--out=<file>] [--promote=<concern|all>] [--dry-run] [--yes]",
2149
2149
  flags: [
2150
2150
  HARNESS_PATH_FLAG,
2151
+ { name: "--promote=<concern|all>", description: "Print the deterministic artifacts (tools, prompts, model configs) for one concern (topology, tools, prompts, evals) or all, with bodies, instead of the raw candidates." },
2151
2152
  { name: "--out=<file>", description: "Also write the candidates report to a file." },
2152
2153
  { name: "--dry-run", description: "Do not write --out." },
2153
2154
  { name: "--yes", description: "Approve a broad scan without the prompt." }
@@ -2967,25 +2968,25 @@ function leafManifestFields(leaf, commands) {
2967
2968
  import { fileURLToPath } from "url";
2968
2969
  import { realpathSync } from "fs";
2969
2970
  async function runPromptsCommand(...args) {
2970
- return (await import("./prompts-r7kzdnca.js")).runPromptsCommand(...args);
2971
+ return (await import("./prompts-z2v4k4q7.js")).runPromptsCommand(...args);
2971
2972
  }
2972
2973
  async function runSkillsCommand(...args) {
2973
2974
  return (await import("./skills-mwftqzyk.js")).runSkillsCommand(...args);
2974
2975
  }
2975
2976
  async function runHarnessCommand(...args) {
2976
- return (await import("./harness-0pzqswvr.js")).runHarnessCommand(...args);
2977
+ return (await import("./harness-t2xjak6g.js")).runHarnessCommand(...args);
2977
2978
  }
2978
2979
  async function runSyncCommand(...args) {
2979
- return (await import("./sync-xcjye7em.js")).runSyncCommand(...args);
2980
+ return (await import("./sync-tzvrgzqs.js")).runSyncCommand(...args);
2980
2981
  }
2981
2982
  async function runRegistryCommand(...args) {
2982
2983
  return (await import("./registry-tv8fktxc.js")).runRegistryCommand(...args);
2983
2984
  }
2984
2985
  async function runDoctorCommand(...args) {
2985
- return (await import("./doctor-0z5k6z9a.js")).runDoctorCommand(...args);
2986
+ return (await import("./doctor-66qe8hq9.js")).runDoctorCommand(...args);
2986
2987
  }
2987
2988
  async function runStatusCommand(...args) {
2988
- return (await import("./doctor-0z5k6z9a.js")).runStatusCommand(...args);
2989
+ return (await import("./doctor-66qe8hq9.js")).runStatusCommand(...args);
2989
2990
  }
2990
2991
  async function runAuthCommand(...args) {
2991
2992
  return (await import("./profile-commands-nbaec4y9.js")).runAuthCommand(...args);
@@ -2997,7 +2998,7 @@ async function runProfilesCommand(...args) {
2997
2998
  return (await import("./profile-commands-nbaec4y9.js")).runProfilesCommand(...args);
2998
2999
  }
2999
3000
  async function runAgentCommand(...args) {
3000
- return (await import("./agent-jyst7r0g.js")).runAgentCommand(...args);
3001
+ return (await import("./agent-nxn5df1w.js")).runAgentCommand(...args);
3001
3002
  }
3002
3003
  async function runProductionCommand(...args) {
3003
3004
  return (await import("./production-intelligence-zek0rkzj.js")).runProductionCommand(...args);
@@ -6761,7 +6762,7 @@ var commandRegistry = createCommandRegistry([
6761
6762
  resetApiRequestCountBeforeRun: true,
6762
6763
  telemetry: "result-and-error",
6763
6764
  handler: async (context) => {
6764
- const { runInit } = await import("./index-2p6x0xg2.js");
6765
+ const { runInit } = await import("./index-tt5rmqyq.js");
6765
6766
  if (context.outputMode === "agent-stream") {
6766
6767
  context.output.writeEvent({
6767
6768
  event: "started",
@@ -3,9 +3,9 @@ import {
3
3
  promptsDiscoveredCheck,
4
4
  runDoctorCommand,
5
5
  runStatusCommand
6
- } from "./cli-3pn6w6m3.js";
6
+ } from "./cli-zgmxsmbt.js";
7
7
  import"./cli-rdh9jjr2.js";
8
- import"./cli-s3bcce69.js";
8
+ import"./cli-arze1hgb.js";
9
9
  import"./cli-mm48br00.js";
10
10
  import"./cli-xq45etg1.js";
11
11
  import"./cli-gtke9wrw.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildSourceSnapshot
3
- } from "./cli-k6kydtkv.js";
3
+ } from "./cli-xx73daeb.js";
4
4
  import"./cli-97fnztpy.js";
5
5
  import"./cli-xq45etg1.js";
6
6
  import"./cli-gtke9wrw.js";
@@ -13,12 +13,14 @@ import {
13
13
  describeSyncIdentity,
14
14
  describeSyncTenantLabel,
15
15
  detectAvailableCodingAgents,
16
+ deterministicArtifacts,
16
17
  emitWrittenArtifacts,
17
18
  findFresherHarnessReports,
18
19
  graphForSync,
19
20
  inventoryFiles,
20
21
  isDeterministicLocalAnalyst,
21
22
  isRetryableExternalAnalystFailure,
23
+ isToolGroupPlaceholder,
22
24
  mergeDeterministicArtifacts,
23
25
  numericEnv,
24
26
  numericEnvAllowZero,
@@ -41,7 +43,7 @@ import {
41
43
  writeHarnessAnalyzeResult,
42
44
  writeHarnessArtifacts,
43
45
  writeHumanProgress
44
- } from "./cli-k6kydtkv.js";
46
+ } from "./cli-xx73daeb.js";
45
47
  import"./cli-97fnztpy.js";
46
48
  import"./cli-xq45etg1.js";
47
49
  import"./cli-gtke9wrw.js";
@@ -80,12 +82,14 @@ export {
80
82
  numericEnvAllowZero,
81
83
  numericEnv,
82
84
  mergeDeterministicArtifacts,
85
+ isToolGroupPlaceholder,
83
86
  isRetryableExternalAnalystFailure,
84
87
  isDeterministicLocalAnalyst,
85
88
  inventoryFiles,
86
89
  graphForSync,
87
90
  findFresherHarnessReports,
88
91
  emitWrittenArtifacts,
92
+ deterministicArtifacts,
89
93
  detectAvailableCodingAgents,
90
94
  describeSyncTenantLabel,
91
95
  describeSyncIdentity,
@@ -21,7 +21,7 @@ import {
21
21
  } from "./cli-hcwdz9sd.js";
22
22
  import {
23
23
  buildDoctorReport
24
- } from "./cli-3pn6w6m3.js";
24
+ } from "./cli-zgmxsmbt.js";
25
25
  import {
26
26
  ConnectCodeError,
27
27
  connectWithCode,
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  initPrompts,
34
34
  runPromptSync
35
- } from "./cli-s3bcce69.js";
35
+ } from "./cli-arze1hgb.js";
36
36
  import"./cli-mm48br00.js";
37
37
  import {
38
38
  codingAgentDisplayName,
@@ -46,7 +46,7 @@ import {
46
46
  runCodingAgent,
47
47
  runHarnessCommand,
48
48
  startRemoteAnalyze
49
- } from "./cli-k6kydtkv.js";
49
+ } from "./cli-xx73daeb.js";
50
50
  import {
51
51
  stripAnsi
52
52
  } from "./cli-97fnztpy.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  inventoryFiles,
3
3
  safePromptEvidencePath
4
- } from "./cli-k6kydtkv.js";
4
+ } from "./cli-xx73daeb.js";
5
5
  import"./cli-97fnztpy.js";
6
6
  import"./cli-xq45etg1.js";
7
7
  import"./cli-gtke9wrw.js";
@@ -3,7 +3,7 @@ import {
3
3
  checkPromptMapping,
4
4
  discoverHarnessPromptSources,
5
5
  safePromptEvidencePath
6
- } from "./cli-k6kydtkv.js";
6
+ } from "./cli-xx73daeb.js";
7
7
  import"./cli-97fnztpy.js";
8
8
  import"./cli-xq45etg1.js";
9
9
  import"./cli-gtke9wrw.js";
@@ -9,7 +9,7 @@ import {
9
9
  runPromptSync,
10
10
  runPromptsCommand,
11
11
  writePromptSyncProgress
12
- } from "./cli-s3bcce69.js";
12
+ } from "./cli-arze1hgb.js";
13
13
  import {
14
14
  promptSourceHashPayload
15
15
  } from "./cli-mm48br00.js";
@@ -6,11 +6,11 @@ import"./cli-rjav0vj1.js";
6
6
  import"./cli-hcwdz9sd.js";
7
7
  import {
8
8
  runPromptsCommand
9
- } from "./cli-s3bcce69.js";
9
+ } from "./cli-arze1hgb.js";
10
10
  import"./cli-mm48br00.js";
11
11
  import {
12
12
  runHarnessCommand
13
- } from "./cli-k6kydtkv.js";
13
+ } from "./cli-xx73daeb.js";
14
14
  import"./cli-97fnztpy.js";
15
15
  import"./cli-xq45etg1.js";
16
16
  import"./cli-gtke9wrw.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moda-ai/cli",
3
- "version": "1.55.51",
3
+ "version": "1.55.52",
4
4
  "description": "CLI for Moda: production monitoring and evals for AI agents.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": "moda.skill_index.v1",
3
- "bundled_at": "2026-10-20T22:22:44.875Z",
4
- "cli_version": "1.55.51",
3
+ "bundled_at": "2026-10-20T23:50:34.577Z",
4
+ "cli_version": "1.55.52",
5
5
  "skills": [
6
6
  {
7
7
  "id": "integration-cloudflare-think",