@xyne/workflow-sdk 2.5.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.
- package/dist/ai-builder/client.d.ts +5 -2
- package/dist/ai-builder/client.d.ts.map +1 -1
- package/dist/ai-builder/client.js +7 -0
- package/dist/ai-builder/client.js.map +1 -1
- package/dist/ai-builder/index.d.ts +1 -1
- package/dist/ai-builder/index.d.ts.map +1 -1
- package/dist/ai-builder/index.js.map +1 -1
- package/dist/ai-builder/types.d.ts +19 -6
- package/dist/ai-builder/types.d.ts.map +1 -1
- package/dist/builder/index.d.ts +6 -3
- package/dist/builder/index.d.ts.map +1 -1
- package/dist/builder/index.js +4 -1
- package/dist/builder/index.js.map +1 -1
- package/dist/engine/config-validator.d.ts +8 -0
- package/dist/engine/config-validator.d.ts.map +1 -1
- package/dist/engine/config-validator.js +38 -15
- package/dist/engine/config-validator.js.map +1 -1
- package/dist/engine/variable-resolver.d.ts +9 -0
- package/dist/engine/variable-resolver.d.ts.map +1 -1
- package/dist/engine/variable-resolver.js +76 -0
- package/dist/engine/variable-resolver.js.map +1 -1
- package/dist/engine/workflow-executor.d.ts.map +1 -1
- package/dist/engine/workflow-executor.js +3 -3
- package/dist/engine/workflow-executor.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/router/workflow-router.d.ts.map +1 -1
- package/dist/router/workflow-router.js +126 -5
- package/dist/router/workflow-router.js.map +1 -1
- package/dist/steps/builtin/wait.step.d.ts +11 -0
- package/dist/steps/builtin/wait.step.d.ts.map +1 -1
- package/dist/steps/builtin/wait.step.js +31 -0
- package/dist/steps/builtin/wait.step.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/workflow-config.d.ts +20 -0
- package/dist/types/workflow-config.d.ts.map +1 -1
- package/dist/types/workflow-config.js.map +1 -1
- package/dist/util/citation-path.d.ts +39 -0
- package/dist/util/citation-path.d.ts.map +1 -0
- package/dist/util/citation-path.js +133 -0
- package/dist/util/citation-path.js.map +1 -0
- package/dist/util/pause-form-schema.d.ts +20 -0
- package/dist/util/pause-form-schema.d.ts.map +1 -0
- package/dist/util/pause-form-schema.js +25 -0
- package/dist/util/pause-form-schema.js.map +1 -0
- package/dist/util/type-compat.d.ts +35 -0
- package/dist/util/type-compat.d.ts.map +1 -0
- package/dist/util/type-compat.js +54 -0
- package/dist/util/type-compat.js.map +1 -0
- package/dist/util/variable-ref.d.ts +22 -0
- package/dist/util/variable-ref.d.ts.map +1 -1
- package/dist/util/variable-ref.js +23 -4
- package/dist/util/variable-ref.js.map +1 -1
- package/package.json +1 -1
- package/dist/common/principal.d.ts +0 -45
- package/dist/common/principal.d.ts.map +0 -1
- package/dist/common/principal.js +0 -9
- package/dist/common/principal.js.map +0 -1
- package/dist/steps/builtin/transform.step.d.ts +0 -247
- package/dist/steps/builtin/transform.step.d.ts.map +0 -1
- package/dist/steps/builtin/transform.step.js +0 -135
- package/dist/steps/builtin/transform.step.js.map +0 -1
- package/dist/types/attachment.d.ts +0 -23
- package/dist/types/attachment.d.ts.map +0 -1
- package/dist/types/attachment.js +0 -2
- package/dist/types/attachment.js.map +0 -1
- package/dist/types/resume-payload.d.ts +0 -34
- package/dist/types/resume-payload.d.ts.map +0 -1
- package/dist/types/resume-payload.js +0 -12
- package/dist/types/resume-payload.js.map +0 -1
- package/dist/util/executable-check.d.ts +0 -42
- package/dist/util/executable-check.d.ts.map +0 -1
- package/dist/util/executable-check.js +0 -115
- package/dist/util/executable-check.js.map +0 -1
|
@@ -45,14 +45,17 @@ export declare const WaitStepConfigSchema: z.ZodDiscriminatedUnion<"mode", [z.Zo
|
|
|
45
45
|
reason: z.ZodString;
|
|
46
46
|
prompt: z.ZodOptional<z.ZodString>;
|
|
47
47
|
display: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
48
|
+
id: z.ZodOptional<z.ZodString>;
|
|
48
49
|
label: z.ZodString;
|
|
49
50
|
value: z.ZodUnknown;
|
|
50
51
|
}, "strip", z.ZodTypeAny, {
|
|
51
52
|
label: string;
|
|
52
53
|
value?: unknown;
|
|
54
|
+
id?: string | undefined;
|
|
53
55
|
}, {
|
|
54
56
|
label: string;
|
|
55
57
|
value?: unknown;
|
|
58
|
+
id?: string | undefined;
|
|
56
59
|
}>, "many">>;
|
|
57
60
|
form: z.ZodOptional<z.ZodObject<{
|
|
58
61
|
fields: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
@@ -331,6 +334,7 @@ export declare const WaitStepConfigSchema: z.ZodDiscriminatedUnion<"mode", [z.Zo
|
|
|
331
334
|
display?: {
|
|
332
335
|
label: string;
|
|
333
336
|
value?: unknown;
|
|
337
|
+
id?: string | undefined;
|
|
334
338
|
}[] | undefined;
|
|
335
339
|
form?: {
|
|
336
340
|
fields: ({
|
|
@@ -397,6 +401,7 @@ export declare const WaitStepConfigSchema: z.ZodDiscriminatedUnion<"mode", [z.Zo
|
|
|
397
401
|
display?: {
|
|
398
402
|
label: string;
|
|
399
403
|
value?: unknown;
|
|
404
|
+
id?: string | undefined;
|
|
400
405
|
}[] | undefined;
|
|
401
406
|
form?: {
|
|
402
407
|
fields: ({
|
|
@@ -488,14 +493,17 @@ export declare class WaitStep extends BaseActionStep<typeof WaitStepConfigSchema
|
|
|
488
493
|
reason: z.ZodString;
|
|
489
494
|
prompt: z.ZodOptional<z.ZodString>;
|
|
490
495
|
display: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
496
|
+
id: z.ZodOptional<z.ZodString>;
|
|
491
497
|
label: z.ZodString;
|
|
492
498
|
value: z.ZodUnknown;
|
|
493
499
|
}, "strip", z.ZodTypeAny, {
|
|
494
500
|
label: string;
|
|
495
501
|
value?: unknown;
|
|
502
|
+
id?: string | undefined;
|
|
496
503
|
}, {
|
|
497
504
|
label: string;
|
|
498
505
|
value?: unknown;
|
|
506
|
+
id?: string | undefined;
|
|
499
507
|
}>, "many">>;
|
|
500
508
|
form: z.ZodOptional<z.ZodObject<{
|
|
501
509
|
fields: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
@@ -774,6 +782,7 @@ export declare class WaitStep extends BaseActionStep<typeof WaitStepConfigSchema
|
|
|
774
782
|
display?: {
|
|
775
783
|
label: string;
|
|
776
784
|
value?: unknown;
|
|
785
|
+
id?: string | undefined;
|
|
777
786
|
}[] | undefined;
|
|
778
787
|
form?: {
|
|
779
788
|
fields: ({
|
|
@@ -840,6 +849,7 @@ export declare class WaitStep extends BaseActionStep<typeof WaitStepConfigSchema
|
|
|
840
849
|
display?: {
|
|
841
850
|
label: string;
|
|
842
851
|
value?: unknown;
|
|
852
|
+
id?: string | undefined;
|
|
843
853
|
}[] | undefined;
|
|
844
854
|
form?: {
|
|
845
855
|
fields: ({
|
|
@@ -912,6 +922,7 @@ export declare class WaitStep extends BaseActionStep<typeof WaitStepConfigSchema
|
|
|
912
922
|
}>;
|
|
913
923
|
readonly category: StepCategory;
|
|
914
924
|
readonly icon = "clock";
|
|
925
|
+
resolveOutputJsonSchema(config: Record<string, unknown>): Record<string, unknown>;
|
|
915
926
|
execute(config: WaitStepConfig, ctx: StepExecutionContext): Promise<WaitStepOutput>;
|
|
916
927
|
onResume(rowData: Record<string, unknown>, _config: WaitStepConfig, _ctx: StepExecutionContext): Promise<WaitStepOutput>;
|
|
917
928
|
private executeDelay;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.step.d.ts","sourceRoot":"","sources":["../../../src/steps/builtin/wait.step.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"wait.step.d.ts","sourceRoot":"","sources":["../../../src/steps/builtin/wait.step.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,14 @@
|
|
|
23
23
|
import { z } from 'zod';
|
|
24
24
|
import { BaseActionStep } from '../base-step.js';
|
|
25
25
|
import { BuiltinStepType } from '../../types/known-types.js';
|
|
26
|
+
import { ATTACHMENT_ARRAY_JSON_SCHEMA } from '../../common/attachment.js';
|
|
27
|
+
import { pauseFormToJsonSchema } from '../../util/pause-form-schema.js';
|
|
26
28
|
// ─── Pause UI Schemas (shared with PauseState types) ───
|
|
27
29
|
const PauseDisplaySectionSchema = z.object({
|
|
30
|
+
// Stable key for citation addressing (StepConfigBase.citations). Optional and
|
|
31
|
+
// ignored by the executor; declared here so the builder can attach a citation
|
|
32
|
+
// to a specific row without injecting an undeclared field that Zod would strip.
|
|
33
|
+
id: z.string().optional(),
|
|
28
34
|
label: z.string(),
|
|
29
35
|
value: z.unknown(),
|
|
30
36
|
});
|
|
@@ -131,6 +137,31 @@ export class WaitStep extends BaseActionStep {
|
|
|
131
137
|
outputSchema = WaitStepOutputSchema;
|
|
132
138
|
category = 'flow';
|
|
133
139
|
icon = 'clock';
|
|
140
|
+
resolveOutputJsonSchema(config) {
|
|
141
|
+
let resumeData = { type: 'object', additionalProperties: true };
|
|
142
|
+
if (config['mode'] === 'approval') {
|
|
143
|
+
const form = config['form'];
|
|
144
|
+
resumeData = {
|
|
145
|
+
type: 'object',
|
|
146
|
+
properties: {
|
|
147
|
+
action: { type: 'string', enum: ['approve', 'retry', 'abort'] },
|
|
148
|
+
feedback: { type: 'string' },
|
|
149
|
+
attachments: ATTACHMENT_ARRAY_JSON_SCHEMA,
|
|
150
|
+
data: form?.fields?.length
|
|
151
|
+
? pauseFormToJsonSchema(form)
|
|
152
|
+
: { type: 'object', additionalProperties: true },
|
|
153
|
+
},
|
|
154
|
+
additionalProperties: true,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
type: 'object',
|
|
159
|
+
properties: {
|
|
160
|
+
mode: { type: 'string', enum: ['delay', 'webhook', 'approval'] },
|
|
161
|
+
resumeData,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
}
|
|
134
165
|
async execute(config, ctx) {
|
|
135
166
|
switch (config.mode) {
|
|
136
167
|
case 'delay':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.step.js","sourceRoot":"","sources":["../../../src/steps/builtin/wait.step.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"wait.step.js","sourceRoot":"","sources":["../../../src/steps/builtin/wait.step.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -14,5 +14,5 @@ export type { PausePathSegment, PausePath } from './pause-path.js';
|
|
|
14
14
|
export type { PauseDisplaySection, PauseFormFieldOption, PauseFormField, PauseForm, PauseAction, PauseState, PauseCategory, } from './pause-state.js';
|
|
15
15
|
export type { StepProgressEventType, StepProgressEvent, StepEventRecord, } from './step-events.js';
|
|
16
16
|
export { variableRef, getVariableRefInnerSchema, LeafConditionSchema, ConditionSchema, WorkflowSettingsSchema, readDottedPath, } from './workflow-config.js';
|
|
17
|
-
export type { LeafCondition, Condition, ActionStepConfig, ConditionalStepConfig, SwitchCaseEntry, SwitchStepConfig, WorkflowStepConfig, StepConfigBase, StepGroup, WorkflowSettings, WorkflowConfig, StepCompletionGate, } from './workflow-config.js';
|
|
17
|
+
export type { LeafCondition, Condition, ActionStepConfig, ConditionalStepConfig, SwitchCaseEntry, SwitchStepConfig, WorkflowStepConfig, StepConfigBase, StepGroup, Citation, WorkflowSettings, WorkflowConfig, StepCompletionGate, } from './workflow-config.js';
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EAEvB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAElG,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,kBAAkB,CAAC;AAM1B,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EAEvB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAElG,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,kBAAkB,CAAC;AAM1B,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
|
|
@@ -33,6 +33,20 @@ export declare const ConditionSchema: z.ZodType<Condition>;
|
|
|
33
33
|
* - `review`: pause the execution and wait for a human to approve, retry with feedback, or abort
|
|
34
34
|
*/
|
|
35
35
|
export type StepCompletionGate = 'continue' | 'review';
|
|
36
|
+
/**
|
|
37
|
+
* A single author-provided citation: a reference link (a `{{ref}}`, which may
|
|
38
|
+
* point at a step output, trigger value, or an attachment) plus optional
|
|
39
|
+
* human label/description. Purely documentation — resolved + rendered by the
|
|
40
|
+
* reviewer UI; ignored by the executor.
|
|
41
|
+
*/
|
|
42
|
+
export interface Citation {
|
|
43
|
+
/** A `{{...}}` reference. May resolve to a value or an attachment. */
|
|
44
|
+
ref: string;
|
|
45
|
+
/** Optional short title shown instead of the resolved source name. */
|
|
46
|
+
label?: string;
|
|
47
|
+
/** Optional free-text note explaining the citation. */
|
|
48
|
+
description?: string;
|
|
49
|
+
}
|
|
36
50
|
/**
|
|
37
51
|
* Human-facing documentation fields shared by every step config. Purely
|
|
38
52
|
* organizational — ignored by the executor and validator.
|
|
@@ -44,6 +58,12 @@ export interface StepConfigBase {
|
|
|
44
58
|
description?: string;
|
|
45
59
|
/** Id of the {@link StepGroup} this step belongs to (see {@link WorkflowConfig.groups}). */
|
|
46
60
|
groupId?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Author citations, keyed by a stable {@link CitationPath} into this step's
|
|
63
|
+
* `config` (e.g. `"reason"`, `"display[sec_amt].value"`, `"form.fields[acha]"`).
|
|
64
|
+
* A documentation overlay — never executed; rendered to reviewers.
|
|
65
|
+
*/
|
|
66
|
+
citations?: Record<string, Citation[]>;
|
|
47
67
|
}
|
|
48
68
|
export interface ActionStepConfig extends StepConfigBase {
|
|
49
69
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-config.d.ts","sourceRoot":"","sources":["../../src/types/workflow-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAYxD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAChD,KAAK,EAAE,CAAC,GACP,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAM9B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,CAAC,CAAC,UAAU,GAAG,IAAI,CAWrB;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GACjB,aAAa,GACb;IAAE,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,GACpB;IAAE,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAEzB,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAIvD,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAMhD,CAAC;AAIF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-config.d.ts","sourceRoot":"","sources":["../../src/types/workflow-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-config.js","sourceRoot":"","sources":["../../src/types/workflow-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EACL,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AAEjC,qCAAqC;AAErC,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,KAAQ;IAER,OAAO,CAAC;SACL,KAAK,CAAC,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;SACvC,QAAQ,CACP,GAAG,+BAA+B,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAChD,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAoB;IAEpB,IACE,MAAM,YAAY,CAAC,CAAC,QAAQ;QAC5B,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAC9D,CAAC;QACD,MAAM,OAAO,GAAI,MAAmD,CAAC,IAAI;aACtE,OAAO,CAAC;QACX,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAeD,MAAM,CAAC,MAAM,mBAAmB,GAA6B,CAAC,CAAC,MAAM,CAAC;IACpE,QAAQ,EAAE,uBAAuB;IACjC,QAAQ,EAAE,uBAAuB;IACjC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/D,CAAC,CAAC,KAAK,CAAC;IACN,mBAAmB;IACnB,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;IAC3C,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;CAC5C,CAAC,CACH,CAAC;
|
|
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;
|
|
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"}
|