@moda-ai/cli 1.55.11 → 1.55.13

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.
Files changed (29) hide show
  1. package/dist/{agent-n0ch2j90.js → agent-rd9deae9.js} +9 -9
  2. package/dist/{cli-m16taf4z.js → cli-09rr5smg.js} +1 -1
  3. package/dist/{cli-11fevr8y.js → cli-34zdvcpg.js} +5 -5
  4. package/dist/{cli-k5qqj2bp.js → cli-4x9w6ey7.js} +1 -1
  5. package/dist/{cli-fq7kk77e.js → cli-90hb4ng0.js} +8 -8
  6. package/dist/{cli-n9gexgma.js → cli-bfmn3bsk.js} +2 -2
  7. package/dist/{cli-g7ferymy.js → cli-k7vwt56h.js} +3 -3
  8. package/dist/{cli-429zt7g4.js → cli-kwz900s4.js} +95 -21
  9. package/dist/{cli-m857n028.js → cli-m0fa54ny.js} +5 -5
  10. package/dist/{cli-tmqd1f0m.js → cli-ryd7nzke.js} +2 -2
  11. package/dist/{cli-t4jjhn3g.js → cli-ssqb8bfw.js} +1 -1
  12. package/dist/{cli-fwec3m42.js → cli-y8gbbe9k.js} +4 -4
  13. package/dist/cli.js +96 -61
  14. package/dist/{doctor-spvy2zb3.js → doctor-8yb6r66e.js} +9 -9
  15. package/dist/{fix-ax6bbg37.js → fix-bt5zn07e.js} +7 -7
  16. package/dist/{harness-jbqpbp6n.js → harness-9psndqtm.js} +6 -6
  17. package/dist/{harness-github-actions-mtksqp3c.js → harness-github-actions-nph5t2s7.js} +6 -6
  18. package/dist/{index-2d0q94sv.js → index-qjaprhrv.js} +11 -11
  19. package/dist/{production-intelligence-1tf98n79.js → production-intelligence-mg3qp2dg.js} +3 -3
  20. package/dist/{profile-commands-f6599bcx.js → profile-commands-2g5bjzj2.js} +3 -3
  21. package/dist/prompt-source-mcp.js +6 -6
  22. package/dist/{prompts-y3xd9heh.js → prompts-mzazn8ce.js} +7 -7
  23. package/dist/{provision-cjpsswa9.js → provision-rm0yc08f.js} +4 -4
  24. package/dist/{registry-1dvxsekd.js → registry-mbz65bjy.js} +4 -4
  25. package/dist/{skills-1k0hbkaf.js → skills-sagxq9sc.js} +6 -6
  26. package/dist/{sync-by81xqk4.js → sync-gkwexz68.js} +8 -8
  27. package/package.json +1 -1
  28. package/skills/integration/index.json +2 -2
  29. package/skills/moda-cli/SKILL.md +10 -4
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  buildDoctorReport
3
- } from "./cli-11fevr8y.js";
4
- import"./cli-t4jjhn3g.js";
5
- import"./cli-fq7kk77e.js";
3
+ } from "./cli-34zdvcpg.js";
4
+ import"./cli-ssqb8bfw.js";
5
+ import"./cli-90hb4ng0.js";
6
6
  import"./cli-mm48br00.js";
7
7
  import {
8
8
  HARNESS_REPORT_APPROVAL_PATH,
@@ -14,19 +14,19 @@ import {
14
14
  readHarnessSyncState,
15
15
  summarizeHarness,
16
16
  validateHarnessReport
17
- } from "./cli-m857n028.js";
17
+ } from "./cli-m0fa54ny.js";
18
18
  import"./cli-97fnztpy.js";
