@harness-engineering/cli 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/codex/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/{agents-md-XOJE5ETA.js → agents-md-YYCLGMBF.js} +2 -2
- package/dist/{architecture-JEZPJ725.js → architecture-5KPP4ID4.js} +3 -3
- package/dist/{assess-project-RHXOQNMM.js → assess-project-B6ENHUAU.js} +1 -1
- package/dist/bin/harness-mcp.js +13 -13
- package/dist/bin/harness.js +22 -22
- package/dist/{check-phase-gate-GNDOMS35.js → check-phase-gate-REG3HWYC.js} +3 -3
- package/dist/{chunk-N24HCQA4.js → chunk-A65QO5KN.js} +132 -46
- package/dist/{chunk-UX3PQKVZ.js → chunk-BXKNWSG4.js} +1 -1
- package/dist/{chunk-XX4OLNWQ.js → chunk-C2ZGWMTN.js} +2 -2
- package/dist/{chunk-HEIMJJI4.js → chunk-DNX35Q5K.js} +2 -2
- package/dist/{chunk-BYVT5LVO.js → chunk-ERZCC5VH.js} +3 -3
- package/dist/{chunk-XFU6SB2Q.js → chunk-FL5SLUKZ.js} +62 -27
- package/dist/{chunk-NWLGL3IR.js → chunk-FUH4J43G.js} +1 -1
- package/dist/{chunk-MGUPSE6D.js → chunk-HIPBU2Q4.js} +5 -5
- package/dist/{chunk-3ISHDWO7.js → chunk-IF3JK3G5.js} +1 -1
- package/dist/{chunk-KAJOS3BA.js → chunk-LMZ2JTNP.js} +2 -2
- package/dist/{chunk-527G27VI.js → chunk-OQFEFVIN.js} +2 -2
- package/dist/{chunk-Z4AWEIBY.js → chunk-PZX2Y3RV.js} +3 -3
- package/dist/{chunk-ONCPJGHY.js → chunk-RGQXHCCH.js} +6 -6
- package/dist/{chunk-QBC7DI4Q.js → chunk-TCVQVHEF.js} +1 -1
- package/dist/{chunk-PC2R5RUJ.js → chunk-TE5YHHHZ.js} +1 -1
- package/dist/{chunk-HWTUUQOW.js → chunk-UBTMPO5H.js} +3 -3
- package/dist/{chunk-GSP2XIVS.js → chunk-XEOSSKIB.js} +1 -1
- package/dist/{chunk-DE5U6KOL.js → chunk-XZ2Q4UTW.js} +1 -1
- package/dist/{chunk-YQSYCBAH.js → chunk-YF3AY6KS.js} +6 -6
- package/dist/{chunk-GGKRA7A7.js → chunk-YQAFKOOL.js} +1 -1
- package/dist/{chunk-WWEVS7RO.js → chunk-ZOUJP3EY.js} +106 -80
- package/dist/{chunk-6WQCLCBO.js → chunk-ZRKFDE6M.js} +1 -1
- package/dist/{ci-workflow-ORZ4F45F.js → ci-workflow-JEYYCBOC.js} +2 -2
- package/dist/{dist-LHINSVK4.js → dist-3HW4LCHE.js} +15 -1
- package/dist/{docs-AU3DXFFO.js → docs-YRMW7UED.js} +3 -3
- package/dist/{engine-6GPWOYQH.js → engine-E7H5U3AC.js} +2 -2
- package/dist/{entropy-VLKDRMRT.js → entropy-3JBKCGJJ.js} +2 -2
- package/dist/{feedback-YXYY44ZC.js → feedback-U6VJ6AUJ.js} +1 -1
- package/dist/{generate-agent-definitions-XIHQPKG3.js → generate-agent-definitions-S2FRZF4Y.js} +3 -3
- package/dist/hooks/format-check.js +202 -0
- package/dist/hooks/quality-warner.js +32 -0
- package/dist/hooks/strict-quality-gate.js +48 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.js +22 -22
- package/dist/{loader-YAN56MT3.js → loader-RGQJYERV.js} +2 -2
- package/dist/{mcp-RK3SFVYB.js → mcp-NDTFZXWF.js} +13 -13
- package/dist/{performance-64DPTLLQ.js → performance-FPWKC4CN.js} +3 -3
- package/dist/{review-pipeline-NENG6LW7.js → review-pipeline-WUHG7PHO.js} +2 -2
- package/dist/{runtime-FFIIRT2T.js → runtime-Q3ORD7LW.js} +2 -2
- package/dist/{security-3PIBN35B.js → security-JDHTRBGC.js} +1 -1
- package/dist/{validate-7IAF2ES3.js → validate-G3LKBOYA.js} +3 -3
- package/dist/{validate-cross-check-QPSAOZKD.js → validate-cross-check-4ITA72DF.js} +2 -2
- package/package.json +8 -8
- package/dist/hooks/quality-gate.js +0 -131
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
handleGetSecurityTrends,
|
|
4
4
|
handleRunSecurityScan,
|
|
5
5
|
runSecurityScanDefinition
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DNX35Q5K.js";
|
|
7
7
|
import {
|
|
8
8
|
handleRunCodeReview,
|
|
9
9
|
runCodeReviewDefinition,
|
|
10
10
|
sortFindingsBySeverity
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-C2ZGWMTN.js";
|
|
12
12
|
import {
|
|
13
13
|
assessProjectDefinition,
|
|
14
14
|
handleAssessProject
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-YF3AY6KS.js";
|
|
16
16
|
import {
|
|
17
17
|
detectEntropyDefinition,
|
|
18
18
|
handleDetectEntropy
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-PZX2Y3RV.js";
|
|
20
20
|
import {
|
|
21
21
|
checkPerformanceDefinition,
|
|
22
22
|
getCriticalPathsDefinition,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
handleGetPerfBaselines,
|
|
27
27
|
handleUpdatePerfBaselines,
|
|
28
28
|
updatePerfBaselinesDefinition
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-RGQXHCCH.js";
|
|
30
30
|
import {
|
|
31
31
|
getBusinessKnowledgeResource
|
|
32
32
|
} from "./chunk-IOW3MW2K.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
handleCreateSelfReview,
|
|
38
38
|
handleRequestPeerReview,
|
|
39
39
|
requestPeerReviewDefinition
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-ERZCC5VH.js";
|
|
41
41
|
import {
|
|
42
42
|
GENERATED_HEADER_CLAUDE,
|
|
43
43
|
GENERATED_HEADER_CODEX,
|
|
@@ -53,18 +53,18 @@ import {
|
|
|
53
53
|
import {
|
|
54
54
|
handleValidateProject,
|
|
55
55
|
validateToolDefinition
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-UBTMPO5H.js";
|
|
57
57
|
import {
|
|
58
58
|
checkDependenciesDefinition,
|
|
59
59
|
handleCheckDependencies
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-OQFEFVIN.js";
|
|
61
61
|
import {
|
|
62
62
|
resolveProjectConfig
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-XZ2Q4UTW.js";
|
|
64
64
|
import {
|
|
65
65
|
checkDocsDefinition,
|
|
66
66
|
handleCheckDocs
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-HIPBU2Q4.js";
|
|
68
68
|
import {
|
|
69
69
|
resultToMcpResponse
|
|
70
70
|
} from "./chunk-RC3OI5NK.js";
|
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
findConfigFile,
|
|
91
91
|
loadConfig,
|
|
92
92
|
resolveConfig
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-YQAFKOOL.js";
|
|
94
94
|
import {
|
|
95
95
|
logger
|
|
96
96
|
} from "./chunk-EBJQ6N4M.js";
|
|
@@ -121,7 +121,7 @@ import {
|
|
|
121
121
|
scanForInjection,
|
|
122
122
|
serializeEnvelope,
|
|
123
123
|
writeTaint
|
|
124
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-A65QO5KN.js";
|
|
125
125
|
import {
|
|
126
126
|
Err,
|
|
127
127
|
INDEXED_FILE_KINDS,
|
|
@@ -738,7 +738,7 @@ async function handleInsightsSummary(input) {
|
|
|
738
738
|
const skip = Array.isArray(input.skip) ? input.skip.filter(
|
|
739
739
|
(k) => typeof k === "string" && INSIGHTS_KEYS.includes(k)
|
|
740
740
|
) : void 0;
|
|
741
|
-
const { composeInsights } = await import("./dist-
|
|
741
|
+
const { composeInsights } = await import("./dist-3HW4LCHE.js");
|
|
742
742
|
const report = await composeInsights(projectPath, {
|
|
743
743
|
...skip && skip.length > 0 && { skip }
|
|
744
744
|
});
|
|
@@ -914,7 +914,7 @@ ${skippedMsg}`
|
|
|
914
914
|
async function handleInitProject(input) {
|
|
915
915
|
const i = input;
|
|
916
916
|
try {
|
|
917
|
-
const { TemplateEngine } = await import("./engine-
|
|
917
|
+
const { TemplateEngine } = await import("./engine-E7H5U3AC.js");
|
|
918
918
|
const engine = new TemplateEngine(resolveTemplatesDir());
|
|
919
919
|
const safePath = sanitizePath(i.path);
|
|
920
920
|
const detected = tryDetectFramework(engine, safePath, i);
|
|
@@ -936,7 +936,7 @@ var listPersonasDefinition = {
|
|
|
936
936
|
inputSchema: { type: "object", properties: {} }
|
|
937
937
|
};
|
|
938
938
|
async function handleListPersonas() {
|
|
939
|
-
const { listPersonas } = await import("./loader-
|
|
939
|
+
const { listPersonas } = await import("./loader-RGQJYERV.js");
|
|
940
940
|
const result = listPersonas(resolvePersonasDir());
|
|
941
941
|
return resultToMcpResponse(result);
|
|
942
942
|
}
|
|
@@ -960,10 +960,10 @@ async function handleGeneratePersonaArtifacts(input) {
|
|
|
960
960
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
|
|
961
961
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
|
|
962
962
|
}
|
|
963
|
-
const { loadPersona } = await import("./loader-
|
|
964
|
-
const { generateRuntime } = await import("./runtime-
|
|
965
|
-
const { generateAgentsMd } = await import("./agents-md-
|
|
966
|
-
const { generateCIWorkflow } = await import("./ci-workflow-
|
|
963
|
+
const { loadPersona } = await import("./loader-RGQJYERV.js");
|
|
964
|
+
const { generateRuntime } = await import("./runtime-Q3ORD7LW.js");
|
|
965
|
+
const { generateAgentsMd } = await import("./agents-md-YYCLGMBF.js");
|
|
966
|
+
const { generateCIWorkflow } = await import("./ci-workflow-JEYYCBOC.js");
|
|
967
967
|
const personasDir = resolvePersonasDir();
|
|
968
968
|
const filePath = path4.join(personasDir, `${input.name}.yaml`);
|
|
969
969
|
if (!filePath.startsWith(personasDir)) {
|
|
@@ -1018,7 +1018,7 @@ async function handleRunPersona(input) {
|
|
|
1018
1018
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
|
|
1019
1019
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
|
|
1020
1020
|
}
|
|
1021
|
-
const { loadPersona } = await import("./loader-
|
|
1021
|
+
const { loadPersona } = await import("./loader-RGQJYERV.js");
|
|
1022
1022
|
const { runPersona } = await import("./runner-AAEF2TXY.js");
|
|
1023
1023
|
const { executeSkill } = await import("./skill-executor-MOCUIAYS.js");
|
|
1024
1024
|
const personasDir = resolvePersonasDir();
|
|
@@ -1463,7 +1463,7 @@ function loadOrGenerateProfile(projectRoot) {
|
|
|
1463
1463
|
// src/mcp/tools/event-emitter.ts
|
|
1464
1464
|
async function emitSkillEvent(projectPath, event) {
|
|
1465
1465
|
try {
|
|
1466
|
-
const { emitEvent } = await import("./dist-
|
|
1466
|
+
const { emitEvent } = await import("./dist-3HW4LCHE.js");
|
|
1467
1467
|
await emitEvent(projectPath, event);
|
|
1468
1468
|
} catch {
|
|
1469
1469
|
}
|
|
@@ -1735,7 +1735,7 @@ async function autoSyncRoadmap(projectPath) {
|
|
|
1735
1735
|
try {
|
|
1736
1736
|
const roadmapFile = path11.join(projectPath, "docs", "roadmap.md");
|
|
1737
1737
|
if (!fs10.existsSync(roadmapFile)) return;
|
|
1738
|
-
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-
|
|
1738
|
+
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges } = await import("./dist-3HW4LCHE.js");
|
|
1739
1739
|
const raw = fs10.readFileSync(roadmapFile, "utf-8");
|
|
1740
1740
|
const parseResult = parseRoadmap(raw);
|
|
1741
1741
|
if (!parseResult.ok) return;
|
|
@@ -1765,7 +1765,7 @@ async function triggerExternalSync(projectPath, roadmapFile) {
|
|
|
1765
1765
|
console.warn("[roadmap-sync] GITHUB_TOKEN not found \u2014 external sync skipped");
|
|
1766
1766
|
return;
|
|
1767
1767
|
}
|
|
1768
|
-
const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-
|
|
1768
|
+
const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-3HW4LCHE.js");
|
|
1769
1769
|
const adapter = new GitHubIssuesSyncAdapter({
|
|
1770
1770
|
token,
|
|
1771
1771
|
config: trackerConfig
|
|
@@ -1862,12 +1862,12 @@ var manageStateDefinition = {
|
|
|
1862
1862
|
}
|
|
1863
1863
|
};
|
|
1864
1864
|
async function handleShow(projectPath, input) {
|
|
1865
|
-
const { loadState } = await import("./dist-
|
|
1865
|
+
const { loadState } = await import("./dist-3HW4LCHE.js");
|
|
1866
1866
|
return resultToMcpResponse(await loadState(projectPath, input.stream, input.session));
|
|
1867
1867
|
}
|
|
1868
1868
|
async function handleLearn(projectPath, input) {
|
|
1869
1869
|
if (!input.learning) return mcpError("Error: learning is required for learn action");
|
|
1870
|
-
const { appendLearning } = await import("./dist-
|
|
1870
|
+
const { appendLearning } = await import("./dist-3HW4LCHE.js");
|
|
1871
1871
|
const result = await appendLearning(
|
|
1872
1872
|
projectPath,
|
|
1873
1873
|
input.learning,
|
|
@@ -1882,7 +1882,7 @@ async function handleLearn(projectPath, input) {
|
|
|
1882
1882
|
async function handleFailure(projectPath, input) {
|
|
1883
1883
|
if (!input.description) return mcpError("Error: description is required for failure action");
|
|
1884
1884
|
if (!input.failureType) return mcpError("Error: failureType is required for failure action");
|
|
1885
|
-
const { appendFailure } = await import("./dist-
|
|
1885
|
+
const { appendFailure } = await import("./dist-3HW4LCHE.js");
|
|
1886
1886
|
const result = await appendFailure(
|
|
1887
1887
|
projectPath,
|
|
1888
1888
|
input.description,
|
|
@@ -1901,19 +1901,19 @@ async function handleFailure(projectPath, input) {
|
|
|
1901
1901
|
return resultToMcpResponse(Ok({ recorded: true }));
|
|
1902
1902
|
}
|
|
1903
1903
|
async function handleArchive(projectPath, input) {
|
|
1904
|
-
const { archiveFailures } = await import("./dist-
|
|
1904
|
+
const { archiveFailures } = await import("./dist-3HW4LCHE.js");
|
|
1905
1905
|
const result = await archiveFailures(projectPath, input.stream, input.session);
|
|
1906
1906
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1907
1907
|
return resultToMcpResponse(Ok({ archived: true }));
|
|
1908
1908
|
}
|
|
1909
1909
|
async function handleReset(projectPath, input) {
|
|
1910
|
-
const { saveState, DEFAULT_STATE } = await import("./dist-
|
|
1910
|
+
const { saveState, DEFAULT_STATE } = await import("./dist-3HW4LCHE.js");
|
|
1911
1911
|
const result = await saveState(projectPath, { ...DEFAULT_STATE }, input.stream, input.session);
|
|
1912
1912
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1913
1913
|
return resultToMcpResponse(Ok({ reset: true }));
|
|
1914
1914
|
}
|
|
1915
1915
|
async function handleGate(projectPath, input) {
|
|
1916
|
-
const { runMechanicalGate } = await import("./dist-
|
|
1916
|
+
const { runMechanicalGate } = await import("./dist-3HW4LCHE.js");
|
|
1917
1917
|
const result = await runMechanicalGate(projectPath);
|
|
1918
1918
|
if (result.ok) {
|
|
1919
1919
|
await emitSkillEvent(projectPath, {
|
|
@@ -1933,7 +1933,7 @@ async function handleGate(projectPath, input) {
|
|
|
1933
1933
|
}
|
|
1934
1934
|
async function handleSaveHandoff(projectPath, input) {
|
|
1935
1935
|
if (!input.handoff) return mcpError("Error: handoff is required for save-handoff action");
|
|
1936
|
-
const { saveHandoff } = await import("./dist-
|
|
1936
|
+
const { saveHandoff } = await import("./dist-3HW4LCHE.js");
|
|
1937
1937
|
const result = await saveHandoff(
|
|
1938
1938
|
projectPath,
|
|
1939
1939
|
input.handoff,
|
|
@@ -1955,7 +1955,7 @@ async function handleSaveHandoff(projectPath, input) {
|
|
|
1955
1955
|
return resultToMcpResponse(Ok({ saved: true }));
|
|
1956
1956
|
}
|
|
1957
1957
|
async function handleLoadHandoff(projectPath, input) {
|
|
1958
|
-
const { loadHandoff } = await import("./dist-
|
|
1958
|
+
const { loadHandoff } = await import("./dist-3HW4LCHE.js");
|
|
1959
1959
|
return resultToMcpResponse(await loadHandoff(projectPath, input.stream, input.session));
|
|
1960
1960
|
}
|
|
1961
1961
|
async function handleAppendEntry(projectPath, input) {
|
|
@@ -1963,7 +1963,7 @@ async function handleAppendEntry(projectPath, input) {
|
|
|
1963
1963
|
if (!input.authorSkill) return mcpError("Error: authorSkill is required for append_entry action");
|
|
1964
1964
|
if (!input.content) return mcpError("Error: content is required for append_entry action");
|
|
1965
1965
|
if (input.session) {
|
|
1966
|
-
const { appendSessionEntry } = await import("./dist-
|
|
1966
|
+
const { appendSessionEntry } = await import("./dist-3HW4LCHE.js");
|
|
1967
1967
|
const result = await appendSessionEntry(
|
|
1968
1968
|
projectPath,
|
|
1969
1969
|
input.session,
|
|
@@ -1976,7 +1976,7 @@ async function handleAppendEntry(projectPath, input) {
|
|
|
1976
1976
|
if (input.section !== "decisions") {
|
|
1977
1977
|
return mcpError("Error: session is required for non-decisions sections");
|
|
1978
1978
|
}
|
|
1979
|
-
const { loadState, saveState } = await import("./dist-
|
|
1979
|
+
const { loadState, saveState } = await import("./dist-3HW4LCHE.js");
|
|
1980
1980
|
const lr = await loadState(projectPath, input.stream);
|
|
1981
1981
|
if (!lr.ok) return resultToMcpResponse(lr);
|
|
1982
1982
|
lr.value.decisions.push({
|
|
@@ -1994,7 +1994,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
1994
1994
|
if (!input.entryId) return mcpError("Error: entryId is required for update_entry_status action");
|
|
1995
1995
|
if (!input.newStatus)
|
|
1996
1996
|
return mcpError("Error: newStatus is required for update_entry_status action");
|
|
1997
|
-
const { updateSessionEntryStatus } = await import("./dist-
|
|
1997
|
+
const { updateSessionEntryStatus } = await import("./dist-3HW4LCHE.js");
|
|
1998
1998
|
const result = await updateSessionEntryStatus(
|
|
1999
1999
|
projectPath,
|
|
2000
2000
|
input.session,
|
|
@@ -2007,7 +2007,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
2007
2007
|
async function handleReadSection(projectPath, input) {
|
|
2008
2008
|
if (!input.session) return mcpError("Error: session is required for read_section action");
|
|
2009
2009
|
if (!input.section) return mcpError("Error: section is required for read_section action");
|
|
2010
|
-
const { readSessionSection } = await import("./dist-
|
|
2010
|
+
const { readSessionSection } = await import("./dist-3HW4LCHE.js");
|
|
2011
2011
|
const result = await readSessionSection(
|
|
2012
2012
|
projectPath,
|
|
2013
2013
|
input.session,
|
|
@@ -2017,13 +2017,13 @@ async function handleReadSection(projectPath, input) {
|
|
|
2017
2017
|
}
|
|
2018
2018
|
async function handleReadSections(projectPath, input) {
|
|
2019
2019
|
if (!input.session) return mcpError("Error: session is required for read_sections action");
|
|
2020
|
-
const { readSessionSections } = await import("./dist-
|
|
2020
|
+
const { readSessionSections } = await import("./dist-3HW4LCHE.js");
|
|
2021
2021
|
const result = await readSessionSections(projectPath, input.session);
|
|
2022
2022
|
return resultToMcpResponse(result);
|
|
2023
2023
|
}
|
|
2024
2024
|
async function handleArchiveSession(projectPath, input) {
|
|
2025
2025
|
if (!input.session) return mcpError("Error: session is required for archive_session action");
|
|
2026
|
-
const { archiveSession } = await import("./dist-
|
|
2026
|
+
const { archiveSession } = await import("./dist-3HW4LCHE.js");
|
|
2027
2027
|
const { buildArchiveHooks } = await import("@harness-engineering/orchestrator");
|
|
2028
2028
|
const hooks = buildArchiveHooks({ projectPath });
|
|
2029
2029
|
const result = await archiveSession(projectPath, input.session, { hooks });
|
|
@@ -2105,7 +2105,7 @@ var listStreamsDefinition = {
|
|
|
2105
2105
|
};
|
|
2106
2106
|
async function handleListStreams(input) {
|
|
2107
2107
|
try {
|
|
2108
|
-
const { listStreams, loadStreamIndex } = await import("./dist-
|
|
2108
|
+
const { listStreams, loadStreamIndex } = await import("./dist-3HW4LCHE.js");
|
|
2109
2109
|
const projectPath = sanitizePath(input.path);
|
|
2110
2110
|
const indexResult = await loadStreamIndex(projectPath);
|
|
2111
2111
|
const streamsResult = await listStreams(projectPath);
|
|
@@ -2143,7 +2143,7 @@ var checkPhaseGateDefinition = {
|
|
|
2143
2143
|
};
|
|
2144
2144
|
async function handleCheckPhaseGate(input) {
|
|
2145
2145
|
try {
|
|
2146
|
-
const { runCheckPhaseGate } = await import("./check-phase-gate-
|
|
2146
|
+
const { runCheckPhaseGate } = await import("./check-phase-gate-REG3HWYC.js");
|
|
2147
2147
|
const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
|
|
2148
2148
|
if (result.ok) {
|
|
2149
2149
|
return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
|
|
@@ -2199,7 +2199,7 @@ async function handleValidateCrossCheck(input) {
|
|
|
2199
2199
|
};
|
|
2200
2200
|
}
|
|
2201
2201
|
try {
|
|
2202
|
-
const { runCrossCheck } = await import("./validate-cross-check-
|
|
2202
|
+
const { runCrossCheck } = await import("./validate-cross-check-4ITA72DF.js");
|
|
2203
2203
|
const specsDir = path12.resolve(projectPath, input.specsDir ?? "docs/specs");
|
|
2204
2204
|
if (!specsDir.startsWith(projectPath)) {
|
|
2205
2205
|
return {
|
|
@@ -3022,7 +3022,7 @@ async function handleGenerateSlashCommands(input) {
|
|
|
3022
3022
|
// src/mcp/resources/state.ts
|
|
3023
3023
|
async function getStateResource(projectRoot) {
|
|
3024
3024
|
try {
|
|
3025
|
-
const { loadState, migrateToStreams } = await import("./dist-
|
|
3025
|
+
const { loadState, migrateToStreams } = await import("./dist-3HW4LCHE.js");
|
|
3026
3026
|
await migrateToStreams(projectRoot);
|
|
3027
3027
|
const result = await loadState(projectRoot);
|
|
3028
3028
|
if (result.ok) {
|
|
@@ -4042,7 +4042,7 @@ var generateAgentDefinitionsDefinition = {
|
|
|
4042
4042
|
}
|
|
4043
4043
|
};
|
|
4044
4044
|
async function handleGenerateAgentDefinitions(input) {
|
|
4045
|
-
const { generateAgentDefinitions } = await import("./generate-agent-definitions-
|
|
4045
|
+
const { generateAgentDefinitions } = await import("./generate-agent-definitions-S2FRZF4Y.js");
|
|
4046
4046
|
const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
|
|
4047
4047
|
const results = generateAgentDefinitions({
|
|
4048
4048
|
platforms: [...platforms],
|
|
@@ -4482,6 +4482,18 @@ function handleAdd2(projectPath, input, deps) {
|
|
|
4482
4482
|
writeRoadmapFile(projectPath, serializeRoadmap(roadmap));
|
|
4483
4483
|
return resultToMcpResponse(Ok2(roadmap));
|
|
4484
4484
|
}
|
|
4485
|
+
function claimRefusedResponse(featureName, roadmap, currentAssignee) {
|
|
4486
|
+
const message = `Claim refused: "${featureName}" is already in-progress under ${currentAssignee ?? "another owner"} (first-claim-wins). Release it first to hand off.`;
|
|
4487
|
+
return {
|
|
4488
|
+
content: [
|
|
4489
|
+
{
|
|
4490
|
+
type: "text",
|
|
4491
|
+
text: JSON.stringify({ ...roadmap, claimed: false, message })
|
|
4492
|
+
}
|
|
4493
|
+
],
|
|
4494
|
+
isError: true
|
|
4495
|
+
};
|
|
4496
|
+
}
|
|
4485
4497
|
function handleUpdate2(projectPath, input, deps) {
|
|
4486
4498
|
const { parseRoadmap, serializeRoadmap, syncRoadmap, applySyncChanges, Ok: Ok2 } = deps;
|
|
4487
4499
|
if (!input.feature) {
|
|
@@ -4499,13 +4511,21 @@ function handleUpdate2(projectPath, input, deps) {
|
|
|
4499
4511
|
for (const m of roadmap.milestones) {
|
|
4500
4512
|
const feature = m.features.find((f) => f.name.toLowerCase() === input.feature.toLowerCase());
|
|
4501
4513
|
if (feature) {
|
|
4502
|
-
|
|
4514
|
+
const date = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
4515
|
+
if (input.status) deps.setStatus(roadmap, feature, input.status, date);
|
|
4503
4516
|
if (input.summary !== void 0) feature.summary = input.summary;
|
|
4504
4517
|
if (input.spec !== void 0) feature.spec = input.spec || null;
|
|
4505
4518
|
if (input.plans !== void 0) feature.plans = input.plans;
|
|
4506
4519
|
if (input.blocked_by !== void 0) feature.blockedBy = input.blocked_by;
|
|
4507
4520
|
if (input.assignee !== void 0) {
|
|
4508
|
-
|
|
4521
|
+
if (input.assignee) {
|
|
4522
|
+
deps.claim(roadmap, feature, input.assignee, date);
|
|
4523
|
+
if (feature.assignee !== input.assignee) {
|
|
4524
|
+
return claimRefusedResponse(input.feature, roadmap, feature.assignee);
|
|
4525
|
+
}
|
|
4526
|
+
} else {
|
|
4527
|
+
deps.release(roadmap, feature, date);
|
|
4528
|
+
}
|
|
4509
4529
|
}
|
|
4510
4530
|
found = true;
|
|
4511
4531
|
break;
|
|
@@ -4739,9 +4759,12 @@ async function handleManageRoadmap(input) {
|
|
|
4739
4759
|
syncRoadmap,
|
|
4740
4760
|
applySyncChanges,
|
|
4741
4761
|
assignFeature,
|
|
4762
|
+
setStatus,
|
|
4763
|
+
claim,
|
|
4764
|
+
release,
|
|
4742
4765
|
promoteFeature,
|
|
4743
4766
|
groomRoadmap
|
|
4744
|
-
} = await import("./dist-
|
|
4767
|
+
} = await import("./dist-3HW4LCHE.js");
|
|
4745
4768
|
const { Ok: Ok2 } = await import("./dist-ICW4QUEW.js");
|
|
4746
4769
|
const projectPath = projectPathPre;
|
|
4747
4770
|
const deps = {
|
|
@@ -4750,6 +4773,9 @@ async function handleManageRoadmap(input) {
|
|
|
4750
4773
|
syncRoadmap,
|
|
4751
4774
|
applySyncChanges,
|
|
4752
4775
|
assignFeature,
|
|
4776
|
+
setStatus,
|
|
4777
|
+
claim,
|
|
4778
|
+
release,
|
|
4753
4779
|
promoteFeature,
|
|
4754
4780
|
groomRoadmap,
|
|
4755
4781
|
Ok: Ok2
|
|
@@ -5182,7 +5208,7 @@ async function handleTransition(validInput, projectPath, id) {
|
|
|
5182
5208
|
const transition = transitionResult.data;
|
|
5183
5209
|
const prompt = renderTransition(transition);
|
|
5184
5210
|
try {
|
|
5185
|
-
const { saveHandoff } = await import("./dist-
|
|
5211
|
+
const { saveHandoff } = await import("./dist-3HW4LCHE.js");
|
|
5186
5212
|
await saveHandoff(
|
|
5187
5213
|
projectPath,
|
|
5188
5214
|
{
|
|
@@ -5263,7 +5289,7 @@ async function handleEmitInteraction(input) {
|
|
|
5263
5289
|
}
|
|
5264
5290
|
async function recordInteraction(projectPath, id, type, decision, stream) {
|
|
5265
5291
|
try {
|
|
5266
|
-
const { loadState, saveState } = await import("./dist-
|
|
5292
|
+
const { loadState, saveState } = await import("./dist-3HW4LCHE.js");
|
|
5267
5293
|
const stateResult = await loadState(projectPath, stream);
|
|
5268
5294
|
if (stateResult.ok) {
|
|
5269
5295
|
const state = stateResult.value;
|
|
@@ -5424,10 +5450,10 @@ async function handleGatherContext(input) {
|
|
|
5424
5450
|
input.include ?? ["state", "learnings", "handoff", "graph", "validation", "businessKnowledge"]
|
|
5425
5451
|
);
|
|
5426
5452
|
const errors = [];
|
|
5427
|
-
const statePromise = includeSet.has("state") ? import("./dist-
|
|
5453
|
+
const statePromise = includeSet.has("state") ? import("./dist-3HW4LCHE.js").then(
|
|
5428
5454
|
(core) => core.loadState(projectPath, void 0, input.session)
|
|
5429
5455
|
) : Promise.resolve(null);
|
|
5430
|
-
const learningsPromise = includeSet.has("learnings") ? import("./dist-
|
|
5456
|
+
const learningsPromise = includeSet.has("learnings") ? import("./dist-3HW4LCHE.js").then(
|
|
5431
5457
|
(core) => core.loadBudgetedLearnings(projectPath, {
|
|
5432
5458
|
intent: input.intent,
|
|
5433
5459
|
tokenBudget: input.learningsBudget ?? 1e3,
|
|
@@ -5436,7 +5462,7 @@ async function handleGatherContext(input) {
|
|
|
5436
5462
|
...input.depth !== void 0 && { depth: input.depth }
|
|
5437
5463
|
})
|
|
5438
5464
|
) : Promise.resolve(null);
|
|
5439
|
-
const handoffPromise = includeSet.has("handoff") ? import("./dist-
|
|
5465
|
+
const handoffPromise = includeSet.has("handoff") ? import("./dist-3HW4LCHE.js").then(
|
|
5440
5466
|
(core) => core.loadHandoff(projectPath, void 0, input.session)
|
|
5441
5467
|
) : Promise.resolve(null);
|
|
5442
5468
|
const graphPromise = includeSet.has("graph") ? (async () => {
|
|
@@ -5480,11 +5506,11 @@ async function handleGatherContext(input) {
|
|
|
5480
5506
|
context: contextBlocks
|
|
5481
5507
|
};
|
|
5482
5508
|
})() : Promise.resolve(null);
|
|
5483
|
-
const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-
|
|
5509
|
+
const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-3HW4LCHE.js").then(
|
|
5484
5510
|
(core) => core.readSessionSections(projectPath, input.session)
|
|
5485
5511
|
) : Promise.resolve(null);
|
|
5486
5512
|
const shouldIncludeEvents = input.includeEvents !== void 0 ? input.includeEvents : includeSet.has("events") || !!input.session && !input.include;
|
|
5487
|
-
const eventsPromise = shouldIncludeEvents ? import("./dist-
|
|
5513
|
+
const eventsPromise = shouldIncludeEvents ? import("./dist-3HW4LCHE.js").then(async (core) => {
|
|
5488
5514
|
const result = await core.loadEvents(projectPath, {
|
|
5489
5515
|
session: input.session
|
|
5490
5516
|
});
|
|
@@ -5492,7 +5518,7 @@ async function handleGatherContext(input) {
|
|
|
5492
5518
|
return core.formatEventTimeline(result.value);
|
|
5493
5519
|
}) : Promise.resolve(null);
|
|
5494
5520
|
const validationPromise = includeSet.has("validation") ? (async () => {
|
|
5495
|
-
const { handleValidateProject: handleValidateProject2 } = await import("./validate-
|
|
5521
|
+
const { handleValidateProject: handleValidateProject2 } = await import("./validate-G3LKBOYA.js");
|
|
5496
5522
|
const result = await handleValidateProject2({ path: projectPath });
|
|
5497
5523
|
const first = result.content[0];
|
|
5498
5524
|
return first ? JSON.parse(first.text) : null;
|
|
@@ -5595,7 +5621,7 @@ async function handleGatherContext(input) {
|
|
|
5595
5621
|
};
|
|
5596
5622
|
if (input.session) {
|
|
5597
5623
|
try {
|
|
5598
|
-
const core = await import("./dist-
|
|
5624
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
5599
5625
|
core.updateSessionIndex(
|
|
5600
5626
|
projectPath,
|
|
5601
5627
|
input.session,
|
|
@@ -5793,7 +5819,7 @@ async function handleReviewChanges(input) {
|
|
|
5793
5819
|
}
|
|
5794
5820
|
}
|
|
5795
5821
|
async function runQuickReview(projectPath, diff, diffLines, downgraded, offset, limit) {
|
|
5796
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-
|
|
5822
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-U6VJ6AUJ.js");
|
|
5797
5823
|
const result = await handleAnalyzeDiff2({ diff, path: projectPath });
|
|
5798
5824
|
const firstContent = result.content[0];
|
|
5799
5825
|
if (!firstContent) throw new Error("Empty analyze_diff response");
|
|
@@ -5828,7 +5854,7 @@ function extractFileCount(diffParsed) {
|
|
|
5828
5854
|
return files?.length ?? 0;
|
|
5829
5855
|
}
|
|
5830
5856
|
async function runStandardReview(projectPath, diff, diffLines, downgraded, offset, limit) {
|
|
5831
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-
|
|
5857
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-U6VJ6AUJ.js");
|
|
5832
5858
|
const [diffResult, reviewResult] = await Promise.all([
|
|
5833
5859
|
handleAnalyzeDiff2({ diff, path: projectPath }),
|
|
5834
5860
|
handleCreateSelfReview2({ path: projectPath, diff })
|
|
@@ -5863,7 +5889,7 @@ async function runStandardReview(projectPath, diff, diffLines, downgraded, offse
|
|
|
5863
5889
|
};
|
|
5864
5890
|
}
|
|
5865
5891
|
async function runDeepReview(projectPath, diff, diffLines, _downgraded, offset, limit) {
|
|
5866
|
-
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-
|
|
5892
|
+
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-WUHG7PHO.js");
|
|
5867
5893
|
const result = await handleRunCodeReview2({
|
|
5868
5894
|
path: projectPath,
|
|
5869
5895
|
diff,
|
|
@@ -6158,7 +6184,7 @@ async function handleDetectStaleConstraints(input) {
|
|
|
6158
6184
|
]
|
|
6159
6185
|
};
|
|
6160
6186
|
}
|
|
6161
|
-
const { detectStaleConstraints } = await import("./dist-
|
|
6187
|
+
const { detectStaleConstraints } = await import("./dist-3HW4LCHE.js");
|
|
6162
6188
|
const result = detectStaleConstraints(
|
|
6163
6189
|
store,
|
|
6164
6190
|
windowDays,
|
|
@@ -6288,10 +6314,10 @@ function countCriticalFindings(securityData) {
|
|
|
6288
6314
|
return findings.filter((f) => f.severity === "error").length;
|
|
6289
6315
|
}
|
|
6290
6316
|
async function runHealthChecks(projectPath) {
|
|
6291
|
-
const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-
|
|
6292
|
-
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-
|
|
6293
|
-
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-
|
|
6294
|
-
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-
|
|
6317
|
+
const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-B6ENHUAU.js");
|
|
6318
|
+
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-5KPP4ID4.js");
|
|
6319
|
+
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-3JBKCGJJ.js");
|
|
6320
|
+
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-JDHTRBGC.js");
|
|
6295
6321
|
const [assessResult, depsResult, entropyResult, securityResult] = await Promise.all([
|
|
6296
6322
|
handleAssessProject2({
|
|
6297
6323
|
path: projectPath,
|
|
@@ -7134,7 +7160,7 @@ async function handleGetDecayTrends(input) {
|
|
|
7134
7160
|
};
|
|
7135
7161
|
}
|
|
7136
7162
|
try {
|
|
7137
|
-
const core = await import("./dist-
|
|
7163
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
7138
7164
|
const { TimelineManager } = core;
|
|
7139
7165
|
const manager = new TimelineManager(projectPath);
|
|
7140
7166
|
const timeline = manager.load();
|
|
@@ -7269,7 +7295,7 @@ async function handleCodeOutline(input) {
|
|
|
7269
7295
|
};
|
|
7270
7296
|
}
|
|
7271
7297
|
try {
|
|
7272
|
-
const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-
|
|
7298
|
+
const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-3HW4LCHE.js");
|
|
7273
7299
|
const { stat } = await import("fs/promises");
|
|
7274
7300
|
const stats = await stat(targetPath).catch(() => null);
|
|
7275
7301
|
if (stats?.isFile()) {
|
|
@@ -7288,7 +7314,7 @@ async function handleCodeOutline(input) {
|
|
|
7288
7314
|
})
|
|
7289
7315
|
);
|
|
7290
7316
|
fileStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
7291
|
-
const { paginate: paginate2 } = await import("./dist-
|
|
7317
|
+
const { paginate: paginate2 } = await import("./dist-3HW4LCHE.js");
|
|
7292
7318
|
const paged = paginate2(fileStats, input.offset ?? 0, input.limit ?? 30);
|
|
7293
7319
|
const results = [];
|
|
7294
7320
|
for (const entry of paged.items) {
|
|
@@ -7361,7 +7387,7 @@ async function handleCodeSearch(input) {
|
|
|
7361
7387
|
};
|
|
7362
7388
|
}
|
|
7363
7389
|
try {
|
|
7364
|
-
const { searchSymbols } = await import("./dist-
|
|
7390
|
+
const { searchSymbols } = await import("./dist-3HW4LCHE.js");
|
|
7365
7391
|
const result = await searchSymbols(input.query, directory, input.glob);
|
|
7366
7392
|
const lines = [`Search: "${result.query}" \u2014 ${result.matches.length} matches`];
|
|
7367
7393
|
for (const match of result.matches) {
|
|
@@ -7430,7 +7456,7 @@ async function handleCodeUnfold(input) {
|
|
|
7430
7456
|
}
|
|
7431
7457
|
try {
|
|
7432
7458
|
if (input.symbol) {
|
|
7433
|
-
const { unfoldSymbol } = await import("./dist-
|
|
7459
|
+
const { unfoldSymbol } = await import("./dist-3HW4LCHE.js");
|
|
7434
7460
|
const result = await unfoldSymbol(filePath, input.symbol);
|
|
7435
7461
|
const header = result.warning ? `${result.file}:${result.startLine}-${result.endLine} ${result.warning}
|
|
7436
7462
|
` : `${result.file}:${result.startLine}-${result.endLine}
|
|
@@ -7438,7 +7464,7 @@ async function handleCodeUnfold(input) {
|
|
|
7438
7464
|
return { content: [{ type: "text", text: header + result.content }] };
|
|
7439
7465
|
}
|
|
7440
7466
|
if (input.startLine != null && input.endLine != null) {
|
|
7441
|
-
const { unfoldRange } = await import("./dist-
|
|
7467
|
+
const { unfoldRange } = await import("./dist-3HW4LCHE.js");
|
|
7442
7468
|
const result = await unfoldRange(filePath, input.startLine, input.endLine);
|
|
7443
7469
|
const header = `${result.file}:${result.startLine}-${result.endLine}
|
|
7444
7470
|
`;
|
|
@@ -7623,7 +7649,7 @@ async function handlePredictFailures(input) {
|
|
|
7623
7649
|
};
|
|
7624
7650
|
}
|
|
7625
7651
|
try {
|
|
7626
|
-
const core = await import("./dist-
|
|
7652
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
7627
7653
|
const { TimelineManager, PredictionEngine, SpecImpactEstimator } = core;
|
|
7628
7654
|
const manager = new TimelineManager(projectPath);
|
|
7629
7655
|
const includeRoadmap = input.includeRoadmap !== false;
|
|
@@ -8732,7 +8758,7 @@ async function handleDetectConstraintEmergence(input) {
|
|
|
8732
8758
|
}
|
|
8733
8759
|
const nodePath = await import("path");
|
|
8734
8760
|
const historyPath = nodePath.resolve(projectPath, ".harness/arch/violation-history.json");
|
|
8735
|
-
const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-
|
|
8761
|
+
const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-3HW4LCHE.js");
|
|
8736
8762
|
const manager = new ViolationHistoryManager(historyPath);
|
|
8737
8763
|
const history = manager.load();
|
|
8738
8764
|
const options = { windowWeeks, minOccurrences };
|
|
@@ -8820,7 +8846,7 @@ async function handleRunCIChecks(input) {
|
|
|
8820
8846
|
};
|
|
8821
8847
|
}
|
|
8822
8848
|
try {
|
|
8823
|
-
const { runCIChecks } = await import("./dist-
|
|
8849
|
+
const { runCIChecks } = await import("./dist-3HW4LCHE.js");
|
|
8824
8850
|
const skip = input.checks ? VALID_CHECKS.filter((c) => !input.checks.includes(c)) : [];
|
|
8825
8851
|
const result = await runCIChecks({
|
|
8826
8852
|
projectRoot: projectPath,
|
|
@@ -8882,7 +8908,7 @@ async function handleGenerateBlueprint(input) {
|
|
|
8882
8908
|
};
|
|
8883
8909
|
}
|
|
8884
8910
|
try {
|
|
8885
|
-
const { ProjectScanner } = await import("./dist-
|
|
8911
|
+
const { ProjectScanner } = await import("./dist-3HW4LCHE.js");
|
|
8886
8912
|
const scanner = new ProjectScanner(projectPath);
|
|
8887
8913
|
const data = await scanner.scan();
|
|
8888
8914
|
return {
|
|
@@ -9081,7 +9107,7 @@ async function handleEmitSkillProposal(input) {
|
|
|
9081
9107
|
let createProposal;
|
|
9082
9108
|
let ProposalConflictError;
|
|
9083
9109
|
try {
|
|
9084
|
-
const core = await import("./dist-
|
|
9110
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
9085
9111
|
createProposal = core.createProposal;
|
|
9086
9112
|
ProposalConflictError = core.ProposalConflictError;
|
|
9087
9113
|
} catch (err2) {
|
|
@@ -18890,7 +18916,7 @@ async function handleValidateStrategy(input) {
|
|
|
18890
18916
|
} catch (error) {
|
|
18891
18917
|
return mcpError2(error instanceof Error ? error.message : String(error));
|
|
18892
18918
|
}
|
|
18893
|
-
const { validateStrategy } = await import("./dist-
|
|
18919
|
+
const { validateStrategy } = await import("./dist-3HW4LCHE.js");
|
|
18894
18920
|
const result = await validateStrategy(projectPath);
|
|
18895
18921
|
if (!result.ok) {
|
|
18896
18922
|
return mcpJson({ present: true, valid: false, error: result.error.message });
|
|
@@ -18915,7 +18941,7 @@ async function handleReadStrategy(input) {
|
|
|
18915
18941
|
} catch (error) {
|
|
18916
18942
|
return mcpError2(error instanceof Error ? error.message : String(error));
|
|
18917
18943
|
}
|
|
18918
|
-
const core = await import("./dist-
|
|
18944
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
18919
18945
|
const validation = await core.validateStrategy(projectPath);
|
|
18920
18946
|
if (!validation.ok) {
|
|
18921
18947
|
return mcpJson({ present: true, valid: false, error: validation.error.message });
|
|
@@ -18967,7 +18993,7 @@ async function handleWriteStrategy(input) {
|
|
|
18967
18993
|
} catch (error) {
|
|
18968
18994
|
return mcpError2(error instanceof Error ? error.message : String(error));
|
|
18969
18995
|
}
|
|
18970
|
-
const core = await import("./dist-
|
|
18996
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
18971
18997
|
try {
|
|
18972
18998
|
core.writeStrategyDoc(input.doc, {
|
|
18973
18999
|
cwd: projectPath,
|
|
@@ -19011,7 +19037,7 @@ async function handleSeedPulseFromStrategy(input) {
|
|
|
19011
19037
|
} catch (error) {
|
|
19012
19038
|
return mcpError3(error instanceof Error ? error.message : String(error));
|
|
19013
19039
|
}
|
|
19014
|
-
const core = await import("./dist-
|
|
19040
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
19015
19041
|
const seed = core.seedFromStrategy({ cwd: projectPath });
|
|
19016
19042
|
return mcpJson2(seed);
|
|
19017
19043
|
}
|
|
@@ -19046,7 +19072,7 @@ async function handleWritePulseConfig(input) {
|
|
|
19046
19072
|
return mcpError3(error instanceof Error ? error.message : String(error));
|
|
19047
19073
|
}
|
|
19048
19074
|
const resolvedConfigPath = input.configPath !== void 0 ? path53.isAbsolute(input.configPath) ? input.configPath : path53.join(projectPath, input.configPath) : path53.join(projectPath, "harness.config.json");
|
|
19049
|
-
const core = await import("./dist-
|
|
19075
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
19050
19076
|
try {
|
|
19051
19077
|
core.writePulseConfig(input.config, {
|
|
19052
19078
|
configPath: resolvedConfigPath,
|
|
@@ -19095,7 +19121,7 @@ async function handleAcquireCompoundLock(input) {
|
|
|
19095
19121
|
} catch (error) {
|
|
19096
19122
|
return mcpError4(error instanceof Error ? error.message : String(error));
|
|
19097
19123
|
}
|
|
19098
|
-
const core = await import("./dist-
|
|
19124
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
19099
19125
|
try {
|
|
19100
19126
|
const handle = core.acquireCompoundLock(
|
|
19101
19127
|
input.category,
|
|
@@ -19457,7 +19483,7 @@ async function appendUpdateNotification(result, resolvedRoot) {
|
|
|
19457
19483
|
shouldRunCheck,
|
|
19458
19484
|
readCheckState,
|
|
19459
19485
|
spawnBackgroundCheck
|
|
19460
|
-
} = await import("./dist-
|
|
19486
|
+
} = await import("./dist-3HW4LCHE.js");
|
|
19461
19487
|
const { CLI_VERSION } = await import("./version-CUI434OP.js");
|
|
19462
19488
|
const configInterval = readConfigInterval(resolvedRoot);
|
|
19463
19489
|
const DEFAULT_INTERVAL = 864e5;
|