@intellia/workflow-sdk 0.1.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 (57) hide show
  1. package/README.md +66 -0
  2. package/dist/cjs/builder.js +336 -0
  3. package/dist/cjs/builder.js.map +1 -0
  4. package/dist/cjs/conditions.js +55 -0
  5. package/dist/cjs/conditions.js.map +1 -0
  6. package/dist/cjs/define-agent-ref.js +6 -0
  7. package/dist/cjs/define-agent-ref.js.map +1 -0
  8. package/dist/cjs/define-knowledge-base.js +6 -0
  9. package/dist/cjs/define-knowledge-base.js.map +1 -0
  10. package/dist/cjs/define-node.js +8 -0
  11. package/dist/cjs/define-node.js.map +1 -0
  12. package/dist/cjs/define-tool-workflow.js +34 -0
  13. package/dist/cjs/define-tool-workflow.js.map +1 -0
  14. package/dist/cjs/define-tool.js +6 -0
  15. package/dist/cjs/define-tool.js.map +1 -0
  16. package/dist/cjs/define-workflow.js +40 -0
  17. package/dist/cjs/define-workflow.js.map +1 -0
  18. package/dist/cjs/graph.js +3 -0
  19. package/dist/cjs/graph.js.map +1 -0
  20. package/dist/cjs/index.js +44 -0
  21. package/dist/cjs/index.js.map +1 -0
  22. package/dist/cjs/node-type-support.js +27 -0
  23. package/dist/cjs/node-type-support.js.map +1 -0
  24. package/dist/cjs/refs.js +52 -0
  25. package/dist/cjs/refs.js.map +1 -0
  26. package/dist/cjs/schema.js +67 -0
  27. package/dist/cjs/schema.js.map +1 -0
  28. package/dist/esm/builder.js +331 -0
  29. package/dist/esm/builder.js.map +1 -0
  30. package/dist/esm/conditions.js +43 -0
  31. package/dist/esm/conditions.js.map +1 -0
  32. package/dist/esm/define-agent-ref.js +2 -0
  33. package/dist/esm/define-agent-ref.js.map +1 -0
  34. package/dist/esm/define-knowledge-base.js +2 -0
  35. package/dist/esm/define-knowledge-base.js.map +1 -0
  36. package/dist/esm/define-node.js +3 -0
  37. package/dist/esm/define-node.js.map +1 -0
  38. package/dist/esm/define-tool-workflow.js +30 -0
  39. package/dist/esm/define-tool-workflow.js.map +1 -0
  40. package/dist/esm/define-tool.js +2 -0
  41. package/dist/esm/define-tool.js.map +1 -0
  42. package/dist/esm/define-workflow.js +36 -0
  43. package/dist/esm/define-workflow.js.map +1 -0
  44. package/dist/esm/graph.js +1 -0
  45. package/dist/esm/graph.js.map +1 -0
  46. package/dist/esm/index.js +12 -0
  47. package/dist/esm/index.js.map +1 -0
  48. package/dist/esm/node-type-support.js +24 -0
  49. package/dist/esm/node-type-support.js.map +1 -0
  50. package/dist/esm/package.json +1 -0
  51. package/dist/esm/refs.js +42 -0
  52. package/dist/esm/refs.js.map +1 -0
  53. package/dist/esm/schema.js +62 -0
  54. package/dist/esm/schema.js.map +1 -0
  55. package/dist/index.d.ts +524 -0
  56. package/package.json +44 -0
  57. package/tsconfig.base.json +12 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-node.js","sourceRoot":"","sources":["../../src/define-node.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAO,IAAuB,EAAqB,EAAE,CAAC,IAAI,CAAC;AAiBzF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAI,IAA8B,EAA4B,EAAE,CAAC,IAAI,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Builder, IdAllocator } from "./builder";
