@harness-engineering/cli 2.3.0 → 2.3.1
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-md-N7YBQPE3.js → agents-md-5JG3AE5A.js} +3 -3
- package/dist/{architecture-PP7WERSV.js → architecture-544ISXDI.js} +4 -4
- package/dist/{assess-project-WXFCJQTX.js → assess-project-PBO6XFJC.js} +1 -1
- package/dist/bin/harness-mcp.js +15 -15
- package/dist/bin/harness.js +25 -25
- package/dist/{check-phase-gate-R3KQFBAH.js → check-phase-gate-BZU4DGF3.js} +4 -4
- package/dist/{chunk-MT2MMBUA.js → chunk-22OKI5QI.js} +9 -9
- package/dist/{chunk-6CHNY3NJ.js → chunk-2564TBT6.js} +1 -1
- package/dist/{chunk-YG4ZBGEH.js → chunk-7BNK4M23.js} +1 -1
- package/dist/{chunk-3LPOTTPX.js → chunk-A36MGB3V.js} +92 -92
- package/dist/{chunk-PW3U4YJV.js → chunk-DBJC4ULT.js} +9 -4
- package/dist/{chunk-MKPRB4PL.js → chunk-DHWFOHPX.js} +1 -1
- package/dist/{chunk-4NFV5UZO.js → chunk-EMJFHTPZ.js} +3 -3
- package/dist/{chunk-DLBMYLYR.js → chunk-IYA3NS5P.js} +1 -1
- package/dist/{chunk-LM4F5KBK.js → chunk-J4MX5DIA.js} +5 -5
- package/dist/{chunk-5KTTKXQN.js → chunk-JMACX5FN.js} +1 -1
- package/dist/{chunk-KWD6FF7M.js → chunk-KJR4Z2YC.js} +8 -8
- package/dist/{chunk-L3CEN42B.js → chunk-KT5PWWWO.js} +1 -1
- package/dist/{chunk-GUIX2TMZ.js → chunk-LBYGGNEZ.js} +1 -1
- package/dist/{chunk-YEBUFRTT.js → chunk-LYMPKO6N.js} +2 -2
- package/dist/{chunk-35FI23SO.js → chunk-N6DVSOLZ.js} +118 -112
- package/dist/{chunk-7PGYJO3L.js → chunk-QZ67TDLJ.js} +3 -3
- package/dist/{chunk-GTXUUGFG.js → chunk-R6GLLMRZ.js} +9 -9
- package/dist/{chunk-NP2ZI6E3.js → chunk-T2ZMHXCX.js} +1 -1
- package/dist/{chunk-EJPR5VCT.js → chunk-TIJXG4UB.js} +6 -6
- package/dist/{chunk-KTWKW6KJ.js → chunk-TIQU5VY7.js} +1 -1
- package/dist/{chunk-D2LZUJLP.js → chunk-U2SF3KAQ.js} +2 -2
- package/dist/{chunk-KUVPSUG4.js → chunk-WMZKZCCE.js} +1 -1
- package/dist/{chunk-BMM3GXV6.js → chunk-XPRGWHBL.js} +80 -37
- package/dist/{chunk-5PPV4WYY.js → chunk-YI6NTL72.js} +5 -5
- package/dist/{chunk-4DWOMGUM.js → chunk-YNG7BWGB.js} +396 -79
- package/dist/{ci-workflow-GFCXFJ4G.js → ci-workflow-ZO6FPO3V.js} +3 -3
- package/dist/{dist-D27LJR2T.js → dist-SQAOKWXM.js} +5 -3
- package/dist/{dist-I4LWG3IN.js → dist-ZS3Y3YWP.js} +8 -2
- package/dist/{docs-UXKDKPJF.js → docs-VW2KDPI3.js} +4 -4
- package/dist/{engine-A63FRDLF.js → engine-LFQ2JSHY.js} +3 -3
- package/dist/{entropy-IFIP4ZP4.js → entropy-P62LCVJI.js} +3 -3
- package/dist/{feedback-W36DSJQA.js → feedback-O3TZAPGX.js} +1 -1
- package/dist/{generate-agent-definitions-F4YMKQLP.js → generate-agent-definitions-WVCOZDKI.js} +4 -4
- package/dist/{glob-helper-FZPPTGJN.js → glob-helper-JE3MO4UD.js} +1 -1
- package/dist/{graph-loader-5MKHAJJF.js → graph-loader-TJU4E7KL.js} +1 -1
- package/dist/index.js +25 -25
- package/dist/{loader-4UAOGUSS.js → loader-UB2A65DN.js} +3 -3
- package/dist/{mcp-YW7PLXVQ.js → mcp-ST26QMDK.js} +15 -15
- package/dist/{performance-AZ5UYPOQ.js → performance-5HQG3IU6.js} +4 -4
- package/dist/{review-pipeline-OLQVGBWJ.js → review-pipeline-VRDL5A7J.js} +3 -3
- package/dist/{runtime-GG3U5HH5.js → runtime-TQQT2MWQ.js} +3 -3
- package/dist/{scan-BIJYHOE7.js → scan-SFX5U3TE.js} +1 -1
- package/dist/{security-MYTRFSR7.js → security-IMFAE6MW.js} +1 -1
- package/dist/{validate-QI4V4JY6.js → validate-GW2DG64P.js} +4 -4
- package/dist/{validate-cross-check-XRSSAXJP.js → validate-cross-check-F5YQVXLT.js} +3 -3
- package/package.json +6 -6
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateRuntime
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WMZKZCCE.js";
|
|
4
4
|
import {
|
|
5
5
|
generateAgentsMd
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IYA3NS5P.js";
|
|
7
7
|
import {
|
|
8
8
|
generateCIWorkflow
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DHWFOHPX.js";
|
|
10
10
|
import {
|
|
11
11
|
TemplateEngine
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JMACX5FN.js";
|
|
13
13
|
import {
|
|
14
14
|
generate,
|
|
15
15
|
validate
|
|
@@ -28,22 +28,22 @@ import {
|
|
|
28
28
|
OutputMode,
|
|
29
29
|
createCheckPhaseGateCommand,
|
|
30
30
|
findFiles
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-U2SF3KAQ.js";
|
|
32
32
|
import {
|
|
33
33
|
createGenerateAgentDefinitionsCommand,
|
|
34
34
|
generateAgentDefinitions
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-LBYGGNEZ.js";
|
|
36
36
|
import {
|
|
37
37
|
toKebabCase
|
|
38
38
|
} from "./chunk-KET4QQZB.js";
|
|
39
39
|
import {
|
|
40
40
|
listPersonas,
|
|
41
41
|
loadPersona
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-KT5PWWWO.js";
|
|
43
43
|
import {
|
|
44
44
|
createScanCommand,
|
|
45
45
|
loadIngestOptions
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-7BNK4M23.js";
|
|
47
47
|
import {
|
|
48
48
|
appendFrameworkAgents,
|
|
49
49
|
captureHealthSnapshot,
|
|
@@ -57,17 +57,17 @@ import {
|
|
|
57
57
|
loadCachedSnapshot,
|
|
58
58
|
persistToolingConfig,
|
|
59
59
|
recommend
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-A36MGB3V.js";
|
|
61
61
|
import {
|
|
62
62
|
loadGraphStore
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-TIQU5VY7.js";
|
|
64
64
|
import {
|
|
65
65
|
loadOrRebuildIndex
|
|
66
66
|
} from "./chunk-27AJKSQY.js";
|
|
67
67
|
import {
|
|
68
68
|
findConfigFile,
|
|
69
69
|
resolveConfig
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-DBJC4ULT.js";
|
|
71
71
|
import {
|
|
72
72
|
VALID_PLATFORMS
|
|
73
73
|
} from "./chunk-3ISINLYT.js";
|
|
@@ -130,7 +130,7 @@ import {
|
|
|
130
130
|
generateSuggestions,
|
|
131
131
|
getOrCreateInstallId,
|
|
132
132
|
gitScan,
|
|
133
|
-
init_dist,
|
|
133
|
+
init_dist as init_dist2,
|
|
134
134
|
isoWeek,
|
|
135
135
|
listStreams,
|
|
136
136
|
listTaintedSessions,
|
|
@@ -170,11 +170,15 @@ import {
|
|
|
170
170
|
validateSolutionsDir,
|
|
171
171
|
writeConfig,
|
|
172
172
|
writeLockfile
|
|
173
|
-
} from "./chunk-
|
|
173
|
+
} from "./chunk-YNG7BWGB.js";
|
|
174
174
|
import {
|
|
175
175
|
Err,
|
|
176
176
|
Ok
|
|
177
177
|
} from "./chunk-RL4VMEXL.js";
|
|
178
|
+
import {
|
|
179
|
+
DEFAULT_SKIP_DIRS,
|
|
180
|
+
init_dist
|
|
181
|
+
} from "./chunk-XPRGWHBL.js";
|
|
178
182
|
import {
|
|
179
183
|
createCreateSkillCommand
|
|
180
184
|
} from "./chunk-ZP5E7YET.js";
|
|
@@ -198,7 +202,7 @@ import {
|
|
|
198
202
|
import { Command as Command93 } from "commander";
|
|
199
203
|
|
|
200
204
|
// src/commands/add.ts
|
|
201
|
-
|
|
205
|
+
init_dist2();
|
|
202
206
|
import { Command } from "commander";
|
|
203
207
|
import * as fs from "fs";
|
|
204
208
|
import * as path from "path";
|
|
@@ -384,7 +388,7 @@ function registerSkillsCommand(adoption) {
|
|
|
384
388
|
const globalOpts = cmd.optsWithGlobals();
|
|
385
389
|
const limit = Math.max(parseInt(opts.limit, 10) || 20, 1);
|
|
386
390
|
const cwd = process.cwd();
|
|
387
|
-
const { readAdoptionRecords, aggregateBySkill } = await import("./dist-
|
|
391
|
+
const { readAdoptionRecords, aggregateBySkill } = await import("./dist-ZS3Y3YWP.js");
|
|
388
392
|
const records = readAdoptionRecords(cwd);
|
|
389
393
|
if (records.length === 0) {
|
|
390
394
|
if (globalOpts.json) {
|
|
@@ -420,7 +424,7 @@ function registerRecentCommand(adoption) {
|
|
|
420
424
|
const globalOpts = cmd.optsWithGlobals();
|
|
421
425
|
const limit = Math.max(parseInt(opts.limit, 10) || 20, 1);
|
|
422
426
|
const cwd = process.cwd();
|
|
423
|
-
const { readAdoptionRecords } = await import("./dist-
|
|
427
|
+
const { readAdoptionRecords } = await import("./dist-ZS3Y3YWP.js");
|
|
424
428
|
const records = readAdoptionRecords(cwd);
|
|
425
429
|
if (records.length === 0) {
|
|
426
430
|
if (globalOpts.json) {
|
|
@@ -498,7 +502,7 @@ function registerSkillCommand(adoption) {
|
|
|
498
502
|
adoption.command("skill <name>").description("Show detail for a specific skill").action(async (name, _opts, cmd) => {
|
|
499
503
|
const globalOpts = cmd.optsWithGlobals();
|
|
500
504
|
const cwd = process.cwd();
|
|
501
|
-
const { readAdoptionRecords, aggregateBySkill } = await import("./dist-
|
|
505
|
+
const { readAdoptionRecords, aggregateBySkill } = await import("./dist-ZS3Y3YWP.js");
|
|
502
506
|
const records = readAdoptionRecords(cwd);
|
|
503
507
|
const skillRecords = records.filter((r) => r.skill === name);
|
|
504
508
|
if (skillRecords.length === 0) {
|
|
@@ -529,8 +533,8 @@ function createAdoptionCommand() {
|
|
|
529
533
|
import { Command as Command5 } from "commander";
|
|
530
534
|
|
|
531
535
|
// src/commands/agent/run.ts
|
|
532
|
-
|
|
533
|
-
|
|
536
|
+
init_dist2();
|
|
537
|
+
init_dist2();
|
|
534
538
|
import { Command as Command3 } from "commander";
|
|
535
539
|
import * as path2 from "path";
|
|
536
540
|
import * as childProcess from "child_process";
|
|
@@ -652,7 +656,7 @@ function createRunCommand() {
|
|
|
652
656
|
}
|
|
653
657
|
|
|
654
658
|
// src/commands/agent/review.ts
|
|
655
|
-
|
|
659
|
+
init_dist2();
|
|
656
660
|
import { Command as Command4 } from "commander";
|
|
657
661
|
import { execSync } from "child_process";
|
|
658
662
|
async function runAgentReview(options) {
|
|
@@ -789,7 +793,7 @@ function createAgentCommand() {
|
|
|
789
793
|
}
|
|
790
794
|
|
|
791
795
|
// src/commands/audit-protected.ts
|
|
792
|
-
|
|
796
|
+
init_dist2();
|
|
793
797
|
import { Command as Command6 } from "commander";
|
|
794
798
|
import * as path3 from "path";
|
|
795
799
|
import * as fs2 from "fs";
|
|
@@ -897,7 +901,7 @@ function createAuditProtectedCommand() {
|
|
|
897
901
|
}
|
|
898
902
|
|
|
899
903
|
// src/commands/blueprint.ts
|
|
900
|
-
|
|
904
|
+
init_dist2();
|
|
901
905
|
import { Command as Command7 } from "commander";
|
|
902
906
|
import * as path4 from "path";
|
|
903
907
|
function createBlueprintCommand() {
|
|
@@ -922,7 +926,7 @@ function createBlueprintCommand() {
|
|
|
922
926
|
}
|
|
923
927
|
|
|
924
928
|
// src/commands/check-arch.ts
|
|
925
|
-
|
|
929
|
+
init_dist2();
|
|
926
930
|
import { Command as Command8 } from "commander";
|
|
927
931
|
import { execSync as execSync2 } from "child_process";
|
|
928
932
|
function getCommitHash(cwd) {
|
|
@@ -1082,8 +1086,8 @@ function createCheckArchCommand() {
|
|
|
1082
1086
|
}
|
|
1083
1087
|
|
|
1084
1088
|
// src/commands/check-deps.ts
|
|
1085
|
-
|
|
1086
|
-
|
|
1089
|
+
init_dist2();
|
|
1090
|
+
init_dist2();
|
|
1087
1091
|
import { Command as Command9 } from "commander";
|
|
1088
1092
|
import * as path5 from "path";
|
|
1089
1093
|
async function runCheckDeps(options) {
|
|
@@ -1183,8 +1187,8 @@ function createCheckDepsCommand() {
|
|
|
1183
1187
|
}
|
|
1184
1188
|
|
|
1185
1189
|
// src/commands/check-docs.ts
|
|
1186
|
-
|
|
1187
|
-
|
|
1190
|
+
init_dist2();
|
|
1191
|
+
init_dist2();
|
|
1188
1192
|
import { Command as Command10 } from "commander";
|
|
1189
1193
|
import * as path6 from "path";
|
|
1190
1194
|
async function runCheckDocs(options) {
|
|
@@ -1293,7 +1297,7 @@ function createCheckDocsCommand() {
|
|
|
1293
1297
|
}
|
|
1294
1298
|
|
|
1295
1299
|
// src/commands/check-perf.ts
|
|
1296
|
-
|
|
1300
|
+
init_dist2();
|
|
1297
1301
|
import { Command as Command11 } from "commander";
|
|
1298
1302
|
import * as path7 from "path";
|
|
1299
1303
|
async function runCheckPerf(cwd, options) {
|
|
@@ -1418,7 +1422,7 @@ function createCheckPerfCommand() {
|
|
|
1418
1422
|
}
|
|
1419
1423
|
|
|
1420
1424
|
// src/commands/check-security.ts
|
|
1421
|
-
|
|
1425
|
+
init_dist2();
|
|
1422
1426
|
import { Command as Command12 } from "commander";
|
|
1423
1427
|
import * as path8 from "path";
|
|
1424
1428
|
import { execSync as execSync3 } from "child_process";
|
|
@@ -1540,7 +1544,7 @@ function createCheckSecurityCommand() {
|
|
|
1540
1544
|
import { Command as Command16 } from "commander";
|
|
1541
1545
|
|
|
1542
1546
|
// src/commands/ci/check.ts
|
|
1543
|
-
|
|
1547
|
+
init_dist2();
|
|
1544
1548
|
import { Command as Command13 } from "commander";
|
|
1545
1549
|
var VALID_CHECKS = [
|
|
1546
1550
|
"validate",
|
|
@@ -1637,7 +1641,7 @@ function createCheckCommand() {
|
|
|
1637
1641
|
}
|
|
1638
1642
|
|
|
1639
1643
|
// src/commands/ci/init.ts
|
|
1640
|
-
|
|
1644
|
+
init_dist2();
|
|
1641
1645
|
import { Command as Command14 } from "commander";
|
|
1642
1646
|
import * as fs3 from "fs";
|
|
1643
1647
|
import * as path9 from "path";
|
|
@@ -1781,7 +1785,7 @@ function createInitCommand() {
|
|
|
1781
1785
|
}
|
|
1782
1786
|
|
|
1783
1787
|
// src/commands/ci/notify.ts
|
|
1784
|
-
|
|
1788
|
+
init_dist2();
|
|
1785
1789
|
import { Command as Command15 } from "commander";
|
|
1786
1790
|
import * as fs4 from "fs";
|
|
1787
1791
|
function loadReport(reportPath) {
|
|
@@ -1894,7 +1898,7 @@ function createCICommand() {
|
|
|
1894
1898
|
}
|
|
1895
1899
|
|
|
1896
1900
|
// src/commands/cleanup.ts
|
|
1897
|
-
|
|
1901
|
+
init_dist2();
|
|
1898
1902
|
import { Command as Command17 } from "commander";
|
|
1899
1903
|
import * as path10 from "path";
|
|
1900
1904
|
async function runCleanup(options) {
|
|
@@ -1916,7 +1920,7 @@ async function runCleanup(options) {
|
|
|
1916
1920
|
const entropyConfig = {
|
|
1917
1921
|
rootDir,
|
|
1918
1922
|
...config.entropy?.entryPoints && { entryPoints: config.entropy.entryPoints },
|
|
1919
|
-
docPaths: [docsDir],
|
|
1923
|
+
docPaths: [path10.join(docsDir, "**/*.md")],
|
|
1920
1924
|
analyze: {
|
|
1921
1925
|
drift: type === "all" || type === "drift",
|
|
1922
1926
|
deadCode: type === "all" || type === "dead-code",
|
|
@@ -2014,7 +2018,7 @@ function createCleanupCommand() {
|
|
|
2014
2018
|
}
|
|
2015
2019
|
|
|
2016
2020
|
// src/commands/cleanup-sessions.ts
|
|
2017
|
-
|
|
2021
|
+
init_dist2();
|
|
2018
2022
|
import { Command as Command18 } from "commander";
|
|
2019
2023
|
import * as fs5 from "fs";
|
|
2020
2024
|
import * as path11 from "path";
|
|
@@ -2123,9 +2127,9 @@ function createCleanupSessionsCommand() {
|
|
|
2123
2127
|
import { Command as Command20 } from "commander";
|
|
2124
2128
|
|
|
2125
2129
|
// src/commands/compound/scan-candidates.ts
|
|
2126
|
-
|
|
2130
|
+
init_dist2();
|
|
2127
2131
|
import { mkdirSync as mkdirSync3, writeFileSync as writeFileSync3 } from "fs";
|
|
2128
|
-
import { dirname as dirname2, join as
|
|
2132
|
+
import { dirname as dirname2, join as join7, resolve as resolve11 } from "path";
|
|
2129
2133
|
import { Command as Command19 } from "commander";
|
|
2130
2134
|
var HOTSPOT_THRESHOLD = 7;
|
|
2131
2135
|
var DEFAULT_LOOKBACK = "7d";
|
|
@@ -2152,7 +2156,7 @@ async function runCompoundScanCandidatesCommand(opts) {
|
|
|
2152
2156
|
isoWeek: week,
|
|
2153
2157
|
lookback
|
|
2154
2158
|
});
|
|
2155
|
-
const outputPath = opts.outputPath ??
|
|
2159
|
+
const outputPath = opts.outputPath ?? join7(cwd, "docs/solutions/.candidates", `${formatIsoWeek(week)}.md`);
|
|
2156
2160
|
mkdirSync3(dirname2(outputPath), { recursive: true });
|
|
2157
2161
|
writeFileSync3(outputPath, report);
|
|
2158
2162
|
const candidatesFound = undocumented.length + hotspots.length;
|
|
@@ -2216,7 +2220,7 @@ import { Command as Command21 } from "commander";
|
|
|
2216
2220
|
import { spawn } from "child_process";
|
|
2217
2221
|
import { existsSync as existsSync4 } from "fs";
|
|
2218
2222
|
import { createRequire } from "module";
|
|
2219
|
-
import { dirname as dirname3, join as
|
|
2223
|
+
import { dirname as dirname3, join as join8, resolve as resolve12 } from "path";
|
|
2220
2224
|
import { setTimeout } from "timers";
|
|
2221
2225
|
import { fileURLToPath } from "url";
|
|
2222
2226
|
var __filename = fileURLToPath(import.meta.url);
|
|
@@ -2232,20 +2236,20 @@ function resolveServerScript() {
|
|
|
2232
2236
|
try {
|
|
2233
2237
|
const pkgPath = require2.resolve("@harness-engineering/dashboard/package.json");
|
|
2234
2238
|
const pkgDir = dirname3(pkgPath);
|
|
2235
|
-
const built2 =
|
|
2239
|
+
const built2 = join8(pkgDir, "dist", "server", "serve.js");
|
|
2236
2240
|
if (existsSync4(built2)) return { script: built2, dev: false };
|
|
2237
|
-
const dev2 =
|
|
2241
|
+
const dev2 = join8(pkgDir, "src", "server", "serve.ts");
|
|
2238
2242
|
if (existsSync4(dev2)) return { script: dev2, dev: true };
|
|
2239
2243
|
} catch {
|
|
2240
2244
|
}
|
|
2241
2245
|
const built = [
|
|
2242
|
-
|
|
2243
|
-
|
|
2246
|
+
join8(__dirname, "..", "..", "..", "dashboard", "dist", "server", "serve.js"),
|
|
2247
|
+
join8(__dirname, "..", "..", "..", "..", "packages", "dashboard", "dist", "server", "serve.js")
|
|
2244
2248
|
].find((p) => existsSync4(p));
|
|
2245
2249
|
if (built) return { script: built, dev: false };
|
|
2246
2250
|
const dev = [
|
|
2247
|
-
|
|
2248
|
-
|
|
2251
|
+
join8(__dirname, "..", "..", "..", "dashboard", "src", "server", "serve.ts"),
|
|
2252
|
+
join8(__dirname, "..", "..", "..", "..", "packages", "dashboard", "src", "server", "serve.ts")
|
|
2249
2253
|
].find((p) => existsSync4(p));
|
|
2250
2254
|
return dev ? { script: dev, dev: true } : null;
|
|
2251
2255
|
}
|
|
@@ -2659,7 +2663,7 @@ function createDoctorCommand() {
|
|
|
2659
2663
|
}
|
|
2660
2664
|
|
|
2661
2665
|
// src/commands/fix-drift.ts
|
|
2662
|
-
|
|
2666
|
+
init_dist2();
|
|
2663
2667
|
import { Command as Command23 } from "commander";
|
|
2664
2668
|
import * as path14 from "path";
|
|
2665
2669
|
async function runFixDrift(options) {
|
|
@@ -2675,7 +2679,7 @@ async function runFixDrift(options) {
|
|
|
2675
2679
|
const entropyConfig = {
|
|
2676
2680
|
rootDir,
|
|
2677
2681
|
...config.entropy?.entryPoints && { entryPoints: config.entropy.entryPoints },
|
|
2678
|
-
docPaths: [docsDir],
|
|
2682
|
+
docPaths: [path14.join(docsDir, "**/*.md")],
|
|
2679
2683
|
analyze: {
|
|
2680
2684
|
drift: true,
|
|
2681
2685
|
deadCode: true,
|
|
@@ -2907,7 +2911,7 @@ async function readConnectorSyncStatus(graphDir) {
|
|
|
2907
2911
|
return result;
|
|
2908
2912
|
}
|
|
2909
2913
|
async function runGraphStatus(projectPath) {
|
|
2910
|
-
const { GraphStore, loadGraphMetadata } = await import("./dist-
|
|
2914
|
+
const { GraphStore, loadGraphMetadata } = await import("./dist-SQAOKWXM.js");
|
|
2911
2915
|
const graphDir = path15.join(projectPath, ".harness", "graph");
|
|
2912
2916
|
const metaResult = await loadGraphMetadata(graphDir);
|
|
2913
2917
|
if (metaResult.status === "not_found") {
|
|
@@ -2959,7 +2963,7 @@ async function runGraphStatus(projectPath) {
|
|
|
2959
2963
|
// src/commands/graph/export.ts
|
|
2960
2964
|
import * as path16 from "path";
|
|
2961
2965
|
async function runGraphExport(projectPath, format) {
|
|
2962
|
-
const { GraphStore } = await import("./dist-
|
|
2966
|
+
const { GraphStore } = await import("./dist-SQAOKWXM.js");
|
|
2963
2967
|
const graphDir = path16.join(projectPath, ".harness", "graph");
|
|
2964
2968
|
const store = new GraphStore();
|
|
2965
2969
|
const loaded = await store.load(graphDir);
|
|
@@ -2995,7 +2999,7 @@ import * as path19 from "path";
|
|
|
2995
2999
|
import { Command as Command25 } from "commander";
|
|
2996
3000
|
import * as path17 from "path";
|
|
2997
3001
|
async function runQuery(projectPath, rootNodeId, opts) {
|
|
2998
|
-
const { GraphStore, ContextQL } = await import("./dist-
|
|
3002
|
+
const { GraphStore, ContextQL } = await import("./dist-SQAOKWXM.js");
|
|
2999
3003
|
const store = new GraphStore();
|
|
3000
3004
|
const graphDir = path17.join(projectPath, ".harness", "graph");
|
|
3001
3005
|
const loaded = await store.load(graphDir);
|
|
@@ -3092,7 +3096,7 @@ async function runIngest(projectPath, source, opts) {
|
|
|
3092
3096
|
ConfluenceConnector,
|
|
3093
3097
|
FigmaConnector,
|
|
3094
3098
|
MiroConnector
|
|
3095
|
-
} = await import("./dist-
|
|
3099
|
+
} = await import("./dist-SQAOKWXM.js");
|
|
3096
3100
|
const graphDir = path18.join(projectPath, ".harness", "graph");
|
|
3097
3101
|
const store = new GraphStore();
|
|
3098
3102
|
await store.load(graphDir);
|
|
@@ -3106,7 +3110,7 @@ async function runIngest(projectPath, source, opts) {
|
|
|
3106
3110
|
path18.join(projectPath, "docs", "changes")
|
|
3107
3111
|
);
|
|
3108
3112
|
const gitResult = await new GitIngestor(store).ingest(projectPath);
|
|
3109
|
-
const { createExtractionRunner } = await import("./dist-
|
|
3113
|
+
const { createExtractionRunner } = await import("./dist-SQAOKWXM.js");
|
|
3110
3114
|
const extractedDir = path18.join(projectPath, ".harness", "knowledge", "extracted");
|
|
3111
3115
|
const signalsResult = await createExtractionRunner().run(projectPath, store, extractedDir);
|
|
3112
3116
|
const syncManager = new SyncManager(store, graphDir);
|
|
@@ -3152,7 +3156,7 @@ async function runIngest(projectPath, source, opts) {
|
|
|
3152
3156
|
);
|
|
3153
3157
|
break;
|
|
3154
3158
|
case "business-signals": {
|
|
3155
|
-
const { createExtractionRunner } = await import("./dist-
|
|
3159
|
+
const { createExtractionRunner } = await import("./dist-SQAOKWXM.js");
|
|
3156
3160
|
const extractedDir = path18.join(projectPath, ".harness", "knowledge", "extracted");
|
|
3157
3161
|
result = await createExtractionRunner().run(projectPath, store, extractedDir);
|
|
3158
3162
|
break;
|
|
@@ -3846,7 +3850,7 @@ function createImpactPreviewCommand() {
|
|
|
3846
3850
|
}
|
|
3847
3851
|
|
|
3848
3852
|
// src/commands/init.ts
|
|
3849
|
-
|
|
3853
|
+
init_dist2();
|
|
3850
3854
|
import { Command as Command35 } from "commander";
|
|
3851
3855
|
import chalk3 from "chalk";
|
|
3852
3856
|
import * as fs15 from "fs";
|
|
@@ -4660,6 +4664,7 @@ function getBundledSkillNames(bundledSkillsDir) {
|
|
|
4660
4664
|
}
|
|
4661
4665
|
|
|
4662
4666
|
// src/commands/install.ts
|
|
4667
|
+
init_dist();
|
|
4663
4668
|
function validateSkillYaml(parsed) {
|
|
4664
4669
|
const result = SkillMetadataSchema.safeParse(parsed);
|
|
4665
4670
|
if (!result.success) {
|
|
@@ -4726,7 +4731,7 @@ function discoverSkillDirs(rootDir) {
|
|
|
4726
4731
|
const entries = fs20.readdirSync(dir, { withFileTypes: true });
|
|
4727
4732
|
for (const entry of entries) {
|
|
4728
4733
|
if (!entry.isDirectory()) continue;
|
|
4729
|
-
if (entry.name.startsWith(".") || entry.name
|
|
4734
|
+
if (entry.name.startsWith(".") || DEFAULT_SKIP_DIRS.has(entry.name)) continue;
|
|
4730
4735
|
scan(path32.join(dir, entry.name), depth + 1);
|
|
4731
4736
|
}
|
|
4732
4737
|
}
|
|
@@ -4945,7 +4950,7 @@ function createInstallCommand() {
|
|
|
4945
4950
|
}
|
|
4946
4951
|
|
|
4947
4952
|
// src/commands/install-constraints.ts
|
|
4948
|
-
|
|
4953
|
+
init_dist2();
|
|
4949
4954
|
import * as fs21 from "fs/promises";
|
|
4950
4955
|
import * as path33 from "path";
|
|
4951
4956
|
import { Command as Command37 } from "commander";
|
|
@@ -5211,7 +5216,7 @@ function createInstallConstraintsCommand() {
|
|
|
5211
5216
|
import { Command as Command42 } from "commander";
|
|
5212
5217
|
|
|
5213
5218
|
// src/commands/integrations/add.ts
|
|
5214
|
-
|
|
5219
|
+
init_dist2();
|
|
5215
5220
|
import { Command as Command38 } from "commander";
|
|
5216
5221
|
import * as fs22 from "fs";
|
|
5217
5222
|
import * as path34 from "path";
|
|
@@ -5351,7 +5356,7 @@ function createListIntegrationsCommand() {
|
|
|
5351
5356
|
}
|
|
5352
5357
|
|
|
5353
5358
|
// src/commands/integrations/remove.ts
|
|
5354
|
-
|
|
5359
|
+
init_dist2();
|
|
5355
5360
|
import { Command as Command40 } from "commander";
|
|
5356
5361
|
import * as fs23 from "fs";
|
|
5357
5362
|
import * as path36 from "path";
|
|
@@ -5400,7 +5405,7 @@ function createRemoveIntegrationCommand() {
|
|
|
5400
5405
|
}
|
|
5401
5406
|
|
|
5402
5407
|
// src/commands/integrations/dismiss.ts
|
|
5403
|
-
|
|
5408
|
+
init_dist2();
|
|
5404
5409
|
import { Command as Command41 } from "commander";
|
|
5405
5410
|
import * as path37 from "path";
|
|
5406
5411
|
function dismissIntegration(cwd, name) {
|
|
@@ -5469,7 +5474,7 @@ function createKnowledgePipelineCommand() {
|
|
|
5469
5474
|
const graphDir = path38.join(projectDir, ".harness", "graph");
|
|
5470
5475
|
const fs44 = await import("fs/promises");
|
|
5471
5476
|
await fs44.mkdir(graphDir, { recursive: true });
|
|
5472
|
-
const { GraphStore, KnowledgePipelineRunner } = await import("./dist-
|
|
5477
|
+
const { GraphStore, KnowledgePipelineRunner } = await import("./dist-SQAOKWXM.js");
|
|
5473
5478
|
const store = new GraphStore();
|
|
5474
5479
|
try {
|
|
5475
5480
|
await store.load(graphDir);
|
|
@@ -5629,7 +5634,7 @@ function createKnowledgePipelineCommand() {
|
|
|
5629
5634
|
import { Command as Command45 } from "commander";
|
|
5630
5635
|
|
|
5631
5636
|
// src/commands/learnings/prune.ts
|
|
5632
|
-
|
|
5637
|
+
init_dist2();
|
|
5633
5638
|
import { Command as Command44 } from "commander";
|
|
5634
5639
|
import * as path39 from "path";
|
|
5635
5640
|
async function handlePrune(opts) {
|
|
@@ -5811,7 +5816,7 @@ function createMcpCommand() {
|
|
|
5811
5816
|
parseBudget
|
|
5812
5817
|
).action(async (opts) => {
|
|
5813
5818
|
const [{ startServer: startServer2, getToolDefinitions: getToolDefinitions2 }, { selectTier }] = await Promise.all([
|
|
5814
|
-
import("./mcp-
|
|
5819
|
+
import("./mcp-ST26QMDK.js"),
|
|
5815
5820
|
import("./tool-tiers-7QGZ3FKY.js")
|
|
5816
5821
|
]);
|
|
5817
5822
|
if (opts.tools && opts.tools.length > 0) {
|
|
@@ -5832,6 +5837,7 @@ function createMcpCommand() {
|
|
|
5832
5837
|
}
|
|
5833
5838
|
|
|
5834
5839
|
// src/commands/migrate.ts
|
|
5840
|
+
init_dist2();
|
|
5835
5841
|
init_dist();
|
|
5836
5842
|
import { Command as Command50 } from "commander";
|
|
5837
5843
|
import * as fs24 from "fs";
|
|
@@ -5866,7 +5872,7 @@ function walk(dir, predicate) {
|
|
|
5866
5872
|
if (!fs24.existsSync(dir)) return [];
|
|
5867
5873
|
const out = [];
|
|
5868
5874
|
for (const entry of fs24.readdirSync(dir, { withFileTypes: true })) {
|
|
5869
|
-
if (
|
|
5875
|
+
if (DEFAULT_SKIP_DIRS.has(entry.name)) continue;
|
|
5870
5876
|
const full = path40.join(dir, entry.name);
|
|
5871
5877
|
if (entry.isDirectory()) out.push(...walk(full, predicate));
|
|
5872
5878
|
else if (predicate(full)) out.push(full);
|
|
@@ -6299,14 +6305,14 @@ function createOrchestratorCommand() {
|
|
|
6299
6305
|
}
|
|
6300
6306
|
|
|
6301
6307
|
// src/commands/perf.ts
|
|
6302
|
-
|
|
6308
|
+
init_dist2();
|
|
6303
6309
|
import { Command as Command52 } from "commander";
|
|
6304
6310
|
import * as path42 from "path";
|
|
6305
6311
|
function registerBenchCommand(perf) {
|
|
6306
6312
|
perf.command("bench [glob]").description("Run benchmarks via vitest bench").action(async (glob2, _opts, cmd) => {
|
|
6307
6313
|
const globalOpts = cmd.optsWithGlobals();
|
|
6308
6314
|
const cwd = process.cwd();
|
|
6309
|
-
const { BenchmarkRunner } = await import("./dist-
|
|
6315
|
+
const { BenchmarkRunner } = await import("./dist-ZS3Y3YWP.js");
|
|
6310
6316
|
const runner = new BenchmarkRunner();
|
|
6311
6317
|
const benchFiles = runner.discover(cwd, glob2);
|
|
6312
6318
|
if (benchFiles.length === 0) {
|
|
@@ -6370,7 +6376,7 @@ async function runBaselinesShow(globalOpts) {
|
|
|
6370
6376
|
}
|
|
6371
6377
|
async function runBaselinesUpdate(globalOpts) {
|
|
6372
6378
|
const cwd = process.cwd();
|
|
6373
|
-
const { BenchmarkRunner } = await import("./dist-
|
|
6379
|
+
const { BenchmarkRunner } = await import("./dist-ZS3Y3YWP.js");
|
|
6374
6380
|
const runner = new BenchmarkRunner();
|
|
6375
6381
|
const manager = new BaselineManager(cwd);
|
|
6376
6382
|
logger.info("Running benchmarks to update baselines...");
|
|
@@ -6411,7 +6417,7 @@ function registerReportCommand(perf) {
|
|
|
6411
6417
|
perf.command("report").description("Full performance report with metrics, trends, and hotspots").action(async (_opts, cmd) => {
|
|
6412
6418
|
const globalOpts = cmd.optsWithGlobals();
|
|
6413
6419
|
const cwd = process.cwd();
|
|
6414
|
-
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-
|
|
6420
|
+
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-ZS3Y3YWP.js");
|
|
6415
6421
|
const analyzer = new EntropyAnalyzer2({
|
|
6416
6422
|
rootDir: path42.resolve(cwd),
|
|
6417
6423
|
analyze: { complexity: true, coupling: true }
|
|
@@ -6582,7 +6588,7 @@ function createPersonaCommand() {
|
|
|
6582
6588
|
}
|
|
6583
6589
|
|
|
6584
6590
|
// src/commands/predict.ts
|
|
6585
|
-
|
|
6591
|
+
init_dist2();
|
|
6586
6592
|
import { Command as Command56 } from "commander";
|
|
6587
6593
|
import chalk8 from "chalk";
|
|
6588
6594
|
var CATEGORY_ORDER = [
|
|
@@ -6715,7 +6721,7 @@ function createPredictCommand() {
|
|
|
6715
6721
|
import * as fs26 from "fs";
|
|
6716
6722
|
import * as path44 from "path";
|
|
6717
6723
|
import { Command as Command57 } from "commander";
|
|
6718
|
-
|
|
6724
|
+
init_dist2();
|
|
6719
6725
|
import {
|
|
6720
6726
|
renderAnalysisComment,
|
|
6721
6727
|
loadPublishedIndex,
|
|
@@ -6776,7 +6782,7 @@ async function buildNameToExternalIdMap(projectPath) {
|
|
|
6776
6782
|
logger.error("No docs/roadmap.md found. Cannot map issue hashes to external IDs.");
|
|
6777
6783
|
return null;
|
|
6778
6784
|
}
|
|
6779
|
-
const { parseRoadmap: parseRoadmap2 } = (
|
|
6785
|
+
const { parseRoadmap: parseRoadmap2 } = (init_dist2(), __toCommonJS(dist_exports));
|
|
6780
6786
|
const roadmapParsed = parseRoadmap2(fs26.readFileSync(roadmapFile, "utf-8"));
|
|
6781
6787
|
if (!roadmapParsed.ok) {
|
|
6782
6788
|
logger.error("Failed to parse docs/roadmap.md");
|
|
@@ -6827,7 +6833,7 @@ async function runPublishAnalyses(opts) {
|
|
|
6827
6833
|
const nameToExternalId = await buildNameToExternalIdMap(projectPath);
|
|
6828
6834
|
if (!nameToExternalId) return process.exit(1);
|
|
6829
6835
|
const { AnalysisArchive } = await import("@harness-engineering/orchestrator");
|
|
6830
|
-
const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-
|
|
6836
|
+
const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-ZS3Y3YWP.js");
|
|
6831
6837
|
const archive = new AnalysisArchive(path44.join(projectPath, ".harness", "analyses"));
|
|
6832
6838
|
const analyses = await archive.list();
|
|
6833
6839
|
if (analyses.length === 0) {
|
|
@@ -6869,9 +6875,9 @@ function createPublishAnalysesCommand() {
|
|
|
6869
6875
|
import { Command as Command59 } from "commander";
|
|
6870
6876
|
|
|
6871
6877
|
// src/commands/pulse/run.ts
|
|
6872
|
-
|
|
6878
|
+
init_dist2();
|
|
6873
6879
|
import { readFileSync as readFileSync15, mkdirSync as mkdirSync13, writeFileSync as writeFileSync14 } from "fs";
|
|
6874
|
-
import { dirname as dirname17, join as
|
|
6880
|
+
import { dirname as dirname17, join as join35, resolve as resolve28 } from "path";
|
|
6875
6881
|
import { Command as Command58 } from "commander";
|
|
6876
6882
|
async function runPulseRunCommand(opts) {
|
|
6877
6883
|
const startedAt = Date.now();
|
|
@@ -6903,7 +6909,7 @@ async function runPulseRunCommand(opts) {
|
|
|
6903
6909
|
const report = assembleReport(result, productName, lookback);
|
|
6904
6910
|
const now = /* @__PURE__ */ new Date();
|
|
6905
6911
|
const ts = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}_${String(now.getHours()).padStart(2, "0")}-${String(now.getMinutes()).padStart(2, "0")}`;
|
|
6906
|
-
const filePath =
|
|
6912
|
+
const filePath = join35(opts.outputDir, `${ts}.md`);
|
|
6907
6913
|
mkdirSync13(dirname17(filePath), { recursive: true });
|
|
6908
6914
|
writeFileSync14(filePath, report);
|
|
6909
6915
|
const headlines = extractHeadlines(report);
|
|
@@ -7070,7 +7076,7 @@ function createRecommendCommand() {
|
|
|
7070
7076
|
import { Command as Command62 } from "commander";
|
|
7071
7077
|
|
|
7072
7078
|
// src/commands/roadmap/migrate.ts
|
|
7073
|
-
|
|
7079
|
+
init_dist2();
|
|
7074
7080
|
import { Command as Command61 } from "commander";
|
|
7075
7081
|
import * as fs28 from "fs";
|
|
7076
7082
|
import * as path46 from "path";
|
|
@@ -7382,10 +7388,10 @@ function createRoadmapCommand() {
|
|
|
7382
7388
|
}
|
|
7383
7389
|
|
|
7384
7390
|
// src/commands/scan-config.ts
|
|
7385
|
-
|
|
7391
|
+
init_dist2();
|
|
7386
7392
|
import { Command as Command63 } from "commander";
|
|
7387
7393
|
import { existsSync as existsSync25, readFileSync as readFileSync18, writeFileSync as writeFileSync17 } from "fs";
|
|
7388
|
-
import { join as
|
|
7394
|
+
import { join as join38, relative as relative3 } from "path";
|
|
7389
7395
|
var CONFIG_FILES = ["CLAUDE.md", "AGENTS.md", ".gemini/settings.json", "skill.yaml"];
|
|
7390
7396
|
function stripHighSeverityPatterns(content, injectionFindings) {
|
|
7391
7397
|
const highLines = /* @__PURE__ */ new Set();
|
|
@@ -7442,7 +7448,7 @@ async function runScanConfig(targetDir, options) {
|
|
|
7442
7448
|
const scanner = new SecurityScanner(parseSecurityConfig({}));
|
|
7443
7449
|
const results = [];
|
|
7444
7450
|
for (const configFile of CONFIG_FILES) {
|
|
7445
|
-
const result = scanSingleFile(
|
|
7451
|
+
const result = scanSingleFile(join38(targetDir, configFile), targetDir, scanner, options);
|
|
7446
7452
|
if (result) results.push(result);
|
|
7447
7453
|
}
|
|
7448
7454
|
return { exitCode: computeScanExitCode(results), results };
|
|
@@ -7795,7 +7801,7 @@ async function detectLegacyLayout(cwd) {
|
|
|
7795
7801
|
}
|
|
7796
7802
|
async function runInitialGraphScan(cwd) {
|
|
7797
7803
|
try {
|
|
7798
|
-
const { runScan: runScan2 } = await import("./scan-
|
|
7804
|
+
const { runScan: runScan2 } = await import("./scan-SFX5U3TE.js");
|
|
7799
7805
|
const result = await runScan2(cwd);
|
|
7800
7806
|
return {
|
|
7801
7807
|
status: "pass",
|
|
@@ -7856,7 +7862,7 @@ function createSetupCommand() {
|
|
|
7856
7862
|
}
|
|
7857
7863
|
|
|
7858
7864
|
// src/commands/share.ts
|
|
7859
|
-
|
|
7865
|
+
init_dist2();
|
|
7860
7866
|
import { Command as Command65 } from "commander";
|
|
7861
7867
|
import * as fs32 from "fs";
|
|
7862
7868
|
import * as path50 from "path";
|
|
@@ -8816,7 +8822,7 @@ function createSkillCommand() {
|
|
|
8816
8822
|
}
|
|
8817
8823
|
|
|
8818
8824
|
// src/commands/snapshot.ts
|
|
8819
|
-
|
|
8825
|
+
init_dist2();
|
|
8820
8826
|
import { Command as Command74 } from "commander";
|
|
8821
8827
|
import { execSync as execSync5 } from "child_process";
|
|
8822
8828
|
import chalk13 from "chalk";
|
|
@@ -9010,7 +9016,7 @@ function createSnapshotCommand() {
|
|
|
9010
9016
|
import { Command as Command79 } from "commander";
|
|
9011
9017
|
|
|
9012
9018
|
// src/commands/state/show.ts
|
|
9013
|
-
|
|
9019
|
+
init_dist2();
|
|
9014
9020
|
import { Command as Command75 } from "commander";
|
|
9015
9021
|
import * as path58 from "path";
|
|
9016
9022
|
function printStateText(state, stream) {
|
|
@@ -9053,7 +9059,7 @@ function createShowCommand() {
|
|
|
9053
9059
|
}
|
|
9054
9060
|
|
|
9055
9061
|
// src/commands/state/reset.ts
|
|
9056
|
-
|
|
9062
|
+
init_dist2();
|
|
9057
9063
|
import { Command as Command76 } from "commander";
|
|
9058
9064
|
import * as fs40 from "fs";
|
|
9059
9065
|
import * as path59 from "path";
|
|
@@ -9102,7 +9108,7 @@ function createResetCommand() {
|
|
|
9102
9108
|
}
|
|
9103
9109
|
|
|
9104
9110
|
// src/commands/state/learn.ts
|
|
9105
|
-
|
|
9111
|
+
init_dist2();
|
|
9106
9112
|
import { Command as Command77 } from "commander";
|
|
9107
9113
|
import * as path60 from "path";
|
|
9108
9114
|
function createLearnCommand() {
|
|
@@ -9120,7 +9126,7 @@ function createLearnCommand() {
|
|
|
9120
9126
|
}
|
|
9121
9127
|
|
|
9122
9128
|
// src/commands/state/streams.ts
|
|
9123
|
-
|
|
9129
|
+
init_dist2();
|
|
9124
9130
|
import { Command as Command78 } from "commander";
|
|
9125
9131
|
import * as path61 from "path";
|
|
9126
9132
|
async function runListStreams(opts, globalOpts) {
|
|
@@ -9194,7 +9200,7 @@ function createStateCommand() {
|
|
|
9194
9200
|
import * as fs41 from "fs";
|
|
9195
9201
|
import * as path62 from "path";
|
|
9196
9202
|
import { Command as Command80 } from "commander";
|
|
9197
|
-
|
|
9203
|
+
init_dist2();
|
|
9198
9204
|
function isValidRecord(record) {
|
|
9199
9205
|
return typeof record.issueId === "string" && !!record.issueId && typeof record.identifier === "string" && !!record.identifier && typeof record.analyzedAt === "string" && !/[/\\]/.test(record.issueId);
|
|
9200
9206
|
}
|
|
@@ -9267,7 +9273,7 @@ async function loadRoadmapFeatures(projectPath) {
|
|
|
9267
9273
|
logger.error("No docs/roadmap.md found. Cannot discover features with externalIds.");
|
|
9268
9274
|
return null;
|
|
9269
9275
|
}
|
|
9270
|
-
const { parseRoadmap: parseRoadmap2 } = (
|
|
9276
|
+
const { parseRoadmap: parseRoadmap2 } = (init_dist2(), __toCommonJS(dist_exports));
|
|
9271
9277
|
const roadmapParsed = parseRoadmap2(fs41.readFileSync(roadmapFile, "utf-8"));
|
|
9272
9278
|
if (!roadmapParsed.ok) {
|
|
9273
9279
|
logger.error("Failed to parse docs/roadmap.md");
|
|
@@ -9319,7 +9325,7 @@ async function runSyncAnalyses(opts) {
|
|
|
9319
9325
|
return;
|
|
9320
9326
|
}
|
|
9321
9327
|
const { AnalysisArchive, loadPublishedIndex: loadPublishedIndex2, savePublishedIndex: savePublishedIndex2 } = await import("@harness-engineering/orchestrator");
|
|
9322
|
-
const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-
|
|
9328
|
+
const { GitHubIssuesSyncAdapter: GitHubIssuesSyncAdapter2 } = await import("./dist-ZS3Y3YWP.js");
|
|
9323
9329
|
const adapter = new GitHubIssuesSyncAdapter2({ token, config: trackerConfig });
|
|
9324
9330
|
const archive = new AnalysisArchive(path62.join(projectPath, ".harness", "analyses"));
|
|
9325
9331
|
const publishedIndex = loadPublishedIndex2(projectPath);
|
|
@@ -9394,7 +9400,7 @@ function createSyncMainCommand() {
|
|
|
9394
9400
|
}
|
|
9395
9401
|
|
|
9396
9402
|
// src/commands/taint.ts
|
|
9397
|
-
|
|
9403
|
+
init_dist2();
|
|
9398
9404
|
import { Command as Command82 } from "commander";
|
|
9399
9405
|
function getProjectRoot() {
|
|
9400
9406
|
return process.cwd();
|
|
@@ -9477,7 +9483,7 @@ function createTaintCommand() {
|
|
|
9477
9483
|
import { Command as Command86 } from "commander";
|
|
9478
9484
|
|
|
9479
9485
|
// src/commands/telemetry/identify.ts
|
|
9480
|
-
|
|
9486
|
+
init_dist2();
|
|
9481
9487
|
import { Command as Command83 } from "commander";
|
|
9482
9488
|
import * as fs42 from "fs";
|
|
9483
9489
|
import * as path64 from "path";
|
|
@@ -9526,7 +9532,7 @@ function createIdentifyCommand() {
|
|
|
9526
9532
|
}
|
|
9527
9533
|
|
|
9528
9534
|
// src/commands/telemetry/status.ts
|
|
9529
|
-
|
|
9535
|
+
init_dist2();
|
|
9530
9536
|
import { Command as Command84 } from "commander";
|
|
9531
9537
|
function gatherEnvOverrides() {
|
|
9532
9538
|
const overrides = {};
|
|
@@ -9601,12 +9607,12 @@ function createStatusCommand() {
|
|
|
9601
9607
|
}
|
|
9602
9608
|
|
|
9603
9609
|
// src/commands/telemetry/test.ts
|
|
9604
|
-
|
|
9610
|
+
init_dist2();
|
|
9605
9611
|
import { Command as Command85 } from "commander";
|
|
9606
9612
|
|
|
9607
9613
|
// src/bin/command-telemetry.ts
|
|
9608
9614
|
import { existsSync as existsSync39, readFileSync as readFileSync29, mkdirSync as mkdirSync19, appendFileSync, writeFileSync as writeFileSync23 } from "fs";
|
|
9609
|
-
import { join as
|
|
9615
|
+
import { join as join53, parse as parsePath, resolve as resolve37 } from "path";
|
|
9610
9616
|
import { spawn as spawn2 } from "child_process";
|
|
9611
9617
|
var POSTHOG_API_KEY = "phc_wNTdCMcfJXZPgdNeDociZW6vwoGGo4nb7vqEfWThFfsG";
|
|
9612
9618
|
var EXCLUDED_COMMANDS = /* @__PURE__ */ new Set(["help", "completion"]);
|
|
@@ -9614,7 +9620,7 @@ function findProjectRoot(cwd) {
|
|
|
9614
9620
|
let dir = resolve37(cwd);
|
|
9615
9621
|
const { root } = parsePath(dir);
|
|
9616
9622
|
while (dir !== root) {
|
|
9617
|
-
if (existsSync39(
|
|
9623
|
+
if (existsSync39(join53(dir, "harness.config.json"))) return dir;
|
|
9618
9624
|
dir = resolve37(dir, "..");
|
|
9619
9625
|
}
|
|
9620
9626
|
return cwd;
|
|
@@ -9652,7 +9658,7 @@ function resolveCommandName(cmd) {
|
|
|
9652
9658
|
}
|
|
9653
9659
|
function writeCommandRecordSync(cwd, command, duration, outcome) {
|
|
9654
9660
|
try {
|
|
9655
|
-
const metricsDir =
|
|
9661
|
+
const metricsDir = join53(cwd, ".harness", "metrics");
|
|
9656
9662
|
mkdirSync19(metricsDir, { recursive: true });
|
|
9657
9663
|
const record = {
|
|
9658
9664
|
skill: command,
|
|
@@ -9662,13 +9668,13 @@ function writeCommandRecordSync(cwd, command, duration, outcome) {
|
|
|
9662
9668
|
outcome,
|
|
9663
9669
|
phasesReached: []
|
|
9664
9670
|
};
|
|
9665
|
-
const adoptionFile =
|
|
9671
|
+
const adoptionFile = join53(metricsDir, "adoption.jsonl");
|
|
9666
9672
|
appendFileSync(adoptionFile, JSON.stringify(record) + "\n");
|
|
9667
9673
|
} catch {
|
|
9668
9674
|
}
|
|
9669
9675
|
}
|
|
9670
9676
|
function isTelemetryDisabledByConfig(cwd) {
|
|
9671
|
-
const configPath =
|
|
9677
|
+
const configPath = join53(cwd, "harness.config.json");
|
|
9672
9678
|
if (!existsSync39(configPath)) return false;
|
|
9673
9679
|
try {
|
|
9674
9680
|
const config = JSON.parse(readFileSync29(configPath, "utf-8"));
|
|
@@ -9683,10 +9689,10 @@ function isTelemetryOptedOut(cwd) {
|
|
|
9683
9689
|
}
|
|
9684
9690
|
function flushTelemetryBackground(cwd) {
|
|
9685
9691
|
try {
|
|
9686
|
-
const adoptionFile =
|
|
9692
|
+
const adoptionFile = join53(cwd, ".harness", "metrics", "adoption.jsonl");
|
|
9687
9693
|
if (!existsSync39(adoptionFile)) return;
|
|
9688
9694
|
if (isTelemetryOptedOut(cwd)) return;
|
|
9689
|
-
const reporterPath =
|
|
9695
|
+
const reporterPath = join53(cwd, ".harness", "hooks", "telemetry-reporter.js");
|
|
9690
9696
|
if (!existsSync39(reporterPath)) return;
|
|
9691
9697
|
const child = spawn2(process.execPath, [reporterPath], {
|
|
9692
9698
|
cwd,
|
|
@@ -9890,7 +9896,7 @@ async function runTraceability(options) {
|
|
|
9890
9896
|
const projectPath = process.cwd();
|
|
9891
9897
|
const store = await loadGraphStore(projectPath);
|
|
9892
9898
|
if (!store) handleNoStore(mode);
|
|
9893
|
-
const graphModule = await import("./dist-
|
|
9899
|
+
const graphModule = await import("./dist-SQAOKWXM.js");
|
|
9894
9900
|
const filterOptions = buildFilterOptions(options);
|
|
9895
9901
|
const results = graphModule.queryTraceability(store, filterOptions);
|
|
9896
9902
|
if (results.length === 0) handleEmptyResults(mode);
|
|
@@ -9975,7 +9981,7 @@ function createUninstallCommand() {
|
|
|
9975
9981
|
}
|
|
9976
9982
|
|
|
9977
9983
|
// src/commands/uninstall-constraints.ts
|
|
9978
|
-
|
|
9984
|
+
init_dist2();
|
|
9979
9985
|
import * as fs43 from "fs/promises";
|
|
9980
9986
|
import * as path66 from "path";
|
|
9981
9987
|
import { Command as Command89 } from "commander";
|
|
@@ -10077,7 +10083,7 @@ function createUninstallConstraintsCommand() {
|
|
|
10077
10083
|
import { Command as Command90 } from "commander";
|
|
10078
10084
|
import { execFile, execFileSync as execFileSync7 } from "child_process";
|
|
10079
10085
|
import { realpathSync, existsSync as existsSync40, readFileSync as readFileSync30 } from "fs";
|
|
10080
|
-
import { join as
|
|
10086
|
+
import { join as join56 } from "path";
|
|
10081
10087
|
import { promisify } from "util";
|
|
10082
10088
|
import readline4 from "readline";
|
|
10083
10089
|
import chalk15 from "chalk";
|
|
@@ -10161,10 +10167,10 @@ async function ensureTelemetryIfNeeded() {
|
|
|
10161
10167
|
}
|
|
10162
10168
|
function refreshHooks() {
|
|
10163
10169
|
const cwd = process.cwd();
|
|
10164
|
-
const configPath =
|
|
10170
|
+
const configPath = join56(cwd, "harness.config.json");
|
|
10165
10171
|
if (!existsSync40(configPath)) return;
|
|
10166
10172
|
let profile = "standard";
|
|
10167
|
-
const profilePath =
|
|
10173
|
+
const profilePath = join56(cwd, ".harness", "hooks", "profile.json");
|
|
10168
10174
|
try {
|
|
10169
10175
|
const data = JSON.parse(readFileSync30(profilePath, "utf-8"));
|
|
10170
10176
|
if (data.profile && ["minimal", "standard", "strict"].includes(data.profile)) {
|
|
@@ -10304,7 +10310,7 @@ function createUpdateCommand() {
|
|
|
10304
10310
|
// src/commands/usage.ts
|
|
10305
10311
|
import { Command as Command91 } from "commander";
|
|
10306
10312
|
async function loadAndPriceRecords(cwd, includeClaudeSessions = false) {
|
|
10307
|
-
const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-
|
|
10313
|
+
const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-ZS3Y3YWP.js");
|
|
10308
10314
|
const records = readCostRecords(cwd);
|
|
10309
10315
|
if (includeClaudeSessions) {
|
|
10310
10316
|
const ccRecords = parseCCRecords();
|
|
@@ -10397,7 +10403,7 @@ function registerDailyCommand(usage) {
|
|
|
10397
10403
|
else logger.info("No usage data found. Run some harness sessions first.");
|
|
10398
10404
|
return;
|
|
10399
10405
|
}
|
|
10400
|
-
const { aggregateByDay } = await import("./dist-
|
|
10406
|
+
const { aggregateByDay } = await import("./dist-ZS3Y3YWP.js");
|
|
10401
10407
|
const limited = aggregateByDay(records).slice(0, days);
|
|
10402
10408
|
if (globalOpts.json) {
|
|
10403
10409
|
console.log(
|
|
@@ -10426,7 +10432,7 @@ function registerSessionsCommand(usage) {
|
|
|
10426
10432
|
}
|
|
10427
10433
|
return;
|
|
10428
10434
|
}
|
|
10429
|
-
const { aggregateBySession } = await import("./dist-
|
|
10435
|
+
const { aggregateBySession } = await import("./dist-ZS3Y3YWP.js");
|
|
10430
10436
|
const sessionData = aggregateBySession(records);
|
|
10431
10437
|
const limited = sessionData.slice(0, limit);
|
|
10432
10438
|
if (globalOpts.json) {
|
|
@@ -10506,7 +10512,7 @@ function registerSessionCommand(usage) {
|
|
|
10506
10512
|
cwd,
|
|
10507
10513
|
globalOpts.includeClaudeSessions
|
|
10508
10514
|
);
|
|
10509
|
-
const { aggregateBySession } = await import("./dist-
|
|
10515
|
+
const { aggregateBySession } = await import("./dist-ZS3Y3YWP.js");
|
|
10510
10516
|
const sessionData = aggregateBySession(records);
|
|
10511
10517
|
const match = sessionData.find((s) => s.sessionId === id);
|
|
10512
10518
|
if (!match) {
|
|
@@ -10541,7 +10547,7 @@ function registerLatestCommand(usage) {
|
|
|
10541
10547
|
}
|
|
10542
10548
|
return;
|
|
10543
10549
|
}
|
|
10544
|
-
const { aggregateBySession } = await import("./dist-
|
|
10550
|
+
const { aggregateBySession } = await import("./dist-ZS3Y3YWP.js");
|
|
10545
10551
|
const sessionData = aggregateBySession(records);
|
|
10546
10552
|
const latest = sessionData[0];
|
|
10547
10553
|
if (!latest) {
|
|
@@ -10580,8 +10586,8 @@ function createUsageCommand() {
|
|
|
10580
10586
|
}
|
|
10581
10587
|
|
|
10582
10588
|
// src/commands/validate.ts
|
|
10583
|
-
|
|
10584
|
-
|
|
10589
|
+
init_dist2();
|
|
10590
|
+
init_dist2();
|
|
10585
10591
|
import { Command as Command92 } from "commander";
|
|
10586
10592
|
import * as path67 from "path";
|
|
10587
10593
|
async function runValidate(options) {
|
|
@@ -10710,7 +10716,7 @@ function resolveValidateMode(globalOpts) {
|
|
|
10710
10716
|
return OutputMode.TEXT;
|
|
10711
10717
|
}
|
|
10712
10718
|
async function printCrossCheckWarnings(mode) {
|
|
10713
|
-
const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-
|
|
10719
|
+
const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-F5YQVXLT.js");
|
|
10714
10720
|
const cwd = process.cwd();
|
|
10715
10721
|
const crossResult = await runCrossCheck2({
|
|
10716
10722
|
specsDir: path67.join(cwd, "docs", "specs"),
|