@skill-harness/core 0.17.0 → 0.18.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.
Files changed (93) hide show
  1. package/README.md +1 -2
  2. package/dist/adapters/types.d.ts +0 -12
  3. package/dist/capture-trace-types.d.ts +0 -96
  4. package/dist/capture-trace-types.js +0 -4
  5. package/dist/command-cost.d.ts +1 -1
  6. package/dist/command-cost.js +0 -5
  7. package/dist/execution-trace.js +1 -1
  8. package/dist/index.d.ts +3 -23
  9. package/dist/index.js +3 -23
  10. package/dist/instruction-coverage.d.ts +0 -7
  11. package/dist/instruction-coverage.js +5 -7
  12. package/dist/journal.d.ts +0 -8
  13. package/dist/metrics.d.ts +18 -0
  14. package/dist/metrics.js +28 -0
  15. package/dist/redaction.d.ts +6 -0
  16. package/dist/redaction.js +55 -0
  17. package/dist/regate.js +6 -71
  18. package/dist/regrade.d.ts +1 -3
  19. package/dist/regrade.js +1 -21
  20. package/dist/report.d.ts +1 -15
  21. package/dist/report.js +1 -13
  22. package/dist/reps.d.ts +1 -2
  23. package/dist/reps.js +0 -2
  24. package/dist/results.d.ts +0 -9
  25. package/dist/results.js +2 -19
  26. package/dist/run.js +11 -72
  27. package/dist/seeded.d.ts +1 -7
  28. package/dist/seeded.js +5 -11
  29. package/dist/sources.js +4 -9
  30. package/dist/spec.d.ts +0 -13
  31. package/dist/spec.js +6 -48
  32. package/dist/trajectory-events.d.ts +58 -0
  33. package/dist/trajectory-events.js +119 -0
  34. package/package.json +1 -1
  35. package/schemas/results-v2.schema.json +376 -75
  36. package/schemas/specification-v1.schema.json +128 -174
  37. package/dist/adjudication.d.ts +0 -219
  38. package/dist/adjudication.js +0 -422
  39. package/dist/adoption.d.ts +0 -128
  40. package/dist/adoption.js +0 -102
  41. package/dist/affected.d.ts +0 -88
  42. package/dist/affected.js +0 -222
  43. package/dist/capture.d.ts +0 -193
  44. package/dist/capture.js +0 -344
  45. package/dist/comparison.d.ts +0 -97
  46. package/dist/comparison.js +0 -189
  47. package/dist/factory-calibration.d.ts +0 -63
  48. package/dist/factory-calibration.js +0 -115
  49. package/dist/intervention-results.d.ts +0 -6
  50. package/dist/intervention-results.js +0 -52
  51. package/dist/intervention.d.ts +0 -123
  52. package/dist/intervention.js +0 -218
  53. package/dist/investigation.d.ts +0 -94
  54. package/dist/investigation.js +0 -148
  55. package/dist/judge-agreement.d.ts +0 -19
  56. package/dist/judge-agreement.js +0 -31
  57. package/dist/qualification-capture.d.ts +0 -44
  58. package/dist/qualification-capture.js +0 -163
  59. package/dist/qualification-config.d.ts +0 -233
  60. package/dist/qualification-config.js +0 -694
  61. package/dist/qualification-lock.d.ts +0 -15
  62. package/dist/qualification-lock.js +0 -87
  63. package/dist/qualification-oauth-directory.d.ts +0 -79
  64. package/dist/qualification-oauth-directory.js +0 -444
  65. package/dist/qualification-panel-store.d.ts +0 -14
  66. package/dist/qualification-panel-store.js +0 -188
  67. package/dist/qualification-panels.d.ts +0 -99
  68. package/dist/qualification-panels.js +0 -91
  69. package/dist/qualification-process.d.ts +0 -13
  70. package/dist/qualification-process.js +0 -190
  71. package/dist/qualification-runner.d.ts +0 -203
  72. package/dist/qualification-runner.js +0 -2037
  73. package/dist/qualification-store.d.ts +0 -187
  74. package/dist/qualification-store.js +0 -833
  75. package/dist/qualification-validation.d.ts +0 -12
  76. package/dist/qualification-validation.js +0 -8
  77. package/dist/screen.d.ts +0 -31
  78. package/dist/screen.js +0 -105
  79. package/dist/trajectory-gates.d.ts +0 -137
  80. package/dist/trajectory-gates.js +0 -576
  81. package/dist/trusted-host-supervision.d.ts +0 -25
  82. package/dist/trusted-host-supervision.js +0 -94
  83. package/dist/work-capture-schema.d.ts +0 -38
  84. package/dist/work-capture-schema.js +0 -33
  85. package/dist/work-capture.d.ts +0 -43
  86. package/dist/work-capture.js +0 -81
  87. package/dist/work-signals.d.ts +0 -55
  88. package/dist/work-signals.js +0 -71
  89. package/schemas/qualification-cell-result-v1.schema.json +0 -32
  90. package/schemas/qualification-config-v1.schema.json +0 -244
  91. package/schemas/qualification-invocation-request-v1.schema.json +0 -59
  92. package/schemas/qualification-judge-panel-result-v1.schema.json +0 -42
  93. package/schemas/trajectory-event-v1.schema.json +0 -80
