@executioncontrolprotocol/harnesses-browser-nano 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.
Files changed (87) hide show
  1. package/README.md +42 -0
  2. package/dist/_internal/request-capability-hints.d.ts +49 -0
  3. package/dist/_internal/request-capability-hints.d.ts.map +1 -0
  4. package/dist/_internal/request-capability-hints.js +488 -0
  5. package/dist/_internal/request-capability-hints.js.map +1 -0
  6. package/dist/browser-nano-harness.d.ts +71 -0
  7. package/dist/browser-nano-harness.d.ts.map +1 -0
  8. package/dist/browser-nano-harness.js +90 -0
  9. package/dist/browser-nano-harness.js.map +1 -0
  10. package/dist/harness-ids.d.ts +6 -0
  11. package/dist/harness-ids.d.ts.map +1 -0
  12. package/dist/harness-ids.js +6 -0
  13. package/dist/harness-ids.js.map +1 -0
  14. package/dist/harness-nano-config.d.ts +53 -0
  15. package/dist/harness-nano-config.d.ts.map +1 -0
  16. package/dist/harness-nano-config.js +94 -0
  17. package/dist/harness-nano-config.js.map +1 -0
  18. package/dist/index.d.ts +13 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +12 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/intent-classification.d.ts +10 -0
  23. package/dist/intent-classification.d.ts.map +1 -0
  24. package/dist/intent-classification.js +177 -0
  25. package/dist/intent-classification.js.map +1 -0
  26. package/dist/multi-shot-chat.d.ts +20 -0
  27. package/dist/multi-shot-chat.d.ts.map +1 -0
  28. package/dist/multi-shot-chat.js +136 -0
  29. package/dist/multi-shot-chat.js.map +1 -0
  30. package/dist/prompts/build-nano-prompt.d.ts +11 -0
  31. package/dist/prompts/build-nano-prompt.d.ts.map +1 -0
  32. package/dist/prompts/build-nano-prompt.js +17 -0
  33. package/dist/prompts/build-nano-prompt.js.map +1 -0
  34. package/dist/prompts/fixtures-root.d.ts +5 -0
  35. package/dist/prompts/fixtures-root.d.ts.map +1 -0
  36. package/dist/prompts/fixtures-root.js +7 -0
  37. package/dist/prompts/fixtures-root.js.map +1 -0
  38. package/dist/prompts/index.d.ts +4 -0
  39. package/dist/prompts/index.d.ts.map +1 -0
  40. package/dist/prompts/index.js +4 -0
  41. package/dist/prompts/index.js.map +1 -0
  42. package/dist/prompts/load-harness-prompt.browser.d.ts +4 -0
  43. package/dist/prompts/load-harness-prompt.browser.d.ts.map +1 -0
  44. package/dist/prompts/load-harness-prompt.browser.js +32 -0
  45. package/dist/prompts/load-harness-prompt.browser.js.map +1 -0
  46. package/dist/prompts/load-harness-prompt.d.ts +2 -0
  47. package/dist/prompts/load-harness-prompt.d.ts.map +1 -0
  48. package/dist/prompts/load-harness-prompt.js +2 -0
  49. package/dist/prompts/load-harness-prompt.js.map +1 -0
  50. package/dist/prompts/load-harness-prompt.node.d.ts +4 -0
  51. package/dist/prompts/load-harness-prompt.node.d.ts.map +1 -0
  52. package/dist/prompts/load-harness-prompt.node.js +20 -0
  53. package/dist/prompts/load-harness-prompt.node.js.map +1 -0
  54. package/dist/prompts/nano-prompt-fixture-ids.d.ts +10 -0
  55. package/dist/prompts/nano-prompt-fixture-ids.d.ts.map +1 -0
  56. package/dist/prompts/nano-prompt-fixture-ids.js +8 -0
  57. package/dist/prompts/nano-prompt-fixture-ids.js.map +1 -0
  58. package/dist/register.d.ts +5 -0
  59. package/dist/register.d.ts.map +1 -0
  60. package/dist/register.js +14 -0
  61. package/dist/register.js.map +1 -0
  62. package/dist/workflow-assistant.d.ts +19 -0
  63. package/dist/workflow-assistant.d.ts.map +1 -0
  64. package/dist/workflow-assistant.js +275 -0
  65. package/dist/workflow-assistant.js.map +1 -0
  66. package/dist/workflow-authoring.d.ts +13 -0
  67. package/dist/workflow-authoring.d.ts.map +1 -0
  68. package/dist/workflow-authoring.js +426 -0
  69. package/dist/workflow-authoring.js.map +1 -0
  70. package/fixtures/eval-cases/assistant.cases.json +658 -0
  71. package/fixtures/eval-cases/chat.cases.json +320 -0
  72. package/fixtures/eval-cases/flow.cases.json +505 -0
  73. package/fixtures/eval-cases/intent.cases.json +587 -0
  74. package/fixtures/eval-cases/workflow-create.cases.json +493 -0
  75. package/fixtures/eval-cases/workflow-patch.cases.json +379 -0
  76. package/fixtures/harness-prompts/intent-classification.prompt.json +72 -0
  77. package/fixtures/harness-prompts/workflow-assistant.prompt.json +86 -0
  78. package/fixtures/harness-prompts/workflow-authoring-create.prompt.json +50 -0
  79. package/fixtures/harness-prompts/workflow-authoring-patch.prompt.json +54 -0
  80. package/fixtures/runs/completed-with-refs.json +18 -0
  81. package/fixtures/runs/failed-echo-step.json +29 -0
  82. package/fixtures/runs/running-pending.json +14 -0
  83. package/fixtures/workflows/echo-validate-reorder.json +26 -0
  84. package/fixtures/workflows/echo-workflow.json +20 -0
  85. package/fixtures/workflows/multi-cap-workflow.json +34 -0
  86. package/fixtures/workflows/two-step-chain.json +26 -0
  87. package/package.json +49 -0
