@executioncontrolprotocol/core 0.12.0 → 0.13.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 (156) hide show
  1. package/README.md +14 -0
  2. package/dist/browser-runtime-entry.d.ts +11 -2
  3. package/dist/browser-runtime-entry.d.ts.map +1 -1
  4. package/dist/browser-runtime-entry.js +10 -1
  5. package/dist/browser-runtime-entry.js.map +1 -1
  6. package/dist/compile/transpile.d.ts +6 -0
  7. package/dist/compile/transpile.d.ts.map +1 -1
  8. package/dist/compile/transpile.js +19 -8
  9. package/dist/compile/transpile.js.map +1 -1
  10. package/dist/definitions/capability.d.ts +4 -1
  11. package/dist/definitions/capability.d.ts.map +1 -1
  12. package/dist/definitions/capability.js +7 -0
  13. package/dist/definitions/capability.js.map +1 -1
  14. package/dist/definitions/types.d.ts +3 -1
  15. package/dist/definitions/types.d.ts.map +1 -1
  16. package/dist/encoding/schemas.d.ts +26 -26
  17. package/dist/environment/describe.d.ts +1 -2
  18. package/dist/environment/describe.d.ts.map +1 -1
  19. package/dist/environment/describe.js +2 -0
  20. package/dist/environment/describe.js.map +1 -1
  21. package/dist/environment/ecp.d.ts +8 -0
  22. package/dist/environment/ecp.d.ts.map +1 -1
  23. package/dist/environment/ecp.js +12 -0
  24. package/dist/environment/ecp.js.map +1 -1
  25. package/dist/environment/environment.d.ts +31 -0
  26. package/dist/environment/environment.d.ts.map +1 -1
  27. package/dist/environment/environment.js +64 -1
  28. package/dist/environment/environment.js.map +1 -1
  29. package/dist/file/file-ref.d.ts +28 -0
  30. package/dist/file/file-ref.d.ts.map +1 -0
  31. package/dist/{image/image-ref.js → file/file-ref.js} +20 -20
  32. package/dist/file/file-ref.js.map +1 -0
  33. package/dist/fluent/render-workflow.d.ts +1 -1
  34. package/dist/fluent/render-workflow.d.ts.map +1 -1
  35. package/dist/fluent/render-workflow.js +5 -4
  36. package/dist/fluent/render-workflow.js.map +1 -1
  37. package/dist/harness/authoring/context-policy.d.ts.map +1 -1
  38. package/dist/harness/authoring/context-policy.js +2 -2
  39. package/dist/harness/authoring/context-policy.js.map +1 -1
  40. package/dist/harness/authoring/index.d.ts +1 -1
  41. package/dist/harness/authoring/index.d.ts.map +1 -1
  42. package/dist/harness/authoring/index.js +1 -1
  43. package/dist/harness/authoring/index.js.map +1 -1
  44. package/dist/harness/authoring/summarize-capability-schema.d.ts.map +1 -1
  45. package/dist/harness/authoring/summarize-capability-schema.js +14 -10
  46. package/dist/harness/authoring/summarize-capability-schema.js.map +1 -1
  47. package/dist/harness/authoring/summarize-environment.d.ts +11 -0
  48. package/dist/harness/authoring/summarize-environment.d.ts.map +1 -1
  49. package/dist/harness/authoring/summarize-environment.js +55 -10
  50. package/dist/harness/authoring/summarize-environment.js.map +1 -1
  51. package/dist/harness/authoring/summarize-workflow.d.ts +2 -0
  52. package/dist/harness/authoring/summarize-workflow.d.ts.map +1 -1
  53. package/dist/harness/authoring/summarize-workflow.js +40 -1
  54. package/dist/harness/authoring/summarize-workflow.js.map +1 -1
  55. package/dist/harness/execute-harness.d.ts.map +1 -1
  56. package/dist/harness/execute-harness.js +14 -10
  57. package/dist/harness/execute-harness.js.map +1 -1
  58. package/dist/harness/prompts/eql-primer.d.ts +1 -0
  59. package/dist/harness/prompts/eql-primer.d.ts.map +1 -1
  60. package/dist/harness/prompts/eql-primer.js +22 -0
  61. package/dist/harness/prompts/eql-primer.js.map +1 -1
  62. package/dist/harness/prompts/typescript-primer.d.ts.map +1 -1
  63. package/dist/harness/prompts/typescript-primer.js +15 -3
  64. package/dist/harness/prompts/typescript-primer.js.map +1 -1
  65. package/dist/index.d.ts +12 -3
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +11 -2
  68. package/dist/index.js.map +1 -1
  69. package/dist/invoke/execute-invoke.d.ts.map +1 -1
  70. package/dist/invoke/execute-invoke.js +20 -6
  71. package/dist/invoke/execute-invoke.js.map +1 -1
  72. package/dist/loaders/files.d.ts.map +1 -1
  73. package/dist/loaders/files.js +4 -2
  74. package/dist/loaders/files.js.map +1 -1
  75. package/dist/loaders/read-media-file.d.ts +6 -0
  76. package/dist/loaders/read-media-file.d.ts.map +1 -0
  77. package/dist/loaders/read-media-file.js +10 -0
  78. package/dist/loaders/read-media-file.js.map +1 -0
  79. package/dist/media/artifact-filename.d.ts +41 -0
  80. package/dist/media/artifact-filename.d.ts.map +1 -0
  81. package/dist/media/artifact-filename.js +119 -0
  82. package/dist/media/artifact-filename.js.map +1 -0
  83. package/dist/media/assert-media-type.d.ts +11 -0
  84. package/dist/media/assert-media-type.d.ts.map +1 -0
  85. package/dist/media/assert-media-type.js +43 -0
  86. package/dist/media/assert-media-type.js.map +1 -0
  87. package/dist/media/index.d.ts +13 -0
  88. package/dist/media/index.d.ts.map +1 -0
  89. package/dist/media/index.js +13 -0
  90. package/dist/media/index.js.map +1 -0
  91. package/dist/media/resolve-file.d.ts +32 -0
  92. package/dist/media/resolve-file.d.ts.map +1 -0
  93. package/dist/media/resolve-file.js +110 -0
  94. package/dist/media/resolve-file.js.map +1 -0
  95. package/dist/media/write-media.d.ts +19 -0
  96. package/dist/media/write-media.d.ts.map +1 -0
  97. package/dist/media/write-media.js +46 -0
  98. package/dist/media/write-media.js.map +1 -0
  99. package/dist/patch/patch-document.d.ts +2 -2
  100. package/dist/runtime/artifacts.d.ts +31 -0
  101. package/dist/runtime/artifacts.d.ts.map +1 -0
  102. package/dist/runtime/artifacts.js +26 -0
  103. package/dist/runtime/artifacts.js.map +1 -0
  104. package/dist/runtime/blobs.d.ts +72 -0
  105. package/dist/runtime/blobs.d.ts.map +1 -0
  106. package/dist/runtime/blobs.js +129 -0
  107. package/dist/runtime/blobs.js.map +1 -0
  108. package/dist/runtime/capability-execution.d.ts +22 -0
  109. package/dist/runtime/capability-execution.d.ts.map +1 -0
  110. package/dist/runtime/capability-execution.js +25 -0
  111. package/dist/runtime/capability-execution.js.map +1 -0
  112. package/dist/runtime/context.d.ts +9 -1
  113. package/dist/runtime/context.d.ts.map +1 -1
  114. package/dist/runtime/context.js.map +1 -1
  115. package/dist/runtime/dispatch-capability.d.ts +42 -0
  116. package/dist/runtime/dispatch-capability.d.ts.map +1 -0
  117. package/dist/runtime/dispatch-capability.js +94 -0
  118. package/dist/runtime/dispatch-capability.js.map +1 -0
  119. package/dist/runtime/executor.d.ts +9 -0
  120. package/dist/runtime/executor.d.ts.map +1 -1
  121. package/dist/runtime/in-memory-executor.d.ts.map +1 -1
  122. package/dist/runtime/in-memory-executor.js +67 -8
  123. package/dist/runtime/in-memory-executor.js.map +1 -1
  124. package/dist/runtime/mixed-blob-upload.d.ts +37 -0
  125. package/dist/runtime/mixed-blob-upload.d.ts.map +1 -0
  126. package/dist/runtime/mixed-blob-upload.js +65 -0
  127. package/dist/runtime/mixed-blob-upload.js.map +1 -0
  128. package/dist/runtime/remote-invoke.d.ts +21 -0
  129. package/dist/runtime/remote-invoke.d.ts.map +1 -0
  130. package/dist/runtime/remote-invoke.js +83 -0
  131. package/dist/runtime/remote-invoke.js.map +1 -0
  132. package/dist/runtime/runtime-ids.d.ts +5 -0
  133. package/dist/runtime/runtime-ids.d.ts.map +1 -0
  134. package/dist/runtime/runtime-ids.js +5 -0
  135. package/dist/runtime/runtime-ids.js.map +1 -0
  136. package/dist/schema/json-schema.d.ts +12 -4
  137. package/dist/schema/json-schema.d.ts.map +1 -1
  138. package/dist/schema/json-schema.js +40 -7
  139. package/dist/schema/json-schema.js.map +1 -1
  140. package/dist/testing/test-extension.d.ts.map +1 -1
  141. package/dist/testing/test-extension.js +6 -0
  142. package/dist/testing/test-extension.js.map +1 -1
  143. package/dist/testing/test-lifecycle-extension.d.ts +3 -1
  144. package/dist/testing/test-lifecycle-extension.d.ts.map +1 -1
  145. package/dist/testing/test-lifecycle-extension.js +7 -1
  146. package/dist/testing/test-lifecycle-extension.js.map +1 -1
  147. package/dist/validate/environment.d.ts.map +1 -1
  148. package/dist/validate/environment.js +26 -4
  149. package/dist/validate/environment.js.map +1 -1
  150. package/dist/validate/workflow-schema.d.ts +6 -6
  151. package/fixtures/schema-examples/workflow.output.eql +6 -2
  152. package/fixtures/schema-examples/workflow.output.json +17 -3
  153. package/package.json +6 -6
  154. package/dist/image/image-ref.d.ts +0 -28
  155. package/dist/image/image-ref.d.ts.map +0 -1
  156. package/dist/image/image-ref.js.map +0 -1
