@vibe-agent-toolkit/agent-skills 0.1.40 → 0.1.41-rc.2
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/skill-test/eval-executor.d.ts +50 -0
- package/dist/skill-test/eval-executor.d.ts.map +1 -0
- package/dist/skill-test/eval-executor.js +85 -0
- package/dist/skill-test/eval-executor.js.map +1 -0
- package/dist/skill-test/eval-fragment.d.ts +278 -0
- package/dist/skill-test/eval-fragment.d.ts.map +1 -0
- package/dist/skill-test/eval-fragment.js +128 -0
- package/dist/skill-test/eval-fragment.js.map +1 -0
- package/dist/skill-test/eval-grader.d.ts +54 -0
- package/dist/skill-test/eval-grader.d.ts.map +1 -0
- package/dist/skill-test/eval-grader.js +184 -0
- package/dist/skill-test/eval-grader.js.map +1 -0
- package/dist/skill-test/eval-inputs.d.ts +355 -0
- package/dist/skill-test/eval-inputs.d.ts.map +1 -1
- package/dist/skill-test/eval-inputs.js +36 -8
- package/dist/skill-test/eval-inputs.js.map +1 -1
- package/dist/skill-test/eval-lint.d.ts +51 -0
- package/dist/skill-test/eval-lint.d.ts.map +1 -0
- package/dist/skill-test/eval-lint.js +157 -0
- package/dist/skill-test/eval-lint.js.map +1 -0
- package/dist/skill-test/evals-template.d.ts.map +1 -1
- package/dist/skill-test/evals-template.js +7 -0
- package/dist/skill-test/evals-template.js.map +1 -1
- package/dist/skill-test/executor-prompt.d.ts +41 -0
- package/dist/skill-test/executor-prompt.d.ts.map +1 -0
- package/dist/skill-test/executor-prompt.js +63 -0
- package/dist/skill-test/executor-prompt.js.map +1 -0
- package/dist/skill-test/exit-codes.d.ts +8 -5
- package/dist/skill-test/exit-codes.d.ts.map +1 -1
- package/dist/skill-test/exit-codes.js +12 -7
- package/dist/skill-test/exit-codes.js.map +1 -1
- package/dist/skill-test/fragment-merge.d.ts +46 -0
- package/dist/skill-test/fragment-merge.d.ts.map +1 -0
- package/dist/skill-test/fragment-merge.js +77 -0
- package/dist/skill-test/fragment-merge.js.map +1 -0
- package/dist/skill-test/friction-schema.d.ts +10 -10
- package/dist/skill-test/friction-schema.d.ts.map +1 -1
- package/dist/skill-test/friction-schema.js +6 -1
- package/dist/skill-test/friction-schema.js.map +1 -1
- package/dist/skill-test/grader-model.d.ts +6 -0
- package/dist/skill-test/grader-model.d.ts.map +1 -0
- package/dist/skill-test/grader-model.js +6 -0
- package/dist/skill-test/grader-model.js.map +1 -0
- package/dist/skill-test/grader-prompt.d.ts +74 -0
- package/dist/skill-test/grader-prompt.d.ts.map +1 -0
- package/dist/skill-test/grader-prompt.js +173 -0
- package/dist/skill-test/grader-prompt.js.map +1 -0
- package/dist/skill-test/grading-adapter.d.ts +5 -11
- package/dist/skill-test/grading-adapter.d.ts.map +1 -1
- package/dist/skill-test/grading-adapter.js +9 -22
- package/dist/skill-test/grading-adapter.js.map +1 -1
- package/dist/skill-test/grading-schema.d.ts +18 -15
- package/dist/skill-test/grading-schema.d.ts.map +1 -1
- package/dist/skill-test/grading-schema.js +6 -5
- package/dist/skill-test/grading-schema.js.map +1 -1
- package/dist/skill-test/index.d.ts +13 -3
- package/dist/skill-test/index.d.ts.map +1 -1
- package/dist/skill-test/index.js +13 -3
- package/dist/skill-test/index.js.map +1 -1
- package/dist/skill-test/pipeline.d.ts +29 -0
- package/dist/skill-test/pipeline.d.ts.map +1 -0
- package/dist/skill-test/pipeline.js +77 -0
- package/dist/skill-test/pipeline.js.map +1 -0
- package/dist/skill-test/prompt-invariants.d.ts +27 -0
- package/dist/skill-test/prompt-invariants.d.ts.map +1 -0
- package/dist/skill-test/prompt-invariants.js +38 -0
- package/dist/skill-test/prompt-invariants.js.map +1 -0
- package/dist/skill-test/run-harness.d.ts +187 -55
- package/dist/skill-test/run-harness.d.ts.map +1 -1
- package/dist/skill-test/run-harness.js +539 -189
- package/dist/skill-test/run-harness.js.map +1 -1
- package/dist/skill-test/tier-plan.d.ts +89 -0
- package/dist/skill-test/tier-plan.d.ts.map +1 -0
- package/dist/skill-test/tier-plan.js +96 -0
- package/dist/skill-test/tier-plan.js.map +1 -0
- package/dist/skill-test/tool-eval-schema.d.ts +412 -0
- package/dist/skill-test/tool-eval-schema.d.ts.map +1 -0
- package/dist/skill-test/tool-eval-schema.js +83 -0
- package/dist/skill-test/tool-eval-schema.js.map +1 -0
- package/dist/validators/packaging-validator.d.ts +8 -1
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js.map +1 -1
- package/package.json +5 -5
- package/schemas/friction-report.json +2 -1
- package/dist/skill-test/experimenter-prompt.d.ts +0 -42
- package/dist/skill-test/experimenter-prompt.d.ts.map +0 -1
- package/dist/skill-test/experimenter-prompt.js +0 -104
- package/dist/skill-test/experimenter-prompt.js.map +0 -1
|
@@ -3,36 +3,129 @@ import { z } from 'zod';
|
|
|
3
3
|
export declare class EvalInputError extends Error {
|
|
4
4
|
constructor(message: string);
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* True when `key` is exactly one edit (insert/delete/substitute one char) from
|
|
8
|
+
* `target`. Used to catch typos of recognized fields (here) and of declared
|
|
9
|
+
* executable names ({@link ./eval-lint.ts}) — deliberately a tiny single-edit
|
|
10
|
+
* check, not a general edit-distance routine, so it stays cheap and never fires
|
|
11
|
+
* on legitimately distinct adopter strings (`name`, `category`, `notes`).
|
|
12
|
+
*/
|
|
13
|
+
export declare function isSingleEditAway(key: string, target: string): boolean;
|
|
6
14
|
export declare const EvalEntrySchema: z.ZodEffects<z.ZodObject<{
|
|
7
15
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
8
16
|
prompt: z.ZodString;
|
|
9
17
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
10
18
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
11
19
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
20
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
22
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
23
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
24
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
25
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
26
|
+
}, "strict", z.ZodTypeAny, {
|
|
27
|
+
mustRun?: string[] | undefined;
|
|
28
|
+
mustNotRun?: string[] | undefined;
|
|
29
|
+
mustSucceed?: string[] | undefined;
|
|
30
|
+
sequence?: string[] | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
mustRun?: string[] | undefined;
|
|
33
|
+
mustNotRun?: string[] | undefined;
|
|
34
|
+
mustSucceed?: string[] | undefined;
|
|
35
|
+
sequence?: string[] | undefined;
|
|
36
|
+
}>>;
|
|
12
37
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
13
38
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
14
39
|
prompt: z.ZodString;
|
|
15
40
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
16
41
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
42
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
43
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
44
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
45
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
46
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
47
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
48
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
49
|
+
}, "strict", z.ZodTypeAny, {
|
|
50
|
+
mustRun?: string[] | undefined;
|
|
51
|
+
mustNotRun?: string[] | undefined;
|
|
52
|
+
mustSucceed?: string[] | undefined;
|
|
53
|
+
sequence?: string[] | undefined;
|
|
54
|
+
}, {
|
|
55
|
+
mustRun?: string[] | undefined;
|
|
56
|
+
mustNotRun?: string[] | undefined;
|
|
57
|
+
mustSucceed?: string[] | undefined;
|
|
58
|
+
sequence?: string[] | undefined;
|
|
59
|
+
}>>;
|
|
18
60
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
19
61
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
20
62
|
prompt: z.ZodString;
|
|
21
63
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
22
64
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
23
65
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
66
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
67
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
68
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
69
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
70
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
71
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
72
|
+
}, "strict", z.ZodTypeAny, {
|
|
73
|
+
mustRun?: string[] | undefined;
|
|
74
|
+
mustNotRun?: string[] | undefined;
|
|
75
|
+
mustSucceed?: string[] | undefined;
|
|
76
|
+
sequence?: string[] | undefined;
|
|
77
|
+
}, {
|
|
78
|
+
mustRun?: string[] | undefined;
|
|
79
|
+
mustNotRun?: string[] | undefined;
|
|
80
|
+
mustSucceed?: string[] | undefined;
|
|
81
|
+
sequence?: string[] | undefined;
|
|
82
|
+
}>>;
|
|
24
83
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
25
84
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
26
85
|
prompt: z.ZodString;
|
|
27
86
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
28
87
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
29
88
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
89
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
91
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
92
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
93
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
94
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
95
|
+
}, "strict", z.ZodTypeAny, {
|
|
96
|
+
mustRun?: string[] | undefined;
|
|
97
|
+
mustNotRun?: string[] | undefined;
|
|
98
|
+
mustSucceed?: string[] | undefined;
|
|
99
|
+
sequence?: string[] | undefined;
|
|
100
|
+
}, {
|
|
101
|
+
mustRun?: string[] | undefined;
|
|
102
|
+
mustNotRun?: string[] | undefined;
|
|
103
|
+
mustSucceed?: string[] | undefined;
|
|
104
|
+
sequence?: string[] | undefined;
|
|
105
|
+
}>>;
|
|
30
106
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
31
107
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
32
108
|
prompt: z.ZodString;
|
|
33
109
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
34
110
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
35
111
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
112
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
113
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
114
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
115
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
116
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
117
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
118
|
+
}, "strict", z.ZodTypeAny, {
|
|
119
|
+
mustRun?: string[] | undefined;
|
|
120
|
+
mustNotRun?: string[] | undefined;
|
|
121
|
+
mustSucceed?: string[] | undefined;
|
|
122
|
+
sequence?: string[] | undefined;
|
|
123
|
+
}, {
|
|
124
|
+
mustRun?: string[] | undefined;
|
|
125
|
+
mustNotRun?: string[] | undefined;
|
|
126
|
+
mustSucceed?: string[] | undefined;
|
|
127
|
+
sequence?: string[] | undefined;
|
|
128
|
+
}>>;
|
|
36
129
|
}, z.ZodTypeAny, "passthrough">>;
|
|
37
130
|
export declare const EvalSuiteSchema: z.ZodObject<{
|
|
38
131
|
_comment: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -43,30 +136,115 @@ export declare const EvalSuiteSchema: z.ZodObject<{
|
|
|
43
136
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
44
137
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
45
138
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
139
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
140
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
141
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
142
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
143
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
144
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
145
|
+
}, "strict", z.ZodTypeAny, {
|
|
146
|
+
mustRun?: string[] | undefined;
|
|
147
|
+
mustNotRun?: string[] | undefined;
|
|
148
|
+
mustSucceed?: string[] | undefined;
|
|
149
|
+
sequence?: string[] | undefined;
|
|
150
|
+
}, {
|
|
151
|
+
mustRun?: string[] | undefined;
|
|
152
|
+
mustNotRun?: string[] | undefined;
|
|
153
|
+
mustSucceed?: string[] | undefined;
|
|
154
|
+
sequence?: string[] | undefined;
|
|
155
|
+
}>>;
|
|
46
156
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
47
157
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
48
158
|
prompt: z.ZodString;
|
|
49
159
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
50
160
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
51
161
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
162
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
163
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
164
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
165
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
166
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
167
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
168
|
+
}, "strict", z.ZodTypeAny, {
|
|
169
|
+
mustRun?: string[] | undefined;
|
|
170
|
+
mustNotRun?: string[] | undefined;
|
|
171
|
+
mustSucceed?: string[] | undefined;
|
|
172
|
+
sequence?: string[] | undefined;
|
|
173
|
+
}, {
|
|
174
|
+
mustRun?: string[] | undefined;
|
|
175
|
+
mustNotRun?: string[] | undefined;
|
|
176
|
+
mustSucceed?: string[] | undefined;
|
|
177
|
+
sequence?: string[] | undefined;
|
|
178
|
+
}>>;
|
|
52
179
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
53
180
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
54
181
|
prompt: z.ZodString;
|
|
55
182
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
56
183
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
57
184
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
185
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
186
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
187
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
188
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
189
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
190
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
191
|
+
}, "strict", z.ZodTypeAny, {
|
|
192
|
+
mustRun?: string[] | undefined;
|
|
193
|
+
mustNotRun?: string[] | undefined;
|
|
194
|
+
mustSucceed?: string[] | undefined;
|
|
195
|
+
sequence?: string[] | undefined;
|
|
196
|
+
}, {
|
|
197
|
+
mustRun?: string[] | undefined;
|
|
198
|
+
mustNotRun?: string[] | undefined;
|
|
199
|
+
mustSucceed?: string[] | undefined;
|
|
200
|
+
sequence?: string[] | undefined;
|
|
201
|
+
}>>;
|
|
58
202
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
59
203
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
60
204
|
prompt: z.ZodString;
|
|
61
205
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
62
206
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
63
207
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
208
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
209
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
210
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
211
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
212
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
213
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
214
|
+
}, "strict", z.ZodTypeAny, {
|
|
215
|
+
mustRun?: string[] | undefined;
|
|
216
|
+
mustNotRun?: string[] | undefined;
|
|
217
|
+
mustSucceed?: string[] | undefined;
|
|
218
|
+
sequence?: string[] | undefined;
|
|
219
|
+
}, {
|
|
220
|
+
mustRun?: string[] | undefined;
|
|
221
|
+
mustNotRun?: string[] | undefined;
|
|
222
|
+
mustSucceed?: string[] | undefined;
|
|
223
|
+
sequence?: string[] | undefined;
|
|
224
|
+
}>>;
|
|
64
225
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
65
226
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
66
227
|
prompt: z.ZodString;
|
|
67
228
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
68
229
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
69
230
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
231
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
232
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
233
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
234
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
235
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
236
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
237
|
+
}, "strict", z.ZodTypeAny, {
|
|
238
|
+
mustRun?: string[] | undefined;
|
|
239
|
+
mustNotRun?: string[] | undefined;
|
|
240
|
+
mustSucceed?: string[] | undefined;
|
|
241
|
+
sequence?: string[] | undefined;
|
|
242
|
+
}, {
|
|
243
|
+
mustRun?: string[] | undefined;
|
|
244
|
+
mustNotRun?: string[] | undefined;
|
|
245
|
+
mustSucceed?: string[] | undefined;
|
|
246
|
+
sequence?: string[] | undefined;
|
|
247
|
+
}>>;
|
|
70
248
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
71
249
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
72
250
|
_comment: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -77,30 +255,115 @@ export declare const EvalSuiteSchema: z.ZodObject<{
|
|
|
77
255
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
78
256
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
79
257
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
258
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
259
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
260
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
261
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
262
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
263
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
264
|
+
}, "strict", z.ZodTypeAny, {
|
|
265
|
+
mustRun?: string[] | undefined;
|
|
266
|
+
mustNotRun?: string[] | undefined;
|
|
267
|
+
mustSucceed?: string[] | undefined;
|
|
268
|
+
sequence?: string[] | undefined;
|
|
269
|
+
}, {
|
|
270
|
+
mustRun?: string[] | undefined;
|
|
271
|
+
mustNotRun?: string[] | undefined;
|
|
272
|
+
mustSucceed?: string[] | undefined;
|
|
273
|
+
sequence?: string[] | undefined;
|
|
274
|
+
}>>;
|
|
80
275
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
81
276
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
82
277
|
prompt: z.ZodString;
|
|
83
278
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
84
279
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
85
280
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
281
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
282
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
283
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
284
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
285
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
286
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
287
|
+
}, "strict", z.ZodTypeAny, {
|
|
288
|
+
mustRun?: string[] | undefined;
|
|
289
|
+
mustNotRun?: string[] | undefined;
|
|
290
|
+
mustSucceed?: string[] | undefined;
|
|
291
|
+
sequence?: string[] | undefined;
|
|
292
|
+
}, {
|
|
293
|
+
mustRun?: string[] | undefined;
|
|
294
|
+
mustNotRun?: string[] | undefined;
|
|
295
|
+
mustSucceed?: string[] | undefined;
|
|
296
|
+
sequence?: string[] | undefined;
|
|
297
|
+
}>>;
|
|
86
298
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
87
299
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
88
300
|
prompt: z.ZodString;
|
|
89
301
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
90
302
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
91
303
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
304
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
305
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
306
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
307
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
308
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
309
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
310
|
+
}, "strict", z.ZodTypeAny, {
|
|
311
|
+
mustRun?: string[] | undefined;
|
|
312
|
+
mustNotRun?: string[] | undefined;
|
|
313
|
+
mustSucceed?: string[] | undefined;
|
|
314
|
+
sequence?: string[] | undefined;
|
|
315
|
+
}, {
|
|
316
|
+
mustRun?: string[] | undefined;
|
|
317
|
+
mustNotRun?: string[] | undefined;
|
|
318
|
+
mustSucceed?: string[] | undefined;
|
|
319
|
+
sequence?: string[] | undefined;
|
|
320
|
+
}>>;
|
|
92
321
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
93
322
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
94
323
|
prompt: z.ZodString;
|
|
95
324
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
96
325
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
97
326
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
327
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
328
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
329
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
330
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
331
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
332
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
333
|
+
}, "strict", z.ZodTypeAny, {
|
|
334
|
+
mustRun?: string[] | undefined;
|
|
335
|
+
mustNotRun?: string[] | undefined;
|
|
336
|
+
mustSucceed?: string[] | undefined;
|
|
337
|
+
sequence?: string[] | undefined;
|
|
338
|
+
}, {
|
|
339
|
+
mustRun?: string[] | undefined;
|
|
340
|
+
mustNotRun?: string[] | undefined;
|
|
341
|
+
mustSucceed?: string[] | undefined;
|
|
342
|
+
sequence?: string[] | undefined;
|
|
343
|
+
}>>;
|
|
98
344
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
99
345
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
100
346
|
prompt: z.ZodString;
|
|
101
347
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
102
348
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
103
349
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
350
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
351
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
352
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
353
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
354
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
355
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
356
|
+
}, "strict", z.ZodTypeAny, {
|
|
357
|
+
mustRun?: string[] | undefined;
|
|
358
|
+
mustNotRun?: string[] | undefined;
|
|
359
|
+
mustSucceed?: string[] | undefined;
|
|
360
|
+
sequence?: string[] | undefined;
|
|
361
|
+
}, {
|
|
362
|
+
mustRun?: string[] | undefined;
|
|
363
|
+
mustNotRun?: string[] | undefined;
|
|
364
|
+
mustSucceed?: string[] | undefined;
|
|
365
|
+
sequence?: string[] | undefined;
|
|
366
|
+
}>>;
|
|
104
367
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
105
368
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
106
369
|
_comment: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -111,34 +374,126 @@ export declare const EvalSuiteSchema: z.ZodObject<{
|
|
|
111
374
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
112
375
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
113
376
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
377
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
378
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
379
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
380
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
381
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
382
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
383
|
+
}, "strict", z.ZodTypeAny, {
|
|
384
|
+
mustRun?: string[] | undefined;
|
|
385
|
+
mustNotRun?: string[] | undefined;
|
|
386
|
+
mustSucceed?: string[] | undefined;
|
|
387
|
+
sequence?: string[] | undefined;
|
|
388
|
+
}, {
|
|
389
|
+
mustRun?: string[] | undefined;
|
|
390
|
+
mustNotRun?: string[] | undefined;
|
|
391
|
+
mustSucceed?: string[] | undefined;
|
|
392
|
+
sequence?: string[] | undefined;
|
|
393
|
+
}>>;
|
|
114
394
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
115
395
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
116
396
|
prompt: z.ZodString;
|
|
117
397
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
118
398
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
119
399
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
400
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
401
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
402
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
403
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
404
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
405
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
406
|
+
}, "strict", z.ZodTypeAny, {
|
|
407
|
+
mustRun?: string[] | undefined;
|
|
408
|
+
mustNotRun?: string[] | undefined;
|
|
409
|
+
mustSucceed?: string[] | undefined;
|
|
410
|
+
sequence?: string[] | undefined;
|
|
411
|
+
}, {
|
|
412
|
+
mustRun?: string[] | undefined;
|
|
413
|
+
mustNotRun?: string[] | undefined;
|
|
414
|
+
mustSucceed?: string[] | undefined;
|
|
415
|
+
sequence?: string[] | undefined;
|
|
416
|
+
}>>;
|
|
120
417
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
121
418
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
122
419
|
prompt: z.ZodString;
|
|
123
420
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
124
421
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
125
422
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
423
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
424
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
425
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
426
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
427
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
428
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
429
|
+
}, "strict", z.ZodTypeAny, {
|
|
430
|
+
mustRun?: string[] | undefined;
|
|
431
|
+
mustNotRun?: string[] | undefined;
|
|
432
|
+
mustSucceed?: string[] | undefined;
|
|
433
|
+
sequence?: string[] | undefined;
|
|
434
|
+
}, {
|
|
435
|
+
mustRun?: string[] | undefined;
|
|
436
|
+
mustNotRun?: string[] | undefined;
|
|
437
|
+
mustSucceed?: string[] | undefined;
|
|
438
|
+
sequence?: string[] | undefined;
|
|
439
|
+
}>>;
|
|
126
440
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
127
441
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
128
442
|
prompt: z.ZodString;
|
|
129
443
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
130
444
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
131
445
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
446
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
447
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
448
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
449
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
450
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
451
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
452
|
+
}, "strict", z.ZodTypeAny, {
|
|
453
|
+
mustRun?: string[] | undefined;
|
|
454
|
+
mustNotRun?: string[] | undefined;
|
|
455
|
+
mustSucceed?: string[] | undefined;
|
|
456
|
+
sequence?: string[] | undefined;
|
|
457
|
+
}, {
|
|
458
|
+
mustRun?: string[] | undefined;
|
|
459
|
+
mustNotRun?: string[] | undefined;
|
|
460
|
+
mustSucceed?: string[] | undefined;
|
|
461
|
+
sequence?: string[] | undefined;
|
|
462
|
+
}>>;
|
|
132
463
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
133
464
|
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
134
465
|
prompt: z.ZodString;
|
|
135
466
|
expected_output: z.ZodOptional<z.ZodString>;
|
|
136
467
|
files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
137
468
|
expectations: z.ZodArray<z.ZodString, "many">;
|
|
469
|
+
tier: z.ZodOptional<z.ZodNumber>;
|
|
470
|
+
toolExpectations: z.ZodOptional<z.ZodObject<{
|
|
471
|
+
mustRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
472
|
+
mustNotRun: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
473
|
+
mustSucceed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
474
|
+
sequence: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
475
|
+
}, "strict", z.ZodTypeAny, {
|
|
476
|
+
mustRun?: string[] | undefined;
|
|
477
|
+
mustNotRun?: string[] | undefined;
|
|
478
|
+
mustSucceed?: string[] | undefined;
|
|
479
|
+
sequence?: string[] | undefined;
|
|
480
|
+
}, {
|
|
481
|
+
mustRun?: string[] | undefined;
|
|
482
|
+
mustNotRun?: string[] | undefined;
|
|
483
|
+
mustSucceed?: string[] | undefined;
|
|
484
|
+
sequence?: string[] | undefined;
|
|
485
|
+
}>>;
|
|
138
486
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
139
487
|
}, z.ZodTypeAny, "passthrough">>;
|
|
140
488
|
export type EvalEntry = z.infer<typeof EvalEntrySchema>;
|
|
141
489
|
export type EvalSuite = z.infer<typeof EvalSuiteSchema>;
|
|
490
|
+
/**
|
|
491
|
+
* The declared tool expectations of ONE eval (issue #145 Phase T). Derived from
|
|
492
|
+
* {@link EvalEntry} so the grader input + prompt builder share the EXACT shape the
|
|
493
|
+
* parser produces — no drift, and no duplicated inline `{ mustRun?; mustNotRun?;
|
|
494
|
+
* sequence? }` literal across those consumers.
|
|
495
|
+
*/
|
|
496
|
+
export type ToolExpectations = NonNullable<EvalEntry['toolExpectations']>;
|
|
142
497
|
/** Parse + validate a skill-test eval suite. Throws {@link EvalInputError} on any problem. */
|
|
143
498
|
export declare function parseEvalSuite(jsonText: string): EvalSuite;
|
|
144
499
|
export interface StageEvalWorkspacesInput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-inputs.d.ts","sourceRoot":"","sources":["../../src/skill-test/eval-inputs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wGAAwG;AACxG,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;
|
|
1
|
+
{"version":3,"file":"eval-inputs.d.ts","sourceRoot":"","sources":["../../src/skill-test/eval-inputs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wGAAwG;AACxG,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAyBD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAUrE;AAWD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAsDxB,CAAC;AAEL,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAMZ,CAAC;AAEjB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAE1E,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAmB1D;AAED,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CAkC3E"}
|
|
@@ -20,14 +20,23 @@ export class EvalInputError extends Error {
|
|
|
20
20
|
const EVAL_ID_PATTERN = /^[A-Za-z0-9_-]+$/;
|
|
21
21
|
/** Fields VAT recognizes per eval. Unknown fields are allowed (passthrough); a
|
|
22
22
|
* near-miss of one of these is flagged as a likely typo (see superRefine). */
|
|
23
|
-
const RECOGNIZED_EVAL_FIELDS = [
|
|
23
|
+
const RECOGNIZED_EVAL_FIELDS = [
|
|
24
|
+
'id',
|
|
25
|
+
'prompt',
|
|
26
|
+
'expected_output',
|
|
27
|
+
'files',
|
|
28
|
+
'expectations',
|
|
29
|
+
'tier',
|
|
30
|
+
'toolExpectations',
|
|
31
|
+
];
|
|
24
32
|
/**
|
|
25
33
|
* True when `key` is exactly one edit (insert/delete/substitute one char) from
|
|
26
|
-
* `target`. Used
|
|
27
|
-
*
|
|
28
|
-
*
|
|
34
|
+
* `target`. Used to catch typos of recognized fields (here) and of declared
|
|
35
|
+
* executable names ({@link ./eval-lint.ts}) — deliberately a tiny single-edit
|
|
36
|
+
* check, not a general edit-distance routine, so it stays cheap and never fires
|
|
37
|
+
* on legitimately distinct adopter strings (`name`, `category`, `notes`).
|
|
29
38
|
*/
|
|
30
|
-
function isSingleEditAway(key, target) {
|
|
39
|
+
export function isSingleEditAway(key, target) {
|
|
31
40
|
if (key === target)
|
|
32
41
|
return false;
|
|
33
42
|
const lk = key.length;
|
|
@@ -65,18 +74,37 @@ export const EvalEntrySchema = z
|
|
|
65
74
|
// Optional: a human-readable success description. The pass/fail verdict is
|
|
66
75
|
// always decided per `expectations` entry, so this is not load-bearing and
|
|
67
76
|
// (per Postel's Law) is not required — real adopter suites (e.g. dxa-consumption)
|
|
68
|
-
// grade with `expectations` alone. When present, the
|
|
69
|
-
// to the grader as prose CONTEXT informing judgment (see
|
|
77
|
+
// grade with `expectations` alone. When present, the grader prompt feeds it
|
|
78
|
+
// to the grader as prose CONTEXT informing judgment (see grader-prompt.ts).
|
|
70
79
|
expected_output: z.string().min(1).optional(),
|
|
71
80
|
files: z.array(z.string().min(1)).optional(),
|
|
72
81
|
expectations: z.array(z.string().min(1)).min(1),
|
|
82
|
+
// Cost/foundational tier for fail-fast gating (Phase G): ascending, 0 = cheapest/first.
|
|
83
|
+
// Optional — adopters who don't opt into tiered execution omit it.
|
|
84
|
+
tier: z.number().int().nonnegative().optional(),
|
|
85
|
+
// Which tools SHOULD/SHOULD-NOT run, judged later by the grader against the
|
|
86
|
+
// transcript (Phase T). This sub-object's keys are VAT-defined (not adopter-owned
|
|
87
|
+
// like the entry itself), so it is `.strict()` — a typo here is a hard schema error,
|
|
88
|
+
// not silently passed through.
|
|
89
|
+
toolExpectations: z
|
|
90
|
+
.object({
|
|
91
|
+
mustRun: z.array(z.string().min(1)).optional(),
|
|
92
|
+
mustNotRun: z.array(z.string().min(1)).optional(),
|
|
93
|
+
// Each named executable must have RUN and its invoking tool_result must
|
|
94
|
+
// NOT be an error (feature #148). Judged from the transcript by the
|
|
95
|
+
// grader — see tool-eval-schema.ts's ToolSucceedCheckSchema.
|
|
96
|
+
mustSucceed: z.array(z.string().min(1)).optional(),
|
|
97
|
+
sequence: z.array(z.string().min(1)).optional(),
|
|
98
|
+
})
|
|
99
|
+
.strict()
|
|
100
|
+
.optional(),
|
|
73
101
|
})
|
|
74
102
|
.passthrough()
|
|
75
103
|
.superRefine((entry, ctx) => {
|
|
76
104
|
for (const key of Object.keys(entry)) {
|
|
77
105
|
if (RECOGNIZED_EVAL_FIELDS.includes(key))
|
|
78
106
|
continue;
|
|
79
|
-
const near = RECOGNIZED_EVAL_FIELDS.find((field) => isSingleEditAway(key.toLowerCase(), field));
|
|
107
|
+
const near = RECOGNIZED_EVAL_FIELDS.find((field) => isSingleEditAway(key.toLowerCase(), field.toLowerCase()));
|
|
80
108
|
if (near !== undefined) {
|
|
81
109
|
ctx.addIssue({
|
|
82
110
|
code: z.ZodIssueCode.custom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-inputs.js","sourceRoot":"","sources":["../../src/skill-test/eval-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wGAAwG;AACxG,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAE3C;+EAC+E;AAC/E,MAAM,sBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"eval-inputs.js","sourceRoot":"","sources":["../../src/skill-test/eval-inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advisory (never-fatal) lint over an eval suite's `expectations` prose (issue #145
|
|
3
|
+
* follow-up). An adopter reported that WEAK expectations — pure "mentions X" /
|
|
4
|
+
* "includes Y" presence checks with no discriminating or negative counterpart —
|
|
5
|
+
* pass even for a hallucinated or right-for-the-wrong-reason answer, giving false
|
|
6
|
+
* confidence in a green run. This module flags that pattern so authors can
|
|
7
|
+
* strengthen the eval; it never blocks a run or changes an exit code.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately conservative: this is a heuristic over free-text prose, not a
|
|
10
|
+
* grammar. When in doubt, do NOT warn — a false "your eval is weak" nag is worse
|
|
11
|
+
* than a missed one, since the grader (an LLM judging the transcript) is the real
|
|
12
|
+
* backstop for eval quality.
|
|
13
|
+
*/
|
|
14
|
+
import { type EvalEntry } from './eval-inputs.js';
|
|
15
|
+
/** One advisory finding: `evalId` names the offending eval, `message` is the full advisory text. */
|
|
16
|
+
export interface EvalLintWarning {
|
|
17
|
+
evalId: string;
|
|
18
|
+
message: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Lint a parsed eval suite's `expectations` for the weak-presence-only pattern.
|
|
22
|
+
* Flags an eval only when ALL of these hold (conservative — minimize false
|
|
23
|
+
* positives):
|
|
24
|
+
* (a) it has at least one expectation;
|
|
25
|
+
* (b) EVERY expectation string is presence-only (see {@link isPresenceOnlyExpectation});
|
|
26
|
+
* (c) the eval declares no `toolExpectations` — a `mustRun`/`mustNotRun`/`sequence`
|
|
27
|
+
* assertion is itself discriminating (it can fail a transcript that never
|
|
28
|
+
* invoked the right tool), so its presence already covers the concern this
|
|
29
|
+
* lint exists to catch.
|
|
30
|
+
*
|
|
31
|
+
* Pure and side-effect free — callers decide how/where to surface the warnings
|
|
32
|
+
* (this never throws and never affects exit code).
|
|
33
|
+
*/
|
|
34
|
+
export declare function lintEvalExpectations(evals: EvalEntry[]): EvalLintWarning[];
|
|
35
|
+
/**
|
|
36
|
+
* Advisory (never-fatal) lint: flag a `toolExpectations` entry that names an
|
|
37
|
+
* executable which looks like a TYPO of one of the skill's `declaredExecutables`
|
|
38
|
+
* (issue #145 adopter follow-up). A name that never matches a real tool is a quiet
|
|
39
|
+
* footgun — `mustRun`/`mustSucceed`/`sequence` then fail for the wrong reason, and
|
|
40
|
+
* `mustNotRun` passes vacuously (the tool "never ran" only because the name is
|
|
41
|
+
* wrong). This is zero-token static plumbing, run before any spend.
|
|
42
|
+
*
|
|
43
|
+
* Conservative, like {@link lintEvalExpectations}: it only fires when there is a
|
|
44
|
+
* SPECIFIC declared name the reference is probably a typo of (so it can suggest
|
|
45
|
+
* "did you mean X?"). A reference that matches a declared name exactly, or that is
|
|
46
|
+
* not close to any declared name (a deliberate built-in/system tool reference), is
|
|
47
|
+
* never flagged. When the skill declares no executables there is nothing to compare
|
|
48
|
+
* against, so it returns no warnings. Pure + side-effect free.
|
|
49
|
+
*/
|
|
50
|
+
export declare function lintToolExpectationExecutables(evals: EvalEntry[], declaredExecutableNames: string[]): EvalLintWarning[];
|
|
51
|
+
//# sourceMappingURL=eval-lint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-lint.d.ts","sourceRoot":"","sources":["../../src/skill-test/eval-lint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpE,oGAAoG;AACpG,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAsBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAgB1E;AA0DD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,EAAE,EAClB,uBAAuB,EAAE,MAAM,EAAE,GAChC,eAAe,EAAE,CAuBnB"}
|