@moda-ai/cli 1.24.0 → 1.25.0
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/dist/{cli-f2f0twjw.js → cli-jntzpem2.js} +12 -1
- package/dist/{cli-0t9z27pc.js → cli-kqvjt12y.js} +4 -4
- package/dist/cli.js +11 -11
- package/dist/{harness-github-actions-ar3sfmqq.js → harness-github-actions-rjyc9a7z.js} +1 -1
- package/dist/{index-as6n8qxp.js → index-fm9ey3ks.js} +6 -2
- package/package.json +1 -1
- package/skills/integration/index.json +2 -2
|
@@ -3314,6 +3314,17 @@ async function runHarnessCommand(context) {
|
|
|
3314
3314
|
return { exitCode: 0 };
|
|
3315
3315
|
}
|
|
3316
3316
|
case "analyze": {
|
|
3317
|
+
const cliAnalyzeEnabled = context.flags["experimental"] === "true" || process.env.MODA_HARNESS_ANALYZE_CLI === "1";
|
|
3318
|
+
if (!cliAnalyzeEnabled) {
|
|
3319
|
+
context.output.writeData({
|
|
3320
|
+
schema: "harness_analyze_disabled.v0.1",
|
|
3321
|
+
status: "disabled",
|
|
3322
|
+
reason: "cli_analyze_gated",
|
|
3323
|
+
message: "Harness analysis now runs automatically via the Moda GitHub App — connect your repo in the Moda dashboard (Settings → Integrations). To run the experimental CLI analyze anyway, pass --experimental or set MODA_HARNESS_ANALYZE_CLI=1."
|
|
3324
|
+
});
|
|
3325
|
+
writeHumanProgress(context, "moda harness analyze is disabled: connect the Moda GitHub App (Settings → Integrations) for automatic analysis, or pass --experimental to run the CLI analyze.");
|
|
3326
|
+
return { exitCode: 1 };
|
|
3327
|
+
}
|
|
3317
3328
|
await approveScanIfNeeded(scanPlan, {
|
|
3318
3329
|
context,
|
|
3319
3330
|
message: "Run Moda Analyst to investigate this project and produce a cited harness report?",
|
|
@@ -3327,7 +3338,7 @@ async function runHarnessCommand(context) {
|
|
|
3327
3338
|
elapsed_ms: Date.now() - context.startedAt
|
|
3328
3339
|
});
|
|
3329
3340
|
if (context.flags["github-actions"] === "true") {
|
|
3330
|
-
const { runGithubActionsAnalyze } = await import("./harness-github-actions-
|
|
3341
|
+
const { runGithubActionsAnalyze } = await import("./harness-github-actions-rjyc9a7z.js");
|
|
3331
3342
|
const result = await runGithubActionsAnalyze(rootDir, {
|
|
3332
3343
|
writeReport: (report2) => {
|
|
3333
3344
|
const normalized = normalizeHarnessReport(report2);
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
renderStatusHuman,
|
|
12
12
|
scanHarness,
|
|
13
13
|
validateHarnessReport
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-jntzpem2.js";
|
|
15
15
|
import {
|
|
16
16
|
isAuthSessionValid,
|
|
17
17
|
loadAuthSession
|
|
@@ -2397,7 +2397,7 @@ function harnessReportStateCheck(cwd) {
|
|
|
2397
2397
|
severity: "warning",
|
|
2398
2398
|
evidence: [{ label: "path", value: HARNESS_REPORT_PATH }],
|
|
2399
2399
|
remediation: "Run a Moda Analyst pass so the harness graph has cited evidence before cloud sync.",
|
|
2400
|
-
nextCommand: "moda harness analyze --summary"
|
|
2400
|
+
nextCommand: "moda harness analyze --experimental --summary"
|
|
2401
2401
|
};
|
|
2402
2402
|
}
|
|
2403
2403
|
try {
|
|
@@ -2421,7 +2421,7 @@ function harnessReportStateCheck(cwd) {
|
|
|
2421
2421
|
{ label: "errors", value: validation.errors.slice(0, 3).join(" | ") || "validation failed" }
|
|
2422
2422
|
],
|
|
2423
2423
|
remediation: "Regenerate or fix the harness report before approving or syncing.",
|
|
2424
|
-
nextCommand: "moda harness analyze --summary"
|
|
2424
|
+
nextCommand: "moda harness analyze --experimental --summary"
|
|
2425
2425
|
};
|
|
2426
2426
|
}
|
|
2427
2427
|
const approval = readHarnessReportApproval(cwd);
|
|
@@ -2476,7 +2476,7 @@ function harnessReportStateCheck(cwd) {
|
|
|
2476
2476
|
{ label: "error", value: err instanceof Error ? err.message : String(err) }
|
|
2477
2477
|
],
|
|
2478
2478
|
remediation: "Regenerate the harness report.",
|
|
2479
|
-
nextCommand: "moda harness analyze --summary"
|
|
2479
|
+
nextCommand: "moda harness analyze --experimental --summary"
|
|
2480
2480
|
};
|
|
2481
2481
|
}
|
|
2482
2482
|
}
|
package/dist/cli.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
runPromptsCommand,
|
|
6
6
|
runSkillsCommand,
|
|
7
7
|
runStatusCommand
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-kqvjt12y.js";
|
|
9
9
|
import {
|
|
10
10
|
ApiError,
|
|
11
11
|
HARNESS_REPORT_APPROVAL_PATH,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
summarizeHarness,
|
|
27
27
|
terminalStyles,
|
|
28
28
|
validateHarnessReport
|
|
29
|
-
} from "./cli-
|
|
29
|
+
} from "./cli-jntzpem2.js";
|
|
30
30
|
import {
|
|
31
31
|
authFetch,
|
|
32
32
|
clearAuthSession,
|
|
@@ -3975,12 +3975,12 @@ Examples:
|
|
|
3975
3975
|
moda profiles list
|
|
3976
3976
|
moda profiles use staging
|
|
3977
3977
|
moda config show --profile=prod
|
|
3978
|
-
moda harness analyze --summary
|
|
3979
|
-
moda harness analyze --remote
|
|
3980
|
-
moda harness analyze --analyst=claude --tui
|
|
3981
|
-
moda harness analyze --analyst=claude --no-tui
|
|
3982
|
-
moda harness analyze --analyst=claude --summary
|
|
3983
|
-
moda harness analyze --analyst=local-scan --summary
|
|
3978
|
+
moda harness analyze --experimental --summary
|
|
3979
|
+
moda harness analyze --experimental --remote
|
|
3980
|
+
moda harness analyze --experimental --analyst=claude --tui
|
|
3981
|
+
moda harness analyze --experimental --analyst=claude --no-tui
|
|
3982
|
+
moda harness analyze --experimental --analyst=claude --summary
|
|
3983
|
+
moda harness analyze --experimental --analyst=local-scan --summary
|
|
3984
3984
|
moda harness pull --sync
|
|
3985
3985
|
moda harness validate-report
|
|
3986
3986
|
moda harness approve --yes
|
|
@@ -4463,7 +4463,7 @@ var commandRegistry = createCommandRegistry([
|
|
|
4463
4463
|
resetApiRequestCountBeforeRun: true,
|
|
4464
4464
|
telemetry: "result",
|
|
4465
4465
|
handler: async (context) => {
|
|
4466
|
-
const { runInit } = await import("./index-
|
|
4466
|
+
const { runInit } = await import("./index-fm9ey3ks.js");
|
|
4467
4467
|
if (context.outputMode === "agent-stream") {
|
|
4468
4468
|
context.output.writeEvent({
|
|
4469
4469
|
event: "started",
|
|
@@ -4617,8 +4617,8 @@ var commandRegistry = createCommandRegistry([
|
|
|
4617
4617
|
name: "harness",
|
|
4618
4618
|
description: "Analyze, validate, approve, sync, delete, and explain the local multi-agent harness graph",
|
|
4619
4619
|
examples: [
|
|
4620
|
-
"moda harness analyze --summary",
|
|
4621
|
-
"moda harness analyze --remote",
|
|
4620
|
+
"moda harness analyze --experimental --summary",
|
|
4621
|
+
"moda harness analyze --experimental --remote",
|
|
4622
4622
|
"moda harness pull --sync",
|
|
4623
4623
|
"moda harness approve --yes",
|
|
4624
4624
|
"moda harness sync --from-report .moda/harness-report.json",
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
runPromptSync,
|
|
10
10
|
runSkillSync,
|
|
11
11
|
upsertSkillManifestRecord
|
|
12
|
-
} from "./cli-
|
|
12
|
+
} from "./cli-kqvjt12y.js";
|
|
13
13
|
import {
|
|
14
14
|
codingAgentDisplayName,
|
|
15
15
|
describeCodingAgentEvent,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
runHarnessCommand,
|
|
28
28
|
startRemoteAnalyze,
|
|
29
29
|
stripAnsi
|
|
30
|
-
} from "./cli-
|
|
30
|
+
} from "./cli-jntzpem2.js";
|
|
31
31
|
import {
|
|
32
32
|
selectTenantAndCreateKey
|
|
33
33
|
} from "./cli-tdttb4cv.js";
|
|
@@ -1792,6 +1792,7 @@ async function runInit(flags, options = {}) {
|
|
|
1792
1792
|
const nestedHarnessFlags = (extra) => commandFlags({
|
|
1793
1793
|
summary: true,
|
|
1794
1794
|
yes: true,
|
|
1795
|
+
experimental: true,
|
|
1795
1796
|
json: json || agent,
|
|
1796
1797
|
agent,
|
|
1797
1798
|
quiet: true,
|
|
@@ -2406,6 +2407,9 @@ function writeHarnessRescanWorkflow(cwd = process.cwd(), paths) {
|
|
|
2406
2407
|
" env:",
|
|
2407
2408
|
" MODA_API_KEY: ${{ secrets.MODA_API_KEY }}",
|
|
2408
2409
|
" MODA_TENANT_ID: ${{ secrets.MODA_TENANT_ID }}",
|
|
2410
|
+
" # `moda harness analyze` is opt-in (the Moda GitHub App is the default",
|
|
2411
|
+
" # path); this workflow drives the CLI analyze directly, so it opts in.",
|
|
2412
|
+
' MODA_HARNESS_ANALYZE_CLI: "1"',
|
|
2409
2413
|
" steps:",
|
|
2410
2414
|
" - uses: actions/checkout@v4",
|
|
2411
2415
|
" - uses: actions/setup-node@v4",
|
package/package.json
CHANGED