@xyne/workflow-sdk 3.2.31 → 3.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/agents/agent-step.d.ts +12 -0
  2. package/dist/agents/agent-step.d.ts.map +1 -1
  3. package/dist/agents/agent-step.js +58 -4
  4. package/dist/agents/agent-step.js.map +1 -1
  5. package/dist/agents/base-runtime.d.ts +7 -6
  6. package/dist/agents/base-runtime.d.ts.map +1 -1
  7. package/dist/agents/base-runtime.js.map +1 -1
  8. package/dist/agents/index.d.ts +3 -1
  9. package/dist/agents/index.d.ts.map +1 -1
  10. package/dist/agents/index.js +2 -0
  11. package/dist/agents/index.js.map +1 -1
  12. package/dist/agents/pi-session-runtime.d.ts +90 -0
  13. package/dist/agents/pi-session-runtime.d.ts.map +1 -0
  14. package/dist/agents/pi-session-runtime.js +231 -0
  15. package/dist/agents/pi-session-runtime.js.map +1 -0
  16. package/dist/agents/types.d.ts +1 -0
  17. package/dist/agents/types.d.ts.map +1 -1
  18. package/dist/agents/types.js.map +1 -1
  19. package/dist/client/index.d.ts +1 -1
  20. package/dist/client/index.d.ts.map +1 -1
  21. package/dist/client/types.d.ts +35 -17
  22. package/dist/client/types.d.ts.map +1 -1
  23. package/dist/client/workflow-client.d.ts.map +1 -1
  24. package/dist/client/workflow-client.js +24 -13
  25. package/dist/client/workflow-client.js.map +1 -1
  26. package/dist/common/credentials.d.ts +258 -0
  27. package/dist/common/credentials.d.ts.map +1 -0
  28. package/dist/common/credentials.js +176 -0
  29. package/dist/common/credentials.js.map +1 -0
  30. package/dist/common/index.d.ts +7 -1
  31. package/dist/common/index.d.ts.map +1 -1
  32. package/dist/common/index.js +19 -1
  33. package/dist/common/index.js.map +1 -1
  34. package/dist/engine/workflow-executor.d.ts.map +1 -1
  35. package/dist/engine/workflow-executor.js +24 -9
  36. package/dist/engine/workflow-executor.js.map +1 -1
  37. package/dist/index.d.ts +4 -2
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/persistence/in-memory-adapter.d.ts +93 -29
  42. package/dist/persistence/in-memory-adapter.d.ts.map +1 -1
  43. package/dist/persistence/in-memory-adapter.js +171 -52
  44. package/dist/persistence/in-memory-adapter.js.map +1 -1
  45. package/dist/persistence/types.d.ts +84 -26
  46. package/dist/persistence/types.d.ts.map +1 -1
  47. package/dist/router/workflow-router.d.ts +3 -1
  48. package/dist/router/workflow-router.d.ts.map +1 -1
  49. package/dist/router/workflow-router.js +218 -40
  50. package/dist/router/workflow-router.js.map +1 -1
  51. package/dist/runtime/workflow-runtime.d.ts +22 -30
  52. package/dist/runtime/workflow-runtime.d.ts.map +1 -1
  53. package/dist/runtime/workflow-runtime.js +46 -54
  54. package/dist/runtime/workflow-runtime.js.map +1 -1
  55. package/dist/steps/base-step.d.ts +12 -26
  56. package/dist/steps/base-step.d.ts.map +1 -1
  57. package/dist/steps/base-step.js +2 -4
  58. package/dist/steps/base-step.js.map +1 -1
  59. package/dist/steps/builtin/code.step.d.ts +7 -3
  60. package/dist/steps/builtin/code.step.d.ts.map +1 -1
  61. package/dist/steps/builtin/code.step.js +77 -47
  62. package/dist/steps/builtin/code.step.js.map +1 -1
  63. package/dist/steps/builtin/http-request.step.d.ts +18 -264
  64. package/dist/steps/builtin/http-request.step.d.ts.map +1 -1
  65. package/dist/steps/builtin/http-request.step.js +48 -157
  66. package/dist/steps/builtin/http-request.step.js.map +1 -1
  67. package/dist/steps/builtin/ssrf-guard.d.ts +9 -0
  68. package/dist/steps/builtin/ssrf-guard.d.ts.map +1 -0
  69. package/dist/steps/builtin/ssrf-guard.js +115 -0
  70. package/dist/steps/builtin/ssrf-guard.js.map +1 -0
  71. package/dist/steps/builtin/switch.step.d.ts +14 -14
  72. package/dist/steps/builtin/wait.step.d.ts +56 -56
  73. package/dist/steps/step-registry.d.ts +1 -3
  74. package/dist/steps/step-registry.d.ts.map +1 -1
  75. package/dist/steps/step-registry.js +0 -1
  76. package/dist/steps/step-registry.js.map +1 -1
  77. package/dist/testing/index.d.ts +1 -1
  78. package/dist/testing/index.d.ts.map +1 -1
  79. package/dist/testing/index.js +1 -1
  80. package/dist/testing/index.js.map +1 -1
  81. package/dist/testing/mock-step-context.d.ts +7 -2
  82. package/dist/testing/mock-step-context.d.ts.map +1 -1
  83. package/dist/testing/mock-step-context.js +9 -1
  84. package/dist/testing/mock-step-context.js.map +1 -1
  85. package/dist/triggers/webhook-trigger.d.ts +1 -5
  86. package/dist/triggers/webhook-trigger.d.ts.map +1 -1
  87. package/dist/triggers/webhook-trigger.js.map +1 -1
  88. package/package.json +7 -2
