@harness-engineering/cli 1.11.0 → 1.13.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-autopilot/SKILL.md +57 -9
- package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +19 -2
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +39 -12
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +28 -11
- package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +34 -0
- package/dist/agents/skills/claude-code/harness-verification/SKILL.md +42 -0
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +57 -9
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +19 -2
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +39 -12
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +28 -11
- package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +34 -0
- package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +42 -0
- package/dist/{agents-md-ZFV6RR5J.js → agents-md-P2RHSUV7.js} +1 -1
- package/dist/{architecture-EXNUMH5R.js → architecture-ESOOE26S.js} +2 -2
- package/dist/bin/harness-mcp.js +10 -10
- package/dist/bin/harness.js +12 -12
- package/dist/{check-phase-gate-VZFOY2PO.js → check-phase-gate-S2MZKLFQ.js} +2 -2
- package/dist/{chunk-GSIVNYVJ.js → chunk-2VU4MFM3.js} +4 -4
- package/dist/{chunk-2NCIKJES.js → chunk-3KOLLWWE.js} +1 -1
- package/dist/{chunk-X3MN5UQJ.js → chunk-5VY23YK3.js} +1 -1
- package/dist/{chunk-I6JZYEGT.js → chunk-7KQSUZVG.js} +96 -50
- package/dist/{chunk-PA2XHK75.js → chunk-7PZWR4LI.js} +3 -3
- package/dist/{chunk-2YSQOUHO.js → chunk-KELT6K6M.js} +662 -283
- package/dist/{chunk-WUJTCNOU.js → chunk-LD3DKUK5.js} +1 -1
- package/dist/{chunk-Z75JC6I2.js → chunk-MACVXDZK.js} +2 -2
- package/dist/{chunk-NC6PXVWT.js → chunk-MI5XJQDY.js} +3 -3
- package/dist/{chunk-WJZDO6OY.js → chunk-PSNN4LWX.js} +2 -2
- package/dist/{chunk-ZWC3MN5E.js → chunk-RZSUJBZZ.js} +765 -203
- package/dist/{chunk-TI4TGEX6.js → chunk-WPPDRIJL.js} +1 -1
- package/dist/{ci-workflow-K5RCRNYR.js → ci-workflow-4NYBUG6R.js} +1 -1
- package/dist/{dist-JVZ2MKBC.js → dist-WF4C7A4A.js} +27 -1
- package/dist/{docs-PWCUVYWU.js → docs-BPYCN2DR.js} +2 -2
- package/dist/{engine-6XUP6GAK.js → engine-LXLIWQQ3.js} +1 -1
- package/dist/{entropy-4I6JEYAC.js → entropy-4VDVV5CR.js} +2 -2
- package/dist/{feedback-TNIW534S.js → feedback-63QB5RCA.js} +1 -1
- package/dist/{generate-agent-definitions-MWKEA5NU.js → generate-agent-definitions-QABOJG56.js} +1 -1
- package/dist/index.d.ts +80 -43
- package/dist/index.js +17 -13
- package/dist/{loader-4FIPIFII.js → loader-Z2IT7QX3.js} +1 -1
- package/dist/{mcp-MOKLYNZL.js → mcp-KQHEL5IF.js} +10 -10
- package/dist/{performance-BTOJCPXU.js → performance-26BH47O4.js} +2 -2
- package/dist/{review-pipeline-3YTW3463.js → review-pipeline-GHR3WFBI.js} +1 -1
- package/dist/{runtime-GO7K2PJE.js → runtime-PDWD7UIK.js} +1 -1
- package/dist/{security-4P2GGFF6.js → security-UQFUZXEN.js} +1 -1
- package/dist/{validate-JN44D2Q7.js → validate-N7QJOKFZ.js} +2 -2
- package/dist/{validate-cross-check-DB7RIFFF.js → validate-cross-check-EDQ5QGTM.js} +1 -1
- package/package.json +4 -4
|
@@ -33,20 +33,29 @@ Deviating from the plan mid-execution introduces untested assumptions, breaks ta
|
|
|
33
33
|
path: "<project-root>",
|
|
34
34
|
intent: "Execute plan tasks starting from current position",
|
|
35
35
|
skill: "harness-execution",
|
|
36
|
+
session: "<session-slug-if-known>",
|
|
36
37
|
include: ["state", "learnings", "handoff", "validation"]
|
|
37
38
|
})
|
|
38
39
|
```
|
|
39
40
|
|
|
41
|
+
**Session resolution:** If a session directory is known (passed via autopilot dispatch or available from a previous handoff), include the `session` parameter. This scopes all state reads/writes to `.harness/sessions/<slug>/`. If no session is known, omit it — `gather_context` falls back to global files at `.harness/`.
|
|
42
|
+
|
|
40
43
|
This returns `state` (current position — if null, this is a fresh start at Task 1), `learnings` (hard-won insights from previous sessions — do not ignore them), `handoff` (structured context from the previous skill), and `validation` (current project health). If any constituent fails, its field is null and the error is reported in `meta.errors`.
|
|
41
44
|
|
|
42
|
-
3. **
|
|
45
|
+
3. **Load session summary for cold start.** If resuming a session (session slug is known), read the session summary for quick orientation:
|
|
46
|
+
- Call `listActiveSessions()` to read the session index (~100 tokens).
|
|
47
|
+
- If the target session is known, call `loadSessionSummary()` for that session (~200 tokens).
|
|
48
|
+
- If ambiguous (multiple active sessions, no clear target), present the index to the user and ask which session to resume.
|
|
49
|
+
- The summary provides skill, phase, status, key context, and next step — enough to orient without re-reading full state + learnings + plan.
|
|
50
|
+
|
|
51
|
+
4. **Check for known dead ends.** Review `learnings` entries tagged `[outcome:failure]`. If any match approaches in the current plan, surface warnings before proceeding.
|
|
43
52
|
|
|
44
|
-
|
|
53
|
+
5. **Verify prerequisites.** For the current task:
|
|
45
54
|
- Are dependency tasks marked complete in state?
|
|
46
55
|
- Do the files referenced in the task exist as expected?
|
|
47
56
|
- Does the test suite pass? Run `harness validate` to confirm a clean baseline.
|
|
48
57
|
|
|
49
|
-
|
|
58
|
+
6. **If prerequisites fail,** do not proceed. Report what is missing and which task is blocked.
|
|
50
59
|
|
|
51
60
|
### Graph-Enhanced Context (when available)
|
|
52
61
|
|
|
@@ -220,7 +229,7 @@ emit_interaction({
|
|
|
220
229
|
|
|
221
230
|
Between tasks (especially between sessions):
|
|
222
231
|
|
|
223
|
-
1. **Update `.harness/state.json
|
|
232
|
+
1. **Update state (session-scoped `{sessionDir}/state.json` if session is known, otherwise `.harness/state.json`)** with current position, progress, and `lastSession` context:
|
|
224
233
|
|
|
225
234
|
```json
|
|
226
235
|
{
|
|
@@ -241,7 +250,7 @@ harness scan [path]
|
|
|
241
250
|
|
|
242
251
|
Skipping this step means subsequent graph queries (impact analysis, dependency health, test advisor) may return stale results.
|
|
243
252
|
|
|
244
|
-
2. **Append tagged learnings to `.harness/learnings.md
|
|
253
|
+
2. **Append tagged learnings to the session-scoped learnings file (`{sessionDir}/learnings.md` if session is known, otherwise `.harness/learnings.md`).** Tag every entry with skill and outcome:
|
|
245
254
|
|
|
246
255
|
```markdown
|
|
247
256
|
## YYYY-MM-DD — Task N: <task name>
|
|
@@ -251,9 +260,9 @@ Skipping this step means subsequent graph queries (impact analysis, dependency h
|
|
|
251
260
|
- [skill:harness-execution] [outcome:decision] What was decided and why
|
|
252
261
|
```
|
|
253
262
|
|
|
254
|
-
3. **Record failures in `.harness/failures.md
|
|
263
|
+
3. **Record failures in the session-scoped failures file (`{sessionDir}/failures.md` if session is known, otherwise `.harness/failures.md`)** if any task was escalated after retry exhaustion (from Phase 2 Step 5). Include the approach attempted and why it failed, so future sessions avoid the same dead end.
|
|
255
264
|
|
|
256
|
-
4. **Write `.harness/handoff.json
|
|
265
|
+
4. **Write the session-scoped handoff (`{sessionDir}/handoff.json` if session is known, otherwise `.harness/handoff.json`)** with structured context for the next skill or session:
|
|
257
266
|
|
|
258
267
|
```json
|
|
259
268
|
{
|
|
@@ -266,11 +275,29 @@ Skipping this step means subsequent graph queries (impact analysis, dependency h
|
|
|
266
275
|
}
|
|
267
276
|
```
|
|
268
277
|
|
|
269
|
-
5. **
|
|
278
|
+
5. **Write session summary.** Write/update the session summary for cold-start context restoration:
|
|
279
|
+
|
|
280
|
+
```json
|
|
281
|
+
writeSessionSummary(projectPath, sessionSlug, {
|
|
282
|
+
session: "<session-slug>",
|
|
283
|
+
lastActive: "<ISO timestamp>",
|
|
284
|
+
skill: "harness-execution",
|
|
285
|
+
phase: "<current phase of plan>",
|
|
286
|
+
status: "<e.g., Task 4/6 complete, paused at CHECKPOINT>",
|
|
287
|
+
spec: "<spec path if known>",
|
|
288
|
+
plan: "<plan path>",
|
|
289
|
+
keyContext: "<1-2 sentences: what was accomplished, key decisions made>",
|
|
290
|
+
nextStep: "<what to do next when resuming>"
|
|
291
|
+
})
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
This overwrites any previous summary for this session. The index.md is updated automatically.
|
|
295
|
+
|
|
296
|
+
6. **Sync roadmap (mandatory when present).** If `docs/roadmap.md` exists, call `manage_roadmap` with action `sync` and `apply: true` to update linked feature statuses from the just-completed execution state. Do not use `force_sync: true` — the human-always-wins rule applies. If `manage_roadmap` is unavailable, fall back to direct file manipulation using `syncRoadmap()` from core. If no roadmap exists, skip silently.
|
|
270
297
|
|
|
271
|
-
|
|
298
|
+
7. **Learnings are append-only.** Never edit or delete previous learnings. They are a chronological record.
|
|
272
299
|
|
|
273
|
-
|
|
300
|
+
8. **Auto-transition to verification.** When ALL tasks in the plan are complete (not when stopping mid-plan):
|
|
274
301
|
|
|
275
302
|
Call `emit_interaction`:
|
|
276
303
|
|
|
@@ -325,8 +352,8 @@ These are non-negotiable. When any condition is met, stop immediately.
|
|
|
325
352
|
- **`harness check-deps`** — Run when tasks add new imports or modules. Catches boundary violations early.
|
|
326
353
|
- **`harness state show`** — View current execution position and progress.
|
|
327
354
|
- **`harness state learn "<message>"`** — Append a learning from the command line.
|
|
328
|
-
-
|
|
329
|
-
-
|
|
355
|
+
- **State file** — Session-scoped at `{sessionDir}/state.json` when session is known, otherwise `.harness/state.json`. Read at session start to resume position. Updated after every task.
|
|
356
|
+
- **Learnings file** — Session-scoped at `{sessionDir}/learnings.md` when session is known, otherwise `.harness/learnings.md`. Append-only knowledge capture. Read at session start for prior context.
|
|
330
357
|
- **Roadmap sync** — After completing plan execution, call `manage_roadmap` with action `sync` and `apply: true` to update roadmap status. Mandatory when `docs/roadmap.md` exists. Do not use `force_sync: true`. Falls back to `syncRoadmap()` from core if MCP tool is unavailable.
|
|
331
358
|
- **`emit_interaction`** -- Call at plan completion to auto-transition to harness-verification. Uses auto-transition (proceeds immediately without user confirmation).
|
|
332
359
|
|
|
@@ -193,22 +193,39 @@ When presenting the task breakdown, use progress markers:
|
|
|
193
193
|
}
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
9. **
|
|
196
|
+
9. **Write session summary (if session is known).** If running within a session (autopilot dispatch or standalone with session context), write the session summary:
|
|
197
197
|
|
|
198
198
|
```json
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
199
|
+
writeSessionSummary(projectPath, sessionSlug, {
|
|
200
|
+
session: "<session-slug>",
|
|
201
|
+
lastActive: "<ISO timestamp>",
|
|
202
|
+
skill: "harness-planning",
|
|
203
|
+
status: "Plan complete. <N> tasks defined.",
|
|
204
|
+
spec: "<spec path if known>",
|
|
205
|
+
plan: "<plan file path>",
|
|
206
|
+
keyContext: "<1-2 sentences: what was planned, key decisions>",
|
|
207
|
+
nextStep: "Approve plan and begin execution."
|
|
208
208
|
})
|
|
209
209
|
```
|
|
210
210
|
|
|
211
|
-
|
|
211
|
+
If no session slug is known (standalone invocation without session context), skip this step.
|
|
212
|
+
|
|
213
|
+
10. **Request plan sign-off:**
|
|
214
|
+
|
|
215
|
+
```json
|
|
216
|
+
emit_interaction({
|
|
217
|
+
path: "<project-root>",
|
|
218
|
+
type: "confirmation",
|
|
219
|
+
confirmation: {
|
|
220
|
+
text: "Approve plan at <plan-file-path>?",
|
|
221
|
+
context: "<task count> tasks, <estimated time> minutes. <one-sentence summary>",
|
|
222
|
+
impact: "Approving unlocks task-by-task execution. Plan defines exact file paths, code, and commands.",
|
|
223
|
+
risk: "low"
|
|
224
|
+
}
|
|
225
|
+
})
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
11. **Suggest transition to execution.** After the human approves the plan:
|
|
212
229
|
|
|
213
230
|
Call `emit_interaction`:
|
|
214
231
|
|
|
@@ -395,6 +395,38 @@ Choice?
|
|
|
395
395
|
harness validate: passed
|
|
396
396
|
```
|
|
397
397
|
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
### Command: `--query <filter>` -- Query Features by Filter
|
|
401
|
+
|
|
402
|
+
#### Phase 1: SCAN -- Load Roadmap
|
|
403
|
+
|
|
404
|
+
1. Check if `docs/roadmap.md` exists.
|
|
405
|
+
- If missing: error with clear message. "No roadmap found at docs/roadmap.md. Run `--create` first to bootstrap one."
|
|
406
|
+
2. Parse the roadmap (via `manage_roadmap query` or direct read).
|
|
407
|
+
|
|
408
|
+
#### Phase 2: FILTER -- Apply Query
|
|
409
|
+
|
|
410
|
+
1. Accept filter patterns:
|
|
411
|
+
- **Status filter:** `backlog`, `planned`, `in-progress`, `done`, `blocked` -- returns all features with that status
|
|
412
|
+
- **Milestone filter:** `milestone:<name>` -- returns all features in the named milestone (partial match)
|
|
413
|
+
|
|
414
|
+
2. Display matching features with their milestone context:
|
|
415
|
+
|
|
416
|
+
```
|
|
417
|
+
QUERY: <filter>
|
|
418
|
+
|
|
419
|
+
Results (N matches):
|
|
420
|
+
- Feature A (Current Work) .................. in-progress
|
|
421
|
+
- Feature B (Backlog) ....................... planned
|
|
422
|
+
|
|
423
|
+
Total: N matches
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
3. No file writes. This is a read-only operation.
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
398
430
|
## Harness Integration
|
|
399
431
|
|
|
400
432
|
- **`manage_roadmap` MCP tool** -- Primary read/write interface for roadmap operations. Supports `show`, `add`, `update`, `remove`, and `query` actions. Use this when MCP is available for structured CRUD.
|
|
@@ -422,6 +454,8 @@ Choice?
|
|
|
422
454
|
16. `--edit` updates `last_manual_edit` timestamp (since changes are human-driven)
|
|
423
455
|
17. Output matches the roadmap markdown format exactly (frontmatter, H2 milestones, H3 features, 5 fields each)
|
|
424
456
|
18. `harness validate` passes after all operations
|
|
457
|
+
19. `--query` filters features by status or milestone and displays results with milestone context
|
|
458
|
+
20. `--query` errors gracefully when no roadmap exists, directing the user to `--create`
|
|
425
459
|
|
|
426
460
|
## Examples
|
|
427
461
|
|
|
@@ -35,6 +35,26 @@ The words "should", "probably", "seems to", and "I believe" are forbidden in ver
|
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
38
|
+
### Context Loading
|
|
39
|
+
|
|
40
|
+
Before running verification levels, load session context if a session slug was provided (e.g., by autopilot dispatch):
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
gather_context({
|
|
44
|
+
path: "<project-root>",
|
|
45
|
+
intent: "Verify phase deliverables",
|
|
46
|
+
skill: "harness-verification",
|
|
47
|
+
session: "<session-slug-if-provided>",
|
|
48
|
+
include: ["state", "learnings", "validation"]
|
|
49
|
+
})
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Session resolution:** If a session slug is known (passed via autopilot dispatch or available from a previous handoff), include the `session` parameter. This scopes all state reads to `.harness/sessions/<slug>/`. If no session is known, omit it — `gather_context` falls back to global files at `.harness/`.
|
|
53
|
+
|
|
54
|
+
Use the returned learnings to check for known failures and dead ends relevant to the artifacts being verified.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
38
58
|
### Level 1: EXISTS — The Artifact Is Present
|
|
39
59
|
|
|
40
60
|
For every artifact that was supposed to be created or modified:
|
|
@@ -201,6 +221,22 @@ Write `.harness/handoff.json`:
|
|
|
201
221
|
}
|
|
202
222
|
```
|
|
203
223
|
|
|
224
|
+
**Write session summary (if session is known).** If running within a session context, update the session summary:
|
|
225
|
+
|
|
226
|
+
```json
|
|
227
|
+
writeSessionSummary(projectPath, sessionSlug, {
|
|
228
|
+
session: "<session-slug>",
|
|
229
|
+
lastActive: "<ISO timestamp>",
|
|
230
|
+
skill: "harness-verification",
|
|
231
|
+
status: "Verification <PASS|FAIL|INCOMPLETE>. <N> artifacts checked, <N> gaps.",
|
|
232
|
+
spec: "<spec path if known>",
|
|
233
|
+
keyContext: "<1-2 sentences: verification outcome, any gaps found>",
|
|
234
|
+
nextStep: "<e.g., Proceed to code review / Resolve gaps>"
|
|
235
|
+
})
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
If no session slug is known, skip this step.
|
|
239
|
+
|
|
204
240
|
**If verdict is PASS (all levels passed, no gaps):**
|
|
205
241
|
|
|
206
242
|
Call `emit_interaction`:
|
|
@@ -339,6 +375,12 @@ Task: "Create UserService with create, read, update, delete operations."
|
|
|
339
375
|
- **When verification reveals the spec itself is incomplete:** Do not fill in the gaps yourself. Escalate to the human: "Verification found that the spec does not define behavior for [scenario]. How should this be handled?"
|
|
340
376
|
- **When you cannot run harness checks:** If `harness validate` or `harness check-deps` cannot be run (missing configuration, broken tooling), this is a blocking issue. Do not skip verification — fix the tooling or escalate.
|
|
341
377
|
|
|
378
|
+
## Harness Integration
|
|
379
|
+
|
|
380
|
+
- **`gather_context`** — Used in Context Loading phase (before Level 1) to load session-scoped state, learnings, and validation in a single call. The `session` parameter scopes reads to the session directory when provided by autopilot dispatch.
|
|
381
|
+
- **`harness validate`** — Run during Level 3 (WIRED) to verify artifact integration.
|
|
382
|
+
- **`harness check-deps`** — Run during Level 3 (WIRED) to verify dependency boundaries.
|
|
383
|
+
|
|
342
384
|
After verification completes, append a tagged learning:
|
|
343
385
|
|
|
344
386
|
- **YYYY-MM-DD [skill:harness-verification] [outcome:pass/fail]:** Verified [feature]. [Brief note on what was found or confirmed.]
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
checkDependenciesDefinition,
|
|
3
3
|
handleCheckDependencies
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WPPDRIJL.js";
|
|
5
5
|
import "./chunk-K6XAPGML.js";
|
|
6
6
|
import "./chunk-IDZNPTYD.js";
|
|
7
7
|
import "./chunk-W6Y7ZW3Y.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-KELT6K6M.js";
|
|
9
9
|
import "./chunk-MHBMTPW7.js";
|
|
10
10
|
export {
|
|
11
11
|
checkDependenciesDefinition,
|
package/dist/bin/harness-mcp.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
startServer
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-7KQSUZVG.js";
|
|
5
|
+
import "../chunk-MACVXDZK.js";
|
|
6
|
+
import "../chunk-2VU4MFM3.js";
|
|
7
|
+
import "../chunk-7PZWR4LI.js";
|
|
8
|
+
import "../chunk-5VY23YK3.js";
|
|
9
|
+
import "../chunk-LD3DKUK5.js";
|
|
10
10
|
import "../chunk-ZOAWBDWU.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-PSNN4LWX.js";
|
|
12
12
|
import "../chunk-2YPZKGAG.js";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-WPPDRIJL.js";
|
|
14
14
|
import "../chunk-K6XAPGML.js";
|
|
15
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-MI5XJQDY.js";
|
|
16
16
|
import "../chunk-IDZNPTYD.js";
|
|
17
17
|
import "../chunk-W6Y7ZW3Y.js";
|
|
18
18
|
import "../chunk-HD4IBGLA.js";
|
|
19
19
|
import "../chunk-3WGJMBKH.js";
|
|
20
20
|
import "../chunk-VRFZWGMS.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-KELT6K6M.js";
|
|
22
22
|
import "../chunk-MHBMTPW7.js";
|
|
23
23
|
|
|
24
24
|
// src/bin/harness-mcp.ts
|
package/dist/bin/harness.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
createProgram
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-RZSUJBZZ.js";
|
|
5
5
|
import "../chunk-VUCPTQ6G.js";
|
|
6
6
|
import {
|
|
7
7
|
findConfigFile,
|
|
8
8
|
loadConfig
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-3KOLLWWE.js";
|
|
10
10
|
import "../chunk-GNGELAXY.js";
|
|
11
11
|
import "../chunk-Q6AB7W5Z.js";
|
|
12
12
|
import "../chunk-TRAPF4IX.js";
|
|
@@ -18,18 +18,18 @@ import "../chunk-QPEH2QPG.js";
|
|
|
18
18
|
import "../chunk-JSTQ3AWB.js";
|
|
19
19
|
import "../chunk-KET4QQZB.js";
|
|
20
20
|
import "../chunk-NKDM3FMH.js";
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-7KQSUZVG.js";
|
|
22
|
+
import "../chunk-MACVXDZK.js";
|
|
23
|
+
import "../chunk-2VU4MFM3.js";
|
|
24
|
+
import "../chunk-7PZWR4LI.js";
|
|
25
|
+
import "../chunk-5VY23YK3.js";
|
|
26
|
+
import "../chunk-LD3DKUK5.js";
|
|
27
27
|
import "../chunk-ZOAWBDWU.js";
|
|
28
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-PSNN4LWX.js";
|
|
29
29
|
import "../chunk-2YPZKGAG.js";
|
|
30
|
-
import "../chunk-
|
|
30
|
+
import "../chunk-WPPDRIJL.js";
|
|
31
31
|
import "../chunk-K6XAPGML.js";
|
|
32
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-MI5XJQDY.js";
|
|
33
33
|
import "../chunk-IDZNPTYD.js";
|
|
34
34
|
import "../chunk-W6Y7ZW3Y.js";
|
|
35
35
|
import "../chunk-HD4IBGLA.js";
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
readCheckState,
|
|
49
49
|
shouldRunCheck,
|
|
50
50
|
spawnBackgroundCheck
|
|
51
|
-
} from "../chunk-
|
|
51
|
+
} from "../chunk-KELT6K6M.js";
|
|
52
52
|
import "../chunk-MHBMTPW7.js";
|
|
53
53
|
|
|
54
54
|
// src/bin/update-check-hooks.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCheckPhaseGateCommand,
|
|
3
3
|
runCheckPhaseGate
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3KOLLWWE.js";
|
|
5
5
|
import "./chunk-EBJQ6N4M.js";
|
|
6
6
|
import "./chunk-3WGJMBKH.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-KELT6K6M.js";
|
|
8
8
|
import "./chunk-MHBMTPW7.js";
|
|
9
9
|
export {
|
|
10
10
|
createCheckPhaseGateCommand,
|
|
@@ -27,7 +27,7 @@ var checkPerformanceDefinition = {
|
|
|
27
27
|
};
|
|
28
28
|
async function handleCheckPerformance(input) {
|
|
29
29
|
try {
|
|
30
|
-
const { EntropyAnalyzer } = await import("./dist-
|
|
30
|
+
const { EntropyAnalyzer } = await import("./dist-WF4C7A4A.js");
|
|
31
31
|
const typeFilter = input.type ?? "all";
|
|
32
32
|
const projectPath = sanitizePath(input.path);
|
|
33
33
|
const analyzer = new EntropyAnalyzer({
|
|
@@ -80,7 +80,7 @@ var getPerfBaselinesDefinition = {
|
|
|
80
80
|
};
|
|
81
81
|
async function handleGetPerfBaselines(input) {
|
|
82
82
|
try {
|
|
83
|
-
const { BaselineManager } = await import("./dist-
|
|
83
|
+
const { BaselineManager } = await import("./dist-WF4C7A4A.js");
|
|
84
84
|
const manager = new BaselineManager(sanitizePath(input.path));
|
|
85
85
|
const baselines = manager.load();
|
|
86
86
|
return resultToMcpResponse(
|
|
@@ -128,7 +128,7 @@ var updatePerfBaselinesDefinition = {
|
|
|
128
128
|
};
|
|
129
129
|
async function handleUpdatePerfBaselines(input) {
|
|
130
130
|
try {
|
|
131
|
-
const { BaselineManager } = await import("./dist-
|
|
131
|
+
const { BaselineManager } = await import("./dist-WF4C7A4A.js");
|
|
132
132
|
const manager = new BaselineManager(sanitizePath(input.path));
|
|
133
133
|
manager.save(input.results, input.commitHash);
|
|
134
134
|
const updated = manager.load();
|
|
@@ -158,7 +158,7 @@ var getCriticalPathsDefinition = {
|
|
|
158
158
|
};
|
|
159
159
|
async function handleGetCriticalPaths(input) {
|
|
160
160
|
try {
|
|
161
|
-
const { CriticalPathResolver } = await import("./dist-
|
|
161
|
+
const { CriticalPathResolver } = await import("./dist-WF4C7A4A.js");
|
|
162
162
|
const resolver = new CriticalPathResolver(sanitizePath(input.path));
|
|
163
163
|
const result = await resolver.resolve();
|
|
164
164
|
return resultToMcpResponse(Ok(result));
|
|
@@ -26,7 +26,7 @@ var runSecurityScanDefinition = {
|
|
|
26
26
|
};
|
|
27
27
|
async function handleRunSecurityScan(input) {
|
|
28
28
|
try {
|
|
29
|
-
const core = await import("./dist-
|
|
29
|
+
const core = await import("./dist-WF4C7A4A.js");
|
|
30
30
|
const projectRoot = sanitizePath(input.path);
|
|
31
31
|
let configData = {};
|
|
32
32
|
try {
|