@harness-engineering/cli 1.27.1 → 1.28.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/skills/claude-code/harness-architecture-advisor/SKILL.md +17 -5
- package/dist/agents/skills/claude-code/harness-architecture-advisor/skill.yaml +1 -1
- package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +4 -4
- package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-design-system/SKILL.md +6 -1
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +4 -4
- package/dist/agents/skills/claude-code/harness-i18n-process/SKILL.md +2 -2
- package/dist/agents/skills/claude-code/harness-integration/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-knowledge-pipeline/SKILL.md +1 -0
- package/dist/agents/skills/claude-code/harness-onboarding/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +3 -3
- package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +4 -3
- package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +150 -10
- package/dist/agents/skills/claude-code/initialize-harness-project/skill.yaml +2 -1
- package/dist/agents/skills/codex/harness-architecture-advisor/SKILL.md +17 -5
- package/dist/agents/skills/codex/harness-architecture-advisor/skill.yaml +1 -1
- package/dist/agents/skills/codex/harness-autopilot/SKILL.md +4 -4
- package/dist/agents/skills/codex/harness-code-review/SKILL.md +1 -1
- package/dist/agents/skills/codex/harness-design-system/SKILL.md +6 -1
- package/dist/agents/skills/codex/harness-execution/SKILL.md +4 -4
- package/dist/agents/skills/codex/harness-i18n-process/SKILL.md +2 -2
- package/dist/agents/skills/codex/harness-integration/SKILL.md +1 -1
- package/dist/agents/skills/codex/harness-knowledge-pipeline/SKILL.md +1 -0
- package/dist/agents/skills/codex/harness-onboarding/SKILL.md +1 -1
- package/dist/agents/skills/codex/harness-planning/SKILL.md +3 -3
- package/dist/agents/skills/codex/harness-roadmap/SKILL.md +4 -3
- package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +150 -10
- package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +2 -1
- package/dist/agents/skills/cursor/harness-architecture-advisor/SKILL.md +17 -5
- package/dist/agents/skills/cursor/harness-architecture-advisor/skill.yaml +1 -1
- package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +4 -4
- package/dist/agents/skills/cursor/harness-code-review/SKILL.md +1 -1
- package/dist/agents/skills/cursor/harness-design-system/SKILL.md +6 -1
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +4 -4
- package/dist/agents/skills/cursor/harness-i18n-process/SKILL.md +2 -2
- package/dist/agents/skills/cursor/harness-integration/SKILL.md +1 -1
- package/dist/agents/skills/cursor/harness-knowledge-pipeline/SKILL.md +1 -0
- package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +1 -1
- package/dist/agents/skills/cursor/harness-planning/SKILL.md +3 -3
- package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +4 -3
- package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +150 -10
- package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +2 -1
- package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +17 -5
- package/dist/agents/skills/gemini-cli/harness-architecture-advisor/skill.yaml +1 -1
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +4 -4
- package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-design-system/SKILL.md +6 -1
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +4 -4
- package/dist/agents/skills/gemini-cli/harness-i18n-process/SKILL.md +2 -2
- package/dist/agents/skills/gemini-cli/harness-integration/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-knowledge-pipeline/SKILL.md +1 -0
- package/dist/agents/skills/gemini-cli/harness-onboarding/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +3 -3
- package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +4 -3
- package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +150 -10
- package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +2 -1
- package/dist/{agents-md-2RN666DE.js → agents-md-6SAMHE7H.js} +3 -3
- package/dist/{architecture-ZR33YKJB.js → architecture-5YR52NSV.js} +4 -4
- package/dist/{assess-project-LLWWEQEV.js → assess-project-5X7TYQFM.js} +1 -1
- package/dist/bin/harness-mcp.js +15 -15
- package/dist/bin/harness.js +25 -25
- package/dist/{check-phase-gate-ZVG56NT2.js → check-phase-gate-PLV2VDOL.js} +4 -4
- package/dist/{chunk-2FOLD76X.js → chunk-2IBXUG6J.js} +2 -2
- package/dist/{chunk-MGPVA2EM.js → chunk-5ME3WG3G.js} +5 -5
- package/dist/{chunk-Q5DKIL46.js → chunk-6GXSJGSW.js} +3 -3
- package/dist/{chunk-C7RPQWBG.js → chunk-6L2BU4BP.js} +1 -1
- package/dist/{chunk-EHTUWULH.js → chunk-74YADB7T.js} +97 -93
- package/dist/{chunk-CJYNZMOP.js → chunk-7JQ7HLM4.js} +8 -8
- package/dist/{chunk-F3Y64VNF.js → chunk-BFBZK6BC.js} +6 -6
- package/dist/{chunk-YZH4I4JO.js → chunk-BYS3TQOO.js} +1 -1
- package/dist/{chunk-776JFSPK.js → chunk-DXGI7DL3.js} +1 -1
- package/dist/{chunk-T7UZOJF4.js → chunk-ELJ2MXMO.js} +9 -9
- package/dist/{chunk-BO4AJZRE.js → chunk-HT7HYYGT.js} +1 -1
- package/dist/{chunk-EGRQHLDM.js → chunk-JNKALGRM.js} +5 -5
- package/dist/{chunk-3AJW7VQ3.js → chunk-JZST2WZS.js} +2 -2
- package/dist/{chunk-A4ETL34H.js → chunk-KJD4J54I.js} +23 -1
- package/dist/{chunk-VCC47EXU.js → chunk-MTPHNOJW.js} +860 -412
- package/dist/{chunk-EICASBYP.js → chunk-PFM3BVVU.js} +1 -1
- package/dist/{chunk-3XMOWLK3.js → chunk-QDRBWVVY.js} +2 -2
- package/dist/{chunk-SDDQPMZK.js → chunk-R2CBBZA6.js} +1 -1
- package/dist/{chunk-IBTHD2UA.js → chunk-RFYF7TJS.js} +2 -1
- package/dist/{chunk-FUS4OOGC.js → chunk-RYDPFIJY.js} +1 -1
- package/dist/{chunk-GAIOIINV.js → chunk-S2WB4LE7.js} +113 -36
- package/dist/{chunk-BZZNYHRY.js → chunk-SITVRO7K.js} +9 -9
- package/dist/{chunk-SDPHFDQS.js → chunk-XHOGGZS7.js} +1 -1
- package/dist/{chunk-XKU37HGH.js → chunk-YJE23GRZ.js} +1 -1
- package/dist/{chunk-L3Y7L4EG.js → chunk-ZYLBIDLE.js} +1 -1
- package/dist/{ci-workflow-JFOL4YWW.js → ci-workflow-7T2XKB3P.js} +3 -3
- package/dist/{dist-BZS2XRLG.js → dist-42AYXCAK.js} +7 -1
- package/dist/{dist-CPKL5Y2R.js → dist-77VNTHWV.js} +2 -2
- package/dist/{docs-FUTRJQHA.js → docs-MSIJ6SDO.js} +4 -4
- package/dist/{engine-FB3HCNVT.js → engine-F4P5RBE4.js} +3 -3
- package/dist/{entropy-FIEE4YDA.js → entropy-GSUTIORR.js} +3 -3
- package/dist/{feedback-7EC4T6XG.js → feedback-NST6T4HI.js} +1 -1
- package/dist/{generate-agent-definitions-FOSFADNR.js → generate-agent-definitions-BOUGQIPA.js} +4 -4
- package/dist/{graph-loader-QEI7SYOQ.js → graph-loader-IAUPGLRV.js} +1 -1
- package/dist/index.d.ts +44 -1
- package/dist/index.js +25 -25
- package/dist/{loader-HXUOBTYA.js → loader-6QTJC7IN.js} +3 -3
- package/dist/{mcp-NUG4BMKJ.js → mcp-QFBGTUX6.js} +15 -15
- package/dist/{performance-TYXBCTR7.js → performance-B2NAAIE5.js} +4 -4
- package/dist/{review-pipeline-B4WPU6BQ.js → review-pipeline-6EYMBS6B.js} +3 -3
- package/dist/{runtime-HQQNOARD.js → runtime-VFZK6BCZ.js} +3 -3
- package/dist/{scan-M4EGDAQ2.js → scan-DB6FNYGG.js} +1 -1
- package/dist/{security-25VFLIAO.js → security-HRNTYHPM.js} +1 -1
- package/dist/{validate-EAVGKZQB.js → validate-YEMAFWJE.js} +4 -4
- package/dist/{validate-cross-check-SPL3H4O5.js → validate-cross-check-DGHTJFVH.js} +3 -3
- package/package.json +6 -6
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
handleRunCodeReview,
|
|
3
3
|
runCodeReviewDefinition,
|
|
4
4
|
sortFindingsBySeverity
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-2IBXUG6J.js";
|
|
6
6
|
import {
|
|
7
7
|
assessProjectDefinition,
|
|
8
8
|
handleAssessProject
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BFBZK6BC.js";
|
|
10
10
|
import {
|
|
11
11
|
getBusinessKnowledgeResource
|
|
12
12
|
} from "./chunk-IOW3MW2K.js";
|
|
@@ -17,35 +17,35 @@ import {
|
|
|
17
17
|
handleCreateSelfReview,
|
|
18
18
|
handleRequestPeerReview,
|
|
19
19
|
requestPeerReviewDefinition
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-SITVRO7K.js";
|
|
21
21
|
import {
|
|
22
22
|
getSecurityTrendsDefinition,
|
|
23
23
|
handleGetSecurityTrends,
|
|
24
24
|
handleRunSecurityScan,
|
|
25
25
|
runSecurityScanDefinition
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-JZST2WZS.js";
|
|
27
27
|
import {
|
|
28
28
|
loadGraphStore
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-DXGI7DL3.js";
|
|
30
30
|
import {
|
|
31
31
|
handleValidateProject,
|
|
32
32
|
validateToolDefinition
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-6GXSJGSW.js";
|
|
34
34
|
import {
|
|
35
35
|
checkDependenciesDefinition,
|
|
36
36
|
handleCheckDependencies
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-5ME3WG3G.js";
|
|
38
38
|
import {
|
|
39
39
|
resolveProjectConfig
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-BYS3TQOO.js";
|
|
41
41
|
import {
|
|
42
42
|
checkDocsDefinition,
|
|
43
43
|
handleCheckDocs
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-ELJ2MXMO.js";
|
|
45
45
|
import {
|
|
46
46
|
detectEntropyDefinition,
|
|
47
47
|
handleDetectEntropy
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-JNKALGRM.js";
|
|
49
49
|
import {
|
|
50
50
|
checkPerformanceDefinition,
|
|
51
51
|
getCriticalPathsDefinition,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
handleGetPerfBaselines,
|
|
56
56
|
handleUpdatePerfBaselines,
|
|
57
57
|
updatePerfBaselinesDefinition
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-7JQ7HLM4.js";
|
|
59
59
|
import {
|
|
60
60
|
resultToMcpResponse
|
|
61
61
|
} from "./chunk-EPUKTTJZ.js";
|
|
@@ -67,7 +67,7 @@ import {
|
|
|
67
67
|
} from "./chunk-27AJKSQY.js";
|
|
68
68
|
import {
|
|
69
69
|
resolveConfig
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-KJD4J54I.js";
|
|
71
71
|
import {
|
|
72
72
|
GENERATED_HEADER_CLAUDE,
|
|
73
73
|
GENERATED_HEADER_CODEX,
|
|
@@ -103,7 +103,7 @@ import {
|
|
|
103
103
|
scanForInjection,
|
|
104
104
|
serializeEnvelope,
|
|
105
105
|
writeTaint
|
|
106
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-RFYF7TJS.js";
|
|
107
107
|
import {
|
|
108
108
|
Err,
|
|
109
109
|
Ok
|
|
@@ -706,7 +706,7 @@ ${skippedMsg}`
|
|
|
706
706
|
async function handleInitProject(input) {
|
|
707
707
|
const i = input;
|
|
708
708
|
try {
|
|
709
|
-
const { TemplateEngine } = await import("./engine-
|
|
709
|
+
const { TemplateEngine } = await import("./engine-F4P5RBE4.js");
|
|
710
710
|
const engine = new TemplateEngine(resolveTemplatesDir());
|
|
711
711
|
const safePath = sanitizePath(i.path);
|
|
712
712
|
const detected = tryDetectFramework(engine, safePath, i);
|
|
@@ -728,7 +728,7 @@ var listPersonasDefinition = {
|
|
|
728
728
|
inputSchema: { type: "object", properties: {} }
|
|
729
729
|
};
|
|
730
730
|
async function handleListPersonas() {
|
|
731
|
-
const { listPersonas } = await import("./loader-
|
|
731
|
+
const { listPersonas } = await import("./loader-6QTJC7IN.js");
|
|
732
732
|
const result = listPersonas(resolvePersonasDir());
|
|
733
733
|
return resultToMcpResponse(result);
|
|
734
734
|
}
|
|
@@ -752,10 +752,10 @@ async function handleGeneratePersonaArtifacts(input) {
|
|
|
752
752
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
|
|
753
753
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
|
|
754
754
|
}
|
|
755
|
-
const { loadPersona } = await import("./loader-
|
|
756
|
-
const { generateRuntime } = await import("./runtime-
|
|
757
|
-
const { generateAgentsMd } = await import("./agents-md-
|
|
758
|
-
const { generateCIWorkflow } = await import("./ci-workflow-
|
|
755
|
+
const { loadPersona } = await import("./loader-6QTJC7IN.js");
|
|
756
|
+
const { generateRuntime } = await import("./runtime-VFZK6BCZ.js");
|
|
757
|
+
const { generateAgentsMd } = await import("./agents-md-6SAMHE7H.js");
|
|
758
|
+
const { generateCIWorkflow } = await import("./ci-workflow-7T2XKB3P.js");
|
|
759
759
|
const personasDir = resolvePersonasDir();
|
|
760
760
|
const filePath = path3.join(personasDir, `${input.name}.yaml`);
|
|
761
761
|
if (!filePath.startsWith(personasDir)) {
|
|
@@ -810,7 +810,7 @@ async function handleRunPersona(input) {
|
|
|
810
810
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
|
|
811
811
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
|
|
812
812
|
}
|
|
813
|
-
const { loadPersona } = await import("./loader-
|
|
813
|
+
const { loadPersona } = await import("./loader-6QTJC7IN.js");
|
|
814
814
|
const { runPersona } = await import("./runner-AAEF2TXY.js");
|
|
815
815
|
const { executeSkill } = await import("./skill-executor-MOCUIAYS.js");
|
|
816
816
|
const personasDir = resolvePersonasDir();
|
|
@@ -1255,7 +1255,7 @@ function loadOrGenerateProfile(projectRoot) {
|
|
|
1255
1255
|
// src/mcp/tools/event-emitter.ts
|
|
1256
1256
|
async function emitSkillEvent(projectPath, event) {
|
|
1257
1257
|
try {
|
|
1258
|
-
const { emitEvent } = await import("./dist-
|
|
1258
|
+
const { emitEvent } = await import("./dist-77VNTHWV.js");
|
|
1259
1259
|
await emitEvent(projectPath, event);
|
|
1260
1260
|
} catch {
|
|
1261
1261
|
}
|
|
@@ -1527,7 +1527,7 @@ async function autoSyncRoadmap(projectPath) {
|
|
|
1527
1527
|
try {
|
|
1528
1528
|
const roadmapFile = path10.join(projectPath, "docs", "roadmap.md");
|
|
1529
1529
|
if (!fs9.existsSync(roadmapFile)) return;
|
|
1530
|
-
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-
|
|
1530
|
+
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-77VNTHWV.js");
|
|
1531
1531
|
const raw = fs9.readFileSync(roadmapFile, "utf-8");
|
|
1532
1532
|
const parseResult = parseRoadmap(raw);
|
|
1533
1533
|
if (!parseResult.ok) return;
|
|
@@ -1557,7 +1557,7 @@ async function triggerExternalSync(projectPath, roadmapFile) {
|
|
|
1557
1557
|
console.warn("[roadmap-sync] GITHUB_TOKEN not found \u2014 external sync skipped");
|
|
1558
1558
|
return;
|
|
1559
1559
|
}
|
|
1560
|
-
const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-
|
|
1560
|
+
const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-77VNTHWV.js");
|
|
1561
1561
|
const adapter = new GitHubIssuesSyncAdapter({
|
|
1562
1562
|
token,
|
|
1563
1563
|
config: trackerConfig
|
|
@@ -1654,12 +1654,12 @@ var manageStateDefinition = {
|
|
|
1654
1654
|
}
|
|
1655
1655
|
};
|
|
1656
1656
|
async function handleShow(projectPath, input) {
|
|
1657
|
-
const { loadState } = await import("./dist-
|
|
1657
|
+
const { loadState } = await import("./dist-77VNTHWV.js");
|
|
1658
1658
|
return resultToMcpResponse(await loadState(projectPath, input.stream, input.session));
|
|
1659
1659
|
}
|
|
1660
1660
|
async function handleLearn(projectPath, input) {
|
|
1661
1661
|
if (!input.learning) return mcpError("Error: learning is required for learn action");
|
|
1662
|
-
const { appendLearning } = await import("./dist-
|
|
1662
|
+
const { appendLearning } = await import("./dist-77VNTHWV.js");
|
|
1663
1663
|
const result = await appendLearning(
|
|
1664
1664
|
projectPath,
|
|
1665
1665
|
input.learning,
|
|
@@ -1674,7 +1674,7 @@ async function handleLearn(projectPath, input) {
|
|
|
1674
1674
|
async function handleFailure(projectPath, input) {
|
|
1675
1675
|
if (!input.description) return mcpError("Error: description is required for failure action");
|
|
1676
1676
|
if (!input.failureType) return mcpError("Error: failureType is required for failure action");
|
|
1677
|
-
const { appendFailure } = await import("./dist-
|
|
1677
|
+
const { appendFailure } = await import("./dist-77VNTHWV.js");
|
|
1678
1678
|
const result = await appendFailure(
|
|
1679
1679
|
projectPath,
|
|
1680
1680
|
input.description,
|
|
@@ -1693,19 +1693,19 @@ async function handleFailure(projectPath, input) {
|
|
|
1693
1693
|
return resultToMcpResponse(Ok({ recorded: true }));
|
|
1694
1694
|
}
|
|
1695
1695
|
async function handleArchive(projectPath, input) {
|
|
1696
|
-
const { archiveFailures } = await import("./dist-
|
|
1696
|
+
const { archiveFailures } = await import("./dist-77VNTHWV.js");
|
|
1697
1697
|
const result = await archiveFailures(projectPath, input.stream, input.session);
|
|
1698
1698
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1699
1699
|
return resultToMcpResponse(Ok({ archived: true }));
|
|
1700
1700
|
}
|
|
1701
1701
|
async function handleReset(projectPath, input) {
|
|
1702
|
-
const { saveState, DEFAULT_STATE } = await import("./dist-
|
|
1702
|
+
const { saveState, DEFAULT_STATE } = await import("./dist-77VNTHWV.js");
|
|
1703
1703
|
const result = await saveState(projectPath, { ...DEFAULT_STATE }, input.stream, input.session);
|
|
1704
1704
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1705
1705
|
return resultToMcpResponse(Ok({ reset: true }));
|
|
1706
1706
|
}
|
|
1707
1707
|
async function handleGate(projectPath, input) {
|
|
1708
|
-
const { runMechanicalGate } = await import("./dist-
|
|
1708
|
+
const { runMechanicalGate } = await import("./dist-77VNTHWV.js");
|
|
1709
1709
|
const result = await runMechanicalGate(projectPath);
|
|
1710
1710
|
if (result.ok) {
|
|
1711
1711
|
await emitSkillEvent(projectPath, {
|
|
@@ -1725,7 +1725,7 @@ async function handleGate(projectPath, input) {
|
|
|
1725
1725
|
}
|
|
1726
1726
|
async function handleSaveHandoff(projectPath, input) {
|
|
1727
1727
|
if (!input.handoff) return mcpError("Error: handoff is required for save-handoff action");
|
|
1728
|
-
const { saveHandoff } = await import("./dist-
|
|
1728
|
+
const { saveHandoff } = await import("./dist-77VNTHWV.js");
|
|
1729
1729
|
const result = await saveHandoff(
|
|
1730
1730
|
projectPath,
|
|
1731
1731
|
input.handoff,
|
|
@@ -1747,7 +1747,7 @@ async function handleSaveHandoff(projectPath, input) {
|
|
|
1747
1747
|
return resultToMcpResponse(Ok({ saved: true }));
|
|
1748
1748
|
}
|
|
1749
1749
|
async function handleLoadHandoff(projectPath, input) {
|
|
1750
|
-
const { loadHandoff } = await import("./dist-
|
|
1750
|
+
const { loadHandoff } = await import("./dist-77VNTHWV.js");
|
|
1751
1751
|
return resultToMcpResponse(await loadHandoff(projectPath, input.stream, input.session));
|
|
1752
1752
|
}
|
|
1753
1753
|
async function handleAppendEntry(projectPath, input) {
|
|
@@ -1755,7 +1755,7 @@ async function handleAppendEntry(projectPath, input) {
|
|
|
1755
1755
|
if (!input.authorSkill) return mcpError("Error: authorSkill is required for append_entry action");
|
|
1756
1756
|
if (!input.content) return mcpError("Error: content is required for append_entry action");
|
|
1757
1757
|
if (input.session) {
|
|
1758
|
-
const { appendSessionEntry } = await import("./dist-
|
|
1758
|
+
const { appendSessionEntry } = await import("./dist-77VNTHWV.js");
|
|
1759
1759
|
const result = await appendSessionEntry(
|
|
1760
1760
|
projectPath,
|
|
1761
1761
|
input.session,
|
|
@@ -1768,7 +1768,7 @@ async function handleAppendEntry(projectPath, input) {
|
|
|
1768
1768
|
if (input.section !== "decisions") {
|
|
1769
1769
|
return mcpError("Error: session is required for non-decisions sections");
|
|
1770
1770
|
}
|
|
1771
|
-
const { loadState, saveState } = await import("./dist-
|
|
1771
|
+
const { loadState, saveState } = await import("./dist-77VNTHWV.js");
|
|
1772
1772
|
const lr = await loadState(projectPath, input.stream);
|
|
1773
1773
|
if (!lr.ok) return resultToMcpResponse(lr);
|
|
1774
1774
|
lr.value.decisions.push({
|
|
@@ -1786,7 +1786,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
1786
1786
|
if (!input.entryId) return mcpError("Error: entryId is required for update_entry_status action");
|
|
1787
1787
|
if (!input.newStatus)
|
|
1788
1788
|
return mcpError("Error: newStatus is required for update_entry_status action");
|
|
1789
|
-
const { updateSessionEntryStatus } = await import("./dist-
|
|
1789
|
+
const { updateSessionEntryStatus } = await import("./dist-77VNTHWV.js");
|
|
1790
1790
|
const result = await updateSessionEntryStatus(
|
|
1791
1791
|
projectPath,
|
|
1792
1792
|
input.session,
|
|
@@ -1799,7 +1799,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
1799
1799
|
async function handleReadSection(projectPath, input) {
|
|
1800
1800
|
if (!input.session) return mcpError("Error: session is required for read_section action");
|
|
1801
1801
|
if (!input.section) return mcpError("Error: section is required for read_section action");
|
|
1802
|
-
const { readSessionSection } = await import("./dist-
|
|
1802
|
+
const { readSessionSection } = await import("./dist-77VNTHWV.js");
|
|
1803
1803
|
const result = await readSessionSection(
|
|
1804
1804
|
projectPath,
|
|
1805
1805
|
input.session,
|
|
@@ -1809,13 +1809,13 @@ async function handleReadSection(projectPath, input) {
|
|
|
1809
1809
|
}
|
|
1810
1810
|
async function handleReadSections(projectPath, input) {
|
|
1811
1811
|
if (!input.session) return mcpError("Error: session is required for read_sections action");
|
|
1812
|
-
const { readSessionSections } = await import("./dist-
|
|
1812
|
+
const { readSessionSections } = await import("./dist-77VNTHWV.js");
|
|
1813
1813
|
const result = await readSessionSections(projectPath, input.session);
|
|
1814
1814
|
return resultToMcpResponse(result);
|
|
1815
1815
|
}
|
|
1816
1816
|
async function handleArchiveSession(projectPath, input) {
|
|
1817
1817
|
if (!input.session) return mcpError("Error: session is required for archive_session action");
|
|
1818
|
-
const { archiveSession } = await import("./dist-
|
|
1818
|
+
const { archiveSession } = await import("./dist-77VNTHWV.js");
|
|
1819
1819
|
const result = await archiveSession(projectPath, input.session);
|
|
1820
1820
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1821
1821
|
await autoSyncRoadmap(projectPath);
|
|
@@ -1895,7 +1895,7 @@ var listStreamsDefinition = {
|
|
|
1895
1895
|
};
|
|
1896
1896
|
async function handleListStreams(input) {
|
|
1897
1897
|
try {
|
|
1898
|
-
const { listStreams, loadStreamIndex } = await import("./dist-
|
|
1898
|
+
const { listStreams, loadStreamIndex } = await import("./dist-77VNTHWV.js");
|
|
1899
1899
|
const projectPath = sanitizePath(input.path);
|
|
1900
1900
|
const indexResult = await loadStreamIndex(projectPath);
|
|
1901
1901
|
const streamsResult = await listStreams(projectPath);
|
|
@@ -1933,7 +1933,7 @@ var checkPhaseGateDefinition = {
|
|
|
1933
1933
|
};
|
|
1934
1934
|
async function handleCheckPhaseGate(input) {
|
|
1935
1935
|
try {
|
|
1936
|
-
const { runCheckPhaseGate } = await import("./check-phase-gate-
|
|
1936
|
+
const { runCheckPhaseGate } = await import("./check-phase-gate-PLV2VDOL.js");
|
|
1937
1937
|
const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
|
|
1938
1938
|
if (result.ok) {
|
|
1939
1939
|
return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
|
|
@@ -1989,7 +1989,7 @@ async function handleValidateCrossCheck(input) {
|
|
|
1989
1989
|
};
|
|
1990
1990
|
}
|
|
1991
1991
|
try {
|
|
1992
|
-
const { runCrossCheck } = await import("./validate-cross-check-
|
|
1992
|
+
const { runCrossCheck } = await import("./validate-cross-check-DGHTJFVH.js");
|
|
1993
1993
|
const specsDir = path11.resolve(projectPath, input.specsDir ?? "docs/specs");
|
|
1994
1994
|
if (!specsDir.startsWith(projectPath)) {
|
|
1995
1995
|
return {
|
|
@@ -2712,7 +2712,7 @@ async function handleGenerateSlashCommands(input) {
|
|
|
2712
2712
|
// src/mcp/resources/state.ts
|
|
2713
2713
|
async function getStateResource(projectRoot) {
|
|
2714
2714
|
try {
|
|
2715
|
-
const { loadState, migrateToStreams } = await import("./dist-
|
|
2715
|
+
const { loadState, migrateToStreams } = await import("./dist-77VNTHWV.js");
|
|
2716
2716
|
await migrateToStreams(projectRoot);
|
|
2717
2717
|
const result = await loadState(projectRoot);
|
|
2718
2718
|
if (result.ok) {
|
|
@@ -2830,7 +2830,7 @@ async function handleQueryGraph(input) {
|
|
|
2830
2830
|
const projectPath = sanitizePath(input.path);
|
|
2831
2831
|
const store = await loadGraphStore(projectPath);
|
|
2832
2832
|
if (!store) return graphNotFoundError();
|
|
2833
|
-
const { ContextQL } = await import("./dist-
|
|
2833
|
+
const { ContextQL } = await import("./dist-42AYXCAK.js");
|
|
2834
2834
|
const cql = new ContextQL(store);
|
|
2835
2835
|
const result = cql.execute({
|
|
2836
2836
|
rootNodeIds: input.rootNodeIds,
|
|
@@ -2912,7 +2912,7 @@ async function handleSearchSimilar(input) {
|
|
|
2912
2912
|
const projectPath = sanitizePath(input.path);
|
|
2913
2913
|
const store = await loadGraphStore(projectPath);
|
|
2914
2914
|
if (!store) return graphNotFoundError();
|
|
2915
|
-
const { FusionLayer } = await import("./dist-
|
|
2915
|
+
const { FusionLayer } = await import("./dist-42AYXCAK.js");
|
|
2916
2916
|
const fusion = new FusionLayer(store);
|
|
2917
2917
|
const results = fusion.search(input.query, input.topK ?? 10);
|
|
2918
2918
|
if (input.mode === "summary") {
|
|
@@ -2967,7 +2967,7 @@ async function handleFindContextFor(input) {
|
|
|
2967
2967
|
const projectPath = sanitizePath(input.path);
|
|
2968
2968
|
const store = await loadGraphStore(projectPath);
|
|
2969
2969
|
if (!store) return graphNotFoundError();
|
|
2970
|
-
const { FusionLayer, ContextQL } = await import("./dist-
|
|
2970
|
+
const { FusionLayer, ContextQL } = await import("./dist-42AYXCAK.js");
|
|
2971
2971
|
const fusion = new FusionLayer(store);
|
|
2972
2972
|
const cql = new ContextQL(store);
|
|
2973
2973
|
const tokenBudget = input.tokenBudget ?? 4e3;
|
|
@@ -3072,7 +3072,7 @@ async function handleGetRelationships(input) {
|
|
|
3072
3072
|
const projectPath = sanitizePath(input.path);
|
|
3073
3073
|
const store = await loadGraphStore(projectPath);
|
|
3074
3074
|
if (!store) return graphNotFoundError();
|
|
3075
|
-
const { ContextQL } = await import("./dist-
|
|
3075
|
+
const { ContextQL } = await import("./dist-42AYXCAK.js");
|
|
3076
3076
|
const cql = new ContextQL(store);
|
|
3077
3077
|
const direction = input.direction ?? "both";
|
|
3078
3078
|
const bidirectional = direction === "both" || direction === "inbound";
|
|
@@ -3190,7 +3190,7 @@ async function handleGetImpact(input) {
|
|
|
3190
3190
|
const projectPath = sanitizePath(input.path);
|
|
3191
3191
|
const store = await loadGraphStore(projectPath);
|
|
3192
3192
|
if (!store) return graphNotFoundError();
|
|
3193
|
-
const { ContextQL } = await import("./dist-
|
|
3193
|
+
const { ContextQL } = await import("./dist-42AYXCAK.js");
|
|
3194
3194
|
let targetNodeId = input.nodeId;
|
|
3195
3195
|
if (!targetNodeId && input.filePath) {
|
|
3196
3196
|
const fileNodes = store.findNodes({ type: "file" });
|
|
@@ -3322,7 +3322,7 @@ async function handleIngestSource(input) {
|
|
|
3322
3322
|
try {
|
|
3323
3323
|
const projectPath = sanitizePath(input.path);
|
|
3324
3324
|
const graphDir = path15.join(projectPath, ".harness", "graph");
|
|
3325
|
-
const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-
|
|
3325
|
+
const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-42AYXCAK.js");
|
|
3326
3326
|
const fs17 = await import("fs/promises");
|
|
3327
3327
|
await fs17.mkdir(graphDir, { recursive: true });
|
|
3328
3328
|
const store = new GraphStore();
|
|
@@ -3346,13 +3346,13 @@ async function handleIngestSource(input) {
|
|
|
3346
3346
|
results.push(gitResult);
|
|
3347
3347
|
}
|
|
3348
3348
|
if (input.source === "business-signals" || input.source === "all") {
|
|
3349
|
-
const { createExtractionRunner } = await import("./dist-
|
|
3349
|
+
const { createExtractionRunner } = await import("./dist-42AYXCAK.js");
|
|
3350
3350
|
const extractedDir = path15.join(projectPath, ".harness", "knowledge", "extracted");
|
|
3351
3351
|
const signalsResult = await createExtractionRunner().run(projectPath, store, extractedDir);
|
|
3352
3352
|
results.push(signalsResult);
|
|
3353
3353
|
}
|
|
3354
3354
|
if (input.source === "diagrams" || input.source === "all") {
|
|
3355
|
-
const { DiagramParser } = await import("./dist-
|
|
3355
|
+
const { DiagramParser } = await import("./dist-42AYXCAK.js");
|
|
3356
3356
|
const diagramParser = new DiagramParser(store);
|
|
3357
3357
|
const diagramResult = await diagramParser.ingest(projectPath);
|
|
3358
3358
|
results.push(diagramResult);
|
|
@@ -3418,7 +3418,7 @@ async function handleDetectAnomalies(input) {
|
|
|
3418
3418
|
const projectPath = sanitizePath(input.path);
|
|
3419
3419
|
const store = await loadGraphStore(projectPath);
|
|
3420
3420
|
if (!store) return graphNotFoundError();
|
|
3421
|
-
const { GraphAnomalyAdapter } = await import("./dist-
|
|
3421
|
+
const { GraphAnomalyAdapter } = await import("./dist-42AYXCAK.js");
|
|
3422
3422
|
const adapter = new GraphAnomalyAdapter(store);
|
|
3423
3423
|
const report = adapter.detect({
|
|
3424
3424
|
...input.threshold !== void 0 && { threshold: input.threshold },
|
|
@@ -3467,7 +3467,7 @@ async function handleAskGraph(input) {
|
|
|
3467
3467
|
const projectPath = sanitizePath(input.path);
|
|
3468
3468
|
const store = await loadGraphStore(projectPath);
|
|
3469
3469
|
if (!store) return graphNotFoundError();
|
|
3470
|
-
const { askGraph } = await import("./dist-
|
|
3470
|
+
const { askGraph } = await import("./dist-42AYXCAK.js");
|
|
3471
3471
|
const result = await askGraph(store, input.question);
|
|
3472
3472
|
return {
|
|
3473
3473
|
content: [{ type: "text", text: JSON.stringify(result) }]
|
|
@@ -3531,7 +3531,7 @@ async function handleComputeBlastRadius(input) {
|
|
|
3531
3531
|
const projectPath = sanitizePath(input.path);
|
|
3532
3532
|
const store = await loadGraphStore(projectPath);
|
|
3533
3533
|
if (!store) return graphNotFoundError();
|
|
3534
|
-
const { CascadeSimulator } = await import("./dist-
|
|
3534
|
+
const { CascadeSimulator } = await import("./dist-42AYXCAK.js");
|
|
3535
3535
|
let targetNodeId = input.nodeId;
|
|
3536
3536
|
if (!targetNodeId && input.file) {
|
|
3537
3537
|
const fileNodes = store.findNodes({ type: "file" });
|
|
@@ -3732,7 +3732,7 @@ var generateAgentDefinitionsDefinition = {
|
|
|
3732
3732
|
}
|
|
3733
3733
|
};
|
|
3734
3734
|
async function handleGenerateAgentDefinitions(input) {
|
|
3735
|
-
const { generateAgentDefinitions } = await import("./generate-agent-definitions-
|
|
3735
|
+
const { generateAgentDefinitions } = await import("./generate-agent-definitions-BOUGQIPA.js");
|
|
3736
3736
|
const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
|
|
3737
3737
|
const results = generateAgentDefinitions({
|
|
3738
3738
|
platforms: [...platforms],
|
|
@@ -3914,7 +3914,7 @@ function handleAdd(projectPath, input, deps) {
|
|
|
3914
3914
|
return resultToMcpResponse(Ok2(roadmap));
|
|
3915
3915
|
}
|
|
3916
3916
|
function handleUpdate(projectPath, input, deps) {
|
|
3917
|
-
const { parseRoadmap, serializeRoadmap, Ok: Ok2 } = deps;
|
|
3917
|
+
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, Ok: Ok2 } = deps;
|
|
3918
3918
|
if (!input.feature) {
|
|
3919
3919
|
return {
|
|
3920
3920
|
content: [{ type: "text", text: "Error: feature is required for update action" }],
|
|
@@ -3948,6 +3948,10 @@ function handleUpdate(projectPath, input, deps) {
|
|
|
3948
3948
|
isError: true
|
|
3949
3949
|
};
|
|
3950
3950
|
}
|
|
3951
|
+
const cascade = syncRoadmap({ projectPath, roadmap });
|
|
3952
|
+
if (cascade.ok && cascade.value.length > 0) {
|
|
3953
|
+
applySyncChanges(roadmap, cascade.value);
|
|
3954
|
+
}
|
|
3951
3955
|
roadmap.frontmatter.lastManualEdit = (/* @__PURE__ */ new Date()).toISOString();
|
|
3952
3956
|
writeRoadmapFile(projectPath, serializeRoadmap(roadmap));
|
|
3953
3957
|
return resultToMcpResponse(Ok2(roadmap));
|
|
@@ -4060,7 +4064,7 @@ function shouldTriggerExternalSync(input, response) {
|
|
|
4060
4064
|
}
|
|
4061
4065
|
async function handleManageRoadmap(input) {
|
|
4062
4066
|
try {
|
|
4063
|
-
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-
|
|
4067
|
+
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-77VNTHWV.js");
|
|
4064
4068
|
const { Ok: Ok2 } = await import("./dist-3EWNRFFQ.js");
|
|
4065
4069
|
const projectPath = sanitizePath(input.path);
|
|
4066
4070
|
const deps = {
|
|
@@ -4499,7 +4503,7 @@ async function handleTransition(validInput, projectPath, id) {
|
|
|
4499
4503
|
const transition = transitionResult.data;
|
|
4500
4504
|
const prompt = renderTransition(transition);
|
|
4501
4505
|
try {
|
|
4502
|
-
const { saveHandoff } = await import("./dist-
|
|
4506
|
+
const { saveHandoff } = await import("./dist-77VNTHWV.js");
|
|
4503
4507
|
await saveHandoff(
|
|
4504
4508
|
projectPath,
|
|
4505
4509
|
{
|
|
@@ -4580,7 +4584,7 @@ async function handleEmitInteraction(input) {
|
|
|
4580
4584
|
}
|
|
4581
4585
|
async function recordInteraction(projectPath, id, type, decision, stream) {
|
|
4582
4586
|
try {
|
|
4583
|
-
const { loadState, saveState } = await import("./dist-
|
|
4587
|
+
const { loadState, saveState } = await import("./dist-77VNTHWV.js");
|
|
4584
4588
|
const stateResult = await loadState(projectPath, stream);
|
|
4585
4589
|
if (stateResult.ok) {
|
|
4586
4590
|
const state = stateResult.value;
|
|
@@ -4741,10 +4745,10 @@ async function handleGatherContext(input) {
|
|
|
4741
4745
|
input.include ?? ["state", "learnings", "handoff", "graph", "validation", "businessKnowledge"]
|
|
4742
4746
|
);
|
|
4743
4747
|
const errors = [];
|
|
4744
|
-
const statePromise = includeSet.has("state") ? import("./dist-
|
|
4748
|
+
const statePromise = includeSet.has("state") ? import("./dist-77VNTHWV.js").then(
|
|
4745
4749
|
(core) => core.loadState(projectPath, void 0, input.session)
|
|
4746
4750
|
) : Promise.resolve(null);
|
|
4747
|
-
const learningsPromise = includeSet.has("learnings") ? import("./dist-
|
|
4751
|
+
const learningsPromise = includeSet.has("learnings") ? import("./dist-77VNTHWV.js").then(
|
|
4748
4752
|
(core) => core.loadBudgetedLearnings(projectPath, {
|
|
4749
4753
|
intent: input.intent,
|
|
4750
4754
|
tokenBudget: input.learningsBudget ?? 1e3,
|
|
@@ -4753,14 +4757,14 @@ async function handleGatherContext(input) {
|
|
|
4753
4757
|
...input.depth !== void 0 && { depth: input.depth }
|
|
4754
4758
|
})
|
|
4755
4759
|
) : Promise.resolve(null);
|
|
4756
|
-
const handoffPromise = includeSet.has("handoff") ? import("./dist-
|
|
4760
|
+
const handoffPromise = includeSet.has("handoff") ? import("./dist-77VNTHWV.js").then(
|
|
4757
4761
|
(core) => core.loadHandoff(projectPath, void 0, input.session)
|
|
4758
4762
|
) : Promise.resolve(null);
|
|
4759
4763
|
const graphPromise = includeSet.has("graph") ? (async () => {
|
|
4760
|
-
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-
|
|
4764
|
+
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-IAUPGLRV.js");
|
|
4761
4765
|
const store = await loadGraphStore2(projectPath);
|
|
4762
4766
|
if (!store) return null;
|
|
4763
|
-
const { FusionLayer, ContextQL } = await import("./dist-
|
|
4767
|
+
const { FusionLayer, ContextQL } = await import("./dist-42AYXCAK.js");
|
|
4764
4768
|
const fusion = new FusionLayer(store);
|
|
4765
4769
|
const cql = new ContextQL(store);
|
|
4766
4770
|
const tokenBudget = input.tokenBudget ?? 4e3;
|
|
@@ -4797,11 +4801,11 @@ async function handleGatherContext(input) {
|
|
|
4797
4801
|
context: contextBlocks
|
|
4798
4802
|
};
|
|
4799
4803
|
})() : Promise.resolve(null);
|
|
4800
|
-
const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-
|
|
4804
|
+
const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-77VNTHWV.js").then(
|
|
4801
4805
|
(core) => core.readSessionSections(projectPath, input.session)
|
|
4802
4806
|
) : Promise.resolve(null);
|
|
4803
4807
|
const shouldIncludeEvents = input.includeEvents !== void 0 ? input.includeEvents : includeSet.has("events") || !!input.session && !input.include;
|
|
4804
|
-
const eventsPromise = shouldIncludeEvents ? import("./dist-
|
|
4808
|
+
const eventsPromise = shouldIncludeEvents ? import("./dist-77VNTHWV.js").then(async (core) => {
|
|
4805
4809
|
const result = await core.loadEvents(projectPath, {
|
|
4806
4810
|
session: input.session
|
|
4807
4811
|
});
|
|
@@ -4809,7 +4813,7 @@ async function handleGatherContext(input) {
|
|
|
4809
4813
|
return core.formatEventTimeline(result.value);
|
|
4810
4814
|
}) : Promise.resolve(null);
|
|
4811
4815
|
const validationPromise = includeSet.has("validation") ? (async () => {
|
|
4812
|
-
const { handleValidateProject: handleValidateProject2 } = await import("./validate-
|
|
4816
|
+
const { handleValidateProject: handleValidateProject2 } = await import("./validate-YEMAFWJE.js");
|
|
4813
4817
|
const result = await handleValidateProject2({ path: projectPath });
|
|
4814
4818
|
const first = result.content[0];
|
|
4815
4819
|
return first ? JSON.parse(first.text) : null;
|
|
@@ -4912,7 +4916,7 @@ async function handleGatherContext(input) {
|
|
|
4912
4916
|
};
|
|
4913
4917
|
if (input.session) {
|
|
4914
4918
|
try {
|
|
4915
|
-
const core = await import("./dist-
|
|
4919
|
+
const core = await import("./dist-77VNTHWV.js");
|
|
4916
4920
|
core.updateSessionIndex(
|
|
4917
4921
|
projectPath,
|
|
4918
4922
|
input.session,
|
|
@@ -5064,7 +5068,7 @@ async function handleReviewChanges(input) {
|
|
|
5064
5068
|
}
|
|
5065
5069
|
}
|
|
5066
5070
|
async function runQuickReview(projectPath, diff, diffLines, downgraded, offset, limit) {
|
|
5067
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-
|
|
5071
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-NST6T4HI.js");
|
|
5068
5072
|
const result = await handleAnalyzeDiff2({ diff, path: projectPath });
|
|
5069
5073
|
const firstContent = result.content[0];
|
|
5070
5074
|
if (!firstContent) throw new Error("Empty analyze_diff response");
|
|
@@ -5099,7 +5103,7 @@ function extractFileCount(diffParsed) {
|
|
|
5099
5103
|
return files?.length ?? 0;
|
|
5100
5104
|
}
|
|
5101
5105
|
async function runStandardReview(projectPath, diff, diffLines, downgraded, offset, limit) {
|
|
5102
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-
|
|
5106
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-NST6T4HI.js");
|
|
5103
5107
|
const [diffResult, reviewResult] = await Promise.all([
|
|
5104
5108
|
handleAnalyzeDiff2({ diff, path: projectPath }),
|
|
5105
5109
|
handleCreateSelfReview2({ path: projectPath, diff })
|
|
@@ -5134,7 +5138,7 @@ async function runStandardReview(projectPath, diff, diffLines, downgraded, offse
|
|
|
5134
5138
|
};
|
|
5135
5139
|
}
|
|
5136
5140
|
async function runDeepReview(projectPath, diff, diffLines, _downgraded, offset, limit) {
|
|
5137
|
-
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-
|
|
5141
|
+
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-6EYMBS6B.js");
|
|
5138
5142
|
const result = await handleRunCodeReview2({
|
|
5139
5143
|
path: projectPath,
|
|
5140
5144
|
diff,
|
|
@@ -5213,7 +5217,7 @@ async function handleCheckTaskIndependence(input) {
|
|
|
5213
5217
|
try {
|
|
5214
5218
|
const projectPath = sanitizePath(input.path);
|
|
5215
5219
|
const store = await loadGraphStore(projectPath);
|
|
5216
|
-
const { TaskIndependenceAnalyzer } = await import("./dist-
|
|
5220
|
+
const { TaskIndependenceAnalyzer } = await import("./dist-42AYXCAK.js");
|
|
5217
5221
|
const analyzer = new TaskIndependenceAnalyzer(store ?? void 0);
|
|
5218
5222
|
const result = analyzer.analyze({
|
|
5219
5223
|
tasks: input.tasks,
|
|
@@ -5301,7 +5305,7 @@ async function handlePredictConflicts(input) {
|
|
|
5301
5305
|
try {
|
|
5302
5306
|
const projectPath = sanitizePath(input.path);
|
|
5303
5307
|
const store = await loadGraphStore(projectPath);
|
|
5304
|
-
const { ConflictPredictor } = await import("./dist-
|
|
5308
|
+
const { ConflictPredictor } = await import("./dist-42AYXCAK.js");
|
|
5305
5309
|
const predictor = new ConflictPredictor(store ?? void 0);
|
|
5306
5310
|
const result = predictor.predict({
|
|
5307
5311
|
tasks: input.tasks,
|
|
@@ -5407,7 +5411,7 @@ async function handleDetectStaleConstraints(input) {
|
|
|
5407
5411
|
isError: true
|
|
5408
5412
|
};
|
|
5409
5413
|
}
|
|
5410
|
-
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-
|
|
5414
|
+
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-IAUPGLRV.js");
|
|
5411
5415
|
const store = await loadGraphStore2(projectPath);
|
|
5412
5416
|
if (!store) {
|
|
5413
5417
|
return {
|
|
@@ -5428,7 +5432,7 @@ async function handleDetectStaleConstraints(input) {
|
|
|
5428
5432
|
]
|
|
5429
5433
|
};
|
|
5430
5434
|
}
|
|
5431
|
-
const { detectStaleConstraints } = await import("./dist-
|
|
5435
|
+
const { detectStaleConstraints } = await import("./dist-77VNTHWV.js");
|
|
5432
5436
|
const result = detectStaleConstraints(
|
|
5433
5437
|
store,
|
|
5434
5438
|
windowDays,
|
|
@@ -5548,10 +5552,10 @@ function countCriticalFindings(securityData) {
|
|
|
5548
5552
|
return findings.filter((f) => f.severity === "error").length;
|
|
5549
5553
|
}
|
|
5550
5554
|
async function runHealthChecks(projectPath) {
|
|
5551
|
-
const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-
|
|
5552
|
-
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-
|
|
5553
|
-
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-
|
|
5554
|
-
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-
|
|
5555
|
+
const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-5X7TYQFM.js");
|
|
5556
|
+
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-5YR52NSV.js");
|
|
5557
|
+
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-GSUTIORR.js");
|
|
5558
|
+
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-HRNTYHPM.js");
|
|
5555
5559
|
const [assessResult, depsResult, entropyResult, securityResult] = await Promise.all([
|
|
5556
5560
|
handleAssessProject2({
|
|
5557
5561
|
path: projectPath,
|
|
@@ -5606,10 +5610,10 @@ function avg(values) {
|
|
|
5606
5610
|
}
|
|
5607
5611
|
async function runGraphMetrics(projectPath) {
|
|
5608
5612
|
try {
|
|
5609
|
-
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-
|
|
5613
|
+
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-IAUPGLRV.js");
|
|
5610
5614
|
const store = await loadGraphStore2(projectPath);
|
|
5611
5615
|
if (!store) return ZERO_METRICS;
|
|
5612
|
-
const { GraphCouplingAdapter, GraphComplexityAdapter, GraphAnomalyAdapter } = await import("./dist-
|
|
5616
|
+
const { GraphCouplingAdapter, GraphComplexityAdapter, GraphAnomalyAdapter } = await import("./dist-42AYXCAK.js");
|
|
5613
5617
|
const couplingAdapter = new GraphCouplingAdapter(store);
|
|
5614
5618
|
const couplingData = couplingAdapter.computeCouplingData();
|
|
5615
5619
|
const files = couplingData.files;
|
|
@@ -6392,7 +6396,7 @@ async function handleGetDecayTrends(input) {
|
|
|
6392
6396
|
};
|
|
6393
6397
|
}
|
|
6394
6398
|
try {
|
|
6395
|
-
const core = await import("./dist-
|
|
6399
|
+
const core = await import("./dist-77VNTHWV.js");
|
|
6396
6400
|
const { TimelineManager } = core;
|
|
6397
6401
|
const manager = new TimelineManager(projectPath);
|
|
6398
6402
|
const timeline = manager.load();
|
|
@@ -6527,7 +6531,7 @@ async function handleCodeOutline(input) {
|
|
|
6527
6531
|
};
|
|
6528
6532
|
}
|
|
6529
6533
|
try {
|
|
6530
|
-
const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-
|
|
6534
|
+
const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-77VNTHWV.js");
|
|
6531
6535
|
const { stat } = await import("fs/promises");
|
|
6532
6536
|
const stats = await stat(targetPath).catch(() => null);
|
|
6533
6537
|
if (stats?.isFile()) {
|
|
@@ -6546,7 +6550,7 @@ async function handleCodeOutline(input) {
|
|
|
6546
6550
|
})
|
|
6547
6551
|
);
|
|
6548
6552
|
fileStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
6549
|
-
const { paginate: paginate2 } = await import("./dist-
|
|
6553
|
+
const { paginate: paginate2 } = await import("./dist-77VNTHWV.js");
|
|
6550
6554
|
const paged = paginate2(fileStats, input.offset ?? 0, input.limit ?? 30);
|
|
6551
6555
|
const results = [];
|
|
6552
6556
|
for (const entry of paged.items) {
|
|
@@ -6619,7 +6623,7 @@ async function handleCodeSearch(input) {
|
|
|
6619
6623
|
};
|
|
6620
6624
|
}
|
|
6621
6625
|
try {
|
|
6622
|
-
const { searchSymbols } = await import("./dist-
|
|
6626
|
+
const { searchSymbols } = await import("./dist-77VNTHWV.js");
|
|
6623
6627
|
const result = await searchSymbols(input.query, directory, input.glob);
|
|
6624
6628
|
const lines = [`Search: "${result.query}" \u2014 ${result.matches.length} matches`];
|
|
6625
6629
|
for (const match of result.matches) {
|
|
@@ -6688,7 +6692,7 @@ async function handleCodeUnfold(input) {
|
|
|
6688
6692
|
}
|
|
6689
6693
|
try {
|
|
6690
6694
|
if (input.symbol) {
|
|
6691
|
-
const { unfoldSymbol } = await import("./dist-
|
|
6695
|
+
const { unfoldSymbol } = await import("./dist-77VNTHWV.js");
|
|
6692
6696
|
const result = await unfoldSymbol(filePath, input.symbol);
|
|
6693
6697
|
const header = result.warning ? `${result.file}:${result.startLine}-${result.endLine} ${result.warning}
|
|
6694
6698
|
` : `${result.file}:${result.startLine}-${result.endLine}
|
|
@@ -6696,7 +6700,7 @@ async function handleCodeUnfold(input) {
|
|
|
6696
6700
|
return { content: [{ type: "text", text: header + result.content }] };
|
|
6697
6701
|
}
|
|
6698
6702
|
if (input.startLine != null && input.endLine != null) {
|
|
6699
|
-
const { unfoldRange } = await import("./dist-
|
|
6703
|
+
const { unfoldRange } = await import("./dist-77VNTHWV.js");
|
|
6700
6704
|
const result = await unfoldRange(filePath, input.startLine, input.endLine);
|
|
6701
6705
|
const header = `${result.file}:${result.startLine}-${result.endLine}
|
|
6702
6706
|
`;
|
|
@@ -6758,7 +6762,7 @@ async function handleCheckTraceability(input) {
|
|
|
6758
6762
|
isError: true
|
|
6759
6763
|
};
|
|
6760
6764
|
}
|
|
6761
|
-
const { queryTraceability } = await import("./dist-
|
|
6765
|
+
const { queryTraceability } = await import("./dist-42AYXCAK.js");
|
|
6762
6766
|
const options = {};
|
|
6763
6767
|
if (input.spec) options.specPath = input.spec;
|
|
6764
6768
|
if (input.feature) options.featureName = input.feature;
|
|
@@ -6881,7 +6885,7 @@ async function handlePredictFailures(input) {
|
|
|
6881
6885
|
};
|
|
6882
6886
|
}
|
|
6883
6887
|
try {
|
|
6884
|
-
const core = await import("./dist-
|
|
6888
|
+
const core = await import("./dist-77VNTHWV.js");
|
|
6885
6889
|
const { TimelineManager, PredictionEngine, SpecImpactEstimator } = core;
|
|
6886
6890
|
const manager = new TimelineManager(projectPath);
|
|
6887
6891
|
const includeRoadmap = input.includeRoadmap !== false;
|
|
@@ -7764,7 +7768,7 @@ function handleContentMode(content, pipeline, budget, source) {
|
|
|
7764
7768
|
};
|
|
7765
7769
|
}
|
|
7766
7770
|
async function handleIntentMode(projectPath, intent, pipeline, budget, filterContent) {
|
|
7767
|
-
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-
|
|
7771
|
+
const { loadGraphStore: loadGraphStore2 } = await import("./graph-loader-IAUPGLRV.js");
|
|
7768
7772
|
const store = await loadGraphStore2(projectPath);
|
|
7769
7773
|
if (!store) {
|
|
7770
7774
|
return {
|
|
@@ -7777,7 +7781,7 @@ async function handleIntentMode(projectPath, intent, pipeline, budget, filterCon
|
|
|
7777
7781
|
isError: true
|
|
7778
7782
|
};
|
|
7779
7783
|
}
|
|
7780
|
-
const { PackedSummaryCache, FusionLayer, ContextQL } = await import("./dist-
|
|
7784
|
+
const { PackedSummaryCache, FusionLayer, ContextQL } = await import("./dist-42AYXCAK.js");
|
|
7781
7785
|
const cache = new PackedSummaryCache(store);
|
|
7782
7786
|
const cachedEnvelope = cache.get(intent);
|
|
7783
7787
|
if (cachedEnvelope) {
|
|
@@ -7990,7 +7994,7 @@ async function handleDetectConstraintEmergence(input) {
|
|
|
7990
7994
|
}
|
|
7991
7995
|
const nodePath = await import("path");
|
|
7992
7996
|
const historyPath = nodePath.resolve(projectPath, ".harness/arch/violation-history.json");
|
|
7993
|
-
const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-
|
|
7997
|
+
const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-77VNTHWV.js");
|
|
7994
7998
|
const manager = new ViolationHistoryManager(historyPath);
|
|
7995
7999
|
const history = manager.load();
|
|
7996
8000
|
const options = { windowWeeks, minOccurrences };
|
|
@@ -8078,7 +8082,7 @@ async function handleRunCIChecks(input) {
|
|
|
8078
8082
|
};
|
|
8079
8083
|
}
|
|
8080
8084
|
try {
|
|
8081
|
-
const { runCIChecks } = await import("./dist-
|
|
8085
|
+
const { runCIChecks } = await import("./dist-77VNTHWV.js");
|
|
8082
8086
|
const skip = input.checks ? VALID_CHECKS.filter((c) => !input.checks.includes(c)) : [];
|
|
8083
8087
|
const result = await runCIChecks({
|
|
8084
8088
|
projectRoot: projectPath,
|
|
@@ -8140,7 +8144,7 @@ async function handleGenerateBlueprint(input) {
|
|
|
8140
8144
|
};
|
|
8141
8145
|
}
|
|
8142
8146
|
try {
|
|
8143
|
-
const { ProjectScanner } = await import("./dist-
|
|
8147
|
+
const { ProjectScanner } = await import("./dist-77VNTHWV.js");
|
|
8144
8148
|
const scanner = new ProjectScanner(projectPath);
|
|
8145
8149
|
const data = await scanner.scan();
|
|
8146
8150
|
return {
|
|
@@ -8386,7 +8390,7 @@ async function appendUpdateNotification(result, resolvedRoot) {
|
|
|
8386
8390
|
shouldRunCheck,
|
|
8387
8391
|
readCheckState,
|
|
8388
8392
|
spawnBackgroundCheck
|
|
8389
|
-
} = await import("./dist-
|
|
8393
|
+
} = await import("./dist-77VNTHWV.js");
|
|
8390
8394
|
const { CLI_VERSION } = await import("./version-CUI434OP.js");
|
|
8391
8395
|
const configInterval = readConfigInterval(resolvedRoot);
|
|
8392
8396
|
const DEFAULT_INTERVAL = 864e5;
|