@@ -0,0 +1,258 @@
1
+ import { z } from 'zod';
2
+ import type { Action } from '../authz/types.js';
3
+ import type { ResourceAttributes } from '../authz/attributes.js';
4
+ export declare const CredentialStatusSchema: z.ZodEnum<["ACTIVE", "REVOKED"]>;
5
+ export type CredentialStatus = z.infer<typeof CredentialStatusSchema>;
6
+ export type CredentialFieldControl = 'password' | 'text' | 'url';
7
+ export interface CredentialRegistryInputField {
8
+ readonly key: string;
9
+ readonly label: string;
10
+ readonly control: CredentialFieldControl;
11
+ /** Optional example hint shown as the input's placeholder. */
12
+ readonly placeholder?: string;
13
+ }
14
+ export type CredentialRegistryEntryField = CredentialRegistryInputField;
15
+ interface CredentialRegistryEntryBase {
16
+ readonly label: string;
17
+ readonly fields: readonly CredentialRegistryEntryField[];
18
+ }
19
+ /**
20
+ * Bearer token values.
21
+ *
22
+ * Runtime: `Authorization: Bearer <token>` is added to the request.
23
+ */
24
+ export declare const BearerValuesSchema: z.ZodObject<{
25
+ token: z.ZodString;
26
+ }, "strict", z.ZodTypeAny, {
27
+ token: string;
28
+ }, {
29
+ token: string;
30
+ }>;
31
+ export type BearerValues = z.infer<typeof BearerValuesSchema>;
32
+ /**
33
+ * HTTP Basic authentication values.
34
+ *
35
+ * Runtime: `Authorization: Basic base64(username:password)` is added.
36
+ */
37
+ export declare const BasicValuesSchema: z.ZodObject<{
38
+ username: z.ZodString;
39
+ password: z.ZodString;
40
+ }, "strict", z.ZodTypeAny, {
41
+ password: string;
42
+ username: string;
43
+ }, {
44
+ password: string;
45
+ username: string;
46
+ }>;
47
+ export type BasicValues = z.infer<typeof BasicValuesSchema>;
48
+ /**
49
+ * Custom header values.
50
+ *
51
+ * Runtime: a single header `<name>: <value>` is added to the request.
52
+ */
53
+ export declare const CustomHeaderValuesSchema: z.ZodObject<{
54
+ name: z.ZodString;
55
+ value: z.ZodString;
56
+ }, "strict", z.ZodTypeAny, {
57
+ value: string;
58
+ name: string;
59
+ }, {
60
+ value: string;
61
+ name: string;
62
+ }>;
63
+ export type CustomHeaderValues = z.infer<typeof CustomHeaderValuesSchema>;
64
+ /**
65
+ * OAuth 2.0 client credentials values.
66
+ */
67
+ export declare const OAuth2ClientCredentialsValuesSchema: z.ZodObject<{
68
+ tokenUrl: z.ZodString;
69
+ clientId: z.ZodString;
70
+ clientSecret: z.ZodString;
71
+ }, "strict", z.ZodTypeAny, {
72
+ tokenUrl: string;
73
+ clientId: string;
74
+ clientSecret: string;
75
+ }, {
76
+ tokenUrl: string;
77
+ clientId: string;
78
+ clientSecret: string;
79
+ }>;
80
+ export type OAuth2ClientCredentialsValues = z.infer<typeof OAuth2ClientCredentialsValuesSchema>;
81
+ /**
82
+ * Credential authentication is discriminated by `authType`, keeping each
83
+ * authentication type paired with its exact values shape.
84
+ */
85
+ export declare const CredentialAuthSchema: z.ZodDiscriminatedUnion<"authType", [z.ZodObject<{
86
+ authType: z.ZodLiteral<"bearer">;
87
+ values: z.ZodObject<{
88
+ token: z.ZodString;
89
+ }, "strict", z.ZodTypeAny, {
90
+ token: string;
91
+ }, {
92
+ token: string;
93
+ }>;
94
+ }, "strict", z.ZodTypeAny, {
95
+ values: {
96
+ token: string;
97
+ };
98
+ authType: "bearer";
99
+ }, {
100
+ values: {
101
+ token: string;
102
+ };
103
+ authType: "bearer";
104
+ }>, z.ZodObject<{
105
+ authType: z.ZodLiteral<"basic">;
106
+ values: z.ZodObject<{
107
+ username: z.ZodString;
108
+ password: z.ZodString;
109
+ }, "strict", z.ZodTypeAny, {
110
+ password: string;
111
+ username: string;
112
+ }, {
113
+ password: string;
114
+ username: string;
115
+ }>;
116
+ }, "strict", z.ZodTypeAny, {
117
+ values: {
118
+ password: string;
119
+ username: string;
120
+ };
121
+ authType: "basic";
122
+ }, {
123
+ values: {
124
+ password: string;
125
+ username: string;
126
+ };
127
+ authType: "basic";
128
+ }>, z.ZodObject<{
129
+ authType: z.ZodLiteral<"custom_header">;
130
+ values: z.ZodObject<{
131
+ name: z.ZodString;
132
+ value: z.ZodString;
133
+ }, "strict", z.ZodTypeAny, {
134
+ value: string;
135
+ name: string;
136
+ }, {
137
+ value: string;
138
+ name: string;
139
+ }>;
140
+ }, "strict", z.ZodTypeAny, {
141
+ values: {
142
+ value: string;
143
+ name: string;
144
+ };
145
+ authType: "custom_header";
146
+ }, {
147
+ values: {
148
+ value: string;
149
+ name: string;
150
+ };
151
+ authType: "custom_header";
152
+ }>, z.ZodObject<{
153
+ authType: z.ZodLiteral<"oauth2_client_credentials">;
154
+ values: z.ZodObject<{
155
+ tokenUrl: z.ZodString;
156
+ clientId: z.ZodString;
157
+ clientSecret: z.ZodString;
158
+ }, "strict", z.ZodTypeAny, {
159
+ tokenUrl: string;
160
+ clientId: string;
161
+ clientSecret: string;
162
+ }, {
163
+ tokenUrl: string;
164
+ clientId: string;
165
+ clientSecret: string;
166
+ }>;
167
+ }, "strict", z.ZodTypeAny, {
168
+ values: {
169
+ tokenUrl: string;
170
+ clientId: string;
171
+ clientSecret: string;
172
+ };
173
+ authType: "oauth2_client_credentials";
174
+ }, {
175
+ values: {
176
+ tokenUrl: string;
177
+ clientId: string;
178
+ clientSecret: string;
179
+ };
180
+ authType: "oauth2_client_credentials";
181
+ }>]>;
182
+ export type CredentialAuth = z.infer<typeof CredentialAuthSchema>;
183
+ export type CredentialAuthType = CredentialAuth['authType'];
184
+ export type AuthSpecificValues = CredentialAuth['values'];
185
+ /**
186
+ * Per-auth-type value schemas, extracted from the discriminated union.
187
+ */
188
+ export declare const CREDENTIAL_VALUE_SCHEMAS: Record<CredentialAuthType, z.ZodTypeAny>;
189
+ export declare function validateCredentialAuth(authType: CredentialAuthType, values: unknown): CredentialAuth;
190
+ export declare function validateCredentialValues(authType: CredentialAuthType, values: unknown): AuthSpecificValues;
191
+ export declare const CredentialNameSchema: z.ZodString;
192
+ export interface CredentialSummary {
193
+ readonly name: string;
194
+ readonly authType: CredentialAuthType;
195
+ readonly status: CredentialStatus;
196
+ readonly createdAt: number;
197
+ readonly updatedAt: number;
198
+ }
199
+ export type ResolvedCredential = Readonly<{
200
+ name: string;
201
+ status: CredentialStatus;
202
+ }> & Readonly<CredentialAuth>;
203
+ /**
204
+ * Apply an already-resolved credential to HTTP request headers.
205
+ *
206
+ * Credential resolution belongs to the executor/runtime. This shared helper
207
+ * only translates the validated credential value into its HTTP representation,
208
+ * so workflow steps and server-side credential testing use identical logic.
209
+ */
210
+ export declare function applyResolvedCredentialAuth(headers: Headers, credential: ResolvedCredential): void;
211
+ export type CreateCredentialInput = Readonly<{
212
+ name: string;
213
+ }> & Readonly<CredentialAuth>;
214
+ export interface ReplaceCredentialValuesInput {
215
+ readonly values: AuthSpecificValues;
216
+ }
217
+ /**
218
+ * One safe credential row returned by list operations.
219
+ *
220
+ * `summary` is the SDK-owned credential shape. `attributes` is the host-owned,
221
+ * typed metadata carried opaquely by the SDK. `permittedActions` is projected
222
+ * by the runtime so UIs can gate row actions without knowing host policy.
223
+ */
224
+ export interface CredentialListItem {
225
+ readonly summary: CredentialSummary;
226
+ readonly attributes?: ResourceAttributes<'credential'>;
227
+ readonly permittedActions?: readonly Action[];
228
+ }
229
+ export interface CredentialListResponse {
230
+ readonly credentials: CredentialListItem[];
231
+ }
232
+ /** Safe request shape for testing a stored credential against an HTTP endpoint. */
233
+ export interface TestCredentialInput {
234
+ readonly url: string;
235
+ readonly method?: string;
236
+ readonly headers?: Record<string, string>;
237
+ readonly body?: string;
238
+ }
239
+ /** Redacted result of a server-side credential test. Secret values are never returned. */
240
+ export interface TestCredentialResult {
241
+ readonly ok: boolean;
242
+ readonly status?: number;
243
+ readonly statusText?: string;
244
+ readonly durationMs?: number;
245
+ readonly headers?: Record<string, string>;
246
+ readonly bodyText?: string;
247
+ readonly error?: string;
248
+ }
249
+ export interface CredentialRegistryEntry extends CredentialRegistryEntryBase {
250
+ readonly type: CredentialAuthType;
251
+ }
252
+ /**
253
+ * Minimal registry for host-rendered credential forms. Entries and field keys
254
+ * are extracted from CredentialAuthSchema; Zod remains the source of truth.
255
+ */
256
+ export declare const CREDENTIAL_AUTH_REGISTRY: readonly CredentialRegistryEntry[];
257
+ export {};
258
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/common/credentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import { z } from 'zod';
2
+ export const CredentialStatusSchema = z.enum(['ACTIVE', 'REVOKED']);
3
+ const credentialFieldMetadata = new WeakMap();
4
+ function credentialField(schema, metadata) {
5
+ const describedSchema = schema.describe(metadata.label);
6
+ credentialFieldMetadata.set(describedSchema, metadata);
7
+ return describedSchema;
8
+ }
9
+ /**
10
+ * Bearer token values.
11
+ *
12
+ * Runtime: `Authorization: Bearer <token>` is added to the request.
13
+ */
14
+ export const BearerValuesSchema = z
15
+ .object({
16
+ token: credentialField(z.string().min(1), {
17
+ label: 'Token',
18
+ control: 'password',
19
+ }),
20
+ })
21
+ .strict();
22
+ /**
23
+ * HTTP Basic authentication values.
24
+ *
25
+ * Runtime: `Authorization: Basic base64(username:password)` is added.
26
+ */
27
+ export const BasicValuesSchema = z
28
+ .object({
29
+ username: credentialField(z.string().min(1), {
30
+ label: 'Username',
31
+ control: 'text',
32
+ }),
33
+ password: credentialField(z.string().min(1), {
34
+ label: 'Password',
35
+ control: 'password',
36
+ }),
37
+ })
38
+ .strict();
39
+ /**
40
+ * Custom header values.
41
+ *
42
+ * Runtime: a single header `<name>: <value>` is added to the request.
43
+ */
44
+ export const CustomHeaderValuesSchema = z
45
+ .object({
46
+ name: credentialField(z.string().min(1), {
47
+ label: 'Header name',
48
+ control: 'text',
49
+ placeholder: 'e.g. X-Custom-Token',
50
+ }),
51
+ value: credentialField(z.string().min(1), {
52
+ label: 'Header value',
53
+ control: 'password',
54
+ placeholder: 'The header value to send',
55
+ }),
56
+ })
57
+ .strict();
58
+ /**
59
+ * OAuth 2.0 client credentials values.
60
+ */
61
+ export const OAuth2ClientCredentialsValuesSchema = z
62
+ .object({
63
+ tokenUrl: credentialField(z.string().url(), {
64
+ label: 'Token URL',
65
+ control: 'url',
66
+ }),
67
+ clientId: credentialField(z.string().min(1), {
68
+ label: 'Client ID',
69
+ control: 'text',
70
+ }),
71
+ clientSecret: credentialField(z.string().min(1), {
72
+ label: 'Client Secret',
73
+ control: 'password',
74
+ }),
75
+ })
76
+ .strict();
77
+ const BearerCredentialAuthSchema = z
78
+ .object({
79
+ authType: z.literal('bearer'),
80
+ values: BearerValuesSchema,
81
+ })
82
+ .strict()
83
+ .describe('Bearer Token');
84
+ const BasicCredentialAuthSchema = z
85
+ .object({
86
+ authType: z.literal('basic'),
87
+ values: BasicValuesSchema,
88
+ })
89
+ .strict()
90
+ .describe('Basic Auth');
91
+ const CustomHeaderCredentialAuthSchema = z
92
+ .object({
93
+ authType: z.literal('custom_header'),
94
+ values: CustomHeaderValuesSchema,
95
+ })
96
+ .strict()
97
+ .describe('Custom Header');
98
+ const OAuth2ClientCredentialsCredentialAuthSchema = z
99
+ .object({
100
+ authType: z.literal('oauth2_client_credentials'),
101
+ values: OAuth2ClientCredentialsValuesSchema,
102
+ })
103
+ .strict()
104
+ .describe('OAuth 2.0 Client Credentials');
105
+ /**
106
+ * Credential authentication is discriminated by `authType`, keeping each
107
+ * authentication type paired with its exact values shape.
108
+ */
109
+ export const CredentialAuthSchema = z.discriminatedUnion('authType', [
110
+ BearerCredentialAuthSchema,
111
+ BasicCredentialAuthSchema,
112
+ CustomHeaderCredentialAuthSchema,
113
+ OAuth2ClientCredentialsCredentialAuthSchema,
114
+ ]);
115
+ /**
116
+ * Per-auth-type value schemas, extracted from the discriminated union.
117
+ */
118
+ export const CREDENTIAL_VALUE_SCHEMAS = Object.fromEntries(CredentialAuthSchema.options.map((option) => [
119
+ option.shape.authType.value,
120
+ option.shape.values,
121
+ ]));
122
+ export function validateCredentialAuth(authType, values) {
123
+ return CredentialAuthSchema.parse({ authType, values });
124
+ }
125
+ export function validateCredentialValues(authType, values) {
126
+ return validateCredentialAuth(authType, values).values;
127
+ }
128
+ export const CredentialNameSchema = z.string().min(1).max(255);
129
+ /**
130
+ * Apply an already-resolved credential to HTTP request headers.
131
+ *
132
+ * Credential resolution belongs to the executor/runtime. This shared helper
133
+ * only translates the validated credential value into its HTTP representation,
134
+ * so workflow steps and server-side credential testing use identical logic.
135
+ */
136
+ export function applyResolvedCredentialAuth(headers, credential) {
137
+ switch (credential.authType) {
138
+ case 'bearer': {
139
+ const { token } = credential.values;
140
+ headers.set('authorization', `Bearer ${token}`);
141
+ break;
142
+ }
143
+ case 'basic': {
144
+ const { username, password } = credential.values;
145
+ headers.set('authorization', `Basic ${btoa(`${username}:${password}`)}`);
146
+ break;
147
+ }
148
+ case 'custom_header': {
149
+ const { name, value } = credential.values;
150
+ headers.set(name, value);
151
+ break;
152
+ }
153
+ case 'oauth2_client_credentials': {
154
+ throw new Error('oauth2_client_credentials is not yet supported for HTTP requests');
155
+ }
156
+ }
157
+ }
158
+ function extractRegistryFields(schema) {
159
+ return Object.entries(schema.shape).map(([key, fieldSchema]) => {
160
+ const metadata = credentialFieldMetadata.get(fieldSchema);
161
+ if (!metadata) {
162
+ throw new Error(`Credential field "${key}" is missing UI metadata`);
163
+ }
164
+ return { key, ...metadata };
165
+ });
166
+ }
167
+ /**
168
+ * Minimal registry for host-rendered credential forms. Entries and field keys
169
+ * are extracted from CredentialAuthSchema; Zod remains the source of truth.
170
+ */
171
+ export const CREDENTIAL_AUTH_REGISTRY = CredentialAuthSchema.options.map((option) => ({
172
+ type: option.shape.authType.value,
173
+ label: option.description ?? option.shape.authType.value,
174
+ fields: extractRegistryFields(option.shape.values),
175
+ }));
176
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/common/credentials.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,14 @@
9
9
  * - {@link CitationRef} — runtime, agent-emitted provenance for one data point
