From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001
From: wwf <yearningwang@iqtogether.com>
Date: 星期三, 04 六月 2025 15:17:49 +0800
Subject: [PATCH] 初始化

---
 app/components/workflow/nodes/llm/utils.ts |  333 -------------------------------------------------------
 1 files changed, 1 insertions(+), 332 deletions(-)

diff --git a/app/components/workflow/nodes/llm/utils.ts b/app/components/workflow/nodes/llm/utils.ts
index b29646d..5f6b086 100644
--- a/app/components/workflow/nodes/llm/utils.ts
+++ b/app/components/workflow/nodes/llm/utils.ts
@@ -1,336 +1,5 @@
-import { ArrayType, Type } from './types'
-import type { ArrayItems, Field, LLMNodeType } from './types'
-import type { Schema, ValidationError } from 'jsonschema'
-import { Validator } from 'jsonschema'
-import produce from 'immer'
-import { z } from 'zod'
+import type { LLMNodeType } from './types'
 
 export const checkNodeValid = (payload: LLMNodeType) => {
   return true
-}
-
-export const getFieldType = (field: Field) => {
-  const { type, items } = field
-  if (type !== Type.array || !items)
-    return type
-
-  return ArrayType[items.type]
-}
-
-export const getHasChildren = (schema: Field) => {
-  const complexTypes = [Type.object, Type.array]
-  if (!complexTypes.includes(schema.type))
-    return false
-  if (schema.type === Type.object)
-    return schema.properties && Object.keys(schema.properties).length > 0
-  if (schema.type === Type.array)
-    return schema.items && schema.items.type === Type.object && schema.items.properties && Object.keys(schema.items.properties).length > 0
-}
-
-export const getTypeOf = (target: any) => {
-  if (target === null) return 'null'
-  if (typeof target !== 'object') {
-    return typeof target
-  }
-  else {
-    return Object.prototype.toString
-      .call(target)
-      .slice(8, -1)
-      .toLocaleLowerCase()
-  }
-}
-
-export const inferType = (value: any): Type => {
-  const type = getTypeOf(value)
-  if (type === 'array') return Type.array
-  // type boolean will be treated as string
-  if (type === 'boolean') return Type.string
-  if (type === 'number') return Type.number
-  if (type === 'string') return Type.string
-  if (type === 'object') return Type.object
-  return Type.string
-}
-
-export const jsonToSchema = (json: any): Field => {
-  const schema: Field = {
-    type: inferType(json),
-  }
-
-  if (schema.type === Type.object) {
-    schema.properties = {}
-    schema.required = []
-    schema.additionalProperties = false
-
-    Object.entries(json).forEach(([key, value]) => {
-      schema.properties![key] = jsonToSchema(value)
-      schema.required!.push(key)
-    })
-  }
-  else if (schema.type === Type.array) {
-    schema.items = jsonToSchema(json[0]) as ArrayItems
-  }
-
-  return schema
-}
-
-export const checkJsonDepth = (json: any) => {
-  if (!json || getTypeOf(json) !== 'object')
-    return 0
-
-  let maxDepth = 0
-
-  if (getTypeOf(json) === 'array') {
-    if (json[0] && getTypeOf(json[0]) === 'object')
-      maxDepth = checkJsonDepth(json[0])
-  }
-  else if (getTypeOf(json) === 'object') {
-    const propertyDepths = Object.values(json).map(value => checkJsonDepth(value))
-    maxDepth = propertyDepths.length ? Math.max(...propertyDepths) + 1 : 1
-  }
-
-  return maxDepth
-}
-
-export const checkJsonSchemaDepth = (schema: Field) => {
-  if (!schema || getTypeOf(schema) !== 'object')
-    return 0
-
-  let maxDepth = 0
-
-  if (schema.type === Type.object && schema.properties) {
-    const propertyDepths = Object.values(schema.properties).map(value => checkJsonSchemaDepth(value))
-    maxDepth = propertyDepths.length ? Math.max(...propertyDepths) + 1 : 1
-  }
-  else if (schema.type === Type.array && schema.items && schema.items.type === Type.object) {
-    maxDepth = checkJsonSchemaDepth(schema.items) + 1
-  }
-
-  return maxDepth
-}
-
-export const findPropertyWithPath = (target: any, path: string[]) => {
-  let current = target
-  for (const key of path)
-    current = current[key]
-  return current
-}
-
-const draft07MetaSchema = {
-  $schema: 'http://json-schema.org/draft-07/schema#',
-  $id: 'http://json-schema.org/draft-07/schema#',
-  title: 'Core schema meta-schema',
-  definitions: {
-    schemaArray: {
-      type: 'array',
-      minItems: 1,
-      items: { $ref: '#' },
-    },
-    nonNegativeInteger: {
-      type: 'integer',
-      minimum: 0,
-    },
-    nonNegativeIntegerDefault0: {
-      allOf: [
-        { $ref: '#/definitions/nonNegativeInteger' },
-        { default: 0 },
-      ],
-    },
-    simpleTypes: {
-      enum: [
-        'array',
-        'boolean',
-        'integer',
-        'null',
-        'number',
-        'object',
-        'string',
-      ],
-    },
-    stringArray: {
-      type: 'array',
-      items: { type: 'string' },
-      uniqueItems: true,
-      default: [],
-    },
-  },
-  type: ['object', 'boolean'],
-  properties: {
-    $id: {
-      type: 'string',
-      format: 'uri-reference',
-    },
-    $schema: {
-      type: 'string',
-      format: 'uri',
-    },
-    $ref: {
-      type: 'string',
-      format: 'uri-reference',
-    },
-    title: {
-      type: 'string',
-    },
-    description: {
-      type: 'string',
-    },
-    default: true,
-    readOnly: {
-      type: 'boolean',
-      default: false,
-    },
-    examples: {
-      type: 'array',
-      items: true,
-    },
-    multipleOf: {
-      type: 'number',
-      exclusiveMinimum: 0,
-    },
-    maximum: {
-      type: 'number',
-    },
-    exclusiveMaximum: {
-      type: 'number',
-    },
-    minimum: {
-      type: 'number',
-    },
-    exclusiveMinimum: {
-      type: 'number',
-    },
-    maxLength: { $ref: '#/definitions/nonNegativeInteger' },
-    minLength: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
-    pattern: {
-      type: 'string',
-      format: 'regex',
-    },
-    additionalItems: { $ref: '#' },
-    items: {
-      anyOf: [
-        { $ref: '#' },
-        { $ref: '#/definitions/schemaArray' },
-      ],
-      default: true,
-    },
-    maxItems: { $ref: '#/definitions/nonNegativeInteger' },
-    minItems: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
-    uniqueItems: {
-      type: 'boolean',
-      default: false,
-    },
-    contains: { $ref: '#' },
-    maxProperties: { $ref: '#/definitions/nonNegativeInteger' },
-    minProperties: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
-    required: { $ref: '#/definitions/stringArray' },
-    additionalProperties: { $ref: '#' },
-    definitions: {
-      type: 'object',
-      additionalProperties: { $ref: '#' },
-      default: {},
-    },
-    properties: {
-      type: 'object',
-      additionalProperties: { $ref: '#' },
-      default: {},
-    },
-    patternProperties: {
-      type: 'object',
-      additionalProperties: { $ref: '#' },
-      propertyNames: { format: 'regex' },
-      default: {},
-    },
-    dependencies: {
-      type: 'object',
-      additionalProperties: {
-        anyOf: [
-          { $ref: '#' },
-          { $ref: '#/definitions/stringArray' },
-        ],
-      },
-    },
-    propertyNames: { $ref: '#' },
-    const: true,
-    enum: {
-      type: 'array',
-      items: true,
-      minItems: 1,
-      uniqueItems: true,
-    },
-    type: {
-      anyOf: [
-        { $ref: '#/definitions/simpleTypes' },
-        {
-          type: 'array',
-          items: { $ref: '#/definitions/simpleTypes' },
-          minItems: 1,
-          uniqueItems: true,
-        },
-      ],
-    },
-    format: { type: 'string' },
-    allOf: { $ref: '#/definitions/schemaArray' },
-    anyOf: { $ref: '#/definitions/schemaArray' },
-    oneOf: { $ref: '#/definitions/schemaArray' },
-    not: { $ref: '#' },
-  },
-  default: true,
-} as unknown as Schema
-
-const validator = new Validator()
-
-export const validateSchemaAgainstDraft7 = (schemaToValidate: any) => {
-  const schema = produce(schemaToValidate, (draft: any) => {
-  // Make sure the schema has the $schema property for draft-07
-    if (!draft.$schema)
-      draft.$schema = 'http://json-schema.org/draft-07/schema#'
-  })
-
-  const result = validator.validate(schema, draft07MetaSchema, {
-    nestedErrors: true,
-    throwError: false,
-  })
-
-  // Access errors from the validation result
-  const errors = result.valid ? [] : result.errors || []
-
-  return errors
-}
-
-export const getValidationErrorMessage = (errors: ValidationError[]) => {
-  const message = errors.map((error) => {
-    return `Error: ${error.path.join('.')} ${error.message} Details: ${JSON.stringify(error.stack)}`
-  }).join('; ')
-  return message
-}
-
-export const convertBooleanToString = (schema: any) => {
-  if (schema.type === Type.boolean)
-    schema.type = Type.string
-  if (schema.type === Type.array && schema.items && schema.items.type === Type.boolean)
-    schema.items.type = Type.string
-  if (schema.type === Type.object) {
-    schema.properties = Object.entries(schema.properties).reduce((acc, [key, value]) => {
-      acc[key] = convertBooleanToString(value)
-      return acc
-    }, {} as any)
-  }
-  if (schema.type === Type.array && schema.items && schema.items.type === Type.object) {
-    schema.items.properties = Object.entries(schema.items.properties).reduce((acc, [key, value]) => {
-      acc[key] = convertBooleanToString(value)
-      return acc
-    }, {} as any)
-  }
-  return schema
-}
-
-const schemaRootObject = z.object({
-  type: z.literal('object'),
-  properties: z.record(z.string(), z.any()),
-  required: z.array(z.string()),
-  additionalProperties: z.boolean().optional(),
-})
-
-export const preValidateSchema = (schema: any) => {
-  const result = schemaRootObject.safeParse(schema)
-  return result
 }

--
Gitblit v1.8.0