@moda-ai/cli 1.55.108 → 1.55.110
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.
- package/README.md +3 -3
- package/dist/{agent-vvefg4bm.js → agent-5kfdbx36.js} +8 -8
- package/dist/{change-impact-5h3k9kg6.js → change-impact-v2vbcphy.js} +5 -5
- package/dist/cli-2fv0q9tx.js +141 -0
- package/dist/{cli-xxpaq3n8.js → cli-3r578f36.js} +6 -6
- package/dist/{cli-13zdcv4w.js → cli-3thzh1mq.js} +1 -1
- package/dist/{cli-998n4kz9.js → cli-6df723jn.js} +1 -1
- package/dist/{cli-5z2f1w5m.js → cli-6zmc6asf.js} +6 -6
- package/dist/{cli-ap7wfbnk.js → cli-7gnw6smk.js} +2 -2
- package/dist/{cli-r2dxdhg8.js → cli-84jkd2x7.js} +13 -13
- package/dist/{cli-mc3z77bv.js → cli-8qtxp95w.js} +1 -1
- package/dist/cli-ahqr7wsp.js +429 -0
- package/dist/{cli-qwnkv4jy.js → cli-bgbtrmtr.js} +1 -1
- package/dist/{cli-n9ng8mym.js → cli-cp8gv24j.js} +1 -1
- package/dist/{cli-eq09n00v.js → cli-ew4pkn5b.js} +6 -6
- package/dist/{cli-ekartfps.js → cli-hv4bztsm.js} +1 -1
- package/dist/{cli-62e1vy8f.js → cli-m6w66x9d.js} +3 -3
- package/dist/{cli-2bhhk2nn.js → cli-mh94f7gp.js} +2 -2
- package/dist/{cli-1nd4339b.js → cli-tca7sztv.js} +2 -2
- package/dist/cli.js +29 -108
- package/dist/{doctor-1hhktzsz.js → doctor-t0b99wnq.js} +7 -7
- package/dist/{harness-github-actions-1hq2ed0v.js → harness-github-actions-e4zrcrym.js} +5 -5
- package/dist/{harness-7s0w2wc9.js → harness-phdj0eqr.js} +5 -5
- package/dist/{index-9adksf01.js → index-65grk0mp.js} +5 -5
- package/dist/{index-n1jx9hta.js → index-86wb6vbh.js} +6 -6
- package/dist/{index-2g0ft2hm.js → index-zhg2zc3x.js} +13 -13
- package/dist/{production-intelligence-8w7an97c.js → production-intelligence-nphep7xw.js} +5 -3
- package/dist/{profile-commands-zgq8dja0.js → profile-commands-tz3jykvh.js} +4 -4
- package/dist/{prompt-attribution-c1a5pysf.js → prompt-attribution-8ak38a3q.js} +5 -5
- package/dist/prompt-source-mcp.js +5 -5
- package/dist/{prompts-fdqrbawx.js → prompts-a8zcvc1c.js} +5 -5
- package/dist/{provision-d0sxcka1.js → provision-2dzzb0be.js} +5 -5
- package/dist/{registry-vxrxw1tj.js → registry-p07epn79.js} +22 -18
- package/dist/skills-5atq9sgh.js +17 -0
- package/dist/{skills-bundled-7jes6hqx.js → skills-bundled-tcxpw88n.js} +2 -2
- package/dist/{sync-gxgpfztm.js → sync-e76vmfty.js} +10 -12
- package/package.json +1 -1
- package/skills/integration/index.json +2 -2
- package/skills/moda-cli/SKILL.md +1 -1
- package/skills/moda-cli/references/commands.md +2 -2
- package/skills/moda-cli/references/dashboard-parity.md +1 -1
- package/skills/moda-cli/references/output-protocol.md +4 -4
- package/skills/moda-cli/references/registry.md +1 -3
- package/dist/cli-h7hfpmwa.js +0 -1019
- package/dist/cli-qm5b1vck.js +0 -220
- 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
|
|
386
|
-
|
|
387
|
-
|
|
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-
|
|
4
|
-
import"./cli-
|
|
5
|
-
import"./cli-
|
|
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-
|
|
20
|
-
import"./cli-
|
|
19
|
+
import"./cli-3thzh1mq.js";
|
|
20
|
+
import"./cli-mh94f7gp.js";
|
|
21
21
|
import"./cli-e0kbye4s.js";
|
|
22
|
-
import"./cli-
|
|
22
|
+
import"./cli-cp8gv24j.js";
|
|
23
23
|
import {
|
|
24
24
|
resolveApiKey,
|
|
25
25
|
resolveIngestUrl,
|
|
26
26
|
resolveModaBaseUrl,
|
|
27
27
|
resolveTenantId
|
|
28
|
-
} from "./cli-
|
|
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-
|
|
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-
|
|
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-
|
|
21
|
-
import"./cli-
|
|
20
|
+
import"./cli-3thzh1mq.js";
|
|
21
|
+
import"./cli-mh94f7gp.js";
|
|
22
22
|
import"./cli-e0kbye4s.js";
|
|
23
|
-
import"./cli-
|
|
24
|
-
import"./cli-
|
|
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-
|
|
10
|
+
} from "./cli-3thzh1mq.js";
|
|
11
11
|
import {
|
|
12
12
|
assertFlags,
|
|
13
13
|
assertPositionals
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-mh94f7gp.js";
|
|
15
15
|
import {
|
|
16
16
|
callControlAPI
|
|
17
|
-
} from "./cli-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
enumerateToolCatalog,
|
|
3
3
|
enumerateWorkflows
|
|
4
|
-
} from "./cli-
|
|
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-
|
|
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-
|
|
45
|
-
import"./cli-
|
|
44
|
+
import"./cli-3thzh1mq.js";
|
|
45
|
+
import"./cli-mh94f7gp.js";
|
|
46
46
|
import"./cli-e0kbye4s.js";
|
|
47
|
-
import"./cli-
|
|
47
|
+
import"./cli-cp8gv24j.js";
|
|
48
48
|
import {
|
|
49
49
|
EXIT_DEGRADED,
|
|
50
50
|
VERSION
|
|
51
|
-
} from "./cli-
|
|
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-
|
|
6
|
+
} from "./cli-cp8gv24j.js";
|
|
7
7
|
import {
|
|
8
8
|
shellArg
|
|
9
|
-
} from "./cli-
|
|
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-
|
|
42
|
+
} from "./cli-3thzh1mq.js";
|
|
43
43
|
import {
|
|
44
44
|
assertFlags,
|
|
45
45
|
assertPositionals,
|
|
46
46
|
requireTenant
|
|
47
|
-
} from "./cli-
|
|
47
|
+
} from "./cli-mh94f7gp.js";
|
|
48
48
|
import {
|
|
49
49
|
ApiError,
|
|
50
50
|
callControlAPI
|
|
51
|
-
} from "./cli-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
21449
|
-
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-
|
|
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-
|
|
21522
|
-
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-
|
|
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-
|
|
22430
|
-
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-
|
|
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));
|