@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.
- package/README.md +66 -0
- package/dist/cjs/builder.js +336 -0
- package/dist/cjs/builder.js.map +1 -0
- package/dist/cjs/conditions.js +55 -0
- package/dist/cjs/conditions.js.map +1 -0
- package/dist/cjs/define-agent-ref.js +6 -0
- package/dist/cjs/define-agent-ref.js.map +1 -0
- package/dist/cjs/define-knowledge-base.js +6 -0
- package/dist/cjs/define-knowledge-base.js.map +1 -0
- package/dist/cjs/define-node.js +8 -0
- package/dist/cjs/define-node.js.map +1 -0
- package/dist/cjs/define-tool-workflow.js +34 -0
- package/dist/cjs/define-tool-workflow.js.map +1 -0
- package/dist/cjs/define-tool.js +6 -0
- package/dist/cjs/define-tool.js.map +1 -0
- package/dist/cjs/define-workflow.js +40 -0
- package/dist/cjs/define-workflow.js.map +1 -0
- package/dist/cjs/graph.js +3 -0
- package/dist/cjs/graph.js.map +1 -0
- package/dist/cjs/index.js +44 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/node-type-support.js +27 -0
- package/dist/cjs/node-type-support.js.map +1 -0
- package/dist/cjs/refs.js +52 -0
- package/dist/cjs/refs.js.map +1 -0
- package/dist/cjs/schema.js +67 -0
- package/dist/cjs/schema.js.map +1 -0
- package/dist/esm/builder.js +331 -0
- package/dist/esm/builder.js.map +1 -0
- package/dist/esm/conditions.js +43 -0
- package/dist/esm/conditions.js.map +1 -0
- package/dist/esm/define-agent-ref.js +2 -0
- package/dist/esm/define-agent-ref.js.map +1 -0
- package/dist/esm/define-knowledge-base.js +2 -0
- package/dist/esm/define-knowledge-base.js.map +1 -0
- package/dist/esm/define-node.js +3 -0
- package/dist/esm/define-node.js.map +1 -0
- package/dist/esm/define-tool-workflow.js +30 -0
- package/dist/esm/define-tool-workflow.js.map +1 -0
- package/dist/esm/define-tool.js +2 -0
- package/dist/esm/define-tool.js.map +1 -0
- package/dist/esm/define-workflow.js +36 -0
- package/dist/esm/define-workflow.js.map +1 -0
- package/dist/esm/graph.js +1 -0
- package/dist/esm/graph.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/node-type-support.js +24 -0
- package/dist/esm/node-type-support.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/refs.js +42 -0
- package/dist/esm/refs.js.map +1 -0
- package/dist/esm/schema.js +62 -0
- package/dist/esm/schema.js.map +1 -0
- package/dist/index.d.ts +524 -0
- package/package.json +44 -0
- 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 @@
|
|
|
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"}
|
package/dist/esm/refs.js
ADDED
|
@@ -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"}
|