@@ -17,28 +17,34 @@ export const testExtension = defineExtension("@executioncontrolprotocol", "test"
17
17
  capabilityFor("@executioncontrolprotocol/test", "echo")
18
18
  .withInput(z.object({ value: z.unknown().optional() }))
19
19
  .withOutput(z.object({ echo: z.unknown() }))
20
+ .withExecution("local")
20
21
  .withHandler(async (input) => ({
21
22
  echo: input.value ?? "hi",
22
23
  })),
23
24
  capabilityFor("@executioncontrolprotocol/test", "generate")
24
25
  .withInput(modelGenerateInputSchema)
25
26
  .withOutput(modelGenerateOutputSchema)
27
+ .withExecution("local")
26
28
  .withHandler(async (input) => testModelGenerateHandler(input)),
27
29
  capabilityFor("@executioncontrolprotocol/test", "summarize")
28
30
  .withInput(TestStubInput)
29
31
  .withOutput(TestStubOutput)
32
+ .withExecution("local")
30
33
  .withHandler(async (input) => testStubHandler(input)),
31
34
  capabilityFor("@executioncontrolprotocol/test", "translate")
32
35
  .withInput(TestStubInput)
33
36
  .withOutput(TestStubOutput)
37
+ .withExecution("local")
34
38
  .withHandler(async (input) => testStubHandler(input)),
35
39
  capabilityFor("@executioncontrolprotocol/test", "notify")
36
40
  .withInput(TestStubInput)
37
41
  .withOutput(TestStubOutput)
42
+ .withExecution("local")
38
43
  .withHandler(async (input) => testStubHandler(input)),
39
44
  capabilityFor("@executioncontrolprotocol/test", "validate")
40
45
  .withInput(TestStubInput)
41
46
  .withOutput(TestStubOutput)
47
+ .withExecution("local")
42
48
  .withHandler(async (input) => testStubHandler(input)),
43
49
  ])