10
10
  * - {@link ResumePayload} / {@link ResumeAttachment} / {@link ResumeAction} — pause/resume contract
11
11
  * - {@link isExecutable}, {@link extensionOf} — upload safety check used at both perimeter and UI
12
+ * - Credential vault schemas, types, and the minimal auth-type registry —
13
+ * shared between the server (SDK router + persistence), the workflow-ui
14
+ * credential dropdown, and the xyne-search frontend credential management
15
+ * page. All of these imports are browser-safe (only `zod` is required).
12
16
  *
13
17
  * The main `@xyne/workflow-sdk` barrel still re-exports these for
14
18
  * server-side use; UI / builder code should import from here so that
15
- * Node-only modules (`node:vm`, persistence runtimes) stay out of the
19
+ * Node-only modules (persistence runtimes, DNS/socket APIs) stay out of the
16
20
  * browser bundle.
17
21
  */
18
22
  export type { Attachment } from './attachment.js';
@@ -24,4 +28,6 @@ export { validateTriggerPayload } from './validate-payload.js';
24
28
  export type { ResumePayload, ResumeAttachment, ResumeAction, } from './resume-payload.js';
25
29
  export { isExecutable, extensionOf, BLOCKED_EXECUTABLE_MIME_TYPES, BLOCKED_EXECUTABLE_EXTENSIONS, } from './executable-check.js';
