@moda-ai/cli 1.55.91 → 1.55.93
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/{agent-scdstghf.js → agent-732v69qx.js} +4 -4
- package/dist/{cli-5knr4dts.js → cli-0qgxw8cx.js} +4 -4
- package/dist/{cli-esna2ebz.js → cli-2ctk8gy8.js} +2 -2
- package/dist/{cli-7nqp9wnf.js → cli-cmj01mp1.js} +454 -54
- package/dist/{cli-y333w08f.js → cli-krm4w2v9.js} +4 -3
- package/dist/cli.js +7 -7
- package/dist/{doctor-s0bxsdt9.js → doctor-tkdk49s0.js} +2 -2
- package/dist/{harness-7j8cvzgc.js → harness-fjrhp1af.js} +2 -2
- package/dist/{harness-github-actions-pyt3baxe.js → harness-github-actions-3m6k2a71.js} +2 -2
- package/dist/{harness-report-1q7322xg.js → harness-report-hn2aarv2.js} +1 -1
- package/dist/{index-b45wadt6.js → index-dcsgqzfr.js} +2 -2
- package/dist/{index-paym0crb.js → index-ekdmgbb6.js} +2 -2
- package/dist/{index-ckqhs8ja.js → index-rs7878j3.js} +4 -4
- package/dist/{prompt-attribution-abzze4g0.js → prompt-attribution-5rdys8cj.js} +2 -2
- package/dist/prompt-source-mcp.js +2 -2
- package/dist/{prompts-smvr4001.js → prompts-nhy5vagy.js} +1 -1
- package/dist/{sync-m7n9rm5x.js → sync-bwx0ncm3.js} +3 -3
- package/package.json +1 -1
- package/skills/integration/index.json +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildDoctorReport
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-2ctk8gy8.js";
|
|
4
4
|
import"./cli-qwnkv4jy.js";
|
|
5
|
-
import"./cli-
|
|
5
|
+
import"./cli-0qgxw8cx.js";
|
|
6
6
|
import"./cli-mm48br00.js";
|
|
7
7
|
import {
|
|
8
8
|
readHarnessSyncState
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
hashStableJson,
|
|
15
15
|
readHarnessReport,
|
|
16
16
|
validateHarnessReport
|
|
17
|
-
} from "./cli-
|
|
17
|
+
} from "./cli-krm4w2v9.js";
|
|
18
18
|
import"./cli-6ga6kmdp.js";
|
|
19
19
|
import"./cli-dxajrq9h.js";
|
|
20
20
|
import"./cli-13zdcv4w.js";
|
|
@@ -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-fjrhp1af.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),
|
|
@@ -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-fjrhp1af.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-5rdys8cj.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-fjrhp1af.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-hn2aarv2.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");
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./cli-qwnkv4jy.js";
|
|
5
5
|
import {
|
|
6
6
|
inspectPromptManifest
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-0qgxw8cx.js";
|
|
8
8
|
import {
|
|
9
9
|
readHarnessSyncState,
|
|
10
10
|
renderDoctorHuman,
|
|
@@ -395,7 +395,7 @@ async function harnessCurrentCheck(cwd, manifestPath, manifestExists, tenantId)
|
|
|
395
395
|
};
|
|
396
396
|
}
|
|
397
397
|
try {
|
|
398
|
-
const { scanHarness } = await import("./harness-
|
|
398
|
+
const { scanHarness } = await import("./harness-fjrhp1af.js");
|
|
399
399
|
const current = scanHarness({
|
|
400
400
|
rootDir: cwd,
|
|
401
401
|
scannerVersion: "doctor",
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
tagComponentStatus,
|
|
36
36
|
validateHarnessReport,
|
|
37
37
|
writeHarnessReportArtifacts
|
|
38
|
-
} from "./cli-
|
|
38
|
+
} from "./cli-krm4w2v9.js";
|
|
39
39
|
import {
|
|
40
40
|
assertFlags,
|
|
41
41
|
assertPositionals,
|
|
@@ -5323,9 +5323,359 @@ function enumerateAgents(result, ctx) {
|
|
|
5323
5323
|
}
|
|
5324
5324
|
|
|
5325
5325
|
// src/harness-extract/instruction-templates.ts
|
|
5326
|
-
|
|
5326
|
+
var MAX_FOLD_DEPTH = 6;
|
|
5327
|
+
var MAX_FOLD_CHARS = 64 * 1024;
|
|
5328
|
+
var MAX_FLOW_HOPS = 16;
|
|
5329
|
+
var MAX_TITLES = 24;
|
|
5330
|
+
var HEADING_LINE = /^[ \t]*#{1,6}[ \t]+(\S.*?)[ \t#]*$/;
|
|
5331
|
+
var READ_HEADING = /^[ \t]*#{1,6}[ \t]+[^\n{]*\S[ \t]*\n(?:\s*\{\{slot_\d+\}\})+\s*$/;
|
|
5332
|
+
var SQL_READ = /^\s*(?:select|with)\b/i;
|
|
5333
|
+
var ORM_READS = new Set(["findMany", "findFirst", "findUnique", "findOne", "findFirstOrThrow", "findUniqueOrThrow"]);
|
|
5334
|
+
var MODEL_CALLS = new Set(["generateText", "streamText", "generateObject", "streamObject"]);
|
|
5335
|
+
var MODEL_METHODS = /(?:^|\.)(?:messages|completions|responses)\.(?:create|stream|parse)$/;
|
|
5336
|
+
var isPlus = (node) => import_typescript9.default.isBinaryExpression(node) && node.operatorToken.kind === import_typescript9.default.SyntaxKind.PlusToken;
|
|
5337
|
+
var isStringLike = (node) => {
|
|
5338
|
+
const inner = unwrap(node);
|
|
5339
|
+
return import_typescript9.default.isStringLiteral(inner) || import_typescript9.default.isNoSubstitutionTemplateLiteral(inner) || import_typescript9.default.isTemplateExpression(inner);
|
|
5340
|
+
};
|
|
5341
|
+
var inRepository = (file) => !file.isDeclarationFile && !/[\\/]node_modules[\\/]/.test(file.fileName);
|
|
5342
|
+
function templateFacts(ctx) {
|
|
5343
|
+
const checkerOf = (node) => typeof ctx.checkerFor === "function" ? ctx.checkerFor(node.getSourceFile().fileName) : undefined;
|
|
5344
|
+
const bindingIn = (name, owner, text) => {
|
|
5345
|
+
if (import_typescript9.default.isIdentifier(name))
|
|
5346
|
+
return name.text === text ? owner : undefined;
|
|
5347
|
+
for (const element of name.elements) {
|
|
5348
|
+
if (!import_typescript9.default.isBindingElement(element))
|
|
5349
|
+
continue;
|
|
5350
|
+
const found = bindingIn(element.name, element, text);
|
|
5351
|
+
if (found)
|
|
5352
|
+
return found;
|
|
5353
|
+
}
|
|
5354
|
+
return;
|
|
5355
|
+
};
|
|
5356
|
+
const lexicalDeclaration = (identifier) => {
|
|
5357
|
+
const name = identifier.text;
|
|
5358
|
+
const inList = (list) => {
|
|
5359
|
+
for (const declaration of list.declarations) {
|
|
5360
|
+
const found = bindingIn(declaration.name, declaration, name);
|
|
5361
|
+
if (found)
|
|
5362
|
+
return found;
|
|
5363
|
+
}
|
|
5364
|
+
return;
|
|
5365
|
+
};
|
|
5366
|
+
const declares2 = (statement) => {
|
|
5367
|
+
if (import_typescript9.default.isVariableStatement(statement))
|
|
5368
|
+
return inList(statement.declarationList);
|
|
5369
|
+
if ((import_typescript9.default.isFunctionDeclaration(statement) || import_typescript9.default.isClassDeclaration(statement)) && statement.name?.text === name)
|
|
5370
|
+
return statement;
|
|
5371
|
+
return;
|
|
5372
|
+
};
|
|
5373
|
+
for (let scope = identifier.parent;scope; scope = scope.parent) {
|
|
5374
|
+
if ((import_typescript9.default.isForOfStatement(scope) || import_typescript9.default.isForInStatement(scope) || import_typescript9.default.isForStatement(scope)) && scope.initializer && import_typescript9.default.isVariableDeclarationList(scope.initializer)) {
|
|
5375
|
+
const found = inList(scope.initializer);
|
|
5376
|
+
if (found)
|
|
5377
|
+
return found;
|
|
5378
|
+
}
|
|
5379
|
+
if (isFunctionLike(scope)) {
|
|
5380
|
+
for (const parameter of scope.parameters) {
|
|
5381
|
+
const found = bindingIn(parameter.name, parameter, name);
|
|
5382
|
+
if (found)
|
|
5383
|
+
return found;
|
|
5384
|
+
}
|
|
5385
|
+
}
|
|
5386
|
+
if (import_typescript9.default.isBlock(scope) || import_typescript9.default.isSourceFile(scope) || import_typescript9.default.isModuleBlock(scope)) {
|
|
5387
|
+
for (const statement of scope.statements) {
|
|
5388
|
+
const found = declares2(statement);
|
|
5389
|
+
if (found)
|
|
5390
|
+
return found;
|
|
5391
|
+
}
|
|
5392
|
+
}
|
|
5393
|
+
}
|
|
5394
|
+
return;
|
|
5395
|
+
};
|
|
5396
|
+
const declarationOf = (identifier) => {
|
|
5397
|
+
const checker = checkerOf(identifier);
|
|
5398
|
+
if (!checker)
|
|
5399
|
+
return lexicalDeclaration(identifier);
|
|
5400
|
+
const declaration = valueDeclaration(resolvedSymbol(identifier, checker));
|
|
5401
|
+
return declaration && inRepository(declaration.getSourceFile()) ? declaration : undefined;
|
|
5402
|
+
};
|
|
5403
|
+
const folding = new Set;
|
|
5404
|
+
const fold = (node, depth) => {
|
|
5405
|
+
if (depth > MAX_FOLD_DEPTH)
|
|
5406
|
+
return;
|
|
5407
|
+
const inner = unwrap(node);
|
|
5408
|
+
if (import_typescript9.default.isStringLiteral(inner) || import_typescript9.default.isNoSubstitutionTemplateLiteral(inner))
|
|
5409
|
+
return { text: inner.text, string: true };
|
|
5410
|
+
if (import_typescript9.default.isNumericLiteral(inner))
|
|
5411
|
+
return { text: String(Number(inner.text)), string: false };
|
|
5412
|
+
if (import_typescript9.default.isTemplateExpression(inner)) {
|
|
5413
|
+
let text = inner.head.text;
|
|
5414
|
+
for (const span of inner.templateSpans) {
|
|
5415
|
+
const value = fold(span.expression, depth);
|
|
5416
|
+
if (value === undefined)
|
|
5417
|
+
return;
|
|
5418
|
+
text += value.text + span.literal.text;
|
|
5419
|
+
if (text.length > MAX_FOLD_CHARS)
|
|
5420
|
+
return;
|
|
5421
|
+
}
|
|
5422
|
+
return { text, string: true };
|
|
5423
|
+
}
|
|
5424
|
+
if (isPlus(inner)) {
|
|
5425
|
+
const left = fold(inner.left, depth);
|
|
5426
|
+
const right = left === undefined ? undefined : fold(inner.right, depth);
|
|
5427
|
+
if (!left || !right || !left.string && !right.string || left.text.length + right.text.length > MAX_FOLD_CHARS)
|
|
5428
|
+
return;
|
|
5429
|
+
return { text: left.text + right.text, string: true };
|
|
5430
|
+
}
|
|
5431
|
+
if (import_typescript9.default.isIdentifier(inner)) {
|
|
5432
|
+
const declaration = declarationOf(inner);
|
|
5433
|
+
if (!declaration || !import_typescript9.default.isVariableDeclaration(declaration) || !declaration.initializer || folding.has(declaration))
|
|
5434
|
+
return;
|
|
5435
|
+
if (!(import_typescript9.default.getCombinedNodeFlags(declaration) & import_typescript9.default.NodeFlags.Const))
|
|
5436
|
+
return;
|
|
5437
|
+
folding.add(declaration);
|
|
5438
|
+
try {
|
|
5439
|
+
return fold(declaration.initializer, depth + 1);
|
|
5440
|
+
} finally {
|
|
5441
|
+
folding.delete(declaration);
|
|
5442
|
+
}
|
|
5443
|
+
}
|
|
5444
|
+
return;
|
|
5445
|
+
};
|
|
5446
|
+
const constantValue = (node) => {
|
|
5447
|
+
const value = fold(node, 0);
|
|
5448
|
+
return value?.string ? value.text : undefined;
|
|
5449
|
+
};
|
|
5450
|
+
const calleeFunction = (call) => {
|
|
5451
|
+
const callee = unwrap(call.expression);
|
|
5452
|
+
const name = import_typescript9.default.isIdentifier(callee) ? callee : import_typescript9.default.isPropertyAccessExpression(callee) ? callee.name : undefined;
|
|
5453
|
+
if (!name)
|
|
5454
|
+
return;
|
|
5455
|
+
let declaration;
|
|
5456
|
+
if (import_typescript9.default.isIdentifier(name) && name === callee)
|
|
5457
|
+
declaration = declarationOf(name);
|
|
5458
|
+
else {
|
|
5459
|
+
const checker = checkerOf(name);
|
|
5460
|
+
const resolved = checker ? valueDeclaration(resolvedSymbol(name, checker)) : undefined;
|
|
5461
|
+
declaration = resolved && inRepository(resolved.getSourceFile()) ? resolved : undefined;
|
|
5462
|
+
}
|
|
5463
|
+
if (declaration && isFunctionLike(declaration))
|
|
5464
|
+
return declaration;
|
|
5465
|
+
if (declaration && import_typescript9.default.isVariableDeclaration(declaration) && declaration.initializer) {
|
|
5466
|
+
const initializer = unwrap(declaration.initializer);
|
|
5467
|
+
if (isFunctionLike(initializer))
|
|
5468
|
+
return initializer;
|
|
5469
|
+
}
|
|
5470
|
+
return;
|
|
5471
|
+
};
|
|
5472
|
+
const calleeText2 = (call) => calleeChain(call.expression)?.join(".") ?? "";
|
|
5473
|
+
const isModelCall = (call) => {
|
|
5474
|
+
const chain = calleeText2(call);
|
|
5475
|
+
return MODEL_CALLS.has(chain.split(".").pop() ?? "") || MODEL_METHODS.test(chain);
|
|
5476
|
+
};
|
|
5477
|
+
const primitiveRead = (node) => {
|
|
5478
|
+
if (import_typescript9.default.isTaggedTemplateExpression(node)) {
|
|
5479
|
+
const template = node.template;
|
|
5480
|
+
return SQL_READ.test(import_typescript9.default.isNoSubstitutionTemplateLiteral(template) ? template.text : template.head.text);
|
|
5481
|
+
}
|
|
5482
|
+
if (!import_typescript9.default.isCallExpression(node))
|
|
5483
|
+
return false;
|
|
5484
|
+
if (ORM_READS.has(calleeText2(node).split(".").pop() ?? ""))
|
|
5485
|
+
return true;
|
|
5486
|
+
const first2 = node.arguments[0] && unwrap(node.arguments[0]);
|
|
5487
|
+
const text = !first2 ? undefined : import_typescript9.default.isStringLiteral(first2) || import_typescript9.default.isNoSubstitutionTemplateLiteral(first2) ? first2.text : import_typescript9.default.isTemplateExpression(first2) ? first2.head.text : undefined;
|
|
5488
|
+
return text !== undefined && SQL_READ.test(text);
|
|
5489
|
+
};
|
|
5490
|
+
const readKind = (names) => names.some((name) => /memor|recall/i.test(name)) ? "memory" : names.some((name) => /(?:^|[._])file|File/.test(name)) ? "user_data" : "database";
|
|
5491
|
+
const scopeOf = (node) => enclosingFunction(node)?.body ?? node.getSourceFile();
|
|
5492
|
+
const valueIdentifier = (node) => import_typescript9.default.isIdentifier(node) && !((import_typescript9.default.isPropertyAccessExpression(node.parent) || import_typescript9.default.isPropertyAssignment(node.parent) || import_typescript9.default.isBindingElement(node.parent) || import_typescript9.default.isVariableDeclaration(node.parent) || import_typescript9.default.isParameter(node.parent)) && node.parent.name === node);
|
|
5493
|
+
const writesTo = (binding, name) => {
|
|
5494
|
+
const reassigned = [];
|
|
5495
|
+
const filled = [];
|
|
5496
|
+
const binds = (expression) => {
|
|
5497
|
+
const identifier = unwrap(expression);
|
|
5498
|
+
return import_typescript9.default.isIdentifier(identifier) && identifier.text === name && declarationOf(identifier) === binding;
|
|
5499
|
+
};
|
|
5500
|
+
const visit2 = (node) => {
|
|
5501
|
+
if (import_typescript9.default.isBinaryExpression(node) && node.operatorToken.kind === import_typescript9.default.SyntaxKind.EqualsToken) {
|
|
5502
|
+
const target = unwrap(node.left);
|
|
5503
|
+
if (binds(target))
|
|
5504
|
+
reassigned.push(node.right);
|
|
5505
|
+
else if ((import_typescript9.default.isElementAccessExpression(target) || import_typescript9.default.isPropertyAccessExpression(target)) && binds(target.expression))
|
|
5506
|
+
filled.push(node.right);
|
|
5507
|
+
} else if (import_typescript9.default.isCallExpression(node) && import_typescript9.default.isPropertyAccessExpression(unwrap(node.expression)) && unwrap(node.expression).name.text === "push" && binds(unwrap(node.expression).expression))
|
|
5508
|
+
filled.push(...node.arguments);
|
|
5509
|
+
import_typescript9.default.forEachChild(node, visit2);
|
|
5510
|
+
};
|
|
5511
|
+
visit2(scopeOf(binding));
|
|
5512
|
+
return { reassigned, filled };
|
|
5513
|
+
};
|
|
5514
|
+
const localValue = (identifier) => {
|
|
5515
|
+
const binding = declarationOf(identifier);
|
|
5516
|
+
if (!binding)
|
|
5517
|
+
return;
|
|
5518
|
+
let root = binding;
|
|
5519
|
+
const defaults = [];
|
|
5520
|
+
while (import_typescript9.default.isBindingElement(root)) {
|
|
5521
|
+
if (root.initializer)
|
|
5522
|
+
defaults.push(root.initializer);
|
|
5523
|
+
root = root.parent.parent;
|
|
5524
|
+
}
|
|
5525
|
+
if (import_typescript9.default.isParameter(root))
|
|
5526
|
+
return { kind: "parameter", binding, parameter: root };
|
|
5527
|
+
if (!import_typescript9.default.isVariableDeclaration(root))
|
|
5528
|
+
return;
|
|
5529
|
+
const list = root.parent;
|
|
5530
|
+
const forOf = import_typescript9.default.isVariableDeclarationList(list) && import_typescript9.default.isForOfStatement(list.parent) ? list.parent.expression : undefined;
|
|
5531
|
+
const { reassigned, filled } = writesTo(binding, identifier.text);
|
|
5532
|
+
return {
|
|
5533
|
+
kind: "local",
|
|
5534
|
+
binding,
|
|
5535
|
+
declaration: root,
|
|
5536
|
+
sources: [...forOf ? [forOf] : root.initializer ? [root.initializer] : [], ...defaults],
|
|
5537
|
+
filled,
|
|
5538
|
+
reassigned
|
|
5539
|
+
};
|
|
5540
|
+
};
|
|
5541
|
+
const returned = new Map;
|
|
5542
|
+
const flowRead = (expression, hops, seen) => {
|
|
5543
|
+
let found;
|
|
5544
|
+
const visit2 = (node) => {
|
|
5545
|
+
if (found || isFunctionLike(node))
|
|
5546
|
+
return;
|
|
5547
|
+
if (import_typescript9.default.isCallExpression(node)) {
|
|
5548
|
+
const name = calleeText2(node);
|
|
5549
|
+
if (isModelCall(node)) {
|
|
5550
|
+
found = { call: node, names: [name], model: true };
|
|
5551
|
+
return;
|
|
5552
|
+
}
|
|
5553
|
+
if (primitiveRead(node)) {
|
|
5554
|
+
found = { call: node, names: [name] };
|
|
5555
|
+
return;
|
|
5556
|
+
}
|
|
5557
|
+
const callee = calleeFunction(node);
|
|
5558
|
+
const inner = callee && hops < MAX_FLOW_HOPS ? returnsRead(callee, hops + 1) : null;
|
|
5559
|
+
if (inner) {
|
|
5560
|
+
found = { call: node, names: [name, ...inner.names], model: inner.model };
|
|
5561
|
+
return;
|
|
5562
|
+
}
|
|
5563
|
+
if (callee && !returnsParameter(callee))
|
|
5564
|
+
return;
|
|
5565
|
+
} else if (import_typescript9.default.isTaggedTemplateExpression(node) && primitiveRead(node)) {
|
|
5566
|
+
found = { call: node, names: [calleeChain(node.tag)?.join(".") ?? "sql"] };
|
|
5567
|
+
return;
|
|
5568
|
+
} else if (valueIdentifier(node) && hops < MAX_FLOW_HOPS) {
|
|
5569
|
+
const local = localValue(node);
|
|
5570
|
+
if (local?.kind === "parameter")
|
|
5571
|
+
return;
|
|
5572
|
+
if (local && !seen.has(local.binding)) {
|
|
5573
|
+
seen.add(local.binding);
|
|
5574
|
+
if (local.reassigned.length)
|
|
5575
|
+
return;
|
|
5576
|
+
for (const source of [...local.sources, ...local.filled]) {
|
|
5577
|
+
found = flowRead(source, hops + 1, seen);
|
|
5578
|
+
if (found)
|
|
5579
|
+
return;
|
|
5580
|
+
}
|
|
5581
|
+
return;
|
|
5582
|
+
}
|
|
5583
|
+
}
|
|
5584
|
+
import_typescript9.default.forEachChild(node, visit2);
|
|
5585
|
+
};
|
|
5586
|
+
visit2(expression);
|
|
5587
|
+
return found;
|
|
5588
|
+
};
|
|
5589
|
+
const returnsParameter = (fn) => {
|
|
5590
|
+
if (!fn.parameters.length)
|
|
5591
|
+
return false;
|
|
5592
|
+
const own = new Set(fn.parameters);
|
|
5593
|
+
const seen = new Set;
|
|
5594
|
+
const mentions = (node) => {
|
|
5595
|
+
if (valueIdentifier(node)) {
|
|
5596
|
+
const local = localValue(node);
|
|
5597
|
+
if (local?.kind === "parameter" && own.has(local.parameter))
|
|
5598
|
+
return true;
|
|
5599
|
+
if (local?.kind === "local" && !seen.has(local.binding) && enclosingFunction(local.declaration) === fn) {
|
|
5600
|
+
seen.add(local.binding);
|
|
5601
|
+
if ([...local.sources, ...local.reassigned, ...local.filled].some(mentions))
|
|
5602
|
+
return true;
|
|
5603
|
+
}
|
|
5604
|
+
}
|
|
5605
|
+
return import_typescript9.default.forEachChild(node, mentions) ?? false;
|
|
5606
|
+
};
|
|
5607
|
+
return returnExpressions(fn).some(mentions);
|
|
5608
|
+
};
|
|
5609
|
+
function returnsRead(fn, hops) {
|
|
5610
|
+
if (returned.has(fn))
|
|
5611
|
+
return returned.get(fn);
|
|
5612
|
+
returned.set(fn, null);
|
|
5613
|
+
let found = null;
|
|
5614
|
+
for (const expression of returnExpressions(fn)) {
|
|
5615
|
+
found = flowRead(expression, hops, new Set) ?? null;
|
|
5616
|
+
if (found)
|
|
5617
|
+
break;
|
|
5618
|
+
}
|
|
5619
|
+
returned.set(fn, found);
|
|
5620
|
+
return found;
|
|
5621
|
+
}
|
|
5622
|
+
const readOf = (expression) => {
|
|
5623
|
+
const flow = flowRead(expression, 0, new Set);
|
|
5624
|
+
if (!flow)
|
|
5625
|
+
return;
|
|
5626
|
+
return {
|
|
5627
|
+
kind: flow.model ? "llm_generated" : readKind(flow.names),
|
|
5628
|
+
path: relPath(ctx.rootDir, flow.call.getSourceFile().fileName),
|
|
5629
|
+
line: lineOf(flow.call),
|
|
5630
|
+
call: flow.names[0]
|
|
5631
|
+
};
|
|
5632
|
+
};
|
|
5633
|
+
const titleCache = new Map;
|
|
5634
|
+
const titlesOf = (fn) => {
|
|
5635
|
+
const cached = titleCache.get(fn);
|
|
5636
|
+
if (cached)
|
|
5637
|
+
return cached;
|
|
5638
|
+
const titles = new Set;
|
|
5639
|
+
const visit2 = (node) => {
|
|
5640
|
+
if (titles.size >= MAX_TITLES)
|
|
5641
|
+
return;
|
|
5642
|
+
if (import_typescript9.default.isStringLiteral(node) || import_typescript9.default.isNoSubstitutionTemplateLiteral(node) || import_typescript9.default.isTemplateHead(node) || import_typescript9.default.isTemplateMiddle(node) || import_typescript9.default.isTemplateTail(node)) {
|
|
5643
|
+
for (const line of node.text.split(`
|
|
5644
|
+
`)) {
|
|
5645
|
+
const title = HEADING_LINE.exec(line)?.[1];
|
|
5646
|
+
if (title && title.length <= 120 && !/\$\{|\{\{/.test(title))
|
|
5647
|
+
titles.add(title);
|
|
5648
|
+
}
|
|
5649
|
+
}
|
|
5650
|
+
import_typescript9.default.forEachChild(node, visit2);
|
|
5651
|
+
};
|
|
5652
|
+
if (fn.body)
|
|
5653
|
+
visit2(fn.body);
|
|
5654
|
+
const result = [...titles].slice(0, MAX_TITLES);
|
|
5655
|
+
titleCache.set(fn, result);
|
|
5656
|
+
return result;
|
|
5657
|
+
};
|
|
5658
|
+
return { constantValue, readOf, titlesOf };
|
|
5659
|
+
}
|
|
5660
|
+
function templateBody(node, constantValue, holes) {
|
|
5661
|
+
let body = node.head.text;
|
|
5662
|
+
for (const span of node.templateSpans) {
|
|
5663
|
+
const value = constantValue(span.expression);
|
|
5664
|
+
if (value !== undefined)
|
|
5665
|
+
body += value;
|
|
5666
|
+
else {
|
|
5667
|
+
body += `{{slot_${holes.length}}}`;
|
|
5668
|
+
holes.push(span.expression);
|
|
5669
|
+
}
|
|
5670
|
+
body += span.literal.text;
|
|
5671
|
+
}
|
|
5672
|
+
return body;
|
|
5673
|
+
}
|
|
5674
|
+
function instructionTemplates(ctx, maxBytes = Number.POSITIVE_INFINITY, preferredPaths = [], options = {}) {
|
|
5327
5675
|
const reachability = buildImportGraphReachability(ctx.rootDir);
|
|
5328
5676
|
const knownReachability = reachability.inProd.size + reachability.reachable.size > 0;
|
|
5677
|
+
const agentReach = options.agentFiles?.length ? reachability.reachFrom(options.agentFiles) : undefined;
|
|
5678
|
+
const facts = templateFacts(ctx);
|
|
5329
5679
|
const templates = [];
|
|
5330
5680
|
const ranks = new Map;
|
|
5331
5681
|
const textFiles = new Set;
|
|
@@ -5338,7 +5688,7 @@ function instructionTemplates(ctx, maxBytes = Number.POSITIVE_INFINITY, preferre
|
|
|
5338
5688
|
};
|
|
5339
5689
|
for (const source of ctx.sourceFiles().slice().sort((a, b) => priority(a.fileName) - priority(b.fileName) || a.fileName.localeCompare(b.fileName))) {
|
|
5340
5690
|
const path = relPath(ctx.rootDir, source.fileName);
|
|
5341
|
-
if (isEvalPath(path) || isTestPath(path) || knownReachability && !reachability.inProd.has(path) && !reachability.reachable.has(path))
|
|
5691
|
+
if (isEvalPath(path) || isTestPath(path) || knownReachability && !reachability.inProd.has(path) && !reachability.reachable.has(path) || agentReach && agentReach.size > 0 && !agentReach.has(path))
|
|
5342
5692
|
continue;
|
|
5343
5693
|
for (const statement of source.statements) {
|
|
5344
5694
|
if (!import_typescript9.default.isImportDeclaration(statement) || !import_typescript9.default.isStringLiteral(statement.moduleSpecifier))
|
|
@@ -5359,53 +5709,89 @@ function instructionTemplates(ctx, maxBytes = Number.POSITIVE_INFINITY, preferre
|
|
|
5359
5709
|
ranks.set(entry, 0);
|
|
5360
5710
|
} catch {}
|
|
5361
5711
|
}
|
|
5362
|
-
const
|
|
5363
|
-
|
|
5364
|
-
|
|
5365
|
-
|
|
5366
|
-
|
|
5367
|
-
|
|
5368
|
-
|
|
5369
|
-
|
|
5370
|
-
|
|
5371
|
-
|
|
5712
|
+
const builderOf = (node) => {
|
|
5713
|
+
let fn = enclosingFunction(node);
|
|
5714
|
+
while (fn && !functionName(fn))
|
|
5715
|
+
fn = enclosingFunction(fn.parent);
|
|
5716
|
+
return fn;
|
|
5717
|
+
};
|
|
5718
|
+
const entryFor = (node, body, holes) => {
|
|
5719
|
+
const fn = builderOf(node);
|
|
5720
|
+
const name = fn ? functionName(fn) : undefined;
|
|
5721
|
+
const titles = fn && name ? facts.titlesOf(fn) : [];
|
|
5722
|
+
const reads = holes.flatMap((hole, slot) => {
|
|
5723
|
+
const read = facts.readOf(hole);
|
|
5724
|
+
return read ? [{ slot, ...read }] : [];
|
|
5725
|
+
});
|
|
5726
|
+
return {
|
|
5727
|
+
body,
|
|
5728
|
+
path,
|
|
5729
|
+
line: lineOf(node),
|
|
5730
|
+
endLine: source.getLineAndCharacterOfPosition(node.getEnd()).line + 1,
|
|
5731
|
+
...name ? { function: name, functionLine: lineOf(fn) } : { kind: "static" },
|
|
5732
|
+
...titles.length ? { titles } : {},
|
|
5733
|
+
...reads.length ? { reads } : {}
|
|
5734
|
+
};
|
|
5735
|
+
};
|
|
5736
|
+
const literalLength = (body) => body.replace(/\{\{[\s\S]*?\}\}/g, "").trim().length;
|
|
5737
|
+
const readHeading = (node, body, holes) => {
|
|
5738
|
+
if (!holes.length || !READ_HEADING.test(body) || !builderOf(node))
|
|
5739
|
+
return;
|
|
5740
|
+
const entry = entryFor(node, body, holes);
|
|
5741
|
+
return entry.reads?.length === holes.length ? entry : undefined;
|
|
5372
5742
|
};
|
|
5373
5743
|
const visit2 = (node) => {
|
|
5374
|
-
if (
|
|
5375
|
-
const
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5384
|
-
|
|
5385
|
-
|
|
5386
|
-
|
|
5387
|
-
|
|
5388
|
-
|
|
5389
|
-
|
|
5390
|
-
|
|
5744
|
+
if (isPlus(node) && !isPlus(node.parent)) {
|
|
5745
|
+
const operands = [];
|
|
5746
|
+
const flatten = (expression) => {
|
|
5747
|
+
while (import_typescript9.default.isParenthesizedExpression(expression) && isPlus(expression.expression))
|
|
5748
|
+
expression = expression.expression;
|
|
5749
|
+
if (isPlus(expression)) {
|
|
5750
|
+
flatten(expression.left);
|
|
5751
|
+
flatten(expression.right);
|
|
5752
|
+
} else
|
|
5753
|
+
operands.push(expression);
|
|
5754
|
+
};
|
|
5755
|
+
flatten(node);
|
|
5756
|
+
if (operands.some(isStringLike)) {
|
|
5757
|
+
const holes = [];
|
|
5758
|
+
let body = "";
|
|
5759
|
+
for (const operand of operands) {
|
|
5760
|
+
const value = facts.constantValue(operand);
|
|
5761
|
+
const inner = unwrap(operand);
|
|
5762
|
+
if (value !== undefined)
|
|
5763
|
+
body += value;
|
|
5764
|
+
else if (import_typescript9.default.isTemplateExpression(inner))
|
|
5765
|
+
body += templateBody(inner, facts.constantValue, holes);
|
|
5766
|
+
else {
|
|
5767
|
+
body += `{{slot_${holes.length}}}`;
|
|
5768
|
+
holes.push(operand);
|
|
5769
|
+
}
|
|
5770
|
+
}
|
|
5771
|
+
const fn = builderOf(node);
|
|
5772
|
+
const entry = holes.length === 0 ? body.trim().length >= 60 ? entryFor(node, body, holes) : undefined : literalLength(body) >= (fn ? 20 : 60) && /\s/.test(body) ? entryFor(node, body, holes) : readHeading(node, body, holes);
|
|
5773
|
+
if (entry) {
|
|
5774
|
+
templates.push(entry);
|
|
5775
|
+
ranks.set(entry, 2);
|
|
5776
|
+
for (const operand of operands) {
|
|
5777
|
+
const inner = unwrap(operand);
|
|
5778
|
+
if (import_typescript9.default.isTemplateExpression(inner))
|
|
5779
|
+
inner.templateSpans.forEach((span) => visit2(span.expression));
|
|
5780
|
+
else if (!import_typescript9.default.isStringLiteral(inner) && !import_typescript9.default.isNoSubstitutionTemplateLiteral(inner))
|
|
5781
|
+
visit2(operand);
|
|
5782
|
+
}
|
|
5783
|
+
return;
|
|
5784
|
+
}
|
|
5391
5785
|
}
|
|
5392
5786
|
}
|
|
5393
5787
|
if (import_typescript9.default.isStringLiteral(node) || import_typescript9.default.isNoSubstitutionTemplateLiteral(node) || import_typescript9.default.isTemplateExpression(node)) {
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
const
|
|
5398
|
-
|
|
5399
|
-
const literalLength = body.replace(/\{\{[\s\S]*?\}\}/g, "").trim().length;
|
|
5400
|
-
if (literalLength < (name ? 20 : 60) || !/\s/.test(body))
|
|
5788
|
+
const holes = [];
|
|
5789
|
+
const body = import_typescript9.default.isTemplateExpression(node) ? templateBody(node, facts.constantValue, holes) : node.text;
|
|
5790
|
+
const fn = builderOf(node);
|
|
5791
|
+
const entry = literalLength(body) >= (fn ? 20 : 60) && /\s/.test(body) ? entryFor(node, body, holes) : readHeading(node, body, holes);
|
|
5792
|
+
if (!entry)
|
|
5401
5793
|
return;
|
|
5402
|
-
const
|
|
5403
|
-
body,
|
|
5404
|
-
path,
|
|
5405
|
-
line: lineOf(node),
|
|
5406
|
-
endLine: source.getLineAndCharacterOfPosition(node.getEnd()).line + 1,
|
|
5407
|
-
...name ? { function: name, functionLine: lineOf(fn) } : { kind: "static" }
|
|
5408
|
-
};
|
|
5794
|
+
const name = entry.function;
|
|
5409
5795
|
const property = import_typescript9.default.isPropertyAssignment(node.parent) ? node.parent.name.getText(source) : "";
|
|
5410
5796
|
let binding = "";
|
|
5411
5797
|
for (let parent = node.parent;parent; parent = parent.parent) {
|
|
@@ -5630,6 +6016,20 @@ function readInstructionOwnerCache(rootDir, fingerprint, sites, env = process.en
|
|
|
5630
6016
|
return;
|
|
5631
6017
|
}
|
|
5632
6018
|
}
|
|
6019
|
+
var MAIN_GUARD = /\bprocess\.argv\b|\bimport\.meta\.main\b|\brequire\.main\s*===/;
|
|
6020
|
+
function scriptFiles(ctx) {
|
|
6021
|
+
const files = new Set;
|
|
6022
|
+
for (const source of ctx.sourceFiles()) {
|
|
6023
|
+
if (source.statements.some((statement) => !import_typescript9.default.isFunctionLike(statement) && !import_typescript9.default.isClassLike(statement) && !import_typescript9.default.isImportDeclaration(statement) && MAIN_GUARD.test(statement.getText(source))))
|
|
6024
|
+
files.add(relPath(ctx.rootDir, source.fileName));
|
|
6025
|
+
}
|
|
6026
|
+
return files;
|
|
6027
|
+
}
|
|
6028
|
+
function agentReachedTemplates(templates, scopes, scripts) {
|
|
6029
|
+
const owned = new Set(scopes.filter((scope) => scope.agentNames.length).map((scope) => scope.path));
|
|
6030
|
+
const unreached = new Set([...scripts].filter((path) => !owned.has(path) && !templates.some((template) => template.path === path && template.agentNames?.length)));
|
|
6031
|
+
return templates.filter((template) => !unreached.has(template.path));
|
|
6032
|
+
}
|
|
5633
6033
|
|
|
5634
6034
|
// src/harness.ts
|
|
5635
6035
|
import { createHash as createHash9 } from "node:crypto";
|
|
@@ -20845,7 +21245,7 @@ async function runHarnessCommand(context) {
|
|
|
20845
21245
|
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.");
|
|
20846
21246
|
}
|
|
20847
21247
|
if (context.flags["github-actions"] === "true") {
|
|
20848
|
-
const { runGithubActionsAnalyze } = await import("./harness-github-actions-
|
|
21248
|
+
const { runGithubActionsAnalyze } = await import("./harness-github-actions-3m6k2a71.js");
|
|
20849
21249
|
const result = await runGithubActionsAnalyze(rootDir, {
|
|
20850
21250
|
writeReport: (report2) => {
|
|
20851
21251
|
const normalized = normalizeHarnessReport(report2);
|
|
@@ -20996,8 +21396,8 @@ async function runHarnessCommand(context) {
|
|
|
20996
21396
|
}
|
|
20997
21397
|
const { artifacts, unknowns, canonicalAgentIdentities } = deterministicGraphItems(rootDir, promote === "all" ? undefined : promote);
|
|
20998
21398
|
tagComponentStatus({ runtimeAgents: [], artifacts }, rootDir);
|
|
20999
|
-
const { extractHarnessWithContext: extractHarnessWithContext2 } = await import("./index-
|
|
21000
|
-
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-
|
|
21399
|
+
const { extractHarnessWithContext: extractHarnessWithContext2 } = await import("./index-dcsgqzfr.js");
|
|
21400
|
+
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-ekdmgbb6.js");
|
|
21001
21401
|
let components = { runtimeAgents: [], artifacts: [], warnings: [] };
|
|
21002
21402
|
if (promote === "all" || promote === "topology" || promote === "tools") {
|
|
21003
21403
|
const { result, ctx } = extractHarnessWithContext2(rootDir);
|
|
@@ -21040,8 +21440,6 @@ async function runHarnessCommand(context) {
|
|
|
21040
21440
|
const extracted = extractHarnessWithContext(rootDir, { tools: false, models: false });
|
|
21041
21441
|
const { result, ctx } = extracted;
|
|
21042
21442
|
mark("extract");
|
|
21043
|
-
const inventory = instructionTemplates(ctx, Number.POSITIVE_INFINITY);
|
|
21044
|
-
mark("templates");
|
|
21045
21443
|
const sites = instructionOwnerSites(result.callSites);
|
|
21046
21444
|
const fingerprint = extractFingerprint(extracted);
|
|
21047
21445
|
let evidence = fingerprint ? readInstructionOwnerCache(rootDir, fingerprint, sites) : undefined;
|
|
@@ -21055,7 +21453,9 @@ async function runHarnessCommand(context) {
|
|
|
21055
21453
|
}
|
|
21056
21454
|
mark("owners");
|
|
21057
21455
|
const { siteAgents, connectors } = evidence;
|
|
21058
|
-
const
|
|
21456
|
+
const inventory = instructionTemplates(ctx, Number.POSITIVE_INFINITY, [], { agentFiles: [...new Set(evidence.scopes.map((scope) => scope.path))] });
|
|
21457
|
+
mark("templates");
|
|
21458
|
+
const templates = agentReachedTemplates(withTemplateOwners(inventory.templates, evidence.refs, (id) => Object.hasOwn(siteAgents, id) ? siteAgents[id] : [], evidence.scopes), evidence.scopes, scriptFiles(ctx));
|
|
21059
21459
|
const payload = JSON.stringify({ templates, connectorSites: connectors });
|
|
21060
21460
|
mark("join");
|
|
21061
21461
|
context.output.writeData({
|
|
@@ -21069,8 +21469,8 @@ async function runHarnessCommand(context) {
|
|
|
21069
21469
|
}
|
|
21070
21470
|
case "extract": {
|
|
21071
21471
|
writeHumanProgress(context, "Harness extract: tracing model call sites (no LLM, no network)...");
|
|
21072
|
-
const { extractHarnessWithContext: extractHarnessWithContext2, serializeExtractResult } = await import("./index-
|
|
21073
|
-
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-
|
|
21472
|
+
const { extractHarnessWithContext: extractHarnessWithContext2, serializeExtractResult } = await import("./index-dcsgqzfr.js");
|
|
21473
|
+
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-ekdmgbb6.js");
|
|
21074
21474
|
const { result, ctx } = extractHarnessWithContext2(rootDir, { fresh: true });
|
|
21075
21475
|
const items = deterministicGraphItems(rootDir);
|
|
21076
21476
|
const artifacts = items.artifacts;
|
|
@@ -21977,8 +22377,8 @@ var CONCERN_PROMOTED_ARTIFACT_TYPES = {
|
|
|
21977
22377
|
evals: new Set(["model_config", "eval"])
|
|
21978
22378
|
};
|
|
21979
22379
|
async function deterministicFloorGraph(rootDir, options = {}) {
|
|
21980
|
-
const { extractHarnessWithContext: extractHarnessWithContext2 } = await import("./index-
|
|
21981
|
-
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-
|
|
22380
|
+
const { extractHarnessWithContext: extractHarnessWithContext2 } = await import("./index-dcsgqzfr.js");
|
|
22381
|
+
const { enumerateHarnessComponents, mergeEnumeratedComponents } = await import("./index-ekdmgbb6.js");
|
|
21982
22382
|
const { result, ctx } = extractHarnessWithContext2(rootDir);
|
|
21983
22383
|
const items = deterministicGraphItems(rootDir);
|
|
21984
22384
|
const components = mergeEnumeratedComponents(items.artifacts, enumerateHarnessComponents(result, ctx));
|
|
@@ -1102,11 +1102,12 @@ function analyzeRepository(rootDir) {
|
|
|
1102
1102
|
}
|
|
1103
1103
|
const all = walk(otherStarts, new Set(inProd));
|
|
1104
1104
|
const reachable = new Set([...all].filter((file) => !inProd.has(file)));
|
|
1105
|
-
|
|
1105
|
+
const reachFrom = (starts) => walk([...starts].map((start) => resolveFile(start) ?? start));
|
|
1106
|
+
return { inProd, reachable, reachFrom, files, workers, classFiles, resolveFile };
|
|
1106
1107
|
}
|
|
1107
1108
|
function buildImportGraphReachability(rootDir) {
|
|
1108
|
-
const { inProd, reachable } = analyzeRepository(rootDir);
|
|
1109
|
-
return { inProd, reachable };
|
|
1109
|
+
const { inProd, reachable, reachFrom } = analyzeRepository(rootDir);
|
|
1110
|
+
return { inProd, reachable, reachFrom };
|
|
1110
1111
|
}
|
|
1111
1112
|
function norm2(value) {
|
|
1112
1113
|
return typeof value === "string" ? value.toLowerCase().replace(/[^a-z0-9]/g, "") : "";
|
package/dist/cli.js
CHANGED
|
@@ -2976,25 +2976,25 @@ function leafManifestFields(leaf, commands) {
|
|
|
2976
2976
|
import { fileURLToPath } from "url";
|
|
2977
2977
|
import { realpathSync } from "fs";
|
|
2978
2978
|
async function runPromptsCommand(...args) {
|
|
2979
|
-
return (await import("./prompts-
|
|
2979
|
+
return (await import("./prompts-nhy5vagy.js")).runPromptsCommand(...args);
|
|
2980
2980
|
}
|
|
2981
2981
|
async function runSkillsCommand(...args) {
|
|
2982
2982
|
return (await import("./skills-hf8fa7w7.js")).runSkillsCommand(...args);
|
|
2983
2983
|
}
|
|
2984
2984
|
async function runHarnessCommand(...args) {
|
|
2985
|
-
return (await import("./harness-
|
|
2985
|
+
return (await import("./harness-fjrhp1af.js")).runHarnessCommand(...args);
|
|
2986
2986
|
}
|
|
2987
2987
|
async function runSyncCommand(...args) {
|
|
2988
|
-
return (await import("./sync-
|
|
2988
|
+
return (await import("./sync-bwx0ncm3.js")).runSyncCommand(...args);
|
|
2989
2989
|
}
|
|
2990
2990
|
async function runRegistryCommand(...args) {
|
|
2991
2991
|
return (await import("./registry-4mhr7xsd.js")).runRegistryCommand(...args);
|
|
2992
2992
|
}
|
|
2993
2993
|
async function runDoctorCommand(...args) {
|
|
2994
|
-
return (await import("./doctor-
|
|
2994
|
+
return (await import("./doctor-tkdk49s0.js")).runDoctorCommand(...args);
|
|
2995
2995
|
}
|
|
2996
2996
|
async function runStatusCommand(...args) {
|
|
2997
|
-
return (await import("./doctor-
|
|
2997
|
+
return (await import("./doctor-tkdk49s0.js")).runStatusCommand(...args);
|
|
2998
2998
|
}
|
|
2999
2999
|
async function runAuthCommand(...args) {
|
|
3000
3000
|
return (await import("./profile-commands-tav5q639.js")).runAuthCommand(...args);
|
|
@@ -3006,7 +3006,7 @@ async function runProfilesCommand(...args) {
|
|
|
3006
3006
|
return (await import("./profile-commands-tav5q639.js")).runProfilesCommand(...args);
|
|
3007
3007
|
}
|
|
3008
3008
|
async function runAgentCommand(...args) {
|
|
3009
|
-
return (await import("./agent-
|
|
3009
|
+
return (await import("./agent-732v69qx.js")).runAgentCommand(...args);
|
|
3010
3010
|
}
|
|
3011
3011
|
async function runProductionCommand(...args) {
|
|
3012
3012
|
return (await import("./production-intelligence-1y884f69.js")).runProductionCommand(...args);
|
|
@@ -6770,7 +6770,7 @@ var commandRegistry = createCommandRegistry([
|
|
|
6770
6770
|
resetApiRequestCountBeforeRun: true,
|
|
6771
6771
|
telemetry: "result-and-error",
|
|
6772
6772
|
handler: async (context) => {
|
|
6773
|
-
const { runInit } = await import("./index-
|
|
6773
|
+
const { runInit } = await import("./index-rs7878j3.js");
|
|
6774
6774
|
if (context.outputMode === "agent-stream") {
|
|
6775
6775
|
context.output.writeEvent({
|
|
6776
6776
|
event: "started",
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
promptsDiscoveredCheck,
|
|
4
4
|
runDoctorCommand,
|
|
5
5
|
runStatusCommand
|
|
6
|
-
} from "./cli-
|
|
6
|
+
} from "./cli-2ctk8gy8.js";
|
|
7
7
|
import"./cli-qwnkv4jy.js";
|
|
8
|
-
import"./cli-
|
|
8
|
+
import"./cli-0qgxw8cx.js";
|
|
9
9
|
import"./cli-mm48br00.js";
|
|
10
10
|
import"./cli-k0vxtzxb.js";
|
|
11
11
|
import"./cli-6ga6kmdp.js";
|
|
@@ -48,12 +48,12 @@ import {
|
|
|
48
48
|
writeHarnessAnalyzeResult,
|
|
49
49
|
writeHarnessArtifacts,
|
|
50
50
|
writeHumanProgress
|
|
51
|
-
} from "./cli-
|
|
51
|
+
} from "./cli-cmj01mp1.js";
|
|
52
52
|
import"./cli-k0vxtzxb.js";
|
|
53
53
|
import"./cli-97fnztpy.js";
|
|
54
54
|
import {
|
|
55
55
|
HARNESS_ANALYZE_CONCERNS
|
|
56
|
-
} from "./cli-
|
|
56
|
+
} from "./cli-krm4w2v9.js";
|
|
57
57
|
import"./cli-6ga6kmdp.js";
|
|
58
58
|
import"./cli-dxajrq9h.js";
|
|
59
59
|
import"./cli-13zdcv4w.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildSourceSnapshot
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-cmj01mp1.js";
|
|
4
4
|
import"./cli-k0vxtzxb.js";
|
|
5
5
|
import"./cli-97fnztpy.js";
|
|
6
|
-
import"./cli-
|
|
6
|
+
import"./cli-krm4w2v9.js";
|
|
7
7
|
import"./cli-6ga6kmdp.js";
|
|
8
8
|
import"./cli-dxajrq9h.js";
|
|
9
9
|
import"./cli-13zdcv4w.js";
|
|
@@ -20,10 +20,10 @@ import {
|
|
|
20
20
|
serializeExtractResult,
|
|
21
21
|
toolNamesOf,
|
|
22
22
|
valueChildren
|
|
23
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-cmj01mp1.js";
|
|
24
24
|
import"./cli-k0vxtzxb.js";
|
|
25
25
|
import"./cli-97fnztpy.js";
|
|
26
|
-
import"./cli-
|
|
26
|
+
import"./cli-krm4w2v9.js";
|
|
27
27
|
import"./cli-6ga6kmdp.js";
|
|
28
28
|
import"./cli-dxajrq9h.js";
|
|
29
29
|
import"./cli-13zdcv4w.js";
|
|
@@ -22,10 +22,10 @@ import {
|
|
|
22
22
|
valueDeclaration,
|
|
23
23
|
visit,
|
|
24
24
|
workspacePackages
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-cmj01mp1.js";
|
|
26
26
|
import"./cli-k0vxtzxb.js";
|
|
27
27
|
import"./cli-97fnztpy.js";
|
|
28
|
-
import"./cli-
|
|
28
|
+
import"./cli-krm4w2v9.js";
|
|
29
29
|
import"./cli-6ga6kmdp.js";
|
|
30
30
|
import"./cli-dxajrq9h.js";
|
|
31
31
|
import"./cli-13zdcv4w.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildDoctorReport
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-2ctk8gy8.js";
|
|
4
4
|
import {
|
|
5
5
|
selectTenantAndCreateKey
|
|
6
6
|
} from "./cli-62e1vy8f.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import {
|
|
21
21
|
initPrompts,
|
|
22
22
|
runPromptSync
|
|
23
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-0qgxw8cx.js";
|
|
24
24
|
import {
|
|
25
25
|
agentsMdProblem,
|
|
26
26
|
runSkillSync
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
runCodingAgent,
|
|
47
47
|
runHarnessCommand,
|
|
48
48
|
startRemoteAnalyze
|
|
49
|
-
} from "./cli-
|
|
49
|
+
} from "./cli-cmj01mp1.js";
|
|
50
50
|
import {
|
|
51
51
|
canonicalText,
|
|
52
52
|
renderInitBanner,
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
import {
|
|
59
59
|
stripAnsi
|
|
60
60
|
} from "./cli-97fnztpy.js";
|
|
61
|
-
import"./cli-
|
|
61
|
+
import"./cli-krm4w2v9.js";
|
|
62
62
|
import"./cli-6ga6kmdp.js";
|
|
63
63
|
import"./cli-dxajrq9h.js";
|
|
64
64
|
import {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
inventoryFiles,
|
|
3
3
|
safePromptEvidencePath
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-cmj01mp1.js";
|
|
5
5
|
import"./cli-k0vxtzxb.js";
|
|
6
6
|
import"./cli-97fnztpy.js";
|
|
7
|
-
import"./cli-
|
|
7
|
+
import"./cli-krm4w2v9.js";
|
|
8
8
|
import"./cli-6ga6kmdp.js";
|
|
9
9
|
import"./cli-dxajrq9h.js";
|
|
10
10
|
import"./cli-13zdcv4w.js";
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
checkPromptMapping,
|
|
4
4
|
discoverHarnessPromptSources,
|
|
5
5
|
safePromptEvidencePath
|
|
6
|
-
} from "./cli-
|
|
6
|
+
} from "./cli-cmj01mp1.js";
|
|
7
7
|
import"./cli-k0vxtzxb.js";
|
|
8
8
|
import"./cli-97fnztpy.js";
|
|
9
|
-
import"./cli-
|
|
9
|
+
import"./cli-krm4w2v9.js";
|
|
10
10
|
import"./cli-6ga6kmdp.js";
|
|
11
11
|
import"./cli-dxajrq9h.js";
|
|
12
12
|
import"./cli-13zdcv4w.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runPromptsCommand
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-0qgxw8cx.js";
|
|
4
4
|
import {
|
|
5
5
|
runSkillsCommand
|
|
6
6
|
} from "./cli-t8vmcbe0.js";
|
|
@@ -10,10 +10,10 @@ import"./cli-hcwdz9sd.js";
|
|
|
10
10
|
import"./cli-mm48br00.js";
|
|
11
11
|
import {
|
|
12
12
|
runHarnessCommand
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-cmj01mp1.js";
|
|
14
14
|
import"./cli-k0vxtzxb.js";
|
|
15
15
|
import"./cli-97fnztpy.js";
|
|
16
|
-
import"./cli-
|
|
16
|
+
import"./cli-krm4w2v9.js";
|
|
17
17
|
import"./cli-6ga6kmdp.js";
|
|
18
18
|
import"./cli-dxajrq9h.js";
|
|
19
19
|
import"./cli-13zdcv4w.js";
|
package/package.json
CHANGED