19
- import"./cli-k5qqj2bp.js";
20
- import"./cli-g7ferymy.js";
21
- import"./cli-tmqd1f0m.js";
22
- import"./cli-m16taf4z.js";
19
+ import"./cli-4x9w6ey7.js";
20
+ import"./cli-k7vwt56h.js";
21
+ import"./cli-ryd7nzke.js";
22
+ import"./cli-09rr5smg.js";
23
23
  import {
24
24
  CliInputError,
25
25
  resolveApiKey,
26
26
  resolveIngestUrl,
27
27
  resolveModaBaseUrl,
28
28
  resolveTenantId
29
- } from "./cli-429zt7g4.js";
29
+ } from "./cli-kwz900s4.js";
30
30
  import"./cli-0v6na3yp.js";
31
31
 
32
32
  // src/agent.ts
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveTenantId
3
- } from "./cli-429zt7g4.js";
3
+ } from "./cli-kwz900s4.js";
4
4
 
5
5
  // src/api-key-headers.ts
6
6
  var PLATFORM_API_KEY_PREFIX = "moda_pk_";
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  isAuthSessionValid,
3
3
  loadAuthSession
4
- } from "./cli-t4jjhn3g.js";
4
+ } from "./cli-ssqb8bfw.js";
5
5
  import {
6
6
  inspectPromptManifest
7
- } from "./cli-fq7kk77e.js";
7
+ } from "./cli-90hb4ng0.js";
8
8
  import {
9
9
  readHarnessSyncState,
10
10
  renderDoctorHuman,
11
11
  renderStatusHuman,
12
12
  scanHarness
13
- } from "./cli-m857n028.js";
13
+ } from "./cli-m0fa54ny.js";
14
14
  import {
15
15
  callDataAPI
16
- } from "./cli-tmqd1f0m.js";
16
+ } from "./cli-ryd7nzke.js";
17
17
  import {
18
18
  ensureSecretFilePermissions,
19
19
  getActiveProfile,
@@ -27,7 +27,7 @@ import {
27
27
  resolveSecretReference,
28
28
  resolveTenantId,
29
29
  secretFilePathFromRef
30
- } from "./cli-429zt7g4.js";
30
+ } from "./cli-kwz900s4.js";
31
31
 
32
32
  // src/doctor.ts
33
33
  import { createHash } from "node:crypto";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createCliOutput,
3
3
  outputModeFromFlags
4
- } from "./cli-429zt7g4.js";
4
+ } from "./cli-kwz900s4.js";
5
5
 
6
6
  // src/command-context.ts