@@ -3,128 +3,429 @@
3
3
  "$id": "https://skill-harness.dev/schemas/results-v2.schema.json",
4
4
  "title": "skill-harness results v2",
5
5
  "type": "object",
6
- "required": ["schema", "skill", "harness", "model", "judge", "timestamp", "label", "mode", "effective_grade", "scenarios"],
6
+ "required": [
7
+ "schema",
8
+ "skill",
9
+ "harness",
10
+ "model",
11
+ "judge",
12
+ "timestamp",
13
+ "label",
14
+ "mode",
15
+ "effective_grade",
16
+ "scenarios"
17
+ ],
7
18
  "properties": {
8
- "schema": { "const": 2 },
9
- "harness_version": { "type": "string" },
10
- "harness_cli_version": { "type": "string" },
11
- "delivery_canary": { "enum": ["pass", "skipped"] },
12
- "skill": { "type": "string" },
13
- "harness": { "type": "string" },
14
- "model": { "type": "string" },
19
+ "schema": {
20
+ "const": 2
21
+ },
22
+ "harness_version": {
23
+ "type": "string"
24
+ },
25
+ "harness_cli_version": {
26
+ "type": "string"
27
+ },
28
+ "delivery_canary": {
29
+ "enum": [
30
+ "pass",
31
+ "skipped"
32
+ ]
33
+ },
34
+ "skill": {
35
+ "type": "string"
36
+ },
37
+ "harness": {
38
+ "type": "string"
39
+ },
40
+ "model": {
41
+ "type": "string"
42
+ },
15
43
  "judge": {
16
44
  "type": "object",
17
- "required": ["provider", "model"],
18
- "properties": { "provider": { "type": "string" }, "model": { "type": "string" } }
19
- },
20
- "timestamp": { "type": "string" },
21
- "label": { "type": ["string", "null"] },
22
- "mode": { "enum": ["red", "green", "force"] },
23
- "partial": { "type": "boolean" },
24
- "source_hashes": { "type": "object", "additionalProperties": { "type": "string" } },
25
- "effective_grade": { "$ref": "#/$defs/grade" },
26
- "scenarios": { "type": "array", "items": { "$ref": "#/$defs/scenario" } }
45
+ "required": [
46
+ "provider",
47
+ "model"
48
+ ],
49
+ "properties": {
50
+ "provider": {
51
+ "type": "string"
52
+ },
53
+ "model": {
54
+ "type": "string"
55
+ }
56
+ }
57
+ },
58
+ "timestamp": {
59
+ "type": "string"
60
+ },
61
+ "label": {
62
+ "type": [
63
+ "string",
64
+ "null"
65
+ ]
66
+ },
67
+ "mode": {
68
+ "enum": [
69
+ "red",
70
+ "green",
71
+ "force"
72
+ ]
73
+ },
74
+ "partial": {
75
+ "type": "boolean"
76
+ },
77
+ "source_hashes": {
78
+ "type": "object",
79
+ "additionalProperties": {
80
+ "type": "string"
81
+ }
82
+ },
83
+ "effective_grade": {
84
+ "$ref": "#/$defs/grade"
85
+ },
86
+ "scenarios": {
87
+ "type": "array",
88
+ "items": {
89
+ "$ref": "#/$defs/scenario"
90
+ }
91
+ }
27
92
  },