44
50
  .build();
@@ -1 +1 @@
1
- {"version":3,"file":"test-extension.js","sourceRoot":"","sources":["../../src/testing/test-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-extension.js","sourceRoot":"","sources":["../../src/testing/test-extension.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import type { LifecycleEvent } from "@executioncontrolprotocol/types";
1
+ import type { LifecycleEvent, ValidationIssue } from "@executioncontrolprotocol/types";
2
2
  /** Recorded extension lifecycle hook events (reset via `resetLifecycleSpy()`). */
3
3
  export declare const lifecycleSpyEvents: LifecycleEvent[];
4
+ /** Diagnostics from the most recent `step:failed` hook invocation. */
5
+ export declare let lifecycleSpyLastStepFailedDiagnostics: ValidationIssue[] | undefined;
4
6
  /** Capability invocation count for spy capabilities. */
5
7
  export declare let capabilityInvokeCount: number;
6
8
  /** Reset spy state between tests. */
@@ -1 +1 @@
1
- {"version":3,"file":"test-lifecycle-extension.d.ts","sourceRoot":"","sources":["../../src/testing/test-lifecycle-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAQrE,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAAO,CAAA;AAEtD,wDAAwD;AACxD,eAAO,IAAI,qBAAqB,QAAI,CAAA;AAEpC,qCAAqC;AACrC,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAQD,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,2DAmCxB,CAAA;AAIV,2DAA2D;AAC3D,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAInE"}
1
+ {"version":3,"file":"test-lifecycle-extension.d.ts","sourceRoot":"","sources":["../../src/testing/test-lifecycle-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAQtF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAAO,CAAA;AAEtD,sEAAsE;AACtE,eAAO,IAAI,qCAAqC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAA;AAE/E,wDAAwD;AACxD,eAAO,IAAI,qBAAqB,QAAI,CAAA;AAEpC,qCAAqC;AACrC,wBAAgB,iBAAiB,IAAI,IAAI,CAIxC;AAWD,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,2DAmCxB,CAAA;AAIV,2DAA2D;AAC3D,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAInE"}
@@ -6,16 +6,22 @@ import { globalRegistry } from "../registry/registry.js";
6
6
  import { z } from "zod";
7
7
  /** Recorded extension lifecycle hook events (reset via `resetLifecycleSpy()`). */
8
8
  export const lifecycleSpyEvents = [];
9
+ /** Diagnostics from the most recent `step:failed` hook invocation. */
10
+ export let lifecycleSpyLastStepFailedDiagnostics;
9
11
  /** Capability invocation count for spy capabilities. */
10
12
  export let capabilityInvokeCount = 0;
11
13
  /** Reset spy state between tests. */
12
14
  export function resetLifecycleSpy() {
13
15
  lifecycleSpyEvents.length = 0;
16
+ lifecycleSpyLastStepFailedDiagnostics = undefined;
14
17
  capabilityInvokeCount = 0;
15
18
  }
16
19
  function spyHook(event) {
17
- return hook(event, async () => {
20
+ return hook(event, async (ctx) => {
18
21
  lifecycleSpyEvents.push(event);
22
+ if (event === "step:failed" && "diagnostics" in ctx) {
23
+ lifecycleSpyLastStepFailedDiagnostics = ctx.diagnostics;
24
+ }
19
25
  });
20
26
  }
21
27
  /** Lifecycle spy extension for conformance tests. @category Testing */
@@ -1 +1 @@
1
- {"version":3,"file":"test-lifecycle-extension.js","sourceRoot":"","sources":["../../src/testing/test-lifecycle-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-lifecycle-extension.js","sourceRoot":"","sources":["../../src/testing/test-lifecycle-extension.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/validate/environment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAGhH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAElE,oDAAoD;AACpD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,qBAAqB,EACjC,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CA0BlB"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/validate/environment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAGhH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AA8BlE,oDAAoD;AACpD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,qBAAqB,EACjC,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CA2BlB"}
@@ -1,18 +1,40 @@
1
1
  import { LATEST_ECP_VERSION } from "@executioncontrolprotocol/types";
2
2
  import { globalRegistry } from "../registry/registry.js";
3
3
  import { validateWorkflow } from "./workflow.js";
4
+ import { isBrowserRuntimeId, resolveCapabilityExecution, } from "../runtime/capability-execution.js";
5
+ /**
6
+ * Whether a bound extension may live in this environment runtime.
7
+ * Node-only packages are allowed on the browser when every capability is
8
+ * `host` or `mixed` (catalog + hop / mixed tab work).
9
+ */
10
+ function extensionCompatibleWithRuntime(extId, runtimeId) {
11
+ const def = globalRegistry.getExtension(extId);
12
+ const supported = def?.supportedRuntimes;
13
+ if (!supported?.length || supported.includes(runtimeId)) {
14
+ return true;
15
+ }
16
+ if (!isBrowserRuntimeId(runtimeId) || !def) {
17
+ return false;
18
+ }
19
+ // Browser may bind host/mixed catalogs that execute on `ecp up`.
20
+ return def.capabilities.every((cap) => {
21
+ const execution = resolveCapabilityExecution(cap, def);
22
+ return execution === "host" || execution === "mixed";
23
+ });
24
+ }
4
25
  /** Validate workflow against a live environment. */
5
26
  export function validateEnvironmentWithWorkflow(workflow, descriptor, bindings) {
6
27
  const result = validateWorkflow(workflow, descriptor);
7
28
  const rtId = String(bindings.runtime.id);
8
29
  for (const ext of bindings.extensions) {
9
- const def = globalRegistry.getExtension(String(ext.id));
10
- const supported = def?.supportedRuntimes;
11
- if (supported?.length && !supported.includes(rtId)) {
30
+ const id = String(ext.id);
31
+ if (!extensionCompatibleWithRuntime(id, rtId)) {
32
+ const def = globalRegistry.getExtension(id);
33
+ const supported = def?.supportedRuntimes ?? [];
12
34
  result.valid = false;
13
35
  result.errors.push({
14
36
  code: "UNSUPPORTED_RUNTIME_EXTENSION",
15
- message: `Extension ${ext.id} does not support runtime ${rtId}. Supported: ${supported.join(", ")}`,
37
+ message: `Extension ${id} does not support runtime ${rtId}. Supported: ${supported.join(", ")}`,
16
38
  });
17
39
  }
18
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/validate/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGhD,oDAAoD;AACpD,MAAM,UAAU,+BAA+B,CAC7C,QAA0B,EAC1B,UAAiC,EACjC,QAA0B;IAE1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAExC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACvD,MAAM,SAAS,GAAG,GAAG,EAAE,iBAAiB,CAAA;QACxC,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAkC,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;YACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6BAA6B,IAAI,gBAAgB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACpG,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,iCAAiC,EAAE,CAAC;QAC/C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,yFAAyF;SACnG,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,CAAC,MAAM,GAAG,6CAA6C,CAAA;IAC7D,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAA;IACnC,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/validate/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAA;AAE3C;;;;GAIG;AACH,SAAS,8BAA8B,CACrC,KAAa,EACb,SAAiB;IAEjB,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,GAAG,EAAE,iBAAiB,CAAA;IACxC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAuC,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,iEAAiE;IACjE,OAAO,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACpC,MAAM,SAAS,GAAG,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACtD,OAAO,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,CAAA;IACtD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,+BAA+B,CAC7C,QAA0B,EAC1B,UAAiC,EACjC,QAA0B;IAE1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAExC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACzB,IAAI,CAAC,8BAA8B,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YAC3C,MAAM,SAAS,GAAG,GAAG,EAAE,iBAAiB,IAAI,EAAE,CAAA;YAC9C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;YACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,aAAa,EAAE,6BAA6B,IAAI,gBAAgB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAChG,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,iCAAiC,EAAE,CAAC;QAC/C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,yFAAyF;SACnG,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,CAAC,MAAM,GAAG,6CAA6C,CAAA;IAC7D,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAA;IACnC,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -122,7 +122,7 @@ export declare const stepNodeSchema: z.ZodObject<{
122
122
  uses: string;
123
123
  label?: string | undefined;
124
124
  type?: "step" | undefined;
125
- mode?: "replace" | "merge" | "append" | "create" | "version" | undefined;
125
+ mode?: "replace" | "merge" | "append" | "version" | "create" | undefined;
126
126
  input?: Record<string, unknown> | undefined;
127
127
  as?: string | undefined;
128
128
  when?: Record<string, unknown> | {
@@ -135,7 +135,7 @@ export declare const stepNodeSchema: z.ZodObject<{
135
135
  uses: string;
136
136
  label?: string | undefined;
137
137
  type?: "step" | undefined;
138
- mode?: "replace" | "merge" | "append" | "create" | "version" | undefined;
138
+ mode?: "replace" | "merge" | "append" | "version" | "create" | undefined;
139
139
  input?: Record<string, unknown> | undefined;
140
140
  as?: string | undefined;
141
141
  when?: Record<string, unknown> | {
@@ -327,24 +327,24 @@ export declare const workflowManifestSchema: z.ZodObject<{
327
327
  }>;
328
328
  steps: z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">;
329
329
  }, "strict", z.ZodTypeAny, {
330
+ schema: "@executioncontrolprotocol.workflow";
331
+ version: string;
330
332
  workflow: {
331
333
  id: string;
332
334
  label?: string | undefined;
333
335
  accepts?: Record<string, unknown> | undefined;
334
336
  returns?: Record<string, unknown> | undefined;
335
337
  };
336
- version: string;
337
- schema: "@executioncontrolprotocol.workflow";
338
338
  steps: unknown[];
339
339
  }, {
340
+ schema: "@executioncontrolprotocol.workflow";
341
+ version: string;
340
342
  workflow: {
341
343
  id: string;
342
344
  label?: string | undefined;
343
345
  accepts?: Record<string, unknown> | undefined;
344
346
  returns?: Record<string, unknown> | undefined;
345
347
  };
346
- version: string;
347
- schema: "@executioncontrolprotocol.workflow";
348
348
  steps: unknown[];
349
349
  }>;
350
350
  /** Parsed workflow manifest (inferred from {@link workflowManifestSchema}). @category Validation */
@@ -1,5 +1,9 @@
1
- WORKFLOW minimal-echo "Minimal Echo"
1
+ WORKFLOW echo-from-input "Echo from input"
2
+ ACCEPTS
3
+ WITH value:string!
4
+ RETURNS
5
+ OUT echo:object!
2
6
  STEP echo USES @executioncontrolprotocol/test.echo
3
7
  LABEL "Echo"
4
- WITH value = "hello"
8
+ WITH value = REF value
5
9
  AS echo
@@ -2,8 +2,22 @@
2
2
  "schema": "@executioncontrolprotocol.workflow",
3
3
  "version": "1.0.0",
4
4
  "workflow": {
5
- "id": "minimal-echo",
6
- "label": "Minimal Echo"
5
+ "id": "echo-from-input",
6
+ "label": "Echo from input",
7
+ "accepts": {
8
+ "type": "object",
9
+ "properties": {
10
+ "value": { "type": "string" }
11
+ },
12
+ "required": ["value"]
13
+ },
14
+ "returns": {
15
+ "type": "object",
16
+ "properties": {
17
+ "echo": { "type": "object" }
18
+ },
19
+ "required": ["echo"]
20
+ }
7
21
  },
8
22
  "steps": [
9
23
  {
@@ -11,7 +25,7 @@
11
25
  "id": "echo",
12
26
  "label": "Echo",
13
27
  "uses": "@executioncontrolprotocol/test.echo",
14
- "input": { "value": "hello" },
28
+ "input": { "value": { "$ref": "state.value" } },
15
29
  "as": "echo"
16
30
  }
17
31
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@executioncontrolprotocol/core",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "ECP fluent API, environment, registry, and local runtime",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -94,10 +94,10 @@
94
94
  "build": "tsc -b"
95
95
  },
96
96
  "dependencies": {
97
- "@executioncontrolprotocol/types": "0.12.0"
97
+ "@executioncontrolprotocol/types": "0.13.0"
98
98
  },
99
99
  "peerDependencies": {
100
- "@executioncontrolprotocol/types": "^0.12.0",
100
+ "@executioncontrolprotocol/types": "^0.13.0",
101
101
  "zod": "^3.24.0"
102
102
  },
103
103
  "optionalDependencies": {
@@ -105,9 +105,9 @@
105
105
  "esbuild-wasm": "^0.25.0"
106
106
  },
107
107
  "devDependencies": {
108
- "@executioncontrolprotocol/browser-secrets": "0.12.0",
109
- "@executioncontrolprotocol/node": "0.12.0",
110
- "@executioncontrolprotocol/policies": "0.12.0",
108
+ "@executioncontrolprotocol/browser-secrets": "0.13.0",
109
+ "@executioncontrolprotocol/node": "0.13.0",
110
+ "@executioncontrolprotocol/policies": "0.13.0",
111
111
  "esbuild": "^0.25.0",
112
112
  "esbuild-wasm": "^0.25.0",
113
113
  "typescript": "^5.7.0",
@@ -1,28 +0,0 @@
1
- import { type ImageRef, type ImageRefKind } from "@executioncontrolprotocol/types";
2
- /** Whether `value` is an {@link ImageRef}. @category Image */
3
- export declare function isImageRef(value: unknown): value is ImageRef;
4
- /** Collected image reference with JSON path for policy diagnostics. @category Image */
5
- export interface CollectedImageRef {
6
- /** Path within the walked object (e.g. `image`, `variants[0].image`). */
7
- path: string;
8
- /** The image reference. */
9
- ref: ImageRef;
10
- }
11
- declare function isImageRefKind(value: unknown): value is ImageRefKind;
12
- /** Depth-first collect of all {@link ImageRef} values in a payload. @category Image */
13
- export declare function collectImageRefs(value: unknown, path?: string, out?: CollectedImageRef[]): CollectedImageRef[];
14
- /** Collected output format hint. @category Image */
15
- export interface CollectedFormatHint {
16
- /** Path to the format field. */
17
- path: string;
18
- /** Format value. */
19
- format: string;
20
- }
21
- /** Collect nested `format` and `info.format` string hints from output payloads. @category Image */
22
- export declare function collectOutputFormatHints(value: unknown, path?: string, out?: CollectedFormatHint[]): CollectedFormatHint[];
23
- /** Parse hostname from a URL image ref for domain policy checks. @category Image */
24
- export declare function imageRefUrlHostname(ref: ImageRef): string | undefined;
25
- /** Whether media type or format hint indicates SVG. @category Image */
26
- export declare function isSvgHint(mediaTypeOrFormat: string | undefined): boolean;
27
- export { isImageRefKind };
28
- //# sourceMappingURL=image-ref.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-ref.d.ts","sourceRoot":"","sources":["../../src/image/image-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAA;AAExC,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAS5D;AAED,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,GAAG,EAAE,QAAQ,CAAA;CACd;AAID,iBAAS,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAE7D;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,IAAI,SAAK,EACT,GAAG,GAAE,iBAAiB,EAAO,GAC5B,iBAAiB,EAAE,CAiBrB;AAED,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAID,mGAAmG;AACnG,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,IAAI,SAAK,EACT,GAAG,GAAE,mBAAmB,EAAO,GAC9B,mBAAmB,EAAE,CAgBvB;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAOrE;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIxE;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-ref.js","sourceRoot":"","sources":["../../src/image/image-ref.ts"],"names":[],"mappings":"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"}