@xyne/workflow-sdk 2.1.1 → 2.2.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/agents/agent-step.d.ts.map +1 -1
- package/dist/agents/agent-step.js +10 -8
- package/dist/agents/agent-step.js.map +1 -1
- package/dist/client/types.d.ts +20 -2
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/workflow-client.d.ts.map +1 -1
- package/dist/client/workflow-client.js +17 -1
- package/dist/client/workflow-client.js.map +1 -1
- package/dist/persistence/in-memory-adapter.d.ts +11 -3
- package/dist/persistence/in-memory-adapter.d.ts.map +1 -1
- package/dist/persistence/in-memory-adapter.js +30 -6
- package/dist/persistence/in-memory-adapter.js.map +1 -1
- package/dist/persistence/types.d.ts +16 -5
- package/dist/persistence/types.d.ts.map +1 -1
- package/dist/router/workflow-router.d.ts.map +1 -1
- package/dist/router/workflow-router.js +38 -5
- package/dist/router/workflow-router.js.map +1 -1
- package/dist/runtime/workflow-runtime.d.ts +20 -2
- package/dist/runtime/workflow-runtime.d.ts.map +1 -1
- package/dist/runtime/workflow-runtime.js +45 -1
- package/dist/runtime/workflow-runtime.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
|
@@ -1,12 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resume-payload.js","sourceRoot":"","sources":["../../src/types/resume-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -1,42 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,115 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|