dsh-harbor-evolution 0.5.0 → 0.6.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/README.md +8 -4
- package/index.js +50 -1
- package/lib/client.js +697 -116
- package/lib/dashboard.js +513 -59
- package/lib/evolution.js +66 -7
- package/lib/process.js +2 -1
- package/lib/service.js +99 -1
- package/lib/web.js +48 -0
- package/package.json +6 -1
- package/schemas/evaluation-result.schema.json +27 -0
- package/schemas/evaluator-observations.schema.json +51 -0
- package/schemas/ground-truth.schema.json +61 -0
- package/schemas/meta-evaluation-report.schema.json +23 -0
- package/skills/evolve-agent-with-harbor/SKILL.md +48 -4
- package/skills/evolve-agent-with-harbor/references/evaluator-upgrade.md +61 -0
- package/skills/evolve-agent-with-harbor/references/initialization.md +13 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Installable DeepSeek Harness Plugin + Skill for running stable Harbor evaluation and controlled Agent evolution loops, with a native DSH Web dashboard.
|
|
4
4
|
|
|
5
|
-
The package gives DSH
|
|
5
|
+
The package gives DSH twelve strict Harbor tools, dedicated Tool cards, a nine-stage Evaluation Workbench, an installation Doctor, and the model- and user-invocable `evolve-agent-with-harbor` Skill. The Skill clarifies and initializes the Evaluation Stack, validates Dataset identity, checks Trial Lifecycle and Score Validity, governs independent Ground Truth meta-evaluation, diagnoses evidence provenance, limits each iteration to one controlled Candidate change, and invokes the Promotion Gate only as an explicit action.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -14,8 +14,8 @@ npx --yes dsh-harbor-evolution@latest setup --project-root "$PWD"
|
|
|
14
14
|
|
|
15
15
|
The setup command installs both required runtimes:
|
|
16
16
|
|
|
17
|
-
- `harbor-dsh-evolution==0.
|
|
18
|
-
- `dsh-harbor-evolution@0.
|
|
17
|
+
- `harbor-dsh-evolution==0.6.0` in a managed Python environment.
|
|
18
|
+
- `dsh-harbor-evolution@0.6.0` in the selected DSH profile.
|
|
19
19
|
|
|
20
20
|
It then stores the absolute Harbor executable paths and `projectRoot` in the profile's `harbor-evolution` block and verifies the integration. Existing unrelated profile entries are preserved, and rerunning setup updates the same block.
|
|
21
21
|
|
|
@@ -45,7 +45,9 @@ The Plugin registers:
|
|
|
45
45
|
|
|
46
46
|
In the `web` profile, the same package also registers:
|
|
47
47
|
|
|
48
|
-
- a
|
|
48
|
+
- a localized nine-stage Workbench that directly exposes fixed experiment identities, Agent-visible Dataset queries/instructions, safe business-artifact previews, Ground Truth meta-evaluation, paginated per-Trial evidence and recommendations, Population validity/coverage, controlled optimization hypotheses, and Baseline/Gate deltas; raw JSON remains in the audit drawer;
|
|
49
|
+
- descriptor-authorized Evaluator/Rubric source editing for `script` and `llm-as-judge` implementations, with optimistic concurrency and mandatory new identities;
|
|
50
|
+
- a `harbor-dsh-evaluator/v1` interface shared by deterministic scripts and LLM-as-Judge implementations;
|
|
49
51
|
- compact result cards for all Harbor Tool calls;
|
|
50
52
|
- a `Harbor Evolution` Settings section that checks the configured project, Evaluation Stack, Jobs directory, and CLI paths.
|
|
51
53
|
|
|
@@ -53,6 +55,8 @@ The Web UI is intentionally read-only. Starting an evaluation or deciding promot
|
|
|
53
55
|
|
|
54
56
|
A direct evaluation requires `candidatePath`, `datasetPath`, `stackPath`, and explicit `mode`; `promotion-eligible` additionally requires `policyPath`. Prefer the Skill because it will not run or compare Jobs until the material identities and evaluation contract are resolved.
|
|
55
57
|
|
|
58
|
+
`harbor_eval_result` defaults to the stable Summary. Use `view=job`, `view=dataset`, `view=progress`, `view=trial` plus a returned `trialId`, or `view=governance` to inspect sanitized instructions, generated output, evidence, and evaluator source without coupling the Agent to artifact file paths.
|
|
59
|
+
|
|
56
60
|
## What setup writes
|
|
57
61
|
|
|
58
62
|
The selected profile receives one id-targeted override:
|
package/index.js
CHANGED
|
@@ -144,12 +144,61 @@ export function apply(ctx, config) {
|
|
|
144
144
|
|
|
145
145
|
ctx.tools.register(jsonTool({
|
|
146
146
|
name: 'harbor_eval_result',
|
|
147
|
-
description: 'Read
|
|
147
|
+
description: 'Read a stable Job summary or a sanitized Workbench, Dataset instruction, Trial output/evidence, progress, or Evaluator governance view. Invalid scores remain distinct from raw verifier rewards.',
|
|
148
148
|
parameters: {
|
|
149
149
|
jobPath: { type: 'string', required: true },
|
|
150
|
+
view: { type: 'string', description: 'summary (default), job, dataset, progress, trial, or governance' },
|
|
151
|
+
trialId: { type: 'string', description: 'Required only for view=trial; use an id returned by the Job/Progress view' },
|
|
152
|
+
compareJob: { type: 'string', description: 'Optional previous Job for view=governance impact analysis' },
|
|
153
|
+
since: { type: 'string', description: 'Optional ISO timestamp for incremental progress changes' },
|
|
150
154
|
},
|
|
151
155
|
}, args => service.result(args)))
|
|
152
156
|
|
|
157
|
+
ctx.tools.register(jsonTool({
|
|
158
|
+
name: 'harbor_evaluator_inspect',
|
|
159
|
+
description: 'Inspect the active harbor-dsh-evaluator/v1 descriptor, implementation kind, ternary Criteria, and safely editable source files.',
|
|
160
|
+
parameters: {
|
|
161
|
+
stackPath: { type: 'string', description: 'Defaults to .harbor/evaluation-stack.yml' },
|
|
162
|
+
},
|
|
163
|
+
}, args => service.evaluatorInspect(args)))
|
|
164
|
+
|
|
165
|
+
ctx.tools.register(jsonTool({
|
|
166
|
+
name: 'harbor_evaluator_update',
|
|
167
|
+
description: 'Update one descriptor-authorized Evaluator source file with optimistic concurrency. Requires new Evaluator and Stack identities and never runs evaluation or Gate automatically.',
|
|
168
|
+
parameters: {
|
|
169
|
+
stackPath: { type: 'string', description: 'Defaults to .harbor/evaluation-stack.yml' },
|
|
170
|
+
filePath: { type: 'string', required: true },
|
|
171
|
+
content: { type: 'string', required: true },
|
|
172
|
+
expectedDigest: { type: 'string', required: true },
|
|
173
|
+
newEvaluatorVersion: { type: 'string', required: true },
|
|
174
|
+
newStackVersion: { type: 'string', required: true },
|
|
175
|
+
},
|
|
176
|
+
}, args => service.evaluator(args)))
|
|
177
|
+
|
|
178
|
+
ctx.tools.register(jsonTool({
|
|
179
|
+
name: 'harbor_ground_truth_init',
|
|
180
|
+
description: 'Create a non-overwriting Ground Truth draft for evaluator meta-evaluation. GT may be human, programmatic, consensus, model, or external, but must have explicit provenance and remain independent of the Candidate evaluator.',
|
|
181
|
+
parameters: {
|
|
182
|
+
outputPath: { type: 'string', description: 'Defaults to .harbor/ground-truth.json' },
|
|
183
|
+
groundTruthId: { type: 'string', required: true },
|
|
184
|
+
version: { type: 'string', required: true },
|
|
185
|
+
sourceKind: { type: 'string', required: true, description: 'human, programmatic, consensus, model, or external' },
|
|
186
|
+
sourceDescription: { type: 'string', required: true },
|
|
187
|
+
provenance: { type: 'string', required: true },
|
|
188
|
+
criteria: { type: 'string', required: true, description: 'Comma-separated criterion ids' },
|
|
189
|
+
},
|
|
190
|
+
}, args => service.groundTruthInitialize(args)))
|
|
191
|
+
|
|
192
|
+
ctx.tools.register(jsonTool({
|
|
193
|
+
name: 'harbor_evaluator_meta_evaluate',
|
|
194
|
+
description: 'Compare repeated evaluator-observations/v1 with independent ground-truth/v1 and write an ESF, SCE, and RCR meta-evaluation report.',
|
|
195
|
+
parameters: {
|
|
196
|
+
groundTruthPath: { type: 'string', description: 'Defaults to .harbor/ground-truth.json' },
|
|
197
|
+
observationsPath: { type: 'string', required: true },
|
|
198
|
+
outputPath: { type: 'string', description: 'Defaults to .harbor/meta-evaluation-report.json' },
|
|
199
|
+
},
|
|
200
|
+
}, args => service.evaluatorMetaEvaluate(args)))
|
|
201
|
+
|
|
153
202
|
ctx.tools.register(jsonTool({
|
|
154
203
|
name: 'harbor_candidate_compare',
|
|
155
204
|
description: 'Apply the deterministic Promotion Gate to a baseline Job and a Candidate Job.',
|