28
93
  "$defs": {
29
- "verdict": { "enum": ["PASS", "FAIL", "ERROR", "JUDGE-AMBIGUOUS"] },
94
+ "verdict": {
95
+ "enum": [
96
+ "PASS",
97
+ "FAIL",
98
+ "ERROR",
99
+ "JUDGE-AMBIGUOUS"
100
+ ]
101
+ },
30
102
  "grade": {
31
103
  "type": "object",
32
- "required": ["passed", "total", "pct", "letter", "ship", "note"],
104
+ "required": [
105
+ "passed",
106
+ "total",
107
+ "pct",
108
+ "letter",
109
+ "ship",
110
+ "note"
111
+ ],
33
112
  "properties": {
34
- "passed": { "type": "integer" }, "total": { "type": "integer" }, "pct": { "type": "number" },
35
- "letter": { "type": "string" }, "ship": { "type": "boolean" }, "note": { "type": "string" }
113
+ "passed": {
114
+ "type": "integer"
115
+ },
116
+ "total": {
117
+ "type": "integer"
118
+ },
119
+ "pct": {
120
+ "type": "number"
121
+ },
122
+ "letter": {
123
+ "type": "string"
124
+ },
125
+ "ship": {
126
+ "type": "boolean"
127
+ },
128
+ "note": {
129
+ "type": "string"
130
+ }
36
131
  }
37
132
  },
38
133
  "metrics": {
39
134
  "type": "object",
40
- "required": ["wall_time_ms", "judge_calls", "judge_rejudge_calls", "subject_metrics_reps", "total_reps"],
135
+ "required": [
136
+ "wall_time_ms",
137
+ "judge_calls",
138
+ "judge_rejudge_calls",
139
+ "subject_metrics_reps",
140
+ "total_reps"
141
+ ],
41
142
  "properties": {
42
- "wall_time_ms": { "type": "number", "minimum": 0 },
43
- "judge_calls": { "type": "integer", "minimum": 0 },
44
- "judge_rejudge_calls": { "type": "integer", "minimum": 0 },
45
- "subject_metrics_reps": { "type": "integer", "minimum": 0 },
46
- "total_reps": { "type": "integer", "minimum": 1 },
47
- "input_tokens": { "type": "integer", "minimum": 0 },
48
- "output_tokens": { "type": "integer", "minimum": 0 },
49
- "cache_read_tokens": { "type": "integer", "minimum": 0 },
50
- "cache_write_tokens": { "type": "integer", "minimum": 0 },
51
- "subject_cost_usd": { "type": "number", "minimum": 0 },
52
- "cost_source": { "enum": ["provider-reported", "subscription", "unreported"] },
53
- "tool_calls": { "type": "integer", "minimum": 0 },
54
- "delegated_children": { "type": "integer", "minimum": 0 },
55
- "max_concurrency": { "type": "integer", "minimum": 0 }
143
+ "wall_time_ms": {
144
+ "type": "number",
145
+ "minimum": 0
146
+ },
147
+ "judge_calls": {
148
+ "type": "integer",
149
+ "minimum": 0
150
+ },
151
+ "judge_rejudge_calls": {
152
+ "type": "integer",
153
+ "minimum": 0
154
+ },
155
+ "subject_metrics_reps": {
156
+ "type": "integer",
157
+ "minimum": 0
158
+ },
159
+ "total_reps": {
160
+ "type": "integer",
161
+ "minimum": 1
162
+ },
163
+ "input_tokens": {
164
+ "type": "integer",
165
+ "minimum": 0
166
+ },
167
+ "output_tokens": {
168
+ "type": "integer",
169
+ "minimum": 0
170
+ },
171
+ "cache_read_tokens": {
172
+ "type": "integer",
173
+ "minimum": 0
174
+ },
175
+ "cache_write_tokens": {
176
+ "type": "integer",
177
+ "minimum": 0
178
+ },
179
+ "subject_cost_usd": {
180
+ "type": "number",
181
+ "minimum": 0
182
+ },
183
+ "cost_source": {
184
+ "enum": [
185
+ "provider-reported",
186
+ "subscription",
187
+ "unreported"
188
+ ]
189
+ },
190
+ "tool_calls": {
191
+ "type": "integer",
192
+ "minimum": 0
193
+ },
194
+ "delegated_children": {
195
+ "type": "integer",
196
+ "minimum": 0
197
+ },
198
+ "max_concurrency": {
199
+ "type": "integer",
200
+ "minimum": 0
201
+ }
56
202
  }
57
203
  },
58
204
  "judgment": {
59
205
  "type": "object",
60
206
  "additionalProperties": false,
61
- "required": ["ordinal", "judge", "verdict", "reason", "suspect"],
207
+ "required": [
208
+ "ordinal",
209
+ "judge",
210
+ "verdict",
211
+ "reason",
212
+ "suspect"
213
+ ],
62
214
  "properties": {
63
- "ordinal": { "type": "integer", "minimum": 1, "maximum": 3 },
215
+ "ordinal": {
216
+ "type": "integer",
217
+ "minimum": 1,
218
+ "maximum": 3
219
+ },
64
220
  "judge": {
65
- "type": "object", "additionalProperties": false, "required": ["provider", "model"],
66
- "properties": { "provider": { "type": "string" }, "model": { "type": "string" } }
221
+ "type": "object",
222
+ "additionalProperties": false,
223
+ "required": [
224
+ "provider",
225
+ "model"
226
+ ],
227
+ "properties": {
228
+ "provider": {
229
+ "type": "string"
230
+ },
231
+ "model": {
232
+ "type": "string"
233
+ }
234
+ }
235
+ },
236
+ "verdict": {
237
+ "$ref": "#/$defs/verdict"
238
+ },
239
+ "reason": {
240
+ "type": "string"
67
241
  },
68
- "verdict": { "$ref": "#/$defs/verdict" },
69
- "reason": { "type": "string" },
70
- "suspect": { "type": "boolean" }
242
+ "suspect": {
243
+ "type": "boolean"
244
+ }
71
245
  }
72
246
  },
73
247
  "scenario": {
74
248
  "type": "object",
75
- "required": ["id", "judge_verdict", "judge_reason", "suspect", "override", "note"],
249
+ "required": [
250
+ "id",
251
+ "judge_verdict",
252
+ "judge_reason",
253
+ "suspect",
254
+ "override",
255
+ "note"
256
+ ],
76
257
  "properties": {
77
- "id": { "type": "string" },
78
- "judge_verdict": { "$ref": "#/$defs/verdict" },
79
- "judge_reason": { "type": "string" },
80
- "suspect": { "type": "boolean" },
81
- "override": { "oneOf": [{ "const": null }, { "enum": ["PASS", "FAIL"] }] },
82
- "note": { "type": "string" },
83
- "reps": { "type": "integer", "minimum": 1 },
84
- "passes": { "type": "integer", "minimum": 0 },
85
- "clean": { "type": "integer", "minimum": 0 },
86
- "flakiness": { "type": "number", "minimum": 0, "maximum": 1 },
87
- "pass_threshold": { "type": "number", "minimum": 0, "maximum": 1 },
88
- "metrics": { "$ref": "#/$defs/metrics" },
258
+ "id": {
259
+ "type": "string"
260
+ },
261
+ "judge_verdict": {
262
+ "$ref": "#/$defs/verdict"
263
+ },
264
+ "judge_reason": {
265
+ "type": "string"
266
+ },
267
+ "suspect": {
268
+ "type": "boolean"
269
+ },
270
+ "override": {
271
+ "oneOf": [
272
+ {
273
+ "const": null
274
+ },
275
+ {
276
+ "enum": [
277
+ "PASS",
278
+ "FAIL"
279
+ ]
280
+ }
281
+ ]
282
+ },
283
+ "note": {
284
+ "type": "string"
285
+ },
286
+ "reps": {
287
+ "type": "integer",
288
+ "minimum": 1
289
+ },
290
+ "passes": {
291
+ "type": "integer",
292
+ "minimum": 0
293
+ },
294
+ "clean": {
295
+ "type": "integer",
296
+ "minimum": 0
297
+ },
298
+ "flakiness": {
299
+ "type": "number",
300
+ "minimum": 0,
301
+ "maximum": 1
302
+ },
303
+ "pass_threshold": {
304
+ "type": "number",
305
+ "minimum": 0,
306
+ "maximum": 1
307
+ },
308
+ "metrics": {
309
+ "$ref": "#/$defs/metrics"
310
+ },
89
311
  "objective": {
90
312
  "type": "object",
91
313
  "additionalProperties": false,
92
- "required": ["status", "assertions"],
314
+ "required": [
315
+ "status",
316
+ "assertions"
317
+ ],
93
318
  "properties": {
94
- "status": { "enum": ["PASS", "FAIL", "ERROR"] },
95
- "trace_version": { "type": "integer" },
96
- "trace_sha256": { "type": "string" },
97
- "trajectory_version": { "const": "1.0" },
98
- "events_sha256": { "type": "string" },
99
- "rep_events_sha256": { "type": "array", "items": { "type": "string", "pattern": "^[a-fA-F0-9]{64}$" } },
100
- "rep_trace_sha256": { "type": "array", "items": { "type": "string", "pattern": "^[a-fA-F0-9]{64}$" } },
319
+ "status": {
320
+ "enum": [
321
+ "PASS",
322
+ "FAIL",
323
+ "ERROR"
324
+ ]
325
+ },
326
+ "trace_version": {
327
+ "type": "integer"
328
+ },
329
+ "trace_sha256": {
330
+ "type": "string"
331
+ },
332
+ "rep_trace_sha256": {
333
+ "type": "array",
334
+ "items": {
335
+ "type": "string",
336
+ "pattern": "^[a-fA-F0-9]{64}$"
337
+ }
338
+ },
101
339
  "assertions": {
102
340
  "type": "array",
103
341
  "items": {
104
342
  "type": "object",
105
343
  "additionalProperties": false,
106
- "required": ["kind", "status", "detail"],
344
+ "required": [
345
+ "kind",
346
+ "status",
347
+ "detail"
348
+ ],
107
349
  "properties": {
108
- "kind": { "type": "string", "minLength": 1 },
109
- "status": { "enum": ["PASS", "FAIL", "ERROR"] },
110
- "detail": { "type": "string" }
350
+ "kind": {
351
+ "type": "string",
352
+ "minLength": 1
353
+ },
354
+ "status": {
355
+ "enum": [
356
+ "PASS",
357
+ "FAIL",
358
+ "ERROR"
359
+ ]
360
+ },
361
+ "detail": {
362
+ "type": "string"
363
+ }
111
364
  }
112
365
  }
366
+ },
367
+ "trajectory_version": {
368
+ "type": "string"
369
+ },
370
+ "events_sha256": {
371
+ "type": "string",
372
+ "pattern": "^[a-fA-F0-9]{64}$"
373
+ },
374
+ "rep_events_sha256": {
375
+ "type": "array",
376
+ "items": {
377
+ "type": "string",
378
+ "pattern": "^[a-fA-F0-9]{64}$"
379
+ }
113
380
  }
114
381
  }
115
382
  },
116
383
  "adjudication": {
117
384
  "type": "object",
118
385
  "additionalProperties": false,
119
- "required": ["state", "trigger", "judgments"],
386
+ "required": [
387
+ "state",
388
+ "trigger",
389
+ "judgments"
390
+ ],
120
391
  "properties": {
121
- "state": { "enum": ["confirmed", "tie_broken", "unresolved"] },
122
- "trigger": { "enum": ["ambiguous", "contradictory", "non_unanimous", "ship_deciding"] },
123
- "verdict": { "enum": ["PASS", "FAIL"] },
124
- "judgments": { "type": "array", "items": { "$ref": "#/$defs/judgment" } }
392
+ "state": {
393
+ "enum": [
394
+ "confirmed",
395
+ "tie_broken",
396
+ "unresolved"
397
+ ]
398
+ },
399
+ "trigger": {
400
+ "enum": [
401
+ "ambiguous",
402
+ "contradictory",
403
+ "non_unanimous",
404
+ "ship_deciding"
405
+ ]
406
+ },
407
+ "verdict": {
408
+ "enum": [
409
+ "PASS",
410
+ "FAIL"
411
+ ]
412
+ },
413
+ "judgments": {
414
+ "type": "array",
415
+ "items": {
416
+ "$ref": "#/$defs/judgment"
417
+ }
418
+ }
125
419
  }
126
420
  },
127
- "judge_history": { "type": "array", "minItems": 2, "maxItems": 3, "items": { "$ref": "#/$defs/judgment" } }
421
+ "judge_history": {
422
+ "type": "array",
423
+ "minItems": 2,
424
+ "maxItems": 3,
425
+ "items": {
426
+ "$ref": "#/$defs/judgment"
427
+ }
428
+ }
128
429
  }
129
430
  }
130
431
  }