@xyne/workflow-sdk 2.4.0 → 2.6.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 (63) hide show
  1. package/dist/ai-builder/client.d.ts +5 -2
  2. package/dist/ai-builder/client.d.ts.map +1 -1
  3. package/dist/ai-builder/client.js +7 -0
  4. package/dist/ai-builder/client.js.map +1 -1
  5. package/dist/ai-builder/index.d.ts +1 -1
  6. package/dist/ai-builder/index.d.ts.map +1 -1
  7. package/dist/ai-builder/index.js.map +1 -1
  8. package/dist/ai-builder/types.d.ts +19 -6
  9. package/dist/ai-builder/types.d.ts.map +1 -1
  10. package/dist/builder/index.d.ts +6 -3
  11. package/dist/builder/index.d.ts.map +1 -1
  12. package/dist/builder/index.js +4 -1
  13. package/dist/builder/index.js.map +1 -1
  14. package/dist/engine/config-validator.d.ts +8 -0
  15. package/dist/engine/config-validator.d.ts.map +1 -1
  16. package/dist/engine/config-validator.js +38 -15
  17. package/dist/engine/config-validator.js.map +1 -1
  18. package/dist/engine/variable-resolver.d.ts +9 -0
  19. package/dist/engine/variable-resolver.d.ts.map +1 -1
  20. package/dist/engine/variable-resolver.js +76 -0
  21. package/dist/engine/variable-resolver.js.map +1 -1
  22. package/dist/engine/workflow-executor.d.ts.map +1 -1
  23. package/dist/engine/workflow-executor.js +3 -3
  24. package/dist/engine/workflow-executor.js.map +1 -1
  25. package/dist/index.d.ts +6 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +6 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/persistence/in-memory-adapter.d.ts.map +1 -1
  30. package/dist/persistence/in-memory-adapter.js +5 -3
  31. package/dist/persistence/in-memory-adapter.js.map +1 -1
  32. package/dist/router/workflow-router.d.ts.map +1 -1
  33. package/dist/router/workflow-router.js +127 -6
  34. package/dist/router/workflow-router.js.map +1 -1
  35. package/dist/runtime/workflow-runtime.d.ts.map +1 -1
  36. package/dist/runtime/workflow-runtime.js +2 -2
  37. package/dist/runtime/workflow-runtime.js.map +1 -1
  38. package/dist/steps/builtin/wait.step.d.ts +11 -0
  39. package/dist/steps/builtin/wait.step.d.ts.map +1 -1
  40. package/dist/steps/builtin/wait.step.js +31 -0
  41. package/dist/steps/builtin/wait.step.js.map +1 -1
  42. package/dist/types/index.d.ts +1 -1
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/workflow-config.d.ts +20 -0
  45. package/dist/types/workflow-config.d.ts.map +1 -1
  46. package/dist/types/workflow-config.js.map +1 -1
  47. package/dist/util/citation-path.d.ts +39 -0
  48. package/dist/util/citation-path.d.ts.map +1 -0
  49. package/dist/util/citation-path.js +133 -0
  50. package/dist/util/citation-path.js.map +1 -0
  51. package/dist/util/pause-form-schema.d.ts +20 -0
  52. package/dist/util/pause-form-schema.d.ts.map +1 -0
  53. package/dist/util/pause-form-schema.js +25 -0
  54. package/dist/util/pause-form-schema.js.map +1 -0
  55. package/dist/util/type-compat.d.ts +35 -0
  56. package/dist/util/type-compat.d.ts.map +1 -0
  57. package/dist/util/type-compat.js +54 -0
  58. package/dist/util/type-compat.js.map +1 -0
  59. package/dist/util/variable-ref.d.ts +22 -0
  60. package/dist/util/variable-ref.d.ts.map +1 -1
  61. package/dist/util/variable-ref.js +23 -4
  62. package/dist/util/variable-ref.js.map +1 -1
  63. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-config.js","sourceRoot":"","sources":["../../src/types/workflow-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-config.js","sourceRoot":"","sources":["../../src/types/workflow-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Stable addressing for author citations into a step's `config`.