26
30
  export { recordKey, framePrefix, leafStepId } from '../engine/node-path.js';
31
+ export type { CredentialStatus, CredentialAuthType, BearerValues, BasicValues, CustomHeaderValues, OAuth2ClientCredentialsValues, CredentialAuth, AuthSpecificValues, CredentialSummary, ResolvedCredential, CreateCredentialInput, ReplaceCredentialValuesInput, CredentialListItem, CredentialListResponse, TestCredentialInput, TestCredentialResult, CredentialFieldControl, CredentialRegistryInputField, CredentialRegistryEntryField, CredentialRegistryEntry, } from './credentials.js';
32
+ export { CredentialStatusSchema, BearerValuesSchema, BasicValuesSchema, CustomHeaderValuesSchema, OAuth2ClientCredentialsValuesSchema, CredentialAuthSchema, CREDENTIAL_VALUE_SCHEMAS, validateCredentialAuth, validateCredentialValues, applyResolvedCredentialAuth, CredentialNameSchema, CREDENTIAL_AUTH_REGISTRY, } from './credentials.js';
27
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAG5E,YAAY,EAEV,gBAAgB,EAChB,kBAAkB,EAGlB,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAE7B,cAAc,EACd,kBAAkB,EAIlB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EAGpB,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAEL,sBAAsB,EAGtB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,mCAAmC,EACnC,oBAAoB,EAIpB,wBAAwB,EAGxB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAG3B,oBAAoB,EAGpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC"}
@@ -9,10 +9,14 @@
9
9
  * - {@link CitationRef} — runtime, agent-emitted provenance for one data point
