@choiceopen/atomemo-plugin-schema 0.1.0 → 0.1.2
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/LICENSE +21 -0
- package/README.md +257 -14
- package/README.zh-CN.md +280 -0
- package/dist/schemas.d.ts +767 -8249
- package/dist/schemas.js +24 -30
- package/dist/schemas.js.map +1 -1
- package/dist/{types-CpQliD1G.d.ts → types-ectoWcwS.d.ts} +20 -26
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
package/dist/schemas.js
CHANGED
|
@@ -117,11 +117,6 @@ const PropertyUITextareaPropsSchema = PropertyUICommonPropsSchema.extend({
|
|
|
117
117
|
max_height: z.number().optional(),
|
|
118
118
|
min_height: z.number().optional()
|
|
119
119
|
});
|
|
120
|
-
const PropertyUIExpressionInputPropsSchema = PropertyUICommonPropsSchema.extend({
|
|
121
|
-
component: z.enum(["expression-input", "expression-textarea"]),
|
|
122
|
-
max_height: z.number().optional(),
|
|
123
|
-
min_height: z.number().optional()
|
|
124
|
-
});
|
|
125
120
|
const PropertyUINumberInputPropsSchema = PropertyUICommonPropsSchema.extend({
|
|
126
121
|
component: z.literal("number-input"),
|
|
127
122
|
step: z.number().optional(),
|
|
@@ -198,7 +193,6 @@ const PropertyUICollapsiblePanelPropsSchema = PropertyUICommonPropsSchema.extend
|
|
|
198
193
|
const PropertyUIPropsSchema = z.discriminatedUnion("component", [
|
|
199
194
|
PropertyUIInputPropsSchema,
|
|
200
195
|
PropertyUITextareaPropsSchema,
|
|
201
|
-
PropertyUIExpressionInputPropsSchema,
|
|
202
196
|
PropertyUINumberInputPropsSchema,
|
|
203
197
|
PropertyUICodeEditorPropsSchema,
|
|
204
198
|
PropertyUISingleSelectPropsSchema,
|
|
@@ -223,7 +217,6 @@ const PropertyUINumberSchema = z.discriminatedUnion("component", [PropertyUINumb
|
|
|
223
217
|
const PropertyUIStringSchema = z.discriminatedUnion("component", [
|
|
224
218
|
PropertyUIInputPropsSchema,
|
|
225
219
|
PropertyUITextareaPropsSchema,
|
|
226
|
-
PropertyUIExpressionInputPropsSchema,
|
|
227
220
|
PropertyUICodeEditorPropsSchema,
|
|
228
221
|
PropertyUISingleSelectPropsSchema,
|
|
229
222
|
PropertyUICredentialSelectPropsSchema,
|
|
@@ -250,7 +243,6 @@ const PropertyUIDiscriminatorUISchema = z.discriminatedUnion("component", [
|
|
|
250
243
|
PropertyUISingleSelectPropsSchema,
|
|
251
244
|
PropertyUIRadioGroupPropsSchema
|
|
252
245
|
]);
|
|
253
|
-
const PropertyUIDiscriminatorUnionUISchema = z.discriminatedUnion("component", [PropertyUICollapsiblePanelPropsSchema]);
|
|
254
246
|
const PropertyUIEncryptedStringSchema = z.discriminatedUnion("component", [PropertyUIEncryptedInputPropsSchema]);
|
|
255
247
|
|
|
256
248
|
//#endregion
|
|
@@ -377,8 +369,7 @@ const PropertyDiscriminatedUnionSchema = PropertyBaseSchema.extend({
|
|
|
377
369
|
return z.array(PropertyObjectSchema).min(2, "anyOf must have at least two items");
|
|
378
370
|
},
|
|
379
371
|
discriminator: z.string().min(1, "discriminator cannot be empty"),
|
|
380
|
-
discriminator_ui: PropertyUIDiscriminatorUISchema.optional()
|
|
381
|
-
ui: PropertyUIDiscriminatorUnionUISchema.optional()
|
|
372
|
+
discriminator_ui: PropertyUIDiscriminatorUISchema.optional()
|
|
382
373
|
}).refine((v) => {
|
|
383
374
|
const { any_of, discriminator } = v;
|
|
384
375
|
return any_of.every((i) => {
|
|
@@ -422,14 +413,18 @@ const PropertyEncryptedStringSchema = PropertyBaseSchema.extend({
|
|
|
422
413
|
type: z.literal("encrypted_string"),
|
|
423
414
|
ui: PropertyUIEncryptedStringSchema.optional()
|
|
424
415
|
});
|
|
425
|
-
const
|
|
416
|
+
const PropertyScalarSchema = z.union([
|
|
426
417
|
PropertyStringSchema,
|
|
427
418
|
PropertyBooleanSchema,
|
|
428
419
|
PropertyNumberSchema,
|
|
420
|
+
PropertyEncryptedStringSchema
|
|
421
|
+
]);
|
|
422
|
+
const PropertiesScalarSchema = z.array(PropertyScalarSchema).apply(setDuplicatePropertyNamesCheck);
|
|
423
|
+
const PropertySchema = z.union([
|
|
424
|
+
...PropertyScalarSchema.options,
|
|
425
|
+
PropertyCredentialIdSchema,
|
|
429
426
|
PropertyArraySchema,
|
|
430
427
|
PropertyObjectSchema,
|
|
431
|
-
PropertyCredentialIdSchema,
|
|
432
|
-
PropertyEncryptedStringSchema,
|
|
433
428
|
PropertyDiscriminatedUnionSchema
|
|
434
429
|
]);
|
|
435
430
|
const PropertiesSchema = z.array(PropertySchema).apply(setDuplicatePropertyNamesCheck);
|
|
@@ -445,28 +440,26 @@ const BaseDefinitionSchema = z.object({
|
|
|
445
440
|
name: z.string().regex(/^[a-zA-Z](?:(?![_-]{2,})[a-zA-Z0-9_-]){3,63}[a-zA-Z0-9]$/, { error: "Invalid name, should match the following rules: 1. only English letters, numbers, _ and - 2. start with English letter, end with English letter or number 3. _ and - cannot appear consecutively more than twice 4. minimum length 4, maximum length 64" }),
|
|
446
441
|
display_name: I18nEntrySchema,
|
|
447
442
|
description: I18nEntrySchema,
|
|
448
|
-
icon: z.string()
|
|
449
|
-
parameters: PropertiesSchema,
|
|
450
|
-
settings: PropertiesSchema.optional()
|
|
443
|
+
icon: z.string()
|
|
451
444
|
});
|
|
452
445
|
const PluginDefinitionSchema = z.object({
|
|
453
|
-
...BaseDefinitionSchema.
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
}).shape,
|
|
457
|
-
author: z.string(),
|
|
458
|
-
email: z.email(),
|
|
446
|
+
...BaseDefinitionSchema.shape,
|
|
447
|
+
author: z.string().optional(),
|
|
448
|
+
email: z.email().optional(),
|
|
459
449
|
repo: z.httpUrl().optional(),
|
|
460
450
|
version: z.string().optional(),
|
|
461
451
|
locales: z.array(z.string())
|
|
462
452
|
});
|
|
463
|
-
const CredentialDefinitionSchema = z.object({
|
|
464
|
-
|
|
453
|
+
const CredentialDefinitionSchema = z.object({
|
|
454
|
+
...BaseDefinitionSchema.shape,
|
|
455
|
+
parameters: PropertiesScalarSchema
|
|
456
|
+
});
|
|
457
|
+
const DataSourceDefinitionSchema = z.object({
|
|
458
|
+
...BaseDefinitionSchema.shape,
|
|
459
|
+
parameters: PropertiesScalarSchema
|
|
460
|
+
});
|
|
465
461
|
const ModelDefinitionSchema = z.object({
|
|
466
|
-
...BaseDefinitionSchema.
|
|
467
|
-
parameters: true,
|
|
468
|
-
settings: true
|
|
469
|
-
}).shape,
|
|
462
|
+
...BaseDefinitionSchema.shape,
|
|
470
463
|
name: z.string().regex(/^[a-zA-Z](?:(?![_-]{2,})[a-zA-Z0-9_/-]){3,63}[a-zA-Z0-9]$/, { error: "Invalid model name, should match the following rules: 1. only English letters, numbers, _ and - 2. start with English letter, end with English letter or number 3. _ and - cannot appear consecutively more than twice 4. minimum length 4, maximum length 64 5. allow '/' in the middle" }),
|
|
471
464
|
model_type: z.literal("llm"),
|
|
472
465
|
default_endpoint: z.httpUrl().optional(),
|
|
@@ -524,9 +517,10 @@ const ToolDefinitionSchema = z.object({
|
|
|
524
517
|
invoke: z.function({
|
|
525
518
|
input: z.tuple([z.object({ args: z.any() })]),
|
|
526
519
|
output: z.promise(JsonValueSchema)
|
|
527
|
-
})
|
|
520
|
+
}),
|
|
521
|
+
parameters: PropertiesSchema
|
|
528
522
|
});
|
|
529
523
|
|
|
530
524
|
//#endregion
|
|
531
|
-
export { BaseDefinitionSchema, CredentialDefinitionSchema, DataSourceDefinitionSchema, I18nEntrySchema, JsonValueSchema, ModelDefinitionSchema, PluginDefinitionSchema, PropertiesSchema, PropertyUIArraySchema, PropertyUIBooleanSchema, PropertyUICommonPropsSchema, PropertyUICredentialIdSchema, PropertyUIDiscriminatorUISchema,
|
|
525
|
+
export { BaseDefinitionSchema, CredentialDefinitionSchema, DataSourceDefinitionSchema, I18nEntrySchema, JsonValueSchema, ModelDefinitionSchema, PluginDefinitionSchema, PropertiesScalarSchema, PropertiesSchema, PropertyUIArraySchema, PropertyUIBooleanSchema, PropertyUICommonPropsSchema, PropertyUICredentialIdSchema, PropertyUIDiscriminatorUISchema, PropertyUIEncryptedInputPropsSchema, PropertyUIEncryptedStringSchema, PropertyUINumberSchema, PropertyUIObjectSchema, PropertyUIOptionSchema, PropertyUIPropsSchema, PropertyUIStringSchema, ToolDefinitionSchema };
|
|
532
526
|
//# sourceMappingURL=schemas.js.map
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","names":["JsonValueSchema"],"sources":["../src/utils/toolkit.ts","../src/schemas/common.ts","../src/utils/custom-json-value.ts","../src/schemas/property-ui.ts","../src/schemas/property.ts","../src/schemas/definition.ts"],"sourcesContent":["export function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\") return false\n if (Object.prototype.toString.call(value) !== \"[object Object]\") return false\n\n const proto = Object.getPrototypeOf(value)\n return proto === Object.prototype || proto === null\n}\n\nexport function compact<T>(\n values: Array<T | null | undefined | false | 0 | \"\" | typeof Number.NaN>,\n): T[] {\n // Match common \"compact\" behavior: drop falsy values.\n // Note: `NaN` is truthy? Actually `Boolean(NaN) === false`, so it will be removed too.\n return values.filter(Boolean) as T[]\n}\n","import type { IsEqual } from \"type-fest\"\nimport { z } from \"zod\"\nimport type { I18nText } from \"../types\"\nimport { isPlainObject } from \"../utils/toolkit\"\n\n/**\n * I18n 词条模式\n *\n * NOTE: Zod 无法定义复杂的字面量模版,此处使用 `z.custom` 实现自定义验证\n */\nexport const I18nEntrySchema = z.custom<I18nText>((value) => {\n // 必须是对象字面量\n if (!isPlainObject(value)) return false\n // 必须包含 en_US 键\n if (!(\"en_US\" in value)) return false\n\n for (const [locale, text] of Object.entries(value)) {\n // 值必须是字符串\n if (typeof text !== \"string\") return false\n\n // NOTE: 支持的语言码并不严格符合标准,因为 TS 字面量模版无法描述所有可能的情况\n // 故以下仅对满足需求的子集做简单检查而不是严格的 RFC 5646 标准检查\n const parts = locale.split(\"_\")\n // 其它语言代码必须符合格式:<语言代码>_<国家或脚本代码>,且第二部份首字母必须大写\n if (parts.length !== 2 || parts[1][0] !== parts[1][0].toUpperCase()) {\n return false\n }\n }\n return true\n}, \"Invalid I18n entry\")\n{\n const _: IsEqual<z.infer<typeof I18nEntrySchema>, I18nText> = true\n}\n","/**\n * Custom JSON Value Schema and Type\n *\n * Why? Because `z.json()` is not compatible with `JSONValue` from type-fest\n */\n\nimport { z } from \"zod\"\n\n/**\n * Custom JSON Value Schema\n * @description Custom JSON Value Schema is a schema that allows any JSON value\n */\nexport const JsonValueSchema = z.json()\n\n/**\n * Custom JSON Value Type\n * @description Custom JSON Value Type is the type of the JSON value\n */\nexport type JsonValue = z.infer<typeof JsonValueSchema>\n","import type { IntRange, IsEqual } from \"type-fest\"\nimport { z } from \"zod\"\nimport type {\n PropertyUIArray,\n PropertyUIArraySectionProps,\n PropertyUIBoolean,\n PropertyUICollapsiblePanelProps,\n PropertyUIColorPickerProps,\n PropertyUICredentialId,\n PropertyUIEmojiPickerProps,\n PropertyUIEncryptedInputProps,\n PropertyUIInputProps,\n PropertyUIKeyValueEditorProps,\n PropertyUINumber,\n PropertyUIObject,\n PropertyUIOption,\n PropertyUIProps,\n PropertyUIRadioGroupProps,\n PropertyUISingleSelectProps,\n PropertyUIString,\n PropertyUISwitchProps,\n} from \"../types\"\nimport { I18nEntrySchema } from \"./common\"\n\nconst indentationSchema = z.union([\n z.literal(2),\n z.literal(4),\n z.literal(6),\n z.literal(8),\n z.literal(10),\n z.literal(12),\n z.literal(14),\n z.literal(16),\n z.literal(18),\n z.literal(20),\n z.literal(22),\n z.literal(24),\n z.literal(26),\n z.literal(28),\n z.literal(30),\n z.literal(32),\n z.literal(34),\n z.literal(36),\n z.literal(38),\n z.literal(40),\n z.literal(42),\n z.literal(44),\n z.literal(46),\n z.literal(48),\n z.literal(50),\n z.literal(52),\n z.literal(54),\n z.literal(56),\n z.literal(58),\n z.literal(60),\n z.literal(62),\n z.literal(64),\n z.literal(66),\n z.literal(68),\n z.literal(70),\n z.literal(72),\n z.literal(74),\n z.literal(76),\n z.literal(78),\n z.literal(80),\n])\n{\n const _: IsEqual<z.infer<typeof indentationSchema>, IntRange<2, 81, 2>> = true\n}\n\n// Common UI properties schema\nexport const PropertyUICommonPropsSchema = z.object({\n disabled: z.boolean().optional(),\n hint: I18nEntrySchema.optional(),\n placeholder: I18nEntrySchema.optional(),\n readonly: z.boolean().optional(),\n sensitive: z.boolean().optional(),\n support_expression: z.boolean().optional(),\n width: z.enum([\"small\", \"medium\", \"full\"]).optional(),\n indentation: indentationSchema.optional(),\n display_none: z.boolean().optional(),\n})\n\n// Option schema for select components\nexport const PropertyUIOptionSchema = z.object({\n icon: z.string().optional(),\n label: I18nEntrySchema,\n value: z.union([z.string(), z.number(), z.boolean()]),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyUIOptionSchema>, PropertyUIOption> = true\n}\n\nconst PropertyUIInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"input\"),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyUIInputPropsSchema>, PropertyUIInputProps> = true\n}\n\nexport const PropertyUIEncryptedInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"encrypted-input\"),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIEncryptedInputPropsSchema>,\n PropertyUIEncryptedInputProps\n > = true\n}\n\n// Textarea component schema\nconst PropertyUITextareaPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"textarea\"),\n max_height: z.number().optional(),\n min_height: z.number().optional(),\n})\n\n// Expression input component schema\nconst PropertyUIExpressionInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.enum([\"expression-input\", \"expression-textarea\"]),\n max_height: z.number().optional(),\n min_height: z.number().optional(),\n})\n\n// Number input component schema\nconst PropertyUINumberInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"number-input\"),\n step: z.number().optional(),\n suffix: z.string().optional(),\n})\n\n// Code editor component schema\nconst PropertyUICodeEditorPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"code-editor\"),\n language: z.enum([\"json\", \"javascript\", \"python3\", \"html\"]).optional(),\n line_numbers: z.boolean().optional(),\n max_height: z.number().optional(),\n min_height: z.number().optional(),\n})\n\n// Select base schema\nconst PropertyUISelectPropsBaseSchema = z.object({\n clearable: z.boolean().optional(),\n options: z.array(PropertyUIOptionSchema).optional(),\n searchable: z.boolean().optional(),\n})\n\n// Single select component schema\nconst PropertyUISingleSelectPropsSchema = PropertyUICommonPropsSchema.merge(\n PropertyUISelectPropsBaseSchema,\n).extend({\n component: z.literal(\"select\"),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUISingleSelectPropsSchema>,\n PropertyUISingleSelectProps\n > = true\n}\n\n// Radio group component schema\nconst PropertyUIRadioGroupPropsSchema = PropertyUICommonPropsSchema.merge(\n PropertyUISelectPropsBaseSchema,\n).extend({\n component: z.literal(\"radio-group\"),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIRadioGroupPropsSchema>,\n PropertyUIRadioGroupProps\n > = true\n}\n\n// Multi select component schema\nconst PropertyUIMultiSelectPropsSchema = PropertyUICommonPropsSchema.merge(\n PropertyUISelectPropsBaseSchema,\n).extend({\n component: z.literal(\"multi-select\"),\n})\n\n// Switch component schema\nconst PropertyUISwitchPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"switch\"),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyUISwitchPropsSchema>, PropertyUISwitchProps> = true\n}\n\n// Checkbox component schema\nconst PropertyUICheckboxPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"checkbox\"),\n})\n\n// Slider component schema\nconst PropertyUISliderPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"slider\"),\n marks: z.record(z.number(), z.string()).optional(),\n show_value: z.boolean().optional(),\n step: z.number().optional(),\n})\n\n// Key-value editor component schema\nconst PropertyUIKeyValueEditorPropsSchema = PropertyUICommonPropsSchema.extend({\n add_button_label: I18nEntrySchema.optional(),\n component: z.literal(\"key-value-editor\"),\n empty_description: I18nEntrySchema.optional(),\n section_header: I18nEntrySchema.optional(),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIKeyValueEditorPropsSchema>,\n PropertyUIKeyValueEditorProps\n > = true\n}\n\n// Tag input component schema\nconst PropertyUITagInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"tag-input\"),\n})\n\n// Emoji picker component schema\nconst PropertyUIEmojiPickerPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"emoji-picker\"),\n size: z.enum([\"extra-small\", \"small\", \"medium\", \"large\"]).optional(),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIEmojiPickerPropsSchema>,\n PropertyUIEmojiPickerProps\n > = true\n}\n\n// Color picker component schema\nconst PropertyUIColorPickerPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"color-picker\"),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIColorPickerPropsSchema>,\n PropertyUIColorPickerProps\n > = true\n}\n\n// Credential select component schema\nconst PropertyUICredentialSelectPropsSchema = PropertyUICommonPropsSchema.extend({\n clearable: z.boolean().optional(),\n component: z.literal(\"credential-select\"),\n searchable: z.boolean().optional(),\n})\n\n// JSON Schema editor component schema\nconst PropertyUIJsonSchemaEditorPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"json-schema-editor\"),\n})\n\n// Conditions editor component schema\nconst PropertyUIConditionsEditorPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"conditions-editor\"),\n})\n\n// Array section component schema\nconst PropertyUIArraySectionPropsSchema = PropertyUICommonPropsSchema.extend({\n add_label: I18nEntrySchema.optional(),\n collapsible: z.boolean().optional(),\n component: z.literal(\"array-section\"),\n empty_message: I18nEntrySchema.optional(),\n remove_tooltip: I18nEntrySchema.optional(),\n sortable: z.boolean().optional(),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIArraySectionPropsSchema>,\n PropertyUIArraySectionProps\n > = true\n}\n\n// Collapsible panel component schema\nconst PropertyUICollapsiblePanelPropsSchema = PropertyUICommonPropsSchema.extend({\n collapsible: z.boolean().optional(),\n component: z.literal(\"collapsible-panel\"),\n default_collapsed: z.boolean().optional(),\n panel_title: I18nEntrySchema.optional(),\n remove_tooltip: I18nEntrySchema.optional(),\n sortable: z.boolean().optional(),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUICollapsiblePanelPropsSchema>,\n PropertyUICollapsiblePanelProps\n > = true\n}\n\nexport const PropertyUIPropsSchema = z.discriminatedUnion(\"component\", [\n PropertyUIInputPropsSchema,\n PropertyUITextareaPropsSchema,\n PropertyUIExpressionInputPropsSchema,\n PropertyUINumberInputPropsSchema,\n PropertyUICodeEditorPropsSchema,\n PropertyUISingleSelectPropsSchema,\n PropertyUIRadioGroupPropsSchema,\n PropertyUIEmojiPickerPropsSchema,\n PropertyUIColorPickerPropsSchema,\n PropertyUIMultiSelectPropsSchema,\n PropertyUISwitchPropsSchema,\n PropertyUICheckboxPropsSchema,\n PropertyUISliderPropsSchema,\n PropertyUIKeyValueEditorPropsSchema,\n PropertyUITagInputPropsSchema,\n PropertyUICredentialSelectPropsSchema,\n PropertyUIJsonSchemaEditorPropsSchema,\n PropertyUIConditionsEditorPropsSchema,\n PropertyUIArraySectionPropsSchema,\n PropertyUICollapsiblePanelPropsSchema,\n PropertyUIEncryptedInputPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIPropsSchema>, PropertyUIProps> = true\n}\n\nexport const PropertyUIBooleanSchema = z.discriminatedUnion(\"component\", [\n PropertyUISwitchPropsSchema,\n PropertyUICheckboxPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIBooleanSchema>, PropertyUIBoolean> = true\n}\n\nexport const PropertyUINumberSchema = z.discriminatedUnion(\"component\", [\n PropertyUINumberInputPropsSchema,\n PropertyUISliderPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUINumberSchema>, PropertyUINumber> = true\n}\n\nexport const PropertyUIStringSchema = z.discriminatedUnion(\"component\", [\n PropertyUIInputPropsSchema,\n PropertyUITextareaPropsSchema,\n PropertyUIExpressionInputPropsSchema,\n PropertyUICodeEditorPropsSchema,\n PropertyUISingleSelectPropsSchema,\n PropertyUICredentialSelectPropsSchema,\n PropertyUIRadioGroupPropsSchema,\n PropertyUIEmojiPickerPropsSchema,\n PropertyUIColorPickerPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIStringSchema>, PropertyUIString> = true\n}\n\nexport const PropertyUIArraySchema = z.discriminatedUnion(\"component\", [\n PropertyUIMultiSelectPropsSchema,\n PropertyUITagInputPropsSchema,\n PropertyUIKeyValueEditorPropsSchema,\n PropertyUISliderPropsSchema,\n PropertyUIArraySectionPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIArraySchema>, PropertyUIArray> = true\n}\n\nexport const PropertyUIObjectSchema = z.discriminatedUnion(\"component\", [\n PropertyUICollapsiblePanelPropsSchema,\n PropertyUIJsonSchemaEditorPropsSchema,\n PropertyUIConditionsEditorPropsSchema,\n PropertyUICodeEditorPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIObjectSchema>, PropertyUIObject> = true\n}\n\nexport const PropertyUICredentialIdSchema = z.discriminatedUnion(\"component\", [\n PropertyUICredentialSelectPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUICredentialIdSchema>, PropertyUICredentialId> = true\n}\n\nexport const PropertyUIDiscriminatorUISchema = z.discriminatedUnion(\"component\", [\n PropertyUISwitchPropsSchema,\n PropertyUISingleSelectPropsSchema,\n PropertyUIRadioGroupPropsSchema,\n])\n\nexport const PropertyUIDiscriminatorUnionUISchema = z.discriminatedUnion(\"component\", [\n PropertyUICollapsiblePanelPropsSchema,\n])\n\nexport const PropertyUIEncryptedStringSchema = z.discriminatedUnion(\"component\", [\n PropertyUIEncryptedInputPropsSchema,\n])\n","import type { IsEqual, JsonValue } from \"type-fest\"\nimport { z } from \"zod\"\nimport type {\n DisplayCondition,\n FilterOperators,\n Property,\n PropertyArray,\n PropertyBase,\n PropertyBoolean,\n PropertyCredentialId,\n PropertyDiscriminatedUnion,\n PropertyEncryptedString,\n PropertyNumber,\n PropertyObject,\n PropertyString,\n} from \"../types\"\nimport { compact } from \"../utils/toolkit\"\nimport { I18nEntrySchema } from \"./common\"\nimport {\n PropertyUIArraySchema,\n PropertyUIBooleanSchema,\n PropertyUICommonPropsSchema,\n PropertyUICredentialIdSchema,\n PropertyUIDiscriminatorUISchema,\n PropertyUIDiscriminatorUnionUISchema,\n PropertyUIEncryptedStringSchema,\n PropertyUINumberSchema,\n PropertyUIObjectSchema,\n PropertyUIStringSchema,\n} from \"./property-ui\"\n\nconst JsonPrimitiveSchema = z.union([z.string(), z.number(), z.boolean(), z.null()])\nconst JsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([JsonPrimitiveSchema, z.array(JsonValueSchema), z.record(z.string(), JsonValueSchema)]),\n)\n\nconst FilterOperatorsSchema = z.object({\n $eq: JsonValueSchema.optional(),\n $exists: z.boolean().optional(),\n $gt: JsonValueSchema.optional(),\n $gte: JsonValueSchema.optional(),\n $in: z.array(JsonValueSchema).optional(),\n $lt: JsonValueSchema.optional(),\n $lte: JsonValueSchema.optional(),\n $mod: z.tuple([z.number(), z.number()]).optional(),\n $ne: JsonValueSchema.optional(),\n $nin: z.array(JsonValueSchema).optional(),\n $options: z.string().optional(),\n $regex: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n $size: z.number().optional(),\n})\n\nconst ConditionSchema = z.union([JsonValueSchema, FilterOperatorsSchema])\n\nconst RootFilterSchema = z.object({\n get $and() {\n return z.array(FilterSchema).optional()\n },\n get $nor() {\n return z.array(FilterSchema).optional()\n },\n get $or() {\n return z.array(FilterSchema).optional()\n },\n})\n{\n const _: IsEqual<z.infer<typeof FilterOperatorsSchema>, FilterOperators> = true\n}\n\n// skip infer because of recursive structure\nconst FilterSchema: z.ZodType<DisplayCondition> = z.union([\n z.record(z.string(), ConditionSchema),\n RootFilterSchema,\n])\n\nconst PropertyBaseSchema = z.object({\n name: z\n .string()\n .min(1, \"name cannot be empty\")\n .refine(\n (val) => {\n const regexStartsWithDollarOrWhitespace = /^[\\s$]/\n return !regexStartsWithDollarOrWhitespace.test(val)\n },\n {\n error: \"name cannot start with $ or whitespace\",\n abort: true,\n },\n )\n .refine(\n (val) => {\n const forbiddenCharacters = [\".\", \"[\", \"]\"]\n return !forbiddenCharacters.some((char) => val.includes(char))\n },\n {\n error: 'name cannot contain \".\", \"[\", or \"]\" characters',\n abort: true,\n },\n ),\n\n display_name: I18nEntrySchema.optional(),\n required: z.boolean().optional(),\n display: z\n .object({\n hide: FilterSchema.optional(),\n show: FilterSchema.optional(),\n })\n .optional(),\n ai: z\n .object({\n llm_description: I18nEntrySchema.optional(),\n })\n .optional(),\n ui: PropertyUICommonPropsSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyBaseSchema>, PropertyBase<string>> = true\n}\n\nconst PropertyStringSchema = PropertyBaseSchema.extend({\n type: z.literal(\"string\"),\n constant: z.string().optional(),\n default: z.string().optional(),\n enum: z.array(z.string()).optional(),\n max_length: z.number().optional(),\n min_length: z.number().optional(),\n ui: PropertyUIStringSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyStringSchema>, PropertyString<string>> = true\n}\n\nconst PropertyNumberSchema = PropertyBaseSchema.extend({\n type: z.union([z.literal(\"number\"), z.literal(\"integer\")]),\n constant: z.number().optional(),\n default: z.number().optional(),\n enum: z.array(z.number()).optional(),\n maximum: z.number().optional(),\n minimum: z.number().optional(),\n ui: PropertyUINumberSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyNumberSchema>, PropertyNumber<string>> = true\n}\n\nconst PropertyBooleanSchema = PropertyBaseSchema.extend({\n type: z.literal(\"boolean\"),\n constant: z.boolean().optional(),\n default: z.boolean().optional(),\n enum: z.array(z.boolean()).optional(),\n ui: PropertyUIBooleanSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyBooleanSchema>, PropertyBoolean<string>> = true\n}\n\nfunction setDuplicatePropertyNamesCheck<T extends z.ZodType<Array<Property>>>(schema: T) {\n return schema.refine(\n (properties) => {\n const names = new Set<string>()\n for (const prop of properties) {\n if (names.has(prop.name)) return false\n names.add(prop.name)\n }\n return true\n },\n {\n error: \"duplicate property names are not allowed\",\n },\n )\n}\n\n// use type assertion and lazy to avoid circular reference error\nconst ArrayPropertiesSchema: z.ZodType<PropertyObject[\"properties\"]> = z.lazy(() =>\n z.array(PropertySchema).apply(setDuplicatePropertyNamesCheck),\n)\n\nconst additionalPropertiesSchema: z.ZodType<Property> = z.lazy(() => PropertySchema)\n\nconst PropertyObjectSchema = PropertyBaseSchema.extend({\n type: z.literal(\"object\"),\n properties: ArrayPropertiesSchema,\n additional_properties: additionalPropertiesSchema.optional(),\n constant: z.record(z.string(), JsonValueSchema).optional(),\n default: z.record(z.string(), JsonValueSchema).optional(),\n enum: z.array(z.record(z.string(), JsonValueSchema)).optional(),\n ui: PropertyUIObjectSchema.optional(),\n}).refine(\n (v) => {\n if (v.constant) return v.properties.length === 0\n return true\n },\n {\n error: \"properties must be empty when constant is defined\",\n abort: true,\n },\n)\n{\n type PropertyObjectInferred = z.infer<typeof PropertyObjectSchema>\n const _: IsEqual<PropertyObjectInferred, PropertyObject> = true\n}\n\nconst PropertyDiscriminatedUnionSchema = PropertyBaseSchema.extend({\n type: z.literal(\"discriminated_union\"),\n get any_of() {\n return z.array(PropertyObjectSchema).min(2, \"anyOf must have at least two items\")\n },\n discriminator: z.string().min(1, \"discriminator cannot be empty\"),\n discriminator_ui: PropertyUIDiscriminatorUISchema.optional(),\n ui: PropertyUIDiscriminatorUnionUISchema.optional(),\n})\n .refine(\n (v) => {\n const { any_of, discriminator } = v\n return any_of.every((i) => {\n const discriminatorProperty = i.properties?.find((p) => p.name === discriminator)\n if (!discriminatorProperty) return false\n if (!(\"constant\" in discriminatorProperty)) return false\n if (\n typeof discriminatorProperty.constant !== \"string\" &&\n typeof discriminatorProperty.constant !== \"number\" &&\n typeof discriminatorProperty.constant !== \"boolean\"\n ) {\n return false\n }\n return true\n })\n },\n {\n error:\n \"Each item in anyOf must contain the discriminator field with constant string/number/boolean value\",\n abort: true,\n },\n )\n .refine(\n (v) => {\n const { any_of } = v\n const allDiscriminatorProperty = compact(\n any_of.map((i) => {\n const discriminatorProperty = i.properties?.find((p) => p.name === v.discriminator)\n if (!discriminatorProperty) return null\n if (!(\"constant\" in discriminatorProperty)) return null\n return discriminatorProperty.constant\n }),\n )\n const uniqueValues = new Set(allDiscriminatorProperty)\n return uniqueValues.size === allDiscriminatorProperty.length\n },\n {\n error: \"Discriminator values must be unique across all anyOf items\",\n },\n )\n{\n const _: IsEqual<\n z.infer<typeof PropertyDiscriminatedUnionSchema>,\n PropertyDiscriminatedUnion\n > = true\n}\n\nconst PropertyArraySchema = PropertyBaseSchema.extend({\n type: z.literal(\"array\"),\n constant: z.array(JsonValueSchema).optional(),\n default: z.array(JsonValueSchema).optional(),\n enum: z.array(z.array(JsonValueSchema)).optional(),\n get items() {\n return PropertySchema\n },\n max_items: z.number().optional(),\n min_items: z.number().optional(),\n ui: PropertyUIArraySchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyArraySchema>, PropertyArray> = true\n}\n\nconst PropertyCredentialIdSchema = PropertyBaseSchema.extend({\n type: z.literal(\"credential_id\"),\n credential_name: z.string().min(1, \"credential_name cannot be empty\"),\n ui: PropertyUICredentialIdSchema.optional(),\n})\n\n{\n const _: IsEqual<z.infer<typeof PropertyCredentialIdSchema>, PropertyCredentialId<string>> = true\n}\nconst PropertyEncryptedStringSchema = PropertyBaseSchema.extend({\n type: z.literal(\"encrypted_string\"),\n ui: PropertyUIEncryptedStringSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyEncryptedStringSchema>, PropertyEncryptedString> = true\n}\n\nconst PropertySchema = z.union([\n PropertyStringSchema,\n PropertyBooleanSchema,\n PropertyNumberSchema,\n PropertyArraySchema,\n PropertyObjectSchema,\n PropertyCredentialIdSchema,\n PropertyEncryptedStringSchema,\n PropertyDiscriminatedUnionSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertySchema>, Property> = true\n}\n\nexport const PropertiesSchema = z.array(PropertySchema).apply(setDuplicatePropertyNamesCheck)\n","import type { IsEqual } from \"type-fest\"\nimport { z } from \"zod\"\nimport type {\n BaseDefinition,\n CredentialDefinition,\n ModelDefinition,\n PluginDefinition,\n ToolDefinition,\n} from \"../types\"\nimport { JsonValueSchema } from \"../utils/custom-json-value\"\nimport { I18nEntrySchema } from \"./common\"\nimport { PropertiesSchema } from \"./property\"\n\n/**\n * 基础定义模式\n *\n * 此为所有功能定义模式的基类,定义了通用的属性,不单独使用\n */\nexport const BaseDefinitionSchema = z.object({\n // 1. 只能出现英文字母(大小写不敏感)和数字以及_和-\n // 2. 开头只能是英文字母,结尾不能是_和-\n // 3. _和-不能连续出现多次\n // 4. 最小长度 4,最大长度 64\n name: z.string().regex(/^[a-zA-Z](?:(?![_-]{2,})[a-zA-Z0-9_-]){3,63}[a-zA-Z0-9]$/, {\n error:\n \"Invalid name, should match the following rules: 1. only English letters, numbers, _ and - 2. start with English letter, end with English letter or number 3. _ and - cannot appear consecutively more than twice 4. minimum length 4, maximum length 64\",\n }),\n display_name: I18nEntrySchema,\n description: I18nEntrySchema,\n icon: z.string(),\n parameters: PropertiesSchema,\n settings: PropertiesSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof BaseDefinitionSchema>, BaseDefinition> = true\n}\n\nexport const PluginDefinitionSchema = z.object({\n ...BaseDefinitionSchema.omit({ parameters: true, settings: true }).shape,\n author: z.string(),\n email: z.email(),\n repo: z.httpUrl().optional(),\n version: z.string().optional(),\n locales: z.array(z.string()),\n})\n{\n const _: IsEqual<\n z.infer<typeof PluginDefinitionSchema>,\n Omit<PluginDefinition<string[], unknown>, \"transporterOptions\"> // not necessary to verify transpoterOptions\n > = true\n}\n\nexport const CredentialDefinitionSchema = z.object({\n ...BaseDefinitionSchema.omit({ settings: true }).shape,\n})\n{\n const _: IsEqual<z.infer<typeof CredentialDefinitionSchema>, CredentialDefinition> = true\n}\n\nexport const DataSourceDefinitionSchema = z.object({\n ...BaseDefinitionSchema.shape,\n})\n\nexport type DataSourceDefinition = z.infer<typeof DataSourceDefinitionSchema>\n\nexport const ModelDefinitionSchema = z.object({\n ...BaseDefinitionSchema.omit({ parameters: true, settings: true }).shape,\n name: z.string().regex(/^[a-zA-Z](?:(?![_-]{2,})[a-zA-Z0-9_/-]){3,63}[a-zA-Z0-9]$/, {\n error:\n \"Invalid model name, should match the following rules: 1. only English letters, numbers, _ and - 2. start with English letter, end with English letter or number 3. _ and - cannot appear consecutively more than twice 4. minimum length 4, maximum length 64 5. allow '/' in the middle\",\n }),\n model_type: z.literal(\"llm\"),\n default_endpoint: z.httpUrl().optional(),\n input_modalities: z.array(z.enum([\"file\", \"image\", \"text\"])),\n output_modalities: z.array(z.enum([\"text\"])),\n pricing: z\n .object({\n currency: z.string().optional(),\n input: z.number().optional(),\n input_cache_read: z.number().optional(),\n input_cache_write: z.number().optional(),\n output: z.number().optional(),\n request: z.number().optional(),\n })\n .optional(),\n override_parameters: z\n .object({\n temperature: z\n .object({\n default: z.number().optional(),\n maximum: z.number().optional(),\n minimum: z.number().optional(),\n })\n .optional(),\n frequency_penalty: z\n .object({\n default: z.number().optional(),\n maximum: z.number().optional(),\n minimum: z.number().optional(),\n })\n .optional(),\n max_tokens: z\n .object({\n default: z.number().optional(),\n maximum: z.number().optional(),\n })\n .optional(),\n verbosity: z\n .object({\n default: z.enum([\"low\", \"medium\", \"high\"]).optional(),\n })\n .optional(),\n })\n .optional(),\n unsupported_parameters: z.array(\n z.enum([\n \"endpoint\",\n \"temperature\",\n // \"top_p\",\n // \"top_k\",\n \"frequency_penalty\",\n // \"presence_penalty\",\n // \"repetition_penalty\",\n // \"min_p\",\n // \"top_a\",\n \"seed\",\n \"max_tokens\",\n // \"logit_bias\",\n // \"logprobs\",\n // \"top_logprobs\",\n // \"response_format\",\n // \"json_response\",\n \"json_schema\",\n \"stream\",\n \"stream_options\",\n \"structured_outputs\",\n // \"stop\",\n // \"tools\",\n // \"tool_choice\",\n \"parallel_tool_calls\",\n \"verbosity\",\n ]),\n ),\n})\n{\n const _: IsEqual<z.infer<typeof ModelDefinitionSchema>, ModelDefinition> = true\n}\n\nexport const ToolDefinitionSchema = z.object({\n ...BaseDefinitionSchema.shape,\n invoke: z.function({\n input: z.tuple([z.object({ args: z.any() })]),\n output: z.promise(JsonValueSchema),\n }),\n})\n{\n const _: IsEqual<z.infer<typeof ToolDefinitionSchema>, ToolDefinition> = true\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.js","names":["JsonValueSchema"],"sources":["../src/utils/toolkit.ts","../src/schemas/common.ts","../src/utils/custom-json-value.ts","../src/schemas/property-ui.ts","../src/schemas/property.ts","../src/schemas/definition.ts"],"sourcesContent":["export function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\") return false\n if (Object.prototype.toString.call(value) !== \"[object Object]\") return false\n\n const proto = Object.getPrototypeOf(value)\n return proto === Object.prototype || proto === null\n}\n\nexport function compact<T>(\n values: Array<T | null | undefined | false | 0 | \"\" | typeof Number.NaN>,\n): T[] {\n // Match common \"compact\" behavior: drop falsy values.\n // Note: `NaN` is truthy? Actually `Boolean(NaN) === false`, so it will be removed too.\n return values.filter(Boolean) as T[]\n}\n","import type { IsEqual } from \"type-fest\"\nimport { z } from \"zod\"\nimport type { I18nText } from \"../types\"\nimport { isPlainObject } from \"../utils/toolkit\"\n\n/**\n * I18n 词条模式\n *\n * NOTE: Zod 无法定义复杂的字面量模版,此处使用 `z.custom` 实现自定义验证\n */\nexport const I18nEntrySchema = z.custom<I18nText>((value) => {\n // 必须是对象字面量\n if (!isPlainObject(value)) return false\n // 必须包含 en_US 键\n if (!(\"en_US\" in value)) return false\n\n for (const [locale, text] of Object.entries(value)) {\n // 值必须是字符串\n if (typeof text !== \"string\") return false\n\n // NOTE: 支持的语言码并不严格符合标准,因为 TS 字面量模版无法描述所有可能的情况\n // 故以下仅对满足需求的子集做简单检查而不是严格的 RFC 5646 标准检查\n const parts = locale.split(\"_\")\n // 其它语言代码必须符合格式:<语言代码>_<国家或脚本代码>,且第二部份首字母必须大写\n if (parts.length !== 2 || parts[1][0] !== parts[1][0].toUpperCase()) {\n return false\n }\n }\n return true\n}, \"Invalid I18n entry\")\n{\n const _: IsEqual<z.infer<typeof I18nEntrySchema>, I18nText> = true\n}\n","/**\n * Custom JSON Value Schema and Type\n *\n * Why? Because `z.json()` is not compatible with `JSONValue` from type-fest\n */\n\nimport { z } from \"zod\"\n\n/**\n * Custom JSON Value Schema\n * @description Custom JSON Value Schema is a schema that allows any JSON value\n */\nexport const JsonValueSchema = z.json()\n\n/**\n * Custom JSON Value Type\n * @description Custom JSON Value Type is the type of the JSON value\n */\nexport type JsonValue = z.infer<typeof JsonValueSchema>\n","import type { IntRange, IsEqual } from \"type-fest\"\nimport { z } from \"zod\"\nimport type {\n PropertyUIArray,\n PropertyUIArraySectionProps,\n PropertyUIBoolean,\n PropertyUICollapsiblePanelProps,\n PropertyUIColorPickerProps,\n PropertyUICredentialId,\n PropertyUIEmojiPickerProps,\n PropertyUIEncryptedInputProps,\n PropertyUIInputProps,\n PropertyUIKeyValueEditorProps,\n PropertyUINumber,\n PropertyUIObject,\n PropertyUIOption,\n PropertyUIProps,\n PropertyUIRadioGroupProps,\n PropertyUISingleSelectProps,\n PropertyUIString,\n PropertyUISwitchProps,\n} from \"../types\"\nimport { I18nEntrySchema } from \"./common\"\n\nconst indentationSchema = z.union([\n z.literal(2),\n z.literal(4),\n z.literal(6),\n z.literal(8),\n z.literal(10),\n z.literal(12),\n z.literal(14),\n z.literal(16),\n z.literal(18),\n z.literal(20),\n z.literal(22),\n z.literal(24),\n z.literal(26),\n z.literal(28),\n z.literal(30),\n z.literal(32),\n z.literal(34),\n z.literal(36),\n z.literal(38),\n z.literal(40),\n z.literal(42),\n z.literal(44),\n z.literal(46),\n z.literal(48),\n z.literal(50),\n z.literal(52),\n z.literal(54),\n z.literal(56),\n z.literal(58),\n z.literal(60),\n z.literal(62),\n z.literal(64),\n z.literal(66),\n z.literal(68),\n z.literal(70),\n z.literal(72),\n z.literal(74),\n z.literal(76),\n z.literal(78),\n z.literal(80),\n])\n{\n const _: IsEqual<z.infer<typeof indentationSchema>, IntRange<2, 81, 2>> = true\n}\n\n// Common UI properties schema\nexport const PropertyUICommonPropsSchema = z.object({\n disabled: z.boolean().optional(),\n hint: I18nEntrySchema.optional(),\n placeholder: I18nEntrySchema.optional(),\n readonly: z.boolean().optional(),\n sensitive: z.boolean().optional(),\n support_expression: z.boolean().optional(),\n width: z.enum([\"small\", \"medium\", \"full\"]).optional(),\n indentation: indentationSchema.optional(),\n display_none: z.boolean().optional(),\n})\n\n// Option schema for select components\nexport const PropertyUIOptionSchema = z.object({\n icon: z.string().optional(),\n label: I18nEntrySchema,\n value: z.union([z.string(), z.number(), z.boolean()]),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyUIOptionSchema>, PropertyUIOption> = true\n}\n\nconst PropertyUIInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"input\"),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyUIInputPropsSchema>, PropertyUIInputProps> = true\n}\n\nexport const PropertyUIEncryptedInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"encrypted-input\"),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIEncryptedInputPropsSchema>,\n PropertyUIEncryptedInputProps\n > = true\n}\n\n// Textarea component schema\nconst PropertyUITextareaPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"textarea\"),\n max_height: z.number().optional(),\n min_height: z.number().optional(),\n})\n\n// Number input component schema\nconst PropertyUINumberInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"number-input\"),\n step: z.number().optional(),\n suffix: z.string().optional(),\n})\n\n// Code editor component schema\nconst PropertyUICodeEditorPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"code-editor\"),\n language: z.enum([\"json\", \"javascript\", \"python3\", \"html\"]).optional(),\n line_numbers: z.boolean().optional(),\n max_height: z.number().optional(),\n min_height: z.number().optional(),\n})\n\n// Select base schema\nconst PropertyUISelectPropsBaseSchema = z.object({\n clearable: z.boolean().optional(),\n options: z.array(PropertyUIOptionSchema).optional(),\n searchable: z.boolean().optional(),\n})\n\n// Single select component schema\nconst PropertyUISingleSelectPropsSchema = PropertyUICommonPropsSchema.merge(\n PropertyUISelectPropsBaseSchema,\n).extend({\n component: z.literal(\"select\"),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUISingleSelectPropsSchema>,\n PropertyUISingleSelectProps\n > = true\n}\n\n// Radio group component schema\nconst PropertyUIRadioGroupPropsSchema = PropertyUICommonPropsSchema.merge(\n PropertyUISelectPropsBaseSchema,\n).extend({\n component: z.literal(\"radio-group\"),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIRadioGroupPropsSchema>,\n PropertyUIRadioGroupProps\n > = true\n}\n\n// Multi select component schema\nconst PropertyUIMultiSelectPropsSchema = PropertyUICommonPropsSchema.merge(\n PropertyUISelectPropsBaseSchema,\n).extend({\n component: z.literal(\"multi-select\"),\n})\n\n// Switch component schema\nconst PropertyUISwitchPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"switch\"),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyUISwitchPropsSchema>, PropertyUISwitchProps> = true\n}\n\n// Checkbox component schema\nconst PropertyUICheckboxPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"checkbox\"),\n})\n\n// Slider component schema\nconst PropertyUISliderPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"slider\"),\n marks: z.record(z.number(), z.string()).optional(),\n show_value: z.boolean().optional(),\n step: z.number().optional(),\n})\n\n// Key-value editor component schema\nconst PropertyUIKeyValueEditorPropsSchema = PropertyUICommonPropsSchema.extend({\n add_button_label: I18nEntrySchema.optional(),\n component: z.literal(\"key-value-editor\"),\n empty_description: I18nEntrySchema.optional(),\n section_header: I18nEntrySchema.optional(),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIKeyValueEditorPropsSchema>,\n PropertyUIKeyValueEditorProps\n > = true\n}\n\n// Tag input component schema\nconst PropertyUITagInputPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"tag-input\"),\n})\n\n// Emoji picker component schema\nconst PropertyUIEmojiPickerPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"emoji-picker\"),\n size: z.enum([\"extra-small\", \"small\", \"medium\", \"large\"]).optional(),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIEmojiPickerPropsSchema>,\n PropertyUIEmojiPickerProps\n > = true\n}\n\n// Color picker component schema\nconst PropertyUIColorPickerPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"color-picker\"),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIColorPickerPropsSchema>,\n PropertyUIColorPickerProps\n > = true\n}\n\n// Credential select component schema\nconst PropertyUICredentialSelectPropsSchema = PropertyUICommonPropsSchema.extend({\n clearable: z.boolean().optional(),\n component: z.literal(\"credential-select\"),\n searchable: z.boolean().optional(),\n})\n\n// JSON Schema editor component schema\nconst PropertyUIJsonSchemaEditorPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"json-schema-editor\"),\n})\n\n// Conditions editor component schema\nconst PropertyUIConditionsEditorPropsSchema = PropertyUICommonPropsSchema.extend({\n component: z.literal(\"conditions-editor\"),\n})\n\n// Array section component schema\nconst PropertyUIArraySectionPropsSchema = PropertyUICommonPropsSchema.extend({\n add_label: I18nEntrySchema.optional(),\n collapsible: z.boolean().optional(),\n component: z.literal(\"array-section\"),\n empty_message: I18nEntrySchema.optional(),\n remove_tooltip: I18nEntrySchema.optional(),\n sortable: z.boolean().optional(),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUIArraySectionPropsSchema>,\n PropertyUIArraySectionProps\n > = true\n}\n\n// Collapsible panel component schema\nconst PropertyUICollapsiblePanelPropsSchema = PropertyUICommonPropsSchema.extend({\n collapsible: z.boolean().optional(),\n component: z.literal(\"collapsible-panel\"),\n default_collapsed: z.boolean().optional(),\n panel_title: I18nEntrySchema.optional(),\n remove_tooltip: I18nEntrySchema.optional(),\n sortable: z.boolean().optional(),\n})\n{\n const _: IsEqual<\n z.infer<typeof PropertyUICollapsiblePanelPropsSchema>,\n PropertyUICollapsiblePanelProps\n > = true\n}\n\nexport const PropertyUIPropsSchema = z.discriminatedUnion(\"component\", [\n PropertyUIInputPropsSchema,\n PropertyUITextareaPropsSchema,\n PropertyUINumberInputPropsSchema,\n PropertyUICodeEditorPropsSchema,\n PropertyUISingleSelectPropsSchema,\n PropertyUIRadioGroupPropsSchema,\n PropertyUIEmojiPickerPropsSchema,\n PropertyUIColorPickerPropsSchema,\n PropertyUIMultiSelectPropsSchema,\n PropertyUISwitchPropsSchema,\n PropertyUICheckboxPropsSchema,\n PropertyUISliderPropsSchema,\n PropertyUIKeyValueEditorPropsSchema,\n PropertyUITagInputPropsSchema,\n PropertyUICredentialSelectPropsSchema,\n PropertyUIJsonSchemaEditorPropsSchema,\n PropertyUIConditionsEditorPropsSchema,\n PropertyUIArraySectionPropsSchema,\n PropertyUICollapsiblePanelPropsSchema,\n PropertyUIEncryptedInputPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIPropsSchema>, PropertyUIProps> = true\n}\n\nexport const PropertyUIBooleanSchema = z.discriminatedUnion(\"component\", [\n PropertyUISwitchPropsSchema,\n PropertyUICheckboxPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIBooleanSchema>, PropertyUIBoolean> = true\n}\n\nexport const PropertyUINumberSchema = z.discriminatedUnion(\"component\", [\n PropertyUINumberInputPropsSchema,\n PropertyUISliderPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUINumberSchema>, PropertyUINumber> = true\n}\n\nexport const PropertyUIStringSchema = z.discriminatedUnion(\"component\", [\n PropertyUIInputPropsSchema,\n PropertyUITextareaPropsSchema,\n PropertyUICodeEditorPropsSchema,\n PropertyUISingleSelectPropsSchema,\n PropertyUICredentialSelectPropsSchema,\n PropertyUIRadioGroupPropsSchema,\n PropertyUIEmojiPickerPropsSchema,\n PropertyUIColorPickerPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIStringSchema>, PropertyUIString> = true\n}\n\nexport const PropertyUIArraySchema = z.discriminatedUnion(\"component\", [\n PropertyUIMultiSelectPropsSchema,\n PropertyUITagInputPropsSchema,\n PropertyUIKeyValueEditorPropsSchema,\n PropertyUISliderPropsSchema,\n PropertyUIArraySectionPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIArraySchema>, PropertyUIArray> = true\n}\n\nexport const PropertyUIObjectSchema = z.discriminatedUnion(\"component\", [\n PropertyUICollapsiblePanelPropsSchema,\n PropertyUIJsonSchemaEditorPropsSchema,\n PropertyUIConditionsEditorPropsSchema,\n PropertyUICodeEditorPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUIObjectSchema>, PropertyUIObject> = true\n}\n\nexport const PropertyUICredentialIdSchema = z.discriminatedUnion(\"component\", [\n PropertyUICredentialSelectPropsSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyUICredentialIdSchema>, PropertyUICredentialId> = true\n}\n\nexport const PropertyUIDiscriminatorUISchema = z.discriminatedUnion(\"component\", [\n PropertyUISwitchPropsSchema,\n PropertyUISingleSelectPropsSchema,\n PropertyUIRadioGroupPropsSchema,\n])\n\nexport const PropertyUIEncryptedStringSchema = z.discriminatedUnion(\"component\", [\n PropertyUIEncryptedInputPropsSchema,\n])\n","import type { IsEqual, JsonValue } from \"type-fest\"\nimport { z } from \"zod\"\nimport type {\n DisplayCondition,\n FilterOperators,\n Property,\n PropertyArray,\n PropertyBase,\n PropertyBoolean,\n PropertyCredentialId,\n PropertyDiscriminatedUnion,\n PropertyEncryptedString,\n PropertyNumber,\n PropertyObject,\n PropertyScalar,\n PropertyString,\n} from \"../types\"\nimport { compact } from \"../utils/toolkit\"\nimport { I18nEntrySchema } from \"./common\"\nimport {\n PropertyUIArraySchema,\n PropertyUIBooleanSchema,\n PropertyUICommonPropsSchema,\n PropertyUICredentialIdSchema,\n PropertyUIDiscriminatorUISchema,\n PropertyUIEncryptedStringSchema,\n PropertyUINumberSchema,\n PropertyUIObjectSchema,\n PropertyUIStringSchema,\n} from \"./property-ui\"\n\nconst JsonPrimitiveSchema = z.union([z.string(), z.number(), z.boolean(), z.null()])\nconst JsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([JsonPrimitiveSchema, z.array(JsonValueSchema), z.record(z.string(), JsonValueSchema)]),\n)\n\nconst FilterOperatorsSchema = z.object({\n $eq: JsonValueSchema.optional(),\n $exists: z.boolean().optional(),\n $gt: JsonValueSchema.optional(),\n $gte: JsonValueSchema.optional(),\n $in: z.array(JsonValueSchema).optional(),\n $lt: JsonValueSchema.optional(),\n $lte: JsonValueSchema.optional(),\n $mod: z.tuple([z.number(), z.number()]).optional(),\n $ne: JsonValueSchema.optional(),\n $nin: z.array(JsonValueSchema).optional(),\n $options: z.string().optional(),\n $regex: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n $size: z.number().optional(),\n})\n\nconst ConditionSchema = z.union([JsonValueSchema, FilterOperatorsSchema])\n\nconst RootFilterSchema = z.object({\n get $and() {\n return z.array(FilterSchema).optional()\n },\n get $nor() {\n return z.array(FilterSchema).optional()\n },\n get $or() {\n return z.array(FilterSchema).optional()\n },\n})\n{\n const _: IsEqual<z.infer<typeof FilterOperatorsSchema>, FilterOperators> = true\n}\n\n// skip infer because of recursive structure\nconst FilterSchema: z.ZodType<DisplayCondition> = z.union([\n z.record(z.string(), ConditionSchema),\n RootFilterSchema,\n])\n\nconst PropertyBaseSchema = z.object({\n name: z\n .string()\n .min(1, \"name cannot be empty\")\n .refine(\n (val) => {\n const regexStartsWithDollarOrWhitespace = /^[\\s$]/\n return !regexStartsWithDollarOrWhitespace.test(val)\n },\n {\n error: \"name cannot start with $ or whitespace\",\n abort: true,\n },\n )\n .refine(\n (val) => {\n const forbiddenCharacters = [\".\", \"[\", \"]\"]\n return !forbiddenCharacters.some((char) => val.includes(char))\n },\n {\n error: 'name cannot contain \".\", \"[\", or \"]\" characters',\n abort: true,\n },\n ),\n\n display_name: I18nEntrySchema.optional(),\n required: z.boolean().optional(),\n display: z\n .object({\n hide: FilterSchema.optional(),\n show: FilterSchema.optional(),\n })\n .optional(),\n ai: z\n .object({\n llm_description: I18nEntrySchema.optional(),\n })\n .optional(),\n ui: PropertyUICommonPropsSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyBaseSchema>, PropertyBase<string>> = true\n}\n\nconst PropertyStringSchema = PropertyBaseSchema.extend({\n type: z.literal(\"string\"),\n constant: z.string().optional(),\n default: z.string().optional(),\n enum: z.array(z.string()).optional(),\n max_length: z.number().optional(),\n min_length: z.number().optional(),\n ui: PropertyUIStringSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyStringSchema>, PropertyString<string>> = true\n}\n\nconst PropertyNumberSchema = PropertyBaseSchema.extend({\n type: z.union([z.literal(\"number\"), z.literal(\"integer\")]),\n constant: z.number().optional(),\n default: z.number().optional(),\n enum: z.array(z.number()).optional(),\n maximum: z.number().optional(),\n minimum: z.number().optional(),\n ui: PropertyUINumberSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyNumberSchema>, PropertyNumber<string>> = true\n}\n\nconst PropertyBooleanSchema = PropertyBaseSchema.extend({\n type: z.literal(\"boolean\"),\n constant: z.boolean().optional(),\n default: z.boolean().optional(),\n enum: z.array(z.boolean()).optional(),\n ui: PropertyUIBooleanSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyBooleanSchema>, PropertyBoolean<string>> = true\n}\n\nfunction setDuplicatePropertyNamesCheck<T extends z.ZodType<Array<Property>>>(schema: T) {\n return schema.refine(\n (properties) => {\n const names = new Set<string>()\n for (const prop of properties) {\n if (names.has(prop.name)) return false\n names.add(prop.name)\n }\n return true\n },\n {\n error: \"duplicate property names are not allowed\",\n },\n )\n}\n\n// use type assertion and lazy to avoid circular reference error\nconst ArrayPropertiesSchema: z.ZodType<PropertyObject[\"properties\"]> = z.lazy(() =>\n z.array(PropertySchema).apply(setDuplicatePropertyNamesCheck),\n)\n\nconst additionalPropertiesSchema: z.ZodType<Property> = z.lazy(() => PropertySchema)\n\nconst PropertyObjectSchema = PropertyBaseSchema.extend({\n type: z.literal(\"object\"),\n properties: ArrayPropertiesSchema,\n additional_properties: additionalPropertiesSchema.optional(),\n constant: z.record(z.string(), JsonValueSchema).optional(),\n default: z.record(z.string(), JsonValueSchema).optional(),\n enum: z.array(z.record(z.string(), JsonValueSchema)).optional(),\n ui: PropertyUIObjectSchema.optional(),\n}).refine(\n (v) => {\n if (v.constant) return v.properties.length === 0\n return true\n },\n {\n error: \"properties must be empty when constant is defined\",\n abort: true,\n },\n)\n{\n type PropertyObjectInferred = z.infer<typeof PropertyObjectSchema>\n const _: IsEqual<PropertyObjectInferred, PropertyObject> = true\n}\n\nconst PropertyDiscriminatedUnionSchema = PropertyBaseSchema.extend({\n type: z.literal(\"discriminated_union\"),\n get any_of() {\n return z.array(PropertyObjectSchema).min(2, \"anyOf must have at least two items\")\n },\n discriminator: z.string().min(1, \"discriminator cannot be empty\"),\n discriminator_ui: PropertyUIDiscriminatorUISchema.optional(),\n})\n .refine(\n (v) => {\n const { any_of, discriminator } = v\n return any_of.every((i) => {\n const discriminatorProperty = i.properties?.find((p) => p.name === discriminator)\n if (!discriminatorProperty) return false\n if (!(\"constant\" in discriminatorProperty)) return false\n if (\n typeof discriminatorProperty.constant !== \"string\" &&\n typeof discriminatorProperty.constant !== \"number\" &&\n typeof discriminatorProperty.constant !== \"boolean\"\n ) {\n return false\n }\n return true\n })\n },\n {\n error:\n \"Each item in anyOf must contain the discriminator field with constant string/number/boolean value\",\n abort: true,\n },\n )\n .refine(\n (v) => {\n const { any_of } = v\n const allDiscriminatorProperty = compact(\n any_of.map((i) => {\n const discriminatorProperty = i.properties?.find((p) => p.name === v.discriminator)\n if (!discriminatorProperty) return null\n if (!(\"constant\" in discriminatorProperty)) return null\n return discriminatorProperty.constant\n }),\n )\n const uniqueValues = new Set(allDiscriminatorProperty)\n return uniqueValues.size === allDiscriminatorProperty.length\n },\n {\n error: \"Discriminator values must be unique across all anyOf items\",\n },\n )\n{\n const _: IsEqual<\n z.infer<typeof PropertyDiscriminatedUnionSchema>,\n PropertyDiscriminatedUnion\n > = true\n}\n\nconst PropertyArraySchema = PropertyBaseSchema.extend({\n type: z.literal(\"array\"),\n constant: z.array(JsonValueSchema).optional(),\n default: z.array(JsonValueSchema).optional(),\n enum: z.array(z.array(JsonValueSchema)).optional(),\n get items() {\n return PropertySchema\n },\n max_items: z.number().optional(),\n min_items: z.number().optional(),\n ui: PropertyUIArraySchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyArraySchema>, PropertyArray> = true\n}\n\nconst PropertyCredentialIdSchema = PropertyBaseSchema.extend({\n type: z.literal(\"credential_id\"),\n credential_name: z.string().min(1, \"credential_name cannot be empty\"),\n ui: PropertyUICredentialIdSchema.optional(),\n})\n\n{\n const _: IsEqual<z.infer<typeof PropertyCredentialIdSchema>, PropertyCredentialId<string>> = true\n}\nconst PropertyEncryptedStringSchema = PropertyBaseSchema.extend({\n type: z.literal(\"encrypted_string\"),\n ui: PropertyUIEncryptedStringSchema.optional(),\n})\n{\n const _: IsEqual<z.infer<typeof PropertyEncryptedStringSchema>, PropertyEncryptedString> = true\n}\n\nconst PropertyScalarSchema = z.union([\n PropertyStringSchema,\n PropertyBooleanSchema,\n PropertyNumberSchema,\n PropertyEncryptedStringSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertyScalarSchema>, PropertyScalar<string>> = true\n}\n\nexport const PropertiesScalarSchema = z\n .array(PropertyScalarSchema)\n .apply(setDuplicatePropertyNamesCheck)\n\nconst PropertySchema = z.union([\n ...PropertyScalarSchema.options,\n PropertyCredentialIdSchema,\n PropertyArraySchema,\n PropertyObjectSchema,\n PropertyDiscriminatedUnionSchema,\n])\n{\n const _: IsEqual<z.infer<typeof PropertySchema>, Property> = true\n}\nexport const PropertiesSchema = z.array(PropertySchema).apply(setDuplicatePropertyNamesCheck)\n","import type { IsEqual } from \"type-fest\"\nimport { z } from \"zod\"\nimport type {\n BaseDefinition,\n CredentialDefinition,\n ModelDefinition,\n PluginDefinition,\n ToolDefinition,\n} from \"../types\"\nimport { JsonValueSchema } from \"../utils/custom-json-value\"\nimport { I18nEntrySchema } from \"./common\"\nimport { PropertiesScalarSchema, PropertiesSchema } from \"./property\"\n\n/**\n * 基础定义模式\n *\n * 此为所有功能定义模式的基类,定义了通用的属性,不单独使用\n */\nexport const BaseDefinitionSchema = z.object({\n // 1. 只能出现英文字母(大小写不敏感)和数字以及_和-\n // 2. 开头只能是英文字母,结尾不能是_和-\n // 3. _和-不能连续出现多次\n // 4. 最小长度 4,最大长度 64\n name: z.string().regex(/^[a-zA-Z](?:(?![_-]{2,})[a-zA-Z0-9_-]){3,63}[a-zA-Z0-9]$/, {\n error:\n \"Invalid name, should match the following rules: 1. only English letters, numbers, _ and - 2. start with English letter, end with English letter or number 3. _ and - cannot appear consecutively more than twice 4. minimum length 4, maximum length 64\",\n }),\n display_name: I18nEntrySchema,\n description: I18nEntrySchema,\n icon: z.string(),\n})\n{\n const _: IsEqual<z.infer<typeof BaseDefinitionSchema>, BaseDefinition> = true\n}\n\nexport const PluginDefinitionSchema = z.object({\n ...BaseDefinitionSchema.shape,\n author: z.string().optional(),\n email: z.email().optional(),\n repo: z.httpUrl().optional(),\n version: z.string().optional(),\n locales: z.array(z.string()),\n})\n{\n const _: IsEqual<\n z.infer<typeof PluginDefinitionSchema>,\n Omit<PluginDefinition<string[], unknown>, \"transporterOptions\"> // not necessary to verify transpoterOptions\n > = true\n}\n\nexport const CredentialDefinitionSchema = z.object({\n ...BaseDefinitionSchema.shape,\n parameters: PropertiesScalarSchema,\n})\n{\n const _: IsEqual<z.infer<typeof CredentialDefinitionSchema>, CredentialDefinition> = true\n}\n\nexport const DataSourceDefinitionSchema = z.object({\n ...BaseDefinitionSchema.shape,\n parameters: PropertiesScalarSchema,\n})\n\nexport type DataSourceDefinition = z.infer<typeof DataSourceDefinitionSchema>\n\nexport const ModelDefinitionSchema = z.object({\n ...BaseDefinitionSchema.shape,\n name: z.string().regex(/^[a-zA-Z](?:(?![_-]{2,})[a-zA-Z0-9_/-]){3,63}[a-zA-Z0-9]$/, {\n error:\n \"Invalid model name, should match the following rules: 1. only English letters, numbers, _ and - 2. start with English letter, end with English letter or number 3. _ and - cannot appear consecutively more than twice 4. minimum length 4, maximum length 64 5. allow '/' in the middle\",\n }),\n model_type: z.literal(\"llm\"),\n default_endpoint: z.httpUrl().optional(),\n input_modalities: z.array(z.enum([\"file\", \"image\", \"text\"])),\n output_modalities: z.array(z.enum([\"text\"])),\n pricing: z\n .object({\n currency: z.string().optional(),\n input: z.number().optional(),\n input_cache_read: z.number().optional(),\n input_cache_write: z.number().optional(),\n output: z.number().optional(),\n request: z.number().optional(),\n })\n .optional(),\n override_parameters: z\n .object({\n temperature: z\n .object({\n default: z.number().optional(),\n maximum: z.number().optional(),\n minimum: z.number().optional(),\n })\n .optional(),\n frequency_penalty: z\n .object({\n default: z.number().optional(),\n maximum: z.number().optional(),\n minimum: z.number().optional(),\n })\n .optional(),\n max_tokens: z\n .object({\n default: z.number().optional(),\n maximum: z.number().optional(),\n })\n .optional(),\n verbosity: z\n .object({\n default: z.enum([\"low\", \"medium\", \"high\"]).optional(),\n })\n .optional(),\n })\n .optional(),\n unsupported_parameters: z.array(\n z.enum([\n \"endpoint\",\n \"temperature\",\n // \"top_p\",\n // \"top_k\",\n \"frequency_penalty\",\n // \"presence_penalty\",\n // \"repetition_penalty\",\n // \"min_p\",\n // \"top_a\",\n \"seed\",\n \"max_tokens\",\n // \"logit_bias\",\n // \"logprobs\",\n // \"top_logprobs\",\n // \"response_format\",\n // \"json_response\",\n \"json_schema\",\n \"stream\",\n \"stream_options\",\n \"structured_outputs\",\n // \"stop\",\n // \"tools\",\n // \"tool_choice\",\n \"parallel_tool_calls\",\n \"verbosity\",\n ]),\n ),\n})\n{\n const _: IsEqual<z.infer<typeof ModelDefinitionSchema>, ModelDefinition> = true\n}\n\nexport const ToolDefinitionSchema = z.object({\n ...BaseDefinitionSchema.shape,\n invoke: z.function({\n input: z.tuple([z.object({ args: z.any() })]),\n output: z.promise(JsonValueSchema),\n }),\n parameters: PropertiesSchema,\n})\n{\n const _: IsEqual<z.infer<typeof ToolDefinitionSchema>, ToolDefinition> = true\n}\n"],"mappings":"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"}
|
|
@@ -99,12 +99,6 @@ interface PropertyUITextareaProps extends PropertyUICommonProps {
|
|
|
99
99
|
max_height?: number;
|
|
100
100
|
min_height?: number;
|
|
101
101
|
}
|
|
102
|
-
/** 表达式输入框 UI 属性 */
|
|
103
|
-
interface PropertyUIExpressionInputProps extends PropertyUICommonProps {
|
|
104
|
-
component: "expression-input" | "expression-textarea";
|
|
105
|
-
max_height?: number;
|
|
106
|
-
min_height?: number;
|
|
107
|
-
}
|
|
108
102
|
/** 数字输入框 UI 属性 */
|
|
109
103
|
interface PropertyUINumberInputProps extends PropertyUICommonProps {
|
|
110
104
|
component: "number-input";
|
|
@@ -195,11 +189,11 @@ interface PropertyUICollapsiblePanelProps extends PropertyUICommonProps {
|
|
|
195
189
|
remove_tooltip?: I18nText;
|
|
196
190
|
sortable?: boolean;
|
|
197
191
|
}
|
|
198
|
-
type PropertyUIProps = PropertyUIInputProps | PropertyUITextareaProps |
|
|
192
|
+
type PropertyUIProps = PropertyUIInputProps | PropertyUITextareaProps | PropertyUINumberInputProps | PropertyUICodeEditorProps | PropertyUISingleSelectProps | PropertyUIRadioGroupProps | PropertyUIEmojiPickerProps | PropertyUIColorPickerProps | PropertyUIMultiSelectProps | PropertyUISwitchProps | PropertyUICheckboxProps | PropertyUISliderProps | PropertyUIKeyValueEditorProps | PropertyUITagInputProps | PropertyUICredentialSelectProps | PropertyUIJsonSchemaEditorProps | PropertyUIConditionsEditorProps | PropertyUIArraySectionProps | PropertyUICollapsiblePanelProps | PropertyUIEncryptedInputProps;
|
|
199
193
|
type PropertyUIComponentType = PropertyUIProps["component"];
|
|
200
194
|
type PropertyUIBoolean = PropertyUISwitchProps | PropertyUICheckboxProps;
|
|
201
195
|
type PropertyUINumber = PropertyUINumberInputProps | PropertyUISliderProps;
|
|
202
|
-
type PropertyUIString = PropertyUIInputProps | PropertyUITextareaProps |
|
|
196
|
+
type PropertyUIString = PropertyUIInputProps | PropertyUITextareaProps | PropertyUICodeEditorProps | PropertyUISingleSelectProps | PropertyUICredentialSelectProps | PropertyUIRadioGroupProps | PropertyUIEmojiPickerProps | PropertyUIColorPickerProps;
|
|
203
197
|
type PropertyUIArray = PropertyUIMultiSelectProps | PropertyUITagInputProps | PropertyUIKeyValueEditorProps | PropertyUISliderProps | PropertyUIArraySectionProps;
|
|
204
198
|
type PropertyUIContainer = PropertyUICollapsiblePanelProps;
|
|
205
199
|
type PropertyUIMisc = PropertyUIJsonSchemaEditorProps | PropertyUIConditionsEditorProps;
|
|
@@ -438,7 +432,6 @@ interface PropertyDiscriminatedUnion<TName extends string = string, TDiscriminat
|
|
|
438
432
|
* UI component for displaying the discriminator field
|
|
439
433
|
*/
|
|
440
434
|
discriminator_ui?: PropertyUISwitchProps | PropertyUISingleSelectProps | PropertyUIRadioGroupProps;
|
|
441
|
-
ui?: PropertyUICollapsiblePanelProps;
|
|
442
435
|
}
|
|
443
436
|
interface PropertyArray<TName extends string = string> extends PropertyBase<TName> {
|
|
444
437
|
type: "array";
|
|
@@ -473,7 +466,8 @@ interface PropertyEncryptedString<TName extends string = string> extends Propert
|
|
|
473
466
|
type: "encrypted_string";
|
|
474
467
|
ui?: PropertyUIEncryptedString;
|
|
475
468
|
}
|
|
476
|
-
type
|
|
469
|
+
type PropertyScalar<TName extends string = string> = PropertyString<TName> | PropertyBoolean<TName> | PropertyNumber<TName> | PropertyEncryptedString<TName>;
|
|
470
|
+
type Property<TName extends string = string, TValue extends JsonValue = JsonValue> = PropertyScalar<TName> | PropertyCredentialId<TName> | PropertyArray<TName> | PropertyObject<TName, string, TValue extends JsonObject ? TValue : JsonObject> | PropertyDiscriminatedUnion<TName, string>;
|
|
477
471
|
//#endregion
|
|
478
472
|
//#region src/types/definition.d.ts
|
|
479
473
|
interface BaseDefinition {
|
|
@@ -493,19 +487,11 @@ interface BaseDefinition {
|
|
|
493
487
|
* Icon, allowed to use Emoji or URL address
|
|
494
488
|
*/
|
|
495
489
|
icon: string;
|
|
496
|
-
/**
|
|
497
|
-
* Parameters
|
|
498
|
-
*/
|
|
499
|
-
parameters: Array<Property>;
|
|
500
|
-
/**
|
|
501
|
-
* Settings
|
|
502
|
-
*/
|
|
503
|
-
settings?: Array<Property>;
|
|
504
490
|
}
|
|
505
491
|
/**
|
|
506
492
|
* Plugin definition
|
|
507
493
|
*/
|
|
508
|
-
interface PluginDefinition<Locales extends string[], TransporterOptions> extends
|
|
494
|
+
interface PluginDefinition<Locales extends string[], TransporterOptions> extends BaseDefinition {
|
|
509
495
|
/**
|
|
510
496
|
* The locales to support. Defaults to ["en_US"].
|
|
511
497
|
*/
|
|
@@ -513,11 +499,11 @@ interface PluginDefinition<Locales extends string[], TransporterOptions> extends
|
|
|
513
499
|
/**
|
|
514
500
|
* The author's name of the plugin.
|
|
515
501
|
*/
|
|
516
|
-
author
|
|
502
|
+
author?: string;
|
|
517
503
|
/**
|
|
518
504
|
* The author's email address.
|
|
519
505
|
*/
|
|
520
|
-
email
|
|
506
|
+
email?: string;
|
|
521
507
|
/**
|
|
522
508
|
* The source URL of the plugin.
|
|
523
509
|
*/
|
|
@@ -539,15 +525,19 @@ type Feature = CredentialDefinition | DataSourceDefinition | ModelDefinition | T
|
|
|
539
525
|
/**
|
|
540
526
|
* Credential definition
|
|
541
527
|
*/
|
|
542
|
-
interface CredentialDefinition extends
|
|
528
|
+
interface CredentialDefinition extends BaseDefinition {
|
|
529
|
+
parameters: Array<PropertyScalar>;
|
|
530
|
+
}
|
|
543
531
|
/**
|
|
544
532
|
* DataSource definition
|
|
545
533
|
*/
|
|
546
|
-
interface DataSourceDefinition extends BaseDefinition {
|
|
534
|
+
interface DataSourceDefinition extends BaseDefinition {
|
|
535
|
+
parameters: Array<PropertyScalar>;
|
|
536
|
+
}
|
|
547
537
|
/**
|
|
548
538
|
* Model definition
|
|
549
539
|
*/
|
|
550
|
-
interface ModelDefinition extends
|
|
540
|
+
interface ModelDefinition extends BaseDefinition {
|
|
551
541
|
/**
|
|
552
542
|
* The unique name of the model.
|
|
553
543
|
*
|
|
@@ -696,7 +686,11 @@ interface ToolDefinition extends BaseDefinition {
|
|
|
696
686
|
invoke: (context: {
|
|
697
687
|
args: any;
|
|
698
688
|
}) => Promise<JsonValue$1>;
|
|
689
|
+
/**
|
|
690
|
+
* Parameters
|
|
691
|
+
*/
|
|
692
|
+
parameters: Array<Property>;
|
|
699
693
|
}
|
|
700
694
|
//#endregion
|
|
701
|
-
export {
|
|
702
|
-
//# sourceMappingURL=types-
|
|
695
|
+
export { PropertyUIEmojiPickerProps as A, PropertyUIRadioGroupProps as B, PropertyUIBoolean as C, PropertyUIComponentType as D, PropertyUICommonProps as E, PropertyUIMisc as F, JsonValueSchema as G, PropertyUIString as H, PropertyUINumber as I, I18nText as K, PropertyUIObject as L, PropertyUIEncryptedString as M, PropertyUIInputProps as N, PropertyUIContainer as O, PropertyUIKeyValueEditorProps as P, PropertyUIOption as R, PropertyUIArraySectionProps as S, PropertyUIColorPickerProps as T, PropertyUISwitchProps as U, PropertyUISingleSelectProps as V, JsonValue$1 as W, PropertyNumber as _, ModelDefinition as a, PropertyString as b, DisplayCondition as c, PropertyArray as d, PropertyBase as f, PropertyEncryptedString as g, PropertyDiscriminatedUnion as h, Feature as i, PropertyUIEncryptedInputProps as j, PropertyUICredentialId as k, FilterOperators as l, PropertyCredentialId as m, CredentialDefinition as n, PluginDefinition as o, PropertyBoolean as p, DataSourceDefinition as r, ToolDefinition as s, BaseDefinition as t, Property as u, PropertyObject as v, PropertyUICollapsiblePanelProps as w, PropertyUIArray as x, PropertyScalar as y, PropertyUIProps as z };
|
|
696
|
+
//# sourceMappingURL=types-ectoWcwS.d.ts.map
|
package/dist/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
export { BaseDefinition, CredentialDefinition, DataSourceDefinition, DisplayCondition, Feature, FilterOperators, I18nText, JsonValue, JsonValueSchema, ModelDefinition, PluginDefinition, Property, PropertyArray, PropertyBase, PropertyBoolean, PropertyCredentialId, PropertyDiscriminatedUnion, PropertyEncryptedString, PropertyNumber, PropertyObject, PropertyString, PropertyUIArray, PropertyUIArraySectionProps, PropertyUIBoolean, PropertyUICollapsiblePanelProps, PropertyUIColorPickerProps, PropertyUICommonProps, PropertyUIComponentType, PropertyUIContainer, PropertyUICredentialId, PropertyUIEmojiPickerProps, PropertyUIEncryptedInputProps, PropertyUIEncryptedString, PropertyUIInputProps, PropertyUIKeyValueEditorProps, PropertyUIMisc, PropertyUINumber, PropertyUIObject, PropertyUIOption, PropertyUIProps, PropertyUIRadioGroupProps, PropertyUISingleSelectProps, PropertyUIString, PropertyUISwitchProps, ToolDefinition };
|
|
1
|
+
import { A as PropertyUIEmojiPickerProps, B as PropertyUIRadioGroupProps, C as PropertyUIBoolean, D as PropertyUIComponentType, E as PropertyUICommonProps, F as PropertyUIMisc, G as JsonValueSchema, H as PropertyUIString, I as PropertyUINumber, K as I18nText, L as PropertyUIObject, M as PropertyUIEncryptedString, N as PropertyUIInputProps, O as PropertyUIContainer, P as PropertyUIKeyValueEditorProps, R as PropertyUIOption, S as PropertyUIArraySectionProps, T as PropertyUIColorPickerProps, U as PropertyUISwitchProps, V as PropertyUISingleSelectProps, W as JsonValue, _ as PropertyNumber, a as ModelDefinition, b as PropertyString, c as DisplayCondition, d as PropertyArray, f as PropertyBase, g as PropertyEncryptedString, h as PropertyDiscriminatedUnion, i as Feature, j as PropertyUIEncryptedInputProps, k as PropertyUICredentialId, l as FilterOperators, m as PropertyCredentialId, n as CredentialDefinition, o as PluginDefinition, p as PropertyBoolean, r as DataSourceDefinition, s as ToolDefinition, t as BaseDefinition, u as Property, v as PropertyObject, w as PropertyUICollapsiblePanelProps, x as PropertyUIArray, y as PropertyScalar, z as PropertyUIProps } from "./types-ectoWcwS.js";
|
|
2
|
+
export { BaseDefinition, CredentialDefinition, DataSourceDefinition, DisplayCondition, Feature, FilterOperators, I18nText, JsonValue, JsonValueSchema, ModelDefinition, PluginDefinition, Property, PropertyArray, PropertyBase, PropertyBoolean, PropertyCredentialId, PropertyDiscriminatedUnion, PropertyEncryptedString, PropertyNumber, PropertyObject, PropertyScalar, PropertyString, PropertyUIArray, PropertyUIArraySectionProps, PropertyUIBoolean, PropertyUICollapsiblePanelProps, PropertyUIColorPickerProps, PropertyUICommonProps, PropertyUIComponentType, PropertyUIContainer, PropertyUICredentialId, PropertyUIEmojiPickerProps, PropertyUIEncryptedInputProps, PropertyUIEncryptedString, PropertyUIInputProps, PropertyUIKeyValueEditorProps, PropertyUIMisc, PropertyUINumber, PropertyUIObject, PropertyUIOption, PropertyUIProps, PropertyUIRadioGroupProps, PropertyUISingleSelectProps, PropertyUIString, PropertyUISwitchProps, ToolDefinition };
|
package/package.json
CHANGED