@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,71 @@
1
+ import { z } from "zod";
2
+ declare const harnessInputSchema: z.ZodDiscriminatedUnion<"task", [z.ZodObject<{
3
+ task: z.ZodLiteral<"intent-classification">;
4
+ message: z.ZodString;
5
+ model: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ message: string;
8
+ task: "intent-classification";
9
+ model?: string | undefined;
10
+ }, {
11
+ message: string;
12
+ task: "intent-classification";
13
+ model?: string | undefined;
14
+ }>, z.ZodObject<{
15
+ task: z.ZodLiteral<"workflow-authoring">;
16
+ request: z.ZodString;
17
+ manifest: z.ZodOptional<z.ZodUnknown>;
18
+ model: z.ZodOptional<z.ZodString>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ request: string;
21
+ task: "workflow-authoring";
22
+ model?: string | undefined;
23
+ manifest?: unknown;
24
+ }, {
25
+ request: string;
26
+ task: "workflow-authoring";
27
+ model?: string | undefined;
28
+ manifest?: unknown;
29
+ }>, z.ZodObject<{
30
+ task: z.ZodLiteral<"workflow-assistant">;
31
+ message: z.ZodString;
32
+ runContext: z.ZodOptional<z.ZodUnknown>;
33
+ model: z.ZodOptional<z.ZodString>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ message: string;
36
+ task: "workflow-assistant";
37
+ model?: string | undefined;
38
+ runContext?: unknown;
39
+ }, {
40
+ message: string;
41
+ task: "workflow-assistant";
42
+ model?: string | undefined;
43
+ runContext?: unknown;
44
+ }>, z.ZodObject<{
45
+ task: z.ZodLiteral<"chat">;
46
+ message: z.ZodString;
47
+ manifest: z.ZodOptional<z.ZodUnknown>;
48
+ runContext: z.ZodOptional<z.ZodUnknown>;
49
+ conversationSummary: z.ZodOptional<z.ZodString>;
50
+ model: z.ZodOptional<z.ZodString>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ message: string;
53
+ task: "chat";
54
+ model?: string | undefined;
55
+ runContext?: unknown;
56
+ conversationSummary?: string | undefined;
57
+ manifest?: unknown;
58
+ }, {
59
+ message: string;
60
+ task: "chat";
61
+ model?: string | undefined;
62
+ runContext?: unknown;
63
+ conversationSummary?: string | undefined;
64
+ manifest?: unknown;
65
+ }>]>;
66
+ /** Input for {@link BROWSER_NANO_HARNESS_ID} evaluate. @category Harness */
67
+ export type BrowserNanoHarnessInput = z.infer<typeof harnessInputSchema>;
68
+ /** Register Browser Nano harness (`@executioncontrolprotocol/harness-browser-nano`). @category Harness */
69
+ export declare function registerBrowserNanoHarness(): void;
70
+ export {};
71
+ //# sourceMappingURL=browser-nano-harness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-nano-harness.d.ts","sourceRoot":"","sources":["../src/browser-nano-harness.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BtB,CAAA;AAEF,4EAA4E;AAC5E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAsExE,0GAA0G;AAC1G,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
@@ -0,0 +1,90 @@
1
+ import { catalogHarness, defineHarness, } from "@executioncontrolprotocol/core";
2
+ import { ECP_MODEL_GENERATE_INTERFACE, harnessEvaluateOutputSchema, } from "@executioncontrolprotocol/types";
3
+ import { z } from "zod";
4
+ import { getHarnessNanoConfig, HARNESS_TASKS } from "./harness-nano-config.js";
5
+ import { invokeIntentClassification } from "./intent-classification.js";
6
+ import { invokeMultiShotChat } from "./multi-shot-chat.js";
7
+ import { invokeWorkflowAssistant } from "./workflow-assistant.js";
8
+ import { invokeWorkflowAuthoring } from "./workflow-authoring.js";
9
+ const harnessInputSchema = z.discriminatedUnion("task", [
10
+ z.object({
11
+ task: z.literal(HARNESS_TASKS.INTENT_CLASSIFICATION),
12
+ message: z.string(),
13
+ model: z.string().optional(),
14
+ }),
15
+ z.object({
16
+ task: z.literal(HARNESS_TASKS.WORKFLOW_AUTHORING),
17
+ request: z.string(),
18
+ manifest: z.unknown().optional(),
19
+ model: z.string().optional(),
20
+ }),
21
+ z.object({
22
+ task: z.literal(HARNESS_TASKS.WORKFLOW_ASSISTANT),
23
+ message: z.string(),
24
+ runContext: z.unknown().optional(),
25
+ model: z.string().optional(),
26
+ }),
27
+ z.object({
28
+ task: z.literal(HARNESS_TASKS.CHAT),
29
+ message: z.string(),
30
+ manifest: z.unknown().optional(),
31
+ runContext: z.unknown().optional(),
32
+ conversationSummary: z.string().optional(),
33
+ model: z.string().optional(),
34
+ }),
35
+ ]);
36
+ const harnessBindingSchema = z
37
+ .object({
38
+ repair: z.record(z.string(), z.unknown()).optional(),
39
+ trace: z.record(z.string(), z.unknown()).optional(),
40
+ context: z.record(z.string(), z.unknown()).optional(),
41
+ })
42
+ .passthrough();
43
+ function handlerContextForTask(task, ctx) {
44
+ const taskConfig = getHarnessNanoConfig(task);
45
+ const envConfig = ctx.config;
46
+ return {
47
+ ...ctx,
48
+ config: {
49
+ ...taskConfig,
50
+ ...ctx.config,
51
+ repair: { ...envConfig.repair, ...taskConfig.repair },
52
+ trace: { ...envConfig.trace, ...taskConfig.trace },
53
+ context: { ...envConfig.context, ...taskConfig.context },
54
+ },
55
+ };
56
+ }
57
+ const browserNanoHarnessDefinition = defineHarness("@executioncontrolprotocol", "harness-browser-nano")
58
+ .withConfig(harnessBindingSchema)
59
+ .withInput(harnessInputSchema)
60
+ .withOutput(harnessEvaluateOutputSchema)
61
+ .usesProviderInterface(ECP_MODEL_GENERATE_INTERFACE)
62
+ .withHandler(async (input, ctx) => {
63
+ const taskCtx = handlerContextForTask(input.task, ctx);
64
+ switch (input.task) {
65
+ case HARNESS_TASKS.INTENT_CLASSIFICATION:
66
+ return invokeIntentClassification({ message: input.message, model: input.model }, taskCtx);
67
+ case HARNESS_TASKS.WORKFLOW_AUTHORING:
68
+ return invokeWorkflowAuthoring({ request: input.request, manifest: input.manifest, model: input.model }, taskCtx);
69
+ case HARNESS_TASKS.WORKFLOW_ASSISTANT:
70
+ return invokeWorkflowAssistant({ message: input.message, runContext: input.runContext, model: input.model }, taskCtx);
71
+ case HARNESS_TASKS.CHAT:
72
+ return invokeMultiShotChat({
73
+ message: input.message,
74
+ manifest: input.manifest,
75
+ runContext: input.runContext,
76
+ conversationSummary: input.conversationSummary,
77
+ model: input.model,
78
+ }, taskCtx);
79
+ default: {
80
+ const _exhaustive = input;
81
+ throw new Error(`Unknown harness task: ${String(_exhaustive)}`);
82
+ }
83
+ }
84
+ })
85
+ .build();
86
+ /** Register Browser Nano harness (`@executioncontrolprotocol/harness-browser-nano`). @category Harness */
87
+ export function registerBrowserNanoHarness() {
88
+ catalogHarness(browserNanoHarnessDefinition);
89
+ }
90
+ //# sourceMappingURL=browser-nano-harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-nano-harness.js","sourceRoot":"","sources":["../src/browser-nano-harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type HarnessCapabilityId, type HarnessId } from "@executioncontrolprotocol/types";
2
+ /** Browser Nano harness id (small on-device models; demo + eval matrix). @category Harness */
3
+ export declare const BROWSER_NANO_HARNESS_ID: HarnessId;
4
+ /** Evaluate capability for all Browser Nano harness tasks. @category Harness */
5
+ export declare const BROWSER_NANO_HARNESS_CAPABILITY: HarnessCapabilityId;
6
+ //# sourceMappingURL=harness-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-ids.d.ts","sourceRoot":"","sources":["../src/harness-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAE/G,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,EAAuD,SAAS,CAAA;AAEpG,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,EAAE,mBACA,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { harnessCapabilityId } from "@executioncontrolprotocol/types";
2
+ /** Browser Nano harness id (small on-device models; demo + eval matrix). @category Harness */
3
+ export const BROWSER_NANO_HARNESS_ID = "@executioncontrolprotocol/harness-browser-nano";
4
+ /** Evaluate capability for all Browser Nano harness tasks. @category Harness */
5
+ export const BROWSER_NANO_HARNESS_CAPABILITY = harnessCapabilityId(BROWSER_NANO_HARNESS_ID);
6
+ //# sourceMappingURL=harness-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-ids.js","sourceRoot":"","sources":["../src/harness-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA4C,MAAM,iCAAiC,CAAA;AAE/G,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAG,gDAA6D,CAAA;AAEpG,gFAAgF;AAChF,MAAM,CAAC,MAAM,+BAA+B,GAC1C,mBAAmB,CAAC,uBAAuB,CAAC,CAAA"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Per-task Browser Nano harness binding defaults (shared repair/trace; task-specific output/context).
3
+ * Single EQL output surface for eval matrix and browser demo — provider is hot-swapped at invoke.
4
+ * @category Harness
5
+ */
6
+ export declare const HARNESS_NANO_TRACE: {
7
+ readonly includePrompt: true;
8
+ readonly includeRawOutput: true;
9
+ readonly includeValidation: true;
10
+ };
11
+ /** Repair loop defaults for Browser Nano (1B model policy: normalize + deterministic recovery + repair). @category Harness */
12
+ export declare const HARNESS_NANO_REPAIR: {
13
+ readonly enabled: true;
14
+ readonly maxAttempts: 3;
15
+ readonly includeValidationErrors: true;
16
+ };
17
+ /** Repair loop experiment for multi-shot chat: reinject prior assistant output on retries. @category Harness */
18
+ export declare const HARNESS_NANO_CHAT_REPAIR: {
19
+ readonly includePriorOutput: true;
20
+ readonly enabled: true;
21
+ readonly maxAttempts: 3;
22
+ readonly includeValidationErrors: true;
23
+ };
24
+ /** Harness task ids (match {@link EVAL_HARNESS_NAMES} in `@executioncontrolprotocol/evals`). */
25
+ export declare const HARNESS_TASKS: {
26
+ readonly WORKFLOW_AUTHORING: "workflow-authoring";
27
+ readonly INTENT_CLASSIFICATION: "intent-classification";
28
+ readonly WORKFLOW_ASSISTANT: "workflow-assistant";
29
+ readonly CHAT: "chat";
30
+ };
31
+ export type HarnessTask = (typeof HARNESS_TASKS)[keyof typeof HARNESS_TASKS];
32
+ /** Full harness binding config for a task (EQL outputs for all nano tasks). */
33
+ export declare function getHarnessNanoConfig(task: HarnessTask): Record<string, unknown>;
34
+ /** Loose env binding for nano eval matrix environments. */
35
+ export declare const HARNESS_NANO_BINDING: {
36
+ readonly repair: {
37
+ readonly enabled: true;
38
+ readonly maxAttempts: 3;
39
+ readonly includeValidationErrors: true;
40
+ };
41
+ readonly trace: {
42
+ readonly includePrompt: true;
43
+ readonly includeRawOutput: true;
44
+ readonly includeValidation: true;
45
+ };
46
+ readonly context: {
47
+ readonly includeEnvironmentDescriptor: true;
48
+ readonly includeEncodedDescriptor: false;
49
+ readonly descriptorFormat: "@executioncontrolprotocol/format-eql";
50
+ readonly promptPhase: "contextualized";
51
+ };
52
+ };
53
+ //# sourceMappingURL=harness-nano-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-nano-config.d.ts","sourceRoot":"","sources":["../src/harness-nano-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAA;AAEV,8HAA8H;AAC9H,eAAO,MAAM,mBAAmB;;;;CAItB,CAAA;AAEV,gHAAgH;AAChH,eAAO,MAAM,wBAAwB;;;;;CAG3B,CAAA;AASV,gGAAgG;AAChG,eAAO,MAAM,aAAa;;;;;CAKhB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AA4C5E,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa/E;AAED,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;CAIvB,CAAA"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Per-task Browser Nano harness binding defaults (shared repair/trace; task-specific output/context).
3
+ * Single EQL output surface for eval matrix and browser demo — provider is hot-swapped at invoke.
4
+ * @category Harness
5
+ */
6
+ export const HARNESS_NANO_TRACE = {
7
+ includePrompt: true,
8
+ includeRawOutput: true,
9
+ includeValidation: true,
10
+ };
11
+ /** Repair loop defaults for Browser Nano (1B model policy: normalize + deterministic recovery + repair). @category Harness */
12
+ export const HARNESS_NANO_REPAIR = {
13
+ enabled: true,
14
+ maxAttempts: 3,
15
+ includeValidationErrors: true,
16
+ };
17
+ /** Repair loop experiment for multi-shot chat: reinject prior assistant output on retries. @category Harness */
18
+ export const HARNESS_NANO_CHAT_REPAIR = {
19
+ ...HARNESS_NANO_REPAIR,
20
+ includePriorOutput: true,
21
+ };
22
+ const SHARED_CONTEXT = {
23
+ includeEnvironmentDescriptor: true,
24
+ includeEncodedDescriptor: false,
25
+ descriptorFormat: "@executioncontrolprotocol/format-eql",
26
+ promptPhase: "contextualized",
27
+ };
28
+ /** Harness task ids (match {@link EVAL_HARNESS_NAMES} in `@executioncontrolprotocol/evals`). */
29
+ export const HARNESS_TASKS = {
30
+ WORKFLOW_AUTHORING: "workflow-authoring",
31
+ INTENT_CLASSIFICATION: "intent-classification",
32
+ WORKFLOW_ASSISTANT: "workflow-assistant",
33
+ CHAT: "chat",
34
+ };
35
+ const NANO_INTENT = {
36
+ promptFixture: "intent-classification",
37
+ output: { schema: "@executioncontrolprotocol.intent", format: "@executioncontrolprotocol/format-eql", validate: true },
38
+ context: {
39
+ promptPhase: "unfiltered",
40
+ includeEnvironmentDescriptor: false,
41
+ includeEncodedDescriptor: false,
42
+ descriptorFormat: "@executioncontrolprotocol/format-eql",
43
+ },
44
+ repair: HARNESS_NANO_REPAIR,
45
+ trace: HARNESS_NANO_TRACE,
46
+ };
47
+ const NANO_WORKFLOW = {
48
+ output: { schema: "@executioncontrolprotocol.workflow", format: "@executioncontrolprotocol/format-eql", validate: true },
49
+ context: {
50
+ ...SHARED_CONTEXT,
51
+ includeRunContext: true,
52
+ runContextFormat: "@executioncontrolprotocol/format-json",
53
+ },
54
+ repair: HARNESS_NANO_REPAIR,
55
+ trace: HARNESS_NANO_TRACE,
56
+ };
57
+ const NANO_ASSISTANT = {
58
+ promptFixture: "workflow-assistant",
59
+ output: { schema: "@executioncontrolprotocol.harness.reply", format: "@executioncontrolprotocol/format-eql", validate: true },
60
+ context: {
61
+ ...SHARED_CONTEXT,
62
+ includeRunContext: true,
63
+ runContextFormat: "@executioncontrolprotocol/format-json",
64
+ },
65
+ repair: { ...HARNESS_NANO_REPAIR, safeReplyFallback: true },
66
+ trace: HARNESS_NANO_TRACE,
67
+ };
68
+ const NANO_CHAT = {
69
+ repair: HARNESS_NANO_REPAIR,
70
+ trace: HARNESS_NANO_TRACE,
71
+ context: { ...SHARED_CONTEXT },
72
+ };
73
+ /** Full harness binding config for a task (EQL outputs for all nano tasks). */
74
+ export function getHarnessNanoConfig(task) {
75
+ switch (task) {
76
+ case HARNESS_TASKS.INTENT_CLASSIFICATION:
77
+ return { ...NANO_INTENT };
78
+ case HARNESS_TASKS.WORKFLOW_AUTHORING:
79
+ return { ...NANO_WORKFLOW };
80
+ case HARNESS_TASKS.WORKFLOW_ASSISTANT:
81
+ return { ...NANO_ASSISTANT };
82
+ case HARNESS_TASKS.CHAT:
83
+ return { ...NANO_CHAT };
84
+ default:
85
+ return { ...NANO_WORKFLOW };
86
+ }
87
+ }
88
+ /** Loose env binding for nano eval matrix environments. */
89
+ export const HARNESS_NANO_BINDING = {
90
+ repair: HARNESS_NANO_REPAIR,
91
+ trace: HARNESS_NANO_TRACE,
92
+ context: SHARED_CONTEXT,
93
+ };
94
+ //# sourceMappingURL=harness-nano-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-nano-config.js","sourceRoot":"","sources":["../src/harness-nano-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Browser Nano harness (`@executioncontrolprotocol/harness-browser-nano`): workflow authoring, intent, assistant.
3
+ * Tuned for on-device and ~1B models. Used by browser demo and `@executioncontrolprotocol/evals` matrix tests.
4
+ * @category Harness
5
+ */
6
+ export { BROWSER_NANO_HARNESS_ID, BROWSER_NANO_HARNESS_CAPABILITY, } from "./harness-ids.js";
7
+ export { registerBrowserNanoHarnesses, resetBrowserNanoHarnessRegistrationForTests, } from "./register.js";
8
+ export { HARNESS_TASKS, HARNESS_NANO_REPAIR, HARNESS_NANO_CHAT_REPAIR, HARNESS_NANO_TRACE, HARNESS_NANO_BINDING, getHarnessNanoConfig, type HarnessTask, } from "./harness-nano-config.js";
9
+ export type { BrowserNanoHarnessInput } from "./browser-nano-harness.js";
10
+ export { chatResultAnswer, chatResultWorkflow, intentRoutesToAuthoring, invokeMultiShotChat, } from "./multi-shot-chat.js";
11
+ export { buildPatchOperationHintLines, buildRequestCapabilityHintLines, collectPatchGoalFeedback, collectCreateCapabilityFeedback, collectCreateDuplicateStepIdFeedback, collectCreateStepCountFeedback, inferPatchTargetStepId, inferRequiredCapabilityIds, inferRequiredStepCount, } from "./_internal/request-capability-hints.js";
12
+ export { NANO_PROMPT_FIXTURE_IDS, buildNanoRepairHint, buildNanoSystemPrompt, loadNanoHarnessPromptFixture, type NanoPromptFixtureId, } from "./prompts/index.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,4BAA4B,EAC5B,2CAA2C,GAC5C,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,WAAW,GACjB,MAAM,0BAA0B,CAAA;AAEjC,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAExE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,oCAAoC,EACpC,8BAA8B,EAC9B,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Browser Nano harness (`@executioncontrolprotocol/harness-browser-nano`): workflow authoring, intent, assistant.
3
+ * Tuned for on-device and ~1B models. Used by browser demo and `@executioncontrolprotocol/evals` matrix tests.
4
+ * @category Harness
5
+ */
6
+ export { BROWSER_NANO_HARNESS_ID, BROWSER_NANO_HARNESS_CAPABILITY, } from "./harness-ids.js";
7
+ export { registerBrowserNanoHarnesses, resetBrowserNanoHarnessRegistrationForTests, } from "./register.js";
8
+ export { HARNESS_TASKS, HARNESS_NANO_REPAIR, HARNESS_NANO_CHAT_REPAIR, HARNESS_NANO_TRACE, HARNESS_NANO_BINDING, getHarnessNanoConfig, } from "./harness-nano-config.js";
9
+ export { chatResultAnswer, chatResultWorkflow, intentRoutesToAuthoring, invokeMultiShotChat, } from "./multi-shot-chat.js";
10
+ export { buildPatchOperationHintLines, buildRequestCapabilityHintLines, collectPatchGoalFeedback, collectCreateCapabilityFeedback, collectCreateDuplicateStepIdFeedback, collectCreateStepCountFeedback, inferPatchTargetStepId, inferRequiredCapabilityIds, inferRequiredStepCount, } from "./_internal/request-capability-hints.js";
11
+ export { NANO_PROMPT_FIXTURE_IDS, buildNanoRepairHint, buildNanoSystemPrompt, loadNanoHarnessPromptFixture, } from "./prompts/index.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,4BAA4B,EAC5B,2CAA2C,GAC5C,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,0BAA0B,CAAA;AAIjC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,oCAAoC,EACpC,8BAA8B,EAC9B,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,GAE7B,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { type HarnessCapabilityContext } from "@executioncontrolprotocol/core";
2
+ import { type HarnessEvaluateOutput } from "@executioncontrolprotocol/types";
3
+ /** Intent task handler (invoked by unified `@executioncontrolprotocol/harness-evals`). @category Evals */
4
+ export declare function invokeIntentClassification(input: {
5
+ message: string;
6
+ model?: string;
7
+ }, ctx: HarnessCapabilityContext<Record<string, unknown>>): Promise<HarnessEvaluateOutput>;
8
+ /** @deprecated Use {@link invokeIntentClassification} */
9
+ export declare const invokeEvalIntentClassification: typeof invokeIntentClassification;
10
+ //# sourceMappingURL=intent-classification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-classification.d.ts","sourceRoot":"","sources":["../src/intent-classification.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAe9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAML,KAAK,qBAAqB,EAK3B,MAAM,iCAAiC,CAAA;AA6MxC,0GAA0G;AAC1G,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1C,GAAG,EAAE,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACrD,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED,yDAAyD;AACzD,eAAO,MAAM,8BAA8B,mCAA6B,CAAA"}
@@ -0,0 +1,177 @@
1
+ import { callModelGenerate, collectDecodeFeedback, collectModelOutputFeedback, collectValidationFeedback, defineHarness, inferResponseFormatFromFormatter, runModelRepairLoop, stripMarkdownCodeFences, formatStructuredRepairForModel, formatModelRepairDialogLines, isRepairFeedbackEcho, coerceIntentEqlRawOutput, buildContextBundle, correctClassifiedIntent, formatIntentRoutingHintLines, } from "@executioncontrolprotocol/core";
2
+ import { ECP_INTENT_SCHEMA, ECP_MODEL_GENERATE_INTERFACE, harnessEvaluateOutputSchema, 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, NANO_PROMPT_FIXTURE_IDS, } from "./prompts/index.js";
6
+ const harnessConfigSchema = z.object({
7
+ promptFixture: z
8
+ .string()
9
+ .default(NANO_PROMPT_FIXTURE_IDS.INTENT_CLASSIFICATION),
10
+ system: z.string().optional(),
11
+ context: z
12
+ .object({
13
+ promptPhase: z.enum(["unfiltered", "contextualized"]).default("unfiltered"),
14
+ includeEnvironmentDescriptor: z.boolean().default(false),
15
+ includeEncodedDescriptor: z.boolean().default(false),
16
+ descriptorFormat: z.string().default("@executioncontrolprotocol/format-toon"),
17
+ })
18
+ .default({}),
19
+ output: z
20
+ .object({
21
+ schema: z.string().default(ECP_INTENT_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
+ includePriorOutput: z.boolean().default(false),
32
+ priorOutputMaxChars: z.number().optional(),
33
+ })
34
+ .default({}),
35
+ trace: z
36
+ .object({
37
+ includePrompt: z.boolean().default(false),
38
+ includeRawOutput: z.boolean().default(true),
39
+ includeValidation: z.boolean().default(true),
40
+ includeRepairAttempts: z.boolean().default(true),
41
+ })
42
+ .default({}),
43
+ });
44
+ const harnessInputSchema = z.object({
45
+ message: z.string(),
46
+ model: z.string().optional(),
47
+ });
48
+ /**
49
+ * Eval intent classification harness (@executioncontrolprotocol/evals-intent-classification).
50
+ * @category Evals
51
+ */
52
+ const evalsIntentClassificationHarness = defineHarness("@executioncontrolprotocol", "evals-intent-classification-internal")
53
+ .withConfig(harnessConfigSchema)
54
+ .withInput(harnessInputSchema)
55
+ .withOutput(harnessEvaluateOutputSchema)
56
+ .usesProviderInterface(ECP_MODEL_GENERATE_INTERFACE)
57
+ .withHandler(async (input, ctx) => {
58
+ const config = ctx.config;
59
+ const format = config.output.format;
60
+ const outputIsEql = format === "@executioncontrolprotocol/format-eql" || format.endsWith("/format-eql");
61
+ const descriptorFormat = config.context.descriptorFormat ?? format;
62
+ const promptFixtureId = config.promptFixture;
63
+ const system = config.system ?? buildNanoSystemPrompt(promptFixtureId);
64
+ const promptPhase = config.context.promptPhase;
65
+ const contextBundle = await buildContextBundle(ctx.ecp, {
66
+ phase: promptPhase,
67
+ message: input.message,
68
+ includeEnvironmentDescriptor: config.context.includeEnvironmentDescriptor,
69
+ includeEncodedDescriptor: config.context.includeEncodedDescriptor,
70
+ descriptorFormat,
71
+ outputIsEql,
72
+ });
73
+ const buildPrompt = (repairDialogLines = []) => {
74
+ const lines = [...contextBundle.lines, ...formatIntentRoutingHintLines(input.message)];
75
+ lines.push(`User message: ${input.message}`);
76
+ if (repairDialogLines.length > 0) {
77
+ lines.push(...repairDialogLines);
78
+ }
79
+ return lines.join("\n");
80
+ };
81
+ const maxAttempts = config.repair.enabled ? 1 + config.repair.maxAttempts : 1;
82
+ let lastPrompt = buildPrompt();
83
+ let validation = decodedValidationStub();
84
+ const loopResult = await runModelRepairLoop({
85
+ maxAttempts,
86
+ generate: async ({ attempt, priorFeedback, priorRaw }) => {
87
+ const repairFeedback = attempt > 0 && config.repair.includeValidationErrors
88
+ ? formatStructuredRepairForModel(priorFeedback)
89
+ : undefined;
90
+ const repairDialogLines = attempt > 0 && repairFeedback
91
+ ? formatModelRepairDialogLines({
92
+ includePriorOutput: config.repair.includePriorOutput,
93
+ priorOutputMaxChars: config.repair.priorOutputMaxChars,
94
+ priorRaw,
95
+ repairFeedback,
96
+ repairHint: buildNanoRepairHint(promptFixtureId),
97
+ repairLead: "Previous attempt failed. Fix these issues and return corrected EQL only:",
98
+ })
99
+ : [];
100
+ lastPrompt = buildPrompt(repairDialogLines);
101
+ const generated = await callModelGenerate(ctx.uses, {
102
+ prompt: lastPrompt,
103
+ system,
104
+ model: input.model,
105
+ responseFormat: inferResponseFormatFromFormatter(format),
106
+ }, ctx.capabilityContext, format);
107
+ return { raw: stripMarkdownCodeFences(generated.text) };
108
+ },
109
+ evaluate: async (raw, { attempt, priorFeedback }) => {
110
+ const feedback = [];
111
+ const normalizedRaw = coerceIntentEqlRawOutput(raw, input.message.trim());
112
+ if (attempt > 0 &&
113
+ config.repair.includeValidationErrors &&
114
+ isRepairFeedbackEcho(normalizedRaw, formatStructuredRepairForModel(priorFeedback))) {
115
+ return {
116
+ success: false,
117
+ feedback: [
118
+ collectModelOutputFeedback("Output echoed validation errors instead of a document. Return only intent EQL."),
119
+ ],
120
+ };
121
+ }
122
+ const decoded = await ctx.ecp
123
+ .decode(normalizedRaw)
124
+ .uses(format)
125
+ .to(ECP_INTENT_SCHEMA)
126
+ .with({ headers: false })
127
+ .process();
128
+ validation = decoded.validation ?? decodedValidationStub(!decoded.success);
129
+ feedback.push(collectDecodeFeedback(decoded));
130
+ if (!decoded.success || !decoded.result) {
131
+ return { success: false, feedback };
132
+ }
133
+ if (config.output.validate && validation.valid === false) {
134
+ feedback.push(collectValidationFeedback(validation));
135
+ return { success: false, feedback };
136
+ }
137
+ const intentDoc = correctClassifiedIntent(input.message.trim(), decoded.result);
138
+ return { success: true, artifact: intentDoc, feedback };
139
+ },
140
+ });
141
+ const trace = {
142
+ harness: BROWSER_NANO_HARNESS_ID,
143
+ provider: ctx.uses,
144
+ model: input.model,
145
+ outputSchema: config.output.schema,
146
+ outputFormat: format,
147
+ decodeSucceeded: true,
148
+ validationSucceeded: validation.valid,
149
+ promptPhase,
150
+ ...(config.trace.includePrompt ? { prompt: lastPrompt } : {}),
151
+ ...(config.trace.includeRawOutput ? { rawOutput: loopResult.raw } : {}),
152
+ ...(config.trace.includeRepairAttempts ? { repairAttempts: loopResult.attempts } : {}),
153
+ };
154
+ return {
155
+ artifact: loopResult.artifact,
156
+ raw: loopResult.raw,
157
+ ...(config.trace.includeValidation ? { validation } : {}),
158
+ trace,
159
+ };
160
+ })
161
+ .build();
162
+ function decodedValidationStub(valid = true) {
163
+ return {
164
+ schema: "@executioncontrolprotocol.validation.result",
165
+ version: LATEST_ECP_VERSION,
166
+ valid,
167
+ errors: [],
168
+ warnings: [],
169
+ };
170
+ }
171
+ /** Intent task handler (invoked by unified `@executioncontrolprotocol/harness-evals`). @category Evals */
172
+ export async function invokeIntentClassification(input, ctx) {
173
+ return evalsIntentClassificationHarness.handler(input, ctx);
174
+ }
175
+ /** @deprecated Use {@link invokeIntentClassification} */
176
+ export const invokeEvalIntentClassification = invokeIntentClassification;
177
+ //# sourceMappingURL=intent-classification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-classification.js","sourceRoot":"","sources":["../src/intent-classification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { HarnessCapabilityContext } from "@executioncontrolprotocol/core";
2
+ import { type EcpIntent, type HarnessEvaluateOutput, type WorkflowManifest } from "@executioncontrolprotocol/types";
3
+ /** Route classified intent to workflow authoring vs assistant. @category Harness */
4
+ export declare function intentRoutesToAuthoring(intent: EcpIntent["intent"]): boolean;
5
+ /**
6
+ * Multi-shot chat orchestrator: unfiltered intent shot, then contextualized execution shot.
7
+ * @category Harness
8
+ */
9
+ export declare function invokeMultiShotChat(input: {
10
+ message: string;
11
+ manifest?: unknown;
12
+ runContext?: unknown;
13
+ conversationSummary?: string;
14
+ model?: string;
15
+ }, ctx: HarnessCapabilityContext<Record<string, unknown>>): Promise<HarnessEvaluateOutput>;
16
+ /** Extract assistant answer text from a chat harness result when applicable. @category Harness */
17
+ export declare function chatResultAnswer(result: HarnessEvaluateOutput): string | undefined;
18
+ /** Extract workflow manifest from a chat harness result when applicable. @category Harness */
19
+ export declare function chatResultWorkflow(result: HarnessEvaluateOutput): WorkflowManifest | undefined;
20
+ //# sourceMappingURL=multi-shot-chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-shot-chat.d.ts","sourceRoot":"","sources":["../src/multi-shot-chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAI1B,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAA;AAOxC,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,OAAO,CAK5E;AAkBD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,EACD,GAAG,EAAE,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACrD,OAAO,CAAC,qBAAqB,CAAC,CA8HhC;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAWlF;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,gBAAgB,GAAG,SAAS,CAW9F"}