10
10
  * - {@link ResumePayload} / {@link ResumeAttachment} / {@link ResumeAction} — pause/resume contract
11
11
  * - {@link isExecutable}, {@link extensionOf} — upload safety check used at both perimeter and UI
12
+ * - Credential vault schemas, types, and the minimal auth-type registry —
13
+ * shared between the server (SDK router + persistence), the workflow-ui
14
+ * credential dropdown, and the xyne-search frontend credential management
15
+ * page. All of these imports are browser-safe (only `zod` is required).
12
16
  *
13
17
  * The main `@xyne/workflow-sdk` barrel still re-exports these for
14
18
  * server-side use; UI / builder code should import from here so that
15
- * Node-only modules (`node:vm`, persistence runtimes) stay out of the
19
+ * Node-only modules (persistence runtimes, DNS/socket APIs) stay out of the
16
20
  * browser bundle.
17
21
  */
18
22
  export { AttachmentSchema, ATTACHMENT_FORMAT, ATTACHMENT_JSON_SCHEMA, ATTACHMENT_ARRAY_JSON_SCHEMA, markAttachmentFields, isAttachment, mimeAccepted, attachmentProperty, } from './attachment.js';
@@ -22,4 +26,18 @@ export { isExecutable, extensionOf, BLOCKED_EXECUTABLE_MIME_TYPES, BLOCKED_EXECU
22
26
  // Node-path addressing for step records — pure string utilities (no Node deps),
23
27
  // used by the execution viewer / approvals UI to map node-path keys ↔ config ids.
24
28
  export { recordKey, framePrefix, leafStepId } from '../engine/node-path.js';
29
+ // ── Runtime value exports (Zod schemas, registry, validation helper) ──
30
+ export {
31
+ // ─ Status & auth type Zod schemas ──
32
+ CredentialStatusSchema,
33
+ // ─ Per-auth-type Zod value schemas ──
34
+ BearerValuesSchema, BasicValuesSchema, CustomHeaderValuesSchema, OAuth2ClientCredentialsValuesSchema, CredentialAuthSchema,
35
+ // ─ Value schema registry (runtime validation) ──
36
+ CREDENTIAL_VALUE_SCHEMAS,
37
+ // ─ Validation helper ──
38
+ validateCredentialAuth, validateCredentialValues, applyResolvedCredentialAuth,
39
+ // ─ Credential name schema ──
40
+ CredentialNameSchema,
41
+ // ─ The minimal auth-type registry ──
42
+ CREDENTIAL_AUTH_REGISTRY, } from './credentials.js';
25
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAM/D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,gFAAgF;AAChF,kFAAkF;AAClF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAM/D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,gFAAgF;AAChF,kFAAkF;AAClF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAmC5E,yEAAyE;AAEzE,OAAO;AACL,sCAAsC;AACtC,sBAAsB;AAEtB,uCAAuC;AACvC,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,mCAAmC,EACnC,oBAAoB;AAEpB,kDAAkD;AAElD,wBAAwB;AAExB,yBAAyB;AACzB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B;AAE3B,8BAA8B;AAC9B,oBAAoB;AAEpB,sCAAsC;AACtC,wBAAwB,GACzB,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-executor.d.ts","sourceRoot":"","sources":["../../src/engine/workflow-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-executor.d.ts","sourceRoot":"","sources":["../../src/engine/workflow-executor.ts"],"names":[],"mappings":"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"}
@@ -609,7 +609,7 @@ export class WorkflowExecutor {
609
609
  throw new Error(`Step "${step.id}" (${step.type}) config validation failed:\n${formatZodErrors(parsed.error)}`);
610
610
  }
611
611
  this.log.info(`step ${callCtx.isResuming ? 'RESUME' : 'START'} id=${step.id} type=${step.type}`);
612
- const stepCtx = await this.buildStepContext(context, { ...callCtx, stepId: step.id, rawConfig: step.config }, stepImpl);
612
+ const stepCtx = await this.buildStepContext(context, { ...callCtx, stepId: step.id, rawConfig: step.config }, stepImpl, undefined, parsed.data);
613
613
  const output = await controlImpl.execute(parsed.data, {
614
614
  ...stepCtx,
615
615
  walkBranch: (branchSteps, branchScope, branchKey, iter) => this.walkScope(branchSteps, branchScope, framePrefix(prefix, step.id, branchKey ?? 'default', iter ?? 0), walkCtx),
@@ -638,7 +638,7 @@ export class WorkflowExecutor {
638
638
  };
639
639
  const actionImpl = stepImpl;
640
640
  const resumePayload = resumeData?.['resumePayload'];
641
- const stepCtx = await this.buildStepContext(context, { ...callCtx, stepId: step.id, rawConfig: baseConfig }, stepImpl, resumePayload);
641
+ const stepCtx = await this.buildStepContext(context, { ...callCtx, stepId: step.id, rawConfig: baseConfig }, stepImpl, resumePayload, resolvedInput);
642
642
  this.log.info(`step ${callCtx.isResuming ? 'RESUME' : 'START'} id=${step.id} type=${step.type}`);
643
643
  try {
644
644
  let output;
@@ -671,19 +671,33 @@ export class WorkflowExecutor {
671
671
  throw err;
672
672
  }
673
673
  }
674
- async buildStepContext(context, callCtx, stepImpl, resumePayload) {
675
- // Resolve credentials if step declares credentialSlots
674
+ async buildStepContext(context, callCtx, stepImpl, resumePayload, resolvedConfig) {
676
675
  const credentials = {};
677
676
  if (stepImpl.credentialSlots && stepImpl.credentialSlots.length > 0) {
678
677
  for (const slot of stepImpl.credentialSlots) {
679
- // Scope comes from the workflow's typed attributes — not the metadata
680
- // bag, which also carries transient per-call plumbing.
681
- const resolved = await this.persistence.resolveCredential(context.workflow.attributes, slot.name);
678
+ const configuredName = resolvedConfig?.[slot.name];
679
+ if (configuredName === undefined ||
680
+ configuredName === null ||
681
+ configuredName === '') {
682
+ if (slot.required) {
683
+ throw new Error(`Required credential slot "${slot.name}" is not configured`);
684
+ }
685
+ continue;
686
+ }
687
+ if (typeof configuredName !== 'string') {
688
+ throw new Error(`Credential slot "${slot.name}" must resolve to a credential name`);
689
+ }
690
+ // Pass the running workflow so the adapter can identify and verify the
691
+ // workspace in which this execution is taking place.
692
+ const resolved = await this.persistence.resolveCredential(context.workflow, configuredName);
682
693
  if (resolved) {
683
694
  credentials[slot.name] = resolved;
684
695
  }
685
696
  else if (slot.required) {
686
- throw new Error(`Required credential "${slot.name}" not found`);
697
+ throw new Error(`Required credential "${configuredName}" not found`);
698
+ }
699
+ else {
700
+ throw new Error(`Credential "${configuredName}" not found or revoked`);
687
701
  }
688
702
  }
689
703
  }
@@ -693,7 +707,7 @@ export class WorkflowExecutor {
693
707
  const metadata = resumePayload
694
708
  ? { ...context.workflow.metadata, resumePayload }
695
709
  : context.workflow.metadata;
696
- return {
710
+ const stepContext = {
697
711
  workflow: context,
698
712
  runtime: {
699
713
  executionId: callCtx.executionId,
@@ -741,6 +755,7 @@ export class WorkflowExecutor {
741
755
  },
742
756
  log: this.log,
743
757
  };
758
+ return stepContext;
744
759
  }
745
760
  }
746
761
  // ─── Helpers ───