@@ -0,0 +1,275 @@
1
+ import { buildAssistantSafeReply, tryBuildRunContextReply, tryBuildFaqReply, tryBuildEnvironmentReply, tryBuildRegisterRefusalReply, tryBuildOffTopicReply, callModelGenerate, collectDecodeFeedback, collectModelOutputFeedback, collectValidationFeedback, defineHarness, inferResponseFormatFromFormatter, isEnvironmentQuestion, isRepairFeedbackEcho, runModelRepairLoop, stripMarkdownCodeFences, buildContextBundle, formatClassifiedIntentBlock, formatFeedbackForModel, formatModelRepairDialogLines, summarizeEnvironmentDescriptor, } from "@executioncontrolprotocol/core";
2
+ import { ECP_CORE_FORMATTER_IDS, ECP_HARNESS_REPLY_SCHEMA, ECP_MODEL_GENERATE_INTERFACE, ecpIntentSchema, harnessEvaluateOutputSchema, harnessRunContextSchema, LATEST_ECP_VERSION, } from "@executioncontrolprotocol/types";
3
+ import { z } from "zod";
4
+ import { BROWSER_NANO_HARNESS_ID } from "./harness-ids.js";
5
+ import { buildNanoRepairHint, buildNanoSystemPrompt } from "./prompts/index.js";
6
+ const harnessConfigSchema = z.object({
7
+ promptFixture: z.string().default("workflow-assistant"),
8
+ system: z.string().optional(),
9
+ context: z
10
+ .object({
11
+ promptPhase: z.enum(["unfiltered", "contextualized"]).default("contextualized"),
12
+ includeEnvironmentDescriptor: z.boolean().default(true),
13
+ includeEncodedDescriptor: z.boolean().default(false),
14
+ descriptorFormat: z.string().default("@executioncontrolprotocol/format-eql"),
15
+ includeRunContext: z.boolean().default(true),
16
+ runContextFormat: z.string().default(ECP_CORE_FORMATTER_IDS.JSON),
17
+ })
18
+ .default({}),
19
+ output: z
20
+ .object({
21
+ schema: z.string().default(ECP_HARNESS_REPLY_SCHEMA),
22
+ format: z.string().default("@executioncontrolprotocol/format-eql"),
23
+ validate: z.boolean().default(true),
24
+ })
25
+ .default({}),
26
+ repair: z
27
+ .object({
28
+ enabled: z.boolean().default(true),
29
+ maxAttempts: z.number().default(1),
30
+ includeValidationErrors: z.boolean().default(true),
31
+ safeReplyFallback: z.boolean().default(true),
32
+ includePriorOutput: z.boolean().default(false),
33
+ priorOutputMaxChars: z.number().optional(),
34
+ })
35
+ .default({}),
36
+ trace: z
37
+ .object({
38
+ includePrompt: z.boolean().default(false),
39
+ includeRawOutput: z.boolean().default(true),
40
+ includeValidation: z.boolean().default(true),
41
+ includeRepairAttempts: z.boolean().default(true),
42
+ })
43
+ .default({}),
44
+ });
45
+ const harnessInputSchema = z.object({
46
+ message: z.string(),
47
+ model: z.string().optional(),
48
+ runContext: harnessRunContextSchema.optional(),
49
+ workflow: z.record(z.string(), z.unknown()).optional(),
50
+ classifiedIntent: ecpIntentSchema.optional(),
51
+ conversationSummary: z.string().optional(),
52
+ });
53
+ function formatReplyAsEql(reply) {
54
+ const lines = ["REPLY", ` ANSWER "${reply.answer.replace(/"/g, '\\"')}"`];
55
+ for (const c of reply.citations ?? []) {
56
+ const idPart = c.id ? ` ${c.id}` : "";
57
+ const detailPart = c.detail ? ` "${c.detail.replace(/"/g, '\\"')}"` : "";
58
+ lines.push(` CITATION ${c.kind}${idPart}${detailPart}`);
59
+ }
60
+ return lines.join("\n");
61
+ }
62
+ /**
63
+ * Unified ECP assistant harness (workflow Q&A, FAQ, environment help).
64
+ * @category Harness
65
+ */
66
+ export const evalsWorkflowAssistantHarness = defineHarness("@executioncontrolprotocol", "evals-workflow-assistant")
67
+ .withConfig(harnessConfigSchema)
68
+ .withInput(harnessInputSchema)
69
+ .withOutput(harnessEvaluateOutputSchema)
70
+ .usesProviderInterface(ECP_MODEL_GENERATE_INTERFACE)
71
+ .withHandler(async (input, ctx) => {
72
+ const config = ctx.config;
73
+ const format = config.output.format;
74
+ const outputIsEql = format === "@executioncontrolprotocol/format-eql" || format.endsWith("/format-eql");
75
+ const descriptorFormat = config.context.descriptorFormat ?? format;
76
+ const promptFixtureId = config.promptFixture;
77
+ const promptPhase = config.context.promptPhase;
78
+ const system = config.system ?? buildNanoSystemPrompt(promptFixtureId);
79
+ const envQuestion = isEnvironmentQuestion(input.message);
80
+ const workflowManifest = input.workflow;
81
+ const capabilitiesQuestion = isEnvironmentQuestion(input.message) &&
82
+ /\b(capabilit|extensions?|plugins?)\b/i.test(input.message) &&
83
+ !/^what can you do\??$/i.test(input.message.trim());
84
+ let environmentSummary;
85
+ if (capabilitiesQuestion && ctx.ecp) {
86
+ environmentSummary = summarizeEnvironmentDescriptor(await ctx.ecp.describe());
87
+ }
88
+ const contextBundle = await buildContextBundle(ctx.ecp, {
89
+ phase: promptPhase,
90
+ message: input.message,
91
+ intent: input.classifiedIntent?.intent,
92
+ manifest: workflowManifest,
93
+ runContext: config.context.includeRunContext && input.runContext
94
+ ? input.runContext
95
+ : undefined,
96
+ conversationSummary: input.conversationSummary,
97
+ includeEnvironmentDescriptor: config.context.includeEnvironmentDescriptor,
98
+ includeEncodedDescriptor: config.context.includeEncodedDescriptor || envQuestion,
99
+ descriptorFormat,
100
+ outputIsEql,
101
+ });
102
+ const buildPrompt = (repairDialogLines = []) => {
103
+ const lines = [];
104
+ if (input.classifiedIntent) {
105
+ lines.push(...formatClassifiedIntentBlock(input.classifiedIntent), "");
106
+ }
107
+ const capabilitiesQuestion = isEnvironmentQuestion(input.message) &&
108
+ /\b(capabilit|extensions?|plugins?)\b/i.test(input.message) &&
109
+ !/^what can you do\??$/i.test(input.message.trim());
110
+ if (capabilitiesQuestion) {
111
+ lines.push("Required reply: mention ECP and list step capability ids from the environment summary (must include @executioncontrolprotocol/test.echo).");
112
+ }
113
+ lines.push(...contextBundle.lines);
114
+ if (input.runContext &&
115
+ /what (?:is the )?run status/i.test(input.message)) {
116
+ lines.push("Required reply: state the run status from the Run context lines above (e.g. failed, running, completed).");
117
+ }
118
+ lines.push(`User message: ${input.message}`);
119
+ if (repairDialogLines.length > 0) {
120
+ lines.push(...repairDialogLines);
121
+ }
122
+ return lines.join("\n");
123
+ };
124
+ const maxAttempts = config.repair.enabled ? 1 + config.repair.maxAttempts : 1;
125
+ let lastPrompt = buildPrompt();
126
+ let validation = decodedValidationStub();
127
+ let lastRaw = "";
128
+ const deterministicReply = tryBuildRunContextReply(input.message, config.context.includeRunContext && input.runContext
129
+ ? input.runContext
130
+ : undefined) ??
131
+ tryBuildFaqReply(input.message, input.classifiedIntent) ??
132
+ tryBuildRegisterRefusalReply(input.message) ??
133
+ tryBuildOffTopicReply(input.message) ??
134
+ tryBuildEnvironmentReply(input.message, environmentSummary);
135
+ if (deterministicReply) {
136
+ const deterministicRaw = formatReplyAsEql(deterministicReply);
137
+ const trace = {
138
+ harness: BROWSER_NANO_HARNESS_ID,
139
+ provider: ctx.uses,
140
+ model: input.model,
141
+ outputSchema: config.output.schema,
142
+ outputFormat: format,
143
+ decodeSucceeded: true,
144
+ validationSucceeded: true,
145
+ promptPhase,
146
+ ...(config.trace.includePrompt ? { prompt: "[deterministic run-context reply]" } : {}),
147
+ ...(config.trace.includeRawOutput ? { rawOutput: deterministicRaw } : {}),
148
+ };
149
+ return {
150
+ artifact: deterministicReply,
151
+ raw: deterministicRaw,
152
+ ...(config.trace.includeValidation ? { validation: decodedValidationStub(true) } : {}),
153
+ trace,
154
+ };
155
+ }
156
+ try {
157
+ const loopResult = await runModelRepairLoop({
158
+ maxAttempts,
159
+ generate: async ({ attempt, priorFeedback, priorRaw }) => {
160
+ const repairFeedback = attempt > 0 && config.repair.includeValidationErrors
161
+ ? formatFeedbackForModel(priorFeedback)
162
+ : undefined;
163
+ const outputLabel = outputIsEql ? "EQL" : "JSON";
164
+ const repairDialogLines = attempt > 0 && repairFeedback
165
+ ? formatModelRepairDialogLines({
166
+ includePriorOutput: config.repair.includePriorOutput,
167
+ priorOutputMaxChars: config.repair.priorOutputMaxChars,
168
+ priorRaw,
169
+ repairFeedback,
170
+ repairHint: buildNanoRepairHint(promptFixtureId),
171
+ repairLead: `Previous attempt failed. Fix these issues and return corrected ${outputLabel} only:`,
172
+ })
173
+ : [];
174
+ lastPrompt = buildPrompt(repairDialogLines);
175
+ const generated = await callModelGenerate(ctx.uses, {
176
+ prompt: lastPrompt,
177
+ system,
178
+ model: input.model,
179
+ responseFormat: inferResponseFormatFromFormatter(format),
180
+ }, ctx.capabilityContext, format);
181
+ lastRaw = stripMarkdownCodeFences(generated.text);
182
+ return { raw: lastRaw };
183
+ },
184
+ evaluate: async (raw, { attempt, priorFeedback }) => {
185
+ const feedback = [];
186
+ if (attempt > 0 &&
187
+ config.repair.includeValidationErrors &&
188
+ isRepairFeedbackEcho(raw, formatFeedbackForModel(priorFeedback))) {
189
+ return {
190
+ success: false,
191
+ feedback: [
192
+ collectModelOutputFeedback("Output echoed validation errors instead of a document. Return only a valid harness reply."),
193
+ ],
194
+ };
195
+ }
196
+ const decoded = await ctx.ecp
197
+ .decode(raw)
198
+ .uses(format)
199
+ .to(ECP_HARNESS_REPLY_SCHEMA)
200
+ .with({ headers: false })
201
+ .process();
202
+ validation = decoded.validation ?? decodedValidationStub(!decoded.success);
203
+ feedback.push(collectDecodeFeedback(decoded));
204
+ if (!decoded.success || !decoded.result) {
205
+ return { success: false, feedback };
206
+ }
207
+ if (config.output.validate && validation.valid === false) {
208
+ feedback.push(collectValidationFeedback(validation));
209
+ return { success: false, feedback };
210
+ }
211
+ return { success: true, artifact: decoded.result, feedback };
212
+ },
213
+ });
214
+ const trace = {
215
+ harness: BROWSER_NANO_HARNESS_ID,
216
+ provider: ctx.uses,
217
+ model: input.model,
218
+ outputSchema: config.output.schema,
219
+ outputFormat: format,
220
+ decodeSucceeded: true,
221
+ validationSucceeded: validation.valid,
222
+ promptPhase,
223
+ ...(config.trace.includePrompt ? { prompt: lastPrompt } : {}),
224
+ ...(config.trace.includeRawOutput ? { rawOutput: loopResult.raw } : {}),
225
+ ...(config.trace.includeRepairAttempts ? { repairAttempts: loopResult.attempts } : {}),
226
+ };
227
+ return {
228
+ artifact: loopResult.artifact,
229
+ raw: loopResult.raw,
230
+ ...(config.trace.includeValidation ? { validation } : {}),
231
+ trace,
232
+ };
233
+ }
234
+ catch (err) {
235
+ if (!config.repair.safeReplyFallback) {
236
+ throw err;
237
+ }
238
+ const fallbackReply = buildAssistantSafeReply();
239
+ const safeRaw = formatReplyAsEql(fallbackReply);
240
+ const trace = {
241
+ harness: BROWSER_NANO_HARNESS_ID,
242
+ provider: ctx.uses,
243
+ model: input.model,
244
+ outputSchema: config.output.schema,
245
+ outputFormat: format,
246
+ decodeSucceeded: false,
247
+ validationSucceeded: false,
248
+ ...(config.trace.includePrompt ? { prompt: lastPrompt } : {}),
249
+ ...(config.trace.includeRawOutput ? { rawOutput: lastRaw || safeRaw } : {}),
250
+ };
251
+ return {
252
+ artifact: fallbackReply,
253
+ raw: lastRaw || safeRaw,
254
+ validation: decodedValidationStub(false),
255
+ trace,
256
+ };
257
+ }
258
+ })
259
+ .build();
260
+ function decodedValidationStub(valid = true) {
261
+ return {
262
+ schema: "@executioncontrolprotocol.validation.result",
263
+ version: LATEST_ECP_VERSION,
264
+ valid,
265
+ errors: [],
266
+ warnings: [],
267
+ };
268
+ }
269
+ /** Assistant task handler (invoked by `@executioncontrolprotocol/harness-browser-nano`). @category Harness */
270
+ export async function invokeWorkflowAssistant(input, ctx) {
271
+ return evalsWorkflowAssistantHarness.handler(input, ctx);
272
+ }
273
+ /** @deprecated Use {@link invokeWorkflowAssistant} */
274
+ export const invokeEvalWorkflowAssistant = invokeWorkflowAssistant;
275
+ //# sourceMappingURL=workflow-assistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-assistant.js","sourceRoot":"","sources":["../src/workflow-assistant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type HarnessCapabilityContext } from "@executioncontrolprotocol/core";
2
+ import { type EcpIntent, type HarnessEvaluateOutput } from "@executioncontrolprotocol/types";
3
+ /** Workflow authoring task handler (invoked by unified `@executioncontrolprotocol/harness-evals`). @category Evals */
4
+ export declare function invokeWorkflowAuthoring(input: {
5
+ request: string;
6
+ manifest?: unknown;
7
+ model?: string;
8
+ classifiedIntent?: EcpIntent;
9
+ conversationSummary?: string;
10
+ }, ctx: HarnessCapabilityContext<Record<string, unknown>>): Promise<HarnessEvaluateOutput>;
11
+ /** @deprecated Use {@link invokeWorkflowAuthoring} */
12
+ export declare const invokeEvalWorkflowAuthoring: typeof invokeWorkflowAuthoring;
13
+ //# sourceMappingURL=workflow-authoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-authoring.d.ts","sourceRoot":"","sources":["../src/workflow-authoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,wBAAwB,EA6B9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAK3B,MAAM,iCAAiC,CAAA;AA2jBxC,sHAAsH;AACtH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,EACD,GAAG,EAAE,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACrD,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,gCAA0B,CAAA"}