@harness-engineering/cli 3.0.0 → 3.1.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/agents/skills/claude-code/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/codex/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/{agents-md-XOJE5ETA.js → agents-md-YYCLGMBF.js} +2 -2
- package/dist/{architecture-JEZPJ725.js → architecture-5KPP4ID4.js} +3 -3
- package/dist/{assess-project-RHXOQNMM.js → assess-project-B6ENHUAU.js} +1 -1
- package/dist/bin/harness-mcp.js +13 -13
- package/dist/bin/harness.js +22 -22
- package/dist/{check-phase-gate-GNDOMS35.js → check-phase-gate-REG3HWYC.js} +3 -3
- package/dist/{chunk-N24HCQA4.js → chunk-A65QO5KN.js} +132 -46
- package/dist/{chunk-UX3PQKVZ.js → chunk-BXKNWSG4.js} +1 -1
- package/dist/{chunk-XX4OLNWQ.js → chunk-C2ZGWMTN.js} +2 -2
- package/dist/{chunk-HEIMJJI4.js → chunk-DNX35Q5K.js} +2 -2
- package/dist/{chunk-BYVT5LVO.js → chunk-ERZCC5VH.js} +3 -3
- package/dist/{chunk-XFU6SB2Q.js → chunk-FL5SLUKZ.js} +62 -27
- package/dist/{chunk-NWLGL3IR.js → chunk-FUH4J43G.js} +1 -1
- package/dist/{chunk-MGUPSE6D.js → chunk-HIPBU2Q4.js} +5 -5
- package/dist/{chunk-3ISHDWO7.js → chunk-IF3JK3G5.js} +1 -1
- package/dist/{chunk-KAJOS3BA.js → chunk-LMZ2JTNP.js} +2 -2
- package/dist/{chunk-527G27VI.js → chunk-OQFEFVIN.js} +2 -2
- package/dist/{chunk-Z4AWEIBY.js → chunk-PZX2Y3RV.js} +3 -3
- package/dist/{chunk-ONCPJGHY.js → chunk-RGQXHCCH.js} +6 -6
- package/dist/{chunk-QBC7DI4Q.js → chunk-TCVQVHEF.js} +1 -1
- package/dist/{chunk-PC2R5RUJ.js → chunk-TE5YHHHZ.js} +1 -1
- package/dist/{chunk-HWTUUQOW.js → chunk-UBTMPO5H.js} +3 -3
- package/dist/{chunk-GSP2XIVS.js → chunk-XEOSSKIB.js} +1 -1
- package/dist/{chunk-DE5U6KOL.js → chunk-XZ2Q4UTW.js} +1 -1
- package/dist/{chunk-YQSYCBAH.js → chunk-YF3AY6KS.js} +6 -6
- package/dist/{chunk-GGKRA7A7.js → chunk-YQAFKOOL.js} +1 -1
- package/dist/{chunk-WWEVS7RO.js → chunk-ZOUJP3EY.js} +106 -80
- package/dist/{chunk-6WQCLCBO.js → chunk-ZRKFDE6M.js} +1 -1
- package/dist/{ci-workflow-ORZ4F45F.js → ci-workflow-JEYYCBOC.js} +2 -2
- package/dist/{dist-LHINSVK4.js → dist-3HW4LCHE.js} +15 -1
- package/dist/{docs-AU3DXFFO.js → docs-YRMW7UED.js} +3 -3
- package/dist/{engine-6GPWOYQH.js → engine-E7H5U3AC.js} +2 -2
- package/dist/{entropy-VLKDRMRT.js → entropy-3JBKCGJJ.js} +2 -2
- package/dist/{feedback-YXYY44ZC.js → feedback-U6VJ6AUJ.js} +1 -1
- package/dist/{generate-agent-definitions-XIHQPKG3.js → generate-agent-definitions-S2FRZF4Y.js} +3 -3
- package/dist/hooks/format-check.js +202 -0
- package/dist/hooks/quality-warner.js +32 -0
- package/dist/hooks/strict-quality-gate.js +48 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.js +22 -22
- package/dist/{loader-YAN56MT3.js → loader-RGQJYERV.js} +2 -2
- package/dist/{mcp-RK3SFVYB.js → mcp-NDTFZXWF.js} +13 -13
- package/dist/{performance-64DPTLLQ.js → performance-FPWKC4CN.js} +3 -3
- package/dist/{review-pipeline-NENG6LW7.js → review-pipeline-WUHG7PHO.js} +2 -2
- package/dist/{runtime-FFIIRT2T.js → runtime-Q3ORD7LW.js} +2 -2
- package/dist/{security-3PIBN35B.js → security-JDHTRBGC.js} +1 -1
- package/dist/{validate-7IAF2ES3.js → validate-G3LKBOYA.js} +3 -3
- package/dist/{validate-cross-check-QPSAOZKD.js → validate-cross-check-4ITA72DF.js} +2 -2
- package/package.json +8 -8
- package/dist/hooks/quality-gate.js +0 -131
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateRuntime
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZRKFDE6M.js";
|
|
4
4
|
import {
|
|
5
5
|
generateAgentsMd
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TCVQVHEF.js";
|
|
7
7
|
import {
|
|
8
8
|
generateCIWorkflow
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XEOSSKIB.js";
|
|
10
10
|
import {
|
|
11
11
|
createGenerateAgentDefinitionsCommand,
|
|
12
12
|
generateAgentDefinitions
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-FUH4J43G.js";
|
|
14
14
|
import {
|
|
15
15
|
toKebabCase
|
|
16
16
|
} from "./chunk-KET4QQZB.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from "./chunk-2N4OENGE.js";
|
|
21
21
|
import {
|
|
22
22
|
TemplateEngine
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-BXKNWSG4.js";
|
|
24
24
|
import {
|
|
25
25
|
generate,
|
|
26
26
|
validate
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
import {
|
|
32
32
|
listPersonas,
|
|
33
33
|
loadPersona
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-TE5YHHHZ.js";
|
|
35
35
|
import {
|
|
36
36
|
runPersona
|
|
37
37
|
} from "./chunk-GISMXMVL.js";
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
OutputMode,
|
|
47
47
|
createCheckPhaseGateCommand,
|
|
48
48
|
findFiles
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-LMZ2JTNP.js";
|
|
50
50
|
import {
|
|
51
51
|
appendFrameworkAgents,
|
|
52
52
|
captureHealthSnapshot,
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
runSecurityCraft,
|
|
75
75
|
runSpecCraft,
|
|
76
76
|
runTestCraft
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-ZOUJP3EY.js";
|
|
78
78
|
import {
|
|
79
79
|
VALID_PLATFORMS
|
|
80
80
|
} from "./chunk-3ISINLYT.js";
|
|
@@ -99,7 +99,7 @@ import {
|
|
|
99
99
|
BranchingConfigSchema,
|
|
100
100
|
findConfigFile,
|
|
101
101
|
resolveConfig
|
|
102
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-YQAFKOOL.js";
|
|
103
103
|
import {
|
|
104
104
|
logger
|
|
105
105
|
} from "./chunk-EBJQ6N4M.js";
|
|
@@ -199,7 +199,7 @@ import {
|
|
|
199
199
|
validateStrategy,
|
|
200
200
|
writeConfig,
|
|
201
201
|
writeLockfile
|
|
202
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-A65QO5KN.js";
|
|
203
203
|
import {
|
|
204
204
|
CLI_VERSION
|
|
205
205
|
} from "./chunk-BM3PWGXQ.js";
|
|
@@ -425,7 +425,7 @@ function registerSkillsCommand(adoption) {
|
|
|
425
425
|
const globalOpts = cmd.optsWithGlobals();
|
|
426
426
|
const limit = Math.max(parseInt(opts.limit, 10) || 20, 1);
|
|
427
427
|
const cwd = process.cwd();
|
|
428
|
-
const { readAdoptionRecords, aggregateBySkill } = await import("./dist-
|
|
428
|
+
const { readAdoptionRecords, aggregateBySkill } = await import("./dist-3HW4LCHE.js");
|
|
429
429
|
const records = readAdoptionRecords(cwd);
|
|
430
430
|
if (records.length === 0) {
|
|
431
431
|
if (globalOpts.json) {
|
|
@@ -461,7 +461,7 @@ function registerRecentCommand(adoption) {
|
|
|
461
461
|
const globalOpts = cmd.optsWithGlobals();
|
|
462
462
|
const limit = Math.max(parseInt(opts.limit, 10) || 20, 1);
|
|
463
463
|
const cwd = process.cwd();
|
|
464
|
-
const { readAdoptionRecords } = await import("./dist-
|
|
464
|
+
const { readAdoptionRecords } = await import("./dist-3HW4LCHE.js");
|
|
465
465
|
const records = readAdoptionRecords(cwd);
|
|
466
466
|
if (records.length === 0) {
|
|
467
467
|
if (globalOpts.json) {
|
|
@@ -539,7 +539,7 @@ function registerSkillCommand(adoption) {
|
|
|
539
539
|
adoption.command("skill <name>").description("Show detail for a specific skill").action(async (name, _opts, cmd) => {
|
|
540
540
|
const globalOpts = cmd.optsWithGlobals();
|
|
541
541
|
const cwd = process.cwd();
|
|
542
|
-
const { readAdoptionRecords, aggregateBySkill } = await import("./dist-
|
|
542
|
+
const { readAdoptionRecords, aggregateBySkill } = await import("./dist-3HW4LCHE.js");
|
|
543
543
|
const records = readAdoptionRecords(cwd);
|
|
544
544
|
const skillRecords = records.filter((r) => r.skill === name);
|
|
545
545
|
if (skillRecords.length === 0) {
|
|
@@ -4785,10 +4785,16 @@ import { fileURLToPath as fileURLToPath2 } from "url";
|
|
|
4785
4785
|
var HOOK_SCRIPTS = [
|
|
4786
4786
|
{ name: "block-no-verify", event: "PreToolUse", matcher: "Bash", minProfile: "minimal" },
|
|
4787
4787
|
{ name: "protect-config", event: "PreToolUse", matcher: "Write|Edit", minProfile: "standard" },
|
|
4788
|
-
{ name: "quality-
|
|
4788
|
+
{ name: "quality-warner", event: "PostToolUse", matcher: "Edit|Write", minProfile: "standard" },
|
|
4789
4789
|
{ name: "pre-compact-state", event: "PreCompact", matcher: "*", minProfile: "standard" },
|
|
4790
4790
|
{ name: "adoption-tracker", event: "Stop", matcher: "*", minProfile: "standard" },
|
|
4791
4791
|
{ name: "telemetry-reporter", event: "Stop", matcher: "*", minProfile: "standard" },
|
|
4792
|
+
{
|
|
4793
|
+
name: "strict-quality-gate",
|
|
4794
|
+
event: "PostToolUse",
|
|
4795
|
+
matcher: "Edit|Write",
|
|
4796
|
+
minProfile: "strict"
|
|
4797
|
+
},
|
|
4792
4798
|
{ name: "cost-tracker", event: "Stop", matcher: "*", minProfile: "strict" },
|
|
4793
4799
|
{ name: "sentinel-pre", event: "PreToolUse", matcher: "*", minProfile: "strict" },
|
|
4794
4800
|
{ name: "sentinel-post", event: "PostToolUse", matcher: "*", minProfile: "strict" }
|
|
@@ -4806,6 +4812,21 @@ var PROFILES = {
|
|
|
4806
4812
|
strict: hooksForProfile("strict")
|
|
4807
4813
|
};
|
|
4808
4814
|
|
|
4815
|
+
// src/hooks/support-files.ts
|
|
4816
|
+
var HOOK_SUPPORT_FILES = {
|
|
4817
|
+
"quality-warner": ["format-check.js"],
|
|
4818
|
+
"strict-quality-gate": ["format-check.js"]
|
|
4819
|
+
};
|
|
4820
|
+
function supportFilesFor(hookNames) {
|
|
4821
|
+
const files = /* @__PURE__ */ new Set();
|
|
4822
|
+
for (const name of hookNames) {
|
|
4823
|
+
for (const file of HOOK_SUPPORT_FILES[name] ?? []) {
|
|
4824
|
+
files.add(file);
|
|
4825
|
+
}
|
|
4826
|
+
}
|
|
4827
|
+
return [...files];
|
|
4828
|
+
}
|
|
4829
|
+
|
|
4809
4830
|
// src/commands/hooks/init.ts
|
|
4810
4831
|
var __filename2 = fileURLToPath2(import.meta.url);
|
|
4811
4832
|
var __dirname2 = path22.dirname(__filename2);
|
|
@@ -4876,6 +4897,13 @@ function initHooks(options) {
|
|
|
4876
4897
|
copiedScripts.push(script.name);
|
|
4877
4898
|
}
|
|
4878
4899
|
}
|
|
4900
|
+
for (const supportFile of supportFilesFor(activeNames)) {
|
|
4901
|
+
const srcFile = path22.join(sourceDir, supportFile);
|
|
4902
|
+
const destFile = path22.join(hooksDestDir, supportFile);
|
|
4903
|
+
if (fs9.existsSync(srcFile)) {
|
|
4904
|
+
fs9.copyFileSync(srcFile, destFile);
|
|
4905
|
+
}
|
|
4906
|
+
}
|
|
4879
4907
|
const profilePath = path22.join(hooksDestDir, "profile.json");
|
|
4880
4908
|
fs9.writeFileSync(profilePath, JSON.stringify({ profile }, null, 2) + "\n");
|
|
4881
4909
|
const claudeDir = path22.join(projectDir, ".claude");
|
|
@@ -5095,6 +5123,13 @@ function addHooks(hookName, projectDir) {
|
|
|
5095
5123
|
}
|
|
5096
5124
|
registerHook(settings, def.event, def.matcher, name);
|
|
5097
5125
|
}
|
|
5126
|
+
for (const supportFile of supportFilesFor(names)) {
|
|
5127
|
+
const src = path25.join(srcDir, supportFile);
|
|
5128
|
+
const dest = path25.join(destDir, supportFile);
|
|
5129
|
+
if (fs12.existsSync(src)) {
|
|
5130
|
+
fs12.copyFileSync(src, dest);
|
|
5131
|
+
}
|
|
5132
|
+
}
|
|
5098
5133
|
fs12.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
|
|
5099
5134
|
return result;
|
|
5100
5135
|
}
|
|
@@ -5953,7 +5988,7 @@ function createInsightsCommand() {
|
|
|
5953
5988
|
return new Command45("insights").description("Composite project report \u2014 health, entropy, decay, attention, impact.").option("--json", "Emit JSON to stdout instead of pretty text").option("--skip <list>", `Comma-separated keys to skip (${INSIGHTS_KEYS.join(",")})`).action(async (opts) => {
|
|
5954
5989
|
const cwd = process.cwd();
|
|
5955
5990
|
const skip = parseSkip2(opts.skip);
|
|
5956
|
-
const { composeInsights } = await import("./dist-
|
|
5991
|
+
const { composeInsights } = await import("./dist-3HW4LCHE.js");
|
|
5957
5992
|
const report = await composeInsights(cwd, { skip });
|
|
5958
5993
|
if (opts.json) {
|
|
5959
5994
|
console.log(JSON.stringify(report, null, 2));
|
|
@@ -7663,7 +7698,7 @@ function createMcpCommand() {
|
|
|
7663
7698
|
parseBudget
|
|
7664
7699
|
).action(async (opts) => {
|
|
7665
7700
|
const [{ startServer: startServer2, getToolDefinitions: getToolDefinitions2 }, { selectTier }] = await Promise.all([
|
|
7666
|
-
import("./mcp-
|
|
7701
|
+
import("./mcp-NDTFZXWF.js"),
|
|
7667
7702
|
import("./tool-tiers-OKK5FE57.js")
|
|
7668
7703
|
]);
|
|
7669
7704
|
if (opts.tools && opts.tools.length > 0) {
|
|
@@ -8738,7 +8773,7 @@ function registerBenchCommand(perf) {
|
|
|
8738
8773
|
perf.command("bench [glob]").description("Run benchmarks via vitest bench").action(async (glob2, _opts, cmd) => {
|
|
8739
8774
|
const globalOpts = cmd.optsWithGlobals();
|
|
8740
8775
|
const cwd = process.cwd();
|
|
8741
|
-
const { BenchmarkRunner } = await import("./dist-
|
|
8776
|
+
const { BenchmarkRunner } = await import("./dist-3HW4LCHE.js");
|
|
8742
8777
|
const runner = new BenchmarkRunner();
|
|
8743
8778
|
const benchFiles = runner.discover(cwd, glob2);
|
|
8744
8779
|
if (benchFiles.length === 0) {
|
|
@@ -8802,7 +8837,7 @@ async function runBaselinesShow(globalOpts) {
|
|
|
8802
8837
|
}
|
|
8803
8838
|
async function runBaselinesUpdate(globalOpts) {
|
|
8804
8839
|
const cwd = process.cwd();
|
|
8805
|
-
const { BenchmarkRunner } = await import("./dist-
|
|
8840
|
+
const { BenchmarkRunner } = await import("./dist-3HW4LCHE.js");
|
|
8806
8841
|
const runner = new BenchmarkRunner();
|
|
8807
8842
|
const manager = new BaselineManager(cwd);
|
|
8808
8843
|
logger.info("Running benchmarks to update baselines...");
|
|
@@ -8843,7 +8878,7 @@ function registerReportCommand(perf) {
|
|
|
8843
8878
|
perf.command("report").description("Full performance report with metrics, trends, and hotspots").action(async (_opts, cmd) => {
|
|
8844
8879
|
const globalOpts = cmd.optsWithGlobals();
|
|
8845
8880
|
const cwd = process.cwd();
|
|
8846
|
-
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-
|
|
8881
|
+
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-3HW4LCHE.js");
|
|
8847
8882
|
const analyzer = new EntropyAnalyzer2({
|
|
8848
8883
|
rootDir: path47.resolve(cwd),
|
|
8849
8884
|
analyze: { complexity: true, coupling: true }
|
|
@@ -9370,7 +9405,7 @@ async function runPublishAnalyses(opts) {
|
|
|
9370
9405
|
const nameToExternalId = await buildNameToExternalIdMap(projectPath);
|
|
9371
9406
|
if (!nameToExternalId) return process.exit(1);
|
|
9372
9407
|
const { AnalysisArchive } = await import("@harness-engineering/orchestrator");
|
|
9373
|
-
const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-
|
|
9408
|
+
const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-3HW4LCHE.js");
|
|
9374
9409
|
const archive = new AnalysisArchive(path49.join(projectPath, ".harness", "analyses"));
|
|
9375
9410
|
const analyses = await archive.list();
|
|
9376
9411
|
if (analyses.length === 0) {
|
|
@@ -12499,7 +12534,7 @@ async function runSyncAnalyses(opts) {
|
|
|
12499
12534
|
return;
|
|
12500
12535
|
}
|
|
12501
12536
|
const { AnalysisArchive, loadPublishedIndex: loadPublishedIndex2, savePublishedIndex: savePublishedIndex2 } = await import("@harness-engineering/orchestrator");
|
|
12502
|
-
const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-
|
|
12537
|
+
const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-3HW4LCHE.js");
|
|
12503
12538
|
const adapter = new GitHubIssuesSyncAdapter2({ token, config: trackerConfig });
|
|
12504
12539
|
const archive = new AnalysisArchive(path67.join(projectPath, ".harness", "analyses"));
|
|
12505
12540
|
const publishedIndex = loadPublishedIndex2(projectPath);
|
|
@@ -13707,7 +13742,7 @@ function createUpdateCommand() {
|
|
|
13707
13742
|
// src/commands/usage.ts
|
|
13708
13743
|
import { Command as Command119 } from "commander";
|
|
13709
13744
|
async function loadAndPriceRecords(cwd, includeClaudeSessions = false) {
|
|
13710
|
-
const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-
|
|
13745
|
+
const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-3HW4LCHE.js");
|
|
13711
13746
|
const records = readCostRecords(cwd);
|
|
13712
13747
|
if (includeClaudeSessions) {
|
|
13713
13748
|
const ccRecords = parseCCRecords();
|
|
@@ -13800,7 +13835,7 @@ function registerDailyCommand(usage) {
|
|
|
13800
13835
|
else logger.info("No usage data found. Run some harness sessions first.");
|
|
13801
13836
|
return;
|
|
13802
13837
|
}
|
|
13803
|
-
const { aggregateByDay } = await import("./dist-
|
|
13838
|
+
const { aggregateByDay } = await import("./dist-3HW4LCHE.js");
|
|
13804
13839
|
const limited = aggregateByDay(records).slice(0, days);
|
|
13805
13840
|
if (globalOpts.json) {
|
|
13806
13841
|
console.log(
|
|
@@ -13829,7 +13864,7 @@ function registerSessionsCommand(usage) {
|
|
|
13829
13864
|
}
|
|
13830
13865
|
return;
|
|
13831
13866
|
}
|
|
13832
|
-
const { aggregateBySession } = await import("./dist-
|
|
13867
|
+
const { aggregateBySession } = await import("./dist-3HW4LCHE.js");
|
|
13833
13868
|
const sessionData = aggregateBySession(records);
|
|
13834
13869
|
const limited = sessionData.slice(0, limit);
|
|
13835
13870
|
if (globalOpts.json) {
|
|
@@ -13909,7 +13944,7 @@ function registerSessionCommand(usage) {
|
|
|
13909
13944
|
cwd,
|
|
13910
13945
|
globalOpts.includeClaudeSessions
|
|
13911
13946
|
);
|
|
13912
|
-
const { aggregateBySession } = await import("./dist-
|
|
13947
|
+
const { aggregateBySession } = await import("./dist-3HW4LCHE.js");
|
|
13913
13948
|
const sessionData = aggregateBySession(records);
|
|
13914
13949
|
const match = sessionData.find((s) => s.sessionId === id);
|
|
13915
13950
|
if (!match) {
|
|
@@ -13944,7 +13979,7 @@ function registerLatestCommand(usage) {
|
|
|
13944
13979
|
}
|
|
13945
13980
|
return;
|
|
13946
13981
|
}
|
|
13947
|
-
const { aggregateBySession } = await import("./dist-
|
|
13982
|
+
const { aggregateBySession } = await import("./dist-3HW4LCHE.js");
|
|
13948
13983
|
const sessionData = aggregateBySession(records);
|
|
13949
13984
|
const latest = sessionData[0];
|
|
13950
13985
|
if (!latest) {
|
|
@@ -14245,7 +14280,7 @@ function resolveValidateMode(globalOpts) {
|
|
|
14245
14280
|
return OutputMode.TEXT;
|
|
14246
14281
|
}
|
|
14247
14282
|
async function printCrossCheckWarnings(mode) {
|
|
14248
|
-
const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-
|
|
14283
|
+
const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-4ITA72DF.js");
|
|
14249
14284
|
const cwd = process.cwd();
|
|
14250
14285
|
const crossResult = await runCrossCheck2({
|
|
14251
14286
|
specsDir: path72.join(cwd, "docs", "specs"),
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
findConfigFile,
|
|
9
9
|
loadConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YQAFKOOL.js";
|
|
11
11
|
import {
|
|
12
12
|
init_dist
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-A65QO5KN.js";
|
|
14
14
|
import {
|
|
15
15
|
Ok
|
|
16
16
|
} from "./chunk-BDGTZRZ6.js";
|
|
@@ -50,12 +50,12 @@ async function handleCheckDocs(input) {
|
|
|
50
50
|
const projectPath = sanitizePath(input.path);
|
|
51
51
|
const scope = input.scope ?? "coverage";
|
|
52
52
|
if (scope === "integrity") {
|
|
53
|
-
const { validateKnowledgeMap } = await import("./dist-
|
|
53
|
+
const { validateKnowledgeMap } = await import("./dist-3HW4LCHE.js");
|
|
54
54
|
const result2 = await validateKnowledgeMap(projectPath);
|
|
55
55
|
return resultToMcpResponse(result2);
|
|
56
56
|
}
|
|
57
57
|
if (scope === "all") {
|
|
58
|
-
const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-
|
|
58
|
+
const { checkDocCoverage: checkDocCoverage2, validateKnowledgeMap } = await import("./dist-3HW4LCHE.js");
|
|
59
59
|
const domain2 = input.domain ?? "src";
|
|
60
60
|
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-HHXN5FLP.js");
|
|
61
61
|
const store2 = await loadGraphStore2(projectPath);
|
|
@@ -94,7 +94,7 @@ async function handleCheckDocs(input) {
|
|
|
94
94
|
}
|
|
95
95
|
return resultToMcpResponse(Ok({ coverage, integrity }));
|
|
96
96
|
}
|
|
97
|
-
const { checkDocCoverage } = await import("./dist-
|
|
97
|
+
const { checkDocCoverage } = await import("./dist-3HW4LCHE.js");
|
|
98
98
|
const domain = input.domain ?? "src";
|
|
99
99
|
const { loadGraphStore } = await import("./graph-loader-HHXN5FLP.js");
|
|
100
100
|
const store = await loadGraphStore(projectPath);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YQAFKOOL.js";
|
|
4
4
|
import {
|
|
5
5
|
logger
|
|
6
6
|
} from "./chunk-EBJQ6N4M.js";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-3WGJMBKH.js";
|
|
10
10
|
import {
|
|
11
11
|
init_dist
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-A65QO5KN.js";
|
|
13
13
|
import {
|
|
14
14
|
Ok
|
|
15
15
|
} from "./chunk-BDGTZRZ6.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveProjectConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XZ2Q4UTW.js";
|
|
4
4
|
import {
|
|
5
5
|
resultToMcpResponse
|
|
6
6
|
} from "./chunk-RC3OI5NK.js";
|
|
@@ -38,7 +38,7 @@ async function handleCheckDependencies(input) {
|
|
|
38
38
|
const configResult = resolveProjectConfig(projectPath);
|
|
39
39
|
if (!configResult.ok) return resultToMcpResponse(configResult);
|
|
40
40
|
try {
|
|
41
|
-
const { validateDependencies, TypeScriptParser } = await import("./dist-
|
|
41
|
+
const { validateDependencies, TypeScriptParser } = await import("./dist-3HW4LCHE.js");
|
|
42
42
|
const config = configResult.value;
|
|
43
43
|
const rawLayers = Array.isArray(config.layers) ? config.layers : [];
|
|
44
44
|
const layers = rawLayers.map((l) => ({
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-W6Y7ZW3Y.js";
|
|
7
7
|
import {
|
|
8
8
|
init_dist
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-A65QO5KN.js";
|
|
10
10
|
import {
|
|
11
11
|
Ok
|
|
12
12
|
} from "./chunk-BDGTZRZ6.js";
|
|
@@ -127,7 +127,7 @@ function buildSummaryResponse(report) {
|
|
|
127
127
|
}
|
|
128
128
|
async function handleDetectEntropy(input) {
|
|
129
129
|
try {
|
|
130
|
-
const { EntropyAnalyzer } = await import("./dist-
|
|
130
|
+
const { EntropyAnalyzer } = await import("./dist-3HW4LCHE.js");
|
|
131
131
|
const typeFilter = input.type ?? "all";
|
|
132
132
|
const analyzer = new EntropyAnalyzer({
|
|
133
133
|
rootDir: sanitizePath(input.path),
|
|
@@ -146,7 +146,7 @@ async function handleDetectEntropy(input) {
|
|
|
146
146
|
return resultToMcpResponse(result);
|
|
147
147
|
}
|
|
148
148
|
if (!result.ok) return resultToMcpResponse(result);
|
|
149
|
-
const { createFixes, applyFixes, generateSuggestions } = await import("./dist-
|
|
149
|
+
const { createFixes, applyFixes, generateSuggestions } = await import("./dist-3HW4LCHE.js");
|
|
150
150
|
const report = result.value;
|
|
151
151
|
const deadCode = report.deadCode;
|
|
152
152
|
const fixTypesConfig = input.fixTypes ? { fixTypes: input.fixTypes } : void 0;
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
findConfigFile,
|
|
9
9
|
loadConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YQAFKOOL.js";
|
|
11
11
|
import {
|
|
12
12
|
init_dist
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-A65QO5KN.js";
|
|
14
14
|
import {
|
|
15
15
|
Ok
|
|
16
16
|
} from "./chunk-BDGTZRZ6.js";
|
|
@@ -35,7 +35,7 @@ var checkPerformanceDefinition = {
|
|
|
35
35
|
};
|
|
36
36
|
async function handleCheckPerformance(input) {
|
|
37
37
|
try {
|
|
38
|
-
const { EntropyAnalyzer } = await import("./dist-
|
|
38
|
+
const { EntropyAnalyzer } = await import("./dist-3HW4LCHE.js");
|
|
39
39
|
const typeFilter = input.type ?? "all";
|
|
40
40
|
const projectPath = sanitizePath(input.path);
|
|
41
41
|
let entryPoints;
|
|
@@ -98,7 +98,7 @@ var getPerfBaselinesDefinition = {
|
|
|
98
98
|
};
|
|
99
99
|
async function handleGetPerfBaselines(input) {
|
|
100
100
|
try {
|
|
101
|
-
const { BaselineManager } = await import("./dist-
|
|
101
|
+
const { BaselineManager } = await import("./dist-3HW4LCHE.js");
|
|
102
102
|
const manager = new BaselineManager(sanitizePath(input.path));
|
|
103
103
|
const baselines = manager.load();
|
|
104
104
|
return resultToMcpResponse(
|
|
@@ -146,7 +146,7 @@ var updatePerfBaselinesDefinition = {
|
|
|
146
146
|
};
|
|
147
147
|
async function handleUpdatePerfBaselines(input) {
|
|
148
148
|
try {
|
|
149
|
-
const { BaselineManager } = await import("./dist-
|
|
149
|
+
const { BaselineManager } = await import("./dist-3HW4LCHE.js");
|
|
150
150
|
const manager = new BaselineManager(sanitizePath(input.path));
|
|
151
151
|
manager.save(input.results, input.commitHash);
|
|
152
152
|
const updated = manager.load();
|
|
@@ -176,7 +176,7 @@ var getCriticalPathsDefinition = {
|
|
|
176
176
|
};
|
|
177
177
|
async function handleGetCriticalPaths(input) {
|
|
178
178
|
try {
|
|
179
|
-
const { CriticalPathResolver } = await import("./dist-
|
|
179
|
+
const { CriticalPathResolver } = await import("./dist-3HW4LCHE.js");
|
|
180
180
|
const resolver = new CriticalPathResolver(sanitizePath(input.path));
|
|
181
181
|
const result = await resolver.resolve();
|
|
182
182
|
return resultToMcpResponse(Ok(result));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveProjectConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XZ2Q4UTW.js";
|
|
4
4
|
import {
|
|
5
5
|
sanitizePath
|
|
6
6
|
} from "./chunk-W6Y7ZW3Y.js";
|
|
@@ -49,7 +49,7 @@ async function handleValidateProject(input) {
|
|
|
49
49
|
checks.config = "pass";
|
|
50
50
|
const config = configResult.value;
|
|
51
51
|
try {
|
|
52
|
-
const core = await import("./dist-
|
|
52
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
53
53
|
if (typeof core.validateFileStructure === "function" && Array.isArray(config.conventions)) {
|
|
54
54
|
const conventions = config.conventions;
|
|
55
55
|
const structureResult = await core.validateFileStructure(projectPath, conventions);
|
|
@@ -68,7 +68,7 @@ async function handleValidateProject(input) {
|
|
|
68
68
|
} catch {
|
|
69
69
|
}
|
|
70
70
|
try {
|
|
71
|
-
const core = await import("./dist-
|
|
71
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
72
72
|
if (typeof core.validateAgentsMap === "function") {
|
|
73
73
|
const agentsMapPath = path.join(projectPath, "AGENTS.md");
|
|
74
74
|
const agentsResult = await core.validateAgentsMap(agentsMapPath);
|
|
@@ -75,7 +75,7 @@ async function handleAssessProject(input) {
|
|
|
75
75
|
let validateResult = null;
|
|
76
76
|
if (checksToRun.has("validate")) {
|
|
77
77
|
try {
|
|
78
|
-
const { handleValidateProject } = await import("./validate-
|
|
78
|
+
const { handleValidateProject } = await import("./validate-G3LKBOYA.js");
|
|
79
79
|
const result = await handleValidateProject({ path: projectPath });
|
|
80
80
|
const out = parseToolResponse(result, "validate");
|
|
81
81
|
if ("error" in out) {
|
|
@@ -104,7 +104,7 @@ async function handleAssessProject(input) {
|
|
|
104
104
|
parallelChecks.push(
|
|
105
105
|
(async () => {
|
|
106
106
|
try {
|
|
107
|
-
const { handleCheckDependencies } = await import("./architecture-
|
|
107
|
+
const { handleCheckDependencies } = await import("./architecture-5KPP4ID4.js");
|
|
108
108
|
const result = await handleCheckDependencies({ path: projectPath });
|
|
109
109
|
const out = parseToolResponse(result, "deps");
|
|
110
110
|
if ("error" in out) return out.error;
|
|
@@ -132,7 +132,7 @@ async function handleAssessProject(input) {
|
|
|
132
132
|
parallelChecks.push(
|
|
133
133
|
(async () => {
|
|
134
134
|
try {
|
|
135
|
-
const { handleCheckDocs } = await import("./docs-
|
|
135
|
+
const { handleCheckDocs } = await import("./docs-YRMW7UED.js");
|
|
136
136
|
const result = await handleCheckDocs({ path: projectPath, scope: "coverage" });
|
|
137
137
|
const out = parseToolResponse(result, "docs");
|
|
138
138
|
if ("error" in out) return out.error;
|
|
@@ -160,7 +160,7 @@ async function handleAssessProject(input) {
|
|
|
160
160
|
parallelChecks.push(
|
|
161
161
|
(async () => {
|
|
162
162
|
try {
|
|
163
|
-
const { handleDetectEntropy } = await import("./entropy-
|
|
163
|
+
const { handleDetectEntropy } = await import("./entropy-3JBKCGJJ.js");
|
|
164
164
|
const result = await handleDetectEntropy({ path: projectPath, type: "all" });
|
|
165
165
|
const out = parseToolResponse(result, "entropy");
|
|
166
166
|
if ("error" in out) return out.error;
|
|
@@ -191,7 +191,7 @@ async function handleAssessProject(input) {
|
|
|
191
191
|
parallelChecks.push(
|
|
192
192
|
(async () => {
|
|
193
193
|
try {
|
|
194
|
-
const { handleRunSecurityScan } = await import("./security-
|
|
194
|
+
const { handleRunSecurityScan } = await import("./security-JDHTRBGC.js");
|
|
195
195
|
const result = await handleRunSecurityScan({ path: projectPath });
|
|
196
196
|
const out = parseToolResponse(result, "security");
|
|
197
197
|
if ("error" in out) return out.error;
|
|
@@ -224,7 +224,7 @@ async function handleAssessProject(input) {
|
|
|
224
224
|
parallelChecks.push(
|
|
225
225
|
(async () => {
|
|
226
226
|
try {
|
|
227
|
-
const { handleCheckPerformance } = await import("./performance-
|
|
227
|
+
const { handleCheckPerformance } = await import("./performance-FPWKC4CN.js");
|
|
228
228
|
const result = await handleCheckPerformance({ path: projectPath });
|
|
229
229
|
if ("isError" in result && result.isError) {
|
|
230
230
|
const msg = result.content[0]?.text ?? "Performance check failed";
|