@xyne/workflow-sdk 3.2.11 → 3.2.13
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/common/principal.d.ts +45 -0
- package/dist/common/principal.d.ts.map +1 -0
- package/dist/common/principal.js +9 -0
- package/dist/common/principal.js.map +1 -0
- package/dist/engine/config-validator.d.ts.map +1 -1
- package/dist/engine/config-validator.js +6 -1
- package/dist/engine/config-validator.js.map +1 -1
- package/dist/steps/builtin/transform.step.d.ts +247 -0
- package/dist/steps/builtin/transform.step.d.ts.map +1 -0
- package/dist/steps/builtin/transform.step.js +135 -0
- package/dist/steps/builtin/transform.step.js.map +1 -0
- package/dist/types/attachment.d.ts +23 -0
- package/dist/types/attachment.d.ts.map +1 -0
- package/dist/types/attachment.js +2 -0
- package/dist/types/attachment.js.map +1 -0
- package/dist/types/resume-payload.d.ts +34 -0
- package/dist/types/resume-payload.d.ts.map +1 -0
- package/dist/types/resume-payload.js +12 -0
- package/dist/types/resume-payload.js.map +1 -0
- package/dist/types/workflow-config.d.ts +6 -0
- package/dist/types/workflow-config.d.ts.map +1 -1
- package/dist/types/workflow-config.js.map +1 -1
- package/dist/util/executable-check.d.ts +42 -0
- package/dist/util/executable-check.d.ts.map +1 -0
- package/dist/util/executable-check.js +115 -0
- package/dist/util/executable-check.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Principal + authorization descriptors — browser-safe shared types.
|
|
3
|
+
*
|
|
4
|
+
* The host authenticates a request into an {@link AuthContext} (the principal).
|
|
5
|
+
* The SDK never interprets `metadata` — it's an opaque claims bag (teamIds,
|
|
6
|
+
* roles, deptId, …). Scoping is derived from the principal by host hooks.
|
|
7
|
+
*/
|
|
8
|
+
/** The authenticated principal, produced by the host's `authenticate()` hook. */
|
|
9
|
+
export interface AuthContext {
|
|
10
|
+
userId: string;
|
|
11
|
+
/** Host-defined claims — workspaceId, tenantId, teamIds, roles, etc. Opaque to the SDK. */
|
|
12
|
+
metadata: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
/** Verbs the scope hooks can differentiate on. Resource types extend this over time. */
|
|
15
|
+
export type WorkflowAction = 'workflow.list' | 'workflow.read' | 'workflow.write' | 'workflow.trigger' | 'execution.list' | 'execution.read' | 'execution.write';
|
|
16
|
+
/**
|
|
17
|
+
* One node in the host's scope hierarchy — what the UI renders in the scope
|
|
18
|
+
* navigator. The host (not the SDK) decides what a node represents
|
|
19
|
+
* (department, team, project); `kind` is a display label only.
|
|
20
|
+
*/
|
|
21
|
+
export interface ScopeNode {
|
|
22
|
+
/** Opaque scope id — matches `WorkflowRecord.scope`. */
|
|
23
|
+
id: string;
|
|
24
|
+
label: string;
|
|
25
|
+
/** Display grouping/icon hint, e.g. 'Department' | 'Team'. Not used for routing. */
|
|
26
|
+
kind?: string;
|
|
27
|
+
parentId?: string | null;
|
|
28
|
+
hasChildren?: boolean;
|
|
29
|
+
counts?: {
|
|
30
|
+
workflows?: number;
|
|
31
|
+
running?: number;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* What the UI bootstraps from on load. Drives the scope navigator and gates
|
|
36
|
+
* cross-scope ("admin") affordances.
|
|
37
|
+
*/
|
|
38
|
+
export interface SessionDescriptor {
|
|
39
|
+
userId: string;
|
|
40
|
+
/** Top-level scopes the principal can reach. */
|
|
41
|
+
scopes: ScopeNode[];
|
|
42
|
+
/** Opaque capability flags, e.g. 'workflow.list.crossScope' for an admin view. */
|
|
43
|
+
capabilities: string[];
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=principal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../../src/common/principal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,wFAAwF;AACxF,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,kFAAkF;IAClF,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Principal + authorization descriptors — browser-safe shared types.
|
|
3
|
+
*
|
|
4
|
+
* The host authenticates a request into an {@link AuthContext} (the principal).
|
|
5
|
+
* The SDK never interprets `metadata` — it's an opaque claims bag (teamIds,
|
|
6
|
+
* roles, deptId, …). Scoping is derived from the principal by host hooks.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=principal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../../src/common/principal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../src/engine/config-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAgQ9D;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY;IAG7C,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB;IA+ClD,OAAO,CAAC,SAAS;IAwFjB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../src/engine/config-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAgQ9D;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY;IAG7C,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB;IA+ClD,OAAO,CAAC,SAAS;IAwFjB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,QAAQ;IAoFhB,OAAO,CAAC,sBAAsB;CAmB/B"}
|
|
@@ -3,7 +3,7 @@ import { getVariableRefInnerSchema } from '../types/workflow-config.js';
|
|
|
3
3
|
import { resolveCitationPath } from '../util/citation-path.js';
|
|
4
4
|
import { ValidationIssueCode } from '../types/validation.js';
|
|
5
5
|
import { BaseControlFlowStep } from '../steps/base-step.js';
|
|
6
|
-
import { collectRefs } from '../util/variable-ref.js';
|
|
6
|
+
import { collectRefs, isPureRef } from '../util/variable-ref.js';
|
|
7
7
|
import { zodToJsonSchemaRecord } from '../util/schema-convert.js';
|
|
8
8
|
import { kindsCompatible } from '../util/type-compat.js';
|
|
9
9
|
import { resolveOutputJsonSchemaOf } from './available-context.js';
|
|
@@ -367,6 +367,11 @@ export class ConfigValidator {
|
|
|
367
367
|
return;
|
|
368
368
|
// null consumer schema → ref existence/forward-ref only, no type check.
|
|
369
369
|
this.checkRef(citation.ref, `${stepPath}.citations.${fieldPath}[${String(i)}].ref`, outputSchemas, issues, null, { scope: 'step', stepId: step.id, field: fieldPath });
|
|
370
|
+
// Optional pageNumber: only a `{{...}}` reference needs validation;
|
|
371
|
+
// a literal (e.g. "3") is left as-is.
|
|
372
|
+
if (typeof citation.pageNumber === 'string' && isPureRef(citation.pageNumber)) {
|
|
373
|
+
this.checkRef(citation.pageNumber, `${stepPath}.citations.${fieldPath}[${String(i)}].pageNumber`, outputSchemas, issues, null, { scope: 'step', stepId: step.id, field: fieldPath });
|
|
374
|
+
}
|
|
370
375
|
});
|
|
371
376
|
}
|
|
372
377
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../src/engine/config-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../src/engine/config-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TRANSFORM step — pure data manipulation.
|
|
3
|
+
*
|
|
4
|
+
* Applies a sequence of operations to the workflow context:
|
|
5
|
+
* - set: write a value at a dotted path
|
|
6
|
+
* - rename: move a value from one path to another
|
|
7
|
+
* - remove: delete a value at a dotted path
|
|
8
|
+
* - copy: copy a value from one path to another
|
|
9
|
+
*
|
|
10
|
+
* No services, no credentials — pure deterministic logic.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { BaseActionStep } from '../base-step.js';
|
|
14
|
+
import type { StepExecutionContext } from '../base-step.js';
|
|
15
|
+
import { BuiltinStepType } from '../../types/known-types.js';
|
|
16
|
+
import type { StepCategory } from '../../types/categories.js';
|
|
17
|
+
export declare const TransformOpSchema: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
|
|
18
|
+
op: z.ZodLiteral<"set">;
|
|
19
|
+
path: z.ZodString;
|
|
20
|
+
value: z.ZodUnknown;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
op: "set";
|
|
23
|
+
path: string;
|
|
24
|
+
value?: unknown;
|
|
25
|
+
}, {
|
|
26
|
+
op: "set";
|
|
27
|
+
path: string;
|
|
28
|
+
value?: unknown;
|
|
29
|
+
}>, z.ZodObject<{
|
|
30
|
+
op: z.ZodLiteral<"rename">;
|
|
31
|
+
from: z.ZodString;
|
|
32
|
+
to: z.ZodString;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
op: "rename";
|
|
35
|
+
from: string;
|
|
36
|
+
to: string;
|
|
37
|
+
}, {
|
|
38
|
+
op: "rename";
|
|
39
|
+
from: string;
|
|
40
|
+
to: string;
|
|
41
|
+
}>, z.ZodObject<{
|
|
42
|
+
op: z.ZodLiteral<"remove">;
|
|
43
|
+
path: z.ZodString;
|
|
44
|
+
}, "strip", z.ZodTypeAny, {
|
|
45
|
+
op: "remove";
|
|
46
|
+
path: string;
|
|
47
|
+
}, {
|
|
48
|
+
op: "remove";
|
|
49
|
+
path: string;
|
|
50
|
+
}>, z.ZodObject<{
|
|
51
|
+
op: z.ZodLiteral<"copy">;
|
|
52
|
+
from: z.ZodString;
|
|
53
|
+
to: z.ZodString;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
op: "copy";
|
|
56
|
+
from: string;
|
|
57
|
+
to: string;
|
|
58
|
+
}, {
|
|
59
|
+
op: "copy";
|
|
60
|
+
from: string;
|
|
61
|
+
to: string;
|
|
62
|
+
}>]>;
|
|
63
|
+
export type TransformOp = z.infer<typeof TransformOpSchema>;
|
|
64
|
+
export declare const TransformStepConfigSchema: z.ZodObject<{
|
|
65
|
+
operations: z.ZodArray<z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
|
|
66
|
+
op: z.ZodLiteral<"set">;
|
|
67
|
+
path: z.ZodString;
|
|
68
|
+
value: z.ZodUnknown;
|
|
69
|
+
}, "strip", z.ZodTypeAny, {
|
|
70
|
+
op: "set";
|
|
71
|
+
path: string;
|
|
72
|
+
value?: unknown;
|
|
73
|
+
}, {
|
|
74
|
+
op: "set";
|
|
75
|
+
path: string;
|
|
76
|
+
value?: unknown;
|
|
77
|
+
}>, z.ZodObject<{
|
|
78
|
+
op: z.ZodLiteral<"rename">;
|
|
79
|
+
from: z.ZodString;
|
|
80
|
+
to: z.ZodString;
|
|
81
|
+
}, "strip", z.ZodTypeAny, {
|
|
82
|
+
op: "rename";
|
|
83
|
+
from: string;
|
|
84
|
+
to: string;
|
|
85
|
+
}, {
|
|
86
|
+
op: "rename";
|
|
87
|
+
from: string;
|
|
88
|
+
to: string;
|
|
89
|
+
}>, z.ZodObject<{
|
|
90
|
+
op: z.ZodLiteral<"remove">;
|
|
91
|
+
path: z.ZodString;
|
|
92
|
+
}, "strip", z.ZodTypeAny, {
|
|
93
|
+
op: "remove";
|
|
94
|
+
path: string;
|
|
95
|
+
}, {
|
|
96
|
+
op: "remove";
|
|
97
|
+
path: string;
|
|
98
|
+
}>, z.ZodObject<{
|
|
99
|
+
op: z.ZodLiteral<"copy">;
|
|
100
|
+
from: z.ZodString;
|
|
101
|
+
to: z.ZodString;
|
|
102
|
+
}, "strip", z.ZodTypeAny, {
|
|
103
|
+
op: "copy";
|
|
104
|
+
from: string;
|
|
105
|
+
to: string;
|
|
106
|
+
}, {
|
|
107
|
+
op: "copy";
|
|
108
|
+
from: string;
|
|
109
|
+
to: string;
|
|
110
|
+
}>]>, "many">;
|
|
111
|
+
}, "strip", z.ZodTypeAny, {
|
|
112
|
+
operations: ({
|
|
113
|
+
op: "set";
|
|
114
|
+
path: string;
|
|
115
|
+
value?: unknown;
|
|
116
|
+
} | {
|
|
117
|
+
op: "rename";
|
|
118
|
+
from: string;
|
|
119
|
+
to: string;
|
|
120
|
+
} | {
|
|
121
|
+
op: "remove";
|
|
122
|
+
path: string;
|
|
123
|
+
} | {
|
|
124
|
+
op: "copy";
|
|
125
|
+
from: string;
|
|
126
|
+
to: string;
|
|
127
|
+
})[];
|
|
128
|
+
}, {
|
|
129
|
+
operations: ({
|
|
130
|
+
op: "set";
|
|
131
|
+
path: string;
|
|
132
|
+
value?: unknown;
|
|
133
|
+
} | {
|
|
134
|
+
op: "rename";
|
|
135
|
+
from: string;
|
|
136
|
+
to: string;
|
|
137
|
+
} | {
|
|
138
|
+
op: "remove";
|
|
139
|
+
path: string;
|
|
140
|
+
} | {
|
|
141
|
+
op: "copy";
|
|
142
|
+
from: string;
|
|
143
|
+
to: string;
|
|
144
|
+
})[];
|
|
145
|
+
}>;
|
|
146
|
+
export type TransformStepConfig = z.infer<typeof TransformStepConfigSchema>;
|
|
147
|
+
export interface TransformStepOutput extends Record<string, unknown> {
|
|
148
|
+
applied: number;
|
|
149
|
+
}
|
|
150
|
+
export declare class TransformStep extends BaseActionStep<typeof TransformStepConfigSchema, TransformStepOutput> {
|
|
151
|
+
readonly type = BuiltinStepType.TRANSFORM;
|
|
152
|
+
readonly name = "Transform";
|
|
153
|
+
readonly description = "Apply data transformations to the workflow context";
|
|
154
|
+
readonly configSchema: z.ZodObject<{
|
|
155
|
+
operations: z.ZodArray<z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
|
|
156
|
+
op: z.ZodLiteral<"set">;
|
|
157
|
+
path: z.ZodString;
|
|
158
|
+
value: z.ZodUnknown;
|
|
159
|
+
}, "strip", z.ZodTypeAny, {
|
|
160
|
+
op: "set";
|
|
161
|
+
path: string;
|
|
162
|
+
value?: unknown;
|
|
163
|
+
}, {
|
|
164
|
+
op: "set";
|
|
165
|
+
path: string;
|
|
166
|
+
value?: unknown;
|
|
167
|
+
}>, z.ZodObject<{
|
|
168
|
+
op: z.ZodLiteral<"rename">;
|
|
169
|
+
from: z.ZodString;
|
|
170
|
+
to: z.ZodString;
|
|
171
|
+
}, "strip", z.ZodTypeAny, {
|
|
172
|
+
op: "rename";
|
|
173
|
+
from: string;
|
|
174
|
+
to: string;
|
|
175
|
+
}, {
|
|
176
|
+
op: "rename";
|
|
177
|
+
from: string;
|
|
178
|
+
to: string;
|
|
179
|
+
}>, z.ZodObject<{
|
|
180
|
+
op: z.ZodLiteral<"remove">;
|
|
181
|
+
path: z.ZodString;
|
|
182
|
+
}, "strip", z.ZodTypeAny, {
|
|
183
|
+
op: "remove";
|
|
184
|
+
path: string;
|
|
185
|
+
}, {
|
|
186
|
+
op: "remove";
|
|
187
|
+
path: string;
|
|
188
|
+
}>, z.ZodObject<{
|
|
189
|
+
op: z.ZodLiteral<"copy">;
|
|
190
|
+
from: z.ZodString;
|
|
191
|
+
to: z.ZodString;
|
|
192
|
+
}, "strip", z.ZodTypeAny, {
|
|
193
|
+
op: "copy";
|
|
194
|
+
from: string;
|
|
195
|
+
to: string;
|
|
196
|
+
}, {
|
|
197
|
+
op: "copy";
|
|
198
|
+
from: string;
|
|
199
|
+
to: string;
|
|
200
|
+
}>]>, "many">;
|
|
201
|
+
}, "strip", z.ZodTypeAny, {
|
|
202
|
+
operations: ({
|
|
203
|
+
op: "set";
|
|
204
|
+
path: string;
|
|
205
|
+
value?: unknown;
|
|
206
|
+
} | {
|
|
207
|
+
op: "rename";
|
|
208
|
+
from: string;
|
|
209
|
+
to: string;
|
|
210
|
+
} | {
|
|
211
|
+
op: "remove";
|
|
212
|
+
path: string;
|
|
213
|
+
} | {
|
|
214
|
+
op: "copy";
|
|
215
|
+
from: string;
|
|
216
|
+
to: string;
|
|
217
|
+
})[];
|
|
218
|
+
}, {
|
|
219
|
+
operations: ({
|
|
220
|
+
op: "set";
|
|
221
|
+
path: string;
|
|
222
|
+
value?: unknown;
|
|
223
|
+
} | {
|
|
224
|
+
op: "rename";
|
|
225
|
+
from: string;
|
|
226
|
+
to: string;
|
|
227
|
+
} | {
|
|
228
|
+
op: "remove";
|
|
229
|
+
path: string;
|
|
230
|
+
} | {
|
|
231
|
+
op: "copy";
|
|
232
|
+
from: string;
|
|
233
|
+
to: string;
|
|
234
|
+
})[];
|
|
235
|
+
}>;
|
|
236
|
+
readonly outputSchema: z.ZodObject<{
|
|
237
|
+
applied: z.ZodNumber;
|
|
238
|
+
}, "strip", z.ZodTypeAny, {
|
|
239
|
+
applied: number;
|
|
240
|
+
}, {
|
|
241
|
+
applied: number;
|
|
242
|
+
}>;
|
|
243
|
+
readonly category: StepCategory;
|
|
244
|
+
readonly icon = "filter";
|
|
245
|
+
execute(config: TransformStepConfig, ctx: StepExecutionContext): Promise<TransformStepOutput>;
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=transform.step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.step.d.ts","sourceRoot":"","sources":["../../../src/steps/builtin/transform.step.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;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;AA4B9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAI5E,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AA+DD,qBAAa,aAAc,SAAQ,cAAc,CAC/C,OAAO,yBAAyB,EAChC,mBAAmB,CACpB;IACC,SAAkB,IAAI,6BAA6B;IACnD,SAAkB,IAAI,eAAe;IACrC,SAAkB,WAAW,wDAAwD;IACrF,SAAkB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA6B;IAC3D,SAAkB,YAAY;;;;;;OAA6B;IAC3D,SAAkB,QAAQ,EAAE,YAAY,CAAU;IAClD,SAAkB,IAAI,YAAY;IAEnB,OAAO,CACpB,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,mBAAmB,CAAC;CAyChC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TRANSFORM step — pure data manipulation.
|
|
3
|
+
*
|
|
4
|
+
* Applies a sequence of operations to the workflow context:
|
|
5
|
+
* - set: write a value at a dotted path
|
|
6
|
+
* - rename: move a value from one path to another
|
|
7
|
+
* - remove: delete a value at a dotted path
|
|
8
|
+
* - copy: copy a value from one path to another
|
|
9
|
+
*
|
|
10
|
+
* No services, no credentials — pure deterministic logic.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { BaseActionStep } from '../base-step.js';
|
|
14
|
+
import { BuiltinStepType } from '../../types/known-types.js';
|
|
15
|
+
import { resolvePath } from '../../engine/variable-resolver.js';
|
|
16
|
+
// ─── Config ───
|
|
17
|
+
const SetOpSchema = z.object({
|
|
18
|
+
op: z.literal('set'),
|
|
19
|
+
path: z.string().min(1).describe('Dotted path where the value will be written'),
|
|
20
|
+
value: z.unknown().describe('Value to set at the path'),
|
|
21
|
+
});
|
|
22
|
+
const RenameOpSchema = z.object({
|
|
23
|
+
op: z.literal('rename'),
|
|
24
|
+
from: z.string().min(1).describe('Source dotted path'),
|
|
25
|
+
to: z.string().min(1).describe('Destination dotted path'),
|
|
26
|
+
});
|
|
27
|
+
const RemoveOpSchema = z.object({
|
|
28
|
+
op: z.literal('remove'),
|
|
29
|
+
path: z.string().min(1).describe('Dotted path to delete'),
|
|
30
|
+
});
|
|
31
|
+
const CopyOpSchema = z.object({
|
|
32
|
+
op: z.literal('copy'),
|
|
33
|
+
from: z.string().min(1).describe('Source dotted path'),
|
|
34
|
+
to: z.string().min(1).describe('Destination dotted path'),
|
|
35
|
+
});
|
|
36
|
+
export const TransformOpSchema = z.discriminatedUnion('op', [
|
|
37
|
+
SetOpSchema,
|
|
38
|
+
RenameOpSchema,
|
|
39
|
+
RemoveOpSchema,
|
|
40
|
+
CopyOpSchema,
|
|
41
|
+
]);
|
|
42
|
+
export const TransformStepConfigSchema = z.object({
|
|
43
|
+
operations: z.array(TransformOpSchema).min(1).describe('Sequence of data transformation operations to apply'),
|
|
44
|
+
});
|
|
45
|
+
const TransformStepOutputSchema = z.object({
|
|
46
|
+
applied: z.number(),
|
|
47
|
+
});
|
|
48
|
+
// ─── Helpers ───
|
|
49
|
+
/**
|
|
50
|
+
* Set a value at a dotted path on a target object.
|
|
51
|
+
* Creates intermediate objects as needed.
|
|
52
|
+
*/
|
|
53
|
+
function setAtPath(target, path, value) {
|
|
54
|
+
const parts = path.split('.');
|
|
55
|
+
let current = target;
|
|
56
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
57
|
+
const key = parts[i];
|
|
58
|
+
if (current[key] === undefined ||
|
|
59
|
+
current[key] === null ||
|
|
60
|
+
typeof current[key] !== 'object') {
|
|
61
|
+
current[key] = {};
|
|
62
|
+
}
|
|
63
|
+
current = current[key];
|
|
64
|
+
}
|
|
65
|
+
current[parts[parts.length - 1]] = value;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Delete a value at a dotted path.
|
|
69
|
+
*/
|
|
70
|
+
function deleteAtPath(target, path) {
|
|
71
|
+
const parts = path.split('.');
|
|
72
|
+
let current = target;
|
|
73
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
74
|
+
const key = parts[i];
|
|
75
|
+
if (current[key] === undefined ||
|
|
76
|
+
current[key] === null ||
|
|
77
|
+
typeof current[key] !== 'object') {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
current = current[key];
|
|
81
|
+
}
|
|
82
|
+
const lastKey = parts[parts.length - 1];
|
|
83
|
+
if (lastKey in current) {
|
|
84
|
+
delete current[lastKey];
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
// ─── Step ───
|
|
90
|
+
export class TransformStep extends BaseActionStep {
|
|
91
|
+
type = BuiltinStepType.TRANSFORM;
|
|
92
|
+
name = 'Transform';
|
|
93
|
+
description = 'Apply data transformations to the workflow context';
|
|
94
|
+
configSchema = TransformStepConfigSchema;
|
|
95
|
+
outputSchema = TransformStepOutputSchema;
|
|
96
|
+
category = 'data';
|
|
97
|
+
icon = 'filter';
|
|
98
|
+
async execute(config, ctx) {
|
|
99
|
+
let applied = 0;
|
|
100
|
+
// Operate on the steps record
|
|
101
|
+
const data = ctx.workflow.steps;
|
|
102
|
+
for (const op of config.operations) {
|
|
103
|
+
switch (op.op) {
|
|
104
|
+
case 'set':
|
|
105
|
+
setAtPath(data, op.path, op.value);
|
|
106
|
+
applied++;
|
|
107
|
+
break;
|
|
108
|
+
case 'rename': {
|
|
109
|
+
const value = resolvePath(ctx.workflow, op.from);
|
|
110
|
+
if (value !== undefined) {
|
|
111
|
+
setAtPath(data, op.to, value);
|
|
112
|
+
deleteAtPath(data, op.from);
|
|
113
|
+
applied++;
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case 'remove':
|
|
118
|
+
if (deleteAtPath(data, op.path)) {
|
|
119
|
+
applied++;
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
case 'copy': {
|
|
123
|
+
const val = resolvePath(ctx.workflow, op.from);
|
|
124
|
+
if (val !== undefined) {
|
|
125
|
+
setAtPath(data, op.to, val);
|
|
126
|
+
applied++;
|
|
127
|
+
}
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return { applied };
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=transform.step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.step.js","sourceRoot":"","sources":["../../../src/steps/builtin/transform.step.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attachment — opaque reference to a file managed by the host's StorageAdapter.
|
|
3
|
+
*
|
|
4
|
+
* Used everywhere the framework carries a file:
|
|
5
|
+
* - Trigger inputs (uploaded via `POST /uploads`, attached to `context.trigger.attachments`)
|
|
6
|
+
* - Resume payloads (uploaded with feedback in a review-gate retry)
|
|
7
|
+
* - Step inputs (rerunFromStep with attachments in configOverrides)
|
|
8
|
+
*
|
|
9
|
+
* The framework never opens `data` — it's a host-defined reference (URL,
|
|
10
|
+
* blob ID, signed token, `mem://uuid`). Steps that need the bytes call
|
|
11
|
+
* `StorageAdapter.read()` via a service the host registers.
|
|
12
|
+
*/
|
|
13
|
+
export interface Attachment {
|
|
14
|
+
/** Original filename — e.g. "contract.pdf". */
|
|
15
|
+
name: string;
|
|
16
|
+
/** MIME type — e.g. "application/pdf", "image/png". */
|
|
17
|
+
mimeType: string;
|
|
18
|
+
/** Opaque host reference. Framework treats this as a string. */
|
|
19
|
+
data: string;
|
|
20
|
+
/** Size in bytes — set by storage after upload. Useful for UI display + size budgets. */
|
|
21
|
+
size?: number;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=attachment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/types/attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/types/attachment.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ResumePayload — the unified shape for resuming a paused execution.
|
|
3
|
+
*
|
|
4
|
+
* One contract for every pause type:
|
|
5
|
+
* - Mid-execution agent pauses (tool approval, input required, user interrupted)
|
|
6
|
+
* - Review gates (`onComplete: 'review'`)
|
|
7
|
+
*
|
|
8
|
+
* The router validates incoming bodies into this shape; persistence stores it
|
|
9
|
+
* verbatim; the executor and step `onResume` handlers consume it.
|
|
10
|
+
*/
|
|
11
|
+
import type { Attachment } from './attachment.js';
|
|
12
|
+
/**
|
|
13
|
+
* Alias for {@link Attachment} kept for clarity at call sites that historically
|
|
14
|
+
* said "resume attachment". The shape is shared across the framework.
|
|
15
|
+
*/
|
|
16
|
+
export type ResumeAttachment = Attachment;
|
|
17
|
+
/**
|
|
18
|
+
* What the user decided.
|
|
19
|
+
* - `approve`: continue from a mid-pause OR advance past a review gate
|
|
20
|
+
* - `retry`: re-execute the current step with `priorState` + `feedback` (review gate)
|
|
21
|
+
* - `abort`: cancel the execution
|
|
22
|
+
*/
|
|
23
|
+
export type ResumeAction = 'approve' | 'retry' | 'abort';
|
|
24
|
+
/** Payload from the host when resuming a paused execution. */
|
|
25
|
+
export interface ResumePayload {
|
|
26
|
+
action: ResumeAction;
|
|
27
|
+
/** User-provided text input (form feedback, instruction, additional context). */
|
|
28
|
+
feedback?: string;
|
|
29
|
+
/** Files uploaded alongside the feedback. Opaque references — host resolves. */
|
|
30
|
+
attachments?: ResumeAttachment[];
|
|
31
|
+
/** Step-specific extras from custom form fields. Opaque to the framework. */
|
|
32
|
+
data?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=resume-payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume-payload.d.ts","sourceRoot":"","sources":["../../src/types/resume-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzD,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ResumePayload — the unified shape for resuming a paused execution.
|
|
3
|
+
*
|
|
4
|
+
* One contract for every pause type:
|
|
5
|
+
* - Mid-execution agent pauses (tool approval, input required, user interrupted)
|
|
6
|
+
* - Review gates (`onComplete: 'review'`)
|
|
7
|
+
*
|
|
8
|
+
* The router validates incoming bodies into this shape; persistence stores it
|
|
9
|
+
* verbatim; the executor and step `onResume` handlers consume it.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=resume-payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume-payload.js","sourceRoot":"","sources":["../../src/types/resume-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -46,6 +46,12 @@ export interface Citation {
|
|
|
46
46
|
label?: string;
|
|
47
47
|
/** Optional free-text note explaining the citation. */
|
|
48
48
|
description?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Optional page number within an attachment source — a literal (e.g. "3") or a
|
|
51
|
+
* `{{...}}` reference (e.g. `{{steps.extract.output.response.x.sourcePage}}`).
|
|
52
|
+
* Only meaningful when `ref` resolves to an attachment (a document).
|
|
53
|
+
*/
|
|
54
|
+
pageNumber?: string;
|
|
49
55
|
}
|
|
50
56
|
/**
|
|
51
57
|
* Human-facing documentation fields shared by every step config. Purely
|
|
@@ -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;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,WAAW,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":"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;AAgHF,4BAA4B;AAE5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;KACvC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAwBH,kBAAkB;AAElB;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAgC,EAChC,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAY,OAAO,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IACE,OAAO,KAAK,IAAI;YAChB,OAAO,KAAK,SAAS;YACrB,OAAO,OAAO,KAAK,QAAQ,EAC3B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Executable upload safety check.
|
|
3
|
+
*
|
|
4
|
+
* Allow-by-default with a deny-list of known dangerous types — covers the
|
|
5
|
+
* common attack surface (native binaries, scripts that auto-run, installers,
|
|
6
|
+
* macro-enabled Office docs) without forcing workflow authors to enumerate
|
|
7
|
+
* every safe MIME type.
|
|
8
|
+
*
|
|
9
|
+
* Two checks run in parallel so spoofed MIME types alone can't bypass:
|
|
10
|
+
* 1. MIME type matches the deny-list
|
|
11
|
+
* 2. Filename extension matches the deny-list
|
|
12
|
+
*
|
|
13
|
+
* Either match blocks the upload. To accept executables (e.g. a security-
|
|
14
|
+
* analysis workflow that intentionally examines binaries), the host opts
|
|
15
|
+
* in via `RuntimeOptions.allowExecutableUploads = true`.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* MIME types treated as executable / unsafe (lowercase — input is also
|
|
19
|
+
* lowercased before comparison).
|
|
20
|
+
*/
|
|
21
|
+
export declare const BLOCKED_EXECUTABLE_MIME_TYPES: ReadonlySet<string>;
|
|
22
|
+
/**
|
|
23
|
+
* File extensions treated as executable / unsafe (case-insensitive, no dot).
|
|
24
|
+
* The check uses the LAST extension so `report.exe.txt` is treated as text
|
|
25
|
+
* (Windows shows the trailing extension, which is what the user actually sees).
|
|
26
|
+
*/
|
|
27
|
+
export declare const BLOCKED_EXECUTABLE_EXTENSIONS: ReadonlySet<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Extract the lowercase extension (no dot) from a filename, or '' if none.
|
|
30
|
+
* A leading dot doesn't count — `.bashrc` has no extension, not "bashrc".
|
|
31
|
+
*/
|
|
32
|
+
export declare function extensionOf(name: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Returns a human-readable reason if the file should be blocked as
|
|
35
|
+
* executable, or `null` if it's safe.
|
|
36
|
+
*
|
|
37
|
+
* Always check both the MIME type and the filename — clients can spoof one
|
|
38
|
+
* but rarely both. This is defense-in-depth, not authoritative malware
|
|
39
|
+
* detection (run real AV at the storage layer for that).
|
|
40
|
+
*/
|
|
41
|
+
export declare function isExecutable(mimeType: string, name: string): string | null;
|
|
42
|
+
//# sourceMappingURL=executable-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-check.d.ts","sourceRoot":"","sources":["../../src/util/executable-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAwC5D,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAmB5D,CAAC;AAEH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS1E"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Executable upload safety check.
|
|
3
|
+
*
|
|
4
|
+
* Allow-by-default with a deny-list of known dangerous types — covers the
|
|
5
|
+
* common attack surface (native binaries, scripts that auto-run, installers,
|
|
6
|
+
* macro-enabled Office docs) without forcing workflow authors to enumerate
|
|
7
|
+
* every safe MIME type.
|
|
8
|
+
*
|
|
9
|
+
* Two checks run in parallel so spoofed MIME types alone can't bypass:
|
|
10
|
+
* 1. MIME type matches the deny-list
|
|
11
|
+
* 2. Filename extension matches the deny-list
|
|
12
|
+
*
|
|
13
|
+
* Either match blocks the upload. To accept executables (e.g. a security-
|
|
14
|
+
* analysis workflow that intentionally examines binaries), the host opts
|
|
15
|
+
* in via `RuntimeOptions.allowExecutableUploads = true`.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* MIME types treated as executable / unsafe (lowercase — input is also
|
|
19
|
+
* lowercased before comparison).
|
|
20
|
+
*/
|
|
21
|
+
export const BLOCKED_EXECUTABLE_MIME_TYPES = new Set([
|
|
22
|
+
// Native binaries
|
|
23
|
+
'application/x-msdownload',
|
|
24
|
+
'application/x-msdos-program',
|
|
25
|
+
'application/x-executable',
|
|
26
|
+
'application/x-mach-binary',
|
|
27
|
+
'application/vnd.microsoft.portable-executable',
|
|
28
|
+
'application/x-msi',
|
|
29
|
+
'application/x-ms-installer',
|
|
30
|
+
// Shell + Windows scripts
|
|
31
|
+
'application/x-sh',
|
|
32
|
+
'application/x-shellscript',
|
|
33
|
+
'application/x-bat',
|
|
34
|
+
'application/x-csh',
|
|
35
|
+
'application/x-cmd',
|
|
36
|
+
'application/x-msmetafile',
|
|
37
|
+
// JavaScript / ECMAScript
|
|
38
|
+
'text/javascript',
|
|
39
|
+
'application/javascript',
|
|
40
|
+
'application/ecmascript',
|
|
41
|
+
'application/x-javascript',
|
|
42
|
+
// Java / Flash
|
|
43
|
+
'application/java-archive',
|
|
44
|
+
'application/x-java-archive',
|
|
45
|
+
'application/x-java-jnlp-file',
|
|
46
|
+
'application/x-shockwave-flash',
|
|
47
|
+
// Installer / package formats that bundle executables
|
|
48
|
+
'application/vnd.android.package-archive',
|
|
49
|
+
'application/x-debian-package',
|
|
50
|
+
'application/x-rpm',
|
|
51
|
+
// Macro-enabled Office documents (lowercased — IANA tokens are case-insensitive)
|
|
52
|
+
'application/vnd.ms-word.document.macroenabled.12',
|
|
53
|
+
'application/vnd.ms-word.template.macroenabled.12',
|
|
54
|
+
'application/vnd.ms-excel.sheet.macroenabled.12',
|
|
55
|
+
'application/vnd.ms-excel.template.macroenabled.12',
|
|
56
|
+
'application/vnd.ms-excel.addin.macroenabled.12',
|
|
57
|
+
'application/vnd.ms-excel.sheet.binary.macroenabled.12',
|
|
58
|
+
'application/vnd.ms-powerpoint.presentation.macroenabled.12',
|
|
59
|
+
'application/vnd.ms-powerpoint.template.macroenabled.12',
|
|
60
|
+
'application/vnd.ms-powerpoint.addin.macroenabled.12',
|
|
61
|
+
]);
|
|
62
|
+
/**
|
|
63
|
+
* File extensions treated as executable / unsafe (case-insensitive, no dot).
|
|
64
|
+
* The check uses the LAST extension so `report.exe.txt` is treated as text
|
|
65
|
+
* (Windows shows the trailing extension, which is what the user actually sees).
|
|
66
|
+
*/
|
|
67
|
+
export const BLOCKED_EXECUTABLE_EXTENSIONS = new Set([
|
|
68
|
+
// Windows
|
|
69
|
+
'exe', 'msi', 'com', 'scr', 'cmd', 'bat', 'ps1', 'psm1',
|
|
70
|
+
'vbs', 'vbe', 'wsf', 'wsh', 'hta', 'cpl', 'lnk',
|
|
71
|
+
'dll', 'sys', 'drv', 'ocx',
|
|
72
|
+
// macOS / Unix
|
|
73
|
+
'app', 'dmg', 'pkg',
|
|
74
|
+
'sh', 'bash', 'zsh', 'fish', 'csh', 'ksh', 'command', 'tool',
|
|
75
|
+
// Java / Flash
|
|
76
|
+
'jar', 'war', 'jnlp', 'swf',
|
|
77
|
+
// Mobile installers
|
|
78
|
+
'apk', 'ipa', 'xap',
|
|
79
|
+
// Linux installers
|
|
80
|
+
'deb', 'rpm', 'run', 'bin',
|
|
81
|
+
// JavaScript (auto-executes in browser / Node contexts)
|
|
82
|
+
'js', 'mjs', 'cjs',
|
|
83
|
+
// Macro-enabled Office
|
|
84
|
+
'docm', 'dotm', 'xlsm', 'xltm', 'xlam', 'xlsb',
|
|
85
|
+
'pptm', 'potm', 'ppam', 'ppsm', 'sldm',
|
|
86
|
+
]);
|
|
87
|
+
/**
|
|
88
|
+
* Extract the lowercase extension (no dot) from a filename, or '' if none.
|
|
89
|
+
* A leading dot doesn't count — `.bashrc` has no extension, not "bashrc".
|
|
90
|
+
*/
|
|
91
|
+
export function extensionOf(name) {
|
|
92
|
+
const dot = name.lastIndexOf('.');
|
|
93
|
+
if (dot <= 0 || dot === name.length - 1)
|
|
94
|
+
return '';
|
|
95
|
+
return name.slice(dot + 1).toLowerCase();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Returns a human-readable reason if the file should be blocked as
|
|
99
|
+
* executable, or `null` if it's safe.
|
|
100
|
+
*
|
|
101
|
+
* Always check both the MIME type and the filename — clients can spoof one
|
|
102
|
+
* but rarely both. This is defense-in-depth, not authoritative malware
|
|
103
|
+
* detection (run real AV at the storage layer for that).
|
|
104
|
+
*/
|
|
105
|
+
export function isExecutable(mimeType, name) {
|
|
106
|
+
if (BLOCKED_EXECUTABLE_MIME_TYPES.has(mimeType.toLowerCase())) {
|
|
107
|
+
return `Executable MIME type "${mimeType}" is not allowed.`;
|
|
108
|
+
}
|
|
109
|
+
const ext = extensionOf(name);
|
|
110
|
+
if (ext && BLOCKED_EXECUTABLE_EXTENSIONS.has(ext)) {
|
|
111
|
+
return `Files with .${ext} extension are not allowed.`;
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=executable-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-check.js","sourceRoot":"","sources":["../../src/util/executable-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CAAC;IACxE,kBAAkB;IAClB,0BAA0B;IAC1B,6BAA6B;IAC7B,0BAA0B;IAC1B,2BAA2B;IAC3B,+CAA+C;IAC/C,mBAAmB;IACnB,4BAA4B;IAC5B,0BAA0B;IAC1B,kBAAkB;IAClB,2BAA2B;IAC3B,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,0BAA0B;IAC1B,0BAA0B;IAC1B,iBAAiB;IACjB,wBAAwB;IACxB,wBAAwB;IACxB,0BAA0B;IAC1B,eAAe;IACf,0BAA0B;IAC1B,4BAA4B;IAC5B,8BAA8B;IAC9B,+BAA+B;IAC/B,sDAAsD;IACtD,yCAAyC;IACzC,8BAA8B;IAC9B,mBAAmB;IACnB,iFAAiF;IACjF,kDAAkD;IAClD,kDAAkD;IAClD,gDAAgD;IAChD,mDAAmD;IACnD,gDAAgD;IAChD,uDAAuD;IACvD,4DAA4D;IAC5D,wDAAwD;IACxD,qDAAqD;CACtD,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CAAC;IACxE,UAAU;IACV,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;IACvD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAC/C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAC1B,eAAe;IACf,KAAK,EAAE,KAAK,EAAE,KAAK;IACnB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM;IAC5D,eAAe;IACf,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IAC3B,oBAAoB;IACpB,KAAK,EAAE,KAAK,EAAE,KAAK;IACnB,mBAAmB;IACnB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAC1B,wDAAwD;IACxD,IAAI,EAAE,KAAK,EAAE,KAAK;IAClB,uBAAuB;IACvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC9C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CACvC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IACzD,IAAI,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC9D,OAAO,yBAAyB,QAAQ,mBAAmB,CAAC;IAC9D,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,IAAI,6BAA6B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,eAAe,GAAG,6BAA6B,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED