@harness-engineering/cli 2.1.0 → 2.1.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-XCAWON2D.js → agents-md-L4X4MOWT.js} +2 -2
- package/dist/{architecture-KERHEEQZ.js → architecture-WJRIYQ45.js} +3 -3
- package/dist/{assess-project-NPYA3UVI.js → assess-project-PHC2HO3V.js} +1 -1
- package/dist/bin/harness-mcp.js +13 -13
- package/dist/bin/harness.js +22 -22
- package/dist/{check-phase-gate-GE5ALEEU.js → check-phase-gate-646KY67H.js} +3 -3
- package/dist/{chunk-IIX5OJES.js → chunk-224XKVLP.js} +1 -1
- package/dist/{chunk-UWIOBHZL.js → chunk-2QPHCR22.js} +5 -5
- package/dist/{chunk-URLDPALI.js → chunk-2ZURBWEV.js} +3 -3
- package/dist/{chunk-EFA4OEEN.js → chunk-36X7TRUI.js} +2 -2
- package/dist/{chunk-HBQ3BK2E.js → chunk-4HKVZO7R.js} +1 -1
- package/dist/{chunk-T7MNLCUD.js → chunk-7XQYOXTB.js} +74 -72
- package/dist/{chunk-OXFFN3FD.js → chunk-CPYL6LJR.js} +1 -1
- package/dist/{chunk-WW6AUOA3.js → chunk-E7W3YOXL.js} +2 -2
- package/dist/{chunk-FQAJAM54.js → chunk-FNCJ3UCU.js} +26 -27
- package/dist/{chunk-D5FE4L2O.js → chunk-JPWICLXQ.js} +1 -1
- package/dist/{chunk-MAFI6UWT.js → chunk-K4WRQTEF.js} +137 -39
- package/dist/{chunk-M4C3ZIGL.js → chunk-KV7A5OZT.js} +3 -3
- package/dist/{chunk-4FVHBBPY.js → chunk-LO7ZLV7S.js} +1 -1
- package/dist/{chunk-PCX4GPNT.js → chunk-QTUPHTTK.js} +1 -1
- package/dist/{chunk-GCYGGQFM.js → chunk-SVC7THFK.js} +1 -1
- package/dist/{chunk-AEFZJ543.js → chunk-TNZYQTEE.js} +1 -1
- package/dist/{chunk-DRD7LLFC.js → chunk-VJQLUS5I.js} +1 -1
- package/dist/{chunk-LY2TY6NE.js → chunk-VKDBM3RX.js} +3 -3
- package/dist/{chunk-FBQYKH7R.js → chunk-W4AFGFFB.js} +2 -2
- package/dist/{chunk-YBGVZQQE.js → chunk-YLOAQZLA.js} +2 -2
- package/dist/{chunk-GHPWBWUW.js → chunk-YLTRFZAT.js} +6 -6
- package/dist/{chunk-RCHXBL2M.js → chunk-YWD6WXXM.js} +6 -6
- package/dist/{ci-workflow-A2E2RTOP.js → ci-workflow-TOS5X527.js} +2 -2
- package/dist/{dist-K22DQUYY.js → dist-6RT2AVYU.js} +1 -1
- package/dist/{docs-GXJOFVCF.js → docs-HOJMQYDZ.js} +3 -3
- package/dist/{engine-JBUIA2XO.js → engine-D6UYH6DB.js} +2 -2
- package/dist/{entropy-Y7LUT4BZ.js → entropy-LZ4IDGZR.js} +2 -2
- package/dist/{feedback-BHOBVKI3.js → feedback-WV7EQVK7.js} +1 -1
- package/dist/{generate-agent-definitions-VL3ZVR32.js → generate-agent-definitions-ZHFFS6YG.js} +3 -3
- package/dist/index.js +22 -22
- package/dist/{loader-WCKVMDYR.js → loader-Z23JTXIZ.js} +2 -2
- package/dist/{mcp-FA2CKHFY.js → mcp-QFZDPFNP.js} +13 -13
- package/dist/{performance-NISUL5AA.js → performance-7ATLHTQU.js} +3 -3
- package/dist/{review-pipeline-CHE5LJ5D.js → review-pipeline-COBGGXHJ.js} +2 -2
- package/dist/{runtime-3SKKEVPF.js → runtime-KCBNQUXK.js} +2 -2
- package/dist/{security-MF54MY3P.js → security-MAPRIFQT.js} +1 -1
- package/dist/{validate-SIWFNTXI.js → validate-74XTQR7Q.js} +3 -3
- package/dist/{validate-cross-check-GBX7B7CQ.js → validate-cross-check-MI5MZ7MB.js} +2 -2
- package/package.json +4 -4
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
handleRunCodeReview,
|
|
3
3
|
runCodeReviewDefinition,
|
|
4
4
|
sortFindingsBySeverity
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-36X7TRUI.js";
|
|
6
6
|
import {
|
|
7
7
|
assessProjectDefinition,
|
|
8
8
|
handleAssessProject
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-YWD6WXXM.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-2ZURBWEV.js";
|
|
21
21
|
import {
|
|
22
22
|
getSecurityTrendsDefinition,
|
|
23
23
|
handleGetSecurityTrends,
|
|
24
24
|
handleRunSecurityScan,
|
|
25
25
|
runSecurityScanDefinition
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-W4AFGFFB.js";
|
|
27
27
|
import {
|
|
28
28
|
loadGraphStore
|
|
29
29
|
} from "./chunk-KTWKW6KJ.js";
|
|
30
30
|
import {
|
|
31
31
|
handleValidateProject,
|
|
32
32
|
validateToolDefinition
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-VKDBM3RX.js";
|
|
34
34
|
import {
|
|
35
35
|
checkDependenciesDefinition,
|
|
36
36
|
handleCheckDependencies
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-YLOAQZLA.js";
|
|
38
38
|
import {
|
|
39
39
|
resolveProjectConfig
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-CPYL6LJR.js";
|
|
41
41
|
import {
|
|
42
42
|
checkDocsDefinition,
|
|
43
43
|
handleCheckDocs
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-2QPHCR22.js";
|
|
45
45
|
import {
|
|
46
46
|
detectEntropyDefinition,
|
|
47
47
|
handleDetectEntropy
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-KV7A5OZT.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-YLTRFZAT.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-LO7ZLV7S.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-K4WRQTEF.js";
|
|
107
107
|
import {
|
|
108
108
|
Err,
|
|
109
109
|
Ok
|
|
@@ -291,9 +291,7 @@ function ensureHarnessGitignore(targetDir) {
|
|
|
291
291
|
analyses/
|
|
292
292
|
graph/
|
|
293
293
|
debug/
|
|
294
|
-
hooks/
|
|
295
294
|
interactions/
|
|
296
|
-
security/
|
|
297
295
|
sessions/
|
|
298
296
|
streams/
|
|
299
297
|
workspaces/
|
|
@@ -313,6 +311,10 @@ events.jsonl
|
|
|
313
311
|
.install-id
|
|
314
312
|
telemetry.json
|
|
315
313
|
.telemetry-notice-shown
|
|
314
|
+
|
|
315
|
+
# security/: track timeline.json (trend ledger), ignore everything else
|
|
316
|
+
security/*
|
|
317
|
+
!security/timeline.json
|
|
316
318
|
`;
|
|
317
319
|
fs.mkdirSync(path.dirname(gitignorePath), { recursive: true });
|
|
318
320
|
fs.writeFileSync(gitignorePath, content);
|
|
@@ -706,7 +708,7 @@ ${skippedMsg}`
|
|
|
706
708
|
async function handleInitProject(input) {
|
|
707
709
|
const i = input;
|
|
708
710
|
try {
|
|
709
|
-
const { TemplateEngine } = await import("./engine-
|
|
711
|
+
const { TemplateEngine } = await import("./engine-D6UYH6DB.js");
|
|
710
712
|
const engine = new TemplateEngine(resolveTemplatesDir());
|
|
711
713
|
const safePath = sanitizePath(i.path);
|
|
712
714
|
const detected = tryDetectFramework(engine, safePath, i);
|
|
@@ -728,7 +730,7 @@ var listPersonasDefinition = {
|
|
|
728
730
|
inputSchema: { type: "object", properties: {} }
|
|
729
731
|
};
|
|
730
732
|
async function handleListPersonas() {
|
|
731
|
-
const { listPersonas } = await import("./loader-
|
|
733
|
+
const { listPersonas } = await import("./loader-Z23JTXIZ.js");
|
|
732
734
|
const result = listPersonas(resolvePersonasDir());
|
|
733
735
|
return resultToMcpResponse(result);
|
|
734
736
|
}
|
|
@@ -752,10 +754,10 @@ async function handleGeneratePersonaArtifacts(input) {
|
|
|
752
754
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
|
|
753
755
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
|
|
754
756
|
}
|
|
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-
|
|
757
|
+
const { loadPersona } = await import("./loader-Z23JTXIZ.js");
|
|
758
|
+
const { generateRuntime } = await import("./runtime-KCBNQUXK.js");
|
|
759
|
+
const { generateAgentsMd } = await import("./agents-md-L4X4MOWT.js");
|
|
760
|
+
const { generateCIWorkflow } = await import("./ci-workflow-TOS5X527.js");
|
|
759
761
|
const personasDir = resolvePersonasDir();
|
|
760
762
|
const filePath = path3.join(personasDir, `${input.name}.yaml`);
|
|
761
763
|
if (!filePath.startsWith(personasDir)) {
|
|
@@ -810,7 +812,7 @@ async function handleRunPersona(input) {
|
|
|
810
812
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
|
|
811
813
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
|
|
812
814
|
}
|
|
813
|
-
const { loadPersona } = await import("./loader-
|
|
815
|
+
const { loadPersona } = await import("./loader-Z23JTXIZ.js");
|
|
814
816
|
const { runPersona } = await import("./runner-AAEF2TXY.js");
|
|
815
817
|
const { executeSkill } = await import("./skill-executor-MOCUIAYS.js");
|
|
816
818
|
const personasDir = resolvePersonasDir();
|
|
@@ -1255,7 +1257,7 @@ function loadOrGenerateProfile(projectRoot) {
|
|
|
1255
1257
|
// src/mcp/tools/event-emitter.ts
|
|
1256
1258
|
async function emitSkillEvent(projectPath, event) {
|
|
1257
1259
|
try {
|
|
1258
|
-
const { emitEvent } = await import("./dist-
|
|
1260
|
+
const { emitEvent } = await import("./dist-6RT2AVYU.js");
|
|
1259
1261
|
await emitEvent(projectPath, event);
|
|
1260
1262
|
} catch {
|
|
1261
1263
|
}
|
|
@@ -1527,7 +1529,7 @@ async function autoSyncRoadmap(projectPath) {
|
|
|
1527
1529
|
try {
|
|
1528
1530
|
const roadmapFile = path10.join(projectPath, "docs", "roadmap.md");
|
|
1529
1531
|
if (!fs9.existsSync(roadmapFile)) return;
|
|
1530
|
-
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-
|
|
1532
|
+
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-6RT2AVYU.js");
|
|
1531
1533
|
const raw = fs9.readFileSync(roadmapFile, "utf-8");
|
|
1532
1534
|
const parseResult = parseRoadmap(raw);
|
|
1533
1535
|
if (!parseResult.ok) return;
|
|
@@ -1557,7 +1559,7 @@ async function triggerExternalSync(projectPath, roadmapFile) {
|
|
|
1557
1559
|
console.warn("[roadmap-sync] GITHUB_TOKEN not found \u2014 external sync skipped");
|
|
1558
1560
|
return;
|
|
1559
1561
|
}
|
|
1560
|
-
const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-
|
|
1562
|
+
const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-6RT2AVYU.js");
|
|
1561
1563
|
const adapter = new GitHubIssuesSyncAdapter({
|
|
1562
1564
|
token,
|
|
1563
1565
|
config: trackerConfig
|
|
@@ -1654,12 +1656,12 @@ var manageStateDefinition = {
|
|
|
1654
1656
|
}
|
|
1655
1657
|
};
|
|
1656
1658
|
async function handleShow(projectPath, input) {
|
|
1657
|
-
const { loadState } = await import("./dist-
|
|
1659
|
+
const { loadState } = await import("./dist-6RT2AVYU.js");
|
|
1658
1660
|
return resultToMcpResponse(await loadState(projectPath, input.stream, input.session));
|
|
1659
1661
|
}
|
|
1660
1662
|
async function handleLearn(projectPath, input) {
|
|
1661
1663
|
if (!input.learning) return mcpError("Error: learning is required for learn action");
|
|
1662
|
-
const { appendLearning } = await import("./dist-
|
|
1664
|
+
const { appendLearning } = await import("./dist-6RT2AVYU.js");
|
|
1663
1665
|
const result = await appendLearning(
|
|
1664
1666
|
projectPath,
|
|
1665
1667
|
input.learning,
|
|
@@ -1674,7 +1676,7 @@ async function handleLearn(projectPath, input) {
|
|
|
1674
1676
|
async function handleFailure(projectPath, input) {
|
|
1675
1677
|
if (!input.description) return mcpError("Error: description is required for failure action");
|
|
1676
1678
|
if (!input.failureType) return mcpError("Error: failureType is required for failure action");
|
|
1677
|
-
const { appendFailure } = await import("./dist-
|
|
1679
|
+
const { appendFailure } = await import("./dist-6RT2AVYU.js");
|
|
1678
1680
|
const result = await appendFailure(
|
|
1679
1681
|
projectPath,
|
|
1680
1682
|
input.description,
|
|
@@ -1693,19 +1695,19 @@ async function handleFailure(projectPath, input) {
|
|
|
1693
1695
|
return resultToMcpResponse(Ok({ recorded: true }));
|
|
1694
1696
|
}
|
|
1695
1697
|
async function handleArchive(projectPath, input) {
|
|
1696
|
-
const { archiveFailures } = await import("./dist-
|
|
1698
|
+
const { archiveFailures } = await import("./dist-6RT2AVYU.js");
|
|
1697
1699
|
const result = await archiveFailures(projectPath, input.stream, input.session);
|
|
1698
1700
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1699
1701
|
return resultToMcpResponse(Ok({ archived: true }));
|
|
1700
1702
|
}
|
|
1701
1703
|
async function handleReset(projectPath, input) {
|
|
1702
|
-
const { saveState, DEFAULT_STATE } = await import("./dist-
|
|
1704
|
+
const { saveState, DEFAULT_STATE } = await import("./dist-6RT2AVYU.js");
|
|
1703
1705
|
const result = await saveState(projectPath, { ...DEFAULT_STATE }, input.stream, input.session);
|
|
1704
1706
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1705
1707
|
return resultToMcpResponse(Ok({ reset: true }));
|
|
1706
1708
|
}
|
|
1707
1709
|
async function handleGate(projectPath, input) {
|
|
1708
|
-
const { runMechanicalGate } = await import("./dist-
|
|
1710
|
+
const { runMechanicalGate } = await import("./dist-6RT2AVYU.js");
|
|
1709
1711
|
const result = await runMechanicalGate(projectPath);
|
|
1710
1712
|
if (result.ok) {
|
|
1711
1713
|
await emitSkillEvent(projectPath, {
|
|
@@ -1725,7 +1727,7 @@ async function handleGate(projectPath, input) {
|
|
|
1725
1727
|
}
|
|
1726
1728
|
async function handleSaveHandoff(projectPath, input) {
|
|
1727
1729
|
if (!input.handoff) return mcpError("Error: handoff is required for save-handoff action");
|
|
1728
|
-
const { saveHandoff } = await import("./dist-
|
|
1730
|
+
const { saveHandoff } = await import("./dist-6RT2AVYU.js");
|
|
1729
1731
|
const result = await saveHandoff(
|
|
1730
1732
|
projectPath,
|
|
1731
1733
|
input.handoff,
|
|
@@ -1747,7 +1749,7 @@ async function handleSaveHandoff(projectPath, input) {
|
|
|
1747
1749
|
return resultToMcpResponse(Ok({ saved: true }));
|
|
1748
1750
|
}
|
|
1749
1751
|
async function handleLoadHandoff(projectPath, input) {
|
|
1750
|
-
const { loadHandoff } = await import("./dist-
|
|
1752
|
+
const { loadHandoff } = await import("./dist-6RT2AVYU.js");
|
|
1751
1753
|
return resultToMcpResponse(await loadHandoff(projectPath, input.stream, input.session));
|
|
1752
1754
|
}
|
|
1753
1755
|
async function handleAppendEntry(projectPath, input) {
|
|
@@ -1755,7 +1757,7 @@ async function handleAppendEntry(projectPath, input) {
|
|
|
1755
1757
|
if (!input.authorSkill) return mcpError("Error: authorSkill is required for append_entry action");
|
|
1756
1758
|
if (!input.content) return mcpError("Error: content is required for append_entry action");
|
|
1757
1759
|
if (input.session) {
|
|
1758
|
-
const { appendSessionEntry } = await import("./dist-
|
|
1760
|
+
const { appendSessionEntry } = await import("./dist-6RT2AVYU.js");
|
|
1759
1761
|
const result = await appendSessionEntry(
|
|
1760
1762
|
projectPath,
|
|
1761
1763
|
input.session,
|
|
@@ -1768,7 +1770,7 @@ async function handleAppendEntry(projectPath, input) {
|
|
|
1768
1770
|
if (input.section !== "decisions") {
|
|
1769
1771
|
return mcpError("Error: session is required for non-decisions sections");
|
|
1770
1772
|
}
|
|
1771
|
-
const { loadState, saveState } = await import("./dist-
|
|
1773
|
+
const { loadState, saveState } = await import("./dist-6RT2AVYU.js");
|
|
1772
1774
|
const lr = await loadState(projectPath, input.stream);
|
|
1773
1775
|
if (!lr.ok) return resultToMcpResponse(lr);
|
|
1774
1776
|
lr.value.decisions.push({
|
|
@@ -1786,7 +1788,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
1786
1788
|
if (!input.entryId) return mcpError("Error: entryId is required for update_entry_status action");
|
|
1787
1789
|
if (!input.newStatus)
|
|
1788
1790
|
return mcpError("Error: newStatus is required for update_entry_status action");
|
|
1789
|
-
const { updateSessionEntryStatus } = await import("./dist-
|
|
1791
|
+
const { updateSessionEntryStatus } = await import("./dist-6RT2AVYU.js");
|
|
1790
1792
|
const result = await updateSessionEntryStatus(
|
|
1791
1793
|
projectPath,
|
|
1792
1794
|
input.session,
|
|
@@ -1799,7 +1801,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
1799
1801
|
async function handleReadSection(projectPath, input) {
|
|
1800
1802
|
if (!input.session) return mcpError("Error: session is required for read_section action");
|
|
1801
1803
|
if (!input.section) return mcpError("Error: section is required for read_section action");
|
|
1802
|
-
const { readSessionSection } = await import("./dist-
|
|
1804
|
+
const { readSessionSection } = await import("./dist-6RT2AVYU.js");
|
|
1803
1805
|
const result = await readSessionSection(
|
|
1804
1806
|
projectPath,
|
|
1805
1807
|
input.session,
|
|
@@ -1809,13 +1811,13 @@ async function handleReadSection(projectPath, input) {
|
|
|
1809
1811
|
}
|
|
1810
1812
|
async function handleReadSections(projectPath, input) {
|
|
1811
1813
|
if (!input.session) return mcpError("Error: session is required for read_sections action");
|
|
1812
|
-
const { readSessionSections } = await import("./dist-
|
|
1814
|
+
const { readSessionSections } = await import("./dist-6RT2AVYU.js");
|
|
1813
1815
|
const result = await readSessionSections(projectPath, input.session);
|
|
1814
1816
|
return resultToMcpResponse(result);
|
|
1815
1817
|
}
|
|
1816
1818
|
async function handleArchiveSession(projectPath, input) {
|
|
1817
1819
|
if (!input.session) return mcpError("Error: session is required for archive_session action");
|
|
1818
|
-
const { archiveSession } = await import("./dist-
|
|
1820
|
+
const { archiveSession } = await import("./dist-6RT2AVYU.js");
|
|
1819
1821
|
const result = await archiveSession(projectPath, input.session);
|
|
1820
1822
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1821
1823
|
await autoSyncRoadmap(projectPath);
|
|
@@ -1895,7 +1897,7 @@ var listStreamsDefinition = {
|
|
|
1895
1897
|
};
|
|
1896
1898
|
async function handleListStreams(input) {
|
|
1897
1899
|
try {
|
|
1898
|
-
const { listStreams, loadStreamIndex } = await import("./dist-
|
|
1900
|
+
const { listStreams, loadStreamIndex } = await import("./dist-6RT2AVYU.js");
|
|
1899
1901
|
const projectPath = sanitizePath(input.path);
|
|
1900
1902
|
const indexResult = await loadStreamIndex(projectPath);
|
|
1901
1903
|
const streamsResult = await listStreams(projectPath);
|
|
@@ -1933,7 +1935,7 @@ var checkPhaseGateDefinition = {
|
|
|
1933
1935
|
};
|
|
1934
1936
|
async function handleCheckPhaseGate(input) {
|
|
1935
1937
|
try {
|
|
1936
|
-
const { runCheckPhaseGate } = await import("./check-phase-gate-
|
|
1938
|
+
const { runCheckPhaseGate } = await import("./check-phase-gate-646KY67H.js");
|
|
1937
1939
|
const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
|
|
1938
1940
|
if (result.ok) {
|
|
1939
1941
|
return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
|
|
@@ -1989,7 +1991,7 @@ async function handleValidateCrossCheck(input) {
|
|
|
1989
1991
|
};
|
|
1990
1992
|
}
|
|
1991
1993
|
try {
|
|
1992
|
-
const { runCrossCheck } = await import("./validate-cross-check-
|
|
1994
|
+
const { runCrossCheck } = await import("./validate-cross-check-MI5MZ7MB.js");
|
|
1993
1995
|
const specsDir = path11.resolve(projectPath, input.specsDir ?? "docs/specs");
|
|
1994
1996
|
if (!specsDir.startsWith(projectPath)) {
|
|
1995
1997
|
return {
|
|
@@ -2712,7 +2714,7 @@ async function handleGenerateSlashCommands(input) {
|
|
|
2712
2714
|
// src/mcp/resources/state.ts
|
|
2713
2715
|
async function getStateResource(projectRoot) {
|
|
2714
2716
|
try {
|
|
2715
|
-
const { loadState, migrateToStreams } = await import("./dist-
|
|
2717
|
+
const { loadState, migrateToStreams } = await import("./dist-6RT2AVYU.js");
|
|
2716
2718
|
await migrateToStreams(projectRoot);
|
|
2717
2719
|
const result = await loadState(projectRoot);
|
|
2718
2720
|
if (result.ok) {
|
|
@@ -3732,7 +3734,7 @@ var generateAgentDefinitionsDefinition = {
|
|
|
3732
3734
|
}
|
|
3733
3735
|
};
|
|
3734
3736
|
async function handleGenerateAgentDefinitions(input) {
|
|
3735
|
-
const { generateAgentDefinitions } = await import("./generate-agent-definitions-
|
|
3737
|
+
const { generateAgentDefinitions } = await import("./generate-agent-definitions-ZHFFS6YG.js");
|
|
3736
3738
|
const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
|
|
3737
3739
|
const results = generateAgentDefinitions({
|
|
3738
3740
|
platforms: [...platforms],
|
|
@@ -4064,7 +4066,7 @@ function shouldTriggerExternalSync(input, response) {
|
|
|
4064
4066
|
}
|
|
4065
4067
|
async function handleManageRoadmap(input) {
|
|
4066
4068
|
try {
|
|
4067
|
-
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-
|
|
4069
|
+
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, assignFeature } = await import("./dist-6RT2AVYU.js");
|
|
4068
4070
|
const { Ok: Ok2 } = await import("./dist-3EWNRFFQ.js");
|
|
4069
4071
|
const projectPath = sanitizePath(input.path);
|
|
4070
4072
|
const deps = {
|
|
@@ -4503,7 +4505,7 @@ async function handleTransition(validInput, projectPath, id) {
|
|
|
4503
4505
|
const transition = transitionResult.data;
|
|
4504
4506
|
const prompt = renderTransition(transition);
|
|
4505
4507
|
try {
|
|
4506
|
-
const { saveHandoff } = await import("./dist-
|
|
4508
|
+
const { saveHandoff } = await import("./dist-6RT2AVYU.js");
|
|
4507
4509
|
await saveHandoff(
|
|
4508
4510
|
projectPath,
|
|
4509
4511
|
{
|
|
@@ -4584,7 +4586,7 @@ async function handleEmitInteraction(input) {
|
|
|
4584
4586
|
}
|
|
4585
4587
|
async function recordInteraction(projectPath, id, type, decision, stream) {
|
|
4586
4588
|
try {
|
|
4587
|
-
const { loadState, saveState } = await import("./dist-
|
|
4589
|
+
const { loadState, saveState } = await import("./dist-6RT2AVYU.js");
|
|
4588
4590
|
const stateResult = await loadState(projectPath, stream);
|
|
4589
4591
|
if (stateResult.ok) {
|
|
4590
4592
|
const state = stateResult.value;
|
|
@@ -4745,10 +4747,10 @@ async function handleGatherContext(input) {
|
|
|
4745
4747
|
input.include ?? ["state", "learnings", "handoff", "graph", "validation", "businessKnowledge"]
|
|
4746
4748
|
);
|
|
4747
4749
|
const errors = [];
|
|
4748
|
-
const statePromise = includeSet.has("state") ? import("./dist-
|
|
4750
|
+
const statePromise = includeSet.has("state") ? import("./dist-6RT2AVYU.js").then(
|
|
4749
4751
|
(core) => core.loadState(projectPath, void 0, input.session)
|
|
4750
4752
|
) : Promise.resolve(null);
|
|
4751
|
-
const learningsPromise = includeSet.has("learnings") ? import("./dist-
|
|
4753
|
+
const learningsPromise = includeSet.has("learnings") ? import("./dist-6RT2AVYU.js").then(
|
|
4752
4754
|
(core) => core.loadBudgetedLearnings(projectPath, {
|
|
4753
4755
|
intent: input.intent,
|
|
4754
4756
|
tokenBudget: input.learningsBudget ?? 1e3,
|
|
@@ -4757,7 +4759,7 @@ async function handleGatherContext(input) {
|
|
|
4757
4759
|
...input.depth !== void 0 && { depth: input.depth }
|
|
4758
4760
|
})
|
|
4759
4761
|
) : Promise.resolve(null);
|
|
4760
|
-
const handoffPromise = includeSet.has("handoff") ? import("./dist-
|
|
4762
|
+
const handoffPromise = includeSet.has("handoff") ? import("./dist-6RT2AVYU.js").then(
|
|
4761
4763
|
(core) => core.loadHandoff(projectPath, void 0, input.session)
|
|
4762
4764
|
) : Promise.resolve(null);
|
|
4763
4765
|
const graphPromise = includeSet.has("graph") ? (async () => {
|
|
@@ -4801,11 +4803,11 @@ async function handleGatherContext(input) {
|
|
|
4801
4803
|
context: contextBlocks
|
|
4802
4804
|
};
|
|
4803
4805
|
})() : Promise.resolve(null);
|
|
4804
|
-
const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-
|
|
4806
|
+
const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-6RT2AVYU.js").then(
|
|
4805
4807
|
(core) => core.readSessionSections(projectPath, input.session)
|
|
4806
4808
|
) : Promise.resolve(null);
|
|
4807
4809
|
const shouldIncludeEvents = input.includeEvents !== void 0 ? input.includeEvents : includeSet.has("events") || !!input.session && !input.include;
|
|
4808
|
-
const eventsPromise = shouldIncludeEvents ? import("./dist-
|
|
4810
|
+
const eventsPromise = shouldIncludeEvents ? import("./dist-6RT2AVYU.js").then(async (core) => {
|
|
4809
4811
|
const result = await core.loadEvents(projectPath, {
|
|
4810
4812
|
session: input.session
|
|
4811
4813
|
});
|
|
@@ -4813,7 +4815,7 @@ async function handleGatherContext(input) {
|
|
|
4813
4815
|
return core.formatEventTimeline(result.value);
|
|
4814
4816
|
}) : Promise.resolve(null);
|
|
4815
4817
|
const validationPromise = includeSet.has("validation") ? (async () => {
|
|
4816
|
-
const { handleValidateProject: handleValidateProject2 } = await import("./validate-
|
|
4818
|
+
const { handleValidateProject: handleValidateProject2 } = await import("./validate-74XTQR7Q.js");
|
|
4817
4819
|
const result = await handleValidateProject2({ path: projectPath });
|
|
4818
4820
|
const first = result.content[0];
|
|
4819
4821
|
return first ? JSON.parse(first.text) : null;
|
|
@@ -4916,7 +4918,7 @@ async function handleGatherContext(input) {
|
|
|
4916
4918
|
};
|
|
4917
4919
|
if (input.session) {
|
|
4918
4920
|
try {
|
|
4919
|
-
const core = await import("./dist-
|
|
4921
|
+
const core = await import("./dist-6RT2AVYU.js");
|
|
4920
4922
|
core.updateSessionIndex(
|
|
4921
4923
|
projectPath,
|
|
4922
4924
|
input.session,
|
|
@@ -5068,7 +5070,7 @@ async function handleReviewChanges(input) {
|
|
|
5068
5070
|
}
|
|
5069
5071
|
}
|
|
5070
5072
|
async function runQuickReview(projectPath, diff, diffLines, downgraded, offset, limit) {
|
|
5071
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-
|
|
5073
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-WV7EQVK7.js");
|
|
5072
5074
|
const result = await handleAnalyzeDiff2({ diff, path: projectPath });
|
|
5073
5075
|
const firstContent = result.content[0];
|
|
5074
5076
|
if (!firstContent) throw new Error("Empty analyze_diff response");
|
|
@@ -5103,7 +5105,7 @@ function extractFileCount(diffParsed) {
|
|
|
5103
5105
|
return files?.length ?? 0;
|
|
5104
5106
|
}
|
|
5105
5107
|
async function runStandardReview(projectPath, diff, diffLines, downgraded, offset, limit) {
|
|
5106
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-
|
|
5108
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-WV7EQVK7.js");
|
|
5107
5109
|
const [diffResult, reviewResult] = await Promise.all([
|
|
5108
5110
|
handleAnalyzeDiff2({ diff, path: projectPath }),
|
|
5109
5111
|
handleCreateSelfReview2({ path: projectPath, diff })
|
|
@@ -5138,7 +5140,7 @@ async function runStandardReview(projectPath, diff, diffLines, downgraded, offse
|
|
|
5138
5140
|
};
|
|
5139
5141
|
}
|
|
5140
5142
|
async function runDeepReview(projectPath, diff, diffLines, _downgraded, offset, limit) {
|
|
5141
|
-
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-
|
|
5143
|
+
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-COBGGXHJ.js");
|
|
5142
5144
|
const result = await handleRunCodeReview2({
|
|
5143
5145
|
path: projectPath,
|
|
5144
5146
|
diff,
|
|
@@ -5432,7 +5434,7 @@ async function handleDetectStaleConstraints(input) {
|
|
|
5432
5434
|
]
|
|
5433
5435
|
};
|
|
5434
5436
|
}
|
|
5435
|
-
const { detectStaleConstraints } = await import("./dist-
|
|
5437
|
+
const { detectStaleConstraints } = await import("./dist-6RT2AVYU.js");
|
|
5436
5438
|
const result = detectStaleConstraints(
|
|
5437
5439
|
store,
|
|
5438
5440
|
windowDays,
|
|
@@ -5552,10 +5554,10 @@ function countCriticalFindings(securityData) {
|
|
|
5552
5554
|
return findings.filter((f) => f.severity === "error").length;
|
|
5553
5555
|
}
|
|
5554
5556
|
async function runHealthChecks(projectPath) {
|
|
5555
|
-
const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-
|
|
5556
|
-
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-
|
|
5557
|
-
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-
|
|
5558
|
-
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-
|
|
5557
|
+
const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-PHC2HO3V.js");
|
|
5558
|
+
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-WJRIYQ45.js");
|
|
5559
|
+
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-LZ4IDGZR.js");
|
|
5560
|
+
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-MAPRIFQT.js");
|
|
5559
5561
|
const [assessResult, depsResult, entropyResult, securityResult] = await Promise.all([
|
|
5560
5562
|
handleAssessProject2({
|
|
5561
5563
|
path: projectPath,
|
|
@@ -6396,7 +6398,7 @@ async function handleGetDecayTrends(input) {
|
|
|
6396
6398
|
};
|
|
6397
6399
|
}
|
|
6398
6400
|
try {
|
|
6399
|
-
const core = await import("./dist-
|
|
6401
|
+
const core = await import("./dist-6RT2AVYU.js");
|
|
6400
6402
|
const { TimelineManager } = core;
|
|
6401
6403
|
const manager = new TimelineManager(projectPath);
|
|
6402
6404
|
const timeline = manager.load();
|
|
@@ -6531,7 +6533,7 @@ async function handleCodeOutline(input) {
|
|
|
6531
6533
|
};
|
|
6532
6534
|
}
|
|
6533
6535
|
try {
|
|
6534
|
-
const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-
|
|
6536
|
+
const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-6RT2AVYU.js");
|
|
6535
6537
|
const { stat } = await import("fs/promises");
|
|
6536
6538
|
const stats = await stat(targetPath).catch(() => null);
|
|
6537
6539
|
if (stats?.isFile()) {
|
|
@@ -6550,7 +6552,7 @@ async function handleCodeOutline(input) {
|
|
|
6550
6552
|
})
|
|
6551
6553
|
);
|
|
6552
6554
|
fileStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
6553
|
-
const { paginate: paginate2 } = await import("./dist-
|
|
6555
|
+
const { paginate: paginate2 } = await import("./dist-6RT2AVYU.js");
|
|
6554
6556
|
const paged = paginate2(fileStats, input.offset ?? 0, input.limit ?? 30);
|
|
6555
6557
|
const results = [];
|
|
6556
6558
|
for (const entry of paged.items) {
|
|
@@ -6623,7 +6625,7 @@ async function handleCodeSearch(input) {
|
|
|
6623
6625
|
};
|
|
6624
6626
|
}
|
|
6625
6627
|
try {
|
|
6626
|
-
const { searchSymbols } = await import("./dist-
|
|
6628
|
+
const { searchSymbols } = await import("./dist-6RT2AVYU.js");
|
|
6627
6629
|
const result = await searchSymbols(input.query, directory, input.glob);
|
|
6628
6630
|
const lines = [`Search: "${result.query}" \u2014 ${result.matches.length} matches`];
|
|
6629
6631
|
for (const match of result.matches) {
|
|
@@ -6692,7 +6694,7 @@ async function handleCodeUnfold(input) {
|
|
|
6692
6694
|
}
|
|
6693
6695
|
try {
|
|
6694
6696
|
if (input.symbol) {
|
|
6695
|
-
const { unfoldSymbol } = await import("./dist-
|
|
6697
|
+
const { unfoldSymbol } = await import("./dist-6RT2AVYU.js");
|
|
6696
6698
|
const result = await unfoldSymbol(filePath, input.symbol);
|
|
6697
6699
|
const header = result.warning ? `${result.file}:${result.startLine}-${result.endLine} ${result.warning}
|
|
6698
6700
|
` : `${result.file}:${result.startLine}-${result.endLine}
|
|
@@ -6700,7 +6702,7 @@ async function handleCodeUnfold(input) {
|
|
|
6700
6702
|
return { content: [{ type: "text", text: header + result.content }] };
|
|
6701
6703
|
}
|
|
6702
6704
|
if (input.startLine != null && input.endLine != null) {
|
|
6703
|
-
const { unfoldRange } = await import("./dist-
|
|
6705
|
+
const { unfoldRange } = await import("./dist-6RT2AVYU.js");
|
|
6704
6706
|
const result = await unfoldRange(filePath, input.startLine, input.endLine);
|
|
6705
6707
|
const header = `${result.file}:${result.startLine}-${result.endLine}
|
|
6706
6708
|
`;
|
|
@@ -6885,7 +6887,7 @@ async function handlePredictFailures(input) {
|
|
|
6885
6887
|
};
|
|
6886
6888
|
}
|
|
6887
6889
|
try {
|
|
6888
|
-
const core = await import("./dist-
|
|
6890
|
+
const core = await import("./dist-6RT2AVYU.js");
|
|
6889
6891
|
const { TimelineManager, PredictionEngine, SpecImpactEstimator } = core;
|
|
6890
6892
|
const manager = new TimelineManager(projectPath);
|
|
6891
6893
|
const includeRoadmap = input.includeRoadmap !== false;
|
|
@@ -7994,7 +7996,7 @@ async function handleDetectConstraintEmergence(input) {
|
|
|
7994
7996
|
}
|
|
7995
7997
|
const nodePath = await import("path");
|
|
7996
7998
|
const historyPath = nodePath.resolve(projectPath, ".harness/arch/violation-history.json");
|
|
7997
|
-
const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-
|
|
7999
|
+
const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-6RT2AVYU.js");
|
|
7998
8000
|
const manager = new ViolationHistoryManager(historyPath);
|
|
7999
8001
|
const history = manager.load();
|
|
8000
8002
|
const options = { windowWeeks, minOccurrences };
|
|
@@ -8082,7 +8084,7 @@ async function handleRunCIChecks(input) {
|
|
|
8082
8084
|
};
|
|
8083
8085
|
}
|
|
8084
8086
|
try {
|
|
8085
|
-
const { runCIChecks } = await import("./dist-
|
|
8087
|
+
const { runCIChecks } = await import("./dist-6RT2AVYU.js");
|
|
8086
8088
|
const skip = input.checks ? VALID_CHECKS.filter((c) => !input.checks.includes(c)) : [];
|
|
8087
8089
|
const result = await runCIChecks({
|
|
8088
8090
|
projectRoot: projectPath,
|
|
@@ -8144,7 +8146,7 @@ async function handleGenerateBlueprint(input) {
|
|
|
8144
8146
|
};
|
|
8145
8147
|
}
|
|
8146
8148
|
try {
|
|
8147
|
-
const { ProjectScanner } = await import("./dist-
|
|
8149
|
+
const { ProjectScanner } = await import("./dist-6RT2AVYU.js");
|
|
8148
8150
|
const scanner = new ProjectScanner(projectPath);
|
|
8149
8151
|
const data = await scanner.scan();
|
|
8150
8152
|
return {
|
|
@@ -8390,7 +8392,7 @@ async function appendUpdateNotification(result, resolvedRoot) {
|
|
|
8390
8392
|
shouldRunCheck,
|
|
8391
8393
|
readCheckState,
|
|
8392
8394
|
spawnBackgroundCheck
|
|
8393
|
-
} = await import("./dist-
|
|
8395
|
+
} = await import("./dist-6RT2AVYU.js");
|
|
8394
8396
|
const { CLI_VERSION } = await import("./version-CUI434OP.js");
|
|
8395
8397
|
const configInterval = readConfigInterval(resolvedRoot);
|
|
8396
8398
|
const DEFAULT_INTERVAL = 864e5;
|