@executioncontrolprotocol/types 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 (105) hide show
  1. package/README.md +16 -0
  2. package/dist/capabilities.d.ts +31 -0
  3. package/dist/capabilities.d.ts.map +1 -0
  4. package/dist/capabilities.js +2 -0
  5. package/dist/capabilities.js.map +1 -0
  6. package/dist/encoding.d.ts +99 -0
  7. package/dist/encoding.d.ts.map +1 -0
  8. package/dist/encoding.js +25 -0
  9. package/dist/encoding.js.map +1 -0
  10. package/dist/environment.d.ts +132 -0
  11. package/dist/environment.d.ts.map +1 -0
  12. package/dist/environment.js +2 -0
  13. package/dist/environment.js.map +1 -0
  14. package/dist/harness-feedback.d.ts +43 -0
  15. package/dist/harness-feedback.d.ts.map +1 -0
  16. package/dist/harness-feedback.js +2 -0
  17. package/dist/harness-feedback.js.map +1 -0
  18. package/dist/harness-reply.d.ts +63 -0
  19. package/dist/harness-reply.d.ts.map +1 -0
  20. package/dist/harness-reply.js +30 -0
  21. package/dist/harness-reply.js.map +1 -0
  22. package/dist/harness-run-context.d.ts +228 -0
  23. package/dist/harness-run-context.d.ts.map +1 -0
  24. package/dist/harness-run-context.js +35 -0
  25. package/dist/harness-run-context.js.map +1 -0
  26. package/dist/harness-tasks.d.ts +403 -0
  27. package/dist/harness-tasks.d.ts.map +1 -0
  28. package/dist/harness-tasks.js +50 -0
  29. package/dist/harness-tasks.js.map +1 -0
  30. package/dist/harness.d.ts +118 -0
  31. package/dist/harness.d.ts.map +1 -0
  32. package/dist/harness.js +34 -0
  33. package/dist/harness.js.map +1 -0
  34. package/dist/image.d.ts +150 -0
  35. package/dist/image.d.ts.map +1 -0
  36. package/dist/image.js +46 -0
  37. package/dist/image.js.map +1 -0
  38. package/dist/index.d.ts +34 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +12 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/intent.d.ts +35 -0
  43. package/dist/intent.d.ts.map +1 -0
  44. package/dist/intent.js +26 -0
  45. package/dist/intent.js.map +1 -0
  46. package/dist/invoke.d.ts +44 -0
  47. package/dist/invoke.d.ts.map +1 -0
  48. package/dist/invoke.js +9 -0
  49. package/dist/invoke.js.map +1 -0
  50. package/dist/lifecycle.d.ts +27 -0
  51. package/dist/lifecycle.d.ts.map +1 -0
  52. package/dist/lifecycle.js +2 -0
  53. package/dist/lifecycle.js.map +1 -0
  54. package/dist/model.d.ts +57 -0
  55. package/dist/model.d.ts.map +1 -0
  56. package/dist/model.js +32 -0
  57. package/dist/model.js.map +1 -0
  58. package/dist/patch-errors.d.ts +11 -0
  59. package/dist/patch-errors.d.ts.map +1 -0
  60. package/dist/patch-errors.js +9 -0
  61. package/dist/patch-errors.js.map +1 -0
  62. package/dist/patch.d.ts +51 -0
  63. package/dist/patch.d.ts.map +1 -0
  64. package/dist/patch.js +2 -0
  65. package/dist/patch.js.map +1 -0
  66. package/dist/registry.d.ts +24 -0
  67. package/dist/registry.d.ts.map +1 -0
  68. package/dist/registry.js +2 -0
  69. package/dist/registry.js.map +1 -0
  70. package/dist/run.d.ts +35 -0
  71. package/dist/run.d.ts.map +1 -0
  72. package/dist/run.js +2 -0
  73. package/dist/run.js.map +1 -0
  74. package/dist/schema.d.ts +67 -0
  75. package/dist/schema.d.ts.map +1 -0
  76. package/dist/schema.js +2 -0
  77. package/dist/schema.js.map +1 -0
  78. package/dist/schemas/decode.result.json +155 -0
  79. package/dist/schemas/encode.result.json +162 -0
  80. package/dist/schemas/environment.describe.json +210 -0
  81. package/dist/schemas/environment.manifest.json +159 -0
  82. package/dist/schemas/environment.search.json +72 -0
  83. package/dist/schemas/patch.json +104 -0
  84. package/dist/schemas/patch.result.json +260 -0
  85. package/dist/schemas/run.request.json +485 -0
  86. package/dist/schemas/run.result.json +170 -0
  87. package/dist/schemas/validation.result.json +89 -0
  88. package/dist/schemas/workflow.manifest.json +451 -0
  89. package/dist/store.d.ts +30 -0
  90. package/dist/store.d.ts.map +1 -0
  91. package/dist/store.js +2 -0
  92. package/dist/store.js.map +1 -0
  93. package/dist/validation.d.ts +20 -0
  94. package/dist/validation.d.ts.map +1 -0
  95. package/dist/validation.js +2 -0
  96. package/dist/validation.js.map +1 -0
  97. package/dist/version.d.ts +5 -0
  98. package/dist/version.d.ts.map +1 -0
  99. package/dist/version.js +3 -0
  100. package/dist/version.js.map +1 -0
  101. package/dist/workflow.d.ts +55 -0
  102. package/dist/workflow.d.ts.map +1 -0
  103. package/dist/workflow.js +2 -0
  104. package/dist/workflow.js.map +1 -0
  105. package/package.json +33 -0
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # @executioncontrolprotocol/types
2
+
3
+ Protocol types, constants, and generated JSON Schema (`npm run generate:schema` from repo root).
4
+
5
+ Shared by all `@executioncontrolprotocol/*` packages. No runtime or host dependencies.
6
+
7
+ `@executioncontrolprotocol/types` is the primary dependency for anyone who wants to **build on ECP**:
8
+ extensions, runtimes, harnesses, CLIs, UIs, and external tooling should import
9
+ the canonical types from here instead of re-defining protocol shapes.
10
+
11
+ Guidelines:
12
+
13
+ - Prefer `@executioncontrolprotocol/types` schema constants/unions (e.g. `@executioncontrolprotocol.workflow`, `@executioncontrolprotocol.patch`)
14
+ over repeating string literals.
15
+ - Keep this package dependency-light so it can be installed broadly.
16
+ - Treat types as the “public contract” for third-party extension authors.
@@ -0,0 +1,31 @@
1
+ import type { ValidationIssue } from "./validation.js";
2
+ /** Minimum model generate capability input. @category Capabilities */
3
+ export interface GenerateCapabilityInput {
4
+ prompt: string;
5
+ system?: string;
6
+ context?: unknown;
7
+ options?: Record<string, unknown>;
8
+ }
9
+ /** Minimum model generate capability output. @category Capabilities */
10
+ export interface GenerateCapabilityOutput {
11
+ text: string;
12
+ raw?: unknown;
13
+ usage?: unknown;
14
+ diagnostics?: ValidationIssue[];
15
+ }
16
+ /** Minimum evaluate capability input. @category Capabilities */
17
+ export interface EvaluateCapabilityInput {
18
+ subject: unknown;
19
+ criteria?: unknown;
20
+ rubric?: unknown;
21
+ options?: Record<string, unknown>;
22
+ }
23
+ /** Minimum evaluate capability output. @category Capabilities */
24
+ export interface EvaluateCapabilityOutput {
25
+ passed?: boolean;
26
+ score?: number;
27
+ result?: unknown;
28
+ rationale?: string;
29
+ diagnostics?: ValidationIssue[];
30
+ }
31
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;CAChC;AAED,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,iEAAiE;AACjE,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;CAChC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":""}
@@ -0,0 +1,99 @@
1
+ import type { EcpSchema } from "./schema.js";
2
+ import type { EcpVersion } from "./version.js";
3
+ import type { ValidationIssue } from "./validation.js";
4
+ import type { ValidationResult } from "./validation.js";
5
+ /** Reserved capability names for format extensions. @category Encoding */
6
+ export declare const ECP_FORMAT_CAPABILITY_NAMES: {
7
+ readonly ENCODE: "encode";
8
+ readonly DECODE: "decode";
9
+ };
10
+ /** Known format identifiers. @category Encoding */
11
+ export declare const ECP_FORMATS: {
12
+ readonly JSON: "json";
13
+ readonly TOON: "toon";
14
+ readonly FLUENT: "fluent";
15
+ readonly EQL: "eql";
16
+ };
17
+ /** Encoding error codes. @category Encoding */
18
+ export declare const ECP_ENCODING_ERROR_CODES: {
19
+ readonly FORMAT_EXTENSION_NOT_FOUND: "FORMAT_EXTENSION_NOT_FOUND";
20
+ readonly FORMAT_ENCODER_NOT_FOUND: "FORMAT_ENCODER_NOT_FOUND";
21
+ readonly FORMAT_DECODER_NOT_FOUND: "FORMAT_DECODER_NOT_FOUND";
22
+ readonly FORMAT_ENCODER_INVALID_CONTRACT: "FORMAT_ENCODER_INVALID_CONTRACT";
23
+ readonly FORMAT_DECODER_INVALID_CONTRACT: "FORMAT_DECODER_INVALID_CONTRACT";
24
+ readonly FORMAT_ENCODE_FAILED: "FORMAT_ENCODE_FAILED";
25
+ readonly FORMAT_DECODE_FAILED: "FORMAT_DECODE_FAILED";
26
+ readonly FORMAT_UNSUPPORTED_SOURCE_SCHEMA: "FORMAT_UNSUPPORTED_SOURCE_SCHEMA";
27
+ readonly FORMAT_UNSUPPORTED_TARGET_SCHEMA: "FORMAT_UNSUPPORTED_TARGET_SCHEMA";
28
+ };
29
+ /** Encoding error code union. @category Encoding */
30
+ export type EcpEncodingErrorCode = (typeof ECP_ENCODING_ERROR_CODES)[keyof typeof ECP_ENCODING_ERROR_CODES];
31
+ /** Standard format encoder options. @category Encoding */
32
+ export interface EcpFormatOptions extends Record<string, unknown> {
33
+ /** Include schema/version headers in encoded output. Default true. */
34
+ headers?: boolean;
35
+ /** Prefer compact output. Default false. */
36
+ compact?: boolean;
37
+ /** Return string content instead of object (JSON codec). */
38
+ as?: "object" | "string";
39
+ /** Fields to include when supported by the encoder. */
40
+ include?: string[];
41
+ }
42
+ /** Standard format decoder options. @category Encoding */
43
+ export interface EcpDecodeOptions extends Record<string, unknown> {
44
+ /** Fail on invalid syntax or schema mismatch. */
45
+ strict?: boolean;
46
+ /** Header expectation. Default `"auto"`. */
47
+ headers?: boolean | "auto";
48
+ /** Match compact TOON encoding (`keyFolding: safe`). Default false. */
49
+ compact?: boolean;
50
+ }
51
+ /** Encode operation result. @category Encoding */
52
+ export interface EncodeResult<T = unknown> {
53
+ schema: "@executioncontrolprotocol.encode.result";
54
+ version: EcpVersion;
55
+ success: boolean;
56
+ format: string;
57
+ sourceSchema?: EcpSchema;
58
+ sourceVersion?: EcpVersion;
59
+ mediaType?: string;
60
+ result?: T;
61
+ validation?: ValidationResult;
62
+ diagnostics: ValidationIssue[];
63
+ }
64
+ /** Decode operation result. @category Encoding */
65
+ export interface DecodeResult<T = unknown> {
66
+ schema: "@executioncontrolprotocol.decode.result";
67
+ version: EcpVersion;
68
+ success: boolean;
69
+ targetSchema?: EcpSchema;
70
+ targetVersion?: EcpVersion;
71
+ result?: T;
72
+ validation?: ValidationResult;
73
+ diagnostics: ValidationIssue[];
74
+ }
75
+ /** Concrete encode result for schema generation. @category Encoding */
76
+ export type EncodeResultDocument = EncodeResult<unknown>;
77
+ /** Concrete decode result for schema generation. @category Encoding */
78
+ export type DecodeResultDocument = DecodeResult<unknown>;
79
+ /** Minimum encode capability contract. Extensions intersect `TOptions`. @category Encoding */
80
+ export interface EncodeCapabilityInput<TValue = unknown, TOptions extends Record<string, unknown> = EcpFormatOptions> {
81
+ source: TValue;
82
+ sourceSchema?: EcpSchema;
83
+ sourceVersion?: EcpVersion;
84
+ format?: string;
85
+ options?: TOptions;
86
+ }
87
+ /** Minimum decode capability contract. @category Encoding */
88
+ export interface DecodeCapabilityInput<TOptions extends Record<string, unknown> = EcpDecodeOptions> {
89
+ input: unknown;
90
+ format?: string;
91
+ targetSchema?: EcpSchema;
92
+ targetVersion?: EcpVersion;
93
+ options?: TOptions;
94
+ }
95
+ /** Input to `{extensionId}.encode` capabilities. @category Encoding */
96
+ export type EcpEncodeInput = EncodeCapabilityInput;
97
+ /** Input to `{extensionId}.decode` capabilities. @category Encoding */
98
+ export type EcpDecodeInput = DecodeCapabilityInput;
99
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /** Reserved capability names for format extensions. @category Encoding */
2
+ export const ECP_FORMAT_CAPABILITY_NAMES = {
3
+ ENCODE: "encode",
4
+ DECODE: "decode",
5
+ };
6
+ /** Known format identifiers. @category Encoding */
7
+ export const ECP_FORMATS = {
8
+ JSON: "json",
9
+ TOON: "toon",
10
+ FLUENT: "fluent",
11
+ EQL: "eql",
12
+ };
13
+ /** Encoding error codes. @category Encoding */
14
+ export const ECP_ENCODING_ERROR_CODES = {
15
+ FORMAT_EXTENSION_NOT_FOUND: "FORMAT_EXTENSION_NOT_FOUND",
16
+ FORMAT_ENCODER_NOT_FOUND: "FORMAT_ENCODER_NOT_FOUND",
17
+ FORMAT_DECODER_NOT_FOUND: "FORMAT_DECODER_NOT_FOUND",
18
+ FORMAT_ENCODER_INVALID_CONTRACT: "FORMAT_ENCODER_INVALID_CONTRACT",
19
+ FORMAT_DECODER_INVALID_CONTRACT: "FORMAT_DECODER_INVALID_CONTRACT",
20
+ FORMAT_ENCODE_FAILED: "FORMAT_ENCODE_FAILED",
21
+ FORMAT_DECODE_FAILED: "FORMAT_DECODE_FAILED",
22
+ FORMAT_UNSUPPORTED_SOURCE_SCHEMA: "FORMAT_UNSUPPORTED_SOURCE_SCHEMA",
23
+ FORMAT_UNSUPPORTED_TARGET_SCHEMA: "FORMAT_UNSUPPORTED_TARGET_SCHEMA",
24
+ };
25
+ //# sourceMappingURL=encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AAKA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACR,CAAA;AAEV,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;CACF,CAAA;AAEV,+CAA+C;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,0BAA0B,EAAE,4BAA4B;IACxD,wBAAwB,EAAE,0BAA0B;IACpD,wBAAwB,EAAE,0BAA0B;IACpD,+BAA+B,EAAE,iCAAiC;IAClE,+BAA+B,EAAE,iCAAiC;IAClE,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,gCAAgC,EAAE,kCAAkC;IACpE,gCAAgC,EAAE,kCAAkC;CAC5D,CAAA"}
@@ -0,0 +1,132 @@
1
+ import type { NamespacedId } from "./schema.js";
2
+ import type { EcpVersion } from "./version.js";
3
+ /** Environment manifest (bindings only). @category Environment */
4
+ export interface EnvironmentManifest {
5
+ schema: "@executioncontrolprotocol.environment";
6
+ version: EcpVersion;
7
+ environment: {
8
+ id: string;
9
+ label?: string;
10
+ };
11
+ runtime?: RuntimeBindingManifest;
12
+ extensions?: ExtensionBindingManifest[];
13
+ policies?: PolicyBindingManifest[];
14
+ }
15
+ /** Runtime binding in environment manifest. @category Environment */
16
+ export interface RuntimeBindingManifest {
17
+ id: NamespacedId | string;
18
+ label?: string;
19
+ config?: Record<string, unknown>;
20
+ }
21
+ /** Extension binding in environment manifest. @category Environment */
22
+ export interface ExtensionBindingManifest {
23
+ id: NamespacedId | string;
24
+ label?: string;
25
+ order: number;
26
+ config?: Record<string, unknown>;
27
+ }
28
+ /** Policy binding in environment manifest. @category Environment */
29
+ export interface PolicyBindingManifest {
30
+ id: NamespacedId | string;
31
+ label?: string;
32
+ order: number;
33
+ config?: Record<string, unknown>;
34
+ }
35
+ /** Runtime feature flags for validation. @category Environment */
36
+ export interface RuntimeFeatures {
37
+ durableExecution?: boolean;
38
+ loops?: boolean;
39
+ parallel?: boolean;
40
+ branches?: boolean;
41
+ pauses?: boolean;
42
+ cancellation?: boolean;
43
+ longRunningWorkflows?: boolean;
44
+ }
45
+ /** Environment descriptor for discovery. @category Environment */
46
+ export interface EnvironmentDescriptor {
47
+ schema: "@executioncontrolprotocol.environment.describe";
48
+ version: EcpVersion;
49
+ environment: {
50
+ id: string;
51
+ label?: string;
52
+ };
53
+ runtime: RuntimeDescription;
54
+ extensions: ExtensionDescription[];
55
+ capabilities: CapabilityDescription[];
56
+ policies: PolicyDescription[];
57
+ }
58
+ /** Runtime section of descriptor. @category Environment */
59
+ export interface RuntimeDescription {
60
+ id: string;
61
+ label?: string;
62
+ features: RuntimeFeatures;
63
+ }
64
+ /** Extension section of descriptor. @category Environment */
65
+ export interface ExtensionDescription {
66
+ id: string;
67
+ label?: string;
68
+ order: number;
69
+ configSchema?: unknown;
70
+ capabilities: string[];
71
+ /** Runtimes this extension supports when restricted; omitted when universal. */
72
+ supportedRuntimes?: string[];
73
+ }
74
+ /** Capability metadata in descriptor. @category Environment */
75
+ export interface CapabilityDescription {
76
+ id: string;
77
+ label?: string;
78
+ extension: string;
79
+ inputSchema?: unknown;
80
+ outputSchema?: unknown;
81
+ examples?: unknown[];
82
+ }
83
+ /** Policy metadata in descriptor. @category Environment */
84
+ export interface PolicyDescription {
85
+ id: string;
86
+ label?: string;
87
+ summary?: string;
88
+ config?: Record<string, unknown>;
89
+ configSchema?: unknown;
90
+ }
91
+ /** Describe query selection. @category Environment */
92
+ export interface DescribeSelection {
93
+ id?: string;
94
+ namespace?: string;
95
+ match?: string;
96
+ mode?: "exact" | "partial" | "fuzzy" | "semantic";
97
+ include?: string[];
98
+ limit?: number;
99
+ }
100
+ /** Describe query object. @category Environment */
101
+ export interface DescribeQuery {
102
+ runtime?: DescribeSelection;
103
+ extensions?: DescribeSelection;
104
+ capabilities?: DescribeSelection;
105
+ policies?: DescribeSelection;
106
+ features?: DescribeSelection;
107
+ }
108
+ /** Search options. @category Environment */
109
+ export interface SearchOptions {
110
+ types?: Array<"capability" | "extension" | "policy">;
111
+ include?: string[];
112
+ limit?: number;
113
+ }
114
+ /** Search result item. @category Environment */
115
+ export interface SearchResultItem {
116
+ type: string;
117
+ id: string;
118
+ label?: string;
119
+ score: number;
120
+ reason?: string;
121
+ /** Present when requested via {@link SearchOptions.include}. */
122
+ inputSchema?: unknown;
123
+ /** Present when requested via {@link SearchOptions.include}. */
124
+ outputSchema?: unknown;
125
+ }
126
+ /** Search response. @category Environment */
127
+ export interface SearchResult {
128
+ schema: "@executioncontrolprotocol.environment.search";
129
+ version: EcpVersion;
130
+ results: SearchResultItem[];
131
+ }
132
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import type { AppliedPatchEntry } from "./patch.js";
2
+ import type { EcpSchema } from "./schema.js";
3
+ import type { ValidationIssue } from "./validation.js";
4
+ /**
5
+ * Stage of a harness model-evaluation operation (decode, patch, validate, or raw output guard).
6
+ * @category Harness
7
+ */
8
+ export type HarnessOperationStage = "decode" | "patch-apply" | "validate" | "model-output";
9
+ /**
10
+ * Structured feedback from core decode, patch, or validate operations for harness repair decisions.
11
+ * @category Harness
12
+ */
13
+ export interface HarnessOperationFeedback {
14
+ /** Operation stage that produced this feedback. */
15
+ stage: HarnessOperationStage;
16
+ /** Whether the operation succeeded at this stage. */
17
+ success: boolean;
18
+ /** Target schema when known (e.g. `@executioncontrolprotocol.workflow`, `@executioncontrolprotocol.patch`). */
19
+ targetSchema?: EcpSchema | string;
20
+ /** Validation and diagnostic issues with paths and codes. */
21
+ issues: ValidationIssue[];
22
+ /** Per-entry patch apply results when stage is patch-apply. */
23
+ applied?: AppliedPatchEntry[];
24
+ /** Raw model text associated with this attempt when relevant. */
25
+ rawOutput?: string;
26
+ }
27
+ /**
28
+ * One model call attempt during a harness repair loop.
29
+ * @category Harness
30
+ */
31
+ export interface HarnessRepairAttempt {
32
+ /** Zero-based attempt index. */
33
+ attempt: number;
34
+ /** Structured feedback collected for this attempt. */
35
+ feedback: HarnessOperationFeedback[];
36
+ /** Raw model output for this attempt. */
37
+ rawOutput?: string;
38
+ /** Wall-clock ms in model generate for this attempt (when timing debug enabled). */
39
+ generateMs?: number;
40
+ /** Wall-clock ms in harness evaluate (compile/decode/validate) for this attempt. */
41
+ evaluateMs?: number;
42
+ }
43
+ //# sourceMappingURL=harness-feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-feedback.d.ts","sourceRoot":"","sources":["../src/harness-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,CAAA;AAE1F;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,mDAAmD;IACnD,KAAK,EAAE,qBAAqB,CAAA;IAC5B,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAA;IAChB,+GAA+G;IAC/G,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACjC,6DAA6D;IAC7D,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC7B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,QAAQ,EAAE,wBAAwB,EAAE,CAAA;IACpC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=harness-feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-feedback.js","sourceRoot":"","sources":["../src/harness-feedback.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ import { z } from "zod";
2
+ /** Harness reply document schema id. @category Harness */
3
+ export declare const ECP_HARNESS_REPLY_SCHEMA: "@executioncontrolprotocol.harness.reply";
4
+ /** Citation kind in harness assistant replies. @category Harness */
5
+ export declare const ECP_HARNESS_REPLY_CITATION_KINDS: {
6
+ readonly STEP: "step";
7
+ readonly RUN: "run";
8
+ readonly EXTENSION: "extension";
9
+ readonly ERROR: "error";
10
+ };
11
+ /** Harness reply citation. @category Harness */
12
+ export declare const harnessReplyCitationSchema: z.ZodObject<{
13
+ kind: z.ZodEnum<["step", "run", "extension", "error"]>;
14
+ id: z.ZodOptional<z.ZodString>;
15
+ detail: z.ZodOptional<z.ZodString>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ kind: "error" | "extension" | "step" | "run";
18
+ id?: string | undefined;
19
+ detail?: string | undefined;
20
+ }, {
21
+ kind: "error" | "extension" | "step" | "run";
22
+ id?: string | undefined;
23
+ detail?: string | undefined;
24
+ }>;
25
+ /** Structured harness assistant reply. @category Harness */
26
+ export declare const harnessReplySchema: z.ZodObject<{
27
+ schema: z.ZodLiteral<"@executioncontrolprotocol.harness.reply">;
28
+ /** Natural-language answer. */
29
+ answer: z.ZodString;
30
+ /** Optional structured citations. */
31
+ citations: z.ZodOptional<z.ZodArray<z.ZodObject<{
32
+ kind: z.ZodEnum<["step", "run", "extension", "error"]>;
33
+ id: z.ZodOptional<z.ZodString>;
34
+ detail: z.ZodOptional<z.ZodString>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ kind: "error" | "extension" | "step" | "run";
37
+ id?: string | undefined;
38
+ detail?: string | undefined;
39
+ }, {
40
+ kind: "error" | "extension" | "step" | "run";
41
+ id?: string | undefined;
42
+ detail?: string | undefined;
43
+ }>, "many">>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ schema: "@executioncontrolprotocol.harness.reply";
46
+ answer: string;
47
+ citations?: {
48
+ kind: "error" | "extension" | "step" | "run";
49
+ id?: string | undefined;
50
+ detail?: string | undefined;
51
+ }[] | undefined;
52
+ }, {
53
+ schema: "@executioncontrolprotocol.harness.reply";
54
+ answer: string;
55
+ citations?: {
56
+ kind: "error" | "extension" | "step" | "run";
57
+ id?: string | undefined;
58
+ detail?: string | undefined;
59
+ }[] | undefined;
60
+ }>;
61
+ /** Structured harness assistant reply type. @category Harness */
62
+ export type HarnessReply = z.infer<typeof harnessReplySchema>;
63
+ //# sourceMappingURL=harness-reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-reply.d.ts","sourceRoot":"","sources":["../src/harness-reply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,EAAG,yCAAkD,CAAA;AAE1F,oEAAoE;AACpE,eAAO,MAAM,gCAAgC;;;;;CAKnC,CAAA;AAEV,gDAAgD;AAChD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EASrC,CAAA;AAEF,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB;;IAE7B,+BAA+B;;IAE/B,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErC,CAAA;AAEF,iEAAiE;AACjE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { z } from "zod";
2
+ /** Harness reply document schema id. @category Harness */
3
+ export const ECP_HARNESS_REPLY_SCHEMA = "@executioncontrolprotocol.harness.reply";
4
+ /** Citation kind in harness assistant replies. @category Harness */
5
+ export const ECP_HARNESS_REPLY_CITATION_KINDS = {
6
+ STEP: "step",
7
+ RUN: "run",
8
+ EXTENSION: "extension",
9
+ ERROR: "error",
10
+ };
11
+ /** Harness reply citation. @category Harness */
12
+ export const harnessReplyCitationSchema = z.object({
13
+ kind: z.enum([
14
+ ECP_HARNESS_REPLY_CITATION_KINDS.STEP,
15
+ ECP_HARNESS_REPLY_CITATION_KINDS.RUN,
16
+ ECP_HARNESS_REPLY_CITATION_KINDS.EXTENSION,
17
+ ECP_HARNESS_REPLY_CITATION_KINDS.ERROR,
18
+ ]),
19
+ id: z.string().optional(),
20
+ detail: z.string().optional(),
21
+ });
22
+ /** Structured harness assistant reply. @category Harness */
23
+ export const harnessReplySchema = z.object({
24
+ schema: z.literal(ECP_HARNESS_REPLY_SCHEMA),
25
+ /** Natural-language answer. */
26
+ answer: z.string(),
27
+ /** Optional structured citations. */
28
+ citations: z.array(harnessReplyCitationSchema).optional(),
29
+ });
30
+ //# sourceMappingURL=harness-reply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-reply.js","sourceRoot":"","sources":["../src/harness-reply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,0DAA0D;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,yCAAkD,CAAA;AAE1F,oEAAoE;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;CACN,CAAA;AAEV,gDAAgD;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,gCAAgC,CAAC,IAAI;QACrC,gCAAgC,CAAC,GAAG;QACpC,gCAAgC,CAAC,SAAS;QAC1C,gCAAgC,CAAC,KAAK;KACvC,CAAC;IACF,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAA;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC3C,+BAA+B;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,qCAAqC;IACrC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAA"}