@moda-ai/cli 1.36.0 → 1.38.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/README.md +2 -0
- package/dist/{cli-0p6n391h.js → cli-07tv75te.js} +21 -6
- package/dist/cli-0v6na3yp.js +35 -0
- package/dist/{cli-7qkhy41j.js → cli-3kcy61fr.js} +112 -444
- package/dist/cli-c5c6f0yw.js +128 -0
- package/dist/{cli-scjxgaba.js → cli-k38j2fpq.js} +2 -2
- package/dist/{cli-yz99t7n8.js → cli-kegd748v.js} +70 -3
- package/dist/{cli-drabjmaj.js → cli-q79sq80a.js} +1 -35
- package/dist/cli-ssfq84k5.js +393 -0
- package/dist/cli.js +211 -10
- package/dist/{harness-github-actions-tk17mnge.js → harness-github-actions-qz5d22rz.js} +3 -2
- package/dist/{harness-heasma1f.js → harness-n2xgzz31.js} +3 -2
- package/dist/{index-pf2hvadv.js → index-hwfe7gs8.js} +203 -210
- package/dist/prompt-source-mcp.js +3 -2
- package/dist/{provision-d242y9qd.js → provision-64c2n9aw.js} +4 -3
- package/dist/skills-bundled-mdmhzfsr.js +14 -0
- package/package.json +1 -1
- package/skills/integration/index.json +3 -3
- package/skills/integration/integration-python-langchain/EXAMPLE.md +1 -1
- package/skills/integration/integration-python-langchain/SKILL.md +44 -11
- package/skills/moda-cli/SKILL.md +2 -0
package/README.md
CHANGED
|
@@ -66,6 +66,8 @@ moda problem <problem_id> --evidence # ...attribution evidence (ke
|
|
|
66
66
|
moda problem <problem_id> --reports # ...investigation reports
|
|
67
67
|
moda problem <problem_id> --traces # ...affected traces
|
|
68
68
|
moda problem-feedback <problem_id> --action=mark_fixed # Close the loop from the terminal
|
|
69
|
+
moda problem-linear <problem_id> # The Problem's Linear issue (key, state, URL)
|
|
70
|
+
moda problem-linear-file <problem_id> # File it in Linear (needs Integrations -> Linear)
|
|
69
71
|
```
|
|
70
72
|
|
|
71
73
|
Signals:
|
|
@@ -7,9 +7,6 @@ import {
|
|
|
7
7
|
MAX_SCANNED_FILE_BYTES,
|
|
8
8
|
SECRET_KEYS,
|
|
9
9
|
SKIPPED_DIRS,
|
|
10
|
-
__commonJS,
|
|
11
|
-
__require,
|
|
12
|
-
__toESM,
|
|
13
10
|
createCommandContext,
|
|
14
11
|
embeddedTenantIdFromApiKey,
|
|
15
12
|
getActiveProfile,
|
|
@@ -27,7 +24,12 @@ import {
|
|
|
27
24
|
resolveTenantId,
|
|
28
25
|
shouldInventoryFile,
|
|
29
26
|
stringOption
|
|
30
|
-
} from "./cli-
|
|
27
|
+
} from "./cli-q79sq80a.js";
|
|
28
|
+
import {
|
|
29
|
+
__commonJS,
|
|
30
|
+
__require,
|
|
31
|
+
__toESM
|
|
32
|
+
} from "./cli-0v6na3yp.js";
|
|
31
33
|
|
|
32
34
|
// ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/dist/nodes/identity.js
|
|
33
35
|
var require_identity = __commonJS((exports) => {
|
|
@@ -180242,6 +180244,11 @@ function remoteAnalyzeHardFailure(final, runId) {
|
|
|
180242
180244
|
].join(`
|
|
180243
180245
|
`));
|
|
180244
180246
|
}
|
|
180247
|
+
function isRecoverableRemoteRun(final) {
|
|
180248
|
+
if (!final.report)
|
|
180249
|
+
return false;
|
|
180250
|
+
return final.status === "completed" || final.status === "failed" && serverFailedReportValidation(final);
|
|
180251
|
+
}
|
|
180245
180252
|
function serverFailedReportValidation(final) {
|
|
180246
180253
|
const { validation } = final;
|
|
180247
180254
|
return typeof validation === "object" && validation !== null && !Array.isArray(validation) && validation.status === "fail";
|
|
@@ -183841,6 +183848,14 @@ function renderInitComplete(options) {
|
|
|
183841
183848
|
lines.push("");
|
|
183842
183849
|
if (options.harness?.state === "pending") {
|
|
183843
183850
|
lines.push(ui.wrap(` ${ui.status("run")} Harness analysis is still running on Moda. Run ${ui.command("moda harness pull --sync")} in a few minutes.`, 4));
|
|
183851
|
+
} else if (options.harness?.state === "skipped") {
|
|
183852
|
+
const what = {
|
|
183853
|
+
unavailable: "Harness analysis did not start and was skipped.",
|
|
183854
|
+
lost: "Lost track of the harness analysis; it may still be running on Moda.",
|
|
183855
|
+
unfetched: "Harness analysis finished on Moda but could not be fetched.",
|
|
183856
|
+
failed: "Harness analysis failed on Moda and was skipped."
|
|
183857
|
+
}[options.harness.reason ?? "unavailable"];
|
|
183858
|
+
lines.push(ui.wrap(` ${ui.status("warning")} ${what} Run ${ui.command(options.harness.next ?? "moda harness pull --sync")} later.`, 4));
|
|
183844
183859
|
} else if (options.harness) {
|
|
183845
183860
|
lines.push(ui.wrap(` ${ui.status("pass")} Harness mapped: ${options.harness.agents ?? 0} agent(s), ${options.harness.artifacts ?? 0} artifact(s). View: ${ui.command(dashboardUrl)}`, 4));
|
|
183846
183861
|
}
|
|
@@ -184284,7 +184299,7 @@ async function runHarnessCommand(context) {
|
|
|
184284
184299
|
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.");
|
|
184285
184300
|
}
|
|
184286
184301
|
if (context.flags["github-actions"] === "true") {
|
|
184287
|
-
const { runGithubActionsAnalyze } = await import("./harness-github-actions-
|
|
184302
|
+
const { runGithubActionsAnalyze } = await import("./harness-github-actions-qz5d22rz.js");
|
|
184288
184303
|
const result = await runGithubActionsAnalyze(rootDir, {
|
|
184289
184304
|
writeReport: (report2) => {
|
|
184290
184305
|
const normalized = normalizeHarnessReport(report2);
|
|
@@ -188294,4 +188309,4 @@ function hashText(text) {
|
|
|
188294
188309
|
return createHash4("sha256").update(text).digest("hex");
|
|
188295
188310
|
}
|
|
188296
188311
|
|
|
188297
|
-
export { ApiError, callDataAPI, callControlAPI, getApiRequestCount, resetApiRequestCount, $parseDocument, $stringify, require_typescript, inspectCodeSelectors, inspectPythonSelectors, resolvePromptSource, shouldColorTerminalOutput, terminalStyles, stripAnsi2 as stripAnsi, renderMarkdownForTerminal, HARNESS_REPORT_PATH, HARNESS_REPORT_APPROVAL_PATH, HARNESS_ANALYZE_CONCERNS, validateHarnessReport, readHarnessReport, hashHarnessReport, hashStableJson, startRemoteAnalyze, pollRemoteAnalyzeUntilDone, checkPromptMapping, safePromptEvidencePath, discoverHarnessPromptSources, renderDoctorHuman, renderStatusHuman, renderInitBanner, renderInitStep, renderInitNote, renderInitSetupPlan, renderInitComplete, runHarnessCommand, writeHarnessAnalyzeResult, emitWrittenArtifacts, analyzeHarnessPrompts, repairExternalAnalystReport, deriveRelationshipsFromGraph, mergeDeterministicArtifacts, describeCodingAgentEvent, analystEventProgress, isRetryableExternalAnalystFailure, sleep, summarizeInvalidAnalystReport, isDeterministicLocalAnalyst, resolveHarnessAnalyzeConcern, detectAvailableCodingAgents, codingAgentDisplayName, runCodingAgent, resolveAnalystModel, renderExternalHarnessAnalystPrompt, CONCERN_CANDIDATE_KINDS, SEED_CANDIDATE_KIND_LABELS, renderAnalystCandidateLines, renderAnalystSeedLines, truncateText, scanHarness, summarizeHarness, buildSourceSnapshot, writeHumanProgress, readHarnessSyncState, describeSyncIdentity, describeSyncTenantLabel, findFresherHarnessReports, writeHarnessArtifacts, assertHarnessGraphSyncQuality, graphForSync, inventoryFiles, numericEnv, numericEnvAllowZero, computeDeterministicFloor, stableId2 as stableId, titleFromId2 as titleFromId, promptNameFromPath };
|
|
188312
|
+
export { ApiError, callDataAPI, callControlAPI, getApiRequestCount, resetApiRequestCount, $parseDocument, $stringify, require_typescript, inspectCodeSelectors, inspectPythonSelectors, resolvePromptSource, shouldColorTerminalOutput, terminalStyles, stripAnsi2 as stripAnsi, renderMarkdownForTerminal, HARNESS_REPORT_PATH, HARNESS_REPORT_APPROVAL_PATH, HARNESS_ANALYZE_CONCERNS, validateHarnessReport, readHarnessReport, hashHarnessReport, hashStableJson, startRemoteAnalyze, pollRemoteAnalyzeUntilDone, isRecoverableRemoteRun, checkPromptMapping, safePromptEvidencePath, discoverHarnessPromptSources, renderDoctorHuman, renderStatusHuman, renderInitBanner, renderInitStep, renderInitNote, renderInitSetupPlan, renderInitComplete, runHarnessCommand, writeHarnessAnalyzeResult, emitWrittenArtifacts, analyzeHarnessPrompts, repairExternalAnalystReport, deriveRelationshipsFromGraph, mergeDeterministicArtifacts, describeCodingAgentEvent, analystEventProgress, isRetryableExternalAnalystFailure, sleep, summarizeInvalidAnalystReport, isDeterministicLocalAnalyst, resolveHarnessAnalyzeConcern, detectAvailableCodingAgents, codingAgentDisplayName, runCodingAgent, resolveAnalystModel, renderExternalHarnessAnalystPrompt, CONCERN_CANDIDATE_KINDS, SEED_CANDIDATE_KIND_LABELS, renderAnalystCandidateLines, renderAnalystSeedLines, truncateText, scanHarness, summarizeHarness, buildSourceSnapshot, writeHumanProgress, readHarnessSyncState, describeSyncIdentity, describeSyncTenantLabel, findFresherHarnessReports, writeHarnessArtifacts, assertHarnessGraphSyncQuality, graphForSync, inventoryFiles, numericEnv, numericEnvAllowZero, computeDeterministicFloor, stableId2 as stableId, titleFromId2 as titleFromId, promptNameFromPath };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
function __accessProp(key) {
|
|
8
|
+
return this[key];
|
|
9
|
+
}
|
|
10
|
+
var __toESMCache_node;
|
|
11
|
+
var __toESMCache_esm;
|
|
12
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
13
|
+
var canCache = mod != null && typeof mod === "object";
|
|
14
|
+
if (canCache) {
|
|
15
|
+
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
16
|
+
var cached = cache.get(mod);
|
|
17
|
+
if (cached)
|
|
18
|
+
return cached;
|
|
19
|
+
}
|
|
20
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
21
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
22
|
+
for (let key of __getOwnPropNames(mod))
|
|
23
|
+
if (!__hasOwnProp.call(to, key))
|
|
24
|
+
__defProp(to, key, {
|
|
25
|
+
get: __accessProp.bind(mod, key),
|
|
26
|
+
enumerable: true
|
|
27
|
+
});
|
|
28
|
+
if (canCache)
|
|
29
|
+
cache.set(mod, to);
|
|
30
|
+
return to;
|
|
31
|
+
};
|
|
32
|
+
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
33
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
34
|
+
|
|
35
|
+
export { __toESM, __commonJS, __require };
|