@moda-ai/cli 1.55.108 → 1.55.109

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 (46) hide show
  1. package/README.md +3 -3
  2. package/dist/{agent-vvefg4bm.js → agent-5kfdbx36.js} +8 -8
  3. package/dist/{change-impact-5h3k9kg6.js → change-impact-v2vbcphy.js} +5 -5
  4. package/dist/cli-2fv0q9tx.js +141 -0
  5. package/dist/{cli-xxpaq3n8.js → cli-3r578f36.js} +6 -6
  6. package/dist/{cli-13zdcv4w.js → cli-3thzh1mq.js} +1 -1
  7. package/dist/{cli-998n4kz9.js → cli-6df723jn.js} +1 -1
  8. package/dist/{cli-5z2f1w5m.js → cli-6zmc6asf.js} +6 -6
  9. package/dist/{cli-ap7wfbnk.js → cli-7gnw6smk.js} +2 -2
  10. package/dist/{cli-r2dxdhg8.js → cli-84jkd2x7.js} +13 -13
  11. package/dist/{cli-mc3z77bv.js → cli-8qtxp95w.js} +1 -1
  12. package/dist/cli-ahqr7wsp.js +429 -0
  13. package/dist/{cli-qwnkv4jy.js → cli-bgbtrmtr.js} +1 -1
  14. package/dist/{cli-n9ng8mym.js → cli-cp8gv24j.js} +1 -1
  15. package/dist/{cli-eq09n00v.js → cli-ew4pkn5b.js} +6 -6
  16. package/dist/{cli-ekartfps.js → cli-hv4bztsm.js} +1 -1
  17. package/dist/{cli-62e1vy8f.js → cli-m6w66x9d.js} +3 -3
  18. package/dist/{cli-2bhhk2nn.js → cli-mh94f7gp.js} +2 -2
  19. package/dist/{cli-1nd4339b.js → cli-tca7sztv.js} +2 -2
  20. package/dist/cli.js +29 -108
  21. package/dist/{doctor-1hhktzsz.js → doctor-t0b99wnq.js} +7 -7
  22. package/dist/{harness-github-actions-1hq2ed0v.js → harness-github-actions-e4zrcrym.js} +5 -5
  23. package/dist/{harness-7s0w2wc9.js → harness-phdj0eqr.js} +5 -5
  24. package/dist/{index-9adksf01.js → index-65grk0mp.js} +5 -5
  25. package/dist/{index-n1jx9hta.js → index-86wb6vbh.js} +6 -6
  26. package/dist/{index-2g0ft2hm.js → index-zhg2zc3x.js} +13 -13
  27. package/dist/{production-intelligence-8w7an97c.js → production-intelligence-31p18dfx.js} +3 -3
  28. package/dist/{profile-commands-zgq8dja0.js → profile-commands-tz3jykvh.js} +4 -4
  29. package/dist/{prompt-attribution-c1a5pysf.js → prompt-attribution-8ak38a3q.js} +5 -5
  30. package/dist/prompt-source-mcp.js +5 -5
  31. package/dist/{prompts-fdqrbawx.js → prompts-a8zcvc1c.js} +5 -5
  32. package/dist/{provision-d0sxcka1.js → provision-2dzzb0be.js} +5 -5
  33. package/dist/{registry-vxrxw1tj.js → registry-p07epn79.js} +22 -18
  34. package/dist/skills-5atq9sgh.js +17 -0
  35. package/dist/{skills-bundled-7jes6hqx.js → skills-bundled-tcxpw88n.js} +2 -2
  36. package/dist/{sync-gxgpfztm.js → sync-e76vmfty.js} +10 -12
  37. package/package.json +1 -1
  38. package/skills/integration/index.json +2 -2
  39. package/skills/moda-cli/SKILL.md +1 -1
  40. package/skills/moda-cli/references/commands.md +2 -2
  41. package/skills/moda-cli/references/dashboard-parity.md +1 -1
  42. package/skills/moda-cli/references/output-protocol.md +4 -4
  43. package/skills/moda-cli/references/registry.md +1 -3
  44. package/dist/cli-h7hfpmwa.js +0 -1019
  45. package/dist/cli-qm5b1vck.js +0 -220
  46. package/dist/skills-rjbnv8nn.js +0 -23
package/README.md CHANGED
@@ -382,9 +382,9 @@ moda registry status # registered harness and ver
382
382
  moda registry coverage --days=7 # recent traces vs the registry
