@executioncontrolprotocol/harnesses-browser-coding 0.10.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 +21 -0
- package/dist/browser-coding-harness.d.ts +50 -0
- package/dist/browser-coding-harness.d.ts.map +1 -0
- package/dist/browser-coding-harness.js +76 -0
- package/dist/browser-coding-harness.js.map +1 -0
- package/dist/fluent-patch-hints.d.ts +18 -0
- package/dist/fluent-patch-hints.d.ts.map +1 -0
- package/dist/fluent-patch-hints.js +262 -0
- package/dist/fluent-patch-hints.js.map +1 -0
- package/dist/harness-coding-config.d.ts +45 -0
- package/dist/harness-coding-config.d.ts.map +1 -0
- package/dist/harness-coding-config.js +87 -0
- package/dist/harness-coding-config.js.map +1 -0
- package/dist/harness-ids.d.ts +6 -0
- package/dist/harness-ids.d.ts.map +1 -0
- package/dist/harness-ids.js +6 -0
- package/dist/harness-ids.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/intent-classification-coding.d.ts +8 -0
- package/dist/intent-classification-coding.d.ts.map +1 -0
- package/dist/intent-classification-coding.js +172 -0
- package/dist/intent-classification-coding.js.map +1 -0
- package/dist/prompts/build-coding-prompt.d.ts +11 -0
- package/dist/prompts/build-coding-prompt.d.ts.map +1 -0
- package/dist/prompts/build-coding-prompt.js +17 -0
- package/dist/prompts/build-coding-prompt.js.map +1 -0
- package/dist/prompts/coding-prompt-fixture-ids.d.ts +10 -0
- package/dist/prompts/coding-prompt-fixture-ids.d.ts.map +1 -0
- package/dist/prompts/coding-prompt-fixture-ids.js +8 -0
- package/dist/prompts/coding-prompt-fixture-ids.js.map +1 -0
- package/dist/prompts/fixtures-root.d.ts +5 -0
- package/dist/prompts/fixtures-root.d.ts.map +1 -0
- package/dist/prompts/fixtures-root.js +7 -0
- package/dist/prompts/fixtures-root.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +4 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/load-harness-prompt.browser.d.ts +4 -0
- package/dist/prompts/load-harness-prompt.browser.d.ts.map +1 -0
- package/dist/prompts/load-harness-prompt.browser.js +32 -0
- package/dist/prompts/load-harness-prompt.browser.js.map +1 -0
- package/dist/prompts/load-harness-prompt.d.ts +2 -0
- package/dist/prompts/load-harness-prompt.d.ts.map +1 -0
- package/dist/prompts/load-harness-prompt.js +2 -0
- package/dist/prompts/load-harness-prompt.js.map +1 -0
- package/dist/prompts/load-harness-prompt.node.d.ts +4 -0
- package/dist/prompts/load-harness-prompt.node.d.ts.map +1 -0
- package/dist/prompts/load-harness-prompt.node.js +20 -0
- package/dist/prompts/load-harness-prompt.node.js.map +1 -0
- package/dist/register.d.ts +5 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +14 -0
- package/dist/register.js.map +1 -0
- package/dist/workflow-assistant-coding.d.ts +9 -0
- package/dist/workflow-assistant-coding.d.ts.map +1 -0
- package/dist/workflow-assistant-coding.js +282 -0
- package/dist/workflow-assistant-coding.js.map +1 -0
- package/dist/workflow-authoring-coding.d.ts +9 -0
- package/dist/workflow-authoring-coding.d.ts.map +1 -0
- package/dist/workflow-authoring-coding.js +214 -0
- package/dist/workflow-authoring-coding.js.map +1 -0
- package/fixtures/eval-cases/assistant.cases.json +658 -0
- package/fixtures/eval-cases/intent.cases.json +587 -0
- package/fixtures/eval-cases/workflow-create.cases.json +493 -0
- package/fixtures/eval-cases/workflow-patch.cases.json +379 -0
- package/fixtures/harness-prompts/intent-classification-coding.prompt.json +56 -0
- package/fixtures/harness-prompts/workflow-assistant-coding.prompt.json +70 -0
- package/fixtures/harness-prompts/workflow-authoring-create-coding.prompt.json +42 -0
- package/fixtures/harness-prompts/workflow-authoring-patch-coding.prompt.json +50 -0
- package/fixtures/runs/completed-with-refs.json +18 -0
- package/fixtures/runs/failed-echo-step.json +29 -0
- package/fixtures/runs/running-pending.json +14 -0
- package/fixtures/workflows/echo-validate-reorder.json +26 -0
- package/fixtures/workflows/echo-workflow.json +20 -0
- package/fixtures/workflows/multi-cap-workflow.json +34 -0
- package/fixtures/workflows/two-step-chain.json +26 -0
- package/package.json +47 -0
|
@@ -0,0 +1,658 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cases": [
|
|
3
|
+
{
|
|
4
|
+
"id": "asst-01",
|
|
5
|
+
"suite": "assistant",
|
|
6
|
+
"title": "Failed echo",
|
|
7
|
+
"harness": "workflow-assistant",
|
|
8
|
+
"model": "default",
|
|
9
|
+
"input": {
|
|
10
|
+
"message": "Why did step echo fail?",
|
|
11
|
+
"runContextFixture": "runs/failed-echo-step.json"
|
|
12
|
+
},
|
|
13
|
+
"assertions": {
|
|
14
|
+
"deterministic": [
|
|
15
|
+
{
|
|
16
|
+
"kind": "invokeSuccess"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"kind": "replySchema"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"kind": "answerContains",
|
|
23
|
+
"text": "echo"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"kind": "answerContains",
|
|
27
|
+
"text": "error"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"judge": {
|
|
31
|
+
"enabled": true,
|
|
32
|
+
"goal": "Explains echo failure",
|
|
33
|
+
"rubric": "Mentions echo step and describes the error from run context",
|
|
34
|
+
"requireApproved": true
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "asst-02",
|
|
40
|
+
"suite": "assistant",
|
|
41
|
+
"title": "Failed status",
|
|
42
|
+
"harness": "workflow-assistant",
|
|
43
|
+
"model": "default",
|
|
44
|
+
"input": {
|
|
45
|
+
"message": "What is the run status?",
|
|
46
|
+
"runContextFixture": "runs/failed-echo-step.json"
|
|
47
|
+
},
|
|
48
|
+
"assertions": {
|
|
49
|
+
"deterministic": [
|
|
50
|
+
{
|
|
51
|
+
"kind": "invokeSuccess"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"kind": "replySchema"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"kind": "answerContains",
|
|
58
|
+
"text": "fail"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"judge": {
|
|
62
|
+
"enabled": false
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "asst-03",
|
|
68
|
+
"suite": "assistant",
|
|
69
|
+
"title": "Running",
|
|
70
|
+
"harness": "workflow-assistant",
|
|
71
|
+
"model": "default",
|
|
72
|
+
"input": {
|
|
73
|
+
"message": "Is my workflow still running?",
|
|
74
|
+
"runContextFixture": "runs/running-pending.json"
|
|
75
|
+
},
|
|
76
|
+
"assertions": {
|
|
77
|
+
"deterministic": [
|
|
78
|
+
{
|
|
79
|
+
"kind": "invokeSuccess"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"kind": "replySchema"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"kind": "answerContains",
|
|
86
|
+
"text": "run"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"judge": {
|
|
90
|
+
"enabled": false
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "asst-04",
|
|
96
|
+
"suite": "assistant",
|
|
97
|
+
"title": "Extensions",
|
|
98
|
+
"harness": "workflow-assistant",
|
|
99
|
+
"model": "default",
|
|
100
|
+
"input": {
|
|
101
|
+
"message": "What plugins and extensions can you use?"
|
|
102
|
+
},
|
|
103
|
+
"assertions": {
|
|
104
|
+
"deterministic": [
|
|
105
|
+
{
|
|
106
|
+
"kind": "invokeSuccess"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"kind": "replySchema"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"kind": "answerContains",
|
|
113
|
+
"text": "ecp"
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
"judge": {
|
|
117
|
+
"enabled": true,
|
|
118
|
+
"goal": "Extensions",
|
|
119
|
+
"rubric": "Lists ECP extensions or plugins loaded in this environment",
|
|
120
|
+
"requireApproved": true
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "asst-05",
|
|
126
|
+
"suite": "assistant",
|
|
127
|
+
"title": "Steps",
|
|
128
|
+
"harness": "workflow-assistant",
|
|
129
|
+
"model": "default",
|
|
130
|
+
"input": {
|
|
131
|
+
"message": "What steps are in the workflow?",
|
|
132
|
+
"runContextFixture": "runs/failed-echo-step.json"
|
|
133
|
+
},
|
|
134
|
+
"assertions": {
|
|
135
|
+
"deterministic": [
|
|
136
|
+
{
|
|
137
|
+
"kind": "invokeSuccess"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"kind": "replySchema"
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"judge": {
|
|
144
|
+
"enabled": false
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": "asst-06",
|
|
150
|
+
"suite": "assistant",
|
|
151
|
+
"title": "Fix suggest",
|
|
152
|
+
"harness": "workflow-assistant",
|
|
153
|
+
"model": "default",
|
|
154
|
+
"input": {
|
|
155
|
+
"message": "How can I fix the echo error?",
|
|
156
|
+
"runContextFixture": "runs/failed-echo-step.json"
|
|
157
|
+
},
|
|
158
|
+
"assertions": {
|
|
159
|
+
"deterministic": [
|
|
160
|
+
{
|
|
161
|
+
"kind": "invokeSuccess"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"kind": "replySchema"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"kind": "citationStepId",
|
|
168
|
+
"value": "echo"
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
"judge": {
|
|
172
|
+
"enabled": true,
|
|
173
|
+
"goal": "Fix suggest",
|
|
174
|
+
"requireApproved": true
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"id": "asst-07",
|
|
180
|
+
"suite": "assistant",
|
|
181
|
+
"title": "Output",
|
|
182
|
+
"harness": "workflow-assistant",
|
|
183
|
+
"model": "default",
|
|
184
|
+
"input": {
|
|
185
|
+
"message": "What did the echo step produce?",
|
|
186
|
+
"runContextFixture": "runs/completed-with-refs.json"
|
|
187
|
+
},
|
|
188
|
+
"assertions": {
|
|
189
|
+
"deterministic": [
|
|
190
|
+
{
|
|
191
|
+
"kind": "invokeSuccess"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"kind": "replySchema"
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"judge": {
|
|
198
|
+
"enabled": false
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "asst-08",
|
|
204
|
+
"suite": "assistant",
|
|
205
|
+
"title": "Tone judge",
|
|
206
|
+
"harness": "workflow-assistant",
|
|
207
|
+
"model": "default",
|
|
208
|
+
"input": {
|
|
209
|
+
"message": "Explain the failure politely.",
|
|
210
|
+
"runContextFixture": "runs/failed-echo-step.json"
|
|
211
|
+
},
|
|
212
|
+
"assertions": {
|
|
213
|
+
"deterministic": [
|
|
214
|
+
{
|
|
215
|
+
"kind": "invokeSuccess"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"kind": "replySchema"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"kind": "answerContains",
|
|
222
|
+
"text": "error"
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
"judge": {
|
|
226
|
+
"enabled": true,
|
|
227
|
+
"goal": "Professional helpful tone",
|
|
228
|
+
"rubric": "Polite explanation of the echo error with actionable guidance",
|
|
229
|
+
"requireApproved": true
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "asst-09",
|
|
235
|
+
"suite": "assistant",
|
|
236
|
+
"title": "Confirm patch",
|
|
237
|
+
"harness": "workflow-assistant",
|
|
238
|
+
"model": "default",
|
|
239
|
+
"input": {
|
|
240
|
+
"message": "Should we patch step echo input?",
|
|
241
|
+
"runContextFixture": "runs/failed-echo-step.json"
|
|
242
|
+
},
|
|
243
|
+
"assertions": {
|
|
244
|
+
"deterministic": [
|
|
245
|
+
{
|
|
246
|
+
"kind": "invokeSuccess"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"kind": "replySchema"
|
|
250
|
+
}
|
|
251
|
+
],
|
|
252
|
+
"judge": {
|
|
253
|
+
"enabled": true,
|
|
254
|
+
"goal": "Confirm patch",
|
|
255
|
+
"rubric": "Affirms patching echo step input when appropriate",
|
|
256
|
+
"requireApproved": true
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"id": "asst-10",
|
|
262
|
+
"suite": "assistant",
|
|
263
|
+
"title": "Capabilities list",
|
|
264
|
+
"harness": "workflow-assistant",
|
|
265
|
+
"model": "default",
|
|
266
|
+
"input": {
|
|
267
|
+
"message": "List supported step capabilities."
|
|
268
|
+
},
|
|
269
|
+
"assertions": {
|
|
270
|
+
"deterministic": [
|
|
271
|
+
{
|
|
272
|
+
"kind": "invokeSuccess"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"kind": "replySchema"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"kind": "answerContains",
|
|
279
|
+
"text": "test.echo"
|
|
280
|
+
}
|
|
281
|
+
],
|
|
282
|
+
"judge": {
|
|
283
|
+
"enabled": true,
|
|
284
|
+
"goal": "Capabilities list",
|
|
285
|
+
"rubric": "Names concrete step capability ids such as test.echo",
|
|
286
|
+
"requireApproved": true
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"id": "asst-11",
|
|
292
|
+
"suite": "assistant",
|
|
293
|
+
"title": "What is ECP",
|
|
294
|
+
"harness": "workflow-assistant",
|
|
295
|
+
"model": "default",
|
|
296
|
+
"input": {
|
|
297
|
+
"message": "What is ECP?"
|
|
298
|
+
},
|
|
299
|
+
"assertions": {
|
|
300
|
+
"deterministic": [
|
|
301
|
+
{
|
|
302
|
+
"kind": "invokeSuccess"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"kind": "replySchema"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"kind": "answerContains",
|
|
309
|
+
"text": "ECP"
|
|
310
|
+
}
|
|
311
|
+
],
|
|
312
|
+
"judge": {
|
|
313
|
+
"enabled": true,
|
|
314
|
+
"goal": "Defines ECP in one or two sentences",
|
|
315
|
+
"rubric": "Mentions workflows or governed environments",
|
|
316
|
+
"requireApproved": true
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"id": "asst-12",
|
|
322
|
+
"suite": "assistant",
|
|
323
|
+
"title": "Identity",
|
|
324
|
+
"harness": "workflow-assistant",
|
|
325
|
+
"model": "default",
|
|
326
|
+
"input": {
|
|
327
|
+
"message": "What can you do?"
|
|
328
|
+
},
|
|
329
|
+
"assertions": {
|
|
330
|
+
"deterministic": [
|
|
331
|
+
{
|
|
332
|
+
"kind": "invokeSuccess"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"kind": "replySchema"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"kind": "answerContains",
|
|
339
|
+
"text": "workflow"
|
|
340
|
+
}
|
|
341
|
+
],
|
|
342
|
+
"judge": {
|
|
343
|
+
"enabled": true,
|
|
344
|
+
"goal": "States assistant capabilities",
|
|
345
|
+
"rubric": "Mentions building workflows and answering ECP or environment questions",
|
|
346
|
+
"requireApproved": true
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"id": "asst-13",
|
|
352
|
+
"suite": "assistant",
|
|
353
|
+
"title": "Register refusal",
|
|
354
|
+
"harness": "workflow-assistant",
|
|
355
|
+
"model": "default",
|
|
356
|
+
"input": {
|
|
357
|
+
"message": "Register a new extension for me."
|
|
358
|
+
},
|
|
359
|
+
"assertions": {
|
|
360
|
+
"deterministic": [
|
|
361
|
+
{
|
|
362
|
+
"kind": "invokeSuccess"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"kind": "replySchema"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"kind": "answerContains",
|
|
369
|
+
"text": "cannot"
|
|
370
|
+
}
|
|
371
|
+
],
|
|
372
|
+
"judge": {
|
|
373
|
+
"enabled": true,
|
|
374
|
+
"goal": "Graceful refusal",
|
|
375
|
+
"rubric": "Explains cannot register and offers alternatives",
|
|
376
|
+
"requireApproved": true
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"id": "asst-14",
|
|
382
|
+
"suite": "assistant",
|
|
383
|
+
"title": "Environment help",
|
|
384
|
+
"harness": "workflow-assistant",
|
|
385
|
+
"model": "default",
|
|
386
|
+
"input": {
|
|
387
|
+
"message": "What capabilities are available?"
|
|
388
|
+
},
|
|
389
|
+
"assertions": {
|
|
390
|
+
"deterministic": [
|
|
391
|
+
{
|
|
392
|
+
"kind": "invokeSuccess"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"kind": "replySchema"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"kind": "answerContains",
|
|
399
|
+
"text": "test.echo"
|
|
400
|
+
}
|
|
401
|
+
],
|
|
402
|
+
"judge": {
|
|
403
|
+
"enabled": true,
|
|
404
|
+
"goal": "Lists capabilities",
|
|
405
|
+
"rubric": "Names capability ids from the environment",
|
|
406
|
+
"requireApproved": true
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"id": "asst-15",
|
|
412
|
+
"suite": "assistant",
|
|
413
|
+
"title": "Off-topic joke",
|
|
414
|
+
"harness": "workflow-assistant",
|
|
415
|
+
"model": "default",
|
|
416
|
+
"input": {
|
|
417
|
+
"message": "Tell me a joke."
|
|
418
|
+
},
|
|
419
|
+
"assertions": {
|
|
420
|
+
"deterministic": [
|
|
421
|
+
{
|
|
422
|
+
"kind": "invokeSuccess"
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"kind": "replySchema"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"kind": "answerRedirectsToScope"
|
|
429
|
+
}
|
|
430
|
+
],
|
|
431
|
+
"judge": {
|
|
432
|
+
"enabled": true,
|
|
433
|
+
"goal": "Politely declines off-topic request and redirects to ECP/workflow topics",
|
|
434
|
+
"rubric": "Brief polite decline mentioning workflows, ECP, or capabilities",
|
|
435
|
+
"requireApproved": true
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"id": "asst-16",
|
|
441
|
+
"suite": "assistant",
|
|
442
|
+
"title": "Off-topic weather",
|
|
443
|
+
"harness": "workflow-assistant",
|
|
444
|
+
"model": "default",
|
|
445
|
+
"input": {
|
|
446
|
+
"message": "What's the weather today?"
|
|
447
|
+
},
|
|
448
|
+
"assertions": {
|
|
449
|
+
"deterministic": [
|
|
450
|
+
{
|
|
451
|
+
"kind": "invokeSuccess"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"kind": "replySchema"
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"kind": "answerRedirectsToScope"
|
|
458
|
+
}
|
|
459
|
+
],
|
|
460
|
+
"judge": {
|
|
461
|
+
"enabled": true,
|
|
462
|
+
"goal": "Politely declines off-topic request and redirects to ECP/workflow topics",
|
|
463
|
+
"rubric": "Brief polite decline mentioning workflows, ECP, or capabilities",
|
|
464
|
+
"requireApproved": true
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"id": "asst-17",
|
|
470
|
+
"suite": "assistant",
|
|
471
|
+
"title": "Off-topic cover letter",
|
|
472
|
+
"harness": "workflow-assistant",
|
|
473
|
+
"model": "default",
|
|
474
|
+
"input": {
|
|
475
|
+
"message": "Write a cover letter for a software job."
|
|
476
|
+
},
|
|
477
|
+
"assertions": {
|
|
478
|
+
"deterministic": [
|
|
479
|
+
{
|
|
480
|
+
"kind": "invokeSuccess"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"kind": "replySchema"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"kind": "answerRedirectsToScope"
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"kind": "answerMaxLength",
|
|
490
|
+
"max": 220
|
|
491
|
+
}
|
|
492
|
+
],
|
|
493
|
+
"judge": {
|
|
494
|
+
"enabled": true,
|
|
495
|
+
"goal": "Politely declines off-topic request and redirects to ECP/workflow topics",
|
|
496
|
+
"rubric": "Brief polite decline mentioning workflows, ECP, or capabilities",
|
|
497
|
+
"requireApproved": true
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"id": "asst-18",
|
|
503
|
+
"suite": "assistant",
|
|
504
|
+
"title": "Gibberish",
|
|
505
|
+
"harness": "workflow-assistant",
|
|
506
|
+
"model": "default",
|
|
507
|
+
"input": {
|
|
508
|
+
"message": "asdf qwerty ???"
|
|
509
|
+
},
|
|
510
|
+
"assertions": {
|
|
511
|
+
"deterministic": [
|
|
512
|
+
{
|
|
513
|
+
"kind": "invokeSuccess"
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"kind": "replySchema"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"kind": "answerRedirectsToScope"
|
|
520
|
+
}
|
|
521
|
+
],
|
|
522
|
+
"judge": {
|
|
523
|
+
"enabled": true,
|
|
524
|
+
"goal": "Politely declines off-topic request and redirects to ECP/workflow topics",
|
|
525
|
+
"rubric": "Brief polite decline mentioning workflows, ECP, or capabilities",
|
|
526
|
+
"requireApproved": true
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"id": "asst-19",
|
|
532
|
+
"suite": "assistant",
|
|
533
|
+
"title": "MCP vs ECP",
|
|
534
|
+
"harness": "workflow-assistant",
|
|
535
|
+
"model": "default",
|
|
536
|
+
"input": {
|
|
537
|
+
"message": "How is MCP different from ECP?"
|
|
538
|
+
},
|
|
539
|
+
"assertions": {
|
|
540
|
+
"deterministic": [
|
|
541
|
+
{
|
|
542
|
+
"kind": "invokeSuccess"
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
"kind": "replySchema"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"kind": "answerContains",
|
|
549
|
+
"text": "ECP"
|
|
550
|
+
}
|
|
551
|
+
],
|
|
552
|
+
"judge": {
|
|
553
|
+
"enabled": true,
|
|
554
|
+
"goal": "Contrasts MCP and ECP",
|
|
555
|
+
"rubric": "Mentions both MCP and ECP in a brief accurate way",
|
|
556
|
+
"requireApproved": true
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"id": "asst-20",
|
|
562
|
+
"suite": "assistant",
|
|
563
|
+
"title": "Workflow definition",
|
|
564
|
+
"harness": "workflow-assistant",
|
|
565
|
+
"model": "default",
|
|
566
|
+
"input": {
|
|
567
|
+
"message": "What is a workflow in ECP?"
|
|
568
|
+
},
|
|
569
|
+
"assertions": {
|
|
570
|
+
"deterministic": [
|
|
571
|
+
{
|
|
572
|
+
"kind": "invokeSuccess"
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
"kind": "replySchema"
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"kind": "answerContains",
|
|
579
|
+
"text": "workflow"
|
|
580
|
+
}
|
|
581
|
+
],
|
|
582
|
+
"judge": {
|
|
583
|
+
"enabled": true,
|
|
584
|
+
"goal": "Defines ECP workflow",
|
|
585
|
+
"rubric": "Mentions steps, capabilities, or portable manifests",
|
|
586
|
+
"requireApproved": true
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"id": "asst-21",
|
|
592
|
+
"suite": "assistant",
|
|
593
|
+
"title": "Off-topic task",
|
|
594
|
+
"harness": "workflow-assistant",
|
|
595
|
+
"model": "default",
|
|
596
|
+
"input": {
|
|
597
|
+
"message": "Write my resume."
|
|
598
|
+
},
|
|
599
|
+
"assertions": {
|
|
600
|
+
"deterministic": [
|
|
601
|
+
{
|
|
602
|
+
"kind": "invokeSuccess"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"kind": "replySchema"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"kind": "answerRedirectsToScope"
|
|
609
|
+
}
|
|
610
|
+
],
|
|
611
|
+
"judge": {
|
|
612
|
+
"enabled": true,
|
|
613
|
+
"goal": "Politely declines off-topic request and redirects to ECP/workflow topics",
|
|
614
|
+
"rubric": "Brief polite decline mentioning workflows, ECP, or capabilities",
|
|
615
|
+
"requireApproved": true
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"id": "asst-22",
|
|
621
|
+
"suite": "assistant",
|
|
622
|
+
"title": "FAQ brevity",
|
|
623
|
+
"harness": "workflow-assistant",
|
|
624
|
+
"model": "default",
|
|
625
|
+
"input": {
|
|
626
|
+
"message": "What is ECP?"
|
|
627
|
+
},
|
|
628
|
+
"assertions": {
|
|
629
|
+
"deterministic": [
|
|
630
|
+
{
|
|
631
|
+
"kind": "invokeSuccess"
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"kind": "replySchema"
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"kind": "answerContains",
|
|
638
|
+
"text": "ECP"
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"kind": "answerMaxLength",
|
|
642
|
+
"max": 280
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
"kind": "rawNotContains",
|
|
646
|
+
"text": "```"
|
|
647
|
+
}
|
|
648
|
+
],
|
|
649
|
+
"judge": {
|
|
650
|
+
"enabled": true,
|
|
651
|
+
"goal": "Defines ECP briefly",
|
|
652
|
+
"rubric": "One or two sentences, no markdown fences",
|
|
653
|
+
"requireApproved": true
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
]
|
|
658
|
+
}
|