2
+ import { handleFor } from "./refs";
3
+ export const defineToolWorkflow = (spec) => ({
4
+ record() {
5
+ var _a;
6
+ const ids = new IdAllocator();
7
+ if (typeof spec.endNodeId === "string")
8
+ ids.reserve(spec.endNodeId);
9
+ if (spec.outputNodeId !== undefined)
10
+ ids.reserve(spec.outputNodeId);
11
+ const root = new Builder(ids);
12
+ const output = spec.build(root, handleFor("$.results.trigger"));
13
+ return {
14
+ name: spec.name,
15
+ description: (_a = spec.description) !== null && _a !== void 0 ? _a : spec.name,
16
+ slug: spec.slug,
17
+ kind: "tool",
18
+ trigger: { type: "json", name: spec.triggerName, input: spec.input },
19
+ scope: root.scope,
20
+ output,
21
+ outputSchema: spec.output,
22
+ ids,
23
+ endNodeId: spec.endNodeId,
24
+ endNodeName: spec.endNodeName,
25
+ outputNodeId: spec.outputNodeId,
26
+ outputNodeName: spec.outputNodeName,
27
+ };
28
+ },
29
+ });
30
+ //# sourceMappingURL=define-tool-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-tool-workflow.js","sourceRoot":"","sources":["../../src/define-tool-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,SAAS,EAAe,MAAM,QAAQ,CAAC;AAuBhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAuC,EACvB,EAAE,CAAC,CAAC;IACpB,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAS,mBAAmB,CAAC,CAAC,CAAC;QAExE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI;YAC1C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YACpE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM;YACN,YAAY,EAAE,IAAI,CAAC,MAAM;YACzB,GAAG;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const defineTool = (spec) => spec;
2
+ //# sourceMappingURL=define-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../../src/define-tool.ts"],"names":[],"mappings":"AA8CA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAyC,IAKlE,EAAe,EAAE,CAAC,IAAI,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Builder, IdAllocator } from "./builder";
2
+ import { handleFor } from "./refs";
3
+ export const defineWorkflow = (spec) => ({
4
+ record() {
5
+ var _a, _b;
6
+ const ids = new IdAllocator();
7
+ // Reserved before `build()` runs, so a body node's auto-derived id
8
+ // yields to it (via allocate()'s suffixing) rather than claiming it
9
+ // first and making this throw.
10
+ if (typeof spec.endNodeId === "string")
11
+ ids.reserve(spec.endNodeId);
12
+ if (spec.outputNodeId !== undefined)
13
+ ids.reserve(spec.outputNodeId);
14
+ const root = new Builder(ids);
15
+ const trigger = handleFor("$.results.trigger");
16
+ const output = (_a = spec.build(root, trigger)) !== null && _a !== void 0 ? _a : undefined;
17
+ const failureScope = root.recordBranch(spec.onFailure);
18
+ const triggerSpec = { type: spec.trigger.type, name: spec.trigger.name, input: spec.trigger.input };
19
+ return {
20
+ name: spec.name,
21
+ description: (_b = spec.description) !== null && _b !== void 0 ? _b : spec.name,
22
+ slug: spec.slug,
23
+ kind: "standard",
24
+ trigger: triggerSpec,
25
+ scope: root.scope,
26
+ output,
27
+ onFailure: failureScope,
28
+ ids,
29
+ endNodeId: spec.endNodeId,
30
+ endNodeName: spec.endNodeName,
31
+ outputNodeId: spec.outputNodeId,
32
+ outputNodeName: spec.outputNodeName,
33
+ };
34
+ },
35
+ });
36
+ //# sourceMappingURL=define-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-workflow.js","sourceRoot":"","sources":["../../src/define-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,SAAS,EAAe,MAAM,QAAQ,CAAC;AAmBhD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAS,IAA0B,EAAkB,EAAE,CAAC,CAAC;IACrF,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,mEAAmE;QACnE,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAS,mBAAmB,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,SAAS,CAAC;QAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEjH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI;YAC1C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM;YACN,SAAS,EAAE,YAAY;YACvB,GAAG;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/graph.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export { z, toJsonSchema, artifact } from "./schema";
2
+ export { handleFor, isRef, refPath, isTpl, tplText, tpl, encodeValue, } from "./refs";
3
+ export { defineFunction, defineWholeStateFunction } from "./define-node";
4
+ export { defineTool } from "./define-tool";
5
+ export { defineKnowledgeBase } from "./define-knowledge-base";
6
+ export { defineAgentRef } from "./define-agent-ref";
7
+ export { Builder, IdAllocator } from "./builder";
8
+ export { defineWorkflow } from "./define-workflow";
9
+ export { eq, gt, gte, lt, lte, contains, isNull, isPresent, jsonata } from "./conditions";
10
+ export { defineToolWorkflow } from "./define-tool-workflow";
11
+ export { NODE_TYPE_SUPPORT } from "./node-type-support";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EACL,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,GAAG,EACH,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAUjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Builder } from "./builder";
2
+ export const NODE_TYPE_SUPPORT = {
3
+ trigger: {
4
+ status: "not-expressible",
5
+ reason: "Declared via defineWorkflow()'s `trigger` option (define-workflow.ts), not appended as a graph node — every workflow has exactly one, fixed at definition time, never authored mid-scope.",
6
+ },
7
+ approval: { status: "expressible", builder: Builder.prototype.approval },
8
+ conditional: { status: "expressible", builder: Builder.prototype.if },
9
+ end: {
10
+ status: "not-expressible",
11
+ reason: "Synthesized unconditionally by emitDefinition (workflow-compiler/src/emit.ts) as the workflow's implicit terminal node — every recorded scope needs exactly one, generated at emit time, never authored.",
12
+ },
13
+ noop: { status: "expressible", builder: Builder.prototype.noop },
14
+ agent: { status: "expressible", builder: Builder.prototype.agent },
15
+ "tool-call": { status: "expressible", builder: Builder.prototype.toolCall },
16
+ function: { status: "expressible", builder: Builder.prototype.function },
17
+ bash: { status: "expressible", builder: Builder.prototype.bash },
18
+ parallel: { status: "expressible", builder: Builder.prototype.parallel },
19
+ repeat: { status: "expressible", builder: Builder.prototype.forEach },
20
+ "wait-for-callback": { status: "expressible", builder: Builder.prototype.waitForCallback },
21
+ "set-output": { status: "expressible", builder: Builder.prototype.setOutput },
22
+ "execute-workflow": { status: "expressible", builder: Builder.prototype.executeWorkflow },
23
+ };
24
+ //# sourceMappingURL=node-type-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-type-support.js","sourceRoot":"","sources":["../../src/node-type-support.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,MAAM,CAAC,MAAM,iBAAiB,GAA8C;IAC1E,OAAO,EAAE;QACP,MAAM,EAAE,iBAAiB;QACzB,MAAM,EACJ,2LAA2L;KAC9L;IACD,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;IACxE,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE;IACrE,GAAG,EAAE;QACH,MAAM,EAAE,iBAAiB;QACzB,MAAM,EACJ,0MAA0M;KAC7M;IACD,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;IAChE,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE;IAClE,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;IAC3E,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;IACxE,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;IAChE,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;IACxE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;IACrE,mBAAmB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE;IAC1F,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE;IAC7E,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE;CACtC,CAAC"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,42 @@
1
+ const REF = Symbol.for("hutly.workflow.ref");
2
+ const TPL = Symbol.for("hutly.workflow.tpl");
3
+ export const isRef = (v) => typeof v === "object" && v !== null && REF in v;
4
+ export const refPath = (r) => r[REF];
5
+ export const isTpl = (v) => typeof v === "object" && v !== null && TPL in v;
6
+ export const tplText = (t) => t[TPL];
7
+ export const handleFor = (basePath) => new Proxy({}, {
8
+ get(_target, prop) {
9
+ if (prop === REF)
10
+ return basePath;
11
+ if (typeof prop === "symbol")
12
+ return undefined;
13
+ return handleFor(`${basePath}.${prop}`);
14
+ },
15
+ has(_target, prop) {
16
+ return prop === REF;
17
+ },
18
+ });
19
+ // Handlebars references the state root directly, with no leading `$.`.
20
+ const toHandlebars = (r) => `{{ ${refPath(r).replace(/^\$\./, "")} }}`;
21
+ export const tpl = (strings, ...vals) => {
22
+ let out = strings[0];
23
+ for (let i = 0; i < vals.length; i += 1) {
24
+ const v = vals[i];
25
+ out += isRef(v) ? toHandlebars(v) : String(v);
26
+ out += strings[i + 1];
27
+ }
28
+ return { [TPL]: out };
29
+ };
30
+ export const encodeValue = (v) => {
31
+ if (isRef(v))
32
+ return refPath(v);
33
+ if (isTpl(v))
34
+ return tplText(v);
35
+ if (Array.isArray(v))
36
+ return v.map(encodeValue);
37
+ if (v !== null && typeof v === "object") {
38
+ return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, encodeValue(x)]));
39
+ }
40
+ return v;
41
+ };
42
+ //# sourceMappingURL=refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/refs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { z } from "zod/v4";
2
+ export { z };
3
+ // `z.toJSONSchema` reads `.describe()`/`.meta()` metadata via `z.globalRegistry`
4
+ // — a per-zod-module-instance `WeakMap`. A schema built by a DIFFERENT zod
5
+ // module instance (e.g. bundled separately into a vm-executed workflow entry
6
+ // — see `workflow-compiler/src/execute.ts`) has its own registry, so that
7
+ // lookup silently finds nothing, even though structural fields
8
+ // (type/properties/required) still convert correctly via duck-typed access.
9
+ // The schema's own `.description` getter, though, is a closure bound to
10
+ // whichever registry actually holds the metadata, so reading it works
11
+ // regardless of which zod instance built the schema — it's a plain property
12
+ // read, not an identity check. This walks the zod schema's PUBLIC, documented
13
+ // shape accessors (`.def.type`, `.shape`, `.element`, `.unwrap()`) in
14
+ // parallel with the JSON Schema `z.toJSONSchema` already produced, backfilling
15
+ // any `description` the registry lookup missed. Covers the constructs the SDK
16
+ // and the real corpus actually use (object/array/optional/default); anything
17
+ // else (union, record, nullable's `anyOf` wrapping, ...) falls through
18
+ // unmerged — no worse than before this existed, just not extended to those.
19
+ const backfillDescriptions = (t, node) => {
20
+ var _a;
21
+ const description = t.description;
22
+ if (node.description === undefined && typeof description === "string") {
23
+ node.description = description;
24
+ }
25
+ const kind = (_a = t.def) === null || _a === void 0 ? void 0 : _a.type;
26
+ if (kind === "object" && node.properties) {
27
+ const shape = t.shape;
28
+ for (const [key, sub] of Object.entries(shape)) {
29
+ const propNode = node.properties[key];
30
+ if (propNode) {
31
+ backfillDescriptions(sub, propNode);
32
+ }
33
+ }
34
+ }
35
+ else if (kind === "array" && node.items) {
36
+ const element = t.element;
37
+ backfillDescriptions(element, node.items);
38
+ }
39
+ else if (kind === "optional" || kind === "default" || kind === "nonoptional") {
40
+ // These wrappers add no JSON Schema nesting level of their own (optional
41
+ // only affects `required`; default keeps the wrapped type's shape), so
42
+ // the inner schema's fields land at this SAME node.
43
+ const unwrap = t.unwrap;
44
+ if (typeof unwrap === "function") {
45
+ backfillDescriptions(unwrap(), node);
46
+ }
47
+ }
48
+ };
49
+ // The repo's ajv schemas and every hand-written workflow use draft-07; zod's
50
+ // default target is 2020-12, which ajv would reject.
51
+ export const toJsonSchema = (t) => {
52
+ const result = z.toJSONSchema(t, { target: "draft-7" });
53
+ backfillDescriptions(t, result);
54
+ return result;
55
+ };
56
+ // A pointer to bytes held out-of-band, so a large payload never rides the
57
+ // Step Functions state.
58
+ export const artifact = () => z.object({
59
+ artifactId: z.string().max(64),
60
+ filename: z.string().max(255),
61
+ });
62
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,CAAC,EAAE,CAAC;AAyCb,iFAAiF;AACjF,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,+DAA+D;AAC/D,4EAA4E;AAC5E,wEAAwE;AACxE,sEAAsE;AACtE,4EAA4E;AAC5E,8EAA8E;AAC9E,sEAAsE;AACtE,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,uEAAuE;AACvE,4EAA4E;AAC5E,MAAM,oBAAoB,GAAG,CAAC,CAAY,EAAE,IAAgB,EAAQ,EAAE;;IACpE,MAAM,WAAW,GAAI,CAA0C,CAAC,WAAW,CAAC;IAC5E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACtE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,MAAM,IAAI,GAAG,MAAC,CAA4C,CAAC,GAAG,0CAAE,IAAI,CAAC;IACrE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,KAAK,GAAI,CAAqD,CAAC,KAAK,CAAC;QAC3E,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,QAAQ,EAAE,CAAC;gBACb,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAI,CAAuC,CAAC,OAAO,CAAC;QACjE,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC/E,yEAAyE;QACzE,uEAAuE;QACvE,oDAAoD;QACpD,MAAM,MAAM,GAAI,CAA6C,CAAC,MAAM,CAAC;QACrE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,oBAAoB,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,6EAA6E;AAC7E,qDAAqD;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAY,EAAc,EAAE;IACvD,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAe,CAAC;IACtE,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,0EAA0E;AAC1E,wBAAwB;AACxB,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAC3B,CAAC,CAAC,MAAM,CAAC;IACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;CAC9B,CAAC,CAAC"}