@harness-engineering/cli 4.3.3 → 6.0.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-brainstorming/SKILL.md +3 -1
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +5 -0
- package/dist/agents/skills/claude-code/harness-rollback/SKILL.md +124 -0
- package/dist/agents/skills/claude-code/harness-rollback/skill.yaml +52 -0
- package/dist/agents/skills/claude-code/product-requirements/SKILL.md +150 -0
- package/dist/agents/skills/claude-code/product-requirements/skill.yaml +70 -0
- package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +3 -1
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +5 -0
- package/dist/agents/skills/codex/harness-rollback/SKILL.md +124 -0
- package/dist/agents/skills/codex/harness-rollback/skill.yaml +52 -0
- package/dist/agents/skills/codex/product-requirements/SKILL.md +150 -0
- package/dist/agents/skills/codex/product-requirements/skill.yaml +70 -0
- package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +3 -1
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +5 -0
- package/dist/agents/skills/cursor/harness-rollback/SKILL.md +124 -0
- package/dist/agents/skills/cursor/harness-rollback/skill.yaml +52 -0
- package/dist/agents/skills/cursor/product-requirements/SKILL.md +150 -0
- package/dist/agents/skills/cursor/product-requirements/skill.yaml +70 -0
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +3 -1
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +5 -0
- package/dist/agents/skills/gemini-cli/harness-rollback/SKILL.md +124 -0
- package/dist/agents/skills/gemini-cli/harness-rollback/skill.yaml +52 -0
- package/dist/agents/skills/gemini-cli/product-requirements/SKILL.md +150 -0
- package/dist/agents/skills/gemini-cli/product-requirements/skill.yaml +70 -0
- package/dist/{agents-md-N4ULMUAK.js → agents-md-OTKZE5HH.js} +4 -4
- package/dist/{analyzer-XRCV63KC-WGRHW2ZM.js → analyzer-XRCV63KC-FALMS3MO.js} +2 -2
- package/dist/{architecture-OIMIBDJC.js → architecture-3VYDN7MQ.js} +5 -5
- package/dist/{assess-project-ITSB6W4L.js → assess-project-27X2FSZZ.js} +1 -1
- package/dist/bin/harness-mcp.js +15 -15
- package/dist/bin/harness.js +25 -25
- package/dist/{check-phase-gate-GN4X7HT6.js → check-phase-gate-IXLFZ6YH.js} +5 -5
- package/dist/{chunk-MEDRUIRO.js → chunk-354MCPT3.js} +3 -3
- package/dist/{chunk-5BUHPOCP.js → chunk-3H7JA24B.js} +7 -7
- package/dist/{chunk-PT65VY4S.js → chunk-3MKQKNY3.js} +6 -6
- package/dist/{chunk-LP764MGR.js → chunk-6Y6M3AZA.js} +3 -3
- package/dist/{chunk-D7A5JR7M.js → chunk-BMNHLKBA.js} +2 -2
- package/dist/{chunk-CRHQYBDA.js → chunk-CTMHHMHQ.js} +101 -4
- package/dist/{chunk-MIZQY35D.js → chunk-D7QXGI6E.js} +2 -2
- package/dist/{chunk-F3GNBRGL.js → chunk-EFWRZHZ7.js} +101 -97
- package/dist/{chunk-LTYVAKWK.js → chunk-IOJGLIEQ.js} +20 -2
- package/dist/{chunk-CMU4DNLY.js → chunk-IXGYIQSR.js} +1 -1
- package/dist/{chunk-6NEJPS7W.js → chunk-JJLOWMGC.js} +2 -2
- package/dist/{chunk-73QZ43DF.js → chunk-KPBGAB35.js} +2 -2
- package/dist/{chunk-HJYAXAYQ.js → chunk-L5UKNGC5.js} +2 -2
- package/dist/{chunk-VJDSB7CI.js → chunk-LHWBQD7F.js} +24 -1
- package/dist/{chunk-JZL2O3RC.js → chunk-LISEPDVT.js} +5 -5
- package/dist/{chunk-NEMB36N4.js → chunk-MEIUXTFY.js} +2 -2
- package/dist/{chunk-7RH2NTLA.js → chunk-NZ5AXKRA.js} +1 -1
- package/dist/{chunk-H5GN7R43.js → chunk-QHFXVVUY.js} +2 -2
- package/dist/{chunk-U2NOOATF.js → chunk-S2ETJDQJ.js} +6 -6
- package/dist/{chunk-574JCBYH.js → chunk-TM4KFUWP.js} +2 -2
- package/dist/{chunk-YVI7ZV73.js → chunk-VGDZAWCJ.js} +803 -214
- package/dist/{chunk-TKPAOB2T.js → chunk-VRA64HYI.js} +2 -2
- package/dist/{chunk-T46G6YNI.js → chunk-WAFTJFT3.js} +3 -3
- package/dist/{chunk-GTHL3TRZ.js → chunk-XF6RE3JQ.js} +2 -2
- package/dist/{chunk-XKILFNRK.js → chunk-XNHKXELN.js} +2 -2
- package/dist/{ci-workflow-PA3WL6WK.js → ci-workflow-Y5GBKNZP.js} +4 -4
- package/dist/{dist-BWFFVKEW.js → dist-4CZLCE33.js} +7 -3
- package/dist/{dist-ISDDHDOR.js → dist-S3KCRI7X.js} +3 -1
- package/dist/{docs-HOTWQJQF.js → docs-3MWDPK4S.js} +5 -5
- package/dist/{engine-MVG2SPGD.js → engine-RJXQ5DHK.js} +4 -4
- package/dist/{entropy-3B4U2BTF.js → entropy-OX5LSM4S.js} +5 -5
- package/dist/{feedback-WIWWDVUC.js → feedback-OODAP2G2.js} +1 -1
- package/dist/{generate-agent-definitions-KPRHY6X3.js → generate-agent-definitions-CCREQZEA.js} +5 -5
- package/dist/hooks/adoption-tracker.js +41 -25
- package/dist/hooks/pre-compact-state.js +45 -27
- package/dist/hooks/sentinel-post.js +125 -102
- package/dist/hooks/sentinel-pre.js +70 -53
- package/dist/hooks/telemetry-reporter.js +44 -25
- package/dist/index.d.ts +66 -0
- package/dist/index.js +25 -25
- package/dist/{loader-SPJ2ZGYW.js → loader-ZICOJBVX.js} +4 -4
- package/dist/{mcp-VSSIWTII.js → mcp-XX6EIBLL.js} +15 -15
- package/dist/{performance-JYFS27B3.js → performance-OLZVGMAY.js} +5 -5
- package/dist/{review-pipeline-BDT6Y6QV.js → review-pipeline-3QPHMWPC.js} +4 -4
- package/dist/{runtime-ZEPHPPQJ.js → runtime-ZFFIH76Z.js} +4 -4
- package/dist/{security-FWSDTTEW.js → security-7YW3UK2C.js} +1 -1
- package/dist/{state-events-PBDNQPXT.js → state-events-PTWAEGJ2.js} +4 -4
- package/dist/{validate-XIMNCIKR.js → validate-H5SB7X3Z.js} +5 -5
- package/dist/{validate-cross-check-H2OUHTID.js → validate-cross-check-YYVYMSPA.js} +4 -4
- package/package.json +8 -8
|
@@ -5,30 +5,30 @@ import {
|
|
|
5
5
|
handleCreateSelfReview,
|
|
6
6
|
handleRequestPeerReview,
|
|
7
7
|
requestPeerReviewDefinition
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-354MCPT3.js";
|
|
9
9
|
import {
|
|
10
10
|
getSecurityTrendsDefinition,
|
|
11
11
|
handleGetSecurityTrends,
|
|
12
12
|
handleRunSecurityScan,
|
|
13
13
|
runSecurityScanDefinition
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-L5UKNGC5.js";
|
|
15
15
|
import {
|
|
16
16
|
handleRunCodeReview,
|
|
17
17
|
runCodeReviewDefinition,
|
|
18
18
|
sortFindingsBySeverity
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-QHFXVVUY.js";
|
|
20
20
|
import {
|
|
21
21
|
assessProjectDefinition,
|
|
22
22
|
handleAssessProject
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-S2ETJDQJ.js";
|
|
24
24
|
import {
|
|
25
25
|
checkDocsDefinition,
|
|
26
26
|
handleCheckDocs
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-3MKQKNY3.js";
|
|
28
28
|
import {
|
|
29
29
|
detectEntropyDefinition,
|
|
30
30
|
handleDetectEntropy
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-LISEPDVT.js";
|
|
32
32
|
import {
|
|
33
33
|
checkPerformanceDefinition,
|
|
34
34
|
getCriticalPathsDefinition,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
handleGetPerfBaselines,
|
|
39
39
|
handleUpdatePerfBaselines,
|
|
40
40
|
updatePerfBaselinesDefinition
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-3H7JA24B.js";
|
|
42
42
|
import {
|
|
43
43
|
getBusinessKnowledgeResource
|
|
44
44
|
} from "./chunk-IOW3MW2K.js";
|
|
@@ -57,17 +57,17 @@ import {
|
|
|
57
57
|
import {
|
|
58
58
|
handleValidateProject,
|
|
59
59
|
validateToolDefinition
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-WAFTJFT3.js";
|
|
61
61
|
import {
|
|
62
62
|
checkDependenciesDefinition,
|
|
63
63
|
handleCheckDependencies
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-BMNHLKBA.js";
|
|
65
65
|
import {
|
|
66
66
|
resultToMcpResponse
|
|
67
67
|
} from "./chunk-RC3OI5NK.js";
|
|
68
68
|
import {
|
|
69
69
|
resolveProjectConfig
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-XNHKXELN.js";
|
|
71
71
|
import {
|
|
72
72
|
sanitizePath
|
|
73
73
|
} from "./chunk-W6Y7ZW3Y.js";
|
|
@@ -93,7 +93,7 @@ import {
|
|
|
93
93
|
findConfigFile,
|
|
94
94
|
loadConfig,
|
|
95
95
|
resolveConfig
|
|
96
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-IOJGLIEQ.js";
|
|
97
97
|
import {
|
|
98
98
|
logger
|
|
99
99
|
} from "./chunk-EBJQ6N4M.js";
|
|
@@ -129,14 +129,14 @@ import {
|
|
|
129
129
|
scanForInjection,
|
|
130
130
|
serializeEnvelope,
|
|
131
131
|
writeTaint
|
|
132
|
-
} from "./chunk-
|
|
132
|
+
} from "./chunk-CTMHHMHQ.js";
|
|
133
133
|
import {
|
|
134
134
|
Err,
|
|
135
135
|
INDEXED_FILE_KINDS,
|
|
136
136
|
INSIGHTS_KEYS,
|
|
137
137
|
Ok,
|
|
138
138
|
init_dist
|
|
139
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-LHWBQD7F.js";
|
|
140
140
|
|
|
141
141
|
// src/mcp/server.ts
|
|
142
142
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
@@ -747,7 +747,7 @@ async function handleInsightsSummary(input) {
|
|
|
747
747
|
const skip = Array.isArray(input.skip) ? input.skip.filter(
|
|
748
748
|
(k) => typeof k === "string" && INSIGHTS_KEYS.includes(k)
|
|
749
749
|
) : void 0;
|
|
750
|
-
const { composeInsights } = await import("./dist-
|
|
750
|
+
const { composeInsights } = await import("./dist-4CZLCE33.js");
|
|
751
751
|
const report = await composeInsights(projectPath, {
|
|
752
752
|
...skip && skip.length > 0 && { skip }
|
|
753
753
|
});
|
|
@@ -923,7 +923,7 @@ ${skippedMsg}`
|
|
|
923
923
|
async function handleInitProject(input) {
|
|
924
924
|
const i = input;
|
|
925
925
|
try {
|
|
926
|
-
const { TemplateEngine } = await import("./engine-
|
|
926
|
+
const { TemplateEngine } = await import("./engine-RJXQ5DHK.js");
|
|
927
927
|
const engine = new TemplateEngine(resolveTemplatesDir());
|
|
928
928
|
const safePath = sanitizePath(i.path);
|
|
929
929
|
const detected = tryDetectFramework(engine, safePath, i);
|
|
@@ -945,7 +945,7 @@ var listPersonasDefinition = {
|
|
|
945
945
|
inputSchema: { type: "object", properties: {} }
|
|
946
946
|
};
|
|
947
947
|
async function handleListPersonas() {
|
|
948
|
-
const { listPersonas } = await import("./loader-
|
|
948
|
+
const { listPersonas } = await import("./loader-ZICOJBVX.js");
|
|
949
949
|
const result = listPersonas(resolvePersonasDir());
|
|
950
950
|
return resultToMcpResponse(result);
|
|
951
951
|
}
|
|
@@ -969,10 +969,10 @@ async function handleGeneratePersonaArtifacts(input) {
|
|
|
969
969
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.name)) {
|
|
970
970
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.name}`)));
|
|
971
971
|
}
|
|
972
|
-
const { loadPersona } = await import("./loader-
|
|
973
|
-
const { generateRuntime } = await import("./runtime-
|
|
974
|
-
const { generateAgentsMd } = await import("./agents-md-
|
|
975
|
-
const { generateCIWorkflow } = await import("./ci-workflow-
|
|
972
|
+
const { loadPersona } = await import("./loader-ZICOJBVX.js");
|
|
973
|
+
const { generateRuntime } = await import("./runtime-ZFFIH76Z.js");
|
|
974
|
+
const { generateAgentsMd } = await import("./agents-md-OTKZE5HH.js");
|
|
975
|
+
const { generateCIWorkflow } = await import("./ci-workflow-Y5GBKNZP.js");
|
|
976
976
|
const personasDir = resolvePersonasDir();
|
|
977
977
|
const filePath = path4.join(personasDir, `${input.name}.yaml`);
|
|
978
978
|
if (!filePath.startsWith(personasDir)) {
|
|
@@ -1027,7 +1027,7 @@ async function handleRunPersona(input) {
|
|
|
1027
1027
|
if (!/^[a-z0-9][a-z0-9._-]*$/i.test(input.persona)) {
|
|
1028
1028
|
return resultToMcpResponse(Err(new Error(`Invalid persona name: ${input.persona}`)));
|
|
1029
1029
|
}
|
|
1030
|
-
const { loadPersona } = await import("./loader-
|
|
1030
|
+
const { loadPersona } = await import("./loader-ZICOJBVX.js");
|
|
1031
1031
|
const { runPersona } = await import("./runner-AAEF2TXY.js");
|
|
1032
1032
|
const { executeSkill } = await import("./skill-executor-BGUCAVBU.js");
|
|
1033
1033
|
const personasDir = resolvePersonasDir();
|
|
@@ -1550,7 +1550,7 @@ async function handleRunSkill(input) {
|
|
|
1550
1550
|
}
|
|
1551
1551
|
if (input.path) {
|
|
1552
1552
|
const projectPath = sanitizePath(input.path);
|
|
1553
|
-
const { readHarnessState, isEmptyHarnessState } = await import("./state-events-
|
|
1553
|
+
const { readHarnessState, isEmptyHarnessState } = await import("./state-events-PTWAEGJ2.js");
|
|
1554
1554
|
const stateResult = await readHarnessState(projectPath);
|
|
1555
1555
|
if (stateResult.ok && !isEmptyHarnessState(stateResult.value)) {
|
|
1556
1556
|
const stateContent = JSON.stringify(stateResult.value, null, 2);
|
|
@@ -1749,7 +1749,7 @@ import * as path11 from "path";
|
|
|
1749
1749
|
async function autoSyncRoadmap(projectPath) {
|
|
1750
1750
|
try {
|
|
1751
1751
|
if (!roadmapSourceExists(projectPath)) return;
|
|
1752
|
-
const { syncRoadmap, applySyncChanges } = await import("./dist-
|
|
1752
|
+
const { syncRoadmap, applySyncChanges } = await import("./dist-4CZLCE33.js");
|
|
1753
1753
|
const store = resolveRoadmapStore({ projectRoot: projectPath });
|
|
1754
1754
|
const loaded = await store.load();
|
|
1755
1755
|
if (!loaded.ok) return;
|
|
@@ -1780,7 +1780,7 @@ async function triggerExternalSync(projectPath) {
|
|
|
1780
1780
|
console.warn("[roadmap-sync] GITHUB_TOKEN not found \u2014 external sync skipped");
|
|
1781
1781
|
return;
|
|
1782
1782
|
}
|
|
1783
|
-
const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-
|
|
1783
|
+
const { fullSync, GitHubIssuesSyncAdapter } = await import("./dist-4CZLCE33.js");
|
|
1784
1784
|
const adapter = new GitHubIssuesSyncAdapter({
|
|
1785
1785
|
token,
|
|
1786
1786
|
config: trackerConfig
|
|
@@ -1900,14 +1900,14 @@ var manageStateDefinition = {
|
|
|
1900
1900
|
}
|
|
1901
1901
|
};
|
|
1902
1902
|
async function handleShow(projectPath, input) {
|
|
1903
|
-
const { readHarnessState } = await import("./state-events-
|
|
1903
|
+
const { readHarnessState } = await import("./state-events-PTWAEGJ2.js");
|
|
1904
1904
|
return resultToMcpResponse(
|
|
1905
1905
|
await readHarnessState(projectPath, { stream: input.stream, session: input.session })
|
|
1906
1906
|
);
|
|
1907
1907
|
}
|
|
1908
1908
|
async function handleLearn(projectPath, input) {
|
|
1909
1909
|
if (!input.learning) return mcpError("Error: learning is required for learn action");
|
|
1910
|
-
const { appendLearning } = await import("./dist-
|
|
1910
|
+
const { appendLearning } = await import("./dist-4CZLCE33.js");
|
|
1911
1911
|
const result = await appendLearning(
|
|
1912
1912
|
projectPath,
|
|
1913
1913
|
input.learning,
|
|
@@ -1922,7 +1922,7 @@ async function handleLearn(projectPath, input) {
|
|
|
1922
1922
|
async function handleFailure(projectPath, input) {
|
|
1923
1923
|
if (!input.description) return mcpError("Error: description is required for failure action");
|
|
1924
1924
|
if (!input.failureType) return mcpError("Error: failureType is required for failure action");
|
|
1925
|
-
const { appendFailure } = await import("./dist-
|
|
1925
|
+
const { appendFailure } = await import("./dist-4CZLCE33.js");
|
|
1926
1926
|
const result = await appendFailure(
|
|
1927
1927
|
projectPath,
|
|
1928
1928
|
input.description,
|
|
@@ -1941,13 +1941,13 @@ async function handleFailure(projectPath, input) {
|
|
|
1941
1941
|
return resultToMcpResponse(Ok({ recorded: true }));
|
|
1942
1942
|
}
|
|
1943
1943
|
async function handleArchive(projectPath, input) {
|
|
1944
|
-
const { archiveFailures } = await import("./dist-
|
|
1944
|
+
const { archiveFailures } = await import("./dist-4CZLCE33.js");
|
|
1945
1945
|
const result = await archiveFailures(projectPath, input.stream, input.session);
|
|
1946
1946
|
if (!result.ok) return resultToMcpResponse(result);
|
|
1947
1947
|
return resultToMcpResponse(Ok({ archived: true }));
|
|
1948
1948
|
}
|
|
1949
1949
|
async function handleReset(projectPath, input) {
|
|
1950
|
-
const { eventSourcing } = await import("./dist-
|
|
1950
|
+
const { eventSourcing } = await import("./dist-4CZLCE33.js");
|
|
1951
1951
|
const result = await eventSourcing.resetEventLog(projectPath, {
|
|
1952
1952
|
stream: input.stream,
|
|
1953
1953
|
session: input.session
|
|
@@ -1956,7 +1956,7 @@ async function handleReset(projectPath, input) {
|
|
|
1956
1956
|
return resultToMcpResponse(Ok({ reset: true }));
|
|
1957
1957
|
}
|
|
1958
1958
|
async function handleGate(projectPath, input) {
|
|
1959
|
-
const { runMechanicalGate } = await import("./dist-
|
|
1959
|
+
const { runMechanicalGate } = await import("./dist-4CZLCE33.js");
|
|
1960
1960
|
const result = await runMechanicalGate(projectPath);
|
|
1961
1961
|
if (result.ok) {
|
|
1962
1962
|
await emitSkillEvent(projectPath, {
|
|
@@ -1976,7 +1976,7 @@ async function handleGate(projectPath, input) {
|
|
|
1976
1976
|
}
|
|
1977
1977
|
async function handleSaveHandoff(projectPath, input) {
|
|
1978
1978
|
if (!input.handoff) return mcpError("Error: handoff is required for save-handoff action");
|
|
1979
|
-
const { saveHandoff } = await import("./dist-
|
|
1979
|
+
const { saveHandoff } = await import("./dist-4CZLCE33.js");
|
|
1980
1980
|
const result = await saveHandoff(
|
|
1981
1981
|
projectPath,
|
|
1982
1982
|
input.handoff,
|
|
@@ -1998,7 +1998,7 @@ async function handleSaveHandoff(projectPath, input) {
|
|
|
1998
1998
|
return resultToMcpResponse(Ok({ saved: true }));
|
|
1999
1999
|
}
|
|
2000
2000
|
async function handleLoadHandoff(projectPath, input) {
|
|
2001
|
-
const { loadHandoff } = await import("./dist-
|
|
2001
|
+
const { loadHandoff } = await import("./dist-4CZLCE33.js");
|
|
2002
2002
|
return resultToMcpResponse(await loadHandoff(projectPath, input.stream, input.session));
|
|
2003
2003
|
}
|
|
2004
2004
|
async function handleAppendEntry(projectPath, input) {
|
|
@@ -2006,7 +2006,7 @@ async function handleAppendEntry(projectPath, input) {
|
|
|
2006
2006
|
if (!input.authorSkill) return mcpError("Error: authorSkill is required for append_entry action");
|
|
2007
2007
|
if (!input.content) return mcpError("Error: content is required for append_entry action");
|
|
2008
2008
|
if (input.session) {
|
|
2009
|
-
const { appendSessionEntry } = await import("./dist-
|
|
2009
|
+
const { appendSessionEntry } = await import("./dist-4CZLCE33.js");
|
|
2010
2010
|
const result = await appendSessionEntry(
|
|
2011
2011
|
projectPath,
|
|
2012
2012
|
input.session,
|
|
@@ -2020,7 +2020,7 @@ async function handleAppendEntry(projectPath, input) {
|
|
|
2020
2020
|
return mcpError("Error: session is required for non-decisions sections");
|
|
2021
2021
|
}
|
|
2022
2022
|
const { randomUUID: randomUUID10 } = await import("crypto");
|
|
2023
|
-
const { emitCoreEvent } = await import("./state-events-
|
|
2023
|
+
const { emitCoreEvent } = await import("./state-events-PTWAEGJ2.js");
|
|
2024
2024
|
const r = await emitCoreEvent(
|
|
2025
2025
|
projectPath,
|
|
2026
2026
|
{
|
|
@@ -2038,7 +2038,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
2038
2038
|
if (!input.entryId) return mcpError("Error: entryId is required for update_entry_status action");
|
|
2039
2039
|
if (!input.newStatus)
|
|
2040
2040
|
return mcpError("Error: newStatus is required for update_entry_status action");
|
|
2041
|
-
const { updateSessionEntryStatus } = await import("./dist-
|
|
2041
|
+
const { updateSessionEntryStatus } = await import("./dist-4CZLCE33.js");
|
|
2042
2042
|
const result = await updateSessionEntryStatus(
|
|
2043
2043
|
projectPath,
|
|
2044
2044
|
input.session,
|
|
@@ -2048,7 +2048,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
2048
2048
|
);
|
|
2049
2049
|
if (result.ok && input.section === "decisions" && input.newStatus === "resolved") {
|
|
2050
2050
|
try {
|
|
2051
|
-
const { emitApprovalResolved } = await import("./state-events-
|
|
2051
|
+
const { emitApprovalResolved } = await import("./state-events-PTWAEGJ2.js");
|
|
2052
2052
|
await emitApprovalResolved(projectPath, input.entryId, input.newStatus, {
|
|
2053
2053
|
stream: input.stream
|
|
2054
2054
|
});
|
|
@@ -2060,7 +2060,7 @@ async function handleUpdateEntryStatus(projectPath, input) {
|
|
|
2060
2060
|
async function handleReadSection(projectPath, input) {
|
|
2061
2061
|
if (!input.session) return mcpError("Error: session is required for read_section action");
|
|
2062
2062
|
if (!input.section) return mcpError("Error: section is required for read_section action");
|
|
2063
|
-
const { readSessionSection } = await import("./dist-
|
|
2063
|
+
const { readSessionSection } = await import("./dist-4CZLCE33.js");
|
|
2064
2064
|
const result = await readSessionSection(
|
|
2065
2065
|
projectPath,
|
|
2066
2066
|
input.session,
|
|
@@ -2070,13 +2070,13 @@ async function handleReadSection(projectPath, input) {
|
|
|
2070
2070
|
}
|
|
2071
2071
|
async function handleReadSections(projectPath, input) {
|
|
2072
2072
|
if (!input.session) return mcpError("Error: session is required for read_sections action");
|
|
2073
|
-
const { readSessionSections } = await import("./dist-
|
|
2073
|
+
const { readSessionSections } = await import("./dist-4CZLCE33.js");
|
|
2074
2074
|
const result = await readSessionSections(projectPath, input.session);
|
|
2075
2075
|
return resultToMcpResponse(result);
|
|
2076
2076
|
}
|
|
2077
2077
|
async function handleArchiveSession(projectPath, input) {
|
|
2078
2078
|
if (!input.session) return mcpError("Error: session is required for archive_session action");
|
|
2079
|
-
const { archiveSession } = await import("./dist-
|
|
2079
|
+
const { archiveSession } = await import("./dist-4CZLCE33.js");
|
|
2080
2080
|
const { buildArchiveHooks } = await import("@harness-engineering/orchestrator");
|
|
2081
2081
|
const hooks = buildArchiveHooks({ projectPath });
|
|
2082
2082
|
const result = await archiveSession(projectPath, input.session, { hooks });
|
|
@@ -2119,7 +2119,7 @@ async function handlePhaseComplete(projectPath, input) {
|
|
|
2119
2119
|
async function handleTaskTransition(projectPath, input) {
|
|
2120
2120
|
if (!input.taskId) return mcpError("Error: taskId is required for task-transition action");
|
|
2121
2121
|
if (!input.toLane) return mcpError("Error: toLane is required for task-transition action");
|
|
2122
|
-
const { eventSourcing } = await import("./dist-
|
|
2122
|
+
const { eventSourcing } = await import("./dist-4CZLCE33.js");
|
|
2123
2123
|
const scope = { stream: input.stream, session: input.session };
|
|
2124
2124
|
if (input.dependsOn) {
|
|
2125
2125
|
const reg = await eventSourcing.registerTask(projectPath, input.taskId, input.dependsOn, scope);
|
|
@@ -2183,7 +2183,7 @@ var listStreamsDefinition = {
|
|
|
2183
2183
|
};
|
|
2184
2184
|
async function handleListStreams(input) {
|
|
2185
2185
|
try {
|
|
2186
|
-
const { listStreams, loadStreamIndex } = await import("./dist-
|
|
2186
|
+
const { listStreams, loadStreamIndex } = await import("./dist-4CZLCE33.js");
|
|
2187
2187
|
const projectPath = sanitizePath(input.path);
|
|
2188
2188
|
const indexResult = await loadStreamIndex(projectPath);
|
|
2189
2189
|
const streamsResult = await listStreams(projectPath);
|
|
@@ -2221,7 +2221,7 @@ var checkPhaseGateDefinition = {
|
|
|
2221
2221
|
};
|
|
2222
2222
|
async function handleCheckPhaseGate(input) {
|
|
2223
2223
|
try {
|
|
2224
|
-
const { runCheckPhaseGate } = await import("./check-phase-gate-
|
|
2224
|
+
const { runCheckPhaseGate } = await import("./check-phase-gate-IXLFZ6YH.js");
|
|
2225
2225
|
const result = await runCheckPhaseGate({ cwd: sanitizePath(input.path) });
|
|
2226
2226
|
if (result.ok) {
|
|
2227
2227
|
return { content: [{ type: "text", text: JSON.stringify(result.value) }] };
|
|
@@ -2277,7 +2277,7 @@ async function handleValidateCrossCheck(input) {
|
|
|
2277
2277
|
};
|
|
2278
2278
|
}
|
|
2279
2279
|
try {
|
|
2280
|
-
const { runCrossCheck } = await import("./validate-cross-check-
|
|
2280
|
+
const { runCrossCheck } = await import("./validate-cross-check-YYVYMSPA.js");
|
|
2281
2281
|
const specsDir = path12.resolve(projectPath, input.specsDir ?? "docs/specs");
|
|
2282
2282
|
if (!specsDir.startsWith(projectPath)) {
|
|
2283
2283
|
return {
|
|
@@ -3100,8 +3100,8 @@ async function handleGenerateSlashCommands(input) {
|
|
|
3100
3100
|
// src/mcp/resources/state.ts
|
|
3101
3101
|
async function getStateResource(projectRoot) {
|
|
3102
3102
|
try {
|
|
3103
|
-
const { migrateToStreams } = await import("./dist-
|
|
3104
|
-
const { readHarnessState } = await import("./state-events-
|
|
3103
|
+
const { migrateToStreams } = await import("./dist-4CZLCE33.js");
|
|
3104
|
+
const { readHarnessState } = await import("./state-events-PTWAEGJ2.js");
|
|
3105
3105
|
await migrateToStreams(projectRoot);
|
|
3106
3106
|
const result = await readHarnessState(projectRoot);
|
|
3107
3107
|
if (result.ok) {
|
|
@@ -4121,7 +4121,7 @@ var generateAgentDefinitionsDefinition = {
|
|
|
4121
4121
|
}
|
|
4122
4122
|
};
|
|
4123
4123
|
async function handleGenerateAgentDefinitions(input) {
|
|
4124
|
-
const { generateAgentDefinitions } = await import("./generate-agent-definitions-
|
|
4124
|
+
const { generateAgentDefinitions } = await import("./generate-agent-definitions-CCREQZEA.js");
|
|
4125
4125
|
const platforms = input.platform === "all" || !input.platform ? ["claude-code", "gemini-cli"] : [input.platform];
|
|
4126
4126
|
const results = generateAgentDefinitions({
|
|
4127
4127
|
platforms: [...platforms],
|
|
@@ -4838,8 +4838,8 @@ async function handleManageRoadmap(input) {
|
|
|
4838
4838
|
release,
|
|
4839
4839
|
promoteFeature,
|
|
4840
4840
|
groomRoadmap
|
|
4841
|
-
} = await import("./dist-
|
|
4842
|
-
const { Ok: Ok2 } = await import("./dist-
|
|
4841
|
+
} = await import("./dist-4CZLCE33.js");
|
|
4842
|
+
const { Ok: Ok2 } = await import("./dist-S3KCRI7X.js");
|
|
4843
4843
|
const projectPath = projectPathPre;
|
|
4844
4844
|
const deps = {
|
|
4845
4845
|
parseRoadmap,
|
|
@@ -5282,7 +5282,7 @@ async function handleTransition(validInput, projectPath, id) {
|
|
|
5282
5282
|
const transition = transitionResult.data;
|
|
5283
5283
|
const prompt = renderTransition(transition);
|
|
5284
5284
|
try {
|
|
5285
|
-
const { saveHandoff } = await import("./dist-
|
|
5285
|
+
const { saveHandoff } = await import("./dist-4CZLCE33.js");
|
|
5286
5286
|
await saveHandoff(
|
|
5287
5287
|
projectPath,
|
|
5288
5288
|
{
|
|
@@ -5363,7 +5363,7 @@ async function handleEmitInteraction(input) {
|
|
|
5363
5363
|
}
|
|
5364
5364
|
async function recordInteraction(projectPath, id, type, decision, stream) {
|
|
5365
5365
|
try {
|
|
5366
|
-
const { emitCoreEvent, emitUserInputCaptured, emitApprovalRequested } = await import("./state-events-
|
|
5366
|
+
const { emitCoreEvent, emitUserInputCaptured, emitApprovalRequested } = await import("./state-events-PTWAEGJ2.js");
|
|
5367
5367
|
await emitCoreEvent(
|
|
5368
5368
|
projectPath,
|
|
5369
5369
|
{
|
|
@@ -5524,10 +5524,10 @@ async function handleGatherContext(input) {
|
|
|
5524
5524
|
input.include ?? ["state", "learnings", "handoff", "graph", "validation", "businessKnowledge"]
|
|
5525
5525
|
);
|
|
5526
5526
|
const errors = [];
|
|
5527
|
-
const statePromise = includeSet.has("state") ? import("./state-events-
|
|
5527
|
+
const statePromise = includeSet.has("state") ? import("./state-events-PTWAEGJ2.js").then(
|
|
5528
5528
|
(m) => m.readHarnessState(projectPath, { session: input.session })
|
|
5529
5529
|
) : Promise.resolve(null);
|
|
5530
|
-
const learningsPromise = includeSet.has("learnings") ? import("./dist-
|
|
5530
|
+
const learningsPromise = includeSet.has("learnings") ? import("./dist-4CZLCE33.js").then(
|
|
5531
5531
|
(core) => core.loadBudgetedLearnings(projectPath, {
|
|
5532
5532
|
intent: input.intent,
|
|
5533
5533
|
tokenBudget: input.learningsBudget ?? 1e3,
|
|
@@ -5536,7 +5536,7 @@ async function handleGatherContext(input) {
|
|
|
5536
5536
|
...input.depth !== void 0 && { depth: input.depth }
|
|
5537
5537
|
})
|
|
5538
5538
|
) : Promise.resolve(null);
|
|
5539
|
-
const handoffPromise = includeSet.has("handoff") ? import("./dist-
|
|
5539
|
+
const handoffPromise = includeSet.has("handoff") ? import("./dist-4CZLCE33.js").then(
|
|
5540
5540
|
(core) => core.loadHandoff(projectPath, void 0, input.session)
|
|
5541
5541
|
) : Promise.resolve(null);
|
|
5542
5542
|
const graphPromise = includeSet.has("graph") ? (async () => {
|
|
@@ -5580,15 +5580,15 @@ async function handleGatherContext(input) {
|
|
|
5580
5580
|
context: contextBlocks
|
|
5581
5581
|
};
|
|
5582
5582
|
})() : Promise.resolve(null);
|
|
5583
|
-
const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-
|
|
5583
|
+
const sessionsPromise = includeSet.has("sessions") && input.session ? import("./dist-4CZLCE33.js").then(
|
|
5584
5584
|
(core) => core.readSessionSections(projectPath, input.session)
|
|
5585
5585
|
) : Promise.resolve(null);
|
|
5586
5586
|
const shouldIncludeEvents = input.includeEvents !== void 0 ? input.includeEvents : includeSet.has("events") || !!input.session && !input.include;
|
|
5587
|
-
const eventsPromise = shouldIncludeEvents ? import("./state-events-
|
|
5587
|
+
const eventsPromise = shouldIncludeEvents ? import("./state-events-PTWAEGJ2.js").then(
|
|
5588
5588
|
(m) => m.readAuditTimeline(projectPath, { session: input.session })
|
|
5589
5589
|
) : Promise.resolve(null);
|
|
5590
5590
|
const validationPromise = includeSet.has("validation") ? (async () => {
|
|
5591
|
-
const { handleValidateProject: handleValidateProject2 } = await import("./validate-
|
|
5591
|
+
const { handleValidateProject: handleValidateProject2 } = await import("./validate-H5SB7X3Z.js");
|
|
5592
5592
|
const result = await handleValidateProject2({ path: projectPath });
|
|
5593
5593
|
const first = result.content[0];
|
|
5594
5594
|
return first ? JSON.parse(first.text) : null;
|
|
@@ -5691,7 +5691,7 @@ async function handleGatherContext(input) {
|
|
|
5691
5691
|
};
|
|
5692
5692
|
if (input.session) {
|
|
5693
5693
|
try {
|
|
5694
|
-
const core = await import("./dist-
|
|
5694
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
5695
5695
|
core.updateSessionIndex(
|
|
5696
5696
|
projectPath,
|
|
5697
5697
|
input.session,
|
|
@@ -5889,7 +5889,7 @@ async function handleReviewChanges(input) {
|
|
|
5889
5889
|
}
|
|
5890
5890
|
}
|
|
5891
5891
|
async function runQuickReview(projectPath, diff, diffLines, downgraded, offset, limit) {
|
|
5892
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-
|
|
5892
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2 } = await import("./feedback-OODAP2G2.js");
|
|
5893
5893
|
const result = await handleAnalyzeDiff2({ diff, path: projectPath });
|
|
5894
5894
|
const firstContent = result.content[0];
|
|
5895
5895
|
if (!firstContent) throw new Error("Empty analyze_diff response");
|
|
@@ -5924,7 +5924,7 @@ function extractFileCount(diffParsed) {
|
|
|
5924
5924
|
return files?.length ?? 0;
|
|
5925
5925
|
}
|
|
5926
5926
|
async function runStandardReview(projectPath, diff, diffLines, downgraded, offset, limit) {
|
|
5927
|
-
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-
|
|
5927
|
+
const { handleAnalyzeDiff: handleAnalyzeDiff2, handleCreateSelfReview: handleCreateSelfReview2 } = await import("./feedback-OODAP2G2.js");
|
|
5928
5928
|
const [diffResult, reviewResult] = await Promise.all([
|
|
5929
5929
|
handleAnalyzeDiff2({ diff, path: projectPath }),
|
|
5930
5930
|
handleCreateSelfReview2({ path: projectPath, diff })
|
|
@@ -5959,7 +5959,7 @@ async function runStandardReview(projectPath, diff, diffLines, downgraded, offse
|
|
|
5959
5959
|
};
|
|
5960
5960
|
}
|
|
5961
5961
|
async function runDeepReview(projectPath, diff, diffLines, _downgraded, offset, limit) {
|
|
5962
|
-
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-
|
|
5962
|
+
const { handleRunCodeReview: handleRunCodeReview2 } = await import("./review-pipeline-3QPHMWPC.js");
|
|
5963
5963
|
const result = await handleRunCodeReview2({
|
|
5964
5964
|
path: projectPath,
|
|
5965
5965
|
diff,
|
|
@@ -6220,8 +6220,8 @@ function validationError(messages) {
|
|
|
6220
6220
|
async function handlePlanParallelization(input) {
|
|
6221
6221
|
try {
|
|
6222
6222
|
const projectPath = sanitizePath(input.path);
|
|
6223
|
-
const { PlanTaskSchema } = await import("./dist-
|
|
6224
|
-
const { planParallelization, validatePlanTasks } = await import("./dist-
|
|
6223
|
+
const { PlanTaskSchema } = await import("./dist-S3KCRI7X.js");
|
|
6224
|
+
const { planParallelization, validatePlanTasks } = await import("./dist-4CZLCE33.js");
|
|
6225
6225
|
const parsed = PlanTaskSchema.array().safeParse(input.tasks);
|
|
6226
6226
|
if (!parsed.success) {
|
|
6227
6227
|
return validationError(parsed.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`));
|
|
@@ -6333,7 +6333,7 @@ async function handleDetectStaleConstraints(input) {
|
|
|
6333
6333
|
]
|
|
6334
6334
|
};
|
|
6335
6335
|
}
|
|
6336
|
-
const { detectStaleConstraints } = await import("./dist-
|
|
6336
|
+
const { detectStaleConstraints } = await import("./dist-4CZLCE33.js");
|
|
6337
6337
|
const result = detectStaleConstraints(
|
|
6338
6338
|
store,
|
|
6339
6339
|
windowDays,
|
|
@@ -6464,10 +6464,10 @@ function countCriticalFindings(securityData) {
|
|
|
6464
6464
|
return findings.filter((f) => f.severity === "error").length;
|
|
6465
6465
|
}
|
|
6466
6466
|
async function runHealthChecks(projectPath) {
|
|
6467
|
-
const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-
|
|
6468
|
-
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-
|
|
6469
|
-
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-
|
|
6470
|
-
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-
|
|
6467
|
+
const { handleAssessProject: handleAssessProject2 } = await import("./assess-project-27X2FSZZ.js");
|
|
6468
|
+
const { handleCheckDependencies: handleCheckDependencies2 } = await import("./architecture-3VYDN7MQ.js");
|
|
6469
|
+
const { handleDetectEntropy: handleDetectEntropy2 } = await import("./entropy-OX5LSM4S.js");
|
|
6470
|
+
const { handleRunSecurityScan: handleRunSecurityScan2 } = await import("./security-7YW3UK2C.js");
|
|
6471
6471
|
const [assessResult, depsResult, entropyResult, securityResult] = await Promise.all([
|
|
6472
6472
|
handleAssessProject2({
|
|
6473
6473
|
path: projectPath,
|
|
@@ -7331,7 +7331,7 @@ async function handleGetDecayTrends(input) {
|
|
|
7331
7331
|
};
|
|
7332
7332
|
}
|
|
7333
7333
|
try {
|
|
7334
|
-
const core = await import("./dist-
|
|
7334
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
7335
7335
|
const { TimelineManager } = core;
|
|
7336
7336
|
const manager = new TimelineManager(projectPath);
|
|
7337
7337
|
const timeline = manager.load();
|
|
@@ -7466,7 +7466,7 @@ async function handleCodeOutline(input) {
|
|
|
7466
7466
|
};
|
|
7467
7467
|
}
|
|
7468
7468
|
try {
|
|
7469
|
-
const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-
|
|
7469
|
+
const { getOutline, formatOutline, EXTENSION_MAP } = await import("./dist-4CZLCE33.js");
|
|
7470
7470
|
const { stat } = await import("fs/promises");
|
|
7471
7471
|
const stats = await stat(targetPath).catch(() => null);
|
|
7472
7472
|
if (stats?.isFile()) {
|
|
@@ -7485,7 +7485,7 @@ async function handleCodeOutline(input) {
|
|
|
7485
7485
|
})
|
|
7486
7486
|
);
|
|
7487
7487
|
fileStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
7488
|
-
const { paginate: paginate2 } = await import("./dist-
|
|
7488
|
+
const { paginate: paginate2 } = await import("./dist-4CZLCE33.js");
|
|
7489
7489
|
const paged = paginate2(fileStats, input.offset ?? 0, input.limit ?? 30);
|
|
7490
7490
|
const results = [];
|
|
7491
7491
|
for (const entry of paged.items) {
|
|
@@ -7558,7 +7558,7 @@ async function handleCodeSearch(input) {
|
|
|
7558
7558
|
};
|
|
7559
7559
|
}
|
|
7560
7560
|
try {
|
|
7561
|
-
const { searchSymbols } = await import("./dist-
|
|
7561
|
+
const { searchSymbols } = await import("./dist-4CZLCE33.js");
|
|
7562
7562
|
const result = await searchSymbols(input.query, directory, input.glob);
|
|
7563
7563
|
const lines = [`Search: "${result.query}" \u2014 ${result.matches.length} matches`];
|
|
7564
7564
|
for (const match of result.matches) {
|
|
@@ -7627,7 +7627,7 @@ async function handleCodeUnfold(input) {
|
|
|
7627
7627
|
}
|
|
7628
7628
|
try {
|
|
7629
7629
|
if (input.symbol) {
|
|
7630
|
-
const { unfoldSymbol } = await import("./dist-
|
|
7630
|
+
const { unfoldSymbol } = await import("./dist-4CZLCE33.js");
|
|
7631
7631
|
const result = await unfoldSymbol(filePath, input.symbol);
|
|
7632
7632
|
const header = result.warning ? `${result.file}:${result.startLine}-${result.endLine} ${result.warning}
|
|
7633
7633
|
` : `${result.file}:${result.startLine}-${result.endLine}
|
|
@@ -7635,7 +7635,7 @@ async function handleCodeUnfold(input) {
|
|
|
7635
7635
|
return { content: [{ type: "text", text: header + result.content }] };
|
|
7636
7636
|
}
|
|
7637
7637
|
if (input.startLine != null && input.endLine != null) {
|
|
7638
|
-
const { unfoldRange } = await import("./dist-
|
|
7638
|
+
const { unfoldRange } = await import("./dist-4CZLCE33.js");
|
|
7639
7639
|
const result = await unfoldRange(filePath, input.startLine, input.endLine);
|
|
7640
7640
|
const header = `${result.file}:${result.startLine}-${result.endLine}
|
|
7641
7641
|
`;
|
|
@@ -7820,7 +7820,7 @@ async function handlePredictFailures(input) {
|
|
|
7820
7820
|
};
|
|
7821
7821
|
}
|
|
7822
7822
|
try {
|
|
7823
|
-
const core = await import("./dist-
|
|
7823
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
7824
7824
|
const { TimelineManager, PredictionEngine, SpecImpactEstimator } = core;
|
|
7825
7825
|
const manager = new TimelineManager(projectPath);
|
|
7826
7826
|
const includeRoadmap = input.includeRoadmap !== false;
|
|
@@ -8929,7 +8929,7 @@ async function handleDetectConstraintEmergence(input) {
|
|
|
8929
8929
|
}
|
|
8930
8930
|
const nodePath = await import("path");
|
|
8931
8931
|
const historyPath = nodePath.resolve(projectPath, ".harness/arch/violation-history.json");
|
|
8932
|
-
const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-
|
|
8932
|
+
const { ViolationHistoryManager, detectEmergentConstraints } = await import("./dist-4CZLCE33.js");
|
|
8933
8933
|
const manager = new ViolationHistoryManager(historyPath);
|
|
8934
8934
|
const history = manager.load();
|
|
8935
8935
|
const options = { windowWeeks, minOccurrences };
|
|
@@ -9017,7 +9017,7 @@ async function handleRunCIChecks(input) {
|
|
|
9017
9017
|
};
|
|
9018
9018
|
}
|
|
9019
9019
|
try {
|
|
9020
|
-
const { runCIChecks } = await import("./dist-
|
|
9020
|
+
const { runCIChecks } = await import("./dist-4CZLCE33.js");
|
|
9021
9021
|
const skip = input.checks ? VALID_CHECKS.filter((c) => !input.checks.includes(c)) : [];
|
|
9022
9022
|
const result = await runCIChecks({
|
|
9023
9023
|
projectRoot: projectPath,
|
|
@@ -9079,7 +9079,7 @@ async function handleGenerateBlueprint(input) {
|
|
|
9079
9079
|
};
|
|
9080
9080
|
}
|
|
9081
9081
|
try {
|
|
9082
|
-
const { ProjectScanner } = await import("./dist-
|
|
9082
|
+
const { ProjectScanner } = await import("./dist-4CZLCE33.js");
|
|
9083
9083
|
const scanner = new ProjectScanner(projectPath);
|
|
9084
9084
|
const data = await scanner.scan();
|
|
9085
9085
|
return {
|
|
@@ -9282,7 +9282,7 @@ function validateProposalCrossFields(input) {
|
|
|
9282
9282
|
}
|
|
9283
9283
|
async function loadCoreProposalApi() {
|
|
9284
9284
|
try {
|
|
9285
|
-
const core = await import("./dist-
|
|
9285
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
9286
9286
|
return {
|
|
9287
9287
|
createProposal: core.createProposal,
|
|
9288
9288
|
ProposalConflictError: core.ProposalConflictError
|
|
@@ -13147,6 +13147,21 @@ var LazyLocalAdapter = class {
|
|
|
13147
13147
|
getResolvedModel() {
|
|
13148
13148
|
return this.resolved?.modelId ?? null;
|
|
13149
13149
|
}
|
|
13150
|
+
/** Construct the real OpenAI-compatible provider for a matched model. */
|
|
13151
|
+
buildDefaultProvider(modelId) {
|
|
13152
|
+
const inner = new OpenAICompatibleAnalysisProvider({
|
|
13153
|
+
apiKey: this.opts.apiKey,
|
|
13154
|
+
baseUrl: this.opts.endpoint,
|
|
13155
|
+
defaultModel: modelId,
|
|
13156
|
+
...this.opts.llmTimeoutMs !== void 0 ? { timeoutMs: this.opts.llmTimeoutMs } : {}
|
|
13157
|
+
});
|
|
13158
|
+
return new AnalysisProviderAdapter({
|
|
13159
|
+
providerId: this.providerId,
|
|
13160
|
+
model: modelId,
|
|
13161
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13162
|
+
inner
|
|
13163
|
+
});
|
|
13164
|
+
}
|
|
13150
13165
|
async resolve() {
|
|
13151
13166
|
if (this.resolved !== null) return this.resolved;
|
|
13152
13167
|
if (this.resolvePromise !== null) return this.resolvePromise;
|
|
@@ -13168,18 +13183,7 @@ var LazyLocalAdapter = class {
|
|
|
13168
13183
|
`${this.providerId}: no configured model is loaded at ${this.opts.endpoint}. Configured: [${this.opts.configured.join(", ")}]. Detected: [${detected.join(", ")}]. Load one of the configured models or update agent.backends.<name>.model.`
|
|
13169
13184
|
);
|
|
13170
13185
|
}
|
|
13171
|
-
const
|
|
13172
|
-
apiKey: this.opts.apiKey,
|
|
13173
|
-
baseUrl: this.opts.endpoint,
|
|
13174
|
-
defaultModel: match,
|
|
13175
|
-
...this.opts.llmTimeoutMs !== void 0 ? { timeoutMs: this.opts.llmTimeoutMs } : {}
|
|
13176
|
-
});
|
|
13177
|
-
const provider = new AnalysisProviderAdapter({
|
|
13178
|
-
providerId: this.providerId,
|
|
13179
|
-
model: match,
|
|
13180
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13181
|
-
inner
|
|
13182
|
-
});
|
|
13186
|
+
const provider = this.opts.makeProvider ? this.opts.makeProvider(match) : this.buildDefaultProvider(match);
|
|
13183
13187
|
const resolved = { provider, modelId: match };
|
|
13184
13188
|
this.resolved = resolved;
|
|
13185
13189
|
return resolved;
|
|
@@ -19876,7 +19880,7 @@ async function handleValidateStrategy(input) {
|
|
|
19876
19880
|
} catch (error) {
|
|
19877
19881
|
return mcpError2(error instanceof Error ? error.message : String(error));
|
|
19878
19882
|
}
|
|
19879
|
-
const { validateStrategy } = await import("./dist-
|
|
19883
|
+
const { validateStrategy } = await import("./dist-4CZLCE33.js");
|
|
19880
19884
|
const result = await validateStrategy(projectPath);
|
|
19881
19885
|
if (!result.ok) {
|
|
19882
19886
|
return mcpJson({ present: true, valid: false, error: result.error.message });
|
|
@@ -19901,7 +19905,7 @@ async function handleReadStrategy(input) {
|
|
|
19901
19905
|
} catch (error) {
|
|
19902
19906
|
return mcpError2(error instanceof Error ? error.message : String(error));
|
|
19903
19907
|
}
|
|
19904
|
-
const core = await import("./dist-
|
|
19908
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
19905
19909
|
const validation = await core.validateStrategy(projectPath);
|
|
19906
19910
|
if (!validation.ok) {
|
|
19907
19911
|
return mcpJson({ present: true, valid: false, error: validation.error.message });
|
|
@@ -19953,7 +19957,7 @@ async function handleWriteStrategy(input) {
|
|
|
19953
19957
|
} catch (error) {
|
|
19954
19958
|
return mcpError2(error instanceof Error ? error.message : String(error));
|
|
19955
19959
|
}
|
|
19956
|
-
const core = await import("./dist-
|
|
19960
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
19957
19961
|
try {
|
|
19958
19962
|
core.writeStrategyDoc(input.doc, {
|
|
19959
19963
|
cwd: projectPath,
|
|
@@ -19997,7 +20001,7 @@ async function handleSeedPulseFromStrategy(input) {
|
|
|
19997
20001
|
} catch (error) {
|
|
19998
20002
|
return mcpError3(error instanceof Error ? error.message : String(error));
|
|
19999
20003
|
}
|
|
20000
|
-
const core = await import("./dist-
|
|
20004
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
20001
20005
|
const seed = core.seedFromStrategy({ cwd: projectPath });
|
|
20002
20006
|
return mcpJson2(seed);
|
|
20003
20007
|
}
|
|
@@ -20032,7 +20036,7 @@ async function handleWritePulseConfig(input) {
|
|
|
20032
20036
|
return mcpError3(error instanceof Error ? error.message : String(error));
|
|
20033
20037
|
}
|
|
20034
20038
|
const resolvedConfigPath = input.configPath !== void 0 ? path55.isAbsolute(input.configPath) ? input.configPath : path55.join(projectPath, input.configPath) : path55.join(projectPath, "harness.config.json");
|
|
20035
|
-
const core = await import("./dist-
|
|
20039
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
20036
20040
|
try {
|
|
20037
20041
|
core.writePulseConfig(input.config, {
|
|
20038
20042
|
configPath: resolvedConfigPath,
|
|
@@ -20081,7 +20085,7 @@ async function handleAcquireCompoundLock(input) {
|
|
|
20081
20085
|
} catch (error) {
|
|
20082
20086
|
return mcpError4(error instanceof Error ? error.message : String(error));
|
|
20083
20087
|
}
|
|
20084
|
-
const core = await import("./dist-
|
|
20088
|
+
const core = await import("./dist-4CZLCE33.js");
|
|
20085
20089
|
try {
|
|
20086
20090
|
const handle = core.acquireCompoundLock(
|
|
20087
20091
|
input.category,
|
|
@@ -20447,7 +20451,7 @@ async function appendUpdateNotification(result, resolvedRoot) {
|
|
|
20447
20451
|
shouldRunCheck,
|
|
20448
20452
|
readCheckState,
|
|
20449
20453
|
spawnBackgroundCheck
|
|
20450
|
-
} = await import("./dist-
|
|
20454
|
+
} = await import("./dist-4CZLCE33.js");
|
|
20451
20455
|
const { CLI_VERSION } = await import("./version-CUI434OP.js");
|
|
20452
20456
|
const configInterval = readConfigInterval(resolvedRoot);
|
|
20453
20457
|
const DEFAULT_INTERVAL = 864e5;
|