3
+ *
4
+ * Citations are a documentation overlay stored on the step
5
+ * (`StepConfigBase.citations`), keyed by a **CitationPath** — a dotted path into
6
+ * `config` where array elements are addressed by a *stable* key (their `id`, else
7
+ * `name`), never by numeric index. This keeps citations attached across reorders
8
+ * and renames.
9
+ *
10
+ * reason
11
+ * form.fields[acha]
12
+ * display[sec_amt].value
13
+ *
14
+ * This module is the single source of truth for the CitationPath grammar — the
15
+ * contract between the builder (writer) and the reviewer/validator (readers) —
16
+ * sitting beside the `{{ref}}` grammar in `variable-ref.ts`.
17
+ */
18
+ export declare function ensureCitationPath(config: Record<string, unknown>, fieldPath: string, idGen?: () => string): string | null;
19
+ /**
20
+ * Read-only counterpart of {@link ensureCitationPath}: compute the stable path
21
+ * using *existing* `id`/`name` keys only — never mutates. Returns `null` if an
22
+ * array element along the path has no stable key yet (i.e. nothing was cited there).
23
+ * Used at render time to look up a field's citations.
24
+ */
25
+ export declare function tryCitationPath(config: Record<string, unknown>, fieldPath: string): string | null;
26
+ interface PathToken {
27
+ kind: 'key' | 'elem';
28
+ value: string;
29
+ }
30
+ /** Parse a CitationPath into ordered tokens (object keys + array-element ids). */
31
+ export declare function parseCitationPath(path: string): PathToken[];
32
+ /**
33
+ * Resolve a {@link CitationPath} against a step `config`, returning the addressed
34
+ * node (or `undefined` if it no longer exists). Read-only — used by the reviewer
35
+ * and validator. Robust to reorder because array elements are matched by stable key.
36
+ */
37
+ export declare function resolveCitationPath(config: Record<string, unknown>, path: string): unknown;
38
+ export {};
39
+ //# sourceMappingURL=citation-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation-path.d.ts","sourceRoot":"","sources":["../../src/util/citation-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAqEH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAM,MAAqB,GACjC,MAAM,GAAG,IAAI,CAEf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAEf;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAS3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAa1F"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Stable addressing for author citations into a step's `config`.
3
+ *
4
+ * Citations are a documentation overlay stored on the step
5
+ * (`StepConfigBase.citations`), keyed by a **CitationPath** — a dotted path into
6
+ * `config` where array elements are addressed by a *stable* key (their `id`, else
7
+ * `name`), never by numeric index. This keeps citations attached across reorders
8
+ * and renames.
9
+ *
10
+ * reason
11
+ * form.fields[acha]
12
+ * display[sec_amt].value
13
+ *
14
+ * This module is the single source of truth for the CitationPath grammar — the
15
+ * contract between the builder (writer) and the reviewer/validator (readers) —
16
+ * sitting beside the `{{ref}}` grammar in `variable-ref.ts`.
17
+ */
18
+ function isPlainObject(v) {
19
+ return v !== null && typeof v === 'object' && !Array.isArray(v);
20
+ }
21
+ /** Stable key for an array element: its `id`, else `name`. Undefined if neither. */
22
+ function stableKey(el) {
23
+ if (!isPlainObject(el))
24
+ return undefined;
25
+ const id = el['id'];
26
+ if (typeof id === 'string' && id.length > 0)
27
+ return id;
28
+ const name = el['name'];
29
+ if (typeof name === 'string' && name.length > 0)
30
+ return name;
31
+ return undefined;
32
+ }
33
+ function defaultIdGen() {
34
+ return `c_${Math.random().toString(36).slice(2, 9)}`;
35
+ }
36
+ /**
37
+ * Convert a builder field path (dotted, array-index based — e.g. `display.0.value`)
38
+ * into a stable {@link CitationPath} (e.g. `display[sec_amt].value`).
39
+ *
40
+ * Array elements are keyed by their `id`/`name`; if a cited element has neither, a
41
+ * stable `id` is **stamped onto it** (mutating `config`) via `idGen`. Used by the
42
+ * builder at authoring time. Returns `null` if the field path doesn't resolve.
43
+ *
44
+ * Contract for step authors: any array field whose elements may be cited must
45
+ * declare an `id` (or already carry a `name`) in its config schema. Otherwise the
46
+ * stamped `id` is an undeclared key that Zod strips on parse (or rejects under
47
+ * `.strict()`), breaking the citation link. Builtin example: WAIT's display rows
48
+ * declare `id?: string` precisely for this.
49
+ */
50
+ function buildPath(config, fieldPath, idGen) {
51
+ const segments = fieldPath.split('.').filter((s) => s.length > 0);
52
+ let node = config;
53
+ let path = '';
54
+ for (const seg of segments) {
55
+ if (Array.isArray(node)) {
56
+ const idx = Number(seg);
57
+ if (!Number.isInteger(idx) || idx < 0 || idx >= node.length)
58
+ return null;
59
+ const el = node[idx];
60
+ let key = stableKey(el);
61
+ if (key === undefined) {
62
+ if (idGen === null)
63
+ return null; // read-only: no stable key available
64
+ if (!isPlainObject(el))
65
+ return null; // can't stamp a scalar array element
66
+ key = idGen();
67
+ el['id'] = key;
68
+ }
69
+ path += `[${key}]`;
70
+ node = el;
71
+ }
72
+ else if (isPlainObject(node)) {
73
+ if (!(seg in node))
74
+ return null;
75
+ path += path === '' ? seg : `.${seg}`;
76
+ node = node[seg];
77
+ }
78
+ else {
79
+ return null;
80
+ }
81
+ }
82
+ return path;
83
+ }
84
+ export function ensureCitationPath(config, fieldPath, idGen = defaultIdGen) {
85
+ return buildPath(config, fieldPath, idGen);
86
+ }
87
+ /**
88
+ * Read-only counterpart of {@link ensureCitationPath}: compute the stable path
89
+ * using *existing* `id`/`name` keys only — never mutates. Returns `null` if an
90
+ * array element along the path has no stable key yet (i.e. nothing was cited there).
91
+ * Used at render time to look up a field's citations.
92
+ */
93
+ export function tryCitationPath(config, fieldPath) {
94
+ return buildPath(config, fieldPath, null);
95
+ }
96
+ const PATH_TOKEN_REGEX = /([^.[\]]+)|\[([^\]]+)\]/g;
97
+ /** Parse a CitationPath into ordered tokens (object keys + array-element ids). */
98
+ export function parseCitationPath(path) {
99
+ const tokens = [];
100
+ PATH_TOKEN_REGEX.lastIndex = 0;
101
+ let m;
102
+ while ((m = PATH_TOKEN_REGEX.exec(path)) !== null) {
103
+ if (m[2] !== undefined)
104
+ tokens.push({ kind: 'elem', value: m[2] });
105
+ else if (m[1] !== undefined)
106
+ tokens.push({ kind: 'key', value: m[1] });
107
+ }
108
+ return tokens;
109
+ }
110
+ /**
111
+ * Resolve a {@link CitationPath} against a step `config`, returning the addressed
112
+ * node (or `undefined` if it no longer exists). Read-only — used by the reviewer
113
+ * and validator. Robust to reorder because array elements are matched by stable key.
114
+ */
115
+ export function resolveCitationPath(config, path) {
116
+ let node = config;
117
+ for (const tok of parseCitationPath(path)) {
118
+ if (node === null || node === undefined)
119
+ return undefined;
120
+ if (tok.kind === 'key') {
121
+ if (!isPlainObject(node))
122
+ return undefined;
123
+ node = node[tok.value];
124
+ }
125
+ else {
126
+ if (!Array.isArray(node))
127
+ return undefined;
128
+ node = node.find((el) => stableKey(el) === tok.value);
129
+ }
130
+ }
131
+ return node;
132
+ }
133
+ //# sourceMappingURL=citation-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation-path.js","sourceRoot":"","sources":["../../src/util/citation-path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * pause-form-schema — derive a JSON Schema from a pause/approval form.
3
+ *
4
+ * The SDK owns both the `PauseForm` shape and the `ResumePayload` it produces,
5
+ * so the mapping from "the form the user fills in" to "the type of the submitted
6
+ * values" lives here once, reusable by any step that surfaces a `PauseForm`
7
+ * (today the WAIT step, via its `resolveOutputJsonSchema`). Form values are
8
+ * submitted under `ResumePayload.data` keyed by each field's `name`, so the
9
+ * returned schema is the shape of that `data` object.
10
+ */
11
+ import type { PauseForm, PauseFormField } from '../types/pause-state.js';
12
+ /** Map a pause-form field type to the JSON Schema scalar kind of its value. */
13
+ export declare function jsonTypeForFormField(type: PauseFormField['type']): string;
14
+ /**
15
+ * JSON Schema for the values submitted by a `PauseForm` — an object keyed by
16
+ * each field's `name`. Left open (`additionalProperties: true`) since a host
17
+ * may include extra keys beyond the declared fields.
18
+ */
19
+ export declare function pauseFormToJsonSchema(form: PauseForm): Record<string, unknown>;
20
+ //# sourceMappingURL=pause-form-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pause-form-schema.d.ts","sourceRoot":"","sources":["../../src/util/pause-form-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzE,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,CAUzE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM9E"}
@@ -0,0 +1,25 @@
1
+ /** Map a pause-form field type to the JSON Schema scalar kind of its value. */
2
+ export function jsonTypeForFormField(type) {
3
+ switch (type) {
4
+ case 'number':
5
+ return 'number';
6
+ case 'checkbox':
7
+ return 'boolean';
8
+ // text / textarea / select all submit string values
9
+ default:
10
+ return 'string';
11
+ }
12
+ }
13
+ /**
14
+ * JSON Schema for the values submitted by a `PauseForm` — an object keyed by
15
+ * each field's `name`. Left open (`additionalProperties: true`) since a host
16
+ * may include extra keys beyond the declared fields.
17
+ */
18
+ export function pauseFormToJsonSchema(form) {
19
+ const properties = {};
20
+ for (const field of form.fields) {
21
+ properties[field.name] = { type: jsonTypeForFormField(field.type), title: field.name };
22
+ }
23
+ return { type: 'object', properties, additionalProperties: true };
24
+ }
25
+ //# sourceMappingURL=pause-form-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pause-form-schema.js","sourceRoot":"","sources":["../../src/util/pause-form-schema.ts"],"names":[],"mappings":"AAYA,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,IAA4B;IAC/D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,SAAS,CAAC;QACnB,oDAAoD;QACpD;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAe;IACnD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACzF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AACpE,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * type-compat — the single source of truth for "can a `{{ref}}` of one type be
3
+ * bound into a field of another type?"
4
+ *
5
+ * This rule is enforced in three layers that must never drift:
6
+ * - the builder's variable picker (UI, JSON-Schema side) — which refs to offer;
7
+ * - the config validator (`TYPE_MISMATCH`, JSON-Schema source vs Zod consumer);
8
+ * - the runtime (coercion before `safeParse`).
9
+ *
10
+ * It is expressed over a **neutral** `TypeKind`, NOT Zod or JSON-Schema types,
11
+ * because it straddles both worlds: the consumer side is Zod, but the source
12
+ * side is JSON Schema that crosses the wire to the browser (no Zod instance
13
+ * there). Each world maps *into* `TypeKind` via its own adapter
14
+ * (`jsonSchemaKind` / `zodConsumerKind` in the validator); this module never
15
+ * touches a schema object. This is a deliberate anti-corruption boundary, and
16
+ * keeps the predicate serializable and Zod-version-agnostic.
17
+ */
18
+ /** The neutral, coarse type vocabulary both schema worlds normalize into. */
19
+ export declare const TYPE_KINDS: readonly ["string", "number", "boolean", "array", "object", "scalar", "unknown"];
20
+ export type TypeKind = (typeof TYPE_KINDS)[number];
21
+ /**
22
+ * Can a value of `source` kind be bound into a `target` (consumer) kind field?
23
+ *
24
+ * Loose by design (matches the validator's long-standing rule):
25
+ * - `unknown`/freeform on either side is always compatible (can't be checked);
26
+ * - any source coerces into a `string` target — string is the universal sink
27
+ * (templates stringify, and the runtime stringifies pure refs too);
28
+ * - equal kinds are compatible;
29
+ * - scalar↔scalar is compatible (number↔enum, etc.).
30
+ *
31
+ * Notably strict: `array`/`object` only accept their own kind (or a `string`
32
+ * target, or an `unknown` either side).
33
+ */
34
+ export declare function kindsCompatible(source: TypeKind, target: TypeKind): boolean;
35
+ //# sourceMappingURL=type-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-compat.d.ts","sourceRoot":"","sources":["../../src/util/type-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,UAAU,kFAWb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAInD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAK3E"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * type-compat — the single source of truth for "can a `{{ref}}` of one type be
3
+ * bound into a field of another type?"
4
+ *
5
+ * This rule is enforced in three layers that must never drift:
6
+ * - the builder's variable picker (UI, JSON-Schema side) — which refs to offer;
7
+ * - the config validator (`TYPE_MISMATCH`, JSON-Schema source vs Zod consumer);
8
+ * - the runtime (coercion before `safeParse`).
9
+ *
10
+ * It is expressed over a **neutral** `TypeKind`, NOT Zod or JSON-Schema types,
11
+ * because it straddles both worlds: the consumer side is Zod, but the source
12
+ * side is JSON Schema that crosses the wire to the browser (no Zod instance
13
+ * there). Each world maps *into* `TypeKind` via its own adapter
14
+ * (`jsonSchemaKind` / `zodConsumerKind` in the validator); this module never
15
+ * touches a schema object. This is a deliberate anti-corruption boundary, and
16
+ * keeps the predicate serializable and Zod-version-agnostic.
17
+ */
18
+ /** The neutral, coarse type vocabulary both schema worlds normalize into. */
19
+ export const TYPE_KINDS = [
20
+ 'string',
21
+ 'number',
22
+ 'boolean',
23
+ 'array',
24
+ 'object',
25
+ // `scalar` is an intentional coarsening bucket (enum / literal / date) so the
26
+ // loose scalar↔scalar rule below has a single home.
27
+ 'scalar',
28
+ // `unknown` = freeform / no declared type / union — unverifiable, so wildcard.
29
+ 'unknown',
30
+ ];
31
+ const SCALAR_KINDS = new Set(['string', 'number', 'boolean', 'scalar']);
32
+ /**
33
+ * Can a value of `source` kind be bound into a `target` (consumer) kind field?
34
+ *
35
+ * Loose by design (matches the validator's long-standing rule):
36
+ * - `unknown`/freeform on either side is always compatible (can't be checked);
37
+ * - any source coerces into a `string` target — string is the universal sink
38
+ * (templates stringify, and the runtime stringifies pure refs too);
39
+ * - equal kinds are compatible;
40
+ * - scalar↔scalar is compatible (number↔enum, etc.).
41
+ *
42
+ * Notably strict: `array`/`object` only accept their own kind (or a `string`
43
+ * target, or an `unknown` either side).
44
+ */
45
+ export function kindsCompatible(source, target) {
46
+ if (source === 'unknown' || target === 'unknown')
47
+ return true;
48
+ if (target === 'string')
49
+ return true;
50
+ if (source === target)
51
+ return true;
52
+ return SCALAR_KINDS.has(source) && SCALAR_KINDS.has(target);
53
+ }
54
+ //# sourceMappingURL=type-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-compat.js","sourceRoot":"","sources":["../../src/util/type-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,8EAA8E;IAC9E,oDAAoD;IACpD,QAAQ;IACR,+EAA+E;IAC/E,SAAS;CACD,CAAC;AAIX,MAAM,YAAY,GAAG,IAAI,GAAG,CAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAElF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,MAAgB,EAAE,MAAgB;IAChE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC"}
@@ -50,6 +50,28 @@ export interface FoundRef {
50
50
  * (strings, arrays, objects). Used by the config validator to flag unresolvable refs.
51
51
  */
52
52
  export declare function collectRefs(value: unknown, prefix: string): FoundRef[];
53
+ /**
54
+ * Parsed view of a ref path's head. Mirrors the branching in
55
+ * `resolvePath` (engine/variable-resolver.ts) — the single rule for how a
56
+ * dotted ref maps to a source:
57
+ *
58
+ * trigger.x.y → { source: 'trigger', path: 'x.y' }
59
+ * workflow.id → { source: 'workflow', path: 'id' }
60
+ * steps.stepId.output.field → { source: 'step', stepId, path: 'output.field' }
61
+ * stepId.output.field → { source: 'step', stepId, path: 'output.field' } (shorthand)
62
+ *
63
+ * Transient/derived — never persisted. `path` is the remainder after the head
64
+ * (and stepId for step refs), e.g. `output.body.status`.
65
+ */
66
+ export interface ParsedRef {
67
+ source: 'step' | 'trigger' | 'workflow';
68
+ /** Producing step id — present iff `source === 'step'`. */
69
+ stepId?: string | undefined;
70
+ /** Sub-path after the head/stepId, e.g. `output.body.status` or `rrn`. */
71
+ path?: string | undefined;
72
+ }
73
+ /** Parse a dotted ref path into its source/stepId/path. Pure; no context. */
74
+ export declare function parseRef(refPath: string): ParsedRef;
53
75
  /**
54
76
  * Find the ids of every step whose config references `stepId`'s output
55
77
  * (e.g. `{{stepId.output.x}}`). Used to warn before deleting a referenced step.
@@ -1 +1 @@
1
- {"version":3,"file":"variable-ref.d.ts","sourceRoot":"","sources":["../../src/util/variable-ref.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,6BAA6B,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAkC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAK/C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAoB1D;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3D;AAED,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAItE;AA4FD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrF"}
1
+ {"version":3,"file":"variable-ref.d.ts","sourceRoot":"","sources":["../../src/util/variable-ref.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,6BAA6B,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAkC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAK/C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAoB1D;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3D;AAED,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAItE;AA0BD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACxC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAoBnD;AAkED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrF"}
@@ -86,6 +86,27 @@ function walk(value, prefix, out) {
86
86
  }
87
87
  }
88
88
  }
89
+ /** Parse a dotted ref path into its source/stepId/path. Pure; no context. */
90
+ export function parseRef(refPath) {
91
+ const segments = refPath.split('.').filter((s) => s.length > 0);
92
+ const head = segments[0];
93
+ if (head === 'trigger' || head === 'workflow') {
94
+ return { source: head, path: segments.slice(1).join('.') || undefined };
95
+ }
96
+ if (head === 'steps') {
97
+ return {
98
+ source: 'step',
99
+ stepId: segments[1],
100
+ path: segments.slice(2).join('.') || undefined,
101
+ };
102
+ }
103
+ // Shorthand: bare step id → context.steps[id]
104
+ return {
105
+ source: 'step',
106
+ stepId: head,
107
+ path: segments.slice(1).join('.') || undefined,
108
+ };
109
+ }
89
110
  // ─── Reference integrity (who points at a given step) ───
90
111
  function isStepLike(v) {
91
112
  return (!!v &&
@@ -95,10 +116,8 @@ function isStepLike(v) {
95
116
  }
96
117
  /** True if a ref path targets `stepId` (`stepId.…` shorthand or `steps.stepId.…`). */
97
118
  function refTargetsStep(refPath, stepId) {
98
- return (refPath === stepId ||
99
- refPath.startsWith(`${stepId}.`) ||
100
- refPath === `steps.${stepId}` ||
101
- refPath.startsWith(`steps.${stepId}.`));
119
+ const parsed = parseRef(refPath);
120
+ return parsed.source === 'step' && parsed.stepId === stepId;
102
121
  }
103
122
  /**
104
123
  * Collect ref paths from a step's OWN config, NOT descending into nested step
@@ -1 +1 @@
1
- {"version":3,"file":"variable-ref.js","sourceRoot":"","sources":["../../src/util/variable-ref.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAAiB,CAAC;AAMjE,gEAAgE;AAChE,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;IAE1B,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;IACpC,CAAC;IACD,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,CAAC,GAAG,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACxB,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,MAAc;IACxD,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,MAAc,EAAE,GAAe;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;QAC1B,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,2DAA2D;AAE3D,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,CACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAQ,CAAsB,CAAC,EAAE,KAAK,QAAQ;QAC9C,OAAQ,CAAwB,CAAC,IAAI,KAAK,QAAQ,CACnD,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,SAAS,cAAc,CAAC,OAAe,EAAE,MAAc;IACrD,OAAO,CACL,OAAO,KAAK,MAAM;QAClB,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC;QAChC,OAAO,KAAK,SAAS,MAAM,EAAE;QAC7B,OAAO,CAAC,UAAU,CAAC,SAAS,MAAM,GAAG,CAAC,CACvC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAAc,EAAE,GAAa;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,yCAAyC;YACzE,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,EAAE,CAAC;YAChE,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,SAAS,SAAS,CAAC,KAAc,EAAE,KAAyC;IAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,CAAC;gBACZ,SAAS,CAAE,IAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,EAAE,CAAC;YAChE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB,EAAE,MAAc;IACzE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM;YAAE,OAAO;QAC/B,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,kBAAkB,CAAE,IAA6B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"variable-ref.js","sourceRoot":"","sources":["../../src/util/variable-ref.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyne/workflow-sdk",
3
- "version": "2.4.0",
3
+ "version": "2.6.0",
4
4
  "description": "Workflow engine SDK — steps, triggers, executor, agents, and a framework-agnostic HTTP router.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {