@moda-ai/cli 1.45.0 → 1.45.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,7 +25,7 @@ import {
25
25
  resolveTenantId,
26
26
  shouldInventoryFile,
27
27
  stringOption
28
- } from "./cli-8c60k2p4.js";
28
+ } from "./cli-bvnw7585.js";
29
29
  import {
30
30
  __commonJS,
31
31
  __require,
@@ -184813,7 +184813,7 @@ async function runHarnessCommand(context) {
184813
184813
  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.");
184814
184814
  }
184815
184815
  if (context.flags["github-actions"] === "true") {
184816
- const { runGithubActionsAnalyze } = await import("./harness-github-actions-pg0azf3h.js");
184816
+ const { runGithubActionsAnalyze } = await import("./harness-github-actions-ky4ym5n3.js");
184817
184817
  const result = await runGithubActionsAnalyze(rootDir, {
184818
184818
  writeReport: (report2) => {
184819
184819
  const normalized = normalizeHarnessReport(report2);
@@ -1075,6 +1075,9 @@ function explicitModeFromFlags(flags) {
1075
1075
  return "human";
1076
1076
  return;
1077
1077
  }
1078
+ function explicitOutputMode(flags, env = process.env) {
1079
+ return explicitModeFromFlags(flags) ?? outputModeFromEnv(env);
1080
+ }
1078
1081
  function outputModeFromFlags(flags) {
1079
1082
  return explicitModeFromFlags(flags) ?? "human";
1080
1083
  }
@@ -1713,4 +1716,4 @@ function createCommandContext(input, options = {}) {
1713
1716
  };
1714
1717
  }
1715
1718
 
1716
- export { PROD_BASE_URL, DEFAULT_INGEST_URL, getModaPaths, getModaDir, isLoopbackBaseUrl, assertValidProfileName, describeBaseUrlSource, loadProfileConfig, saveProfileConfig, getActiveProfile, setActiveProfile, upsertProfile, clearStoredApiKeyCredentials, secretFilePathFromRef, resolveSecretReference, resolveApiKeyFromActiveProfile, resolveTenantIdFromActiveProfile, ensureSecretFilePermissions, writeSecretJsonFile, CliInputError, CliAccessError, CliInputRequiredError, CliAuthError, CliCancellationError, isNetworkLikeError, isApiLikeError, VERSION, MODA_BASE_URL, loadCliConfig, saveCliConfig, resolveApiKey, embeddedTenantIdFromApiKey, resolveIngestUrl2 as resolveIngestUrl, resolveTenantId, resolveApiTenantId, resolveModaBaseUrl, validateConfig, MAX_SCANNED_FILE_BYTES, DEFAULT_MAX_INVENTORY_FILES, DEFAULT_MAX_INVENTORY_TEXT_BYTES, MAX_RECORDED_SKIPS, SKIPPED_DIRS, isSkippedDir, isSkippedPathPrefix, isEvalLikePath, shouldInventoryFile, isTextFile, isSecretishPath, SECRET_KEYS, redactDeep, redactString, packSnapshot, EXIT_OK, EXIT_ERROR, EXIT_DEGRADED, EXIT_AUTH_REQUIRED, EXIT_INPUT_REQUIRED, EXIT_CANCELLED, AGENT_ERROR_CODES, wasOutputCancelled, safeWriteStdout, safeWriteStderr, resolveOutputMode, createCliOutput, agentEnvelopeFits, stringOption, createCommandContext };
1719
+ export { PROD_BASE_URL, DEFAULT_INGEST_URL, getModaPaths, getModaDir, isLoopbackBaseUrl, assertValidProfileName, describeBaseUrlSource, loadProfileConfig, saveProfileConfig, getActiveProfile, setActiveProfile, upsertProfile, clearStoredApiKeyCredentials, secretFilePathFromRef, resolveSecretReference, resolveApiKeyFromActiveProfile, resolveTenantIdFromActiveProfile, ensureSecretFilePermissions, writeSecretJsonFile, CliInputError, CliAccessError, CliInputRequiredError, CliAuthError, CliCancellationError, isNetworkLikeError, isApiLikeError, VERSION, MODA_BASE_URL, loadCliConfig, saveCliConfig, resolveApiKey, embeddedTenantIdFromApiKey, resolveIngestUrl2 as resolveIngestUrl, resolveTenantId, resolveApiTenantId, resolveModaBaseUrl, validateConfig, MAX_SCANNED_FILE_BYTES, DEFAULT_MAX_INVENTORY_FILES, DEFAULT_MAX_INVENTORY_TEXT_BYTES, MAX_RECORDED_SKIPS, SKIPPED_DIRS, isSkippedDir, isSkippedPathPrefix, isEvalLikePath, shouldInventoryFile, isTextFile, isSecretishPath, SECRET_KEYS, redactDeep, redactString, packSnapshot, EXIT_OK, EXIT_ERROR, EXIT_DEGRADED, EXIT_AUTH_REQUIRED, EXIT_INPUT_REQUIRED, EXIT_CANCELLED, AGENT_ERROR_CODES, wasOutputCancelled, safeWriteStdout, safeWriteStderr, explicitOutputMode, resolveOutputMode, createCliOutput, agentEnvelopeFits, stringOption, createCommandContext };
@@ -7,7 +7,7 @@ import {
7
7
  saveProfileConfig,
8
8
  secretFilePathFromRef,
9
9
  writeSecretJsonFile
10
- } from "./cli-8c60k2p4.js";
10
+ } from "./cli-bvnw7585.js";
11
11
  import {
12
12
  __require
13
13
  } from "./cli-0v6na3yp.js";
@@ -13,7 +13,7 @@ import {
13
13
  resolvePromptSource,
14
14
  safePromptEvidencePath,
15
15
  scanHarness
16
- } from "./cli-5tsqk3jt.js";
16
+ } from "./cli-3xh2w7hb.js";
17
17
  import {
18
18
  SKILL_SOURCE_HARNESS,
19
19
  SKILL_SOURCE_INTEGRATION_BUNDLED,
@@ -26,7 +26,7 @@ import {
26
26
  import {
27
27
  isAuthSessionValid,
28
28
  loadAuthSession
29
- } from "./cli-rycpwqzm.js";
29
+ } from "./cli-dy2aavbe.js";
30
30
  import {
31
31
  CliInputError,
32
32
  EXIT_ERROR,
@@ -45,7 +45,7 @@ import {
45
45
  resolveTenantId,
46
46
  secretFilePathFromRef,
47
47
  validateConfig
48
- } from "./cli-8c60k2p4.js";
48
+ } from "./cli-bvnw7585.js";
49
49
  import {
50
50
  __commonJS,
51
51
  __require,
@@ -6711,7 +6711,7 @@ async function runPromptSyncExclusive(flags, profileOptions, options) {
6711
6711
  const analyzedDefinitions = new Map;
6712
6712
  if (flags["no-analyze"] !== "true") {
6713
6713
  options.onProgress?.("Analyzing prompt sources before sync.");
6714
- const { analyzeHarnessPrompts } = await import("./harness-sqngqjrd.js");
6714
+ const { analyzeHarnessPrompts } = await import("./harness-9qpbj2qj.js");
6715
6715
  const result = await analyzeHarnessPrompts({
6716
6716
  rootDir: process.cwd(),
6717
6717
  existing: established.flatMap((prompt) => prompt.sourceDefinition ? [prompt.sourceDefinition.source] : []),
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  authFetch,
3
3
  getCachedLoginContext
4
- } from "./cli-rycpwqzm.js";
4
+ } from "./cli-dy2aavbe.js";
5
5
  import {
6
6
  CliAccessError,
7
7
  CliInputError,
@@ -15,7 +15,7 @@ import {
15
15
  resolveTenantIdFromActiveProfile,
16
16
  saveCliConfig,
17
17
  writeSecretJsonFile
18
- } from "./cli-8c60k2p4.js";
18
+ } from "./cli-bvnw7585.js";
19
19
 
20
20
  // src/init/tenant.ts
21
21
  import { randomUUID } from "node:crypto";
package/dist/cli.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  runPromptsCommand,
9
9
  runSkillsCommand,
10
10
  runStatusCommand
11
- } from "./cli-j2rdgd3p.js";
11
+ } from "./cli-nnwegmzh.js";
12
12
  import {
13
13
  ApiError,
14
14
  HARNESS_REPORT_APPROVAL_PATH,
@@ -37,7 +37,7 @@ import {
37
37
  terminalStyles,
38
38
  unknownSignalsSubcommandError,
39
39
  validateHarnessReport
40
- } from "./cli-5tsqk3jt.js";
40
+ } from "./cli-3xh2w7hb.js";
41
41
  import"./cli-ssfq84k5.js";
42
42
  import {
43
43
  authFetch,
@@ -46,7 +46,7 @@ import {
46
46
  loadAuthSession,
47
47
  login,
48
48
  revokeCliSessionToken
49
- } from "./cli-rycpwqzm.js";
49
+ } from "./cli-dy2aavbe.js";
50
50
  import {
51
51
  AGENT_ERROR_CODES,
52
52
  CliAccessError,
@@ -72,6 +72,7 @@ import {
72
72
  describeBaseUrlSource,
73
73
  embeddedTenantIdFromApiKey,
74
74
  ensureSecretFilePermissions,
75
+ explicitOutputMode,
75
76
  getActiveProfile,
76
77
  getModaDir,
77
78
  getModaPaths,
@@ -95,7 +96,7 @@ import {
95
96
  validateConfig,
96
97
  wasOutputCancelled,
97
98
  writeSecretJsonFile
98
- } from "./cli-8c60k2p4.js";
99
+ } from "./cli-bvnw7585.js";
99
100
  import {
100
101
  __require
101
102
  } from "./cli-0v6na3yp.js";
@@ -2417,8 +2418,11 @@ agent and prompt handled each LLM call.
2417
2418
 
2418
2419
  ## Part 0: setup
2419
2420
 
2420
- 1. Run \`moda --version\`. You need 1.44.0 or newer. If it's older, run
2421
- \`npm install -g @moda-ai/cli@latest\`.
2421
+ 1. Run \`moda registry --help\` and confirm it lists all of \`push\`,
2422
+ \`status\`, \`coverage\`, \`log\`, \`show\`, and \`prompt\` (the full set
2423
+ first shipped in 1.45.0). If any is missing or the command fails, run
2424
+ \`npm install -g @moda-ai/cli@latest\` and check again. If they're still
2425
+ missing, stop and tell me which ones; nothing below works without them.
2422
2426
  2. Auth: \`MODA_API_KEY\` must be set, or run \`moda auth login --api-key=<key>\`.
2423
2427
  Ask me for the key if neither is available. Check with \`moda doctor\`.
2424
2428
  3. Run \`moda registry template\` to see a complete example manifest, and
@@ -2725,13 +2729,15 @@ async function runRegistryCommand(context) {
2725
2729
  }
2726
2730
  return readRegistry(context, `/harness-registry/coverage${days ? `?days=${days}` : ""}`);
2727
2731
  }
2728
- case "prompt":
2729
- if (context.outputMode === "human")
2732
+ case "prompt": {
2733
+ const mode = explicitOutputMode(context.flags, context.env);
2734
+ if (mode && mode !== "human")
2735
+ context.output.writeData({ prompt: REGISTRY_AGENT_BRIEF });
2736
+ else if (!context.quiet)
2730
2737
  process.stdout.write(`${REGISTRY_AGENT_BRIEF}
2731
2738
  `);
2732
- else
2733
- context.output.writeData({ prompt: REGISTRY_AGENT_BRIEF });
2734
2739
  return { exitCode: 0 };
2740
+ }
2735
2741
  default:
2736
2742
  throw new CliInputError(`Unknown registry command '${subcommand}'.`, "Usage: moda registry template|validate|push|status|coverage|log|show|prompt [--file=.moda/registry.json] [--dry-run] [--live]");
2737
2743
  }
@@ -8354,7 +8360,8 @@ async function runTailCommand(params, context) {
8354
8360
  message_count: messageCount,
8355
8361
  environment: conversation.environment ?? null,
8356
8362
  cluster_name: conversation.cluster_name ?? null,
8357
- summary: conversation.summary ?? null
8363
+ summary: conversation.summary ?? null,
8364
+ latest_task: conversation.latest_task ?? null
8358
8365
  });
8359
8366
  }
8360
8367
  };
@@ -8661,6 +8668,8 @@ async function searchFallbackToTraces(params) {
8661
8668
  match_grain: "trace",
8662
8669
  conversation_id: row.conversation_id,
8663
8670
  summary: row.summary ?? null,
8671
+ matched_task: row.matched_task ?? null,
8672
+ latest_task: row.latest_task ?? null,
8664
8673
  message_count: row.message_count ?? null,
8665
8674
  first_timestamp: row.first_timestamp ?? null,
8666
8675
  last_timestamp: row.last_timestamp ?? null
@@ -10015,7 +10024,7 @@ var commandRegistry = createCommandRegistry([
10015
10024
  resetApiRequestCountBeforeRun: true,
10016
10025
  telemetry: "result",
10017
10026
  handler: async (context) => {
10018
- const { runInit } = await import("./index-nepr7cw7.js");
10027
+ const { runInit } = await import("./index-bcn5chmf.js");
10019
10028
  if (context.outputMode === "agent-stream") {
10020
10029
  context.output.writeEvent({
10021
10030
  event: "started",
@@ -10056,7 +10065,7 @@ var commandRegistry = createCommandRegistry([
10056
10065
  resetApiRequestCountBeforeRun: true,
10057
10066
  telemetry: "result-and-error",
10058
10067
  handler: async (context) => {
10059
- const { runProvision } = await import("./provision-02wqtkvm.js");
10068
+ const { runProvision } = await import("./provision-mqw8s0jb.js");
10060
10069
  return runProvision(context, {
10061
10070
  resumeCommand: buildResumeCommand("provision", context.rawFlags)
10062
10071
  });
@@ -10421,7 +10430,8 @@ var commandRegistry = createCommandRegistry([
10421
10430
  {
10422
10431
  name: "prompt",
10423
10432
  description: "Print the brief to hand your coding agent so it inventories and registers your harness",
10424
- usage: "moda registry prompt",
10433
+ usage: "moda registry prompt [--json | --agent]",
10434
+ flags: [{ name: "--json | --agent", description: "Return the brief inside JSON / the agent envelope. Without them it prints raw text, even when piped." }],
10425
10435
  examples: ["moda registry prompt | pbcopy", 'claude "$(moda registry prompt)"']
10426
10436
  }
10427
10437
  ],
@@ -42,8 +42,8 @@ import {
42
42
  writeHarnessAnalyzeResult,
43
43
  writeHarnessArtifacts,
44
44
  writeHumanProgress
45
- } from "./cli-5tsqk3jt.js";
46
- import"./cli-8c60k2p4.js";
45
+ } from "./cli-3xh2w7hb.js";
46
+ import"./cli-bvnw7585.js";
47
47
  import"./cli-0v6na3yp.js";
48
48
  export {
49
49
  writeHumanProgress,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildSourceSnapshot
3
- } from "./cli-5tsqk3jt.js";
4
- import"./cli-8c60k2p4.js";
3
+ } from "./cli-3xh2w7hb.js";
4
+ import"./cli-bvnw7585.js";
5
5
  import"./cli-0v6na3yp.js";
6
6
 
7
7
  // src/harness-github-actions.ts
@@ -3,7 +3,7 @@ import {
3
3
  initPrompts,
4
4
  runPromptSync,
5
5
  runSkillSync
6
- } from "./cli-j2rdgd3p.js";
6
+ } from "./cli-nnwegmzh.js";
7
7
  import {
8
8
  codingAgentDisplayName,
9
9
  describeCodingAgentEvent,
@@ -22,7 +22,7 @@ import {
22
22
  runHarnessCommand,
23
23
  startRemoteAnalyze,
24
24
  stripAnsi
25
- } from "./cli-5tsqk3jt.js";
25
+ } from "./cli-3xh2w7hb.js";
26
26
  import {
27
27
  bundledSkillsDir,
28
28
  installIntegrationSkill,
@@ -34,14 +34,14 @@ import {
34
34
  } from "./cli-ssfq84k5.js";
35
35
  import {
36
36
  selectTenantAndCreateKey
37
- } from "./cli-j2fapt3g.js";
37
+ } from "./cli-phgzghwq.js";
38
38
  import {
39
39
  ConnectCodeError,
40
40
  connectWithCode,
41
41
  loadAuthSession,
42
42
  loadToken,
43
43
  login
44
- } from "./cli-rycpwqzm.js";
44
+ } from "./cli-dy2aavbe.js";
45
45
  import {
46
46
  CliAuthError,
47
47
  CliInputError,
@@ -49,7 +49,7 @@ import {
49
49
  createCommandContext,
50
50
  resolveIngestUrl,
51
51
  resolveModaBaseUrl
52
- } from "./cli-8c60k2p4.js";
52
+ } from "./cli-bvnw7585.js";
53
53
  import"./cli-0v6na3yp.js";
54
54
 
55
55
  // src/init/index.ts
@@ -5,8 +5,8 @@ import {
5
5
  inspectCodeSelectors,
6
6
  inspectPythonSelectors,
7
7
  safePromptEvidencePath
8
- } from "./cli-5tsqk3jt.js";
9
- import"./cli-8c60k2p4.js";
8
+ } from "./cli-3xh2w7hb.js";
9
+ import"./cli-bvnw7585.js";
10
10
  import {
11
11
  __commonJS,
12
12
  __toESM
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  selectTenantAndCreateKey
3
- } from "./cli-j2fapt3g.js";
3
+ } from "./cli-phgzghwq.js";
4
4
  import {
5
5
  loadAuthSession
6
- } from "./cli-rycpwqzm.js";
6
+ } from "./cli-dy2aavbe.js";
7
7
  import {
8
8
  CliAuthError,
9
9
  resolveIngestUrl,
10
10
  resolveModaBaseUrl,
11
11
  stringOption
12
- } from "./cli-8c60k2p4.js";
12
+ } from "./cli-bvnw7585.js";
13
13
  import"./cli-0v6na3yp.js";
14
14
 
15
15
  // src/provision.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moda-ai/cli",
3
- "version": "1.45.0",
3
+ "version": "1.45.2",
4
4
  "description": "CLI for Moda - AI agent analytics and observability",
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-09T19:33:51.744Z",
4
- "cli_version": "1.45.0",
3
+ "bundled_at": "2026-10-09T23:09:30.337Z",
4
+ "cli_version": "1.45.2",
5
5
  "skills": [
6
6
  {
7
7
  "id": "integration-cloudflare-think",