7
7
  function flagEnabled(flags, key) {
@@ -12,28 +12,28 @@ import {
12
12
  require_typescript,
13
13
  resolvePromptSource,
14
14
  safePromptEvidencePath
15
- } from "./cli-m857n028.js";
15
+ } from "./cli-m0fa54ny.js";
16
16
  import {
17
17
  createCommandContext
18
- } from "./cli-k5qqj2bp.js";
18
+ } from "./cli-4x9w6ey7.js";
19
19
  import {
20
20
  assertFlags,
21
21
  assertPositionals
22
- } from "./cli-g7ferymy.js";
22
+ } from "./cli-k7vwt56h.js";
23
23
  import {
24
24
  callControlAPI,
25
25
  callDataAPI
26
- } from "./cli-tmqd1f0m.js";
26
+ } from "./cli-ryd7nzke.js";
27
27
  import {
28
28
  setPlatformTenantOverride
29
- } from "./cli-m16taf4z.js";
29
+ } from "./cli-09rr5smg.js";
30
30
  import {
31
31
  CliInputError,
32
32
  EXIT_ERROR,
33
33
  EXIT_OK,
34
34
  resolveApiTenantId,
35
35
  validateConfig
36
- } from "./cli-429zt7g4.js";
36
+ } from "./cli-kwz900s4.js";
37
37
  import {
38
38
  __commonJS,
39
39
  __require,
@@ -6731,7 +6731,7 @@ async function runPromptSyncExclusive(flags, profileOptions, options) {
6731
6731
  const analyzedDefinitions = new Map;
6732
6732
  if (flags["no-analyze"] !== "true") {
6733
6733
  options.onProgress?.("Analyzing prompt sources before sync.");
6734
- const { analyzeHarnessPrompts } = await import("./harness-jbqpbp6n.js");
6734
+ const { analyzeHarnessPrompts } = await import("./harness-9psndqtm.js");
6735
6735
  const result = await analyzeHarnessPrompts({
6736
6736
  rootDir: process.cwd(),
6737
6737
  existing: established.flatMap((prompt) => prompt.sourceDefinition ? [prompt.sourceDefinition.source] : []),
@@ -7061,7 +7061,7 @@ async function migratePromptManifest(options = {}) {
7061
7061
  let addedSources = [];
7062
7062
  let pendingSources = [];
7063
7063
  if (options.discover) {
7064
- const { analyzeHarnessPrompts } = await import("./harness-jbqpbp6n.js");
7064
+ const { analyzeHarnessPrompts } = await import("./harness-9psndqtm.js");
7065
7065
  const result = await analyzeHarnessPrompts({
7066
7066
  rootDir: root,
7067
7067
  existing: manifest.sources,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  authFetch,
3
3
  getCachedLoginContext
4
- } from "./cli-t4jjhn3g.js";
4
+ } from "./cli-ssqb8bfw.js";
5
5
  import {
6
6
  CliAccessError,
7
7
  CliInputError,
@@ -16,7 +16,7 @@ import {
16
16
  resolveTenantIdFromActiveProfile,
17
17
  saveCliConfig,
18
18
  writeSecretJsonFile
19
- } from "./cli-429zt7g4.js";
19
+ } from "./cli-kwz900s4.js";
20
20
 
21
21
  // src/init/tenant.ts
22
22
  import { randomUUID } from "node:crypto";
@@ -2,18 +2,18 @@ import {
2
2
  ApiError,
3
3
  callControlAPI,
4
4
  callDataAPI
5
- } from "./cli-tmqd1f0m.js";
5
+ } from "./cli-ryd7nzke.js";
6
6
  import {
7
7
  isPlatformApiKey,
8
8
  setPlatformTenantOverride
9
- } from "./cli-m16taf4z.js";
9
+ } from "./cli-09rr5smg.js";
10
10
  import {
11
11
  CliAccessError,
12
12
  CliInputError,
13
13
  embeddedTenantIdFromApiKey,
14
14
  resolveApiKey,
15
15
  resolveApiTenantId
16
- } from "./cli-429zt7g4.js";
16
+ } from "./cli-kwz900s4.js";
17
17
 
18
18
  // src/parity-commands.ts
19
19
  import { readFileSync } from "node:fs";
@@ -576,6 +576,19 @@ class CliAuthError extends Error {
576
576
  usage;
577
577
  }
578
578
 
579
+ class CliNotFoundError extends Error {
580
+ entity;
581
+ id;
582
+ usage;
583
+ constructor(entity, id, message, usage) {
584
+ super(message ?? `No ${entity} found for id "${id}" in this tenant.`);
585
+ this.entity = entity;
586
+ this.id = id;
587
+ this.usage = usage;
588
+ this.name = "CliNotFoundError";
589
+ }
590
+ }
591
+
579
592
  class CliCancellationError extends Error {
580
593
  constructor(message) {
581
594
  super(message);
@@ -588,6 +601,12 @@ function isNetworkLikeError(error) {
588
601
  function isApiLikeError(error) {
589
602
  return error instanceof Error && (error.name === "ApiError" || ("statusCode" in error) && typeof error.statusCode === "number");
590
603
  }
604
+ function apiErrorStatus(error) {
605
+ if (!isApiLikeError(error))
606
+ return;
607
+ const status = error.statusCode;
608
+ return typeof status === "number" ? status : undefined;
609
+ }
591
610
 
592
611
  // src/config.ts
593
612
  import { readFileSync as readFileSync2 } from "node:fs";
@@ -640,9 +659,9 @@ function resolveModaBaseUrl(options = {}) {
640
659
  }
641
660
  function validateConfig() {
642
661
  if (!resolveApiKey()) {
643
- throw new CliAuthError('No Moda API key found. Set MODA_API_KEY or run "moda init".', {
662
+ throw new CliAuthError('No Moda API key found. Set MODA_API_KEY=moda_sk_... in the environment, save one with "moda auth login --api-key", or run "moda init" for interactive setup.', {
644
663
  reason: "no_stored_credentials",
645
- login_command: ["moda", "init"]
664
+ login_command: ["moda", "auth", "login", "--api-key"]
646
665
  }, "Get your API key from https://moda.dev/settings");
647
666
  }
648
667
  }
@@ -1004,9 +1023,16 @@ import { randomUUID } from "node:crypto";
1004
1023
  import { lstatSync, mkdirSync as mkdirSync2, readdirSync, unlinkSync, writeFileSync as writeFileSync2 } from "node:fs";
1005
1024
  import { tmpdir } from "node:os";
1006
1025
  import { join as join2 } from "node:path";
1026
+ var agentUpdateNotice;
1027
+ function setAgentUpdateNotice(notice) {
1028
+ agentUpdateNotice = notice;
1029
+ }
1030
+ function resolveAgentUpdateNotice() {
1031
+ return typeof agentUpdateNotice === "function" ? agentUpdateNotice() : agentUpdateNotice;
1032
+ }
1007
1033
  var AGENT_SCHEMA_VERSION = "moda.agent.v1";
1008
1034
  var AGENT_EVENT_SCHEMA_VERSION = "moda.agent_event.v1";
1009
- var FEEDBACK_TIP = 'Help us improve! If a result in this response looks wrong or is missing data, flag it: moda feedback "<describe what looked wrong>" [--category=...] [--conversation-id=... | --cluster-id=... | --tool-name=...]. Only submit genuine observations.';
1035
+ var FEEDBACK_TIP = 'If a result looks wrong or is missing data: moda feedback "<what looked wrong>"';
1010
1036
  var EXIT_OK = 0;
1011
1037
  var EXIT_ERROR = 1;
1012
1038
  var EXIT_DEGRADED = 3;
@@ -1024,7 +1050,8 @@ var AGENT_ERROR_CODES = [
1024
1050
  "access_denied",
1025
1051
  "unknown_error",
1026
1052
  "cloud_unavailable",
1027
- "output_error"
1053
+ "output_error",
1054
+ "not_found"
1028
1055
  ];
1029
1056
  var FALLBACK_RUN_ID = randomUUID();
1030
1057
  var fallbackSeq = 0;
@@ -1139,8 +1166,10 @@ function createCliOutput(options) {
1139
1166
  startedAt: Date.now(),
1140
1167
  lastEventAt: Date.now()
1141
1168
  };
1142
- const emitEvent = (event) => {
1143
- if (options.quiet || options.mode !== "agent-stream")
1169
+ const emitEvent = (event, { bypassQuiet = false } = {}) => {
1170
+ if (options.mode !== "agent-stream")
1171
+ return;
1172
+ if (options.quiet && !bypassQuiet)
1144
1173
  return;
1145
1174
  if (state.terminal)
1146
1175
  return;
@@ -1156,16 +1185,19 @@ function createCliOutput(options) {
1156
1185
  safeWriteStdout(`${JSON.stringify(createAgentEvent(options.command, event, state))}
1157
1186
  `);
1158
1187
  };
1159
- const ensureStarted = () => {
1160
- if (options.mode !== "agent-stream" || state.started || options.quiet)
1188
+ const ensureStarted = ({ bypassQuiet = false } = {}) => {
1189
+ if (options.mode !== "agent-stream" || state.started)
1190
+ return;
1191
+ if (options.quiet && !bypassQuiet)
1161
1192
  return;
1162
- startHeartbeat(options.command, state);
1193
+ if (!options.quiet)
1194
+ startHeartbeat(options.command, state);
1163
1195
  emitEvent({
1164
1196
  event: "started",
1165
1197
  phase: options.command,
1166
1198
  message: `Starting ${options.command}.`,
1167
1199
  elapsed_ms: 0
1168
- });
1200
+ }, { bypassQuiet });
1169
1201
  };
1170
1202
  const writeEnvelope = (data, writeOptions = {}) => {
1171
1203
  return createAgentEnvelope({
@@ -1175,7 +1207,8 @@ function createCliOutput(options) {
1175
1207
  meta: {
1176
1208
  ...writeOptions.meta ?? {},
1177
1209
  run_id: state.runId,
1178
- ...options.command === "feedback" ? {} : { tip: FEEDBACK_TIP }
1210
+ ...options.command === "feedback" ? {} : { tip: FEEDBACK_TIP },
1211
+ ...((update) => update ? { update } : {})(resolveAgentUpdateNotice())
1179
1212
  },
1180
1213
  summary: writeOptions.summary,
1181
1214
  findings: writeOptions.findings,
@@ -1235,12 +1268,12 @@ function createCliOutput(options) {
1235
1268
  emitEvent(event);
1236
1269
  },
1237
1270
  writeError(error) {
1238
- if (options.quiet || state.terminal)
1271
+ if (state.terminal)
1239
1272
  return;
1240
1273
  const agentError = errorToAgentError(error);
1241
1274
  const envelope = createAgentErrorEnvelope(options.command || "unknown", agentError, state.runId, errorWarnings(error));
1242
1275
  if (options.mode === "agent-stream") {
1243
- ensureStarted();
1276
+ ensureStarted({ bypassQuiet: true });
1244
1277
  if (error instanceof CliInputRequiredError) {
1245
1278
  emitEvent({
1246
1279
  event: "needs_input",
@@ -1249,18 +1282,18 @@ function createCliOutput(options) {
1249
1282
  error: agentError,
1250
1283
  input_request: error.input_request,
1251
1284
  result: envelope
1252
- });
1285
+ }, { bypassQuiet: true });
1253
1286
  return;
1254
1287
  }
1255
- if (error instanceof CliAuthError) {
1288
+ if (error instanceof CliAuthError || agentError.code === "auth_required") {
1256
1289
  emitEvent({
1257
1290
  event: "auth_required",
1258
1291
  status: "error",
1259
- message: error.message,
1292
+ message: agentError.message,
1260
1293
  error: agentError,
1261
- auth: error.auth,
1294
+ auth: error instanceof CliAuthError ? error.auth : agentError.auth,
1262
1295
  result: envelope
1263
- });
1296
+ }, { bypassQuiet: true });
1264
1297
  return;
1265
1298
  }
1266
1299
  if (error instanceof CliCancellationError) {
@@ -1270,7 +1303,7 @@ function createCliOutput(options) {
1270
1303
  message: error.message,
1271
1304
  error: agentError,
1272
1305
  result: envelope
1273
- });
1306
+ }, { bypassQuiet: true });
1274
1307
  return;
1275
1308
  }
1276
1309
  emitEvent({
@@ -1279,7 +1312,7 @@ function createCliOutput(options) {
1279
1312
  message: agentError.message,
1280
1313
  error: agentError,
1281
1314
  result: envelope
1282
- });
1315
+ }, { bypassQuiet: true });
1283
1316
  return;
1284
1317
  }
1285
1318
  if (options.mode === "agent" || options.mode === "json") {
@@ -1549,6 +1582,20 @@ function formatValidationMessage(error) {
1549
1582
  });
1550
1583
  return `Validation error — ${[...new Set(parts)].join("; ")}`;
1551
1584
  }
1585
+ var API_KEY_RECOVERY = "Set MODA_API_KEY=moda_sk_... in the environment, or save one with `moda auth login --api-key` (reads MODA_API_KEY or --api-key-stdin). Keys: https://moda.dev/settings";
1586
+ function serverErrorMessage(error) {
1587
+ const body = error.responseBody;
1588
+ if (typeof body !== "string" || !body.trimStart().startsWith("{"))
1589
+ return;
1590
+ try {
1591
+ const message = JSON.parse(body).message;
1592
+ if (typeof message === "string" && message.trim())
1593
+ return message.trim().replace(/\.$/, "");
1594
+ if (Array.isArray(message))
1595
+ return message.filter((m) => typeof m === "string").join("; ") || undefined;
1596
+ } catch {}
1597
+ return;
1598
+ }
1552
1599
  function errorToAgentError(error) {
1553
1600
  if (error instanceof CliInputRequiredError) {
1554
1601
  return {
@@ -1580,6 +1627,15 @@ function errorToAgentError(error) {
1580
1627
  blocking: true
1581
1628
  };
1582
1629
  }
1630
+ if (error instanceof CliNotFoundError) {
1631
+ return {
1632
+ code: "not_found",
1633
+ message: error.message,
1634
+ cause: error.usage,
1635
+ suggested_commands: error.usage ? extractSuggestedCommands(error.usage) : undefined,
1636
+ blocking: true
1637
+ };
1638
+ }
1583
1639
  if (error instanceof CliAccessError) {
1584
1640
  return {
1585
1641
  code: "access_denied",
@@ -1598,6 +1654,24 @@ function errorToAgentError(error) {
1598
1654
  blocking: true
1599
1655
  };
1600
1656
  }
1657
+ if (apiErrorStatus(error) === 401) {
1658
+ return {
1659
+ code: "auth_required",
1660
+ message: "The Moda API rejected the API key (HTTP 401): it is invalid, revoked, or for another environment.",
1661
+ cause: API_KEY_RECOVERY,
1662
+ suggested_commands: ["moda auth login --api-key", "moda auth status --online"],
1663
+ auth: { reason: "api_key_rejected", login_command: ["moda", "auth", "login", "--api-key"] },
1664
+ blocking: true
1665
+ };
1666
+ }
1667
+ if (apiErrorStatus(error) === 403) {
1668
+ return {
1669
+ code: "access_denied",
1670
+ message: `The Moda API refused this request (HTTP 403): ${serverErrorMessage(error) ?? "the API key does not allow it"}.`,
1671
+ cause: "Read-only keys cannot run writes, and organization keys cannot select another tenant. Use a key with the needed access.",
1672
+ blocking: true
1673
+ };
1674
+ }
1601
1675
  if (isApiLikeError(error)) {
1602
1676
  const statusCode = "statusCode" in error ? error.statusCode : undefined;
1603
1677
  const typedCode = "code" in error && typeof error.code === "string" ? error.code : undefined;
@@ -1871,4 +1945,4 @@ function extractSuggestedCommands(text) {
1871
1945
  return commands.length > 0 ? commands : undefined;
1872
1946
  }
1873
1947
 
1874
- export { PROD_BASE_URL, DEFAULT_INGEST_URL, getModaPaths, getModaDir, isLoopbackBaseUrl, 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, recordApiRequest, getApiRequestCount, resetApiRequestCount, 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, outputModeFromFlags, resolveOutputMode, createCliOutput, agentEnvelopeFits, agentMaxOutputBytes };
1948
+ export { PROD_BASE_URL, DEFAULT_INGEST_URL, getModaPaths, getModaDir, isLoopbackBaseUrl, describeBaseUrlSource, loadProfileConfig, saveProfileConfig, getActiveProfile, setActiveProfile, upsertProfile, clearStoredApiKeyCredentials, secretFilePathFromRef, resolveSecretReference, resolveApiKeyFromActiveProfile, resolveTenantIdFromActiveProfile, ensureSecretFilePermissions, writeSecretJsonFile, CliInputError, CliAccessError, CliInputRequiredError, CliAuthError, CliNotFoundError, CliCancellationError, isNetworkLikeError, isApiLikeError, apiErrorStatus, VERSION, MODA_BASE_URL, loadCliConfig, saveCliConfig, resolveApiKey, embeddedTenantIdFromApiKey, resolveIngestUrl2 as resolveIngestUrl, resolveTenantId, resolveApiTenantId, resolveModaBaseUrl, validateConfig, recordApiRequest, getApiRequestCount, resetApiRequestCount, 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, setAgentUpdateNotice, EXIT_OK, EXIT_ERROR, EXIT_DEGRADED, EXIT_AUTH_REQUIRED, EXIT_INPUT_REQUIRED, EXIT_CANCELLED, AGENT_ERROR_CODES, wasOutputCancelled, safeWriteStdout, safeWriteStderr, explicitOutputMode, outputModeFromFlags, resolveOutputMode, createCliOutput, agentEnvelopeFits, agentMaxOutputBytes };
@@ -4,16 +4,16 @@ import {
4
4
  import {
5
5
  createCommandContext,
6
6
  stringOption
7
- } from "./cli-k5qqj2bp.js";
7
+ } from "./cli-4x9w6ey7.js";
8
8
  import {
9
9
  assertFlags,
10
10
  assertPositionals,
11
11
  requireTenant
12
- } from "./cli-g7ferymy.js";
12
+ } from "./cli-k7vwt56h.js";
13
13
  import {
14
14
  ApiError,
15
15
  callControlAPI
16
- } from "./cli-tmqd1f0m.js";
16
+ } from "./cli-ryd7nzke.js";
17
17
  import {
18
18
  CliInputError,
19
19
  CliInputRequiredError,
@@ -39,7 +39,7 @@ import {
39
39
  resolveModaBaseUrl,
40
40
  resolveTenantId,
41
41
  shouldInventoryFile
42
- } from "./cli-429zt7g4.js";
42
+ } from "./cli-kwz900s4.js";
43
43
  import {
44
44
  __commonJS,
45
45
  __require,
@@ -193996,7 +193996,7 @@ async function runHarnessCommand(context) {
193996
193996
  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.");
193997
193997
  }
193998
193998
  if (context.flags["github-actions"] === "true") {
193999
- const { runGithubActionsAnalyze } = await import("./harness-github-actions-mtksqp3c.js");
193999
+ const { runGithubActionsAnalyze } = await import("./harness-github-actions-nph5t2s7.js");
194000
194000
  const result = await runGithubActionsAnalyze(rootDir, {
194001
194001
  writeReport: (report2) => {
194002
194002
  const normalized = normalizeHarnessReport(report2);
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  apiKeyHeaders
3
- } from "./cli-m16taf4z.js";
3
+ } from "./cli-09rr5smg.js";
4
4
  import {
5
5
  recordApiRequest,
6
6
  resolveApiKey,
7
7
  resolveModaBaseUrl
8
- } from "./cli-429zt7g4.js";
8
+ } from "./cli-kwz900s4.js";
9
9
 
10
10
  // src/api-client.ts
11
11
  var REQUEST_TIMEOUT_MS = 30000;
@@ -8,7 +8,7 @@ import {
8
8
  saveProfileConfig,
9
9
  secretFilePathFromRef,
10
10
  writeSecretJsonFile
11
- } from "./cli-429zt7g4.js";
11
+ } from "./cli-kwz900s4.js";
12
12
  import {
13
13
  __require
14
14
  } from "./cli-0v6na3yp.js";
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  createCommandContext
3
- } from "./cli-k5qqj2bp.js";
3
+ } from "./cli-4x9w6ey7.js";
4
4
  import {
5
5
  assertFlags,
6
6
  assertPositionals
7
- } from "./cli-g7ferymy.js";
7
+ } from "./cli-k7vwt56h.js";
8
8
  import {
9
9
  callControlAPI
10
- } from "./cli-tmqd1f0m.js";
10
+ } from "./cli-ryd7nzke.js";
11
11
  import {
12
12
  CliInputError,
13
13
  recordApiRequest,
14
14
  resolveApiKey,
15
15
  resolveIngestUrl,
16
16
  resolveTenantId
17
- } from "./cli-429zt7g4.js";
17
+ } from "./cli-kwz900s4.js";
18
18
  import {
19
19
  SKILL_SOURCE_HARNESS,
20
20
  SKILL_SOURCE_INTEGRATION_BUNDLED,