@swirls/sdk 0.0.6 → 0.0.8
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/chunk-MLKGABMK.js +9 -0
- package/dist/chunk-YLVKU5J3.js +13775 -0
- package/dist/client/client.d.ts +367 -126
- package/dist/client/client.js +1736 -1
- package/dist/config/config.js +8 -4
- package/dist/form/form.js +216 -3
- package/dist/form/generate.js +741 -2
- package/package.json +14 -10
package/dist/config/config.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
external_exports
|
|
3
|
+
} from "../chunk-YLVKU5J3.js";
|
|
4
|
+
import "../chunk-MLKGABMK.js";
|
|
5
|
+
|
|
1
6
|
// src/config/config.ts
|
|
2
7
|
import path from "path";
|
|
3
|
-
import { z } from "zod";
|
|
4
8
|
var configFileName = "swirls.config.ts";
|
|
5
9
|
var configImportPath = "@swirls/sdk/config";
|
|
6
10
|
var generatedFileName = "swirls.gen.ts";
|
|
7
|
-
var configSchema =
|
|
8
|
-
projectId:
|
|
9
|
-
genPath:
|
|
11
|
+
var configSchema = external_exports.object({
|
|
12
|
+
projectId: external_exports.uuid(),
|
|
13
|
+
genPath: external_exports.string().min(1)
|
|
10
14
|
});
|
|
11
15
|
function defineConfig(config) {
|
|
12
16
|
const root = process.cwd();
|
package/dist/form/form.js
CHANGED
|
@@ -1,6 +1,219 @@
|
|
|
1
|
+
import {
|
|
2
|
+
external_exports
|
|
3
|
+
} from "../chunk-YLVKU5J3.js";
|
|
4
|
+
import "../chunk-MLKGABMK.js";
|
|
5
|
+
|
|
6
|
+
// ../core/src/schemas.ts
|
|
7
|
+
var positionSchema = external_exports.object({ x: external_exports.number(), y: external_exports.number() });
|
|
8
|
+
var jsonSchemaSchema = external_exports.lazy(
|
|
9
|
+
() => external_exports.object({
|
|
10
|
+
$schema: external_exports.string().optional(),
|
|
11
|
+
$id: external_exports.string().optional(),
|
|
12
|
+
$ref: external_exports.string().optional(),
|
|
13
|
+
type: external_exports.union([
|
|
14
|
+
external_exports.custom(),
|
|
15
|
+
external_exports.array(external_exports.custom())
|
|
16
|
+
]).optional(),
|
|
17
|
+
properties: external_exports.record(external_exports.string(), jsonSchemaSchema).optional(),
|
|
18
|
+
required: external_exports.array(external_exports.string()).optional(),
|
|
19
|
+
title: external_exports.string().optional(),
|
|
20
|
+
description: external_exports.string().optional(),
|
|
21
|
+
default: external_exports.custom().optional(),
|
|
22
|
+
examples: external_exports.array(external_exports.custom()).optional(),
|
|
23
|
+
items: external_exports.union([jsonSchemaSchema, external_exports.array(jsonSchemaSchema)]).optional(),
|
|
24
|
+
additionalProperties: external_exports.union([external_exports.boolean(), jsonSchemaSchema]).optional(),
|
|
25
|
+
patternProperties: external_exports.record(external_exports.string(), jsonSchemaSchema).optional(),
|
|
26
|
+
// General validations
|
|
27
|
+
enum: external_exports.array(external_exports.custom()).optional(),
|
|
28
|
+
const: external_exports.custom().optional(),
|
|
29
|
+
// Number validations
|
|
30
|
+
minimum: external_exports.number().optional(),
|
|
31
|
+
maximum: external_exports.number().optional(),
|
|
32
|
+
// String validations
|
|
33
|
+
minLength: external_exports.number().optional(),
|
|
34
|
+
maxLength: external_exports.number().optional(),
|
|
35
|
+
pattern: external_exports.string().optional(),
|
|
36
|
+
// Array validations
|
|
37
|
+
minItems: external_exports.number().optional(),
|
|
38
|
+
maxItems: external_exports.number().optional(),
|
|
39
|
+
uniqueItems: external_exports.boolean().optional(),
|
|
40
|
+
// Composition
|
|
41
|
+
allOf: external_exports.array(jsonSchemaSchema).optional(),
|
|
42
|
+
anyOf: external_exports.array(jsonSchemaSchema).optional(),
|
|
43
|
+
oneOf: external_exports.array(jsonSchemaSchema).optional(),
|
|
44
|
+
not: jsonSchemaSchema.optional(),
|
|
45
|
+
if: jsonSchemaSchema.optional(),
|
|
46
|
+
else: jsonSchemaSchema.optional(),
|
|
47
|
+
// biome-ignore lint/suspicious/noThenProperty: `then` is a valid JSON Schema property
|
|
48
|
+
then: jsonSchemaSchema.optional()
|
|
49
|
+
})
|
|
50
|
+
);
|
|
51
|
+
var nodeTypeMap = {
|
|
52
|
+
bucket: "bucket",
|
|
53
|
+
code: "code",
|
|
54
|
+
document: "document",
|
|
55
|
+
email: "email",
|
|
56
|
+
graph: "graph",
|
|
57
|
+
http: "http",
|
|
58
|
+
llm: "llm",
|
|
59
|
+
scrape: "scrape",
|
|
60
|
+
stream: "stream",
|
|
61
|
+
switch: "switch",
|
|
62
|
+
wait: "wait"
|
|
63
|
+
};
|
|
64
|
+
var nodeTypeSchema = external_exports.enum(Object.values(nodeTypeMap));
|
|
65
|
+
var llmNodeConfigSchema = external_exports.object({
|
|
66
|
+
type: external_exports.literal(nodeTypeMap.llm),
|
|
67
|
+
model: external_exports.string().optional(),
|
|
68
|
+
prompt: external_exports.string().optional(),
|
|
69
|
+
temperature: external_exports.number().optional(),
|
|
70
|
+
maxTokens: external_exports.number().optional()
|
|
71
|
+
});
|
|
72
|
+
var codeNodeConfigSchema = external_exports.object({
|
|
73
|
+
type: external_exports.literal(nodeTypeMap.code),
|
|
74
|
+
code: external_exports.string().optional()
|
|
75
|
+
});
|
|
76
|
+
var httpNodeConfigSchema = external_exports.object({
|
|
77
|
+
type: external_exports.literal(nodeTypeMap.http),
|
|
78
|
+
url: external_exports.string().optional(),
|
|
79
|
+
method: external_exports.enum(["GET", "POST", "PUT", "DELETE", "PATCH"]).optional(),
|
|
80
|
+
headers: external_exports.string().optional(),
|
|
81
|
+
body: external_exports.string().optional()
|
|
82
|
+
});
|
|
83
|
+
var streamNodeFilterSchema = external_exports.object({
|
|
84
|
+
field: external_exports.string(),
|
|
85
|
+
operator: external_exports.enum(["eq", "ne", "gt", "lt", "gte", "lte", "like", "in"]),
|
|
86
|
+
value: external_exports.union([external_exports.string(), external_exports.number(), external_exports.boolean(), external_exports.array(external_exports.string())])
|
|
87
|
+
});
|
|
88
|
+
var streamNodeConfigSchema = external_exports.object({
|
|
89
|
+
type: external_exports.literal(nodeTypeMap.stream),
|
|
90
|
+
streamId: external_exports.string().optional(),
|
|
91
|
+
query: external_exports.object({
|
|
92
|
+
filter: external_exports.string().optional(),
|
|
93
|
+
sort: external_exports.array(
|
|
94
|
+
external_exports.object({
|
|
95
|
+
field: external_exports.string(),
|
|
96
|
+
direction: external_exports.enum(["asc", "desc"])
|
|
97
|
+
})
|
|
98
|
+
).optional(),
|
|
99
|
+
limit: external_exports.number().optional(),
|
|
100
|
+
offset: external_exports.number().optional()
|
|
101
|
+
}).optional()
|
|
102
|
+
});
|
|
103
|
+
var emailNodeConfigSchema = external_exports.object({
|
|
104
|
+
type: external_exports.literal(nodeTypeMap.email),
|
|
105
|
+
from: external_exports.string().optional(),
|
|
106
|
+
to: external_exports.string().optional(),
|
|
107
|
+
subject: external_exports.string().optional(),
|
|
108
|
+
text: external_exports.string().optional(),
|
|
109
|
+
html: external_exports.string().optional(),
|
|
110
|
+
replyTo: external_exports.string().optional()
|
|
111
|
+
});
|
|
112
|
+
var scrapeNodeConfigSchema = external_exports.object({
|
|
113
|
+
type: external_exports.literal(nodeTypeMap.scrape),
|
|
114
|
+
url: external_exports.string().optional(),
|
|
115
|
+
onlyMainContent: external_exports.boolean().optional(),
|
|
116
|
+
formats: external_exports.array(external_exports.string()).optional(),
|
|
117
|
+
maxAge: external_exports.number().optional(),
|
|
118
|
+
parsers: external_exports.array(external_exports.string()).optional()
|
|
119
|
+
});
|
|
120
|
+
var waitNodeConfigSchema = external_exports.object({
|
|
121
|
+
type: external_exports.literal(nodeTypeMap.wait),
|
|
122
|
+
amount: external_exports.number().optional(),
|
|
123
|
+
unit: external_exports.enum(["seconds", "minutes", "hours", "days"]).optional(),
|
|
124
|
+
secondsFromConfig: external_exports.string().optional()
|
|
125
|
+
});
|
|
126
|
+
var documentNodeConfigSchema = external_exports.object({
|
|
127
|
+
type: external_exports.literal(nodeTypeMap.document),
|
|
128
|
+
documentId: external_exports.string().uuid().optional()
|
|
129
|
+
});
|
|
130
|
+
var subgraphNodeConfigSchema = external_exports.object({
|
|
131
|
+
type: external_exports.literal(nodeTypeMap.graph),
|
|
132
|
+
graphId: external_exports.string().uuid().optional()
|
|
133
|
+
});
|
|
134
|
+
var bucketNodeConfigSchema = external_exports.object({
|
|
135
|
+
type: external_exports.literal(nodeTypeMap.bucket),
|
|
136
|
+
operation: external_exports.enum(["download", "upload"]),
|
|
137
|
+
path: external_exports.string().optional()
|
|
138
|
+
});
|
|
139
|
+
var switchNodeConfigSchema = external_exports.object({
|
|
140
|
+
type: external_exports.literal(nodeTypeMap.switch),
|
|
141
|
+
outputs: external_exports.array(
|
|
142
|
+
external_exports.string().min(1, "Output name is required").regex(
|
|
143
|
+
/^[a-zA-Z0-9_]+$/,
|
|
144
|
+
"Output must contain only letters, numbers, and underscores"
|
|
145
|
+
)
|
|
146
|
+
).min(1, "At least one output is required"),
|
|
147
|
+
code: external_exports.string().optional()
|
|
148
|
+
});
|
|
149
|
+
var reviewActionSchema = external_exports.object({
|
|
150
|
+
id: external_exports.string().regex(
|
|
151
|
+
/^[a-zA-Z0-9_]+$/,
|
|
152
|
+
"Action id must contain only letters, numbers, and underscores"
|
|
153
|
+
),
|
|
154
|
+
label: external_exports.string().min(1, "Label is required"),
|
|
155
|
+
outcome: external_exports.enum(["approve", "reject"])
|
|
156
|
+
});
|
|
157
|
+
var reviewConfigSchema = external_exports.object({
|
|
158
|
+
enabled: external_exports.boolean(),
|
|
159
|
+
title: external_exports.string().optional(),
|
|
160
|
+
description: external_exports.string().optional(),
|
|
161
|
+
content: external_exports.string().optional(),
|
|
162
|
+
approvedOutput: external_exports.string().optional(),
|
|
163
|
+
rejectedOutput: external_exports.string().optional(),
|
|
164
|
+
schema: jsonSchemaSchema.optional().nullable(),
|
|
165
|
+
actions: external_exports.array(reviewActionSchema).optional()
|
|
166
|
+
});
|
|
167
|
+
var graphNodeConfigSchema = external_exports.discriminatedUnion("type", [
|
|
168
|
+
llmNodeConfigSchema,
|
|
169
|
+
codeNodeConfigSchema,
|
|
170
|
+
documentNodeConfigSchema,
|
|
171
|
+
emailNodeConfigSchema,
|
|
172
|
+
subgraphNodeConfigSchema,
|
|
173
|
+
httpNodeConfigSchema,
|
|
174
|
+
scrapeNodeConfigSchema,
|
|
175
|
+
streamNodeConfigSchema,
|
|
176
|
+
switchNodeConfigSchema,
|
|
177
|
+
waitNodeConfigSchema,
|
|
178
|
+
bucketNodeConfigSchema
|
|
179
|
+
]);
|
|
180
|
+
var triggerTypeMap = {
|
|
181
|
+
form: "form",
|
|
182
|
+
webhook: "webhook",
|
|
183
|
+
schedule: "schedule",
|
|
184
|
+
agent: "agent"
|
|
185
|
+
};
|
|
186
|
+
var triggerTypeSchema = external_exports.enum(Object.values(triggerTypeMap));
|
|
187
|
+
var formTriggerConfigSchema = external_exports.object({
|
|
188
|
+
type: external_exports.literal(triggerTypeMap.form)
|
|
189
|
+
});
|
|
190
|
+
var webhookTriggerConfigSchema = external_exports.object({
|
|
191
|
+
type: external_exports.literal(triggerTypeMap.webhook)
|
|
192
|
+
});
|
|
193
|
+
var scheduleTriggerConfigSchema = external_exports.object({
|
|
194
|
+
type: external_exports.literal(triggerTypeMap.schedule),
|
|
195
|
+
cron: external_exports.string(),
|
|
196
|
+
timezone: external_exports.string().optional()
|
|
197
|
+
});
|
|
198
|
+
var agentTriggerConfigSchema = external_exports.object({
|
|
199
|
+
type: external_exports.literal(triggerTypeMap.agent)
|
|
200
|
+
});
|
|
201
|
+
var triggerConfigSchema = external_exports.discriminatedUnion("type", [
|
|
202
|
+
formTriggerConfigSchema,
|
|
203
|
+
webhookTriggerConfigSchema,
|
|
204
|
+
scheduleTriggerConfigSchema,
|
|
205
|
+
agentTriggerConfigSchema
|
|
206
|
+
]);
|
|
207
|
+
var resourceNameSchema = external_exports.string().min(1, "Name is required").regex(
|
|
208
|
+
/^[a-zA-Z0-9_]+$/,
|
|
209
|
+
"Name must contain only letters, numbers, and underscores"
|
|
210
|
+
);
|
|
211
|
+
var formSubmissionResponseSchema = external_exports.object({
|
|
212
|
+
message: external_exports.string(),
|
|
213
|
+
executionIds: external_exports.array(external_exports.string())
|
|
214
|
+
});
|
|
215
|
+
|
|
1
216
|
// src/form/submit.ts
|
|
2
|
-
import { formSubmissionResponseSchema } from "@swirls/core/schemas";
|
|
3
|
-
import { z } from "zod";
|
|
4
217
|
var API_URL = "https://swirls.ai/api";
|
|
5
218
|
async function submitForm(form, value) {
|
|
6
219
|
const submission = parseSubmission(form.schema, value);
|
|
@@ -20,7 +233,7 @@ async function submitForm(form, value) {
|
|
|
20
233
|
function parseSubmission(schema, value) {
|
|
21
234
|
const parse = schema.safeParse(value);
|
|
22
235
|
if (!parse.success) {
|
|
23
|
-
const message =
|
|
236
|
+
const message = external_exports.prettifyError(parse.error);
|
|
24
237
|
throw new Error(`Invalid submission: ${message}`, {
|
|
25
238
|
cause: parse.error
|
|
26
239
|
});
|