383
383
  ```
384
384
 
385
- Prompts go to the prompt registry, skills to the skill library (pass `--live`
386
- or set `"live": true` to serve them), and tools to the tool registry as OpenAI
387
- function schemas. The v2 sections describe how the harness runs:
385
+ Prompts go to the prompt registry, skills to the skill registry, and tools to
386
+ the tool registry as OpenAI function schemas. The v2 sections describe how the
387
+ harness runs:
388
388
 
389
389
  - `agents`: each agent's prompt, model and params, tools, skills, handoffs,
390
390
  and trace names.
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  buildDoctorReport
3
- } from "./cli-eq09n00v.js";
4
- import"./cli-qwnkv4jy.js";
5
- import"./cli-xxpaq3n8.js";
3
+ } from "./cli-ew4pkn5b.js";
4
+ import"./cli-bgbtrmtr.js";
5
+ import"./cli-3r578f36.js";
6
6
  import"./cli-mm48br00.js";
7
7
  import"./cli-764m5azg.js";
8
8
  import {
@@ -16,16 +16,16 @@ import {
16
16
  readHarnessReport,
17
17
  validateHarnessReport
18
18
  } from "./cli-krm4w2v9.js";
19
- import"./cli-13zdcv4w.js";
20
- import"./cli-2bhhk2nn.js";
19
+ import"./cli-3thzh1mq.js";
20
+ import"./cli-mh94f7gp.js";
21
21
  import"./cli-e0kbye4s.js";
22
- import"./cli-n9ng8mym.js";
22
+ import"./cli-cp8gv24j.js";
23
23
  import {
24
24
  resolveApiKey,
25
25
  resolveIngestUrl,
26
26
  resolveModaBaseUrl,
27
27
  resolveTenantId
28
- } from "./cli-1nd4339b.js";
28
+ } from "./cli-tca7sztv.js";
29
29
  import {
30
30
  CliInputError
31
31
  } from "./cli-k4tqwah4.js";
@@ -96,7 +96,7 @@ async function buildAgentContext(context) {
96
96
  const graph = readHarnessGraphIfPresent(context.cwd);
97
97
  const reportState = readHarnessReportState(context.cwd);
98
98
  const syncState = readHarnessSyncState(context.cwd);
99
- const harness = graph ? await import("./harness-7s0w2wc9.js") : undefined;
99
+ const harness = graph ? await import("./harness-phdj0eqr.js") : undefined;
100
100
  const topFindings = doctor.checks.filter((check) => check.status === "fail" || check.status === "warning").slice(0, 12).map(checkToFinding);
101
101
  const evidenceRefs = [
102
102
  ...doctor.checks.map(checkToEvidenceRef),
@@ -11,17 +11,17 @@ import {
11
11
  resolvedSymbol,
12
12
  returnExpressions,
13
13
  valueDeclaration
14
- } from "./cli-r2dxdhg8.js";
14
+ } from "./cli-84jkd2x7.js";
15
15
  import"./cli-rpyepjwb.js";
16
16
  import"./cli-97fnztpy.js";
17
17
  import {
18
18
  detectBoundRuntimeClasses
19
19
  } from "./cli-krm4w2v9.js";
20
- import"./cli-13zdcv4w.js";
21
- import"./cli-2bhhk2nn.js";
20
+ import"./cli-3thzh1mq.js";
21
+ import"./cli-mh94f7gp.js";
22
22
  import"./cli-e0kbye4s.js";
23
- import"./cli-n9ng8mym.js";
24
- import"./cli-1nd4339b.js";
23
+ import"./cli-cp8gv24j.js";
24
+ import"./cli-tca7sztv.js";
25
25
  import"./cli-k4tqwah4.js";
26
26
  import {
27
27
  require_typescript
@@ -0,0 +1,141 @@
1
+ // src/skills-manifest.ts
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ var SKILLS_MANIFEST_PATH = join(".moda", "skills.yml");
5
+ var SKILL_SOURCE_INTEGRATION_BUNDLED = "integration-bundled";
6
+ var LEGACY_SKILL_SOURCE = "moda";
7
+ function readSkillsManifest(cwd) {
8
+ const manifestPath = join(cwd, SKILLS_MANIFEST_PATH);
9
+ if (!existsSync(manifestPath))
10
+ return null;
11
+ let text = "";
12
+ try {
13
+ text = readFileSync(manifestPath, "utf8");
14
+ } catch {
15
+ return null;
16
+ }
17
+ return {
18
+ managedPaths: readManagedPaths(text),
19
+ records: readSkillRecords(text)
20
+ };
21
+ }
22
+ function writeSkillsManifest(cwd, records, extraManagedPaths = []) {
23
+ const manifestPath = join(cwd, SKILLS_MANIFEST_PATH);
24
+ const managedPaths = [...new Set([...records.flatMap((record) => record.paths), ...extraManagedPaths])].sort();
25
+ const lines = [
26
+ "version: 1",
27
+ `installed_at: ${yamlQuote(new Date().toISOString())}`,
28
+ "managed_paths:",
29
+ ...managedPaths.map((path) => ` - ${yamlQuote(path)}`),
30
+ "skills:",
31
+ ...records.flatMap((record) => [
32
+ ` - skill_id: ${yamlQuote(record.skillId)}`,
33
+ ` content_hash: ${yamlQuote(record.contentHash)}`,
34
+ ` source: ${yamlQuote(record.source)}`,
35
+ " paths:",
36
+ ...record.paths.map((path) => ` - ${yamlQuote(path)}`)
37
+ ]),
38
+ ""
39
+ ];
40
+ mkdirSync(dirname(manifestPath), { recursive: true });
41
+ writeFileSync(manifestPath, lines.join(`
42
+ `));
43
+ }
44
+ function upsertSkillManifestRecord(cwd, record) {
45
+ const manifest = readSkillsManifest(cwd);
46
+ const records = (manifest?.records ?? []).filter((existing) => !(existing.skillId === record.skillId && existing.source === record.source));
47
+ const recordedPaths = new Set((manifest?.records ?? []).flatMap((existing) => existing.paths));
48
+ const unrecordedPaths = (manifest?.managedPaths ?? []).filter((path) => !recordedPaths.has(path));
49
+ records.push(record);
50
+ writeSkillsManifest(cwd, records, unrecordedPaths);
51
+ }
52
+ function readSkillRecords(text) {
53
+ const records = [];
54
+ let inSkills = false;
55
+ let current = null;
56
+ let inPaths = false;
57
+ for (const line of text.split(/\r?\n/)) {
58
+ if (line.trim() === "skills:") {
59
+ inSkills = true;
60
+ continue;
61
+ }
62
+ if (!inSkills)
63
+ continue;
64
+ if (line.length > 0 && !line.startsWith(" "))
65
+ break;
66
+ const skillIdMatch = line.match(/^ {2}- skill_id:\s*(.*?)\s*$/);
67
+ if (skillIdMatch) {
68
+ if (current)
69
+ records.push(current);
70
+ current = {
71
+ skillId: parseYamlScalar(skillIdMatch[1]),
72
+ contentHash: "",
73
+ source: LEGACY_SKILL_SOURCE,
74
+ paths: []
75
+ };
76
+ inPaths = false;
77
+ continue;
78
+ }
79
+ if (!current)
80
+ continue;
81
+ const hashMatch = line.match(/^ {4}content_hash:\s*(.*?)\s*$/);
82
+ if (hashMatch) {
83
+ current.contentHash = parseYamlScalar(hashMatch[1]);
84
+ continue;
85
+ }
86
+ const sourceMatch = line.match(/^ {4}source:\s*(.*?)\s*$/);
87
+ if (sourceMatch) {
88
+ current.source = parseYamlScalar(sourceMatch[1]) || LEGACY_SKILL_SOURCE;
89
+ continue;
90
+ }
91
+ if (/^ {4}paths:\s*$/.test(line)) {
92
+ inPaths = true;
93
+ continue;
94
+ }
95
+ const pathMatch = inPaths ? line.match(/^ {6}-\s*(.*?)\s*$/) : null;
96
+ if (pathMatch) {
97
+ const value = parseYamlScalar(pathMatch[1]);
98
+ if (value)
99
+ current.paths.push(value);
100
+ }
101
+ }
102
+ if (current)
103
+ records.push(current);
104
+ return records;
105
+ }
106
+ function readManagedPaths(text) {
107
+ const paths = [];
108
+ let inManagedPaths = false;
109
+ for (const line of text.split(/\r?\n/)) {
110
+ if (line.trim() === "managed_paths:") {
111
+ inManagedPaths = true;
112
+ continue;
113
+ }
114
+ if (inManagedPaths && line.length > 0 && !line.startsWith(" "))
115
+ break;
116
+ if (!inManagedPaths)
117
+ continue;
118
+ const match = line.match(/^\s*-\s*(.*?)\s*$/);
119
+ if (match)
120
+ paths.push(parseYamlScalar(match[1]));
121
+ }
122
+ return paths.filter(Boolean);
123
+ }
124
+ function parseYamlScalar(raw) {
125
+ const value = raw.trim();
126
+ if (!value)
127
+ return "";
128
+ if (value.startsWith('"')) {
129
+ try {
130
+ return String(JSON.parse(value));
131
+ } catch {
132
+ return value.replace(/^"|"$/g, "");
133
+ }
134
+ }
135
+ return value.replace(/^'|'$/g, "");
136
+ }
137
+ function yamlQuote(value) {
138
+ return JSON.stringify(value);
139
+ }
140
+
141
+ export { SKILL_SOURCE_INTEGRATION_BUNDLED, readSkillsManifest, upsertSkillManifestRecord };
@@ -7,14 +7,14 @@ import {
7
7
  } from "./cli-764m5azg.js";
8
8
  import {
9
9
  createCommandContext
10
- } from "./cli-13zdcv4w.js";
10
+ } from "./cli-3thzh1mq.js";
11
11
  import {
12
12
  assertFlags,
13
13
  assertPositionals
14
- } from "./cli-2bhhk2nn.js";
14
+ } from "./cli-mh94f7gp.js";
15
15
  import {
16
16
  callControlAPI
17
- } from "./cli-n9ng8mym.js";
17
+ } from "./cli-cp8gv24j.js";
18
18
  import {
19
19
  CliInputError
20
20
  } from "./cli-k4tqwah4.js";
@@ -270,7 +270,7 @@ async function runPromptSyncExclusive(flags, profileOptions, options) {
270
270
  const analyzedDefinitions = new Map;
271
271
  if (flags["no-analyze"] !== "true") {
272
272
  options.onProgress?.("Analyzing prompt sources before sync.");
273
- const { analyzeHarnessPrompts } = await import("./harness-7s0w2wc9.js");
273
+ const { analyzeHarnessPrompts } = await import("./harness-phdj0eqr.js");
274
274
  const result = await analyzeHarnessPrompts({
275
275
  rootDir: process.cwd(),
276
276
  existing: established.flatMap((prompt) => prompt.sourceDefinition ? [prompt.sourceDefinition.source] : []),
@@ -298,7 +298,7 @@ async function runPromptSyncExclusive(flags, profileOptions, options) {
298
298
  const mergedSources = mergePromptSources(manifest.sources, extraSources);
299
299
  const manifestUpdate = stableJson(mergedSources) === stableJson(mergePromptSources(manifest.sources, [])) ? undefined : $stringify({ version: 2, prompt_paths: manifest.promptPaths, sources: mergedSources });
300
300
  const prompts = await discoverPrompts(extraSources);
301
- const { checkPromptAttribution } = await import("./prompt-attribution-c1a5pysf.js");
301
+ const { checkPromptAttribution } = await import("./prompt-attribution-8ak38a3q.js");
302
302
  const attribution = checkPromptAttribution(process.cwd(), prompts.map((prompt) => prompt.key));
303
303
  const brokenAttribution = attribution.references.filter((reference) => reference.status === "missing");
304
304
  if (brokenAttribution.length) {
@@ -604,7 +604,7 @@ async function migratePromptManifest(options = {}) {
604
604
  let addedSources = [];
605
605
  let pendingSources = [];
606
606
  if (options.discover) {
607
- const { analyzeHarnessPrompts } = await import("./harness-7s0w2wc9.js");
607
+ const { analyzeHarnessPrompts } = await import("./harness-phdj0eqr.js");
608
608
  const result = await analyzeHarnessPrompts({
609
609
  rootDir: root,
610
610
  existing: manifest.sources,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createCliOutput,
3
3
  outputModeFromFlags
4
- } from "./cli-1nd4339b.js";
4
+ } from "./cli-tca7sztv.js";
5
5
 
6
6
  // src/command-context.ts
7
7
  function flagEnabled(flags, key) {
@@ -5,7 +5,7 @@ import {
5
5
  resolveApiKey,
6
6
  resolveApiKeyFromActiveProfile,
7
7
  resolveModaBaseUrl
8
- } from "./cli-1nd4339b.js";
8
+ } from "./cli-tca7sztv.js";
9
9
 
10
10
  // src/api-key-auth.ts
11
11
  var PROBE_TIMEOUT_MS = 1e4;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  enumerateToolCatalog,
3
3
  enumerateWorkflows
4
- } from "./cli-ekartfps.js";
4
+ } from "./cli-hv4bztsm.js";
5
5
  import {
6
6
  require_out
7
7
  } from "./cli-764m5azg.js";
@@ -34,21 +34,21 @@ import {
34
34
  unwrap,
35
35
  valueDeclaration,
36
36
  visit
37
- } from "./cli-r2dxdhg8.js";
37
+ } from "./cli-84jkd2x7.js";
38
38
  import"./cli-rpyepjwb.js";
39
39
  import"./cli-97fnztpy.js";
40
40
  import {
41
41
  detectBoundRuntimeClasses,
42
42
  isTestWorkerConfig
43
43
  } from "./cli-krm4w2v9.js";
44
- import"./cli-13zdcv4w.js";
45
- import"./cli-2bhhk2nn.js";
44
+ import"./cli-3thzh1mq.js";
45
+ import"./cli-mh94f7gp.js";
46
46
  import"./cli-e0kbye4s.js";
47
- import"./cli-n9ng8mym.js";
47
+ import"./cli-cp8gv24j.js";
48
48
  import {
49
49
  EXIT_DEGRADED,
50
50
  VERSION
51
- } from "./cli-1nd4339b.js";
51
+ } from "./cli-tca7sztv.js";
52
52
  import {
53
53
  CliInputError
54
54
  } from "./cli-k4tqwah4.js";
@@ -3,10 +3,10 @@ import {
3
3
  } from "./cli-e0kbye4s.js";
4
4
  import {
5
5
  callDataAPI
6
- } from "./cli-n9ng8mym.js";
6
+ } from "./cli-cp8gv24j.js";
7
7
  import {
8
8
  shellArg
9
- } from "./cli-1nd4339b.js";
9
+ } from "./cli-tca7sztv.js";
10
10
  import {
11
11
  CliInputError
12
12
  } from "./cli-k4tqwah4.js";
@@ -39,16 +39,16 @@ import {
39
39
  import {
40
40
  createCommandContext,
41
41
  stringOption
42
- } from "./cli-13zdcv4w.js";
42
+ } from "./cli-3thzh1mq.js";
43
43
  import {
44
44
  assertFlags,
45
45
  assertPositionals,
46
46
  requireTenant
47
- } from "./cli-2bhhk2nn.js";
47
+ } from "./cli-mh94f7gp.js";
48
48
  import {
49
49
  ApiError,
50
50
  callControlAPI
51
- } from "./cli-n9ng8mym.js";
51
+ } from "./cli-cp8gv24j.js";
52
52
  import {
53
53
  EXIT_DEGRADED,
54
54
  embeddedTenantIdFromApiKey,
@@ -59,7 +59,7 @@ import {
59
59
  resolveModaBaseUrl,
60
60
  resolveTenantId,
61
61
  shellArg
62
- } from "./cli-1nd4339b.js";
62
+ } from "./cli-tca7sztv.js";
63
63
  import {
64
64
  CliInputError,
65
65
  CliInputRequiredError
@@ -21010,7 +21010,7 @@ async function runHarnessCommand(context) {
21010
21010
  throw new CliInputError(`'moda harness ${subcommand}' has no dry-run mode, so nothing was sent.`, `Remove --dry-run to run it for real. Harness commands with a real dry-run: ${[...HARNESS_DRY_RUN_SUBCOMMANDS].join(", ")}.`);
21011
21011
  }
21012
21012
  if (subcommand === "skeleton" || subcommand === "skeleton-diff") {
21013
- const { runSkeletonCommand } = await import("./cli-5z2f1w5m.js");
21013
+ const { runSkeletonCommand } = await import("./cli-6zmc6asf.js");
21014
21014
  return runSkeletonCommand(context);
21015
21015
  }
21016
21016
  if (subcommand === "register")
@@ -21022,7 +21022,7 @@ async function runHarnessCommand(context) {
21022
21022
  assertPositionals("harness impact", context.positionals, 1, "moda harness impact --from=<commit> --to=<commit>");
21023
21023
  if (!context.flags.from)
21024
21024
  throw new CliInputError("harness impact requires --from=<old-commit>.");
21025
- const { localChangeImpact, readRecordedImpactCalls } = await import("./change-impact-5h3k9kg6.js");
21025
+ const { localChangeImpact, readRecordedImpactCalls } = await import("./change-impact-v2vbcphy.js");
21026
21026
  const result = localChangeImpact({
21027
21027
  checkout: resolve10(context.cwd, context.flags.path ?? "."),
21028
21028
  from: context.flags.from,
@@ -21294,7 +21294,7 @@ async function runHarnessCommand(context) {
21294
21294
  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.");
21295
21295
  }
21296
21296
  if (context.flags["github-actions"] === "true") {
21297
- const { runGithubActionsAnalyze } = await import("./harness-github-actions-1hq2ed0v.js");
21297
+ const { runGithubActionsAnalyze } = await import("./harness-github-actions-e4zrcrym.js");
21298
21298
  const result = await runGithubActionsAnalyze(rootDir, {
21299
21299
  writeReport: (report2) => {
21300
21300
  const normalized = normalizeHarnessReport(report2);
@@ -21445,8 +21445,8 @@ async function runHarnessCommand(context) {
21445
21445
  }
21446
21446
  const { artifacts, unknowns, canonicalAgentIdentities } = deterministicGraphItems(rootDir, promote === "all" ? undefined : promote);
21447
21447
  tagComponentStatus({ runtimeAgents: [], artifacts }, rootDir);
21448
- const { extractHarnessWithContext: extractHarnessWithContext2 } = await import("./index-9adksf01.js");
21449
- const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-n1jx9hta.js");
21448
+ const { extractHarnessWithContext: extractHarnessWithContext2 } = await import("./index-65grk0mp.js");
21449
+ const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-86wb6vbh.js");
21450
21450
  let components = { runtimeAgents: [], artifacts: [], warnings: [] };
21451
21451
  if (promote === "all" || promote === "topology" || promote === "tools") {
21452
21452
  const { result, ctx } = extractHarnessWithContext2(rootDir);
@@ -21518,8 +21518,8 @@ async function runHarnessCommand(context) {
21518
21518
  }
21519
21519
  case "extract": {
21520
21520
  writeHumanProgress(context, "Harness extract: tracing model call sites (no LLM, no network)...");
21521
- const { extractHarnessWithContext: extractHarnessWithContext2, serializeExtractResult } = await import("./index-9adksf01.js");
21522
- const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-n1jx9hta.js");
21521
+ const { extractHarnessWithContext: extractHarnessWithContext2, serializeExtractResult } = await import("./index-65grk0mp.js");
21522
+ const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-86wb6vbh.js");
21523
21523
  const { result, ctx } = extractHarnessWithContext2(rootDir, { fresh: true });
21524
21524
  const items = deterministicGraphItems(rootDir);
21525
21525
  const artifacts = items.artifacts;
@@ -22426,8 +22426,8 @@ var CONCERN_PROMOTED_ARTIFACT_TYPES = {
22426
22426
  evals: new Set(["model_config", "eval"])
22427
22427
  };
22428
22428
  async function deterministicFloorGraph(rootDir, options = {}) {
22429
- const { extractHarnessWithContext: extractHarnessWithContext2 } = await import("./index-9adksf01.js");
22430
- const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-n1jx9hta.js");
22429
+ const { extractHarnessWithContext: extractHarnessWithContext2 } = await import("./index-65grk0mp.js");
22430
+ const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-86wb6vbh.js");
22431
22431
  const { result, ctx } = extractHarnessWithContext2(rootDir);
22432
22432
  const items = deterministicGraphItems(rootDir);
22433
22433
  const components = mergeEnumeratedComponents(items.artifacts, enumerateHarnessComponents(result, ctx));
@@ -2,7 +2,7 @@ import {
2
2
  SKILL_SOURCE_INTEGRATION_BUNDLED,
3
3
  readSkillsManifest,
4
4
  upsertSkillManifestRecord
5
- } from "./cli-qm5b1vck.js";
5
+ } from "./cli-2fv0q9tx.js";
6
6
  import {
7
7
  detectAgents
8
8
  } from "./cli-rjav0vj1.js";