@moda-ai/cli 1.55.72 → 1.55.74
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 +11 -0
- package/dist/{agent-xesfknb0.js → agent-8jsrjbx5.js} +6 -6
- package/dist/{cli-gqkvypxh.js → cli-4qx5ax0a.js} +7 -7
- package/dist/{cli-ge6ty4hx.js → cli-82dggtv9.js} +2202 -248
- package/dist/{cli-9dwq3vyj.js → cli-s4j2m651.js} +2 -2
- package/dist/{cli-9ww72mrd.js → cli-y333w08f.js} +1 -1
- package/dist/cli.js +20 -20
- package/dist/{doctor-z29f8x00.js → doctor-8tenph7m.js} +4 -4
- package/dist/{harness-qvszhbrt.js → harness-acdx3zgk.js} +4 -4
- package/dist/{harness-github-actions-awcd5ns1.js → harness-github-actions-m26tapfj.js} +4 -4
- package/dist/{harness-report-3n7bg314.js → harness-report-1q7322xg.js} +1 -1
- package/dist/index-0wm7157z.js +33 -0
- package/dist/{index-badpwfw2.js → index-1wxmsrfe.js} +7 -7
- package/dist/{index-tpwztst3.js → index-cpz85prt.js} +6 -4
- package/dist/{production-intelligence-vsjhv4n2.js → production-intelligence-f9sd68te.js} +2 -2
- package/dist/{prompt-attribution-t62yzfxb.js → prompt-attribution-b0ccme35.js} +4 -4
- package/dist/prompt-source-mcp.js +4 -4
- package/dist/{prompts-x74bqatj.js → prompts-wqkgnb1b.js} +3 -3
- package/dist/{skills-pqhvfc1r.js → skills-knpeqryb.js} +3 -3
- package/dist/{sync-kbhbrksr.js → sync-q0rm0s5s.js} +6 -6
- package/package.json +2 -1
- package/skills/integration/index.json +2 -2
- package/dist/{cli-k8hzbxtn.js → cli-1smcq5pf.js} +3 -3
- package/dist/{cli-qq4gd126.js → cli-6hpfw3vf.js} +3 -3
package/README.md
CHANGED
|
@@ -66,6 +66,17 @@ folder presence is not evidence of SDK initialization, so doctor does not warn
|
|
|
66
66
|
about instrumentation solely because a `src` or `app` directory exists. Verify
|
|
67
67
|
your integration with a fresh application conversation and `moda audit`.
|
|
68
68
|
|
|
69
|
+
## Local harness extraction
|
|
70
|
+
|
|
71
|
+
`moda harness extract --path=<repo> --json` scans source without an LLM or network calls. Its JSON preserves the traced call sites and roles, and adds `graph.runtimeAgents` and `graph.artifacts`: agent classes, multi-step tool loops, bound workflows, model-backed cron pipelines, and statically enabled framework/MCP tools alongside existing deterministic artifacts.
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
moda harness extract --path=. --json
|
|
75
|
+
moda harness candidates --path=. --promote=all --out=harness-components.json --yes
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Every enumerated component includes a source citation and `reachable` or `defined_only` status. Production trace evidence can later promote it to `in_prod`. Dynamic MCP allow-all servers are one group; extraction does not connect to those servers. The repository-bound `createAgentScopeResolver(result, ctx)` callback maps `CallSite.enclosing` to emitted agent IDs, including inherited hooks and shared helpers; ambiguous or unknown scopes return `[]`.
|
|
79
|
+
|
|
69
80
|
## Usage
|
|
70
81
|
|
|
71
82
|
Find things by meaning, then drill in:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildDoctorReport
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-s4j2m651.js";
|
|
4
4
|
import"./cli-rrggdmf8.js";
|
|
5
|
-
import"./cli-
|
|
5
|
+
import"./cli-4qx5ax0a.js";
|
|
6
6
|
import"./cli-mm48br00.js";
|
|
7
7
|
import {
|
|
8
8
|
readHarnessSyncState
|
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
hashStableJson,
|
|
15
15
|
readHarnessReport,
|
|
16
16
|
validateHarnessReport
|
|
17
|
-
} from "./cli-
|
|
18
|
-
import"./cli-5ms8rw8x.js";
|
|
19
|
-
import"./cli-e0kbye4s.js";
|
|
17
|
+
} from "./cli-y333w08f.js";
|
|
20
18
|
import"./cli-22yvg5kh.js";
|
|
21
19
|
import"./cli-87xy1evx.js";
|
|
20
|
+
import"./cli-5ms8rw8x.js";
|
|
21
|
+
import"./cli-e0kbye4s.js";
|
|
22
22
|
import {
|
|
23
23
|
resolveApiKey,
|
|
24
24
|
resolveIngestUrl,
|
|
@@ -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-
|
|
98
|
+
const harness = graph ? await import("./harness-acdx3zgk.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),
|
|
@@ -2,9 +2,6 @@ import {
|
|
|
2
2
|
computePromptContentHash,
|
|
3
3
|
stableJson
|
|
4
4
|
} from "./cli-mm48br00.js";
|
|
5
|
-
import {
|
|
6
|
-
createCommandContext
|
|
7
|
-
} from "./cli-5ms8rw8x.js";
|
|
8
5
|
import {
|
|
9
6
|
assertFlags,
|
|
10
7
|
assertPositionals
|
|
@@ -12,6 +9,9 @@ import {
|
|
|
12
9
|
import {
|
|
13
10
|
callControlAPI
|
|
14
11
|
} from "./cli-87xy1evx.js";
|
|
12
|
+
import {
|
|
13
|
+
createCommandContext
|
|
14
|
+
} from "./cli-5ms8rw8x.js";
|
|
15
15
|
import {
|
|
16
16
|
CliInputError
|
|
17
17
|
} from "./cli-k4tqwah4.js";
|
|
@@ -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-
|
|
5771
|
+
const { analyzeHarnessPrompts } = await import("./harness-acdx3zgk.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-
|
|
5799
|
+
const { checkPromptAttribution } = await import("./prompt-attribution-b0ccme35.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-
|
|
6105
|
+
const { analyzeHarnessPrompts } = await import("./harness-acdx3zgk.js");
|
|
6106
6106
|
const result = await analyzeHarnessPrompts({
|
|
6107
6107
|
rootDir: root,
|
|
6108
6108
|
existing: manifest.sources,
|
|
@@ -6303,7 +6303,7 @@ async function readHarnessSources(reportPath) {
|
|
|
6303
6303
|
if (!graph) {
|
|
6304
6304
|
throw new CliInputError(`${selected} is not a harness report with a graph (schema: ${schemaLabel}). Regenerate it with \`${HARNESS_REANALYZE_COMMAND}\`.`);
|
|
6305
6305
|
}
|
|
6306
|
-
const { normalizeHarnessReport } = await import("./harness-report-
|
|
6306
|
+
const { normalizeHarnessReport } = await import("./harness-report-1q7322xg.js");
|
|
6307
6307
|
const { backfillPromptSource, resolvePromptSource } = await loadPromptSources();
|
|
6308
6308
|
const report = normalizeHarnessReport(raw);
|
|
6309
6309
|
const artifacts = (report.graph.artifacts ?? []).filter((artifact) => artifact.type === "prompt");
|